Capita spesso di assistere ad attività di manutenzione di Virtual Machine a causa del raggiungimento di limiti prestazionali. Un web server che riceve più visite di quante erano state previste durante il suo dimensionamento, un database server cui vengono aggiunti nuovi applicativi, ci sono tantissimi esempi.
In questi casi, il sysadmin programma il fermo della virtual machine in tempi di non utilizzo (tipicamente le notti o i weekend), arresta la VM, modifica le configurazioni aggiungendo cpu o ram, e riavvia la VM. Sebbene questa operazione richieda pochi minuti, sarebbe possibile evitarla completamente, a patto di scegliere il sistema operativo guest in modo opportuno e configurare preventivamente la VM per supportare HotAdd e HotPlug, ovvero la possibilità di aggiungere (e notate bene, SOLO aggiungere) RAM o CPU.
Quale licenza VMware possedete?
Questa funzione è stata introdotta con vSphere 4.0, ed è supportata a patto che la virtual machine utilizzi almeno il virtual hardware 7 e che abbia installati i VMware Tools. Anche se queste due condizioni sono soddisfatte, non tutte le licenze VMware supportano questa funzione, ma dovrete avere una licenza Advanced o superiore (vSphere 4.0 e 4.1) oppure Enterprise (vSphere 5.0).
Quali sistemi operativi sono supportati?
Una volta appurato di possedere una licenza compatibile, dovrete verificare che il sistema operativo che volete utilizzare sia tra quelli supportati; non tutti infatti sono in grado di gestire l’aggiunta a caldo di CPU o RAM. Non esiste nessuna lista ufficiale di cui io sia a conoscenza da parte di VMware, il metodo migliore per verificare se il sistema operativo è tra quelli supportati (e la lista di supporto per l’aggiunta di CPU è ancor apiù ristretta di quella per la RAM) è controllare la sezione dedicata nelle opzioni della VM:
(Nell’esempio, una VM Windows 2003 Enterprise 64 bit che supporta Memory HotAdd ma non CPU HotPlug). Jason Boche ha compilato una lista del supporto su vari sistemi operativi Windows, insieme ad alcuni suggerimenti; potete consultarla qui.
Abilitare l’HotPlug
Come avete già potuto vedere dalla schermata precedente, quella è la sezione delle impostazioni della VM dove andare a modificare i parametri, mentre la VM stessa è spenta.
Aggiungere CPU o RAM
Una volta attivata la funzione, sarà possibile aggiungere CPU o RAM mentre la VM stessa è in esecuzione. Per farlo ci si dovrà recare nella configurazione della memoria o delle cpu della VM, che come potete vedere presenterà una schermata modificata rispetto al solito:
Andando ad aumentare la RAM di questa VM, potremo notare la modifica istantanea attraverso il Performance Monitor di vCenter:
mentre nel server è possibile vedere come la RAM si modifichi senza che il contatore di Uptime mostri fermi macchina:
Perchè usarlo?
In fase di configurazione iniziale attivare queste opzioni non comporta nessun disagio, solo un paio di click in più. Quando la VM è in produzione però questa modifica può risultare determinante per incrementare ulteriormente l’uptime di un servizio erogato, andando ad incrementare i quantitativi di RAM o CPU di una VM in sofferenza senza doverla arrestare.
L’ideale è attivare direttamente queste opzioni in un template, in modo da avere le nuove VM già configurate senza doversi ricordare di attivare HotAdd/HotPlug su ogni VM.
Nota finale: ci potrebbero essere alcuni problemi su alcune particolari versioni di kernel linux / distribuzioni, così come alcune versioni Windows. Verificate il caso specifico nella kb di VMware.