ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

 

[[virtualisation]]

Piste: » virtualisation


Virtualisation

Pourquoi la virtualisation ?

Cette technique permet de faire des installations d'autres systèmes sur une seule et même machine. L'avantage est de pouvoir lancer celui qui nous intéresse quand on veut et de ne pas avoir un nombre important de machines avec chacune un système d'exploitation. Il est possible de lancer plusieurs systèmes en même temps mais il faut que les capacités matérielles soient importantes (en processeur et mémoire notamment). Pour pouvoir gagner de la place dans les salles de serveurs, faciliter les installations et les redémarrages après incidents, sécuriser les systèmes, les entreprises y ont de plus en plus recours.

Les différents types de Virtualisation

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.

Exemples : Bochs, Qemu sans accélérateur KQemu

Virtualisation complète ou Full Virtualization

Fonctionnement : le logiciel de virtualisation crée un ordinateur virtuel simulé complet (Bios, processeur, mémoire, disque dur, cartes réseau, vidéo, …), intercepte et traduit uniquement certaines instructions particulières du système invité : celles qui auraient un impact en dehors de la machine virtuelle, ou ne peuvent être exécutées directement par l'hôte.

Caractéristiques particulières :

  • permet d'exécuter des applications prévues pour la même architecture (on ne peut pas avoir une VM pour architecture Intel X86 sur un PowerPC par exemple),
  • assez bonnes performances,
  • le système invité n'a pas conscience de la virtualisation.

Exemples : VMware, VirtualBox, Qemu avec accélérateur KQemu.

Virtualisation matérielle :

Le support de la virtualisation matérielle par le processeur améliore les performances du système virtualisé, en permettant une communication plus fluide entre celui-ci et le processeur. Ce sont tout d'abord les sets d'instruction Intel-VT et AMD-V dont sont dotés les processeurs récents de ces deux constructeurs. Plus récemment, le support du "nested paging" offre une couche supplémentaire d'optimisation de la virtualisation, mais seuls les processeurs de dernière génération la supportent. A savoir les architectures K10 chez AMD et i7 chez Intel. Bien souvent, il est nécessaire d'en activer le support dans le BIOS, et de le paramétrer dans les réglages du logiciel de virtualisation.

Processeurs supportant le nested paging:

  • Tout Intel Core i7
  • Intel Xeon W35xx
  • Intel Xeon L55xx, E55xx, X55xx and W55xx
  • AMD Athlon X2 7xxx
  • Tout AMD Athlon II
  • Tout AMD Phenom et Phenom II
  • AMD Opteron x3xx

HyperViseur ou 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.

Exemple : Xen, UML, coLinux

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

Logiciels

  • VirtualBox : Recommandé pour l'utilisation de système virtualisé de système de type Desktop.
  • QEmu : L'ancêtre de KVM
  • KVM : l'environnement de virtualisation Linux du futur (comprendre le mieux supporté)
  • 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 …)
  • chroot : la premiere forme de virtualisation sous Linux, aucune gestion matérielle,
  • User mode linux: : Le noyau Linux utilisé comme un exécutable
  • xVM : solution de virtualisation de SUN pour serveurs de souche XEN.
  • Proxmox : une solution de virtualisation open source pleinement intégrée basée sur OpenVZ et KVM.
  • LXC : Linux containers userspace tools

gestion graphique pour environnement de virtualisation

Divers

Liens

  • 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.

Pages en rapport


Contributeurs : ?


virtualisation.txt · Dernière modification: Le 03/02/2010, 21:20 par 213.95.41.13
Le contenu de ce wiki est sous licence : CC BY-SA v3.0