Accessing Data with NFS v4

Describes how HPE Ezmeral Data Fabric works with the NFS v4 protocol. Presents an overview of the process flow to read and write HPE Ezmeral Data Fabric processes with NFS v4, and a list of NFS v4 features that HPE Ezmeral Data Fabric does not support.

HPE Ezmeral Data Fabric lets you mount the cluster using NFS v4 so that your applications can read and write data directly. HPE Ezmeral Data Fabric allows direct file modification and multiple concurrent reads and writes using POSIX semantics. With an NFS v4-mounted cluster, you can read and write data directly with standard tools, applications, and scripts. For example, you could run a MapReduce application that outputs to a CSV file, then import the CSV file directly into SQL using NFS v4.

HPE Ezmeral Data Fabric uses NFS Ganesha for supporting NFS v4 features. NFS Ganesha is an Open Source userspace implementation of the NFS v4 server. MapR version 6.1 uses NFS Ganesha version 2.3, while HPE Ezmeral Data Fabric 6.2 uses an upgraded version 3.3 of NFS Ganesha.

The HPE Ezmeral Data Fabric NFS v4, running as a userspace process, registers callbacks with NFS Ganesha through the File System Abstraction Layer (FSAL), which is a shared library (libfsalmapr.so). NFS Ganesha loads and uses this library whenever the file system is exported/mounted. The FSAL, in turn, uses FileClient (libMapRClient.so) to connect to the cluster.

The following diagram illustrates how the HPE Ezmeral Data Fabric processes read and write operations to the HPE Ezmeral Data Fabric cluster using NFS v4. When the user enters a command (such as ls), the NFS client submits the request over TCP to the HPE Ezmeral Data Fabric NFS v4 server. The NFS v4 server uses the HPE Ezmeral Data Fabric FileClient to perform the requested operation on the cluster and returns the response to the NFS v4 client over TCP.



HPE Ezmeral Data Fabric exports each cluster as the directory /mapr/<cluster name> (for example, /mapr/my.cluster.com). If you create a mount point with the local path /mapr, then Hadoop FS paths and NFS v4 paths to the cluster are the same. This makes it easy to work on the same files using NFS v4 and Hadoop. In a multi-cluster setting, the clusters share a single namespace, and you can see them all by mounting the top-level /mapr directory.

For NFS v4, HPE Ezmeral Data Fabric also requires alias or pseudo-path, which when specified masks the mount path from the NFS v4 client. HPE Ezmeral Data Fabric's NFS v4 server provides a pseudo-filesystem where only the exported volumes are visible. This is especially useful in scenarios where one or more volumes in the hierarchy should be hidden and not be visible. For more information, see NFS v4 RFC.

CAUTION It is observed that NFS v4 clients are caching older atime values from previous history. Therefore, you might observe wrong atime values. To mitigate, make sure to clear caches, before checking file timestamps.

Unsupported NFS v4 Features

HPE Ezmeral Data Fabric does not currently support the following NFS v4 features:

  • pNFS
  • Delegations
  • Mandatory locking
  • Lock upgrades and downgrades
  • Deny share
  • Access Control List (ACL)
  • Namespaces
  • Persistent reply cache
  • Data retention
  • Attributes such as time_access, FATTR4_ARCHIVE, FATTR4_FILES_AVAIL, FATTR4_FILES_FREE, FATTR4_FILES_TOTAL, FATTR4_FS_LOCATIONS, FATTR4_MIMETYPE, FATTR4_QUOTA_AVAIL_HARD, FATTR4_QUOTA_AVAIL_SOFT, FATTR4_QUOTA_USED, FATTR4_TIME_BACKUP, and FATTR4_ACL