Published: Wednesday, Jun 8, 2016 Last modified: Monday, Dec 9, 2024

Do NOT btrfs device delete which is the synonymous with btrfs device remove when removing a disk from a btrfs RAID array.

Why?

Deleting the device from the array removes the data from it (as mentioned above), and wipes all BTRFS specific signatures as well.

The device {remove, delete} command is for shrinking arrays, removing failing disks, or for re-purposing individual drives.

Here’s the start of my thread on linux-btrfs, which has all the details.

So how do I split an RAID1 array?

Well, the experts agree that this shouldn’t be done. If you want to take out a mirrored copy, instead btrfs send a snapshot to create another copy somewhere.

However if you really want to do this, you would have physically remove the disk once unmounted. Then it should be mounted next time in a degraded state. And add a new drive and need to be certain to run a balance with -dconvert=raid1 -mconvert=raid1 to clean up anything that got allocated before the new disk was added.

Ideally, it shouldn’t be needed at all, it’s just needed due to a deficiency in the high-level allocator in BTRFS.