Comme mon travail en tant qu’administrateur système dans une société Web me fait rencontrer de nouveaux problèmes chaques jours, je me suis dit qu'il fallait que le monde profite de mes solutions :).

 

Gros problèmes entre le BTRFS et le NFSv4

Bonjour à tous.

Petit article aujourd’hui pour parler d’un souci, j’espère que ça servira d’avertissement pour certains qui tomberaient dans le même piège que moi.

Le ton est volontairement humoristique, car quand on a ce genre de couille, il vaut mieux en rire, ou du moins, essayer.

C’est assez relié avec les tutos sur les partages nfs déjà disponibles sur ce blog, donc pour ceux qui dormiraient au fond de la classe, prenez note.

Alors, comme vous avez pu le lire, j’ai récemment mis en place un système de partage assez simple mais néanmoins complexe (WTF?) au niveau de mon serveur de fichier et de mes systèmes là ou je travail en tant qu’administrateur système.

Alors comme ce matin j’ai vécu un véritable apocalypse et empêché une équipe de travaillé pendant 30 minutes, je préfère avertir les têtes brûlées qui voudrait un jour tenter de faire les mêmes conneries que moi. 

Ne faites pas comme moi, gardez toujours à l’esprit que quelque chose en développement, même si il parait très cool tout ça, N’EST PAS STABLE!

Quand j’ai formaté mon serveur à l’installation de Debian, j’ai pris la décision d’utiliser le BTRFS comme système de fichier. Pour ceux qui dormais ces 5 dernières années, le BTRFS est annoncé comme le successeur des systèmes journalisés comme la série des ext. Il est en développement depuis 2007 et considéré comme stable depuis mars 2009.
Oui mais… 

On peut se demande, pourquoi ce système si miraculeux, n’équipe donc pas toutes nos distributions linux actuelles? Lui qui annonces vers performance de +500% en compressé comparé à son camarade ext4, reste irrémédiablement dans l’ombre.

Le fait est que malgré tout le travail et les avancées faites sur son sujet, il n’en reste pas moins un système de fichier en développement, non complet et inapplicable à certaine situation.

Mon exemple est le suivant. Voici mon ancienne infrastructure, que vous connaissez bien, vous les deux ou trois qui suivez mon blog :

Comme vous le voyez, j’ai fais le choix du BTRFS et j’exporte en NFSv4 au cotés de la partition du Système linux, transportant la racine du système, sur une partition en XFS.

La première fois que j’ai tenté ce montage, j’ai été confronté à un problème assez étrange. En effet, la partition du NAS, en BTRFS, une fois monté en en NFS, provoquait un très très très gros ralentissement.
En temps normal, un hdparm -t sur la partition NAS donnait une vitesse de lecture variant entre 1 et 5 Mo/s, contrairement aux 110 Mo/s dont j’ai habitude.
Suspectant un problème inhérent au fait de dédoubler un lien nfs partant d’une même source et allant vers une même destination, je me suis donc décidé à essayer de ne tourner qu’avec une seule exportation, limitant dans le même coup les erreurs de démontages sur les postes clients, et j’ai donc donné vie au tutoriel d’hier (ou d’avant hier, je sais plus).

Bref, donc cette configuration fut modifiée et j’ai pu aboutir au bout de quelques recherches à l’ensemble suivant :

Hier soir je clos définitivement l’affaire, prépare à distance mes systèmes, et, prévoyant, met mon réveil plus tôt pour être premier au boulot, on sait jamais.

Ce matin, les 4 premiers postes démarrent sans encombre et je vais me fumer une cigarette, certes matinale mais néanmoins méritée pour célébrer ma victoire sur cette hérésie qu’est l’infrastructure de développement local standard des sociétés de développement web d’aujourd’hui.

En revenant de cette délicieuse cigarette, le 5e poste est allumé et… 


 

D’un coup, tout les systèmes commencent à ralentir.

Suspectant un ralentissement du réseau, je cherche d’abord dans ce sens, avant de me rendre compte que mes hdparm ne passent plus. Chaque consoles ouvertes avec lesquelles je lance un hdparm me lâchent, et me guide désespérément vers la triste réalité que me réserve le /var/log/syslog.

Pour la faire courte, toute la couche BTRFS avait sauté d’un coup à la suite de l’appel nfsv4 du 5e poste. Je me retrouve avec une énorme erreur kernel, révélée en fait par le hdparm.

Je me retrouve donc à devoir repasser sur notre vieux serveur de fichier, celui qui crash dès qu’une porte claque trop fort.

Ouaip, donc un conseil :

LE BTRFS EN NFSv4 POUR LE PARTAGE MASSIF, ON ÉVITE!

Et moi je reformate ma partition de serveur en ext4. Ça m’apprendra a faire des expériences.