Outils pour utilisateurs

Outils du site


software:applications:virsh:aide-memoire-virsh

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
software:applications:virsh:aide-memoire-virsh [2026/06/11 10:08] yoannsoftware:applications:virsh:aide-memoire-virsh [2026/06/11 21:15] (Version actuelle) yoann
Ligne 1: Ligne 1:
-{{tag>application software virsh virtualisation vm cli aide-mémoire cheatsheet}}+{{tag>application software virsh virtualisation vm cli aide-mémoire  cheat-sheet}}
  
  
Ligne 8: Ligne 8:
 :TODO: :TODO:
  
 +===== Fonctionnement global =====
  
  
-libvirt a deux "mondes" de fonctionnement distincts : dans l'espace utilisateur ou via un utilsateur système.+{{virsh-architecture.svg}}
  
-  * Le mode session %%qemu:///session%% — VMs de l'utilisateur (sans sudostockées dans ~/.local/share/libvirt) +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''.
-  * Le mode système %%qemu:///system%% — VMs système (avec sudo, dans /var/lib/libvirt)+
  
-Solution 1 (explicite, recommandée) spécifier l'URI à chaque commande +===== Modes d'exécution des VMs ===== 
-Toujours savoir où on travaille+ 
 +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 :
  
 <code bash> <code bash>
-virsh -c qemu:///system list --all   # VMs système +# Lister les VMs disponibles sur le système (l'utilisateur invoquant la commande 
-virsh -c qemu:///session list --all  # VMs utilisateur+# 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
 </code> </code>
  
-Solution 2 (par défaut) : configurer l'URI une fois +Pour ne pas avoir à spécifier systématiquement cette option on peut utiliser la variable d'environnement ''LIBVIRT_DEFAULT_URI''
-~/.bashrc ou ~/.zshrc+
  
 <code bash> <code bash>
 export LIBVIRT_DEFAULT_URI="qemu:///system" export LIBVIRT_DEFAULT_URI="qemu:///system"
 +
 +# Lister les VMs système en cours d'exécution
 +virsh list
 </code> </code>
  
 +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 :
 +
 +<code bash>
 +journalctl --unit libvirtd
 +</code>
 +
 +
 +===== 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 :
 +<code bash>
 +virsh pool-define-as --name removable-sysinstall --type dir --target /media/yoann/srv_info/libvirt/pool/install/
 +virsh pool-start removable-sysinstall
 +</code>
 +
 +Pour créer un pool temporaire, on peut utiliser **virsh pool-create-as**
 +<code bash>
 +virsh pool-create-as --name temp-repo --type dir --target /media/tmp/
 +</code>
 +
 +On peut à présent lister les volumes de ce pool :
 +
 +<code bash>
 +virsh vol-list --pool removable-sysinstall
 +
 +# Equivalent
 +virsh vol-list removable-sysinstall
 +</code>
 +
 +
 +===== Réseau =====
 +
 +Lister les réseau disponibles :
 +
 +<code bash>
 +virsh net-list --all
 +</code>
 +
 +Pour créer un nouveau réseau, utiliser une définition dans un fichier XML
 +<code 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>
 +</code>
 +
 +Pour créer le réseau depuis le fichier XML :
 +<code bash>
 +virsh net-define ./user-vmnet.xml
 +</code>
 +
 +Le réseau est créé mais l'interface n'est pas encore démarrée :
 +<code bash>
 +
 +</code>
  
 ===== Références ===== ===== Références =====
  
   * https://blog.stephane-robert.info/docs/virtualiser/type1/kvm/virsh-commandes/   * 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)]]
software/applications/virsh/aide-memoire-virsh.1781172528.txt.gz · Dernière modification : 2026/06/11 10:08 de yoann