CHAPITRE III. : LES SOLUTIONS DE VIRTUALISATION DES
SERVEURS

III.1. INTRODUCTION
Il existe plusieurs solutions de virtualisation dans le monde
libre sous GNU/Linux. Dans ce chapitre, nous ne verrons que les solutions le
plus en vogue et qui se basent sur les technologies vues dans le chapitre II.
Outre Bochs et VMware Serveur basé sur la virtualisation complète
c'est-à-dire que ces logiciels sont capables d'émuler le
processeur, le BIOS et les périphériques usuels :
Entrées/Sorties, nous parlerons que de QEMU, KVM, Linux-VServer, OpenVZ,
Xen.
III.2. VIRTUALISATION AVEC QEMU III.2.1.
Aperçu sur QEMU

QEMU
Virtualization complete
Paravirtualisation
Hyperviseur
x
Cloisonnement
QEMU est une machine virtuelle ou
émulateur de système, libre qui permet de faire tourner un ou
plusieurs systèmes d'exploitation13 ou seulement des
processus sur un système d'exploitation déjà
installé sur la machine. QEMU utilise la virtualisation complète
et isolée sur une même machine physique comme illustre la figure
11.
Fig. 11. Solution avec QEMU
13
http://fr.wikipédia.org/wiki/QEMU,
http://www2.wwweball.com/wiki/page.php/QEMU
visité le 25 juillet 2011 à 19h30'
QEMU fonctionne sur les plateformes x86-64, PPC, Sparc
et ARM et sous les systèmes d'exploitation Linux, FreeBSD,
NetBSD, OpenBSD, Mac OS X, Unix et Windows. Les systèmes invités
partagent ainsi les ressources de la machine physique et n'ont pas «
conscience » d'être virtualisés. Ils n'ont donc pas besoin
d'être adaptés pour fonctionner sur QEMU.
QEMU est un module pour le noyau linux qui
permet d'accélérer l'émulation sur les systèmes
d'exploitation linux en contournant certaines couches d'abstraction du
système se rapprochant ainsi des performances natives du système
hôte lorsque le processeur ne possède pas de fonctions
matérielles dédiées à la virtualisation. QEMU
permet d'exécuter le code de l'instance virtuelle de système
d'exploitation invité directement sur le processeur hôte comme
nous montre la figure 12.

Applications utilisateur Système
invite
QEMU X86
Pilotes
Système Hôte: Linux, Windows
QEMU
Matériel
A hit
Applications utilisateur
Système invite
QEMU X86
Pilotes
Fig.12. La technologie QEMU
Le système invité est géré comme
une image disque complète par le système hôte et grossit au
fur et à mesure que le système invité remplit l'espace
réservé à la création.
III.2.2. La Gestion du réseau par QEMU
QEMU offre plusieurs modes de fonctionnement
pour la connexion de système invité au réseau.
La première méthode, la plus simple, consiste
à laisser un accès limité au réseau depuis la
machine virtuelle. Dans ce mode, appelé user mode networking,
QEMU offre un réseau privé au système
invité, et filtre les communications. Du point de vue du système
invité, il y a un réseau privé simple, avec un serveur
DHCP qui attribue dynamiquement des adresses
IP et une passerelle pour accéder à Internet. Ce mode
est totalement indépendant du système hôte, le DHCP et la
passerelle sont émulés par QEMU.
Le déroulement du processus est le suivant :
1. QEMU est initialisé en user mode Networking ;
2. Le système invité démarre ;
3. à l'initialisation du réseau, le système
invité effectue une requête DHCP pour configurer la carte
réseau ;
4. la pile user mode de QEMU répond à la
requête DHCP et attribue une adresse IP à la carte réseau
du système invité ;
5. une fois la carte configurée, le système
invité peut émettre du trafic sur le réseau virtuel, comme
s'il était connecté à un véritable réseau
;
6. quand le système invité émet du trafic,
QEMU récupère le trafic réseau et le passe au
système hôte, qui se charge alors de l'émettre sur le
véritable réseau physique.
Du point de vue du système hôte,
QEMU est un programme comme un autre, y compris pour
l'accès au réseau. Cette particularité fait que la
configuration user mode est très simple, QEMU
se chargeant de tout. Par contre , il n'est pas possible de faire fonctionner
un programme hébergeant un service réseau comme le serveur Web
avec ce mode, sauf à dire explicitement à QEMU
d'écouter sur un port donné et d'avoir l'autorisation du
système hôte pour écouter sur ce port. Ce mode est donc
réservé aux tests rapides, ou aux cas d'utilisation ne
nécessitant qu'un usage basique de l'accès à
Internet.
- Le deuxième mode proposé est le mode
TAP ou tuntap. Dans cette
configuration, une interface réseau virtuelle est créée
sur le système hôte. Cette interface virtuelle est ensuite
reliée à l'interface physique par un pont (bridge), qui
servira à faire passer le trafic réseau de l'une vers l'autre.
QEMU relie alors le système invité à l'interface
virtuelle.
Une autre particularité intéressante de QEMU est
la possibilité de relier les systèmes invités entre eux,
indépendamment du réseau physique sous-jacent. Chaque instance de
QEMU démarrée peut se voir préciser un numéro de
VLAN. De cette manière, seules les machines virtuelles
partageant le même numéro de VLAN14 peuvent communiquer
entre elles.
QEMU dispose d'énormément de
possibilités en ce qui concerne la gestion du réseau, mais ce
n'est pas son seul point fort. En effet, il y a quantité d'options
paramétrables au lancement du programme, qui contrôlent le type de
matériel émulé, la connectivité au réseau,
les disques et répertoires à rendre accessibles au système
invité, etc.
III.2.3. Conclusion sur QEMU
QEMU est sous la licence
GNU/GPL et reste une solution intéressante dans les cas
d'utilisation où l'on a simplement besoin de tester le comportement d'un
programme ou d'un système. Les options d'interconnexion qu'il offre,
tant avec le système hôte qu'avec d'autres machines du
réseau sont très intéressantes, et permettent de mettre au
point des architectures très complexe, impossibles à
réaliser avec des machines physiques.
QEMU, de par sa robustesse et ses
fonctionnalistes étendues est réutilisé dans plusieurs
solutions de virtualisation comme :
> KVM : la partie utilisateur utilise une
version légèrement modifiée de QEMU ;
> Xen : QEMU est la machine virtuelle se
chargeant des E/S lorsque Xen utilise les processeurs supportant les
instructions de paravirtualisation ;
> Virtualbox : se base sur QEMU pour la
réalisation des E/S.
Ainsi, QEMU offre des performances insuffisantes par rapport
à la puissance de la machine hôte pour des serveurs
destinés à offrir des grandes capacités dans le
réseau.
14Un VLAN ou Réseau Local
Virtuel est un réseau local regroupant un ensemble de machines de
façon logique. Présenté par : Bonhomie BOPE
bonhomie.bope@ista.ac.cd 243 851 796 942, 243 898 297 100
III.3. VIRTUALISATION AVEC KVM III.3.1.
Aperçu sur KVM
KVM, kernel Based Virtual Machine est une solution de
virtualisation complète sur linux. Elle est basée sur les
architectures x86 possédant les extensions matérielles de
virtualisation Intel VT ou AMD-V. Elle consiste en un
module chargeable du noyau qui fournit le coeur de virtualisation
kvm.ko et module spécifique dépendant du processeur soit
kvm-intel.ko pour les processeurs Intel soit kvm-and.ko pour
les processeurs ADM. Le schéma ci-dessous illustre la solution de
virtualisation utilisé par KVM

|
Virtualisation complète
|
X
|
|
Paravirtualisation
|
|
|
Hyperviseur
|
|
|
Cloisonnement
|
|
KVM
Fig. 13. La technologie KVM pour la virtualisation
Les outils QEMU sont aussi nécessaires
au fonctionnement de KVM pour les manipulations sur les
fichiers images des instances de s systèmes d'exploitation.
Techniquement, la solution KVM se compose :
- D'un module noyau qui utilise les instructions de
virtualisation et communique avec le processeur ;
- D'un programme utilisateur, qui utilise le module noyau pour
toutes les opérations privilégiées.
Avec la solution KVM, chaque machine virtuelle
est un processus standard du noyau linux serré par l'ordonnanceur.
Un processus normal de système
GNU/LINUX peut être exécuté selon deux
modes : noyau (kernelspace) ou utilisateur (userrspace). KVM
ajoute un troisième mode : le mode invité qui
possède ses propres modes noyau et utilisateur.
La partie utilisateur de KVM est une version
légèrement modifiée de QEMU, simplement
adaptée pour que les opérations pouvant
bénéficié des instructions de virtualisation du processeur
fassent appel au module noyau.
|