I have a 10TB file system with a parity file for a snapraid. However, I can suddenly not extend the parity file despite the file system only being about 50% filled - I should have 5TB of unallocated space. When trying to extend the parity file, fallocate() just returns ENOSPC, i.e. that the disk is full.

Machine was originally a Debian 8 (Jessie) but after I detected the issue and no btrfs tool did show any errors, I have updated to Debian 9 (Snatch) to get a newer kernel and newer btrfs tools.

pwm@europium:/mnt$ btrfs --version
btrfs-progs v4.7.3
pwm@europium:/mnt$ uname -a
Linux europium 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2 (2017-06-26) x86_64 GNU/Linux




pwm@europium:/mnt/snap_04$ ls -l
total 4932703608
-rw------- 1 root root     319148889 Jul  8 04:21 snapraid.content
-rw------- 1 root root     283115520 Aug  1 04:08 snapraid.content.tmp
-rw------- 1 root root 5050486226944 Jul 31 17:14 snapraid.parity



pwm@europium:/mnt/snap_04$ df .
Filesystem      1K-blocks       Used  Available Use% Mounted on
/dev/sdg1      9766434816 4944614648 4819831432  51% /mnt/snap_04



pwm@europium:/mnt/snap_04$ sudo btrfs fi show .
Label: 'snap_04'  uuid: c46df8fa-03db-4b32-8beb-5521d9931a31
        Total devices 1 FS bytes used 4.60TiB
        devid    1 size 9.09TiB used 9.09TiB path /dev/sdg1

Compare this with the second snapraid parity disk:
pwm@europium:/mnt/snap_04$ sudo btrfs fi show /mnt/snap_05/
Label: 'snap_05'  uuid: bac477e3-e78c-43ee-8402-6bdfff194567
        Total devices 1 FS bytes used 4.69TiB
        devid    1 size 9.09TiB used 4.70TiB path /dev/sdi1

So on one parity disk, devid is 9.09TiB used - on the other only 4.70TiB.
While almost the same amount of file system usage. And almost identical usage pattern. It's an archival RAID, so there is hardly any writes to the parity files because there are almost no file changes to the data files. The main usage is that the parity file gets extended when one of the data disks reaches a new high water mark.

The only file that gets regularly rewritten is the snapraid.content file that gets regenerated after every scrub.



pwm@europium:/mnt/snap_04$ sudo btrfs fi df .
Data, single: total=9.08TiB, used=4.59TiB
System, DUP: total=8.00MiB, used=992.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=6.00GiB, used=4.81GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=512.00MiB, used=0.00B



pwm@europium:/mnt/snap_04$ sudo btrfs filesystem du .
     Total   Exclusive  Set shared  Filename
   4.59TiB     4.59TiB           -  ./snapraid.parity
 304.37MiB   304.37MiB           -  ./snapraid.content
 270.00MiB   270.00MiB           -  ./snapraid.content.tmp
   4.59TiB     4.59TiB       0.00B  .



pwm@europium:/mnt/snap_04$ sudo btrfs filesystem usage .
Overall:
    Device size:                   9.09TiB
    Device allocated:              9.09TiB
    Device unallocated:              0.00B
    Device missing:                  0.00B
    Used:                          4.60TiB
    Free (estimated):              4.49TiB      (min: 4.49TiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,single: Size:9.08TiB, Used:4.59TiB
   /dev/sdg1       9.08TiB

Metadata,single: Size:8.00MiB, Used:0.00B
   /dev/sdg1       8.00MiB

Metadata,DUP: Size:6.00GiB, Used:4.81GiB
   /dev/sdg1      12.00GiB

System,single: Size:4.00MiB, Used:0.00B
   /dev/sdg1       4.00MiB

System,DUP: Size:8.00MiB, Used:992.00KiB
   /dev/sdg1      16.00MiB

Unallocated:
   /dev/sdg1         0.00B



pwm@europium:~$ sudo btrfs check /dev/sdg1
Checking filesystem on /dev/sdg1
UUID: c46df8fa-03db-4b32-8beb-5521d9931a31
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 5057294639104 bytes used err is 0
total csum bytes: 4529856120
total tree bytes: 5170151424
total fs tree bytes: 178700288
total extent tree bytes: 209616896
btree space waste bytes: 182357204
file data blocks allocated: 5073330888704
 referenced 5052040339456



pwm@europium:~$ sudo btrfs scrub status /mnt/snap_04/
scrub status for c46df8fa-03db-4b32-8beb-5521d9931a31
scrub started at Mon Jul 31 21:26:50 2017 and finished after 06:53:47
        total bytes scrubbed: 4.60TiB with 0 errors



So where have my 5TB disk space gone lost?
And what should I do to be able to get it back again?

I could obviously reformat the partition and rebuild the parity since I still have one good parity, but that doesn't feel like a good route. It isn't impossible this might happen again.

/Per W
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to