Shawn wrote:
> Jon wrote:
>> I'm going to bed soon, promise. Just one more question about RAID5: In a 
>> 3 disk RAID5, the parity bit can be used to derive the missing 
>> information if one of the disks fails. I think.
>>
>> The rather simplistic example in my book has is the following (each 
>> column represents one disk)
>>
>> 22   12   34
>> 65   68    3
>> 13    9    4
>>
>> the parity bits are 34, 68, and 13.
>>
>> So, my question is - say, for example, that disk 3 goes down. I am 
>> therefore left with
>>
>> 22   12
>> 65   68
>> 13    9
>>
>> How does the system know when to add and when to subtract to get the 
>> missing values? Like how does it know not to do 22-12 and end up with 10 
>> instead of 34?
>>
>> Or 65 + 68 = 133 instead of 68-65 = 3?
>>
>> Pointers, thoughts, and links welcome.
> 
> Try it with binary math, instead of decimal math...
> 
> My thoughts, but I could be wrong.
> 
> Shawn

It separates the parity bit among the three disks like so:

disk1   disk2   disk3

data    data    parity
data    parity  data
parity  data    data

The mathematical operation is always the same, and uses Binary, I think 
every row needs to be an even number. When using binary, where you only 
have a 1 or a zero, it's pretty simple:

disk1   disk2   disk3

data=1  data=1  parity=0 - parity needs to make an even number so parity =0

If disk 3 fails, the two data bits reconstruct the missing parity bit in 
this case 0

Or:

data=1 parity=1 data=0 - to make an even number, parity needs to be 1

If disk 3 fails the data bit + the parity bit is odd, so the missing 
data bit has to equal 1

I'm sure the actual math is a bit more complicated, but this is the 
general idea.

This way it does not matter what disk fails, and can even serve files 
before the dead disk is replaced. (bit slow, but still works)

My 2 cents.

Robert Toole
[EMAIL PROTECTED]

_______________________________________________
clug-talk mailing list
[email protected]
http://clug.ca/mailman/listinfo/clug-talk_clug.ca
Mailing List Guidelines (http://clug.ca/ml_guidelines.php)
**Please remove these lines when replying

Reply via email to