A test framework to evaluate SSDs and HDDs
Перейти к файлу
Laura Caulfield 7cbe261a7c Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
bin Adding secure erase to "purge" step, for supported systems (win 10 and later, and drives supporting formatNVM with the crypto bit set, or SATA drives supporting secure erase). 2017-06-26 12:18:09 -07:00
doc Updating diskspd.exe to the released executable. The previous version 2016-08-23 12:06:03 -07:00
entropy Sync to latest internal. 2014-09-24 16:28:33 -07:00
lib Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
recipes Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
src Adding secure erase to "purge" step, for supported systems (win 10 and later, and drives supporting formatNVM with the crypto bit set, or SATA drives supporting secure erase). 2017-06-26 12:18:09 -07:00
test Add regr readme.txt 2015-09-02 10:21:07 -07:00
.gitignore Add bin directory. 2014-09-15 12:10:01 -07:00
LICENSE Initial commit 2014-09-12 21:55:36 +01:00
README.md Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
StorScore.cmd Adding secure erase to "purge" step, for supported systems (win 10 and later, and drives supporting formatNVM with the crypto bit set, or SATA drives supporting secure erase). 2017-06-26 12:18:09 -07:00
StorScore.ver Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
parse_results.cmd Some small bugfixes, clarifications and updates 2018-02-14 11:54:32 -08:00
thirdpartynotices.txt Sync to latest internal. 2014-09-24 16:28:33 -07:00

README.md

StorScore: A test framework to evaluate SSDs and HDDs.

StorScore is a component-level evaluation tool for testing storage devices. When run with default settings it should give realistic metrics similar to what can be expected by a Windows application developer.

Background

We were motivated to write StorScore because most existing solutions had some problems:

  1.  Difficult to automate (GUI tools)
    
  2.  Don't properly measure SSDs (history effect, endurance)
    
  3.  Linux-centric
    

StorScore is driven by a "recipe" file, which, like all good things, is just another Perl script. The recipe is simply a series of steps to be followed.

By default, StorScore will run the "turkey test", which is the recipe used by Microsoft to evaluate HDD and SSD for potential cloud deployments. Take a look in the recipes subdirectory to see other examples.

The only required command line option is --target. This can specify an existing file, volume, or a \.\PHYSICALDRIVE number. There are other command line parameters that may be useful, but documentation has not yet been written. Take a look at lib\GlobalConfig.pm to see them all.

Be aware that StorScore can easily be used in a data-destructive manner. Be careful with the --target option.

When running, StorScore will create a bunch of files in the results directory. We rarely look at these directly. Instead, we typically gather many results directories, from a cohort of comparable devices, and pass them to the parse_results.cmd script, which generates a nice Excel XLSX file. The Excel file is structured to facilitate use of pivot charts.

The Excel file has the usual raw metrics (throughput, latency, etc.) but also contains the result of our scoring system, which we designed to help summarize what would otherwise be far too much data (hence the name: StorScore).

Lecture Video

Laura and Mark gave a web presentation in August 2014 to the Microsoft MVP storage community. The talk was recorded, and provides a general overview and a demo of StorScore:

https://www.youtube.com/watch?v=gJZGu-Y3uXE

Dependencies

StorScore depends on some "external" software components.

You must download and install the following or StorScore will not work:

A Windows Perl interpreter:
    ActiveState: http://www.activestate.com/activeperl
    Strawberry: http://strawberryperl.com/

The Visual Studio 2013 C++ runtime libraries for x86 & x64:
    http://www.microsoft.com/en-us/download/details.aspx?id=40784

The Visual Studio 2015 C++ runtime libraries for x86 & x64:
    https://www.microsoft.com/en-us/download/details.aspx?id=48145

StorScore will work without these components, but some features will be disabled:

SmartCtl.exe, from SmartMonTools:
    http://www.smartmontools.org/

Ipmiutil.exe, from the IPMI Management Utilities:
    http://ipmiutil.sourceforge.net/

You can use StorScore to run tests and parse their data without these components, but you will need them to edit and compile the StorageTool:

Windows Driver Kit (WDK):
    https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit

Windows Software Development Kit (SDK):
    https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk

StorScore includes the following components "in the box." We would like to thank the authors and acknowledge their contribution:

The excellent Perl library, Excel::Writer::XLSX, by John McNamara.
    http://search.cpan.org/~jmcnamara/Excel-Writer-XLSX/lib/Excel/Writer/XLSX.pm        

DiskSpd.exe: an IO generator from the Microsoft Windows team.
    http://aka.ms/diskspd
    https://github.com/microsoft/diskspd

SQLIO2.exe: an IO generator from the Microsoft SQL Server team.

Feedback?

Questions, comments, bug reports, and especially accolades may be directed to the developers: Laura Caulfield laura.caulfield@microsoft.com Mark Santaniello marksan@fb.com Bikash Sharma bsharma@fb.com

Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.