pNFS: A Scalable Client for Scalable NAS

By Karthik Ramamurthy, Sr. Product Manager, NetApp


With the release of NetApp’s Data ONTAP Clustering, customers now have the scale-out NAS solutions they’ve been looking for, and their excitement is palpable. To keep performance consistent while enabling scale-out, NetApp released support for NFSv4.1/pNFS in Data ONTAP Clustering that leverages this scale-out feature from the client side.


So what exactly does pNFS do for customers? To better understand this, let me illustrate with an analogy (although it may date me): remember “back in the day” when you’d arrive at an airport gate only to find that your flight had been moved to another gate, and you’d have to race over to the new gate, only to potentially find that it had been changed again? To improve customer experience, airlines took advantage of cloud-capable smartphones and are now sending timely gate information directly to your cellphone, so you can go directly to the gate, instead of wasting valuable time hopping from gate to gate.



Clients in a scale-out NAS environment have a similar problem to those of us old enough to have flown in those days: as you scale your storage environment, there can be many challenges introduced, such as management, performance, data mobility, and data access path inefficiencies. In Data ONTAP Clustering, depending on the location of the volume in the cluster namespace, the I/O requests are served locally or remotely, using a cluster-hop (the equivalent of having to go to a gate only to find out that you’re supposed to be at a different gate).  pNFS effectively solves this problem by moving the intelligence about where the data is located from the storage to the server, which helps improve I/O response during those times when data is moving from one system to another (no more cluster hop!). Let’s dig a little deeper by looking at a pNFS block diagram:



pNFS separates the meta-data from the data associated with any I/O request. In addition to this separation, it provides a direct path to the data for any client. pNFS leverages Data ONTAP Clustering technology and provides an optimized path to the storage that essentially eliminates a cluster hop to serve the data – it is this feature which provides the benefit of scalability without diminishing performance. Clients supporting pNFS always get their data served by the network addresses that are hosted on the same physical controller as the storage.


So where does pNFS fit in for customers? Pretty much everywhere that customers want a scalable NAS with direct paths for the I/O. The “top-of-mind” use cases include home directories, scratch spaces, enterprise applications, and ITaaS environments. Bear in mind, however, that although pNFS is out of infancy with Data ONTAP Clustering, it’s still a while away from being ready for customers wanting better performance than the traditional NFSv3 that they are used to. Eventually, its higher performance and a rich partner support ecosystem will make pNFS an ideal candidate for most workloads, enterprise or otherwise.


While pNFS as a specification supports blocks, objects, and files, NetApp’s focus for pNFS is on files and on enabling customers to deploy their file services workloads on pNFS. Our partner, Red Hat, has been the first to market with the pNFS client as part of RHEL 6.2, and there is a rich roadmap of client support down the road from other vendors. Good things to come!


If you want to beef up your knowledge of pNFS, here are some other good resources available to you:


  1. A new technical report: Parallel Network File System Configuration and Best Practices for Data ONTAP 8.1 Clustering
  2. pNFS: A New Standard for Shared, High-Performance Parallel I/O white paper
  3. This excellent technical presentation by Red Hat


Here are some other references that might be of interest;

Moving from NFSv3 to V4;

A tutorial on pNFS and what's coming with 4.2;

(1) Are there any benchmarks showing perf differences between std NFS and pNFS ?

(2) Is it a good feature to enable for Oracle RAC DB running on VMs using NFS storage ?