Outils du site

fr:blog:post_060

De l'importance des backups

Chronique de Zatalyz

De dimanche à mercredi, la plupart des services web de Khaganat n'étaient plus accessibles. Maintenant que c'est réparé, il est temps d'expliquer ce qui s'est passé en coulisse.

CC0, Unsplash, Lee Junda

Dimanche matin, tôt pour un dimanche, Tycho essaie d'aller sur le site et là… c'est le drame. Plus de site. Comme il fait partie de l'équipe des supersysadmins, il se connecte au serveur et jette un œil sur ce qui se passe.

Ce n'était pas une panne basique qui pouvait se résoudre facilement. L'alerte est donc passée : branle-bas de combat, appel aux sysadmins !

Les sysadmins de Khaganat sont un petit groupe aux talents variés. Des bidouilleuses du dimanche, des pro qui viennent filer un coup de main, des expertes d'un sujet ou de l'autre. Nous avons depuis longtemps décidé de lutter activement contre le bus factor : il faut qu'il y ait toujours plusieurs personnes capables d'agir sur les serveurs. Il y a actuellement huit personnes dans l'association qui peuvent intervenir dans ce genre de crise, et dans le cas présent ce n'était pas de trop. Par ailleurs, tout ça reste bénévole donc… rien n'oblige à bosser un dimanche.

Cependant, ce dimanche-là, presque toutes ont été présentes à un moment ou un autre. Rollniak a ouvert un pad pour qu'on puisse noter au fur et à mesure ce qu'on faisait. Avec Deed, Tycho et Vv222, ils ont commencé à enquêter, éliminant divers facteurs de panne. Je les rejoins un peu plus tard, et devant l'étendue des dégâts, décide de louer un serveur afin de sauvegarder en urgence tout ce qui est encore accessible.

Car, vers midi, une chose était certaine : Jukni avait disparu. Jukni, c'est le petit nom de la machine virtuelle hébergeant la plupart des données de Khaganat : forum, wiki, nextcloud… Disparue bien comme il faut. Même pas une trace sur https://archive.org/.

C'est le moment où on espère très fort que les backups marchent bien. C'est le moment, aussi, où on se dit que si les backups ne marchent pas, la dernière version accessible date de… 2017. Puis, après exploration, ouf, il y a aussi une version datant de 2018. Un an et demi de travail perdu, c'est moins grave… Gloups !

Au soir, notre grand Manitou Shepeng arrive. C'est le plus expert d'entre nous sur l'architecture de Khaganat, et le seul à savoir réellement restaurer un backup. Bon, sans lui, on aurait fini par suivre les tutos pour le faire… mais autant laisser les pros agir, non ?

Donc Shepeng ouvre la boîte et… Oui, jukni a bien été sauvegardé. Tout va bien ?

Non… Parce qu'il manquait un dossier essentiel dans la sauvegarde, celui contenant les wikis et autres. Je manque alors de faire une crise cardiaque, me fustigeant inutilement sur le fait de n'avoir jamais trouvé le temps de vérifier ça1). Mais il est tard, on a tous peiné longuement et à ce stade, il vaut mieux dormir avant de rajouter des erreurs humaines aux bugs de la machine.

Le lendemain, Shepeng s'assure de récupérer tout le contenu du serveur. Puis il tente diverses incantations pour ressusciter jukni des profondeurs. Et après quelques tentatives ratées… Il y arrive ! Jukni n'est plus morte ! Là aussi, l'ensemble est envoyé sur le serveur de sauvegarde. En parallèle, je mets les wikis techniques fraîchement récupérés accessibles sur un de mes serveurs personnels. C'est plus facile de bidouiller avec la doc… Je mets aussi en place une page « on est en panne » afin que nos visiteuses ne tombent pas sur rien.

Ces actions nous auront pris toute la journée… Mais après ça, on dort mieux !

Maintenant que les données sont sauvées, on s'attaque à comprendre le détail de ce qui a foiré.

Les causes de l'incident

Ce qui a déclenché l'incident reste assez obscur. Ce qui est sûr, c'est que le serveur a eu besoin de redémarrer tout seul le samedi soir, et qu'à la suite de ce redémarrage, il a lancé un fsck (une commande vérifiant l'intégrité des disques). Il est possible que ce fsck n'ait pas fait plaisir à LVM2 (le logiciel, avec Xen, qui nous permet d'avoir des machines virtuelles), mais il est tout autant possible qu'une surcharge électrique temporaire ou un neutrino mal placé ait mis du bazar. Ou n'importe quelle théorie impliquant des reptiliens, les démons de la Crypte et des failles spatio-temporelles. Ce qui était sûr, c'est que LVM2 a perdu la trace de jukni, ce qui a entraîné en cascade des soucis avec d'autres services, finissant par mettre un bazar monstrueux.

Une fois les données sauvegardées, nous avons corrigé ce qui faisait buguer LVM2, redémarré des services, puis le serveur, puis nous avons lancé quelques tests sur la machine. Et… tout va bien. Les disques durs sont vieux, mais encore fonctionnels et sans erreurs. Tout tourne ou semble le faire.

Nous avons aussi profité de l'interruption pour faire la mise à jour vers Buster, la nouvelle version de Debian. On n'était plus à quelques heures près. Après ça, nous avons relancé les VM. Et nous voilà à mercredi. Quatre jours de panne pour un gros plantage…

Actuellement, tout semble être revenu à la normale. Espérons que tout aille bien.

Qu'aurions-nous pu faire de plus ?

Rien.

Le gros problème de Khaganat, comme de tous les projets libristes, c'est le manque de moyens pour servir nos ambitions démesurées. C'est ce qui fait qu'on a des serveurs au rabais (pas chers, mais pas super fiables), ce qui fait aussi que personne n'a de plein temps à consacrer à une mission aussi essentielle que l'administration système des serveurs.

Ce qui fait aussi que nous ne pouvons pas garantir un service toujours en ligne. Nos membres le savent bien et ces quelques jours sans Khaganat ont été bien pris. Heureusement, notre pad était sur un autre serveur, ainsi que XMPP, ce qui nous a permis de garder de quoi discuter et travailler.

Dans ce genre de situation, il est toujours tentant de se dire « j'aurais dû faire ceci, et cela ». J'aurais dû finir de me former à notre solution de backup, la tester, voir si tout allait bien. J'aurais dû dédoubler les wikis depuis longtemps. J'aurais dû demander à archive.org de nous visiter. J'aurais dû… Mais ces injonctions ne servent à rien, en dehors d'être déprimantes. Chacune de nous fait déjà tout ce qui est en son pouvoir pour le projet. Il n'y a que 24h dans une journée, dont un certain nombre doivent être consacrées à dormir et assurer diverses actions de survie. Et pour les heures qui restent, il est plutôt sain de ne pas avoir que Khaganat en tête, de laisser la place pour les amis, la famille, pour soi aussi. Nous avons fait ce que nous avons pu, nous n'aurions rien pu faire de plus.

Cette alerte aura permis de refaire le point sur les backups. Heureusement tout se termine bien… cette fois-ci. Mais nul ne peut savoir quand l'un de nos serveurs disparaitra dans les limbes, sans possibilité de récupération. Nous avons un peu plus de trésorerie actuellement et il a donc été décidé d'ajouter pour de bon un serveur de backup, en plus des deux qui se sauvent l'un l'autre.

Cela aura aussi permis de tester notre organisation. C'est une chose dont je suis très fière : malgré nos moyens limités, nous avons réussi à nous mobiliser rapidement, et à régler un problème complexe dans un temps très acceptable. Les utilisatrices ont compris le souci, ne nous ont pas mis de pression et nous ont soutenues. Humainement, c'était très réussi, et c'est important : un projet comme Khaganat ne se résume pas à la technique.

Je suis consciente de tout ce que nous pourrions faire « mieux » mais cela se réduit toujours à cette contrainte simple : il faut plus de ressources. Et entre autres plus de sous, pour les serveurs et payer le temps libre qui permettra de réaliser les choses. La tentation est grande pour moi de passer plus de temps sur l'administration système, et pourtant ce serait une erreur stratégique : même si j'ai un niveau acceptable dans le domaine, ce n'est pas ça qui résoudra le manque de ressource. Je vais continuer à mettre des rustines un peu partout, mais garder mon énergie pour un travail essentiel : aller chercher les contributrices qui nous permettront d'aller plus loin.

Vous aimez bien Khaganat, vous avez lu ce pavé et vous avez envie d'aider ? Pas besoin d'être douée en technique ! Ce qui nous manque le plus, actuellement, ce sont les profils listés dans l'article Modèle professionnel de Khaganat. Des gens sachant communiquer vers le public, des gens qui savent parler aux administrations, des gens qui savent animer un crowdfunding, faire des vidéos, motiver des dons, donner des tâches simples à accomplir aux arrivantes… Même si vous n'êtes rien de tout ça, on vous accueillera quand même avec plaisir ! Enfin, nous apprécions toujours les dons… Ça sera bienvenu pour payer les serveurs de backup !

1)
J'y reviens plus bas.
fr/blog/post_060.txt · Dernière modification: 2019/10/31 20:45 par zatalyz