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/chironfsRun: autoreconf -i; ./configure; make
Thanks,
Thiébaud