4

I'm trying to configure Multi-Resilient Volume (Mirror-Accelerated Parity) using "regular" Clustered Storage Spaces (not S2D) on Windows Server 2019. It is worth noting that I've tried the same scenario on Windows Server 2016 and got the same outcome. Also, it doesn't matter whether I use clustered or standalone Storage Spaces, the outcome is still the same.

My problem is that I'm unable to achieve storage efficiency higher than 50% for Multi-Resilient Volume, no matter what disk proportion I use in Performance and Capacity tiers.

Lab configuration:

  • 2x Hyper-V VMs (OS: Windows Server 2019 DC)
  • 10x VHD Sets (ex- Shared VHDx) placed on Cluster Shared Volume and attached to both VMs
  • I wanted to create a two-way mirror (2 disks) + single parity MRV (8 disks). Each disk is ~ 430GB.

Configuration steps:

#Creating new Pool
Get-PhysicalDisk -CanPool $true
New-StoragePool –FriendlyName MainPool –StorageSubsystemFriendlyName "Clustered Windows Storage*" –PhysicalDisks (Get-PhysicalDisk -CanPool $True)

#Setting up media types for tiering
Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk -CanPool $true |Set-PhysicalDisk -MediaType HDD
Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk -CanPool $true | select -skip 8 |Set-PhysicalDisk -MediaType SSD

#Configuring Capacity tier
New-StorageTier -MediaType HDD -StoragePoolFriendlyName MainPool -FriendlyName CapacityTier -ResiliencySettingName Parity -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1 -NumberOfColumns 8 -Interleave 65536 
$CapacityTier = Get-StorageTier -FriendlyName CapacityTier


#Configuring Perfromance tier
New-StorageTier -MediaType SSD -StoragePoolFriendlyName MainPool -FriendlyName PerfromanceTier -ResiliencySettingName Mirror -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1 -NumberOfDataCopies 2 -NumberOfColumns 1 -Interleave 65536 
$PerfromanceTier = Get-StorageTier -FriendlyName PerfromanceTier

#Creating Multi-Resilient Volume
New-Volume -StoragePoolFriendlyName MainPool -FriendlyName MRVolume -FileSystem ReFS -AccessPath "X:" -ProvisioningType Fixed -AllocationUnitSize 4KB -StorageTierFriendlyName PerfromanceTier, CapacityTier -StorageTierSizes 400GB, 600GB

Result:

Get-StorageTier reports that both Performance and Capacity tiers have their resiliency type configured as "Mirror", and both have 50% storage efficiency. I obviously expect Capacity (Parity) tier to have more than 50% efficiency.

Is Multi-Resilient Volume (MRVolume) in non-S2D configuration allowed for production?

Why the capacity tier with resiliency type = "parity" reports itself as "mirror"?

Is there a "proper" way to create the mirror+parity MRVolume with the efficiency of more than 50%?

1 Answers1

1

For MAP (Mirror-Accelerated-Parity) stick with the guide below. We did quite a number of setups following it and it worked reasonably well (see my remarks after link).

(Creating Mirror Accelerated Parity Volumes And Storage Tiers in Storage Spaces, Windows Server 2019)

https://knowledgebase.45drives.com/kb/kb450193-creating-mirror-accelerated-parity-volumes-and-storage-tiers-in-storage-spaces-windows-server-2019/

FYI, this is NOT supported for non-S2D configuration for a very simple reason: Within Storage Spaces (non-Direct) there’s no component to “warm up” cold data pushed to the capacity (parity) tier, it won’t come back to the hot (mirror) tier regardless of what you do with it.

RiGiD5
  • 1,241
  • 1
  • 8
  • 12
  • 2
    Mirror Accelerated Parity isn't that great. I would stick around ZFS and OpenCAS. Right now we are testing Starwinds SANnNAS solution which looks pretty decent at this moment. – Stuka Feb 26 '23 at 20:13