March 13, 20251 yr Until recently I have been using an OCZ Revodrive 350 480GB PCIE SSD as my cache drive. In Windows it shows up as a single 480GB drive, but in Unraid it appears as 4x 120GB drives because I think on Windows its driver makes it appear as one. Anyways, I had it setup as a BTRFS RAID 0, but because it is old and I want a little redundancy, I decided I wanted to replace it with 2x 120GB SATA SSDs. I have added the new 120GB SSDs to the cache pool and set the pool to RAID 1 and would like to now remove the Revodrive all together, which will logically remove 4 of the 6 cache drives. However, from what I understand, this is NOT okay because BTRFS RAID 1 does not just mirror across all disks exactly the same, which seems to be supported by the fact that the cache is reporting a size of 364GB. My question is, how can I remove the 4x 120GB from the Revodrive from the cache safely?
March 13, 20251 yr Community Expert You should be able to remove it using the CLI, but please post the diagnostics first.
March 14, 20251 yr Author Here is the diagnostics. How does one safely remove them with the CLI? diagnostics.zip
March 14, 20251 yr Community Expert Since you are still on v6.12 you can remove them using the GUI, with v7.0 there's currently an issue and the CLI would need to be used. To remove them, just stop the array, remove one of the devices, start the array, wait for the balance to finish, and the device removed, i.e., when the pool read/write activity stops, and then stop the array and remove another device, repeat until all 4 are removed. You can then reimport the pool with the remaing 2 devices as cache1 and cache2, stop the array, if Docker/VM services are using the cache pool disable them, unassign all cache devices, start array to make Unraid "forget" current cache config, stop array, reassign all cache devices (there can't be an "All existing data on this device will be OVERWRITTEN when array is Started" warning for any cache device), re-enable Docker/VMs if needed, start array.
March 15, 20251 yr Author So I removed the first two Revodrive drives one at a time, letting it do a balance after every one. Then I swapped the positions of the new SSDs to the top, one at a time with a balance as well. That left me with the two new SSDs in the cache1 and cache2 positions, and 3 and 4 were still Revodrives. I then went to remove the Revodrive in position 4, but when I started the array again it now says 'Unmountable: Unsupported or no file system' on the cache drives. I tried re-adding the drive I just removed but that didn't change the unmountable status. Not sure why the removal of that drive made it unmountable all of a sudden... Is there anything I can do to fix that? I did take a backup of the cache just before doing the drive shuffling, but I think it only backed up docker related things... Diagnostics.zip Edited March 15, 20251 yr by lanlawr
March 16, 20251 yr Community Expert I did say to make the remaining cache devices 1 and 2 by reimporting the pool in then end, not rearranging devices, post the output from: btrfs fi show
March 16, 20251 yr Author Yeah it looked like I could do that, apparently not, that's on me Label: none uuid: d82a2777-eb96-4d7f-95e1-5658d0b0289f Total devices 1 FS bytes used 412.00KiB devid 1 size 1.00GiB used 126.38MiB path /dev/loop2 warning, device 4 is missing Label: none uuid: 12860a44-93b2-4324-9eab-67904c1378fc Total devices 3 FS bytes used 46.49GiB devid 3 size 111.79GiB used 30.00GiB path /dev/sdh1 devid 7 size 119.24GiB used 38.03GiB path /dev/sde1 *** Some devices missing
March 17, 20251 yr Community Expert Type sfdisk /dev/sdd then type 2048 and Enter and post the output from that, but don't continue
March 17, 20251 yr Author Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 111.79 GiB, 120034123776 bytes, 234441648 sectors Disk model: KINGSTON SA400S3 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Old situation: Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 234441647 234439600 111.8G 83 Linux Type 'help' to get more information. >>> 2048 Created a new DOS disklabel with disk identifier 0x50c9ee1c. Created a new partition 1 of type 'Linux' and of size 111.8 GiB. /dev/sdd1 : 2048 234441647 (111.8G) Linux /dev/sdd2:
March 17, 20251 yr Community Expert Hit CTRL + C to abort, and repeat, but now with 64 instead of 2048
March 18, 20251 yr Author Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdd: 111.79 GiB, 120034123776 bytes, 234441648 sectors Disk model: KINGSTON SA400S3 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Old situation: Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 234441647 234439600 111.8G 83 Linux Type 'help' to get more information. >>> 64 Created a new DOS disklabel with disk identifier 0x3b99b2fc. Created a new partition 1 of type 'Linux' and of size 111.8 GiB. /dev/sdd1 : 64 234441647 (111.8G) Linux /dev/sdd2:
March 18, 20251 yr Community Expert That device it's not going to help, but maybe sdi can, abort that and type sfdisk /dev/sdi then type 2048 and Enter and post the output from that
March 18, 20251 yr Author Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdi: 111.79 GiB, 120034123776 bytes, 234441648 sectors Disk model: OCZ-REVODRIVE350 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes sfdisk is going to create a new 'dos' disk label. Use 'label: <name>' before you define a first partition to override the default. Type 'help' to get more information. >>> 2048 Created a new DOS disklabel with disk identifier 0x235667ee. Created a new partition 1 of type 'Linux' and of size 111.8 GiB. Partition #1 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o: ^C root@StuffNThings:~# sfdisk /dev/sdi Welcome to sfdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Checking that no-one is using this disk right now ... OK Disk /dev/sdi: 111.79 GiB, 120034123776 bytes, 234441648 sectors Disk model: OCZ-REVODRIVE350 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes sfdisk is going to create a new 'dos' disk label. Use 'label: <name>' before you define a first partition to override the default. Type 'help' to get more information. >>> 64 Created a new DOS disklabel with disk identifier 0xc03fe7ed. Created a new partition 1 of type 'Linux' and of size 111.8 GiB. /dev/sdi1 : 64 234441647 (111.8G) Linux /dev/sdi2:
March 18, 20251 yr Community Expert 27 minutes ago, lanlawr said: Partition #1 contains a btrfs signature. This is what I was looking for: now type again: sfdisk /dev/sdi The type 2048 then N to keep the signature, then type write and when done post a new output from btrfs fi show
March 19, 20251 yr Author Label: none uuid: 12860a44-93b2-4324-9eab-67904c1378fc Total devices 3 FS bytes used 46.49GiB devid 3 size 111.79GiB used 30.00GiB path /dev/sdh1 devid 4 size 111.79GiB used 30.03GiB path /dev/sdi1 devid 7 size 119.24GiB used 38.03GiB path /dev/sde1
March 19, 20251 yr Community Expert Now reimport the pool with those 3 devices, unassign all current cache devices, start array to make Unraid "forget" current cache config, stop array, reassign those 3 devices (there can't be an "All existing data on this device will be OVERWRITTEN when array is Started" warning for any cache device), start array and post new diags. P.S. even if the pool mounts normally don't try to add/remove more devices before I can look at the diags
March 19, 20251 yr Author Okay, the cache did mount properly, here are the diagnostics Diagnostics.zip Edited March 19, 20251 yr by lanlawr
March 19, 20251 yr Community Expert Solution Pool profile looks good, you now need to add back the Kingston SSD, since it's no longer part of the pool, so this would be the recommended way forward: -stop array, add the Kingston SSD as device 4 (don't change the slot order for the devices for now), start the array, when that's complete -remove the two remaining OCZ devices, one at a time, when that's done -reimport the pool with just the two remaining devices, unassign all cache devices, start array to make Unraid "forget" current cache config, stop array, change pools slots to 2, reassign the 2 devices as cache1 and cache2 (there can't be an "All existing data on this device will be OVERWRITTEN when array is Started" warning for any cache device), start array and post new diags to confirm all looks good.
June 21, 20251 yr Author Totally forgot to follow up. After following the rest of the instructions properly, everything is all good and the new cache is happy. Thanks!
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.