Subject: [nfsv4] Fw: pNFS commits with cluster file systems

From: Marc Eshel <[email-masked]>
Date: Wed, 29 Mar 2006 11:33:41 -0800

16.1.  File Striping and Data Access

[ snip ]

struct nfsv4_file_layouttype4 {              /* Per file */
        stripetype4             stripe_type;

[ 1 new line ] 
        bool                    commit_through_mds;

        length4                 stripe_unit;
        length4                 file_size;
        nfsv4_file_layout       dev_list<>;
};

[ new section ]

16.1.5  COMMIT through metadata server
commit_through_mds in the file layout gives the metadata server a 
preferred 
way of preforming COMMIT. If this flag is true, the client SHOULD send 
COMMIT 
to the metadata server instead of sending it to the same data server to 
which the 
associated WRITEs were sent. In order to maintain the current NFSv4 commit 
and 
recovery model, all the data servers MUST return a common verifier for all 
WRITEs
in a given file layout. The value of the write verifier MUST be changed at 
the metadata 
server or any data server that is referenced in the layout, whenever there 
is a server
event that can possibly lead to loss of uncommitted data.
The scope of the verifier can be for a file or for the entire pNFS server. 
It might be 
more difficult for the server to maintain the  verifier at the file level 
but the benefit
is that only events that impact a given file will require recovery action. 
 
The single COMMIT to the metadata server will return a verifier and the 
client should 
compare it to all the verifiers from the WRITEs and fail the COMMIT if 
there is any 
mismatched verifiers. If COMMIT to the MDS fails, the client should 
reissue WRITEs
for all the dirty data in the file. The client should treat dirty data 
with mismatched verifier
as WRITE failure and try to recover by reissuing the WRITEs to the 
original DS or using
other path to that data if the layout has not been recalled.
Other option the client has is getting a new layout or just rewrite the 
data through the 
metadata server. If the flag commit_through_mds is false the client should 
not send 
COMMIT to the metadata server. Although it is valid to send COMMIT to the 
metadata 
server it should be used only to commit data that was written through the 
metadata server. 
See also section 14.7.4 "Storage Device Recover" for recovery options.

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nfsv4

---

From: Spencer Shepler <[email-masked]>
Date: Wed, 29 Mar 2006 19:55:27 -0600

Marc has create issue 33 for this.  If we have consensus on this
text and its addition to the I-D, I will add it to the next version.

http://www.nfsv4-editor.org/cgi-bin/roundup/nfsv4/issue33