Re: Issues when volume is full

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 4, 2010 at 2:10 PM, Josef Bacik <josef@xxxxxxxxxx> wrote:
> On Thu, Mar 04, 2010 at 01:58:22PM -0700, Robert LeBlanc wrote:
>> I've been using btrfs as a spool space on our back-up server to get
>> familiar with it and things work fine until the volume fills up. Our
>> backup software (bacula) usually spools until the volume is full, then
>> despools and respools, etc. With btrfs, it fills up and bacula thinks
>> there is still space so it keeps trying and then finally errors out. I
>> thought this was a problem because I was using compression, but I've
>> repeated the problem without compression. Doing some tests, this is
>> what I've found:
>>
>> lsddomainsd:/spool# dd if=/dev/zero of=junk bs=1024000
>> dd: writing `junk': No space left on device
>> 522163+0 records in
>> 522162+0 records out
>> 534693888000 bytes (535 GB) copied, 6026.85 s, 88.7 MB/s
>> lsddomainsd:/spool# ls
>> junk
>> lsddomainsd:/spool# df -h
>> Filesystem            Size  Used Avail Use% Mounted on
>> /dev/mapper/lsddomain-root
>>                       6.5G  3.5G  2.7G  58% /
>> tmpfs                 2.0G     0  2.0G   0% /lib/init/rw
>> udev                   10M  172K  9.9M   2% /dev
>> tmpfs                 2.0G     0  2.0G   0% /dev/shm
>> /dev/sda1             228M   92M  124M  43% /boot
>> /dev/mapper/lsddomain-home
>>                       4.6G  138M  4.5G   3% /home
>> 192.168.58.2:/backup/bacula
>>                       2.5T  996G  1.5T  40% /backup
>> /dev/mapper/spool     500G  499G  1.6G 100% /spool
>> lsddomainsd:/spool# dd if=/dev/zero of=junk2 bs=1024000
>> dd: writing `junk2': No space left on device
>> 1+0 records in
>> 0+0 records out
>> 0 bytes (0 B) copied, 0.0704083 s, 0.0 kB/s
>> lsddomainsd:/spool# dd if=/dev/zero of=junk3 bs=1024000
>> dd: writing `junk3': No space left on device
>> 1+0 records in
>> 0+0 records out
>> 0 bytes (0 B) copied, 0.108706 s, 0.0 kB/s
>> lsddomainsd:/spool# ls -lh
>> total 498G
>> -rw-r--r-- 1 root root 498G 2010-03-04 09:54 junk
>> -rw-r--r-- 1 root root    0 2010-03-04 13:45 junk2
>> -rw-r--r-- 1 root root    0 2010-03-04 13:45 junk3
>> lsddomainsd:/spool#
>>
>> So even though the volume is full it shows space left. Is this
>> supposed to happen? I don't remember seeing any space left on other
>> file systems and I've filled quite a few.
>>
>
> Yeah this is an unfortunate side-affect of how we currently do df.  We plan on
> changing it, but currently it just shows data used in the used column, so the
> 1.6G will be whats been reserved for metadata space.  IIRC the consensus was to
> count the used amount from all spaces, and then just add the free unallocated
> space to that, but it will still likely end up with "Avail" having what is free
> for metadata space, but not actually able to be used as data.  Thanks,
>
> Josef
>

So is it possible to prevent the creation of metadata if there is no
data blocks left. I wonder if that would solve this issue. Maybe if
Bacula sees it can't write a file at all, it then goes into
despooling. I wonder if other programs (cp, rsync, etc) will run into
the same problem when the volume is full. I know it's a corner case,
so I'm not going to press the issue when btrfs is not close to stable.
Just an issue I came across and thought I'd get some additional info
about.

Robert LeBlanc
Life Sciences & Undergraduate Education Computer Support
Brigham Young University
--
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

[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux