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 -- 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
