Virtualizzazione server con tecnologia KVM

Virtualizzazione_server
03 dicembre 2014
0 commenti

La virtualizzazione sta diventando ogni anno sempre più ricercata e diffusa, a causa della reale necessità delle aziende di avere ambienti multipli sullo stesso server fisico. In questo articolo spingeremo molto sulla tecnologia KVM, che abbiamo scelto, per una serie di motivi, come principale metodo di virtualizzazione e che utilizziamo anche in neen in previsione di aggiungere anche Docker più avanti.

I sistemi di virtualizzazione si distinguono in base al metodo usato:
Nativa: separazione a livello software del host e guest, ad esempio VirtualBox;
Paravirtualizzazione: fa uso di una API verso il hypervisor e permette l’accesso alle risorse hardware, ad esempio KVM;
Emulazione: il software controlla e simula il supporto hardware. Questo metodo è il più lento in quanto tutte le informazioni devono essere tradotte dall’host al guest per ogni istruzione.

CONCETTO E TECNOLOGIE
Ciò che maggiormente distingue le varie tecnologie di virtualizzazione è principalmente il metodo usato. Andremo di seguito a spiegare brevemente le principali tecnologie di virtualizzazione sotto Linux ad oggi utilizzate maggiormente per gli ambienti server.

KVM rappresenta una virtualizzazione kernel-based, avendo come supporto un modulo del kernel (cervello di Linux) attraverso il quale abbiamo il pieno supporto per la virtualizzazione Intel e AMD.
Ogni guest virtuale potrà avere il proprio hardware isolato e virtualizzato, come schede di rete, dischi, etc.

OpenVZ usa un concetto completamente diverso da KVM, la particolarità sta nel fatto che non possiamo usare sistemi operativi differenti dall’host.
In sostanza, l’hypervisor ha un proprio kernel modificato tale da gestire efficientemente multipli sistemi operativi guest sotto forma di container isolati. Praticamente i vari container non sono altro che diverse cartelle all’interno dello stesso filesystem.

XEN è nato come progetto free e oggi ha intrapreso una strada più commerciale essendo alla base di tanti vendor (tipo Citrix, la quale lo ha anche acquistato).
Ciò che lo rende differente dagli altri è il fatto che fa uso delle estensioni di virtualizzazione compilate direttamente nei componenti hardware e le istruzioni dai sistemi guest vengono eseguite direttamente sul processore, senza l’intervento di un sistema operativo.

VMWare possiamo considerarlo il prodotto più maturo in termini di virtualizzazione oggi.
Per molti, VMware rappresenta il prodotto più robusto e vicino ad un server dedicato.
Il punto di forza di VMWare è principalmente il fatto che oltre ad essere anche un Hypervisor, non permette facilmente l’overbooking, quindi un cliente ha la garanzia di quello che sta pagando in termini di risorse dedicate.

TEST COMPARATIVO DI FEATURES

Funzionalità OpenVZ Xen KVM
Performance CPU Alte Alte Alte
Assegnazione CPU Flessibile Fisso Fisso
Performance I/O Medio/Basse Alte Alte
Latenza I/O Alta Media Bassa
Memoria RAM Flessibile Fisso Fisso
Controllo risorse Limitate Limitate Completo
Sicurezza da Host Bassa Alta Alta
Sicurezza da Guest Media Alta Alta
Complessità Hypervisor Bassa Alta Media

 

Come si può notare, ogni tipologia di virtualizzazione ha i suoi vantaggi e svantaggi.
 La tabella comparativa qui sopra è indicativa e varia in base all’hardware e alla combinazione software/setup scelta.

Di seguito la rappresentazione grafica del funzionamento:

OpenVZ: funzionamento
OpenVZ:funzionamento

KVM: funzionamento

KVM:funzionamento

Xen: funzionamento

Xen:funzionamento

Perchè scegliere KVM
Per le società addette al mondo opensource, KVM è l’unica scelta in quanto permette di avere quasi il controllo completo con il minimo dei costi.
Essendo opensource, è possibile anche modificarlo e renderlo adatto alle proprie esigenze aziendali, nonché permettere a diverse software house di creare software che si integrino perfettamente e che offrano soluzioni avanzate di gestione delle VM.

Alcune fonti free e valide:
http://www.opennode.com
http://www.proxmox.com
http://ovirt.org
http://archipelproject.org

Conclusioni
Nel mondo dell’informatica non esiste il concetto di sistema perfetto. Ognuno ha i suoi pregi e i suoi difetti. Il sistema migliore è quello che risulta adatto alle proprie esigenze in seguito ad una curata analisi di fattibilità, performance, scalabilità e visione di crescita aziendale.

Lucian  Lazar Cloud Specialist