Cos’è la paravirtualizzazione?

La paravirtualizzazione è un metodo che consente al software in esecuzione su un sistema virtuale di ignorare l’interfaccia virtuale ed eseguire operazioni sull’hardware effettivo del sistema. In un sistema virtuale standard, l’unico programma che utilizza l’hardware effettivo del sistema è l’interfaccia virtuale. Il resto del software gira totalmente all’interno dell’ambiente virtuale. Con la paravirtualizzazione, ci sono modi in cui il software incluso può accedere alle risorse reali piuttosto che a quelle virtuali. Ciò velocizza alcune funzioni senza sacrificare la potenza di calcolo.

Gli ambienti di elaborazione virtuale sono diventati molto più comuni nel 21° secolo. Utilizzando i sistemi virtuali di base, un singolo sistema hardware può eseguire le operazioni di diversi senza perdita di potenza di calcolo. Inoltre, i server virtuali ridondanti consentono a una singola macchina di andare offline per la sostituzione o la riparazione senza influire sugli utenti del sistema.

Nella maggior parte dei sistemi virtuali, una macchina reale ha un programma installato che opera come interfaccia virtuale per il resto delle operazioni. Questa interfaccia, spesso chiamata hypervisor, è solitamente inaccessibile agli utenti del sistema virtuale; solo le persone con un reale accesso all’hardware possono accedervi. Quando gli utenti virtuali hanno accesso all’hypervisor, sono spesso fortemente limitati in ciò che possono fare al sistema.

L’hypervisor è essenzialmente il centro del sistema virtuale. Supervisiona il software virtuale installato e fornisce una piattaforma per gli utenti virtuali. Quando i programmi sul sistema virtuale necessitano dell’accesso all’hardware, l’hypervisor prenderà le informazioni e le elaborerà da solo o le formatterà e le invierà al sistema sottostante.

In un sistema che utilizza la paravirtualizzazione, un programma virtuale ha la possibilità di bypassare il sistema operativo virtuale e operare direttamente con l’hardware del sistema quando è necessario l’accesso all’hardware. Alcune operazioni sono molto difficili da eseguire per il sistema virtuale. Quando un programma virtuale deve eseguire una di queste attività, sono necessarie meno risorse affinché il programma ignori il livello virtuale e passi direttamente al sistema hardware. La paravirtualizzazione viene ancora eseguita con parsimonia, poiché troppe chiamate hardware dirette possono sovraccaricare il sistema.

Per utilizzare la paravirtualizzazione, sia il sistema reale che il sistema virtuale necessitano di alcune preparazioni. Il fattore più importante è il software di paravirtualizzazione stesso; solo i sistemi operativi e gli hypervisor con capacità di paravirtualizzazione possono svolgere queste funzioni. Sebbene questi siano spesso esclusi da un’installazione standard, la maggior parte delle aziende di software per server dispone di componenti aggiuntivi disponibili che daranno ai loro prodotti le funzionalità corrette.
Il secondo punto di compatibilità è nell’hardware sottostante. Utilizzando un’interfaccia virtuale, è possibile far funzionare quasi tutti i sistemi operativi su quasi tutti i sistemi hardware. Affinché la paravirtualizzazione funzioni, l’hardware sottostante deve essere qualcosa a cui i programmi virtuali sanno come accedere. Se l’hardware è molto estraneo al sistema, le chiamate hardware di paravirtualizzazione falliranno.