Skip to content

By rei in FR, KVM

English Version

Cet article parle de Kernel-based Virtual Machine, et non pas de Keyboard Video Mouse.

De nombreux tutos parlent de KVM/Qemu avec une interface graphique, par une interface web ou directement par X.

Evidemment, ce n’est pas toujours possible (et voulu) d’avoir cette interface, et j’utilise et je gère mes machines virtuelles uniquement par la ligne de commande.

Tout d’abord, s’assurer que votre matériel est compatible avec la virtualisation; vérifiez la configuration de votre BIOS, voir si les technologies Inter-VT ou AMD-V sont activée. Vous pouvez aussi essayer avec cette commande:

egrep ‘(vmx|svm)’ /proc/cpuinfo

Si la commande renvoie quoi que se soit, c’est que les technologies sont disponibles et activées !

Nous allons avoir besoin de 2 paquets, ainsi que leur dépendances: kvm and libvirt-bin.

kvm est la base de votre système de virtualisation. Pour plus d’information, visitez le site officiel.

libvirt-bin est un paquet contenant toutes les commandes nécessaire à la gestion de nos VM: créer, supprimer, modifier, recupérer des informations, etc.

installation:

aptitude install kvm libvirt-bin

L’installation faite, vérifiez la version de vos paquets, et si aptitude s’est bien débrouillé, vous devriez obtenir ceci:

Compiled against library: libvir 0.4.6
Using library: libvir 0.4.6
Using API: QEMU 0.4.6
Running hypervisor: QEMU 0.9.1

Les versions peuvent changer.

“virsh” est la commande principale que l’on va utiliser. Toutes les actions que nous allons effectuer avec “virsh” sont disponibles depuis la console libvirt, et vous pouvez y accéder par la commande: (help for command list)

virsh –connect qemu:///system

Configuration:

Certains paramètres doivent être changés. Tout d’abord, modifier votre /etc/host et ajouter (si elle n’y est pas) la ligne:

127.0.0.1 yourdomainname

Puis décommenter les lignes suivantes dans: /etc/libvirt/libvirtd.conf:
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"

ainsi que celles-ci dans /etc/network/interfaces:
vnc_listen = "0.0.0.0"

Pour finir, modifiez votre configuration réseau pour qu’elle apparaisse comme suit::

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The primary virtual interface
auto br0
iface br0 inet static
address XXX.XXX.XXX.XXX
network XXX.XXX.XXX.XXX
netmask XXX.XXX.XXX.XXX
broadcast XXX.XXX.XXX.XXX
gateway XXX.XXX.XXX.XXX
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp on

Maintenant, votre configuration réseau est terminée, mais KVM a besoin d’un réseau par défaut, même si il ne sera pas utilisé. Donc, modifiez un peu le fichier: /etc/libvirt/qemu/network/default.xml :

<network>
<name>default</name>
<uuid> </uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' forwardDelay='0' />
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254' />
</dhcp>
</ip>
</network>

Et maintenant, l’activer avec:

virsh net-define /etc/libvirt/qemu/network/default.xml
virsh net-start default
virsh net-autostart default

Les Machines Virtuelles:

Nous allons pouvoir créer notre premiere machine virtuelle. J’utilise KVM pour virtualiser des machines Debian, donc la commande suivante crée une machine de Type Linux. En vous référant ici vous aurez toutes les informations nécessaire pour installer un BSD ou un Windows. N’oubliez pas de regarder cette page pourvoir quel système est supporté.

J’utilise la commande suivante: (XX représente un ID, à ignorer si vous n’utilisez qu’une seule VM)

virt-install -n DebianXX -r 128 -c /root/debian-505-i386-netinst.iso
–disk path=/home/webload/debianXX.img,size=3 –network bridge:br0 –vnc
–vncport=59XX -k fr –accelerate –v

-n nom de la VM
-c fichier d’image disque (ici un fichier ISO)
–disk path [chemin du disque dur virtuel],size [taille maximum du disque dur]
–network [type]:[virtual interface] (Ici, j’utilise une connexion de pont, sur br0 (cf.configuration réseau))
–vnc active le support VNC pour accéder à la console de la VM
–vncport indique le port de connexion pour VNC (pour permettre au serveur d’avoir plusieurs interfaces)
-k configuration de votre clavier (fr, en, be, etc.), par défaut us
–accelerate permet d’utiliser l’accélération matérielle
-v pour utiliser la virtualisation totale (vs para-virtualisation)

Et voila, votre VM est créée, et l’installation est lancée, il ne reste plus qu’a s’y connecter pour finir l’installation, avec l’adresse du serveur:[portVNC] dans votre client VNC: XXX.XXX.XXX.XXX :59XX

Connexion réussie ? Bien joué !

En se connectant à l’interface de gestion par “virsh”, vous pourrez démarrer, redémarrer, arrêter, ou débrancher (destroy) vos machines.

Enjoy !

Tags: ,