integration/fuse/README.md
Mount an Alluxio file system using FUSE.
This project uses jnr-fuse for FUSE on Java.
The alluxio-integration-fuse module is automatically built with Alluxio when the fuse maven
profile is active. This profile is automatically activated when maven detects a JDK 8 or newer.
After having configured and started the Alluxio cluster:
$ ./bin/alluxio-fuse.sh mount mount_point [alluxio_path]
Note: the user running the script must own the mount point and have rw permissions on it.
$ ./bin/alluxio-fuse.sh umount mount_point
$ ./bin/alluxio-fuse.sh stat
Edit bin/alluxio-fuse.sh and add your specific Alluxio client options in the
ALLUXIO_JAVA_OPTS variable.
Most basic operations are supported. However, due to Alluxio implicit characteristics, note that:
open operations on the file must be read only, or they will fail.Due to the conjunct use of FUSE and JNR, the performance of the mounted file system is expected
to be considerably worse than what you would see by using the alluxio-core-client directly.
Most of the problems come from the fact that there are several memory copies going on for each call
on read or write operations, and that FUSE caps the maximum granularity of writes to 128KB. This
could be probably improved by a large extent by leveraging the FUSE cache write-backs feature
introduced in kernel 3.15 (not supported yet by libfuse 2.x userspace libs).