Accelerate Storage Spaces with SSDs in Windows 10 Storage Pool tiers
Create Storage Spaces in Windows 10
Windows Server O/S contains Storage Spaces support for Server Spaces tiered storage. You can front slower spinning disks with smaller faster SSDs. Windows 10 has a Storage Spaces GUI Control Panel that does not include the tiered storage GUI. This means Powershell must be used for all configuration.
https://github.com/freemansoft/win10-storage-spaces contains scripts that create tiered storage pools that integrate SSDs as caching drives and HDDs as storage drives. They assume you have at least one SSD and one HDD.
- The scripts automatically find all raw drives and add them to the pool.
- Some HDDs have their types incorrectly identified. The script can coerce them to be MediaType:HDD
- The entire virtual drive is added to the system as a single large volume
- You need at least
- 1 SSD and 1 HDD to run cached storage / Simple resiliency
- 2 SSD and 2 HDD to run cached storage / Mirror resiliency /
- 1 SSD and 2 HDD to run cached storage / Simple resiliency / striped storage (sum of HDD space)
Simple vs Mirror
The "Mirror" resiliency level attempts to mirror both SSD and HDD tiers so you would need 4 drives run mirror, to mirror both tiers
Scripts
new-storage-space.ps1
Creates a tiered storage pool and allocates all the disk space to a single drive
- You can change the drive letter and label by editing the variables at the top.
- the script can auto size the drive and cache. That didn't work for me so the script supports manual sizing.
remove-storage-space
Removes the virtual drive, the storage tiers and then the storage pool.
- All drives are returned the Primordial pool
Sample configuration
new-storage-space.ps created a Virtual drive from 3 physical drives
Physical Drives | Storage Space Virtual Drive |
---|---|
two 2TB HDD | single 3.6TB data volume striped across my two HDD |
one 200GB SSD. | with a 200GB read/write cache |
Win 10 Pro Storage Spaces Control Panel
The control panel does not display or manipulate tiers
Video
Meaningless Benchmark
All Storage Pool drives connected to 3Gb/s SATA. The write-back cache is not used with sequential writes over 256KB
[Read] *Single 2TB no cache* *Two 2TB mirrored with 200GB cache*
Sequential 1MiB (Q= 8, T= 1): 160.497 MB/s [ 153.1 IOPS] 282.983 MB/s [ 269.9 IOPS]
Sequential 1MiB (Q= 1, T= 1): 156.766 MB/s [ 149.5 IOPS] 254.605 MB/s [ 242.8 IOPS]
Random 4KiB (Q= 32, T=16): 1.748 MB/s [ 426.8 IOPS] 175.272 MB/s [ 42791.0 IOPS]
Random 4KiB (Q= 1, T= 1): 0.527 MB/s [ 128.7 IOPS] 21.189 MB/s [ 5173.1 IOPS]
[Write] *Single 2TB no cache* *Two 2TB mirrored with 200GB cache*
Sequential 1MiB (Q= 8, T= 1): 153.896 MB/s [ 146.8 IOPS] 226.825 MB/s [ 216.3 IOPS]
Sequential 1MiB (Q= 1, T= 1): 154.147 MB/s [ 147.0 IOPS] 230.149 MB/s [ 219.5 IOPS]
Random 4KiB (Q= 32, T=16): 2.033 MB/s [ 496.3 IOPS] 149.000 MB/s [ 36377.0 IOPS]
Random 4KiB (Q= 1, T= 1): 1.706 MB/s [ 416.5 IOPS] 38.790 MB/s [ 9470.2 IOPS]
Credits
- Much of the script came from this great blog by Nils Schimmelmann
- This blot is copied from the git hub repository README.md
Created 4/2020
The script is great - I'm having problems with it, however.
ReplyDeleteIf I change the $DriveTierResiliency = "Simple" to $DriveTierResiliency = "Parity", the script fails at line 83 and won't initialize the disk. What am I doing wrong?
I have a large drive set-up - 4 SSDs, 12 HDDs. Please help!
I've been planning on using this script to replace my NAS drive - I have 4 SSDs and 12 HDDs.
ReplyDeleteWhen I change the script line 15 of the script from:
$DriveTierResiliency = "Simple"
to
$DriveTierResiliency = "Parity"
The script fails at line 83, saying Initilaize-Disk : Failed.
The details below it say:
+ CategoryInfo : NotSpecified: (StorageWMI:Root/Microsoft/Windows/Storage/MSFT_Disk) [Initalize-Disk], CimException
+ FullyQualifiedErrorID:StorageWMI 4,Initialize-Disk
Any thoughts?
Your https://github.com/freemansoft/win10-storage-spaces link goes to blogger.com
ReplyDeleteTrying this later this week. Do you know if you can Stripe 2 HDD (simple) and use 2 SSD for the cache. I want the larger size, have 2 SSDs and a good backup strategy to NAS+cloud+external drive.
ReplyDeleteWith all respect the tiering is not the same with the caching.
ReplyDeleteClinet Win10 has no caching in storage spaces, only tiering is available.