La virtualisation, ce n'est pas formcément réservé aux fermes de serveurs et aux grandes entreprises. Il est souvent utile pour des utilisateurs expérimentés ou encore des techniciens de disposer de machines virtuelles pouvant assouvir leur soif de tests.
Voici un petit guide pour préparer l'utilisation du système de virtualisation KVM.
La procédure à été testée sous Ubuntu Lucid 10.04 & Maverick 10.10 ainsi que Linux Mint 9 Isadora & 10 Julia.
Si vous souhaitez disposer d'une version plus récente de KVM que celle fournie par les depots officiels, vous pouvez activer l'utilisation du dépot dnjl dedié à la virtualisation (procédure optionelle):
$ apt-add-repository ppa:dnjl$ apt-get update
Installons les paquets nécéssaires à l'utilisation de KVM:
$ apt-get install kvm virt-manager libvirt-bin virt-viewer virtinst
Et si vous êtes sous Ubuntu Lucid / Mint Isadora, vous pouvez également installer le package suivant:
$ apt-get install python-virtinst
Votre utilisateur sera ajouté au groupe libvirtd. Vous pouvez évidemment y ajouter d'autres utilisateurs au besoin. Verifiez la présence de votre nom d'utilisateur avec
$ cat /etc/group | grep libvirtd
Evidemment, les nouveaux droits de votre utilisateur ne seront appliqués qu'après déconnexion / reconnexion de votre session.
Pour ceux qui auraient oubliés et qui seraient gratifiés du message suivant:
Unable to open a connection to the libvirt management daemon.
Libvirt URI is: qemu:///system
Verify that:
- The 'libvirt-bin' package is installed
- The 'libvirtd' daemon has been started
- That you have access to '/var/run/libvirt/libvirt-sock'Unable to open connection to hypervisor URI 'qemu:///system':
unable to connect to '/var/run/libvirt/libvirt-sock', libvirtd may need to be started: Permission non accordée
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 996, in _try_open
None], flags)
File "/usr/lib/python2.6/dist-packages/libvirt.py", line 111, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: unable to connect to '/var/run/libvirt/libvirt-sock', libvirtd may need to be started: Permission non accordée
Il suffit de se déconnecter / reconnecter.
Il est maintenant temps de créer notre première machine virtuelle. Comme toujours, la GUI c'est beau (enfin souvent), savoir faire les manipulations en ligne de commande est encore mieux:
$ virt-install --connect=qemu:///system --name=TestXP --ram=768 --vcpus=1 --sound --cdrom=/dev/cdrom --disk path=/var/lib/libvirt/images/TestXP.vhd,size=25 --vnc --vncport=6000 --os-variant=winxp --virt-type=kvm
Cette commande installe sur l'hyperviseur local, une machine virtuelle qui tournera sous Windows XP nommée TestXP équipée de 768Mo de RAM, un CPU virtuel, utilise le lecteur CD physique de la machine hôte comme lecteur d'installation, crée un disque dur de 25Go, deporte l'affichage de la machine virtuelle en VNC sur le port 6000. Evidemment cet exemple est assez simple, mais l'aide fourni par virt-install avec la commande
$ virt-install --help
devrait satisfaire votre curiosité. Enfin, l'application graphique Virtual Machine Manager permet d'utiliser la puissance de KVM sans être un expert de la ligne de commande.
Problèmes eventuels:
Si votre version de libvirt est antérieure à la 0.84 ou si une machine virtuelle est en cours de création, vous risquez de tomber sur le message d'erreur suivant:
Traceback (most recent call last):
File
"/usr/share/virt-manager/virt-manager.py", line 413, in <module>
main()
File "/usr/share/virt-manager/virt-manager.py", line 330, in main
icon_dir, data_dir)
File "/usr/share/virt-manager/virtManager/config.py", line 89, in __init__
gconf.CLIENT_PRELOAD_NONE)
GError: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf for information. (Details - 1: Failed to get connection to session: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
Dans le cas d'une version depassée de libvirt, voir la première étape de cet article qui consiste à utiliser le dépot ppa:dnjl.

Commentaires récents