Il y a quelques années de cela, je m’étais penché sur les différents systèmes de fichiers existants sous Linux. J’avais retenu XFS pour deux points:

  • il était largement plus performant avec un noyau 2.6 que le système plus traditionnel ext3
  • il proposait de base les ACL (alors qu’il fallait à l’époque patcher son noyau pour pouvoir en disposer sur l’ext3).

J’avais rejeté reiserfs et jfs que je trouvais trop confidentiels.

Le site Debian Administration a publié un article complet sur les comparaisons des systèmes de fichiers existants. Il présente de manière bien plus complète que ce billet les avantages / inconvéniants de chacun.

Cela fait plusieurs fois que j’ai vu des systèmes de fichiers XFS se corrompre (jusque là, j’ai toujours récupéré la situation avec des xfs_repair), mais il y a quelques jours, j’ai vu avec stupéfaction dans mes logs d’un serveur un production :

 Filesystem "sdb1": XFS internal error xfs_da_do_buf(2) at line 2273 of file fs/xfs/xfs_da_btree.c.  Caller 0xf8a989e8  <f8a983e8> xfs_da_do_buf+0x3d8/0x920 xfs  <f8a989e8> xfs_da_read_buf+0x58/0x60 xfs  <f8a989e8> xfs_da_read_buf+0x58/0x60 xfs  <f8ab1984> xfs_itobp+0x114/0x260 xfs  <f8a989e8> xfs_da_read_buf+0x58/0x60 xfs  <f8a9c3bd> xfs_dir2_block_getdents+0xad/0x360 xfs  <f8a9c3bd> xfs_dir2_block_getdents+0xad/0x360 xfs  <f8ad1ccf> xfs_access+0x4f/0x60 xfs  <f8ad1ccf> xfs_access+0x4f/0x60 xfs  <f8a8a025> xfs_bmap_last_offset+0xc5/0x130 xfs  <f8a9b710> xfs_dir2_put_dirent64_direct+0x0/0xa0 xfs  <f8a9b650> xfs_dir2_isblock+0x30/0x80 xfs  <f8a9b710> xfs_dir2_put_dirent64_direct+0x0/0xa0 xfs  <f8a9ae89> xfs_dir2_getdents+0xb9/0x160 xfs  <f8a9b710> xfs_dir2_put_dirent64_direct+0x0/0xa0 xfs  <f8ad52f0> xfs_readdir+0x60/0xc0 xfs  <f8add7c6> linvfs_readdir+0x116/0x230 xfs  <c0175687> vfs_readdir+0xa7/0xc0  <c0175980> filldir64+0x0/0x100  <c0175aee> sys_getdents64+0x6e/0xaa  <c0175980> filldir64+0x0/0x100  <c01061eb> syscall_call+0x7/0xb

Pourtant, la machine n’avait pas rebooté violemment, rien de spécial à signaler. XFS est un système de fichier capable de se corompre en fonctionnement “normal” ! Problème similaire sur un portable où c’était la partition racine qui était concernée et où xfs_repair n’a pas été en mesure de réparer : il a fallu reformater et donc réinstaller !

Je ne suis pas le seul à avoir ce genre de considérations. Cet été, Martin f. Krafft a publié un billet sur son blog où il expliquait ses problèmes avec XFS.

Cela étant, maintenant, je crois que pour moi, ça sera de l’ext3 partout !

3 thoughts on “Pourquoi j’arrête le XFS !

  1. Juste un petit segfault dans le module XFS d’un serveur de fichiers cette semaine pour moi… impliquant un reboot de la machine qui tombait pas forcément au bon moment.
    Je compte également arrêter le XFS sur mes prochaines installations.

  2. Ah ben c’est malin, après m’avoir chaudement recommandé XFS pour ses perfs sur noyau 2.6 🙂

    Ceci dit, ça tombe pas trop mal vu que je comptais faire une sauvegarde de mon serveur sous peu (un des disque du RAID qui est en train de mourir et la vieille crainte de perdre quelques Go de photos).

    D’ailleurs à ce sujet, quel support conseillerais tu pour des sauvegardes de l’ordre de la 10aine de Go ? J’ai envisagé
    – le DVD (avec les problèmes de longévité associés aux disques optiques
    – le DD externe (avec les problèmes de persistance, de conservation et de crash de tête)
    – la bande (avec les problèmes de lenteur)
    – la machine de backup complète (avec les problèmes de cout !)

  3. Salut Mith !

    Il n’y a que les imbéciles qui ne changent pas d’avis !

    Plus sérieusement, je n’ai rencontré de souci que sur une machine, peut-être est-ce du à la configuration du contrôleur RAID (hardware), et c’est entre autre, de loin la machine la plus solicitée en lecture / écriture que je connaisse (serveur principal d’une société que nous connaissons bien tous les deux).

    Concernant ta problématique de sauvegarde, je vote sans hésiter disque dur ! Soit disque dur externe (personnellement j’utilise un disque dur USB dans un boîtier, ça résiste plutôt bien), soit même interne avec un rsync interne. Ce sera dans tous les cas le support le moins fragile et sans doute le moins cher.

    Pour le serveur séparé, c’est un must, le must du must étant de l’avoir en dehors de chez toi ;-).

Share Your Thought