Utiliser KVM sous ubuntu pour virtualiser des serveurs ( 4eme partie : Para-virtualisation )

Pré-requis : ubuntu serveur 10.04, 12.04 ou 12.10 avec un système de partitions en LVM et d’OpenSSH installé.

et avoir suivi les 3 premières parties.

 

L’activation de la para-virtualisation améliore les performances réseaux et disques.

Mais il faut modifier le système invité.

La para-virtualisation au sein de KVM repose sur le projet virtio.

Virtio n’est pas disponible pour tous les systèmes invités, actuellement il n’existe que pour les systèmes invités windows XP, windows 2000 et les distributions linux comportant un noyau 2.6.25 ou supérieur.

Remarque : Virtio nécessite KVM V.60 ou supérieur (ce qui est le cas de Ubuntu 10.04).

Tests de performances avant l’activation de la para-virtualisation

Cette partie détaille l’installation et le protocole de test pour évaluer les performances induites par la para-virtualisation.

Installation des outils de test

Afin de nous assurer du bénéfice apportée par la para-virtualisation, nous allons mettre en place une procédure de test de performances. Pour cela, nous allons tester les performances réseau et disque en utilisant les utilitaires iperf et hdparm que nous installons à la fois dans le système hôte et le système invité :

sudo aptitude install iperf hdparm
Test sans activation de la para-virtualisation

Sur le système hôte et la machine virtuelle, il est désormais possible de tester la vitesse de lecture du disque

sudo hdparm -t /dev/sda sudo hdparm -t /dev/md

Remarque : l’option -t permet de désactiver le cache du disque

Résultat sur le système host:

/dev/md0:
 Timing buffered disk reads:  494 MB in  3.00 seconds = 164.46 MB/sec
/dev/sda:
 Timing buffered disk reads:  248 MB in  3.01 seconds =  82.26 MB/sec

 

Sur la machine virtuelle :

 sudo hdparm -t /dev/vda

Résultat :

/dev/vda:
 Timing buffered disk reads:  476 MB in  3.00 seconds =  158.42 MB/sec

 

Pour tester la vitesse du réseau entre le système hôte et la machine virtuelle, il suffit de saisir sur le système hôte :

iperf -s

Puis de saisir dans la machine virtuelle :

iperf -c 192.168.1.2

Résultat :

Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
————————————————————
[  4] local 192.168.1.2 port 5001 connected with 192.168.1.3 port 51696
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec    841 MBytes    704 Mbits/sec

Configuration de la machine virtuelle

Activation de la para-virtualisation au sein de la machine virtuelle.

Edition du fichier /etc/initramf-tools/modules

Dans la machine virtuelle, éditez le fichier /etc/initramfs-tools/modules et ajoutez-y le contenu suivant:

virtio 
virtio_balloon 
virtio_pci 
virtio_ring 
virtio_net 
virtio_blk

Pour prendre en compte les précédentes modifications:

sudo update-initramfs -u
Redémarrage de la machine virtuelle en activant la para-virtualisation, càd en vérifiant que les drivers « virtio » sont bien sélectionnés dans la configuration matérielle de la machine virtuelle.

 

Vérifions que la para-virtualisation améliore les performances :

Sur la machine virtuelle :
sudo hdparm -t /dev/vda:
/dev/vda
Timing buffered disk reads:  706 MB in  3.01 seconds = 234.77 MB/sec

 Sur l’hôte :

iperf -s

Puis  saisir dans la machine virtuelle :

iperf -c 192.168.1.2

Résultat :

TCP window size: 85.3 KByte (default)
————————————————————
[  4] local 192.168.1.2 port 5001 connected with 192.168.1.3 port 36637
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec    783 MBytes    656 Mbits/sec

 

Bon, J’ai fait les test plusieurs fois, et les résultats sont assez variable.

Mais, mon sentiment, c’est que la machine virtuelle est plus réactive…

Webographie :

http://thegeekcorner.pagesperso-orange.fr/fr/tutoriel/kvm_linux.html

http://wiki.libvirt.org/page/Virtio

http://doc.ubuntu-fr.org/grub-pc

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.