Home
» LINUX
»
Guida alla configurazione della virtualizzazione KVM e all'avvio automatico delle macchine virtuali per SLES 15.
Guida alla configurazione della virtualizzazione KVM e all'avvio automatico delle macchine virtuali per SLES 15.
SUSE Linux Enterprise Server 15 può fungere da host KVM con l'hypervisor QEMU/KVM e lo stack di gestione libvirt. Questa guida è pensata come riferimento pratico per gli amministratori che desiderano una configurazione ripetibile: verificare la virtualizzazione hardware, installare i componenti supportati, scegliere la rete e lo storage, creare una macchina virtuale, abilitare l'avvio automatico per ogni macchina virtuale e verificare che la macchina virtuale si riavvii dopo il riavvio dell'host.
I comandi e i percorsi di menu riportati di seguito sono stati verificati confrontandoli con la Guida alla virtualizzazione di SUSE Linux Enterprise Server 15 SP7 , la cui pubblicazione attuale è datata 10 settembre 2026. I service pack precedenti di SLES 15 sono simili, ma le versioni dei pacchetti, le impostazioni predefinite del demone e i profili guest disponibili possono differire. SUSE raccomanda di gestire la virtualizzazione supportata tramite libvirt anziché combinare libvirt con la gestione diretta specifica dell'hypervisor.
Lista di controllo per una pianificazione rapida
Articolo
Cosa decidere o verificare
processore
La virtualizzazione hardware è supportata e abilitata nel firmware: Intel VT-x o AMD-V su sistemi x86.
Risorse dell'host
Lascia a disposizione risorse sufficienti di CPU, RAM, spazio di archiviazione e I/O sia per SLES stesso che per ogni macchina virtuale.
Reti
Utilizzare un bridge quando gli ospiti necessitano di un normale accesso di livello 2 alla LAN; utilizzare una rete virtuale libvirt quando NAT o isolamento basato su routing risultano più appropriati.
Magazzinaggio
Scegli la posizione in cui verranno archiviate le immagini del disco guest e assicurati che il filesystem o il pool di archiviazione sottostante disponga di spazio libero sufficiente.
Gestione
Utilizzate regolarmente gli strumenti di libvirt come virsh, virt-install e Virtual Machine Manager.
Comportamento di avvio
L'avvio automatico viene configurato individualmente per ogni macchina virtuale persistente, non tramite un unico interruttore globale per tutte le macchine virtuali.
1. Verificare che l'host supporti KVM
KVM richiede il supporto per la virtualizzazione del processore e impostazioni del firmware che espongano tale supporto al sistema operativo. Su un host x86, un primo controllo rapido consiste nel verificare la presenza del flag Intel vmxo AMD svmCPU. Il pacchetto client libvirt fornisce anche virt-host-validateuna funzione che esegue una serie più ampia di controlli sull'host.
Un conteggio positivo dei flag della CPU è utile, ma non è l'unico requisito. Se la convalida segnala che KVM non è disponibile, controllare prima le impostazioni del BIOS o dell'UEFI, soprattutto su un server appena configurato. La documentazione host KVM di SUSE afferma che la virtualizzazione deve essere supportata dalla CPU e abilitata nel BIOS/firmware. Ricordare inoltre che la virtualizzazione nidificata è una funzionalità separata; su SLES 15 SP7 SUSE documenta KVM nidificata come anteprima tecnologica piuttosto che come impostazione predefinita supportata in produzione.
Visualizzazione da terminale della fase di preflight: i flag di virtualizzazione della CPU e la convalida dell'host vengono controllati prima della creazione di qualsiasi macchina virtuale.
2. Installare il server KVM e gli strumenti di gestione libvirt.
Il percorso più supportato è YaST. Apri YaST > Virtualizzazione > Installa Hypervisor e Strumenti , seleziona Server KVM e, se desideri lo stack di gestione libvirt, seleziona Strumenti KVMyast2-vm . SUSE documenta il pacchetto come il modulo YaST utilizzato per questa configurazione.
Per l'automazione da riga di comando, SLES raggruppa le stesse funzionalità in modelli di installazione. Installare sia il modello host che quello di gestione:
Questo kvm_serverschema installa l'ambiente host QEMU/KVM di base. kvm_toolsAggiunge inoltre strumenti basati su libvirt per la gestione e il monitoraggio delle macchine virtuali. L'elenco esatto delle dipendenze dipende dal service pack, pertanto è preferibile installare gli schemi documentati piuttosto che mantenere un elenco di pacchetti scritto manualmente, a meno che non si disponga di un'architettura host minimale controllata.
In YaST, selezionare "Server KVM" e "Strumenti KVM" per installare l'hypervisor e lo stack di gestione libvirt.
3. Scegliere il modello di rete VM prima di spostare il traffico di produzione
SUSE descrive un bridge di rete come la connessione predefinita e consigliata quando le macchine virtuali devono connettersi direttamente alla LAN dell'host. Un bridge si comporta come uno switch di livello 2: l'interfaccia fisica dell'host e le interfacce virtuali delle VM partecipano allo stesso segmento Ethernet. Questa è solitamente la scelta più ovvia per le VM infrastrutturali che necessitano di indirizzi LAN dedicati, servizi in entrata, prenotazioni DHCP o normale visibilità verso altre macchine.
Una rete virtuale libvirt è spesso più adatta quando le macchine virtuali necessitano di isolamento o di una semplice connettività in uscita. Il NAT consente a più macchine virtuali di condividere l'indirizzo esterno dell'host pur rimanendo su una sottorete privata. La modalità Routed inoltra il traffico senza traduzione degli indirizzi, ma richiede un routing adeguato nella rete circostante.
Se l'host utilizza wicked, che SUSE documenta come servizio di gestione di rete predefinito sugli host server, crea il bridge con YaST o la corrispondente configurazione da riga di comando. I sistemi NetworkManager possono utilizzare nmcli. Fai attenzione sui server remoti: spostare la configurazione IP dell'host su un bridge può interrompere SSH se la modifica non è corretta. Pianifica una finestra di manutenzione o assicurati di avere accesso alla console.
Esempio di rete bridged con br0 collegato a un'interfaccia Ethernet fisica, adatto quando gli ospiti necessitano di accesso LAN di livello 2.
4. Verificare che i moduli del kernel KVM siano caricati
Dopo l'installazione, verificare il lato kernel di KVM. Gli host Intel normalmente utilizzano kvm_intel; gli host AMD utilizzano kvm_amd. La guida di configurazione host KVM di SUSE mostra come caricare il modulo specifico del processore e verificarlo con lsmod.
Dovresti visualizzare il kvmmodulo generico e il modulo specifico del processore. Se il modulo non si carica, non procedere semplicemente creando una macchina virtuale in emulazione software. Ricontrolla prima le impostazioni di virtualizzazione del firmware e la compatibilità dell'host, a meno che l'emulazione esclusivamente software non sia intenzionalmente parte del tuo progetto.
Il controllo dei moduli previsto su un host Intel mostra sia il modulo KVM generico che il modulo KVM specifico di Intel.
5. Verifica il modello del demone libvirt utilizzato dal tuo service pack
SLES 15 SP7 abilita per impostazione predefinita il modello di demone modulare libvirt. Per KVM, il demone hypervisor primario è virtqemud. I demoni secondari gestiscono funzioni come la rete virtuale e lo storage. SUSE documenta ancora la tradizionale libvirtdimplementazione monolitica, ma non è consigliabile abilitare entrambi i modelli arbitrariamente.
Su un host KVM SP7 predefinito, verificare il demone QEMU:
systemctl status virtqemud.service
sudo systemctl enable --now virtqemud.service
SUSE raccomanda specificamente di configurare il servizio libvirt pertinente per l'avvio automatico all'avvio del sistema quando le macchine virtuali sono configurate anche per l'avvio automatico all'avvio dell'host. Su un'installazione precedente che utilizza intenzionalmente libvirt monolitico, verificare libvirtd.serviceinvece i relativi socket. Prima di cambiare modello di demone su un host esistente, seguire la procedura di transizione documentata da SUSE e arrestare o spostare le macchine virtuali.
Nella versione corrente di SLES 15 SP7, verificare il servizio modulare virtqemud prima di fare affidamento sull'avvio automatico delle macchine virtuali all'avvio dell'host.
6. Preparare i supporti di memorizzazione e installazione
Prima di creare la macchina virtuale, è necessario decidere dove posizionare il disco virtuale e dove montare l'immagine ISO di installazione. Le impostazioni predefinite sono adatte per un piccolo host autonomo, mentre installazioni più grandi possono utilizzare volumi LVM dedicati, filesystem separati, NFS, iSCSI o altri sistemi di storage gestiti tramite libvirt. La regola operativa fondamentale è evitare di riempire silenziosamente il filesystem root dell'host con immagini di macchine virtuali in continua crescita.
Per un sistema guest basato su file, verificare lo spazio libero prima di creare il disco:
df -h /var/lib/libvirt/images
ls -lh /data/ISOs/
Se si utilizza un pool di storage libvirt, verificarlo virsh pool-list --alle assicurarsi che il pool previsto sia attivo. Per i sistemi di produzione, includere lo storage delle VM nel monitoraggio della capacità e nella progettazione del backup, anziché trattare l'immagine del disco come un file opaco che si gestirà da solo.
7. Creare la macchina virtuale
È possibile creare una macchina virtuale graficamente con Virtual Machine Manager o dalla riga di comando con virt-install. SUSE descrive virt-installcome lo strumento da riga di comando per la creazione di macchine virtuali tramite libvirt, ed è particolarmente utile per build ripetibili e amministrazione remota.
In Virtual Machine Manager, crea una nuova VM, scegli il supporto di installazione locale, seleziona il sistema operativo guest, alloca la memoria e le CPU virtuali, seleziona lo storage e infine scegli la rete virtuale desiderata. La schermata seguente utilizza un'immagine ISO di SLES 15 a scopo illustrativo; utilizza l'immagine di installazione e il profilo esatti appropriati al tuo Service Pack.
Virtual Machine Manager può creare una macchina virtuale da un supporto ISO locale; scegli l'immagine SLES 15 corretta per il service pack che intendi installare.
Regola memoria, numero di CPU, dimensione del disco, percorso ISO, sorgente di rete, firmware e opzioni grafiche in base al tuo carico di lavoro. Se utilizzi una rete NAT libvirt anziché un bridge, sostituisci l'opzione bridge con la rete virtuale appropriata. Verifica i sistemi operativi guest e le opzioni di dispositivo supportati nella documentazione di supporto alla virtualizzazione di SUSE quando il supporto in ambiente di produzione è importante.
Un flusso di lavoro di installazione virtuale definisce il nome della macchina virtuale, la RAM, le vCPU, il disco, il supporto di installazione e la connessione di rete in un unico comando ripetibile.
8. Abilita l'avvio automatico della macchina virtuale
L'avvio automatico delle macchine virtuali è una proprietà di libvirt su ogni guest persistente. La documentazione di SUSE specifica esplicitamente che la funzionalità non è abilitata per impostazione predefinita e deve essere attivata singolarmente; non esiste un singolo interruttore globale che contrassegni tutte le macchine virtuali per l'avvio automatico.
Abilitalo per l'ospite:
sudo virsh autostart sles15-vm
Verifica l'impostazione:
sudo virsh dominfo sles15-vm | grep -i autostart
Per disattivare questo comportamento in seguito:
sudo virsh autostart --disable sles15-vm
In Virtual Machine Manager, il controllo equivalente si trova in Visualizza > Dettagli > Opzioni di avvio della macchina virtuale , dove è possibile abilitare l'opzione "Avvia la macchina virtuale all'avvio dell'host" e applicare la modifica.
Dopo aver abilitato l'avvio automatico, il comando virsh dominfo dovrebbe segnalare che la macchina virtuale guest è configurata per avviarsi automaticamente con il servizio di virtualizzazione dell'host.
9. Verifica la configurazione invece di dare per scontato che l'avvio automatico funzioni.
Il test più efficace consiste in un riavvio controllato dell'host durante una finestra di manutenzione. Prima del riavvio, registrare lo stato corrente e verificare che la macchina virtuale sia persistente:
sudo virsh list --all
sudo virsh dominfo sles15-vm
Quindi riavvia l'host. Dopo il riavvio dell'host, verifica lo stato del demone di virtualizzazione e della macchina virtuale:
systemctl is-active virtqemud.service
sudo virsh list --all
Se la tua distribuzione utilizza libvirt monolitico, sostituisci il controllo del servizio con libvirtd. Una VM avviata automaticamente dovrebbe passare a runningsenza un virsh start. Verifica anche il servizio all'interno del guest, non solo lo stato della VM. Una VM in esecuzione potrebbe comunque avere un'applicazione non riuscita, una configurazione di rete mancante o un problema di ripristino del filesystem.
Riferimento alla risoluzione dei problemi
Sintomo
Area probabile da controllare
Comando utile
KVM non disponibile
Virtualizzazione del firmware disabilitata, CPU non supportata o modulo del kernel mancante.
virt-host-validate qemu
La macchina virtuale non riesce a raggiungere la LAN
Appartenenza al bridge, assegnazione IP host, VLAN, firewall o policy dello switch
ip linkEbridge link
La definizione della macchina virtuale esiste ma non verrà avviata
Percorso del disco, autorizzazioni, pool di archiviazione, XML o risorse esaurite
virsh start VMNAMEpiù registri di giornale
La macchina virtuale non si avvia dopo il riavvio dell'host.
Il flag di avvio automatico o il demone libvirt non sono abilitati per l'avvio dell'host.
Lo spegnimento si comporta come un'interruzione di corrente.
Comportamento di spegnimento dell'ACPI guest o del sistema operativo guest
virsh shutdown VMNAME
SUSE avverte che uno spegnimento forzato virsh destroyequivale a interrompere bruscamente l'alimentazione e può causare danneggiamento del filesystem guest o perdita di dati. Testare il comportamento di arresto controllato e riavvio prima di utilizzare una macchina virtuale in produzione.
Linee guida pratiche per un host KVM SLES 15 affidabile
Una base di partenza pulita è semplice: mantieni l'host su un service pack SLES 15 supportato, installa i modelli documentati kvm_server, kvm_toolsusa libvirt in modo coerente, scegli deliberatamente la connettività bridge o di rete virtuale, evita di utilizzare un filesystem root di dimensioni insufficienti per l'archiviazione delle VM e contrassegna con . solo le macchine virtuali che necessitano effettivamente dell'avvio all'avvio virsh autostart.
Per SLES 15 SP7, ricordate un dettaglio sui daemon che è facile trascurare: i daemon libvirt modulari sono l'impostazione predefinita, così come virtqemudil servizio che normalmente si convalida per KVM, anziché presumere che ogni host corrente sia incentrato sul vecchio sistema monolitico libvirtd. Questa distinzione è importante quando si diagnostica una VM correttamente contrassegnata per l'avvio automatico ma che non viene comunque visualizzata dopo un riavvio dell'host.