Abbiamo già parlato della configurazione di Oracle VirtualBox su Ubuntu 18.04 server senza testa. In questo tutorial, discuteremo come configurare il server di virtualizzazione headless utilizzando KVM e come gestire le macchine guest da un client remoto. Come forse già saprai, KVM (K v basato su ernel irtuale m achine) è una virtualizzazione completa open source per Linux. Utilizzando KVM, possiamo facilmente trasformare qualsiasi server Linux in un ambiente di virtualizzazione completo in pochi minuti e distribuire diversi tipi di VM come GNU/Linux, *BSD, Windows ecc.
Scarica - Ebook gratuito:"6 cose che Ubuntu fa meglio di Windows"Configura il server di virtualizzazione senza testa utilizzando KVM in Ubuntu
Ho testato questa guida sul server Ubuntu 18.04 LTS, tuttavia questo tutorial funzionerà su altre distribuzioni Linux come Debian, CentOS, RHEL e Scientific Linux. Questo metodo sarà perfettamente adatto a chi vuole configurare un semplice ambiente di virtualizzazione in un server Linux che non ha alcun ambiente grafico.
Ai fini di questa guida, utilizzerò due sistemi.
Server di virtualizzazione KVM:
- OS host - Server minimo Ubuntu 18.04 LTS (nessuna GUI)
- Indirizzo IP del sistema operativo host :192.168.225.22/24
- OS ospite (Che ospiteremo su Ubuntu 18.04):server LTS Ubuntu 16.04
Client desktop remoto:
- OS - Arch Linux
Installa KVM
Per prima cosa, controlliamo se il nostro sistema supporta la virtualizzazione hardware. Per farlo, esegui il seguente comando dal Terminale:
$ egrep -c '(vmx|svm)' /proc/cpuinfo
Se il risultato è zero (0) , il sistema non supporta la virtualizzazione hardware o la virtualizzazione è disabilitata nel BIOS. Vai al tuo bios e controlla l'opzione di virtualizzazione e abilitala.
se il risultato è 1 o altro , il sistema supporterà la virtualizzazione hardware. Tuttavia, devi comunque abilitare l'opzione di virtualizzazione nel BIOS prima di eseguire i comandi precedenti.
In alternativa, puoi utilizzare il seguente comando per verificarlo. Devi prima installare kvm come descritto di seguito, per poter usare questo comando.
$ kvm-ok
Output di esempio:
INFO: /dev/kvm exists KVM acceleration can be used
Se invece hai il seguente errore, puoi comunque eseguire macchine guest in KVM, ma le prestazioni saranno molto scarse.
INFO: Your CPU does not support KVM extensions INFO: For more detailed results, you should run this as root HINT: sudo /usr/sbin/kvm-ok
Inoltre, ci sono altri modi per scoprire se la tua CPU supporta la virtualizzazione o meno. Fare riferimento alla seguente guida per maggiori dettagli.
- Come scoprire se una CPU supporta la tecnologia di virtualizzazione (VT)
Successivamente, installa KVM e altri pacchetti richiesti per configurare un ambiente di virtualizzazione in Linux.
Su Ubuntu e altri sistemi basati su DEB, esegui:
$ sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
Una volta installato KVM, avvia il servizio libvertd (se non è già stato avviato):
$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd
Crea macchine virtuali
Tutti i file della macchina virtuale e altri file correlati verranno archiviati in /var/lib/libvirt/ . Il percorso predefinito delle immagini ISO è /var/lib/libvirt/boot/ .
Per prima cosa, vediamo se ci sono macchine virtuali. Per visualizzare l'elenco delle macchine virtuali disponibili, eseguire:
$ sudo virsh list --all
Output di esempio:
Id Name State ----------------------------------------------------
Come vedi sopra, al momento non sono disponibili macchine virtuali.
Ora, impostiamone uno.
Ad esempio, creiamo una macchina virtuale Ubuntu 16.04 con 512 MB di RAM, 1 core CPU, 8 GB di HDD.
$ sudo virt-install --name Ubuntu-16.04 --ram=512 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/ubuntu-16.04-vm1,size=8 --cdrom /var/lib/libvirt/boot/ubuntu-16.04-server-amd64.iso --graphics vnc
Assicurati di avere l'immagine ISO di Ubuntu 16.04 nel percorso /var/lib/libvirt/boot/ o qualsiasi altro percorso fornito nel comando precedente.
Output di esempio:
WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer. WARNING No console to launch for the guest, defaulting to --wait -1 Starting install... Creating domain... | 0 B 00:00:01 Domain installation still in progress. Waiting for installation to complete. Domain has shutdown. Continuing. Domain creation completed. Restarting guest.
Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.
- --nome :Questa opzione definisce il nome del nome virtuale. Nel nostro caso, il nome della VM è Ubuntu-16.04 .
- --ram=512 :alloca 512 MB di RAM alla VM.
- --vcpus=1 :indica il numero di core della CPU nella VM.
- --host della CPU :ottimizza le proprietà della CPU per la VM esponendo la configurazione della CPU dell'host al guest.
- --hvm :Richiedi la virtualizzazione hardware completa.
- --percorso del disco :la posizione in cui salvare l'HDD della VM e le sue dimensioni. Nel nostro esempio, ho assegnato una dimensione dell'HDD da 8 GB.
- --cdrom :La posizione dell'immagine ISO del programma di installazione. Tieni presente che devi avere l'immagine ISO effettiva in questa posizione.
- --graphics vnc :consente l'accesso VNC alla VM da un client remoto.
Accedi alle macchine virtuali utilizzando il client VNC
Ora vai al sistema desktop remoto. SSH al server Ubuntu (server di virtualizzazione) come mostrato di seguito.
$ ssh [email protected]
Qui, sk è il nome utente del mio server Ubuntu e 192.168.225.22 è il suo indirizzo IP.
Esegui il seguente comando per scoprire il numero di porta VNC. Ne abbiamo bisogno per accedere alla Vm da un sistema remoto.
$ sudo virsh dumpxml Ubuntu-16.04 | grep vnc
Output di esempio:
<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>
Annota il numero di porta 5900 . Installa qualsiasi applicazione client VNC. Per questa guida userò TigerVnc. TigerVNC è disponibile nei repository predefiniti di Arch Linux. Per installarlo su sistemi basati su Arch, esegui:
$ sudo pacman -S tigervnc
Digita il seguente comando di port forwarding SSH dal tuo sistema client remoto su cui è installata l'applicazione client VNC.
$ ssh [email protected] -L 5900:127.0.0.1:5900
Di nuovo, 192.168.225.22 è l'indirizzo IP del mio server Ubuntu (server di virtualizzazione).
Quindi, apri il client VNC dal tuo Arch Linux (client).
Digita localhost:5900 nel campo del server VNC e fai clic su Connetti pulsante.
Quindi inizia a installare la VM Ubuntu come fai nel sistema fisico.
Allo stesso modo, puoi configurare tante macchine virtuali a seconda delle specifiche hardware del server.
In alternativa, puoi utilizzare virt-viewer utility per installare il sistema operativo nelle macchine guest. virt-viewer è disponibile nella maggior parte dei repository predefiniti della distribuzione Linux. Dopo aver installato virt-viewer, eseguire il comando seguente per stabilire l'accesso VNC alla macchina virtuale.
$ sudo virt-viewer --connect=qemu+ssh://192.168.225.22/system --name Ubuntu-16.04
Gestisci macchine virtuali
La gestione delle VM dalla riga di comando utilizzando l'interfaccia utente di gestione di virsh è molto interessante e divertente. I comandi sono molto facili da ricordare. Vediamo alcuni esempi.
Per visualizzare l'elenco delle VM in esecuzione, esegui:
$ sudo virsh list
Oppure,
$ sudo virsh list --all
Output di esempio:
Id Name State ---------------------------------------------------- 2 Ubuntu-16.04 running
Per avviare una VM, esegui:
$ sudo virsh start Ubuntu-16.04
In alternativa, puoi utilizzare l'ID VM per avviarlo.
Come vedi nell'output sopra, l'ID della macchina virtuale Ubuntu 16.04 è 2. Quindi, per avviarlo, specifica il suo ID come di seguito.
$ sudo virsh start 2
Per riavviare una VM, esegui:
$ sudo virsh reboot Ubuntu-16.04
Output di esempio:
Domain Ubuntu-16.04 is being rebooted
Per mettere in pausa una VM in esecuzione, esegui:
$ sudo virsh suspend Ubuntu-16.04
Output di esempio:
Domain Ubuntu-16.04 suspended
Per riprendere la VM sospesa, esegui:
$ sudo virsh resume Ubuntu-16.04
Output di esempio:
Domain Ubuntu-16.04 resumed
Per spegnere una VM, esegui:
$ sudo virsh shutdown Ubuntu-16.04
Output di esempio:
Domain Ubuntu-16.04 is being shutdown
Per rimuovere completamente una VM, esegui:
$ sudo virsh undefine Ubuntu-16.04
$ sudo virsh destroy Ubuntu-16.04
Output di esempio:
Domain Ubuntu-16.04 destroyed
Per ulteriori opzioni, ti consiglio di dare un'occhiata alle pagine man.
$ man virsh
Per ora è tutto gente. Inizia a giocare con il tuo nuovo ambiente di virtualizzazione. La virtualizzazione KVM sarà scelta per scopi di ricerca, sviluppo e test, ma non solo. Se disponi di hardware sufficiente, puoi utilizzarlo per ambienti di produzione di grandi dimensioni.
Lettura correlata:
- Installa e configura KVM in Ubuntu 20.04 Headless Server
Risorsa:
- Sito web KVM