XFS (Extended File System)

Apresentação Geral:

Eduardo Severo
3 min readDec 11, 2022

O Sistema de Arquivos XFS foi criado pela empresa Silicon Graphics (SGI), que na época utilizava o Sistema Operacional IRIX (um UNIX proprietário da SGI com código fonte fechado, fora isso a empresa também utilizava arquitetura “MIPS” -> RISC na época bem diferente dos comuns do mercado) com o sistema de arquivos EFS (Extent File System) que era baseado no FFS (Fast File System)), devido ao lançamento do processador Pentium Pro com arquitetura x86 dos processadores da Intel (rivalizava com os MIPS utilizados pela SGI) o mercado começou a migrar para esses processadores juntamente com o NT4.0 devido uma grande melhora (removido o driver gráfico do Modo Usuário e inserido no Modo Núcleo, reduzindo chaveamento de contextos e por consequência melhorando a modelagem 3D, edições de vídeo etc…), a SGI começou a falir e por fim tornou o XFS OpenSource, aberto para a comunidade juntamente com a licença GPL, realizaram mudanças no XFS para rodar no Linux que também é derivado do UNIX no final.

O projeto acabou ficando descontinuado, pois as pessoas que trabalhavam nele foram migrando para outros projetos e praticamente se tornou obsoleto e sem manutenção, porém em meados de 2010 a empresa Red Hat adotou o projeto e começou a injetar dinheiro alocando vários programadores e após várias melhorias foi adotado como sistema de arquivos padrão no RHEL 7 (Red Hat Enterprise Linux).

Vantagens:

  • Alta Performance (ilustração a seguir com teste de performance ao remover 60 GiB de Arquivo em um HD Seagate ST373454SS SATA Disk)
  • Altamente Escalável: (pois no XFS tudo que é endereçável utiliza a matemática “Arvore B+” com um teto de 16 ExaBytes para Partições e 8 ExaBytes para tamanho máximo de arquivo, enquanto no EXT4 utiliza-se Mapa de Bits (BitMap) e possui um teto de 16 TeraBytes como tamanho máximo para Partições e também para tamanho máximo de arquivo conforme ilustração de tabela a seguir)

Desvantagens:

  • Falta de Checksums de dados ou ECC, o que o deixa vulnerável a corrupção silenciosa de dados (bit rot).
  • Não permite diminuir o tamanho da partição.
  • XFS e EXT4 tem praticamente o mesmo desempenho para Desktop.

Journaling (é suportado pelo XFS):

  • Robustez diante de falhas evitando inconsistências no FS
  • Um log das tarefas que o sistema de arquivos deve executar é salvo no disco antes de iniciar a execução.

Exemplo deleção no UNIX:

  1. Remover o arquivo do seu diretório
  2. Liberar o i-node para a lista de i-nodes livres
  3. Liberar os blocos do disco para a lista de blocos livres
  • Diante de uma falha do sistema o log é verificado para determinar as tarefas que já foram executadas e terminar as que faltaram
  • Exemplos: NTFS, ext3, ext4, HFS+, XFS…

Principais características do XFS:

  • Fragmentação de Arquivos
  • Considerado um dos melhores sistemas de arquivos para Banco de Dados
  • Utiliza muitos recursos de cache com memória RAM, e para utilizar o XFS é recomendado utilizar sistemas que possuem redundância de energia.

Conclusão:

Assim como qualquer outro sistema de arquivos, o XFS possui vantagens e limitações, porém é uma opção bem considerada no mundo Linux.

Referências Bibliográficas:

https://pt.wikipedia.org/wiki/XFS

https://www.usenix.org/system/files/login/articles/140-hellwig.pdf

https://mjmwired.net/kernel/Documentation/filesystems/xfs-delayed-logging-design.rst

https://mjmwired.net/kernel/Documentation/filesystems/xfs-self-describing-metadata.rst

PDF sobre Sistemas Operacionais e FileSystem adquirido em Curso de Segurança da Informação (SENAC TECH 2019).

Referência de Implantação:

https://www.thegeekdiary.com/how-to-create-an-xfs-filesystem/

https://github.com/torvalds/linux/tree/master/fs/xfs

https://github.com/christianh814/notes/blob/master/documents/xfs.md

--

--