ESX 9.0 NVMe Memory Tiering

Back to Blog

ESX 9.0 NVMe Memory Tiering

Mit dem NVMe Memory Tiering Feature in ESX können lokale NVMe SSDs als RAM genutzt werden. So können günstige NVMe Devices als RAM für Workloads genutzt werden, statt teurem DRAM. Bei NVMe Tier spricht VMware von Tier1 Memory, wobei DRAM als Tier0 zählt.

 

 

 

NVMe Memory Tiering – Kurzer Überblick

  • Nutzung von lokalen NVMe SSDs als Memory
  • Konfigurierbar per ESXi – innerhalb des Clusters sind Host mit und ohne NVMe Tiering nutzbar
  • Konfigurierbar von 25-400% des DRAM des Hosts

 

Beispiel Host mit 128GB DRAM

Aktivieren des NVMe Tiering Features erfolgt mittels esxcli.


esxcli system settings kernel set -s MemoryTiering -v TRUE

Nun brauchen wir ein lokale NVMe SSD und deren genauer Identifier.

 [root@hades:~] esxcli storage core device partition list
Device Partition Start Sector End Sector Type Size
-------------------------------------------------------------------- --------- ------------ ---------- ---- -------------
t10.NVMe____Samsung_SSD_990_EVO_Plus_2TB____________755B42415C382500 0 0 3907029167 0 2000398934016
mpx.vmhba33:C0:T0:L0 0 0 976773167 0 500107862016
mpx.vmhba33:C0:T0:L0 1 2048 976768064 fb 500104200704
mpx.vmhba32:C0:T0:L0 0 0 30283007 0 15504900096
mpx.vmhba32:C0:T0:L0 1 64 204863 0 104857600
mpx.vmhba32:C0:T0:L0 5 208896 2306047 6 1073741824
mpx.vmhba32:C0:T0:L0 6 2308096 4405247 6 1073741824
mpx.vmhba32:C0:T0:L0 7 4407296 30282974 f8 13248347648
t10.NVMe____Samsung_SSD_990_EVO_Plus_2TB____________7D5B42415C382500 0 0 3907029167 0 2000398934016 

Erstellung des NVMe Tiers:


esxcli system tierdevice create -d /vmfs/devices/disks/t10.NVMe____Samsung_SSD_990_EVO_Plus_2TB____________7D5B42415C382500

Nun geben wir noch die Percentage an, wie viel der Host Memory von der NVMe Disk nehmen soll. In unserem Fall die vollen 400%. (Best Practise ist ein 1:1 Ratio)

esxcli system settings advanced set -o /Mem/TierNvmePct -i 400

Anschliessen ist ein Neustart des Hosts nötig. Nach dem Neustart hat unser Hosts nun ca 624GB Memory.

 

Wahl des NVMe Device

SSDs für NVMe Tiering müssen auf dem Broadcom Compatibility Guide (BCG) aufgeführt sein und folgende Spezifikationen aufweisen.

  • vSAN SSD
  • Device Type: NVMe
  • Endurance Class: Class D >= 7300 TBW specifications
  • Performance Class: Class F: 100,000-349,999 Writes Per Second specifications or Class G

Weitere Wichtige Punkte:

  • max 4TB Grässe
  • NVMe-over-Fabric ist nicht unterstützt, die NVMe SSD muss direkt im Host angeschlossen werden.
  • NVMe SSDs als Memory Tier konfiguriert, lassen sich nicht mehr für VMFS oder vSAN Datastores verwenden.
  • Nur Hardware RAID unterstützt

 

Für welchen Workload ist NVMe Tiering geeignet?

NVMe Tiering ist grundsätzlich für jeden Workload geeignet, ESX lagert automatisch nur “cold” und “very cold” pages auf das NVMe Device. “hot” pages bleiben immer im DRAM. Features wie vMotion, DRS sind vollkommen unterstützt. Besonders geeignet sind VDI und DB Workloads.

Best Practise ist eine 1:1 Ratio – bspw 1TB DRAM und 2x1TB NVMe SSD (RAID1) für Tiering.

Nicht unterstützt sind folgende Workloads:

  • nested Virtualization
  • Monster VMs mit 1TB RAM und 128vCPUs
  • VMs mit aktivem Fault Tolerance

Anderst ausgedrückt, VMs mit folgenden vmx settings:

  • sched.cpu.latencySensitivity = “high”
  • SEV VM: sev.enable = “True”
  • SGX VM: sgxInfo.epcSize is non-zero
  • TDX VM: tdx.enable = “True”
  • ftcpt.enabled = “True”
  • vhv.enable = “True”

 

Mehrwert von NVMe Tiering

Nebst den offensichtlich günstigeren NVMe Speicher gibt es weitere Vorteile:

  • Host Density lässt sich erhöhen, die CPU lässt sich besser auslasten
  • Bei einem DB Cluster lässt sich mehr Workload provisionieren, somit kann auch die Lizenzkosten von zB MS-SQL Server (welche mit Sockets lizenziert werden) minimiert werden.
  • Single Socket ESX Host mit NVMe Tier für mehr total Memory

 

Weiterführende Infos

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Blog