July 15, 201312 yr Thank you for updating the post (hence very clear now why why JoeL. states he doesn't wish to publish how to apply just the signature, "it's to dangerous" ) Thanks guys!
July 15, 201312 yr "Faking" a pre-clear signature is a BAD idea ... as graywolf noted, this would result in UnRAID "thinking" it had good parity, when in fact it did not !! The ONLY way you can add a new drive to an array without impacting the parity already stored on the parity drive is if EVERY bit on the drive is a zero. This ensure the correct parity bit doesn't change ... so parity remains valid. If you fake a pre-clear signature, then UnRAID will add the drive, but "thinks" the drive is otherwise all zeroes. If you did this, and then immediately did a correcting parity check, you'd have BILLIONS of sync errors !! Parity would, of course, be correct AFTER that check ... but clearly this is not a good way to do this
July 15, 201312 yr "Faking" a pre-clear signature is a BAD idea ... as graywolf noted, this would result in UnRAID "thinking" it had good parity, when in fact it did not !! The ONLY way you can add a new drive to an array without impacting the parity already stored on the parity drive is if EVERY bit on the drive is a zero. This ensure the correct parity bit doesn't change ... so parity remains valid. If you fake a pre-clear signature, then UnRAID will add the drive, but "thinks" the drive is otherwise all zeroes. If you did this, and then immediately did a correcting parity check, you'd have BILLIONS of sync errors !! Parity would, of course, be correct AFTER that check ... but clearly this is not a good way to do this Wasn't totally sure I got it, until you posted this.
July 15, 201312 yr I don't get why it would use anything (0/1) from this new drive to "simulate" the other failed drive?All array member drives are fully used to simulate the failed drive. That is why it's so crucial for a new drive to be all zeros, or for parity to be recalced using the existing values. Quick parity tutorial. So quick it's missing crucial technical detail, but here goes. Say you have 3 drives, so 2 data and 1 parity. At location address 1 on all the drives, the 2 data drives have 0, so the parity is set to 1, to make the total = 1. Location 2, 1st data is 0 second is 1, so parity is set to 0 so the total = 1. Location 3, D1=1, D2=1, so parity is set to 1 for a total of 1. Using the other two drives, any location can be calculated. Adding a 4th drive, you either need to do all the math again, or you can make sure all the locations are 0, so parity is still the same as it was before you added the drive. Once again, if you remove one of the other drives, you can use the other drives to calculate the value that should be there. If a location that is assumed to be 0 is actually 1, then the simulated data is going to be wrong at that location. Okay, the mathematical purist in me requires a bit of comment [i did a PhD in math] ... Your example assumes odd parity; I'm fairly sure UnRAID uses even parity (Tom could confirm this). The concept is the same -- but your example is not correct for an even parity system. Nor are any of the subsequent examples, which all assume odd parity.
July 15, 201312 yr Okay, the mathematical purist in me requires a bit of comment [i did a PhD in math] ... Your example assumes odd parity; I'm fairly sure UnRAID uses even parity (Tom could confirm this). The concept is the same -- but your example is not correct for an even parity system. Nor are any of the subsequent examples, which all assume odd parity. Correct, I couldn't remember if unRaid was odd or even parity, that is why in my examples I specified odd parity. The point was to show why adding a drive that didn't have all zeros but unRaid thought it did would be a bad thing.
July 15, 201312 yr Quick parity tutorial. So quick it's missing crucial technical detail, but here goes. Okay, the mathematical purist in me requires a bit of comment [i did a PhD in math] ... Your example assumes odd parity; I'm fairly sure UnRAID uses even parity (Tom could confirm this). The concept is the same -- but your example is not correct for an even parity system. Nor are any of the subsequent examples, which all assume odd parity. Thus my statement "missing crucial technical detail". I'm well aware of even vs odd parity, but for the purposes of my example, I felt odd parity was easier to illustrate and explain quickly, without going into even vs odd. Which scheme unraid actually uses is pretty irrelevant in the context of a quick parity explanation.
July 15, 201312 yr Thus my statement "missing crucial technical detail". You did caveat that ... but a 10-second search in the FAQ on the Wiki would have led you here: http://lime-technology.com/wiki/index.php/FAQ#How_does_parity_work.3F ... which includes this statement: "... unRAID uses what is called 'even parity' " => and you could have been technically accurate But I certainly agree that for purposes of your examples, it doesn't make any difference
July 15, 201312 yr I'll speak for myself, I am good with jonathanm and graywolf high level explanation and example, and appreciated. I'm not looking to redo anything for unRAID parity (or any complaints about it) nor was anyone faking a drive, it was a good example should someone make an attempt, what the end state would be. Thanks again. And thanks to the OP for bearing with this side tracking.
Archived
This topic is now archived and is closed to further replies.