Automating and Testing Storage Spaces Performance with PowerShell Part 1 of Deployment Guide

This is the first of a two part series on “Automating and Testing Storage Spaces Performance with PowerShell-Part 1of Using Storage Spaces Deployment Guide”  In the series, we walk through the Storage Spaces Deployment Guide for Automation Scripts.  This guide will instruct you on how to create and test a new Storage Spaces deployment using a set of automated PowerShell scripts. In the video, we go into more detail on interpreting the results!

Part – 1


Once all the physical hardware has been configured, but before creating storage pools or initializing the disks in any other way, run the ValidateStorageHardware.ps1 script to check the health of all the drives and do some basic performance testing on the physical hardware.

For a 240 disk deployment, you can expect this script to take about 8 hours.


Prior to running the script, the node must have the following programs installed to the same directory where ValidateStorageHardware.ps1 is contained:

For example, you can put ValidateStorageHardware.ps1, diskspd.exe, and dskcache.exe in the C:UsersUser1Desktop folder.

To run the program, use either of the following:

PS>> .ValidateStorageHardware.ps1

PS>> .ValidateStorageHardware.ps1 [-OutputPath <string>]

This will run the hardware testing tool and identify any drives that might be unhealthy or need replacement. Read through the output to make sure that all (or most) of the physical disks have been given the PASS rating. If there are a few outliers, then you may want to consider replacing the FAIL or WARN drives. If many physical disks are rated as FAIL or WARN due to IO latency, you might want to consider if the drive models you have chosen will meet your needs. If you believe that the drives will still be able to meet your workload requirements, you can safely continue. Talk to your OEM for guidance if you are unsure of how to proceed.


The script has code in place to support firmware blacklists, but the lists are all currently empty. If you discover Spaces-incompatible firmware, please contact to update the script.

[03:59] Why
[05:16] Walking through the output
[07:00] Turning off or bypassing checks
[08:06] Disk Speed Test
[09:31] Reconditioning
[11:54] Measuring Individual Drive Performance
[12:50] Latency Reliability
[13:28] Overall Health Check for Each Disk
[14:56] Using Virtualized Disks for Storage Spaces
[16:18] Summary
[17:20] Not going it alone
[18:15] What’s Next