Windows 10, Storage Spaces and Write-back Cache and how-to

in #windows6 years ago (edited)

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.

  1. 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.

  2. 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.

  3. However, another transfer of a large number of files equating to around 2.6TB, it averaged 37MB/s

  4. 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.

Sort:  

Congratulations @fobio! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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!