Converte um volume de raid de software de ext3 para ext4 (ou ext2)?

5

Eu tenho um volume de raid de software criado pelo mdadm na minha máquina Ubuntu Linux 11. NÃO é a unidade de inicialização. É uma configuração de software RAID 5 feita a partir de 3 unidades sata grandes.

Quando o criei inicialmente, fiz o ext3. Eu aprendi desde então que posso me beneficiar de convertê-lo em ext4 (ou ext2).

Primeiro, gostaria de confirmar que isso faz sentido, que a conversão para, por exemplo, o ext4 me daria um melhor desempenho (pesquisar por aí parece ser um benefício comum do ext4 sobre o ext3).

Em seguida, há alguma razão para considerar ir ao ext2 - ou isso é realmente uma má ideia?

Finalmente, como faço isso?

Pelo que eu entendi (por este site por exemplo), eu preciso desmontar o volume, então execute alguns comandos para converter o volume. Meu fstab está definido como 'auto' para o tipo de sistema de arquivos.

    
por Scott Szretter 18.09.2011 / 17:00

3 respostas

11

As diferenças entre os vários e variados sistemas de arquivos ext [0-9] são mais sobre recursos e menos sobre estrutura. A vantagem é que eles são razoavelmente compatíveis entre si. Por exemplo, você pode montar uma partição ext3 como ext2 e tudo deve funcionar bem. Da mesma forma, você pode montar uma partição ext3 como ext4. Sempre que você fizer uma dessas operações, não terá acesso aos recursos específicos da versão. Por exemplo, se você montar uma partição ext3 como ext2, perderá o acesso ao diário. Da mesma forma, a montagem de uma partição ext3 como ext4 não permite usar os recursos mais recentes, como tempos e extensões de fsck diminuídos, em vez de bitmaps.

Para fazer a conversão, o que você precisa fazer, em um nível alto, é

  1. desmonte a partição
  2. execute a conversão
  3. monte a partição

Portanto, contanto que esse não seja seu disco principal, você pode fazer isso sem ter que desativar o sistema, você só precisa esperar que a partição de destino fique inativa por algum tempo. E, como sempre, antes de mexer no seu sistema de arquivos, você deve fazer um backup completo dos dados, caso tenha alguma perda.

Os comandos exatos que você deve executar para fazer isso são os seguintes. Para o meu objetivo, presumiremos que seu dispositivo de destino é /dev/md0

umount /dev/md0
fsck.ext3 -pf /dev/md0
tune2fs -O extents,uninit_bg,dir_index /dev/md0
fsck.ext4 -yfD /dev/md0

O primeiro fsck é certificar-se de que seu sistema de arquivos está em um estado limpo e são antes de fazer a conversão. Caso contrário, o processo pode falhar, ou pior ainda, pode ter sucesso, mas deixa inconsistências por aí. O comando tune2fs é para brincar com as configurações do sistema de arquivos. Ele foi originalmente criado para ext2, daí a parte '2fs' do nome, entretanto ele é usado para modificar todas as versões do sistema de arquivos ext. Neste caso, estamos habilitando os recursos extras que foram adicionados entre ext3 e ext4. O fsck final está fazendo duas coisas. Primeiro, garante que qualquer limpeza necessária da conversão aconteça e, em segundo lugar, criará ou reconstruirá o índice do diretório.

Depois de tudo isso, você precisará editar o /etc/fstab para ter certeza de que está montado como ext4, embora na verdade a opção auto deva identificá-lo corretamente como tal.

Parabéns, desde que nada tenha pegado fogo / explodido / cometido genocídio em massa / condenado por ter assassinado sua esposa durante o processo, então você deve ser o feliz proprietário de uma partição ext4.

    
por 18.09.2011 / 17:27
2

Sim, a conversão para o ext4 deve oferecer melhor desempenho, por motivos como alocação atrasada. O ext4 também é melhor na prevenção da fragmentação de arquivos, o que também ajuda no desempenho. Além disso, há uma séria conversa sobre o manuseio de sistemas de arquivos ext3 pelo módulo ext4, então provavelmente você usará o mesmo código Pretty Soon Now (TM) mesmo se você permanecer no ext3.

Ir para o ext2 é uma má ideia. Você mudaria para um código antigo, sem todas as melhorias que seus desenvolvedores de sistemas de arquivos dedicados colocaram em ext3 e ext4 ao longo de uma década (o ext3 foi introduzido no outono de 2001).

Como você converte? Existem duas abordagens:

  1. Converter no local. Você encontrou o procedimento correto e Scott Pack também deu em sua resposta.
  2. Backup, crie um ext4 a partir do zero e restaure.

Um é muito menos trabalhoso, mas você não obtém alguns dos benefícios do ext4 para arquivos já presentes no sistema de arquivos (ou seja, eles não serão baseados em extensão).

O backup-mkfs-restore fornecerá todos os recursos para todos os arquivos, e o mkfs.ext4 fará com que o alinhamento dos dados esteja funcionando bem com o software RAID subjacente. Se você tiver o alinhamento correto ao criar o sistema de arquivos ext3, não haverá ganho. Se você cometeu um erro, potencialmente você pode ganhar muito.

Qual método escolher? Você decide. Se o seu sistema de arquivos funciona bem agora, e você só quer rodar o sistema de arquivos atual, você pode converter no local. Se você tiver problemas de desempenho e esperar que a mudança no sistema de arquivos ajude você, eu usaria um método 2.

    
por 18.09.2011 / 17:39
1

ext3 é basicamente ext2 + um diário. A manutenção do diário adiciona uma certa quantidade de sobrecarga à operação regular (dependendo do conjunto de opções de registro no diário), mas melhora a confiabilidade do sistema de arquivos e reduz tempos fsck após uma falha do sistema ou falta de energia. Para dados transitórios que mudam rapidamente e / ou que raramente alteram os dados (ou para sistemas com backup de bateria e / ou disposição para aguardar a conclusão do fsck quando a energia é ligada), a diferença de velocidade pode ser significativo .

Alterar ext3 para ext2 é simplesmente uma questão de mudar o tipo de sistema de arquivos para ext2 e reinicializar. Você terá avisos sobre a montagem de sistemas de arquivos ext3 como ext2, mas você pode fazê-los desaparecer desativando o diário e forçando um fsck: tune2fs -O ^has_journal /dev/whatever

ext4 é basicamente ext3 + muitos recursos novos. O principal deles são as extensões que substituem os antigos "mapas de blocos" de outrora por alocações de memória contíguas, reduzindo a fragmentação e aumentando o desempenho de leitura linear, especialmente para arquivos grandes. Além disso, as opções ext3, como os índices de diretório, estão ativadas por padrão.

Conversão para ext4 pode ser feito rapidamente garantindo que o seu sistema suporte corretamente o ext4, usando uma versão atual do tune2fs para habilitar as várias opções do ext4, alterando o tipo de sistema de arquivos para ext4 e reinicializando, entretanto este método de conversão não converterá qualquer um dos arquivos existentes para usar extensões. Para o benefício completo do ext4, seria melhor fazer backup de tudo, reformatar e restaurar.

Em qualquer direção, pontos de referência apoiar a sua ideia de que você pode fazer melhor do que o ext3.

    
por 18.09.2011 / 18:02