Jump to content
We're Hiring! Full Stack Developer ×

Best way to handle upgrading parity and removing drive from array...


Recommended Posts

I've run out of Sata ports but want to pre clear the new drive I will be adding for parity. At the same time I want to remove a smaller drive from my array that I will still use as a connected hard drive but not in the array.

 

I have already moved all the content from the drive I'm going remove from the array and excluded it from all shares.

 

1. It sounds like removing the drive will lead to having to rebuild the parity?

2. If so, can I preclear another drive at the same time?

3. I'd like to avoid any long periods of downtime - would I be able to go with dual parity and then remove the old parity drive?  I'm reading this...
https://wiki.unraid.net/The_parity_swap_procedure
and it doesn't mention this as an option but seems like it would be the "safest" and require little downtime?

Link to comment

1). Yes - removing a drive invalidates parity requiring it to be rebuilt.

 

2).   Yes - you can pre-clear a drive in parallel to any other array operation as a drive being pre-cleared is not part of the array.

 

3). Not sure I understand this question?   Parity Swap procedure is only relevant when replacing a drive, not when removing one.

 

in all cases the array remains operational so not sure why you expect prolonged downtime?    It is just that performance is likely to be degraded while carrying out the operation?

Link to comment
On 3/18/2020 at 1:53 AM, itimpi said:

1). Yes - removing a drive invalidates parity requiring it to be rebuilt.

 

2).   Yes - you can pre-clear a drive in parallel to any other array operation as a drive being pre-cleared is not part of the array.

 

3). Not sure I understand this question?   Parity Swap procedure is only relevant when replacing a drive, not when removing one.

 

in all cases the array remains operational so not sure why you expect prolonged downtime?    It is just that performance is likely to be degraded while carrying out the operation?

 

1) Seems odd that a drive with no data would require rebuilding the parity but likely due to my lack of knowledge

 

2) Ok cool

 

3) To be clear, I am actually doing two very different things - 1) switching out a 8tb parity drive with a 10tb drive. this 8tb drive will then be part of the array. 2) removing a 2tb drive from the array 

 

So parity swap sounds like something I'd like to avoid since it would likely take an entire day for the parity to move over to new drive. Is it not possible to have dual parity and then remove one of the drives? If so, why would parity swap ever be recommended?

Edited by andyd
Link to comment
1 minute ago, andyd said:

If so, why would parity swap ever be recommended?

The only time Parity Swap is recommended is when you have a failed drive and want to simultaneously upgrade the parity drive to a larger size and re-use the old parity drive as the replacement for the failed drive. 

Link to comment
5 minutes ago, andyd said:

Seems odd that a drive with no data would require rebuilding the parity but likely due to my lack of knowledge

Parity is not aware of data!  

 

From a parity perspective a drive with no files still has information on it contributing to the parity calculations.    It is only if a drive is all zeroes that this is not the case and a drive could be removed without affecting parity.

Link to comment
11 minutes ago, andyd said:

To be clear, I am actually doing two very different things - 1) switching out a 8tb parity drive with a 10tb drive. this 8tb drive will then be part of the array. 2) removing a 2tb drive from the array 

If I understand correctly, where you want to end up is with a larger parity drive, and the original parity drive replacing a 2TB drive. Is that correct?

 

If so, then parity swap seems entirely appropriate. You don't really have to have a "failed" drive. If you disconnect, or even just unassign that 2TB drive and start the array, Unraid will disable it and it will effectively be "failed"

Link to comment

Note however, that parity swap does actually disable the array during the "parity copy" part of the procedure.

 

Actually, on second thought, forget the parity swap. Just rebuilding parity with whatever drives assigned as you want is the best way to go. And you can do this all at once, removing the 2TB, adding the old parity as data, and adding the new parity and rebuilding it.

Link to comment
19 minutes ago, andyd said:

Seems odd that a drive with no data would require rebuilding the parity but likely due to my lack of knowledge

Just to elaborate on what itimpi already said, an empty disk is not a clear disk.

 

A clear disk is all zeros. Removing or adding a clear disk has no effect on parity, since all those zeros produce the same parity result.

 

An "empty" disk is far from all zeros. It actually still has all of the bits it ever had with whatever values were there before. It is just the small amount of filesystem metadata that says that those bits are no longer part of any file.

 

And all those nonzero bits are still part of parity, so removing them requires a parity rebuild.

Link to comment
27 minutes ago, itimpi said:

Parity is not aware of data!  

 

From a parity perspective a drive with no files still has information on it contributing to the parity calculations.    It is only if a drive is all zeroes that this is not the case and a drive could be removed without affecting parity.

 

12 minutes ago, trurl said:

Just to elaborate on what itimpi already said, an empty disk is not a clear disk.

 

A clear disk is all zeros. Removing or adding a clear disk has no effect on parity, since all those zeros produce the same parity result.

 

An "empty" disk is far from all zeros. It actually still has all of the bits it ever had with whatever values were there before. It is just the small amount of filesystem metadata that says that those bits are no longer part of any file.

 

And all those nonzero bits are still part of parity, so removing them requires a parity rebuild.

Got it and makes sense. Thanks for taking the time to elaborate and trurl in posting again in this thread!

 

 

17 minutes ago, trurl said:

Note however, that parity swap does actually disable the array during the "parity copy" part of the procedure.

 

Actually, on second thought, forget the parity swap. Just rebuilding parity with whatever drives assigned as you want is the best way to go. And you can do this all at once, removing the 2TB, adding the old parity as data, and adding the new parity and rebuilding it.

Well, I wanted to both...

1. Avoid any potential issues with having no parity

2. Avoid any downtime

And I was thinking the best way to do this is to do a dual parity and then demote the 8tb to an array drive when the 10tb parity drive is fully built

Edited by andyd
Link to comment
11 minutes ago, andyd said:

I was thinking the best way to do this is to do a dual parity and then demote the 8tb to an array drive when the 10tb parity drive is fully built

The thing to be aware of with dual parity, is that the 2 parity disks are not interchangeable. Parity2 is a different algorithm. So, parity2 is not the same as parity. Either parity will provide redundancy for a single failed disk. But since the 2 parities are not merely copies of each other, together they can provide redundancy for 2 failed disks.

 

So, if you add a parity2, and then make your original parity disk a data disk, you will not have a parity disk in your array, you will have a parity2 disk.

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.

×
×
  • Create New...