none
Windows 10 Storage Space Parity calculation

    Question

  • Hello,

    I want to start using storage spaces on my desktop. I have created a virtual machine in VMware for now, to test storage space functionality.

    At first I created 4 disks of 4 TB in the VM (so disks are really 4 tb in size in my VM).
    My VM is running Windows 10 pro.

    Then, I created a new storage pool with 3 disks, which gives me a total pool capacity of 12 tb.
    When I create a new storage space from this pool with the Parity resiliency type, I get a maximum volume space of 8 tb. This is correct.

    I removed the pool. and re created the pool with all 4 disks, which gives me a total pool capacity of 16 tb.
    I created a new storage space again with parity as the resiliency type, but now this gives me only 10.6 tb as maximum space?

    Should this not be 12 tb instead? Like one disk should be reserved for parity ? How does Windows calculate this / come up with the maximum size of 10.6 tb?

    PS: I already googled for this answer, and searched on this forum. Unfortunately I could not find the answer.

    Saturday, May 14, 2016 12:37 PM

Answers

  • 

    Hi Anthony,

    For 3 disks’ storage pool, your reasoning is correct, 12*66.7%=8, the maximum volume is 8 TB.

    But for 4 disk, Pool count and fault tolerance is needed to be considered, we can’t just use the formula: maximum=(n-1)/n*maximum, please check the following documentation, the maximum efficiency volume of 4 disks is also 66.7(two-thirds)% rather than 75%, so the compute mode of maximum volume is 16*66.67%=10.6

    https://technet.microsoft.com/library/mt243829.aspx?f=255&MSPPError=-2147217396

    Regards


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    • Marked as answer by Anthony_1990 Wednesday, May 18, 2016 4:09 PM
    Monday, May 16, 2016 6:27 AM
    Moderator
  • Yes, your understanding is correct. When we calculate volume, we need to consider this 33%.

    Regards


    Please mark the reply as an answer if you find it is helpful.

    If you have feedback for TechNet Support, contact tnmff@microsoft.com

    • Marked as answer by Anthony_1990 Wednesday, May 18, 2016 4:09 PM
    Wednesday, May 18, 2016 12:56 AM
    Moderator

All replies

  • 

    Hi Anthony,

    For 3 disks’ storage pool, your reasoning is correct, 12*66.7%=8, the maximum volume is 8 TB.

    But for 4 disk, Pool count and fault tolerance is needed to be considered, we can’t just use the formula: maximum=(n-1)/n*maximum, please check the following documentation, the maximum efficiency volume of 4 disks is also 66.7(two-thirds)% rather than 75%, so the compute mode of maximum volume is 16*66.67%=10.6

    https://technet.microsoft.com/library/mt243829.aspx?f=255&MSPPError=-2147217396

    Regards


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    • Marked as answer by Anthony_1990 Wednesday, May 18, 2016 4:09 PM
    Monday, May 16, 2016 6:27 AM
    Moderator
  • Hi Teemo,

    Thanks for your reply!

    So if I understand correctly, I always have to calculate: total disk space*66.67%? Regardless the amount of disks and the size of each disk?

    The screenshot provided is about mirroring, not parity?

    Kind regards,

    Anthony

    Tuesday, May 17, 2016 4:17 PM
  • Yes, your understanding is correct. When we calculate volume, we need to consider this 33%.

    Regards


    Please mark the reply as an answer if you find it is helpful.

    If you have feedback for TechNet Support, contact tnmff@microsoft.com

    • Marked as answer by Anthony_1990 Wednesday, May 18, 2016 4:09 PM
    Wednesday, May 18, 2016 12:56 AM
    Moderator
  • Thanks for your answers !
    Wednesday, May 18, 2016 4:10 PM
  • Yes, you can achieve a Parity Storage Space of 12TB using 4 physical disks of 4TB each, but by default, the Storage Spaces UI only lets you create a Parity Storage Space of 10.6TB.

    The Storage Spaces user-interface is quite basic, and while easy to use, it only lets you set certain attributes of the pools, spaces and volumes that you create. PowerShell, while slightly more cumbersome as a UI, grants you full control over the pools, spaces and volumes that you create.

    One of the important properties of a Storage Space is the number of columns that are used. The Storage Spaces UI does not let you set the number of columns, and so, when creating a Parity Storage Space, it seems to always default to 3 columns. 3 columns is fine, if you're working with 3 disks - 3 columns means that data is striped over the first 2 disks, and the parity data is written to the 3rd disk. A 3 disk Parity Storage Space with 3 columns achieves a 66.7% disk utilization, just like RAID5 with 3 disks.

    However, when working with more than 3 disks, the Storage Spaces UI leaves the column count at 3, so you're sacrificing the capacity of the 4th and any subsequent disks. That's why you're expecting a disk utilization of 75%, like RAID5, with 4 disks, but you're only getting 66.7%. Likewise, a 5 disk Parity Storage Space created with the Storage Spaces UI, gets a column count of 3 instead of 5, so the utilization is again 66.7% instead of the expected 80%.

    So, when working with 4 disks, and you want to mimic RAID5 utilization, you must use PowerShell to create the Storage Space, and you must specify the column count when doing so.

    This command will create a new Storage Space on an existing pool of 4 physical disks:

    New-VirtualDisk -StoragePoolFriendlyName "Storage Pool 1" -FriendlyName "StorageSpace1" -ResiliencySettingName Parity -NumberOfDataCopies 1 -NumberOfColumns 4 -ProvisioningType Fixed -UseMaximumSize -Verbose

    Note that the above PS command will only create the Storage Space, and not any volumes on it. You can either use the Storage Spaces UI to complete the process, or use a few more PowerShell commands to create a volume and bring it online:

    Get-VirtualDisk StorageSpace1 | Get-Disk | Set-Disk -IsReadOnly 0
    Get-VirtualDisk StorageSpace1 | Get-Disk | Set-Disk -IsOffline 0
    Get-VirtualDisk StorageSpace1 | Get-Disk | Initialize-Disk -PartitionStyle GPT
    Get-VirtualDisk StorageSpace1 | Get-Disk | New-Partition -DriveLetter “D” -UseMaximumSize
    Initialize-Volume -DriveLetter “D” -FileSystem NTFS -Confirm:$false -NewFileSystemLabel “FooBar”

    • Edited by Andrew Jackson (MCP) Friday, August 24, 2018 10:46 AM corrects typo
    • Proposed as answer by SoNic67 Saturday, January 5, 2019 5:40 PM
    Friday, August 3, 2018 4:41 PM
  • Thank you for that information, that actually cleared my question up completely. But in doing so, that raises another question. If you start with a storage space using parity with 3 drives. And you add 2 drives lets say, how do you fix the column count each time you add drives? I am creating one with 3 drives to start, but I know I am adding at least 3-5 more when I move, and at that point, i am unsure what I would do. It seems that you can't just add drives and then change the column count to match (say created with 3, and then add 5 drives and issue a command to readjust this). I could be wrong, but that is why I ask.
    Sunday, November 25, 2018 1:25 AM
  • You cant change the column count when you add drives. But the question is if you create a space with 4 drives and 4 columns with the single parity you can end up with the 75% disk storage available. Now if you add 4 more drives (8 drives total) whats the utilization? is it 87.5% like raid 5 because we are a multiple of 4 probably not, is it 75% because basically you just have 2 sets of 4 drives with 4 columns, or is it less?

    Sunday, November 25, 2018 7:50 PM
  • Which pc hardware are you running (Intel/AMD/Etc) if its Intel,go to intel.com/support/drivers-software/browse/select storage  &  also,processor..Processor should bring out the Intel Chipset installation,& then in storage,download the pc storage controller software/drivers,Intel Storage Software replaced Intel Matrix Storage software..Intel & Windows 10 is about as good as it gets,it will help you & the pc & the OS configure all...W/O it,youre running maybe Microsoft Labs software,which isn't Intel defaults software/drivers......Also,think about a RAID set,or RAID ready,any pc should have 1 or the other....Look at TechNet set-up for performance HDs,it may be NT OS settings but all Windows OS use the same defaults...

    https://docs.microsoft.com/en-us/previous-versions//cc751291(v=technet.10)

      
    Sunday, November 25, 2018 10:18 PM
  • Yes, you can achieve a Parity Storage Space of 12TB using 4 physical disks of 4TB each, but by default, the Storage Spaces UI only lets you create a Parity Storage Space of 10.6TB.

    The Storage Spaces user-interface is quite basic, and while easy to use, it only lets you set certain attributes of the pools, spaces and volumes that you create. PowerShell, while slightly more cumbersome as a UI, grants you full control over the pools, spaces and volumes that you create.

    One of the important properties of a Storage Space is the number of columns that are used. The Storage Spaces UI does not let you set the number of columns, and so, when creating a Parity Storage Space, it seems to always default to 3 columns. 3 columns is fine, if you're working with 3 disks - 3 columns means that data is striped over the first 2 disks, and the parity data is written to the 3rd disk. A 3 disk Parity Storage Space with 3 columns achieves a 66.7% disk utilization, just like RAID5 with 3 disks.

    However, when working with more than 3 disks, the Storage Spaces UI leaves the column count at 3, so you're sacrificing the capacity of the 4th and any subsequent disks. That's why you're expecting a disk utilization of 75%, like RAID5, with 4 disks, but you're only getting 66.7%. Likewise, a 5 disk Parity Storage Space created with the Storage Spaces UI, gets a column count of 3 instead of 5, so the utilization is again 66.7% instead of the expected 80%.

    So, when working with 4 disks, and you want to mimic RAID5 utilization, you must use PowerShell to create the Storage Space, and you must specify the column count when doing so.

    This command will create a new Storage Space on an existing pool of 4 physical disks:

    New-VirtualDisk -StoragePoolFriendlyName "Storage Pool 1" -FriendlyName "StorageSpace1" -ResiliencySettingName Parity -NumberOfDataCopies 1 -NumberOfColumns 4 -ProvisioningType Fixed -UseMaximumSize -Verbose

    Note that the above PS command will only create the Storage Space, and not any volumes on it. You can either use the Storage Spaces UI to complete the process, or use a few more PowerShell commands to create a volume and bring it online:

    Get-VirtualDisk StorageSpace1 | Get-Disk | Set-Disk -IsReadOnly 0
    Get-VirtualDisk StorageSpace1 | Get-Disk | Set-Disk -IsOffline 0
    Get-VirtualDisk StorageSpace1 | Get-Disk | Initialize-Disk -PartitionStyle GPT
    Get-VirtualDisk StorageSpace1 | Get-Disk | New-Partition -DriveLetter “D” -UseMaximumSize
    Initialize-Volume -DriveLetter “D” -FileSystem NTFS -Confirm:$false -NewFileSystemLabel “FooBar”

    Ahh man!

    Really thank you for that post. Without that I would have thrown my PC out of the Window(s) since my usable capacity was not adding up with my 5 disk parity SP.

    @ Microsoft: WHY MAKE IT SO COMPLICATED ????? If you want to be taken seriously by users then a simple RAID 5/6 creation has to be as easy as on Linux and equally fast - parity write speeds are abysmal with 50-80mb/s even on a protected array.

    Tuesday, December 18, 2018 9:55 PM