KVM Installation
De wikiGite
Installation sur Debian SQUEEZE
Note sur l'install de test : le système est installé sur un volume logique LVM de 10G (/boot 150M en primaire-ext3 + swap en logique + le reste en LVM, 1 Volum Group, 1 premier Volum Logic pour /).
Ainsi, si on manque de place sur /, on pourra toujours l'étendre par l'agrandissement du volume logique (ça obligera à booter sur un CD live, mais au moins on ne sera pas bloqué).
Les VM seront gérées dans des LV aussi.
Vérifier les possibilités de virtualisation du processeur :
egrep '(vmx|svm)' --color=always /proc/cpuinfo
Note : sur un DELL R310, il a fallu activer la virtaulisation dans le BIOS (CPU parameters/Virtualization technology) sinon kvm ne se chargeait pas, même si "vmx" apparaissait dans la commande ci-dessus.
Installer KVM. On installe aussi libvirt, librairie + outils permettant de gérer KVM en ligne de commande et à distance (il en existe d'autres, Proxmox utilise son propre outils "qm" par exemple).
apt-get install qemu-kvm libvirt-bin bridge-utils screen console-data console-tools debconf
Par sécurité il est conseillé de stopper la fonctionnalité de swapper la mémoire "sous-utilisée" (sinon risque de surcharge avec kvm)
sysctl vm.swappiness=0 echo "vm.swappiness=0" >> /etc/sysctl.conf
Modifier les interfaces réseau pour le bridge (les VMs passeront par ce bridge pour accéder au réseau). Dans /etc/network/interfaces :
... #allow-hotplug eth0 #iface eth0 inet dhcp # The primary network interface auto eth0 iface eth0 inet manual # Network bridge auto br0 iface br0 inet static address 192.168.1.110 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
Editer /etc/hosts pour mettre l'adresse 192.168.1.110 en face du hostname, puis
reboot
virt-manager
Sur un poste de travail (Ubuntu par ex.) installer virt-manager (partie client de la librairie libvirt). Echanger les clés avec le serveur pour avoir une connexion sans mot de passe, lancer virt-manager et créer une connexion "QEMU/KVM" sur "Tunnel SSH".
Création des VMs
Chargement d'un iso pour l'installation du guest
cd /var/lib/libvirt/images/ wget http://cdimage.debian.org/debian-cd/6.0.0/multi-arch/iso-cd/debian-6.0.0-amd64-i386-netinst.iso
Test d'une VM en fichier (on verra LVM plus tard):
- A la main : PROCEDURE NON TESTEE - A VALIDER
1. création du fichier
kvm-img create -f qcow2 /var/lib/libvirt/images/vdisk.img 4G
2. Boot et install OS :
kvm -hda /var/lib/libvirt/images/vdisk.img -cdrom /var/lib/libvirt/images/debian-6.0.0-amd64-i386-netinst.iso -boot d -m 512
- Par virt-manager : clic-droit sur le nom du host, nouveau, et se laisser guider (attention à DECOCHER "allouer la totalité du disque maintenant" pour créer un disque qcow2, et pour le réseau indiquer "br0" comme périphérique partagé)
Gestion des VMs
Sur l'hôte, on peut utiliser virsh pour interagir avec les VM
virsh list virsh start my-guest-vm virsh shutdown my-guest-vm
Note : pour lancer/arrêter un système invité avec virsh il faut que acpid et acpi-support soient installés sur l'invité (pour qu'il détecte la demande d'arrêt comme si on appuyait sur le bouton OFF)
Pour forcer l'arrêt d'une VM (arrêt brutal au bouton) utiliser
virsh destroy my-guest-vm