BTRFS as storage underlying filesystem

63 views
Skip to first unread message

hra...@gmail.com

unread,
Sep 9, 2019, 2:46:20 AM9/9/19
to beegfs-user
I'm seeing a weird problem using BTRFS as a filesystem to hold storage node data. 

It seems there's no Inode space available for the TargetID using BTRFS: 

DeepinScreenshot_select-area_20190906214441.png


















Is there something special to setup on the BTRFS filesystem to be able to use as storage on beegfs? Or is this a bug? 

Jonathon A Anderson

unread,
Sep 9, 2019, 1:15:34 PM9/9/19
to beegfs-user
I expect that BeeGFS hasn't been used / tested / supported on btrfs. btrfs doesn't have inodes, so BeeGFS is probably just picking up the reported inodes as seen in df.

```
$ df -it btrfs
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 0 0 0 - /srv/civilfritz
```

Presumably the btrfs devs have inflexible opinions about reporting zero for inodes; so BeeGFS will probably need to detect btrfs and not check inode availability when determining capacity pools.

~jonathon

________________________________________
From: fhgfs...@googlegroups.com <fhgfs...@googlegroups.com> on behalf of hra...@gmail.com <hra...@gmail.com>
Sent: Friday, September 6, 2019 10:46 PM
To: beegfs-user
Subject: [beegfs-user] BTRFS as storage underlying filesystem

I'm seeing a weird problem using BTRFS as a filesystem to hold storage node data.

It seems there's no Inode space available for the TargetID using BTRFS:


[DeepinScreenshot_select-area_20190906214441.png]<about:invalid#zClosurez>

















Is there something special to setup on the BTRFS filesystem to be able to use as storage on beegfs? Or is this a bug?

--
You received this message because you are subscribed to the Google Groups "beegfs-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fhgfs-user+...@googlegroups.com<mailto:fhgfs-user+...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/fhgfs-user/78c70fa3-4011-4942-9da2-e06343e7a5b0%40googlegroups.com<https://groups.google.com/d/msgid/fhgfs-user/78c70fa3-4011-4942-9da2-e06343e7a5b0%40googlegroups.com?utm_medium=email&utm_source=footer>.

Christian Goll

unread,
Sep 20, 2019, 4:24:04 AM9/20/19
to fhgfs...@googlegroups.com
On 9/9/19 7:15 PM, Jonathon A Anderson wrote:

> I expect that BeeGFS hasn't been used / tested / supported on btrfs. btrfs doesn't have inodes, so BeeGFS is probably just picking up the reported inodes as seen in df.
>
> ```
> $ df -it btrfs
> Filesystem Inodes IUsed IFree IUse% Mounted on
> /dev/sdb1 0 0 0 - /srv/civilfritz
> ```
>
> Presumably the btrfs devs have inflexible opinions about reporting zero for inodes; so BeeGFS will probably need to detect btrfs and not check inode availability when determining capacity pools.
>
> ~jonathon

To spell this correctly out, BeeGFS is detecting if it is running on
BTRFS in order to set the right value of the global variable outSizeFree
, but uses the raw values of statfs.f_files and statfs.f_ffree from the
statfs call. As well statfs.f_files and statfs.f_ffree are 0 on btrfs,
because on BTRFS there free inodes as long as there are free blocks.
This holds also true for xfs, but the statfs on xfs provides some
theoretical values for the inodes, so that BeeGFS works with xfs. A fix
could be, to use f_bfree and f_blocks on BTRFS, but this has to be done
by ThinkParq as its not possible to contribute to the BeeGFS source code.

kind regards,

Christian

Christian Goll

unread,
Oct 25, 2019, 4:44:10 AM10/25/19
to fhgfs...@googlegroups.com
A colleague of mine, with whom I discussed this problem, has proposed an
upstream kernel patch, which enables sane free inode values for btrfs.

See:

https://lore.kernel.org/linux-btrfs/20191024154455.1...@suse.de


kind regards,

Christian

Reply all
Reply to author
Forward
0 new messages