VMware vSphere impiega un meccanismo di distribuzione delle risorse basato sui concetti descritti di seguito.
Limit - valore massimo di cicli CPU (in MHz) o quantitativo di memoria che non può essere superato da una VM o da un pool di risorse.
Reservation - valore minimo di cicli CPU o quantitativo di memoria garantito e pre-allocato per una VM o per un pool di risorse.
Shares - a livello concettuale, rappresenta lo spazio di risorse che il VMkernel mette in condivisione tra le VM. Ogni VM utilizza queste risorse condivise per raggiungere la quota “limit”. Ovviamente possono verificarsi situazioni in cui più VM cercano di recuperare risorse dallo spazio condiviso, per arrivare ognuna al proprio “limit”, con la possibilità che l’insieme delle risorse richieste sia superiore al valore totale di quelle disponibili sull’host (situazione di overcommitment). In questi casi il VMkernel gestirà tutte le situazioni di contesa delle risorse, con tecniche diverse che vedremo più avanti. Per impostazione predefinita, quando si crea una macchina virtuale, le sue risorse riservate sono impostate a zero, pertanto il 100% di risorse della VM vengono recuperate, quando necessario, dallo spazio di risorse condiviso. A livello di configurazione, nelle impostazioni di una VM o di un pool, vedremo come il valore di share rappresenti la priorità di accesso alle risorse condivise.
Quando si accende una macchina virtuale, il sistema controlla le quantità di risorse di CPU e memoria non ancora allocate. Sulla base delle risorse disponibili, il sistema determina se possono essere garantite le risorse riservate per la macchina virtuale. Questo processo è chiamato admission control. Se le risorse di CPU e memoria (non ancora riservate) sono sufficienti, la macchina virtuale può essere accesa. In caso contrario, comparirà un avviso di risorse insufficienti.