{{tag>application software virsh virtualisation vm cli aide-mémoire cheat-sheet}} ====== Aide-mémoire virsh ====== :TODO: ===== Fonctionnement global ===== {{virsh-architecture.svg}} 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 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 ===== * https://blog.stephane-robert.info/docs/virtualiser/type1/kvm/virsh-commandes/ * [[https://fr.linux-terminal.com/?p=4598|Déplacer le pool de stockage par défaut (fr.linux-terminal.com)]] * [[https://gist.github.com/ralvares/a54d3d28bc4235d390c31f42705ee5ac|Créer un nouveau réseau via virsh (gist.github.com)(en)]]