RFc -Restori Fabrizio Consulenze- S.da Buffolara, 67 -43126 Parma- Tel. +39 335 240228 Fax +39 0521 940035 P.IVA 01788460341
La virtualizzazione dei server è una tecnologia che consente di creare un ambiente di calcolo estremamente flessibile per mezzo nel quale eseguire simultaneamente più sistemi operativi su un unico hardware.
In ambito informatico la virtualizzazione è intesa come la realizzazione di risorse virtuali, risorse altrimenti implementate con specifico hardware dedicato allo scopo.
Diverse risorse possono essere virtualizzate, dalla memoria, allo storage, ai computer come server o workstation. Esistono, inoltre, diversi tipi di virtualizzazione Java ne è un esempio: un linguaggio di programmazione eseguito in un ambiente virtuale, la Java Virtual Machine (JVM), per rendere il programma indipendente dalla piattaforma.
Nel caso di virtualizzazione di server (hardware virtualization), la virtualizzazione è ottenuta attraverso un software che maschera l’architettura hardware (host) sul quale viene eseguito ed espone una nuova architettura, astratta, con caratteristiche definite dalla programmazione, questo software è detto Virtual Machine Monitor (VMM) o Hypervisor [2].
Le prime applicazioni risalgono alla fine degli anni ‘60 inizio ’70, su macchine IBM per fare fronte ad un più efficiente utilizzo dei sistemi dell’epoca.
Oggi la disponibilità di hardware potente e a costi modesti, specie per le architetture x86 (Intel o AMD), ripresenta la necessità di un più efficiente utilizzo e, come negli anni ’70, si sta ricorrendo alla virtualizzazione.
Sono disponibili due diverse modalità di virtualizzazione: virtualizzazione completa (Full virtualization [3]), paravirtualizzazione (Paravirtualization [4]).
Nel primo caso tutte le funzioni esposte alla macchina virtuale sono virtualizzate, compreso la gestione dei I/O e degli interrupt. Nel secondo alcune funzioni dell’hardware fisico non sono completamente mascherate dalla VMM, questo porta a prestazioni migliori, ma impone che il S.O. della macchina virtuale sia ‘conscio’ del sottostante strato di virtualizzazione. Questo limite della paravirtualizzazione è superato adottando processori Intel [5]o AMD [6] con supporto per la virtualizzazione.
Il software di virtualizzazione può essere una applicazione di un sistema operativo (hosted) o installato direttamente su un hardware (bare metal). Questa ultima soluzione è normalmente adottata per virtualizzare e consolidare servers in quanto è in grado di fornire migliori prestazioni.
La virtualizzazione hosted aggiunge uno strato fra il sistema operativo ospitante e il sistema operativo ospitato (guest). Questo ha il vantaggio di una più semplice implementazione e una più semplice gestione dei drivers (vengono usati quelli del sistema operativo ospitante), al costo di prestazioni minori.
Un semplice Case History qui [7].
[8]Le prime esperienze di virtualizzazione (?) con VM/386 di IGC [9]: fine anni '80 primi '90, in realtà un sistema operativo multitask per MS-SOS, che usava alcune caratteristiche particolari dei processori 486.
Si potevano collegare client via FO qualcosa di simile alle attuali thin station e condividere la stessa workstation con diversi utenti.
RFc Networking & Informatica è specializzata nei tre ambienti VMWare, HyperV e XEN autando le aziende a valutare la migliore soluzione, installando e configurando i sistemi.
Per info: rfc@rfc.it [10]
La virtualizzazione comporta diversi benefici, sia in piccole che in grandi aziende, che si traducono in un risparmio per la realizzazione gestione del data center [12].
Più macchine virtuali su più server fisici costituiscono una infrastruttura virtuale. L’insieme delle macchine, siano fisiche o virtuali, devono essere gestite e manutenute. La virtualizzazione aiuta a risolvere questo aspetto.
Disponendo di più server fisici destinati a macchine virtuali è possibile ‘muovere’ i server virtuali da una macchina fisica ad un altra ottenendo due importanti risultati: il bilanciamento dei carichi di utilizzo delle risorse e l’alta affidabilità: se un hardware fisico ha bisogno di manutenzione, per cui deve essere spento, o presenta malfunzionamenti, si possono spostare le macchine virtuali su altri hardware, liberando l’host, che può essere spento e manutenuto.
Lo spostamento (migrazione) di macchine virtuali può avvenire a caldo (live migration) senza fermare gli utenti e le applicazioni utilizzate sulla macchina virtuale.
Diversi software [12] sono disponibili per la gestione della infrastruttura, rendendo le operazioni di gestione relativamente semplici.
Un aiuto alla gestione della infrastruttura viene da una corretta progettazione del sistema [15]e delle risorse fisiche.
Le macchine virtuali, guest, (VM) si comportano come un hardware fisico. Sono liberamente configurabili in termini di disco, memoria, CPU, I/O. Naturalmente le risorse devono essere disponibili fisicamente (ad esempio lo spazio disco), anche se in alcuni casi sono possibili e conventi tecniche di overbooking , ovvero destinare alle macchine virtuali più risorse di quante disponibili fisicamente.
La machina virtualizzata espone le risorse al sistema operativo, che può essere Windows, Linux o altri. I prerequisiti del SO devono essere soddisfatti dalla VM. In molti casi la gestione delle risorse può essere dinamica e automatica, questo permette bilanciare i carichi a favore dei processi più onerosi.
Diversi sono i prodotti disponibili per virtualizzare. Di seguito ne vengono citati tre, non sono tutti, ma certamente coprono buona parte del mercato.
vmware [18]: leader nel mercato, certamente la soluzione più diffusa, e completa. Anche la più costosa
XEN [19]: è un hypervisor (paravirtualizzato) open source, adottato da diverse distribuzioni fra queste SUSE [20]. É il software di base anche per prodotti commerciali come Xenserver [21]di Citrix.
Hyper-V [22]: la soluzione Microsoft. Il costo di acquisizione è modesto, di fatto Hyper-v è integrato in Windows 2008.
Links
[1] https://www.rfc.it/sites/default/files/Userfiles/u1/Virtual.gif
[2] http://en.wikipedia.org/wiki/Hypervisor
[3] http://en.wikipedia.org/wiki/Full_virtualization
[4] http://it.wikipedia.org/wiki/Paravirtualizzazione
[5] http://www.intel.com/technology/itj/2006/v10i3/1-hardware/6-vt-x-vt-i-solutions.htm
[6] http://sites.amd.com/us/business/it-solutions/virtualization/Pages/virtualization.aspx
[7] https://www.rfc.it/../implementazione_xen
[8] https://www.rfc.it/sites/default/files/Userfiles/u1/vm-386.JPG
[9] http://www.igcinc.com/vm386.htm
[10] mailto:rfc@rfc.it?subject=Virtualizzazione
[11] https://www.rfc.it/category/categoria/virtualizzazione
[12] https://www.rfc.it/datacenter
[13] http://it.wikipedia.org/wiki/Green_computing
[14] https://www.rfc.it/comment/reply/98#comment-form
[15] https://www.rfc.it/content/organizzazione
[16] https://www.rfc.it/comment/reply/100#comment-form
[17] https://www.rfc.it/comment/reply/99#comment-form
[18] http://www.vmware.com/
[19] http://www.xen.org/
[20] http://www.novell.com/linux/
[21] http://www.citrix.it/Prodotti_e_Soluzioni/Prodotti/Citrix_XenServer/
[22] http://www.microsoft.com/hyper-v-server/en/us/default.aspx
[23] https://www.rfc.it/comment/reply/111#comment-form