Re: [nfsv4] [Technical Errata Reported] RFC5661 (2751)
Spencer Shepler <sshepler@microsoft.com> Mon, 21 March 2011 22:35 UTC
Return-Path: <sshepler@microsoft.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 21ED33A68F5 for <nfsv4@core3.amsl.com>; Mon, 21 Mar 2011 15:35:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.504
X-Spam-Level:
X-Spam-Status: No, score=-10.504 tagged_above=-999 required=5 tests=[AWL=0.095, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v5dmgaBihtVl for <nfsv4@core3.amsl.com>; Mon, 21 Mar 2011 15:35:13 -0700 (PDT)
Received: from smtp.microsoft.com (mailb.microsoft.com [131.107.115.215]) by core3.amsl.com (Postfix) with ESMTP id 189B23A68F4 for <nfsv4@ietf.org>; Mon, 21 Mar 2011 15:35:12 -0700 (PDT)
Received: from TK5EX14HUBC104.redmond.corp.microsoft.com (157.54.80.25) by TK5-EXGWY-E802.partners.extranet.microsoft.com (10.251.56.168) with Microsoft SMTP Server (TLS) id 8.2.176.0; Mon, 21 Mar 2011 15:36:44 -0700
Received: from TK5EX14MBXC126.redmond.corp.microsoft.com ([169.254.11.95]) by TK5EX14HUBC104.redmond.corp.microsoft.com ([157.54.80.25]) with mapi id 14.01.0270.002; Mon, 21 Mar 2011 15:36:44 -0700
From: Spencer Shepler <sshepler@microsoft.com>
To: "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] [Technical Errata Reported] RFC5661 (2751)
Thread-Index: AQHL6BZhj2774ObmZEOjaiusLf4jcZQ4YEdA
Date: Mon, 21 Mar 2011 22:36:43 +0000
Message-ID: <E043D9D8EE3B5743B8B174A814FD584F0F0826D4@TK5EX14MBXC126.redmond.corp.microsoft.com>
References: <20110321211948.27E88E0747@rfc-editor.org>
In-Reply-To: <20110321211948.27E88E0747@rfc-editor.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.71]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [nfsv4] [Technical Errata Reported] RFC5661 (2751)
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Mon, 21 Mar 2011 22:35:26 -0000
This errata is a large enough change that I would like to run through a mini-last-call within the WG. I will start a 2 week last call the week after IETF 80. Thanks, Spencer > -----Original Message----- > From: nfsv4-bounces@ietf.org [mailto:nfsv4-bounces@ietf.org] On Behalf Of > RFC Errata System > Sent: Monday, March 21, 2011 2:20 PM > To: shepler@storspeed.com; mike@eisler.com; dnoveck@netapp.com; > ietfdbh@comcast.net; lars.eggert@nokia.com; wes@mti-systems.com; > beepy@netapp.com; spencer.shepler@gmail.com > Cc: nfsv4@ietf.org; rfc-editor@rfc-editor.org > Subject: [nfsv4] [Technical Errata Reported] RFC5661 (2751) > > > The following errata report has been submitted for RFC5661, "Network File > System (NFS) Version 4 Minor Version 1 Protocol". > > -------------------------------------- > You may review the report below and at: > http://www.rfc-editor.org/errata_search.php?rfc=5661&eid=2751 > > -------------------------------------- > Type: Technical > Reported by: Ricardo Labiaga <ricardo.labiaga@netapp.com> > > Section: GLOBAL > > Original Text > ------------- > > > Corrected Text > -------------- > 12.5.4.1. LAYOUTCOMMIT and change/time_modify becomes 12.5.4.2. > LAYOUTCOMMIT and change/time_modify > > > 12.5.4.2. LAYOUTCOMMIT and size > becomes > 12.5.4.3. LAYOUTCOMMIT and size > > > 12.5.4.3. LAYOUTCOMMIT and layoutupdate becomes 12.5.4.4. LAYOUTCOMMIT > and layoutupdate > > > Add new Section > 12.5.4.1 Implications of LAYOUTCOMMIT on file layouts For file layouts, > WRITEs to a Data Server that return a stable_how4 value of > FILE_SYNC4 guarantee that data and file system metadata are on stable > storage. This means that a LAYOUTCOMMIT is not needed in order to make > the data and metadata visible to the metadata server and other clients. > > For file layouts, when WRITE to the data server returns UNSTABLE4 or > DATA_SYNC4 and the NFL4_UFLG_COMMIT_THRU_MDS flag is set, the client MUST > send the COMMIT to the metadata server. A successful COMMIT to the > metadata server guarantees that data and file system metadata are on > stable storage. > Therefore, any time that NFS4_UFLG_COMMIT_THRU_MDS is set, a LAYOUTCOMMIT > (of the byte range specified by the layout) is not needed. > > For file layouts, when NFL4_UFLG_COMMIT_THRU_MDS flag is not set, and > WRITE or COMMIT to the data server return DATA_SYNC4, the client MUST send > the LAYOUTCOMMIT to the metadata server in order to synchronize file > metadata. > > The following table summarizes the rules when a LAYOUTCOMMIT is needed, > and the effects of a COMMIT to a data server and metadata server. > > +------------+------------+------------+------------+----------+ > | NFL4_UFLG_ | WRITE to | Meaning of | Meaning | LAYOUT | > | COMMIT_ | DS returns | COMMIT to | of COMMIT | COMMIT | > | THRU_MDS | | DS | to MDS | required | > +------------+------------+------------+------------+----------+ > | Not Set | UNSTABLE4 | DATA_SYNC4 | Nothing | Yes | > | Not Set | DATA_SYNC4 | Nothing | Nothing | Yes | > | Not Set | FILE_SYNC4 | Nothing | Nothing | NO | > | Set | UNSTABLE4 | Nothing | FILE_SYNC4 | NO | > | Set | DATA_SYNC4 | Nothing | FILE_SYNC4 | NO | > | Set | FILE_SYNC4 | Nothing | Nothing | NO | > +------------+------------+------------+------------+----------+ > > Note that a client can always demand FILE_SYNC4 or DATA_SYNC4 in WRITE's > arguments. Also note that specifying these stability levels may adversely > impact performance. > > If a LAYOUTCOMMIT is required, it should be sent before CLOSE to maintain > close-to-open semantics. If required, it should be sent before LOCKU, > OPEN_DOWNGRADE, LAYOUTRETURN, and when the application issues fsync() > [25]. > Again, if LAYOUTCOMMIT is required, it should be sent periodically to keep > the file size and modification time synchronized. This allows use cases > like tail -f [56] which copies its input file to the standard output and > updates the output as new lines become available in the input file. It is > up to the client implementation to determine how frequently LAYOUTCOMMIT > is issued. > Possible policies include every N'th COMMIT to a data server, every N'th > unit of time, or after writing a stripe to a set of data servers. > > Even if a required LAYOUTCOMMIT is not issued by the client, the data > server and metadata servers have a set of responsibilities to fulfill in > order to guarantee data consistency: > 1) Data servers MUST commit data and synchronize modification and size > attributes with the metadata server before a layout is revoked as > described in section 12.5.4. > 2) Data servers SHOULD commit data and synchronize modification and size > attributes with the metadata server after the metadata server reboots. In > theory the client should commit the data, but this avoids the problem > where both the client and metadata server crash at the same time. > 3) The metadata server MAY periodically poll data servers to synchronize > modification and size attributes. > > > Section 13.9.2.3 says: > For the NFSv4.1-based data storage protocol, it is necessary to re- > synchronize state such as the size attribute, and the setting of > mtime/change/atime. > > Should say: > For the NFSv4.1-based data storage protocol, it may be necessary to re- > synchronize state such as the size attribute, and the setting of > mtime/change/atime. > > > Section 13.10 says: > For the case above, this means that a LAYOUTCOMMIT will be done at > close > (along with the data WRITEs) and will update the file's size and change > attribute. > > Should say: > For the case above, this means that, if necessary, a LAYOUTCOMMIT will > be > done at close (along with the data WRITEs) and will update the file's size > and > change attribute. > > > Section 18.3.4 says: > The COMMIT operation is similar in operation and semantics to the POSIX > fsync() [25] system interface that synchronizes a file's state with the > disk > (file data and metadata is flushed to disk or stable storage). COMMIT > performs the same operation for a client, flushing any unsynchronized data > and > metadata on the server to the server's disk or stable storage for the > specified file. > > Should say: > The COMMIT operation is similar in operation and semantics to the POSIX > fsync() [25] system interface that synchronizes a file's state with the > disk > (file data and metadata is flushed to disk or stable storage). COMMIT > performs the same operation for a client, flushing any unsynchronized data > and > metadata on the server to the server's disk or stable storage for the > specified file. When using pNFS, if a WRITE returned UNSTABLE4 and > NFL4_UFLG_COMMIT_THRU_MDS is not set, then the client MUST COMMIT to the > data > server. The COMMIT may result in flushing the data but not the metadata. > In > this case, the metadata MUST be flushed with a subsequent LAYOUTCOMMIT to > the > metadata server. A complete set of pNFS rules for flushing data and > metadata > is described in section 12.5.4.1. > > > Section 18.3.4 says: > The above description applies to page-cache-based systems as well as > buffer- > cache-based systems. In the former systems, the virtual memory system > will > need to be modified instead of the buffer cache. > > Should say: > The above description applies to page-cache-based systems as well as > buffer- > cache-based systems. In the former systems, the virtual memory system > will > need to be modified instead of the buffer cache. > > Refer to Section 12.5.4.1 for a discussion of the effects of data > stability > levels on data servers or metadata servers. > > > Section 18.32.4 says: > However, since it is possible for a WRITE to be done with a special > stateid, the server needs to check for this case even though the client > should > have done an OPEN previously. > > Should say: > However, since it is possible for a WRITE to be done with a special > stateid, the server needs to check for this case even though the client > should > have done an OPEN previously. > > Refer to Section 12.5.4.1 for a discussion of the effects of data > stability > levels on data servers or metadata servers. > > > Section 20.3.4 says: > In the case of modified data being written while the layout is held, > the > client must use LAYOUTCOMMIT operations at the appropriate time; as > required > LAYOUTCOMMIT must be done before the LAYOUTRETURN. > > Should say: > In the case of modified data being written while the layout is held, > the > client may be required to use LAYOUTCOMMIT operations at the appropriate > time; > if LAYOUTCOMMIT is required, it must be done before the LAYOUTRETURN. > > > Add new informative reference to Section 23.2 > [56] The Open Group, "section 'tail' of The Open Group Base Specifications > Issue 6 IEEE Std 1003.1, 2004 Edition, HTML Version (www.opengroup.org), > ISBN 1931624453, 2004. > > > > Notes > ----- > A new section describing the implications of LAYOUTCOMMIT on file layouts > is > defined in this errata, along with updates to existing sections of the > spec. > The technical details in this errata were agreed upon at the IETF Interim > Meeting in Sunnyvale, CA on Feb 18-19, 2011. > > Instructions: > ------------- > This errata is currently posted as "Reported". If necessary, please > use "Reply All" to discuss whether it should be verified or > rejected. When a decision is reached, the verifying party (IESG) > can log in to change the status and edit the report, if necessary. > > -------------------------------------- > RFC5661 (draft-ietf-nfsv4-minorversion1-29) > -------------------------------------- > Title : Network File System (NFS) Version 4 Minor Version 1 > Protocol > Publication Date : January 2010 > Author(s) : S. Shepler, Ed., M. Eisler, Ed., D. Noveck, Ed. > Category : PROPOSED STANDARD > Source : Network File System Version 4 > Area : Transport > Stream : IETF > Verifying Party : IESG > _______________________________________________ > nfsv4 mailing list > nfsv4@ietf.org > https://www.ietf.org/mailman/listinfo/nfsv4
- [nfsv4] [Technical Errata Reported] RFC5661 (2751) RFC Errata System
- Re: [nfsv4] [Technical Errata Reported] RFC5661 (… Spencer Shepler