Ho di recente partecipato ad un seminario relativo alla virtualizzazione dei sistemi operativi tenuto da Moshe Bar, ed organizato presso il Politecnico di Torino (link).

Qui di seguito un breve resoconto.

Il seminario di Moshe Bar si è svolto affrontando in maniera molto discorsiva i tre principali approcci alla virtualizzazione esistenti attualmente. Va subito sottolineato il tono totalmente obiettivo dello speaker sebbene due dei suddetti approcci (in particolare Xen e KVM) portino la firma dello stesso Bar.

1) VMware: si tratta della realtà commerciale che domina il 99,9999.. % del mercato, indiscutibile dal punto di vista della stabilità ed affidabilità ma altrettanto inequivocabilmente basata su una tecnologia ormai vecchia. La virtualizzazione secondo VMware prende il nome di Binary Translation. Tutte le macchine virtuali comunicano con l’hardware fisico attraverso uno strato di virtualizzazione. Le singole macchine virtuali non sono pertanto a conoscenza di essere virtualizzate. Il principale aspetto negativo della Binary Translation risulta essere lo spreco di risorse, dati abbastanza attendibili rivelano che il 50 % delle risorse reali sono impegnate nell’operazione di virtualizzare l’altra metà delle risorse.

2) Xen: l’approccio di Xen prevede di andare a modificare il kernel delle macchine virtuali affinchè queste siano consapevoli di essere virtualizzate. Le prestazioni migliorano nettamente; tale approccio si adatta perfettamente alla filosofia del codice libero mentre male si accorda con i sistemi commerciali in cui non è possibile ricompilare il kernel. Esistono soluzioni per virtualizzare Windows su Xen ma a detta dello stesso Bar la stabilità è ancora lontana da venire. Tra gli altri vantaggi di Xen il rilascio sotto licenza GPL.

3) KVM: l’approccio innovativo nel campo della virtualizzazione. In questo caso vengono sfruttate le feature di virtualizzazione sviluppate in hardware sugli stessi processori (VT per Intel e SVM per AMD). Tale approccio rende superfluo lo strato di virtualizzazione software e le macchine virtuali sono viste come processi della macchina fisica. KVM può essere equiparato ad un driver quindi non esistono problemi con OS commerciali e non risulta necessario ricompliare Kernel nel caso Open Source. Le prestazioni aumentano notevolmente in quanto solo le operazioni di I/O necessitano di utilizzare il “driver” KVM per comunicare con l’hardware fisico. Altri vantaggi sono la possibilità di far convivere su uno stesso hardware fisico processi reali e processi che in realtà risultano essere macchine virtuali, il tutto monitorabile con ottima precisione (il monitoraggio delle prestazioni nei due precedenti casi è decisamente più complesso e mai del tutto attendibile).

Da evidenziare l’assoluta onestà intellettuale di Moshe Bar, come detto tra i realizzatori di Xen, immediatamente pronto e reattivo a sviluppare ed investire (attraverso una nuova società Qumranet) su una nuova tecnologia. Non ci resta che imparare.