Perte du serveur de Libreon et d'un mois de données : Post-Mortem

News 13 mai 2023

En ce week-end de 3 jours du 1 mai, nous avons effectué une intervention de routine sur le serveur de Libreon qui héberge l'ensemble des services ainsi que les données des utilisateur·trice·s de Libreon. Cette intervention était une mise à jour des logiciels et a nécessité un redémarrage de la machine. Nous n'étions pas prêts pour ce qui allait se passer ensuite.

Les faits

L'infrastructure de Libreon est composée d'un serveur principal sur lequel est installé un système d'exploitation (Debian 11). Par dessus ce système sont installés l'ensemble des services.

Afin de maintenir un système à jour, il est nécessaire de mettre à jour les différents composants de l'infrastructure. Les services d'une part, et le système d'exploitation d'autre part. Certaine mises à jour nécessite de redémarrer la machine afin que les mises à jour soit appliquées. A noter que contrairement à un ordinateur personnel, le redémarrage d'un serveur comporte toujours un peu plus de risques, particulièrement s'il n'y a pas d'accès physique à la machine.

En ce samedi 29 avril, nous avons, comme régulièrement, effectué une mise à jour du système. Cette mise à jour demandait un redémarrage de la machine.

Le redémarrage de la machine peut parfois prendre quelques minutes. Nous avons attendu plusieurs minutes avant de trouver le temps un peu long. Nous nous sommes connectés sur l'interface de gestion de la machine, sur le site de notre hébergeur et nous avons constaté ce message :

Nous avons donc contacté l'assistance afin d'avoir des informations  sur cette panne. Après plusieurs échange,s nous avons obtenu la réponse suivantes:

Merci de votre patience, après vérifications, j'ai le regret de vous informer que votre machine est malheureusement hors service. En effet, elle ne répond plus du tout, que ce soit en mode normal ou en mode secours, les données qui s'y trouvent sont perdues.

Et la c'est la panique: on est samedi, week-end de 3 jours, et nous n'avions pas prévu de passer notre week-end à reconstruire toute l'infrastructure.

Stratégie de reprise d'activité

Notre hébergeur nous a proposé de nous fournir une nouvelle machine vierge. Nous avons donc fait le deuil de notre machine et avons discuté du plan à mettre en œuvre afin de restaurer l'ensemble de l'infrastructure.

Pour cela, nous avons une sauvegarde automatique. Sont sauvegardés :

  • la configuration de la machine et des services (quels services sont installés, comment sont-ils configurés) ;
  • les données qui ont été générées par les services (les données des utilisateur·trice·s).

Les sauvegardes sont stockées sur une autre machine qui se trouve dans un centre de données différent.

La sauvegarde est censée s'exécuter toutes les nuits, on devrait donc en théorie retrouver l'état de l'infrastructure sans trop de perte. La stratégie choisie était la suivante :

  • Installation de la nouvelle machine (système d'exploitation, accès etc.)
  • Récupération de la dernière sauvegarde
  • Récupération des emails des utilisateur·trice·s afin de les prévenir de la situation. En effet, tous nos canaux de communication habituels (Mastodon, Matrix) sont hors ligne.
  • Basculer le DNS : le domaine libreon.fr redirige sur notre serveur décédé. Il faut lui dire que le serveur a changé.
  • Redéployer les services

Un beau plan qui devrait ressusciter l'infrastructure sans encombre.

Tout ne se passe pas comme prévu

Celles et ceux qui ont un compte Libreon connaissent la suite. Lorsque nous nous connectons à notre machine de sauvegarde, nous nous rendons compte que la dernière sauvegarde est en date du 30 mars, soit un mois plus tôt.

La raison ? Il y a un mois, nous avons changé de système de sauvegarde et nous avons oublié de réactiver la tâche automatique qui exécute la sauvegarde toutes les nuits. Nous ne nous en sommes pas rendu compte pour deux raisons :

  • Il n'y a pas de mécanisme automatique pour vérifier et alerter si la sauvegarde automatique est en échec
  • La modification du système de sauvegarde a été faite par une seule personne et il n'y a pas eu de vérification par quelqu'un·e d'autre

Reprise des services

Faute d'une sauvegarde plus récente, nous décidons donc de repartir de cette sauvegarde pour redéployer l'infrastructure. Nous exécutons notre plan dans l'ordre en prévenant par email les utilisateur·trice·s dès que les données sont rapatriées sur le nouveau serveur.

La restauration se passe globalement sans encombre, seul quelques corrections sont à effectuer.

Le changement de DNS prend un peu plus de temps que prévu (24h), nous avons demandé à notre fournisseur de DNS la raison du délai mais il n'a pas été en mesure de répondre.

Finalement, la plupart des services sont de retour en ligne lundi soir.

Et après

À la suite de cette aventure, nous avons discuté et mis en place un certain nombre d'outils et de pratique afin d'éviter que la situation se reproduise.

Plus d'intervention en solo

Le point le plus important  dans cette aventure a été le manque d'une sauvegarde récente. Pour éviter que cela ne se reproduise, nous ne devons plus intervenir en solo sur l'infrastructure, mais à plusieurs. Un oubli sera plus vite identifié.

Pour cela, chaque intervention sur l'infrastructure devra-t-être renseignée sur un kanban

Un Kanban pour les gouverner tous · Boards · Libreon · GitLab
Libreon - GitLab

Sur ce kanban, chaque intervention est indiquée sous la forme d'un ticket. Une fois l'action effectuée, le ticket est déplacé dans la colonne « à valider » et une autre personne doit vérifier ce qui a été fait avant de fermer le ticket.

Statuts de service publiquement accessible

Nous avons mis à jour et ouvert au public notre page de statuts.

Status des services Libreon

Sur cette page sont indiqués l'état de fonctionnement de nos services. Nous avons ajouté une sonde de l'état de notre sauvegarde automatique. Si elle échoue, ce tableau de bord l'indiquera et l'équipe d'administration sera prévenue.

Ne pas avoir de point unique de défaillance

Du côté utilisateur·trice, nous vous encourageons à faire des sauvegardes. Cela évitera un point de défaillance unique, en l'occurrence Libreon. Par exemple, si votre ordinateur est synchronisé au cloud, vos données serons toujours sur votre machine en cas de perte de données chez Libreon.

Conclusion

Pour conclure, nous voudrions remercier nos utilisatrices et utilisateurs pour  votre confiance. Nous sommes conscients que certain·e ont perdu beaucoup de données. Nous espérons que cela ne se reproduira plus.

Nous avons également reçu beaucoup de message de soutiens et cela à été très motivant et a beaucoup aidé à nous motiver pour la remise en place de l'infrastructure.

Si vous avez des questions ou des remarques, n’hésitez pas à nous en faire part dans la zone commentaires ci dessous, ou à nous contacter via le formulaire de contact.

Mots clés

Xavier

Avec Matéo Boudet

Développeur Full Stack de métier, je suis un adepte du libre et de l'open source. J'ai fondé l'association Libreon et ce blog afin de sensibiliser à l'utilisation de logiciels libres.

Super ! Vous vous êtes inscrit avec succès.
Super ! Effectuez le paiement pour obtenir l'accès complet.
Bon retour parmi nous ! Vous vous êtes connecté avec succès.
Parfait ! Votre compte est entièrement activé, vous avez désormais accès à tout le contenu.