Un hy­per­vi­sor è un software o firmware che crea e gestisce macchine virtuali, astraendo le risorse hardware di un computer fisico e ren­den­do­le ac­ces­si­bi­li a più sistemi operativi con­tem­po­ra­nea­men­te. Invece di costruire un sistema completo (incluso hardware e sistema operativo), si crea sem­pli­ce­men­te una versione virtuale di esso, dando così l’illusione di un ambiente PC.

Come funziona un hy­per­vi­sor?

Quando si crea una macchina virtuale (VM), questa funziona sulla base di una macchina non virtuale, reale, ad esempio su un PC. La VM dipende quindi dall’hardware fisico. Pertanto, esiste uno strato tra i due livelli che si occupa della gestione: l’hy­per­vi­sor. L’hy­per­vi­sor è un software che si occupa della gestione delle risorse ne­ces­sa­rie. Il programma, noto anche come Virtual Machine Monitor (VMM), assegna risorse all’interno del sistema. In questo modo, è possibile eseguire più macchine virtuali diverse su un sistema host, poiché l’hy­per­vi­sor ga­ran­ti­sce che queste non si osta­co­li­no a vicenda e che tutte abbiano a di­spo­si­zio­ne le capacità ne­ces­sa­rie.

L’hy­per­vi­sor crea quindi uno strato di astra­zio­ne tra l’hardware e i sistemi operativi che vi girano sopra. Questo avviene sud­di­vi­den­do le risorse hardware in unità logiche e simulando per ogni VM un ambiente in­di­pen­den­te. In questo modo, le VM hanno l’im­pres­sio­ne di fun­zio­na­re di­ret­ta­men­te su hardware reale, anche se con­di­vi­do­no le risorse con altre VM.

N.B.

La rigorosa se­pa­ra­zio­ne tra le diverse macchine virtuali non solo ga­ran­ti­sce una buona di­stri­bu­zio­ne delle risorse, ma aumenta anche la sicurezza. L’hy­per­vi­sor assicura che un sistema ospite non possa accedere ai file di un altro sistema ospite. Questo è par­ti­co­lar­men­te im­por­tan­te per scopi di test, in modo che un programma difettoso non possa dan­neg­gia­re anche altri ambienti di test.

Gestione della memoria

Nella vir­tua­liz­za­zio­ne della CPU, l’hy­per­vi­sor utilizza tecniche come il time-slicing per di­stri­bui­re equamente la potenza di calcolo tra le VM. I pro­ces­so­ri moderni di­spon­go­no di fun­zio­na­li­tà di vir­tua­liz­za­zio­ne spe­ci­fi­che (ad esempio, Intel VT-x o AMD-V) che sup­por­ta­no l’hy­per­vi­sor e riducono il so­vrac­ca­ri­co.

La RAM invece viene gestita tramite tecniche di paging e mapping. L’hy­per­vi­sor assegna indirizzi di memoria virtuale a blocchi di memoria fisica, in modo che ogni VM vi­sua­liz­zi solo la propria area di memoria. Quando la memoria scar­seg­gia, può uti­liz­za­re mec­ca­ni­smi come il Memory Over­com­mit­ment o il Bal­loo­ning per di­stri­bui­re la memoria in modo ef­fi­cien­te tra le VM.

Gestione I/O e pe­ri­fe­ri­che

Le macchine virtuali accedono a di­spo­si­ti­vi hardware come dischi rigidi, schede di rete o schede grafiche tramite in­ter­fac­ce virtuali. L’hy­per­vi­sor emula questi di­spo­si­ti­vi o invia di­ret­ta­men­te le richieste all’hardware fisico (tecniche Direct-I/O o Pass-Through). Questo ga­ran­ti­sce un equi­li­brio tra com­pa­ti­bi­li­tà e pre­sta­zio­ni.

Iso­la­men­to e sicurezza

Un vantaggio es­sen­zia­le della vir­tua­liz­za­zio­ne è l’iso­la­men­to tra le VM. Ogni VM opera in un proprio ambiente, in modo che errori o attacchi non abbiano effetti diretti su altre macchine virtuali o sul sistema host. L’hy­per­vi­sor im­ple­men­ta diversi mec­ca­ni­smi di sicurezza per garantire una se­pa­ra­zio­ne rigorosa, tra cui pro­te­zio­ne della memoria, controlli di accesso e tecniche di sand­bo­xing.

Consiglio

Se desideri uti­liz­za­re una macchina virtuale, puoi scegliere tra diversi software di vir­tua­liz­za­zio­ne. Per gli utenti finali, ad esempio, si adattano bene Vir­tual­Box o Hyper-V, la soluzione di vir­tua­liz­za­zio­ne di Microsoft. Per le grandi aziende, è un’opzione con­si­glia­ta la suite di vir­tua­liz­za­zio­ne di VMware Broadcom.

Diversi tipi di Virtual Machine Monitor

Esistono due diversi tipi di Virtual Machine Monitor: hy­per­vi­sor di tipo 1 e 2. Entrambi si ca­rat­te­riz­za­no per vantaggi specifici. Il primo è quello più datato; i primi tentativi di vir­tua­liz­za­zio­ne tramite questa tec­no­lo­gia risalgono infatti agli anni ‘60.

Hy­per­vi­sor di tipo 1

Il primo tipo di hy­per­vi­sor è chiamato Bare Metal Hy­per­vi­sor o Native Hy­per­vi­sor. Questa forma di VMM è impostata di­ret­ta­men­te sull’hardware fisico e non è collegata al sistema operativo dell’host. Pertanto, tale hy­per­vi­sor deve includere anche ogni driver del di­spo­si­ti­vo stesso. Il consumo di risorse di un hy­per­vi­sor di tipo 1 è re­la­ti­va­men­te basso perché la potenza di calcolo non deve ne­ces­sa­ria­men­te passare at­tra­ver­so il sistema operativo dell’host. Questo tipo di hy­per­vi­sor è indicato prin­ci­pal­men­te per gli utenti che vogliono uti­liz­zar­lo per creare un server per la vir­tua­liz­za­zio­ne, mentre è troppo complesso per progetti più piccoli in ambito domestico.

Immagine: Rappresentazione schematica del funzionamento dell’hypervisor di tipo 1
Un hy­per­vi­sor di tipo 1 si trova di­ret­ta­men­te sull’hardware.

Hy­per­vi­sor di tipo 2

La seconda variante (nota anche come Hosted Hy­per­vi­sor) richiede un sistema operativo esistente, che a sua volta si basa sull’hardware fisico. L’hy­per­vi­sor di tipo 2 viene quindi in­stal­la­to come qualsiasi altro programma. La VMM gestisce poi la vir­tua­liz­za­zio­ne. I driver dei di­spo­si­ti­vi non devono essere in­stal­la­ti nell’hy­per­vi­sor, poiché il sistema operativo reale può sem­pli­ce­men­te tra­smet­ter­li al software. Tuttavia, questo vantaggio va a discapito delle pre­sta­zio­ni. Una gran parte delle risorse viene già persa nel sistema operativo host. Grazie alla loro semplice in­stal­la­zio­ne e con­fi­gu­ra­zio­ne, gli hy­per­vi­sor di tipo 2 si adattano per­fet­ta­men­te per progetti di piccole di­men­sio­ni.

Immagine: Rappresentazione schematica del funzionamento dell’hypervisor di tipo 2
L’hy­per­vi­sor di tipo 2 è in­stal­la­to su un sistema operativo esistente.
Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7
Vai al menu prin­ci­pa­le