Migrando para o Ext4, o novo file system Linux

Publicado por Andre Luiz Facina em 04/01/2009

[ Hits: 16.204 ]

 


Migrando para o Ext4, o novo file system Linux



Todo mundo já ouviu falar do novo sistema de arquivos Ext4, o sucessor do velho e bom ext3. O ext4 ainda se encontra em fase de desenvolvimento e por isso ainda é chamando de ext4dev, mas a partir da versão do kernel 2.6.27 o filesystem atingiu uma boa maturidade, o que permite migrarmos aos poucos, mas sempre mantendo a cautela. =)

Algumas das melhorias do Ext4 em relação ao Ext3 são as seguintes:
  • Melhorias na pré-alocação: Um programa usará um espaço do disco, mas não na hora da execução, então ele reserva o espaço que utilizará, fazendo uma pré-alocação, ou seja, ele guarda aquele espaço para o programa e ninguém mais poderá utilizar;
  • Tempo de alocação estendido: O ext4 conseguirá segurar a alocação do espaço em disco até o último momento, isso aumentará a performance;
  • Maior número de subdiretórios: No ext3 o limite de subdiretórios era de 32000, no Ext4 não há limites;
  • Checksum do Journaling: É gerado um checksum do Journaling, garantindo uma restauração mais rápida e a prova de falhas.
  • Desfragmentação On-Line: O ext3 deixava um pouquinho de fragmentação no disco, no ext4 não existe mais fragmentação, pois o ext4 vai desfragmentando enquanto os arquivos vão sendo alocados.
  • Undelete: É uma ferramenta disponível no ext4 que impede que um arquivo seja apagado. Lembra dos atributos estendidos do ext3? É bem parecido.
  • Checagem rápida do filesystem: A estrutura de organização de blocos permite que partes não usadas do disco sejam puladas, o que economiza muito tempo na checagem do filesystem.

Agora vamos para a instalação...

Git:

É preciso instalar o novo pacote do e2fsprogs e para isso utilizamos o git para baixar a nova versão diretamente do site do Kernel.org.

# wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.tar.bz2
# tar -jxvf git-1.6.0.tar.bz2
# cd git-1.6.0
# ./configure
# make
# make install


e2fsprogs:

# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
# cd e2fsprogs/
# ./configure
# make
# make install


Se você verificar perceberá que apareceram dois novos executáveis: mkfs.ext4 e mkfs.ext4fs, mas calma, ainda falta compilar o kernel. =)

Compilando o kernel para suporte ao Ext4:

# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.8.tar.bz2
# tar -jxvf linux-2.6.27.8.tar.bz2 -C /usr/src
# ln -s /usr/src/linux-2.6.27.8 /usr/src/linux
# cd /usr/src/linux
# cp /boot/config-xx.xxx.xx /usr/src/linux/.config
# make menuconfig


Habilite as seguintes opções:

File systems ->
Ext4dev/ext4 extended fs support development (EXPERIMENTAL)

Opcional:

Ext4dev extended attributes
Ext4dev POSIX Access Control Lists
Ext4dev Security Labels

# make bzImage
# make modules
# make modules_install

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27.8
# cp System.map /boot/System.map-2.6.27.8
# mkinitrd /boot/initrd-2.6.27.8 2.6.27.8 (Utilizei o Centos nessa compilação, para gerar o initrd no Debian utilize o parâmetro -o seguido do destino, mkinitrd -o /boot/initrd-2.6.27.8 2.6.27.8)
# cp .config /boot/config-2.6.27.8


Editando o Grub:

# cd /boot/grub/
# vi menu.lst


title CentOs - Ext4
root(hd0,0)
kernel /boot/vmlinuz-2.6.27.8 ro root=LABEL=/
initrd /boot/initrd-2.6.27.8

Calma, estamos quase lá. Vamos rebootar o sistema e escolher o novo kernel para o boot.

Com o novo kernel, verifique se o módulo do ext4 foi carregado, isso se você compilou ele como módulo.

# lsmod | grep ext4

Se não carregou...

# modprobe ext4dev

Formatando uma partição:

# mkfs.ext4dev /dev/sda?

ou

# mkfs.ext4 /dev/sda?

Tente montar a nova partição formatada com o ext4:

# mount -t ext4dev /dev/sda? /mnt

Se o Linux retornar o seguinte erro no dmesg:

[ 6289.554461] EXT4-fs: sdb1: not marked OK to use with test code

Utilize o tune2fs para resolver o problema:

# tune2fs -E test_fs /dev/sdb1

Pronto, tente montar novamente e verifique...

# mount -t ext4dev /dev/sda? /mnt
# mount
/dev/sdb1 on /mnt type ext4dev (rw)

Agora divirta-se com os testes e beanchmarks. Vale a pena deixar um pequena partição para ir se familiarizando com o futuro sistema de arquivos padrão do Linux. =)

Outras dicas deste autor

Ipband - Monitorando sua conexão

Convertendo uma chave privada OpenSSL para uma chave pública/privada do OpenSSH

Quotas de disco no OpenBSD

Backups simples e seguros com o ssh e dd no Linux

Renomeando arquivos com caracteres especiais

Leitura recomendada

Erro ao instalar VirtualBox no BackTrack 5 - DKMS

Bibliotecas para o kernel

Passos Rápidos - Compilação do Kernel

O que é Linux

Module-assistent, coisa linda!

  

Comentários
[1] Comentário enviado por k4mus em 05/01/2009 - 18:53h

eu sempre usei reiserfs .. imaginava q o reiserfs era melhor q o ext3. Vc sabe me dizer qual o melhor?/

grato

[2] Comentário enviado por netbug em 05/01/2009 - 19:18h

k4mus, depende muito. Em algumas situações o ext3 se sai melhor e em outras o reiserfs se sai muito melhor.
Depende do que vc vai armazenar e das aplicações que vc vai utilizar.

[]'s

[3] Comentário enviado por k4mus em 06/01/2009 - 09:11h

Sempre usei o reiserfs pra computadores de uso "pessoal" em casa mesmo .tal. E em alguns maquina q uso como firewal proxy..etc. Ja coloquei ele tbm ...tem algum problema? .pra servidores por exemplo, qual o mais indicado..ext3 ou reiserfs??


Grato

[4] Comentário enviado por annakamilla em 14/01/2009 - 23:41h

axo que seria interessante será que dá para implantar no lfs com esses comandos.





[5] Comentário enviado por astdarkness em 24/02/2009 - 02:28h

Interessante!!!!!

[6] Comentário enviado por premoli em 26/08/2009 - 21:52h

Olá sou novato no Linux e gostaria de atualizar meu sistema de arquivo de ext3 para ext4. Haveria um jeito mais fácil tipo #apt-get XXXX ext3toext4, tal ... ??

[7] Comentário enviado por premoli em 26/08/2009 - 21:54h

Talves baixar o novo cd e tentar atualizar?
Viva o Linux!!!

[8] Comentário enviado por netbug em 27/08/2009 - 08:49h

Premoli,
vc pode utilizar o tune2fs para converter uma particão ext3 para ext4, mas para isso vc precisa primeiro ter suporte no kernel ao ext4 e ter instalado o novo pacote e2fsprogs.

Veja o link abaixo:
http://www.cyberciti.biz/tips/linux-convert-ext3-to-ext4-file-system.html


Abraco,
Andre Facina

[9] Comentário enviado por ulisses_c em 12/09/2009 - 01:02h

Olá gente blz ?

galera eu sei que o tamanho maximo de um arquivo em reiserfs e em ext3 é 2gb e lí na wikipedia que um outro sistema de arquivos linux muito bom é o XFS que suporta arquivos de 16 Terabytes tanto que estou até pensando em mudar a para ele. gente vcs poderiam me falar quanto que é o tamanho maximo de um arquivo em ext4 pois se for maior que 2gb e menor do que os 16TiB pra mim ja é um bom começo. e tem outro detalhe eu ja li uma vez que o tamanho maximo que o linux suporta é 2Gb por arquivo e ai fico pensando como o XFS pode suportar tanto se o kernel limitar a 2Gb ???

e ai o que me dizem e será que o tal XFS é rapido ou só serve para arquivos grandes pois se eu comprar uma hd de 1TB quero salvar umas imagens de DVD que tenho aki em casa algumas possuem 9 GB.

sei que já falei de mais então até mais ver. :)

[10] Comentário enviado por netbug em 13/09/2009 - 00:18h

Boa noite Ulisses_c,

Primeiramente, o ext3 e o reiserfs não são limitados a esses tamanhos máximos de arquivos, até pq aqui em casa eu tenho tanto partições com ext3, reiserfs e ext4, e manipulo sem dificuldades arquivos .isos de dvd, com tamanhos de 3G e 4G +ou-.
No link abaixo vc verá os limites de tamanho de arquivos dos principais filesystems:

http://www.h-online.com/open/The-Ext4-Linux-file-system--/features/113403
(está no final da página)

A respeito do limite que o kernel impõe sobre os tamanhos dos arquivos isso eu nunca ouvi falar, até pq isso depende da arquitetura do filesystem e não do kernel.

Sobre o uso do XFS para arquivos grandes realmente é verdade, pois ele tem melhor desempenho com arquivos maiores. O reiserfs tem melhor desempenho com arquivos menores. Uma observação, o XFS até onde eu conheço é muito mais fácil de corromper a estrutura do sistema de arquivos por causa de desligamentos incorretos, mas nada que o uso do bom e velho fsck (xfs_repair) não resolva =)

E para finalizar, com certeza absoluta vc não vai conseguir extrapolar esses limites definidos pelos sistemas de arquivos, até pq já vi servidor linux rodando com partições gigantes em storage utilizando ext3 e reiserfs e funciona sem nenhum problema. Nesse seu caso eu recomendo vc verificar o que será armazenado nesse seu disco e pesquisar na internet sobre os benchmark e dai sim escolher o melhor sistema de arquivos para se utilizar, com base em performance e segurança.

Abraço,
André.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts