Aller au contenu principal

virtlockd — verrouillage des disques de VM

virtlockd est le démon de verrouillage de la stack libvirt : il empêche qu'un même disque de machine virtuelle soit démarré simultanément par deux instances de libvirtd (par exemple sur deux hôtes différents partageant un stockage réseau), ce qui corromprait le disque. Comme virtlogd, il est séparé de libvirtd pour survivre à ses redémarrages et garder les verrous actifs.

Installation

Installé automatiquement avec libvirt-daemon (voir libvirtd).

systemctl status virtlockd virtlockd.socket

Fichiers de configuration

FichierRôle
/etc/libvirt/virtlockd.confConfiguration du démon de verrouillage
/etc/libvirt/qemu-lockd.confActivation et pilotes de verrouillage pour QEMU (lockd ou sanlock)
/var/lib/libvirt/lockd/Verrous actifs

Commandes utiles

systemctl status virtlockd
journalctl -u virtlockd

Piloté indirectement via libvirtd, pas de CLI dédiée.

Exemple de configuration

# /etc/libvirt/qemu-lockd.conf — activer le verrouillage des disques
lock_manager = "lockd"

Puis dans /etc/libvirt/qemu.conf :

lock_manager = "lockd"

Sécurisation

  • Activer explicitement le verrouillage (lock_manager = "lockd") dès qu'un stockage est partagé entre plusieurs hôtes (NFS, SAN) — sans ça, démarrer la même VM sur deux hôtes corrompt silencieusement le disque.
  • Pour un cluster multi-hôtes plus robuste, préférer sanlock à lockd (verrouillage via un disque partagé dédié, plus résilient qu'un simple lock local par hôte).

Logs & dépannage

journalctl -u virtlockd
# Erreur typique si un disque est déjà verrouillé par un autre hôte :
virsh start <vm> # renverra une erreur "resource busy" si le verrou est déjà pris

Voir aussi