Jump to content

[SOLVED] Parity check where parity drive is larger then the data drives


Recommended Posts

I've just upgraded by parity drive and now have a 2tb drive followed by 3 1tb data drives.  I started a parity check and expected it to end at about the 50% point once it passed all of the data on the 1tb drives.  But at the moment it is at 52%, 1.04tb and says it is currently running at 3.71MB/sec with an estimated finish in 4372 minutes.  Oh, and the three data drives have spun down.

 

It does seem to be writing new sync error corrections so maybe it is zeroing out the balance of the 2tb drive.

 

Anyone have any insight to this?  I'm going to let it continue running but I fear it is going to be awhile at 3.71MB/sec!

 

Link to comment

It's normal that it continues for the rest of the drive ... but NOT normal that it runs that slow.  If anything, I'd expect it to speed up once no other drives are involved in the check.

 

I'd have also expected that it would have zeroed (cleared) the unused part of the parity drive during the upgrade to that drive, so it shouldn't be finding sync errors unless you somehow upgraded it in such a way that it didn't clear the drive.    How exactly did you upgrade the parity drive?

 

Link to comment

Ahh yes, I remember that discussion.    Perhaps it didn't work as smoothly as it seemed after all ... I wonder if the 2nd time through it skipped the clearing of the extra space on the parity drive.

 

What you COULD do at this point -- but ONLY if you're fairly certain the 3 data drives are all good (i.e. the rebuild went okay for the failed drive) -- is to simply do a New Config and let the system do a new parity sync.    That SHOULD be notably faster than what you're seeing now  [if not, your system has some other issues that you need to isolate].

 

Alternatively, you can just wait for the check to finish.

 

Link to comment

So it ran through the night and only got to 1.25tb of the parity.  I knew my data driver are only 1tb so I killed the process, shut it down & moved ahead with the upgrade of the next data drive.

 

That data rebuild went perfectly and I ran another parity rebuild that also worked as expected.

 

I have one more data drive to upgrade but it appears that everything is on track.

 

Thanks again Garycase.

 

Link to comment

So it ran through the night and only got to 1.25tb of the parity.  I knew my data driver are only 1tb so I killed the process, shut it down & moved ahead with the upgrade of the next data drive.

 

That data rebuild went perfectly and I ran another parity rebuild that also worked as expected.

 

I have one more data drive to upgrade but it appears that everything is on track.

If you do not let the parity build/check get to the end at least once then if you ever add another data drive that is as larger than the point you let it get to then parity will be invalid. 

 

When you have finished the work you are currently doing then it will be worth setting off a correcting parity check and let it run to completion.

Link to comment

If you do not let the parity build/check get to the end at least once then if you ever add another data drive that is as larger than the point you let it get to then parity will be invalid. 

 

When you have finished the work you are currently doing then it will be worth setting off a correcting parity check and let it run to completion.

 

... That data rebuild went perfectly and I ran another parity rebuild that also worked as expected.

                                                        **********************

 

Already done. 

 

Thanks.

Link to comment

If you do not let the parity build/check get to the end at least once then if you ever add another data drive that is as larger than the point you let it get to then parity will be invalid. 

 

When you have finished the work you are currently doing then it will be worth setting off a correcting parity check and let it run to completion.

 

... That data rebuild went perfectly and I ran another parity rebuild that also worked as expected.

                                                        **********************

 

Already done. 

 

Thanks.

Parity check != parity rebuild. Have you done a correcting parity check yet?
Link to comment

... Parity check != parity rebuild. Have you done a correcting parity check yet?

 

True, but I suspect that's just a semantic error and he's already done a check.

 

... But if not, the following is NOT true:

 

... If you do not let the parity build/check get to the end at least once then if you ever add another data drive that is as larger than the point you let it get to then parity will be invalid. 

 

Not actually correct -- well, more accurately, it's correct but not a problem.    True that parity would be invalid from the point where he stopped to the end of the drive ... say 1.25TB.    And if the drive added was pre-cleared it would remain that way UNTIL something was written to that drive.  But consider what will happen the first time something is written to a location in that area => the parity will be read, and the drive being written to will be read; then parity will be updated to the correct value for the data being written ... so it will now be correct.  Since there are no other drives involved in that parity (unless others were also added ... but if that's the case they'll be all zeroes since nothing's been written to that area yet) the newly "computed value for parity will be correct.

 

It's still a good idea to do a parity check => otherwise the first time a full parity check is done there will be a LOT of sync errors as it corrects all those never-cleared areas of the parity disk.  But the simple fact is that it would work just fine.

Link to comment

... If you do not let the parity build/check get to the end at least once then if you ever add another data drive that is as larger than the point you let it get to then parity will be invalid. 

 

Not actually correct -- well, more accurately, it's correct but not a problem.    True that parity would be invalid from the point where he stopped to the end of the drive ... say 1.25TB.    And if the drive added was pre-cleared it would remain that way UNTIL something was written to that drive.  But consider what will happen the first time something is written to a location in that area => the parity sector will be read, and the sector on the drive being written to will be read; then parity will be updated to the correct value for the data being written ... so it will now be correct.  Since there are no other drives involved in that parity (unless others were also added ... but if that's the case they'll be all zeroes since nothing's been written to that area yet) the newly "computed value for parity will be correct.

You get away with if the replacement parity disk has been precleared as the correct parity value for areas beyond the largest data disk is zero.

 

However can you assume that the parity disk is precleared as that is not a requirement for changing the parity disk?

 

When you add a new data disk it will be zeroed (either via clear or preclear) so at that point no change is made to the parity.

 

When you try and write a data sector beyond the point in which parity is known to be valid then:

  • The relevant sector on the parity and data disk would be read.  At this point no check will be made that the parity disk sector is correct
  • New value will be calculated for the parity disk sector based on values just read and the new sector to be written to the data disk.  Since the other data disks were not involved if the value read from the parity drive is not valid the calculated value for the parity sector would also be wrong
  • The new data disk sector and new (possibly) incorrect parity disk sector are written out.

The above scenario would be corrected for as long as either the initial parity build ran to completion or a correcting parity check ran to completion. 

Link to comment

Clearly I wrote that before I had enough coffee  :)

 

What I meant to note was that it doesn't matter if a parity check is done now, or after the first data disk that goes beyond 1TB is added.    It certainly DOES have to be done at that point, or indeed subsequent writes will result in incorrect parity values.

 

Link to comment

Clearly I wrote that before I had enough coffee  :)

Coffee deprivation can be a terrible thing  :)  This morning I tried to make my coffee by putting in hot water and omitting the actual coffee!  A good sign that I really needed it.

 

What I meant to note was that it doesn't matter if a parity check is done now, or after the first data disk that goes beyond 1TB is added.    It certainly DOES have to be done at that point, or indeed subsequent writes will result in incorrect parity values.

Agreed it could be done at that stage.    However I would suspect it might just get forgotten and it is probably a good idea to get it out of the way in advance at a convenient point in time.
Link to comment

... This morning I tried to make my coffee by putting in hot water and omitting the actual coffee!  A good sign that I really needed it.

 

I've done that a time or two with our Keurig => just put the cup in, pushed the button ... and come back in a minute to find a cup of hot water  :)

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...