In un paio di recenti articoli come Conosciamo GNOME Boxes e Rilasciato l’hypervisor Xen 4.19 ci siamo addentrati nel mondo della virtualizzazione ovvero degli hypervisor dandoli come concetti scontati e conosciuti. Rimediamo a questa supposizione che potrebbe non essere vera e qui approfondiamo il significato e l’operatività del concetto di hypervisor che è importante sapere e conoscere nel mondo sei sistemi operativi e di Linux in particolare.
Un hypervisor, noto anche come Virtual Machine Monitor (VMM), è un software che consente di creare ed eseguire macchine virtuali (VM). In pratica, l’hypervisor isola il sistema operativo e le risorse hardware dalle macchine virtuali, permettendo la creazione e gestione di queste ultime.
Concetto di Hypervisor
L’hypervisor agisce come un intermediario tra l’hardware fisico (host) e le macchine virtuali (guest). Questo software assegna le risorse hardware (come CPU, memoria, storage) alle macchine virtuali (VM) e gestisce l’esecuzione delle istruzioni inviate dalle macchine virtuali (VM) all’hardware. Grazie a questa tecnologia, è possibile eseguire contemporaneamente più sistemi operativi diversi sullo stesso hardware fisico, ottimizzando l’uso delle risorse e migliorando l’efficienza.
Tipi di Hypervisor
Esistono 2 tipi di hypervisor: Tipo 1 e Tipo 2.
Hypervisor di Tipo 1 (Bare Metal o Nativo)
Gli hypervisor di tipo 1, noti anche come “bare metal†o “Nativi“, vengono eseguiti direttamente sull’hardware fisico dell’host senza la necessità di un sistema operativo sottostante. Questo tipo di hypervisor offre un accesso diretto alle risorse hardware, garantendo prestazioni elevate e una bassa latenza. Sono comunemente utilizzati nei data center aziendali e in ambienti server.
Esempi di Hypervisor di Tipo 1:
VMware ESXi: una delle soluzioni di virtualizzazione più diffuse. Noto per la sua affidabilità e prestazioni elevate, utilizzato ampiamente nei data center per consolidare server e ottimizzare l’uso delle risorse. Offre funzionalità di sicurezza avanzate e strumenti di gestione centralizzata.
Xen: è un hypervisor open source, sviluppato originariamente dall’Università di Cambridge e ora mantenuto dalla Linux Foundation. È progettato per eseguire più sistemi operativi su un singolo hardware fisico, offrendo isolamento e sicurezza. Supporta sia la virtualizzazione completa che la paravirtualizzazione, ed è utilizzato in molti ambienti cloud di grandi dimensioni come Amazon Web Services (AWS) e Alibaba Cloud2. Noto per la sua architettura leggera e le sue avanzate funzionalità di sicurezza.
KVM (Kernel-based Virtual Machine): un hypervisor open source integrato nel kernel Linux. Trasforma Linux in un hypervisor di tipo 1, permettendo di eseguire più macchine virtuali isolate su un singolo host. Supporta sia Linux che Windows come sistemi operativi guest ed è ampiamente utilizzato in ambienti open source e cloud.
Microsoft Hyper-V: la soluzione di Microsoft integrata nei sistemi operativi Windows Server. Permette di creare e gestire macchine virtuali su server Windows, offrendo una soluzione robusta per la virtualizzazione aziendale. Supporta la virtualizzazione hardware, la creazione di dischi rigidi virtuali e commutatori virtuali, ed è integrato con altri strumenti Microsoft per una gestione semplificata.
Citrix Hypervisor: è basato sul progetto Xen. Questo significa che condivide il core e molte delle funzionalità di base di Xen. Citrix ha preso il progetto Xen e lo ha arricchito con strumenti di gestione, supporto commerciale e funzionalità avanzate per creare Citrix Hypervisor. Citrix Hypervisor è ampiamente adottato in ambienti aziendali e data center grazie al supporto e alle funzionalità aggiuntive offerte da Citrix.
Hypervisor di Tipo 2 (Hosted)
Gli hypervisor di tipo 2, noti anche come hosted, vengono eseguiti su un sistema operativo convenzionale come un’applicazione. Questo tipo di hypervisor isola i sistemi operativi “guest†dal sistema operativo “host†ma dipende da quest’ultimo per l’accesso alle risorse hardware. Gli hypervisor di tipo 2 sono più facili da installare e gestire ma possono avere prestazioni inferiori rispetto a quelli di tipo 1 a causa del livello aggiuntivo di software.
Esempi di Hypervisor di Tipo 2:
VMware Workstation: utilizzato principalmente per la virtualizzazione su desktop, consente di eseguire più sistemi operativi su un singolo PC. Offre un’interfaccia utente intuitiva, supporta un’ampia gamma di sistemi operativi guest e include funzionalità avanzate per la gestione delle VM.
Oracle VM VirtualBox: un hypervisor open source sviluppato da Oracle che supporta una vasta gamma di sistemi operativi guest. Noto per la sua versatilità e supporto multi-piattaforma, permettendo di eseguire vari sistemi operativi su Windows, macOS, Linux e Solaris. Offre funzionalità di snapshot e clonazione delle VM, ed è usabile liberamente per uso personale ed educativo a costo 0.
GNOME Boxes: applicazione di virtualizzazione che fa parte del progetto GNOME. È progettata per essere facile da usare, permettendo agli utenti di creare e gestire macchine virtuali con pochi clic. Supporta la creazione di macchine virtuali da immagini ISO, la connessione a macchine remote e l’importazione di macchine virtuali esistenti. È integrato con libvirt, che fornisce un backend robusto per la gestione delle VM. Ideale per testare nuove distribuzioni GNU/Linux, eseguire software specifico su diversi sistemi operativi e per scopi educativi.
Parallels Desktop: utilizzato principalmente su macOS per eseguire sistemi operativi Windows e Linux. È particolarmente popolare tra gli utenti Mac che necessitano di eseguire applicazioni Windows. Offre un’integrazione fluida tra macOS e Windows, supporta la modalità Coherence per eseguire applicazioni Windows come se fossero native su Mac, e include strumenti avanzati per sviluppatori e utenti aziendali.
Discorso particolare per QEMU (Quick Emulator) che può funzionare sia come hypervisor di tipo 2 che come emulatore completo, a seconda di come viene utilizzato con o senza KVM che abbiamo visto poco sopra nell’elenco degli hypervisor di tipo 1. QEMU è principalmente un software open source e libero, multi-piattaforma, basato su CLI (Command Line Interface). Questo significa che la maggior parte delle sue funzionalità e configurazioni vengono gestite tramite comandi da Terminale. Tuttavia, esistono diverse interfacce grafiche (GUI) che possono essere utilizzate per semplificare la gestione delle macchine virtuali create con QEMU.
QEMU come Hypervisor di Tipo 2
Descrizione: Quando QEMU è utilizzato da solo, senza KVM, funziona come un hypervisor di tipo 2. In questa modalità , QEMU emula (emula e non virtualizza) completamente l’hardware, permettendo di eseguire sistemi operativi “guest†su un sistema operativo “hostâ€.
Caratteristiche: In questa configurazione, QEMU non sfrutta la virtualizzazione hardware, quindi le prestazioni possono essere inferiori rispetto a quando è combinato con KVM.
QEMU con KVM
Descrizione: Quando QEMU è utilizzato in combinazione con KVM, QEMU gestisce l’emulazione delle periferiche e l’interfaccia utente, mentre KVM fornisce l’accesso diretto all’hardware per le operazioni di virtualizzazione. In questa configurazione, QEMU/KVM insieme funzionano come un hypervisor di tipo 1.
Caratteristiche: Questa combinazione offre prestazioni elevate grazie alla virtualizzazione hardware fornita da KVM, mentre QEMU si occupa della gestione delle VM e dell’emulazione delle periferiche.
In sintesi, QEMU può essere considerato un hypervisor di tipo 2 quando utilizzato da solo, ma quando è combinato con KVM, insieme formano una soluzione di virtualizzazione di tipo 1. Gli utenti possono poi utilizzare strumenti come Virt-Manager per gestire le macchine virtuali create con KVM/QEMU. Virt-Manager fornisce un’interfaccia grafica intuitiva rendendo la gestione delle VM più semplice e accessibile.
La combinazione di applicativi QEMU/Virt-Manager è una soluzione per la virtualizzazione alternativa a GNOME Boxes.
Differenze Pratiche tra hypervisor 1 e 2
Prestazioni: Gli hypervisor di tipo 1 offrono prestazioni superiori grazie all’accesso diretto all’hardware, mentre quelli di tipo 2 possono avere una latenza maggiore a causa del livello aggiuntivo del sistema operativo host.
Utilizzo: Gli hypervisor di tipo 1 sono ideali per ambienti server e data center, dove le prestazioni e la scalabilità sono cruciali. Gli hypervisor di tipo 2 sono più adatti per l’uso su desktop e per scopi di sviluppo e test.
Gestione: Gli hypervisor di tipo 1 richiedono una gestione più complessa e spesso sono utilizzati in combinazione con strumenti di gestione avanzati. Gli hypervisor di tipo 2 sono più semplici da installare e utilizzare, rendendoli ideali per utenti meno esperti.
In conclusione di questa breve esemplificazione di cos’è un hypervisor in Linux, e non solo, spero che sia adesso ben chiaro cosa sia, come funzioni e quali sono le sue caratteristiche principali. Per ogni dubbio o ulteriore chiarimento non esitate a scrivermi nei commenti.
Source: Read More