Cos’è un hypervisor? Significato e caratteristiche
Gli hypervisor vengono spesso trascurati come tecnologia in favore del più appariscente concetto di virtualizzazione, ma non si può arrivare a questa finché non si capisce cosa fa un hypervisor all’interno di un sistema informatico. Mentre i vantaggi della virtualizzazione e del cloud computing possono ora sembrare “vecchi” nell’infrastruttura IT, non è sempre stato così, ed è la tecnologia hypervisor che ha contribuito a guidare l’innovazione nel mondo del cloud.
Definizione di hypervisor
Un hypervisor è un processo che separa il sistema operativo e le applicazioni di un computer dall’hardware fisico sottostante. L’hypervisor guida il concetto di virtualizzazione consentendo alla macchina host fisica di utilizzare più macchine virtuali come ospiti per aiutare a massimizzare l’uso efficace delle risorse di calcolo come la memoria, la larghezza di banda della rete e i cicli della CPU.
Storia degli hypervisor
Tra la fine degli anni ’60 e gli anni ’70, la maggior parte del lavoro di virtualizzazione e hypervisor è stato visto su computer mainframe sviluppati da IBM per l’uso nella creazione di sistemi di time sharing, test di nuove idee di sistemi operativi o persino esplorazione di nuovi concetti hardware. L’aspetto della virtualizzazione ha consentito ai programmatori di implementare ed eseguire il debug senza compromettere la stabilità del sistema di produzione principale e senza dover implementare ulteriori costosi sistemi di sviluppo.
Passando alla metà degli anni 2000, gli hypervisor hanno assunto un ruolo sempre più centrale quando Unix, Linux e altri sistemi operativi di tipo Unix hanno iniziato a utilizzare le tecnologie di virtualizzazione. Le ragioni della crescita degli hypervisor e della virtualizzazione includevano migliori capacità hardware, che ora consentirebbero a una singola macchina di svolgere più lavori simultaneamente. Inoltre, nel 2005, i fornitori di CPU hanno iniziato ad aggiungere la virtualizzazione dell’hardware ai loro prodotti basati su piattaforma x86, estendendo la disponibilità (e i vantaggi) della virtualizzazione all’utenza basata su PC e server.
Benefici degli hypervisor
Anche se le macchine virtuali possono essere eseguite sullo stesso hardware fisico, sono ancora logicamente separate l’una dall’altra. Ciò significa che se una VM (Virtual Machine) sperimenta un errore, un arresto anomalo o un attacco malware, questi non si estendono ad altre VM sulla stessa macchina o su altre macchine.
Le macchine virtuali sono anche molto “mobili” poiché sono indipendenti dall’hardware sottostante e poiché possono essere spostate o migrate tra server virtualizzati locali o remoti molto più facilmente rispetto alle applicazioni tradizionali legate all’hardware fisico.
Esistono due tipi di hypervisor: Type 1 e Type 2. I Type 1, a volte denominati hypervisor nativi o bare metal, sono eseguiti direttamente sull’hardware dell’host per controllare l’hardware e gestire le macchine virtuali ospiti. I moderni hypervisor includono Xen, Oracle VM Server per SPARC, Oracle VM Server per x86, Microsoft Hyper-V e VMware ESX / ESXi.
Gli hypervisor Type 2, a volte chiamati hypervisor hosted, funzionano su un sistema operativo convenzionale, proprio come altre applicazioni sul sistema. In questo caso un OS ospite viene eseguito come processo sull’host, mentre gli hypervisor separano l’OS ospite dal sistema operativo host. Esempi di hypervisor Type 2 includono VMware Workstation, VMware Player, VirtualBox e Parallels Desktop per Mac.
Nello spazio del data center aziendale il consolidamento ha generato tre principali fornitori sul fronte dell’hypervisor: VMware, Microsoft e Citrix Systems.
Container contro hypervisor
Negli ultimi anni, la tecnologia dei container è cresciuta in popolarità come possibile alternativa agli hypervisor, poiché i container possono collocare più applicazioni in un singolo server fisico rispetto a una macchina virtuale.
“Le macchine virtuali assorbono molte risorse di sistema. Ogni VM esegue non solo una copia completa di un sistema operativo, ma una copia virtuale di tutto l’hardware che deve essere eseguito dal sistema operativo. Questo aggiunge rapidamente molti cicli di RAM e CPU. Al contrario, tutto ciò che richiede un container è un sistema operativo che supporti programmi e librerie e risorse di sistema per eseguire un programma specifico” ha affermato Steven J. Vaughan-Nichols in questo articolo di Network World del 2016.
Le preoccupazioni sulla sicurezza e gli usi pratici delle macchine virtuali, tuttavia, significano che i container non necessariamente sostituiranno gli hypervisor/VM, ma piuttosto che le aziende useranno una combinazione di entrambi. Per quanto riguarda la sicurezza, alcuni ritengono che i container siano meno sicuri degli hypervisor, poiché hanno solo un sistema operativo condiviso dalle applicazioni, mentre le macchine virtuali isolano non solo l’applicazione, ma anche il sistema operativo.
Se un’applicazione viene compromessa in un container, potrebbe attaccare il singolo sistema operativo interessando anche altre applicazioni. Se invece un’applicazione in una VM viene compromessa, sarà interessato solo un OS su quel server, non altre applicazioni o sistemi operativi sulla VM.
Problemi di sicurezza dell’hypervisor
Mentre gli hypervisor possono essere considerati più sicuri dei container, ciò non significa che non vi siano problemi di sicurezza associati a essi. Ad esempio, in teoria, gli hacker possono creare malware e rootkit che si installano come un hypervisor sotto il sistema operativo. Conosciuto come hyperjacking, questo processo può essere più difficile da rilevare, in quanto il malware potrebbe intercettare le operazioni del sistema operativo (ad esempio, inserendo una password) senza che il software anti-malware lo rilevi.
Espansione dell’hypervisor
Il concetto di hypervisor non si è limitato al funzionamento del server. Gli hypervisor di archiviazione, ad esempio, adottano lo stesso concetto e lo applicano all’archiviazione dei dati. Possono essere eseguiti su hardware fisico, come una macchina virtuale, all’interno di un sistema operativo hypervisor o all’interno di una rete di archiviazione più grande. Proprio come gli hypervisor, un hypervisor di archiviazione può essere eseguito su hardware specifico o essere indipendente dall’hardware.
Oltre allo storage, gli hypervisor sono fondamentali per altri scenari di virtualizzazione, tra cui la virtualizzazione del desktop, la virtualizzazione del sistema operativo e la virtualizzazione delle applicazioni.
Cos’è un hypervisor embedded?
Questi sono diversi dagli hypervisor che si rivolgono a server e applicazioni desktop. L’hypervisor embedded è infatti progettato nel dispositivo embedded fin dall’inizio, anziché essere caricato successivamente alla distribuzione del dispositivo.
Mentre gli ambienti desktop e aziendali utilizzano gli hypervisor per consolidare l’hardware e isolare gli ambienti di elaborazione gli uni dagli altri, in un sistema embedded i vari componenti generalmente funzionano collettivamente per fornire le funzionalità del dispositivo. La virtualizzazione mobile si sovrappone alla virtualizzazione del sistema incorporato e condivide alcuni casi d’uso.