New version of the Storage Spaces physical disk validation PowerShell script

The Storage Spaces team has just published a new version of the Storage Space disk validation script written in PowerShell.

This script makes sure that the physical disks in a system have everything that is needed by Storage Spaces. That includes checking functional requirements and performance characteristics.

In the same way that we ask you to run the Cluster Validation Wizard before creating a cluster, it is a great idea to always run this script before using a specific set of disks with Storage Spaces.

The changes in the version 2 of the script include:

  • Intelligent parallelized drive profiling dramatically speeds up script execution time. Script will first profile throughput and IOPS of a single drive from each group, then the group in aggregate, and use these numbers to figure out the maximum batch size possible while remaining under Throughput or CPU limitations.
  • Intelligent SSD preconditioning. Script will only pre-condition the SSDs to sufficient time to overwrite the address space twice.
  • Switched to more reliable percentile-based latency measurements, rather than Min/Avg/Max.
  • In addition to the existing relative performance testing and comparisons, there are absolute performance thresholds which drives must meet in order to pass.
  • (currently disabled) MPIO testing for supported configurations will compare Round Robin performance to Fail-over only in order to determine optimal policies for specific drives and firmware versions. Further, the script detects the number of paths to drives through the devcon utility - this can help determine if there is an uneven configuration where a set of drives only has a single path, while other drives have multiple.
  • Drive wear is evaluated.
  • Switched to the new Diskspd version 2 release which brings a number of improvements over SQLIO.
  • Significant improvement to the output report.

Download the script from:

Comments (2)
  1. Edgardo B says:


    You have a great blog, and are an incredible resource!

    I understand ‘avoiding the loopback’ that occurs as you have described in your previous post ("Windows Server 2012 File Server Tip: Avoid loopback configurations for Hyper-V over SMB"). However what about the following scenario, is this supported/valid:

    Goal = SoFS with minimal amount of new servers required.

    1) Convert existing 2 Physical Domain Controllers to non clustered Hyper-V hosts, install DC Role inside VMs on these 2 new Hyper-V hosts using local DAS afaik, DCs in Hyper-V VMs are supported. We’ll have a spare 3rd Physical DC around somewhere as well.

    2) Add the SoFS Role, either via:
    a) Another VM in each of the aforementioned Hyper-V hosts, using local DAS
    b) Or add the SoFS role to sit along side the Hyper-V role in each of the aforementioned Hyper-V hosts, ovbiously using local DAS.

    Is either method (a or b) preferred?

    3) Upgrade existing file server to Server 2012, configure Storage Spaces, setup as iSCSI Target for SoFS cluster created in #2.

    Bam! SoFS using existing servers! =)

    If i understand correctly, this is not a loopback configuration, would this be supported?

    Thank you for your time!

  2. Tony G says:

    This scripts is exactly what I have been looking for!


Comments are closed.

Skip to main content