Backup, la fin du monde
Backup : Mot anglais pour sauvegarde informatique. Consiste à copier des fichiers sur un support séparé.
Depuis plus d’un an, quand Grumpy a commencé à vraiment être sollicité pour des sites, j’ai mis en place un système de backup, en utilisant le service fourni par OVH, à savoir un FTP spécial, accessible uniquement par l’ip de Grumpy !
Chaque nuit grâce à une tâche Cron, le script de backup via lftp ce lançait
1 | lftp bck -e "mirror -nR --ignore-time $DIR_LOCAL $DIR_REMOTE;exit;" |
Je ne vais pas expliquer la commande, mais pour ceux qui sont intéressés et qui ne connaissent pas encore lftp, n’hésitez surtout pas à le découvrir (site officiel lftp). L’idée c’est de faire un miroir du répertoire local, vers un dossier en ligne ; pas d’incrémentation par contre !
Comme souvent dans les sauvegardes, tant que tout va bien, pas de soucis 🙂 Je reçois toutes les nuits un rapport et parfois il y as un ou deux fichiers en erreur, que je peux corriger rapidement ! Le système fonctionnais bien, même très très bien, plusieurs fois j’ai eux à récupérer des fichiers sur le backup, et aucun soucis !
Le drame c’est produit ce Samedi 7 juin 2010, alors que nous avions décidé avec Sekoïa d’agrandir la partition « / » de seulement 3 Gio, à une partition plus importante. J’ai forcé un backup manuellement, plus un backup de toutes les données possibles (y compris /tmp), on a reboot la machine en rescue on a backup les dernières données importantes (principalement /dev), l’idée était de ne pas avoir à faire une ré-installation !
Mais voila, vu mon style d’écriture au passé, il n’est pas difficile de comprendre que ça a foiré quelques part ! Et ce ne fut absolument pas à l’agrandissement, ça, ça c’est passé très bien, mais ensuite à la restauration du backup, après avoir mis 2h à restaurer « / », j’ai fièrement transmis le rapport à Sekoïa…
Total: 1560 directory, 19108 files, 0 symlinks
C’est là qu’on a percuté « 0 liens symboliques » dans les dossiers systèmes ; je serais bien surpris sous linux de ne trouver aucun liens symboliques dans « /etc » !!!
À ce point, plus trop le choix que de me maudire, mes superbes sauvegardes ne sauvegarde pas les liens, ce qui après coup est très logique puisque les liens symboliques ne font partie des capacités du protocole FTP.
Ce qui fait qu’en plus de perdre l’uptime de 347 jours, nous avons eux la bonne surprise d’avoir à ré-installer entièrement Grumpy ! Du coup maintenant il est sur une Debian toute neuve, et à deux on a pu remettre tous les systèmes avant le dimanche soir ! En particulier le serveur de courriel, le serveur web avec test de tous les sites, les bases de données, les /home/ des utilisateurs, avec les mots de passe anciens !
À la première vu les backups ont tous de même bien fonctionnés puisqu’on a pu tout récup’, c’est la configuration de base qui a du être à refaire, et ça à pris 1 journée de plus que prévu, mais comme c’était le week-end personnes ne c’est plaint !
À deuxième vu, c’etait un peu moins drôle… Quand j’ai mis en place les backups j’avais choisis volontairement de ne pas utiliser l’option –delete de lftp, elle permet de supprimer du répertoire distant les fichiers qui n’existe plus dans le répertoire locale… Ça peux sembler être une bonne idée quand on récupère les fichiers un par un, mais pas quand on fait une récupération complète !
Je me suis retrouvé avec 7000 courriels dans ma boite de réception, datant pour les plus anciens de plus d’un an auparavant !
Donc pas de perte, mais des bidules qui réapparaissent d’outre-tombe 🙂 Autant dire que je n’ai aucune fierté pour ce système de sauvegarde !
Dès le dimanche 8, j’ai mis en place le nouveau système de backup, son fonctionnement est relativement aussi complexe, mais les pertes d’informations liées aux protocoles FTP sont minimes voire inexistante, en effet, cela ce passe comme ceci :
- Création d’un fichier tarball par sous-dossier important de / (/var, /etc, …) placé dans le home du user qui gère le backup
- Création d’un fichier tarball avec uniquement les liens symboliques de tous les /home/*
- Miroir FTP de /home
Ainsi je ne perd plus les liens symboliques, même si l’astuce du tarball juste pour les symlinks des /home/ me semble trop proche de la bidouille, je n’ai pas trouvé d’autres solutions viable, car faire un tarball de chaque /home, sachant que le miens fait déjà 40Gio, ça va prendre du temps, et à ce niveau lftp ne fait plus sont office de ne charger que les fichiers nouveaux et modifiées, donc trèèès trèèès long !
La seule perte connue sont les owners sur les fichiers et les dossiers des /home, en effet FTP peux garder les permissions, mais pas les owners, ce qui, une fois qu’on le sait, n’est pas un problème, car les utilisateurs n’ont pas à changer le owner de leurs fichiers ainsi à la restauration il suffit de redonner les bonnes appartenances aux /home/ !
Où tout a commencé !
Voici venu le temps de la création de ce blog dédié à notre serveur dédié Grumpy !
Grumpy a booter hors des chaînes de construction de la société OVH le 16 juin 2008 à 19h 46min 46sec. Pour le plaisir de Sekoïa et Division-par-zero, qui ont pu ce faire une joie de le configurer, en tapant allégrement des commandes de tests :
hdparm -tT /dev/sda
...
Bon, je ne m’en souvient plus aujourd’hui, mais on s’est bien fait plaisir 🙂 Il faut savoir que Grumpy, est à base d’une Debian pure, légèrement modifiée pour coller à nos besoins, donc on commence direct par un :
Au passage, on note le choix d’aptitude plutôt que apt-get, puis c’est le début des installations simples mais efficaces :
Et paf en quelques secondes Grumpy est passé du statut de simple serveur dédié grincheux, à serveur de site Web encore plus grincheux 🙂 À noter qu’ils ne nous a jamais vraiment fait de reproche à ce qu’on le fasse bosser, en tout cas, on a pas vu d’aggravement dans son humeur grincheuse :-p
Depuis les services on évolués et c’est bien de cela que je souhaite parler sur ce blog !