O que o recurso “extents” faz no sistema de arquivos ext4 no linux?

3

Eu estava lendo sobre o sistema de arquivos ext4 que suporta compressão, criptografia e um recurso chamado extensões que é usado para economizar espaço em disco. O que são extensões e como elas são eficazes para economizar espaço em disco?

    
por Prateek Joshi 14.08.2015 / 23:00

2 respostas

3

As extensões economizam espaço reduzindo a quantidade de metadados necessários para acompanhar os blocos de dados de arquivos grandes. Em vez de armazenar uma lista de cada bloco individual que compõe o arquivo, a ideia é armazenar apenas o endereço do primeiro e último bloco de cada intervalo contínuo de blocos. Esses intervalos contínuos de blocos de dados (e os pares de números que os representam) são chamados de extensões .

Os endereços dos primeiros blocos de dados de um arquivo são armazenados no inode, mas como o inode tem um tamanho fixo, isso só funciona para arquivos pequenos. No ext2 ou ext3, arquivos grandes requerem o uso de blocos indiretos para armazenar o resto da lista de endereços de bloco que não cabem no próprio inode. Ou seja, o inode contém o endereço de um bloco que contém uma lista de blocos. Esses blocos indiretos são o espaço salvo usando extensões no ext4.

    
por 21.04.2017 / 11:32
0

De link :

Earlier Ext2 and Ext3 had the limitation on the size of the file. It used 32 bit block number to access the data blocks. So that limited the maximum size of file to be 2^32 * blocksize(eg. 4k**) = 16TB*. Also the access time for large Files were slow because in had to go through lots of indirection.Ext4 Filesystem can support very large files it has 48 bits to adress a block. Also its uses extents to store data so access time is faster for large files.

The information for the data blocks are stored in the i_data of the inode structure. In a system without Extents, the first 12 entries contains the block numbers of the first 12 blocks of data. Then it contains the block number for the Indirect blocks. That block contains the array of block numbers which point to the data. Similarly, there is Double indirect block and triple indirect block. So if we need to get the data from a very large file, we need to go through those indirection.

    
por 15.08.2015 / 01:24