Kernel-based Virtual Machine (KVM in breve) è una soluzione di virtualizzazione open-source e de facto standard che è strettamente integrata in Linux. È un modulo caricabile del kernel che trasforma Linux in un hypervisor di tipo 1 (bare-metal) che crea una piattaforma operativa virtuale usata per eseguire macchine virtuali (VM).
In KVM, ogni VM è un processo Linux che è programmato e gestito dal kernel e ha un hardware virtualizzato privato (cioè CPU, scheda di rete, disco, ecc.). Supporta anche la virtualizzazione annidata, che permette di eseguire una VM all’interno di un’altra VM.
Alcune delle sue caratteristiche chiave includono il supporto per una vasta gamma di piattaforme hardware supportate da Linux (hardware x86 con estensioni di virtualizzazione (Intel VT o AMD-V)), fornisce una maggiore sicurezza e isolamento delle VM utilizzando sia SELinux che la virtualizzazione sicura (sVirt), eredita le caratteristiche di gestione della memoria del kernel, e supporta la migrazione offline e in tempo reale (migrazione di una VM in esecuzione tra host fisici).
In questo articolo, imparerete come installare la virtualizzazione KVM, creare e gestire macchine virtuali in CentOS 8 e RHEL 8 Linux.
Prequisiti
- Una nuova installazione di CentOS 8 server
- Una nuova installazione di RHEL 8 server
- Un abbonamento RedHat abilitato su RHEL 8 server
Inoltre, assicurati che la tua piattaforma hardware supporti la virtualizzazione eseguendo il seguente comando.
# grep -e 'vmx' /proc/cpuinfo#Intel systems# grep -e 'svm' /proc/cpuinfo#AMD systems
Inoltre, confermate che i moduli KVM sono caricati nel kernel (dovrebbero esserlo, per default).
# lsmod | grep kvm
Ecco un esempio di output sul sistema di prova che è basato su Intel:
In una precedente serie di guide su KVM, abbiamo mostrato come creare macchine virtuali in Linux usando KVM (Kernel-based Virtual Machine) dove abbiamo dimostrato come creare e gestire VM usando lo strumento GUI virt-manager (che è ora deprecato secondo la documentazione di RHEL 8). Per questa guida, adotteremo un approccio diverso, useremo la console web Cockpit.
Passo 1: Impostare la console web Cockpit su CentOS 8
1. Cockpit è un’interfaccia web facile da usare, integrata ed estendibile per amministrare un server Linux in un browser web. Ti permette di eseguire compiti di sistema come la configurazione delle reti, l’amministrazione dello storage, la creazione di VM e l’ispezione dei log con un mouse. Utilizza i normali login e privilegi utente del tuo sistema, ma sono supportati anche altri metodi di autenticazione.
È preinstallato e abilitato su sistemi CentOS 8 e RHEL 8 appena installati, se non lo hai installato, installalo usando il seguente comando dnf. L’estensione cockpit-machines dovrebbe essere installata per gestire le VM basate su Libvirt.
# dnf install cockpit cockpit-machines
2. Quando l’installazione del pacchetto è completa, avviate il socket cockpit, abilitatelo all’avvio automatico del sistema e controllate il suo stato per confermare che sia attivo e funzionante.
# systemctl start cockpit.socket# systemctl enable cockpit.socket# systemctl status cockpit.socket
3. Successivamente, aggiungi il servizio cockpit nel firewall di sistema che è abilitato per default, usando il comando firewall-cmd e ricarica la configurazione del firewall per applicare le nuove modifiche.
# firewall-cmd --add-service=cockpit --permanent# firewall-cmd --reload
4. Per accedere alla console web del cockpit, apri un browser web e usa il seguente URL per navigare.
https://FQDN:9090/ORhttps://SERVER_IP:9090/
Il cockpit usa un certificato autofirmato per abilitare HTTPS, procedi semplicemente con la connessione quando ricevi un avviso dal browser. Alla pagina di login, usa le credenziali del tuo account utente del server.
Step 2: Installazione della virtualizzazione KVM CentOS 8
5. Successivamente, installare il modulo di virtualizzazione e altri pacchetti di virtualizzazione come segue. Il pacchetto virt-install fornisce uno strumento per installare macchine virtuali dall’interfaccia a riga di comando, e virt-viewer è usato per visualizzare le macchine virtuali.
# dnf module install virt # dnf install virt-install virt-viewer
6. Successivamente, eseguite il comando virt-host-validate per convalidare se la macchina host è impostata per eseguire i driver dell’hypervisor libvirt.
# virt-host-validate
7. Successivamente, avviate il demone libvirtd (libvirtd) e abilitate il suo avvio automatico ad ogni avvio. Poi controlla il suo stato per confermare che sia attivo e funzionante.
# systemctl start libvirtd.service# systemctl enable libvirtd.service# systemctl status libvirtd.service
Passo 3: impostare il ponte di rete (switch di rete virtuale) tramite Cockpit
8. Ora crea un ponte di rete (switch di rete virtuale) per integrare le macchine virtuali alla stessa rete dell’host. Per default, una volta avviato il demone libvirtd, attiva l’interfaccia di rete predefinita virbr0 che rappresenta lo switch di rete virtuale che opera in modalità NAT.
Per questa guida, creeremo un’interfaccia di rete in modalità bridged chiamata br0. Questo permetterà alle macchine virtuali di essere accessibili sulle reti host.
Dall’interfaccia principale del cockpit, cliccate su Networking, poi cliccate su Add Bridge come indicato nella seguente schermata.
9. Dalla finestra pop-up, inserisci il nome del bridge e seleziona gli slave del bridge o i dispositivi delle porte (per esempio enp2s0 che rappresenta l’interfaccia Ethernet) come indicato nella seguente schermata. Poi clicca su Apply.
10. Ora quando guardi la lista delle interfacce, il nuovo bridge dovrebbe apparire lì e dopo pochi secondi, l’interfaccia Ethernet dovrebbe essere disabilitata (tolta).
Passo 4: Creazione e gestione delle macchine virtuali via Cockpit Web Console
11. Dall’interfaccia principale di Cockpit, clicca sull’opzione Macchine virtuali come evidenziato nella seguente schermata. Dalla pagina Macchine virtuali, clicca su Crea VM.
12. Verrà visualizzata una finestra con le opzioni per creare una nuova VM. Inserisci la connessione, il nome (ad esempio ubuntu18.04), il tipo di sorgente di installazione (sul sistema di prova, abbiamo memorizzato le immagini ISO sotto il pool di archiviazione cioè /var/lib/libvirt/images/), la sorgente di installazione, lo stoccaggio, la dimensione, la memoria come mostrato nella seguente immagine. Il fornitore e il sistema operativo dovrebbero essere scelti automaticamente dopo aver inserito Installation Source.
Controlla anche l’opzione per avviare immediatamente la VM, poi clicca su Create.
13. Dopo aver cliccato su Create dal passo precedente, la VM dovrebbe essere avviata automaticamente e dovrebbe avviarsi utilizzando l’immagine ISO fornita. Procedere all’installazione del sistema operativo guest (Ubuntu 18.04 nel nostro caso).
Se si clicca su Network Interfaces della VM, la sorgente di rete dovrebbe indicare l’interfaccia di rete bridge appena creata.
E durante l’installazione, al passo di configurazione di un’interfaccia di rete, dovresti poter notare che l’interfaccia Ethernet della VM riceve un indirizzo IP dal server DHCP della rete host.
Nota che è necessario installare il pacchetto OpenSSH per accedere al guest OS via SSH da qualsiasi macchina sulla rete host, come descritto nell’ultima sezione.
14. Quando l’installazione del sistema operativo guest è completa, riavvia la VM, poi vai su Disks e stacca/rimuovi il dispositivo cdrom sotto i dischi della VM. Poi clicca su Run per avviare la VM.
15. Ora sotto Console, puoi accedere al sistema operativo guest usando un account utente che hai creato durante l’installazione del sistema operativo.
Passo 5: Accesso al sistema operativo guest di una macchina virtuale via SSH
16. Per accedere al sistema operativo guest appena installato dalla rete host via SSH, esegui il seguente comando (sostituisci 10.42.0.197 con l’indirizzo IP del tuo guest).
$ ssh [email protected]
17. Per spegnere, riavviare o cancellare una VM, cliccate su di essa dalla lista delle VM, poi usate i pulsanti evidenziati nella seguente schermata.
Per ora è tutto! In questa guida, abbiamo mostrato come installare i pacchetti di virtualizzazione KVM, e creare e gestire le VM tramite la console web del cockpit. Per maggiori dettagli, vedi: Come iniziare con la virtualizzazione in RHEL 8.
.