Jump to section

Cos'è un hypervisor?

Copia URL

Un hypervisor è un software che crea ed esegue macchine virtuali (VM). Un hypervisor, noto anche come virtual machine monitor (VMM), isola il proprio sistema operativo e le proprie risorse dalle macchine virtuali, consentendo la creazione e la gestione di queste ultime.

Quando l'hardware fisico è utilizzato come hypervisor è definito host, mentre le VM che ne utilizzano le risorse sono note come guest.

L'hypervisor redistribuisce le risorse (come CPU, memorie o storage) tra i guest esistenti o le nuove macchine virtuali.

Per eseguire le macchine virtuali, tutti gli hypervisor necessitano di componenti a livello di sistema operativo, ovvero gestori di memoria, utilità di pianificazione dei processi, stack di input/output (I/O), driver di periferiche, gestori della sicurezza, stack di rete e molto altro ancora.

L'hypervisor attribuisce a ogni macchina virtuale le risorse che sono state distribuite e gestisce l'assegnazione delle risorse VM sulle risorse fisiche. L'esecuzione è sempre compito dell'hardware fisico. Per esempio, il CPU esegue le istruzioni inviate dalle VM, mentre l'hypervisor si occupa dell'assegnazione.

Più sistemi operativi diversi possono essere eseguiti in contemporanea e condividere le stesse risorse hardware virtualizzate con un hypervisor. Questo è un vantaggio fondamentale della virtualizzazione, senza cui è possibile eseguire un solo sistema operativo sull'hardware. 

I vendor tradizionali e open source mettono a disposizione vari tipi di hypervisor. VMware propone alcune tra le scelte di virtualizzazione più diffuse: l'hypervisor ESXi e la piattaforma di virtualizzazione vSphere.

Kernel-based Virtual Machine (KVM) è l'opzione open source che fa parte del kernel Linux®. Tra le altre soluzioni sono inclusi Xen, che è open source, e Microsoft Hyper-V. 

Gli hypervisor utilizzati per la virtualizzazione possono essere di tipo 1 e 2.

Tipo 1

Gli hypervisor di tipo 1, noti anche come hypervisor native o bare metal, vengono eseguiti direttamente sull'hardware dell'host per gestire i sistemi operativi guest. Sostituiscono il sistema operativo host e assegnano le risorse VM direttamente all'hardware. 

Questo tipo di hypervisor è molto utilizzato nei data center aziendali o in altri ambienti basati su server.

Tra gli hypervisor di tipo 1 sono inclusi KVM, Microsoft Hyper-V e VMware vSphere. KVM è stato integrato nel kernel di Linux nel 2007, quindi se utilizzi una versione recente di Linux, hai già accesso a KVM. 

Tipo 2

Un hypervisor di tipo 2, o hypervisor in hosting, viene eseguito su un sistema operativo convenzionale come un'applicazione o un software leggero.

Questo tipo di hypervisor isola i sistemi operativi guest dal sistema operativo host. Le risorse VM vengono assegnate su un sistema operativo host, che a sua volta viene eseguito sull'hardware. 

Un hypervisor di tipo 2 è la soluzione più adeguata per i singoli utenti che vogliono eseguire più sistemi operativi sul proprio computer. 

VMware Workstation e Oracle VirtualBox sono hypervisor di tipo 2. 

A livello macroscopico, i container e le macchine virtuali sembrano simili. Entrambi sono pacchetti di ambienti di elaborazione che uniscono vari componenti IT e li isolano dal resto del sistema. La differenza principale risiede nel livello di scalabilità e portabilità. 

Un container è un insieme di uno o più processi isolati dal resto del sistema, che possono accedere solo alle richieste di risorse che sono state specificate. Questi limiti imposti alle risorse garantiscono che il container possa essere eseguito su un nodo che ha una capacità sufficiente.

Ogni VM contiene il suo sistema operativo, che le permette di eseguire contemporaneamente diverse funzioni a elevato utilizzo di risorse. Il numero di risorse sempre maggiore a disposizione delle VM consente loro di astrarre, suddividere, duplicare ed emulare interi server, sistemi operativi, desktop, database e reti

Inoltre, un hypervisor ti consente di eseguire più sistemi operativi nelle macchine virtuali, ma i container possono eseguire solo un singolo tipo di sistema operativo. Un container eseguito su un server Linux, ad esempio, sarebbe in grado di eseguire solo un sistema operativo Linux. 

A volte i container vengono considerati erroneamente come un'alternativa agli hypervisor, ma di fatto queste due soluzioni soddisfano esigenze diverse.

Una VM fornisce un ambiente isolato dal resto del sistema; qualsiasi elemento eseguito all'interno di una VM non interferisce con quanto viene eseguito nell'hardware host.

Poiché le macchine virtuali sono isolate, in genere la compromissione di una singola VM non influisce sull'intero sistema. 

Tuttavia, se è l'hypervisor a essere hackerato, anche le macchine virtuali che gestisce possono essere danneggiate, e i dati all'interno di ogni VM vengono messi a rischio. 

I requisiti e i protocolli di sicurezza possono variare in base al tipo di hypervisor.

Un hypervisor è la base su cui si fonda la piattaforma di virtualizzazione. Da molto tempo Red Hat® sostiene lo sviluppo della virtualizzazione, contribuendo, ad esempio, all'ottimizzazione dell'hypervisor KVM e ai progetti KVM e oVirt fin dalla fondazione di entrambe le community.

Red Hat OpenShift® Virtualization, una funzionalità di Red Hat OpenShift, consente ai team IT di integrare le macchine virtuali (VM) nei flussi di lavoro containerizzati. Quando eseguono una VM all'interno di un container, i team possono distribuire e gestire le macchine virtuali insieme ai container su una singola piattaforma. In questo modo le aziende possono sfruttare i vantaggi degli investimenti già impegnati nell'ambito della virtualizzazione e usufruire al contempo della semplicità e velocità di una piattaforma applicativa moderna.

La migrazione delle macchine virtuali esistenti dalle altre piattaforme a OpenShift si può eseguire tramite strumenti dedicati, gratuiti e intuitivi. Le macchine virtuali risultanti vengono eseguite in parallelo ai container negli stessi nodi Red Hat OpenShift.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è una macchina virtuale (VM)?

Una macchina virtuale (VM) è un ambiente di elaborazione isolato creato astraendo le risorse da una macchina fisica.

ARTICOLO

La tecnologia KVM

KVM (Kernel-based Virtual Machine) è una tecnologia di virtualizzazione open source che trasforma Linux in un hypervisor.