6

I have 4 HDD drives and want to maximize read performance with 1 level of resiliency.

For that purpose I like to ask whether I can use 3 of the 4 drives in Storage Spaces and create a Simple Virtual Disk with 3 columns, essentially striping across the 3 disks and then on top of that create a mirror between this simple volume and the 4th disk? More importantly, can I specify settings in PowerShell to perform reads from the Simple Volume Stripe in order to maximize read performance?

I have looked very hard but have so far not found any solution in Windows that allows to create mirrors on all 4 disks and to then perform parallel reads across all mirrors similar to a Raid 0 stripe. FlexRaid and DrivePool came close to the desired setup but their reading across the mirrors when performing file transfers did not match the advertised performance.

Any ideas or solutions? Please note that I am happy to end up with a total capacity the size of a single disk. This questions concerns maximizing read performance, using 4 HDD drives, under the constraint to implement resiliency of a single disk failure.

  • 1
    You want 3 spanning disks in two-way mirror with 4th disk. Why? Did you consider standard setups? – Vlastimil Ovčáčík Apr 17 '18 at 17:23
0

A)

for 4 HDD Storage Space with 1 disk failure resiliency you want to create (in the Storage Space terminology) 4 column single parity virtual disk.

# Init
$storageSubSystem = Get-StorageSubSystem
$poolName = "POOL"
$poolDisks = Get-PhysicalDisk -CanPool $true | Where-Object {$_.MediaType -eq "HDD"}
$spaceName = "MyStorage"
$spaceSize = 1TB

# Create pool
$pool = New-StoragePool -FriendlyName $poolName -StorageSubSystemID $storageSubSystem.UniqueId -PhysicalDisks $poolDisks

# Create storage space
$spaceDisk = New-VirtualDisk -FriendlyName $spaceName -StoragePoolFriendlyName $poolName -NumberOfColumns 4 -NumberOfDataCopies 2 -ResiliencySettingName Parity -ProvisioningType Thin -Size $spaceSize
# or possibly
#$spaceDisk = New-VirtualDisk -FriendlyName $spaceName -StoragePoolFriendlyName $poolName -NumberOfColumns 4 -PhysicalDiskRedundancy 1 -ResiliencySettingName Parity -ProvisioningType Thin -Size $spaceSize

(I didn't test it, but you get the idea)

B)

However in your second paragraph you explicitly ask for 3 column simple/no-resiliency virtual disk to be used in two-way mirror with another physical drive.

This won't be possible as virtual disks cannot pool. I don't have documentation link that states this, but I do rely on:

C)

But you asked for ideas - what if you created 3 disk spanned or even striped dynamic volume and then put it in plain two-way mirror. With a bit of luck the dynamic volume could show up in Get-PhysicalDisk -CanPool $true, that would be neat (see my benchmark). Possibly pointless though and I don't have free disks to try.


More importantly, can I specify settings in PowerShell to perform reads from the Simple Volume Stripe in order to maximize read performance?

I don't know about any option to prioritize read access. Storage tiers (New-StorageTier) can't be used. I guess you could look into configuring one disk as Journal, i.e. Set-PhysicalDisk -Usage Journal. I doubt it could be used the way you want.

| improve this answer | |
  • tl;dr You can't use storage space as one side of mirror setup because virtual disks cannot be pooled (B). But your need may be served by standard configuration (A). If you feel adventurous you may try if good old dynamic volume can pool (C) and create the mirror on top of it. – Vlastimil Ovčáčík Apr 18 '18 at 13:52
  • Well written with many ideas and concrete examples and walk-throughs. Thanks a lot. It did address my question and helped me. – Matthias Wolf Apr 30 '19 at 4:53
7

I have 4 HDD drives and want to maximize read performance with 1 level of resiliency.

You can deploy MSFT's equivalent of RAID10. Please see what columns have to do with redundancy and performance.

https://social.technet.microsoft.com/wiki/contents/articles/11382.storage-spaces-frequently-asked-questions-faq.aspx#What_are_columns_and_how_does_Storage_Spaces_decide_how_many_to_use

| improve this answer | |
  • 1
    I do not understand how this answer tangents my problem. I understand what Raid 10 is and I have previously read that particular FAQ. – Matthias Wolf Apr 17 '18 at 13:37
  • 1
    Well, if you're happy with reducing your total capacity to a single disk, it would seem that RAID 10 will accomplish what you generally want - that is, better read performance while still mirroring data. I get that this doesn't address your question directly, but it's a sound approach that will be generally less vulnerable to edge cases and misunderstandings during admin hand-off. – Spooler Apr 17 '18 at 17:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.