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          |

Attachment: signature.asc
Description: Digital signature

Reply via email to