Un hypervisor è un software che permette l’esecuzione di più macchine virtuali (VM) sull’hardware di un singolo computer host grazie ai propri sistemi operativi. Ciò che accade è che la macchina host e le sue risorse hardware fisiche gestiscono in modo indipendente una o più macchine virtuali come fossero sistemi operativi guest. Più macchine virtuali guest, quindi, condividono le risorse fisiche di calcolo del sistema, tra cui cicli di processore, spazio di memoria e larghezza di banda di rete.
Gli hypervisor possono essere considerati anche come monitor di macchine virtuali: aiutano a consolidare lo spazio su un unico server o a eseguirvi più applicazioni isolate. Gli hypervisor sono comunemente gestiti tramite un software specializzato, come il vCenter di VMware, che gestisce gli ambienti vSphere.
Due tipologie di hypervisor
Gli hypervisor sono tradizionalmente implementati come un livello software, come VMware vSphere o Microsoft Hyper-V. In alternativa, possono essere implementati come codice incorporato nel firmware di un sistema. Esistono due tipi principali di hypervisor
Gli hypervisor di tipo 1 sono distribuiti direttamente sull’hardware del sistema senza alcun sistema operativo o altro software sottostante. Hanno accesso diretto alle risorse del sistema, sono chiamati hypervisor bare-metal e considerati i più comuni per data center aziendali. Ne sono un esempio vSphere e Hyper-V
Gli hypervisor di tipo 2 vengono eseguiti come livello software in cima a un sistema operativo host, sono solitamente chiamati hypervisor “hosted” e si trovano spesso su endpoint come i personal computer. Alcuni esempi sono: VMware Workstation Player e Parallels Desktop.
A cosa servono gli hypervisor?
La tecnologia di virtualizzazione aggiunge un livello cruciale di gestione e controllo sul data center e sull’ambiente aziendale, il che rende gli hypervisor fondamentali per chi amministra il sistema. I professionisti IT devono quindi capire come funziona l’hypervisor e come usarlo per eseguire le attività di gestione, tra cui la configurazione e il monitoraggio delle macchine virtuali, la gestione del sistema operativo, la migrazione e le istantanee.
Il ruolo di un hypervisor si sta inoltre espandendo. Per esempio, quelli di storage virtualizzano tutte le risorse di storage di un ambiente per creare pool di storage centralizzati. Si può quindi effettuare il provisioning di questi pool senza preoccuparsi della posizione fisica dello storage. Gli hypervisor di storage sono un elemento chiave del software-defined storage.
Gli hypervisor consentono anche la virtualizzazione del network, in modo che si possa utilizzare il software per creare, modificare, gestire e rimuovere reti e dispositivi di rete senza mai toccare i dispositivi di rete fisici. Come per lo storage, la virtualizzazione delle reti è un elemento chiave delle più ampie piattaforme di software-defined networking e software-defined data center.
Vantaggi degli hypervisor
I principali vantaggi offerti dagli hypervisor sono:
- Efficienza. Un sistema host fisico che esegue più macchine virtuali guest può migliorare notevolmente l’efficienza dell’hardware sottostante di un data center. I server fisici non virtualizzati possono ospitare un solo sistema operativo e una sola applicazione. Un hypervisor, al contrario, consente al sistema di ospitare più istanze di macchine virtuali sullo stesso sistema fisico, ognuna delle quali esegue un sistema operativo e un’applicazione indipendenti. Questo approccio utilizza molto meglio le risorse di calcolo disponibili nel sistema.
- Mobilità. Le macchine virtuali sono anche mobili. L’astrazione che avviene in un hypervisor rende la VM indipendente dall’hardware sottostante. Il software tradizionale può essere accoppiato all’hardware del server sottostante, quindi poi per spostare l’applicazione su un altro server serve effettuare una reinstallazione e una riconfigurazione dell’applicazione lunga e soggetta a errori. L’hypervisor rende i dettagli dell’hardware sottostante irrilevanti per le macchine virtuali, quindi, si può poi spostare o migrare le macchine virtuali tra qualsiasi server virtualizzato locale o remoto con risorse di calcolo sufficienti, senza che la macchina virtuale subisca alcuna interruzione. Questa opportunità è chiamata migrazione live.
- Sicurezza e affidabilità. Anche se le macchine virtuali vengono eseguite sulla stessa macchina fisica, un hypervisor le mantiene logicamente isolate l’una dall’altra. Una VM non ha alcuna conoscenza o dipendenza nativa da altre VM. Un errore, un crash o un attacco malware su una macchina virtuale non si diffonde ad altre macchine virtuali sulla stessa macchina o su altre macchine. Questo rende la tecnologia degli hypervisor estremamente sicura e affidabile.
- Protezione delle diverse versioni. Le istantanee delle macchine virtuali consentono di ripristinare istantaneamente lo stato precedente di una macchina virtuale. Le istantanee (o checkpoint, come li definisce Microsoft) non sono destinate a sostituire i backup ma fungono da meccanismo di protezione, soprattutto quando si esegue la manutenzione di una macchina virtuale. Se si aggiorna il sistema operativo di una macchina virtuale, si può scattare un’istantanea prima di eseguire l’aggiornamento e, se non ha successo, la si può essere utilizzata per ripristinare il sistema operativo e riportare istantaneamente la macchina virtuale allo stato precedente.
Sicurezza dell’hypervisor: criticità e best practices
Il processo di sicurezza dell’hypervisor deve garantire che sia sicuro durante tutto il suo ciclo di vita, anche durante lo sviluppo e l’implementazione. Se un criminale informatico ottenesse un accesso non autorizzato all’hypervisor, al software di gestione o al software che orchestra l’ambiente virtuale, potrebbe potenzialmente ottenere l’accesso a tutti i dati memorizzati in ogni macchina virtuale.
Altre possibili vulnerabilità in un ambiente virtualizzato sono le cache hardware condivise, la rete e il potenziale accesso al server fisico.
Ci sono alcune best practices di sicurezza che possono contribuire a mitigare i rischi di accesso non autorizzato a un hypervisor:
- Limitare gli utenti di un sistema locale
- Limitare le superfici di attacco eseguendo gli hypervisor su un host dedicato che non svolga ruoli aggiuntivi
- Aderire alle migliori pratiche di gestione delle patch per mantenere i sistemi aggiornati.
- Configurazione dell’host come parte di un fabric protetto.
- Crittografia delle macchine virtuali per impedire l’accesso agli amministratori disonesti.
- BitLocker o servizi di crittografia simile per crittografare lo storage su cui risiedono le macchine virtuali.
- Controllo degli accessi basato su roll per limitare i privilegi amministrativi.
- Adattatori di rete fisici dedicati per la gestione, la migrazione delle macchine virtuali e il traffico del cluster.
- Test di sicurezza periodici per garantire la sicurezza dell’hypervisor.
Container vs. hypervisor
Gli hypervisor che ospitano le macchine virtuali basate sul kernel sono progettati per creare un ambiente che imita un insieme di macchine fisiche. Ogni macchina virtuale contiene il proprio sistema operativo indipendente. I container, invece, possono condividere un kernel del sistema operativo, noto come immagine di base. Ogni contenitore esegue un’applicazione o un microservizio separato, ma dipende comunque dall’immagine di base sottostante per funzionare.
Microsoft offre due diverse opzioni di container. Un’architettura tradizionale può essere eseguita su Windows Server. Una distribuzione di container Hyper-V può agire come un ambiente ibrido, utilizzando una macchina virtuale come base per la sua infrastruttura di container.
Kubernetes è diventato lo strumento standard per la gestione dei container Linux in ambienti cloud privati, pubblici e ibridi. Si tratta di un sistema open source creato da Google e lanciato originariamente nel 2015. Automatizza la pianificazione, la distribuzione, il ridimensionamento e la manutenzione dei container sui nodi del cluster.
Hypervisor & cloud
I fornitori di servizi cloud utilizzano gli hypervisor per facilitare l’accesso alle applicazioni cloud tramite ambienti virtuali. Gli hypervisor cloud consentono di accedere a una serie di applicazioni e aiutano a migrare rapidamente le applicazioni in un ambiente cloud, rendendo la tecnologia hypervisor un vantaggio per molte iniziative di trasformazione digitale.
Tra i principali fornitori di servizi di cloud computing, Amazon Web Services utilizza Nitro Hypervisor, Microsoft Azure utilizza Azure Hypervisor e Google utilizza Compute Engine.
Fornitori di hypervisor e mercato
Sono disponibili numerosi hypervisor, dalle piattaforme gratuite ai prodotti di livello enterprise. Di seguito è riportato un esempio di fornitori di hypervisor e dei relativi sistemi:
- Citrix Hypervisor.
- Linux KVM (Kernel-based VM).
- Nutanix AHV (Acropolis Hypervisor).
- Microsoft Hyper-V.
- Oracle VM Server.
- Oracle VM VirtualBox.
- VMware ESXi.
Storia della virtualizzazione e degli hypervisor
Negli anni ’60 e ’70 sono stati creati i primi hypervisor. Nel 1966, IBM rilasciò il suo primo sistema informatico di produzione, l’IBM System/360-67, che era in grado di effettuare la virtualizzazione completa e i servizi di timesharing. Nel 1967 IBM iniziò a produrre anche il sistema CP-40. Questo sistema funzionava con un sistema S/360-40 modificato che offriva funzionalità di virtualizzazione. Per la prima volta, inoltre, fu possibile eseguire più applicazioni utente in modo simultaneo. Nel 1968 IBM rilascia il Control Program/Cambridge Monitor System, utilizzato per tutti gli anni Settanta.
Nel 1970, IBM rilasciò il System/370 e nel 1972 aggiunse il supporto per la memoria virtuale. Da allora, la virtualizzazione è una caratteristica di tutti i sistemi IBM. In questo periodo, i membri della comunità iniziarono a utilizzare progetti open source per sviluppare ulteriormente sistemi virtuali con hypervisor.
Nel 1985 IBM introdusse l’hypervisor Processor Resource/System Manager, in grado di gestire partizioni logiche. A metà degli anni 2000, un numero maggiore di sistemi operativi, tra cui Linux, Unix e Windows, ha iniziato a supportare gli hypervisor. Cominciano a comparire anche hypervisor a basso costo, con hardware migliore e migliori capacità di consolidamento. Nel 2005, i fornitori hanno iniziato a supportare la virtualizzazione dei prodotti x86.