I mentioned over a week ago that Spencer Shepler and I presented NFSv4.1 at the SNIA Developers Conference.
I want to discuss one of the slides I presented which points out a subtle value that pNFS brings to storage.
The pNFS protocol is know for its capability to accelerate I/O operations per section. What it might not be know for is that it reduces I/O latency caused by storage clusters.
There are several storage cluster products out there, including Data ONTAP GX. Many of these have the capability to stripe data across multiple network storage controllers in the cluster, much in the same way RAID0 stripes data across multiple storage devices connected to a single storage controller. There are arguably just two ends of spectrum of storage clusters that stripe data: The share nothing architecture which Data ONTAP GX is near to, and the cache coherent architecture.
The above picture is illustrating an NFS client (not pNFS) that NFS mounts one node of the cluster. Assuming the data of a striped file or file system is evenly distributed across the cluster, this means that in both architectures, there is going to be significant traffic among the storage nodes.
In the share nothing architecture 2/3s of the traffic sent to a three node cluster will be going over the cluster interconnect.
In a cache coherent architecture, the proportion of traffic that goes over the cluster interconnect depends on the hit rate of the caches, the size of caches, and for writes, whether the caches are write through or write back. Regardless, caches have to be primed to fill reads, and even if the caches are write back, eventually they fill up, and data has to be written out to other nodes. There are also issues the cache coherency protocol itself. For example say one node is caching data for satisfying read requests, and the origin node receives a write request. The write request is delayed until the node caching data acknowledges the notification to invalidate its cache.
It would be better if the NFS client just sent its data to the right node. Enter pNFS.
The above picture shows that the pNFS client can direct its I/O to the optimal node in the storage cluster. No intra-cluster I/O. No additional latency.