I was eager to get this working on Windows 10 (Pro) but the info posted here was’n’t quite detailed enough to help. So I continued to search and did find, via archive_org “Wayback Machine” a now dead site which did provide very good instructions. There was only one small minor powershell command mistake which I corrected and then it worked like a charm for my 1 ssd and 1 hdd setup. So, the real credit goes to diywhitebox_com but the following are my slightly corrected instructions:
First we’ll add all the available hard disks to the pool. The hard drives you add should not be formatted yet. You’ll need to remove any partitions from them in order for them to be added in this way. This works best when the drives are new out of the box. If re-using drives you will probably need to run “diskpart”, the “clean” command on those drives, and a system reboot before proceeding.
Launch PowerShell as an administrator to get started, then run the following:
(To see what disks are available for the space)
Get-PhysicalDisk -CanPool $True | Format-Table -Property FriendlyName, OperationalStatus, Size, MediaType
$storage = Get-StorageSubSystem
New-StoragePool -StorageSubSystemId $storage.UniqueId -FriendlyName Pool -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
This should create a storage pool for you. Now you can create your tiers.
Get-StoragePool Pool | New-StorageTier –FriendlyName SSD –MediaType SSD
Get-StoragePool Pool | New-StorageTier –FriendlyName HDD –MediaType HDD
If you have just 1 SSD and 1 HDD run this command
Get-StoragePool Pool | Set-ResiliencySetting -Name Simple -NumberOfColumnsDefault 1
If you have 2 SSD and 2 HDD run this command
Get-StoragePool Pool | Set-ResiliencySetting -Name Simple -NumberOfColumnsDefault 2
Get-StoragePool Pool | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 1
Let’s create the virtual drive now.
$SSD = Get-StorageTier -FriendlyName SSD
$HDD = Get-StorageTier -FriendlyName HDD
You’ll want to change the size of the storage tiers in these next commands to suit your drives.
If you have just 1 SSD and 1 HDD run this command (sample - see my real Example way below)
Get-StoragePool Pool | New-VirtualDisk -FriendlyName Space -ResiliencySettingName Simple –StorageTiers $SSD, $HDD -StorageTierSizes 400GB, 900GB -WriteCacheSize 10GB
If you have 2 SSD and 2 HDD run this command (sample - see my real Example way below)
Get-StoragePool Pool | New-VirtualDisk -FriendlyName Space -ResiliencySettingName Mirror –StorageTiers $SSD, $HDD -StorageTierSizes 400GB, 900GB -WriteCacheSize 10GB
You can now either use the Windows 10 Storage Spaces GUI to format the drive (I highly recommend the GUI) or else the following powershell commands:
This will mount and format the new drive as the letter D: (so edit as needed or use the GUI)
Get-VirtualDisk Space | Get-Disk | Set-Disk -IsReadOnly 0
Get-VirtualDisk Space | Get-Disk | Set-Disk -IsOffline 0
Get-VirtualDisk Space | Get-Disk | Initialize-Disk -PartitionStyle GPT
Get-VirtualDisk Space | Get-Disk | New-Partition -DriveLetter “D” -UseMaximumSize
Initialize-Volume -DriveLetter “D” -FileSystem NTFS -Confirm:$false
EXAMPLE: For a 250GB Samsung EVO 850 and a 4TB WD Gold Enterprise HDD (can’t use full size because of computer GB math )
Get-StoragePool Pool | New-VirtualDisk -FriendlyName Space -ResiliencySettingName Simple –StorageTiers $SSD, $HDD -StorageTierSizes 231GB, 3.5TB -WriteCacheSize 1GB
I played with various changes in size between the ssd StorageTierSizes and the WriteCacheSize and did not see any difference so 220GB, 3.5TB and 10GB respectfully seemed to work the same. I hope this helps any other searchers wanting to try this. With the above setup I can get very consistent 300MB/s transfers to my storage pool with very large dumps. Bursts of only 1-2GB go even much faster. Using a high-end NVMe ssd should result in tremendous speed improvement and I will be testing that soon.