Outils pour utilisateurs

Outils du site


kvm

KVM

Marre de se battre avec Xen et sa mauvaise intégration dans Debian.

Et surtout son noyau Dom-0 en carton.

Place à KVM.

Pour le réseau, c'est pareil:

  • création d'un bridge
  • configuration (avec une ip)
  • activation ip_forward
  • activation masquerading sur eth0

bug: pour une raison x ou y, impossible d'avoir du réseau avec la carte eth0 dans un bridge…

Non, c'est plus un problème de configuration. Il faut penser à supprimer l'adresse de l'interface eth avant de la déconfigurer. (voir la commande ip addr delete…)

Installation

yum install qemu-kvm libvirt-daemon-kvm virt-install

Migration workine

Le test suivant a été réalisé:

Création d'une machine virtuelle Debian de base et montage d'un LV xen existant ⇒ impeccable.

Donc je crois que c'est ce que l'on va faire …

La migration a été faite: [669]

Astuces

Pour pouvoir ouvrir une console via virsh -c qemu:///system console machine il faut une directive console=ttyS0 dans la ligne kernel de grub.

Pour pouvoir manipuler les vm en tant qu'utilisateur standard:

  1. il faut appartenir aux groupes kvm et libvirt
  2. il faut se connecter (explicitement) sur
    qemu:///system
  3. ou définir cette url via la VE VIRSH_DEFAULT_CONNECT_URI

Installer un vm en ligne de commande

facile:

virt-install \
 --name=foo \
 --ram=1024 \
 --location=http://centos.mirror.fr.planethoster.net/6/os/i386 \
 --boot=hd  \
 --disk path=/srv/foo.img,size=8,cache=none,sparse=true,bus=virtio \
 --network bridge=virbr0 \
 --graphics=vnc,password=foobar,keymap=fr \
 --hvm  \
 --autostart

Pour se connecter à cette machine, on utilise vnc (voir le paramètre graphics ci-dessus) qui n'écoute qu'en local, mais tout le monde sait faire un tunnel ssh

Sinon, on peut utiliser virt-manager

virt-manager

Interface (assez basique) de gestion d'hyperviseur. Se base sur libvirt, donc indépendant de l'hyperviseur, bien que plutôt utilisé avec kvm.

Pour l'utiliser avec xen : il faut, sur la machine hôte installer netcat-openbsd et libvirtd qui doit écouter sur le réseau (port tcp8000),

Pour l'utiliser comme utilisateur simple sur fedora il faut modifier polkit :

cat /etc/polkit-1/rules.d/51-polkit.rules

polkit.addRule (function (a,s) {
    if (a.id.indexOf ('org.libvirt.unix.') == 0 && (s.isInGroup( 'wheel') || s.isInGroup( 'libvirt' ) ) )                                                      
    return polkit.Result.YES;
    });

Le code ci-dessus autorise les membres des groupes libvirt ou wheel à utiliser virt-manager pour administrer les machines virtuelles.

On peut utiliser l'action org.libvirt.monitor pour déléguer la visualisation des machines :

polkit.addRule (function (a,s) {
    if (a.id=='org.libvirt.unix.monitor' && (s.isInGroup( 'adm')  ) )                                                                                          
    return polkit.Result.YES;
    });

En français: les membres du groupe adm ont le droit de jeter un oeil sur les vm.

Snapshot

Les snapshot permettent d'enregistrer l'état de la machine à un moment donné (par ex avant une grosse mise à jour).

Prérequis : les fichiers de disque doivent être au format qcow2. Conversion possible :

 [[:sudo|sudo]] qemu-img convert -p -O qcow2 lenine.img lenine.qc2.img

Passer de LVM à des images disques

Parce que vous souhaitez, par exemple, bénéficier des fonctionnalités de migration ou de snapshot:

qemu-img convert -O qcow2 /dev/vg_name/lv_name /var/lib/libvirt/disk.img

# vim: set filetype=dokuwiki:

kvm.txt · Dernière modification: 2015/11/19 20:30 (modification externe)