On 2019/2/11 上午2:44, Chris Murphy wrote: > On Sat, Feb 9, 2019 at 3:36 AM Jakob Schöttl wrote: >> >> Replace device 2 with device 3: >> >> mount -o degraded /dev/loop1 /mnt >> btrfs filesystem show # to get devid of device 2 >> btrfs replace start -Br 2 /dev/loop3 /mnt >> btrfs replace status /mnt # check success >> umount /mnt > > The first command causes the creation of metadata and system chunk > using single profile, on loop1, and even after a replace, both devices > know that there is a single and required chunk on loop1. So subsequent > degraded mount fails because the volume was not fully redundant. > > The missing step is between 'btrfs replaced start' completing, and > umount. There needed to be at least a 'btrfs fi us' to check if there > are any single chunks and to convert them with 'btrfs balance start > -dconvert=raid1,soft -mconvert=raid1,soft' where soft is only possible > if there were no data writes while degraded; if there were degraded > writes, a scrub is also necessary to make sure any single mirror raid1 > chunk writes to the degraded device are replicated to the replacement. > > Yep - kinda ugly. And not intuitive. But that's the present status. Not exactly. Currently the problem is, there is extra DUP sys/meta/data chunks created. So despite the SINGLE chunks, we still can't mount it degraded. IIRC there is some patch trying to address the SINGLE problem, but the DUP one seems to be something new. Thanks, Qu > >