Bug#613805: RFP: nfs-ganesha -- NFS server running in User Space
* Package name : nfs-ganesha
* URL : http://nfs-ganesha.sourceforge.net/
* License : LGPL
Programming Lang: C
Description : NFS server running in User Space
NFS-GANESHA is a NFS server running in User Space. It is available under the LGPL license.
It has been designed to meet two goals:
* providing very large metadata and data caches (up to millions of records)
* providing NFS exports to various files systems and namespaces (a set of data organized as trees, with a structure similar to a files system)
NFS-GANESHA uses dedicated backend modules called FSAL (which stand for File System Abstraction Layer) that provided the product with a unique API (used internally) to access the underlying namespace. The FSAL module is basically the "glue" between the namespace and the other part of NFS-GANESHA
Available FSALs are:
* FSAL/XFS : provides NFS frontend to XFS filesystems
* FSAL/ZFS : provides with a way to export ZFS's pool with NFS-GANESHA
* FSAL/LUSTRE : provides NFS frontend to LUSTRE filesystems (Lustre 2 or higher is required for this FSAL)
* FSAL/PROXY: the module is in fact a NFSv4 client. Used with NFS-GANESHA, it turns the NFS server into a NFS proxy server. This module is still in its alpha version
* FSAL/FUSELIKE: many product use FUSE to have NFS export. Often they resided in the user space. NFS-GANESHA is in user space too, and via this module it allow user space product to have NFS export from user space, without explicit kernel communication. The module use the same interface as the classical fuse binding: if your application have a fuse binding module ready, you'll need nothing else to interface it with NFS-GANESHA. For this specific use, the NFS-GANESHA's engine is wrap in a library to be use and compile with your proprieritary application.
* FSAL/SNMP: information available via SNMP are organized as trees, they constitute a namespace. This backend module provides with the capability to export SNMP information data via NFS and browse them in a "procfs-like" way.
* FSAL/POSIX: this module is based on the well known POSIX API which is included in the LibC. It allows NFS export for anything accessible via the POSIX interface. POSIX API addresses files and directories by their names (which are volatile identifiers, they may change if object is renamed). FSAL API uses persistent, opaque, unique identifier called handles. Because a this, FSAL/POSIX use the service of a PostGresQL database to perform "reverse lookup" from handle to filename.