...où comment la Tourmentine a survécu à deux pannes de serveurs consécutives, alors que son infra repose sur...deux serveurs.
Le 4 mars 2025, le serveur secondaire ne répond plus, un reboot ou un passage en rescue ne change rien, le KVM est muet. Ticket au support Scaleway.
Réponse redoutée mais malheureusement inévitable (c'est déjà arrivé) : le serveur est mort, les données sont perdues, ils peuvent me le remplacer par un serveur de la même gamme. J'accepte.
Malgré la gestion par Infra-as-Code le rétablissement a pris plus de temps que prévu, un peu moins de trois semaines, la faute au manque d'expérience (la dernière reinstall from scratch datant de plusieurs années), et aux petites bizarreries liées à l'infra Scaleway (RPN bonjour).
Le 23 mars, je finissais de serrer les derniers boulons, j'étais content.
Le 24 mars en fin de journée, le serveur primaire tombe en pleine mise à jour. Reboot, rescue, ticket support, serveur mort (bis, repetita). Là, c'est un peu plus gênant, mais une bascule de l'IP failover sur le serveur secondaire tout neuf et un redémarrage du replica PostgreSQL en lecture/écriture sur celui-ci a permis de rétablir tous les services rapidement.
L'expérience et les corrections apportées dans l'IaC m'ont permis cette fois de reconstruire le serveur primaire en entier en à peine plus d'une semaine (peut toujours mieux faire, mais bon). Le retour de l'IP failover sur le serveur primaire c'est fait assez simplement et rapidement, grâce en particulier aux snapshots ZFS et à la réplication logique de PostgreSQL.
La Tourmentine sort presque sans encombres de cette double catastrophe, avec pour seuls dégâts la base InfluxDB que je n'ai pas pu restaurer (testez vos backups les gens). Ça fait mine de rien plusieurs années de métrologie de perdues, et ça fait mal au cul.
Conclusions de cette belle aventure (non), l'infra n'est pas encore totalement résiliente : Valkey n'est pour l'instant pas répliqué, j'ai failli perdre ma base de filtres bayésiens au passage ; et Zabbix n'étant pas en mode cluster et tournant sur le serveur primaire, je n'avais pas de supervision durant la reconstruction de celui-ci 😟
Bref encore deux-trois petits trucs encore à régler avant l'arrivée tant repoussée d"une solution *cloud-native" à base de MinIO, Nomad et Consul. Ça va être bien. D'ailleurs au passage un système de paquets un peu plus propre m'a enfin permis d'installer Podman