• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Yellow Bricks

by Duncan Epping

  • Home
  • Unexplored Territory Podcast
  • HA Deepdive
  • ESXTOP
  • Stickers/Shirts
  • Privacy Policy
  • About
  • Show Search
Hide Search

Software Defined

VCF Native S3 Object Storage Tech Preview “available” now!

Duncan Epping · Sep 9, 2026 · 1 Comment

Some may have noticed, others may have read over it, but in VCF 9.1.1 a brand new capability is available as a Tech Preview.

VCF 9.1.1 introduces a Tech Preview of native, S3-compatible object storage built directly into vSAN. By eliminating the need for third-party add-ons, native object storage provides a unified, scalable, and multi-tenant object storage platform for modern workloads.

Now the words “Tech Preview” are key here, and one thing that is not mentioned is that this Tech Preview is only available via a request. Meaning that you will need to request access to the documentation via your VMware representative, as the candidates for the Tech Preview will be selected by product management. The capability is not available in the UI, and can only be enabled when you have the documentation and access to the binaries. Cormac described this extensively in his blog here.

The Native S3 capability can only be enabled when running vSAN ESA, so that is the first requirement. Secondly, VCF 9.1.1 (with Supervisor) is a hard requirement, with preferably VCF Automation included as well. Although it is possible to use the S3 capability without VCF Automation, with VCF Automation it is definitely easier to implement if you ask me. Also, VCF-A provides the framework for multi tenancy capabilities, which appears to be a requirement for most of the customers I talk to.

Let’s break this down a bit further. I am looking at this from a VCF/VCF-A perspective, so how does this work? The Object Storage capability is enabled for a region. Each organization (tenant) with access to that region gains access to the capability. This enables them to create an S3 Object Storage (as a service) instance. When you have created an object storage service instance, you can create buckets and have users/developers/services consume those buckets as desired. Just to make it clear, the bucket can be used by a developer to store data, can be used as a backup target for VKS/DSM, for example, but can also be used for AI use cases. I recorded a demo a while back, and you can watch it below if you want to have an idea of what it looks like. There’s also a nice introductory blog by Pete Koehler here, and a fantastic post by Cormac here. Make sure to go back to Cormac’s blog regularly, as knowing him, he will have a series diving deeper coming soon. Now go an watch the demo, it gives a good idea of what is available now as a tech preview and will be GA probably in 9.1.2.

Memory Tiering Considerations and frequently asked questions!

Duncan Epping · Jul 16, 2026 · 2 Comments

Over the last couple of months I’ve been presenting on Memory Tiering at various events, and the same questions and comments keep coming up. Hence, I figured it would make sense to create a considerations and frequently asked questions blog. This will hopefully make it easier for people to find answers to the questions they have. If I missed out on something, feel free to leave a comment.

Now, before I write down any commonly asked questions, and things people should know, I want to point you to this fantastic Memory Tiering Resources page. Dave Morera has written a series of great articles, that will actually answer most questions people may have, so make sure to head over there as well.

  • Is Memory Tiering not just swapping to NVMe?
    No, with swapping random pages are moved to disk to avoid memory filling up. With memory tiering the memory of each VM is scanned in batches, and then classified by the hypervisor (when was the page last accessed) during each pass. Memory pages are moved only to NVMe when they are classified as cold (or very cold).
  • Which NVMe device should I use, and how do I know which one is supported?
    The requirements are documented here. You can look at the vSAN SSD Compatibility Guide here to find the supported devices.
  • What is the preferred method of configuring Memory Tiering?
    Starting with 9.1 memory tiering can be fully configured using the “esxcli memtier” namespace, or through Configuration Profiles. There’s no preferred option.
  • When does Memory Tiering become active?
    When Memory Consumption is roughly 80%, the algorythm will start considering to move cold memory pages from DRAM to NVMe.
  • How often does memory tiering scan all memory pages?
    This is a constant process.
  • Can I change the percentage at which memory tiering starts moving pages from 80% to 90% or any other value above or below that 80%?
    No, this is not supported. It is a fixed value!
  • What about large pages?
    When memory tiering is enabled, large pages are disabled on each VM. Memory tiering works on a 4KB granularity, you can imagine that it is virtually impossible to find large pages which are completely cold, as a result it doesn’t make sense to consider those really for Memory Tiering.
  • But if I have a stretched cluster configuration typically I don’t run at above 50% consumed to allow for a failure of a datacenter?
    Currently memory tiering does not take that scenario into consideration.
  • When is an environment too active for Memory Tiering to be useful?
    In general VMware recommends “active memory” to be lower than 50%
  • Are there other recommendations when it comes to resource management before enabling Memory Tiering?
    Yes, you should verify whether memory consumption is high enough for memory tiering to become active. And also consider why you are enabling memory tiering. If CPU usage is high and memory usage is high, what are you achieving by enabling memory tiering? Most likely it will not improve the consolidation ratio for instance. But if CPU usage is low, and memory consumption is high, you could use it to increase CPU usage.
  • Will Memory Tiering also move memory pages of the kernel if they are cold?
    No, Memory Tiering only considers VM memory pages, kernel pages (etc) are not classified and moved.
  • Does Memory Tiering support NVMe devices in a RAID-1 configuration?
    Yes, RAID-1 is supported both via a hardware controller and starting with 9.1 in software as well.
  • If I use Memory Tiering in a RAID-1 configuration, are reads distributed?
    Yes, reads are done in a round robin fashion across both NVMe devices in the RAID pair.
  • What happens if an NVMe device fails which is used for Memory Tiering?
    If you have RAID-1 configured (software or hardware) then the VM will remain running as the memory pages will be accessible on the remaining device. If you don’t have RAID-1 configuration, it is like a DRAM DIMM failure, and the VM will be restarted (HA event) when a page is being accessed on the failed device.
  • What happens if I set a memory reservation while Memory Tiering is enabled, is the reservation always backed by DRAM?
    No, the memory reservation can be backed by DRAM and NVMe, the host sees the combined total is one large pool of physical memory
  • Can I power-on VMs which have FT enabled, or passthrough devices configured on a host with memory tiering?
    Yes, starting with 9.1 this is possible. However, keep in mind that memory tiering will be disabled for those VMs!
  • But what about the memory reservation then for VMs with passthrough devices then?
    For those VMs, as Memory Tiering is disabled implicitly, the memory reservation will be backed by DRAM only.
  • Is the Marvell Structera X 2404 controller supported with vSphere or Memory Tiering?
    The Marvell Structera X 2404 controller enables you to present DDR-4 memory via a PCIe bus using CXL as a large memory pool to the host. Unfortunately this has not been officially tested with vSphere, and as such also not with Memory Tiering.
  • Are there any performance numbers that can be shared?
    For vSphere 9.0 extensive performance tests have been conducted with memory tiering, these have been shared in this whitepaper by the performance team that can be found here. With 9.1 various benchmarks have shown a performance improvement over 9.0 of 16% while reducing CPU overhead with 12% when using Memory Tiering, this is documented in this blog here.
  • But what is the overhead of memory tiering on CPU?
    The documentation states the following: Software CPU overhead depends on the host memory, and you can see a small usage of about an eighth of a core for Memory Tiering for smaller-sized hosts.
  • Should I set my memory tiering ratio to 1:1, 2:1, 4:1, 1:2 etc?
    Your memory tiering ratio should be based on the workload running on the host/cluster. Some workloads are more sensitive to latency then others, you need to take that into consideration. Also, some workloads have a higher active memory percentage then others, this also impacts how much memory there will be tiered at most.
  • What is the impact of the ratio on my NVMe device?
    The ratio determines the allocated size on the NVMe device for tiering. If you have a ratio of 1:1, and you have 512GB of DRAM and a 2TB NVMe device, then the amount of NVMe used for memory tiering will be 512GB.
  • What happens with the excess capacity on an NVMe device in the previous example?
    This capacity does not go unused, the NVMe device will use the cells to cycle through them for endurance.
  • Is there a maximum size for the partition on the NVMe device that is used for memory tiering?
    Yes, the maximum size is 4TB at the point of writing. (version 9.1)
  • Can I use Memory Tiering in combination with Nested Virtualization? Yes, you can set the advanced setting sched.mem.enableNestedTiering to TRUE, as described here. Do note, this should be used for testing purposes only.
  • Can I disable Memory Tiering for a specific VM?
    Yes, you can. Simply add sched.mem.enableTiering to the advanced setting of the VM and set it to FALSE.
  • Can I enable encryption on a per VM basis with Memory Tiering?
    Yes, you can enable it for the full host, or encrypt per VM via the advanced configuration sched.mem.EncryptTierNVMe=TRUE.
  • Are Self Encrypting Devices (SED) supported?
    Memory Tiering does not support the use of SED’s unfortunately, this is planned for a future release.
  • What happens if you vMotion a VM which has memory tiered?
    When you migrate / vMotion a VM which has memory pages tiered then the vMotion process functions as expected. The only real difference is that for pages which are on NVMe, the pages will need to be read from NVMe in to DRAM and then transferred over the network. As a result the vMotion process will be slower for VMs which have tiered memory pages compared to VMs that only have pages in DRAM. When the VM is moved from source to destination, in the destination all memory paged will be in DRAM and may over time move to NVMe if memory tiering is enabled on the host.

 

Native VCF S3 Object Storage demo!

Duncan Epping · Jun 23, 2026 · Leave a Comment

Stop paying the public cloud tax: Native S3 Object Storage for VCF changes everything! As I mentioned this on a recent podcast I did with Rakesh, so I took sometime this week to narrate the demo and here it is. In this demo you will see the VCF Automation UI and how VCF S3 Object Storage is enabled and configured so that it can be consumed by whomever needs it. That could be for backup purposes for instance, it could be (sovereign) AI, but could also be a target location for an application to store it’s data. Basically anything that speaks S3 can take advantage!

What’s new for vSAN in 9.1?

Duncan Epping · May 7, 2026 · Leave a Comment

VMware Cloud Foundation 9.1 was just announced, and that means a lot of new functionality has been released. Some of the features you already knew about, others may come as a surprise. I know Pete Koehler has a whole series he is going to release, so I am just going to introduce a couple of features that I feel everyone should know about. Here’s a list of what was just announced:

  • Native S3 Object Storage
  • Cyber Recovery enhancements with Any to vSAN ESA, Seeding, Tag-Based VM selection and more
  • Auto-RAID
  • Global Deduplication and enhanced compression
  • QLC support
  • Mixed mode for Remote Datastores (ESA <-> OSA)
  • Enhanced Capacity Reporting
  • Resizing Shared VMDKs

Now, some of these capabilities I have been talking about for a while now at events, like Native S3 Object Storage, but it is probably still worth explaining what is announced. Let’s discuss a few of the above.

Native S3 Object Storage

This, in my opinion, is probably together with the Cyber Protection platform, the biggest feature that was announced for 9.1.  Most of you probably use some kind of S3 Object Storage platform as a backup destination, or you may have developers (and apps) directly accessing an S3 bucket for various reasons. S3 Object Storage use cases and total capacity have exploded over the last decade. So far, we (VMware/Broadcom) have always partnered with 3rd party vendors to deliver these S3 capabilities on top of VCF, but more and more customers have asked for a well-integrated solution that would come as part of VCF. With an upcoming patch release of 9.1 the tech preview of Native S3 Object Storage will be released.

Although the platform has been referred to as “vSAN Native Object Storage” in the past, I feel it is more native to VCF. Although the configuration can be completed entirely through the API and CLI, most customers will likely consume the solution through VCF Automation. VCF Automation will provide the ability to have tenants (organizations) create their own S3 Object Storage Service (or even multiple), and have many buckets per S3 Object Storage Service. This will provide the logical isolation you would expect from a multi-tenancy platform. As a Provider Admin you simply enable S3 Object Storage for a region, and then each tenant who has resources in that region assigned can consume it and create the service, and subsequently buckets, as shown below.

What’s new for vSAN in 9.1?


I will probably upload a demo soon and will record a podcast episode specifically on this topic.

Cyber Recovery

Recovery from a ransomware attack and protection against it, is a hot topic these days for every CIO. Just do a Google search, and you will find countless examples of companies losing millions as a result of production outages due to an attack. At Explore 2025, we showed the world what a sophisticated ransomware recovery platform would potentially look like, and with VCF 9.1 and Site Recovery / Cyber Recover, we are finally at the stage where we can say we have a solution to help you recover safely and efficiently fully on-prem!

With 9.1 not only do we provide the option to replicate from any storage platform efficiently to vSAN ESA and have deep snapshot chains, but we now also have the option to build an isolated recovery environment / clean room on-premises. This platform comes fully integrated with VCF, and provides an orchestrated workflow to recovery from a ransomware attack. On top of that, the platform integrates with an EDR solution like Carbon Black or CrowdStrike. to ensure recovered data is clean. Of course, it will also work with other EDRs, but it would just not have the automated scanning and cleaning just yet. I’ve had Jatin on the podcast not too long ago to explain all the benefits of the platform, and will be having another episode on this topic soon!

Global Dedupe and enhanced Compression

From an efficiency perspective, various new enhancements have been introduced. Global Deduplication was already part of vSAN ESA, but only available through a support request, as of 9.1 the feature is available for all customers right there in the UI. Along with Global Deduplication going GA, support for Encryption at Rest with Global Dedupe has also been added. For European customers, do note, support for stretched clusters is not there just yet, so some of you have to wait with enabling Global Dedupe. Besides Global Dedupe, a brand new compression algorithm has been added. In the past, compression was done using LZ4, going forward, compression will be done using zStandard. zStandard allows for better tuning, making it more capacity and cost (CPU) efficient, which should result in a higher compression ratio over time.

Auto-RAID and QLC

Last but not least, I should probably also briefly talk about QLC and Auto-RAID. QLC support is mainly intended for Cyber Recovery deployments. As you can imagine, this is the perfect use case for a lower-tier flash device, which provides high capacity at the cost of performance and endurance. This is something to definitely keep in mind, as these devices are definitely not intended to be used in regular production environment. As always, VMware will provide guidance in terms of what is supported and what not, and special Ready Node configurations will be created for Cyber Recovery specifically.

Auto-RAID is a feature that surprised me personally as well. I had heard about plans to develop a new RAID mechanism, but hadn’t realized it was going to ship in the 9.1 release already. This new storage policy option allows vSAN to make intelligent decisions around the to be used RAID configuration for each object based on the size of the cluster, and the features enabled on the cluster. In other words, if you have Stretched Cluster enabled, Auto-RAID will ensure your VMs are stretched and protect the VMs within a site accordingly, based on the number of hosts. If Auto-RAID is enabled, all 9.1 clusters can be managed using the same policy if you prefer vSAN to make the decisions for you! Why is this useful? Well, if the size of the cluster changes, or the cluster is (un)stretched, the Auto-RAID policy will automatically re-configure all associated VMs. This removes the risk of having VMs incorrectly configured and removes the administrative burden of having to make changes to a policy and re-apply it to all the VMs.

I have planned for a podcast recording with Pete Koehler later this week, so expect a brand new episode covering all the above (and more) dropping soon!

Playing around with Memory Tiering, are my memory pages tiered?

Duncan Epping · Dec 18, 2025 · 2 Comments

There was a question on VMTN about Memory Tiering performance, and how you can check if pages were tiered. I haven’t played around with Memory Tiering too much, so I noted down for myself what I needed to do on every host in order to enable it. Note, if the command contains a path and you want to do this in your own environment you need to change the path and device name accordingly. The question was if memory pages were tiered or not, so I dug up the command that allows you to check this on a per host level. It is at the bottom of this article for those who just want to skip to that part.

Now, before I forget, probably worth mentioning as this is something many people don’t seem to understand, memory tiering only tiers cold memory pages. Active pages are not being moved to NVMe, on top of that, it only tiers memory when there’s memory pressure! So if you don’t see any tiering, it could simply be that you are not under any memory capacity pressure. (Why move pages to a lower tier when there’s no need?)

Please note, the below commands apply for all versions below vSphere/VCF 9.1! For VCF/vSphere 9.1 please look at this blog post!

List all storage devices via the CLI:

esxcli storage core device list

Create memory tiering partition on an NVMe device:

esxcli system tierdevice create -d=/vmfs/devices/disks/eui.1ea506b32a7f4454000c296a4884dc68

Enable Memory Tiering on a host level, note this requires a reboot:

esxcli system settings kernel set -s MemoryTiering -v TRUE

How is Memory Tiering configured in terms of DRAM to NVMe ratio? A 4:1 DRAM to NVMe ratio would be 25%, 1:1 would be 100%. So if you have it set at 4:1, with 512GB of DRAM you would only use 128GB of the NVMe at most, regardless of the size of the device.

esxcli system settings advanced list -o /Mem/TierNvmePct

Is memory tiered or not? Find out all about it via memstats!

memstats -r vmtier-stats -u mb

Want to show a select number of metrics?

memstats -r vmtier-stats -u mb -s name:memSize:active:tier1Target:tier1Consumed:tier1ConsumedPeak:comnsumed

So what would the outcome look like when there is memory tiering happening? I removed a bunch of the metrics, just to keep it readable, “tier1” is the NVMe device, and as you can see each VM has several MBs worth of memory pages on NVMe right now.

 VIRTUAL MACHINE MEMORY TIER STATS: Wed Dec 17 15:29:43 2025
 -----------------------------------------------
   Start Group ID   : 0
   No. of levels    : 12
   Unit             : MB
   Selected columns : name:memSize:tier1Consumed

----------------------------------------
           name    memSize tier1Consumed
----------------------------------------
      vm.533611       4096            12
      vm.533612       4096            34
      vm.533613       4096            24
      vm.533614       4096            11
      vm.533615       4096            25
----------------------------------------
          Total      20480           106
----------------------------------------
  • Page 1
  • Page 2
  • Page 3
  • Interim pages omitted …
  • Page 71
  • Go to Next Page »

Primary Sidebar

About the Author

Duncan Epping is a Chief Technologist and Distinguished Engineering Architect at Broadcom. Besides writing on Yellow-Bricks, Duncan is the co-author of the vSAN Deep Dive and the vSphere Clustering Deep Dive book series. Duncan is also the host of the Unexplored Territory Podcast.

Follow Us

  • X
  • Spotify
  • RSS Feed
  • LinkedIn

Recommended Book(s)

Also visit!

For the Dutch-speaking audience, make sure to visit RunNerd.nl to follow my running adventure, read shoe/gear/race reviews, and more!

Do you like Hardcore-Punk music? Follow my Spotify Playlist!

Do you like 80s music? I got you covered!

Copyright Yellow-Bricks.com © 2026 · Log in