hi,
I have a system with two filesystems which are both affected by the
notorious enospace bug when there is plenty of unallocated space
available. The system is a raid0 on two 900 GiB disks and an iscsi
single/dup 1.4TiB.
To deal with the problem I use a cronjob that uses fallocate to give me
an advance notice on the issue so I can apply the only workaround that
works for me, which is shrink the fs to the minimum and grow it again.
This has worked fine for a couple of month.
I now updated from 4.2 to 4.4.6 and it appears my cronjob actually
triggers an immediate enospc in the balance after removing the
fallocated file and the shrink/resize workaround does not work anymore.
it is mounted with enospc_debug but that just says "2 enospc in
balance". Nothing else useful in the log.
I had to revert back to 4.2 to get the system running again so it is
currently not available for more testing, but I may be able to do more
tests if required in future.
The cronjob does this once a day:
#!/bin/bash
sync
check() {
date
mnt=$1
time btrfs fi balance start -mlimit=2 $mnt
btrfs fi balance start -dusage=5 $mnt
sync
freespace=$(df -B1 $mnt | tail -n 1 | awk '{print $4 -
50*1024*1024*1024}')
fallocate -l $freespace $mnt/falloc
/usr/sbin/filefrag $mnt/falloc
rm -f $mnt/falloc
btrfs fi balance start -dusage=0 $mnt
time btrfs fi balance start -mlimit=2 $mnt
time btrfs fi balance start -dlimit=10 $mnt
date
}
check /data
check /data/nas
btrfs info:
~ $ btrfs --version
btrfs-progs v4.4
sagan5 ~ $ sudo btrfs fi show
Label: none uuid: e4aef349-7a56-4287-93b1-79233e016aae
Total devices 2 FS bytes used 898.18GiB
devid 1 size 880.00GiB used 473.03GiB path /dev/mapper/data-linear1
devid 2 size 880.00GiB used 473.03GiB path /dev/mapper/data-linear2
Label: none uuid: 14040f9b-53c8-46cf-be6b-35de746c3153
Total devices 1 FS bytes used 557.19GiB
devid 1 size 1.36TiB used 585.95GiB path /dev/sdd
~ $ sudo btrfs fi df /data
Data, RAID0: total=938.00GiB, used=895.09GiB
System, RAID1: total=32.00MiB, used=112.00KiB
Metadata, RAID1: total=4.00GiB, used=3.10GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
sagan5 ~ $ sudo btrfs fi usage /data
Overall:
Device size: 1.72TiB
Device allocated: 946.06GiB
Device unallocated: 813.94GiB
Device missing: 0.00B
Used: 901.27GiB
Free (estimated): 856.85GiB (min: 449.88GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 512.00MiB (used: 0.00B)
Data,RAID0: Size:938.00GiB, Used:895.09GiB
/dev/dm-1 469.00GiB
/dev/mapper/data-linear1 469.00GiB
Metadata,RAID1: Size:4.00GiB, Used:3.09GiB
/dev/dm-1 4.00GiB
/dev/mapper/data-linear1 4.00GiB
System,RAID1: Size:32.00MiB, Used:112.00KiB
/dev/dm-1 32.00MiB
/dev/mapper/data-linear1 32.00MiB
Unallocated:
/dev/dm-1 406.97GiB
/dev/mapper/data-linear1 406.97GiB
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html