Risorse VMware vSphere: spiegazione di HotAdd/HotPlug
In un ambiente VMware vSphere, le risorse assegnate potrebbero non essere sufficienti per garantire il livello di prestazioni richiesto quando su una VM è in esecuzione un’applicazione particolarmente esigente. In questo caso, la soluzione ottimale consiste nell’aggiungere ulteriori risorse di processore e memoria alla VM.
Quando sulla VM sono in esecuzione applicazioni critiche, non è possibile permettersi di spegnere la VM e incorrere in tempi di inattività. In questo scenario, la funzione Hot Add di VMware vSphere risulta molto utile. Grazie alla flessibilità offerta dalla virtualizzazione di VMware, è possibile aggiungere CPU e memoria RAM virtuali a una macchina virtuale già in esecuzione. Di seguito spiegheremo come abilitare VMware Hot Add, i casi d’uso, la configurazione e le limitazioni di questa funzione.
Che cos’è VMware Hot Add?
VMware Hot Add è una funzione che consente di aggiungere dispositivi virtuali a una VM mentre questa è in esecuzione. Per impostazione predefinita, è possibile aggiungere dispositivi virtuali quali un disco rigido virtuale (non IDE), adattatori di rete e dispositivi USB mentre la VM è accesa. VMware Hot Add consente di aggiungere una CPU virtuale (central processing unit) e RAM (random access memory) al volo. Con VMware Hot Add abilitato, non è necessario spegnere una macchina virtuale per aggiungere dispositivi virtuali.
VMware Hot Add vs Hot Plug
Si può notare che la CPU Hot Add funzione viene talvolta indicata come CPU hot plug. La stessa logica si applica alla memoria hot add e alla memoria hot plug. Questi due termini si riferiscono alla stessa cosa e sono intercambiabili.
Nota: Non confondere la memoria dinamica di VMware con la VMware hot add memoria, poiché si tratta di funzionalità diverse. La memoria dinamica di VMware è una tecnica per una gestione efficiente della memoria VMware per le VM. Questo nome non è ufficiale per questa funzione, ma gli utenti la citano come l’analogo avanzato della memoria dinamica di Hyper-V. Le tecniche di gestione della memoria di VMware includono la condivisione trasparente delle pagine, il ballooning della memoria, la compressione della memoria e lo swapping della memoria.
Requisiti e limitazioni
Esistono requisiti e limitazioni per l’aggiunta di vCPU (CPU virtuali) e memoria VMware alle VM in esecuzione:
- Il sistema operativo (OS) guest deve supportare l’Aggiunta a caldo dei dispositivi.
- La compatibilità hardware della macchina virtuale (versione hardware virtuale) deve essere pari o superiore a 7.
- {15} deve essere installato sul sistema operativo guest.
Fault Tolerancenon deve essere abilitato per la macchina virtuale.- La macchina virtuale deve essere spenta per abilitare la
Hot Addfunzionalità. - È necessario utilizzare una licenza
VMware vSphere Advanced,EnterpriseoEnterprise Plus. VMware vSphereEnterprise Plussupporta siaCPU hot addche la memoriahot add. Consultare la Guida alle licenze VMware per verificare le funzionalità disponibili per altre edizioni e sistemi operativi guest.
Prima di aggiungere vCPU, tenere conto delle limitazioni relative alle licenze del sistema operativo ospite e delle applicazioni installate sulla macchina virtuale. Potrebbe essere necessario acquistare licenze aggiuntive per eseguire il software su un numero maggiore di processori.
I sistemi operativi ospiti che supportano Hot Add sono Windows Server 2003 e versioni successive, e Linux che utilizza kernel 3.8 e versioni successive. Le edizioni di fascia alta di Windows Server supportano sia la CPU che la memoria hot add. Alcune edizioni di fascia bassa di Windows Server supportano solo la memoria hot add.
| Sistema operativo ospite | Licenza/Edizione | Aggiunta di memoria a caldo | CPU hotplug |
| Windows Server 2003 a 32 bit/64 bit | Standard, Enterprise |
Sì | No |
| Windows Server 2008 a 32 bit | Standard, Enterprise, Datacenter |
Sì | No |
| Windows Server 2008 a 64 bit | Standard, Enterprise |
Sì | No |
| Windows Server 2008 a 64-bit | Datacenter |
Sì | Sì |
| Windows Server 2008 R2 | Standard, Enterprise |
Sì | No |
| Windows Server 2008 R2 | Datacenter |
Sì | Sì |
| Windows Server 2012 | Standard, Datacenter |
Sì | Sì |
| Windows Server 2012 R2 | Standard, Datacenter |
Sì | Sì |
| Windows Server 2016 | Standard, Datacenter |
Sì | Sì |
| Windows Server 2019 | Standard, Datacenter |
Sì | Sì |
VMware Hot Add Pro e contro
VMware Hot Add è una funzionalità utile in molti casi. Si noti, tuttavia, che l’utilizzo di questa funzione presenta degli svantaggi quando l’aggiunta a caldo non è realmente obbligatoria. VMware Hot Add è disabilitato per impostazione predefinita per diversi motivi. Scopriamo perché.
VMware vCPU Hot Add e vNUMA
Quando si abilita VMware Hot Add, vNUMA viene automaticamente disabilitato per la VM. Per impostazione predefinita, vNUMA è abilitato per tutte le VM che dispongono di 8 o più vCPU per migliorare le prestazioni. Diamo un’occhiata più da vicino ai concetti di NUMA e vNUMA.
Che cos’è NUMA?
NUMA (non-uniform memory access) è l’architettura per i sistemi multiprocessore che consente alle CPU di condividere la memoria a livello locale. Il tempo di accesso alla memoria da parte di una CPU dipende dall’ubicazione della memoria sulla scheda madre. Ogni processore ha la priorità di utilizzare la “propria” memoria locale piuttosto che quella installata negli slot vicini a un altro processore. In altre parole, NUMA è un metodo che determina come un processore interagisce con i moduli di memoria di un altro processore. NUMA sono piattaforme dotate di più di un bus di sistema, in cui ogni processore può accedere a tutta la memoria presente sulla scheda madre. Un processore con memoria installata negli slot vicini a esso viene chiamato NUMA node. 
Se NUMA è disabilitato o, ad esempio, si dispone di due processori e la memoria è installata solo negli slot di uno di essi, si potrebbero verificare un calo delle prestazioni e altri problemi hardware. Se non si dispone di un numero sufficiente di moduli di memoria per riempire tutti gli slot su una scheda madre con due processori, provare a distribuire i moduli di memoria tra gli slot del primo e del secondo processore.
NUMA aiuta a distribuire in modo razionale i processi di sistema in esecuzione in un sistema operativo che supporta la tecnologia NUMA. Consente a ciascun processo di accedere alle aree di memoria più vicine ai processori utilizzati da tali processi.
Che cos’è vNUMA?
Virtual NUMA (vNUMA) è un metodo di ottimizzazione in VMware vSphere. Assicura che le VM di grandi dimensioni funzionino in modo ottimale tenendo conto della NUMA topologia ed evitando colli di bottiglia nella larghezza di banda della memoria. Una topologia fisica NUMA viene esposta al sistema operativo guest tramite vNUMA. Di conseguenza, la topologia virtuale NUMA si basa sulla topologia NUMA dell’hardware fisico sottostante utilizzato dall’host ESXi. Le CPU virtuali della VM possono pianificare l’accesso alla memoria situata sugli stessi NUMA nodi. La funzione
vNUMA è disponibile per le VM che utilizzano hardware virtuale 8 o superiore. Quando si crea una VM, è possibile selezionare il numero di processori e il numero di core dei processori. Il numero di socket CPU viene calcolato automaticamente. Se il numero di vCPU utilizzate da una VM è superiore al numero di core su ciascun NUMA nodo, la topologia vNUMA viene modificata e ottimizzata per l’utilizzo da parte di un sistema operativo guest. In questo caso, il sistema operativo ospite può utilizzare più NUMA nodi. Questa VM è denominata macchina virtuale “wide” o “large”.
Cosa succede quando vNUMA è disabilitato?
Quando Hot Add è abilitato e vNUMA è disabilitato, una macchina virtuale non è a conoscenza dei NUMA nodi sottostanti sull’host ESXi e aumenta l’accesso alla memoria sui NUMA nodi remoti. La pianificazione della CPU e della memoria del sistema operativo ospite non è ottimale. Di conseguenza, le prestazioni della macchina virtuale si riducono. Il calo delle prestazioni è evidente per le VM di grandi dimensioni con un numero crescente di thread generati da un’applicazione. Ad esempio, se si abilita Hot Add su una VM il cui sistema operativo ospite utilizzava due nodi NUMA , tale sistema operativo ospite potrà rilevare solo un nodo NUMA in seguito, poiché non viene creata la topologia ottimizzata vNUMA .
Abilitare VMware Hot Add solo se si prevede di utilizzare questa funzione durante il funzionamento della VM. In caso contrario, è preferibile disabilitare Hot Add per le VM che si estendono su più di un nodo NUMA . Se non si è certi della necessità di effettuare un’aggiunta a caldo di CPU e memoria, è possibile fornire fin dall’inizio maggiori risorse di CPU e memoria alla VM.
VMware Hot Add limitazioni
Non è possibile la rimozione a caldo
Quando la funzione Hot Add/hot plug è abilitata, non è possibile rimuovere a caldo le risorse di CPU e memoria. Dopo aver aggiunto a caldo vCPU e memoria a una VM, le applicazioni utilizzano queste risorse aggiunte. Ecco perché le applicazioni non supportano opzioni quali la sottrazione di memoria e capacità di CPU già in uso. Per questo motivo, l’unico modo possibile per ridurre le risorse di CPU e memoria di una VM è spegnerla e modificare le impostazioni della VM spenta.
Limiti di scalabilità della memoria
La quantità massima di memoria che può essere aggiunta a caldo è pari a 16 volte la quantità iniziale di memoria assegnata alla VM. Ad esempio, se una VM dispone di 4 GB di RAM, tale quantità può essere aumentata fino a 64 GB.
Esiste inoltre una limitazione per le VM dotate di 3 GB di RAM (esattamente 3072 MB) o meno. Potrebbe verificarsi un errore oppure il sistema operativo guest (Linux a 64 bit e Windows a 32 bit) potrebbe non riuscire a rilevare la memoria aggiunta. La soluzione consiste nello spegnere la VM e aumentare la quantità di memoria oltre i 3072 MB. A questo punto è possibile accendere la macchina virtuale e utilizzare la memoria VMware Hot Add.
Come configurare VMware Hot Add
Esistono diversi metodi per abilitare VMware vCPUs Hot Add e la memoria VMware Hot Add. È possibile utilizzare l’interfaccia utente grafica o l’interfaccia a riga di comando.
Abilitazione Hot Add in vCenter
Per abilitare l’opzione VMware Hot Add utilizzando vCenter, accedere a VMware vSphere Client ed eseguire le seguenti operazioni:
- Andare su
Hosts and Clusters. - Selezionare la macchina virtuale desiderata nel pannello di navigazione. La macchina virtuale deve essere spenta.
- Fare clic sull’icona Modifica impostazioni . In alternativa, è possibile fare clic con il tasto destro del mouse sul nome della VM e, nel menu che si apre, selezionare
Edit Settings.
Per abilitare CPU hot add, procedere come segue:
- Nella finestra
Edit Settings, espandere le impostazioni della CPU. - Nella riga
CPU Hot Plug, selezionare la casella di controlloEnable CPU Hot Add.
Procedere come segue per abilitare la memoria hot add:
- Nella finestra
Edit Settings, espandere le impostazioni della memoria. - Nella riga
Memory Hot Plug, selezionare la casella di controlloEnable.
- Fare clic su
OKper salvare le impostazioni della VM e chiudere la finestra.
Ora è possibile avviare la VM e hot add assegnare vCPU e memoria VMware alla VM.
Abilitare VMware Hot Add in PowerCLI
VMware PowerCLI è il potente strumento da riga di comando per la gestione di VMware vSphere. Vediamo come abilitare VMware Hot Add in PowerCLI.
- Connetti al tuo vCenter o all’host ESXi utilizzando il seguente comando e inserendo l’indirizzo IP appropriato (192.168.101.205 in questo esempio) o il nome host:
Connect-VIServer 192.168.101.205 - Inserisci le credenziali quando richiesto.
- Elenca le VM presenti sull’host ESXi a cui ti sei connesso.
Get-VM - Assicurati che la VM per la quale desideri abilitare
Hot Add sia spenta. - Eseguire questi comandi per abilitare l’aggiunta a caldo di memoria e CPU per la macchina virtuale selezionata.
$VM = Get-VM Windows-VM
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.memoryHotAddEnabled = $true
$spec.cpuHotAddEnabled = $true
Dove:$VM.ExtensionData.ReconfigVM_Task($spec)
Windows-VMè il nome della macchina virtuale desiderata
$spec.memoryHotAddEnabled = $trueè il comando per abilitare la memoriahot add
$spec.cpuHotAddEnabled = $trueè il comando per abilitareCPU hot add - Verificare su quali macchine virtuali sono abilitate le funzionalità di aggiunta a caldo di CPU e memoria:
Get-VM | Get-View | Select Name, `
@{N="CpuHotAddEnabled";E={$_.Config.CpuHotAddEnabled}}, `
@{N="CpuHotRemoveEnabled";E={$_.Config.CpuHotRemoveEnabled}}, `
@{N="MemoryHotAddEnabled";E={$_.Config.MemoryHotAddEnabled}}
Abilitazione di Hot Add in un file di configurazione della macchina virtuale
Un altro metodo per abilitare VMware Hot Add consiste nell’utilizzare l’ESXi interfaccia a riga di comando e modificare il file di configurazione VMX della macchina virtuale. Aprire la shell di ESXi o connettersi all’host ESXi tramite SSH. Quindi eseguire i seguenti comandi nella riga di comando per abilitare Hot Add:
- Accedere alla directory della VM:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Assicurarsi che la VM sia spenta.
- Aprire il file di configurazione VMX della VM in un editor di testo:
vi Windows-VM.vmx - Aggiungere questa riga al file di configurazione per abilitare
vCPU Hot Add:
vcpu.hotadd = "TRUE" - Aggiungere questa riga al file di configurazione per abilitare la memoria
Hot Add:
mem.hotadd = "TRUE" - Salvare il file di configurazione
VMXe chiudere l’editor di testo.
È possibile disabilitare le funzionalità hot plug in una VM per dispositivi quali adattatori di rete, controller disco, ecc. (che sono abilitati per impostazione predefinita).
devices.hotplug = “false”
Questa impostazione non influisce su CPU hotplug né sulla configurazione VMware relativa all’Aggiunta a caldo di memoria per la VM.
Modifica della configurazione VMX in VMware vSphere Client
È inoltre possibile modificare la configurazione VMX in VMware vSphere Client:
- Selezionare la VM desiderata in
VMware vSphere Client. - Spegnere la VM se è in esecuzione.
- Fare clic su
Edit Settings. - Selezionare la scheda
VM Optionsnella finestraVM Settings. - Fare clic su
Advancedper espandere le opzioni e fare clic suEdit Configuration.
- Fare clic su
Add Configuration Paramsnella finestraConfiguration Parameters. - Nella sezione
Add New Configuration Paramsinserire i valori per abilitare la memoriaVMware Hot Adde le vCPU VMware di conseguenza.
Nome:mem.hotaddValore:TRUE
Nome:vcpu.hotaddValore:TRUE

- Fare clic su
OKper salvare le impostazioni e chiudere la finestra.
Conclusione
Abilitare VMware Hot Add solo se si prevede di utilizzare questa funzione per aggiungere processori virtuali e memoria a una VM in esecuzione. Se si abilita VMware Hot Add ma non si utilizza questa funzione, le prestazioni delle macchine virtuali di grandi dimensioni potrebbero ridursi, poiché non verrà utilizzata la topologia con più NUMA nodi. Utilizzare il monitoraggio delle macchine virtuali VMware per monitorare le prestazioni delle macchine virtuali e l’utilizzo delle risorse in VMware vSphere. Questo approccio consente di determinare se per una macchina virtuale è necessario abilitare la funzione Hot Add.
