Internet DRAFT - draft-cel-nfsv4-comp-stor-reqs

draft-cel-nfsv4-comp-stor-reqs







Network File System Version 4                                   C. Lever
Internet-Draft                                                    Oracle
Intended status: Informational                          February 3, 2020
Expires: August 6, 2020


  Network File System Version 4 Requirements for Computational Storage
                   draft-cel-nfsv4-comp-stor-reqs-02

Abstract

   This document proposes an architecture to support Computational
   Storage using Network File System version 4 (NFS) files.

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 August 6, 2020.

Copyright Notice

   Copyright (c) 2020 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 August 6, 2020                 [Page 1]

Internet-Draft        Computational Storage for NFS        February 2020


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Computational Storage in Operation  . . . . . . . . . . . . .   3
     2.1.  Service Discovery . . . . . . . . . . . . . . . . . . . .   3
     2.2.  Service Configuration . . . . . . . . . . . . . . . . . .   3
     2.3.  Service Operation . . . . . . . . . . . . . . . . . . . .   4
   3.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     5.2.  Informative References  . . . . . . . . . . . . . . . . .   5
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   In traditional computing architectures, stored data is dormant.
   Computational storage brings computing power closer to data storage
   to leverage a high-bandwidth link between the compute resource and
   data-at-rest, or to reduce interrupt or data bandwidth needed between
   storage and host.  Reducing the movement of large data objects lowers
   power consumption and increases opportunities for parallelism.

   There are already several pervasive usage scenarios suited to
   computation offloaded to storage:

   Search:  Examples include SQL offload, a machine learning inference
      engine co-located with its dataset, or performing a "find"
      operation without pulling an entire filesystem's data to a client.

   Data Transformation:  Examples include compression, transcoding, and
      encryption.

   Data Management:  This might be a control plane that permits
      administrative actions such as instantiating a transfer to cold
      storage, integrity measurement (scrubbing), or creating a snapshot
      of a particular file.

   In some cases, computational storage is a computational service that
   is available as a direct offload for a host CPU.  The source and sink
   data both reside in the host's memory.  For NFS, however, the mission
   of computational storage techniques is to reduce network utilization
   between an NFS server and its clients.  Here, the source and sink are
   files on NFS servers.  The operation of the computational service can
   be entirely invisible to applications running on NFS clients.





Lever                    Expires August 6, 2020                 [Page 2]

Internet-Draft        Computational Storage for NFS        February 2020


   NFSv4.2 [RFC7862] already applies this approach -- features new to
   NFSv4.2 include copy offload and file initialization (ALLOCATE), both
   of which are intended to prevent extra data round-trips between
   clients and server.

   Computational storage is an emerging technology already offered by
   several companies, including Samsung and HPE.  A suitable
   introduction appears in [TORA].  The purpose of the current document
   is to provide a framework for discussing and reasoning about
   computational storage relative to the NFS protocol and typical NFS
   deployments.

2.  Computational Storage in Operation

   For various reasons, we do not want to require changes to the NFS
   protocol to expose computational storage resources.  Instead, an NFS
   server host can advertise RPC programs that allow NFS clients to
   recognize and configure the NFS server's computational services.  The
   services operate on data stored on that server.

   We begin by defining the term Computational Storage Service (CSS) to
   mean a network service that performs computation on data where the
   service and the data it operates upon are tightly associated with a
   storage target.

2.1.  Service Discovery

   Typically a CSS configuration facility registers with the NFS
   server's rpcbind service [RFC1833] to advertise its listening port
   and RPC program number.  Administrative clients or users then contact
   this service to configure it for use.

   A CSS that has no administrative interface must also advertise its
   presence on the NFS server via this mechanism.

2.2.  Service Configuration

   Computational Storage Services have varying degrees of
   configurability.  A so-called Fixed Computational Storage Service
   provides one or a few specific pre-determined functions (e.g.,
   encryption).

   A Programmable Computational Storage Service is a more general-
   purpose service that must be provided with a program before the CSS
   becomes usable (e.g., an operating system image or an FPGA bit file).

   A configuration program exposes the parameters of a specific CSS via
   RPC.  Such configuration might include the selection of encryption



Lever                    Expires August 6, 2020                 [Page 3]

Internet-Draft        Computational Storage for NFS        February 2020


   algorithms or keys, or the specification of regular expressions or
   prepared SQL statements.  The input dataset or a destination for
   results might also be specified.

   The primary class of input and output parameters for configuration
   programs are objects (e.g., files and directories) that exist in a
   filesystem shared via NFS.  When they are local, a CSS can reference
   such objects by filehandle and optionally a range of bytes.  A CSS
   references a remote object using either an NFS URI (defined in
   Section 2.8.1 of [RFC7532]) or a tuple consisting of a network
   address and a filehandle.

2.3.  Service Operation

   There are two alternative modes of operation:

   Transparent:  Once configured, a CSS's operation occurs behind NFS
      READ and WRITE operations, and is not directly visible to NFS
      clients.  For instance, an NFS server might perform data reduction
      (e.g., deduplication) or encryption-at-rest without exposing these
      transformations to clients.

   Verbal:  Clients use a separate RPC protocol to initiate requests or
      capture results when the results are expected to be small or are
      not appropriate for storing into a file.  This mode of operation
      is useful for invoking search operations over large datasets where
      the results might be a small set of filehandles with byte ranges.

   Serialization might be necessary to prevent an offload agent from
   colliding with accesses by standard NFS clients.  A client might open
   the input file or hold a delegation for this purpose.

   Alternatively, the NFS protocol might provide no serialization.
   Applications themselves would be responsible for maintaining the
   integrity of the input datasets during offloaded operations.

3.  Security Considerations

   NFS storage is typically deployed on open networks rather than in
   environments with restricted access, such as a PCIe bus or a
   dedicated storage fabric.  In such open environments, administrators
   must focus extra attention on security.  In particular:

   o  Remote access to configuration and computational results must be
      authenticated and authorized.  The ONC RPC protocol itself
      [RFC5531] has such authentication mechanisms, including mechanisms
      that use cryptography [RFC7861].




Lever                    Expires August 6, 2020                 [Page 4]

Internet-Draft        Computational Storage for NFS        February 2020


   o  There must be a mechanism for authorizing offload agents to access
      file data on behalf of authenticated users.

   o  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?

   o  NFS servers must schedule the use of Computational Storage
      Services fairly to prevent denial-of-service.

4.  IANA Considerations

   This document has no IANA actions.

5.  References

5.1.  Normative References

   [RFC1833]  Srinivasan, R., "Binding Protocols for ONC RPC Version 2",
              RFC 1833, DOI 10.17487/RFC1833, August 1995,
              <https://www.rfc-editor.org/info/rfc1833>.

   [RFC5531]  Thurlow, R., "RPC: Remote Procedure Call Protocol
              Specification Version 2", RFC 5531, DOI 10.17487/RFC5531,
              May 2009, <https://www.rfc-editor.org/info/rfc5531>.

   [RFC7532]  Lentini, J., Tewari, R., and C. Lever, Ed., "Namespace
              Database (NSDB) Protocol for Federated File Systems",
              RFC 7532, DOI 10.17487/RFC7532, March 2015,
              <https://www.rfc-editor.org/info/rfc7532>.

5.2.  Informative References

   [RFC7861]  Adamson, A. and N. Williams, "Remote Procedure Call (RPC)
              Security Version 3", RFC 7861, DOI 10.17487/RFC7861,
              November 2016, <https://www.rfc-editor.org/info/rfc7861>.

   [RFC7862]  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>.

   [TORA]     Torabzadehkashi, M., Rezaei, S., HeydariGorji, A.,
              Bobarshad, H., Alves, V., and N. Bagherzadeh,
              "Computational storage: an efficient and scalable platform
              for big data and HPC applications", Journal of Big Data 6,
              100, DOI 10.1186/s40537-019-0265-5, November 2019.





Lever                    Expires August 6, 2020                 [Page 5]

Internet-Draft        Computational Storage for NFS        February 2020


Acknowledgments

   The author is grateful to Bill Baker, Greg Marsden, and Jim Williams
   of Oracle, Glenn Watkins of HPE, and Stephen Bates of Eideticom for
   their input and support of this work.

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

Author's Address

   Charles Lever
   Oracle Corporation
   United States of America

   Email: chuck.lever@oracle.com

































Lever                    Expires August 6, 2020                 [Page 6]