On Tue, Aug 30, 2016 at 4:22 AM, ojab // <o...@ojab.ru> wrote: > On Mon, Aug 29, 2016 at 9:05 PM, Chris Murphy <li...@colorremedies.com> wrote: >> On Mon, Aug 29, 2016 at 10:04 AM, ojab // <o...@ojab.ru> wrote: >> What do you get for 'btrfs fi us <mp>' > > $ sudo btrfs fi us /mnt/xxx/ > Overall: > Device size: 3.64TiB > Device allocated: 1.82TiB > Device unallocated: 1.82TiB > Device missing: 0.00B > Used: 1.81TiB > Free (estimated): 1.83TiB (min: 943.55GiB) > Data ratio: 1.00 > Metadata ratio: 2.00 > Global reserve: 512.00MiB (used: 0.00B) > > Data,RAID0: Size:1.81TiB, Used:1.80TiB > /dev/sdb1 928.48GiB > /dev/sdc1 928.48GiB > > Metadata,RAID1: Size:3.00GiB, Used:2.15GiB > /dev/sdb1 3.00GiB > /dev/sdc1 3.00GiB > > System,RAID1: Size:32.00MiB, Used:176.00KiB > /dev/sdb1 32.00MiB > /dev/sdc1 32.00MiB > > Unallocated: > /dev/sdb1 1.01MiB > /dev/sdc1 1.00MiB > /dev/sdd1 1.82TiB
The confusion is understandable because sdd1 is bigger than sdc1, so why can't everything on sdc1 be moved to sdd1? Well, dev add > dev del doesn't really do that, it's going to end up rewriting metadata to sdb1 also, and there isn't enough space. Yes, there's 800MiB of unused space in metadata chunks on sdb1 and sdc1, it should be enough (?) but clearly it wants more than this for whatever reason. You could argue it's a bug or some suboptimal behavior, but because this is a 99% full file system, I'm willing to be it's a low priority bug. Because this is raid0 you really need to add two devices, not just one. > I don't quite understand what exactly btrfs is trying to do: I assume > that block groups should be relocated to the new/empty drive, There is a scant chance 'btrfs replace' will work better here. But still the real problem remains, even if you replace sdc1 with sdd1, sdb1 is still 99% full which in effect makes the file system 99% full because it can't do anymore raid0 on sdb1, and it's not possible to do raid0 chunks on a single sdd1 device. If you can't add a 4th drive, you're going to have to convert to single profile. Keep all three drives attached, 'btrfs balance start -dconvert=single' and then once that's complete you should be able to remove /dev/sdc1, although this will take a while because first conversion will use space on all three drives, and then the removable of sdc1 will have to copy chunks off before it can be removed. > but > during the delete `btrfs fi us` shows > Unallocated: > /dev/sdc1 16.00EiB Known bug, also happens when resizing and conversions. > so deleted partition is counted as maximum possible empty drive and > blocks are relocated to it instead of new/empty drive? (kernel-4.7.2 & > btrfs-progs-4.7.1 here) > Is there any way to see where and why block groups are relocated > during `delete`? The two reasons this isn't working is a.) it's 99% full already and b.) it's raid0, so merely adding one device isn't sufficient. It's probably too full even to do a 3 device balance to restripe raid0 across 3 devices, which is still inefficient because it would leave 50% of the space on sdd as unusable. To do this with uneven devices and use all the space, you're going to have to use single profile. -- Chris Murphy -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html