Virtualizzazione: cos’è, a cosa serve e i vantaggi della macchina virtuale

Con il termine virtualizzazione intendiamo quel processo di creazione di una risorsa virtuale partendo da una fisica (hardware). Tale risorsa virtuale sarà allocabile, quindi utilizzabile contemporaneamente anche su sistemi operativi diversi. La macchina che “ospita” viene chiamata host, e le risorse potranno essere suddivise in differenti macchine ospite, chiamate guest.

Le seconde, in presenza di alcuni presupposti, potranno lavorare come detto anche in simultanea. In questo articolo dunque, approfondiremo il concetto di virtualizzazione, capendo meglio cos’è, a cosa serve e quali sono i vantaggi.

Virtualizzazione: cos’è e quali vantaggi offre

Abbiamo detto che la virtualizzazione consiste in un’astrazione di quelle che sono le risorse fisiche hardware IT, ma in realtà ad essere astratti possono essere anche le componenti software. Una componente creata in questo modo viene indicata come virtuale o logica, e potrà essere utilizzata nella stessa maniera del suo corrispettivo fisico.

cos'è la virtualizzazione

Uno dei vantaggi principali della virtualizzazione, ma non certamente l’unico, è il livello di astrazione tra quelle che sono le risorse fisiche e la loro rappresentazione virtuale, dove alla base troviamo i vari servizi cloud che come risaputo acquisiscono un’importanza sempre maggiore nella quotidianità delle aziende.

Ad ogni modo, per comprendere meglio il concetto di virtualizzazione, dobbiamo innanzitutto separarlo da quelli, molto simili per certi aspetti, di simulazione ed emulazione. Chi si occupa di virtualizzazione infatti, si scontra inevitabilmente anche con i suddetti concetti, che in alcune situazioni vengono utilizzati come sinonimi.

Le differenze con simulazione e emulazione

Nonostante la somiglianza tra i concetti di simulazione, emulazione e virtualizzazione, la simulazione è ben differente dall’emulazione, e questi differiscono a loro volta da quello di virtualizzazione. Entriamo nel dettaglio:

Simulazione

Con questo termine si fa riferimento alla riproduzione completa di un sistema attraverso un software. Si parla di completezza perché non verranno imitate solamente quelle che sono le funzioni di interazione con sistemi differenti, ma anche le varie componenti del sistema, nonché la loro logica. I simulatori vengono utilizzati per compilare programmi sviluppati per altri sistemi, su di un altro sistema, con finalità di analisi.

Volendo sottoporre un esempio concreto, ad oggi i simulatori vengono utilizzati per eseguire piattaforme software moderne, vecchi calcolatori progettati in origine per altri sistemi. La simulazione differisce dall’emulazione nella finalità pratica per cui viene utilizzata.

Pensiamo ad esempio a un simulatore di volo: questo appunto simula in tutto e per tutto il volo, ma di certo non porta il pilota alla meta. Tra i simulatori più utilizzati al giorno d’oggi, troviamo quelli che permettono di testare le pagine web mobili su dispositivi desktop.

Emulazione

La simulazione mira alla riproduzione di sistemi, mentre l’emulazione presenta le varie funzioni delle componenti hardware e software, ma non quella che è la loro logica intrinseca.

Il fine ultimo dell’emulazione infatti, è proprio quello di ottenere una sostituzione completa del sistema che riproduce. Riportando l’esempio del simulatore di volo su citato, un emulatore sarebbe in grado di portare il pilota a destinazione.

I simulatori e gli emulatori sono utili in tre differenti scenari per riprodurre:

  • un ambiente hardware, così da poter eseguire un S.O. in origine sviluppato per piattaforme differenti;
  • sistemi operativi in grado di eseguire applicazioni in origine progettate per sistemi differenti;
  • un ambiente hardware in grado di ospitare un software divenuto oramai obsoleto, e per cui quelle che erano le componenti originali non sono più disponibili.

Troviamo infine un’ultima distinzione oltre a quelle citate, e riguarda quei software che semplicemente forniscono un livello di compatibilità in grado di colmare un’incompatibilità tra differenti componenti hardware e software. In altre parole, in questa situazione non viene riprodotto tutto il sistema, ma solamente una porzione di esso.

Virtualizzazione: come funziona?

Una volta fatte le dovute distinzioni tra i tre concetti di simulazione, emulazione e virtualizzazione, ora passiamo a vedere il funzionamento di quest’ultima. Nonostante presenti delle somiglianze, la virtualizzazione nasce con uno scopo differente. Simulatori ed emulatori infatti, nascono per colmare delle incompatibilità di sistema.

In altre parole il loro fine ultimo è quello di permettere il funzionamento di applicazioni su un sistema che non le supporta. Tale approccio però, presenta due differenti svantaggi. Il primo consiste nel fatto che simulazioni ed emulazioni sono particolarmente dispendiose. Il secondo svantaggio si verifica con la continua perdita di prestazioni.

A livello puramente concettuale, la virtualizzazione dovrebbe essere concepita per essere emulata o simulata il meno possibile. In altre parole, la virtualizzazione nasce per stabilire solamente un grado di astrazione che permette di fornire risorse IT, e questo indipendentemente da quella che è la loro base fisica.

Facciamo un esempio concreto per rendere meglio il concetto. Se per effettuare un test, un utente volesse eseguire più versioni di Windows 7 virtuali sul proprio computer con installato Windows 7, dovrebbe utilizzare un software di virtualizzazione. Ora prendiamo il caso dello stesso utente che vuole avviare due versioni di Ubuntu virtuali.

In questo specifico caso, l’utente necessiterebbe di un virtualizzatore che abbia la capacità di colmare quelle che sono le incompatibilità tra Windows, ovvero il sistema su cui opera, e quello che è il sistema Linux, che dovrà essere eseguito attraverso la simulazione.

Come detto precedentemente, molto spesso tutti questi concetti tendono a sovrapporsi. Molti software utilizzati in ambito virtualizzazione infatti, contengono in realtà degli emulatori, motivo per cui esistono differenti forme di virtualizzazione, un concetto non certamente nuovo, ma con origini che risalgono agli anni ’60.

Le forme della virtualizzazione

Il concetto di virtualizzazione non è certamente una novità. Il termine infatti risale agli anni ’60 e serve per indicare la creazione di macchine virtuali. Nell’attuale panorama IT, esistono differenti forme di virtualizzazione, e che come detto si riferiscono a un’astrazione di determinate risorse IT: memoria, software, dati, elementi di rete.

Più in generale, possiamo fare una distinzione tra:

Hardware

Questo concetto fa riferimento a tecnologie che consentono la fornitura di componenti hardware, facendo ricorso a soluzioni software, e questo indipendentemente da quella che è la loro base fisica. Una VM (virtual machine), altro non è che un computer virtuale che con l’utente finale si comporta esattamente come farebbe un computer fisico dotato di un suo hardware e relativo sistema operativo. Le VM dunque, operano come “sistemi guest virtuali” su uno o più sistemi fisici, denominati host. L’hypervisor stabilisce il livello di astrazione tra il sistema virtuale e la base fisica. Gli Hypervisor sono dei software che hanno la funzione di gestire le risorse hardware a disposizione: Cpu, Ram, periferiche, memoria di archiviazione ed altre, condividendole con più sistemi guest.

Virtualizzazione completa

Attraverso questa forma di virtualizzazione, l’hypervisor di ogni macchina virtuale riproduce integralmente un ambiente hardware. In questa maniera, ogni VM ha un suo quantitativo di risorse hardware rese disponibili dall’hypervisor, e può di conseguenza eseguire delle applicazioni. L’hardware fisico di quello che è il sistema host invece, rimane del tutto nascosto all’S.O. guest. L’approccio permette di fatto il funzionamento di sistemi guest che non sono modificati.

Paravirtualizzazione

Con la virtualizzazione completa viene fornito una soluzione hardware virtuale per ciascun VM, mentre con la paravirtualizzazione l’hypervisor rende disponibile solamente un’API, ovvero un’interfaccia di programmazione. Questo permette ai sistemi operativi guest di poter accedere all’hardware fisico di quello che è il sistema host. In termini di prestazioni assolute dunque, la paravirtualizzazione offre dei vantaggi rispetto alla virtualizzazione completa.

Dal punto di vista dell’utente finale, una virtual machine non presenta differenze di sorta rispetto ad un computer fisico. In altre parole, la virtualizzazione hardware fa riferimento alla possibilità di scegliere differenti server virtuali per più utenti sulla base di una piattaforma di elaborazione molto potente: il popolare concetto di hosting condiviso.

Virtualizzazione hardware: ulteriori campi di applicazione

Il consolidamento dei server nell’ambito aziendale rappresenta un altro campo di applicazione per la virtualizzazione hardware. La virtualizzazione viene usata con la finalità di aumentare quello che è l’utilizzo dell’hardware dei server. Questo rappresenta un vantaggio, perché i componenti fisici come i processori, sono piuttosto costosi.

Per evitare dunque che risorse così costose possano rimanere inutilizzate, le aziende tendono a evitare architetture IT all’interno delle quali le differenti applicazioni server funzionano su computer distinti. In altre parole, vengono eseguiti diversi server guest separatamente, ma sulla medesima piattaforma hardware.

I vantaggi

Questo comporta tre vantaggi essenziali:

  • utilizzo migliore dei server;
  • distribuzione più efficace dei vari supporti di memorizzazione;
  • consumo minore di energia per raffreddamento e funzionamento.

Tale tipologia di approccio è particolarmente efficace quando i server consolidati lavorano con picchi di prestazioni sfalsati. Al contrario, se l’harware dell’host viene usato in contemporanea da tutti i guest, è necessario accertarsi che vi siano risorse sufficienti per i vari workload.

Questo perché sussiste il pericolo che un consumo eccessivamente alto di risorse anche solo in una delle macchine virtuali, possa avere ripercussioni negative sulle prestazioni di altre applicazioni in qualsiasi VM del medesimo host. Per quanto la sicurezza inviolabile sia un concetto quasi astratto, la virtualizzazione harware è relativamente sicura.

Ogni sistema guest infatti, è eseguito in maniera isolata in un suo ambiente hardware virtuale. Questo significa che se uno dei sistemi guest dovesse finire sotto attacco di un hacker, oppure danneggiato da un malware in alcune delle sue funzionalità, non ci sarebbero ripercussioni sugli altri sistemi guest che si affidano allo stesso host.

Nonostante questa indubbia sicurezza, anche questa situazione mostra un punto debole, che si verifica nel momento in cui un hacker dovesse riuscire a sfruttare un qualsiasi punto debole dell’hypervisor, riuscendo di conseguenza ad avere accesso a quello che è il suo sistema sottostante.

Qual è il livello di sicurezza della macchina virtuale

Il livello di sicurezza della macchina virtuale dunque, è determinato da quello del software di virtualizzazione, ma anche dalla celerità con cui vengono individuate e chiuse le falle da parte del suo fornitore. Ad ogni modo, negli ultimi tempi la virtualizzazione hardware è entrata in concorrenza con altri concetti di virtualizzazione.

Uno dei motivi che ha generato questa situazione, è quello che viene definito “overhead delle macchine virtuali”. Volendo fare un esempio concreto, la tecnologia dei container, ovvero una forma di virtualizzazione software, non necessita dell’hypervisor. In termini di risorse quindi, una virtualizzazione eseguita in container isolati è più efficiente.

I container però, offrono un livello di isolamento decisamente inferiore rispetto a quello delle virtual machine. Proprio per tutti questi motivi, allo stato attuale delle cose, è altamente improbabile che una delle due tecnologie abbia la capacità di poter soppiantare l’altra.

Virtualizzazione hardware: vantaggi e svantaggi

Per praticità, vogliamo riportare nel dettaglio vantaggi e svantaggi della virtualizzazione hardware. Di seguito dunque i principali vantaggi di questa tecnologia:

  • possibilità di allocazione delle risorse hardware più efficiente e dinamico in ambito di consolidamento server;
  • l’hardware consolidato è molto più efficiente, rispetto ai computer separati, dal punto di vista energetico;
  • attraverso l’isolamento dei workload, le virtual machine offrono livelli di isolamento e quindi di sicurezza più alti.

Tra i principali svantaggi invece troviamo:

  • riprodurre un ambiente hardware con il relativo sistema operativo, porta a possibili overhead;
  • le performance di una virtual machine possono essere influenzate da quelle di altre VM presenti sullo stesso host.

Cos’è un software di virtualizzazione

Abbiamo detto che non sono solamente i componenti hardware a poter essere virtualizzati, ma anche i software. Gli approcci più comuni a questa tipologia di applicazione sono la virtualizzazione delle applicazioni, del desktop e del sistema operativo.

La virtualizzazione delle applicazioni riguarda l’astrazione di applicazioni singole da quello che è il sistema operativo sottostante. Questa soluzione si rivela particolarmente efficace per l’implementazione locale. Un esempio può essere quello di proteggere l’S.O. sottostante da quelli che sono potenziali codici maligni.

In alternativa, tali applicazioni virtualizzate, potranno essere fornite su di un unico server per differenti client presenti in rete. In questa particolare situazione, gli utenti avranno la possibilità di accedere ad applicazioni virtualizzate, mediante il cosiddetto streaming delle applicazioni.

Cosa si intende con virtualizzazione del desktop

Con la definizione virtualizzazione del desktop invece, intendiamo un concetto per cui gli ambienti desktop sono forniti centralmente, e di conseguenza vengono utilizzati attraverso una rete. Questa tipologia di approccio trova il suo impiego ideale proprio in ambito aziendale.

Le aziende moderne infatti, mettono a disposizione dei collaboratori postazioni di lavoro comprensive di PC. Singolarmente, ognuno di questi computer dovrà essere configurato e gestito. Tuttavia, l’amministrazione locale in questo caso risulta particolarmente dispendiosa, quantomeno in termini di tempo. La struttura è di tipo client-server.

Infine troviamo la virtualizzazione del sistema operativo. Le funzioni native della virtualizzazione in questa situazione, consentono l’esecuzione in parallelo di più istanze isolate all’interno dello spazio utente. Tale concetto è differente dalla virtualizzazione hardware, perché non viene riprodotto un sistema guest nella sua totalità.

Paragonata dunque alla virtualizzazione hardware, quella del sistema operativo si contraddistingue proprio per una riduzione significativa della virtualizzazione. In altre parole, viene arginato uno degli svantaggi tipici della virtualizzazione hardware, ovvero l’overhead degli hypervisor.

Mentre per ogni virtual machine occorre infatti un sistema operativo dedicato, questa tecnologia permette a moltissimi microservice di funzionare correttamente in ambienti di runtime isolati, sempre e comunque facendo affidamento su un unico sistema operativo.

I vantaggi

Tra i principali vantaggi della virtualizzazione del sistema operativo, troviamo:

  • presenza dell’hypervisor non necessaria, grazie a un basso livello di virtualizzazione.
  • l’utente può godere di una buona scalabilità.
  • assenza di processi di installazione complicati.
  • rimozione senza residui dei software.

Gli svantaggi

Facendo riferimento invece agli svantaggi della virtualizzazione del sistema operativo, troviamo:

  • precisi requisiti tecnici. I container di Linux ad esempio, potranno essere eseguiti solamente su sistemi Windows attraverso l’emulazione;
  • livello di isolamento inferiore dei container rispetto alle virtual machine. Proprio per questo motivo, questa tecnologia non è idonea all’implementazione delle varie istanze di sicurezza.

VPN e virtualizzazione

virtualizzazione e vpn

Un ultimo riferimento sulle tipologie di virtualizzazioni, che ricordiamo sono davvero numerose, riguarda le reti. Sempre più diffuse sono infatti le VPN, ovvero le Virtual Private Network, reti virtuali basate su reti fisiche. Le VPN vengono utilizzate per la realizzazione di connessioni sicure. Un esempio può essere quello del collaboratore che necessita di accedere da una postazione esterna alla rete aziendale.

Dato che internet è una rete pubblica, la protezione dei tuoi dati non è garantita, in questo caso si consiglia la virtualizzazione. Molte aziende produttrici di software offrono soluzioni di virtualizzazione tramite i processi di crittografia e autenticazione. In questo modo la connessione avviene in una rete privata.

Lascia un commento