Atributo “extents” do Linux ext4

7

Eu observei o atributo e em vários arquivos / diretórios em máquinas Linux instaladas em sistemas de arquivos ext4.

[[email protected] ~]$ lsattr -d /bin
-------------e- /bin

De acordo com chattr(1) :

The ’e’ attribute indicates that the file is using extents for mapping the blocks on disk. It may not be removed using chattr(1).

De que maneira isso é diferente, e mais importante, de que maneira esse detalhe é significativo - especificamente, por que esse detalhe é importante o suficiente para ser relatado como um atributo de arquivo? Em que circunstâncias devo mudar meu comportamento com base no conhecimento de que esse arquivo "está usando extensões para mapear os blocos no disco"? Presumivelmente, isso é algo que eu preciso saber, caso contrário, não seria tão óbvio, certo?

    
por tylerl 19.06.2012 / 09:09

1 resposta

12

Eu acho que o sinalizador de extensão é exposto como um atributo principalmente para que você possa definir com chattr , o que fará com que o driver ext4 realoque o arquivo usando extensões em vez de listas de bloqueio. Se você tiver convertido um sistema de arquivos ext3 existente para ext4 (usando tune2fs para habilitar os novos sinalizadores de recurso), você provavelmente desejará converter os arquivos existentes para usar extensões, e esta é a maneira de fazer isso.

Arquivos recém-criados em um sistema de arquivos ext4 sempre usam extensões (até onde eu sei), então se o seu sistema de arquivos foi criado como ext4 (ao contrário do convertido do ext3), tudo deve ter o atributo extent já Não precisa se preocupar com isso.

Consulte este artigo para obter mais informações.

    
por 19.06.2012 / 09:46