I noticed that if I have single-device allocation for data in a
multi-device btrfs filesystem, a balance operation will convert the data
to RAID0. This is true even if '-d single' is specified explicitly when
creating the filesystem. Then it wants to continue using RAID0 for
future data allocations, and I run out of space once there's no longer
two drives with space available.
I hit this problem when adding to an existing single-device filesystem.
I ran a balance to mirror my metadata on multiple drives, and that had
the side-effect of not letting me use all my space, since one device is
considerably bigger than the other two combined.
$ sudo btrfs f show
Label: 'Aux' uuid: 35a08a97-4f96-4549-b7c0-18380bbf00e0
Total devices 3 FS bytes used 510.78GB
devid 3 size 133.09GB used 131.01GB path /dev/sda4
devid 1 size 465.76GB used 310.01GB path /dev/sdb1
devid 2 size 74.52GB used 73.00GB path /dev/sdc1
Btrfs Btrfs v0.19
$ btrfs f df /aux
Data, RAID0: total=357.00GB, used=357.00GB
Data: total=153.00GB, used=152.91GB
System, RAID1: total=8.00MB, used=56.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=2.00GB, used=896.57MB
I think btrfs should fall back to single-device allocation when striped
allocation fails. Does that sound like a reasonable policy? Without such
a change, there can be a lot of reported free space that can't be used.
--
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