Le macchine virtuali rappresentano i contenitori logici in cui vengono eseguite le applicazioni e i sistemi operativi guest. Per progettazione, tutte le macchine virtuali VMware risultano isolate tra loro. L’isolamento consente l’esecuzione sicura di più macchine virtuali mentre viene condiviso l’hardware, e garantisce la capacità di accedere all’hardware e prestazioni senza interruzione.

Nemmeno un utente con privilegi da amministratore di sistema, presente in un sistema operativo guest di macchina virtuale, potrà penetrare questo layer di isolamento per accedere a un’altra macchina virtuale se risulta privo di privilegi concessi esplicitamente dall’amministratore di sistema ESXi. Come conseguenza dell’isolamento della macchina virtuale, se si verifica un errore in un sistema operativo guest eseguito in una macchina virtuale, le altre macchine virtuali presenti sullo stesso host continueranno ad essere eseguite. Gli utenti potranno sempre accedere ad altre macchine virtuali, le cui prestazioni verranno così garantite.

Ciascuna macchina virtuale viene isolata da altre macchine virtuali eseguite sullo stesso hardware. Anche se le macchine virtuali condividono risorse fisiche quali CPU, memoria e dispositivi di I/O, un sistema operativo guest su una macchina virtuale individuale potrà rilevare solo i dispositivi virtuali resi disponibili.

Figura 1. Isolamento della macchina virtuale
Isolamento della macchina virtuale

Il VMkernel media tra le risorse fisiche. Tutto l’accesso all’hardware fisico avviene attraverso il VMkernel e le macchine virtuali non possono aggirare questo livello di isolamento.

Allo stesso modo in cui una macchina fisica comunica con le altre macchine in una rete attraverso una scheda di rete, una macchina virtuale comunica con altre macchine virtuali eseguite sullo stesso host attraverso uno switch virtuale. Inoltre, una macchina virtuale comunica con la rete fisica, incluse le macchine virtuali su altri host ESXi, attraverso una scheda di rete fisica.

Figura 2. Reti virtuali attraverso switch virtuali
Reti virtuali attraverso switch virtuali per ESXi

L’isolamento della macchina virtuale influisce anche sulle reti virtuali.

  • Se una macchina virtuale non condivide uno switch virtuale con qualsiasi altra macchina virtuale, viene completamente isolata dalle altre macchine virtuali all’interno dell’host.
  • Se non viene configurata alcuna scheda di rete fisica per una data macchina virtuale, questa verrà completamente isolata. Ciò include anche l’isolamento da qualsiasi rete fisica o virtuale.
  • Le macchine virtuali sono sicure come le macchine fisiche se vengono protette dalla rete tramite firewall, software antivirus ecc.

È possibile proteggere ulteriormente le macchine virtuali impostando prenotazioni e limiti delle risorse sull’host. Ad esempio, è possibile utilizzare l’allocazione delle risorse per configurare una macchina virtuale in modo che riceva almeno il 10% delle risorse della CPU dell’host e mai più del 20%.

Le prenotazioni e i limiti delle risorse proteggono le macchine virtuali dalla diminuzione delle prestazioni che si potrebbe verificare se un’altra macchina virtuale consuma eccessive risorse hardware condivise. Ad esempio, se una delle macchine virtuali di un host risulta inabilitata a causa di un attacco di tipo DoS (Denial of Service), un limite nelle risorse della macchina può impedire all’attacco di utilizzare una quantità di risorse hardware tale da influire anche su altre macchine virtuali. Allo stesso modo, una prenotazione delle risorse su ciascuna delle macchine virtuali assicura che, nel caso di un’alta richiesta di risorse da parte della macchina virtuale destinazione dell’attacco DoS, tutte le altre macchine virtuali disporranno di risorse sufficienti per il funzionamento.

Per impostazione predefinita, ESXi impone una forma di prenotazione delle risorse applicando un algoritmo di distribuzione che suddivide le risorse host disponibili in modo equo tra le macchine virtuali, mantenendo una certa percentuale di risorse per l’uso da parte di altri componenti del sistema. Questo comportamento predefinito offre un livello di protezione naturale da attacchi di tipo DoS e DDos (Distributed Denial of Service). Prenotazioni e limiti di risorse specifici vengono impostati su base individuale per personalizzare il comportamento predefinito, in modo da evitare una distribuzione uguale attraverso la configurazione della macchina virtuale.