NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

FUSE on NetBSD status report (and glusterfs too)



Hello everybody

Here is a quick status report about FUSE status on NetBSD. 

First, some background. We have:

- PUFFS, the NetBSD native userspace filesystem API. It is a disabled by
defautl kernel option on netbsd-5, and it is enabled by default in
-current.

- FUSE, the Linux (and others) native userspace filesystem API. It can
be used at 3 distinct levels: high level libfuse, low level libfuse, and
kernel (no use of libfuse).

- librefuse, is the NetBSD implementation of libfuse high level API.
This has been stable for a while, but if you are looking for a
filesystem that uses libfuse low level API or kernel API, this is not
for you

- libperfuse is the NetBSD implementation of FUSE kernel API, it works
in userspace and will translate PUFFS requests in FUSE requests.
libperfuse allows any FUSE filesytem to work on NetBSD, either using the
kernel API, or using libfuse on top of libperfuse, for libfuse low level
and high level APIs. 

I have been developping libperfuse for a while and it is getting quite
usable. I have been able to run glusterfs on top of libperfuse, with
nice high availability setup (just like raid 0 but for a distributed
file system). The client talks to 2 servers, you kill one without a
hitch on the client. You restart your server and kill the other one, it
still works. Neat.

How to use it?

- On NetBSD-current, you have PUFFS enabled by default and libperfuse
shiped with the base system. glusterfs is available from
pkgsrc/filesystems/glusterfs

- On netbsd-5, you need a kernel with latest netbsd-5 sources, PUFFS
enabled (for a glusterfs server, you need options EXTATTR and
EXTATTR_AUTOSTART), and a few patches that are still pending pullups. As
of today:
http://releng.netbsd.org/cgi-bin/req-5.cgi?show=1604
http://releng.netbsd.org/cgi-bin/req-5.cgi?show=1623
http://releng.netbsd.org/cgi-bin/req-5.cgi?show=1624
http://releng.netbsd.org/cgi-bin/req-5.cgi?show=1633

Note that pullup 1604 is still in a broken state: kernel builds fine
with it but the entire NetBSD build fails (problem in librump). This has
to be fixed, but we only need the kernel here. Expect EIO during plain
filesystem operation if you go without the patch.

Pullup 1623 is only useful if you want POSIX locks to be supported, you
can do without it otherwise.

Pullup 1624 is of interest for a glusterfs server but you do not need it
on the client or for other filesystems.

You can live without pullup 1633 on small setups with low workloads, but
things will stuck without it if usage increase.

What is to be done

- I started playing with gluster elasticity (glusterd daemon), and I
know there are bugs to fix.

- Pullup 1604 needs to be fixed.

- I have no bug left on my list for perfused. I consider it being stable
software now.

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index