On Sun, Nov 29, 2015 at 02:07:54PM +0100, Marc Haber wrote: > Hi, > > I have a banana pi with a btrfs filesystem of 5 GB in size, which > frequently runs out of space (lots of snapshots). This is currently > again the case: > > [27/524]mh@banana:~$ sudo btrfs balance start / > ERROR: error during balancing '/' - No space left on device > There may be more info in syslog - try dmesg | tail > [28/525]mh@banana:~$ sudo btrfs balance start / -dlimit=3 > [sudo] password for mh on banana: > ERROR: error during balancing '/' - No space left on device > There may be more info in syslog - try dmesg | tail > [29/526]mh@banana:~$ sudo btrfs balance start / -dlimit=3 > ERROR: error during balancing '/' - No space left on device > There may be more info in syslog - try dmesg | tail > [30/526]mh@banana:~$ sudo btrfs balance start / -dusage=0 > Done, had to relocate 0 out of 8 chunks > [31/527]mh@banana:~$ sudo btrfs balance start / -dlimit=3 > ERROR: error during balancing '/' - No space left on device > There may be more info in syslog - try dmesg | tail > [32/528]mh@banana:~$ sudo btrfs fi show / > Label: none uuid: ada6b7f5-98d6-4fee-a3a3-b73bd152ff6c > Total devices 1 FS bytes used 3.37GiB > devid 1 size 6.89GiB used 4.22GiB path /dev/mapper/banana-root > > btrfs-progs v4.3 > [33/529]mh@banana:~$ sudo btrfs fi df / > Data, single: total=3.41GiB, used=3.25GiB > System, DUP: total=32.00MiB, used=16.00KiB > Metadata, DUP: total=384.00MiB, used=121.75MiB > GlobalReserve, single: total=48.00MiB, used=0.00B > [34/530]mh@banana:~$ uname -a > Linux banana 4.3.0-zgbpi-armmp-lpae+ #2 SMP Sat Nov 7 13:07:34 UTC 2015 > armv7l GNU/Linux > [36/532]mh@banana:~$ df -h / > Filesystem Size Used Avail Use% Mounted on > /dev/mapper/banana-root 6.9G 3.6G 2.9G 56% / > [37/533]mh@banana:~$ > > The first kernel that was ever booted on the device was 4.1, I am > therefore reasonably sure that the filesystem was also created with a > recent kernel. Is there any possibility to find out about the kernel > version that a filesystem was created with? > > However, the FAQ > https://btrfs.wiki.kernel.org/index.php/FAQ#Help.21_Btrfs_claims_I.27m_out_of_space.2C_but_it_looks_like_I_should_have_lots_left.21 > suggests that for small filesystems (<16 GB), the best solution would > be to upgrade to at least 2.6.37 and recreate the filesystem. 2.6.37 > is ancient, from 2011, so I am pretty sure that the filesystem _was_ > created at least with a kernel more recent than that.
You missed the most important thing from that paragraph: Use mixed block groups. That's "mkfs.btrfs --mixed ..." (which I realise is missing from the text, and I'll be adding it after I send this email). > My normal way to recover from this situation is to btrfs add a new > device, btrfs balance, btrfs --convert=single --force balance, btfs > device remove, btr balance start -mconvert=dup --force and finally > balance start again. > > Is there any solution to solve this more elegantly? Recreate the FS with --mixed, and that should deal with it. Hugo. -- Hugo Mills | There isn't a noun that can't be verbed. hugo@... carfax.org.uk | http://carfax.org.uk/ | PGP: E2AB1DE4 |
signature.asc
Description: Digital signature