Come creare macchine virtuali in Linux utilizzando KVM (Kernel-based Virtual Machine) – Parte 1

Create Virtual Machines in Linux Using KVM – Part 1

Questo tutorial discute l’introduzione di KVM, la distribuzione e come utilizzarla per creare macchine virtuali sotto le distribuzioni basate su RedHat come RHEL/CentOS7 e Fedora 21.

Cos’è KVM?

KVM o (Kernel-based Virtual Machine) è una soluzione di virtualizzazione completa per Linux su hardware Intel 64 e AMD 64 inclusa nel kernel Linux principale dalla versione 2.6.20 ed è stabile e veloce per la maggior parte dei carichi di lavoro.

Caratteristiche di KVM

Ci sono molte utili caratteristiche e vantaggi che otterrai quando utilizzi KVM per distribuire la tua piattaforma virtuale. L’hypervisor KVM supporta le seguenti funzionalità:

  1. Over-committing : Cioè allocare più CPU virtualizzate o memoria rispetto alle risorse disponibili nel sistema.
  2. Thin provisioning : Che consente l’allocazione di storage flessibile e ottimizza lo spazio disponibile per ogni macchina virtuale ospite.
  3. Limitazione dell’I/O disco : Fornisce la possibilità di impostare un limite sulle richieste di I/O disco inviate dalle macchine virtuali alla macchina host.
  4. Bilanciamento automatico NUMA : Migliora le prestazioni delle applicazioni in esecuzione su sistemi hardware NUMA.
  5. Capacità di aggiunta di CPU virtuali a caldo : Fornisce la possibilità di aumentare la potenza di elaborazione secondo necessità su macchine virtuali in esecuzione, senza interruzioni.

Questa è la nostra prima serie in corso sul KVM (Kernel-based Virtual Machine), qui andremo a coprire i seguenti articoli in modo parziale.

Part 1: How to Create Virtual Machines in Linux Using KVM (Kernel-based Virtual Machine)

Prerequisiti

Assicurati che il tuo sistema abbia le estensioni di virtualizzazione hardware: per gli host basati su Intel, verifica che l’estensione di virtualizzazione CPU [vmx] sia disponibile utilizzando il seguente comando.

[root@server ~]# grep -e 'vmx' /proc/cpuinfo
Check Virtualization Support

Per gli host basati su AMD, verifica che l’estensione di virtualizzazione CPU [svm] sia disponibile.

[root@server ~]# grep -e 'svm' /proc/cpuinfo
Check CPU Virtualization Support

Se non c’è nessun output, assicurati che le estensioni di virtualizzazione siano abilitate nel BIOS. Verifica che i moduli KVM siano caricati nel kernel, “dovrebbero essere caricati per impostazione predefinita”.

[root@server ~]# lsmod | grep kvm

L’output dovrebbe contenere kvm_intel per gli host basati su Intel o kvm_amd per gli host basati su AMD.

Check KVM Kernel Module

Prima di iniziare, avrai bisogno dell’account root o di un utente non-root con privilegi sudo configurati sul tuo sistema e assicurati anche che il tuo sistema sia aggiornato.

[root@server ~]# yum update

Assicurati che Selinux sia in modalità Permissive.

[root@server ~]# setenforce 0

Passo 1: Installazione e distribuzione di KVM

1. Installeremo prima i pacchetti qemu-kvm e qemu-img. Questi pacchetti forniscono il KVM a livello utente e il gestore di immagini disco.

[root@server ~]# yum install qemu-kvm qemu-img

2. Ora, hai il requisito minimo per distribuire una piattaforma virtuale sul tuo host, ma abbiamo ancora strumenti utili per amministrare la nostra piattaforma come:

  1. virt-manager fornisce un tool GUI per amministrare le tue macchine virtuali.
  2. libvirt-client fornisce uno strumento CLI per amministrare il tuo ambiente virtuale chiamato virsh.
  3. virt-install fornisce il comando “virt-install” per creare le tue macchine virtuali da CLI.
  4. libvirt fornisce le librerie lato server e host per interagire con gli ipervisori e i sistemi host.

Installiamo questi strumenti utilizzando il seguente comando.

[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client 

3. Per gli utenti di RHEL/CentOS7, è necessario installare anche gruppi di pacchetti aggiuntivi come: Client di Virtualizzazione, Piattaforma di Virtualizzazione e Strumenti di Virtualizzazione.

[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools	

4. Il demone di virtualizzazione che gestisce l’intera piattaforma è “libvirtd“. Riavviamolo.

[root@server ~]#systemctl restart libvirtd

5. Dopo aver riavviato il demone, controlliamo il suo stato eseguendo il seguente comando.

[root@server ~]#systemctl status libvirtd  
Output di Esempio
libvirtd.service - Virtualization daemon 
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) 
   Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago 
 Main PID: 25701 (libvirtd) 
Check Libvirtd Status

Ora, passiamo alla sezione successiva per creare le nostre macchine virtuali.

Passo 2: Creare VM utilizzando KVM

Come abbiamo menzionato in precedenza, abbiamo alcuni strumenti utili per gestire la nostra piattaforma virtuale e creare macchine virtuali. Uno di questi strumenti si chiama [virt-manager] che useremo nella sezione successiva.

6. Anche se virt-manager è uno strumento basato su GUI, possiamo avviarlo anche da terminale oltre che dalla GUI.

[root@server ~]#virt-manager
Utilizzando GNOME
Start Virtual Manager in GNOME
Utilizzando GNOME Classic
Start Virtual Manager in GNOME Classic

7. Dopo aver avviato lo strumento, comparirà questa finestra.

Start Virtual Manager Window

8. Per impostazione predefinita, troverai che il gestore è connesso direttamente a localhost, fortunatamente puoi utilizzare lo stesso strumento per gestire un altro host in remoto. Dalla scheda “File”, seleziona semplicemente “Aggiungi Connessione” e comparirà questa finestra.

Add Connection

Seleziona l’opzione “Connetti all’host remoto” e fornisci Hostname/IP del server remoto. Se hai bisogno di stabilire la connessione all’host remoto ogni volta che il gestore si avvia, seleziona semplicemente l’opzione “Connessione automatica“.

9. Torniamo al nostro localhost, prima di creare una nuova macchina virtuale dovresti decidere dove verranno memorizzati i file?! in altre parole, dovresti creare il Disco del Volume (Disco virtuale / Immagine disco) per la tua macchina virtuale.

Cliccando con il tasto destro su localhost e selezionando “Dettagli” e poi selezionando la scheda “Archiviazione”.

VM Storage Details
VM Storage Volume

10. Successivamente, premi il pulsante “Nuovo Volume”, quindi inserisci il nome del tuo nuovo disco virtuale (Disco del Volume) e inserisci la dimensione desiderata/necessaria nella sezione “Capacità massima”.

Create VM Storage Disk

La dimensione di allocazione è la dimensione effettiva del tuo disco che verrà allocata immediatamente dal tuo disco fisico dopo aver completato i passaggi.

Nota: Questa è una tecnologia importante nel campo dell’amministrazione dello storage chiamata “allocazione sottile“. Viene utilizzata per allocare solo la dimensione dello storage effettivamente utilizzata, NON tutta la dimensione disponibile.

Per esempio, hai creato un disco virtuale di dimensione 60G, ma hai effettivamente utilizzato solo 20G, utilizzando questa tecnologia la dimensione allocata dal tuo disco rigido fisico sarà 20G non 60G.

In altre parole, la dimensione fisica allocata sarà allocata dinamicamente in base alla dimensione effettivamente utilizzata. Puoi trovare ulteriori informazioni dettagliate su VMWare vStorage Thin Provisioning.

11. Noterai che è comparso un’etichetta del nuovo disco del volume nell’elenco.

VM Storage Label

Dovresti anche notare il percorso dell’immagine del nuovo disco (Volume Disk), di default sarà sotto /var/lib/libvirt/images, puoi verificarlo usando il seguente comando.

[root@server Downloads]# ls -l /var/lib/libvirt/images
-rw-------. 1 root root 10737418240 Jan  3 16:47 vm1Storage.img

12. Ora, siamo pronti per creare la nostra macchina virtuale. Premi il pulsante “VM” nella finestra principale, comparirà questa finestra guidata.

Create New Virtual Machine

Seleziona il metodo di installazione che utilizzerai per creare la macchina virtuale. Per ora utilizzeremo il supporto di installazione locale, in seguito discuteremo dei metodi rimanenti.

13. Ora è il momento di specificare quale supporto di installazione locale utilizzare, abbiamo due opzioni:

  1. Dal [CDROM/DVD] fisico.
  2. Dall’immagine ISO.

Per il nostro tutorial, utilizziamo il metodo dell’immagine ISO, quindi dovresti fornire il percorso della tua immagine ISO.

Select Installation Media

Importante: Purtroppo c’è un bug davvero sciocco per chi utilizza RHEL/CentOS7. Questo bug impedisce l’installazione utilizzando il [CDROM/DVD] fisico, troverai che l’opzione è grigia come questa.

Disabled CD DVD Rom in KVM

E se posizioni il cursore su di essa, comparirà questo messaggio di errore.

CD DVD Not Supported in KVM

Fino ad ora non c’è una soluzione ufficiale/diretta per questo bug, puoi trovare ulteriori informazioni allo stesso indirizzo https://bugzilla.redhat.com.

14. Lo storage è tornato indietro, useremo il disco virtuale che abbiamo creato in precedenza per installare la macchina virtuale su di esso. Sarà come mostrato.

Enable Storage for Virtual Machine

15. Il passo finale che ti chiede il nome della tua macchina virtuale e altre opzioni avanzate, ne parleremo più avanti.

Enter Name of Virtual Machine

Se desideri modificare alcune configurazioni o apportare personalizzazioni, basta selezionare l’opzione “Personalizza configurazione prima dell’installazione“. Quindi clicca su fine e attendi alcuni secondi, comparirà la console di controllo per il tuo sistema operativo ospite per gestirlo

Virtual Machine Installation

Conclusione

Ora hai imparato cos’è KVM, come gestire la tua piattaforma virtuale utilizzando strumenti GUI, come distribuire una macchina virtuale utilizzandola e altre cose fantastiche.

Anche se questo non è la fine dell’articolo, nei nostri prossimi articoli discuteremo di altri argomenti importanti correlati a KVM. Metti in pratica le conoscenze acquisite e preparati per la prossima parte…

Source:
https://www.tecmint.com/install-and-configure-kvm-in-linux/