[Gluster-devel] Newbie general question about the native FUSE client in glusterfs

Federico Strati strati.federico at gmail.com
Tue May 19 08:32:37 UTC 2020


Dear all,

I just started to work for a company named A3Cube who produces medium 
size parallel supercomputers.

I'm a complete newbie in glusterfs and FUSE.

The goal is to optimize performances in gluster using the FUSE native 
client as this offers a POSIX interface.

1) Any pointer on optimisation techniques and methods with FUSE would be 
appreciated.

The use of libgfapi is ruled out as we must pass via a FUSE mounted 
device to have a POSIX interface.

2) I had also a quick look at the gluster code base and I'm puzzled on 
how exactly the native FUSE client works.

In particular, from my understanding, the relevant code for FUSE 
interaction is in:

/xlators/mount/fuse/src and /contrib/fuse-include, /contrib/fuse-lib, 
/contrib/fuse-util

And the interaction is happening opening directly the /dev/fuse file 
descriptor, talking to the kernel device FUSE

and NOT using the library libfuse.

Am I wrong? Is the library libfuse used substantially?

3) As far as I can tell gluster uses the 7.24 FUSE kernel interface, 
which is quite one of the latest.

FUSE was updated from 2.x to 3.x recently, does gluster uses the latest 
libfuse 3.x ?

In summary, any pointer on the architecture and structure of the FUSE 
client and interface in gluster would be welcome.

Pardon me my newbie questions (I just started looking at glusterfs).

Thanks in advance

Kind regards

Federico Strati



More information about the Gluster-devel mailing list