I’ve been doing a lot of scale testing of DeployR over the past couple of months (because building a fast and reliable content download process, especially under significant load, is hard work). That gave me the opportunity to try out some new things in Windows Server 2025.

NVMe

First, I switched to the new NVMe driver in Windows Server 2025. That was announced a while back by Microsoft, so I enabled it on my Hyper-V server. Were there performance improvements? I didn’t take the time to measure, but I’ll take everyone else’s word for it. You’ll notice that once you enable this, disk drives will now show up in two different spots in Device Manager:

(Yes, I now have 8 drives, 6 NVMe and 2 SATA, in this Lenovo ThinkStation P620 workstation, which I previously reviewed.)

There is one interesting side effect though: I am using Samsung NVMe drives, which work fine with the Microsoft NVMe driver. But the Samsung Magician software (which has never been a good tool) can no longer see the drives, so it can’t update the firmware or check the health anymore either. From Samsung’s own forums, they don’t seem to see the need to do this. Let’s hope they come to their senses at some point and realize that people using their “consumer” drives with “server” boxes. Boo Samsung.

Storage Spaces

The downside of having free space spread across multiple drives: managing that storage is more work. In my case, I wanted to create 50 VMs at once, 70GB each. That’s well over 3TB of storage — I had the space, but it wasn’t all on one drive. Through a bunch of shuffling (including a highly-recommended Samsung T9 USB-C external SSD), I combined three 2TB drives into one pool; the content on the resulting combined drive is striped across all the drives. (I chose no resiliency, so if any of these drives fail it will take all of the storage with it. It’s a choice I made, I need space and performance more than I need reliability. But it will still be annoying if/when it happens.)

I later expanded the pool and storage space by adding the last drive, a 4TB Samsung 990 Pro (worthy of a blog of its own at some point, because I swapped all the drives to an ASUS Hyper M.2 PCIe card, which required removing the heatsinks from the NVMe drives), and then Windows re-balanced the storage through its “Optimize” process to use the drives equally.

In theory, because writes are interleaved (striped) across the disks, read and write performance should be improved. Again, I didn’t take the time to measure that, I’ll just take Microsoft’s word for it.

One thing that I probably should have done but didn’t learn about until later: You can increase the interleave size for chunks of data that get spread between the available disks. This can’t be set from the UI and can’t be changed after the storage space is created. Fortunately, the default is 256K. Not awful, but it could be bigger.

ReFS + 64K allocation units

When you format the virtual drive in the storage space, you can specify any of the standard available settings. In this case, I chose ReFS because it is supposed to be more performant. At the same time, I increased the allocation unit size from the default 4KB to the much more reasonable 64KB — it’s a drive for VHDs, so bigger allocation units are better.

Next up

I have two 1TB SATA drives (remember, SATA is not fast) that I would like to combine into one single 2TB volume, for convenience. Fortunately I have enough space on the NVMe volume to copy everything from those two SATA drives over, then clean those drives and create a second storage space containing just those two. (You don’t want to combine fast and slow drives together in a single pool because the performance will effectively be driven by the slowest of the drives.)

And I also need to add some sort of backup for if/when one of these drives fails.

Ignoring the performance that I didn’t try to measure (not quite as important for what I’m trying to do), it’s turned out well. Thumbs up for NVMe drivers, Storage Spaces, ReFS, and the Lenovo P620.

Fediverse Reactions

Discover more from Out of Office Hours

Subscribe to get the latest posts sent to your email.

2 responses to “A journey with Windows Server 2025 storage”

  1. Losing Magician is the part that would bother me too, since it’s normally where both the firmware updates and the health readout come from.

    Firmware has a way round it. Samsung puts a bootable firmware ISO for the 990 PRO series on its consumer-storage tools page, and people whose drives Magician can’t see (mostly Intel VMD/RST machines) write it to a USB stick with Rufus and update from there. Secure Boot has to be off while it runs and the Hyper-V host is down for a few minutes, so it’s a maintenance-window job rather than a click. For health, Get-PhysicalDisk | Get-StorageReliabilityCounter reads Wear, Temperature and PowerOnHours from the drives themselves. I haven’t seen anyone confirm whether it still fills those in once nvmedisk.sys is active. Does it on the P620?

    With no resiliency the warranty terms matter more than usual: the 4TB 990 PRO is covered for 5 years or 2,400 TBW, whichever comes first, and repeated rounds of 50 × 70 GB VMs add up on the TBW side. One caution for anyone copying the ASUS Hyper M.2 move: Samsung’s 990 PRO brochure says taking the factory heatsink off the “with Heatsink” model voids the warranty, so check which variant you have before removing it.

    Like

    1. The storage reliability counters didn’t show any useful data. CrystalDiskInfo could see it though.

      And there’s no doubt that removing the heatsink will void the warranty on any Samsung drive. You have to peel off a sticker that tells you that. But with screwdrivers, picks, hair dryers, etc. involved that should be obvious 🙂

      Like

Leave a Reply

Trending