[nfsv4] Review of draft-ietf-nfsv4-scsi-layout-nvme-01

David Noveck <davenoveck@gmail.com> Sat, 21 January 2023 18:25 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1C896C14CF13 for <nfsv4@ietfa.amsl.com>; Sat, 21 Jan 2023 10:25:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o4tYxqRnT4Uq for <nfsv4@ietfa.amsl.com>; Sat, 21 Jan 2023 10:25:04 -0800 (PST)
Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 48519C14CEED for <nfsv4@ietf.org>; Sat, 21 Jan 2023 10:25:04 -0800 (PST)
Received: by mail-qk1-x736.google.com with SMTP id pa22so4488608qkn.9 for <nfsv4@ietf.org>; Sat, 21 Jan 2023 10:25:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=g6R5sueX+xxWWJ+Ed4gmeYCdF5eRtoowOGc85w8d1Og=; b=Fmi8xFJr5+S6cjGzRhqKRwslgFoR65XGefFXuait2R1ZbnxG0qBm3sUH92Y1udEbS2 fTrl8dJv5BAjvFpMGWp7kaY6+7+x+PL8F1Wfg3LBXlsZEm/+qNYAesy/V2kmWSQrlfO4 CMoJ7zhjlJ875x3E07fBY93v7MReQCYTVc2vVxjyvoyaydXKCbrVGO7yR7yTeustidGP ELIayKJxc7D9kLk/I4RjdUhYRZ6mKQAjx0VOeyDABLYUAOfTkmII5LKIjSd68sA7g8MR E73Tv+kGOUntZ3Nq3tAi2CPbmtA/gm6gGN4vH+eqWsJ2Ggkp0Q07QWRRUDJNeQbGKncm 0Skg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=g6R5sueX+xxWWJ+Ed4gmeYCdF5eRtoowOGc85w8d1Og=; b=rSVxKM7aL/JVev8oW8QLx7DmnpR1IKOsLeVcj1nnAoFOP63E2oD954cDHaYym3/qsE SSzMvohe8q3hUGO3D2L7+BWWwRhawSMLI3THorBQVWpYEKAbULLf3rMkZu1t1QbH3hps z9n9jnUJ8egSnae84d/8RFQV5Cnoj1fNgVznkwbOk+n9dX1X8D075aBrazQyELFgvc1V NuTRXv5HvRcgXHPxbIafmTmyMXB0i0DJRTYa4gngNDTADewvKNR4mBX562Ssjs6nBUMw 8bpJZ3WFRCIdOXGe1g+LVLy5lWZudG1b+FaPW6Krwl36IN06oRs8I7v7pM2Q15HzZPDX DyxQ==
X-Gm-Message-State: AFqh2ko0/5g9zieLth5AOYZSYEtErfleEriP/dWcqvpaF3hTaKXwXCse EVInGIJlUw4bv/AS7ZlyNKcZWdRDCnSXUxSc+mlL3qkPl2o=
X-Google-Smtp-Source: AMrXdXt8uToQd6b6Rl27Op4+bysb9rsu5aFdgDRj2OWCM5jPumDJWaOXIiTjDyxdyJaa99lKmXpL/E4iudgTcC5B5eU=
X-Received: by 2002:a37:65cf:0:b0:6fa:6423:65b6 with SMTP id z198-20020a3765cf000000b006fa642365b6mr1203528qkb.324.1674325502910; Sat, 21 Jan 2023 10:25:02 -0800 (PST)
MIME-Version: 1.0
From: David Noveck <davenoveck@gmail.com>
Date: Sat, 21 Jan 2023 13:24:51 -0500
Message-ID: <CADaq8jd9xw0MR4Egvd9GAddxOBNLNwy+Hwo=B223ZYn-bSqeXw@mail.gmail.com>
To: Christoph Hellwig <hch@lst.de>, "Black, David" <David.Black@dell.com>, Chuck Lever <chuck.lever@oracle.com>, sorin.faibisj@cdsi.us.com
Cc: NFSv4 <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d6e58005f2ca486c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/tEElWzkBLMPytMqQbFpiVlEe6mY>
Subject: [nfsv4] Review of draft-ietf-nfsv4-scsi-layout-nvme-01
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 21 Jan 2023 18:25:05 -0000

*General comments *

*Overall evaluation*

Document is pretty far along but has issues, primarily editorial, that need
to be addressed.  With regard to Christoph's hypothesis of "technical
perfection", I am not able to judge but am prone to feel that further
review from knowledgeable working group  members will be necessary.

*Remnants of Informational Approach*

Although the details will be more completely discussed under *Per-section
Comments* there seem to  be  cases in which the wording suggests an
informational approach that is no longer appropriate  For example, the word
"explain" is used in many contexts where it is the job of a standards-track
document  to "define" or  "specify" something.

*Issues with bcp14 Terms*

These terms will need to be wrapped in "<bcp14>...</bcp14>.

There are also a number of problems with some uses of the terms "MUST" and
"SHOULD" :

   - it is often not made sufficiently clear exactly who is to be
   constrained or is to follow the requirement/recommendation.
   - For "SHOULD", it is sometimes not clear what could "valid reasons" to
   bypass the recommendation.

*Per-section comments *

*Authors*

I think you need to designate an editor.

*Title*

Given the decision to make this a standards-track document, feel something
like "Use of NVMe-based Transports to Access Block Devices using the SCSI
Layout Type" would be more appropriate.

*Abstract *

I feel "explains" is now inappropriate and suggest a replacement like the
following:

Defines the use of block devices accessed by NVMe-based Transports in
connection with the pNFS SCSI layout type.


*1. Introduction *

I feel that the first paragraph presumes a lot of knowledge that the
authors and most working group members have but that many readers might not
have. An example is the use of the term MDS which is never defined in this
document.

I think you need a brief statement of the prerequisite knowledge to read
this document. I'm thinking of something like.

NFSv4.1 (in [RFC8881]) includes a pNFS feature that allows reads and writes
to be performed by other means than directing read and write operations to
the server.  Through use of this feature. The server, in the role of
metadata server is responsible for managing file and directory metadata
while separate means are provided for execution of reads and writes.


These other means of effecting file read and writes are defined  by
individual mapping types which often have their own specifications.  The
SCSI Layout Type, defined in RFC8154, describes how IO is to be done
directly to block storage devices.


In the existing second paragraph, use  of "explains" is now wrong so
suggest something like the following.

This document defines how block devices exported by NVMe Controllers
implementing the NVMe Base specification ([NVME-BASE)] are to be used
within the SCSI Layout Type. The definition  is independent  of the
underlying transport used by the NVMe Controller and thus supports
Controllers implementing a wide variety of transports, including PCIe
Express, RDMA, TCP and FibreChannel.


In the third paragraph, have the same issue with "explains" and so suggest:

This document does not amend the existing SCSI layout document.  Rather, it
defines how NVM-accessed devices can  be used within the SCSI Layout by
establishing a mapping of the SCSI constructs used in the SCSI layout
document to  corresponding NVMe constructs.


Note that while I support this as a goal, I have some questions (in *2.2
Volume Identification* and *2.3 Write Caches*) as to whether it is
currently followed.

*1.2 General Definitions*

With regard to the definition of "client", I have problems with the use of
the word "traditional" in connection with clients embedded within OS's that
support multiple applications.  I don't think this belongs here.

With regard to "server", I note that "server" is defined here but never
really used in this document, except in the definition of "client".
Elsewhere there are references to the metadata server and to the data
server. I  think these need to be defined rather than the orphaned term
"server".

*2. SCSI Layout Mapping to NVM*

In the first sentence,

Suggest replacing "only references few" by "references only a few".

Believe "SCSI specific" should be hyphenated.

With regard to the use of the word  "SHOULD", It is unclear to whom this
recommendation is directed.

Recommendations are generally as to what an implementation might do or not
do and mapping of concepts doesn't fit that model.

It is hard to conceive of what might be "valid reasons" to do other than
what is recommended.

*2. 1 Volume Identification *

I have concerns regarding the "SHOULD" about the situation in which both
EUI64 and  NGUId are available.  If the shorter id is allowed and it is
allowed if the longer one is "unavailable" then it is OK functionally to
use it and it is unclear how the availability of the longer id would change
that or require that some  "valid reasons" exist to allow use of the
shorter id.  Feel this would  be better either as "should" or "is
preferable".

Regarding the banning of the use serial numbers, I agree that they not be
allowed but I'm guessing that they were allowed in RFC8154, which calls
into question the idea that this spec does not amend RFC8154.  It seems
that it does, although for a good reason.

Along these lines, there might need to be some consideration of the case in
which the SCSI layout is used to support both SCSI and NVMe-connected
devices.  Is it possible that SCSI serial number might conflict with EUI64
or NGUID device ids.

The third paragraph does not make it sufficiently clear what exactly  are
the "unique addressing needs" that need to be satisfied.

*2.2 Client Fencing*

In the second sentence of the first paragraph, suggest replacing "For this"
by "For this to be achieved".

In the second paragraph suggest replacing "The following is" by "The
following sub-sections (Section 2.2.1 through 2.2.4) provides".

*2.3 Write Caches*

In this case, it appears that we are not, as with other subsections of *2.0
SCSI Layout Mapping to NVMe*, mapping a SCSI operation to an NVMe one. If
so,
this should be moved to its own top-level section and further tinkering
with the statement about not amending RFC8154 might be required.

*4. Security Considerations *

Think you need to add a new paragraph regarding the obligation of the
clients regarding the enforcement of MDS decisions.   I am proposing
something like the following after the current first paragraph:

Decisions regarding authorization of particular users to access file
objects are made by the MDS and communicated to the clients by the ranting,
recall, and revocation of layouts, as described in the definition of
the pNFS feature (see [RFC8881}, [RFC8534]).  As a result, the security of
the data made available to clients depends on clients not making

IO requests without the appropriate layout.   When clients cannot be
trusted to conform to this requirement, direct access to block devices MUST
NOT be provided.


*5.Normative References *

Feel RFC8534 should be added