[Search] [pdf|bibtex] [Tracker] [Email] [Nits]

Versions: 00 01 02                                                      
Network File System Version 4                                   C. Lever
Internet-Draft                                                    Oracle
Intended status: Informational                            March 25, 2019
Expires: September 26, 2019

       Network File System Requirements for Computational Storage


   This document introduces an architecture for supporting Computational
   Storage on Network File System version 4 (NFS) servers and clients.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 26, 2019.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Lever                  Expires September 26, 2019               [Page 1]

Internet-Draft        Computational Storage for NFS           March 2019

1.  Introduction

   Computational storage is more than providing compute offload.  True
   computational storage conforms to one or both of the following

   o  Compute resources co-located with data storage leverages a high
      bandwidth link between storage and local compute.

   o  Compute resources co-located with data storage reduces interrupt
      or data bandwidth needed between storage and host.

   For NFS, the focus of computational storage techniques is on reducing
   network utilization between a server and its clients.  NFSv4.2 [3]
   already applies this approach: new features include copy offload and
   file initialization (ALLOCATE).

   There are two broad types of computation offloaded to storage:

   Search:  Examples include SQL offload, or performing a "find"
      operation without pulling a filesystem's data to a client.

   Filtering:  Also known as data transformation.  Examples include
      compression, transcoding, encryption, or integrity checking.

   The purpose of the current document is to provide a framework for
   reasoning about computational storage relative to the NFS protocol.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [1] [2] when, and only when, they appear in all capitals, as shown

2.  Parameters

   For various reasons, we do not want to require changes to the NFS
   protocol to expose computational resources.  Instead, an NFS server
   host can advertise alternate RPC programs which allow NFS clients
   access to the server's computational services in a structured
   fashion.  The underlying assumption is that such computation runs
   faster on a host that can access file data directly rather than via

   An important class of input and output parameters for these remote
   procedures are objects (e.g. files and directories) that exist in a

Lever                  Expires September 26, 2019               [Page 2]

Internet-Draft        Computational Storage for NFS           March 2019

   filesystem that is shared via NFS.  Such objects are referenced by
   filehandle and optionally a range of bytes.

   Serialization is necessary to prevent an offload agent from colliding
   with access by NFS clients.  Open state or a delegation might be
   appropriate for this purpose.

3.  Security Considerations

   A trust relationship must exist between clients and servers.  For
   example, how would clients be certain that the server has actually
   encrypted a file's content?

   There will need to be a mechanism for authorizing offload agents to
   access file data.

4.  IANA Considerations

   This document requests no action from IANA.

5.  References

5.1.  Normative References

   [1]        Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,

   [2]        Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

5.2.  Informative References

   [3]        Haynes, T., "Network File System (NFS) Version 4 Minor
              Version 2 Protocol", RFC 7862, DOI 10.17487/RFC7862,
              November 2016, <https://www.rfc-editor.org/info/rfc7862>.


   Special thanks go to Transport Area Director Magnus Westerlund, NFSV4
   Working Group Chairs Spencer Shepler and Brian Pawlowski, and NFSV4
   Working Group Secretary Thomas Haynes for their support.

Lever                  Expires September 26, 2019               [Page 3]

Internet-Draft        Computational Storage for NFS           March 2019

Author's Address

   Charles Lever
   Oracle Corporation
   United States of America

   Email: chuck.lever@oracle.com

Lever                  Expires September 26, 2019               [Page 4]