draft-ietf-nfsv4-pnfs-obj-07.txt   draft-ietf-nfsv4-pnfs-obj-08.txt 
NFSv4 B. Halevy NFSv4 B. Halevy
Internet-Draft B. Welch Internet-Draft B. Welch
Intended status: Standards Track J. Zelenka Intended status: Standards Track J. Zelenka
Expires: October 3, 2008 Panasas Expires: November 19, 2008 Panasas
April 01, 2008 May 18, 2008
Object-based pNFS Operations Object-based pNFS Operations
draft-ietf-nfsv4-pnfs-obj-07 draft-ietf-nfsv4-pnfs-obj-08
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 3, 2008. This Internet-Draft will expire on November 19, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
Abstract Abstract
This Internet-Draft provides a description of the object-based pNFS This Internet-Draft provides a description of the object-based pNFS
extension for NFSv4. This is a companion to the main pnfs extension for NFSv4. This is a companion to the main pnfs
specification in the NFSv4 Minor Version 1 Internet Draft, which is specification in the NFSv4 Minor Version 1 Internet Draft, which is
currently draft-ietf-nfsv4-minorversion1-21. currently draft-ietf-nfsv4-minorversion1-23.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1]. document are to be interpreted as described in RFC 2119 [1].
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
skipping to change at page 4, line 39 skipping to change at page 4, line 39
2. XDR Description of the Objects-Based Layout Protocol 2. XDR Description of the Objects-Based Layout Protocol
This document contains the XDR [3] description of the NFSv4.1 objects This document contains the XDR [3] description of the NFSv4.1 objects
layout protocol. The XDR description is embedded in this document in layout protocol. The XDR description is embedded in this document in
a way that makes it simple for the reader to extract into a ready to a way that makes it simple for the reader to extract into a ready to
compile form. The reader can feed this document into the following compile form. The reader can feed this document into the following
shell script to produce the machine readable XDR description of the shell script to produce the machine readable XDR description of the
NFSv4.1 objects layout protocol: NFSv4.1 objects layout protocol:
#!/bin/sh #!/bin/sh
grep "^ *///" | sed 's?^ *///??' grep '^ *///' $* | sed 's?^ *///??'
I.e. if the above script is stored in a file called "extract.sh", and I.e. if the above script is stored in a file called "extract.sh", and
this document is in a file called "spec.txt", then the reader can do: this document is in a file called "spec.txt", then the reader can do:
sh extract.sh < spec.txt > pnfs_osd_prot.x sh extract.sh < spec.txt > pnfs_osd_prot.x
The effect of the script is to remove leading white space from each The effect of the script is to remove leading white space from each
line, plus a sentinel sequence of "///". line, plus a sentinel sequence of "///".
The embedded XDR file header follows. Subsequent XDR descriptions, The embedded XDR file header follows. Subsequent XDR descriptions,
with the sentinel sequence are embedded throughout the document. with the sentinel sequence are embedded throughout the document.
Note that the XDR code contained in this document depends on types Note that the XDR code contained in this document depends on types
from the NFSv4.1 nfs4_prot.x file ([8]). This includes both nfs from the NFSv4.1 nfs4_prot.x file ([8]). This includes both nfs
types that end with a 4, such as offset4, length4, etc, as well as types that end with a 4, such as offset4, length4, etc, as well as
more generic types such as uint32_t and uint64_t. more generic types such as uint32_t and uint64_t.
////* ////*
/// * This file was machine generated for /// * This file was machine generated for
/// * draft-ietf-nfsv4-pnfs-obj-07 /// * draft-ietf-nfsv4-pnfs-obj-08
/// * Last updated Tue Apr 1 21:35:08 IDT 2008 /// * Last updated Sun May 18 13:07:05 UTC 2008
/// * /// *
/// * Copyright (C) The IETF Trust (2007-2008) /// * Copyright (C) The IETF Trust (2007-2008)
/// * All Rights Reserved. /// * All Rights Reserved.
/// * /// *
/// * Copyright (C) The Internet Society (1998-2006). /// * Copyright (C) The Internet Society (1998-2006).
/// * All Rights Reserved. /// * All Rights Reserved.
/// */ /// */
/// ///
////* ////*
/// * pnfs_osd_prot.x /// * pnfs_osd_prot.x
skipping to change at page 6, line 41 skipping to change at page 6, line 41
information returned in the layout. (This information can also be information returned in the layout. (This information can also be
deduced by looking inside the capability type at the format field, deduced by looking inside the capability type at the format field,
which is the first byte. The format value is 0x1 for an OSD v1 which is the first byte. The format value is 0x1 for an OSD v1
capability. However, it seems most robust to call out the version capability. However, it seems most robust to call out the version
explicitly.) explicitly.)
2.1.3. pnfs_osd_object_cred4 2.1.3. pnfs_osd_object_cred4
///enum pnfs_osd_cap_key_sec4 { ///enum pnfs_osd_cap_key_sec4 {
/// PNFS_OSD_CAP_KEY_SEC_NONE = 0, /// PNFS_OSD_CAP_KEY_SEC_NONE = 0,
/// PNFS_OSD_CAP_KEY_SEC_SSV = 1, /// PNFS_OSD_CAP_KEY_SEC_SSV = 1
///}; ///};
/// ///
///struct pnfs_osd_object_cred4 { ///struct pnfs_osd_object_cred4 {
/// pnfs_osd_objid4 oc_object_id; /// pnfs_osd_objid4 oc_object_id;
/// pnfs_osd_version4 oc_osd_version; /// pnfs_osd_version4 oc_osd_version;
/// pnfs_osd_cap_key_sec4 oc_cap_key_sec; /// pnfs_osd_cap_key_sec4 oc_cap_key_sec;
/// opaque oc_capability_key<>; /// opaque oc_capability_key<>;
/// opaque oc_capability<>; /// opaque oc_capability<>;
///}; ///};
/// ///
skipping to change at page 19, line 36 skipping to change at page 19, line 36
only to update the file's attributes. In addition to the generic only to update the file's attributes. In addition to the generic
information the client can pass to the metadata server in information the client can pass to the metadata server in
LAYOUTCOMMIT such as the highest offset the client wrote to and the LAYOUTCOMMIT such as the highest offset the client wrote to and the
last time it modified the file, the client MAY use last time it modified the file, the client MAY use
pnfs_osd_layoutupdate4 to convey the capacity consumed (or released) pnfs_osd_layoutupdate4 to convey the capacity consumed (or released)
by writes using the layout, and to indicate that I/O errors were by writes using the layout, and to indicate that I/O errors were
encountered by such writes. encountered by such writes.
5.1. pnfs_osd_deltaspaceused4 5.1. pnfs_osd_deltaspaceused4
///union pnfs_osd_deltaspaceused4 switch (bool valid) { ///union pnfs_osd_deltaspaceused4 switch (bool dsu_valid) {
/// case TRUE: /// case TRUE:
/// int64_t dsu_delta; /// int64_t dsu_delta;
/// case FALSE: /// case FALSE:
/// void; /// void;
///}; ///};
/// ///
pnfs_osd_deltaspaceused4 is used to convey space utilization pnfs_osd_deltaspaceused4 is used to convey space utilization
information at the time of LAYOUTCOMMIT. For the file system to information at the time of LAYOUTCOMMIT. For the file system to
properly maintain capacity used information, it needs to track how properly maintain capacity used information, it needs to track how
skipping to change at page 27, line 38 skipping to change at page 27, line 38
from a different client for LAYOUTIOMODE4_RW and for a byte-range from a different client for LAYOUTIOMODE4_RW and for a byte-range
overlapping with the outstanding layout segment. overlapping with the outstanding layout segment.
10.1. CB_RECALL_ANY 10.1. CB_RECALL_ANY
The metadata server can use the CB_RECALL_ANY callback operation to The metadata server can use the CB_RECALL_ANY callback operation to
notify the client to return some or all of its layouts. The NFSv4.1 notify the client to return some or all of its layouts. The NFSv4.1
draft [9] defines the following types: draft [9] defines the following types:
const RCA4_TYPE_MASK_OBJ_LAYOUT_MIN = 8; const RCA4_TYPE_MASK_OBJ_LAYOUT_MIN = 8;
const RCA4_TYPE_MASK_OBJ_LAYOUT_MAX = 11; const RCA4_TYPE_MASK_OBJ_LAYOUT_MAX = 9;
struct CB_RECALL_ANY4args { struct CB_RECALL_ANY4args {
uint32_t craa_objects_to_keep; uint32_t craa_objects_to_keep;
bitmap4 craa_type_mask; bitmap4 craa_type_mask;
}; };
Typically, CB_RECALL_ANY will be used to recall client state when the Typically, CB_RECALL_ANY will be used to recall client state when the
server needs to reclaim resources. The craa_type_mask bitmap server needs to reclaim resources. The craa_type_mask bitmap
specifies the type of resources that are recalled and the specifies the type of resources that are recalled and the
craa_objects_to_keep value specifies how many of the recalled objects craa_objects_to_keep value specifies how many of the recalled objects
the client is allowed to keep. The object-based layout type mask the client is allowed to keep. The object-based layout type mask
flags are defined as follows. They represent the iomode of the flags are defined as follows. They represent the iomode of the
recalled layouts. In response, the client SHOULD return layouts of recalled layouts. In response, the client SHOULD return layouts of
the recalled iomode that it needs the least, keeping at most the recalled iomode that it needs the least, keeping at most
craa_objects_to_keep object-based layouts. craa_objects_to_keep object-based layouts.
///const PNFS_OSD_RCA4_TYPE_MASK_READ = RCA4_TYPE_MASK_OBJ_LAYOUT_MIN; ///enum pnfs_osd_cb_recall_any_mask {
///const PNFS_OSD_RCA4_TYPE_MASK_RW = RCA4_TYPE_MASK_OBJ_LAYOUT_MIN+1; /// PNFS_OSD_RCA4_TYPE_MASK_READ = 8,
/// PNFS_OSD_RCA4_TYPE_MASK_RW = 9
///};
/// ///
The PNFS_OSD_RCA4_TYPE_MASK_READ flag notifies the client to return The PNFS_OSD_RCA4_TYPE_MASK_READ flag notifies the client to return
layouts of iomode LAYOUTIOMODE4_READ. Similarly, the layouts of iomode LAYOUTIOMODE4_READ. Similarly, the
PNFS_OSD_RCA4_TYPE_MASK_RW flag notifies the client to return layouts PNFS_OSD_RCA4_TYPE_MASK_RW flag notifies the client to return layouts
of iomode LAYOUTIOMODE4_RW. When both mask flags are set, the client of iomode LAYOUTIOMODE4_RW. When both mask flags are set, the client
is notified to return layouts of either iomode. is notified to return layouts of either iomode.
11. Client Fencing 11. Client Fencing
skipping to change at page 33, line 17 skipping to change at page 33, line 20
2005, May 2005. 2005, May 2005.
[7] Hewlett-Packard Co., Hewlett-Packard Co., and Hewlett-Packard [7] Hewlett-Packard Co., Hewlett-Packard Co., and Hewlett-Packard
Co., "T11 Network Address Authority (NAA) Naming Format for Co., "T11 Network Address Authority (NAA) Naming Format for
iSCSI Node Names", RFC 3980, February 2005, iSCSI Node Names", RFC 3980, February 2005,
<http://www.ietf.org/rfc/rfc3980.txt>. <http://www.ietf.org/rfc/rfc3980.txt>.
14.2. Informative References 14.2. Informative References
[8] Shepler, S., Eisler, M., and D. Noveck, "NFSv4 Minor Version 1 [8] Shepler, S., Eisler, M., and D. Noveck, "NFSv4 Minor Version 1
XDR Description", February 2008, <http://www.ietf.org/ XDR Description", May 2008, <http://www.ietf.org/
internet-drafts/draft-ietf-nfsv4-minorversion1-dot-x-04.txt>. internet-drafts/draft-ietf-nfsv4-minorversion1-dot-x-06.txt>.
[9] Shepler, S., Eisler, M., and D. Noveck, "NFSv4 Minor Version [9] Shepler, S., Eisler, M., and D. Noveck, "NFSv4 Minor Version
1", February 2008, <http://www.ietf.org/internet-drafts/ 1", May 2008, <http://www.ietf.org/internet-drafts/
draft-ietf-nfsv4-minorversion1-21.txt>. draft-ietf-nfsv4-minorversion1-23.txt>.
[10] Weber, R., "SCSI Object-Based Storage Device Commands -2 [10] Weber, R., "SCSI Object-Based Storage Device Commands -2
(OSD-2)", January 2008, (OSD-2)", January 2008,
<http://www.t10.org/ftp/t10/drafts/osd2/osd2r03.pdf>. <http://www.t10.org/ftp/t10/drafts/osd2/osd2r03.pdf>.
[11] Kent, S. and K. Seo, "Security Architecture for the Internet [11] Kent, S. and K. Seo, "Security Architecture for the Internet
Protocol", RFC 4301, December 2005. Protocol", RFC 4301, December 2005.
[12] IEEE, "Guidelines for 64-bit Global Identifier (EUI-64) [12] IEEE, "Guidelines for 64-bit Global Identifier (EUI-64)
Registration Authority", Registration Authority",
 End of changes. 12 change blocks. 
17 lines changed or deleted 19 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/