Today, I am going to do stress test for NON-RDMA Storage space direct servers, the customer use their existing Cisco Catalyst 4500-x for Storage space direct servers, as we know, it doesn’t support DCB and PFC function, so, we will focus on stress test result for Storage space direct servers without enable RDMA and see how’s the performance.

Here we will use VMFleet and DISKSPD tools to test the performance, VMFLeet is a basic collet bunch of PowerShell scripts to easy create VMs and run stress tests. Let’s follow the steps to do.

  1. Download VMFleet files from and copy to c:\Post-Install\VMFleet

2. Download DISKSPD.exe from  and copy to copy to c:\Post-Install\VMFleet


3. Create a VM and Install Windows server 2016 (2012 R2) core and set password for local administrator account and then shutdown (don’t do sysprep)

4. We have 3 servers cluster nodes for S2D, we run follow cmdlet to create 3 CSVs and one for each server node.


Get-ClusterNode |% {New-Volume -StoragePoolFriendlyName S2D* -FriendlyName $_ -FileSystem CSVFS_ReFS -Size 800GB -PhysicalDiskRedundancy 1}

The CSV volume size depend on how many stress test VMs that you would like to create (The VHDX should be at least 20GB big because the VMFleet Scripts will create a load test file of 10GB inside the VMs.)

5. Run follow cmdlet to create addition CSV to store scripts, tools, vhdx file and results.


New-Volume -StoragePoolFriendlyName S2D* -FriendlyName collect -FileSystem CSVFS_ReFS -Size 200GB -PhysicalDiskRedundancy 1

6. Run follow script to install VMFleet.


.\install-vmfleet.ps1 -source C:\Post-Install\VMFleet

7. Copy DISKSPD.exe file to C:\ClusterStorage\Collect\Control\Tools.

8. Copy Windows server 2016 (2012 R2) core VHDX file to C:\ClusterStorage\Collect.

9. Run follow script to create testing vms for each node.


.\create-vmfleet.ps1 -basevhd "C:\ClusterStorage\Collect\WIN2016CORE.vhdx" -vms 10 -adminpass P@ssw0rd -connectpass Password#1234 -connectuser "domain\domain administrator" -nodes "s2d-test-01","std-test-02","s2d-test-03"

10. Run follow script to start all test VMs.




You need to open VM console and make sure they are no error; you may need to run follow script if it shows PAUSE IN FORCE…



11. Run follow script to monitor the storage performance.



12. Run stress script to test read random IO and then we can see the Storage Space Direct performance.


.\start-sweep.ps1 -b 4 -t 2 -o 40 -w 0 -d 300


Run DISKSPD in all VMs to test 4KB 100% read random IO for 5 minutes (2 thread, QD=40)

13. Run stress script to test read/write random IO and then we can see the Storage Space Direct performance.


.\start-sweep.ps1 -b 4 -t 2 -o 20 -w 30 -d 300



Run DISKSPD in all VMs to test 4KB random read/write mixed IO (R/W: 70/30) for 5 minutes (2 thread, QD=20)

This storage space direct stress test result is very impress; you should have to try this nice feature of Windows server 2016.

Hope you enjoy this post.

Cary Sun @SifuSun