Tous en prison - Harmonie entre jails et systèmes de fichiers - Épisode 1 ===================================================================== Date: 2012-07-14 10:31 Author: jdn06 Category: Distributions Tags: FreeBSD, jails, sauvegarde, tar Les jails sont vraiment une formidable technique pour les serveurs auto-hébergés. Comme mes interlocuteurs linuxiens restent souvent assez sceptiques devant cet enthousiasme, commençons par en expliquer l’intérêt à qui n’en a pas eu l’usage. Les jails permettent de créer des dizaines de machines partiellement virtualisées au sein de son serveur avec la plupart des avantages d’une machine virtuelle, sans la lourdeur (en ressources de la machine et pour l’administration) inhérente à la virtualisation. Par exemple, mon modeste eeePC 900 pourvu d’un seul giga de RAM accueille sans qu’il y paraisse 10 machines virtuelles. Si je passais à 50, je pense que le seul changement vraiment significatif serait le démarrage de 50 jails, forcément un peu long ; mais ensuite, processeur et mémoire ne semblent pas plus affectés que si les services contenus dans ces jails tournaient directement sur la machine. Bon, donc, techniquement, c’est très performant, mais ça sert à quoi ? Je n’insisterais pas sur l’aspect sécuritaire, même si mon titre semble appeler de tels développements : le cloisonnement des services est évidemment une protection intéressante ; néanmoins, dans le cas d’un serveur domestique, la chose n’est pas forcément essentielle. Non, l’intérêt principal, c’est la sauvegarde et le transfert des services d’une machine à l’autre. Je m’explique : lorsqu’on héberge des services importants (mails par exemple), on tient : - à préserver ses données - à pouvoir reconstruire très rapidement son serveur à l’identique ailleurs en cas de défaillance Pour cela, il faut utiliser une politique de sauvegarde bien conçue qui serve ces deux objectifs. Dans le cas d’un serveur hébergeant une dizaine de services directement, les données importantes à préserver sont assez éclatées : - Configuration du parefeu - Configuration desdits dix services (dans /etc ou dans /usr/local/etc) - Données des services (dans /var/mail, dans /srv/http, dans /home etc.) Bref, tout est dispersé et le seul moyen de pouvoir reconstruire rapidement le serveur est le backup complet. J’imagine que vous ne voyez peut-être pas le rapport avec les systèmes de fichiers, annoncé dans le titre, mais nous y sommes presque. De nombreux linuxiens proposeront quelque chose comme un tar ou un rsync sur l’ensemble de la machine. Mais il faut tenir compte d’une seconde problématique : pour pouvoir être correctement sauvegardés, certains services demandent à être arrêtés, sans quoi les données sauvegardées par tar à l’instant t ne seront pas compatibles avec leurs compléments contenus dans d’autres fichiers sauvegardés à l’instant t+1. J’ai mesuré l’ampleur de ce problème à mes dépens avec OpenJabNab, un jour où j’avais vraiment besoin de ma sauvegarde… inutilisable. Qu’à cela ne tienne : arrêtons le serveur, démarrons-le même depuis un livecd (nous sommes auto-hébergés, donc tout-puissants !) et lançons le tar en question pour les heures à venir. Soit, mais : - Il faut être chez soi ; pas de sauvegarde pendant les vacances… On peut certes renoncer au livecd et se contenter d’arrêter les daemons des services qui peuvent poser problème, mais on ne sait pas qu'il y aura problème avant d’en faire l’expérience ; il faudrait tester la reconstruction du serveur et sa mise en ligne pour être sûr de n’avoir pas péché par optimisme. - Les services hébergés ne permettent pas toujours de rester hors-ligne durant plusieurs heures toutes les semaines. Quid du mail, par exemple ? Et c’est là que le système de fichiers (ou pour Linux le gestionnaire de volume logique) entre en jeu, grâce aux clichés ou snapshots : ils permettent de figer en quelques instants un état du système de fichiers qu’on copiera ensuite, plutôt que de copier directement les fichiers. Résultat : un serveur coupé quelques minutes et non plus quelques heures. Si l’on combine les jails et les snapshots, le bonheur est total, puisque les services forment des blocs homogènes (et non plus dispersés sur tout le système) qu’on peut copier intégralement, sans pour autant être obligé de les arrêter plus que quelques minutes ou quelques secondes, selon le type de système de fichiers. Voilà pour l’intérêt de la chose. Nous examinerons la méthode dans l’épisode suivant… .