Home
» Come fare
»
Configurazione KVM di SLES 15: Avviare le macchine virtuali selezionate all'avvio del sistema
Configurazione KVM di SLES 15: Avviare le macchine virtuali selezionate all'avvio del sistema
Per avviare una macchina virtuale KVM di SLES 15 dopo il riavvio dell'host, è necessario installare i componenti di gestione KVM e libvirt, contrassegnare la macchina virtuale per l'avvio automatico virsh autostart VM_NAMEe assicurarsi che il demone libvirt attivo dell'host si avvii durante l'avvio. L'avvio automatico è un'impostazione specifica per ogni macchina virtuale; la sola installazione di KVM o l'avvio di libvirt non garantiscono l'avvio automatico di tutte le macchine virtuali.
I comandi seguenti seguono la Guida alla virtualizzazione di SUSE SLES 15 SP7. I service pack precedenti potrebbero essere diversi, quindi verifica la guida corrispondente e le unità systemd installate prima di applicare i comandi di servizio.
Hai bisogno di un server KVM, di strumenti KVM o di entrambi?
Per un host che eseguirà e gestirà le macchine virtuali tramite libvirt, è necessario installare sia KVM server che KVM tools. SUSE definisce KVM server come l'ambiente QEMU/KVM minimo e KVM tools come lo stack di gestione basato su libvirt, che include il virshflusso di lavoro qui utilizzato.
Prima dell'installazione, verificare che il processore e il firmware della macchina supportino la virtualizzazione hardware. SUSE documenta il supporto della CPU e il software necessario nella sua Guida alla virtualizzazione di SLES 15 SP7 . Se la convalida segnala un problema hardware o di configurazione, risolverlo nel firmware o nella configurazione dell'host prima di tentare di definire una macchina virtuale; il flag di avvio automatico non può compensare un host che non supporta KVM.
Eseguire l'utilità di convalida dell'host prima di creare le macchine virtuali; il terminale mostra il comando, non il risultato del test.
Come si installa lo stack host KVM di SLES 15?
Questo percorso opzionale di Zypper installa il server KVM e i modelli di gestione libvirt documentati.
Su un server in cui è già installato YaST, aprite e selezionate Virtualizzazione > Installa Hypervisor e Strumenti . Se il modulo di virtualizzazione di YaST non è presente, SUSE indica che è fornito dal yast2-vmpacchetto.
Seleziona il server KVM e gli strumenti KVM , quindi accetta le modifiche al pacchetto. YaST potrebbe offrire la possibilità di configurare un bridge di rete. Scegli questa opzione solo se è compatibile con l'architettura di rete dell'host. La modifica della rete di un host di produzione può interrompere l'accesso remoto, pertanto pianifica e programma le modifiche al bridge prima di applicarle.
Una volta completata la configurazione, crea o importa una macchina virtuale e assicurati che sia definita come dominio libvirt persistente. La guida di SUSE afferma che la configurazione KVM tramite YaST non richiede il riavvio dell'host.
In alternativa, SUSE documenta l'installazione dei pattern con Zypper: sudo zypper install -t pattern kvm_server kvm_tools. Scegli un percorso di installazione e rivedi la transazione del pacchetto prima di confermarla. Se l'host viene installato da zero, il ruolo di sistema KVM Virtualization Host installa e configura la selezione appropriata durante l'installazione di SLES.
Come si fa a impostare una macchina virtuale per l'avvio automatico?
Innanzitutto, elenca i domini tramite la connessione libvirt del sistema in modo da poter utilizzare il nome guest esatto:
Elenca tutti i domini sulla connessione di sistema e copia il nome esatto della macchina virtuale prima di impostare l'avvio automatico.
sudo virsh -c qemu:///system list --all
Questa --allopzione include le macchine virtuali attualmente spente. Selezionare la macchina virtuale persistente desiderata dall'output. Quindi abilitare l'avvio automatico per quel dominio:
Sostituisci VM_NAME con il nome di dominio libvirt esatto della macchina virtuale per abilitare il relativo flag di avvio automatico.
sudo virsh autostart VM_NAME
Per annullare l'impostazione in seguito, eseguire sudo virsh autostart --disable VM_NAME. Questo non è un ripristino della memoria salvata: la macchina virtuale si avvia normalmente dai dischi configurati dopo l'avvio dell'host. Inoltre, non seleziona automaticamente tutte le macchine virtuali. Applicare il comando solo alle macchine virtuali che devono essere eseguite su questo host.
Quale servizio di libvirt deve avviarsi all'avvio del sistema?
Dipende se questo host SLES utilizza i daemon modulari di libvirt o quelli monolitici tradizionali libvirtd. SUSE documenta che i daemon modulari sono abilitati per impostazione predefinita in SLES 15 SP7 e raccomanda di avviare il servizio driver pertinente all'avvio quando le macchine virtuali sono configurate per l'avvio automatico. Il servizio driver QEMU è virtqemud.service. In una configurazione monolitica, SUSE raccomanda libvirtd.serviceinvece . Non abilitare entrambe le modalità di distribuzione solo perché esistono entrambi i nomi delle unità.
Prima di modificare le unità di misura, verificale sul tuo host:
Prima di abilitare qualsiasi cosa, esamina le unità del demone libvirt disponibili per identificare la modalità di distribuzione dell'host.
systemctl status virtqemud.service libvirtd.service
Se l'host utilizza libvirt modulare e l'unità QEMU è installata, abilitarla con:
sudo systemctl enable --now virtqemud.service
Se l'host è configurato appositamente per il demone monolitico, utilizzare invece questo comando:
Abilitare questa unità solo su un host che utilizza la distribuzione monolitica libvirtd; gli host modulari utilizzano il proprio demone driver.
sudo systemctl enable --now libvirtd.service
Imposta la rete libvirt predefinita per l'avvio automatico solo se la macchina virtuale utilizza tale rete virtuale.
Con libvirt modulare, la gestione della rete virtuale e dello storage può utilizzare daemon o socket driver separati. Se la macchina virtuale dipende da una rete gestita da libvirt, è necessario fare in modo che anche tale rete si avvii automaticamente; ad esempio, consultare la documentazione SUSE sudo virsh net-autostart defaultper la defaultrete predefinita. Eseguire questa operazione solo quando la macchina virtuale utilizza effettivamente tale rete. Un bridge configurato a livello host non utilizza questa impostazione di rete di libvirt. Verificare la rete effettivamente connessa alla macchina virtuale anziché presumere il nome default.
Se una macchina virtuale utilizza un disco esterno o montato in rete, assicurarsi che lo storage di supporto sia disponibile all'avvio. SUSE fa notare che lo stato attivo di un pool di storage libvirt non modifica la disponibilità dei volumi già collegati alle macchine virtuali, ma l'attivazione dell'avvio automatico del pool è utile quando il pool deve essere attivo per la gestione del pool lato host o per successive operazioni sui volumi: sudo virsh pool-autostart POOL. Sostituire POOLcon il nome effettivo del pool; non creare un nuovo pool solo per impostare l'avvio automatico della VM.
Come si può verificare che la macchina virtuale venga riavviata?
Utilizza le informazioni di dominio della macchina virtuale per verificare l'impostazione di avvio automatico prima di pianificare il riavvio dell'host.
Prima di un riavvio di manutenzione pianificato, verificare la configurazione del dominio e lo stato del demone. Utilizzare sudo virsh dominfo VM_NAMEper confermare che l'avvio automatico sia abilitato e systemctl is-enabled virtqemud.service/o systemctl is-enabled libvirtd.serviceper la modalità del demone scelta. Se il primo comando non riesce perché la macchina virtuale non viene trovata, assicurarsi di interrogare la stessa connessione libvirt su cui è stata creata.
Quindi, esegui il test durante una finestra di manutenzione approvata. Dopo il riavvio dell'host, esegui sudo virsh -c qemu:///system list --all. La macchina virtuale selezionata dovrebbe risultare in esecuzione; verifica separatamente la sua rete e i servizi guest. Se rimane spenta, esamina i log di avvio del demone attivo con journalctl -b -u virtqemud.serviceo journalctl -b -u libvirtd.service, a seconda dei casi, e verifica la presenza di storage non disponibile o di una rete virtuale necessaria. Queste condizioni dipendono dalla configurazione dell'host, quindi il log del demone e la configurazione effettiva del dispositivo della VM determinano la soluzione successiva.