10 Drive RAID 50 XOR Set Separator

Jared

Administrator
Staff member
Here's sampling of the project I'm working on to be able to definitively determine the two drive sets for RAID 50 arrays. All you have to do is find a sector that every drive in the array has data, and pull a sample byte from the same location on each drive (probably good to pull several sets of samples to try). The XOR calculator will try every possible combination of drives and reveal the ones that all XOR out to each other. If you have two opposite sets that match, you've determined which drives belong in which set.

Below is the one for separating 10 drives into two sets of 5. If you're working on a smaller set, just fill in the extra drives with 00 and it should still work. You'll just have to ignore the extra drive numbers that are the 00'd out place holders.

[raid50][/raid50]
 

Jared

Administrator
Staff member
If anyone is interested in donating to support this work let me know. Getting into the bigger arrays, will take some time just to generate a list of every possible combination of drives. Up to 10 I was able to do manually, but by 16 drives I think it'll be excessive.
 

ReclaiMe

New member
We have an entropy analysis in our ReclaiMe Pro which you can use to sort drives by columns. That is, if you have a 6-drive layout, with drives ABC-DEF, it will tell you that drives A-D, B-E, and D-F are in the same columns in the disk order (but does not tell you which is left our right side). Effectively, this means that A cannot be in the same set with D, B cannot be in the same set with E and C cannot be in the same set with F. This reduces the amount of possible combinations. It will also tell you the ordering in the sense that pair B-E is located after A-D, which can also be useful.
 

Jared

Administrator
Staff member
Yeah but in RAID 50 there are no pairs, its just two (occasionally more) RAID 5 sets in a RAID 0. Maybe I'm just not following what you're saying...I don't know.
 

ReclaiMe

New member
Let's say we have three drives, two groups of three disks. Each three disks form a RAID5, and there are two of them, left side and right side. Each RAID5 has three columns.

Code:
left     -   right
A  B  C  -  D  E  F 

1  2  P  -  3  4  P 
5  P  6  -  7  P  8 
P  9 10  -  P 11 12

where A B C D E F denote disks, P is parity

Disks A and D are in the first column of their side RAID5 (and both have parity in the bottom row). In a similar way, B-E are in the second column, and C-F are in the third column of their respective sides. Entropy analysis gives you that pairing. You just do not know which drive is from which side.
 

Jared

Administrator
Staff member
I see what you're saying now. I haven't really had time to play around with the entropy analysis tool yet, but that could certainly be helpful. Actually combining my method of definitely separating the sets, combined with your entropy to pair drives could really cut down on the number of possibilities. Once you separate the two sets using XOR, lock down a few drives locations based on file structures, and run entropy analysis to pair them up in the drive order....there's only likely to be a handful of possibilities left to try.

Now if we could just combine all these methods into a single program we'd be in business.
 
Top