Risorse VMware vSphere: HotAdd/HotPlug Spiegati

In un ambiente VMware vSphere, le risorse allocate potrebbero non essere sufficienti per il livello di prestazioni richiesto quando si ha un’applicazione potente in esecuzione su una VM. In questo caso, la soluzione ottimale è aggiungere ulteriori risorse di processore e memoria alla macchina virtuale.

Quando applicazioni critiche sono in esecuzione sulla VM, non si può permettere di spegnere la VM e affrontare il downtime. Per questo scenario, la funzionalità Hot Add di VMware vSphere risulta utile. Grazie alla flessibilità fornita dalla virtualizzazione di VMware, è possibile aggiungere CPU hardware virtuali e memoria RAM a una VM in esecuzione. Qui spiegheremo come abilitare Hot Add di VMware, casi d’uso, configurazione e limitazioni di questa funzionalità.

Cos’è VMware Hot Add?

VMware Hot Add è una funzione che consente di aggiungere dispositivi virtuali a una macchina virtuale mentre la VM è in esecuzione. Per impostazione predefinita, è possibile aggiungere dispositivi virtuali come un disco rigido virtuale (non IDE), adattatori di rete e dispositivi USB mentre una VM è accesa. VMware Hot Add rende possibile l’aggiunta di una CPU virtuale (unità di elaborazione centrale) e di RAM (memoria ad accesso casuale) “al volo”. Con VMware Hot Add abilitato, non c’è bisogno di spegnere una VM per aggiungere dispositivi virtuali.

VMware Hot Add vs Hot Plug

Si può notare che la funzionalità CPU Hot Add è talvolta indicata come CPU hot plug. Lo stesso principio si applica all’aggiunta di memoria e all’inserimento a caldo della memoria. Questi due termini si riferiscono alla stessa cosa e sono interscambiabili.

Nota: Non confondere la memoria dinamica VMware e l’aggiunta di memoria VMware perché queste funzionalità sono diverse. La memoria dinamica VMware è una tecnica per una gestione efficiente della memoria VMware per le macchine virtuali. Questo nome non è ufficiale per questa funzionalità, ma gli utenti lo menzionano come l’analogia avanzata della memoria dinamica di Hyper-V. Le tecniche di gestione della memoria VMware includono la condivisione trasparente delle pagine, il rimpicciolimento della memoria, la compressione della memoria e lo swapping della memoria.

Requisiti e Limitazioni

Ci sono requisiti e limitazioni per l’aggiunta di vCPUs VMware (CPU virtuali) e memoria alle VM in esecuzione:

  • Il sistema operativo guest (OS) deve supportare l’aggiunta di dispositivi a caldo.
  • La compatibilità dell’hardware della macchina virtuale (versione dell’hardware virtuale) è 7 o superiore.
  • VMware Tools dovrebbe essere installato sul sistema operativo guest.
  • La tolleranza ai guasti non deve essere abilitata per la VM.
  • La macchina virtuale deve essere spenta per abilitare la funzionalità Hot Add.
  • A VMware vSphere Advanced, Enterprise, or Enterprise Plus license must be used. VMware vSphere Enterprise Plus supports both CPU hot add and memory hot add. Refer to the VMware licensing guide to check available functionality for other editions and guest OSs.

Considera i limiti di licenza del sistema operativo guest e delle applicazioni installate sulla VM prima di aggiungere vCPUs. Potresti aver bisogno di acquistare licenze aggiuntive per eseguire il software su un numero maggiore di processori.

I sistemi operativi guest che supportano l’aggiunta dinamica sono Windows Server 2003 e versioni successive e Linux con kernel 3.8 e versioni successive. Le principali edizioni di Windows Server supportano sia l’aggiunta dinamica della CPU che della memoria. Alcune edizioni inferiori di Windows Server supportano solo l’aggiunta dinamica della memoria.

Sistema operativo ospite Licenza/Edizione Aggiunta di memoria in caldo Hotplug della CPU
Windows Server 2003 32-bit/64-bit Standard, Enterprise No
Windows Server 2008 32-bit Standard, Enterprise, Datacenter No
Windows Server 2008 64-bit Standard, Enterprise No
Windows Server 2008 64-bit Datacenter
Windows Server 2008 R2 Standard, Enterprise No
Windows Server 2008 R2 Datacenter
Windows Server 2012 Standard, Datacenter
Windows Server 2012 R2 Standard, Datacenter
Windows Server 2016 Standard, Datacenter
Windows Server 2019 Standard, Datacenter

Pro e contro dell’aggiunta in caldo di VMware

VMware Hot Add è una funzionalità utile in molti casi. Tuttavia, è importante notare che ci sono degli svantaggi nell’utilizzare questa funzionalità quando non è realmente necessario. VMware Hot Add è disabilitato per impostazione predefinita per diverse ragioni. Scopriamone il motivo.

VMware vCPU Hot Add e vNUMA

Quando abiliti VMware Hot Add, vNUMA viene automaticamente disabilitato per la VM. Per impostazione predefinita, vNUMA è abilitato per tutte le VM che hanno 8 vCPUs o più per migliorare le prestazioni. Esaminiamo più da vicino il concetto di NUMA e vNUMA.

Cos’è NUMA?

NUMA (non-uniform memory access) è l’architettura per sistemi multiprocessore che consente alle CPU di condividere la memoria localmente. Il tempo per accedere alla memoria da parte di una CPU dipende dalla posizione della memoria sulla scheda madre. Ogni processore ha la priorità di utilizzare “la propria” memoria locale anziché utilizzare la memoria installata nelle slot vicino 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. I sistemi NUMA sono piattaforme con più di un bus di sistema in cui ogni processore può accedere a tutta la memoria sulla scheda madre. Un processore con memoria installata nelle slot vicino a questo processore è chiamato un nodo NUMA.

Se NUMA è disabilitato o, ad esempio, hai due processori e la memoria è installata nelle slot di uno solo di quei processori, potresti riscontrare una diminuzione delle prestazioni e altri problemi hardware. Se non hai abbastanza moduli di memoria per riempire tutte le slot su una scheda madre con due processori, prova a distribuire i moduli di memoria tra le slot di memoria del primo e del secondo processore.

NUMA aiuta i processi di sistema in esecuzione in un sistema operativo consapevole di NUMA ad essere distribuiti in modo razionale. Consente a ciascun processo di accedere a aree di memoria che sono più vicine ai processori utilizzati da tali processi.

Cosa è vNUMA?

NUMA Virtuale (vNUMA) è un metodo di ottimizzazione in VMware vSphere. Garantisce che le VM di grandi dimensioni funzionino ottimamente tenendo conto della topologia NUMA e evitando strozzature della larghezza di banda della memoria. Una topologia NUMA fisica viene esposta a un sistema operativo guest con vNUMA. Di conseguenza, la topologia NUMA virtuale 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 nodi NUMA.

La vNUMA è disponibile per le macchine virtuali che utilizzano hardware virtuale 8 o superiore. Quando si crea una macchina virtuale, è possibile selezionare il numero di processori e il numero di core del processore. Il numero di socket della CPU viene calcolato automaticamente. Se il numero di vCPUs utilizzato da una VM è superiore al numero di core su ciascun nodo NUMA, allora viene modificata e ottimizzata una topologia vNUMA per l’uso da parte di un sistema operativo guest. In questo caso, il sistema operativo guest può utilizzare più nodi NUMA. Questa VM è chiamata una macchina virtuale ampia o grande.

Cosa succede quando vNUMA è disabilitato?

Quando Hot Add è abilitato e vNUMA è disabilitato, una macchina virtuale non è consapevole dei nodi NUMA sottostanti sull’host ESXi e aumenta l’accesso alla memoria su nodi NUMA remoti. La pianificazione CPU/memoria del sistema operativo guest non è ottimale. Di conseguenza, le prestazioni della VM diminuiscono. La degradazione delle prestazioni è evidente per le VM ampie con un numero crescente di thread da parte di un’applicazione. Ad esempio, se abiliti Hot Add su una VM il cui sistema operativo guest utilizza due nodi NUMA, questo sistema operativo guest può rilevare solo un nodo NUMA dopo, poiché non viene creato un’ottimizzata topologia vNUMA.

Abilita Hot Add VMware solo se prevedi di utilizzare questa funzione durante il funzionamento della VM. In caso contrario, è meglio disabilitare Hot Add per le VM che si estendono su più di un nodo NUMA. Se non sei sicuro di dover aggiungere CPU e memoria a caldo, puoi fornire più risorse CPU e memoria alla VM fin dall’inizio.

Limitazioni di Hot Add VMware

La rimozione a caldo non è possibile

Quando la funzione Hot Add/hot plug è abilitata, non è possibile rimuovere a caldo risorse CPU e memoria. Dopo aver aggiunto a caldo vCPU e memoria a una VM, le applicazioni consumano queste risorse aggiunte. Ecco perché le applicazioni non supportano opzioni come la rimozione della memoria e della capacità CPU che sono già in uso. Per questo motivo, l’unico modo possibile per diminuire le risorse CPU e memoria per una VM è spegnere la VM e modificare le impostazioni della VM spenta.

Limitazioni della scalabilità della memoria

La quantità massima di memoria aggiunta a caldo è x16 la quantità iniziale di memoria fornita per la VM. Ad esempio, se una VM ha 4 GB di RAM, questa quantità può essere aumentata fino a 64 GB.

Hai anche una limitazione sui VM che hanno 3 GB di RAM (esattamente 3072 MB) o meno. Potresti ricevere un errore o un sistema operativo ospite (Linux a 64 bit e Windows a 32 bit) potrebbe non riuscire a determinare la memoria aggiunta. La soluzione è spegnere il VM, aumentare la quantità di memoria a più di 3072 MB. Quindi puoi accendere il VM e utilizzare l’aggiunta di memoria VMware Hot Add.

Come configurare VMware Hot Add

Ci sono diversi metodi per abilitare VMware vCPUs Hot Add e VMware memory Hot Add. Puoi utilizzare l’interfaccia utente grafica o l’interfaccia utente della riga di comando.

Abilitare Hot Add in vCenter

Per abilitare l’opzione VMware Hot Add utilizzando vCenter, accedi a VMware vSphere Client e segui i passaggi seguenti:

  1. Vai su Hosts and Clusters.
  2. Seleziona la macchina virtuale necessaria nel riquadro di navigazione. Il VM deve essere spento.
  3. Fai clic sull’icona Edit Settings. In alternativa, puoi fare clic con il pulsante destro del mouse sul nome del VM e nel menu che si apre, premi Edit Settings.

Fai quanto segue per abilitare l’aggiunta a caldo della CPU:

  1. Nella finestra Edit Settings, espandi le impostazioni della CPU.
  2. Nella riga CPU Hot Plug, seleziona la casella di controllo Enable CPU Hot Add.

Fai quanto segue per abilitare l’aggiunta a caldo della memoria:

  1. Nella finestra Edit Settings, espandi le impostazioni della memoria.
  2. Nella riga Memory Hot Plug, selezionare la casella di controllo Abilita.
  3. Fare clic su OK per salvare le impostazioni della VM e chiudere la finestra.

Ora è possibile avviare la VM e aggiungere in modo dinamico vCPUs e memoria VMware alla VM.

Abilitare il VMware Hot Add in PowerCLI

VMware PowerCLI è lo strumento potente a riga di comando per la gestione di VMware vSphere. Vediamo come abilitare il VMware Hot Add in PowerCLI.

  1. Connettersi al proprio vCenter o 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

  2. Inserire le credenziali quando richiesto.
  3. Elenca le VM sull’host ESXi a cui ti sei connesso.

    Get-VM

  4. Assicurarsi che la VM per cui si desidera abilitare Hot Add sia spenta.
  5. Esegui questi comandi per abilitare l’aggiunta di memoria e l’aggiunta di CPU per la macchina virtuale selezionata.

    $VM = Get-VM Windows-VM
    $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
    $spec.memoryHotAddEnabled = $true
    $spec.cpuHotAddEnabled = $true
    $VM.ExtensionData.ReconfigVM_Task($spec)
     
    Dove:
    Windows-VM
    è il nome della macchina virtuale necessaria
    $spec.memoryHotAddEnabled = $true è il comando per abilitare l’aggiunta di memoria
    $spec.cpuHotAddEnabled = $true è il comando per abilitare l’aggiunta di CPU

  6. Controlla su quali VM sono abilitate le funzionalità di aggiunta a caldo della CPU e della memoria:

    Get-VM | Get-View | Seleziona Nome, `
    @{N=”CpuHotAddEnabled”;E={$_.Config.CpuHotAddEnabled}}, `
    @{N=”CpuHotRemoveEnabled”;E={$_.Config.CpuHotRemoveEnabled}}, `
    @{N=”MemoryHotAddEnabled”;E={$_.Config.MemoryHotAddEnabled}}

Abilitazione dell’aggiunta a caldo in un file di configurazione della VM

Un altro metodo per abilitare VMware Hot Add è utilizzare l’interfaccia della riga di comando ESXi e modificare il file di configurazione VMX della macchina virtuale. Apri la shell ESXi o connettiti all’host ESXi tramite SSH. Quindi esegui i seguenti comandi nella riga di comando per abilitare Hot Add:

  1. Vai alla directory VM:
    cd /vmfs/volumes/datastore10a/Windows-VM/
  2. Assicurati che la VM sia spenta.
  3. Apri il file di configurazione VMX della macchina virtuale in un editor di testo:
    vi Windows-VM.vmx
  4. Aggiungi questa riga al file di configurazione per abilitare Hot Add vCPU:
    vcpu.hotadd = “TRUE”
  5. Aggiungi questa riga al file di configurazione per abilitare Hot Add memoria:
    mem.hotadd = “TRUE”
  6. Salva il file di configurazione VMX ed esci dall’editor di testo.

Puoi disabilitare le capacità di hot plug in una VM per dispositivi come adattatori di rete, controller di dischi, ecc. (che sono abilitati per impostazione predefinita).

devices.hotplug = “false”

Questa impostazione non influisce sulla configurazione VMware di hotplug CPU e hot add memory per la VM.

Modifica della configurazione VMX in VMware vSphere Client

Puoi anche modificare la configurazione VMX in VMware vSphere Client:

  1. Seleziona la VM necessaria in VMware vSphere Client.
  2. Spegni la VM se è in esecuzione.
  3. Fai clic su Edit Settings.
  4. Seleziona la scheda Opzioni VM nella finestra delle Impostazioni VM.
  5. Clicca su Avanzate per espandere le opzioni e clicca su Modifica Configurazione.
  6. Clicca su Aggiungi Parametri di Configurazione nella finestra dei Parametri di Configurazione.
  7. Nella sezione Aggiungi Nuovi Parametri di Configurazione inserisci i valori per abilitare l’aggiunta di memoria VMware Hot Add e vCPUs VMware di conseguenza.
     
    Nome: mem.hotadd       Valore: TRUE
    Nome: vcpu.hotadd        Valore: TRUE
  8. Premi OK per salvare le impostazioni e chiudere la finestra.

Conclusione

Abilitare VMware Hot Add solo quando si prevede di utilizzare questa funzionalità per aggiungere processori virtuali e memoria a una VM in esecuzione. Se si abilita VMware Hot Add ma non si utilizza questa funzionalità, le prestazioni possono degradare per le VM di grandi dimensioni, poiché non verrà utilizzata la topologia con più nodi NUMA. Utilizzare il monitoraggio delle VM di VMware per monitorare le prestazioni delle VM e l’utilizzo delle risorse in vSphere. Questo approccio aiuta a identificare se una VM ha bisogno che la funzione Hot Add sia abilitata.

Source:
https://www.nakivo.com/blog/vmware-vsphere-resources-hotadd-hotplug-explained/