Replacing Empty Drives With Larger Ones -- Trust Parity?


Recommended Posts

Hi Guys,

 

I've already used UnBalance to empty a few 2TB drives I plan to remove from my tower and replace with 8TB drives. Since there is no data to protect, and the drives are empty, is there a safe way to use Trust Parity in this situation?

IE, skip the rebuilding of parity data, since both old/new drives were empty?

Link to comment

They will not be empty once you add them to the array.  They have to be formatted with a file system.  With 8TB drives, this is few hundred MB's of data.  (Someone complained a week or two ago about how much space was being used on 8Tb drives which had not had anything stored on them yet!)  Parity has to updated to reflect this file system data!

 

Link to comment
1 hour ago, newoski said:

 

Boooo this man. Boooooooooo

 

( :

 

There is no such thing as an empty disk from a parity perspective. Each disks is full of sectors. Parity is maintained on sectors. Deleting files does not delete sectors, or cause the data on sectors to be zeroed out. That would take a very long time for big files and you'd hate it if it did!

 

If you move,delete, or unbalance a bunch of data from a disk. The data is still there in the sectors on the disk. Only very small updates were made by the file system to mark that space as available to be reused. Parity only tracks those very small changes to a few select sectors where the table of empty space is maintained.

 

Below are five basic ways to remove a disk. 

 

1. Do a new config and exclude the disk or disks to be removed. Do not trust parity. Parity will rebuild. Good to do a parity check before doing this, and to check all of the smart reports. This would minimize having a disk failure during the rebuild.

 

2. There was a process that I thought up and tested of ZEROing a disk that was in the array, and then removing it. A disk full of binary zeroes is invisible to parity, so it can be removed without affecting parity. This works and is not that hard to do. Although I thought it up, typically when I remove a disk I want to keep it as a backup, and zeroing it is not what I want to do. So I do this only very rarely.

 

3. Another interesting technique Joe L. came up with, to remove two identically sized disk, is to clone one of the disks to the other (clone means a sector by sector clone). If you think about it, the two together would cancel each other out from a parity perspective, and then the pair could be removed without affecting parity. I've never done this but it is sound. It destroys the contents of one of the disks.

 

4. If you added a precleared disk and never formatted it or wrote to it any other way, you would be able to remove it and trust parity (might be a stray parity sync error, but I wouldn't think so). This is pretty much equivalent to option 2 - removing a disk that is fully zeroed. (The second you format a new disk, the disk is updated significantly, and is a part of parity and would not be easily removed.)

 

5. Mostly disks are removed by being rebuilt (upsized one at a time), rebuilt (due to smart issue or disk failure), or part of a disk refresh cycle, where several disks are copied to new larger disks (initially outside the array), and then a single parity rebuild at the end, excluding the old disks and including the new ones (if you do this, make sure to let unRAID format the new disks! After they are formatted, Unassigned Devices can mount them for you. But using unassigned devices to do the format will produce a disk incompatible with unRAID, and you'll have wasted a lot of time!)

 

To avoid the need to remove a disk, don't add it in the first place. We've had people that want to remove a recently added disk because it was nearly empty and they now want that disk to rebuild a different failing disk in the array. By now it should be clear - that as soon as you add and format a disk, that disk is weaved into the fabric of parity and cannot be removed. Another common reason - is a user putting one or more old, often small disks into their array along with a couple new bright and shiny new ones. What the heck, right? And then these disks slow down parity checks, develop smart issues, or user wants to remove them and replace with a single larger disk. Better to not put the scrapheap of old disks into a new array.

 

 

Link to comment
2 hours ago, newoski said:

Hi Guys,

 

I've already used UnBalance to empty a few 2TB drives I plan to remove from my tower and replace with 8TB drives. Since there is no data to protect, and the drives are empty, is there a safe way to use Trust Parity in this situation?

IE, skip the rebuilding of parity data, since both old/new drives were empty?

Everyone has already explained this pretty well, but instead of unbalancing, you could have just rebuilt the 2TB disks (one at a time) with their data onto the new 8TB disks. That is the usual way to replace disks.

 

And you could still take that approach, by rebuilding the "empty" 2TB disks onto the new 8TB disks.

 

At this point, though, a New Config without the "empty" 2TB disks and with the new 8TB disks then rebuilding parity would be less time, trouble, and disk activity.

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.