Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Newbie questions: balancing existing data after adding drives to array / reusing empty data drives as permanent cache

Featured Replies

Hello!

 

I've been testing Unraid for a few months with a basic config (old MB I had around and three drives) and now I'm upgrading it and adding space.

 

Initially I had:

Parity Drive - Seagate 14TB
Data Drive 1 - Western Digital 8TB
Data Drive 2 - Western Digital 8TB

I bought 3 x Western Digital 18TB, my idea was to replace the 14TB drive with one Western Digital 18TB drive, then add the 2 remaining Western Digital 18TB and the old Seagate 14TB drive to the array. I've already done that and everything worked like a charm ending with this configuration:

Parity Drive - Western Digital 18TB
Data Drive 1 - Western Digital 8TB
Data Drive 2 - Western Digital 8TB
Data Drive 3 - Western Digital 18TB
Data Drive 4 - Western Digital 18TB 
Data Drive 5 - Seagate 14TB 

The new, precleared disks showed as "unmountable" when I started the array, so I formatted them. Right now I'm running a parity check "just in case". Since the drives were cleared I think that step was not needed but I don't mind spending the extra time on it while I ask a few things here and prepare myself for the next steps 😊

 

Next thing I would like to do is to move all data from the Western Digital 8TB drives to the Western Digital 18TB drives, in order to remove them from the array. I'm using high water allocation so both disks have the same approximate amount of data. I know I could use tools like unBALANCE to do the job but since it seems an easy process (copy all data from Drive 1 to Drive 3 and all data from Drive 2 to Drive 4) I'm thinking of doing it manually.

 

How should I do this? I'm guessing a "rsync /mnt/disk1/ /mnt/disk3/" and "rsync /mnt/disk2/ /mnt/disk4/" would do the job, but I'm not sure if I have to do this while the array is stopped or if it has to be running. Would the following approach be correct?

 

1. Stop array

2. rsync /mnt/disk1/ /mnt/disk3/ and rsync /mnt/disk2/ /mnt/disk4/ (I guess I can do it in parallel to maximize bandwidth and save time)

3. rm -rf /mnt/disk1/* /mnt/disk2/*

4. Start the array

5. Maybe do a parity check?

6. Stop the array

7. Remove Data Drives 1 and 2 from the array

8. Start the array

 

I would say that steps 4-5 are overkill and that maybe I just need to remove the 8TB drives at step 4 then start the array but, as a newbie, I'm not completely sure about that. 😅

 

Last but not least, once I have the two Western Digital 8TB out of the array, I'm thinking of using them in a 2-disk BTRFS RAID0 cache pool ("Use cache pool" set to "Only") so I have a total of 16TB I could use to intensive torrent downloading and seeding. Since all the data stored there is not important (I can redownload it if needed) I think it's better to "isolate" it from the array for performance and, more importantly, to avoid stressing the parity drive with constant new data. Any advice about this approach?

 

Thanks in advance!

Edited by Devotee

  • Community Expert
7 minutes ago, Devotee said:

Next thing I would like to do is to move all data from the Western Digital 8TB drives to the Western Digital 18TB drives, in order to remove them from the array.

You could have just rebuilt those to the larger disks. Then there wouldn't be anything to move and the 8TB drives would already be out of the array.

 

In fact, you could still do that by doing New Config with only the original disks, rebuild parity, then replace/rebuild the 8TB one at a time.

  • Community Expert
11 minutes ago, Devotee said:

2. rsync /mnt/disk1/ /mnt/disk3/ and rsync /mnt/disk2/ /mnt/disk4/ (I guess I can do it in parallel to maximize bandwidth and save time)

Probably wouldn't save any time because both will involve parity updates so each would be waiting on the other with more seeking than necessary.

 

12 minutes ago, Devotee said:

3. rm -rf /mnt/disk1/* /mnt/disk2/*

No point in deleting data from disks you are removing.

 

13 minutes ago, Devotee said:

7. Remove Data Drives 1 and 2 from the array

At this point you would have to New Config without the disks and rebuild parity.

  • Author

@trurl, thanks a lot for quick replies! 😊

 

2 hours ago, trurl said:

You could have just rebuilt those to the larger disks. Then there wouldn't be anything to move and the 8TB drives would already be out of the array.

Oh, Ok... I see what you mean. Meh, I should have asked before doing anything, mea culpa 😔

 

I briefly thought about this approach but the word "rebuild" sounded a bit scary. I guess I should trust Unraid and go this path so I can experience what the process of replacing a drive and rebuilding it is. One of the best Unraid features, in fact the one I love most about it, is that even if I remove the 8TB drive, it will still contain an accessible copy of all its data, so if the rebuild fails, I should still have a working "backup". 

 

2 hours ago, trurl said:

In fact, you could still do that by doing New Config with only the original disks, rebuild parity, then replace/rebuild the 8TB one at a time.

I will follow your advice. If I understood everything correctly, these are the steps required to swap both drives:

 

1. Stop the array

2. New config removing the two 18TB drives and the 14TB drive (all three still empty at the moment)

3. Start the array and rebuild parity

4. Stop the array

5. Replace Data Drive 1 (8TB) with one of the 18TB drives

6. Start the array and let it rebuild everything

7. Stop the array

8. Replace the Data Drive 2 (8TB) with the second 18TB drive 

9. Start the array and let it rebuild everything

10. Stop the array

11. Add the remaining 14TB drive to the Array

12. Start the array

 

On one hand, I'm thinking that at this point I can just remove the two 18TB drives, leave the 14TB drive, New config with Parity 18TB + original 8TB drives + already installed 14TB, then replace the 8TB drives from there. Steps 11 and 12 would not be needed. I'm also not sure if I have to rebuild parity at any other point besides Step 3 (for example, after a drive is rebuilt, though parity at that point shouldn't need to be rebuilt).

 

Do I need to preclear the 18TB drives again ("Clear Disk") or at least do some kind of verification ("Verify Signature" or "Verify Disk") before using them to replace the 8TB drives?

 

2 hours ago, trurl said:

Probably wouldn't save any time because both will involve parity updates so each would be waiting on the other with more seeking than necessary.

One of my doubts was if content could be copied between drives (via /mnt/diskX) with the array stopped, according to your comment it has to be done while the array is started, so it makes sense that parity must be updated.

 

2 hours ago, trurl said:

No point in deleting data from disks you are removing.

That's one of the things that puzzles me... Is it ok to have duplicate data between disks while the array is running?? It's the reason why I thought that the array had to be stopped to copy data between data drives. I'm assuming that you "remove" the data from those drives when they are unassigned from the array or you physically remove them from the system, is that right? Unraid will automatically "see" the old data in the new drive.

 

  • Community Expert

I sort of overlooked your steps about stopping the array. You can't do anything to any disks with the array stopped, or even with it started in Maintenance mode, since no disks are mounted.

 

35 minutes ago, Devotee said:

"rebuild" sounded a bit scary

The whole reason you have parity. And, as you say, you will still have the original disks with their contents.

 

15 minutes ago, Devotee said:

New config with Parity 18TB + original 8TB drives + already installed 14TB, then replace the 8TB drives from there. Steps 11 and 12 would not be needed.

Yes that will work, then 14TB would already be in the array and included in parity rebuild. No need to rebuild parity again after New Config, it is maintained during all the other steps.

 

16 minutes ago, Devotee said:

need to preclear

There is one and only one scenario where Unraid requires a clear disk. That is when ADDING a disk to a NEW slot in an array that already has valid parity. This is so parity will remain valid. A clear disk is all zeros, and those zeros have no effect on parity. In that scenario, if the added disk isn't already clear, Unraid will clear it before including it in the array.

 

Preclear was useful on older versions of Unraid because the array would be taken offline if Unraid had to clear a disk, but that is no longer the case, and preclear is really just for testing disks.

 

21 minutes ago, Devotee said:

ok to have duplicate data between disks

Pool (cache) disks have precedent, then lower numbered array disks, when accessing user shares. So the duplicates won't be accessible when working with user shares. But it isn't recommended to leave things that way indefinitely. Only one of the duplicates would be updated in user shares, for example, and if the file with precedence becomes inaccessible for some reason, you would be left with the other, possibly outdated file. And, of course, it is a waste of space.

 

In the scenario you were discussing, they would be duplicates when copied by rsync, then no longer duplicates after removing the disks.

 

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.