Xen e KVM: i due hypervisor open source a confronto

Nell’era del cloud computing, gli hypervisor come KVM e Xen sono più importanti che mai. In cosa differiscono queste due tecnologie di virtualizzazione? Mettiamo a confronto Xen e KVM evidenziandone similitudini e differenze.

Xen: una presentazione dell’hypervisor

Un hypervisor è un software di virtualizzazione open source che permette di eseguire contemporaneamente diversi sistemi operativi guest su un singolo computer host. Le risorse hardware del computer host sono allocate dall’hypervisor Xen.

Che tipo di hypervisor è Xen?

Xen è un cosiddetto hypervisor di tipo 1 (o bare-metal hypervisor). In quanto tale, viene installato direttamente sull’hardware, con cui comunica attraverso i propri driver. I sistemi operativi host e guest vengono quindi installati al di sopra di esso. Xen assegna i sistemi operativi ai cosiddetti domini dom0 e domU per differenziare i diversi livelli di privilegio. Il sistema operativo host appartiene al dominio dom0 e quindi gode del livello di privilegio più alto. Tutti i sistemi operativi guest appartengono a domU come sistemi “non privilegiati” (unprivileged in inglese).

In ogni caso, tutte le comunicazioni tra il sistema operativo host e l’hardware non avvengono direttamente tramite i driver del sistema operativo, ma tramite l’hypervisor, che utilizza una speciale API per Xen. La profonda integrazione dell’hypervisor Xen garantisce un utilizzo più efficiente dell’hardware, un minore overhead e meno punti di attacco.

Xen: maggiore efficienza grazie alla paravirtualizzazione

La paravirtualizzazione è una tecnica di virtualizzazione utilizzata da Xen per aumentare l’efficienza. Utilizzando la paravirtualizzazione, i componenti hardware non vengono emulati dall’hypervisor e il sistema guest è consapevole di essere eseguito in un ambiente virtualizzato. Questo comporta una comunicazione molto più veloce tra i sistemi operativi guesti e l’hypervisor Xen, garantendo così maggiori prestazioni. Tuttavia, questa tecnica pone requisiti speciali ai sistemi operativi installati su Xen, necessitando ad esempio di driver specializzati e di un supporto per la paravirtualizzazione all’interno del kernel del sistema operativo. Si tratta comunque di requisiti soddisfatti ormai da anni dai kernel dei sistemi operativi più comuni come Linux e BSD.

Nel caso in cui la paravirtualizzazione non sia possibile o non sia desiderata per un sistema operativo, Xen supporta anche la virtualizzazione completa, dove i componenti hardware sono emulati virtualmente. Questo rallenta la virtualizzazione, ma offre una maggiore compatibilità, permettendo di eseguire anche sistemi operativi che non supportano la paravirtualizzazione.

Consiglio

KVM è solo una delle tante alternative a Xen disponibili sul mercato. Ti presentiamo le più interessanti nel nostro articolo.

KVM: le caratteristiche che lo contraddistinguono

KVM (dall’inglese Kernel-based Virtual Machine) è anch’esso un hypervisor open source che consente di eseguire più sistemi operativi guest su un singolo server fisico. Sebbene KVM e Xen abbiano fondamentalmente lo stesso scopo, sono costruiti su principi funzionali differenti e quindi adatti a differenti casi d’uso.

Che tipo di hypervisor è KVM?

In passato, KVM veniva spesso definito come un hypervisor di tipo 2, poiché in precedenza poteva comunicare con l’hardware solo attraverso i driver del sistema operativo host. La paravirtualizzazione non era quindi possibile e tutti i componenti hardware dovevano essere emulati da KVM per i sistemi guest.

Nel frattempo, KVM è stato ampliato con l’opzione di paravirtualizzazione, ma funziona in modo diverso rispetto a Xen: a differenza di quest’ultimo, non viene installato sotto il sistema operativo host, ma è integrato direttamente nel kernel di Linux, utilizzando quindi i componenti software del sistema Linux per gestire i sistemi virtualizzati e i loro processi. In KVM, ogni sistema operativo host dispone del proprio hardware virtualizzato, comprese le interfacce di rete, lo spazio su disco, ecc. Per accelerare questa virtualizzazione completa, KVM utilizza la cosiddetta Hardware-Assisted Virtualization (in italiano virtualizzazione assistita da hardware), che è già integrata nella maggior parte dei processori moderni.

Tuttavia, con KVM non tutte le componenti vengono completamente virtualizzate. Per accelerare i sistemi e le applicazioni in esecuzione, vengono offerte alcune interfacce paravirtualizzate in grado di comunicare direttamente con l’hypervisor tramite l’API Virtio. Quindi, KVM offre principalmente una paravirtualizzazione per i dispositivi di input e output, come ad esempio per l’interfaccia di rete. Si può quindi parlare di paravirtualizzazione parziale.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

KVM e Xen a confronto: quale hypervisor offre le migliori prestazioni?

La differenza principale tra i due hypervisor risiede nel livello del software stack in cui operano. Essendo parte integrante del kernel Linux, KVM sfrutta la virtualizzazione assistita dall’hardware per virtualizzare completamente molti componenti hardware senza subire significative perdite di performance. Le principali interfacce di I/O vengono paravirtualizzate, il che dovrebbe costituire il fattore più importante per la maggior parte delle applicazioni server. D’altra parte, Xen, essendo un hypervisor di tipo 1, viene tradizionalmente installato sul sistema operativo host, gestendo in questo modo la distribuzione delle risorse hardware in modo diretto. Questo, almeno sulla carta, permette a Xen di offrire una comunicazione con l’hardware più efficiente e performante. Tuttavia, grazie ai driver Virtio di KVM e alla virtualizzazione assistita dall’hardware, Xen e KVM mostrano prestazioni simili.

Affinità della CPU

Naturalmente, i due hypervisor non presentano le stesse prestazioni in tutte le applicazioni. KVM offre più potenza rispetto a Xen, soprattutto quando si parla di affinità della CPU (in inglese CPU Pinning). In questo contesto, l’hypervisor è in grado di assegnare a un processore virtualizzato un processore fisico (o un core del processore), in modo che il processore possa essere utilizzato solo da questo sistema virtuale. Ciò risulta particolarmente vantaggioso per le applicazioni intensive dal punto di vista della CPU ed è possibile solo con KVM.

Prestazioni di rete

In termini di prestazioni di rete, Xen è in netto vantaggio. Anche se entrambi gli hypervisor offrono interfacce di rete paravirtualizzate, ogni sistema virtualizzato con KVM ha il proprio dispositivo di rete. Con Xen, tutti i sistemi guest condividono una singola interfaccia di rete virtuale, il che garantisce un’efficienza superiore.

Conclusione

La scelta tra Xen e KVM dipende dalle tue esigenze specifiche. Grazie alla sua posizione di leader di mercato, all’integrazione nel kernel Linux e alla possibilità di virtualizzazione completa, KVM risulta fondamentalmente più facile da utilizzare. Tuttavia, Xen offre, almeno sulla carta, prestazioni superiori grazie alla sua paravirtualizzazione completa. La decisione su quale hypervisor sia meglio per te deve quindi prendere in considerazione in primo luogo il tipo di applicazioni che desideri virtualizzare e il tuo livello di esperienza.

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