Se você estiver executando o Linux, e particularmente se estiver executando um banco de dados no Linux, tem sido difícil recomendar qualquer sistema de arquivos diferente do ext3 simples nos últimos anos. Algumas das alternativas que pareciam interessantes em um ponto – jfs, ReiserFS – são completamente abandonadas neste ponto. O que já está quase viável há algum tempo é o XFS, originalmente um projeto SGI. E está de volta a estar no centro das atenções novamente esta semana.
O XFS sofria de vários problemas no passado. Como foi projetado para hardware estável, não era tão robusto no hardware padrão de PC barato no início; um pouco disso foi limpo há dois anos. Ele tinha esse problema estranho com arquivos zerados que assustou algumas pessoas. Ele foi tratado como um cidadão de segunda classe em distribuições Linux orientadas para negócios como RedHat, exigindo que você compilasse seu próprio kernel; mesmo no CentOS menos restritivo, você teve que fazer algumas etapas de configuração estranhas para adicionar suporte a XFS, e o resultado obviamente não era suportado. E como um dos primeiros sistemas de arquivos a ativar e utilizar agressivamente as barreiras de gravação, as implantações eram vulneráveis a unidades e controladores que não liberavam seus caches quando solicitados, um problema que você não encontra com tanta frequência em hardware moderno se configurar certo (exceto para SSDs, mas isso é outra história).
Então por que se incomodar? Bem, o desempenho é uma das principais razões. Eu me encontrei trabalhando com o XFS novamente ao trabalhar com o software gratuito Single Node Edition da Greenplum recentemente. Greenplum me disse que eles não recomendavam nada além de XFS para instalações de alto desempenho e, dadas as semelhanças subjacentes com o PostgreSQL da comunidade, senti que valia a pena investigar por que isso era um pouco mais.
O timing disso acabou sendo perfeito. Uma das outras limitações do ext3 é que em hardware comum ele suporta apenas 16 TB de armazenamento. Como você pode colocar tanto armazenamento em um rack de disco de tamanho médio agora, isso claramente não é suficiente para sistemas de ponta hoje em dia, muito menos daqui a alguns anos. Percebendo isso, a RedHat está revivendo seriamente seu suporte ao XFS em sua distribuição do Linux. O RHEL 5.4, lançado há alguns meses, o adicionou novamente como um módulo opcional para alguns clientes. Você ainda não podia instalar no XFS, e mesmo a versão do CentOS não suportava instalações de 32 bits, mas estava claramente dando passos em direção ao mainstream novamente.
Ontem, o primeiro beta público do RHEL6 foi lançado, e o XFS voltou a estar no conjunto de recursos principais. Ele está ao lado do ext4 na lista de sistemas de arquivos suportados, apontando sua adequação para grandes instalações em particular. Portanto, agora posso dizer às pessoas que eles têm suporte a XFS disponível de forma um tanto grosseira no RHEL/CentOS 5.4, com a expectativa de que seja um sistema de arquivos suportado de primeira classe, pois os sistemas são atualizados para o RHEL6 e seus derivados no futuro, e tenho alguma esperança de que será confiável.
Com o suporte ao Linux corporativo e, consequentemente, o lado da estabilidade percebida do código XFS finalmente sob controle novamente, e quanto ao desempenho? Bem, acontece que Greenplum estava certo sobre o XFS valer a pena para ser executado. Peguei meu servidor de teste e reformatei uma de suas unidades moderadamente rápidas com três combinações diferentes de sistema de arquivos/montagem:ext3 ordenado, ext3 journal e xfs. Após três execuções do bonnie++ 1.96 com cada sistema de arquivos, os resultados que vi se dividiram assim:
- ext3 ordenado: 39-58 MB/s de gravação, 44-72 MB/s de leitura
- diário ext3: 25-30 MB/s para gravação, 49-67 MB/s para leitura
- xfs: 68-72 MB/s para gravação, 72-77 MB/s para leitura
Embora os melhores resultados de leitura do ext3 tenham se aproximado de níveis semelhantes ao que o xfs era capaz, em média ele se saiu muito melhor. E os resultados de gravação foram pelo menos 25% melhores em todos os casos. Eu também gostei da taxa de transferência mais apertada e previsível; desempenho inconsistente é algo com o qual muitas vezes luto no ext3.
Normalmente, não sou um dos primeiros a adotar novos lançamentos do Linux, mas o RHEL6 beta com suporte completo a XFS substituiu o novo lançamento do Ubuntu completamente abaixo do esperado no topo da minha lista de sistemas operacionais para instalar em seguida. Não é sempre que você vê a tecnologia do sistema de arquivos ter uma segunda chance de impressionar, mas o XFS parece ter feito uma transição inesperada de volta para completamente relevante novamente, por enquanto. Não tenho certeza por quanto tempo isso será verdade, com o ext4 já disponível e o btrfs se aproximando da qualidade de produção ao atingir recentemente um formato de disco estável. Será interessante ver como esse conjunto revigorado de opções de sistema de arquivos no Linux se desenrola.