Quando parliamo di virtualizzazione, sentiamo citare differenti tecnologie meglio note come hypervisor, la cui funzione principale è quella di astrarre l’hardware disponibile presso la macchina host simulando delle risorse che possano essere utilizzate dai sistemi operativi virtuali. Così gli esperti discutono di VMware, Xen e KVM e i provider ci informano su quali hypervisor si basano i VPS offerti, come se tutti fossimo a conoscenza delle caratteristiche che distinguono una tecnologia di virtualizzazione dall’altra.
Queste terminologie rischiano di confondere gli utenti alle prime armi, che potrebbero volere qualche informazione in più sulle differenze tra VMware, Xen e KVM. Per aiutare anche i neofiti a capire quale sia la migliore tecnologia di virtualizzazione per i propri scopi, abbiamo pensato di dedicare un intero post alle caratteristiche degli hypervisor e alle differenze sostanziali che intercorrono fra una e l’altra piattaforma.
KVM: open source, economico, ma con carenze funzionali
Iniziamo a parlare di KVM: questo hypervisor è stato introdotto nei kernel di alcune distribuzioni Linux a partire dal 2007 permettendo ad alcune soluzioni come Red Hat Enterprise Virtualization (RHEV) di sviluppare le proprie funzionalità sulla base delle caratteristiche offerte.
Per il mondo open source, KVM è il vero e unico hypervisor e nonostante non sia la scelta primaria fra i clienti enterprise, in realtà KVM è riuscito a ritagliarsi una fetta di mercato importante fra tutti gli utenti hosting preoccupati più dei costi che delle funzionalità avanzate.
La differenza principale fra KVM e VMware non è solo nella natura open, ma anche nella capacità di aver saputo sfruttare fin dall’inizio le tecnologie di virtualizzazione rilasciate da AMD e Intel per i processori immessi in commercio. Questa peculiarità ha permesso a KVM di distinguersi come la più leggera tecnologia di virtualizzazione, anche perché composta da meno di 10 mila righe di codice, contro le 6 milioni di linee di VMware e le 500 mila righe di Xen. Attualmente anche VMware e Xen utilizzano le estensioni hardware per lavorare con gli ambienti virtuali, ma Xen non è mai stati riscritto completamente e VMware, essendo closed source, non può essere valutato.
La natura open source di KVM, inoltre, tende a promuovere un ecosistema di fornitori alternativi, in quanto parte del codice KVM è reperibile già come parte di una corrispondente distribuzione Linux, permettendo di integrare infrastrutture e prodotti di gestione provenienti dal fornitore della distribuzione o da un ecosistema di produttori afferenti a quella determinata distribuzione. Al contrario, VMware obbliga gli IT buyer a rifornirsi da un unico provider, promuovendo la filosofia del single source vendor capace di fornire un portfolio di infrastrutture e soluzioni di virtualizzazione complete e concorrenziali. Questa completezza dell’offerta è stata sviluppata da VMware nel tempo, in quanto VMware è stato il primo hypervisor e ha potuto approfittare del vantaggio temporale acquisito sui concorrenti.
KVM vs VMware: differenze tecniche
Dal punto di vista tecnico, KVM offre un numero di vCPU per virutal machine superiore a quelle offerte da VMware e alcuni studi dimostrano che KVM supera di gran lunga VMware in alcuni scenari di virtualizzazione.
D’altra parte, entrambe le soluzioni di virtualizzazione KVM e VMware permettono di spostare in modalità live le macchine virtuali da un sistema a un altro, ma lo strumento di VMware preposto a tale funzionalità (VMware vMotion) ha un livello di automazione superiore rispetto alla soluzione di migrazione disponibile in KVM.
Inoltre KVM ha limitazioni tecniche sullo storage in quanto manca di una funzionalità di storage live migration e non presenta tutte le opportunità di integrazione che VMware offre in termini di soluzioni di storage eneterprise e SAN.
Nonostante le carenze citate, KVM sembra vincere sul terreno del costo. La natura open source riduce il costo di virtualizzazione e IBM ha dimostrato che l’utilizzo di KVM in confronto a VMware porta a una riduzione del 39% del TCO, che comunque resta dipendente dal workload e dalla configurazione.
Xen: scarsa interoperabilità
Xen, invece, è un hypervisor nato a Cambridge da un progetto di ricerca e sviluppato poi su Linux da XenSource Inc, acquisita nel 2007 da Citrix. Quest’ultima azienda ha integrato la tecnologia Xen in tutta una serie di prodotti commerciali come XenServer e ha usato la sigla Xen per tutta una serie di progetti non direttamente correlabili con l’hypervisor. Similmente a quanto avviene per KVM, la natura open source di Xen permette di contenere i costi di virtualizzazione, risparmiando sulle licenze, ma al contempo sembra che Xen non abbia seguito uno sviluppo armonioso fra le differenti versioni.
Xen è poi famoso per la modalità di para-virtualizzazione, che consente al kernel virtuale di collaborare con il kernel host in modo da minimizzare il sovraccarico I/O fino al 5-10%. Questa modalità di lavoro, per quanto vantaggiosa, richiede un’immagine kernel modificata e questo requisito ha portato Xen a non essere pienamente accettato dalla comunità open source. Amazon e altri pochi provider cloud usano una versione personalizzata di Xen in modalità para-virtuale, che richiede un kernel specifico, limitando così l’interoperabilità.
I limiti tecnici di KVM e la necessità di Xen di lavorare con un kernel specifico hanno permesso a VMware di diventare la soluzione più popolare per i clienti enterprise e per tutti quegli ambienti di lavoro managed, dove la solidità dell’hypervisor e la completezza delle funzioni sono più importanti dei costi sostenuti.