XFS (eXtendend File System) que é e cómo desfragmentalo
Explicarei que é XFS (eXtendend File System) a rasgos xeráis e cómo desfragmentalo que é o obxetivo final do post.
Que é XFS ?
XFS (eXtendend File System ) é un sistema de arquivos de 64 con journaling (rexistro de bitacora) de alto rendemento.
Foi incorporado a linux na versión 2.4.25 cando se considerou o suficientemente estable pra incorporalo na rama principal de desenrolo do kernel.
É o sistema de arquivos que ofrece Journaling máis antigo dipoñible pras plataformas UNIX, cun código maduro, estable e ben depurado.
En Maio do 2000 foi liberado e posteriormente portado a GNU/Linux entre o 2001 e o 2002.
Soe recomendarse pra sistemas de 64 bits, debido a súa óptima xestión en bloques de 64 bits, ademáis de ofrecer unha áxil xestión de grandes capacidades de almacenamento, moi recomendable en servidores, chega a soportar ata 8 EB ( Exabytes ).
Pra facerse a idea no 2007 o tráfico anual de internet se estimou entre 5 e 9 Exabytes.
No 2015 nuns 2021 Exabytes.
E o tamaño de internet ( entendido como todo o almacenamento dixital global ) se estima que son uns 500 Exabytes no 2009, fonte: The Guardian ).
Fragmentación en XFS
Crias que só os sistemas NTFS e FAT de microsoft se fragmentaban? Eso é algo moi común de creer, mais todo sistema de arquivos en menor ou maior medida se acaba fragmentando, pois os blocos que se borran, se enchen con outros datos, e salvo que teñas algún servizo de fondo reasignando blocos, podes ter fragmentación no mesmo.
Outra cousa é que algúns sitemas de arquivo, non escriban nestos blocos salvo que estén seguros de que todo o arquivo caberá nese espazo, supoño que irán escribindo no espazo final cando non atopan un oco o suficientemente grande pra o novo arquivo.
No meu caso prefiro usar XFS polo recente apoio que está a ter por parte de Red Hat, que ademáis fai mellor uso dos procesadores de 64 Bits, pra máis info: wikipedia xfs.
Erros que tiven con XFS
Esto me parece que debo mencionalo xa que noutros lugares non o fan, e a min pasoume algunha vez, xfs dicen que é moi seguro, que non perde os datos, mais en unidades externas USB non o recomendaría, pois no caso de unha desconexión involuntaria ( un usb frouxo ) pode dar lugar a un erro no rexitro do Journaling, que logo se salda con que podes recuperalos teus arquivos, mais estos se dependen dun inode mal rexistrado, mudarán o nome polo do seu inode, incluido os directorios, mais os subdirectorios algúns conservarán o seu nome.
Só me pasou nun disco duro usb externo, que se alimenta polo propio USB, mais bueno como pasou varias veces, que por mencionar non quede.
En fin, pra USBs recomendo usar EXT4.
Cómo desfragmentar XFS
Consutalo estado de fragmentación dunha partición
Pra consultalo usaremola ferramenta de XFS chamada “xfs_db” ( eXtendeFileSistem_DeBuger )que nos servirá pra depuralo e obter información sobre o estado da mesma.
Soe vir instalado nas principais distros.
Se non fora así en Fedora podes instalar o paquete “xfsdump”:
# dnf search xfs
Last metadata expiration check performed ----.
========================= N/S Matched: xfs =========================
---
xfsdump.armv7hl : Administrative utilities for the XFS filesystem
---
Como vemos “xfsdump” é o paquete con utilidades que nos ofrece Fedora, en Archlinux ven co sistema.
Agora comprobamolo estado de fragmentación dunha partición XFS:
# xfs_db -c frag -r /dev/<partición>
Se supera o 10% se recomenda desfragmentar, por debaixo diso non afecta moito, menos do 1% de fragmentación sería considerado desfragmentado.
Con “-c frag” se envía directamente o comando que queremos executar a xfs_db pra consultar só o estado da fragmentación, sen o “-c frag” nos dará acceso ao prompt de xfs_db pra realizar consultas.
Exemplo de consulta da fragmentación:
# xfs_db -c frag -r /dev/mmcblk0p3
actual 66155, ideal 65615, fragmentation factor 0.82%
Como se pode apreciar, ten unha fragmentación do 0.82%, xa que o desfragmentei hai uns días e tiña o 4% fragmentado (nun sistema onde baixo e comparto varias distros GNU/Linux por torrent).
Desfragmentar unha partición XFS
Pra desfragmentar XFS se usa “xfs_fsr” que ven no paquete xfsdump que instalamos.
xfs_fsr sería “eXtendedFileSystem_FileSystemReorganicer” e como o seu nome indica se encarga de reorganizalos bloques XFS.
Pra desfragmentala partición XFS sería:
# xfs_fsr -v /dev/mmcblk0p3
/ start inode=0
ino=1928
extents before:2 after:1 DONE ino=1928
ino=219417
extents before:2 after:1 DONE ino=219417
ino=219395
---
Dependendo do grado de fragmentación levará máis ou menos tempo. Pódese omitilo verbose “-v” pra que non amose nada ou incluso engadir ata tres niveis con “-vvv”.
Unha vez rematado, estos serían os resultados:
# xfs_db -c frag -r /dev/mmcblk0p3
actual 65808, ideal 65615, fragmentation factor 0.29%
Onde vemos que acadou o 0.29%, cifra que custaría máis baixar, mais por debaixo do 10% xa estaría ben.
Cando tes particións de varios GiB ou TiB, chegas a notar unha mellora na velocidade de acceso cando baixas do 10% de fragmentación.