FLASH INFORMATIQUE FI



Découvrir la virtualisation avancée


Comment la virtualisation permet des opérations magiques  ?



Laurent KLING


Au premier degré, la virtualisation est un formidable outil de coexistence pacifique. Le Macintosh peut parler Linux et Windows ; et réciproquement, Linux et Windows peuvent articuler le langage de l’autre. Au deuxième degré cette technique permet des opérations quasi magiques :

  • dépasser la mort physique d’un ordinateur,
  • transformer une configuration en mort-vivant,
  • reprendre une expérience après six mois ou dix ans,
  • déplacer une machine en fonctionnement entre serveurs.

Ces emplois semblent sortis d’un manuel vaudou ou de sorcellerie. Tel un alchimiste des temps modernes, il faut mettre en place les éléments du rituel :

  • un hyperviseur natif de type 1,
  • un serveur cobaye,
  • un chef d’orchestre zombie.


hyperviseur natif de type 1

Le premier ingrédient est alchimique, l’hyperviseur natif de type 1 est dénommé bare metal qu’on peut traduire par métal à nu. Dans notre utilisation, cela représente un logiciel de virtualisation connecté directement au matériel.


hyperviseur de type 2

Le type 2 correspond au logiciel nécessitant un système d’exploitation sous-jacent (solutions décrites dans l’article Virtualisation pour tous).
Le deuxième élément de la potion est un serveur vitaminé. Dans ce type de service, c’est la place en mémoire qui fait défaut en premier, une fourchette entre 48 à 128 Go de mémoire vive avec correction d’erreur ECC est conseillée. Pour la puissance de calcul, deux processeurs avec 6 noeuds (core) chacun sont adéquats, car chaque machine virtuelle consomme une fraction de la capacité totale. Pour simplifier la configuration, la mémoire de stockage est conservée directement sur le serveur. Une capacité utile de 2 à 5 To est un bon point de départ. Les connexions réseau sont multiples pour séparer les trafics et offrir une bande passante cumulée suffisante (minimum 2 x 1 Gbit/s).
Le sorcier vaudou est primordial pour énoncer les recettes. Le paradoxe provient du fait que la partie matérielle est simple, mais ce serveur contient de nombreuses machines virtuelles. De ce fait, la complexité physique diminue pour être remplacée par plus de composants logiciels, métaphores du monde réel :

  • un ordinateur devient une machine virtuelle ;
  • des prises réseau et leurs connectiques (switch) deviennent une entité virtuelle ;
  • le stockage devient abstrait.

Dans ce serveur réel, on se retrouve devant un ensemble de machines interconnectées nécessitant un maestro. La multitude de paramètres à gérer rend rapidement cette gestion surhumaine, il faut automatiser de nombreuses tâches. Au final, on obtient cette hiérarchie :

  • l’être humain définit le morceau à jouer ;
  • le chef d’orchestre numérique vérifie la conformité des opérations et organise le déroulement harmonieux de chaque soliste en suivant la partition ;
  • chaque musicien exécute au moment adéquat les instruments pour produire la mélodie.

Le changement de rôle est enthousiasmant, il requiert un apprentissage pour éviter les fausses notes. Le décor étant posé, il est temps de mettre en oeuvre ces nouvelles connaissances.

En pratique

Parmi les licences éducation disponibles, le choix s’est porté sur l’infrastructure de VMware. Voici les étapes à suivre pour la création de l’infrastructure

  • le chef d’orchestre, vCenter ;
  • le soliste multi-instrumentiste, vSphere qui contient les trois composants primordiaux ;
    • la capacité de calcul, vCompute.
    • le stockage des machines virtuelles, vStorage.
    • la gestion des réseaux virtuels et réels, vNetwork

Détaillons rapidement chaque étape.

Le chef d’orchestre, vCenter

La solution la plus simple est d’utiliser un chef d’orchestre déjà existant. Heureusement, ce service est disponible centralement à l’EPFL avec myvm.epfl.ch. Dans ce cas, on évite sa configuration et sa maintenance. Pour les plus aventureux, ils peuvent le recréer en virtuel. Il est trop risqué de mélanger l’oeuf et la poule en voulant utiliser le biotope en train d’être élaboré. Le plus raisonnable est de l’héberger dans un autre environnement virtuel  ! Le chef d’orchestre est isolé du test, tout en étant capable de tenir son rôle. J’ai successivement utilisé les deux méthodes :

  • incorporer dans le monde virtuel de l’EPFL,
  • créer dans une machine exécutée dans l’EPFL.


relation entre composants actifs visibles dans le chef d’orchestre

La solution encapsulée permet de mener toutes les expériences imaginables, sans affecter l’environnement de production de l’EPFL et sans le risque de tout perdre par une fausse manoeuvre.

Le soliste multi-instrumentiste, vSphere

La deuxième étape consiste à mettre en place le serveur de virtualisation vSphere. C’est probablement la partie la plus simple du processus, on peut même acheter son serveur avec vSphere préinstallée. Il faut vérifier la comptabilité du serveur avec ce produit.


mélodie sur un serveur virtuel vSphere

Un bricolage est déconseillé, car cette machine va héberger de nombreuses machines virtuelles. Pour éviter les problèmes de limitation de la taille mémoire avec la licence en version 5, j’ai utilisé la version 4.1. Depuis septembre 2012 ces limitations ont été supprimées et la version 5.1 doit être préférée.

La troisième étape consiste à utiliser l’environnement ainsi créé

La différence fondamentale avec le modèle classique réside dans le fait qu’on manipule des composants logiques. Le temps est formidablement accéléré. Au processus traditionnel de définition du besoin, du choix de la configuration adaptée, de la commande d’un serveur, de l’attente de la livraison, de la mise en service et finalement de l’utilisation se substitue un processus très rapide : créér un serveur virtuel et l’utiliser  ! Immédiatement, les experts vont rétorquer que les étapes de définition du besoin et du choix de la configuration adaptée sont toujours nécessaires. Je suis le premier à demander ces réflexions. La différence fondamentale est qu’une machine virtuelle est très facilement modifiable :

  • si le système d’exploitation supporte la modification à chaud on peut augmenter la mémoire vive ou étendre la taille du disque dur sans éteindre la machine ;
  • allouer uniquement l’espace utilisé de disque dur (thin provisioning) ;
  • si l’OS le permet, on peut changer le nombre de processeurs, néanmoins avec un redémarrage de la machine  !

Au second degré, on arrive même à faire des opérations quasi magiques :

  • sauvegarder l’état complet d’une machine en fonctionnement, avec mémoire vive et processus actifs ;
  • garder un historique des états successifs ;
  • revenir dans le passé avec une machine ressuscitée ;
  • sans interruption, déplacer une machine en fonctionnement entre différents serveurs physiques  !

Ces exploits semblent être une fuite en avant technologique. Un serveur physique est concret, rassurant, identifiable. Un serveur virtuel possède exactement les mêmes qualificatifs. La seule différence réside dans le niveau de métaphore. Pour mieux exprimer les avantages, je vais prendre une série de cas concrets où la virtualisation représente une avancée.

Mesurer les performances

Pour obtenir la meilleure adéquation entre le logiciel et la puissance d’un serveur, on procède par tâtonnements. Quand le serveur est physique, le choix est rapidement fait, il n’est pas possible d’adapter de manière très fine le contenant. Avec une machine virtuelle, la situation est totalement différente. Il est facile d’adapter chacun de ses composants, même après sa mise en service. Cerise sur le gâteau, on peut même visualiser en temps réel le fonctionnement du serveur et sa consommation. Par exemple l’installation automatique d’un poste Window 7.


consommation de la mémoire après l’installation de l’OS (7 min 30 s)


utilisation du processeur pendant l’installation de Microsoft Office (20 minutes)


utilisation du processeur après l’installation complexe de la machine (30 minutes)


utilisation du processeur, la machine est disponible pour l’utilisateur (32 minutes)

La machine immortelle

Chaque machine physique possède une durée de vie. Parfois l’obsolescence technologique où la consommation énergétique entraîne l’arrêt d’une machine qui pourrait encore fonctionner. Chaque changement de configuration physique entraîne un coût humain. On se retrouve même parfois avec quatre générations de serveurs dans le même local où chacun possède un élément essentiel du suivant. Cette situation ubuesque a comme origine l’impossibilité de transférer un logiciel entre des machines physiques  !


augmentation de la capacité disque d’une machine virtuelle pour les mises à jour Windows

La virtualisation résout ce problème de manière très simple. La machine essentielle n’est jamais détruite, elle se déplace entre des containers physiques. On peut même en lisant l’article Virtualisation pour tous (FI 2/2013) la déplacer entre des systèmes concurrents.
Avec ces mécanismes, j’utilise une machine virtuelle de contrôle Windows XP qui a voyagé entre différents environnements physiques et virtuels :

  • créée sur un poste de travail PC,
  • déplacée sur un poste de travail Macintosh,
  • transférée dans quatre générations de serveurs virtuels de type 1 (2.1, 3, 3.5 et 4.1).

Dans le même ordre d’idée, une machine pour les mises à jour de Windows peut voir sa capacité disque augmenter au fil du temps (90 Go au départ, plus de 200 Go maintenant).
Avec une solution réelle, on aurait probablement dû changer de serveur physique.

La machine arrêtée à chaud

L’année dernière, j’ai dû procéder à une opération à coeur ouvert. Une nouvelle version d’un logiciel de CAO ne fonctionnait plus. Sur une machine virtuelle, j’ai reproduit l’installation de la nouvelle version. Effectivement, le serveur de licence était incompatible. J’ai figé cette machine virtuelle à chaud. Cela signifie que cette machine ne consommait plus de ressources mémoire vive ou de processeur. Elle était en état de mort-vivant. Muni de l’information, j’ai demandé au fournisseur de m’envoyer une licence à jour. J’ai ensuite ressuscité la machine virtuelle et miracle, le logiciel a fonctionné correctement. Cette expérience semble anecdotique. Dans un autre contexte, combien de doctorants doivent recommencer à zéro une expérience en réinterprétant des notes  ? Si l’expérience était conservée sur une machine virtuelle gelée, un clic serait suffisant pour redémarrer l’expérience.

Un arbre de développement conservé


arbre de développement avec les instantanés

La pratique d’un outil de gestion de versions est probablement la première étape d’une logique de développement rationnel de logiciel. Quand le travail consiste à mettre en place des systèmes complexes reliant plusieurs serveurs variant dans le temps, le problème semble irrésolu. Comment conserver les étapes successives de développement  ? Avec un environnement virtuel, c’est possible en utilisant des instantanés. Il faut faire attention à la stabilité de la machine virtuelle et la taille occupée sur le stockage. Si on revient dans le passé, c’est peut-être facile pour une Pénélope de tout perdre, mais décourageant pour un développeur. La parade est de conserver les modifications dans un serveur externe. En cas de retour en arrière, on retrouve en effet l’état antérieur, mais rien n’empêche de recopier depuis ce serveur externe la version actuelle. C’est la méthode utilisée pour le développement de l’outil d’installation automatique pour Windows 7 qui doit se dérouler avant le dernier redémarrage. Ce moment très précis du cycle d’installation d’un système d’exploitation n’apparaît qu’une seule fois. Si on gèle ce moment, il est possible de redémarrer l’exécution exactement au même instant. Chaque come-back prend moins d’une minute. La prime de cette méthode est de disposer de l’état exact de chaque version dans un état parfaitement reproductible. Si une erreur apparaît en production, il est facile de la reproduire et de l’isoler pour résoudre le problème.

Déplacer une machine virtuelle à chaud

L’accumulation de machines virtuelles sur un seul serveur physique entraîne un risque élevé.

  • La première précaution est de conserver une sauvegarde des machines, cette étape sera décrite dans un prochain article.
  • La deuxième solution serait de dédoubler l’équipement, ce qui entraînerait l’achat d’un serveur de stockage pour un accès simultané aux données.

Dans un petit environnement de deux ou trois serveurs, la solution pour éviter cet achat est vSphere Storage Appliance. On utilise une partie de l’espace disque interne comme un miroir de l’autre machine. La perte de capacité brute qui en découle n’est pas négligeable : 50 % pour deux serveurs, 33 % pour trois serveurs. Cette méthode permet quand même d’éviter un stockage externe en assurant une haute disponibilité.
Finalement, avec la version 5.1 de VMware, il existe l’alternative de déplacer simultanément la machine virtuelle accompagnée de ses données entre des serveurs disjoints. Cette solution présente cependant l’inconvénient de ne pas pouvoir assurer une haute disponibilité.

Mesurer un serveur réel avec une machine virtuelle à l’intérieur



application Xangati, tableau de bord d’un hyperviseur de type 1

Comme tout est virtuel, on peut imaginer des combinaisons insolites : un serveur réel vSphere ; exécutant une application encapsulée dans une machine virtuelle mesurant sa performance, nommée Xangati. Pour complexifier le tout, cette machine mesure le trafic réseau du serveur vers l’extérieur.

application Xangati, mesure du trafic réseau non lié aux machines virtuelles

Conclusion

Les machines virtuelles représentent sur son poste de travail une avancée importante. On se libère du carcan d’un seul système d’exploitation. Avec les environnements virtuels avancés du type hyperviseur 1, on ouvre la boîte de pandore et l’on se retrouve avec uniquement l’espérance. Notre soif de perfection nous pousse à espérer un système capable de satisfaire tous nos besoins. Sans atteindre cet objectif, ces outils nous offrent de nouveaux horizons. La capacité de traiter des serveurs comme des boîtes noires est très intéressante. Le fait de déplacer une machine virtuelle entre des environnements physiques en production représente une simplification importante du travail. La chute vertigineuse de la vente des PC semble indiquer la fin d’une époque, on se retrouve devant un formidable champ d’expérimentation.

IDC : ventes des cinq plus gros fournisseurs de PC au USA, premier trimestre 2013 (rapport préliminaire)

Depuis plus de dix ans, mon ordinateur de travail est le réceptacle de fenêtres provenant d’autres serveurs, la majorité de ceux-ci sont virtualisés. Sur une tablette, la même situation se répète. Finalement cette distance avec le matériel, rend peut être plus évident notre dépendance à ces étranges lucarnes.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.