La virtualizzazione

Con il termine virtualizzazione è la possibilità di astrarre [1] le componenti hardware al fine di renderle disponibili al software in forma di risorsa virtuale. Mediante la virtualizzazione è quindi possibile installare sistemi operativi e relative applicazioni su hardware virtuale. L’insieme delle componenti hardware virtualizzate (hard disk, RAM, CPU, NIC, ecc.) prende il nome di macchina virtuale o VM.

Questa tecnica, nata negli anni sessanta del ‘900 con i mainframe per operare la divisione logica delle risorse disponibili del sistema e destinarle a diverse applicazioni. La virtualizzazione, così come la conosciamo oggi, ha guadagnato popolarità nei primi anni 2000, quando le organizzazioni hanno cercato modi per sfruttare al meglio le proprie risorse informatiche ed ottimizzare l’accesso ad hardware costostoso.

Per mezzo della virtualizzazione più sistemi operativi, nonché le loro applicazioni, possono funzionare contemporaneamente mediante la condivisione delle stesse risorse hardware (appunto virtualizzate) permettendo di aumentare l’efficienza delle proprie risorse di elaborazione e supportare carichi di lavoro importanti.


Cosa permette

La virtualizzazione consente:

  • Server consolidation: virtualizzando i server è possibile installare più server virtuali su ciascun server fisico e migliorare l’utilizzo dell’hardware. Il consolidamento migliora l’utilizzo delle risorse che sono allocate là dove effettivamente servono, poiché una macchina host può essere suddivisa in più VM. Questo approccio permette di massimizzare lo spazio, il consumo energetico e la manutenzione ospitando più VM su un singolo componente hardware.
  • Risparmio sui costi (Cost savings): un migliore utilizzo dell’hardware può comportare risparmi sulle risorse fisiche aggiuntive (es.: dischi rigidi o unità disco rigido) oltre a ridurre la necessità di alimentazione, lo spazio e gli inevitabili requisiti per il raffreddamento nel data center.
  • Ambienti isolati (Isolated environments): poiché separate dal resto del sistema, le VM non interferiscono con ciò che è in esecuzione sull’hardware host e rappresentano una buona opzione per testare nuove applicazioni o configurare un ambiente di produzione.
  • Migrazione rapida delle applicazioni (Faster application migration): gli amministratori non devono più attendere la certificazione di ogni applicazione sul nuovo hardware. Poiché le configurazioni delle VM sono definite dal software, le VM possono essere create, rimosse, clonate e migrate rapidamente. Inoltre è possibile controllare una VM da remoto e automatizzarne la  gestione.
  • Efficienza ambientale (Efficient environments): durante i test di regressione, i team possono creare o copiare un ambiente di test eliminando la necessità di hardware dedicato ai test o server di sviluppo ridondanti. Con la giusta formazione e le giuste conoscenze è possibile ottimizzare gli ambienti per ottenere maggiori capacità e densità.
  • Disaster recovery: le VM offrono diverse opzioni di disaster recovery mediante il failover che in precedenza poteva essere ottenuto solo tramite hardware aggiuntivo. Queste opzioni di disaster recovery riducono i tempi di ripristino e configurazione del server interessato, garantendo una maggiore adattabilità.

Tipi di virtualizzazione

Server virtualization

La virtualizzazione dei server è una delle tipologie di virtualizzazione più diffuse, soprattutto negli ambienti IT aziendali. Resa possibile dagli hypervisor che separano e distribuiscono le risorse fisiche, la virtualizzazione dei server è un processo che prevede il partizionamento di un server in modo che le risorse possano essere utilizzate per svolgere più funzioni.

Desktop virtualization (VDI)

La virtualizzazione desktop consente a un amministratore centrale (o a uno strumento di amministrazione automatizzato) di distribuire ambienti desktop su più macchine fisiche contemporaneamente.

La virtualizzazione desktop consente agli amministratori di eseguire configurazioni di massa, aggiornamenti e controlli di sicurezza su tutti i desktop virtuali:

  1. Conversione di vecchi PC in terminali cloud e creazione di un cloud desktop

Trasformare un vecchio PC in un terminale cloud e configurare un desktop comporta in genere la connessione del dispositivo terminale a un servizio di desktop remoto o virtuale. È possibile scegliere tra protocolli RDP o VNC. Il vecchio PC può installare il sistema software thin client (es.: DoraOS), che supporta il reindirizzamento USB, RemoteFX e il reindirizzamento della stampante.

2. I vecchi laboratori informatici degli studenti sono stati ammodernati e trasformati in aule cloud

I PC nei laboratori informatici scolastici in uso da oltre sei anni potrebbero non disporre più di hardware adeguato e presentare prestazioni non più sufficienti a soddisfare le esigenze didattiche. Sostituirli tutti con nuovi richiederebbe tempo e denaro (gare d’appalto, ciclo investimenti, presentazione budget, realizzazione del progetto, accettazione, ecc.) un processo che richiede più di sei mesi anche se i corsi scolastici non possono aspettare.

E’ possibile perciò valutare l’aggiornamento dei laboratori informatici utilizzando la tecnologia desktop cloud. La tecnologia VDI ha raggiunto un livello di sviluppo significativo nel campo delle aule cloud dopo anni di sviluppo.

I vecchi PC esistenti possono essere convertiti in terminali cloud e i monitor esistenti possono essere riutilizzati. Inoltre, le prestazioni del server sono in costante miglioramento (Legge di Moore), consentendo a un singolo server di supportare più desktop cloud. In precedenza, l’implementazione di desktop cloud VDI era significativamente più costosa rispetto all’utilizzo di PC. Oggigiorno l’implementazione di desktop cloud offre un rapporto costo-prestazioni migliore rispetto ai PC.

L’utilizzo di vecchi PC come terminali cloud consente di risparmiare sui costi hardware, rendendo la soluzione altamente competitiva in termini di costi. Un software desktop cloud come DoraCloud dispone di documentazione completa ed è possibile scaricarlo, installarlo e provarlo rapidamente. Il software offre installazione con un clic, configurazione guidata, un repository di modelli online, gestione centralizzata dei terminali e configurazione automatica.

3. Molto meglio convertire i vecchi PC in thin client

Utilizzando principalmente software per ufficio come WeChat, Word, Excel e PPT, al momento dell’acquisto dei  personal computer, pensando che sarebbero stati utilizzati solo per lavori d’ufficio basilari, avrebbero richiesto configurazioni erano molto limitate. Dopo alcuni anni, questi computer sono diventati inutilizzabili. Sostituire tutti i computer e acquistarne di nuovi è troppo costoso.

Data virtualization

La virtualizzazione dei dati, nota anche come data federation or a global namespace, consente di consolidare i dati distribuiti in un’unica fonte. Riunisce dati provenienti da più fonti, ne gestisce facilmente di nuove e li trasforma in base alle esigenze degli utenti.

Un namespace globale si trova di fronte a più fonti dati e consente di trattarle come un’unica fonte, fornendo i dati necessari nel formato richiesto, al momento giusto a qualsiasi applicazione o utente.

Storage virtualization

La virtualizzazione dello storage consente di gestire e accedere allo storage in un unico dispositivo.

Tutti i dispositivi di storage di una rete possono avere il proprio storage in un’unica posizione. La virtualizzazione dello storage migliora l’efficienza per le attività di storage come l’archiviazione e il ripristino e massimizza l’utilizzo dello storage disponibile in un’infrastruttura.

Application virtualization

La virtualizzazione delle applicazioni permette di distribuire e utilizzare le applicazioni rendendole disponibili al di fuori del sistema operativo su cui sono state originariamente installate.

Separando l’applicazione dal suo sistema operativo è infatti possibile utilizzarla da remoto, eseguendola in un ambiente virtuale. Questo approccio consente maggiore flessibilità di gestione e distribuzione.

La virtualizzazione delle applicazioni differisce dalla virtualizzazione desktop perché l’applicazione viene eseguita virtualmente mentre il sistema operativo sul dispositivo dell’utente funziona normalmente.

Network functions virtualization

Sempre più spesso utilizzata dai fornitori di servizi di telecomunicazione,  la Network functions virtualization (NFV) separa le funzioni chiave di una rete (es.: servizi di directory, condivisione di file, configurazione IP) in modo che possano essere distribuite tra gli ambienti. Quando le funzioni software sono indipendenti dalle macchine fisiche su cui risiedevano, funzioni specifiche possono essere raggruppate in una nuova rete e assegnate ad un ambiente.

La virtualizzazione delle reti riduce il numero di componenti fisici, come switch, router e cavi, necessari per creare più reti indipendenti.


I Container

Un container è un’unità software che appunto contiene tutti i componenti e le funzionalità necessari per il funzionamento di un’applicazione. La maggior parte delle applicazioni moderne è composta da più conteiner, ognuno dei quali svolge una funzione specifica. I conteiner, generalmente misurati in megabyte, non utilizzano hypervisor e sono considerati un modo più rapido e agile per gestire l’isolamento dei processi.

Uno dei fattori significativi che contribuiscono al successo dei container è la portabilità. Proprio come i mattoncini Lego interconnessi, i singoli container possono essere facilmente scambiati e spostati in ambienti diversi. Una volta che un’applicazione e le sue dipendenze sono state inserite in un container, possono essere distribuite ovunque sia necessario – sul laptop dello sviluppatore, nel data center, nel cloud o nell’edge – con la certezza che funzioneranno esattamente allo stesso modo.

Docker, una piattaforma open source per la creazione, la distribuzione e la gestione di applicazioni containerizzate, ha svolto un ruolo fondamentale nell’evoluzione della tecnologia dei container nel corso degli anni.


Virtualizzazione Vs Containerizzazione

Virtualizzazione e containerizzazione sono due approcci agli ambienti di elaborazione che isolano i componenti IT dal resto del sistema fisico. Tuttavia funzionano in modo diverso. Come detto, la virtualizzazione consente alle VM di funzionare a piena capacità, indipendentemente dal loro hardware fisico, con sistemi operativi diversi.

In alternativa, la containerizzazione consente di impacchettare software o applicazioni in un  “conteiner” che condivide il sistema operativo host e può essere spostato ed eseguito in qualsiasi ambiente, per una maggiore flessibilità.

Schema di comparazione tra virtualizzazione e containerizzazione

Con la virtualizzazione, le VM sono create per eseguire il proprio sistema operativo e le proprie applicazioni. La virtualizzazione consente a molteplici e diversi sistemi operativi di funzionare contemporaneamente e condividere le stesse risorse hardware virtualizzate di una singola macchina fisica.

La containerizzazione impacchetta il codice software in un contenitore separato. Questo processo consente di spostare le app all’interno del contenitore e di eseguirle in qualsiasi ambiente e su qualsiasi infrastruttura.

VirtualizzazioneConteiner
Il software chiamato hypervisor separa le risorse dalle macchine fisiche in modo che possano essere partizionate e dedicate alle VM. Quando un utente invia un’istruzione alla VM che richiede risorse aggiuntive dall’ambiente fisico, l’hypervisor inoltra la richiesta al sistema fisico e memorizza nella cache le modifiche. Le VM hanno l’aspetto e il comportamento di server fisici, il che può moltiplicare gli svantaggi delle dipendenze applicative e dell’ingombro del sistema operativo, un ingombro che nella maggior parte dei casi non è necessario per eseguire una singola app o un microservizio.Tutto ciò che è presente in un container è impacchettato e distribuito utilizzando una immagine del container, un file che include tutte le librerie e le dipendenze. I file immagine del container sono simili ai pacchetti di installazione software (come gli RPM in Linux), ma necessitano solo di un kernel e di un runtime del container compatibili per eseguire l’applicazione, indipendentemente dal sistema operativo utilizzato per creare il container e dalla provenienza delle librerie al suo interno. Poiché i container sono piccoli, di solito ce ne sono centinaia, ma non strettamente accoppiati tra loro, motivo per cui  per il provisioning e la gestione vengono utilizzate piattaforme  di orchestrazione dei container (es.: Kubernetes )

Rispetto alle VM, i container sono più adatti a:

  • Crea app cloud-native
  • Microservizi a pacchetto
  • Incorporare le applicazioni DevOps o CI/CD
  • Spostare progetti IT scalabili su un’impronta IT diversificata

Rispetto ai container, le VM sono più adatte a:

  • Ospitare carichi di lavoro tradizionali, legacy e monolitici
  • Isolare i cicli di sviluppo rischiosi
  • Fornire risorse infrastrutturali (reti, server e dati )
  • Eseguire un sistema operativo diverso all’interno di un altro sistema operativo (es.: eseguire Unix su Linux)

Il Bare metal

Prima dell’arrivo del Cloud computing, i server Bare Metal costituivano l’opzione più diffusa tra le aziende che acquistavano e configuravano queste macchine in una sala server dedicata. Quando Internet e il Cloud non erano ancora così presenti nella vita quotidiana, la connettività tra le localizzazioni fisiche era lenta e molto costosa e le imprese che volevano offrire accesso alle applicazioni aziendali dovevano acquistare server bare metal ed ospitarli nella propria sala server. Con l’evoluzione delle infrastrutture per telecomunicazioni a livello globale mediante connessioni di fibra ottica è diventato più facile e conveniente consolidare e centralizzare le sale server nei datacenter.

Essenzialmente si distinguono due tipi di utilizzo: il bare metal server tradizionale e il bare metal server con hypervisor.

  • Bare metal server tradizionale: il bare metal server tradizionale è un classico server dedicato in cui il sistema operativo amministrato dall’utente (Windows Server, Ubuntu, SUSE, Red Hat, Debian o CentOS) poggia direttamente sull’hardware. Tutte le applicazioni utente vengono eseguite direttamente sul sistema operativo. Tra i bare metal server tradizionali rientrano sia i server a noleggio dedicati sia i server dell’azienda autogestiti in loco.
  • Bare metal server con hypervisor: nell’ambiente cloud sono utilizzati bare metal server in combinazione con un hypervisor, sistemato direttamente sull’hardware (hypervisor nativo), così da mettere a disposizione degli utenti un’interfaccia di amministrazione per la gestione delle macchine virtuali. Le applicazioni utente non funzionano direttamente sull’hypervisor, ma separatamente sui sistemi operativi ospitati. Gli hypervisor correnti sono KVM, funzione di virtualizzazione nativa del kernel Linux, Microsoft Hyper-V, vSphere di VMware o Citrix XenServer.

Un server bare metal è quindi un server fisico dedicato in cui tutte le sue risorse hardware sono assegnate ad un singolo client o applicazione. Non c’è alcun livello di astrazione aggiuntivo tra il sistema operativo e l’hardware fisico. Ovviamente, può trattarsi di server on-premise oppure in housing o colocation, ospitati nei datacenter del cloud provider, sia di proprietà che noleggiati.

In questo caso si parla di cloud bare metal, un servizio di cloud computing grazie al quale gli utenti hanno accesso a server fisici dedicati e ubicati in datacenter che garantiscono la fornitura continua di servizi come energia elettrica, connettività, raffreddamento e supporto tecnico. In ogni caso si tratta di una risorsa dedicata al singolo cliente.

I server bare metal si prestano in modo particolare alle applicazioni avanzate, all’hosting di siti web e per tutti gli utilizzi che richiedono potenza di elaborazione e di memoria. Il bare metal viene scelto anche quando si ha la necessità di personalizzare in maniera specifica la propria dotazione hardware.

Le virtul machine (VM) ed i container possono essere distribuiti su vari tipi di infrastrutture, inclusi i server  bare metal.

Bare metal è un termine che si riferisce ad un computer o server dedicato che funziona su hardware fisico e non richiede l’assistenza di hypervisor, macchine virtuali o container accessibile esclusivamente da un singolo client. I server bare metal sono noti anche come dedicated server poiché  i componenti hardware non sono condivisi con altri utenti e sono interamente dedicati a un singolo tenant.

I server bare metal sono in grado di elaborare un elevato volume di dati con bassa latenza, sono quindi veloci e potenti. Con i server bare metal, l’utente ha il controllo completo sulla propria infrastruttura server, il che significa che può scegliere il proprio sistema operativo e ottimizzare hardware e software per soddisfare le specifiche esigenze del carico di lavoro.

Sui server bare metal è possibile ospitare:

  • virtual machine mediante hypervisor e un software di virtualizzazione
  • container mediante piattaforme come Docker, Kubernetes e Podman

I server bare metal sono un componente fondamentale dello stack Infrastructure-as-a-Service (IaaS) nel cloud computing.

Vantaggi

  • Prestazioni elevate: non essendo presenti strati di virtualizzazione che consumano risorse, le prestazioni sono direttamente legate all’hardware fisico e lo rendono ideale per applicazioni ad alta intensità di dati e calcolo come il Machine Learning o l’elaborazione ad alte prestazioni (HPC).
  • Controllo completo: l’utente ha il controllo totale sull’infrastruttura, inclusa la scelta del sistema operativo e può personalizzare l’hardware per adattarlo alle proprie esigenze.
  • Sicurezza migliorata: l’isolamento fisico da altri utenti riduce i rischi legati a problemi di sicurezza o rallentamenti causati da carichi di lavoro condivisi.
  • Flessibilità: i servizi di cloud bare metal permettono di personalizzare e gestire l’infrastruttura fisica tramite interfaccia remota, offrendo flessibilità e scalabilità.

Svantaggi

  • Configurazione: richiedono maggiore conoscenza delle dinamiche di configurazione, pianificazione e gestione da parte di sistemisti ed esperti di sicurezza
  • Scaling: la scalabilità, sebbene possibile nel cloud, può essere più lenta e costosa rispetto alle soluzioni virtuali.
  • Costi: l’investimento iniziale o i costi di noleggio possono essere più elevati rispetto ai server virtuali.

Sebbene le distribuzioni bare metal siano preziose in scenari in cui le prestazioni e l’accesso diretto all’hardware sono essenziali, potrebbero non offrire lo stesso livello di flessibilità e gestione delle risorse dei container o delle VM.


Hypervisor

Spesso chiamato Virtual Machine Monitor (VMM), un hypervisor è un software che separa le risorse fisiche di un sistema e le suddivide in modo che gli ambienti virtuali possano utilizzarle in base alle esigenze. Un hypervisor preleva le risorse fisiche (CPU, memoria e storage) dall’hardware e le rende disponibili – allocazione – a più VM contemporaneamente.

Questa capacità permette la creazione di nuove VM e la  gestione di quelle esistenti. Gli hypervisor possono essere installati su un sistema operativo (ad esempio su un laptop) o direttamente sull’hardware (ad esempio su un server). L’hardware fisico, quando utilizzato come hypervisor è chiamato host, mentre le numerose VM che ne utilizzano le risorse sono chiamate guest.

Quando l’ambiente virtuale è in esecuzione ed un utente o programma emette un’istruzione che richiede risorse aggiuntive dall’ambiente fisico, l’hypervisor inoltra la richiesta al sistema fisico e memorizza le modifiche in una cache, il tutto a una velocità prossima a quella nativa.

Esistono due diversi tipi di hypervisor che consentono la virtualizzazione in base alle esigenze:.

  • Type 1: denominato anche hypervisor nativo o bare-metal, viene eseguito direttamente sull’hardware dell’host per gestire i sistemi operativi guest. Sostituisce il sistema operativo host e le risorse delle VM vengono pianificate direttamente sull’hardware dall’hypervisor. Questo tipo di hypervisor è più comune nei data center aziendali o in altri ambienti basati su server.
  • Type 2:  noto anche come hosted hypervisor, viene eseguito su un sistema operativo convenzionale come livello software o applicazione. Funziona astraendo i sistemi operativi guest dal sistema operativo host. Le risorse della VM vengono pianificate rispetto al sistema operativo host che viene eseguito sull’hardware. Questa tipologia è più adatta per singoli utenti che desiderano eseguire più sistemi operativi su un personal computer.

La tecnologia di virtualizzazione aggiunge un livello cruciale di gestione e controllo sul datacenter e sull’ambiente aziendale 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 (snapshot).

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.

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.
  • Servizi di crittografia per 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.

Spesso il termine virtual machine viene utilizzato in modo intercambiabile con virtual server, ma non sono la stessa cosa. I server virtuali sono resi possibili anche dagli hypervisor, che hanno funzione di strato tra l’hardware fisico e più ambienti virtuali univoci. Ma i server virtuali replicano i server fisici, come i bare metal server, mentre le virtual machine creano rappresentazioni virtuali di computer fisici.

Hypervisor – Virtual Desktop Integration (VDI)

Gli hypervisor Type 1 possono virtualizzare più di un semplice sistema operativo server e possono, inoltre, virtualizzare i sistemi operativi desktop per le aziende che desiderano gestire centralmente le risorse IT degli utenti finali.

Conosciuto come desktop as a service (DaaS), questa tecnologia offre ambienti di virtualizzazione desktop completi, tra cui sistemi operativi, applicazioni, file e preferenze utente dal cloud.

Virtual Desktop Integration (VDI) consente agli utenti di lavorare su desktop in esecuzione all’interno di macchine virtuali su un server centrale, semplificando l’amministrazione e la manutenzione dei sistemi operativi da parte del personale IT. In questo ambiente un hypervisor eseguirà più desktop virtuali.

Ogni desktop si trova nella propria virtual machine, conservata in raccolte note come pool di desktop virtuali. Ogni macchina virtuale viene utilizzata da un singolo utente che vi accede attraverso la rete.

L’endpoint dell’utente può essere un thin client relativamente economico o un dispositivo mobile. Questo offre loro il vantaggio di un accesso costante allo stesso sistema operativo desktop. Si possono ottenere gli stessi dati e applicazioni su qualsiasi dispositivo senza spostare i dati riservati all’esterno di un ambiente sicuro.

Gli utenti non si connettono direttamente all’hypervisor ma accedono ad un broker di connessione che si coordina quindi con l’hypervisor per ottenere dal pool un desktop virtuale appropriato.

Hypervisors nel marketplacee open source

  • VMware ESXi (Elastic Sky X Integrated): hypervisor type 1 (bare metal) destinato alla virtualizzazione dei server nel data center. ESXi gestisce raccolte di macchine virtuali VMware.
  • VMware Workstation Pro: hypervisor compatibile con i PC desktop e laptop che eseguono sistemi operativi Windows e Linux.
  • Vmware Fusion Pro: per utenti desktop e laptop su MacOS,
  • Oracle VM VirtualBox: VirtualBox è un hypervisor Type 2 in esecuzione su sistemi operativi Linux, Mac OS e Windows.
  • Parallels Desktop: tecnologia hypervisor che consente agli utenti di eseguire sistemi operativi (come Linux o Windows) e altre app su un Mac.
  • Microsoft Hyper-V: hypervisor di Microsoft progettato per l’uso su sistemi Windows. Microsoft designa Hyper-V come un hypervisor Type 1, si installa su Windows è viene eseguito direttamente sull’hardware fisico, inserendosi sotto il sistema operativo host. Tutti i sistemi operativi guest vengono eseguiti tramite l’hypervisor, ma il sistema operativo host ottiene un accesso speciale all’hardware, che gli offre un vantaggio in termini di prestazioni.
  • Citrix Hypervisor: in precedenza Xen Server del progetto open source Xen, è un hypervisor commerciale Type 1 che supporta i sistemi operativi Linux e Windows.
  • Hypervisor Xen: hypervisor Type 1 che funziona su architetture Intel e ARM. Iniziato come progetto presso è stato successivamente commercializzato da XenSource rilevata dalla Citrix. Xen supporta Intel VT e AMD-V e la paravirtualizzazione.
  • Linux KVM: hypervisor Type 1 basato su Linux. KVM integra QEMU, un hypervisor che emula il processore della macchina fisica nel software e supporta i sistemi operativi più comuni, nonché le estensioni di virtualizzazione Intel VT e AMD-V. Laddove sono disponibili queste estensioni, il kernel Linux può utilizzare KVM. In caso contrario, ricorre a QEMU.
  • Red Hat OpenShift Virtualization: si basa su KubeVirt, progetto open source che consente di eseguire macchine virtuali su una piattaforma container gestita da Kubernetes. KubeVirt offre la virtualizzazione nativa dei container utilizzando un KVM all’interno di un contenitore Kubernetes.
  • Proxmox Virtual Environment: una piattaforma completa e open source per la gestione dei server per la virtualizzazione. Integra perfettamente l’hypervisor KVM e i Linux Container (LXC), le funzionalità di storage e networking definite dal software, in un’unica piattaforma. Mediante una interfaccia utente web integrata è possibile gestire VM e container, l’alta disponibilità per i cluster e gli strumenti integrati di disaster recovery.

Tipi di hypervisor

Un hypervisor Type 2 viene eseguito su un sistema operativo host, suddividendo le risorse per consentire l’esecuzione di più macchine virtuali, ciascuna con un’installazione completa del sistema operativo.

Questi hypervisor Type 2 si trovano comunemente sui desktop, mai nei datacenter.

Un hypervisor Type 1 si installa sul server bare metal, ma esegue essenzialmente le stesse operazioni di un hypervisor Type 2.

Su ogni VM è comunque installato un sistema operativo completo. Anche se l’hypervisor ottimizza l’utilizzo delle risorse, in definitiva c’è un sistema operativo completo in ogni VM, con tutti i costi aggiuntivi che ciò comporta.

Quando si utilizzano i container, sull’hardware fisico è installato un unico sistema operativo, utilizzato da ciascun container.

Nel caso dei container Linux, i processi sono separati ed ognuno utilizza lo stesso kernel, ma con le librerie e i binari necessari per assomigliare alla distribuzione Linux scelta ed eseguire l’applicazione al suo interno.

Nulla impedisce di eseguire container all’interno di una macchina virtuale, ciò che fa l’implementazione VM dei container.

Nei datacenter è possibile ritrovare un modello ibrido che combina virtualizzazione e containerizzazione.


[1] Astrazione: un concetto o un’idea non associata a nessuna istanza specifica. Tecnica utilizzata nel design di software, hardware e comunicazioni nei quali sistemi o componenti del network sono isolati in strati, in modo da poter effettuare cambiamenti su un solo strato senza dover influenzare anche gli altri.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Index