Quand un serveur devient trop facile à créer
L’an dernier, la virtualisation m’impressionnait par les boîtes retirées de la salle. Cette année, je pense davantage aux serveurs qu’on peut créer sans allumer une seule nouvelle lumière dans l’armoire.
Une VM est composée d’une configuration et de disques virtuels que l’hyperviseur présente comme du matériel. Le processeur virtuel reçoit des tranches de temps sur les processeurs physiques. La mémoire est mappée vers la RAM de l’hôte. Les lectures de disque traversent un contrôleur virtuel avant d’atteindre le stockage partagé ou local.
Cette indirection permet de déplacer un environnement entre deux hôtes compatibles. Avec une fonction comme VMotion, l’hyperviseur copie la mémoire pendant que la VM roule, recopie les pages modifiées, puis bascule l’exécution avec une courte pause. Les disques doivent déjà être accessibles aux deux hôtes et le réseau doit conserver la connectivité. Ce n’est pas la téléportation d’un serveur indépendant; c’est une coordination précise entre calcul, stockage et réseau.
VM -> hôte A --\
+-> stockage partagé -> disques virtuels
VM -> hôte B --/ |
+-> réseau et sauvegarde
Dimensionner la panne, pas la journée moyenne
Supposons trois hôtes de 16 Go avec dix VM qui consomment ensemble 34 Go pendant la pointe. La moyenne de 11,3 Go par hôte semble confortable. Après la perte d’un hôte, les deux autres doivent absorber 17 Go chacun, avant même la marge de l’hyperviseur. La capacité de reprise n’existe donc pas réellement.
Je réserverais de la marge selon les services qui doivent repartir et je testerais leur ordre. Un contrôleur de domaine, DNS et la base de données doivent peut-être précéder les serveurs applicatifs. Redémarrer dix VM en même temps peut saturer le même stockage et transformer cinq minutes de démarrage en trente.
Un instantané n’est pas un backup. Il conserve une chaîne de changements liée au disque de base. Plus cette chaîne reste longtemps, plus elle consomme d’espace et complique les lectures. Si le stockage qui contient le disque et l’instantané disparaît, les deux disparaissent ensemble. Pour une base, un instantané pris sans coordination peut aussi représenter un état que le moteur devra récupérer au redémarrage.
La restauration doit donc répondre à un objectif de temps et de perte. Si l’équipe accepte quatre heures d’arrêt et une heure de données perdues, la sauvegarde et sa fréquence doivent le permettre. On copie vers un autre domaine de panne, on restaure sur un autre hôte et on vérifie l’application, pas seulement le démarrage de Windows.
La facilité de création produit enfin du sprawl. Chaque VM devrait porter un propriétaire, un but, une date d’expiration, une classe de correctifs et une politique de sauvegarde. Un prototype sans propriétaire peut être éteint après avis; un service critique ne devrait jamais être découvert au moment du ménage.
Je reste enthousiaste. La virtualisation rend le matériel remplaçable seulement si le stockage, le réseau, la capacité et la recette de reprise le sont aussi. Mon prochain essai ne sera pas « créer une VM ». Ce sera perdre un hôte volontairement, chronométrer le retour et noter chaque dépendance que la console n’avait pas montrée.