Windows 10, Storage Spaces and Write-back Cache and how-to
I have been using Windows Storage Spaces for about 2 years now. The reason I started with it is because my hardware didn't allow for easy testing and implementation of FreeNAS and since I mainly use my NAS for media files and cold storage, speed and write performance was not a priority.
Having said that, we should always optimize our systems to get the most out of them. This is what's unique to this scenario, and I hope this helps someone else.
I started to upgrade my Storage Sapces with 8TB Seagate backup drives, shucked from their common external USB3 single drive. These are what are commonly called shingle or SMR drives. I do not need to get into the technical specifics here as the net is full of better explanation. In short, they are great value for TB/$ but their write performance is best suited for sequential writes.
Adding these drives or starting a new storage space with them, under parity, they typically throttle down to around 35MB/s. The common advise from my readings is to add SSD's, specify "Usage" as "Journal" and assign write-back cache greater than the default 1GB when appropriate SSD's are present. This is where it gets interesting.
Using the same 5x 8TB drives, I've tried 1, 5, 10, 20, 50, 60, 80 and 100GB write-back cache [WBC]. I've noticed some varying but also some consistent results.
No matter what size WBC I tried, due to the SMR drives and single parity, transfers into the array will end up around 35 to 38MB/s for transfers over 2TB.
I've recently settled on 5GB WBC and on the transfer of a 290GB VHDX, the array took the entires transfer in averaging 157MB/s.
However, another transfer of a large number of files equating to around 2.6TB, it averaged 37MB/s
I have another 5x 4TB and 5x 3TB WD Reds that had better transfer apeeds around 90MB/s but I took them out for a pure test of the SMR drives. I suspect adding them back to the pool might help with intermediate speeds, but large transfers over 1TB will likely end up averaging around the write speeds of the SMR drives [read: slowest drives in array].
These are the Powershell cmd-lets I've used to build my pool. Win10 Pro 1809 has upgraded Storage Pool functionality. I can't say for sure, but I have read that the current Windows Storage Spaces [WSS] on Win 10 Pro is newer than the production-ready technique in Windows Server 2016. It appears that WSS in Win 10 will auto-tier SSD vs HDD, providing a mirrored fast-tier [SSD's] and slow/cold tier [HDD]
Thin Provisioned Single-Parity Storage Pool with 5gb WBC, 5 columns/disks
See all physical disks
Get-PhysicalDisk
Get all physical disk available for pooling
$PhysicalDisks = (Get-PhysicalDisk | ? {$_.CanPool -eq "True"})
Get the system's default StorageSubSystem name
$subsysname = (Get-StorageSubSystem).FriendlyName
Name the pool and attach the disks, replace POOLNAME with your own
New-StoragePool -FriendlyName POOLNAME -StorageSubSystemFriendlyName $subsysname -PhysicalDisks $PhysicalDisks
Set storage pool as power protected to improve performance, requiring graceful Windows shutdown to flush cache
Set-StoragePool -FriendlyName POOLNAME -IsPowerProtected $true
Set your SSD's "Usage" as "Journal", replacing DISKNAME with SSD's Friendly Name, keeping quotes
Set-PhysicalDisk -FriendlyName "DISKNAME" -Usage Journal
Create a new Virtual Disk, within "POOLNAME" called "Media", with Parity resiliency, 5 disks/columns excluding SSD's, 20.01TB in size, with thing provisioning and 5GB WBC
New-VirtualDisk -StoragePoolFriendlyName POOLNAME -FriendlyName Media -ResiliencySettingName Parity -NumberOfColumns 5 -Size 20.01TB -ProvisioningType Thin -WriteCacheSize 5GB
After the steps above, you should now have a disk that needs to be initialized. You can use Disk Management to format one or several partitions within "Media". Choose 64K allocation/cluster size to fit parity's default...and that's it!
I have 2x 128GB SSD's as my journal drives. I had 3 before but now after 1809 update, it appears to only populate 2 of the 3 SSD's with data which is why I'm tempted to say that Win10 WSS now simplifies tiering and automatically tier the SSD's in mirror.
Congratulations @fobio! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!