I asked the question on reddit but that seems to be the wrong audience for something that technical, perhaps someone here knows the answer.
My understanding of how Windows Storage Space allocates stripes across disks is that it is primarily based on capacity. So if I have a two way mirror virtual disk with a single column (so every stripe is written to two disks for parity), the stripes may end up distributed on any combination of two disks in the array. So say maybe some will be on disks A and B, B and C, A and C, etc.

RAID10 on the other hand is basically a set of pairs of disks, each in RAID1. What it means is that every stripe is saved on the same two of disks of a RAID1 pair, i.e. always A and B, or C and D, but never A and D, etc.

Now both give you redundancy for the loss of a single disk, that's fine and understood. My question is what happens when you lose more than one disk at a time.
For RAID10, it is basically down to whether you are unlucky enough that the other failed disk is part of the same RAID1 pair than the first disk to fail. If you lose both A and B, that's the end. But on a large array (think like 24 disks), chances are the other disk will be from another pair (say you lose A and D). So in most cases you can recover from the loss of more than one disk, and if you are extremely lucky, you could in theory lose up to half of your disks before losing any data (remote scenario).
For storage space mirror, on the other hand, it seems that if the pairs of stripes are indeed distributed across all disks, it is therefore very likely that if you lose two disks, some of the stripes will span those exact two disks, resulting in a data loss. Unless the storage space algorithm is smart enough to try avoiding too many permutation of pairs of disks, i.e. tries to favour spanning stripes between A and B, and C and D, but never A and D if it can avoid it. My question is, is it that smart?
This is what storage space would look like if it was that smart, i.e. limit the number of permutations of pairs of disks:

Because if it isn't, what it means if I understand correctly is that Storage Space mirror is basically no better than RAID5 in term of redundancy, i.e. you can lose one disk, but you are dead on the second disk failure, but having the capacity penalty of RAID10 (i.e. you sacrify half of the storage capacity). But RAID10 can most often tolerate more disk failures in a large array, unless you are unlucky to have two disk failures in the same RAID1 sub array (but that risk goes down as the array has more disks).
My understanding of how Windows Storage Space allocates stripes across disks is that it is primarily based on capacity. So if I have a two way mirror virtual disk with a single column (so every stripe is written to two disks for parity), the stripes may end up distributed on any combination of two disks in the array. So say maybe some will be on disks A and B, B and C, A and C, etc.

RAID10 on the other hand is basically a set of pairs of disks, each in RAID1. What it means is that every stripe is saved on the same two of disks of a RAID1 pair, i.e. always A and B, or C and D, but never A and D, etc.

Now both give you redundancy for the loss of a single disk, that's fine and understood. My question is what happens when you lose more than one disk at a time.
For RAID10, it is basically down to whether you are unlucky enough that the other failed disk is part of the same RAID1 pair than the first disk to fail. If you lose both A and B, that's the end. But on a large array (think like 24 disks), chances are the other disk will be from another pair (say you lose A and D). So in most cases you can recover from the loss of more than one disk, and if you are extremely lucky, you could in theory lose up to half of your disks before losing any data (remote scenario).
For storage space mirror, on the other hand, it seems that if the pairs of stripes are indeed distributed across all disks, it is therefore very likely that if you lose two disks, some of the stripes will span those exact two disks, resulting in a data loss. Unless the storage space algorithm is smart enough to try avoiding too many permutation of pairs of disks, i.e. tries to favour spanning stripes between A and B, and C and D, but never A and D if it can avoid it. My question is, is it that smart?
This is what storage space would look like if it was that smart, i.e. limit the number of permutations of pairs of disks:

Because if it isn't, what it means if I understand correctly is that Storage Space mirror is basically no better than RAID5 in term of redundancy, i.e. you can lose one disk, but you are dead on the second disk failure, but having the capacity penalty of RAID10 (i.e. you sacrify half of the storage capacity). But RAID10 can most often tolerate more disk failures in a large array, unless you are unlucky to have two disk failures in the same RAID1 sub array (but that risk goes down as the array has more disks).
Last edited: