Part 37 – Configuring Memory Tiering in VMware Cloud Foundation 9.0

If you’ve ever designed a hybrid storage architecture, you already understand Memory Tiering intuitively. ESXi is just applying the same hot/cold data placement logic one layer higher, to memory rather than disk

Its a very simple concept – RAM is fast. Very fast, but it’s also expensive and physically constrained by what a server chassis can hold.

Memory Tiering in ESXi lets a cheap NVMe drive serve as a second tier of memory alongside your DRAM similar to how the disk drives had a mix of NL+NVME drives in a hybrid array..

But it all comes a compromise – Speed or Penatly so i’d wait a bit more for CXL-attached memory modules.

Just like a hybrid array automatically moves hot blocks to flash and cold blocks to NL-SAS, ESXi automatically promotes hot memory pages to DRAM and demotes cold ones to NVMe. The hypervisor is here acts as tiering policy engine the same role that FAST VP plays on a VMAX, or Auto-Tiering on a Nimble or Pure array.

Which Workloads Benefit?

Not all workloads thou are best suited for tiering

Host-level configuration

Navigate to the host in vSphere, open Configure → Storage Devices, and note the NVMe device identifier. 

Place the host in maintenance mode to create our tiering device.

Step 1: Place host in maintainene mode

esxcli system maintenanceMode set -e 1

Step 2: Verify NVMe devices

esxcli storage core adapter device list

Step 3: Create the NVMe Tier Device

esxcli system tierdevice create -d /vmfs/devices/disks/eui.XXXXX..

Step 4: Verify the partition was created successfully:

esxcli system tierdevice list


Enable Memory Tiering on the NVMe

Step 5 : Check status — Configured will show FALSE

esxcli system settings kernel list -o MemoryTiering

Step 6 :Enable Memory Tiering

esxcli system settings kernel set -s MemoryTiering -v TRUE

Step 7 :Confirm by checking the status of memory tiering

esxcli system settings kernel list -o MemoryTiering

Step 8 : What percentage of the host memory should be accelerated using the NVMe tier?

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

Step 9 : Reboot the host

reboot

Check Both Configured and Runtime now TRUE after the host reboot

esxcli system settings kernel list -o MemoryTiering

Navigate to Host → Configure → Hardware → Overview.

The memory card will reflect the capacity with Tier 0 (DRAM) and Tier 1 (NVMe) shown separately.

Ssh into each remaining host and run the same partition creation steps as above..

Cluster-level configuration

To apply the config at the cluster level, its much easier to pick a reference host that has Memory Tiering enabled and use configuration Profile to push the Memory Tiering kernel setting everywhere automatically

Create a configuration profile from the reference host

At the cluster level, go to Desired State → Configuration → Create Configuration

Import from reference host.

Select the host which has memory tiering enabled as the source and complete the import wizard.

Validate config

Click Finish and Apply

Click Go to configuration

For hosts that may have local overrides that conflict with the cluster-level memory_tiering setting. Navigate to vmkernel → Options → Host Overrides and delete the override for each of the hosts

Confirm by checking the status of memory tiering

Now lets created a draft so any future hosts that are added in can pick up the configs. Click Draft

Choose the host and pick add override.

Pick a host and pick the NVMe

Now override is added , so apply the same for other hosts as well.

Run a compliance check hosts , 03, and 04 will show compliant because memory_tiering is set to TRUE.

Run the pre-check

Click Apply Changes.

The cluster will handle maintenance mode entry, configuration push, and rolling reboots automatically.

After remediation, filter Advanced System Settings on any host by memorytiering to confirm the setting was applied. The cluster view will show “software” in the Memory Tiering column for all hosts.

The tiering status can be seen at the host level.

Disabling Memory Tiering for specific VMs


Shut down the VM, go to Edit Settings → Advanced Parameters, and add the following:

Attribute: sched.mem.enableTiering
Value: FALSE

Power the VM back on. Memory pages for this VM will no longer be tiered to NVMe.

NVMe encryption at the VM level

If a specific VM handles sensitive workloads, you can encrypt its memory pages when they are tiered from DRAM to NVMe. Shut down the VM, then add:

Advanced parameter

Attribute: sched.mem.EncryptTierNVMe
Value: TRUE

Power the VM back on. Only this VM’s tiered memory pages will be encrypted.

NVMe encryption at the host level

To encrypt tiered memory pages for all VMs on a host, configure the host-level advanced setting. On the target host, navigate to Configure → System → Advanced System Settings, filter by mem.en, and set the value to 1.

Note: Host-level encryption applies to all VMs running on the host. VM-level settings still work independently and can be layered on top of this.

Custom DRAM:NVMe ratio tuning

The setting just controls how much NVMe gets added on top of your existing RAM on server or what percentage of the host memory should be accelerated using the NVMe tier?

Higher number = more NVMe = more total memory.

This can be applied via the CLI or UI

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

To change the ratio, go to Configure → System → Advanced System Settings on the target host, filter by mem.tier, and update the value (default: 100, max: 400). The default ratio is 1:1 so for every 1 GB of DRAM, 1 GB of NVMe is added. so here by setting 400 value , the ratio can be increased up to 1:4, delivering up to 400% additional memory

A host reboot is required for the new ratio to take effect. The Hardware Overview will continue to show the 1:1 split until after the restart.

So if you are now asking if we will use this production, the answer will be NO because RAM speed is still 1000.X faster than NVMe so i will wait for the CXL-attached memory modules (not NVMe!) that behave much closer to RAM, though still slower than DIMMs.

(Visited 39 times, 1 visits today)

By Ash Thomas

Ash Thomas is a seasoned IT professional with extensive experience as a technical expert, complemented by a keen interest in blockchain technology.