VMware vSphere Hot Add does not work – tips & tricks

Hi @all,

in meinen „VI113 – VMware vSphere Advanced Features“ Kursen bei der Firma qSkills behandle ich als Dozent das Thema „VMware vSphere Hot Add“ und es werden einige Übungen / Tests von den Teilnehmern dazu durchgeführt. Immer wieder stoßen die Teilnehmer dabei auf Limits oder benötigte manuelle Eingriffe, damit das Feature „Hot Add“ in gewissen Betriebssystemen und Umgebungen funktioniert. Mit diesem Blogartikel möchte ich die am meisten getroffenen „Limits“ und „Workarounds“ mit euch teilen.

  • Was ist Hot Add?

Wer sich noch nicht mit dem Feature auseinandergesetzt hat, findet in meinem bereits veröffentlichten Blogartikel „VMware vSphere Hot Add – Add vCPUs, increase RAM and disk size without downtime“ Infos, wie „Hot Add“ funktioniert.

  •  Welche Betriebssysteme sind supportet?

Ein „Hot Add“ ist von VMware Seite (Konfiguration der VM) jederzeit möglich. Häufig wird aber nicht bedacht, dass das Betriebssystem des virtuellen Gastes auch eine automatische Erweiterung von RAM und CPU Ressourcen erkennen und automatisch verarbeiten muss. Im VMware „Guest OS Compatibility Guide“ (zum Zeitpunkt des Blogartikelreleases – Stand: 05.12.2014) sind alle Betriebssysteme aufgelistet und es kann in der Spalte „Support Details“ eingesehen werden, ob „Hot Add Memory“ bzw. „Hot Add vCPU“ in der jeweiligen Version supportet ist.

Bei Windows Server 2008 R2 unterscheidet sich der Support von „Hot Add“ je nach Edition (Standard, Enterprise oder Data Center). Was in welcher Edition funktioniert, kann im VMware Knowledgebaseartikel „Support for Hot Add Memory and Hot Add vCPU specifications on different editions of Windows Server 2008 R2 (2051989)“ eingesehen werden.

  • „Known Issue“ beim Hot Add von vCPUs

In virtuellen Suse Linux Enterprise 11 (SLES11) Servern werden manchmal die im laufenden Betrieb hinzugefügten virtuellen CPUs nicht automatisch erkannt. Hier hilft der Artikel „Hot-add vCPU is not automatically activated in some SLES 11 guests (1015501)“ weiter, der die Schritte beschreibt, die im SLES11 nötig sind.

  • „Known Issues“ beim Hot Add von Memory

In Windows 7 32-bit und Linux 64-bit Gästen können per „Hot Add“ nicht mehr als 3GB ge-„hot add“-ed werden, wenn die eingeschaltete VM weniger als 3GB RAM zugewiesen hatte. Wenn die VM beim Einschalten exakt 3GB zugewiesen hatte, kann kein Hot-Add durchgeführt werden. Wenn die VM beim Einschalten mehr als 3GB RAM hatte, kann die VM auf die bis zu 16-fache Grüße des zugewiesenen RAMs beim Einschalten per Hot Add erweitert werden (bzw. bis zum Configuration Maximum der jeweiligen VM Hardware Version – z.B. Version 8 – 1011MB). Details sind im VMware Knowledgebaseartikel „Cannot hot add more than 3GB to Linux 64-bit or Windows 7 operating systems (2008405)“ zu finden.

In manchen Szenarien kann bei virtuellen Red Hat Enterprise Linux 5 bzw. SLES11 64-bit Gästen Memory von unter 3GB RAM auf über 3GB RAM im laufenden Betrieb konfiguriert werden. Allerdings  meistens auf Kosten eines „Systemcrashs“. Details können im VMware Knowledgebaseartikel „Linux Guest OS may become unresponsive after hot-adding memory from under 3 GB to over 3 GB (1019401)“ nachgelesen werden.

Häufig erkennen virtuelle Linux Gäste (z.B. SLES, RHEL, CentOS) im laufenden Betrieb hinzugefügten Arbeitsspeicher nicht. Damit dieser im Gastbetriebssystem verwendet werden kann, muss der Arbeitsspeicher manuell auf „online“ gesetzt werden. Wie das funktioniert, kann im VMware Knowledgebaseartikel „Hot adding memory in Linux (1012764)“ nachvollzogen werden. Etwas „unglücklich“ finde ich in diesem Artikel, dass bei dem „Online“-Setzen von Memory je eine Zeile mit der entsprechenden „Memorynumber“ ausgeführt werden muss:

echo online > /sys/devices/system/memory/memory[number]/state

Wer sich diese Mühe nicht machen will, kann diesen Schritt mit dem ausgewiesenen Script, das im KB „Hot added memory does not display in Linux guest“ von Parallels zu finden ist, erledigen 😉

for a in ls /sys/devices/system/memory/memory*/state;
do
echo „online“ > $a;
done 2>/dev/null;
grep offline /sys/devices/system/memory/memory*/state

 

Viel Spaß beim „Hot Add“en 😉

 

– I wish I could be a Virtual Machine –

 

Benjamin Ulsamer

Senior Consultant & Trainer

teamix GmbH

Benjamin Ulsamer

Benjamin Ulsamer ist seit Januar 2011 für die Firma Proact Deutschland GmbH tätig. Er startete als Senior Consultant & Trainer und war Teamlead im Bereich Virtualisierung. Im Oktober 2015 wurde er zum Manager Professional Services Region South ernannt. Seit Juni 2017 ist er verantwortlich für die IT-Ausbildung. In den Jahren 2015, 2016 und 2017 hat er für sein Engagement bzgl. Blogging & Wissensvermittlung von VMware die Auszeichnung zum vExpert erhalten. Seit 2021 ist er zudem mit verantwortlich für das Marketing von Proact.

 
Kommentare

Möglicherweise ein wichtiger Hinweis: Aktiviert man bei VMs die Möglichkeit CPUs im laufenden Betrieb hinzuzufügen (also Hot-Add), dann wird vNUMA deaktiviert. Siehe KB2040375 ( vNUMA is disabled if VCPU hotplug is enabled).

Als Ergänzung für alle, die noch nichts von vNUMA gehört haben und wann es Auswirkungen hat: http://anexinetisg.blogspot.de/2014/04/understanding-numa-and-virtual-numa.html
Ich denke in Zeiten von immer mehr Cores per Socket (Fujitsu RX4770 M1 z.B. mit 15 Cores + HT auf einem Socket) immer seltener relevant – außer bei „Monster-VM“s.

Ansonsten:
if – N%L in der Memory Ansicht von esxtop über 80% (or im Optimalfall bei 95-100%)
then – alles gut
else – so lange sich keiner beschwert, immer noch alles gut
another else – wenn sich jemand beschwert, darüber nachdenken 😉

Hinterlassen Sie einen Kommentar