[nfsv4] Review of draft-ietf-nfsv4-flex-files-08 (part one of three)
David Noveck <davenoveck@gmail.com> Sat, 21 May 2016 14:00 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 667CC12D554 for <nfsv4@ietfa.amsl.com>; Sat, 21 May 2016 07:00:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sTQz4TrsJ3Lt for <nfsv4@ietfa.amsl.com>; Sat, 21 May 2016 07:00:15 -0700 (PDT)
Received: from mail-oi0-x22a.google.com (mail-oi0-x22a.google.com [IPv6:2607:f8b0:4003:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A5F412B030 for <nfsv4@ietf.org>; Sat, 21 May 2016 07:00:15 -0700 (PDT)
Received: by mail-oi0-x22a.google.com with SMTP id b65so74662279oia.1 for <nfsv4@ietf.org>; Sat, 21 May 2016 07:00:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc; bh=1M21Ost5zJoEDeDAeFRtL8a/r12bVcYsW8829WnRZvw=; b=karKSo9p8Q38lZAB/+cEx2BBcHF/fC5HZ75IIctc0/axS7LVZoZnl4p25OX9wFisT1 Q5OEaZqt1xrbn+ct100uw3C+YZMjePkStHJTCemecvf04PskketU43bXQk6Sc1L/UBxu 8BDzLb9YiQeMVq2M0bR6lHeYenA2ovHeWX55WpNAgqyd/engKRhQj33NbGdPz2XLGcki XohvCl2xIrFPcV6yrj2ChJkWmEHBdWIaOjmpA4WTBFoZJDzdtkenHiluSgbnoU1osLCl xlFq4F7eoX/2IaPrGDImqzRwWaHERtBHVeGg/99q1V6do7K7F45GDz3P0zSnLdIPyA/q 31zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc; bh=1M21Ost5zJoEDeDAeFRtL8a/r12bVcYsW8829WnRZvw=; b=amxMh5qi1LtwdEjSubDNrC2nyTKzYxJM8UfP6DlGJ8G+L7wF0whdmgVS3Jrm26J79R leJg9999KFKpcGgp6sv2Yp628alPG7Q5tI4RKlvuzod6E5e9iZ19N3/G2+21IIJxqJod 6+cMDTf2DS/BP3lwtgn9Js3GUDadPuKC9i6pj351zWLV6EP5dX6EByqavg8fE7WI6cCk +Dif+oaLilZVZUKILKYTVyGR51ANMtxEY/xfyiXn2SFBkiPqAlqTkalIkV+ob1qAzyDK BAoKMkdR5LJEc4yz2/wVP0Sp9zhAw6LwC2j3U1h+SKZXgCZBXaGEgl4Dgsn1x2ze9lND dDNA==
X-Gm-Message-State: ALyK8tKw/mZvfKe/gQxebTOiMTPQ76xejX2NY2QSxO35YfrllswoRUcuxIDY8RHeE3LBdTCh8SoyUQweO6y3sQ==
MIME-Version: 1.0
X-Received: by 10.202.213.88 with SMTP id m85mr459786oig.24.1463839214240; Sat, 21 May 2016 07:00:14 -0700 (PDT)
Received: by 10.182.29.166 with HTTP; Sat, 21 May 2016 07:00:14 -0700 (PDT)
Date: Sat, 21 May 2016 10:00:14 -0400
Message-ID: <CADaq8jc0fvVm=mtKu4C6HKEqwzqyaeW4yKbNHJVwtJQmSwdMOQ@mail.gmail.com>
From: David Noveck <davenoveck@gmail.com>
To: Thomas Haynes <thomas.haynes@primarydata.com>, Benny Halevy <bhalevy@gmail.com>
Content-Type: multipart/alternative; boundary="001a113b02945f8fef05335aa0cf"
Archived-At: <http://mailarchive.ietf.org/arch/msg/nfsv4/d9fqKw9F8NDI-56wM1AK7S9lkYk>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: [nfsv4] Review of draft-ietf-nfsv4-flex-files-08 (part one of three)
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.17
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 May 2016 14:00:18 -0000
*Review Structure* This is the first section of a multi-part review which has been broken up into multiple mail messages to avoid running into wg mailing list size restrictions. This section contains the general comments and the first part of the per-section comments. As a result, much of the material in the general comments will be referring to material that only appears in later review sections. *General Comments* *Background of Review* The -06 of this document entered Working Group Last Call, according to the Datatracker, on 8/24/2015. Soon after that I sent a long review (in two parts) to the authors, cc-ing the working group list. The substance of my review was that the document had some major issues that needed to be addressed to get it into a WGLC-worthy state. At the time I didn't get any response from Tom. It now appears that Tom did send a response to the second part of my review on 10/16/2015, but it doesn't seem that I got it. Although he did send it to the working group list, it can't be found in the mailing list archives. I have not been able to find the email in which the WGLC was announced, so I'm not sure when it was supposed to end or any mail in which the end of the last call is discussed and next steps agreed upon. In any case, given the eight months since then and now, I presume the WGLC is now effectively over. I'll leave it to the authors to resolve the administrative issues regarding the document state with Spencer. In January 2016, and recently, Tom has posted updates to the document, although they don't address the major issues that I raised in my review of -06. Recently, Tom forwarded me the lost response to the second part of my review, so I have a better picture of his views about my comments and his plans for the document going forward. In any case, I've decided to send a review of -08. Because the differences between -06 and -08 are small, it will be based, in large part on my earlier review of -06, although there will be changes of the following sorts: - In cases in which the -08 has a new issue, not present in the -06, I'll add a discussion of that issue, and note that it is a new issue in the -08. - In cases in which there is an issue not noted in the -06 review but which applies to the -06 as well, I'll note that fact as well. - Issues noted in the review of the -06, that have been addressed in -08 are simply eliminated. - In cases in which I know from the forwarded response how Tom intends to deal with an issue, the discussion is simplified to reflect the likely approach. In particular, the discussion of the handling of stateids is simplified given that Tom has decided on a particular approach. - In cases in which I know from the forwarded response that Tom objects to a proposed change, I'll summarize the situation, but will try not to continue the argument, and leave resolution of the issue until later discussion of the document *General Evaluation* Basically the situation remains as it was when I sent the review of -06. Although there has been some discussion of some of the issues raised in my review of -06, and some changes made, the major issues I noted have not been addressed by document changes. There is a lot of valuable stuff in this document but significant work needs to be done to clarify things regarding the handling of locking state. A lot of the problems derive from the fact that this document describes four different situations and is not careful about the differences among: - Using NFSv3 as a data access protocol - Using NFSv4.0 as a data access protocol - Using NFSv4.1 as a data access protocol in the loose coupling case - Using NFSv4.1 as a data access protocol in the tight coupling case *Issues Blocking Working Group Last Call* I'd characterize the following issues as being in this category: - Resolving the contradiction in -08 between *Section **2.3. Locking Models* and *Section 5.1. ff_layout4,* - Implementing some of the cleanup/clarification regarding locking discussed in *2.3. Locking Models* (as regards my current views regarding 08, this is addressed in the second part of the current review). - Resolving the issue of the unused ffds_stateid field in *Section 5.1. ff_layout4,* - Resolving the issue about FF_FLAGS_NO_IO_THROUH_MDS discussed in *5.1. ff_layout4,* *Other Noteworthy Issues* I think it makes sense to address RIck's proposal in his mail of March 8, *Possible change to Flex Files layout*. The response on the list was generally positive, so it makes sense to address this before working group last call. *Comments by Section (Through Section 2.2)* *Abstract:* Suggest replacing "to allow" by "which allows" *1. Introduction:* Suggest replacing "the wire protocol of such a protocol" by "such a protocol". *1.1 Definitions:* · control protocol This is not "a set of requirements". Rather it is something that supports a set of requirements. Unstated requirements with nothing to provide support them are not very helpful. As an example of the difficulties that this gives rise to, consider the phrase "requirements for the protocol" in the introduction. If the control protocol is a "set of requirements" then the requirements for the protocol is "requirements for a set of requirements" :-( This is making my head hurt. · data file At the very least, should replace "E.g." by "I.e.". my preference would be to simply say it is the file contents without using any Latin abbreviations. So how about: That part of a file system object that consists of the file contents. · data server (DS) I think this definition should be deleted together with *Section 1.2. **Difference Between a Data Server and a Storage Devic**e*. See my comments below (in *1.2. Difference Between a Data Server and a Storage Device*) for more details/ranting. · file layout type I think you mean here the layout type defined in chapter 13 of RFC5661. As it is, with the current reference to 'the NFS protocol" this seems to include that and the flexible file layout. If you need a term for that latter, suggest "NFS-based layout type". · layout segment The reference there is to *chapter 13* of RFC5661 which deals with the (old-fashioned, tightly-coupled) file layout type. It makes more sense, in this document, to reference something specific to the flex-files layout type. · layout stateid In the last sentence suggest adding "of that document" after "Section 12.5.3". - loose coupling You seem to have gotten rid of the "no control protocol" stuff elsewhere. it's time to do the same in the definitions section - metadata file This is now confusing because, although the metadata file does not include the file contents, it does describe them. So "describes the object and not the payload" is wrong. Suggest the following replacement: That part of a file system object which gives attributes for and the location of the file data rather than containing the file contents itself, It can include such items as the times of last modification or access, and security information such as an ACL. · mirror There are a couple of issues I have with the second sentence (or the first sentence following the initial sentence fragment): o It isn't clear to me how the two clauses relate. o there needs to be more information about how the situation referred to in the first clause is arrived. o None of this is really part of the *definition *of mirror. Some of this material needs to go into the section *8. Mirroring*. · tight coupling Same issue as for "loose coupling" You need to characterize the different types/strengths of potential control protocols, rather than pretending that a very thin one doesn't exist. - recalling a layout In the last sentence, suggest "could be able" by "has the opportunity". Also, I'm not sure what "etc" is referring to in the last sentence. Should it be removed? - revoking a layout It seems to me that, for this layout type, revoking a layout and fencing are essentially identical and that this fact should be noted. *1.2. Difference Between a Data Server and a Storage Device* The term data server appears eleven times in this document. Nine of them are either in the definitions of "data server" and "data storage device" or in this section. That leaves two: the title of section 2.2 and the corresponding TOC entry. There is no point in introducing two terms that essentially mean the same thing. Instead of doing that and then backing away from it, it is best to pick one and stick with it. *2.1. LAYOUTCOMMIT:* There are a couple of issues in the first sentence: · "tightly coupled *system" *is not as clear/general as it should be. · The reference to the semantics of the File Layout Type is inappropriate given that the reference is to *Chapter 12 *of RFC5661. Suggest the following replacement: When tightly coupled storage devices are used, the metadata server has the responsibility, upon receiving a LAYOUTCOMMIT (see Section 18.42 of [RFC5661] <https://tools.ietf.org/html/rfc5661#section-18.42>), of ensuring that the semantics of pNFS are respected (see Section 12.5.4 of [RFC5661] <https://tools.ietf.org/html/rfc5661#section-12.5.4>). These do not include a requirement that data written to data storage device be stable upon completion of the LAYOUTCOMMIT. It makes sense to start a new paragraph at this point. With regard to the rest of material, I basically agree with Benny but I think we have to arrange things to make clearer that we are talking about the loosely coupled case here. I think you need something like the following: In the case of loosely coupled storage devices, it is the responsibility of the client to make sure the data file is stable before the metadata server begins to query the storage devices about the changes to the file. If any WRITE to a storage device did not result with stable_how equal to FILE_SYNC, a LAYOUTCOMMIT to the metadata server MUST be preceded by a COMMIT to the storage devices written to. The last sentence of the paragraph is not very convincing as to the reason for this requirement. It should explain why "the LAYOUTCOMMIT might not be synchronized to the last WRITE operation to the storage device". I assume the worry is about a data storage device reboot immediately after the LAYOUTCOMMIT. *2.2. Fencing* *Clients from the Data **Server:* If one replaces "Data Server" by "Data Storage Device" in the title, one gets rid of the last two uses of "Data server" in this document. Thus there is no need to discuss the differences/nuances between the two. There's a problem in the fourth paragraph. Given that the first three paragraphs deal with the loosely coupled case, when you get to the tightly coupled case you need to say something about fencing clients from the data storage device. Instead you simply explain that the loose couplig fencing facilities are not used, leaving the fencing question up in the air. Saying it's not your job is OK if you explain why that is. For example, one might say: In the case of tight coupling, such fencing facilities are the responsibility of the control protocol and are not described in detail here. However, implementations of the tight coupling locking model (see Section 2.3), will need a way to prevent access by certain clients to specific files by invalidating the corresponding stateids on the data storage device.
- [nfsv4] Fwd: Review of draft-ietf-nfsv4-flex-file… David Noveck
- [nfsv4] Review of draft-ietf-nfsv4-flex-files-08 … David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-flex-files… Thomas Haynes
- Re: [nfsv4] Review of draft-ietf-nfsv4-flex-files… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-flex-files… David Noveck
- [nfsv4] Flex Files and WGLC Thomas Haynes
- Re: [nfsv4] Review of draft-ietf-nfsv4-flex-files… Thomas Haynes
- Re: [nfsv4] Flex Files and WGLC Spencer Shepler