Cos’è la virtualizzazione?

La funzione della virtualizzazione è astrarre le risorse fisiche per renderle accessibili come risorse virtuali.

La virtualizzazione è una tecnologia che ti consente di creare servizi IT utili sfruttando risorse tradizionalmente vincolate all’hardware. Ti consente di sfruttare tutte le capacità di una macchina fisica distribuendo le funzionalità tra più utenti o ambienti.

In termini più pratici, immagina di avere 3 server fisici con singole finalità dedicate, il primo dei quali corrisponde a un mail server, il secondo a un web server, mentre l’ultimo esegue le applicazioni interne esistenti. Ciascun server viene utilizzato circa al 30% della capacità, una piccola parte del potenziale complessivo. Tuttavia, dato che le app esistenti sono ancora importanti per i tuoi processi interni, devi conservarle, insieme al terzo server che le ospita.

Utilizzo server

Tradizionalmente funzionava così. Spesso risultava più semplice e sicuro eseguire singole attività su singoli server: 1 server, 1 sistema operativo, 1 attività. Non era affatto semplice assegnare più attività ad un singolo server. Tuttavia, con la virtualizzazione puoi suddividere il mail server in 2 server distinti in grado di gestire attività indipendenti, consentendo la migrazione delle app esistenti. Si tratta dello stesso hardware, utilizzato in modo più efficiente.

utilizzo server: virtualizzazione

Nel rispetto dei requisiti di sicurezza, potresti suddividere ulteriormente il primo server affinché possa gestire un’altra attività, incrementando l’uso dal 30% al 60% o al 90%. I server liberi possono essere riutilizzati per altre attività oppure del tutto disattivati, in modo da ridurre i costi di raffreddamento e manutenzione.

Breve storia della virtualizzazione

La nascita della virtualizzazione

Benché la tecnologia di virtualizzazione risalga agli anni ’60, si è diffusa soltanto all’inizio degli anni 2000. Le tecnologie che hanno consentito la virtualizzazione, come gli hypervisor, sono state sviluppate decenni fa, al fine di fornire a più utenti l’accesso simultaneo a computer con un’elaborazione batch attiva. Molte aziende hanno adottato l’elaborazione batch come modello di calcolo, poiché consentiva di eseguire attività di routine, come la gestione dei libri paga, migliaia di volte più rapidamente.

Tuttavia, nel corso dei decenni successivi, il problema della presenza di più utenti su un unico computer è stato affrontato scegliendo soluzioni diverse dalla virtualizzazione. Tra queste, la condivisione temporale, che isolava gli utenti all’interno dei sistemi operativi e che ha portato inavvertitamente alla nascita di altri sistemi operativi, come UNIX, fino ad arrivare a Linux®. Tutto questo, mentre la virtualizzazione restava una tecnologia di nicchia scarsamente utilizzata.

L’innovazione della virtualizzazione

Facciamo un balzo in avanti, fino agli anni ’90. Gran parte delle aziende utilizzava server fisici e stack IT associati a un singolo fornitore, che non consentivano l’esecuzione delle applicazioni esistenti sull’hardware di altri fornitori. Le aziende iniziarono ad aggiornare i propri ambienti IT con “commodity server”, sistemi operativi e applicazioni meno costosi di vari fornitori. Tuttavia, erano vincolate ad hardware fisici scarsamente utilizzati, poiché ciascun server poteva eseguire soltanto un’attività.

È a questo punto che ha iniziato a diffondersi la virtualizzazione. Era la soluzione naturale a due problemi: permetteva alle aziende di ottenere partizioni sui propri server, e di eseguire le app esistenti su più tipologie e versioni di sistemi operativi. L’utilizzo dei server è stato reso più efficiente, in alcuni casi abbandonato, riducendo così i costi associati all’acquisto, alla configurazione, al raffreddamento e alla manutenzione.

L’ampia applicabilità della virtualizzazione ha contribuito a ridurre il vendor lock-in e ha posto le basi del cloud computing. Oggi è utilizzata da moltissime aziende, ed è spesso necessario disporre di software specifici per la gestione della virtualizzazione che consentano di monitorare l’ambiente.

Come funziona la virtualizzazione?

I software definiti hypervisor separano le risorse fisiche dagli ambienti virtuali che le richiedono. Gli hypervisor possono essere eseguiti in un sistema operativo (ad esempio, su un laptop) oppure installati direttamente su un hardware (server), che rappresenta la modalità di virtualizzazione utilizzata da gran parte delle aziende. Gli hypervisor ripartiscono le risorse fisiche in modo che gli ambienti virtuali possano utilizzarle.

Hypervisor e macchine virtuali

A seconda delle esigenze, le risorse vengono suddivise e trasferite dall’ambiente fisico ai vari ambienti virtuali. Gli utenti interagiscono ed eseguono calcoli all’interno dell’ambiente virtuale (in genere definito macchina guest o macchina virtuale). La macchina virtuale funziona come un unico file dati, che, a differenza di qualsiasi file digitale, è utilizzabile anche nel momento in cui viene spostato da un computer a un altro e aperto su più computer.

Quando l’ambiente virtuale è in funzione e un utente o un programma emette un’istruzione che richiede risorse aggiuntive dall’ambiente fisico, l’hypervisor riporta la richiesta sul sistema fisico e memorizza nella cache le modifiche, che vengono applicate in tempo pressoché reale (in particolare se la richiesta viene inviata attraverso un hypervisor open source basato su KVM, la macchina virtuale basata sul Kernel).

Tipi di virtualizzazione

Virtualizzazione dei dati

Virtualizzazione dei dati

I dati distribuiti su più ambienti possono essere consolidati in un’unica sorgente. In questo modo, è possibile gestirli in modo dinamico. Ciò permette di raggrupparli anche se provenienti da più sorgenti, di gestire rapidamente nuove sorgenti di dati e di trasformare i dati in base alle necessità dei consumatori. La virtualizzazione dei dati permette di raggruppare più sorgenti di dati e di trattarle come un’unica sorgente, fornendo al momento giusto i dati necessari, nel formato richiesto, a qualsiasi applicazione o utente.

Virtualizzazione dei server

Virtualizzazione dei desktop

Facilmente confusa con la virtualizzazione del sistema operativo, che consente di eseguire il deployment di più sistemi operativi su un’unica macchina, la virtualizzazione dei desktop consente invece a un amministratore centrale, o a uno strumento di amministrazione centralizzato, di distribuire ambienti desktop simulati su centinaia di macchine fisiche, simultaneamente. A differenza di quanto accade con gli ambienti desktop convenzionali, installati, configurati e aggiornati fisicamente su ogni macchina, la virtualizzazione dei desktop consente agli amministratori di eseguire configurazioni, aggiornamenti e controlli di sicurezza in blocco, su tutti i desktop virtuali.

Virtualizzazione dei server

I server sono computer progettati per elaborare in modo ottimale un volume elevato di attività specifiche, in modo che altri computer, come i portatili e i desktop, possano eseguire altre attività. La virtualizzazione di un server consente di eseguire più funzioni specifiche e prevede il partizionamento, in modo che i componenti possano essere utilizzati per assolvere varie funzioni.

Virtualizzazione dei sistemi operativi

Virtualizzazione dei sistemi operativi

La virtualizzazione del sistema operativo si verifica nel kernel, il sistema di gestione centrale delle attività dei sistemi operativi. 

È un modo utile per eseguire in modo affiancato gli ambienti Linux e Windows. Le aziende possono inoltre distribuire i sistemi operativi virtuali nei computer, in modo da:

ridurre il costo complessivo dell’hardware, poiché i computer non richiedono un livello elevato di funzionalità predefinite;

incrementare la sicurezza, dato che tutte le istanze virtuali possono essere monitorate e isolate;

limitare il tempo impiegato per servizi IT, come gli aggiornamenti software.

virtualizzazione delle funzioni di rete (NFV)

Virtualizzazione delle funzioni di rete

La virtualizzazione delle funzioni di rete (NFV) separa le funzioni chiave di una rete (come i servizi directory, la condivisione file e la configurazione IP) in modo da poterle distribuire tra gli ambienti. Disponendo di funzioni software indipendenti dalle macchine fisiche su cui venivano precedentemente eseguite, è possibile riunire funzioni specifiche in una nuova rete e assegnarle a un ambiente. La virtualizzazione delle reti riduce il numero di componenti fisici, come switch, router, server, cavi e hub, necessari per creare reti multiple e indipendenti. Inoltre, la NFV risulta particolarmente diffusa nel settore delle telecomunicazioni.