pNFS Functional Specification

1 Project Description

The pNFS project will deliver both client and server side support for the portions of NFSv4 minor version 1 (NFSv4.1) in support of Parallel NFS (pNFS). The pNFS project plans to deliver this functionality into the ON consoliation.

1.1 Definition

NFSv4.1

pNFS is one of the features defined in the NFSv4.1 protocol specification, which is currently an IETF Internet Draft. The pNFS functionality is a method of introducing data access parallelism. The NFSv4.1 protocol defines a method of separating the metadata (names and attributes) of a filesystem from the location of the file data; it goes beyond simple metadata and data separation to define a method of striping the data amongst a set of data servers and allowing clients to access the data servers directly. This differs from the traditional NFS server which holds the names of files and their data under the single umbrella of the server and all access to the files must be done from the single server which is exporting the file system.

pNFS Definitions

pNFS Project Components

The pNFS project will deliver the following NFSv4.1 components:

Again, support for blocks and objects based layout types is out of scope for the pNFS project.

In addition to delivering the NFSv4.1 operations in support of pNFS, the pNFS project will address the following additional pieces of NFSv4.1 functionality:

1.2 Motivation, Goals, and Requirements

The goal of the pNFS project is to add the needed NFSv4.1 functionality in support of pNFS. The goal of pNFS itself is to provide the capability for clients to access data in parallel from many data servers and, in turn, increase throughput capability significantly.

1.3 Changes From the Previous Release

N/A - This is the first release for the pNFS project.

1.4 Program Plan Overview

1.5 Related Projects

1.6 Competitive Analysis

There are two ways in which our implementation of pNFS will compete:

Using an open standard such as pNFS gives us many advantages. Foremost is the fact that our product will interoperate with other vendors' products. For example, Linux clients will be able to access data on Solaris servers. An openly developed standard also gives us a better tested standard to implement to, meaning that we have a much lower risk of discovering fundamental design flaws in the protocol. And, finally, one of the advantages of an open protocol is that customers benefit from not being locked into any one implementation.

Solaris's pNFS implementation will gain advantages from tight integration with ZFS, SMF, and other advanced features of Solaris.

2 Technical Description