KVM: la virtualizzazione nel kernel di Linux

Da tempo la virtualizzazione è diventata indispensabile nel contesto aziendale e nei server di uso professionale. Su un unico computer fisico possono essere gestiti diversi sistemi ospiti virtuali. Vi elenchiamo alcuni tra i vantaggi principali:

  • i sistemi possono essere separati in base alla funzione senza hardware aggiuntivi, ad esempio in server di posta, di file e di applicazioni.
  • Un sistema ospite può essere per così dire messo in pausa (“congelato”) e ripristinato semplicemente premendo un pulsante.
  • La migrazione verso un nuovo hardware avviene in brevissimo tempo.
  • I sistemi ospiti sono infine scalabili a proprio piacimento e consentono di reagire dinamicamente ai picchi di utilizzo.
  • Si crea una base hardware uniforme per tutti i sistemi ospiti. I conflitti tra driver sono previamente esclusi.

Mentre il sistema operativo Linux è piuttosto singolare nell’area del desktop e per gli utenti privati, lato server è considerato già da tempo come sistema consolidato. Ecco perché svolge un ruolo importante come base per la virtualizzazione.

Il Black Friday di IONOS

Risparmia fino al 98% su un'ampia selezione di prodotti.

Offerta valida fino al 29 novembre.

Web hosting
WordPress
Domini

Che cos’è KVM?

La Kernel-based Virtual Machine (KVM), introdotta dalla società Qumranet nel 2006, è stata ufficialmente acquisita nel kernel Linux 2.6.20 all’inizio del 2007. L’anno successivo Qumranet è stata acquistata dal distributore Linux RedHat. Per sviluppare ulteriormente la tecnologia, RedHat ha fondato la Open Virtualization Alliance (OVA) con IBM. A questa alleanza hanno partecipato aziende come Suse, Intel e HP.

KVM è strettamente collegato al software di emulazione QEMU; esso mette a disposizione delle funzioni per la virtualizzazione dell’hardware, mentre Linux KVM gestisce l’assegnazione delle risorse dal sistema ospite. Per questo motivo spesso si utilizza la denominazione KVM/QEMU. Poiché KVM è parte integrante di Linux, la soluzione di virtualizzazione non può essere utilizzata su computer Windows. Viceversa, Windows è supportato come sistema ospite accanto alla maggior parte dei sistemi operativi unixoid come Linux, Solaris e BSD. KVM è incluso di default nella maggior parte delle distribuzioni Linux, ma deve essere abilitato.

Funzionamento di KVM-Linux nel dettaglio

Per capire come funziona la Kernel-based Virtual Machine, è necessario prima di tutto aprire una parentesi sui principi di virtualizzazione. Virtualizzazione significa che uno o più sistemi operativi completi (sistemi ospiti) possono essere eseguiti su un computer host. L’hardware messo a disposizione dal sistema ospite è ricreato lato software o, gestito da un hypervisor, ripartito con le risorse hardware reali. L’hypervisor è un livello di gestione e traduzione tra hardware reale e virtuale. A seconda del tipo di virtualizzazione, è quindi necessario tradurre i requisiti dell’hardware reale o effettuare solo l’assegnazione delle azioni richieste, come ad esempio un calcolo nel processore.

Ci sono diversi tipi di virtualizzazione:

  • Virtualizzazione completa: l’hardware è completamente simulato lato software. Non è quindi necessaria alcuna interazione con l’hardware reale, il che rende superflui anche i driver relativi. Questa variante è relativamente lenta.
  • Paravirtualizzazione: il sistema ospite interagisce direttamente con l’hypervisor e richiede driver configurati appositamente.
  • Paravirtualizzazione supportata da hardware: il supporto hardware è già integrato nel processore. Questo aumenta l’efficienza e riduce lo sforzo di adeguamento necessario per i sistemi ospiti. I moderni processori Intel (Intel-VT-x) e AMD (AMD-V) sono dotati di questa funzionalità. Eventualmente potrebbe essere necessario attivarli nel BIOS/UEFI.

Inoltre, si possono distinguere due tipi di hypervisor:

  • Tipo 1 (Bare Metal): l’hypervisor funziona direttamente sull’hardware utilizzato senza essere incorporato in un sistema operativo.
  • Tipo 2 (Hosted): l’hypervisor è integrato nel sistema operativo ospite ed è attivato da questo.

Linux KVM è un hypervisor di tipo 2 e utilizza la paravirtualizzazione supportata da hardware. Ciò che lo rende speciale, tuttavia, è la sua integrazione diretta nel kernel.

N.B.

“Kernel” è la parola inglese utilizzata in informatica per indicare il “cuore” di un sistema operativo. In esso sono integrate le funzioni basilari del sistema operativo, ad esempio l’accesso all’hardware e l’assegnazione del tempo di calcolo ai processori in un sistema multitasking. L’accesso al kernel è particolarmente protetto (modalità kernel) e i requisiti a esso richiesti sono trattati in modo privilegiato dai processori.

A causa della stretta connessione con il kernel, si discute sul fatto che il sistema non presenti anche elementi di un hypervisor di tipo 1.

Quali sono i componenti della Kernel-based Virtual Machine?

Il pacchetto KVM complessivo è composto da diversi componenti:

  • Estensione del kernel: contiene l’estensione effettiva kernel.ko, che è il livello di traduzione da hardware reale a virtuale. Comprende anche i moduli kvm-amd e kvm-intel adattati ai processori.
  • libvirt: l’interfaccia di programmazione delle applicazioni (API) per l’indirizzamento delle macchine virtuali, che possono così essere controllate e gestite. Libvirt include anche strumenti, come una riga di comando chiamata virsh e l’interfaccia grafica Virtual Machine Manager.
  • QEMU: si tratta di un programma fondamentalmente indipendente per emulare i computer e gestire le macchine virtuali. Linux KVM utilizza le sue funzionalità per emulare l’hardware e migliorare la velocità attraverso la paravirtualizzazione. In molte distribuzioni entrambi i componenti sono offerti in un unico pacchetto di installazione.
  • Kvmtool: un’alternativa più snella a QEMU, non ancora in grado, però, di sostituirlo.
  • VirtIO-Driver: driver speciali per sistemi ospiti che sono adattati all’hypervisor e consentono la paravirtualizzazione.

Campi di applicazione di KVM

La Kernel-based Virtual Machine è usata frequentemente, specialmente quando si lavora con sistemi di server professionali.

Il KVM di Linux acquista ulteriore rilevanza grazie alla sua integrazione come hypervisor nella popolare soluzione cloud OpenStack.

Vantaggi e svantaggi di KVM

Infine, consideriamo brevemente alcuni vantaggi e svantaggi della soluzione di virtualizzazione:

Vantaggi:

  • sistema maturo e consolidato
  • già incluso nella maggior parte delle distribuzioni Linux
  • gratuito e open source
  • una “Kernel Virtual Machine” autentica, il che assicura prestazioni e stabilità
  • sviluppo da parte di aziende rinomate
  • amministrazione automatizzata possibile tramite libvirt

Svantaggi:

  • disponibile solo per sistemi Linux
  • necessità di un hardware potente per il computer host
  • impegno formativo per la gestione
  • la centralizzazione dell’hardware aumenta il rischio di guasto del sistema (un “Single Point of Failure” può essere ridotto con una strategia di backup intelligente)

Alternative a Linux KVM

Nell’ambito dei software liberamente accessibili con funzionalità simili, esistono diverse alternative a Linux KVM. Una di queste è XEN, soluzione di virtualizzazione sempre strettamente legata a Linux ma non integrata nel kernel.

L’affermato provider commerciale VMWare offre alternative alla paravirtualizzazione con i suoi server ESXi e una virtualizzazione completa con la sua workstation. Il lettore VMWare è disponibile gratuitamente per uso privato.

Un’altra alternativa gratuita alla virtualizzazione completa è Virtualbox, disponibile come base per tutti i comuni sistemi operativi.

Con il sistema Hyper-V, Microsoft fornisce una soluzione di paravirtualizzazione per Windows la cui funzionalità è paragonabile a quella di KVM perché dotato sia di un server Windows Hyper-V dedicato sia di funzionalità integrate nei sistemi operativi dei server. In più, Hyper-V è incluso anche nelle versioni Windows 10 Professional e Enterprise.

Cloud Backup di IONOS

Evita costosi downtime! Facile soluzione di backup per il tuo business.

Semplice
Sicuro
Integrato

In sintesi

Flessibilità e scalabilità sono due argomenti quasi imbattibili quando si parla di virtualizzazione. I sistemi operativi ospiti continuano a essere mantenuti snelli e utilizzati per applicazioni specifiche. Se i sistemi sono regolarmente sottoposti a backup su supporti di memorizzazione separati dal punto di vista spaziale, il rischio di guasto è minimo.

Chiunque utilizzi Linux per il proprio server non può fare a meno di prendere in considerazione KVM. L’integrazione nel kernel e lo sviluppo da parte di produttori affermati sono due buoni motivi per sceglierlo.


Sconti Black Friday
Approfitta dei nostri sconti su domini, web hosting, WordPress e tanto altro. Offerta valida solo fino al 29 novembre!
Fino al -98%