NVMe Memory Tiering in vSphere 8.0 U3, ESX 9.0 and 9.1: Requirements, Configuration and ESXCLI

NVMe Memory Tiering across vSphere 8.0 U3, ESX 9.0 and 9.1: versions, requirements, DRAM:NVMe ratio, tierdevice and memtier ESXCLI commands.

Short answer: NVMe Memory Tiering lets ESX use a local, dedicated NVMe device as a second memory tier (Tier 1) behind DRAM (Tier 0). Only VM memory is tiered. It was a tech preview in vSphere 8.0 U3 (default DRAM:NVMe 4:1), became GA in ESX/VCF 9.0 (default 1:1, DRS aware, hardware RAID, encryption), and ESX 9.1 adds the esxcli memtier namespace, automatic partitioning, activation without a reboot and software mirroring. It works well when active memory stays under 50% of DRAM.

What memory tiering does

The host presents DRAM plus the NVMe tier to VMs as one contiguous memory pool. The ESX memory manager tracks how recently and how often each VM page is accessed. Frequently used pages stay in DRAM and cold pages go to NVMe. Kernel memory is never tiered. Tiering is off by default.

The 9.1 best-practices page describes the placement behaviour. Cold pages start moving to NVMe when host memory consumption reaches roughly 80% of DRAM. After that, the algorithm keeps scanning VM memory in batches and moves pages between tiers at the end of each cycle. How fast it scans depends on memory pressure. So a host whose VMs fit in DRAM will show little or no Tier 1 usage.

This is not swap. Tiering picks pages by age and activity and uses a dedicated local device, while host swap picks pages crudely and often sits on shared storage. The 9.1 guidance also says not to combine tiering with memory overcommit.

Version status: 8.0 U3 vs 9.0 vs 9.1

vSphere 8.0 U3ESX / VCF 9.0ESX / VCF 9.1
StatusTech preview (KB 311934)GA, production supportedGA
Default DRAM:NVMe4:1 (Mem.TierNvmePct = 25)1:11:1 (tier-size-pct 100)
Ratio range1–400%docs recommend 100% or lower1–400%
Tier partitionManual, esxcli system tierdevice createManual, esxcli system tierdevice createCreated automatically
EnableKernel boot option + rebootVMkernel.Boot.memoryTiering + rebootesxcli memtier enable or Configuration Manager, maintenance mode, no reboot
RedundancyNo RAID recommended, one device per hostHardware RAID (VROC, tri-mode)Software mirroring (2 devices) or hardware RAID
EncryptionNot supportedHost or VM levelHost or VM level
DRSNot recommendedTiering-aware placementTiering-aware placement
Mixed clustersNot supportedSupportedSupported

The 8.0 U3 tech preview guide attached to KB 311934 also recommended VDI-type workloads only, no vSAN in the same cluster, and disabled large pages by default. Treat 8.0 U3 as a lab feature and plan production on 9.x.

Requirements and limits

ItemRequirement (9.0 / 9.1 TechDocs)
VersionsvCenter and ESX 9.0+ (9.1 features need 9.1 on both)
Device classvSAN-cache-class NVMe from the Broadcom Compatibility Guide, vSAN SSD: Endurance Class D (≥ 7300 TBW), Performance Class F or G. The 9.1 docs add Mixed Use, 3 DWPD or higher
AttachmentLocal only. No NVMe-oF or Ethernet-attached devices
PartitionDedicated device, all other partitions deleted. Tier partition max 4 TB
SharingNot usable if it is already a vSAN cache/data disk or VMFS datastore (9.1: remove from the disk group first)
HostNo Intel Optane PMem, no NVDIMM-N. Maintenance mode for any change
Unsupported operationsSuspend to memory. NVMe hot-plug / prepare-to-remove. Quick Boot (9.1)
SizingNVMe used = the smaller of (DRAM × ratio) and the partition size. Keep active memory ≤ 50% of DRAM

VM types that are excluded

ESX 9.0: these VMs cannot power on on a tiered host: latency sensitivity high, SEV / SGX / TDX, Fault Tolerance, VMs with more than 1 TB and 128 vCPUs, and nested virtualization (vhv.enable). These are kept in DRAM automatically: 1 GB pages, preallocated memory, PCI passthrough / UPT, and vQAT.

ESX 9.1: low-latency, confidential, FT, large and nested VMs can now power on, but they are still left out of tiering and stay in DRAM. VBS guests are the exception because they can opt in with sched.mem.enableNestedTiering = TRUE. The 9.1 VCF blog says nested VMs participate in tiering, which is broader than TechDocs, so go by the documentation. For VMs above 512 GB and 64 vCPUs, the 9.1 docs recommend turning tiering off and using a full reservation.

Configure on vSphere 8.0 U3 (tech preview)

esxcli system maintenanceMode set --enable true
esxcli storage core adapter device list
# delete any existing partitions first (partedUtil, KB 1036609)
esxcli system tierdevice create -d /vmfs/devices/disks/<nvme_device>
esxcli system tierdevice list
esxcli system settings kernel set -s MemoryTiering -v TRUE
# optional ratio, default 25 (= 4:1)
esxcfg-advcfg -s 50 /Mem/TierNvmePct
reboot

The only option tierdevice create takes is -d / --nvmedevice, and tierdevice delete takes the same one. An older version of this article showed extra vendor/ID arguments, which were wrong.

Configure on ESX 9.0

  1. Put the host in maintenance mode, delete all partitions on the NVMe device (KB 323144 / KB 1036609), then run esxcli system tierdevice create -d /vmfs/devices/disks/<nvme_device> and check it with esxcli system tierdevice list. Device preparation can’t be done from the vSphere Client in 9.0.
  2. Enable tiering. Cluster: Configure → Desired State → Configuration → Draft → esx → vmkernel → options, set memory_tiering to True. Host: Advanced System Settings, set VMKernel.Boot.memoryTiering to true. Both need a cluster managed by a single image with vSphere Configuration Profiles. Broadcom’s 9.1 memtier blog confirms that 9.0 still uses the esxcli system settings kernel namespace from the CLI.
  3. Optionally set Mem.TierNvmePct for the ratio (25 = 4:1), Mem.EncryptTierNVMe = 1 for host-level encryption, or sched.mem.EncryptTierNVMe = TRUE for one VM. Reboot.

To exclude a single VM, power it off and set sched.mem.enableTiering = FALSE.

Configure on ESX 9.1: the esxcli memtier namespace

In 9.1, every tiering operation is in one namespace. The partition is created automatically, and enabling needs maintenance mode but no reboot. Commands and options below are from the ESXCLI 9.1.0 reference:

esxcli memtier device list --available        # -a; --configured / -c
esxcli memtier enable -d <device_1>
esxcli memtier enable -d <device_1>,<device_2>   # software mirror
esxcli memtier enable -d <device_1> -c t -r 50    # encryption, 2:1 ratio
esxcli memtier config get                     # -d / -e / -c / -r for single values
esxcli memtier config set --tier-size-pct 25  # 1-400, % of DRAM
esxcli memtier config set --encryption true
esxcli memtier config set -d <new_device>,<mirror_device>
esxcli memtier status get
esxcli memtier disable                        # keeps tier partition
esxcli memtier disable -d                     # --delete-devices
esxcli memtier config delete                  # removes config and partition

For a cluster, go to Configure → Desired State → Configuration → Draft → esx → memtier → nvme. Set enable and pick a device for each host (by BIOS UUID). You can also set a mirror_device, encryption and tier_size_pct. Configuration Manager puts the host into maintenance mode by itself. The mirror device has to be at least as large as the primary. If config get shows Enable true but status get reports Disabled, activation failed, so check the logs and alarms.

In 9.1, if you set sched.mem.enableTiering = FALSE on a VM, also give it a full memory reservation. Without one, its pages can end up in host swap, which is slower than the NVMe tier.

Monitor it

  • 9.0: Host → Configure → Hardware → Overview shows Tier 0 (DRAM), Tier 1 (NVMe) and Total. The cluster Hosts tab has a Memory Tiering column, which reads “Software” for tiered hosts.
  • 9.1: host and cluster Summary Memory cards show tier state and Tier 1 consumption, and there are tiering-specific performance charts. From the CLI, use esxcli memtier status get.
  • Capacity check: compare active memory with DRAM. A host whose active memory is under 50% of DRAM is a good candidate.

Operational notes

  • Expect vMotion to take roughly 1.5–2x longer for tiered VMs, because pages have to be read back from NVMe.
  • If a single-device tier fails (9.1 docs), VMs that touch a page on the failed device power off. With vSphere HA restart policies they can be restarted on another host. DRAM-only VMs keep running. This is the reason for mirroring or RAID.
  • If you turn tiering off on a host, the cluster loses that capacity, and in an overcommitted cluster some VMs may then fail to power on.

Lab notes

Sources

Related on vdan.cz

Accelerating AI Workloads: Mastering vGPU Management in VMware Environments

Recap of Explore 2025 session INVB1158LV: managing NVIDIA vGPU for AI/ML workloads in VMware, vGPU profiles, MIG and placement tips.

Explore 2025 Session Recap – INVB1158LV

Are you looking to maximize AI/ML performance in your virtualized environment? At VMware Explore 2025, I attended a compelling session — INVB1158LV: Accelerating AI Workloads: Mastering vGPU Management in VMware Environments — that unpacked how to effectively configure and scale GPUs for AI workloads in vSphere.

This blog post shares key takeaways from the session and outlines how to use vGPU, MIG, and Passthrough to achieve optimal performance for AI inference and training on VMware Cloud Foundation 9.0.


vGPU Configuration Options in VMware vSphere

🔹 1. DirectPath I/O (Passthrough)

  • A dedicated GPU is assigned to a single VM or containerized workload.
  • Ideal for maximum performance and full GPU access (e.g., LLM training).
  • No sharing or resource fragmentation.

🔹 2. NVIDIA vGPU – Time Slicing Mode

  • Shares one physical GPU across multiple VMs.
  • Each VM gets 100% of GPU cores for a slice of time, while memory is statically partitioned.
  • Supported on all NVIDIA GPUs.
  • Useful for efficient GPU sharing, especially for model inference and dev/test setups.

✅ Example profiles: grid_a100-8c, grid_a100-4-20c

🔹 3. Multi-Instance GPU (MIG)

  • Available on NVIDIA Ampere & Hopper (e.g., A100, H100).
  • Splits GPU into isolated hardware slices (compute + memory).
  • Offers deterministic performance and better isolation.
  • Best for multi-tenant AI inference, production-grade deployments.

✅ Example profiles: MIG 1g.5gb, MIG 2g.10gb, MIG 3g.20gb
✅ Assignable via vSphere UI with profiles like grid_a100-3-20c


Time Slicing vs. MIG – When to Use What?

ModeBest ForSharing Type
Time SlicingLLM training, dev/test environmentsTime-shared
MIGProduction inference, multitenancySpatial (hardware)
PassthroughMaximum performance for single workloadNot shared

Smarter vMotion for AI Workloads in VCF 9.0

One of the standout improvements presented during session INVB1158LV was the vMotion optimization for VMs using vGPUs. With vSphere 8.0 U3 and VMware Cloud Foundation 9.0, the way vMotion handles GPU memory has been completely reengineered to minimize downtime (stun time) during live migration.

Instead of migrating all GPU memory during the VM stun phase, 70% of the vGPU cold data is now pre-copied in the pre-copy stage, and only the final 30% is checkpointed during stun. This greatly accelerates live migration even for massive LLM workloads running on multi-GPU systems.

📊 Example results with Llama 3.1 models:

  • Migrating a VM using 2×H100 GPUs (144 GB vGPU memory) saw stun time drop from 24.5s to just 6.3s.
  • Migrating a large model on 8×H100 (576 GB) now completes in 21s, compared to 325s for a power-off-and-reload approach — that’s a 15× improvement.

These enhancements make zero-downtime AI infrastructure upgrades and scaling possible, even for large language model deployments

Deploying a Minimal VCF 9.0 Lab – Insights from Explore 2025

Deploy a minimal VCF 9.0 lab on 2–3 hosts: single-host domain flag, NIC speed bypass, vSAN ESA HCL mock VIB, HTTP offline depot and a sample hardware BOM.

Short answer: a minimal VCF 9.0 lab needs only 2 ESXi hosts with NFS or 3 with vSAN/FC, a single 10GbE NIC, and singleton appliances. For nested labs you can even put the VCF Installer and SDDC Manager on one host. The tricks that make it work in a homelab are a single-host domain flag, a NIC-speed validation bypass, a vSAN ESA HCL mock VIB, and an HTTP offline depot, all shown below with the exact commands. Reference hardware: MINISFORUM MS-A2 with 128 GB RAM.

I had the pleasure of attending the excellent session “Deploying Minimal VMware Cloud Foundation 9.0 Lab” by Alan Renouf and William Lam at VMware Explore 2025. It was packed with practical advice, hardware insights, and field-tested tips on how to stand up a fully functional VCF environment—even on a tight budget.

Whether you’re a home lab enthusiast, enterprise architect, or just VCF-curious, here’s a recap of the key takeaways.


Key Changes: VCF 5.x vs VCF 9.x

VCF 5.x:

  • Required 4+ ESXi hosts
  • Monolithic installer
  • vSAN required
  • 3-node NSX cluster
  • 10GbE NICs mandatory

VCF 9.x:

  • More modular design
  • Only 2–3 ESXi hosts required
  • 1 x 10GbE NIC sufficient
  • Support for singleton appliances
  • Flexible storage (vSAN ESA, FC, NFS)

VCF 9.0 Tips & Tricks (with real CLI guidance)

Here’s the juicy part—real-world deployment tips and overrides:

1. Minimum ESXi Host Requirements

  • For vSAN/FC: 3 ESXi hosts
  • For NFS: 2 ESXi hosts
  • ⚠️ You can install VCF Installer + SDDC Manager even on a single ESXi host (great for nested labs!)
> cat /home/vcf/feature.properties

feature.vcf.internal.single.host.domain = true

> echo 'y' | /opt/vmware/vcf/operationsmanager/scripts/cli/sddcmanager_restart_services.sh

2. NIC Validation Bypass

If your ESXi host doesn’t have a 10GbE NIC:

> cat /etc/vmware/vcf/domainmanager/application.properties

enable.speed.of.physical.nics.validation = false

> echo 'y' | /opt/vmware/vcf/operationsmanager/scripts/cli/sddcmanager_restart_services.sh

3. vSAN HCL Override

VCF Installer will fail validation if your SSD or controller is not on the vSAN ESA HCL. Install a “mock” VIB to bypass:

esxcli software vib install -v /tmp/vsan-mock.vib

4. Offline Depot HTTPS Requirement

By default, the VCF installer requires HTTPS:

cat /opt/vmware/vcf/lcm/lcm-app/conf/application-prod.properties

lcm.depot.adapter.httpsEnabled=false

systemctl restart lcm

5. Basic Auth Requirement

You don’t need a full-blown web server:

python http_server_auth.py --bind 192.168.1.100 --user myuser --password mysecurepassword --port 443 --directory /myrepo

Reference Hardware for Minimal Lab

Here’s an example BOM shared by the presenters:

  • MinisForum MS-A2 w/ AMD Ryzen 7945HX (16c/32t)
  • 128GB DDR5 (2x64GB SODIMM)
  • 3x M.2 NVMe SSDs
  • 10GbE SFP+ NIC + 2.5GbE onboard
  • MikroTik 5-port 10GbE switch (for under $200)

This setup is small, powerful, and flexible enough for a complete VCF 9.0 deployment.


Deployment Walkthrough – TL;DR

Here’s the summarized 8-step flow:

  1. Install ESXi (kickstart from USB)
  2. Deploy VCF Installer VM
  3. Connect to Offline Depot
  4. Run Installer with JSON
  5. Configure vSAN ESA
  6. Deploy vCenter
  7. Update Storage Policies
  8. Deploy SDDC Manager, NSX, Fleet Manager, Automation, etc.

Summary

This session truly showcased how far VCF has come in terms of flexibility and accessibility. More info: VMware Cloud Foundation (VCF) 9.x in a Box. Related on vDan: Holodeck 9.0.2 stuck at Install VcfInstallerBundles, VCF 9 upgrade: vRNI SSL thumbprint in SDDC Manager and vSphere editions comparison: VVF vs VCF 9.1.
All trademarks belong to their respective owners.

Data Services Manager (DSM) 9.0 Microsoft SQL…

Data Services Manager (DSM) 9.0 Microsoft SQL…

Data Services Manager 9.0 introduces support for a new Data Service, namely Microsoft SQL Server. This is currently tech preview and should be treated as non-production until full support is available. Customers can use this integration to deploy both MS SQL Server Instances and MS SQL Server […]


Broadcom Social Media Advocacy

Updated Nested ESXi 8.x & 9.0 Virtual Appliance

Updated Nested ESXi 8.x & 9.0 Virtual Appliance

Happy Sunday! Before the wave of announcements starts rolling out from VMware Explore Las Vegas, which starts tomorrow, I wanted to share a quick update. 😅 I have been pretty swamped for the past couple of months, so it has taken a bit more time to get the latest Nested ESXi Virtual Appliances […]


Broadcom Social Media Advocacy

VMware Explore 2025 in Las Vegas | Day 2 Recap

From key announcements to community connections—Day 2 at VMware Explore 2025 in Las Vegas has delivered on big Ideas and bold Innovations. Learn more in the recap.

VMware Explore 2025 in Las Vegas | Day 2 Recap

Welcome to VMware Explore 2025, where thousands of explorers have gathered at The Venetian Convention and Expo Center to harness the power of private cloud. Reporting live from Nevada, here’s your recap of Day 2.


Broadcom Social Media Advocacy

How to deploy VVF/VCF 9.0 using VMUG Advantage…

How to deploy VVF/VCF 9.0 using VMUG Advantage & VCP-VCF Certification Entitlement

How to deploy VVF/VCF 9.0 using VMUG Advantage…

VMUG Advantage members who have recently earned their VCP-VCF certification are entitled to non-commercial VMware Cloud Foundation (VCF) licenses for personal use. When logging into the Broadcom Certification Portal, you may have noticed that only perpetual licenses for VCF 5.x are available, […]


Broadcom Social Media Advocacy