VM Diskfiles mit mehr als 4 TB unter vSphere 5.5 erstellen

 

Gelegentlich gibt es Anwendungen, die große virtuelle Disks in einer VM erfordern. Seit vSphere 5.5 ist die 2 TB (minus 512 Byte) Grenze für vDisks gefallen. So steht es zumindest in den Configuration Maximums von vSphere 5.5:

Virtual Disk Size  62TB

Wer aber im vSphere Client (mea culpa, ich benutze den noch häufig) die Eigenschaften einer VM öffnet, um dort beispielsweise eine 5 TB Disk zu erstellen, wird mit einer Fehlermeldung konfrontiert:

The disk capacity entered was not a properly formed number or was out of range. It has been replaced with the nearest acceptable value DiskCapControl : value 5497558138880 is out of range (1048576,4398046511104)

Betrachtet man die letzte Zahl der Meldung (in Byte) so stellt man fest, daß es genau 4 TB sind. Auch die erzeugte vDisk ist genau 4 TB groß und nicht 5 TB wie gewünscht.

“Use the webclient, Luke!”

Wiederholt man die selbe Prozedur mit dem Webclient anstatt dem vSphere Client, so wird die vDisk in der gewünschten Größe erstellt. Offensichtlich möchte uns VMware schrittweise den vSphere Client abgewöhnen. Dass dies kein Bug ist, zeigt der Artikel KB 2054952.

Hier ist jedoch Vorsicht geboten. Mit der Konfiguration der großen vDisk nimmt man sich einige Konfigurations-Optionen wie zum Beispiel:

  • Virtual SAN
  • Fault Tolerance
  • Betrieb der VM nur auf ESXi 5.5 (auch bei HW Version 8)
  • Verwendung von Buslogic virtual SCSI Adapter

Die genauen Einschränkungen beschreibt VMware unter KB 2058287.

Links

  • VMware KB 1003497 – ESXi/ESX Configuration Maximums
  • VMware – vSphere 5.5 Configuration Maximums (PDF)
  • VMware KB 2054952 – Value out of range error message when adding disks larger than 4TB in vSphere Client
  • VMware KB 2058287 – Support for virtual machine disks larger than 2 TB in VMware ESXi 5.5

Different Blocksizes are evil!

Geahnt habe ich das schon immer, aber heute durfte ich das selbst miterleben. Storage vMotion von einem Volume (8MB Blocksize) auf ein frisch mit vmfs5 formatiertes Volume (1MB Blocksize). Zwanzig Gigabyte verschieben kann quälend langsam sein. Eine gleichgroße VM zwischen zwei LUNs mit gleicher Blockgröße dauerte nur einen Bruchteil der Zeit!

svMotion mit unterschiedlicher Blocksize
VM Protokoll LUN Source LUN Target Zeit [min]
 20 GB  FC 4Gbit  SAS 15k 8MB  SAS 15k 1MB  23
 20 GB  FC 4GBit  SAS 15k 8MB  SAS 15k 8MB  3

Wie kommt es zu derart frappierenden Unterschieden bei svMotion?

Die Ursache liegt in der Verwendung der unterschiedlichen Datamover, die vSphere5 für svMotion verwendet. Wenn die Storage kein Hardware Offload unterstützt, dann stehen zwei Datamover zur Auswahl:

  • fsdm der Standard Datamover. Liest den Block in den Applikationspuffer (svMotion) und schreibt diesen dann zum Ziel.
  • fs3dm : optimierter Datamover, der mit vSphere4 eingeführt wurde. Er Verschiebt die Daten auf Hypervisor Ebene unter Umgehung des Applikationspuffers.

Sobald Quelle und Ziel unterschiedliche Blockgrößen haben, fällt vSphere zurück auf den Standard Datamover fsdm. Die Blöcke werden gelesen und wegen unterschiedlicher Blockgröße an Quelle und Ziel neu organisiert, bevor sie geschrieben werden.

Ein sehr schöner Artikel hierzu erschien unter dem Titel “Blocksize impact” bei Yellow-Bricks und ein weiterer bei Frank Denneman unter dem Titel “Upgrading VMFS Datastores and SDRS

VMFS locking

Ein interessanter Artikel zum Thema VMFS-Locking erschien kürzlich im VMware vSphere Blog unter dem Titel “VMFS locking uncovered“. Er erklärt prinzipielle Sperrmechanismen bei VMFS3 und VMFS5 wie etwa SCSI-Reservierung, Heartbeats, ATS (Atomic Test & Set) oder Optimistic-Locking.

vSphere5: Upgrade auf VMFS5

Mit vSphere 5.0.0 kommt neben vielen anderen Neuheiten auch ein erneuertes Dateisystem VMFS5 hinzu.Die Unterschiede zwischen dem bisherigen VMFS3 und dem neuen VMFS5 erklärt Jason Boche in seinem Blog.

Die Migration ist sehr einfach und erfolgt im laufenden Betrieb. Die Blockgröße wird bei bei diesem Prozess nicht angetastet und somit nicht in die neue Standardblockgröße von 1MB konvertiert (!).

Angestoßen wird der Prozess im vSphere-Client unter: Home > Datenspeicher und Datenspeichercluster. Links den Datenspeicher auswählen und ins Register “Konfiguration” wechseln. Ist der Speicher noch nicht konvertiert erscheint unter Datenspeicherdetails die Upgradeoption (vgl Bild).

Ein Assistent prüft, ob alle angeschlossenen ESXi Hosts VMFS5 unterstützen (ab ESX 5.0.0).

Danach wird die neue Filesystemversion in den Datenspeicher Eigenschaften angezeigt.

Zur Beachtung: Die Blockgröße wurde nicht auf 1 MB standardisiert, sondern der ursprüngliche Wert beibehalten. Welche Auswirkungen dies haben kann erklärt ein lesenswerter Artikel von Frank Denneman.