Introduction à la virtualisation

1. Principe

Définition

De manière formelle, la virtualisation consiste en la séparation logique entre d'une part les ressources fournissant un service et d'autre part le service lui-même.

Dématérialisation

Par l'intermédiaire de technologies diverses, il est alors possible de dématérialiser les plateformes matérielles, les infrastructures et les services. On peut dématérialiser les serveurs, les bureaux (desktop) informatiques, les emplacements de stockage, l'accès à différents services.

Virtualisation des architectures x86

La virtualisation des ordinateurs x86 consiste à séparer les ressources matérielles (en CPU/RAM, réseau et stockage) des services rendus par ces ressources, à savoir des applications informatiques. Concrètement sur un même ordinateur physique, on pourra créer plusieurs machines virtuelles (VM) distinctes dédiées à des applications spécifiques. En bref, la virtualisation telle qu'on l'entend communément est la mutualisation des systèmes d'exploitation ou d'applications sur un seul serveur physique.

A titre d'exemple dans le milieu des années 2000, on assiste à ce qu'on appelle la consolidation des centre de données (salle serveurs, datacenters). Elle avait déjà commencé avec la virtualisation du réseau (VLAN) et du stockage (NAS/SAN). La société VMWare très active sur ce segment de marché proposa des produits et des services complets de virtualisation de serveurs à architecture x86. Sur ce segment de marché des concurrents tels que Microsoft ou Citrix mènent un guerre stratégique. Leur avantage consiste à fournir un environnement de gestion intégré.

Objectif de la virtualisation

L'objectif principal de la virtualisation est l'usage efficient de ressources de calcul partagées entre plusieurs entités virtuelles : mémoire, processeur, réseau, stockage sont partagés efficacement dans la perspective d'économies d'échelle. Cet objectif correspond aux principes actuels de gestion des systèmes d'information. On pourrait résumer ce principe de deux manières : « faire autant avec moins » ou « faire plus avec autant ». Il peut s'agir de gains d'énergie, de place, de maintenance, de gestion, de comptabilité, de robustesse, d'évolutivité, de conception, etc. Le marché et ses acteurs s’engouffre dans cette logique.

Avantages

Aussi, la virtualisation des serveurs permet une bien plus grande modularité dans la répartition des charges et la reconfiguration des serveurs en cas d'évolution ou de défaillance momentanée (plan de secours, etc.).

Informatique en nuage, Internet des objets, large bande mobile

Mais la virtualisation fait partie d'un paradigme informatique plus large reprenant un phénomène de dématérialisation des services. A titre d'exemple, la virtualisation est un élément essentiel voire de plus en plus constitutif de l'informatique en nuage (Cloud Computing) dans lequel la technologie TCP/IP et l'accès au réseau devient critique. La charge est alors exécutée à distance à partir de requêtes de clients de plus en plus légers et hétérogènes à destination de services virtualisés dans le nuage.

2. Historique

La virtualisation n'est pas une technique récente. Bien qu'elle prenne son essor récemment, elle a été envisagée dès la conception des premiers ordinateurs. Pour une perspective historique de la virtualisation, on peut se référer en français à http://fr.wikipedia.org/wiki/Virtualisation#Historique et en anglais à http://en.wikipedia.org/wiki/Timeline_of_virtualization_development.

3. Marché

En 2014, Gartner a publié l'étude intitulée : «Magic Quadrant for x86 Server Virtualization Infrastructure». Les études Gartner recensent de manière qualitative les interactions entre la demande et l'offre du marché. Elles reprennent les projets commerciaux et ne reflètent qu'une vision officielle des segments de marché.

MQ x86 Server Virtualization Infrastructure

On y constate de 2012 à 2014 la forte position de leader de VMware suivi de Microsoft et de Citrix (qui recule).

Il s'agit d'un marché mature, dynamique et compétitif qui est typiquement dans l'ère du temps.

Les solutions principales proposées sont :

  1. Des hyperviseurs pour créer des machines virtuelles.
  2. Les technologies de virtualisation OS (containers ou zones)
  3. Gestion administrative de la virtualisation serveur (frameworks de base)
  4. Gestion embarquée de la virtualisation serveur (migration live et automation des fonctions gestion administrative)

Mais c'est sans compter d'autres intérêts d'un plus haut niveau tel que les solutions de backup, de recouvrement de désastre, d'automation avancée, de bureaux virtuels, etc.

Les projets open source sont largement représentés par leur sponsors commerciaux.

On assiste aujourd'hui à un regain d'intérêt pour la virtualisation software (isolateur) notamment via le projet docker.

Le projet Openstack méritera aussi notre attention.

4. Intérêts de la virtualisation des architectures x86

Sur ce type d'architecture matérielle très populaire, les intérêts sont :

  • l'utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),

  • l'installation, déploiement et migration facile des machines virtuelles d'une machine physique à une autre, notamment dans le contexte d'une mise en production à partir d'un environnement de qualification ou de pré-production, livraison facilitée,

  • l'économie sur le matériel par mutualisation (consommation électrique, entretien physique, surveillance, support, compatibilité matérielle, etc.)

  • les installations, tests, développements, cassages et possibilités de recommencer sans casser le système d'exploitation hôte

  • la sécurisation et/ou isolation d'un réseau (cassage des systèmes d'exploitation virtuels, mais pas des systèmes d'exploitation hôtes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et réseau)

  • l'isolation des différents utilisateurs simultanés d'une même machine (utilisation de type site central)

  • l'allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,

  • la diminution des risques liés au dimensionnement des serveurs lors de la définition de l'architecture d'une application, l'ajout de puissance (nouveau serveur etc) étant alors transparent.

  • ...

5. Concepts

  • Abstraction matérielle

  • Hyperviseur, Virtual Machine Monitor (VMM), domaine hôte (host), système d'exploitation hébergeant l'hyperviseur

  • Machine virtuelle, machine invitée (guest), système d'exploitation invité, domaine invité

  • Virtualisation du réseau : notions de pontage et de routage d'interfaces, notion de VLAN, appliances virtuelles

  • Virtualisation du stockage : protocoles et technologies de stockage (SAN, FC, iSCSI, LVM)

  • Plateforme d'orchestration : vCenter, XenServer Center, XCP orientée Infrastructure

  • API, toolstack

  • Container ou zone ou prison (jail)

6. Techniques de virtualisation

Afin d'avoir une idée théorique des performances des applications au plus haut niveau, il faut comparer verticalement l'empilage de couches. Il est possible d'élargir les schémas en rajoutant des environnements virtualisés consommant également des ressources de l'hôte.

On calculera la charge du réseau, de la RAM/CPU, de transfert et de capacité de stockage.

Isolateur

Un isolateur est un logiciel permettant d'isoler l'exécution des applications dans ce que l’on appelle des contextes ou bien zones d'exécution. L'isolateur permet ainsi de faire tourner plusieurs fois la même application dans un mode multi-instance (plusieurs instances d’exécution) même si elle n’était pas conçue pour ça.

Isolateur

Cette solution est très performante, du fait du peu d'overhead (temps passé par un système à ne rien faire d'autre que se gérer), mais les environnements virtualisés ne sont pas complètement isolés.

La performance est donc au rendez-vous, cependant on ne peut pas vraiment parler de virtualisation de systèmes d’exploitation. Uniquement liés aux systèmes Linux, les isolateurs sont en fait composés de plusieurs éléments et peuvent prendre plusieurs formes.

Exemples :

Noyau en espace utilisateur

Un noyau en espace utilisateur (user-space) tourne comme une application en espace utilisateur de l'OS hôte. Le noyau user-space a donc son propre espace utilisateur dans lequel il contrôle ses applications.

Noyau en espace utilisateur

Cette solution est très peu performante, car deux noyaux sont empilés et l’isolation des environnements n’est pas gérée et l’indépendance par rapport au système hôte est inexistante. Elle sert surtout au développement du noyau.

Exemples :

  • User Mode Linux : noyau tournant en espace utilisateur

  • Cooperative Linux ou coLinux : noyau coopératif avec un hôte Windows

  • Adeos : micro noyau RT faisant tourner Linux en kernel-space non-RT

  • L4Linux : micro noyau RT faisant tourner Linux en kernel-space non-RT

Hyperviseur de type 2

Un hyperviseur de type 2 est un logiciel (généralement assez lourd) qui tourne sur l'OS hôte. Ce logiciel permet de lancer un ou plusieurs OS invités. La machine virtualise ou/et émule le matériel pour les OS invités, ces derniers croient dialoguer directement avec ledit matériel.

Hyperviseur de type 2

Cette solution est très comparable à un émulateur, et parfois même confondue. Cependant l’unité centrale de calcul, c'est-à-dire le microprocesseur, la mémoire de travail (ram) ainsi que la mémoire de stockage (via un fichier) sont directement accessibles aux machines virtuelles, alors que sur un émulateur l’unité centrale est simulée, les performances en sont donc considérablement réduites par rapport à la virtualisation.

Cette solution isole bien les OS invités, mais elle a un coût en performance. Ce coût peut être très élevé si le processeur doit être émulé, comme cela est le cas dans l’émulation. En échange cette solution permet de faire cohabiter plusieurs OS hétérogènes sur une même machine grâce à une isolation complète. Les échanges entre les machines se font via les canaux standards de communication entre systèmes d’exploitation (TCP/IP et autres protocoles réseau), un tampon d’échange permet d’émuler des cartes réseaux virtuelles sur une seule carte réseau réelle.

Exemples :

Hyperviseur de type 1

Un hyperviseur de type 1 est comme un noyau système très léger et optimisé pour gérer les accès des noyaux d'OS invités à l'architecture matérielle sous-jacente. Si les OS invités fonctionnent en ayant conscience d'être virtualisés et sont optimisés pour ce fait, on parle alors de paravirtualisation.

Hyperviseur de type 1

Actuellement l’hyperviseur est la méthode de virtualisation d'infrastructure la plus performante mais elle a pour inconvénient d’être contraignante et onéreuse, bien que permettant plus de flexibilité dans le cas de la virtualisation d'un centre de traitement de données.

Exemples :

Virtualisation totale (Full virtualization)

Dans la plupart des cas, il s'agit de la technique de virtualisation utilisées par les hyperviseurs de type 2. Dans ce cas le matériel est suffisamment émulé pour permettre à un système d'exploitation de fonctionner sans modification.

Cette approchée a été implémentée en 1966 avec l' IBM CP-40 et CP-67, prédécesseurs de la familleVM). Les exemples en dehors du secteur des mainframes : Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, VMware Server (GSX Server), KVM, QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro, et Egenera vBlade technology.

Virtualisation Hardware-Assisted

Le support de la virtualisation peut être intégré au processeur ou assisté par celui-ci, le matériel se chargeant, par exemple, de virtualiser les accès mémoire ou de protéger le processeur physique des accès les plus bas niveau. Cela permet de simplifier la virtualisation logicielle et de réduire la dégradation de performances.

Des exemples de virtualisation matérielle :

  • Hyperviseur IBM Power & Micro-partitionnement AIX

  • Mainframes : VM/CMS

  • Sun LDOM (hyperviseur pour la gestion de "logical domains")

  • Sun E10k/E15k

  • HP Superdome

  • AMD-V (Assistance à la virtualisation de AMD, anciennement Pacifica)

  • Intel VT (Assistance à la virtualisation de Intel, anciennement Vanderpool)

Cette technique de virtualisation est aussi connue sous le nom de virtualisation accélérée; Xen appelle cette technique Hardware Virtual Machine (HVM).

Des solutions bien connues qui implémentent les instructions VT-x et AMD-V sur architectures x86 sont par exemple VMware Workstation ou VMWare ESX , Xen 3.x+ (et ses dérivatifs), Linux KVM et Microsoft Hyper-V.

Paravirtualisation

La paravirtualisation est une réponse à la difficulté de virtualiser une bonne partie de l'ensemble des instructions des processeurs x86. Cette approche connait également des antécédents technologiques.

La paravirtualisation est une technique de virtualisation qui présente à une machine virtuelle une interface logicielle similaire à du matériel réel mais qui est optimisée pour ce type de fonctionnement. Cette approche s'oppose à l'émulation d'un périphérique matériel existant, qui peut s'avérer laborieuse et surtout plus lente.

La paravirtualisation permet

  • aux moniteurs de machines virtuelles (MMV) d'être plus simples et

  • aux machines virtuelles fonctionnant dessus d'atteindre un niveau de performance proche du matériel réel.

Transformation/portage du système d'exploitation invité

Cependant, les systèmes d'exploitation doivent explicitement être transformés afin de fonctionner sur des MMV paravirtualisées. Le portage des systèmes d'exploitation libres est généralement effectué, seulement il appartient aux fournisseurs de systèmes fermés de réaliser le portage eux-mêmes, ce qu'ils peuvent refuser de faire pour des raisons stratégiques.

Le système modifié de la machine virtuelle est capable d'établir des hypercalls (appels hyperviseurs), soit une interface qui lui permet d'interagir plus directement et plus simplement avec le matériel. Des gains de performance sont alors constatés.

Exemples : IBM'sLPARs, Win4Lin 9x, Sun's Logical Domains, Xen et TRANGO

C'est sur base de cette approche de cette approche que le projet Xen se bat sur le marché de la virtualisation notamment par le canal commercial de la société Citrix Systems.

Suite à la prolifération de solutions de paravirtualisation sous Linux, chacune proposant une adaptation différente du noyau Linux, une solution commune est en cours de développement dans le noyau officiel3 : virtio. Elle voit ses débuts dans la version 2.6.24 et de nombreuses améliorations sont en cours dans la branche 2.6.25. Cette interface est déjà utilisée par KVM.

Les pilotes virtio sont similaires aux vmware-tools ou vb-tools.

Xen se différencie de par son architecture.

Architectture Xen

Synthèse des techniques de virtualisation de plateforme x86

Virtualisation Hardware Paravirtualisation
OS invité non modifié OS invité modifié (Linux/BSD)
La machine virtuelle se comporte comme une machine physique La machine virtuelle connait son statut virtualisé.
Peut faire fonctionner Windows Ne peut faire fonctionner que des OS libres, mais aussi MS Windows (en PVHM)

7. Infrastructure de virtualisation

Une infrastructure virtuelle est constituée de plusieurs éléments eux-mêmes constitué en différentes couches de redondance matérielles ou logiques.

  • Infrastructure réseau TCP/IP

  • Machines physiques supportant un hyperviseur, machine hôtes hébergeant les VM les invités.

  • Stockage local sur l'hôte ou partagé sur le réseau.

  • Une interface de gestion accessible en console, via un API tiers ou intégré.

Réseau TCP/IP et LAN virtuels

Typiquement une infrastructure virtualisée repose sur un ensemble d'éléments interconnectés entre par le réseau en TCP/IP. L'infrastructure physique du réseau doit comporter les mêmes caractéristiques d'évolutivité, de dimensionnement adéquat, de robustesse, de redondance et de fiabilité. Les notions de commutation, de LAN virtuels et de routage sont mis en oeuvre.

Machine hôte et invités

Les machines physiques sont connectées à une infrastructure commutée et dispose d'un accès au réseau TCP/IP. Ces machines physiques peuvent être construite sur différents types de modèles de serveur en rack ou barebone.

Les hyperviseurs sont hébergés sur des machines hôtes qui exécutent les commandes de machines virtuelles invitées. Les VMs ne sont en fait que des modèles formels d'environnements d'exécution très bien isolés. Les emplacements de stockage ne sont pas virtualisés par l'hyperviseur même s'il peuvent être directement attachés à la machine hôte.

Stockage

Les emplacements de stockage contiennent :

  • les définitions des machines virtuelles (fichiers de configuration)

  • ainsi que les disques virtuels utilisés par celles-ci.

On préconisera une infrastructure d'accès au stockage robuste, fiable et évolutive. Des technologies comme iSCSI, FC, LVM ou DRBD sont préconisées. La redondance physique sera assurée par la technologie RAID adaptée.

Catégories de stockage

On trouvera quatre types de stockage :

  • DAS (Direct Attached Storage), un emplacement local en général, de type SCSI

  • SAN FC (Storage Area Network en Fiber Channel)

  • De plus en plus populaire, iSCSI supporté sur de plus en plus de solutions.

  • Des protocoles de partage en NAS (Network Attached Storage) tels que NFS ou CIFS (Microsoft).

Disques physiques

Ces disques réels doivent être formatés et organisés logiquement. De gros constructeurs disposent de leur solutions fermées. Dans les standards et/ou ouverts, on trouvera iSCSI, LVM, DRBD ou d'autres type de format de données.

Distributions / Appliances Open Source

Interface de gestion

L'ensemble des ressources (réseau, stockage, CPU/RAM/hosts) peut être administré localement et de manière hétérogène via une interface centrale de gestion accessible à travers une machine cliente du réseau. Citrix XenServer Center ou VMWare Vsphere Center propose ce type de logiciel fonctionnant de manière autonome ou sur une machine de gestion indépendante. Dans le contexte de l'informatique en nuage, on parlera de logiciel d'orchestration, et à d'autres niveaux de « boîtes à outil » et d'API permettant de développer des interfaces tierces.

Fonctionnalités avancées

Entre autres et sous certaines conditions techniques et financières, ce type d'infrastructure permet au marché de proposer des solutions en terme :

  • de snapshots

  • de répartition de charge

  • de reconfiguration ou de maintenance des hôtes

  • de migration ou de mise à jour

  • de sauvegarde consolidée

  • de plan Disaster Recovery

  • de réplication de site

  • de supervision et de gestion du réseau et des systèmes

  • des migrations P2V (Physique vers Virtuel)

Pour arriver à ces solutions les acteurs du marché s'associent ponctuellement, publient et utilisent des standards.

8. Techniques de migration

De manière sous-jacente ce sont les techniques de migration qui permettent de proposer ces solutions. On trouvera trois techniques de migration appréhendée et gérée par les différents constructeurs de manière différente. On distinguera :

  • La relocation froide

  • La migration chaude

  • La migration live

Fondamentalement, on retiendra que la migration consiste à déplacer de manière cohérente les trois éléments clés d'une VM : CPU/RAM, réseau, et stockage. Ces techniques se distinguent selon la complexité de mise en oeuvre et le temps d'interruption connu.

La relocation froide

But : Déplacer un invité entre des hôtes sans stockage partagé ou avec différentes architectures ou versions d'hyperviseur en encore du P2V.

Processus :

  • Arrêter l'invité sur l'hôte source

  • Déplacer l'invité d'un système de fichier à un autre (disques de la VM et fichiers de configuration)

  • Démarrer l'invité sur l'hôte de destination.

Avantages Limites
Solutions de maintenance matérielle connaissant l'interruption la plus courte Pas de stockage partagé nécessaire Les emplacements de stockage peuvent être différents La VM originale peut connaître de multiples copies et duplications Ces le processus le plus manuel Le service sera interrompu pendant la copie.

La migration chaude

But : Déplacer un invité entre des hôtes pendant que la disponibilté n'est pas critique.

Processus :

  • L'invité se met en pause d'exécution

  • L'invité (soit ses fichiers) sont transférés à travers le réseau

  • L'invité reprend ses activités sur l'hôte de destination

Avantages Limites
L'invité et ses aplpications ne sont pas interrompus Moins de données à transférer que dans le cas d'une migration live Pendant le temps du transfert, soit assez court, l'hôte ne répondu pas dans l'interface de gestion et sur le réseau Nécessite un stockage partagé sur le réseau

La migration live

But : utilisé pour la répartition de charge, la maintenance matérielle et la gestion de l'énergie.

Processus :

  • Commence à transférer l'invité en l'état au nouvel hôte.

  • Copie à la volée la mémoire RAM de l'invité de manière répétitive (pour assurer la continuité)

  • Reconfigure les connexions réseau et l'hôte continue à exécuter ses applications sans interruption du réseau.

Avantages Limites
Pas d'interruption de service Permanence de la connectivité Bref, disponibilité totale Nécessite un stockage partagé Les hôtes doivent partager le même LAN L'hôte de destination doit disposer de ressources suffisantes Les hôtes doivent disposer de ressources suffisantes Les hôtes doivent être configurés de manière similaires

9. La dominance de VMWare

L'interaction des produits commerciaux VMWare avec les solutions et logiciels open source est une question intéressante.

VMWare tire le marché à la manière de Cisco Systems ou de Microsoft sur d'autres segments. Selon Gartner en 2014, la majorité des systèmes RHEL virtualisés fonctionnaient encore sous VMWare ! La raison principale tiendrait à la difficulté de migrer les machines virtuelles vers un autre hyperviseur. Cette difficulté n'est certainement pas d'ordre technique.

L'hyperviseur ESXi de VMWare n'est pas un Linux modifié contrairement aux apparences car celui-vi dispose de son propre noyau VMKernel. Par contre rien n'empêche l'entreprise commerciale d'offrir des commandes de type Unix ou Busybox en guise de shell. ESXi serait un "UNIX-like". (A myth busted and an FAQ: ESXi is not based on Linux! But what is it?)

Par ailleurs, VMWare propose lui-même des logiciels open source en alternative aux siens afin de monter des infrastructures de qualité au rapport qualité/prix le plus intéressant. L'entreprise assure aussi du support pour des systèmes Linux/BSD.

Si ESXi est l'hyperviseur VMWare qui pour bien faire devrait être redondant, une infrastructure VMWare vSphere nécessite d'autres composants tels que :

  • un réseau haut débit pour un SAN (Stockage partagé et redondant à travers le réseau au minimum NFS, iSCSI).
  • un réseau pour la production
  • un réseau de gestion administrative
  • Une station de gestion administrative (vSphere ou un accès HTTP).

On remarquera que ces pré-requis gonflent le budget d'entrée d'une telle infrastructure. Quel que soit le choix d'une infrastructure supportée ou non voire hybride, il faudra investir autant que le coût du matériel en licences ou en développements internes. En cas choix de développement interne, les solutions open source deviennent extrêmement compétitives.

Enfin, il y aurait des liens à tisser avec le monde open source dans le cadre de la gestion administrative d'une infrastructure VMWare pour :

  • les opérations manuelles en ligne de commande ou avec des scripts
  • les solutions d'automation "maison"
  • du déboggage, des opérations de bas niveau sur l'hyperviseur ou son environnement.

Références

results matching ""

    No results matching ""