/********************************************************* END OF STYLE RULES *********************************************************/

Friday, August 18, 2006

NFS and RPC via RDMA

In my post a couple days ago I left off wondering if NFS could do direct data placement (RDMA) the way FC and iSCSI do. The answer is that IETF specs are in place and projects are underway for both Linux and Open Solaris.

IEFT has a standard written by Tom Talpey of Netapp and Brent Callaghan of Apple for how to modify RPC to support RDMA with Scatter/Gather lists and handles for connecting to those DMA contexts similar to the SCSI protocol. IETF also has a standard (same authors) for modifying NFS to use this new RPC over RDMA transport. See the specs here:
    - RPC with RDMA Specification;

    - NFS Direct Data Placement Spec;

Projects to implement these for both Linux and Open Solaris are underway. Solaris is being done through a joint project between Sun and Ohio State:
    - Solaris NFS RDMA Project;

The Linux project is on SourceForge:
    - Linux NFS/RDMA;

Path Failover
As part of Direct Data Placement, NFS adds a Session Context. This is used when clients and servers reconnect to RDMA data for an I/O operation. An interesting side effect of this is it enables path failover similar to Fibre Channel since the full context of an I/O needs to failover.

Together, this takes a major step towards enabling NFS as an efficient, reliable transport that can replace FC in the datacenter while adding the benefits of an object protocol to allow the centralized storage server to play a much bigger role in solving today's data management problems.