Skip to content
Jim Lieb edited this page Dec 9, 2013 · 3 revisions

Table of Contents

Version 2.0

This page describes the details of the new features of Version 2.0. For an overview of the release, consult the Version 2.0 Release Notes. The key features that affect the installation and configuration are:

  • Multiple, simultaneous backend filesystem drivers, aka FSALs, as loadable modules
  • NFSv4.1 support with object and/or file layout pNFS support for clustered or distributed filesystem backends.
  • A DBUS based admin interface for control, statistics, monitoring
  • Full 9P protocol support

Loadable FSAL Modules

The default install location for fsals in a local, 64 bit build is /usr/local/lib64/ganesha. The filename is libfsalxxx.so where xxx is the name of the fsal, e.g. /usr/local/lib64/ganesha/libfsalproxy.so is the module for the PROXY FSAL. The prefix can be changed by a command line argument to cmake. An RPM build uses /usr/lib64/ganesha.

The server finds the FSAL modules in the FSAL block of the configuration file. There is a sub-block for each FSAL with the block's identifier beding the name of the FSAL to be used in the EXPORT block. For example:

FSAL
{
  VFS {
        FSAL_Shared_Library = "/usr/local/lib64/ganesha/libfsalvfs.so";
  }
  PROXY {
        FSAL_Shared_Library = "/usr/local/lib64/ganesha/libfsalproxy.so";
  }

}

will load the VFS and PROXY FSALs. They can now be referenced in EXPORT blocks as in this abbreviate case:

EXPORT
{
  # Export Id (mandatory)
  Export_Id = 77 ;
  
  # Exported path (mandatory)
  Path = "/home/tmp";

  # Exporting FSAL
  FSAL = "VFS";

  # Pseudo path for NFSv4 export (mandatory)
  Pseudo = "/temp";
  
  ...
}

which exports /home/tmp as /temp and uses the VFS FSAL to do it. Since this is the VFS FSAL which is for local Posix filesystems, the Path is the path the server or any other program would use on the local filesystem.

NOTE:
There does not need to be an export for every loaded FSAL. In this case, PROXY is loaded but not used.

pNFS Support

The server has the core pNFS support built in. Whether pNFS is supported for an export is determined by the FSAL providing the filesystem and the EXPORT entry for that filesystem export in the configuration file. By default, pNFS is not supported so that pNFS unaware FSALs respond with the correct protocol reply. Each FSAL has its own parameters to enable and configure pNFS.

DBus Administration

DBus is a local system IPC/RPC service present on all Linux distributions and available for other UNIX-like systems. We use it for the following services:

  • Logging component and severity level setting
  • Statistics gathering
  • Administration.
See the DBus Interface page for details.

9P Protocol Support

Plan 9 support is enabled with a cmake build option. This does not require any extra libraries or source files. The 9P Protocol page explains how to build and configure both the server and a Linux client.

Documentation

The server uses file system "backend", called the File System Abstraction Layer (FSAL) to manage the low level details of the filesystems NFS Ganesha exports. These backends are modules that are loaded at startup based on configuration file parameters. Backend (FSAL) documentation is located in FSAL Support.

The statistics export via SNMP or a telnet port has been replaced by a DBUS interface. This will integrate it better with current and future Linux server environments. See the DBUS Interface for details.

With all these new features comes lots of new or changed configuration options. See the Configuration File for details.

Clone this wiki locally