Introduzione alla Virtualizzazione e tecnologie utilizzabili

Capiamo cosa significa virtualizzazione, come viene attuata a livello di sistema e quali tipologie esistono oggi per virtualizzare le nostre macchine fisiche. Dai sistemi host based ai bare metal evidenziando vantaggi e funzionamenti delle soluzioni oggi sul mercato. Introduzione alla Virtualizzazione La virtualizzazione e una tecnologia che permette di adoperare piu sistemi operativi contemporaneamente sullo stesso computer.

Capiamo cosa significa virtualizzazione, come viene attuata a livello di sistema e quali tipologie esistono oggi per virtualizzare le nostre macchine fisiche. Dai sistemi host based ai bare metal evidenziando vantaggi e funzionamenti delle soluzioni oggi sul mercato.

Introduzione alla virtualizzazione

Introduzione alla Virtualizzazione

La virtualizzazione è una tecnologia che permette di adoperare più sistemi operativi contemporaneamente sullo stesso computer. Con un software per la virtualizzazione si possono creare degli ambienti separati l’uno dall’altro che eseguono un sistema operativo proprio senza interferenze, i quali hanno a disposizione periferiche e componenti hardware che sono amministrati da una componente del software di virtualizzazione detta hypervisor. Gli ambienti, creati tramite software, sono come delle macchine isolate dalla macchina fisica per questo motivo prendono il nome di virtual machine.

I vantaggi di questa soluzione sono tanti: poter sperimentare dei materiali in testing senza che crash danneggino il sistema operativo sul computer (basta cancellare la macchina virtuale e ricrearla), ottenere un risparmio energetico riducendo il numero di server fisici virtualizzandoli su più macchine virtuali, provare sistemi operativi non scritti per l’architettura del calcolatore in uso, diminuire la complessità e le dimensioni di una LAN o rete, abbassare i costi per l’acquisto di hardware e tanti altri.

Tipologie di Virtualizzazione

Tipologie di Virtualizzazione

La virtualizzazione non è facile e ciò è dovuto ad alcuni problemi. Il primo riguarda la piattaforma: l’architettura x86 (quella usata anche dai processori Intel Pentium e AMD Athlon) non è stata progettata per offrire tale tecnica, per cui si è dovuto ricorrere ad alcuni stratagemmi e a dei relativi compromessi.

Sono state trovate alcune soluzioni:

paravirtualizzazione (paravirtualization)

virtualizzazione completa (full virtualization)

virtualizzazione assistita (hardware assisted virtualization)

La paravirtualizzazione prevede l’uso di un sistema operativo modificato (in genere i cambiamenti sono limitati ad un kernel e ad alcune librerie) che può interagire coll’hypervisor senza l’ausilio di hardware progettato per la virtualizzazione. Il sistema viene modificato perché alcune funzioni non sono compatibili con la virtualizzazione (tipo le chiamate di sistema, amministrazione della memoria, gestione dell’orologio…). Sistemi non modificabili come la varie versioni di Microsoft Windows non possono funzionare usando la paravirtualizzazione. Le prestazioni sono simili a quelle ottenibili con un sistema operativo in funzione direttamente sull’hardware.

Usando la virtualizzazione completa il codice binario è eseguito direttamente oppure viene tradotto (adattato) per l’architettura del computer. La traduzione avviene in quei casi che il codice non può essere usato perché le istruzioni non sono virtualizzabili. Invece il codice a livello utente è eseguito direttamente dal processore. Il sistema operativo contenuto nella macchina virtuale non è influenzato dal fatto di non trovarsi su un vero hardware perché l’hypervisor fornisce periferiche e componenti hardware (cpu, ram, dischi,…) ad ogni ambiente virtuale. La virtualizzazione completa non necessita di hardware progettato per la virtualizzazione né di un sistema operativo modificato pertanto funziona anche con Windows. Le prestazioni sono minori di quelle che si registrano su un sistema operativo eseguito sull’hardware a causa dell’elaborazione necessaria per la traduzione del codice.

La virtualizzazione assistita è l’ultima modalità venuta alla luce. Si basa sulle funzionalità messe a disposizione dagli ultimi processori Intel e AMD (a partire dalle cpu Core Duo). Intel e AMD hanno integrato nei propri prodotti una serie di istruzioni che consentono di intercettare le chiamate precedentemente non compatibili con la virtualizzazione e passarle direttamente all’hypervisor senza la necessità di traduzione del codice binario o di modificare il sistema operativo.

virtu.png

Didascalia: Prestazioni di un sistema operativo eseguito: su una macchina virtuale usando la virtualizzazione completa, con la paravirtualizzazione, con la virtualizzazione assistita dall’hardware e in modo nativo (direttamente sull’hardware). I valori sono soltanto dei fattori di proporzionalità ottenuti eseguendo il test bytemark adoperando i software di virtualizzazione QEMU, XEN, KVM.

Host-based Virtualization e Bare metal Virtualization

Host-Based Virtualization e Bare metal Virtualization

Oltre ai vari tipi di virtualizzazione, per cercare di migliorare le prestazioni si sono sviluppati due approcci a questa tecnica: host virtualization (virtualizzazione dell’host) e bare-metal virtualization.

Con la prima, il programma di virtualizzazione viene installato su un sistema operativo che è supportato dal software mentre nel secondo caso il programma viene “fuso” in uno specifico sistema operativo per ottenere una miglior integrazione.

virtualizzazione.png

Il software di virtualizzazione, nell’host virtualization, viene distribuito come una normale applicazione che può essere installata usando i comandi opportuni per il proprio host (Windows, GNU/Linux, FreeBSD, Solaris…)

Utilizzando l’approccio bare metal, è necessario dello spazio sul disco libero e una o più partizioni poiché bisogna installare un sistema operativo specifico integrato col software.

Come spesso accade in informatica non esistono molti software che si possono catalogare con assoluta precisione in due categorie ma sono parecchi quelli che usano vie di mezzo, un compromesso o una modalità ibrida: spesso inserimento di parti del hypervisor nei moduli del kernel, proprio per cercare di benficiare dei vantaggi di entrambe le soluzioni.

Come si può facilmente capire bare metal conta di una maggior interazione col sistema operativo che è stato costruito in funzione del software di virtualizzazione. Mentre l’altra alternativa permette una maggior personalizzazione e consente di scegliere le componenti più adatte al contesto d’uso.

Software bare metal: Vmware ESX, Citrix XenServer, OpenVZ, Sun Containers.

Hypervisor e soluzioni per host virtualization: Xen, Virtuozzo, KVM, VirtualBox, VMware Workstation, VMware Server.

Virtualizzazione e web

Virtualizzazione e web

La virtualizzazione è particolarmente interessante (anche nel campo del webhosting) perché consente di creare molte virtual machine indipendenti su un solo server con tutti i benefici che ciò comporta.

Questi ambienti vengono chiamati, limitatamente a questo ambito, server virtuali o vps (virtual private server).

Una di queste macchine virtuali può essere venduta ad un cliente che disporrà di un suo sistema operativo dove installare e usare i suoi programmi con piena autonomia e massima personalizzazione, cosa non possibile se si usufruisce di uno spazio web condiviso. All’incirca come un server dedicato, ma a minor costo in quanto su un computer fisico girano più vps.

Le soluzioni più usate per creare server virtuali sono Xen, Vmware ESX, OpenVZ e Virtuozzo. I provider generalmente specificano quale di queste soluzioni useranno per il vps del cliente. Ogni software ha i suoi vantaggi e svantaggi e un potenziale utente deve sapere quali sono i pregi e i limiti di ciò che acquisterà.

Per tutte le altre caratteristiche inerenti un servizio VPS rimandiamo all’articolo presente su HostingTalk.it.

Articolo a cura di Valentina Fassan per www.hostingtalk.it