Migrando para a Ext4

Preparando para o Mais Novo Sistema de Arquivos Linux

é o mais recente em uma linha longa de sistemas® de arquivos Linux e provavelmente é tão importante e popular quanto seus predecessores. Como um administrador do sistema Linux, esteja ciente das vantagens, desvantagens e etapas básicas para migrar para o ext4. Esse artigo explica quando adotar o ext4, como adaptar o uso da ferramenta de manutenção do sistema de arquivos tradicional ao ext4 e como obter o melhor do sistema de arquivos.

Cameron Laird, Vice President, Phaseit, Inc.

Cameron Laird é um contribuidor e antigo cronista do developerWorks. Ele escreve frequentemente sobre projetos de software livre que aceleram o desenvolvimento dos aplicativos de seu empregador, focalizado na confiabilidade e segurança.



30/Abr/2008

Recursos do Ext4

O Linux suporta vários sistemas de arquivos diferentes. Alguns são sistemas de arquivos de rede especializada ou sistemas de arquivos desenvolvidos para outros sistemas operacionais, mas um número surpreendente pode ser utilizado como sistemas de arquivos nativos Linux—é possível colocar sua raiz Linux (/) e diretórios do sistema nesses sistemas de arquivos. Atualmente, sistemas de arquivos nessa categoria incluem ext2, ext3, ReiserFS, XFS e Journaled File System (JFS). No entanto, o design e desenvolvimento do sistema são contínuos e novos sistemas de arquivos estão no horizonte.

Talvez o sistema de arquivos mais importante atualmente sob desenvolvimento para Linux é o ext4—a quarta encarnação do sistema de arquivos estendido original (ext ou extfs) desenvolvida exclusivamente para Linux. Dada sua herança, parece que o ext4 se tornará um sistema de arquivos padrão importante (talvez o sistema de arquivos padrão) para Linux no futuro não muito distante.

Ext4 Comparado ao Ext3

O quarto sistema de arquivos estendido (ext4 ou ext4fs) existe porque os desenvolvedores estavam pressionando para incorporar recursos novos e avançados no ext3. Essa unidade apresentou vários problemas:

  • Alguns dos novos recursos quebrariam a compatibilidade de retrocesso.
  • O código do ext3 se tornaria mais complexo e difícil para manter.
  • As alterações podem fazer o ext3 altamente confiável tornar-se não confiável.

Por essas razões, os desenvolvedores decidiram bifurcar o desenvolvimento do ext4 a partir do ext3 em junho de 2006. Desde aquela época, o desenvolvimento do ext4 continuou, grandemente despercebido por meros usuários e administradores mortais do Linux. Com o release do kernel 2.6.19 em novembro de 2006, o ext4 fez sua primeira aparição em um kernel de mainstream, embora ele fosse (e ainda é) marcado como experimental; portanto, a maioria da pessoas o ignoraram.

Como o ext4 ainda está sob desenvolvimento, a partir do kernel 2.6.24.4, sua lista de recursos está em constante mudança. Recursos atuais e antecipados incluem os avanços sobre o ext3 listados na Tabela 1.

Tabela 1. Recursos Atuais e Futuros do Ext4 que Fornecem Vantagens sobre o ext3
RecursoVantagem
Sistemas de Arquivos MaioresO ext3 chega ao máximo de sistemas de arquivos de 32 tebibytes (TiB) e de arquivos de 2 TiB, mas limites práticos podem ser inferiores a isso dependendo de sua arquitetura e configurações do sistema—talvez tão baixo quanto sistemas de arquivos de 2 TiB e arquivos de 16 gibibytes (GiB). O ext4, em contrapartida, permite sistemas de arquivos de até 1024 pebibytes (PiB), ou 1 exbibyte (EiB) e arquivos de 16 TiB. Isso pode não ser importante (ainda!) para o computador ou servidor desktop médio, mas é importante aos usuários com grandes matrizes de discos.
ExtensõesUma extensão é uma forma para melhorar a eficiência de descritores de arquivos no disco, reduzir os tempos de exclusão para grandes arquivos, entre outras coisas.
Pré-alocação PersistenteSe um aplicativo precisa alocar espaço em disco antes de realmente utilizá-lo, a maioria dos sistemas de arquivos fazem isso gravando 0s no espaço em disco ainda não usado. O ext4 permite a pré-alocação sem fazer isso, o que pode melhorar o desempenho de algumas ferramentas do banco de dados e da multimídia.
Alocação AtrasadaO ext4 pode atrasar a alocação de espaço em disco até o último momento, o que pode melhorar o desempenho.
Mais SubdiretóriosSe você já se sentiu limitado pelo fato de que um diretório pode conter apenas 32.000 subdiretórios no ext3, ficará aliviado em saber que esse limite foi eliminado no ext4.
Diário de Somas de VerificaçãoO ext4 inclui uma soma de verificação nos dados do registro de ações, o que melhora a confiabilidade e o desempenho.
Desfragmentação On-lineApesar do ext3 não ser propenso a fragmentação excessiva, arquivos armazenados nele provavelmente são pelo menos um pouco fragmentados. O ext4 inclui suporte para desfragmentação on-line, o que deve melhorar o desempenho geral.
Desfazer a ExclusãoEmbora ele ainda não tenha sido implementado, o ext4 pode suportar desfazer a exclusão, o que, naturalmente, é prático sempre que alguém exclui um arquivo acidentalmente.
Verificações Mais Rápidas do Sistema de ArquivosO ext4 inclui estruturas de dados que permitem ao fsck ignorar peças não utilizadas do disco em suas verificações, assim, aumentando a velocidade de verificações do sistema de arquivos.
Registros de Data e Hora em NanosegundosA maioria dos sistemas de arquivos, incluído o ext3, inclui dado de registro de data e hora que é preciso até um segundo. O ext4 estende a exatidão desse dado até um nanosegundo. Algumas origens também indicam que os registros de data e hora do ext4 suportam datas até 25 de abril de 2514, versus 18 de janeiro de 2038, para ext3.

Como o ext4 é um trabalho atualmente em andamento, essa lista de recursos está sujeita a mudança. Alguns desses recursos, se utilizados, criam incompatibilidade de retrocesso com o ext3—isso é, pode ser que não seja possível montar um sistema de arquivos do ext4 utilizando o código de tipo do sistema de arquivos do ext3. O ext4 mantém compatibilidade para a frente, embora—você deva poder montar um sistema de arquivos do ext3 como se ele fosse um sistema de arquivos do ext4.

Quem Deve Utilizar o Ext4

O único aperfeiçoamento mais dramático no ext4 está no tamanho do arquivo e do sistema de arquivos. Assim, os usuários que provavelmente precisem do ext4 são aqueles que possuem mais que alguns terabytes de espaço em disco. A lista de recursos na Tabela 1, entretanto, pode apresentar alguns outros aperfeiçoamentos tentadores. Por exemplo, talvez queira experimentar o ext4 se tiver diretórios com imensos números de subdiretórios ou se precisa de registros de data e hora precisos até menos que um segundo.

Como o ext4 é atualmente experimental, para utilizá-lo você quase certamente terá que recompilar o seu kernel. Se você estiver desconfortável com essa tarefa, as chances são que terá problemas com o ext4. De fato, a natureza experimental do ext4 significa que realmente deve-se utilizá-lo somente se estiver interessado em contribuir com seu desenvolvimento ou se estiver desesperado por alguns de seus recursos. Se precisar de suporte de disco grande confiável antes de um release estável do ext4, pode desejar considerar o uso do XFS ou do JFS como alternativa.

Naturalmente, o ext4 não será sempre experimental. No momento apropriado, o ext4 será declarado um sistema de arquivos estável. Quando isso acontecer, o ext4 será uma opção tão boa quanto o ext3 para quase completamente todo mundo, com um par de advertências. Primeiro, é concebível que erros exclusivos do ext4 existirão; portanto, seja cauteloso quando o ext4 for declarado estável pela primeira vez. Segundo, utilizar o ext4 pode tornar impossível para ferramentas mais velhas acessarem seu disco. Isso terá implicações para ferramentas de recuperação de emergência; portanto, talvez queira aguardar suas ferramentas preferidas para suportar o ext4 antes de fazer upgrade. No lado positivo, deve ser possível migrar do ext3 para o ext4 não-destrutivamente, o que possibilitará uma transição fácil se tiver dados existentes que deseja preservar.


Compilando e Ativando o Suporte ao Ext4

Se você leu até aqui, aparentemente está querendo experimentar o ext4. Para fazer isso, é necessário recompilar seu kernel para incluir o suporte necessário. Recomendo que inicie com o kernel mais novo disponível (que é 2.6.24.4 no momento em que escrevo). Após desempacotar a origem do kernel e configurar manualmente todas as opções ou copiar um arquivo .config mais antigo do kernel e digitar make oldconfig para copiar suas configurações antigas digite seu comando de configuração preferido (como make xconfig) para visualizar as opções do kernel. Será encontrada a opção do ext4 na área principal de Sistemas de Arquivos como Ext4dev/ext4 extended fs support development (EXPERIMENTAL). (O nome provavelmente mudará no futuro, especialmente quando o ext4 for declarado estável.) Observe que deve-se verificar a opção Prompt para desenvolvimento e/ou código/drivers incompletos na área Geral para ver mesmo a opção do ext4.

Com o suporte do ext4 selecionado, salve suas alterações do kernel, compile o kernel digitando make e instale os módulos digitando make modules_install como root. Será necessário então copiar o kernel compilado (em arch/i386/boot ou em algum outro diretório) para um local apropriado (como /boot), editar sua configuração de GRand Unified Bootloader (GRUB) ou Linux Loader (LILO) e reinicializar seu computador. Se utilizar um disco virtual de boot, precisa prepará-lo com o utilitário mkinitrd , também.

Além do módulo do kernel, talvez você queira examinar uma versão de e2fsprogs que suporta os recursos do sistema de arquivos ext4. É possível fazer download de um tarball (a seção Recursos aponta o site apropriado) ou utilizar git, conforme demonstrado na Lista 1.

Lista 1. Comandos para Recuperar o e2fsprogs Mais Recente através do git
$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
$ cd e2fsprogs
$ git checkout -b pu
Switched to a new branch "pu"
$ git branch
master
* pu
$ git pull git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git pu

Observe que pode ser necessário instalar git utilizando seu gerente do pacote de distribuição. Essas ferramentas ainda não foram muito testadas; portanto, não são recomendadas para uso em sistemas de produção e, no momento, não parecem incluir muito do que é realmente necessário para uso do ext4. Assim, é possível preferir manter-se fiel ao pacote e2fsprogs de ações entregue com sua distribuição.

O processo de compilação para e2fsprogs é razoavelmente padrão: Descompacte o pacote, cd no diretório resultante, digite ./configure, digite make, e (como root) digite make install. Esse processo sobrescreverá seu pacote normal e2fsprogs de distribuição; portanto, só faça isso se estiver certo de que deseja utilizar a versão mais recente (e possivelmente instável) dessas ferramentas.


Migrando o Ext3 para o Ext4

Com seu sistema inicializado em um kernel com suporte do ext4, você está pronto para iniciar o uso do novo sistema de arquivos. Para fazer isso, é necessário preparar uma partição, um dispositivo Redundant Array of Independent Disks (RAID) ou outro espaço de armazenamento. Então é possível começar a utilizá-la como um sistema de arquivos ext4 e opções do sistema de arquivos tweak.

Preparando um Dispositivo

Se você deseja fazer um início limpo, é possível formatar uma partição ou outro dispositivo utilizando as ferramentas fornecidas com o pacote e2fsprogs novo ou antigo, a saber mkfs.ext3 ou mkfs.ext4. Por exemplo, mkfs.ext4 -j /dev/sda6 prepara a partição /dev/sda6 para uso. Utilizar mkfs.ext4 pode produzir um sistema de arquivos com mais recursos específicos do ext4 ativados.

Atualmente, os programas e2fsprogs não são completamente atualizados com as alterações do sistema de arquivos de kernel. Felizmente, a maioria dos recursos do driver do kernel não requer preparação especial a partir do mkfs.ext4 ou outros utilitários. Os recursos do ext4 são ativados quando o sistema de arquivos é montado. Se você deseja utilizar o ext4 em mídia grande, estará indo ousadamente onde poucos estiveram antes; portanto, esteja certo de documentar e relatar qualquer problema que encontrar!

Se você deseja utilizar um sistema de arquivos ext2 ou ext3 como um sistema de arquivos ext4, pode fazer isso. Simplesmente monte o dispositivo conforme descrito brevemente. Entretanto, se você utilizar determinados recursos novos, como extensões, não poderá voltar a utilizar o sistema de arquivos com os drivers do ext2 ou ext3.

Utilizando o Ext4

Para utilizar um dispositivo como um sistema de arquivos ext4, deve-se montá-lo com o código do tipo de sistema de arquivos ext4dev . (Quando o ext4 se tornar estável, o código do tipo de sistema de arquivos será alterado para ext4.) Por exemplo, mount -t ext4dev /dev/sda6 /mnt/point monta /dev/sda6 como um sistema de arquivos ext4 em /mnt/point. Isso é tudo o que existe para o uso do ext4 básico. Esteja ciente de que as opções de montagem padrão ativam extensões, o que renderiza o sistema de arquivos inutilizável como um sistema de arquivos ext3. Se você deseja experimentar o ext4, mas reter a opção de voltar ao ext3, utilize a opção -o noextents para desativar o uso de extensões.

O uso prático do ext4, uma vez montado, é exatamente como aquele de qualquer outro sistema de arquivos: é possível copiar arquivos, criá-los diretamente e assim por diante. A menos que você execute em um erro ou execute testes de avaliação de desempenho, não deve notar qualquer diferença.

Ajustando Opções de Desempenho do Ext4

É possível utilizar o programa tune2fs para sintonizar um sistema de arquivos ext4 das mesmas maneiras que sintonizaria um sistema de arquivos ext2 ou ext3. Atualmente, tune2fs não fornece qualquer opção específica do ext4, embora seja possível configurar opções do ext4, como extensões, utilizando o parâmetro -O padrão.

Quando você monta um sistema de arquivos como o ext4, o kernel começa a utilizar recursos específicos do sistema de arquivos, como extensões. Isso torna impossível montar o sistema de arquivos novamente como um sistema de arquivos ext3, pelo menos não sem passar por um bom número de procedimentos complicados.

Embora a montagem de um sistema de arquivos ext3 como ext4 ative os recursos específicos do ext4, a montagem sozinha não converte estruturas de dados antigas em novos formatos. Por exemplo, arquivos existentes permanecem alocados bloco a bloco, em vez de utilizar extensões. Dessa forma, seus arquivos antigos não ganham o benefício dos novos recursos. Os desenvolvedores do ext4, entretanto, consideraram esse fato e forneceram um caminho adiante: É possível utilizar a ferramenta (muito experimental) e4defrag (descrita brevemente) para converter alocações para utilizar extensões. Uma outra ferramenta nova (que ainda não está disponível) mudará tamanhos do inode para o novo formato.


Mantendo um Sistema de Arquivos Ext4

É possível utilizar a ferramenta e2fsprogs padrão para manter um sistema de arquivos ext4, como tune2fs para ajustar opções após criar o sistema de arquivos, fsck.ext4 para executar uma verificação do sistema de arquivos e assim por diante. Esses programas não são muito diferentes para o ext4 comparados ao ext3. Se bem que, conforme observado anteriormente, o ext4 inclui alguns aprimoramentos que devem melhorar o desempenho do fsck.

Além dessas ferramentas, uma nova merece menção especial: e4defrag. Esse programa desfragmenta um sistema de arquivos ext4 montado. Isso pode melhorar o desempenho, especialmente se o seu sistema de arquivos tornou-se quase integral. Ele também possui as vantagens de converter alocação de estilo do ext2/3 na alocação baseada em extensões de estilo do ext4; portanto, isso pode melhorar o desempenho em um sistema de arquivos que foi utilizado anteriormente como um sistema de arquivos ext3. Infelizmente, e4defrag ainda não é parte do pacote e2fsprogs padrão; portanto, é necessário trazer à tona um cópia "bruta" (a seção Recursos fornece um link).

Recursos

Aprender

Obter produtos e tecnologias

  • Obtenha o e2fsprogs com suporte ao ext4 a partir de ftp.kernel.org.
  • Localize uma cópia do código de origem para o utilitário ext4defrag , mesmo se ele ainda não for parte do pacote e2fsprogs principal.
  • Com o Software de período experimental IBM, disponível para download diretamente do developerWorks, construa seu próximo projeto de desenvolvimento em Linux.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=382579
ArticleTitle=Migrando para a Ext4
publish-date=04302008