Hypervisor
Cos’è un hypervisor?
Un hypervisor è un software che facilita l’esecuzione di più macchine virtuali (VM) con i propri sistemi operativi sull’hardware di un singolo computer host. La macchina host e le sue risorse hardware fisiche gestiscono in modo indipendente una o più VM come sistemi operativi guest.
Più VM guest condividono le risorse di elaborazione fisiche del sistema, inclusi cicli di elaborazione, spazio di memoria e larghezza di banda di rete.
Gli hypervisor sono anche noti come monitor di macchine virtuali. Possono aiutare a consolidare lo spazio su un server o a eseguire più applicazioni isolate su un unico server. Gli hypervisor sono comunemente gestiti utilizzando software specializzati, come vCenter di VMware, che gestisce gli ambienti vSphere.
Tipi di hypervisor
Gli hypervisor sono tradizionalmente implementati come livello software, come VMware vSphere o Microsoft Hyper-V. Ma possono anche essere implementati come codice incorporato nel firmware di un sistema. Esistono due tipi principali di hypervisor: hypervisor di Tipo 1 e hypervisor di Tipo 2.
Hypervisor di tipo 1
Gli hypervisor di tipo 1 vengono distribuiti direttamente sull’hardware del sistema, senza alcun sistema operativo sottostante o altro software. Hanno accesso diretto alle risorse di sistema e sono chiamati hypervisor bare-metal. Sono il tipo di hypervisor più comune per i data center aziendali. Alcuni esempi includono vSphere e Hyper-V.
Hypervisor di tipo 2
Gli hypervisor di tipo 2 vengono eseguiti come livello software su un sistema operativo host e sono solitamente chiamati hypervisor hosted. Alcuni esempi includono VMware Workstation Player e Parallels Desktop. Gli hypervisor hosted si trovano spesso su endpoint come i personal computer.
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 una parte fondamentale del lavoro di qualsiasi amministratore o operatore di sistema. Questi professionisti IT devono comprendere il funzionamento dell’hypervisor e come eseguire attività di gestione, come la configurazione e il monitoraggio delle VM, la gestione del sistema operativo, la migrazione e gli snapshot.
Anche il ruolo di un hypervisor si sta espandendo. Ad esempio, gli hypervisor di storage virtualizzano tutte le risorse di storage in un ambiente per creare pool di storage centralizzati. Gli amministratori possono quindi eseguire il provisioning di tali pool senza doversi preoccupare della posizione fisica dello storage. Gli hypervisor di storage sono un elemento chiave dello storage definito dal software.
Gli hypervisor consentono anche la virtualizzazione di rete, consentendo agli amministratori di 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 di rete è un elemento chiave nelle piattaforme più ampie di networking definito dal software e di data center definito dal software.
Vantaggi degli hypervisor
Tra i vantaggi offerti dagli hypervisor vi sono i seguenti:
- Efficienza. Un sistema host fisico che esegue più VM guest può migliorare notevolmente l’efficienza dell’hardware sottostante di un data center. I server fisici non virtualizzati potrebbero essere in grado di ospitare un solo sistema operativo e una singola applicazione. Un hypervisor consente al sistema di ospitare più istanze di VM sullo stesso sistema fisico, ciascuna delle quali esegue un sistema operativo e un’applicazione indipendenti. Questo approccio utilizza una quantità di risorse di elaborazione molto maggiore rispetto a quelle disponibili nel sistema.
- Mobilità. Anche le VM sono 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, il che significa che lo spostamento dell’applicazione su un altro server richiede una reinstallazione e una riconfigurazione dell’applicazione che richiedono molto tempo e sono soggette a errori. L’hypervisor rende i dettagli hardware sottostanti irrilevanti per le VM. Gli amministratori possono spostare o migrare le VM tra qualsiasi server virtualizzato locale o remoto con risorse di elaborazione sufficienti, praticamente senza alcuna interruzione per la VM. Questa funzionalità è chiamata migrazione in tempo reale.
- Sicurezza e affidabilità. Anche se le VM vengono eseguite sulla stessa macchina fisica, un hypervisor le mantiene logicamente isolate l’una dall’altra. Una VM non ha conoscenza nativa né dipendenza da altre VM. Un errore, un crash o un attacco malware su una VM non si propaga ad altre VM sulla stessa macchina o su altre. Questo rende la tecnologia hypervisor estremamente sicura e affidabile.
- Protezione della versione. Gli snapshot delle VM consentono agli amministratori di ripristinare istantaneamente una VM a uno stato precedente. Gli snapshot, o checkpoint, come li chiama Microsoft, non sono pensati per sostituire i backup. Anzi, fungono da meccanismo di protezione, soprattutto durante la manutenzione di una macchina virtuale. Se un amministratore aggiorna il sistema operativo di una macchina virtuale, può creare uno snapshot prima di eseguire l’aggiornamento. Se l’aggiornamento non riesce, lo snapshot può essere utilizzato per ripristinare il sistema operativo e riportare immediatamente la macchina virtuale allo stato precedente.
Problemi e pratiche di sicurezza dell’hypervisor
Il processo di sicurezza dell’hypervisor deve garantire la sicurezza dell’hypervisor durante tutto il suo ciclo di vita, inclusi sviluppo e implementazione.
Se un aggressore ottiene l’accesso non autorizzato all’hypervisor, al software di gestione o al software che orchestra l’ambiente virtuale, potrebbe potenzialmente accedere a tutti i dati archiviati in ciascuna VM.
Altre possibili vulnerabilità in un ambiente virtualizzato includono cache hardware condivise, la rete e il potenziale accesso al server fisico.
Le seguenti pratiche di sicurezza possono contribuire a mitigare i rischi di accesso non autorizzato a un hypervisor:
- Limitazione degli utenti in un sistema locale.
- Limitare le superfici di attacco eseguendo gli hypervisor su un host dedicato che non svolga ruoli aggiuntivi.
- Adeguamento alle best practice di gestione delle patch per mantenere i sistemi aggiornati.
- Configurazione dell’host in modo che agisca come parte di un fabric protetto.
- Crittografia delle VM per impedire l’accesso ad amministratori non autorizzati.
- Utilizzo di BitLocker o di un servizio di crittografia simile per crittografare lo storage su cui risiedono le VM.
- Utilizzo del controllo degli accessi basato su rollover per limitare i privilegi amministrativi.
- Utilizzo di schede di rete fisiche dedicate per la gestione, la migrazione delle VM e il traffico del cluster.
- Esecuzione periodica di test di sicurezza per garantire la sicurezza dell’hypervisor.
Container vs. hypervisor
Gli hypervisor ospitano VM basate sul kernel e sono progettati per creare un ambiente che simula un insieme di macchine fisiche. Ogni VM contiene un proprio sistema operativo indipendente. Al contrario, i container possono condividere un kernel del sistema operativo, noto come immagine di base. Ogni container esegue un’applicazione o un microservizio separato, ma dipende dall’immagine di base sottostante per funzionare.
Microsoft offre due diverse opzioni per i container. Un’architettura container tradizionale può essere eseguita su Windows Server. Un’implementazione di container Hyper-V può fungere da ambiente ibrido. Hyper-V utilizza una VM come base per la sua infrastruttura container.
Kubernetes è diventato lo strumento standard per la gestione di container Linux in ambienti cloud privati, pubblici e ibridi. Kubernetes è un sistema open source creato da Google; lanciato originariamente nel 2015. Automatizza la pianificazione, l’implementazione, il ridimensionamento e la manutenzione dei container sui nodi del cluster.
Hypervisor cloud
I provider di servizi cloud utilizzano la tecnologia hypervisor per facilitare l’accesso alle applicazioni cloud tramite ambienti virtuali. Gli hypervisor cloud forniscono accesso a una varietà di applicazioni. Possono aiutare a migrare rapidamente le applicazioni in un ambiente cloud, rendendo la tecnologia hypervisor un vantaggio per molte iniziative di trasformazione digitale.
Tra i principali provider di servizi di cloud computing, Amazon Web Services utilizza Nitro Hypervisor, Microsoft Azure utilizza Azure Hypervisor e Google utilizza Compute Engine.
Fornitori e mercato degli hypervisor
Sono disponibili numerosi hypervisor, che vanno da piattaforme gratuite a prodotti di livello enterprise. Di seguito sono riportati alcuni esempi di provider di hypervisor e dei loro sistemi:
- Citrix Hypervisor.
- Linux KVM (VM basata su kernel).
- Nutanix AHV (Acropolis Hypervisor).
- Microsoft Hyper-V.
- Oracle VM Server.
- Oracle VM VirtualBox.
- VMware ESXi.
Storia della virtualizzazione e degli hypervisor
Gli anni ’60 e ’70 hanno visto la creazione dei primi hypervisor. Nel 1966, IBM lanciò il suo primo sistema informatico di produzione, l’IBM System/360-67, che supportava la virtualizzazione completa e i servizi di time-sharing. IBM iniziò anche a produrre il suo sistema CP-40 nel 1967. Questo sistema utilizzava un sistema S/360-40 modificato che offriva funzionalità di virtualizzazione. Permetteva inoltre per la prima volta l’esecuzione simultanea di più applicazioni utente. IBM lanciò il Control Program/Cambridge Monitor System nel 1968, che fu utilizzato per tutti gli anni ’70.
Nel 1970, IBM lanciò il System/370 e aggiunse il supporto per la memoria virtuale nel 1972. Da allora, la virtualizzazione è diventata una funzionalità di tutti i sistemi IBM. In questo periodo, i membri della comunità iniziarono anche a utilizzare progetti open source per sviluppare ulteriormente sistemi virtuali con hypervisor.
IBM introdusse l’hypervisor Processor Resource/System Manager nel 1985, in grado di gestire partizioni logiche. A metà degli anni 2000, un numero sempre maggiore di sistemi operativi, tra cui Linux, Unix e Windows, iniziò a supportare gli hypervisor. Anche hypervisor più economici iniziarono ad apparire, dotati di hardware migliore e capacità di consolidamento migliorate.
Nel 2005, i fornitori iniziarono a supportare la virtualizzazione dei prodotti x86.