domingo, julho 20, 2008

Adicionando Suporte a XFS no Red Hat Enterprise 5.1

Curiosamente, apesar do sistema de arquivos XFS ser robusto, rápido e confiável (desde que você tenha um bom no-break, é claro), o Red Hat Enterprise Linux não o suporta por padrão. É preciso instalar as ferramentas de nível de usuário e o módulo do kernel para prover esse suporte.

Instalar as ferramentas a nível de usuário é a parte mais simples, basta pegar em qualquer buscador de rpm (http://rpm.pbone.net, por exemplo), e procurar por "xfsprogs". Basta tomar cuidado nas versões do RHEL e se você está utilizando 32 ou 64 bits. No meu exemplo estarei utilizando o RHEL 5.1 64 bits.

Para instalar o módulo do kernel, já é um pouco mais complicado. Caso você tiver a opção de compilar o kernel vanilla, é mais simples, mas muitas vezes o kernel que vem junto com o Red hat deve ser utilizado, devido a dependências de alguns módulos do kernel (se você estiver conectando o servidor a um storage, e o fornecedor do storage só suporta a versão X do kernel, por exemplo). A versão do kernel do RHEL 5.1 é o 2.6.18-53.el5, então basta seguir os seguintes passos:

# uname –r
# mkdir /usr/src/sources
# cd /usr/src/sources
Pegue o RPM fonte de ftp://ftp.redhat.com/pub/redhat/linux/enterprise/[VERSION DIRECTORY]/en/os/SRPMS/kernel-2.6.X.X-EL.src.rpm
# rpm -ivh kernel-2.6.X.X-EL.src.rpm
# cd /usr/src/redhat
# rpmbuild -bp SPECS/kernel-2.6.spec
# cp -r /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18/fs/xfs/. /lib/modules/$(uname -r)/build/fs/xfs/
# cd /lib/modules/$(uname -r)/build

# make menuconfig
ADICIONE O SUPORTE A XFS AQUI

# cd /lib/modules/$(uname -r)/build
# make SUBDIRS=fs/xfs/ modules
# cd /lib/modules/$(uname -r)
# mkdir kernel/fs/xfs
# cp build/fs/xfs/xfs.ko kernel/fs/xfs/
# chmod 744 kernel/fs/xs/xfs.ko
# depmod
# modprobe xfs


Pronto, agora poderá utilizar o sistema de arquivos XFS. Mas não sem usar um bom no-break !!

7 comentários:

Ricardo Sardá disse...

Ola!

Vi uma mensagem sua em um Forum do Bacula. Você teve sucesso em fazer funcionar a TL2000 da Dell com o Bacula?
Se puderes me auxiliar, seria de grande valia!
cadoman@hotmail.com
Grato,
Ricardo Sardá

jczucco disse...

Te respondi, mas não sei se você recebeu a resposta. O hotmail anda descartando muitas mensagens legítimas ultimamente.

Marcelo Terres disse...

Oi Zucco.

Estou com a mesma dúvida do Ricardo quanto ao uso do Dell TL2000 com o Bacula.

Vou poderia me auxiliar ou me indicar alguma documentação ?

mhterres@gmail.com

Obrigado.

Marcelo Terres

Anônimo disse...

Zucco,

Funcionou que é uma beleza. A única alteração é que o make SUBDIR teve que ser a partir de /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386 ao invés de /lib/modules/versao/build

Muito obrigado, grande abraço,
Rodrigo.

Jeronimo Zucco disse...

UPDATE: para realizar desfragmentação de sistemas de arquivos XFS, basta utilizar os comandos:

- Para verificar o quanto está fragmentado:
xfs_db -r /dev/hda1

xfs_db> frag
actual 300086, ideal 299315, fragmentation factor 0.26%

xfs_db> quit


- Para realizar a desfragmentação:
xfs_fsr -v /dev/hda1


Para realizar isso, é necessário instalar mais dois pacotes: dmapi e xfsdump

Jeronimo Zucco disse...

Update do procedimento para Red Hat 6:

- Conforme link http://www.linuxquestions.org/questions/red-hat-31/redhat-6-kernel-compilation-864291/

Grab the src rpm from red hat ftp site (ftp://ftp.redhat.com/pub/redhat/linu...r/en/os/SRPMS/)
install said rpm with rpm -i kernel-2.6.32-71.18.2.el6.src.rpm. (assuming you get the lastest) This will create an rpmbuild directory on your user's home (I think, I've only tried it there)
Go to rpmbuild/SPECS
run rpmbuild -bp kernel.spec
Go to rpmbuild/BUILD/kernel version/kernel version
Run make config or make menuconfig (you can run a x version of this make xconfig (KDE) or make gconfig (GNOME))
run make rpm
wait

Jeronimo Zucco disse...

Mais um update: no Red Hat 6, o XFS passou a ser suportado na versão 64 bits. Você precisa apenas compilar se estiver usando o Red Hat 6 32 bits.

http://blog.2ndquadrant.com/en/2010/04/the-return-of-xfs-on-linux.html