Skip to content

Sistemas de arquivos XFS no CentOS 5

sex, 2011/05/27

Hoje fiz um post falando do p.mapper no CentOS e prometi que explicaria como criar e montar um sistema de arquivos XFS no CentOS. Por padrão o CentOS não dá suporte a este sistema de arquivos, mas possui pacotes em seus repositórios padrão que implementam esse suporte. Bastam alguns poucos comandos para conseguir montar um sistemas de arquivos XFS.

Por Que XFS?

Na verdade, quando tive a necessidade de usar um sistema de arquivos XFS no CentOS não foi uma decisão minha. Um colega de trabalho que me garantiu que era melhor usar o XFS para armazenamento de arquivos de imagem. No momento da implementação não procurei saber se isso era verdade e segui o conselho do colega. Depois fiz uma pequena pesquisa e encontrei um site que diz:

  • Alguns sistemas de arquivos, como o EXT2 e até mesmo o EXT3, mas em menor escala, são extremamente lentos quando você tem milhares de arquivos em um mesmo diretório. Então, para estes sistemas de arquivos, usar subdiretórios é uma boa idéia.
  • Outros sistemas de arquivos, como o XFS, não ficam lentos com a presença de milhares de arquivos em um mesmo diretório. Então não importa se você tem um grande diretório ou vários pequenos subdiretórios.
  • O sistema de arquivos ReiserFS também não fica lento nesta situação, mas este sistema de arquivos não é recomendado para nada que seja importante, pois ele é experimental e possui um histórico de falhas catastróficas.

Imagino que o motivo seja este, mas não sei se o p.mapper tem realmente a característica de possuir milhares de arquivos em um único diretório. Em um outro site encontrei algumas vantagens:

  • É um sistema de arquivos de 64 bits
  • Em sistemas operacionais de 64 bits suporta tamanhos de blocos de até 64KB
  • Possui sistema de quotas próprio
  • Possui uma grande coleção de programas administrativos, o pacote xfsprogs
  • Após uma queda do sistema, a restauração é fantasticamente rápida, quase imperceptível
  • Possui tamanho máximo do sistema de arquivos de 1.125 EB
    • EB significa exabyte. 1 EB = 1.073.741.824 GB
  • Possui tamanho máximo de um único arquivo de 562,5 PB
    • PB significa petabyte. 1 PB = 1.048.576 GB

Com estas informações creio que já seja o suficiente para você se decidir se precisa ou não usar o sistema de arquivos XFS.

Instalação de Pacotes

Instale os pacotes necessários ao suporte do sistema de arquivos XFS no CentOS com o gerenciador de pacotes:

yum install binutils kmod-xfs xfsprogs yum-kmod -y

Particionamento e Formatação

No exemplo da implementação do p.mapper, eu já instalei o CentOS deixando o espaço necessário em disco para a criação da partição XFS. Sendo assim é necessário criar uma nova partição usando todo o espaço restante em disco. O argumento /dev/sda do comando abaixo é apenas um exemplo. Especifique o disco correto a ser particionado:

fdisk /dev/sda

Os comandos internos ao fdisk vão variar de acordo com a situação. No meu caso usei a seguinte sequência de comandos:

  • n – Inicia o procedimento para criar uma nova partição;
  • p – Define a partição a ser criada como uma partição primária;
  • 3 – Define o número da partição como 3. No meu caso é a minha terceira partição;
  • Enter – Aceita a sugestão do fdisk de primeiro cilindro;
  • Enter – Aceita a sugestão do fdisk de último cilindro;
  • w – Grava a nova tabela de partições no disco e sai do fdisk.

Para que as alterações na tabela de partições tenham efeito, é necessário fazer o reboot:

shutdown -r now

Depois do reboot, formate a partição com o sistema de arquivos XFS e defina um label. No exemplo, usei o label label-exemplo:

mkfs -t xfs /dev/sda3
xfs_admin -L label-exemplo /dev/sda3

Se você tiver bastante memória no sistema, algo em torno de 2GB de RAM e uns 3GB de SWAP, recomendo que faça uma checagem no novo sistema de arquivos XFS:

xfs_check /dev/sda3

Migração de Arquivos e Montagem

Esta partição foi criada para montar em /var/www, mas antes preciso migrar os arquivos existentes nesse diretório para dentro do sistema de arquivos XFS. Para isto, monte a partição em um diretório temporário e copie os arquivos:

mount /dev/sda3 /mnt
cp -rpd /var/www/* /mnt
umount /mnt

O uso das opções -rpd no comando cp garantem que todos os arquivos e subdiretórios serão copiados mantendo suas propriedades e permissões e que a cópia não seguirá os links simbólicos, copiando-os como o são.

Opcionalmente, você pode apagar todo o conteúdo em /var/www, já que ele foi copiado para o sistema de arquivos XFS, mas por segurança não fiz isso. Se quiser apagar tudo, recomendo remover antes o alias do comando rm. Basta usar os comandos:

unalias rm
rm -r /var/www/*
alias rm='rm -i'

Para finalizar, edite o arquivo /etc/fstab incluindo uma entrada para a montagem automática da partição XFS no início do sistema operacional. Logo em seguida monte a partição XFS:

echo 'LABEL=label-exemplo /var/www xfs defaults 0 0' >> /etc/fstab
mount /var/www

Finalizando

Após todo o processo, seu sistema de arquivos XFS deverá estar montado corretamente e configurado para ser remontado no reboot do sistema operacional.

Para esta tarefa me orientei através de consultas à página Adding a XFS filesystem to CentOS 5.

Espero ter ajudado.

Anúncios

From → CentOS 5, GNU\Linux

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: