Skip to content

Virtualisation

Cette documentation a été écrite il y a bien longtemps et n'est plus mise à jour. Comprenez que les informations que vous y trouverez peuvent avoir changé de manière conséquente !

I- Principes de la virtualisation

1- Introduction

En informatique, on essaye toujours de distinguer deux mondes : Le monde du matériel et le monde du logiciel. Le premier fournit les équipements physiques, le second fournit les données et les applications.

La virtualisation a été inventée dans le but de s'affranchir au maximum de la couche matérielle de l'informatique, le matériel étant cycliquement obsolète et tombant régulièrement en panne.

Dans un système non virtualisé, quand le matériel tombe en panne, la couche logicielle n'est pas toujours migrable. Il arrive fréquemment que l'on soit dépendant du matériel et donc obligé de garder en vie du matériel dépassé.

2- Virtualisation totale (hyperviseur type 1)

La virtualisation complète utilise un système d'exploitation hôte classique (Linux, Windows dont les noyaux ne sont pas modifiés) et un logiciel de virtualisation qui émule un matériel virtuel.

Les machines virtuelles installent des systèmes d'exploitation invités qui utilisent des pilotes pour gérer le matériel virtuel.

Exemples :

  • VirtualBox
  • VMWare Server, VMWare Workstation
  • MS VirtualPC, Virtual Server (arrêté)

3- Virtualisation assistée par matériel (Hyperviseur type 1)

Il s'agit toujours d'un système de virtualisation totale mais une amélioration importante est ajoutée : Le VMM est capable d'utiliser les fonctionnalités avancées des processeurs gérant la virtualisation (voir chapitre sur la virtualisation matérielle) : Intel-VT et AMD-V.

Les logiciels cités au chapitre précédents sont aujourd'hui capable de faire de la virtualisation assistée par matériel.

4- Para-virtualisation (Hypervision de type 2)

La para-virtualisation évite d'utiliser un système hôte complet pour faire la virtualisation.

A la place, un noyau très léger de système d'exploitation hôte est utilisé. Les performances sont bien meilleures en para-virtualisation qu'en virtualisation complète.

Exemples de systèmes de para-virtualisation :

  • VMWare ESX
  • Hyper-V
  • Oracle VM
  • Xen
  • KVM

5- Virtualisation d'environnement (ou de processus)

La virtualisation d'environnement concerne uniquement la partie applicative. Il n'y a qu'un système d'exploitation utilisé mais l'application ou l'environnement utilisateur ou logiciel est cloisonné de sorte que les processus soient indépendants.

Au niveau de l'environnement, on utilise des logiciels comme :

  • Jail BSD
  • OpenVZ
  • Chroot

Au niveau applicatif, de nombreux logiciels sont capables de créer des processus virtuels comme :

  • les hôtes virtuels d'Apache
  • les hôtes virtuels de Postfix
  • ...

6- Virtualisation purement matérielle

Comme nous l'avons vu dans la virtualisation assistée par matériel, les constructeurs de processeurs comme AMD et Intel ont intégré depuis plusieurs années des fonctions de virtualisation directement dans l'architecture de leurs processeurs.

Cette technologie permet au processeur de faire fonctionner sur une même puce plusieurs systèmes d'exploitation en parallèle. Les VMs peuvent utiliser le matériel directement, sans que l'hyperviseur leur en donne l'autorisation.

Les gains de performances sont très importants avec un processeur gérant la virtualisation.

http://sites.amd.com/fr/business/it-solutions/virtualization/

http://www.intel.com/content/www/fr/fr/virtualization/intel-virtualization-transforms-it.html

II- Hyperviseur (exemple avec Hyper-V)

1- Partage de ressources

Le rôle principal de l'hyperviseur est de dédier des ressources matérielles à chaque VM.

Parmi ces ressources on peut citer :

  • Un nombre de processeurs ou de cœurs de processeur (le CPU doit gérer la virtualisation)
  • Une quantité de RAM
  • Un disque dur virtuel
  • Un lecteur de CD/DVD
  • Une carte réseau virtuelle

2- Disques virtuels et stockage

Dans une VM, les données sont stockées sur un disque dur virtuel. Ce disque dur se présente sous forme de fichier dans le système de fichiers de l'hôte :

  • VHD chez Microsoft
  • VDI chez Oracle
  • VMDK chez VMWare
  • OVF pour le format ouvert

Tous les formats de disques durs virtuels (VDI, VHD, VMDK, OVF) sont transformables dans d'autres sont difficulté particulière. Par exemple les outils en ligne de commande de Virtualbox le permettent.

Les disques virtuels peuvent être statiques ou dynamiques. Dans le premier cas, si vous créez un disque de 50 Go, le fichier de disque virtuel fera 50 Go sur votre système hôte (attention pour les sauvegardes !). Avec un disque dynamique, le fichier de disque virtuel se remplit au fur et à mesure qu'il est utilisé. Un disque de 50 Go dans lequel il n'y a pas de données ne pèsera dans le système de fichiers hôte que quelques octets.

En cas de besoin, ces disques virtuels peuvent être ouverts par le système hôte, par exemple un fichier VHD peut s'ouvrir dans le gestionnaire des disques de Windows 2008 (et ultérieur) et il peut également s'ouvrir avec le logiciel libre 7-Zip.

3- Réseaux virtuels

Les machines virtuelles doivent pouvoir accéder au réseau mais seule la machine hôte est directement connectée au réseau. Il existe plusieurs techniques pour permettre aux VMs d'accéder au réseau.

La technique la plus simple consiste à faire un pontage (bridging) de la carte réelle vers une carte virtuelle. L'hyperviseur agit alors comme un switch sur lequel sont connectées toutes les VMs. L'hyperviseur peut également prendre en charge l'appartenance aux VLANs si besoin.

L'autre technique est d'utiliser le NAT comme le ferait un routeur. Cela rend difficile (ou impossible selon le logiciel choisi) l'accès en tant que serveur d'une VM (il faut translater le ou les ports nécessaires).

Enfin les VMs peuvent être connectées à un réseau interne complètement fermé à l'extérieur (comme si le switch virtuel n'était connecté à aucun autre switch).

Technique du pontage (carte virtuelle faisant office de switch) :

III- Migrations : P2V -- V2P - V2V

1- P2V

Le P2V est la transformation d'une machine physique vers une machine virtuelle (Physical to virtual).

Sous Windows, le logiciel Disk2VHD transforme un disque physique en disque VHD. D'autres logiciels plus complets peuvent être achetés. Dans tous les cas, les contraintes d'une telle transformation sont fortes, et ce processus n'est pas toujours réalisable dans de bonnes conditions.

Il est fortement conseillé de supprimer tous les pilotes spécifiques (cartes vidéo, cartes réseau, Raid, ...) avant de virtualiser. Le premier redémarrage est conseillé en mode sans échec pour vérifier que tout fonctionne et pour corriger les erreurs.

2- V2P

Il s'agit de transformer une machine virtuelle en machine physique. Cette opération est beaucoup moins commune car les environnements sont aujourd'hui en grande partie virtualisés. Il existe néanmoins des outils, par exemple chez VMWare et Virtualbox permettant de réaliser cette opération.

3- V2V

Cette opération est très commune, il s'agit de migrer une VM d'un environnement virtuel un à autre...

  • soit parce que le système hôte a changé (passage de MS VirtualServer à Hyper-V, par exemple)
  • soit parce que la solution de virtualisation a changé (migration vers VMWare, vers Hyper-V, vers Xen, ...).

IV- Maintenance et sauvegardes

1- Clichés

Les clichés de disques durs ne sont pas des sauvegardes. Les deux systèmes sont complémentaires.

Un gros avantage de la VM est de pouvoir revenir en arrière quand un événement se produit. Les données des VMs étant dans des fichiers sur le disque de l'hôte, il suffit de garder une copie du disque d'origine avant de se lancer dans une opération de maintenance.

Les clichés de disques virtuels sont des images du disque à un instant t pour y revenir en cas de besoin. Le schéma suivant illustre ce principe :

2- Sauvegardes

Les machines virtuelles ont quelques particularités qui les rendent spécifiques à sauvegarder :

  • Premièrement, les données à sauvegarder sont forcément plus importantes (on sauvegarde toutes les partitions intégralement).

  • Deuxièmement, les données sont toujours vivantes puisque le système d'exploitation des VMs ne s'arrête jamais.

Il faut donc utiliser des logiciels professionnels prenant bien en charge la virtualisation.