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.

Upgrading BTRFS Cache Pool Drives

Featured Replies

Hi - I've seen a few posts on this but they all refer to version 6.X, so I just want to check what the recommended process is for version 7.0.0.

 

I have a cache pool with 4 drives (2 x 240 GB and 2 x 500 GB) in it using BTRFS in RAID 1. I have 2 new 1TB drives, and want to replace the 4 existing ones.

I can see that I can replace 1 drive at a time in the pool and letting the system rebuild after each replacement using the GUI, and I then end up with the 2 new drives, as well as 2 of the old drives.

I'm then not sure exactly how to remove the remaining 2 drives. Do i:

 

  1. Remove 1 of them, balance /  let it rebuild, then remove the last? This is in the manual here, as long as metadata is turned on (which I think I have - see screenshot below).
  2. Use the CLE methos as described in the manual here, which I'd prefer not to do if I can help it.

 

Thanks in advance!

 

I think I have metadata turned on in RAID 1:

image.png.e52fe467c30664b5505f706d4e1d84f4.png

Solved by JorgeB

  • Community Expert

There's an issue with Btrfs raid1 pool removal in 7.0.x, it should be fixed for 7.0.2, but for now, you would need to use the CLI to remove the devices, those linked instructions will work, except the part to reimport the pool, for v7.0 use this instead, this would be to reimport with just the two remaining devices:

 

on main click on the first device for that pool and then "remove pool"
back on main, create a new pool with the same name and two slots
assign the pool devices, leave the filesystem set to auto
start the array to import the pool 

  • Author

Thanks @JorgeB - I'm glad I checked! I'm now away from my server for a few days due to work, so I'll take a look when I'm back and see if I can complete the upgrade.

Is there an easy way to completely back up the cache data to the array (not move, but back up)?

  • Community Expert

You could use rsync for example.

  • Author
On 3/13/2025 at 7:57 AM, JorgeB said:

There's an issue with Btrfs raid1 pool removal in 7.0.x, it should be fixed for 7.0.2, but for now, you would need to use the CLI to remove the devices, those linked instructions will work, except the part to reimport the pool, for v7.0 use this instead, this would be to reimport with just the two remaining devices:

 

on main click on the first device for that pool and then "remove pool"
back on main, create a new pool with the same name and two slots
assign the pool devices, leave the filesystem set to auto
start the array to import the pool 

OK, I'm back at my server and about to start this, but I don't quite understand the instructions above, sorry! To go from the 4 old SSDs currently in the cache to 2 new SSDs and copy all the cache data to the new disks, do I just do the 4 steps above, or do I need to do anything else as well? Thanks.

  • Community Expert

First you need to replace two of the deices with the new ones, one at a time, then remove the two old devices, again one at a time and using the CLI, finally you need to reimport the pool with the remain two devices, any doubts ask, and post current diags.

  • Author
9 hours ago, JorgeB said:

First you need to replace two of the deices with the new ones, one at a time, then remove the two old devices, again one at a time and using the CLI, finally you need to reimport the pool with the remain two devices, any doubts ask, and post current diags.

OK, thanks - I'll give that a go then. Cheers!

  • 3 weeks later...
  • Author

Hi @JorgeB,

 

So I've been away from my server for a few weeks, and now back and ready to proceed, albeit a little nervous! I think I've mapped out all the steps needed, in sequence, using the drive info for my cache as set up in the image below:

image.thumb.png.4e90a58c0348a9f3512fe92ca5d1cb9f.png

 

Steps to Follow (combination of your instructions above and the linked Docs):

  1. Turn off Docker & VMs
  2. Replace the first disk (sdd / Cache 2)
    1. Stop the array.
    2. (optional) Physically detach the disk from your system you wish to remove.
    3. Attach the replacement disk (must be equal to or larger than the disk being replaced).
    4. Refresh the Unraid WebGUI when under the Main tab.
    5. Select the pool slot that previously was set to the old disk and assign the new disk to the slot.
    6. Start the array.
    7. Device replacement will start automatically.
  3. Turn off Docker & VMs
  4. Replace second disk (sdh / Cache 3)
    1. Stop the array.
    2. (optional) Physically detach the disk from your system you wish to remove.
    3. Attach the replacement disk (must be equal to or larger than the disk being replaced).
    4. Refresh the Unraid WebGUI when under the Main tab.
    5. Select the pool slot that previously was set to the old disk and assign the new disk to the slot.
    6. Start the array.
    7. Device replacement will start automatically.
  5. Remove unnecessary disk 1 (sdg / Cache)
    1. With the array running type on the console:
    2. btrfs device remove /dev/sdg1 /mnt/cache
  6. Remove unnecessary disk 2 (sdc / Cache 4)
    1. With the array running type on the console:
    2. btrfs device remove /dev/sdc1 /mnt/cache
  7. Turn off Docker & VMs
  8. Import the 2 remaining new disks into the pool
    1. on main click on the first device for that pool and then "remove pool"
    2. back on main, create a new pool with the same name and two slots
    3. assign the pool devices, leave the filesystem set to auto
    4. start the array to import the pool 

Hopefully that's right and has everything I need to do...! Many thanks.

  • Community Expert

Looks OK to me, but you can leave Docker & VMs running during the whole procedure.

  • 2 weeks later...
  • Author

Hi @JorgeB,

 

I think I did everything as per the above steps, but after creating the new pool and adding the 2 1TB SSDs, then restarting the array, I get the error that: "Unmountable: unsupported or no file system".

I tried swapping the 2 cahce drive into position 1 and 2 to see if that helped, but got the same result.

I've attached the syslog here as well. 

Edited by PitRejection2359
removed log.

  • Community Expert

Please post the complete diagnostics and the output from:

btrfs fi show

 

  • Community Expert
  • Solution

Everything looks normal, try rebooting, sometimes it helps, unclear why, and if that doesn't help, try reimporting the pool:

 

on main click on the first device for that pool and then "remove pool"
back on main, create a new pool with the same name and number of slots
assign the pool devices, leave the filesystem set to auto
start the array to import the pool

  • Author

reboot fixed it - thanks very much - I was starting to get worried!

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.