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
Vérifions que la para-virtualisation améliore les performances :
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