Le jour où KDE a failli perdre l’intégralité de ses dépôts GIT

Le 22 mars dernier, KDE est passé pas loin du désastre de l’année quand ils ont failli perdre l’intégralité de leurs dépôts GIT (+ de 1500)…

klogo-official-oxygen-128x128

Dans un article publié sur son blog, Jeff Mitchell a expliqué que vendredi dernier, le serveur hébergeant git.kde.org a du être redémarré pour appliquer des mises à jour de sécurité. Toutes les machines virtuelles se sont éteintes sans problèmes, les mises à jour ont été appliquées et le serveur a été redémarré.

Un problème est apparu lors de l’allumage des machines virtuelles, le système de fichiers (ext4) était entièrement corrompu, qui a du avoir lieu pendant le redémarrage des VMs ou du serveur général. Les développeurs ont voulu vite vérifier les miroirs qui sont utilisés pour gérer la charge de trafic des 1500 dépôts GIT et qui servent de backup du serveur GIT principal, mais chaque miroir était déjà corrompu et il manquait une bonne partie voir tous les dépôts!

Cela s’explique par la décision de rendre le serveur hébergeant git.kde.org comme étant la source de tous les miroirs. Pour que les miroirs aient les dépôts GIT à jour, ils allaient récupérer les données des dépôts et les métadonnées sur le serveur maître automatiquement toutes les 20 minutes.

Alors qu’ils avaient prévu la non synchronisation de données si le serveur maître perdait un disque ou crashait totalement, voir même la perte total de son système de fichiers, il n’avait pas été prévu de faire face à la corruption du système de fichiers, ni même ses conséquences:

  1. Le serveur général contenant tous les dépôts est allumé et en ligne, mais tous les fichiers sont corrompus.
  2. Les miroirs effectuent une synchronisation et mettent à jour chaque fichier vu qu’ils sont différents des fichiers originaux. La corruption était tellement massive qu’il n’y avait plus aucun dépôt valide.
  3. Sur chacun des miroirs, les fichiers valides sont supprimés pour être conforme au serveur maître.

Ils ont eu un grand coup de chance quand ils ont découvert que le serveur projets.kde.org, localisé en Allemagne, n’était pas affecté par la corruption des dépôts. Il avait été inclus dans les miroirs la veille du problème et sa tentative de migration avec le serveur maître git.kde.org est tombé pile pendant le redémarrage de celui-ci et a donc échoué. C’était donc le dernier serveur qui disposait des 1500 dépôts GIT en parfait état.

Vous pouvez lire l’article entier sur le problème sur le blog du développeur ICI et son avis sur les différentes formes de backup à utiliser ICI.

Laisser un commentaire