VMWare: Concetti di Virtualizzazione

()

Virtualizzazione

In informatica il termine virtualizzazione si riferisce alla possibilità di astrarre le componenti hardware, cioè fisiche, degli elaboratori al fine di renderle disponibili al software in forma di risorsa virtuale. Tramite questo processo è quindi possibile installare sistemi operativi su hardware virtuale; l’insieme delle componenti hardware virtuali (Disco fisso, RAM, CPU, Scheda di rete) prende il nome di macchina virtuale e su di esse può essere installato il software come, appunto, i sistemi operativi e relative applicazioni. Tale tecnica è applicabile sia su sistemi desktop che su sistemi server. Ha inizio negli anni sessanta con i mainframe, come metodo per dividere logicamente le risorse di sistema fornite dal mainframe tra le diverse applicazioni.

Panoramica della virtualizzazione

La virtualizzazione è una tecnologia che fornisce la possibilità di creare all’interno di un unico sistema hardware fisico diversi ambienti di elaborazione simulati (o virtuali). I componenti hardware (quelli reali, fisici) vengono astratti per renderli disponibili al software sotto forma di risorsa virtuale. L’insieme delle componenti hardware virtuali (Hard disk, RAM, CPU, Scheda di rete) prende il nome di macchina virtuale (Virtual Machine, VM) e su di essa si può installare il sistema operativo e le applicazioni, come se si stesse interagendo con un sistema “reale”. Questa procedura si può eseguire sia su sistemi desktop che su sistemi server. Sulla macchina fisica, definita host, viene eseguito un software chiamato Hypervisor che si collega all’hardware per distribuire le risorse del computer in modo appropriato, suddividendo il sistema in diversi ambienti separati, distinti e sicuri: le macchine virtuali, o guest. Ciascuna macchina virtuale (guest) non esiste fisicamente, ma solo nella memoria dell’Hypervisor.La virtualizzazione fornisce la possibilità di stabilire (ed eventualmente riposizionare facilmente) la potenza di calcolo, la capacità di storage e la memoria da assegnare alle VM.

Il cloud e la virtualizzazione

In generale in una soluzione Cloud un fornitore affitta l’accesso all’hypervisor su hardware di loro proprietà per dare la possibilità agli utenti di eseguire le proprie macchine virtuali (o di utilizzare macchine virtuali pre-costruite). L’utente potrebbe non sapere su quale server fisico viene eseguita la macchina virtuale. Ad esempio, Amazon gestisce grandi data center in California, Oregon e Virginia. Utilizzando il servizio AWS di Amazon, l’utente non sa in quale data center si trovi il suo server virtuale, e anche se lo sapesse, sa quale macchina in quel data center ospita il suo server.

Ci sono tre modelli di distribuzione cloud:

privati: l’azienda possiede l’hardware su cui gira l’applicazione cloud;

pubblici: l’azienda non possiede l’hardware su cui gira l’applicazione cloud, ma sfrutta servizi cloud di terze parti;

ibridi: l’azienda utilizza soluzioni cloud sia pubbliche che private.

Un’ulteriore classificazione delle tipologie di Cloud Computing è la seguente, in base alla tipologia di servizi:

Infrastructure as a Service (Iaas).  Si tratta della categoria più di base dei servizi di cloud computing, dove lo storage, l’infrastruttura hardware, la rete, vengono resi disponibili come servizi. Con una soluzione IaaS, le aziende affittano l’infrastruttura IT (server e macchine virtuali (VM), risorse di archiviazione, reti e sistemi operativi) da un provider di servizi cloud con pagamento in base al consumo.

Platform as a Service (PaaS). Sono servizi cloud che forniscono un ambiente (la piattaforma applicativa e/o il Sistema Operativo) on demand per lo sviluppo, il test, la distribuzione e la gestione di applicazioni software. Consente agli sviluppatori di creare in modo più semplice e rapido applicazioni web o app per dispositivi mobili, senza doversi occupare della configurazione o della gestione dell’infrastruttura di server sottostante, della rete di archiviazione e dei database necessari per lo sviluppo.

Software as a Service (SaaS). È un metodo per la distribuzione di applicazioni software tramite Internet, on demand e in genere in base a una sottoscrizione. I provider di servizi cloud ospitano e gestiscono l’applicazione software e l’infrastruttura sottostante e si occupano delle attività di manutenzione, come gli aggiornamenti software e l’applicazione di patch di protezione. Gli utenti si connettono all’applicazione tramite Internet, in genere con un browser web browser del telefono, tablet o PC. Alcuni esempi sono Google Documents, un’applicazione simile a Microsoft Office, che però viene resa pubblicamente accessibile come servizio sul Web.

Vantaggi


Uno dei principali vantaggi della virtualizzazione è la razionalizzazione e l’ottimizzazione delle risorse hardware grazie ai meccanismi di distribuzione delle risorse disponibili di una piattaforma fisica. Si ottiene che più macchine virtuali possono girare contemporaneamente su un sistema fisico condividendo le risorse della piattaforma. Le eventuali contese di risorse vengono gestite dai software di virtualizzazione che si occupano della gestione dell’ambiente (es: VirtualBox, VMware vSphere, Citrix XenServer).

Virtualizzazione dei sistemi server


A livello aziendale lato server, le tecnologie di virtualizzazione vengono utilizzate per disporre di un certo numero di sistemi operativi su un numero minore di piattaforme hardware attraverso virtual private server, spesso anche in modalità/configurazione cluster di ridondanza (fail-over) o di load balancing.

Virtualizzazione dei dati


La virtualizzazione dei dati è un approccio per unificare i dati da più origini in un singolo livello in modo che le applicazioni, gli strumenti di reporting e gli utenti finali possano accedere ai dati senza richiedere dettagli sull’origine originale, la posizione e le strutture di dati

COME FUNZIONA LA VIRTUALIZZAZIONE

Introduzione alla virtualizzazione


A causa delle limitazioni dei server x86, molte organizzazioni IT per restare al passo con la domanda elevata di storage ed elaborazione odierna devono distribuire più server, sfruttando però solo una parte della loro capacità. Il risultato: notevole inefficienza e costi operativi eccessivi.
La virtualizzazione utilizza il software per simulare le funzionalità hardware e creare un sistema di computer virtuale. Ciò consente alle organizzazioni IT di eseguire più di un sistema virtuale (e più sistemi operativi e applicazioni) su un unico server. I vantaggi che ne derivano includono economie di scala e maggiore efficienza.

Nozioni di base sulle macchine virtuali

Un sistema di computer virtuale viene detto macchina virtuale (VM): un container software altamente isolato che include un sistema operativo e applicazioni. Ogni macchina virtuale è completamente indipendente. La disponibilità di più macchine virtuali su un singolo computer consente l’esecuzione di più sistemi operativi e applicazioni su un unico server fisico o “host“.

Un sottile layer software denominato “hypervisor” separa le macchine virtuali dall’host e alloca dinamicamente le risorse di elaborazione a ciascuna macchina virtuale in base alle esigenze.

Proprietà principali delle macchine virtuali


Le macchine virtuali presentano le seguenti caratteristiche, che offrono numerosi vantaggi.

1 Partizionamento

-Esecuzione di più sistemi operativi su una macchina fisica.
-Suddivisione delle risorse di sistema tra le macchine virtuali.
-Isolamento
-Isolamento di guasti e problemi di sicurezza a livello di hardware.
-Protezione delle prestazioni grazie a controlli avanzati delle risorse.
-Incapsulamento
-Salvataggio su file dell’intero stato di una macchina virtuale.
-Spostamento e copia delle macchine virtuali con estrema facilità, in modo analogo ai file.
-Indipendenza dall’hardware

-Provisioning o migrazione delle macchine virtuali a qualsiasi server fisico.

Tipi di virtualizzazione

Virtualizzazione del server

La virtualizzazione del server permette di eseguire più sistemi operativi su un unico server fisico come macchine virtuali estremamente efficienti. I principali vantaggi comprendono:

IT più efficiente
-Riduzione dei costi operativi
-Deployment dei carichi di lavoro più veloce
-Aumento delle prestazioni delle applicazioni
-Maggiore disponibilità dei server
-Eliminazione della proliferazione dei server e della complessità

Virtualizzazione della rete

Riproducendo in modo completo una rete fisica, la virtualizzazione della rete consente di eseguire le applicazioni su una rete virtuale analoga a una rete fisica, ma con maggiori benefici operativi e tutti i vantaggi dell’indipendenza dall’hardware tipica della virtualizzazione. La virtualizzazione della rete presenta dispositivi e servizi di rete logici (come porte logiche, switch, router, firewall, unità di bilanciamento del carico, VPN, ecc.) ai carichi di lavoro connessi.

Virtualizzazione del desktop

Il deployment dei desktop come servizio gestito permette alle organizzazioni IT di rispondere più rapidamente all’evoluzione delle esigenze degli ambienti di lavoro e alle nuove opportunità. Le applicazioni e i desktop virtualizzati possono inoltre essere implementati in modo più facile e veloce nelle filiali e per i dipendenti delocalizzati e in outsourcing, nonché per i lavoratori mobili che utilizzano tablet, iPad e Android.

Virtualizzazione e cloud computing a confronto

Sebbene siano entrambe tecnologie molto diffuse, virtualizzazione e cloud computing non sono intercambiabili. La virtualizzazione è il software che rende indipendenti gli ambienti di elaborazione dall’infrastruttura fisica, mentre il cloud computing è un servizio che fornisce risorse di elaborazione condivise (software e/o dati) on demand tramite Internet. Poiché si tratta di soluzioni complementari, le aziende possono iniziare virtualizzando i server e successivamente passare al cloud computing per ottenere maggiore agilità e self-service.

Utilizzi comuni della virtualizzazione

Uno degli usi più comuni della virtualizzazione è la virtualizzazione del desktop. Le aziende devono affrontare diverse difficoltà nel mantenere i computer desktop: problemi di configurazione se ogni utente ha un computer desktop diverso, hardware diverso, sistema operativo diverso, software diverso, aggiornamento delle applicazioni, aggiornamento dell’hardware, spostamento fisico su ogni singola macchina, etc … Alcune di queste problematiche possono essere superate utilizzando la virtualizzazione, in particolare una tecnica chiamata Infrastruttura Desktop Virtuale, o VDI (Virtual Desktop Infrastructure), in cui un server centrale fornisce una VM a ciascun utente, che utilizza solo un terminale, e l’elaborazione della sua VM avviene in remoto. Quando un utente conclude la propria attività quotidiana e si disconnette, la copia della sua VM non viene salvata e qualsiasi documento memorizzato sul desktop si perderebbe (gli utenti salvano i loro documenti su un’unità di rete).

Un altro uso comune della virtualizzazione riguarda necessità di eseguire un programma specifico che, per qualche motivo, non può girare sul proprio computer. In questo caso, può essere buona soluzione installare un hypervisor e creare una macchina virtuale con un sistema operativo più adatto all’applicazione che si desidera eseguire. Ad esempio, se hai un Macintosh e hai la necessità di far girare un programma Windows, basta installare una macchina virtuale Windows sul Macintosh. Ci sono diversi programmi che consentono di eseguire un’applicazione Windows su un Macintosh, come Parallels Desktop, VMware Fusion e VirtualBox.

Un’altra modalità di utilizzo tipico della virtualizzazione è la creazione un ambiente di test virtuale. Un’azienda che ha un’applicazione in produzione (ad esempio un e-commerce) avrà probabilmente un’infrastruttura di test e prima di apportare modifiche all’applicazione in produzione, effettua dei test nell’ambiente di collaudo. Virtualizzare l’ambiente di test consente l’utilizzo di checkpoint e snapshot, così da poter ripristinare facilmente uno stato precedente qualora qualcosa non sia andato come previsto.

Nella progettazione di un cloud privato di un’azienda, la maggior parte dei server verrà virtualizzato. E ci sono diversi aspetti da considerare:

Storage: gli hypervisor funzionano su diversi tipi di file system e diverse appliance di storage supportano diversi tipi di file system. Prima di decidere hypervisor o che tipi di utility di archiviazione, è necessario assicurarsi della loro compatibilità, della quantità dello spazio di archiviazione, della qualità dello storage etc …

Larghezza di banda: Ogni VM genera un carico maggiore sull’infrastruttura di rete (a maggior ragione se l’archiviazione non è locale ma si usa storage di rete). Occorre pianificare la larghezza di banda locale, ma anche quella remota.

Uptime: Il 100% di uptime non è ovviamente possibile, e l’obiettivo di uptime influenza ad esempio il numero di host (avrai bisogno di più host per fare manutenzione e non lasciare offline i guest).

Scalabilità: E’abbastanza facile identificare il numero di macchine virtuali di cui c’è bisogno oggi, mentre non è semplice determinare quante VM serviranno l’anno prossimo o tra cinque anni. Il cloud è adattabile e può gestire un numero in modo scalabile un dimensionamento delle VM.

L’utilizzo di un cloud pubblico è meno costoso per iniziare (puoi configurare un server con un piccolo canone mensile), perché un cloud privato può rappresentare un investimento iniziale significativo, sia per l’hardware che per il software.

Come scegliere l’hypervisor più adatto

Come fare a trovare l’hypervisor giusto per ciascuna situazione? Non esiste un prodotto migliore di tutti gli altri, ciascuno ha le proprie caratteristiche e particolarità. Può essere utile capire quali fattori prendere in considerazione nella scelta di un hypervisor. Comincia a porti le seguenti domande: Qual è il sistema operativo host e quali sono i sistemi operativi guest? Anche se non c’è un hypervisor che gira su tutti i sistemi operativi, la maggior parte dei sistemi operativi viene eseguita su un numero elevato di host e supporta un numero elevato di guest.

Che tipo di storage è disponibile? 

Molti hypervisor vengono eseguiti su più di un file system, ma devi sapere che file system hai a disposizione. Ovviamente è molto diverso se devi eseguire una o due VM, oppure ti servono decine o centinaia di VM e quindi ti servirà un nuovo dispositivo di archiviazione.

Di che tipo di licenza ha bisogno l’hypervisor?

Molti hypervisor sono gratuiti, ma attenzione al fatto che in alcuni casi si riferisce a nessun costo aggiuntivo quando possiedi già una licenza per qualche altro prodotto (ad esempio, Microsoft Hyper-V non comporta costi aggiuntivi se si possiede la licenza per Windows). Gli hypervisor non gratuiti utilizzano una licenza che può essere basata sul numero di host, o di guest, o sul numero di processi nell’host. Devi pensare anche alle licenze dei software delle VM.

Uptime:

Se lo scopo della virtualizzazione è il test, allora l’uptime può non essere una priorità. Ma se si utilizzano dei server in produzione, allora cambia tutto. In alcuni hypervisor non è possibile utilizzare delle attività amministrative senza disattivare la VM e se l’uptime non è importante, disattivala pure. Diversamente, conviene trovare un hypervisor in cui la maggior parte delle attività amministrative possono essere svolte con il guest attivo.

Migrazione live automatica:

Quasi tutti gli hypervisor possono eseguire una migrazione live manuale, ma per aumentare l’uptime può essere utile migrare live automaticamente. Quindi, questa è una funzione che potresti voler cercare.

Limitazioni per i guest:

Ogni hypervisor può avere alcune limitazioni per le VM (una quantità massima di memoria e una quantità massima di processori che possiamo assegnare a una macchina virtuale). Di solito queste limitazioni non sono così problematiche, nel senso che difficilmente avrai bisogno di una macchina più potente dei limiti che ti vengono imposti. Ma devi verificare prima cosa prevede da questo punto di vista il tuo hypervisor.

Amministrazione:

Un conto è dover amministrare una o due VM, e in questo caso gli strumenti di amministrazione di solito non sono un problema. Un altro conto è dover amministrare centinaia o migliaia di macchine guest: in questo caso devi avere i migliori strumenti possibili (poter amministrare le VM e gli host in gruppi e non una alla volta, quali attività di amministrazione sono automatiche, la possibilità di eseguire una certa quantità di script, la possibilità di pensare all’amministrazione remota, etc …).

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?