Skip to contentSkip to conversation

Wrong df Avail space on three disk RAID1 when empty

DISCUSSION Marco Lorenzo Crociani 2 participants 2 messages Feb 2, 2016 Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hi,
df on btrfs RAID1 fs on 3 disks (they are RAID0 hardware, two disk, arrays but its not important right?) show wrong avail space when empty

# uname -a
Linux kvm4.prisma 4.4.0-2.el7.elrepo.x86_64 #1 SMP Tue Jan 26 13:06:01 EST 2016 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.4

# btrfs fi show
Label: 'data' uuid: 4421464d-479c-44c4-9f01-8df0f7d05bd2
Total devices 3 FS bytes used 640.00KiB
devid 1 size 7.28TiB used 2.00GiB path /dev/sdb
devid 2 size 7.28TiB used 2.01GiB path /dev/sdc
devid 3 size 7.28TiB used 2.01GiB path /dev/sdd

# btrfs fi df /data
Data, RAID1: total=1.00GiB, used=512.00KiB
System, RAID1: total=8.00MiB, used=16.00KiB
Metadata, RAID1: total=2.00GiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B

I expect to get from df -h some like
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 17M 11T 1% /data
but I get:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 17M 7,3T 1% /data

If I fill the fs

# ls -laht
totale 11T
-rw-r--r--.  1 root root 921G  1 feb 16.17 prova10
drwxr-xr-x.  1 root root  134  1 feb 15.23 .
-rw-r--r--.  1 root root 1,0T  1 feb 14.00 prova9
-rw-r--r--.  1 root root 1,0T  1 feb 13.07 prova8
-rw-r--r--.  1 root root 1,0T  1 feb 12.20 prova7
-rw-r--r--.  1 root root 1,0T 28 gen 21.50 prova6
-rw-r--r--.  1 root root 1,0T 28 gen 21.08 prova5
-rw-r--r--.  1 root root 1,0T 28 gen 20.28 prova4
-rw-r--r--.  1 root root 1,0T 28 gen 19.50 prova3
-rw-r--r--.  1 root root 1,0T 28 gen 19.13 prova2
-rw-r--r--.  1 root root 1,0T 28 gen 18.37 prova1
-rw-r--r--.  1 root root 1,0T 28 gen 18.02 prova0
dr-xr-xr-x. 18 root root 4,0K 28 gen 15.30 ..

I get:

Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 11T 256K 100% /data

# btrfs fi df /data/
Data, RAID1: total=10.90TiB, used=10.90TiB
System, RAID1: total=8.00MiB, used=1.50MiB
Metadata, RAID1: total=13.00GiB, used=11.24GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
Signature · 7 lines
Marco Crociani
Prisma Telecom Testing S.r.l.
via Petrocchi, 4  20127 MILANO  ITALY
Phone:  +39 02 26113507
Fax:  +39 02 26113597
e-mail:  [email protected]
web:  http://www.prismatelecomtesting.com
#1 lore raw
Quoted 26 lines · Marco Lorenzo Crociani

Hi,
df on btrfs RAID1 fs on 3 disks (they are RAID0 hardware, two disk, arrays but its not important right?) show wrong avail space when empty

# uname -a
Linux kvm4.prisma 4.4.0-2.el7.elrepo.x86_64 #1 SMP Tue Jan 26
13:06:01 EST 2016 x86_64 x86_64 x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.4

# btrfs fi show
Label: 'data' uuid: 4421464d-479c-44c4-9f01-8df0f7d05bd2
Total devices 3 FS bytes used 640.00KiB
devid 1 size 7.28TiB used 2.00GiB path /dev/sdb
devid 2 size 7.28TiB used 2.01GiB path /dev/sdc
devid 3 size 7.28TiB used 2.01GiB path /dev/sdd

# btrfs fi df /data
Data, RAID1: total=1.00GiB, used=512.00KiB
System, RAID1: total=8.00MiB, used=16.00KiB
Metadata, RAID1: total=2.00GiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B
Quoted 6 lines

I expect to get from df -h some like
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 17M 11T 1% /data
but I get:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 17M 7,3T 1% /data

I've noticed this kind of error, too, although not to such a great
degree. The space estimation is definitely broken, although not to such a bad degree as it used to be.

There's a relatively complex (but implementable) algorithm that can
be used to determine the remaining usable space quite precisely. I'm guessing that that's not in use here. :)

I'll try to dig out the actual formula this evening and post it to
the list for reference. (It's the formula that's used in the btrfs-usage tool[1], if anyone wants to see the JavaScript implementation).

Hugo.

[1] http://carfax.org.uk/btrfs-usage/

Quoted 29 lines

If I fill the fs

# ls -laht
totale 11T
-rw-r--r--.  1 root root 921G  1 feb 16.17 prova10
drwxr-xr-x.  1 root root  134  1 feb 15.23 .
(quoted diff) +0 -10
-rw-r--r--.  1 root root 1,0T  1 feb 14.00 prova9
-rw-r--r--.  1 root root 1,0T  1 feb 13.07 prova8
-rw-r--r--.  1 root root 1,0T  1 feb 12.20 prova7
-rw-r--r--.  1 root root 1,0T 28 gen 21.50 prova6
-rw-r--r--.  1 root root 1,0T 28 gen 21.08 prova5
-rw-r--r--.  1 root root 1,0T 28 gen 20.28 prova4
-rw-r--r--.  1 root root 1,0T 28 gen 19.50 prova3
-rw-r--r--.  1 root root 1,0T 28 gen 19.13 prova2
-rw-r--r--.  1 root root 1,0T 28 gen 18.37 prova1
-rw-r--r--.  1 root root 1,0T 28 gen 18.02 prova0

dr-xr-xr-x. 18 root root 4,0K 28 gen 15.30 ..

I get:

Filesystem Size Used Avail Use% Mounted on
/dev/sdb 11T 11T 256K 100% /data

# btrfs fi df /data/
Data, RAID1: total=10.90TiB, used=10.90TiB
System, RAID1: total=8.00MiB, used=1.50MiB
Metadata, RAID1: total=13.00GiB, used=11.24GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
Signature · 4 lines
Hugo Mills             | "He's a nutcase, you know. There's no getting away
hugo@... carfax.org.uk | from it -- he'll end up with a knighthood"
http://carfax.org.uk/  |
PGP: E2AB1DE4          |                         Lexy, The League of Gentlemen