Skip to main content
Info Commerciali: 800.180.700 | Marketing: marketing@digitalway.it | Supporto: assistenza@digitalway.it

Virtualizzazione hardware: come fare la scelta giusta

Scritto il 25 Ottobre 2019

Che si tratti di hardware, software, memoria o componenti di rete, tutte le procedure esistenti in ambito cloud computing si basano sulla virtualizzazione delle risorse IT.

Cos’è la virtualizzazione hardware

La virtualizzazione dell’hardware, nota anche come virtualizzazione del server o semplicemente virtualizzazione, è l’astrazione delle risorse di elaborazione dal software che utilizza tali risorse. In un ambiente di elaborazione fisica tradizionale, un sistema operativo o un’applicazione aziendale ha accesso diretto all’hardware e ai componenti del computer sottostante, inclusi processore, memoria, memoria, determinati chipset e versioni dei driver del sistema operativo. Ciò ha comportato grossi mal di testa per la configurazione del software e ha reso difficile spostare o reinstallare il software su hardware diverso, come ripristinare i backup dopo un guasto o un disastro.

La storia della virtualizzazione hardware

Il termine virtualizzazione fu coniato tra la fine degli anni ’60 e l’inizio degli anni ’70. IBM disponeva di sistemi hardware di diverse generazioni e eseguiva programmi in batch per eseguire più attività contemporaneamente. IBM ha iniziato a lavorare allo sviluppo di un nuovo sistema mainframe quando è stato annunciato che il MIT aveva iniziato a lavorare su un computer ad accesso multiplo (MAC). Con l’attenzione di MAC, IBM cambiò presto direzione e sviluppò il mainframe CP-40, che portò quindi al sistema mainframe CP-67, il primo mainframe disponibile in commercio che supportava la virtualizzazione. Il programma di controllo ha creato macchine virtuali, eseguite su un mainframe con cui l’utente finale avrebbe interagito. La virtualizzazione divenne la tecnologia standard con i sistemi mainframe ma cadde in disuso quando i mainframe cedettero il posto ai PC ed ai sistemi client / server verso fine degli anni ’70 e negli anni ’80.

Come funziona la virtualizzazione hardware

La virtualizzazione dell’hardware installa un hypervisor o un gestore di macchine virtuali, che crea un livello di astrazione tra il software e l’hardware sottostante. Una volta installato un hypervisor, il software si basa su rappresentazioni virtuali dei componenti di elaborazione, come i processori virtuali anziché i processori fisici. Gli hypervisor più diffusi includono VMware vSphere, basato su ESXi e Microsoft Hyper-V.

Le risorse di elaborazione virtualizzate vengono fornite in istanze isolate chiamate macchine virtuali, in cui è possibile installare sistemi operativi e applicazioni. I sistemi virtualizzati possono ospitare più VM contemporaneamente, ma ognuna è isolata dalle altre. Ciò significa che un attacco malware o un arresto anomalo di una macchina virtuale non influirà sulle altre macchine virtuali. Il supporto per più macchine virtuali aumenta notevolmente l’utilizzo e l’efficienza del sistema. Per esempio è possibile evitare di acquistare 20 server separati per ospitare 20 applicazioni fisiche. Infatti, un singolo server virtualizzato potrebbe potenzialmente ospitare quelle stesse 20 applicazioni installate su macchine virtuali sullo stesso sistema. Questo miglioramento dell’utilizzo dell’hardware è un grande vantaggio della virtualizzazione e supporta un enorme potenziale per il consolidamento del sistema, riducendo il numero di server e il consumo di energia nei data center aziendali.

Poiché un hypervisor viene installato direttamente sull’hardware di elaborazione e altri sistemi operativi e applicazioni vengono installati successivamente, la virtualizzazione dell’hardware viene spesso definita virtualizzazione bare metal. Ciò ha portato gli hypervisor a essere considerati veri e propri sistemi operativi. L’alternativa all’approccio single tenant consiste nell’installare prima un sistema operativo host e quindi installare un hypervisor sul sistema operativo ospite. Questa modalità di virtualizzazione è stata in gran parte abbandonata per le macchine virtuali, sebbene la moderna virtualizzazione dei container abbia ripreso ultimamente questo approccio.

Gli hypervisor si affidano alle estensioni del set di comandi nei processori per accelerare le attività di virtualizzazione comuni e migliorare le prestazioni. Ad esempio, le attività necessarie per tradurre gli indirizzi di memoria fisica in indirizzi di memoria virtuale e viceversa non erano ben servite con set di comandi del processore preesistenti, quindi estensioni tra cui Intel Virtualization Technology (Intel-VT) e AMD Virtualization (AMD-V) è emerso per migliorare le prestazioni dell’hypervisor e gestire un numero maggiore di VM simultanee. Quasi tutti i processori di livello server ora portano estensioni di virtualizzazione nei set di comandi.

Oltre al miglioramento delle capacità di elaborazione dell’hardware, la virtualizzazione migliora anche la flessibilità nella distribuzione e protezione delle applicazioni. Grazie ad un hypervisor, le macchine virtuali non sono più legate a un singolo server nel modo in cui un’applicazione fisica potrebbe essere collegata a un’installazione server tradizionale. Al contrario, una macchina virtuale su un server può essere trasferita su un altro server virtualizzato nel data center locale o su server in qualsiasi posizione remota mentre l’applicazione è ancora in esecuzione.

Questa migrazione in tempo reale consente alle macchine virtuali di essere spostate secondo necessità per ottimizzare le prestazioni del server, in caso di bilanciamento del carico o scaricare un server dai suoi carichi di lavoro al fine di sostituire o mantenere il sistema, senza tuttavia interrompere le applicazioni, che possono continuare a funzionare su altri sistemi. Inoltre, possono essere protette con backup e snapshot point-in-time, che possono essere entrambi ripristinati su qualsiasi server virtualizzato senza tener conto dell’hardware sottostante.

Tipi di virtualizzazione hardware

Esistono diversi tipi di virtualizzazione hardware:

La virtualizzazione completa: simula completamente l’hardware per consentire l’esecuzione di un SO guest in un’istanza isolata. In un’istanza completamente virtualizzata, un’applicazione verrebbe eseguita su un sistema operativo ospite, che opererebbe su hypervisor e infine su sistema operativo e hardware ospitato. La virtualizzazione completa crea un ambiente simile a un sistema operativo che opera su un singolo server. L’utilizzo della virtualizzazione completa consente agli amministratori di eseguire un ambiente virtuale invariato rispetto alla sua controparte fisica. Ad esempio, è stato utilizzato l’approccio di virtualizzazione completo per CP-40 e CP-67 di IBM. Altri esempi di sistemi completamente virtualizzati includono Oracle VM ed ESXi. La virtualizzazione completa consente agli amministratori di combinare sia i sistemi esistenti che quelli nuovi; tuttavia, ogni funzionalità che l’hardware deve anche apparire in ogni VM affinché il processo sia considerato virtualizzazione completa. Ciò significa che, per integrare i sistemi più vecchi, l’hardware deve essere aggiornato per adattarsi ai sistemi più recenti.

La paravirtualizzazione: esegue una versione modificata e ricompilata dei sistemi operativi guest in una macchina virtuale. Questa modifica consente alla macchina virtuale di differire leggermente dall’hardware. L’hardware non è necessariamente simulato nella paravirtualizzazione ma utilizza un’interfaccia del programma applicativo (API) che può modificare i SO guest. Per modificare il SO ospite, il codice sorgente per il sistema operativo ospite deve essere accessibile per sostituire parti di codice con istruzioni personalizzabili, come le chiamate alle API VMM. Il sistema operativo viene quindi ricompilato per utilizzare le nuove modifiche. L’hypervisor fornirà quindi i comandi inviati dal sistema operativo all’hypervisor, chiamati hypercall. Le hyperpercall sono utilizzate per le operazioni del kernel, come la gestione della memoria. La paravirtualizzazione può migliorare le prestazioni diminuendo la quantità di chiamate VMM. Tuttavia, la paravirtualizzazione richiede la modifica del sistema operativo, il che crea anche una grande dipendenza tra il sistema operativo e l’hypervisor che potrebbe potenzialmente limitare ulteriori aggiornamenti.

La virtualizzazione assistita da hardware: utilizza l’hardware di un computer come supporto architettonico per creare e gestire una macchina completamente virtualizzata. La virtualizzazione assistita da hardware è stata introdotta per la prima volta da IBM nel 1972 con IBM System / 370. La creazione di un VMM nel software ha imposto un notevole sovraccarico al sistema host. I progettisti hanno presto capito che le funzioni di virtualizzazione potevano essere implementate in modo molto più efficiente nell’hardware piuttosto che nel software, guidando lo sviluppo di set di comandi estesi per processori Intel e AMD, come le estensioni Intel VT e AMD-V.

In sostanza, l’hypervisor può semplicemente effettuare chiamate al processore, il che comporta un appesantimento dei carichi di creazione e manutenzione delle macchine virtuali. Il sovraccarico del sistema è significativamente ridotto dalla capacità dell’host di ospitare più macchine virtuali e fornire maggiori prestazioni per carichi di lavoro più impegnativi. La virtualizzazione assistita da hardware è tra le forme di virtualizzazione più utilizzate.

Potrebbero interessarti anche: