Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Julian Taylor <jtaylor.debian@googlemail.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: enospace regression in 4.4
Date: Tue, 12 Apr 2016 17:52:57 +0200	[thread overview]
Message-ID: <570D19D9.8030702@googlemail.com> (raw)
In-Reply-To: <570CCCFB.5000104@googlemail.com>

smaller testcase that shows the immediate enospc after fallocate -> rm,
though I don't know if it is really related to the full filesystem
bugging out as the balance does work if you wait a few seconds after the
balance.
But this sequence of commands did work in 4.2.

 $ sudo btrfs fi show /dev/mapper/lvm-testing
Label: none  uuid: 25889ba9-a957-415a-83b0-e34a62cb3212
	Total devices 1 FS bytes used 225.18MiB
	devid    1 size 5.00GiB used 788.00MiB path /dev/mapper/lvm-testing

 $ fallocate -l 4.4G test.dat
 $ rm -f test.dat
 $ sudo btrfs fi balance start -dusage=0 .
ERROR: error during balancing '.': No space left on device
There may be more info in syslog - try dmesg | tail


On 04/12/2016 12:24 PM, Julian Taylor wrote:
> 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
> 


  reply	other threads:[~2016-04-12 15:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-12 10:24 enospace regression in 4.4 Julian Taylor
2016-04-12 15:52 ` Julian Taylor [this message]
2016-04-12 18:09   ` Henk Slager
2016-04-12 19:01     ` Julian Taylor
2016-04-13  3:13   ` Duncan
2016-04-13 11:56   ` Henk Slager

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=570D19D9.8030702@googlemail.com \
    --to=jtaylor.debian@googlemail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox