ChironFS clean up and update

69 views
Skip to first unread message

twek...@gmail.com

unread,
Aug 12, 2015, 11:27:21 AM8/12/15
to chironfs-forum
Hi there,

For the last few weeks, I've been working on patching ChironFS. What started
as a simple compilation error fix ended up being almost a full rewrite.
Below is a summary of the main modifications:

 * Clean up of configure.ac and Makefile.am. Most of the tests were hand
   written when it really should have been autotools's job (e.g., FUSE
   CFLAGS and LIBS).

 * Option parsing rewrite. It now uses the option parsing functions provided
   by FUSE itself. This is cleaner and the help section is automatically
   synchronised with all available FUSE options.

 * Remove wrongly implemented operations (*xattr, statfs). Add create
   operation.

 * General clean up. Lots of code has simply been removed. Recent FreeBSD
   and NetBSD now implement the functions/behaviour that was missing.

 * The hidden debug mode has been made accessible. When using:
   `./configure --enable-debug`
   The debug messages will be visible in /tmp/chironfs-dbg.txt. The message
   format has also been cleaned up and should significantly help in case
   of error.

 * The permissions model has been changed. Instead of trying to emulate the
   operating system behaviour (which is complex and may lead to security
   issues (see issue #6 and #8 on google code)), it now drops its privileges
   to the calling user/group. The kernel will do all the work to determine
   if an access should be granted or denied.

 * Add two statistics per replica: number of read and number of write. These
   are accessible via the chironctl tool.

 * The control interface has been changed. In the previous version, two pipes
   were used to communicate with a fork'ed child (chironctl). If the child
   died, it was impossible to reaccess the control interface. Now, the '-c'
   option will create a UNIX socket. This socket can be opened/used multiple
   times to access the file system information. Below is an example of the
   control tool output:

    $ chironctl ./ctl
    Number of replicas: 2
    Replicas:
            [0] /chironfs/test/t1
                    status: enabled
                    priority: high
                    #read: 5
                    #write: 2
            [1] /chironfs/test/t2
                    status: enabled
                    priority: low
                    #read: 0
                    #write: 2

 * Added some basic tests within the `test` directory. These can be run via
   the `make check` command.


This code has been succesfully tested on Fedora 22, Ubuntu 15.04 and
FreeBSD 10.1.

If you are a ChironFS user, I'd be keen to hear some feedback from you.
Simply running the tests (`make check`) will help a lot!

Clone: https://github.com/tweksteen/chironfs
Run: autoreconf -i; ./configure; make

Thanks,
Thiébaud

twek...@gmail.com

unread,
Aug 13, 2015, 1:56:59 PM8/13/15
to chironfs-forum
Reply all
Reply to author
Forward
0 new messages