Il Virtual Symmetric Multi-Processing (SMP) consente a un’unica macchina virtuale l’utilizzo simultaneo di più processori (CPU virtuali o vCPU). Ogni VM può avere sino a 8 vCPU se l’ambiente vSphere ha una licenza di tipo standard, sino a 32 se la licenza è di tipo Enterprise, sino a 64 se la licenza è di tipo Enterprise Plus. Il VMkernel, tramite un meccanismo chiamato CPU scheduler, assegna dinamicamente le vCPU alla CPU fisica dell’host ESXi.

 

Prima di spiegare come il VMkernel effettua la mappatura tra le CPU virtuali associate alle VM e le CPU fisiche presenti nell’host ESXi, è necessario introdurre alcuni concetti sulle CPU multi-core. I processori oggi in commercio sono dotati di più core all’interno di uno stesso circuito integrato, chiamato socket (zoccolo). Ogni core deve essere visto come un singolo processore: ad esempio, possiamo considerare una CPU quad core come 4 CPU a singolo core. Ognuno di questi core è capace di eseguire un processo per volta. In questo caso ogni core prende il nome di Logical Processor. Se la CPU in uso supporta l’hyperthreading, ogni core sarà capace di eseguire due processi per volta; in questo caso ogni core corrisponde a due Logical Processor. L’hyperthreading deve essere abilitato nel BIOS dell’host ESXi; a livello di configurazione di ESXi, l’hyperthreading è abilitato di default.

Ogni vCPU assegnata alle VM è vista, lato host, come un processo indipendente dagli altri, ovvero un thread. Il compito del VMkernel è quello di mappare una vCPU ad un Logical Processor, nel momento in cui quest’ultimo risulta disponibile. Per ogni istante vi è quindi un’associazione vCPU-LogicalProcessor. Per la distribuzione del carico CPU, il VMkernel divide la CPU fisica in porzioni di tempo (da 2 a 40 millisecondi) da distribuire a tutte le VM, in modo che ogni VM esegua i suoi processi come se disponesse sempre delle vCPU che le sono state assegnate.

L'autore

Alessio Carta

Responsabile sistemi presso un System Integrator con sede in Sardegna, si occupa di informatica e telecomunicazioni da oltre 10 anni. La sua formazione comprende una laurea in ingegneria, una specializazione IFTS in progettazione di reti telematiche, certificazioni Cisco CCNA, Cisco CCNA Security, MCP sui sistemi Windows Server e VCP su VMware vSphere (5.1, 5.5, 6.0). È istruttore presso una VMware IT Academy con sede a Cagliari.