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.

Registra il tuo dominio
  • Certificato SSL Wildcard incluso
  • Registrazione di dominio sicura
  • Indirizzo e-mail professionale da 2 GB

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 powered by Acronis
Riduci i tempi di inattività e proteggi i carichi di lavoro
  • Backup automatici e recupero dei dati
  • Pianificazione e gestione intuitive delle attività
  • Protezione dalle minacce basata sull'intelligenza artificiale

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.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top