Outils pour utilisateurs

Outils du site


software:applications:virsh:aide-memoire-virsh

Aide-mémoire virsh

:TODO:

Fonctionnement global

Selon les distributions il peut y avoir un service système monolithique, c'est le cas pour Debian/Ubuntu avec libvirtd ou un ensemble de daemons comme pour RHEL/Fedora/RockyLinux exécutant virtqemud, virtnetworkd et virtstoraged.

Modes d'exécution des VMs

libvirt fonctionne selon deux modes distincts :

  • mode session : les processus de virtualisation s'exécutent avec les droits de l'utilisateur courant. On le spécifie à la CLI virsh via l'option --connect qemu:///session. Par défaut les VMs de l’utilisateur sont alors stockées dans ~/.local/share/libvirt;
  • mode système : les processus de virtualisation s'exécutent en tant que service via un utilisateur système dédié (libvir-qemu). on le spécifie à virsh via l'option --connect qemu:///system Les VMs sont stockées par défaut dans /var/lib/libvirt.

Exemples avec options longues et courtes :

# Lister les VMs disponibles sur le système (l'utilisateur invoquant la commande
# devra y être autorisé ) 
virsh --connect qemu:///system list --all
virsh -c qemu:///system list --all
 
# Lister les VMs de l'utilisateur courant
virsh --connect qemu:///session list --all
virsh -c qemu:///session list --all

Pour ne pas avoir à spécifier systématiquement cette option on peut utiliser la variable d'environnement LIBVIRT_DEFAULT_URI

export LIBVIRT_DEFAULT_URI="qemu:///system"
 
# Lister les VMs système en cours d'exécution
virsh list

Si l'utilisateur souhaite invoquer un mode par défaut, il peut exporter la variable dans son fichier ~/.bashrc

Vocabulaire libvirt

  • domain : désigne la VM (terme issu de Xen). libvirt peut s'appuyer sur différents ;
  • pool : espace de stockage regroupant des volumes
  • volume : disque virtuel ou image

Journaux

Lister les traces produites par le service libvirtd :

journalctl --unit libvirtd

Gestion des pools

Création d'un nouveau pool persistant de type répertoire sur un disque externe pour stockage des médias d'installation.

Dans cet exemple le répertoire existe et n'est pas vide, il contient les fichiers ISOs :

virsh pool-define-as --name removable-sysinstall --type dir --target /media/yoann/srv_info/libvirt/pool/install/
virsh pool-start removable-sysinstall

Pour créer un pool temporaire, on peut utiliser virsh pool-create-as

virsh pool-create-as --name temp-repo --type dir --target /media/tmp/

On peut à présent lister les volumes de ce pool :

virsh vol-list --pool removable-sysinstall
 
# Equivalent
virsh vol-list removable-sysinstall

Réseau

Lister les réseau disponibles :

virsh net-list --all

Pour créer un nouveau réseau, utiliser une définition dans un fichier XML

user-vmnet.xml
<network>
  <name>user-vmnet</name>
  <forward mode='nat' />
  <bridge name='virbr1' stp='on' delay='0'/>
  <domain name='user-vmnet.internal'/>
  <ip address='192.168.123.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.123.2' end='192.168.123.254'/>
    </dhcp>
  </ip>
</network>

Pour créer le réseau depuis le fichier XML :

virsh net-define ./user-vmnet.xml

Le réseau est créé mais l'interface n'est pas encore démarrée :

 

Références

software/applications/virsh/aide-memoire-virsh.txt · Dernière modification : 2026/06/11 21:15 de yoann