Monthly Archive for January, 2009

Mises à jour et virtualisation

Demain (ou plutôt tout à l’heure) il faut reprendre le chemin du boulot … Pendant les vacances j’ai néanmoins passé les mises à jour de mes systèmes via SSH (dans un screen, of course).

Plus d’une machine sur deux attaquée en SSH était une machine virtuelle. Pour moi, la virtualisation (au delà des apports incontestables au niveau haute disponibilité) a surtout l’énorme avantage de segmenter clairement les services. On évite le phénomène “Oh, je dois installer un serveur LDAP … Tiens, je vais le mettre sur le filer car la machine est puissante et on a de la place !”. Cette approche est catastrophique au niveau du “patch management” car plus on augmente le nombre de services installés sur une machine plus la gestion de la base de logiciels est complexe pour le système de gestion de paquet. J’utilise donc Xen pour virtualiser mes services, même si l’avenir ne semble pas très rose pour ce système vu le nombre de processeur intégrant nativement les instructions de virtualisations. Les machines virtuelles sont toutes installées sur du LVM.

Le LVM dispose d’une chose intéressante (parmi d’autres) : le snapshot. Un snapshot est un volume logique LVM particulier attaché a sa création à un autre volume logique LVM lambda. Le snapshot enregistre les modifications au niveau bloc de données effectuées sur le volume logique LVM cible. Le snapshot présente donc une image du volume cible conforme a ce qu’elle était lors de la création du snapshot (sans interrompre le fonctionnement du volume cible : ce qui est balèze !).

Avant de passer les commandes de mise à jour de mes machines virtuelles, je me connecte à la dom0 (système d’accueil des machines virtuelles). Sur cette dom0, un script est présent qui réalise des connexions sur toutes les domU (machines virtuelles) afin de placer les services dans un état cohérent (par exemple : verrouillage des tables MySQL). Une fois les services critiques dans un état cohérent, la création d’un snapshot est invoqué pour cette machine. Les services sont ensuite remis dans leur état normal.

A cet instant, le système est en fonctionnement et je dispose d’un moyen rapide de retour en arrière. Je lance donc les mises à jour sur mes machines virtuelles. Si jamais une mise à jour plante le système, je peux revenir en arrière grâce au snapshot. De plus comme une machine virtuelle = un service (ou une famille de service) je n’interromps pas les autres services.