Im tasked with configured a windows server to used tiered storage using the following disks
- 4x 900 GB SSDs
- 10x 2.2TB HDDs
The SSD tier would be configured using parity with 1 redundant disk and the HHD tier would use parity with 2 redundant disks.
when configuring this via powershell I found that I could set the physical disk redundancy at two points, when creating the storage-tier and again when creating the virtual disk.
I would like to understand the effect this setting has at both points and if its necessary to set this at the virtual disk level given I'm already setting this earlier on.
I can confirm that setting -PhysicalDiskRedundancy
at both level affected the storage efficiently of virtual disk.
I then created a script to generate several virtual disks with different config to validate the effect.
$SSD_Parity1 = New-StorageTier -FriendlyName SSD_Parity1 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 1
$HDD_Parity1 = New-StorageTier -FriendlyName HDD_Parity1 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 1
$SSD_Parity2 = New-StorageTier -FriendlyName SSD_Parity2 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 2
$HDD_Parity2 = New-StorageTier -FriendlyName HDD_Parity2 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 2
$SSD_Mirror1 = New-StorageTier -FriendlyName SSD_Mirror1 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1
$HDD_Mirror1 = New-StorageTier -FriendlyName HDD_Mirror1 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Mirror -PhysicalDiskRedundancy 1
$SSD_Mirror2 = New-StorageTier -FriendlyName SSD_Mirror2 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Mirror -PhysicalDiskRedundancy 2
$HDD_Mirror2 = New-StorageTier -FriendlyName HDD_Mirror2 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Mirror -PhysicalDiskRedundancy 2
#$SSD_ParityExpectedCFG = New-StorageTier -FriendlyName SSD_Parity22 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 1
#$HDD_ParityExpectedCFG = New-StorageTier -FriendlyName HDD_Parity22 -StoragePoolFriendlyName Dtaa -FaultDomainAwareness PhysicalDisk -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 2
$Pairs =@($SSD_Parity1,$HDD_Parity1),($SSD_Parity2,$HDD_Parity2),($SSD_Mirror1,$HDD_Mirror1),($SSD_Mirror2,$HDD_Mirror2),($SSD_Mirror1,$HDD_Parity2)
$details = @()
$ErrorActionPreference = "Continue"
$disks += $Pairs | %{
$name = "$( $_[0].FriendlyName ) $($_[1].FriendlyName )"
New-VirtualDisk -FriendlyName "$name (default)" -StoragePoolFriendlyName DTAA -StorageTiers $($_[0]),$($_[1]) -StorageTierSizes 25GB,25GB #-FaultDomainAwareness PhysicalDisk
New-VirtualDisk -FriendlyName "$name (pd2-mirror)" -StoragePoolFriendlyName DTAA -StorageTiers $($_[0]),$($_[1]) -StorageTierSizes 25GB,25GB -ResiliencySettingName 'Mirror' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 2
New-VirtualDisk -FriendlyName "$name (pd1-mirror)" -StoragePoolFriendlyName DTAA -StorageTiers $($_[0]),$($_[1]) -StorageTierSizes 25GB,25GB -ResiliencySettingName 'Mirror' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1
New-VirtualDisk -FriendlyName "$name (pd2-parity)" -StoragePoolFriendlyName DTAA -StorageTiers $($_[0]),$($_[1]) -StorageTierSizes 25GB,25GB -ResiliencySettingName 'Parity' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 2
New-VirtualDisk -FriendlyName "$name (pd1-parity)" -StoragePoolFriendlyName DTAA -StorageTiers $($_[0]),$($_[1]) -StorageTierSizes 25GB,25GB -ResiliencySettingName 'Parity' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1
}
$disks += New-VirtualDisk -FriendlyName "NoTier (default)" -StoragePoolFriendlyName DTAA -Size 50GB
$disks += New-VirtualDisk -FriendlyName "NoTier (pd1-mirror)" -StoragePoolFriendlyName DTAA -Size 50GB -ResiliencySettingName 'Mirror' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1
$disks += New-VirtualDisk -FriendlyName "NoTier (pd2-mirror)" -StoragePoolFriendlyName DTAA -Size 50GB -ResiliencySettingName 'Mirror' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 2
$disks += New-VirtualDisk -FriendlyName "NoTier (pd1-parity)" -StoragePoolFriendlyName DTAA -Size 50GB -ResiliencySettingName 'Parity' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 1
$disks += New-VirtualDisk -FriendlyName "NoTier (pd2-parity)" -StoragePoolFriendlyName DTAA -Size 50GB -ResiliencySettingName 'Parity' -FaultDomainAwareness PhysicalDisk -PhysicalDiskRedundancy 2
output from script
FriendlyName ResiliencySettingName FaultDomainRedundancy OperationalStatus HealthStatus Size FootprintOnPool StorageEfficiency
------------ --------------------- --------------------- ----------------- ------------ ---- --------------- -----------------
SSD_Parity1 HDD_Parity1 (default) OK Healthy 50 GB 72.25 GB 69.20%
SSD_Parity1 HDD_Parity1 (pd2-mirror) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Parity1 HDD_Parity1 (pd1-mirror) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Parity1 HDD_Parity1 (pd2-parity) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Parity1 HDD_Parity1 (pd1-parity) OK Healthy 50 GB 72.25 GB 69.20%
SSD_Parity2 HDD_Parity2 (default) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Parity2 HDD_Parity2 (pd2-mirror) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Parity2 HDD_Parity2 (pd1-mirror) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Parity2 HDD_Parity2 (pd2-parity) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Parity2 HDD_Parity2 (pd1-parity) OK Healthy 50 GB 72.25 GB 69.20%
SSD_Mirror1 HDD_Mirror1 (default) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Mirror1 HDD_Mirror1 (pd2-mirror) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Mirror1 HDD_Mirror1 (pd1-mirror) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Mirror1 HDD_Mirror1 (pd2-parity) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Mirror1 HDD_Mirror1 (pd1-parity) OK Healthy 50 GB 72.25 GB 69.20%
SSD_Mirror2 HDD_Mirror2 (default) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Mirror2 HDD_Mirror2 (pd2-mirror) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Mirror2 HDD_Mirror2 (pd1-mirror) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Mirror2 HDD_Mirror2 (pd2-parity) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Mirror2 HDD_Mirror2 (pd1-parity) OK Healthy 50 GB 72.25 GB 69.20%
SSD_Mirror1 HDD_Parity2 (default) OK Healthy 50 GB 93.25 GB 53.62%
SSD_Mirror1 HDD_Parity2 (pd2-mirror) OK Healthy 51 GB 156.75 GB 32.54%
SSD_Mirror1 HDD_Parity2 (pd1-mirror) OK Healthy 50 GB 102.5 GB 48.78%
SSD_Mirror1 HDD_Parity2 (pd2-parity) OK Healthy 50 GB 92.75 GB 53.91%
SSD_Mirror1 HDD_Parity2 (pd1-parity) OK Healthy 50 GB 72.25 GB 69.20%
NoTier (default) Mirror 1 OK Healthy 56 GB 114.5 GB 48.91%
NoTier (pd1-mirror) Mirror 1 OK Healthy 56 GB 114.5 GB 48.91%
NoTier (pd2-mirror) Mirror 2 OK Healthy 52 GB 159.75 GB 32.55%
NoTier (pd1-parity) Parity 1 OK Healthy 52 GB 68.5 GB 75.91%
NoTier (pd2-parity) Parity 2 OK Healthy 56 GB 82.25 GB 68.09%
While this proves that setting the the disk redundancy works in both places I have yet to find out why.
thanks any help would be appreciated.