Table des matières

, ,

Kernel Virtual Machine

KVM, Kernel Virtual Machine, est intégré depuis le noyau 2.6.20 et permet une virtualisation matérielle et donc une accélération de la virtualisation de système d’exploitation.

C'est un système optimisé pour la virtualisation de serveur. Pour virtualiser des systèmes de type desktop, on peut lui préférer virtualbox. KVM semble en effet plus performant en consommation de processeur mais plus lent pour l'émulation du périphérique graphique. L'utilisation d'un bureau virtualisé dans VirtualBox pourra donc laisser une meilleure impression à l'utilisateur. Vous pouvez tout de même préférer KVM pour sa meilleure compatibilité avec des système d'exploitations anciens ou peu populaires.

Néanmoins, KVM est complètement libre, performant et très facile à installer et à utiliser. L'interface graphique virt-manager pourra aider les néophytes à paramétrer KVM et pourra rendre la vie plus simple aux administrateurs réseaux.

De plus, il est possible d'isoler une deuxième carte graphique dédiée à la virtualisation afin d'obtenir une accélération 3D. La méthode dite du "GPU passthrough".

Vous ne pouvez pas utiliser KVM en même temps que VirtualBox. Il faudra en effet fermer KVM pour utiliser VirtualBox et vice versa. Ou désactiver le support de la virtualisation processeur dans VirtualBox.
apparemment on peut désormais(test effectué sur ubuntu 12.04 amd64) installer kvm et virtualbox sans problème et il n'y a plus besoin de recharger les modules pour passer de l'un à l'autre, Simplement si vous lancez virtualbox alors que kvm tourne, virtualbox plantera, si vous lancez kvm alors que virtualbox tourne, qemu démarrera en mode tcg accelerator(avec des performance très faibles) voir ce post https://forum.ubuntu-fr.org/viewtopic.php?id=917021

Mise en place

Tout d’abord, assurez-vous que votre processeur supporte la virtualisation matérielle et, si c’est bien le cas, assurez-vous également que ce support est bien activé par le BIOS. Pour cela tapez cette commande :

egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Si un résultat s'affiche, c'est que le processeur supporte la virtualisation.

On peut aussi taper la commande (fournie par le paquet cpu-checker):

sudo kvm-ok

On obtient soit :

INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists
KVM acceleration can be used

ou cela :

INFO: Your CPU does not support KVM extensions

Il suffit ensuite d'installer le paquet qemu-kvm

Si la réponse indique que le paquet est virtuel, il est possible de procéder en ligne de commande.

sudo apt install qemu-kvm
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Note : sélection de « qemu-system-x86 » au lieu de « qemu-kvm »
.........

Droits utilisateur

Le périphérique '/dev/kvm' n'est accessible en écriture qu'aux utilisateurs du groupe kvm. Votre utilisateur sera normalement ajouté automatiquement, mais vous pouvez ajouter d'autres utilisateurs.

Ajouter votre utilisateur à ce groupe, soit à l’aide de votre outil de gestion des groupes, soit avec cette commande :

sudo adduser $USER kvm

Redémarrez enfin l'ordinateur (ou simplement la session si aucune console tty n'est ouverte) afin que l'utilisateur soit affecté au groupe.

Utilisation

Vous voilà prêt à installer un système d’exploitation virtuel.

Commencez par créer le fichier image qui va accueillir ce système :

qemu-img create -f qcow2 emplacement/du/fichier_image.img 6G

Où :

Puis installez votre système dessus en utilisant un CD-ROM d’installation :

kvm -m 256 -cdrom /dev/cdrom -boot d emplacement/du/fichier_image.img

256 est la quantité de mémoire à utiliser.

Vous pouvez également utiliser une image ISO sans la graver :

kvm -m 256 -cdrom emplacement/de/l_image.iso -boot d emplacement/du/fichier_image.img

Ou bien tester une clé LiveUSB de la maniere suivante (en supposant que la clé USB est relié au device /dev/sdb) :

kvm -m 512 -hdb /dev/sdb

Pour quitter la fenêtre de virtualisation, il vous faut utiliser les combinaisons de touches "CTRL-ALT" Une fois l'installation terminée, démarrez votre système virtuel :

kvm -m 256 emplacement/du/fichier_image.img

pour l'activation du son et de l'USB :

kvm -m 386 -std-vga -cdrom /dev/cdrom emplacement/du/fichier_image.img -soundhw all -usb

Pour restaurer une sauvegarde clonezilla sur périphérique USB dans une image virtuelle :

Connaitre les groupes de mon compte utilisateur :

id $USER

Autoriser mon compte utilisateur à accéder aux disques :

sudo adduser $USER disk fuse

Se déconnecter et reconnecter pour prendre en compte les modifications de son compte utilisateur. Connaitre le périphérique USB de restauration :

Sans le disque :

sudo fdisk -l

Avec le disque USB :

sudo fdisk -l

Notez le périphérique /dev/sdx supplémentaire affiché, c'est votre disque USB. Puis lancez la restauration dans votre machine virtuelle :

kvm -m 512 -cdrom /emplacement_du_fichier/clonezilla.iso -boot d /emplacement_du_fichier/fichier_image-virtuelle.img -hdb /dev/sdx
La taille du disque du fichier d'image virtuelle doit-être égal ou plus grande que la taille du disque sauvegardé

Voir aussi les autres paramètres de qemu qui peuvent être passés à kvm.

Suppression de Kvm

Pour supprimer cette application, supprimez son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.

A partir de Ubuntu 9.10 et suivant, il faut également supprimer le paquet qemu-kvm pour que la désinstallation soit complète.

S'il reste encore les modules installés à la main ( dans la partie mise en place de cette page), ouvrez un terminal puis tapez :
lsmod | grep -e '^kvm'

Pour retirer les modules, tapez :

sudo rmmod (nom_du_module)
Les modules seront à nouveau chargés au prochain redémarrage.

Utilisation avancée

Conversion d'image disque

$ kvm-img convert -c -f qcow2 image.qcow2 -O qcow2 image-compressed.qcow2
$ kvm-img convert -f vmdk image.vmdk -O qcow2 image.qcow2

Conversion d'image disque IMG vers un LV (LVM)

Vous pouvez monter directement un LV sur votre machine virtuelle. Ceci explique comment convertir un fichier .img en un Logical Volume sur LVM (visible depuis votre serveur KVM) Vous devez avoir au préalable déjà préparé un VG qui contiendra les data pour vos VM (ici appelé "vg_data"). (cf:Doc Ubuntu)

lvcreate -L80G -n lv_v-VmName vg_data

* Arrêt de votre VM * Copie du contenu de l'image IMG vers le LV :

dd if=/path/to/image/v-VmName.coe.int.img of=/dev/vg_data/lv_v-VmName

* Configurer votre VM pour utiliser ce LV

Amélioration des performances

VirtIO

L'utilisation des bus virtio permet de prendre en compte la virtualisation par l'invité grâce à des pilotes spécifiques qui lui permettent de travailler en collaboration avec l'hyperviseur kvm de l'hôte.

Autres

Astuces

Arrêter proprement une VM Windows

Réduire l'usage CPU

De manière générale, il est important d'avoir une couche kvm récente pour bénéficier des corrections de bugs et en particulier ceux liés à la performance. Il faut également avoir l'accélération matérielle du CPU pour la virtualisation (VT chez Intel, et AMD-V pour AMD).

Si votre VM ne fait rien, l'usage CPU de l'hôte ne devrait pas dépasser 3%. Voici quelques causes pouvant entraîner un usage CPU trop élevé (20% par exemple) :

Autres outils permettant d'administrer les machines virtuelles gérées par kvm

Outils Graphiques

Outils en ligne de commande

(cf: KVM virsh sur help ubuntu)

Ressources externes

ce logiciel semble devenu commercial ? 8-O