| VMware Architettura |
|
L’ARCHITETTURA DI UN DATACENTER VIRTUALE
Un host è la rappresentazione virtuale di risorse computazionali e di memoria all’interno di una macchina fisica su cui gira ESX Server. Quando una o più macchine fisiche sono raggruppate insieme per poter lavorare o essere gestite come unica entità, l’aggregazione delle risorse computazionali e di memoria formano un cluster. Le macchine fisiche possono essere aggiunte o rimosse dal cluster dinamicamente. Le risorse computazionali e di memoria fornite dagli host e dai cluster possono essere ulteriormente partizionate all’interno di un pool di risorse organizzate in forma gerarchica. I datastore sono la rappresentazione virtuale delle diverse combinazioni delle sottostanti risorse storage fisiche presenti all’interno del datacenter. Queste risorse appartenenti a storage fisici possono essere erogate da dischi SCSI presenti sul server, da array configurati su SAN fibre channel, da array di dischi iSCSI, o da array NAS (network attached storage). Le reti (networks) presenti all’interno dell’ambiente virtuale collegano le macchine virtuali tra loro e inoltre collegano l’ambiente virtuale ai dispositivi di rete fisici presenti al di fuori dell’ambiente virtuale (switch e router fisici). Quando sono create, le macchine virtuali possono essere associate a particolari host, cluster o pool di risorse e ai datastore. Una macchina virtuale consuma risorse come se fosse un elettrodomestico che consuma energia elettrica. Quando viene spenta o sospesa o interrotta non consuma più risorse. Quando viene riaccesa la macchina assorbe dinamicamente le risorse necessarie al carico di lavoro richiesto e le rilascia dinamicamente quando il carico diminuisce. L’erogazione di nuove macchine virtuali (provisioning) risulta molto più facile e veloce rispetto alle macchine fisiche. Una nuova macchina virtuale può essere creata in pochi secondi, senza nessun ordine d’acquisto richiesto, attesa e problematiche fisiche da risolvere. Quando una nuova macchina virtuale viene installata, il sistema operativo e le applicazioni appropriate possono essere installate in maniera standard e senza nessuna modifica come se venissero installate su una macchina fisica. Per semplificare il provisioning, una macchina virtuale può essere installata con il sistema operativo e le applicazioni già installate e configurate. Le risorse erogate alle macchine virtuali sono distribuite sulla base di politiche applicate dall’amministratore che gestisce il proprio pool di risorse. Le politiche possono riservare un set di risorse a particolari macchine virtuali per garantirne le performance. Su ogni macchina virtuale è possibile applicare politiche che assegnano priorità a porzioni variabili di risorse. Una macchina virtuale può essere anche inibita all’accensione (e al consumo di risorse) nel caso questa violi le politiche di allocazione delle risorse definite dall’amministratore. La seguente sezione esamina in dettaglio gli elementi del datacenter virtuale. Hosts, Clusters, e Resource Pools Hosts, cluster e pool di risorse forniscono una soluzione flessibile e dinamica per aggregare le risorse di memoria e computazionali dell’ambiente virtuale al fine di poterle collegare al sottostante livello di risorse fisiche. Un host rappresenta l’aggregazione di risorse computazionali e di memoria di un server fisico x86. Per esempio, se il server x86 dispone di quattro CPU dual-core a 4 gigahertz e 32 gigabytes di memoria di sistema, l’host avrà a disposizione 32 gigahertz di potenza elaborativa e 32 gigabytes di memoria disponibile per far girare le macchine virtuali ad esso assegnate. Un cluster funziona, e può essere gestito, in maniera molto simile ad un host. Esso rappresenta le risorse computazionali e di memoria aggregate relative ad un gruppo di server fisici x86 che condividono le stesse reti e gli stessi array di storage. Per esempio, se il gruppo contiene otto server, ogni server dispone di quattro CPU dual core che girano a 4 gigahertz e 32 gigabytes di memoria, il cluster avrà a disposizione 256 gigahertz di potenza computazionale e 256 gigabytes di memoria disponibile per far girare al proprio interno le macchine virtuali ad esso assegnate. I pool di risorse (resource pools) sono partizioni di risorse computazionali e di memoria appartenenti ad un singolo host o cluster. Qualsiasi pool di risorse può essere partizionato in pool di risorse più piccolo per consentire una ulteriore suddivisione e assegnazione di risorse a differenti gruppi per diverse ragioni o necessità. In altre parole, i resource pools possono essere organizzati secondo una scala gerarchica.
La figura 4 illustra l’uso dei resource pools. Tre server x86 con 4 gigahertz di potenza computazionale e 16 gigabytes di memoria ognuno, sono aggregati per formare un cluster di 12gigahertz di potenza computazionale e 48 gigahertz di memoria. Un pool di risorse (“Financial Department”) riserva 8 gigahertz di potenza e 32 gigabytes di memoria dal cluster, lasciando 4 gigahertz di potenza e 16 gigabytes di memoria per le macchine virtuali appartenenti a “Others”. Dal resource pool “Financial Department”, a un piccolo pool di risorse (“Accounting”) viene riservato 4 gigahertz di processore e 16 gigabytes di memoria per la macchina virtuale chiamata “Payroll”. Le risorse riservate possono essere dinamicamente modificate. Immaginiamo che a fine anno, il carico di “Accounting” incrementi drasticamente e che vorremmo dunque incrementare la potenza computazionale da 4 a 6 gigahertz. E’ possibile modificare dinamicamente il resource pool senza spegnere le macchine virtuali associate. Le risorse riservate per un determinato resource pool o macchina virtuale non sono rimosse immediatamente. Esse infatti vengono prese dinamicamente in base alla richiesta. Per esempio, se 4 gigahertz di risorse computazionali riservate al dipartimento “Accounting” non fossero utilizzate, la macchina virtuale “Payroll” potrebbe acquisirle per utilizzarle durante i periodi di picco. Quando “Accounting” richiede queste risorse, “Payroll” dinamicamente le rilascia. Come risultato anche se determinate risorse sono riservate a diversi resource pools, queste non verrebbero mai sprecate nel caso non fossero utilizzate dal proprio owner. Come dimostrato nell’esempio, i pool di risorse possono essere interscambiabili e organizzati gerarchicamente, e possono essere configurati dinamicamente in maniera tale che l’ambiente IT risponda pienamente ai bisogni dell’organizzazione: ogni unità organizzativa può ricevere un’infrastruttura, dedicare e beneficiare dell’efficienza derivata dall’aggregazione delle risorse.
|
