Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "ivantu/Virtualizzazione/Kvm/Installazione"
Differenze tra le versioni 2 e 3
Versione 2 del 17/10/2025 10.59.35
Dimensione: 10078
Autore: ivantu
Commento:
Versione 3 del 17/10/2025 17.18.29
Dimensione: 9800
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 7: Linea 7:
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04 10.04")>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04")>>
Linea 16: Linea 16:
== Come stabilire se la CPU supporta la virtualizzazione dell' hardware == == CPU: verifica supporto virtualizzazione ==
Linea 21: Linea 21:
Per verificare se il processore supporta la virtualizzazione, digitare il seguente comando in una finestra di [[AmministrazioneSistema/Terminale|terminale]]:{{{ Per verificare il supporto digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
Linea 24: Linea 24:
 * Se la risposta mostra "VT-x" o "AMD-V", il supporto hardware è presente.
 * Se non viene visualizzata alcuna riga relativa alla virtualizzazione, o se il comando precedente non restituisce nulla, la CPU potrebbe non supportarla o l'opzione potrebbe essere disabilitata nel BIOS/UEFI.
 * Se il comando restituisce '''VT-x''' o '''AMD-V''', il supporto hardware è presente.
 * Se non viene visualizzata alcuna riga relativa alla virtualizzazione o se il comando precedente non restituisce nulla, la CPU potrebbe non supportarla o l'opzione potrebbe essere disabilitata nel BIOS/UEFI.
Linea 27: Linea 27:
=== Verifica avanzata e stato di /dev/kvm: === == Verifica avanzata e stato di /dev/kvm: ==
Linea 29: Linea 29:
Un modo più diretto per verificare la disponibilità di KVM è usare l'utility `kvm-ok`. Un modo più diretto per verificare la disponibilità di '''KVM''' si ha utilizzando `kvm-ok`.
Linea 32: Linea 32:
Se il comando `kvm-ok` non è trovato, installare il pacchetto [[apt://cpu-checker|cpu-checker]]. Se il comando `kvm-ok` è assente installare il pacchetto [[apt://cpu-checker|cpu-checker]].
Linea 35: Linea 35:
Digitare il seguente comando in una finestra di [[AmministrazioneSistema/Terminale|terminale]]:{{{ Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
Linea 37: Linea 37:
}}} Che restituira una risposta simile a:{{{ }}}
* Se il supporto è presente restituirà una risposta simile a:{{{
Linea 41: Linea 42:
}}} Se invece il messaggio sarà:{{{ }}}
 * In caso contrario l'output sarà del tipo:{{{
Linea 44: Linea 46:
}}} significa che le estensioni hardware non sono disponibili. Senza le estensioni KVM, sarà comunque possibile eseguire macchine virtuali, ma risulteranno significativamente più lente. }}}e significa che le estensioni hardware non sono disponibili. Senza le estensioni '''KVM''' sarà comunque possibile eseguire macchine virtuali, ma risulteranno significativamente più lente.
Linea 46: Linea 48:
{{{#!wiki note  {{{#!wiki note
Linea 73: Linea 75:
Per le seguenti impostazioni, si assume una configurazione standard, adatta sia per desktop che per server (anche senza ambiente grafico, sebbene si consigli `virt-manager` per la facilità d'uso). Per le seguenti impostazioni si assume una configurazione standard adatta sia per desktop che per server (anche senza ambiente grafico, sebbene si consigli `virt-manager` per la facilità di utilizzo).
Linea 76: Linea 78:
sudo apt update
Linea 81: Linea 82:
 * ''qemu-kvm'': Il backend principale che fornisce l'accelerazione hardware KVM tramite QEMU. [[Virtualizzazione/Qemu|Guida]].
 * ''libvirt-daemon-system'': Il demone libvirtd che gestisce le istanze KVM e QEMU. È l'interfaccia principale per KVM.
 * ''libvirt-clients'': Contiene gli strumenti client (come virsh) per interagire con libvirtd.
 * ''bridge-utils'': Utilità per la configurazione del networking in bridge, utile per integrare le VM nella rete fisica.
 * ''virtinst'': Strumenti a [[AmministrazioneSistema/Terminale|riga di comando]] per la creazione rapida di macchine virtuali.
 * ''virt-manager'': Un'interfaccia grafica (GUI) molto intuitiva e potente per la gestione delle macchine virtuali KVM. Fortemente raccomandato per la maggior parte degli utenti.
 * '''qemu-kvm''': il backend principale che fornisce l'accelerazione hardware '''KVM''' tramite '''QEMU'''. [[Virtualizzazione/Qemu|Guida]].
 * '''libvirt-daemon-system''': il demone libvirtd che gestisce le istanze '''KVM''' e '''QEMU'''. È l'interfaccia principale per KVM.
 * '''libvirt-clients''': contiene gli strumenti client (come '''virsh''') per interagire con '''libvirtd'''.
 * '''bridge-utils''': utilità per la configurazione del networking in bridge, utile per integrare le VM nella rete fisica.
 * '''virtinst''': strumenti a riga di comando per la creazione rapida di macchine virtuali.
 * '''virt-manager''': un'interfaccia grafica molto intuitiva e potente per la gestione delle macchine virtuali '''KVM'''. Fortemente raccomandato per la maggior parte degli utenti.
Linea 90: Linea 91:
Per poter gestire le macchine virtuali KVM senza dover usare i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] per ogni comando o per avviare `virt-manager`, è necessario che l'utente appartenga al gruppo `libvirt`. Per poter gestire le macchine virtuali '''KVM''' senza dover utilizzare [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] per ogni comando o per avviare '''virt-manager''', è necessario che l'utente appartenga al gruppo '''libvirt'''.
Linea 92: Linea 93:
Durante l'installazione di `libvirt-daemon-system`, l'utente dovrebbe essere aggiunto automaticamente al gruppo `libvirt`. Tuttavia, per sicurezza e per rendere la modifica effettiva, è buona norma aggiungere l'utente manualmente e poi riautenticarsi. Durante l'installazione di ''libvirt-daemon-system'' l'utente dovrebbe essere aggiunto automaticamente al gruppo '''libvirt'''. Tuttavia, per sicurezza e per rendere la modifica effettiva, è buona norma aggiungere l'utente manualmente e poi riautenticarsi.
Linea 94: Linea 95:
Aggiungere il nome utente al gruppo libvirt:{{{  0. Aggiungere il nome utente al gruppo '''libvirt''':{{{
Linea 96: Linea 97:
}}} Dopo aver eseguito questo comando, è obbligatorio disconnettersi e accedere nuovamente (o riavviare il sistema) affinché l'appartenenza al gruppo sia attiva. In alternativa, è possibile usare `newgrp libvirt` in un [[AmministrazioneSistema/Terminale|terminale]] per applicare la modifica solo a quella sessione.

Per verificare l'appartenenza ai gruppi, è possibile usare:{{{
}}}
 0.
Dopo aver eseguito questo comando disconnettersi e accedere nuovamente (o riavviare il sistema) affinché l'appartenenza al gruppo sia attiva. In alternativa è possibile utilizzare il comando `newgrp libvirt` per applicare la modifica solo nella sessione corrente.
 0. Per ottenere l'elenco dei gruppi digitare:{{{
Linea 100: Linea 101:
}}} Dovrebbe essere visualizzato `libvirt` tra i gruppi elencati. }}}Verificare la presenza di `libvirt` tra i gruppi elencati.
Linea 104: Linea 105:
Per verificare se l'installazione è avvenuta con successo e che il demone `libvirtd` è in esecuzione e accessibile, usare il seguente comando:{{{ Per verificare se l'installazione è avvenuta con successo e che il demone `libvirtd` sia in esecuzione e accessibile, digitare:{{{
Linea 106: Linea 107:
}}} Se l'installazione è corretta e i permessi sono corretti, si vedrà un output simile a:{{{ }}}Se l'installazione è corretta e i permessi sono corretti, si vedrà un output simile a:{{{
Linea 109: Linea 110:
}}} (o un elenco delle macchine virtuali, se ne sono già state create). }}}o un elenco delle macchine virtuali, se ne sono già state create.
Linea 111: Linea 112:
== Avvio del servizio Libvirt == == Avvio del servizio libvirt ==
Linea 113: Linea 114:
Il servizio `libvirtd` dovrebbe essere avviato automaticamente dopo l'installazione e configurato per avviarsi ad ogni boot. È possibile verificarne lo stato con:{{{ Dopo l'installazione il servizio '''libvirtd''' dovrebbe essere configurato per avviarsi automaticamente a ogni boot. È possibile verificarne lo stato digitando:{{{
Linea 115: Linea 116:
}}} Dovrebbe mostrare "active (running)". }}}Dovrebbe mostrare restituire:{{{
active (running)
}}}
Linea 119: Linea 122:
Per impostazione predefinita, '''KVM''' con `libvirt` configura una rete NAT per le macchine virtuali. Questo significa che le VM possono accedere a internet ma non sono direttamente accessibili dalla rete fisica (a meno che non si configuri il port forwarding). Per impostazione predefinita '''KVM''' con '''libvirt''' configura una rete '''NAT''' per le macchine virtuali. Questo significa che le VM possono accedere a internet ma non sono direttamente accessibili dalla rete fisica (a meno che non si configuri il ''port forwarding'').
Linea 125: Linea 128:
 0. Identificare l'interfaccia di rete, digitare in una finestra di [[AmministrazioneSistema/Terminale|terminale]]:{{{  0. Identificare l'interfaccia di rete digitando:{{{
Linea 128: Linea 131:
 0. Modificare il file Netplan:
I file di configurazione di Netplan si trovano solitamente nella cartella di sistema `/etc/netplan/`. Trovare il `file.yaml` (es. 00-installer-config.yaml) e modificarlo con un [[Ufficio/EditorDiTesto|editor di testo]] ed i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]]:{{{
 0. Modificare il file '''Netplan'''. I file di configurazione si trovano solitamente nella cartella di sistema `/etc/netplan/`. Trovare il `file.yaml` (es. `00-installer-config.yaml`) e modificarlo con un [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]]:{{{
Linea 149: Linea 151:
 Spiegazione: L'interfaccia fisica (enp0s31f6) non ottiene più un IP direttamente. Viene creato un bridge br0 che include l'interfaccia fisica. Il bridge `br0` ottiene l'indirizzo IP via DHCP, diventando l'interfaccia principale del sistema host. L'interfaccia fisica (enp0s31f6) non ottiene più un IP direttamente. Viene creato un bridge '''br0''' che include l'interfaccia fisica. Il bridge '''br0''' ottiene l'indirizzo IP via DHCP, diventando l'interfaccia principale del sistema host.
Linea 151: Linea 153:
 0. Applicare le modifiche, digitare in una finestra di [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{  0. Applicare le modifiche digitando:{{{
Linea 153: Linea 155:
}}} Si potrebbe perdere temporaneamente la connessione di rete. }}}Si potrebbe perdere temporaneamente la connessione di rete.
Linea 156: Linea 158:
}}} Dovrebbe essere visualizzato un indirizzo IP per `br0`. }}}Dovrebbe essere visualizzato un indirizzo IP per '''br0'''.
Linea 158: Linea 160:
Ora, quando si crea una nuova VM con `virt-manager`, sarà possibile selezionare `br0` come interfaccia di rete. Creando una nuova VM con '''virt-manager''' sarà possibile selezionare '''br0''' come interfaccia di rete.
Linea 164: Linea 166:
Se si riceve un errore come:{{{ Il messaggio di errore:{{{
Linea 167: Linea 169:
}}} ciò può indicare che non si è ancora riautenticati dopo aver aggiunto l'utente al gruppo `libvirt`. }}}può significare che non si è ancora autenticati dopo aver aggiunto l'utente al gruppo '''libvirt'''.
Linea 169: Linea 171:
== Permessi sul socket `libvirt-sock` == == Permessi sul socket libvirt-sock ==
Linea 173: Linea 175:
}}} L'output atteso dovrebbe essere simile a:{{{ }}}L'output atteso dovrebbe essere simile a:{{{
Linea 175: Linea 177:
}}} Questo indica che il socket è di proprietà di root e del gruppo libvirt, con [[AmministrazioneSistema/PermessiFile|permessi di lettura/scrittura]] per i membri del gruppo. }}}Questo indica che il socket è di proprietà di '''root''' e del gruppo '''libvirt''', con [[AmministrazioneSistema/PermessiFile|permessi]] di lettura/scrittura per i membri del gruppo.
Linea 179: Linea 181:
 * [[https://help.ubuntu.com/community/KVM/Installation|Documento originale]] (Community Ubuntu)
 * [[https://libvirt.org/|Sito ufficiale di Libvirt]]
 * [[https://qemu.org/|Sito ufficiale di QEMU]]
 * [[https://help.ubuntu.com/community/KVM/Installation|Documento originale]]
 * [[https://www.libvirt.org/|Sito ufficiale di Libvirt]]
 * [[https://www.qemu.org/|Sito ufficiale di QEMU]]


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04 24.04 25.04 25.10

Problemi in questa pagina? Segnalali in questa discussione


Introduzione

Questa pagina fornisce una guida completa all'installazione e alla configurazione di KVM (Kernel-based Virtual Machine), la soluzione di virtualizzazione nativa del kernel Linux, su Ubuntu 22.04 e versioni successive. KVM offre prestazioni quasi native ed è la tecnologia di virtualizzazione preferita su Linux.

Preparativi

CPU: verifica supporto virtualizzazione

Per utilizzare appieno le prestazioni di KVM, è indispensabile che il processore supporti le estensioni di virtualizzazione hardware. Queste sono note come Intel VT-x (per processori Intel, nome in codice Vanderpool) e AMD-V (per processori AMD, nome in codice Pacifica).

Per verificare il supporto digitare nel terminale:

lscpu | grep Virtualization
  • Se il comando restituisce VT-x o AMD-V, il supporto hardware è presente.

  • Se non viene visualizzata alcuna riga relativa alla virtualizzazione o se il comando precedente non restituisce nulla, la CPU potrebbe non supportarla o l'opzione potrebbe essere disabilitata nel BIOS/UEFI.

Verifica avanzata e stato di /dev/kvm:

Un modo più diretto per verificare la disponibilità di KVM si ha utilizzando kvm-ok.

Se il comando kvm-ok è assente installare il pacchetto cpu-checker.

Digitare nel terminale:

kvm-ok
  • Se il supporto è presente restituirà una risposta simile a:

    INFO: Your CPU supports KVM extensions
    INFO: /dev/kvm exists
    KVM acceleration can be used
  • In caso contrario l'output sarà del tipo:

    INFO: Your CPU does not support KVM extensions
    KVM acceleration can NOT be used

    e significa che le estensioni hardware non sono disponibili. Senza le estensioni KVM sarà comunque possibile eseguire macchine virtuali, ma risulteranno significativamente più lente.

    Potrebbe essere necessario abilitarle nel BIOS/UEFI del sistema (spesso sotto voci come "Virtualization Technology", "Intel VT-d", "AMD-V").

Kernel a 64 bit (raccomandato)

L'esecuzione di un kernel a 64 bit sul sistema host è fortemente raccomandata per sfruttare al meglio KVM.

  • Un sistema a 64 bit può ospitare sia macchine virtuali a 64 bit che a 32 bit.
  • Un sistema a 32 bit può ospitare solo macchine virtuali a 32 bit e ha una limitazione di RAM per VM a circa 2 GB.
  • Per offrire più di 2047 MB di RAM a una macchina virtuale, si deve usare un kernel a 64 bit sul sistema host.

Per verificare che il kernel sia a 64 bit, digitare il seguente comando in una finestra di terminale:

uname -m

Il risultato x86_64 indica che è in uso un kernel a 64-bit.

Risultati come i386, i486, i586 o i686 indicano un kernel a 32 bit.

Installazione

Per le seguenti impostazioni si assume una configurazione standard adatta sia per desktop che per server (anche senza ambiente grafico, sebbene si consigli virt-manager per la facilità di utilizzo).

Installare i seguenti pacchetti:

sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager

Descrizione dei pacchetti:

  • qemu-kvm: il backend principale che fornisce l'accelerazione hardware KVM tramite QEMU. Guida.

  • libvirt-daemon-system: il demone libvirtd che gestisce le istanze KVM e QEMU. È l'interfaccia principale per KVM.

  • libvirt-clients: contiene gli strumenti client (come virsh) per interagire con libvirtd.

  • bridge-utils: utilità per la configurazione del networking in bridge, utile per integrare le VM nella rete fisica.

  • virtinst: strumenti a riga di comando per la creazione rapida di macchine virtuali.

  • virt-manager: un'interfaccia grafica molto intuitiva e potente per la gestione delle macchine virtuali KVM. Fortemente raccomandato per la maggior parte degli utenti.

Aggiungere utenti ai gruppi

Per poter gestire le macchine virtuali KVM senza dover utilizzare privilegi di amministrazione per ogni comando o per avviare virt-manager, è necessario che l'utente appartenga al gruppo libvirt.

Durante l'installazione di libvirt-daemon-system l'utente dovrebbe essere aggiunto automaticamente al gruppo libvirt. Tuttavia, per sicurezza e per rendere la modifica effettiva, è buona norma aggiungere l'utente manualmente e poi riautenticarsi.

  1. Aggiungere il nome utente al gruppo libvirt:

    sudo usermod -a -G libvirt $(whoami)
  2. Dopo aver eseguito questo comando disconnettersi e accedere nuovamente (o riavviare il sistema) affinché l'appartenenza al gruppo sia attiva. In alternativa è possibile utilizzare il comando newgrp libvirt per applicare la modifica solo nella sessione corrente.

  3. Per ottenere l'elenco dei gruppi digitare:

    groups

    Verificare la presenza di libvirt tra i gruppi elencati.

Verifica dell'installazione

Per verificare se l'installazione è avvenuta con successo e che il demone libvirtd sia in esecuzione e accessibile, digitare:

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

Se l'installazione è corretta e i permessi sono corretti, si vedrà un output simile a:

Id   Name   State
--------------------

o un elenco delle macchine virtuali, se ne sono già state create.

Avvio del servizio libvirt

Dopo l'installazione il servizio libvirtd dovrebbe essere configurato per avviarsi automaticamente a ogni boot. È possibile verificarne lo stato digitando:

sudo systemctl status libvirtd

Dovrebbe mostrare restituire:

active (running)

Configurazione Rete (Opzionale: Bridge)

Per impostazione predefinita KVM con libvirt configura una rete NAT per le macchine virtuali. Questo significa che le VM possono accedere a internet ma non sono direttamente accessibili dalla rete fisica (a meno che non si configuri il port forwarding).

Se si desidera che le VM ottengano un indirizzo IP direttamente dalla rete locale e siano visibili come host separati, è consigliabile configurare una rete in bridge. Questo è un processo più avanzato che richiede la modifica dei file di configurazione di rete del sistema host.

Configurazione di un Bridge (Netplan su Ubuntu 22.04)

  1. Identificare l'interfaccia di rete digitando:

    ip a
    Individuare il nome dell'interfaccia di rete Ethernet (es. enp0s31f6, eth0).
  2. Modificare il file Netplan. I file di configurazione si trovano solitamente nella cartella di sistema /etc/netplan/. Trovare il file.yaml (es. 00-installer-config.yaml) e modificarlo con un editor di testo e i privilegi di amministrazione:

    sudo nano /etc/netplan/00-installer-config.yaml
  3. Adattare i nomi delle interfacce. Sostituire il contenuto esistente con qualcosa di simile a questo (adattare enp0s31f6 al nome dell'interfaccia e il server DHCP):

    network:
      ethernets:
        enp0s31f6: # <<-- Sostituire con il nome dell'interfaccia fisica
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          interfaces: [enp0s31f6] # <<-- Sostituire con il nome dell'interfaccia fisica
          dhcp4: yes
          dhcp6: no
          parameters:
            stp: true
            forward-delay: 0
      version: 2

    L'interfaccia fisica (enp0s31f6) non ottiene più un IP direttamente. Viene creato un bridge br0 che include l'interfaccia fisica. Il bridge br0 ottiene l'indirizzo IP via DHCP, diventando l'interfaccia principale del sistema host.

  4. Applicare le modifiche digitando:

    sudo netplan apply
    Si potrebbe perdere temporaneamente la connessione di rete.
  5. Verificare il bridge:

    ip a show br0

    Dovrebbe essere visualizzato un indirizzo IP per br0.

Creando una nuova VM con virt-manager sarà possibile selezionare br0 come interfaccia di rete.

Risoluzione problemi

libvir: Remote error : Permission denied

Il messaggio di errore:

libvir: Remote error : Permission denied
error: failed to connect to the hypervisor

può significare che non si è ancora autenticati dopo aver aggiunto l'utente al gruppo libvirt.

Permessi sul socket libvirt-sock

È possibile verificare i permessi del socket con:

sudo ls -la /var/run/libvirt/libvirt-sock

L'output atteso dovrebbe essere simile a:

srwxrwx--- 1 root libvirt 0 [DATA E ORA] /var/run/libvirt/libvirt-sock

Questo indica che il socket è di proprietà di root e del gruppo libvirt, con permessi di lettura/scrittura per i membri del gruppo.

Ulteriori risorse


CategoryHomepage CategoryNuoviDocumenti