Re: [nfsv4] I-D Action: draft-ietf-nfsv4-flex-files-10.txt

Rick Macklem <rmacklem@uoguelph.ca> Tue, 18 July 2017 12:45 UTC

Return-Path: <rmacklem@uoguelph.ca>
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 E18BD131E28 for <nfsv4@ietfa.amsl.com>; Tue, 18 Jul 2017 05:45:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 SKZTTHBQ1c1i for <nfsv4@ietfa.amsl.com>; Tue, 18 Jul 2017 05:45:55 -0700 (PDT)
Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660043.outbound.protection.outlook.com [40.107.66.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E032D131E1D for <nfsv4@ietf.org>; Tue, 18 Jul 2017 05:45:54 -0700 (PDT)
Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM (10.165.218.133) by YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM (10.165.218.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Tue, 18 Jul 2017 12:45:53 +0000
Received: from YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) by YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM ([10.165.218.133]) with mapi id 15.01.1261.024; Tue, 18 Jul 2017 12:45:53 +0000
From: Rick Macklem <rmacklem@uoguelph.ca>
To: Thomas Haynes <loghyr@primarydata.com>
CC: "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] I-D Action: draft-ietf-nfsv4-flex-files-10.txt
Thread-Index: AQHS/0Imd3ZPrJ8fZ0WnZ8Fe74OaPaJYh/KAgAAODK2AAKrXgIAAQ/V8
Date: Tue, 18 Jul 2017 12:45:53 +0000
Message-ID: <YTXPR01MB0189B3E2F3721FA3C19CB780DDA10@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
References: <150032626766.24491.10112068414343721839@ietfa.amsl.com> <626B1EB5-D799-4E29-ADC4-A55682124622@primarydata.com> <YTXPR01MB018976132160BCC0FD3FFDBEDDA00@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>, <8B8F4E97-9DB8-4383-96ED-3A99DAE1049C@primarydata.com>
In-Reply-To: <8B8F4E97-9DB8-4383-96ED-3A99DAE1049C@primarydata.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=uoguelph.ca;
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; YTXPR01MB0189; 7:UcoRag5BKx5yoqfsPmi6B6ew8ehaXL+qaeXEDSw6JOu1wYJ2X9jBOma4iHNqzYEwNWGogwu005fSA01vyBFjLJ4DpCmwVjOzy4Kjf5msBflNySYmZMoyrf8EyA93dG8wtEpVGlDX/KSM5EgD8Kal6oaaNr37TjKXazmU5TnSxtF9X//Q8QbodO6Re2xIwmmyazTcxxn4CyKEWQalfWzcMDr+ZWaFSQvtrdZjcgXFBpMFcLD2rtWHf0M565AYutYrBEg1mzuvv4HwJZUXzEiLcLN8SG7tvec+DCYK7EycvlYSH9J4nm7NR/Vy23cGL0vaZk4yg+aeQdbZY+pudzyY60VLvc+j9RspwZ9vf9u9kPh305s84A6kVORO/UuKuoqNlX4yVbABcoNyntIqAl95qU/SJAmB4hToFCWAh48m2ObZ7x6CoeMtdeF4+QCv4fbMabkcDQYXJOhq7mAlTHCYenWEA+Ra5L+Kv/Ope0H/ymYguxibA6+SCWMXt6nQY/MV7q8CduzpDNl9qdGA5+odGYEXHDEoI1rjAsfaOf7cUyZLA8HobDNZ8g4zCMFiYFdP9NHwkcXEAd0NMEgEgm58XRJfVlEkZDOyxCTIjB3egUaurUsy6lEyEsl4BJnBBEoCbO8CKEsaX2yQkofhXTTnQaV908ghGx+f0ZvgylecOw62M6gNjC95SfweDHPVoEuGJ7TR73r2xiCb7Vc9TDSCUFD79ueyGSGU2hcFdLTZmsezUvp+QHID7WLLAXQEeiOhawCKNAH584b+Y5VjINkWZCT/KW5lSpbfIR7mW7GYRb8=
x-ms-office365-filtering-correlation-id: 67955a0c-cc1e-4ed8-6175-08d4cddaed26
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:YTXPR01MB0189;
x-ms-traffictypediagnostic: YTXPR01MB0189:
x-exchange-antispam-report-test: UriScan:(278178393323532)(158342451672863)(236129657087228)(247924648384137);
x-microsoft-antispam-prvs: <YTXPR01MB018964F33BDC69AFD04EA78EDDA10@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(2017060910075)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6041248)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:YTXPR01MB0189; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:YTXPR01MB0189;
x-forefront-prvs: 037291602B
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39400400002)(39850400002)(39410400002)(39450400003)(39840400002)(43784003)(24454002)(86362001)(189998001)(76176999)(8936002)(54356999)(8676002)(81166006)(50986999)(25786009)(4326008)(102836003)(229853002)(6506006)(5660300001)(6916009)(2950100002)(38730400002)(110136004)(7696004)(6246003)(93886004)(74482002)(33656002)(230783001)(6436002)(77096006)(74316002)(9686003)(55016002)(2906002)(305945005)(478600001)(2900100001)(3280700002)(14454004)(3660700001)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:YTXPR01MB0189; H:YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: uoguelph.ca
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2017 12:45:53.0737 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTXPR01MB0189
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/Q1vMyCATMrzocMqmqP67BdGiF4A>
Subject: Re: [nfsv4] I-D Action: draft-ietf-nfsv4-flex-files-10.txt
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 18 Jul 2017 12:46:00 -0000

Thomas Haynes wrote:
[lots of stuff snipped for brevity]
> Taking both of these points into consideration, I’ve rewritten the section as:
>
> 2.1.  LAYOUTCOMMIT
>
>   The metadata server has the responsibility, upon receiving a
>   LAYOUTCOMMIT (see Section 18.42 of [RFC5661]), of ensuring that the
>   semantics of pNFS are respected (see Section 12.5.4 of [RFC5661]).
>   These do include a requirement that data written to data storage
>   device be stable before the occurance of the LAYOUTCOMMIT.
>
>   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.  Note that if the client has not done a COMMIT to the
>   storage device, then the LAYOUTCOMMIT might not be synchronized to
>   the last WRITE operation to the storage device.

Yes. This looks good to me. (except for the spelling of occurance;-)

> The concepts are presented to highlight the difficulties that a server developer will face.
Ok, I can buy into this. Maybe a sentence such as this near the beginning of the
document would clarify it for dumb-ass reader like me;-)

> I don’t think the client has to be aware of whether it is loosely or rightly coupled.
>
> Consider a NFSv3 storage device made by X. A MDS made by Y can use NFSv3 as
> the control protocol. It could CREATE to instantiate the data files, it could SETATTR
> the mode bits/uid/gid to fence, it can GETATTR to determine the change attribute,
> the mtime, etc.
>
> But if Y can recognize X and X provides some management APIs, then Y might be
> able to leverage those APIs as an additional control protocol.
>
> And as a client implementor, you are completely unaware of all of that.
I did a partial implementation of the client side last year and, at least for normal
operation, I think this statement is correct.

One case where the client "might" need to know is when the server is doing
fencing.
- Unless I have misunderstood it, for the loosely coupled model, the client will
  see a NFS4ERR_ACCESS error when trying to do I/O on the storage server?
- But what error does the client see for the tightly coupled model?

Put another way, I think the client will need to be able to recognize the difference
between "fencing" and a typical NFS4ERR_ACCESS due to permissions on a tightly
coupled server.
(My partial implementation didn't include code to deal with mirrors or the case
 where one mirror has failed or been fenced off, so I didn't deal with this case.)

I'll dig into -11 later to-day.

Thanks again, rick