Ultimamente ho sentito che molti sono indecisi se scegliere Xen oppure KVM (kernel-based virtual machine) come software di virtualizzazione. Dunque ho pensato di fare una riflessione e un test su questo dilemma. Innanzitutto è opportuno fare una lista delle caratteristiche dei due prodotti e cercare i pregi e i difetti delle varie soluzioni.
Xen offre la paravirtualizzazione che consente di eseguire un sistema operativo con un kernel modificato con eccellenti prestazioni mentre KVM ha il suo punto di forza nell’utilizzare le istruzioni native per la virtualizzazione (VT-X, AMD-V) contenute all’interno dei processori di ultima generazione.
Per adoperare KVM è necessario un computer con un processore compatibile mentre per adoperare Xen e la paravirtualizzazione bisogna usare un sistema operativo modificato.
Qualora il sistema operativo che si vuole installare sulla macchina virtuale non contenesse le librerie e parti del kernel compatibili con Xen, la virtualizzazione è possibile usando la funzionalità HVM. HVM utilizza parte del codice di QEMU e KVM (il riutilizzo del codice è una caratteristica del modello di sviluppo open source). Purtroppo a parte le distribuzioni GNU/Linux e il loro kernel, molti altri sistemi operativi non sono preparati per Xen (FreeBSD, OpenSolaris, Windows vari…)
D’altro canto KVM virtualizza completamente molti sistemi operativi tra cui le distribuzioni GNU/Linux, *BSD, Windows, Solaris.
Il test è stato condotto attivando tre macchine virtuali contemporaneamente: una virtual machine basata su Ubuntu 8.04 esegue tutti i test di mysql benchmark (512 MB di RAM), le altre due linux portano a termine gli nbeanch (256 MB di RAM ciascuna). Il tutto su un DELL Inspiron 6400, processore Intel Core Duo T2400 a 1,83 GHz, cache di secondo livello 2048 KB, 2 GB RAM su OpenSuse 10.3 kernel 2.6.22.17-0.1.i586 default SMP, KVM versione 63, Xen 3.2 su kernel Linux 2.6.22.17-0.1-xen.
KVM affida la gestione della CPU e delle altre risorse al kernel linux del sistema operativo ospitante.
Il test ha evidenziato come l’esecuzione di tre macchine virtuali, a pieno carico di lavor su soli due core, penalizzi fortemente le prestazioni degli ambienti virtuali.
I cicli dei processori vengono suddivisi in modo non equo tra le virtual machine. Una virtual machine ottiene un’intera cpu mentre le altre due si suddividono circa il 50% dell’altro processore. Naturalmente la gestione è dovuta allo scheduler di Linux.
Come il carico di lavoro di una virtual machine cala, un’altra VM si appropria dei cicli “liberi”.
Xen, a differenza del kernel Linux per KVM, distribuisce le risorse del calcolatore in modo più omogeneo arrivando, in caso di elevato carico su tutte i tre domU, circa attorno al 60%. Il restante è attribuito al dom0.
La virtual machine di KVM che esegue i benchmark di MySQL ottiene performance del 5% in rispetto a HVM mentre per le altre due (quelle che eseguono nbench) la situazione è contraria.
La somma dello scarto fra le due macchine virtuali è altamente favorevole a HVM; il quale guadagna circa il 13%.
Dai test si evince che Xen con HVM amministra più equamente tutti i domini non privilegiati (domU) le sue prestazioni sono del 6% migliori rispetto a KVM.
Sono assolutamente disponibile per chiarimenti!
Lascia un commento