Abstract
In this paper we will describe how to build a software defined, load balanced scale out NAS solution that could span multiple nodes and exports single namespace over NFSv4 using the open source NFS Ganesha server and a distributed database like Zookeeper to store server configuration, export properties and file-system locations.
NFSv4 PseudoFS: With NFS v4, a pseudo file system is introduced which provides links and connects all of the exported file systems on a single node server. The pseudo file system model results in the server exporting a single file namespace that is in reality a collection of connected individual file systems encompassing a single physical node and allows client requests to cross exported file system boundaries. Each of the file systems is represented as a unique fsid attribute value in the NFSv4 protocol.
NFSv4 Referrals: According to rfc7530 section 8.4.3: Referrals provide a way of placing a file system in a location within the namespace essentially without respect to its physical location on a given server. This allows a single server or a set of servers to present a multi-server namespace that encompasses file systems located on multiple servers. Some likely uses of this include establishment of site-wide or organization-wide namespaces, or even knitting such together into a truly global namespace.
NFS Ganesha: is an open source user mode file server that supports NFSv3, NFSv4, and NFSv4.1 including pNFS for distributed filesystems.
Zookeeper: ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.