Salta al contenuto principale

virsh: panoramica pratica delle funzioni principali

·554 parole·3 minuti
❯ lineadicomando.it
Autore
❯ lineadicomando.it
Specs, Bugs and Log Console

Contesto
#

virsh è la CLI di libvirt per amministrare VM, reti virtuali, storage pool e volumi.

Questa guida raccoglie le funzioni più utili in un unico punto, con esempi pronti per uso quotidiano.


Prerequisiti
#

  • Host Linux con libvirt attivo
  • Privilegi adeguati (root o utente nel gruppo libvirt)
  • Hypervisor supportato (tipicamente KVM/QEMU)

Differenza tra utente normale e sudo
#

Con virsh, il comportamento cambia in base a quale istanza libvirt stai raggiungendo:

  • utente normale: spesso lavora su qemu:///session (VM per-utente, isolate dal daemon di sistema)
  • con sudo: tipicamente lavora su qemu:///system (VM globali gestite dal servizio libvirtd/virtqemud)

Verifica pratica:

virsh uri
sudo virsh uri

Per evitare ambiguità, specifica sempre l’URI:

virsh -c qemu:///system list --all
virsh -c qemu:///session list --all

Nota: anche con URI corretto, senza permessi adeguati potresti avere permission denied su socket libvirt o storage.


1. Connessione a libvirt e shell interattiva
#

Connessione esplicita al daemon di sistema:

virsh -c qemu:///system

Connessione in sola lettura (utile per audit e troubleshooting):

virsh --readonly -c qemu:///system

virsh può essere usato anche come shell interattiva con help integrato:

$ virsh
virsh # help
virsh # help list
virsh # help dominfo
virsh # quit

In shell puoi esplorare rapidamente i comandi disponibili e i dettagli di ciascuna funzione senza uscire dal terminale.


2. Inventario e stato delle VM
#

Elenco VM (accese e spente):

virsh list --all

Dettagli di una VM:

virsh dominfo <vm_name>

Stato corrente:

virsh domstate <vm_name>

Interfacce di rete viste dalla VM:

virsh domiflist <vm_name>

Dischi associati alla VM:

virsh domblklist <vm_name>

3. Ciclo di vita: avvio, stop, riavvio
#

Avvio:

virsh start <vm_name>

Shutdown “pulito” (ACPI):

virsh shutdown <vm_name>

Riavvio:

virsh reboot <vm_name>

Spegnimento forzato (equivalente power-off):

virsh destroy <vm_name>

Abilitare avvio automatico all’avvio host:

virsh autostart <vm_name>

Sospendere e riprendere:

virsh suspend <vm_name>
virsh resume <vm_name>

4. Configurazione VM (XML)
#

Stampare la definizione XML:

virsh dumpxml <vm_name>

Modifica diretta della definizione:

virsh edit <vm_name>

Definire una VM da file XML:

virsh define <file.xml>

Rimuovere definizione VM (senza cancellare i dischi):

virsh undefine <vm_name>

5. Snapshot
#

Elenco snapshot VM:

virsh snapshot-list <vm_name>

Creazione snapshot con nome:

virsh snapshot-create-as <vm_name> pre-update

Rollback a uno snapshot:

virsh snapshot-revert <vm_name> pre-update

Eliminazione snapshot:

virsh snapshot-delete <vm_name> pre-update

6. Storage pool e volumi
#

Elenco pool:

virsh pool-list --all

Informazioni su un pool:

virsh pool-info <pool_name>

Elenco volumi del pool:

virsh vol-list <pool_name>

Dettagli volume:

virsh vol-info <volume_name> --pool <pool_name>

7. Reti virtuali
#

Elenco reti libvirt:

virsh net-list --all

Dettagli rete:

virsh net-info <net_name>

Avviare una rete e abilitarla al boot:

virsh net-start <net_name>
virsh net-autostart <net_name>

Lease DHCP assegnati:

virsh net-dhcp-leases <net_name>

8. Comandi utili lato host
#

Versione libvirt/virsh:

virsh version

URI della connessione corrente:

virsh uri

Capacita host/hypervisor:

virsh nodeinfo
virsh capabilities

Statistiche aggregate delle VM:

virsh domstats --state-running

Verifica
#

Controllo rapido che la connessione e i comandi principali siano operativi:

virsh -c qemu:///system list --all
virsh -c qemu:///system net-list --all
virsh -c qemu:///system pool-list --all

Se i comandi rispondono senza errori, la base operativa di virsh è pronta.


Note operative
#

  • Usa shutdown prima di destroy quando vuoi evitare possibili corruzioni.
  • Prima di edit, salva un backup con dumpxml > <vm_name>.xml.
  • In ambienti condivisi, preferisci --readonly per analisi e audit.

Riferimenti
#