KVM

Come installare KVM/QEMU su CentOS 8

Come installare KVM/QEMU su CentOS 8
La forma completa di KVM è Kernel Virtual Machine. È una soluzione di virtualizzazione per Linux. KVM è un modulo del kernel Linux che consente al kernel Linux di agire come un programma hypervisor come VMware ESXi o VSphere.

In questo articolo, ti mostrerò come installare KVM su CentOS 8 e creare una semplice macchina virtuale KVM con esso. Quindi iniziamo.

Abilitazione della virtualizzazione dell'hardware:

È necessario abilitare l'estensione della virtualizzazione hardware dal BIOS del computer affinché KVM funzioni. Per i processori Intel, dovresti abilitare la funzione del processore VT-x o VT-d dal BIOS. Per i processori AMD, dovresti abilitare la funzione del processore AMD-v dal BIOS.

Dopo aver abilitato la virtualizzazione hardware nel BIOS, eseguire il comando seguente per verificare se l'estensione VT-x/VT-d o AMD-v è abilitata.

$ grep --color --perl-regexp 'vmx|svm' /proc/cpuinfo

Dovresti avere il svm o vmx flag disponibile nell'output se la virtualizzazione hardware è abilitata nel BIOS.

Sto usando un processore AMD. Così il svm la bandiera è disponibile nel mio caso. Se stai usando un processore Intel, allora lo sarà vmx.

Aggiornamento del sistema:

Prima di installare KVM, dovresti aggiornare tutti i pacchetti software esistenti della tua macchina CentOS 8.

Innanzitutto, aggiorna la cache del repository del pacchetto DNF del tuo computer CentOS 8 con il seguente comando:

$ sudo dnf makecache

La cache del repository del pacchetto DNF dovrebbe essere aggiornata.

Aggiorna tutti i pacchetti software esistenti della tua macchina CentOS 8 con il seguente comando:

$ sudo dnf update

Per confermare l'aggiornamento, premere e poi premere .

Il gestore di pacchetti DNF dovrebbe scaricare tutti i pacchetti richiesti da Internet.

Una volta completato il download del pacchetto, dovrebbe installare tutti i pacchetti scaricati. Potrebbe volerci un po' di tempo per completare.

A questo punto, il tuo sistema CentOS 8 dovrebbe essere aggiornato.

Affinché le modifiche abbiano effetto, riavvia il tuo computer CentOS 8 con il seguente comando:

$ sudo reboot

Impostazione di SELinux in modalità Permissiva:

La configurazione di SELinux per KVM non rientra nell'ambito di questo articolo. Se lasci SELinux in far rispettare modalità (impostazione predefinita), otterrai errori di autorizzazione negata durante la creazione di macchine virtuali KVM. Se non hai esperienza con SELinux, dovresti impostarlo su permissivo modalità. Altrimenti, non sarai in grado di creare macchine virtuali KVM.

Per impostare SELinux su permissivo modalità, aprire il /etc/selinux/config file con un editor di testo (i.e. nano) con il seguente comando:

$ sudo nano /etc/selinux/config

Cambia la linea SELINUX=applicare per SELINUX=permissivo come indicato nello screenshot qui sotto.

Quando hai finito, premi + X seguito da e per salvare il file di configurazione.

Affinché le modifiche abbiano effetto, riavvia il computer con il seguente comando:

$ sudo reboot

Installazione di KVM:

Puoi installare facilmente tutti i pacchetti necessari per la virtualizzazione KVM su CentOS 8 semplicemente installando il Host di virtualizzazione gruppo di pacchetti.

Puoi installare il Host di virtualizzazione gruppo di pacchetti sul tuo computer CentOS 8 con il seguente comando:

$ sudo dnf groupinstall "host di virtualizzazione"

Per confermare l'installazione, premere e poi premere .

Il gestore di pacchetti DNF dovrebbe scaricare tutti i pacchetti richiesti da Internet.

Una volta completato il download del pacchetto, dovrebbe installare tutti i pacchetti scaricati. Potrebbe volerci un po' di tempo per completare.

A questo punto, KVM dovrebbe essere installato.

Ora, controlla se il libvirtd servizio è in esecuzione con il seguente comando:

$ sudo systemctl status libvirtd

Come puoi vedere, il libvirtd il servizio è attivo/in esecuzione. libvirtd il servizio è molto importante. Se non è in esecuzione, non sarai in grado di amministrare KVM.

Se la libvirtd il servizio non è in esecuzione nel tuo caso, puoi avviarlo con il seguente comando:

$ sudo systemctl start libvirtd

Verifica se puoi eseguire il comando di gestione KVM virsh come segue:

$ sudo virsh --version

Il comando dovrebbe stampare le informazioni sulla versione come puoi vedere nello screenshot qui sotto.

Installazione di virt-install:

virt-install è uno strumento da riga di comando per creare facilmente macchine virtuali KVM. virt-install è basato su libvirt. Quindi, le macchine virtuali create usando virt-install può essere gestito anche con virsh e virt-manager.

Puoi installare virt-install con il seguente comando:

$ sudo dnf install virt-install

Per confermare l'installazione, premere  e poi premere .

virt-install dovrebbe essere installato.

Configurazione delle directory KVM richieste:

Penso che sia una buona idea mantenere organizzati tutti i dati della macchina virtuale. Di solito conservo tutti i dati della macchina virtuale KVM dentro /kvm/ directory. Nel /kvm/ directory, creo 2 sottodirectory disco/ e iso/. Nel disco/ sottodirectory, conservo tutti i file del disco rigido della macchina virtuale (VM). Nel iso/ sottodirectory, conservo le immagini di installazione ISO di diversi sistemi operativi (i.e. Ubuntu, Debian, CentOS, ecc.).

Puoi creare le stesse strutture di directory con il seguente comando:

$ sudo mkdir -pv /kvm/disco,iso

Creazione di una macchina virtuale KVM:

In questa sezione, ti mostrerò come creare un desktop Ubuntu 20.04 Macchina virtuale KVM LTS.

Per prima cosa, devi scaricare Ubuntu Desktop 20.04 Immagine di installazione ISO LTS. Per mantenere organizzati tutti i file/dati della macchina virtuale, è una buona idea archiviare l'immagine ISO nel /kvm/iso/ directory.

Quindi, vai a /kvm/iso/ directory con il seguente comando:

$ cd /kvm/iso

Puoi scaricare Ubuntu Desktop 20.04 Immagine ISO LTS dal sito ufficiale di Ubuntu con il seguente comando:

$ sudo wget https://releases.ubuntu.com/20.04/ubuntu-20.04.1-desktop-amd64.iso

wget dovrebbe iniziare a scaricare Ubuntu Desktop 20.04 LTS immagine ISO. Ci vorrà un po' di tempo per completare.

A questo punto, Ubuntu Desktop 20.L'immagine ISO 04 LTS dovrebbe essere scaricata.

Il desktop Ubuntu 20.L'immagine ISO 04 LTS è disponibile nel /kvm/iso/ directory come puoi vedere nello screenshot qui sotto.

Una volta che Ubuntu Desktop 20.04 LTS ISO viene scaricata, è possibile creare una macchina virtuale KVM con il seguente comando:

$ sudo virt-install --name udesktop20_04-01 \
--tipo di sistema operativo linux \
--os-variante ubuntu19.10 \
--ariete 4096 \
--disco /kvm/disco/udesktop20_04-01.img,dispositivo=disco,bus=virtio,dimensione=20,formato=qcow2 \
--grafica vnc, ascolta=0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom /kvm/iso/ubuntu-20.04.1-desktop-amd64.iso\
--cdrom di avvio, hd

Qui, il nome della macchina virtuale sarà udesktop20_04-01.

Il sistema operativo che installeremo è Linux.

La variante del sistema operativo è ubuntu19.10. Il database del sistema operativo di CentOS 8 non ha una voce per Ubuntu 20.04 LTS al momento in cui scriviamo. Quindi, ho usato le informazioni per Ubuntu 19.10.

Il tipo di sistema operativo e i valori della variante del sistema operativo non sono casuali. Puoi trovare il tipo di sistema operativo e la variante del sistema operativo per la tua distribuzione Linux desiderata con il osinfo-query comando. Come puoi vedere, nessuna voce per Ubuntu 20.04 LTS è disponibile. Ma una voce per Ubuntu 19.10 è disponibile. Il tipo di sistema operativo di Ubuntu 19.10 è Linux e la variante del sistema operativo è ubuntu19.10.

$ osinfo-query os --fields=nome,id-breve,famiglia | grep -i Ubuntu

La RAM (Random Access Memory) della VM sarà 4096 MB (Megabyte) o 4 GB (Gigabyte).

Il disco virtuale della VM verrà salvato nel /kvm/disco/udesktop20.04-01.img file. Il disco virtuale è di circa 20 GB di dimensioni e il formato è QCOW2 (QEMU Copy-On-Write v2)

La macchina virtuale sarà accessibile tramite il protocollo desktop remoto VNC (Virtual Network Computing) e il server VNC sarà in ascolto su tutte le interfacce di rete disponibili configurate sul tuo host KVM CentOS 8.

L'host KVM CentOS 8 non tenterà automaticamente di connettersi alla macchina virtuale una volta creata la macchina virtuale. La macchina virtuale continuerà a funzionare in background.

Usa la virtualizzazione completa per la macchina virtuale. Ciò migliorerà le prestazioni delle macchine virtuali.

Usa Ubuntu Desktop 20.04 Immagine ISO LTS appena scaricata come CD/DVD ROM virtuale della macchina virtuale. Utilizzato per l'installazione di Ubuntu Desktop 20.04 LTS sulla macchina virtuale.

Imposta l'ordine di avvio della macchina virtuale. La prima voce di avvio è il CD/DVD ROM virtuale e poi il disco rigido virtuale. Quindi, la macchina virtuale sarà in grado di avviarsi da Ubuntu Desktop 20.04 LTS ISO immagine e installa Ubuntu Desktop 20.04 LTS sul disco rigido.

Queste sono tutte le opzioni necessarie per creare una macchina virtuale KVM.

Una volta eseguito il virt-install comando, KVM dovrebbe iniziare a creare la macchina virtuale. Potrebbe volerci un po' di tempo a seconda della configurazione della macchina virtuale.

A questo punto dovrebbe essere creata la macchina virtuale KVM.

Elenco delle macchine virtuali KVM:

Una volta creata la macchina virtuale KVM, puoi elencarla con il seguente comando:

$ lista virsh --all

Il comando dovrebbe mostrarti tutte le macchine virtuali KVM che hai. In questo momento, ho solo 1 macchina virtuale udesktop20_04-01. Questo è quello che ho appena creato. Come puoi vedere, la macchina virtuale udesktop20_04-01 è in esecuzione. Dovresti essere in grado di connetterti ad esso utilizzando qualsiasi client VNC.

Configurazione del firewall per l'accesso remoto alle macchine virtuali KVM:

Per accedere alla macchina virtuale KVM in remoto, è necessario consentire l'accesso del firewall alla porta VNC della macchina virtuale.

Per trovare la porta VNC della macchina virtuale KVM udesktop20_04-01, eseguire il seguente comando:

$ virsh vncdisplay udesktop20_04-01

Come puoi vedere, il numero di porta VNC del udesktop20_04-01 la macchina virtuale è 0.

qui, porto 0 significa porto 5900. Allo stesso modo, porto 1 significa porto 5901 e così via.

Come puoi vedere, la macchina virtuale KVM udesktop20_04-01 è in esecuzione sulla porta 5900 (:0).

$ sudo netstat -tln

Per consentire l'accesso alla porta 5900, eseguire il seguente comando:

$ sudo firewall-cmd --add-port=5900/tcp --permanent

Per rendere effettive le modifiche al firewall, eseguire il comando seguente:

$ sudo firewall-cmd --reload

Connessione remota alle macchine virtuali KVM con client VNC:

Per connetterti alla macchina virtuale tramite VNC, devi conoscere l'indirizzo IP del tuo host KVM CentOS 8.

Puoi trovare l'indirizzo IP del tuo host KVM CentOS 8 con il seguente comando:

$ ip a

Nel mio caso, l'indirizzo IP è 192.168.0.103. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo d'ora in poi.

Apri qualsiasi client VNC e connettiti all'indirizzo 192.168.0.103:0.

Clicca su Continua.

Clicca su Continua.

Dovresti essere connesso al display del udesktop20_04-01 Macchina virtuale KVM come puoi vedere nello screenshot qui sotto.

Ora puoi installare il sistema operativo desiderato sulla macchina virtuale.

Nel mio caso, installerò Ubuntu Desktop 20.04 Sistema operativo LTS sulla macchina virtuale.

Ubuntu Desktop 20.04 LTS è in fase di installazione sulla macchina virtuale KVM. Potrebbe volerci un po' di tempo per completare.

Una volta completata l'installazione, fare clic su Riavvia ora.

stampa .

La connessione VNC dovrebbe essere chiusa.

La macchina virtuale dovrebbe essere spenta automaticamente una volta completata l'installazione del sistema operativo, come puoi vedere nello screenshot qui sotto.

$ sudo virsh list --all

Inizia il udesktop20_04-01 Macchina virtuale KVM con il seguente comando:

$ virsh start udesktop20_04-01

La macchina virtuale udesktop20_04-01 dovrebbe essere avviato.

Ora puoi connetterti a udesktop20_04-01 macchina virtuale da un client VNC come prima. Come puoi vedere, Ubuntu Desktop 20.04 LTS funziona bene nella macchina virtuale KVM.

Rimozione di macchine virtuali KVM:

Puoi anche rimuovere una macchina virtuale KVM molto facilmente con il virsh strumento da riga di comando.

Come puoi vedere, ho 2 macchine virtuali KVM (udesktop20_04-01 e udesktop20_04-02) in esecuzione sul mio host KVM CentOS 8. Rimuoviamo udesktop20_04-02 Macchina virtuale KVM.

$ lista virsh --all

Come puoi vedere, il udesktop20_04-02 La macchina virtuale KVM è in esecuzione. Devi fermarlo prima di rimuoverlo.

$ lista virsh --all

Per forzare l'arresto del udesktop20_04-02 macchina virtuale KVM, eseguire il seguente comando:

$ virsh distruggere udesktop20_04-02

Come puoi vedere, il udesktop20_04-02 la macchina virtuale è spenta.

$ lista virsh --all

Puoi rimuovere definitivamente il udesktop20_04-02 macchina virtuale e tutti i suoi dischi rigidi virtuali collegati con il seguente comando:

$ virsh undefine --remove-all-storage udesktop20_04-02

Come puoi vedere, il udesktop20_04-02 la macchina virtuale non è più disponibile.

$ lista virsh --all

Problema n. 1: correzione dell'errore di asserzione cpu->kvm_msr_buf->nmsrs

Durante la creazione di una macchina virtuale KVM sull'host KVM CentOS 8, potresti visualizzare il seguente messaggio di errore. È un bug del kernel. Di solito, questo accade quando si esegue KVM all'interno di un'altra macchina virtuale. Sto eseguendo KVM all'interno di una macchina virtuale VMware. Questo è il motivo per cui ho ricevuto questo errore, credo. È facile da risolvere.

Apri il file di configurazione /etc/modprobe.d/kvm.conf con il seguente comando:

$ sudo nano /etc/modprobe.d/kvm.conf

Il /etc/modprobe.d/kvm.conf il file dovrebbe essere aperto. Devi abilitare l'opzione specifica del processore per la virtualizzazione nidificata KVM da qui.

Se stai utilizzando un processore Intel, decommenta la riga come indicato nello screenshot qui sotto.

Se stai utilizzando un processore AMD, decommenta la riga come indicato nello screenshot qui sotto.

Quindi, aggiungi la riga opzioni kvm ignore_msrs=1 alla fine del file come mostrato nello screenshot qui sotto.

Quando hai finito, premi + X seguito da e per salvare il /etc/modprobe.d/kvm.conf file.

Quindi, riavvia il tuo host KVM CentOS 8 con il seguente comando per rendere effettive le modifiche.

$ sudo reboot

Il tuo problema dovrebbe essere risolto.

Problema n. 2: correzione dell'errore di protocollo RFB del client VNC:

Quando ti connetti alla macchina virtuale KVM utilizzando un client VNC, potresti visualizzare il seguente messaggio di errore. Questo messaggio di errore viene visualizzato quando la qualità dell'immagine del client VNC è impostata su Automatico. È facile da risolvere.

Clicca sul Proprietà icona del tuo client VNC.

Come puoi vedere, il Qualità dell'immagine è impostato per Automatico.

Per risolvere questo problema, selezionare uno dei due Basso, medio, o alto dal Qualità dell'immagine menu a discesa.

Quando hai finito, clicca su ok.

Il tuo problema dovrebbe essere risolto.

Conclusione:

In questo articolo, ti ho mostrato come installare KVM su CentOS 8 e creare macchine virtuali KVM dalla riga di comando. Ti ho anche mostrato come rimuovere le macchine virtuali KVM e le soluzioni ad alcuni comuni problemi KVM. Questo dovrebbe aiutarti a iniziare con la virtualizzazione KVM di Linux.

I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...
Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...