meta données pour cette page
Virtualiser avec KVM
KVM (Kernel-based Virtual Machine) apporte de meilleurs performances que Virtualbox du fait qu'il intervient un plus bas niveau.
Installation
apt-get install qemu-kvm bridge-utils virt-manager libvirt-daemon-system
On autorise le droit d'utiliser KVM :
usermod -aG libvirt mon-utilisateur
Puis gérer les machines depuis l'interface graphique :
virt-manage &
Commandes disponible
Configuration matériel
- Démarrer une VM avec une image qcow2 et 256Mo de RAM :
qemu-system-x86_64 -hda debian_squeeze_amd64_standard.qcow2 -boot d -m 256
- Démarrer une VMs avec une ISO, 256M de RAMo et 2Go d'espace disque :
qemu-img create debian.img 2G qemu -hda debian.img -cdrom debian-testing-amd64-netinst.iso -boot d -m 256
Convertion d'image
- De qcow2 à raw :
qemu-img convert disk0.qcow2 -O raw disk0.raw
- De raw à qcow2 :
qemu-img convert disk0.raw -O qcow2 disk.qcow2
Configuration réseau
- Effectuer un prt fowarding sur le port 22 :
qemu-system-x86_64 -hda debian_squeeze_amd64_standard.qcow2 -boot d -m 256 -redir tcp:2222::22
- Liéer une carte réseau d'une VMs(eth0) sur la machine hôte(tap0) :
Sur l'hôte :
sudo qemu-system-x86_64 -hda debian_squeeze_amd64_standard.qcow2 -boot d -m 256 -net nic -net tap,ifname=tap0 ip addr add 10.0.0.1/24 dev tap0 ifup tap0
Sur la VM :
ip addr add 10.0.0.2/24 dev eth0 ifup eth0
Manager KVM avec Virsh
Cet utilitaire permet de manager les machines virtuelles sur la machine en local et à distance. En oûtre, il remplace le logiciel virt-manager.
Pour s'y connecter à distance :
VIRSH_DEFAULT_CONNECT_URI=qemu+ssh://user@kvm-dev/system virsh
Ou pour exécuter des commandes à distances :
VIRSH_DEFAULT_CONNECT_URI=qemu+ssh://user@kvm-dev/system virsh <commandes>
Voici la liste d'exemple de commandes :
- En ce qui concerne la machine en elle même :
virsh list --all virsh start <vm> virsh shutdown <vm> virsh destroy <vm> virsh edit <vm>
- Modifier les caractéristique de la VM :
virsh edit <vm>
- Supprimer une VM :
virsh --connect qemu+ssh://btatu@kvm-dev/system undefine --domain vm-a-clone
- Cloner une machine :
virt-clone --connect qemu+ssh://user@kvm-dev/system -o vm1 -n vm-a-clone -f /home/user/clone.qcow2
- Migrer une machine :
virsh --connect qemu+ssh://user@kvm-dev/system migrate --live vm-a-clone qemu+ssh://user@bruno-tatu.com/system
- Pour le stockage :
virsh pool-list --all virsh pool-list <pool>
- Pour le réseau :
virsh iface-list -all virsh net-list -all virsh detail-interface
Astuces
La paravirtualisation
Pour améliorer les performances on peut utiliser des périférique virtuel basé sur virtio.
- Déclarons une machine utilisant un disque et des cartes réseaux basé sur cette technique :
qemu-system-x86_64 -drive file=debian_squeeze_amd64_standard.qcow2,index=0,media=disk,if=virtio -boot d -m 256 -net tap -net nic,macaddr=00:16:35:AF:94:4B,model=virtio,name=ncard1