Passer au contenu principal

Libvirt

Installation des paquets

dnf install virt-install libvirt-python libvrt-client libvrt-daemon libvirt-daemon-ddriver-qemu qemu-kvm qemu-img

Démarrer les services libvrtd et virtlogd

Création de la machine virtuelle

Exemple pour l'installation de debian 8 depuis les dépots d'images

virt-install \
        --name=mail \
        --file=/var/lib/libvirt/images/mail.dsk \
        --file-size=8 \
        --vcpus=2 --ram=2048 \
        --location http://cdn-fastly.deb.debian.org/debian/dists/jessie/main/installer-amd64/ \
        --extra-args "console=ttyS0,115200n8 serial" \
        --os-type linux \
        --os-variant generic \
        --network bridge=virbr0 \
        --graphics none \
        --console pty,target_type=serial

Repertoires partagés

Configuration de l'host

  1. Dans /etc/libvirt/qemu.conf trouver et décommenter les lignes
#user = "root"
#group = "root"
#dynamic_ownership = 1

Modier ensuite les valeurs pour

user = "qemu" #Ou l'utilisateur avec lequel qemu est censé être lancé
group = "qemu" #Idem
dynamic_ownership = 0 #Requis pour les configurations qui vont suivre
  1. Redémarrer libvirt systemctl restart libvirtd.

  2. Modifier ensuite les paramètre de la VM (virsh edit [domain]) et rajouter dans le noeud <devices>

<filesystem type='mount' accessmode='mapped'>
      <source dir='/data/mails'/> <!-- Répertoire a partager (sur l'host) -->
      <target dir='sharedDirMails'/> <!-- label avec lequel le périphérique virtuel va être accessible -->
</filesystem>
  1. Créer le répertoire /data/mails avec qemu:qemu comme propriétaire.
  2. Redémarrer la machine virtuelle virsh reboot [domain].

Configuration du guest

  1. Editer le fichier /etc/modules pour être sur que les bons modules soient chargés :
# cat >>/etc/modules <<EOF
loop
virtio
9p
9pnet
9pnet_virtio
EOF
  1. Charger les modules systemctl restart kmod

  2. Créer le répertoire /opt/share/mails

  3. Le répertoire peut maintenant être monté mount sharedDirMails /opt/share/mail -t 9p -o trans=virtio,version=9p2000.L

  4. Pour monter le répertoire au démarrage de la VM, editer /etc/fstab en ajoutant

sharedDirMails  /opt/share/mails        9p      trans=virtio,version=9p2000.L 0 2

Commandes utiles

  • virsh list --all : liste toutes les vm peut importe l'état
  • virsh shutdown [domain] virsh reboot [domain] virsh start [domain] : arrete / redémarre ou démarre la vm [domain]
  • virsh destroy [domain] : force l'arret de la machine
  • virsh undefine [domain] : oublie la vm [domain]
  • virsh net-dhcp-leases --network default : récupère la liste des leases dhcp pour le réseau par défaut

Liens utils

https://raymii.org/s/articles/virt-install_introduction_and_copy_paste_distro_install_commands.html http://rabexc.org/posts/p9-setup-in-libvirt http://www.linux-kvm.org/page/9p_virtio