Ceci est une ancienne révision du document !



Virtualisation de systèmes d'exploitation

La virtualisation de systèmes d'exploitation est une technique consistant à faire fonctionner en même temps, sur un seul ordinateur, plusieurs systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs distincts.

Plusieurs types de virtualisation existent, mais toutes fonctionnent selon un même principe :

  1. Un système d'exploitation principal (appelé système d'exploitation hôte) est installé dans l'ordinateur et sert de système d'accueil à d'autres systèmes d'exploitation ;
  2. Dans le système d'exploitation hôte, un logiciel de virtualisation (appelé hyperviseur) est installé. Celui-ci crée des environnements clos, isolés, avec des ressources bien précises : ces environnements clos sont appelées des machines virtuelles ;
  3. D'autres systèmes d'exploitation (appelés systèmes d'exploitation invités) peuvent alors être installées dans des machines virtuelles. Leur instance est totalement isolée des autres système hôte et systèmes invités.

En bref, la virtualisation est une méthode faisant fonctionner un ou des systèmes d'exploitation invités dans des machines virtuelles, au-dessus d'un système d'exploitation hôte.

Un système invité Windows XP est virtualisé au-dessus d'Ubuntu 10.04 LTS à l'aide de l'hyperviseur VMware Player

La virtualisation de systèmes d'exploitation a plusieurs intérêts :

  • Utiliser un autre système d'exploitation sans redémarrer son ordinateur, afin d'utiliser des programmes ne fonctionnant pas nativement dans Ubuntu ;
  • Exploiter des périphériques ne fonctionnant pas dans Ubuntu mais fonctionnant dans d'autres systèmes d'exploitation, car la gestion des périphériques de l'ordinateur est correctement implantée ;
  • Tester des systèmes d'exploitation sans devoir repartitionner ses disques durs et sans compromettre un environnement quotidien stable ;
  • Tester des logiciels dans des environnements contrôlés, isolés du système hôte ;
  • Transporter ses systèmes d'exploitation d'un ordinateur à l'autre, une machine virtuelle fonctionnant sur n'importe quel ordinateur disposant d'un hyperviseur compatible.

Les entreprises ont compris les nombreux avantages que leur apporte la virtualisation. Afin de gagner de la place dans les salles de serveurs, faciliter les installations et les redémarrages après incidents, et développer et sécuriser les systèmes d'exploitation, les entreprises y ont de plus en plus recours.

Les particuliers seront toutefois plus intéressés par la perspective de faire fonctionner deux systèmes d'exploitation différents en même temps, afin d'exécuter des logiciels qui sont compatibles avec l'un mais pas avec l'autre.

Diagramme de la virtualisation complète (Source : Wikipedia

C'est ce type de virtualisation qui est particulièrement recherché par les particuliers. Ce type de virtualisation permet de faire fonctionner n'importe quel système d'exploitation sans adaptation aucune, puisque l'hyperviseur simule un ordinateur entier.

Fonctionnement : L'hyperviseur1) crée un environnement virtuel complet simulant littéralement un nouvel ordinateur complet, avec du "faux matériel". À quelques rares exceptions, le système d'exploitation invité (installé dans la machine virtuelle) ne communique qu'avec ce faux matériel simulé, rendant étanche l'environnement virtualisé.

Limitations : Ce type de virtualisation ne permet d'émuler que des systèmes d'exploitation prévus pour la même architecture matérielle que le processeur physique de l'ordinateur hôte. Par exemple, un ordinateur équipé d'un processeur Intel x86 sera incapable de virtualiser un OS prévu pour fonctionner dans une architecture PowerPC.

Virtualisation matérielle : La virtualisation matérielle est un préalable à la virtualisation de systèmes d'exploitation 64 bit. Elle est un ensemble d'instructions prévus dans le processeur d'un ordinateur pouvant être exploités par un hyperviseur dans le but d'améliorer les performances des machines virtuelles et des systèmes d'exploitation invités. Cette technologie est appelée AMD-V chez AMD et Intel VT-x chez Intel. Généralement incluse dans les processeurs récents, la virtualisation matérielle doit toutefois bien souvent être activée dans le BIOS de l'ordinateur et paramétrée convenablement dans les paramètres de la machine virtuelle.
Tous les processeurs ne sont pas capables de virtualisation matérielle. Liste des processeurs gérant la virtualisation matérielle

Un invité Fedora 12 fonctionnant au-dessus d'un système hôte Ubuntu 8.10 grâce à l'hyperviseur VirtualBox

Hyperviseurs de type 2 : Voici une liste de logiciels permettant de mettre en place une solution de virtualisation complète :

Emulation

Fonctionnement : le logiciel de virtualisation crée un ordinateur virtuel simulé complet (Bios, processeur, mémoire, disque dur, cartes réseau, vidéo, …), intercepte une grande majorité des instructions du système invité pour les remplacer par leur équivalent sur le système hôte.

Caractéristiques particulières :

  • permet d'exécuter des applications prévues pour d'autres architectures (ordinateurs, consoles, bornes d'arcade …),
  • performances médiocres,
  • le système invité n'a pas conscience de la virtualisation.

Émulateurs :

  • QEmu sans accélérateur KQemu
  • Boshs

ParaVirtualization

Fonctionnement : le système invité doit être écrit de manière particulière afin de fonctionner au sein de l'hyperviseur (pilotes et API spécifiques), et y fonctionne directement sans interception des instructions.

Caractéristiques particulières :

  • nécessite un système invité compatible avec l'hyperviseur,
  • excellentes performances (proche de l'exécution native),
  • le système invité a conscience de la virtualisation.

Hyperviseurs de type 1 :

  • Xen : un peu difficile a mettre en place, mais donne des resultats proches de 100% du système hote. Recommandé pour la virtualisation de services réseau (ftp, web, dns, dhcp …)
  • xVM : solution de virtualisation de SUN pour serveurs de souche XEN.

Environnement Virtuel ou Operating system-level virtualization

Fonctionnement : chaque environnement exécuté possède son propre espace mémoire, afin d'être isolé des autres, les autres ressources systèmes sont partagées (pilotes, noyau …). Les instructions ne sont pas interceptées, et l'environnement exécuté doit impérativement être compatible avec celui du système hôte (on ne peut pas par exemple, exécuter Windows sur un Environnement Virtuel de type Linux).

Caractéristiques particulières :

  • permet d'exécuter plusieurs fois le même environnement dans des zones mémoires séparées,
  • les ressources partagées empêchent d'obtenir une isolation sûre entre les environnements invités.

Exemple : Linux-VServer, OpenVZ

  • petit topo sur OpenVZ et Vserver sur le site des Linuxiens : http://www.linuxfr.org/~Aefron/27379.html ; OpenVZ et Vserver sont des "container" au même titre que chroot.
  • des linuxiens partagent leur expérience en matière de virtualisation. Xen remporte un franc succès. On y évoque aussi OpenVZ et VMware.

1)
On appelle ce type d'hyperviseurs un "hyperviseur de type 2"
  • virtualisation.1272528445.txt.gz
  • Dernière modification: Le 29/04/2010, 10:07
  • par 193.253.35.169