PMem-Support in ESXi 6.7 Moderne persistente Speichertechnologien mit vSphere nutzen

Noch schneller als Flash-Speicher: PMEM

Mit den ESXi-Versionen 6.5 und 6.7 hat VMware Support für eine ganze Reihe neuer Hardware, bzw. virtueller Hardware sowie neue Funktionen eingeführt, wie z. B. Persistant Memory (NVM), PVRDMA / Shared PCI-Devices, vGPUs oder NVMe-Controller, die wir in den folgenden Beiträgen vorstellen. Wir starten mit Persistant Memory.

VMware unterstützt in aktuellen Versionen auch persistenten Speicher (PMem). Persistenter Speicher firmiert auch unter der Bezeichnung „Nicht flüchtiger Speicher oder „Non-Volatile Memory“ (NVM). Hierbei handelt es sich um spezielle Speichermodule, die die Geschwindigkeit von DRAM bieten, Ihre Daten jedoch nach einem Powerzyklus nicht verlieren. Sie eignen sich daher besonders für Anwendungen, die hohe I/O-Leistung benötigen, da persistenter Speicher die Speicherlatenz erheblich reduziert.

Da PMem byteadressierbar ist, lässt er sich von VMs wahlweise als regulärer oder optionaler Festplatten-Speicher nutzen. Es also für virtuelle Maschinen derzeit zwei Möglichkeiten, im Host verbauten PMem zu verwenden.

Ist die VM, bzw. Anwendung “PMem-aware“, was bedeutet, dass das Gastsystem für die Nutzung von PMem modifiziert wurde, bekommt die VM neben dem normalen Arbeitsspeicher in der virtuellen Hardware zusätzlich PMem in Form eines virtuelles NVDIMM-Devices angeboten. Dies setzt allerdings mindestens die virtuelle Hardware-Version 14 voraus. Das entsprechend modifizierte Gastsystem kann dann PMem im byte-adressierbaren Zufallsmodus verwenden. Diese Funktionalität heißt bei VMware auch Virtual Persistent Memory (vPMem). Allerdings sind solche VMs einigen Einschränken unterworfen, wie z. B. dem fehlenden Support für Snapshots oder HA. DRS ist aber unterstützt.

Neue pMEM-Hardware in einer VM.

Ist der Host generell mit PMem bestückt, können VMs, die kein geeignetes, also entsprechend modifiziertes Gastsystem ausführen und/oder deren Hardware-Version kleiner als 14 ist, den persistenten Speicher einfach als Datastore nutzen. Diese Betriebsart heißt vPMemDisk. Im  vPMemDisk-Modus greift die VM über ein als virtuelles SCSI-Gerät auf den PMem-Speicher zu, indem die die virtuelle Festplatte der VM  (VMDK) in einem PMem-Datastore abgelegt wird. Diese Funktion verträgt sich auch mit Storage vMotion. Die Folgende Abbildung (Quelle Starwind) verdeutlicht die Zusammenhänge:

Mit ESXi 6.7 unterstützt vSphere auch virtuelle NVDIMMs.

Generell wird bei Verwendung von PMem beim Erstellen einer virtuellen Maschine Speicher für die VM reserviert. Der PMem-Verbrauch bezieht sich auf eingeschaltete und ausgeschaltete VMs. Konfiguriert man eine VM für PMem, ohne das DRS im Cluster aktiviert ist, muss der Nutzer manuell einen Host mit ausreichend PMem zum Platzieren der VM auswählen.

Einschränkungen von PMem

Auf NVDIMM wird stets als Memory zugegriffen. Bei traditionellem Storage befindet sich zwischen den Anwendungen und dem Storage-Device Software, die Verzögerungen in der Verarbeitungszeit verursacht.  Bei der Verwendung von PMem hingegen verwenden die Anwendungen den Storage direkt. Dies bedeutet, dass die PMem-Performance deutlich höher ist, als bei herkömmlichen Storage. Storage befindet sich lokal auf dem Host. Da jedoch die Systemsoftware Änderungen nicht verfolgen kann, lassen sich Features wie Snapshots/Backups oder HA derzeit nicht mit dem PMem verwendet.

Namespaces

Bei PMem gibt es das Konzept der Namespaces. Namespaces sind konzeptionell mit Festplatten auf dem System vergleichbar. Diese Namespaces für PMem werden vor dem Starten von ESXi konfiguriert. ESXi liest Namespaces und fasst mehrere Namespaces durch Schreiben von GPT-Headern in einem logischen Volume zusammen. Die Formatierung erfolgt per Default automatisch, sofern der Nutzer das Volume nicht zuvor konfiguriert hat. Wurde bereits vorab formatiert, versucht ESXi, den PMem zu mounten. Sind Daten im PMem-Speicher beschädigt kann dies zum Fehlschlagen von ESXi führen. Um dies zu vermeiden, führt ESXi während des Mountens des PMem eine Überprüfung auf Fehler in den Metadaten durch.

PMem-Regionen

Bei PMem-Regionen handelt es sich um ununterbrochene Byte-Streams, die ein einzelnes vNVDimm oder eine vPMemDisk darstellen. Jedes PMem-Volume gehört zu einem einzelnen Host. Da die Verwaltung für jeden einzelnen Host erfolgen muss, bedeutet das für den Administrator theoretisch eine große Herausforderung, insbesondere im Cluster und bei einer großen Anzahl an Hosts. Defakto ist es aber nicht notwendig, jeden einzelnen Datastore zu verwalten, da man stattdessen die gesamte PMem-Kapazität im Cluster als einen Datastore betrachten kann.

Das vCenter automatisiert zusammen mit DRS die erstmalige Platzierung von PMem-Datastores (s. o). Der Nutzer muss nur ein lokales PMem-Storage-Profil auswählen, wenn eine virtuelle Maschine erstellt oder das Gerät zur VM hinzugefügt wird. Der Rest der Konfiguration verläuft automatisiert.

Eine Beschränkung besteht allerdings darin, dass ESXi nicht zulässt, dass der Nutzer das Basisverzeichnis der virtuellen Maschine in einem PMem-Datenspeicher ablegt. Der Grund hierfür besteht darin, dass dieser Vorgang wertvollen Speicherplatz zum Ablegen von Protokoll- und Statistikdateien der virtuellen Maschine beansprucht. Diese Regionen werden zum Darstellen der VM-Daten verwendet und können als byte-adressierbare NVDIMMs oder vPMem-Festplatten bereitgestellt werden.

Migration

Da es sich bei PMem um einen lokalen Datastore handelt, muss der Anwender Storage vMotion zum Verschieben einer virtuellen Maschine verwenden. Während sich eine virtuelle Maschine mit vPMem nur auf einen ESXi-Host migriert werden kann, der über PMem-Ressourcen verfügt, lässt sich eine virtuelle Maschine mit vPMemDisk auch auf einen ESXI-Host ohne eine PMem-Ressource migrieren.

 

 

 

 

 

 

 

 

 

 

 

 

.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.