Virtualizzazioni: mondo in via di (interessante) sviluppo

Breve introduzione all’utilizzo
Faccio una breve introduzione per chi non conoscesse l’argomento.
La virtualizzazione di un software consiste nell’emulare l’ambiente nel quale, tale software, è progettato di base; ad esempio, la virtualizzazione di un sistema operativo sussiste nell’emulare i componenti hardware facendo “credere” a tale sistema di essere in esecuzione in una macchina reale. La cosa potrebbe sembrare semplice in linea teorica, nella pratica le cose non sono così semplici; la macchina virtuale (o VM) deve anche garantire stabilità e prestazioni adeguate in abito lavorativo (un sistema operativo lento ed impossibilitato ad eseguire le più semplici operazioni verrebbe da subito scartato in piano di utilità).Viene allora spontaneo chiedersi, quali vantaggi si possono trarre da questi sistemi di virtualizzazione. Ebbene ora mi limiterò a fare un riquadro generale, tuttavia per ogni singolo software verrà specificato meglio.
La cosa deve essere vista da molteplici prospettive; da una parte emulare un sistema operativo, o semplicemente dei programmi in ambienti non nativi, possono comportare comodità non indifferenti per sviluppatori o web designer (per citarne alcuni), la tecnologia attuale permette anche di impiegare le macchine virtuali come sistemi di backup del OS host oppure di ricreare uno specifico errore in un’applicazione; in ambito più commerciale, impiegare macchine virtuali come server, il che comporterebbe una notevole spesa nel budget e di spazio (implementare il quantitativo di memoria è assai meno invadente ed immediato che acquistare e gestire di un nuovo server). Come state anche pensando è davvero utile tutto ciò in un determinato contesto, tuttavia, ben presto anche gli utenti più comuni, diciamo casalinghi, potranno usufruire di queste operazioni. Basti la oramai univoca presenza di Xen negli OS linux come openSUSE (il primo ad implementarlo) RedHat e lo stesso Ubuntu (in fase di “assemblazione”) a darne una dimostrazione, ma procediamo con ordine.

Le major relase
Si può dire, senza scostarsi dal vero, che principalmente possiamo trovare 3 distribuzioni principe: Xen, Vmware e Parellels Workstation, assieme a distribuzioni come Qemu, Microsoft Virtual Server 2005 R2-SP1 e l’esordiente KVM. In questo breve articolo si parlerà principalmente delle distribuzioni openSorce confrontate (per quanto riguarderà Xen) con programmi proprietari.

Xen 3.0 contro Vmware (con l’incognita hardware)
Spesso questi due programmi vengono visti come i principali concorrenti per ottenere la palma di “migliore” nell’ambito. Il risultato, con la complicità del supporto hardware è che l’uno sovrasta l’altro e viceversa. Entrambi eseguono egregiamente i loro compiti ma entrambi deludono riguardo prestazioni ed affidabilità. Uno degli aspetti più ostici di questa famiglia è proprio il supporto hardware; ad entrambi è stato assegnato lo stesso quantitativo di RAM e spazio sul disco (non specificato) su due macchine diverse con CPU differenti:

Macchina 1 Macchina 2
CPU N.2 Intel Xeon 5160 dual-core (4 core totali) AMD Athlon X2 5000+
RAM 8 GB 1 GB

Va precisata l’intenzione che questo non vuole essere un test per determinare quale processore sia migliore dell’altro ma solo in ambito di prestazioni emulate.
Test N.1 Encoding Ogg: è stato preso un file *.mp3 di 6 MB e convertito in formato *.ogg con qualità 9. Questo causa una carico notevole nell’uso della CPU, per questo il valore minore è il migliore.
null

Test N.2 Codifica con Windows Media Player: è stato preso un file video di qualità 720p e convertito, con Windows Media Encoder, a qualità da DVD. Questo comporta un carico per la CPU, RAM e, ovviamente, sulla grafica; anche qui il risultato più basso è il migliore.
OpenOffice.org
null

Test N.3 OpenOffice.org: semplicemente è stato lanciato l’OOo in un boot pulito (senza altri programmi). Questo comporta un mix di carico tra la CPU, RAM e del buffer dell’ HD, anche qui il valore più basso è il migliore.

null

Test N.4 Dhrystone: programma che esegue operazioni con numeri interi. Si viene a creare un carico per la CPU fornito in milioni di istruzioni al secondo (MIPS), chiaramente, il risultato più alto è il migliore.

null

Test N.5 Whetstone: altro programma che esegue operazioni in virgola mobile. Anche qui il carico ricade per la CPU fornito in milioni di operazioni in virgola mobile al secondo (MFLOPS), medesimamente, il risultato più alto è il migliore.

null

Test N.6 Floating-point x4 iSSe2: applicazione che esegue operazioni in virgola mobile SSE2 per la misurazione delle capacità multimediali. Genera carico nella CPU mostrando il numero di istruzioni al secondo (it/s), il valore più alto è il migliore.

null

Test N.7 Banda della RAM: misurazione della larghezza di banda della RAM; ovviamente questo genera carico per la RAM da ciò il valore più alto è il migliore.

null

Test N.8 Avvio di Windows: è stato effettuato un avvio “a freddo” di Windows XP. Viene generato un mix tra CPU, RAM e Buffer dell’HD, il valore più basso è il migliore.

null

I dati ottenuti vanno un po’ interpretati; va detto che i processori Intel integrano la tecnologia VT e SVM atte al supporto di virtualizzazione, è anche risaputo che Intel stia lavorando ad una nuova versione di VT con incluso un sistema Directed I/O. Questa nuova tecnologia dovrebbe aiutare a gestire i migliaia di segnali di input che vengono mandati al processore. Dal canto suo il controller di memoria integrato di AMD fornisce un grande vantaggio (che Intel non ha ancora colmato).

Qemu e (l’esordiente) KVM a confronto con Xen 3.0.3
Del Qemu non c’è molto da dire, a sorprendere in questi nuovi test è l’esordiente KVM. Il KVM (Kernel Virtual Machine) è un progetto abbastanza recente che si va a collocare nel Kernel all’attuale versione 2.6.20. L’idea di integrare un’applicazione di virtualizzazione direttamente nel Kernel suscita molte convinzioni di successo; all’inizio è stato addirittura pensato ad una inglobazione dello Xen nel Kernel. Il fatto più interessante, che ho già citato, permette che la macchina virtualizzata interagisca direttamente con l’hardware senza software intermediari che rallentino i processi (il che a mio parere è geniale). Il KVM, innanzitutto è un progetto coperto da GPL, integra perfettamente i driver di virtualizzazione delle CPU e di una versione modificata del Qemu dell’ user-space, letteralmente spazio-utente. Come detto prima, il KVM si integra sia con tecnologie VT della Intel, sia con la AMD-V di AMD. Tuttavia questo comporta ad un restringimento da parte dell’uso di questa applicazione (dal resto come le altre applicazioni) concentrando la scelta su processore Intel Xeon 5000 series e successivi, Xeon LV e delle CPU AMD che montano sochet F oppure AM2.
Il Kernel interpreta, inoltre, la macchina virtuale come un’applicazione “standard” per il sistema “guest” così da consentire l’accesso e l’utilizzo di altri strumenti in contemporanea.Attualmente KVM supporta in host sistemi Linux (x86 e x86_64), Microsoft Windows (x86) ed SMP.Come per le altre applicazioni, anche il KVM è abbastanza esigente nei confronti dell’hardware minimo necessario, in generale “basta” essere dotati di un processore x86 opp. x86_64 con il supporto di virtualizzazione ed almeno 1GB di RAM.Come hardware di test è stata impiegata una macchina così predisposta:

Macchina 3
CPU Intel Xeon LV dual-core
RAM 1 GB
Kernel 2.6.20-rc3
OS Fedora Core

Gli ambienti impiegati erano composti dai seguenti: QEMU 0.8.2 con acceleratore kqemu, Xen 3.0.3, KVM e l’OS Fedore Core 6 senza alcuna forma di virtualizzazione.

Test N. 1 Compressione con Gzip: compressione di un file *.tar ad un formato *.gz di 745MB; chiaramente, il valore inferiore è il migliore.

null

Test N. 2 LAME Compilation 3.97: compilazione di un file LAME; carico per la CPU, il valore più basso è il migliore.

null

Test N.3 LAME Encoding 3.97: conversione di un file *.wav ad uno *.mp3 di 81,3MB; carico per la CPU, anche qui il valore più basso è il migliore.

null

Test N.4/5 RAM Speed 2.4.1: il primo è un test di copia dei valori, il secondo è un test di scrittura; in entrambi il valore più alto è il migliore.

null

null

Osservando i risultati si denota anche qui una schiacciante superiorità (ovviamente) da parte dell’ OS nativo (Fedora Core 6), tuttavia sorprendono le prestazioni del KVM che, pur essendo un progetto nato da poco, riesce a stare al passo con le prestazioni di applicazioni decisamente più mature come lo Xen, il tutto lascia ben sperare!

Nota a Microsoft Virtual Server 2005 R2 – SP1
Merita almeno una nota questo sforzo di Microsoft nell’entrare nel marketing delle virtualizzazioni; la relase è gratuita e per giunta dal rilascio dell’SP1 integra perfettamente anche la virtualizzazione di macchine Linux basate su Kernel 2.4.xx (con una compilazione manuale) e 2.6.xx automaticamente riconosciuta.

Ed ora il futuro
Dopo questa carrellata di test e numeri è giunto il momento di pensare a cosa quest’anno ed i prossimi avvenire ci riserveranno. Allo stato attuale va detto che la virtualizzazione è si sviluppata nel campo software ma manca di sostanziale supporto da parte dell’hardware. Fatta eccezione delle CPU, la grafica viene ad essere la più penalizzata, allo stato attuale l’integrazione grafica si basa ad un livello Cirrus-Logic con prestazioni già scadenti in campo 2D (figurarsi nel 3D). Questo comporta alla perdita di una ricca fetta di OS da virtualizzare (Vista in primis) e di applicazioni (tipo i destopo XGL).
In campo software si è già detto quasi tutto, allo stato attuale è in fase di sviluppo per lo Xen è uno supporto per il bilanciamento della CPU e delle risorse RAM tra più macchine virtuali, una tecnologia di riproduzione deterministica (la quale consente di creare degli snapshot del sistema che, in caso di eventuali crash, poter ritornare) e di interposizione I/O la quale consente di emulare un errore di funzionamento della macchina.
Per il momento la strada della virtualizzazione è più che mai aperta.

Autori:
Susanoo-sen + XYZ
Fonti:
Rivista Linux Pro numero 45 per il confronto Xen-VMware
phoronix.com per il confronto e la descrizione di KVM
Rivista Linux & C. numero 55 per la mini descrizione di MS Virtual Server 2005 RC2-SP1

January 13 2007 12:59 am | Recensioni and VM

Trackback URI | Comments RSS

Leave a Reply