Parity/disk upgrade idea/suggestion


Recommended Posts

I was reading the other thread about removing a disk from the array and that got me thinking. If you have an empty HD slot....(or usb2/3 external?)

1) I would love a way to upgrade a data disk w/o losing parity

2) upgrade a parity disk w/o losing parity

 

Now with parity - I would usually do a parity sync before doing any big changes...

Can/could it do a parity check/write parity to two disks at once? i.e. the parity disk and the new parity disk? Then when the that is finished, replace the parity with the new disk. Probably pre clear the old parity and add it to the array.

 

Data - That is copy all data from the old data disk to the new one (pre cleared one), when that is done, swap disks in the array.

 

That's just me thinking out loud (trying to remove any instance where I'm not parity protected).

 

Link to comment

It's been discussed in the past, and yes, I agree, it's very bad form to require the array to be run at risk to do basic drive upgrades and swaps. There are fairly easy ways to accomplish what you want, but it has not been put forward as a high priority for Tom to work on. People seem to want built in email notification and some flavor of dual parity as a higher priority, and now that the 64 bit and full distro and virtualization crowd have bum rushed Tom to work on their needs first, I doubt the other basic stuff is going to get much attention.

Link to comment

... People seem to want built in email notification and some flavor of dual parity as a higher priority ...

 

Dual parity is exactly what will allow these operations to take place WITHOUT the system running at risk.

It's one method. There are simpler ways to accomplish upgrades and swaps using the current single parity system that don't involve dual parity.
Link to comment

... People seem to want built in email notification and some flavor of dual parity as a higher priority ...

 

Dual parity is exactly what will allow these operations to take place WITHOUT the system running at risk.

It's one method. There are simpler ways to accomplish upgrades and swaps using the current single parity system that don't involve dual parity.

Email, via DYNAMIX web GUI works great right now. (I know its not builtin, etc., but at least it seems a viable workaround.)

 

For 'dual parity', what's the 'procedure' and means for a 2nd parity drive? And what 'use cases' would it cover?

For example, If I wanted to simply expand my parity drive from 2 Terabytes to 3, how would dual parity help?

 

If I could plug the new 3TB drive into an open slot (or an eSATA external drive), then somehow either 'build parity anew', or just 'copy parity' from the 3 to the 2, would that work?  Once completed, I could shut down and remove the old parity, OR, I could simply stop the array and reassign the 2TB parity to be a data drive.

 

Would there be other advantages to having two parity disks with the same parity data?

Link to comment

Would there be other advantages to having two parity disks with the same parity data?

What we are discussing with dual parity is not 2 disks with the same data. It's 2 disks with complementary parity calculations on each one, in a way that allows for the reconstruction of 2 failed disks, and also allows for a method to pinpoint the exact location of any corruption with the ability to fix it. Current single parity can only tell you that there is a discrepancy in the data located at offset x on the entire set of disks, with no ability to pinpoint WHICH disk is wrong. Right now the assumption is made that any parity error involves the parity drive being wrong, and the data disks are correct. While this is the correct assumption for the vast majority of cases, it's not 100%.
Link to comment

As Jonathan noted, "dual parity" doesn't mean two parity disks, but a 2nd set of fault-tolerance information that allows the array to tolerate two drive failures without loss of data.  Technically it's not actually a 2nd parity drive - it's simply a design that provides for fault-tolerance with two drive failures -- but since it requires an additional drive to implement, it's often simply referred to as a 2nd parity drive.    It can be implemented in multiple ways, the most common of which are (1) a RAID-6-like Reed-Solomon code or (2) a diagonal parity bit.  The diagonal parity is computationally easier, so I suspect that's what will ultimately be implemented with UnRAID.    Note that the extra info is scattered through all the drives ... not stored on a single extra drive.

 

The key advantage to this is that the system remains fault-tolerant during a disk rebuild.  i.e. if you have a disk fail; or simply choose to replace one with a larger/faster/newer drive, then during the rebuild process if another drive fails it's not a problem => the rebuild will continue until it's finished with no problem.    You would NOT want to just let the system run until a 2nd drive failed and then do the replacements  :)

 

This has become an even more important feature as drive sizes have grown so large.  With bit error rates in the 1 x 10^(14) range (typical for consumer-oriented drives), and over 3 x 10^(13) bits on a 4TB drive, it becomes statistically fairly likely that you may encounter a bit error during a rebuild ... even without another actual failure.    With "dual parity" a failure during rebuild is MUCH less likely ... and it completely eliminates "running at risk" for any drive upgrades.  From a reliability perspective, it is BY FAR the best upgrade that could be made to UnRAID in a future release.

 

 

Link to comment

The key advantage to this is that the system remains fault-tolerant during a disk rebuild.  i.e. if you have a disk fail; or simply choose to replace one with a larger/faster/newer drive, then during the rebuild process if another drive fails it's not a problem => the rebuild will continue until it's finished with no problem.    You would NOT want to just let the system run until a 2nd drive failed and then do the replacements  :)

 

This has become an even more important feature as drive sizes have grown so large.  With bit error rates in the 1 x 10^(14) range (typical for consumer-oriented drives), and over 3 x 10^(13) bits on a 4TB drive, it becomes statistically fairly likely that you may encounter a bit error during a rebuild ... even without another actual failure.    With "dual parity" a failure during rebuild is MUCH less likely ... and it completely eliminates "running at risk" for any drive upgrades.  From a reliability perspective, it is BY FAR the best upgrade that could be made to UnRAID in a future release.

 

Exactly what I was thinking. I have a new disk for a larger parity drive ready to go, but really don't like the idea of an older smaller disk failing while parity is written to the new disk. I was thinking that the couple options would be "easy" to implement and hopefully implemented sooner (sooner than dual parity). Dual parity sounds like a bit more work to implement.

 

I will say that dual parity is needed based on both the size of the disks, and the number. I do hesitate expanding my array without it. I've looked at ZFS and read about bit-rot, but ZFS requires more time to learn than I have. And it isn't single disk readable....

Link to comment

The key advantage to this is that the system remains fault-tolerant during a disk rebuild.  i.e. if you have a disk fail; or simply choose to replace one with a larger/faster/newer drive, then during the rebuild process if another drive fails it's not a problem => the rebuild will continue until it's finished with no problem.    You would NOT want to just let the system run until a 2nd drive failed and then do the replacements  :)

 

Thank you for saying this.  It's tiresome to see so many people poo-poo the idea of dual-parity because "what are the odds of two drives going simultaneously?"  The main benefit of dual-parity is piece of mind during the rebuild of a single disk going.  I ran hardware RAID5 prior to switching to Unraid, and only had to rebuild once -- and it was a nerve-racking process.  Sure I had backups, but restoring is never fun, and the time window between then and the last backup would have been lost.  With dual-parity rebuilding would be a lot less stressful. 

 

I agree than no other upgrade could be greater than this for Unraid at the moment. 

Link to comment

I ran hardware RAID5 prior to switching to Unraid, and only had to rebuild once -- and it was a nerve-racking process.

 

That's also the reason RAID-6 has rapidly superseded RAID-5 in most commercial applications.    As I noted above, it is NOT so you can wait until 2 drives fail before needing to replace them ... it's so when ONE drive fails your array is still fault tolerant while you're rebuilding that drive.

 

The actual difference in reliability depends on the size of the drives and their bit error rates (i.e. enterprise class drives have bit error rates about 10 times as good as consumer drives) ... but in general if you have dual parity it's about 100 times less likely that you'll have an error during a rebuild.   

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.