draft-ietf-nfsv4-federated-fs-protocol-13.txt   draft-ietf-nfsv4-federated-fs-protocol-14.txt 
NFSv4 Working Group J. Lentini NFSv4 Working Group J. Lentini
Internet-Draft NetApp Internet-Draft NetApp
Intended status: Standards Track D. Ellard Intended status: Standards Track D. Ellard
Expires: March 29, 2013 Raytheon BBN Technologies Expires: May 14, 2013 Raytheon BBN Technologies
R. Tewari R. Tewari
IBM Almaden IBM Almaden
C. Lever, Ed. C. Lever, Ed.
Oracle Corporation Oracle Corporation
September 25, 2012 November 10, 2012
NSDB Protocol for Federated Filesystems NSDB Protocol for Federated Filesystems
draft-ietf-nfsv4-federated-fs-protocol-13 draft-ietf-nfsv4-federated-fs-protocol-14
Abstract Abstract
This document describes a filesystem federation protocol that enables This document describes a filesystem federation protocol that enables
file access and namespace traversal across collections of file access and namespace traversal across collections of
independently administered fileservers. The protocol specifies a set independently administered fileservers. The protocol specifies a set
of interfaces by which fileservers with different administrators can of interfaces by which fileservers with different administrators can
form a fileserver federation that provides a namespace composed of form a fileserver federation that provides a namespace composed of
the filesystems physically hosted on and exported by the constituent the filesystems physically hosted on and exported by the constituent
fileservers. fileservers.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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."
This Internet-Draft will expire on March 29, 2013. This Internet-Draft will expire on May 14, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
skipping to change at page 3, line 27 skipping to change at page 3, line 27
2.8.1. The NFS URI scheme . . . . . . . . . . . . . . . . . . 9 2.8.1. The NFS URI scheme . . . . . . . . . . . . . . . . . . 9
2.8.2. Mutual Consistency across Fileset Locations . . . . . 10 2.8.2. Mutual Consistency across Fileset Locations . . . . . 10
2.8.3. Caching of Fileset Locations . . . . . . . . . . . . . 11 2.8.3. Caching of Fileset Locations . . . . . . . . . . . . . 11
2.8.4. Generating A Referral from Fileset Locations . . . . . 12 2.8.4. Generating A Referral from Fileset Locations . . . . . 12
2.9. Namespace Database (NSDB) . . . . . . . . . . . . . . . . 13 2.9. Namespace Database (NSDB) . . . . . . . . . . . . . . . . 13
2.10. Junctions and Referrals . . . . . . . . . . . . . . . . . 14 2.10. Junctions and Referrals . . . . . . . . . . . . . . . . . 14
2.11. Unified Namespace and the Root Fileset . . . . . . . . . . 14 2.11. Unified Namespace and the Root Fileset . . . . . . . . . . 14
2.12. UUID Considerations . . . . . . . . . . . . . . . . . . . 15 2.12. UUID Considerations . . . . . . . . . . . . . . . . . . . 15
3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1. Creating a Fileset and its FSL(s) . . . . . . . . . . . . 16 3.1. Creating a Fileset and its FSL(s) . . . . . . . . . . . . 16
3.1.1. Creating a Fileset and an FSN . . . . . . . . . . . . 17 3.1.1. Creating a Fileset and an FSN . . . . . . . . . . . . 16
3.1.2. Adding a Replica of a Fileset . . . . . . . . . . . . 17 3.1.2. Adding a Replica of a Fileset . . . . . . . . . . . . 17
3.2. Junction Resolution . . . . . . . . . . . . . . . . . . . 17 3.2. Junction Resolution . . . . . . . . . . . . . . . . . . . 17
3.3. Example Use Cases for Fileset Annotations . . . . . . . . 18 3.3. Example Use Cases for Fileset Annotations . . . . . . . . 18
4. NSDB Configuration and Schema . . . . . . . . . . . . . . . . 19 4. NSDB Configuration and Schema . . . . . . . . . . . . . . . . 18
4.1. LDAP Configuration . . . . . . . . . . . . . . . . . . . . 19 4.1. LDAP Configuration . . . . . . . . . . . . . . . . . . . . 19
4.2. LDAP Schema . . . . . . . . . . . . . . . . . . . . . . . 20 4.2. LDAP Schema . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1. LDAP Attributes . . . . . . . . . . . . . . . . . . . 23 4.2.1. LDAP Attributes . . . . . . . . . . . . . . . . . . . 23
4.2.2. LDAP Objects . . . . . . . . . . . . . . . . . . . . . 37 4.2.2. LDAP Object Classes . . . . . . . . . . . . . . . . . 37
5. NSDB Operations . . . . . . . . . . . . . . . . . . . . . . . 40 5. NSDB Operations . . . . . . . . . . . . . . . . . . . . . . . 40
5.1. NSDB Operations for Administrators . . . . . . . . . . . . 41 5.1. NSDB Operations for Administrators . . . . . . . . . . . . 41
5.1.1. Create an FSN . . . . . . . . . . . . . . . . . . . . 41 5.1.1. Create an FSN . . . . . . . . . . . . . . . . . . . . 41
5.1.2. Delete an FSN . . . . . . . . . . . . . . . . . . . . 42 5.1.2. Delete an FSN . . . . . . . . . . . . . . . . . . . . 42
5.1.3. Create an FSL . . . . . . . . . . . . . . . . . . . . 43 5.1.3. Create an FSL . . . . . . . . . . . . . . . . . . . . 43
5.1.4. Delete an FSL . . . . . . . . . . . . . . . . . . . . 46 5.1.4. Delete an FSL . . . . . . . . . . . . . . . . . . . . 46
5.1.5. Update an FSL . . . . . . . . . . . . . . . . . . . . 47 5.1.5. Update an FSL . . . . . . . . . . . . . . . . . . . . 47
5.2. NSDB Operations for Fileservers . . . . . . . . . . . . . 48 5.2. NSDB Operations for Fileservers . . . . . . . . . . . . . 48
5.2.1. NSDB Container Entry (NCE) Enumeration . . . . . . . . 48 5.2.1. NSDB Container Entry (NCE) Enumeration . . . . . . . . 48
5.2.2. Lookup FSLs for an FSN . . . . . . . . . . . . . . . . 48 5.2.2. Lookup FSLs for an FSN . . . . . . . . . . . . . . . . 48
5.3. NSDB Operations and LDAP Referrals . . . . . . . . . . . . 49 5.3. NSDB Operations and LDAP Referrals . . . . . . . . . . . . 49
6. Security Considerations . . . . . . . . . . . . . . . . . . . 50 6. Security Considerations . . . . . . . . . . . . . . . . . . . 50
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51
7.1. Registry for the fedfsAnnotation Key Namespace . . . . . . 51 7.1. Registry for the fedfsAnnotation Key Namespace . . . . . . 51
7.2. Registry for FedFS Object Identifiers . . . . . . . . . . 51 7.2. Registry for FedFS Object Identifiers . . . . . . . . . . 51
7.3. LDAP Descriptor Registration . . . . . . . . . . . . . . . 53 7.3. LDAP Descriptor Registration . . . . . . . . . . . . . . . 54
8. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.1. Normative References . . . . . . . . . . . . . . . . . . . 59 9.1. Normative References . . . . . . . . . . . . . . . . . . . 60
9.2. Informative References . . . . . . . . . . . . . . . . . . 60 9.2. Informative References . . . . . . . . . . . . . . . . . . 61
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 61 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 62
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 63
1. Introduction 1. Introduction
A federated filesystem enables file access and namespace traversal in A federated filesystem enables file access and namespace traversal in
a uniform, secure and consistent manner across multiple independent a uniform, secure and consistent manner across multiple independent
fileservers within an enterprise or across multiple enterprises. fileservers within an enterprise or across multiple enterprises.
This document specifies a set of protocols that allow fileservers, This document specifies a set of protocols that allow fileservers,
possibly from different vendors and with different administrators, to possibly from different vendors and with different administrators, to
cooperatively form a federation containing one or more federated cooperatively form a federation containing one or more federated
filesystems. Each federated filesystem's namespace is composed of filesystems. Each federated filesystem's namespace is composed of
the filesystems physically hosted on and exported by the federation's the filesystems physically hosted on and exported by the federation's
fileservers. A federation MAY contain a common namespace across all fileservers. A federation comprises a common namespace across all
its fileservers. A federation MAY project multiple namespaces and its fileservers. A federation can project multiple namespaces and
enable clients to traverse each one. A federation MAY contain an enable clients to traverse each one. A federation can contain an
arbitrary number of namespace repositories, each belonging to a arbitrary number of namespace repositories, each belonging to a
different administrative entity, and each rendering a part of the different administrative entity, and each rendering a part of the
namespace. A federation MAY also have an arbitrary number of namespace. A federation might also have an arbitrary number of
administrative entities responsible for administering disjoint administrative entities responsible for administering disjoint
subsets of the fileservers. subsets of the fileservers.
Traditionally, building a namespace that spans multiple fileservers Traditionally, building a namespace that spans multiple fileservers
has been difficult for two reasons. First, the fileservers that has been difficult for two reasons. First, the fileservers that
export pieces of the namespace are often not in the same export pieces of the namespace are often not in the same
administrative domain. Second, there is no standard mechanism for administrative domain. Second, there is no standard mechanism for
the fileservers to cooperatively present the namespace. Fileservers the fileservers to cooperatively present the namespace. Fileservers
may provide proprietary management tools and in some cases an may provide proprietary management tools and in some cases an
administrator may be able to use the proprietary tools to build a administrator may be able to use the proprietary tools to build a
skipping to change at page 7, line 29 skipping to change at page 7, line 29
2.7. Fileset Name (FSN) 2.7. Fileset Name (FSN)
A fileset is uniquely represented by its fileset name (FSN). An FSN A fileset is uniquely represented by its fileset name (FSN). An FSN
is considered unique across a federation. After an FSN is created, is considered unique across a federation. After an FSN is created,
it is associated with one or more fileset locations (FSLs) on one or it is associated with one or more fileset locations (FSLs) on one or
more fileservers. more fileservers.
An FSN consists of: An FSN consists of:
NsdbName: the network location of the NSDB node that contains NsdbName: the network location of the Namespace Database (NSDB)
authoritative information for this FSN. node that contains authoritative information for this FSN.
FsnUuid: a UUID (universally unique identifier), conforming to FsnUuid: a UUID (universally unique identifier), conforming to
[RFC4122], that is used to uniquely identify an FSN. [RFC4122], that is used to uniquely identify an FSN.
FsnTTL: the time in seconds during which the FSN's FSL FsnTTL: the time-to-live of the FSN's FSL information, in
information may be cached. seconds. Fileservers MUST NOT use cached FSL records after the
parent FSN's FsnTTL has expired. An FsnTTL value of zero
indicates that fileservers MUST NOT cache the results of
resolving this FSN.
The FsnUuid is a required attribute of an FSN record, but the The FsnUuid is a required attribute of an FSN record, but the
NsdbName is not stored as an attribute of the record. The NsdbName NsdbName is not stored as an attribute of the record. The NsdbName
is obvious to NSDB clients, and is indeed authenticated in cases is obvious to NSDB clients, and is indeed authenticated in cases
where TLS security is in effect. where TLS security is in effect.
An FSN record also contains a cache time-to-live attribute. The The FsnUuid and NsdbName values never change during an FSN's
FsnUuid and NsdbName values never change during an FSN's lifetime. lifetime. However, an FSN's FSL information can change over time,
However, an FSN's FSL information can change over time, and is and is typically cached on fileservers for performance. More detail
typically cached on fileservers for performance. More detail is on FSL caching is provided in Section 2.8.3.
provided in Section 2.8.3.
An FSN record may also contain: An FSN record may also contain:
Annotations: optional name/value pairs that can be interpreted by Annotations: optional name/value pairs that can be interpreted by
a fileserver. The semantics of this field are not defined by a fileserver. The semantics of this field are not defined by
this document. These tuples are intended to be used by higher- this document. These tuples are intended to be used by higher-
level protocols. level protocols.
Descriptions: optional text descriptions. The semantics of this Descriptions: optional text descriptions. The semantics of this
field are not defined by this document. field are not defined by this document.
skipping to change at page 9, line 8 skipping to change at page 9, line 8
(e.g., fs_locations or fs_locations_info). (e.g., fs_locations or fs_locations_info).
A fileset MAY be accessible by protocols other than NFS. For each A fileset MAY be accessible by protocols other than NFS. For each
such protocol, a corresponding FSL subtype SHOULD be defined. The such protocol, a corresponding FSL subtype SHOULD be defined. The
contents and format of such FSL subtypes are not defined in this contents and format of such FSL subtypes are not defined in this
document. document.
2.8.1. The NFS URI scheme 2.8.1. The NFS URI scheme
To capture the location of an NFSv4 fileset, we extend the NFS URL To capture the location of an NFSv4 fileset, we extend the NFS URL
scheme specified in [RFC2224]. This extention follows rules for scheme specified in [RFC2224]. This extension follows rules for
defining Uniform Resource Identifier schemes in [RFC3986]. In the defining Uniform Resource Identifier schemes (see [RFC3986]). In the
following text, we refer to this extended NFS URL scheme as an NFS following text, we refer to this extended NFS URL scheme as an NFS
URI. URI.
An NFS URI MUST contain both an authority and a path component. It An NFS URI MUST contain both an authority and a path component. It
MUST NOT contain a query component or a fragment component. Use of MUST NOT contain a query component or a fragment component. Use of
the familiar "nfs" scheme name is retained. the familiar "nfs" scheme name is retained.
2.8.1.1. The NFS URI authority component 2.8.1.1. The NFS URI authority component
The rules for encoding the authority component of a generic URI are The rules for encoding the authority component of a generic URI are
specified in section 3.2 of [RFC3986]. The authority component of an specified in section 3.2 of [RFC3986]. The authority component of an
NFS URI MUST contain the host subcomponent. For globally-scoped NFS NFS URI MUST contain the host subcomponent. For globally-scoped NFS
URIs, a hostname used in such URIs SHOULD be a fully qualified domain URIs, a hostname used in such URIs SHOULD be a fully qualified domain
name. See section 3.2.2 of [RFC3986] for rules on encoding non-ASCII name. See section 3.2.2 of [RFC3986] for rules on encoding non-ASCII
characters in hostnames. characters in hostnames.
An NFS URI MAY contain a port subcomponent as described in section An NFS URI MAY contain a port subcomponent as described in section
3.2.3 of [RFC3986]. If this subcomponent is missing, a port value of 3.2.3 of [RFC3986]. If this subcomponent is missing, a port value of
2049 is assumed. 2049 is assumed, as specified in [3530bis], Section 3.1.
2.8.1.2. The NFS URI path component 2.8.1.2. The NFS URI path component
The rules for encoding the path component of a generic URI are The rules for encoding the path component of a generic URI are
specified in section 3.3 of [RFC3986]. specified in section 3.3 of [RFC3986].
According to sections 5 and 6 of [RFC2224], NFS URLs specify a According to sections 5 and 6 of [RFC2224], NFS URLs specify a
pathname relative to an NFS fileserver's "public filehandle." pathname relative to an NFS fileserver's "public filehandle."
However, NFSv4 fileservers do not expose a "public filehandle." However, NFSv4 fileservers do not expose a "public filehandle."
Instead, NFSv4 pathnames contained in an NFS URI are evaluated Instead, NFSv4 pathnames contained in an NFS URI are evaluated
skipping to change at page 10, line 5 skipping to change at page 10, line 5
URI as an absolute path. An NFS URI path component MUST NOT be URI as an absolute path. An NFS URI path component MUST NOT be
empty. The NFS URI path component starts with a slash ("/") empty. The NFS URI path component starts with a slash ("/")
character, followed by one or more path segments which each start character, followed by one or more path segments which each start
with a slash ("/") character [RFC3986]. with a slash ("/") character [RFC3986].
Therefore, a double slash always follows the authority component of Therefore, a double slash always follows the authority component of
an NFS URI. For example, the NFSv4 pathname "/" is represented by an NFS URI. For example, the NFSv4 pathname "/" is represented by
two slash ("/") characters following an NFS URI's authority two slash ("/") characters following an NFS URI's authority
component. component.
The component4 elements of an NFS pathname SHOULD be prepared using The component4 elements of an NFSv4 pathname SHOULD be prepared using
the component4 rules defined in Chapter 12 "Internationalization" of the component4 rules defined in Chapter 12 "Internationalization" of
[3530bis] prior to encoding the path component of an NFS URI. [3530bis] prior to encoding the path component of an NFS URI. As
Because a URI is a US-ASCII string, any non-ASCII UTF-8 code point in specified in [RFC3986], any non-ASCII UTF-8 code points and any URI-
reserved characters, such as the slash ("/") character, contained in
a component4 element MUST be represented by URI percent encoding. a component4 element MUST be represented by URI percent encoding.
URI-reserved characters such as the slash ("/") character contained
in a component4 element MUST be represented by URI percent encoding.
2.8.1.3. Encoding an NFS location in an FSL 2.8.1.3. Encoding an NFS location in an FSL
The path component of an NFS URI encodes the "rootpath" field of the The path component of an NFS URI encodes the "rootpath" field of the
NFSv4 fs_location4 data type or the "fli_rootpath" of the NFSv4 NFSv4 fs_location4 data type or the "fli_rootpath" of the NFSv4
fs_locations_item4 data type (see [RFC5661]). fs_locations_item4 data type (see [RFC5661]).
In its "server" field, the NFSv4 fs_location4 data type contains a In its "server" field, the NFSv4 fs_location4 data type contains a
list of universal addresses or UTF-8 hostnames. Each may optionally list of universal addresses or UTF-8 hostnames. Each may optionally
include a port number. The NFSv4 fs_locations_item4 data type include a port number. The NFSv4 fs_locations_item4 data type
skipping to change at page 11, line 20 skipping to change at page 11, line 19
information to file-access clients during referrals. Clients use information to file-access clients during referrals. Clients use
this information to ensure they do not revert to an out-of-date this information to ensure they do not revert to an out-of-date
version of a fileset's data when switching between fileset locations. version of a fileset's data when switching between fileset locations.
NFSv4.1 provides guidance on how replication can be handled in such a NFSv4.1 provides guidance on how replication can be handled in such a
manner. In particular see Section 11.7 of [RFC5661]. manner. In particular see Section 11.7 of [RFC5661].
2.8.3. Caching of Fileset Locations 2.8.3. Caching of Fileset Locations
To resolve an FSN to a set of FSL records, a fileserver queries the To resolve an FSN to a set of FSL records, a fileserver queries the
NSDB node named in the FSN for FSL records associated with this FSN. NSDB node named in the FSN for FSL records associated with this FSN.
The parent FSN's FsnTTL attribute (see Section 2.7) specifies the
The period of time during which these FSL records MAY be cached is period of time during which a fileserver may cache these FSL records.
indicated by the parent FSN's TTL attribute. A value of zero
indicates that the results of resolving this FSN SHOULD NOT be
cached. In addition, a fileserver SHOULD check back with the NSDB
node after the FSN TTL has expired to discover if any new FSL records
have been added for this FSN.
The combination of FSL caching and FSL migration presents a The combination of FSL caching and FSL migration presents a
challenge. For example, suppose there are three fileservers named A, challenge. For example, suppose there are three fileservers named A,
B, and C. Suppose further that fileserver A contains a junction J to B, and C. Suppose further that fileserver A contains a junction J to
fileset X stored on fileserver B. fileset X stored on fileserver B (see Section 2.10 for a description
of junctions).
Now suppose that fileset X is migrated from fileserver B to Now suppose that fileset X is migrated from fileserver B to
fileserver C, and the corresponding FSL information for fileset X in fileserver C, and the corresponding FSL information for fileset X in
the authoritative NSDB is updated. the authoritative NSDB is updated.
If fileserver A has cached FSLs for fileset X, a file-access client If fileserver A has cached FSLs for fileset X, a file-access client
traversing junction J on fileserver A will be referred to fileserver traversing junction J on fileserver A will be referred to fileserver
B, even though fileset X has migrated to fileserver C. If fileserver B, even though fileset X has migrated to fileserver C. If fileserver
A had not cached the FSL records, it would have queried the NSDB and A had not cached the FSL records, it would have queried the NSDB and
obtained the correct location of fileset X. obtained the correct location of fileset X.
skipping to change at page 12, line 24 skipping to change at page 12, line 19
cache stale location data for fileset X. cache stale location data for fileset X.
In either case, thanks to the redirection, file-access clients are In either case, thanks to the redirection, file-access clients are
informed by fileserver B that fileset X has moved to fileserver C. informed by fileserver B that fileset X has moved to fileserver C.
Such redirecting junctions (here, on fileserver B) would not be Such redirecting junctions (here, on fileserver B) would not be
required to be in place forever. They need to stay in place at least required to be in place forever. They need to stay in place at least
until FSL entries cached on fileservers and locations cached on file- until FSL entries cached on fileservers and locations cached on file-
access clients for the target fileset are invalidated. access clients for the target fileset are invalidated.
An FSL's parent FSN contains a TTL field which contains a count in The FsnTTL field in the FSL's parent FSN (see Section 2.7) specifies
seconds of the time interval the FSL MAY be cached. This is an upper an upper bound for the lifetime of cached FSL information, and thus
bound for the lifetime of the cached information, and thus can act as can act as a lower bound for the lifetime of redirecting junctions.
a lower bound for the lifetime of redirecting junctions.
For example, suppose this field contains the value 3600 seconds (one For example, suppose the FsnTTL field contains the value 3600 seconds
hour). In such a case, administrators SHOULD keep the redirection in (one hour). In such a case, administrators SHOULD keep the
place for at least one hour after a fileset migration has taken redirection in place for at least one hour after a fileset migration
place, and FSL data MUST NOT be cached by a referring fileserver for has taken place, because a referring fileserver might cache the FSL
more than one hour without a refresh. data during that time before refreshing it.
To get file-access clients to access the destination fileserver more To get file-access clients to access the destination fileserver more
quickly, administrators SHOULD set the FSN TTL field of the migrated quickly, administrators SHOULD set the FsnTTL field of the migrated
fileset to a low number or zero before migration begins. It can be fileset to a low number or zero before migration begins. It can be
reset to a more reasonable number at a later point. reset to a more reasonable number at a later point.
Note that some file-access protocols do not communicate location Note that some file-access protocols do not communicate location
cache expiry information to file-access clients. In some cases it cache expiry information to file-access clients. In some cases it
may be difficult to determine an appropriate lifetime for redirecting may be difficult to determine an appropriate lifetime for redirecting
junctions because file-access clients may cache location information junctions because file-access clients may cache location information
indefinitely. indefinitely.
2.8.4. Generating A Referral from Fileset Locations 2.8.4. Generating A Referral from Fileset Locations
skipping to change at page 14, line 6 skipping to change at page 13, line 47
The NSDB service is a federation-wide service that provides The NSDB service is a federation-wide service that provides
interfaces to define, update, and query FSN information, FSL interfaces to define, update, and query FSN information, FSL
information, and FSN to FSL mapping information. information, and FSN to FSL mapping information.
An individual repository of namespace information is called an NSDB An individual repository of namespace information is called an NSDB
node. The difference between the NSDB service and an NSDB node is node. The difference between the NSDB service and an NSDB node is
analogous to that between the DNS service and a particular DNS analogous to that between the DNS service and a particular DNS
server. server.
Each NSDB node is managed by a single administrative entity. A Each NSDB node is managed by a single administrative entity. A
single admininistrative entity can manage multiple NSDB nodes. single administrative entity can manage multiple NSDB nodes.
Each NSDB node stores the definition of the FSNs for which it is Each NSDB node stores the definition of the FSNs for which it is
authoritative. It also stores the definitions of the FSLs associated authoritative. It also stores the definitions of the FSLs associated
with those FSNs. An NSDB node is authoritative for the filesets that with those FSNs. An NSDB node is authoritative for the filesets that
it defines. it defines.
Each NSDB node supports an LDAP [RFC4510] interface. The information Each NSDB node supports an LDAP [RFC4510] interface. The information
stored on an NSDB node is accessed and updated by LDAP clients. stored on an NSDB node is accessed and updated by LDAP clients.
An NSDB MAY be replicated throughout the federation. If an NSDB is An NSDB MAY be replicated throughout the federation. If an NSDB is
skipping to change at page 15, line 10 skipping to change at page 15, line 5
2.11. Unified Namespace and the Root Fileset 2.11. Unified Namespace and the Root Fileset
The root fileset, when defined, is the top-level fileset of the The root fileset, when defined, is the top-level fileset of the
federation-wide namespace. The root of the unified namespace is the federation-wide namespace. The root of the unified namespace is the
top level directory of this fileset. A set of designated fileservers top level directory of this fileset. A set of designated fileservers
in the federation can export the root fileset to render the in the federation can export the root fileset to render the
federation-wide unified namespace. When a file-access client mounts federation-wide unified namespace. When a file-access client mounts
the root fileset from any of these designated fileservers it can view the root fileset from any of these designated fileservers it can view
a common federation-wide namespace. a common federation-wide namespace.
The root fileset could be implemented either as an exported NFS file
system or as data in the NSDB itself. The properties and schema
definition of an NSDB-based root fileset and the protocol details
that describe how to configure and replicate the root fileset are not
defined in this document.
2.12. UUID Considerations 2.12. UUID Considerations
To ensure FSN and FSL records are unique across a domain, FedFS To ensure FSN and FSL records are unique across a domain, FedFS
employs UUIDs conforming to [RFC4122] to form the distinguished names employs UUIDs conforming to [RFC4122] to form the distinguished names
of LDAP records containing FedFS data (see Section 4.2.2.2). of LDAP records containing FedFS data (see Section 4.2.2.2).
Because junctions store a tuple containing an FSN UUID and the name Because junctions store a tuple containing an FSN UUID and the name
and port of an NSDB node, an FSN UUID must be unique only on a single and port of an NSDB node, an FSN UUID must be unique only on a single
NSDB node. An FSN UUID collision can be detected immediately when an NSDB node. An FSN UUID collision can be detected immediately when an
administrator attempts to publish an FSN or FSL by storing it under a administrator attempts to publish an FSN or FSL by storing it under a
specific NCE on an authoritative NSDB host. specific NSDB Container Entry (NCE) on an authoritative NSDB host.
Note that one NSDB node may store multiple NCEs, each under a Note that one NSDB node may store multiple NCEs, each under a
different namingContext. If an NSDB node must contain more than one different namingContext. If an NSDB node must contain more than one
NCE, the federation's admin entity SHOULD provide a robust method for NCE, the federation's admin entity SHOULD provide a robust method for
preventing FSN UUID collisions between FSNs that reside on the same preventing FSN UUID collisions between FSNs that reside on the same
NSDB node but under different NCEs. NSDB node but under different NCEs.
Because FSLs are children of FSNs, FSL UUIDs must be unique for just Because FSLs are children of FSNs, FSL UUIDs must be unique for just
a single FSN. As with FSNs, as soon as an FSL is published, its a single FSN. As with FSNs, as soon as an FSL is published, its
uniqueness is guaranteed. uniqueness is guaranteed.
Of course, there is no way to guard against UUID re-use, but that is
highly unlikely provided that UUIDs are constructed carefully.
A fileserver performs the operations described in Section 5.2 as an A fileserver performs the operations described in Section 5.2 as an
unauthenticated user. Thus distinguished names of FSN and FSL unauthenticated user. Thus distinguished names of FSN and FSL
records, as well as the FSN and FSL records themselves, are required records, as well as the FSN and FSL records themselves, are required
to be readable by anyone who can bind anonymously to an NSDB node. to be readable by anyone who can bind anonymously to an NSDB node.
Therefore FSN and FSL UUIDs should be considered public information. Therefore FSN and FSL UUIDs should be considered public information.
Version 1 UUIDs contain a host's MAC address and a time stamp in the Version 1 UUIDs contain a host's MAC address and a time stamp in the
clear. This gives provenance to each UUID, but attackers can use clear. This gives provenance to each UUID, but attackers can use
such details to guess information about the host where the UUID was such details to guess information about the host where the UUID was
generated. Security-sensitive installations should be aware that on generated. Security-sensitive installations should be aware that on
skipping to change at page 18, line 16 skipping to change at page 17, line 47
fileset. fileset.
3. Using the FSN, the fileserver finds the NSDB node responsible for 3. Using the FSN, the fileserver finds the NSDB node responsible for
the target FSN. the target FSN.
4. The fileserver contacts that NSDB node and asks for the set of 4. The fileserver contacts that NSDB node and asks for the set of
FSLs that implement the target FSN. The NSDB node responds with FSLs that implement the target FSN. The NSDB node responds with
a (possibly empty) set of FSLs. a (possibly empty) set of FSLs.
5. The fileserver converts one or more of the FSLs to the location 5. The fileserver converts one or more of the FSLs to the location
type used by the file-access client (e.g., an NFSv4 fs_location type used by the file-access client (e.g., an NFSv4 fs_locations
attribute as described in [RFC5661]). attribute as described in [RFC5661]).
6. The fileserver redirects (in whatever manner is appropriate for 6. The fileserver redirects (in whatever manner is appropriate for
the client) the client to the location(s). the client) the client to the location(s).
3.3. Example Use Cases for Fileset Annotations 3.3. Example Use Cases for Fileset Annotations
Fileset annotations MAY be used to convey additional attributes of a Fileset annotations can convey additional attributes of a fileset.
fileset
For example, fileset annotations can be used to define relationships For example, fileset annotations can be used to define relationships
between filesets that can be used by an auxiliary replication between filesets that can be used by an auxiliary replication
protocol. Consider the scenario where a fileset is created and protocol. Consider the scenario where a fileset is created and
mounted at some point in the namespace. A snapshot of the read-write mounted at some point in the namespace. A snapshot of the read-write
FSL of that fileset is taken periodically at different frequencies FSL of that fileset is taken periodically at different frequencies
(say, a daily or weekly snapshot). The different snapshots are (say, a daily or weekly snapshot). The different snapshots are
mounted at different locations in the namespace. mounted at different locations in the namespace.
The daily snapshots are considered as different filesets from the The daily snapshots are considered as different filesets from the
weekly ones, but both are related to the source fileset. We can weekly ones, but both are related to the source fileset. We can
skipping to change at page 19, line 28 skipping to change at page 19, line 10
Version 3 [RFC4510] Directory. Section 4.1 describes the basic Version 3 [RFC4510] Directory. Section 4.1 describes the basic
properties of the LDAP configuration that MUST be used in order to properties of the LDAP configuration that MUST be used in order to
ensure compatibility between different implementations. Section 4.2 ensure compatibility between different implementations. Section 4.2
defines the new LDAP attribute types, the new object types, and defines the new LDAP attribute types, the new object types, and
specifies how the distinguished name (DN) of each object instance specifies how the distinguished name (DN) of each object instance
MUST be constructed. MUST be constructed.
4.1. LDAP Configuration 4.1. LDAP Configuration
An NSDB is constructed using an LDAP Directory. This LDAP Directory An NSDB is constructed using an LDAP Directory. This LDAP Directory
MAY have multiple naming contexts. For each naming context, the LDAP MAY have multiple naming contexts. The LDAP Directory's DSA-specific
Directory's root DSE will have a namingContext attribute. Each entry (its rootDSE) has a multi-valued namingContext attribute. Each
namingContext attribute contains the DN of the naming context's root value of the namingContext attribute is the DN of a naming context's
entry. For each naming context that contains federation entries root entry (see [RFC4512]).
(e.g., FSNs and FSLs):
For each naming context that contains federation entries (e.g., FSNs
and FSLs):
1. There MUST be an LDAP entry that is superior to all of the naming 1. There MUST be an LDAP entry that is superior to all of the naming
context's federation entries in the Directory Information Tree context's federation entries in the Directory Information Tree
(DIT). This entry is termed the NSDB Container Entry (NCE). The (DIT). This entry is termed the NSDB Container Entry (NCE). The
NCE's children are FSNs. An FSN's children are FSLs. NCE's children are FSNs. An FSN's children are FSLs.
2. The naming context's root entry MUST include the 2. The naming context's root entry MUST include the
fedfsNsdbContainerInfo (defined below) as one of its object fedfsNsdbContainerInfo (defined below) as one of its object
classes. The fedfsNsdbContainerInfo's fedfsNceDN attribute is classes. The fedfsNsdbContainerInfo's fedfsNceDN attribute is
used to locate the naming context's NCE. used to locate the naming context's NCE.
skipping to change at page 20, line 38 skipping to change at page 20, line 21
The NSDB SHOULD be configured with one or more privileged LDAP users. The NSDB SHOULD be configured with one or more privileged LDAP users.
These users are able to modify the contents of the LDAP database. An These users are able to modify the contents of the LDAP database. An
administrator that performs the operations described in Section 5.1 administrator that performs the operations described in Section 5.1
SHOULD authenticate using the DN of a privileged LDAP user. SHOULD authenticate using the DN of a privileged LDAP user.
It MUST be possible for an unprivileged (unauthenticated) user to It MUST be possible for an unprivileged (unauthenticated) user to
perform LDAP queries that access the NSDB data. A fileserver perform LDAP queries that access the NSDB data. A fileserver
performs the operations described in Section 5.2 as an unprivileged performs the operations described in Section 5.2 as an unprivileged
user. user.
All implementations SHOULD use the same schema, or, at minimum, a All implementations SHOULD use the same schema. At minimum, each
schema that includes all of the objects, with each of the attributes, MUST use a schema that includes all objects named in the following
named in the following sections. sections, with all associated attributes. If it is necessary for an
implementation to extend the schema defined here, consider using one
of the following ways to extend the schema:
o Define a fedfsAnnotation key and values (see Section 4.2.1.6).
Register the new key and values with IANA (see Section 7.1).
o Define additional attribute types and object classes, then have
entries inherit from a class defined in this document and from the
implementation-defined ones.
Given the above configuration guidelines, an NSDB SHOULD be Given the above configuration guidelines, an NSDB SHOULD be
constructed using a dedicated LDAP directory. Separate LDAP constructed using a dedicated LDAP server. If LDAP directories are
directories are RECOMMENDED for other purposes, such as storing user needed for other purposes, such as to store user account information,
account information. By using an LDAP directory dedicated to storing use of a separate LDAP server for those is RECOMMENDED. By using an
NSDB records, there is no need to disturb the configuration of any LDAP server dedicated to storing NSDB records, there is no need to
other LDAP directories that store information unrelated to an NSDB. disturb the configuration of any other LDAP directories that store
information unrelated to an NSDB.
4.2. LDAP Schema 4.2. LDAP Schema
The schema definitions provided in this document use the LDAP schema The schema definitions provided in this document use the LDAP schema
syntax defined in [RFC4512]. The definitions are formatted to allow syntax defined in [RFC4512]. The definitions are formatted to allow
the reader to easily extract them from the document. The reader can the reader to easily extract them from the document. The reader can
use the following shell script to extract the definitions: use the following shell script to extract the definitions:
<CODE BEGINS> <CODE BEGINS>
skipping to change at page 21, line 26 skipping to change at page 21, line 24
<CODE BEGINS> <CODE BEGINS>
sh extract.sh < spec.txt > fedfs.schema sh extract.sh < spec.txt > fedfs.schema
<CODE ENDS> <CODE ENDS>
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 "///".
As stated above, code components extracted from this document must Code components extracted from this document must include the
include the following license: following license:
<CODE BEGINS> <CODE BEGINS>
/// # /// #
/// # Copyright (c) 2010-2012 IETF Trust and the persons identified /// # Copyright (c) 2010-2012 IETF Trust and the persons identified
/// # as authors of the code. All rights reserved. /// # as authors of the code. All rights reserved.
/// # /// #
/// # The authors of the code are the authors of /// # The authors of the code are the authors of
/// # [draft-ietf-nfsv4-federated-fs-protocol-xx.txt]: J. Lentini, /// # [draft-ietf-nfsv4-federated-fs-protocol-xx.txt]: J. Lentini,
/// # C. Everhart, D. Ellard, R. Tewari, and M. Naik. /// # C. Everhart, D. Ellard, R. Tewari, and M. Naik.
/// # /// #
skipping to change at page 24, line 39 skipping to change at page 24, line 39
/// DESC 'The FSN UUID component of an FSN' /// DESC 'The FSN UUID component of an FSN'
/// SUP fedfsUuid /// SUP fedfsUuid
/// SINGLE-VALUE /// SINGLE-VALUE
/// ) /// )
/// ///
<CODE ENDS> <CODE ENDS>
4.2.1.3. fedfsFsnTTL 4.2.1.3. fedfsFsnTTL
A fedfsFsnTTL is the amount of time in seconds an FSN's TTL and its A fedfsFsnTTL is the time-to-live in seconds of a cached FSN and its
children FSL records SHOULD be cached by a fileserver. A fedfsFsnTTL child FSL records. It corresponds to the FsnTTL as defined in
MUST be encoded as an Integer syntax value [RFC4517]. Section 2.7. See also Section Section 2.8.3 for information about
caching FSLs. A fedfsFsnTTL MUST be encoded as an Integer syntax
value [RFC4517].
This attribute is single-valued. This attribute is single-valued.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.11 NAME 'fedfsFsnTTL' /// 1.3.6.1.4.1.31103.1.11 NAME 'fedfsFsnTTL'
/// DESC 'Time to live of an FSN tree' /// DESC 'Time to live of an FSN tree'
/// EQUALITY integerMatch /// EQUALITY integerMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
skipping to change at page 26, line 47 skipping to change at page 26, line 47
The following escape sequences are allowed: The following escape sequences are allowed:
+-----------------+-------------+ +-----------------+-------------+
| escape sequence | replacement | | escape sequence | replacement |
+-----------------+-------------+ +-----------------+-------------+
| \\ | \ | | \\ | \ |
| \" | " | | \" | " |
+-----------------+-------------+ +-----------------+-------------+
A fedfsAnnotation value SHOULD be processed as follows: A fedfsAnnotation value might be processed as follows:
1. Parse the attribute value according to the ANNOTATION rule, 1. Parse the attribute value according to the ANNOTATION rule,
ignoring the escape sequences above. ignoring the escape sequences above.
2. Scan through results of the previous step and replace the escape 2. Scan through results of the previous step and replace the escape
sequences above. sequences above.
A fedfsAnnotation attribute that does not adhere to this format A fedfsAnnotation attribute that does not adhere to this format
SHOULD be ignored. SHOULD be ignored in its entirety. It MUST NOT prevent further
processing of its containing entry.
The following are examples of valid fedfsAnnotation attributes: The following are examples of valid fedfsAnnotation attributes:
"key1" = "foo" "key1" = "foo"
"another key" = "x=3" "another key" = "x=3"
"key-2" = "A string with \" and \\ characters." "key-2" = "A string with \" and \\ characters."
"key3"="bar"
which correspond to the following key/value pairs: which correspond to the following key/value pairs:
+-------------+-----------------------------------+ +-------------+-----------------------------------+
| key | value | | key | value |
+-------------+-----------------------------------+ +-------------+-----------------------------------+
| key1 | foo | | key1 | foo |
| another key | x=3 | | another key | x=3 |
| key-2 | A string with " and \ characters. | | key-2 | A string with " and \ characters. |
| key3 | bar |
+-------------+-----------------------------------+ +-------------+-----------------------------------+
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.12 NAME 'fedfsAnnotation' /// 1.3.6.1.4.1.31103.1.12 NAME 'fedfsAnnotation'
/// DESC 'Annotation of an object' /// DESC 'Annotation of an object'
/// SUP name /// SUP name
/// ) /// )
skipping to change at page 29, line 22 skipping to change at page 29, line 22
/// ///
<CODE ENDS> <CODE ENDS>
OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517].
4.2.1.10. fedfsNfsGenFlagWritable 4.2.1.10. fedfsNfsGenFlagWritable
A fedfsNfsGenFlagWritable stores the value of an FSL's NFSv4.1 A fedfsNfsGenFlagWritable stores the value of an FSL's NFSv4.1
FSLI4GF_WRITABLE bit [RFC5661]. A value of "TRUE" indicates the bit FSLI4GF_WRITABLE bit [RFC5661]. A value of "TRUE" indicates the bit
is true. A value of "FALSE" indicates the bit is false. is set. A value of "FALSE" indicates the bit is not set.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.104 NAME 'fedfsNfsGenFlagWritable' /// 1.3.6.1.4.1.31103.1.104 NAME 'fedfsNfsGenFlagWritable'
/// DESC 'Indicates if the filesystem is writable' /// DESC 'Indicates if the filesystem is writable'
/// EQUALITY booleanMatch /// EQUALITY booleanMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
/// SINGLE-VALUE /// SINGLE-VALUE
skipping to change at page 29, line 44 skipping to change at page 29, line 44
/// ///
<CODE ENDS> <CODE ENDS>
OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517].
4.2.1.11. fedfsNfsGenFlagGoing 4.2.1.11. fedfsNfsGenFlagGoing
A fedfsNfsGenFlagGoing stores the value of an FSL's NFSv4.1 A fedfsNfsGenFlagGoing stores the value of an FSL's NFSv4.1
FSLI4GF_GOING bit [RFC5661]. A value of "TRUE" indicates the bit is FSLI4GF_GOING bit [RFC5661]. A value of "TRUE" indicates the bit is
true. A value of "FALSE" indicates the bit is false. set. A value of "FALSE" indicates the bit is not set.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.105 NAME 'fedfsNfsGenFlagGoing' /// 1.3.6.1.4.1.31103.1.105 NAME 'fedfsNfsGenFlagGoing'
/// DESC 'Indicates if the filesystem is going' /// DESC 'Indicates if the filesystem is going'
/// EQUALITY booleanMatch /// EQUALITY booleanMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
/// SINGLE-VALUE /// SINGLE-VALUE
/// ) /// )
/// ///
<CODE ENDS> <CODE ENDS>
OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517].
4.2.1.12. fedfsNfsGenFlagSplit 4.2.1.12. fedfsNfsGenFlagSplit
A fedfsNfsGenFlagSplit stores the value of an FSL's NFSv4.1 A fedfsNfsGenFlagSplit stores the value of an FSL's NFSv4.1
FSLI4GF_SPLIT bit [RFC5661]. A value of "TRUE" indicates the bit is FSLI4GF_SPLIT bit [RFC5661]. A value of "TRUE" indicates the bit is
true. A value of "FALSE" indicates the bit is false. set. A value of "FALSE" indicates the bit is not set.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.106 NAME 'fedfsNfsGenFlagSplit' /// 1.3.6.1.4.1.31103.1.106 NAME 'fedfsNfsGenFlagSplit'
/// DESC 'Indicates if there are multiple filesystems' /// DESC 'Indicates if there are multiple filesystems'
/// EQUALITY booleanMatch /// EQUALITY booleanMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
/// SINGLE-VALUE /// SINGLE-VALUE
skipping to change at page 30, line 44 skipping to change at page 30, line 44
/// ///
<CODE ENDS> <CODE ENDS>
OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.7 is the Boolean syntax [RFC4517].
4.2.1.13. fedfsNfsTransFlagRdma 4.2.1.13. fedfsNfsTransFlagRdma
A fedfsNfsTransFlagRdma stores the value of an FSL's NFSv4.1 A fedfsNfsTransFlagRdma stores the value of an FSL's NFSv4.1
FSLI4TF_RDMA bit [RFC5661]. A value of "TRUE" indicates the bit is FSLI4TF_RDMA bit [RFC5661]. A value of "TRUE" indicates the bit is
true. A value of "FALSE" indicates the bit is false. set. A value of "FALSE" indicates the bit is not set.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.107 NAME 'fedfsNfsTransFlagRdma' /// 1.3.6.1.4.1.31103.1.107 NAME 'fedfsNfsTransFlagRdma'
/// DESC 'Indicates if the transport supports RDMA' /// DESC 'Indicates if the transport supports RDMA'
/// EQUALITY booleanMatch /// EQUALITY booleanMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
/// SINGLE-VALUE /// SINGLE-VALUE
/// ) /// )
skipping to change at page 36, line 20 skipping to change at page 36, line 20
/// SINGLE-VALUE /// SINGLE-VALUE
/// ) /// )
/// ///
<CODE ENDS> <CODE ENDS>
OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517].
4.2.1.24. fedfsNfsVarSub 4.2.1.24. fedfsNfsVarSub
A fedfsNfsVarSub stores the value of an FSL's NFSv4.1 FSLI4F_VAR_SUB A fedfsNfsVarSub stores the value of an FSL's NFSv4.1 FSLI4IF_VAR_SUB
bit [RFC5661]. A value of "TRUE" indicates the bit is true. A value bit [RFC5661]. A value of "TRUE" indicates the bit is set. A value
of "FALSE" indicates the bit is false. of "FALSE" indicates the bit is not set.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// attributetype ( /// attributetype (
/// 1.3.6.1.4.1.31103.1.118 NAME 'fedfsNfsVarSub' /// 1.3.6.1.4.1.31103.1.118 NAME 'fedfsNfsVarSub'
/// DESC 'Indicates if variable substitution is present' /// DESC 'Indicates if variable substitution is present'
/// EQUALITY booleanMatch /// EQUALITY booleanMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
/// SINGLE-VALUE /// SINGLE-VALUE
skipping to change at page 37, line 21 skipping to change at page 37, line 21
/// EQUALITY integerMatch /// EQUALITY integerMatch
/// SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 /// SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
/// SINGLE-VALUE /// SINGLE-VALUE
/// ) /// )
/// ///
OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517]. OID 1.3.6.1.4.1.1466.115.121.1.27 is the Integer syntax [RFC4517].
<CODE ENDS> <CODE ENDS>
4.2.2. LDAP Objects 4.2.2. LDAP Object Classes
4.2.2.1. fedfsNsdbContainerInfo 4.2.2.1. fedfsNsdbContainerInfo
A fedfsNsdbContainerInfo describes the location of the NCE. A fedfsNsdbContainerInfo describes the location of the NCE.
A fedfsFsn's fedfsNceDN attribute is REQUIRED. A fedfsNsdbContainerInfo's fedfsNceDN attribute is REQUIRED.
A fedfsFsn's fedfsAnnotation and fedfsDescr attributes are OPTIONAL. A fedfsNsdbContainerInfo's fedfsAnnotation and fedfsDescr attributes
are OPTIONAL.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// objectclass ( /// objectclass (
/// 1.3.6.1.4.1.31103.1.1001 NAME 'fedfsNsdbContainerInfo' /// 1.3.6.1.4.1.31103.1.1001 NAME 'fedfsNsdbContainerInfo'
/// DESC 'Describes NCE location' /// DESC 'Describes NCE location'
/// SUP top AUXILIARY /// SUP top AUXILIARY
/// MUST ( /// MUST (
/// fedfsNceDN /// fedfsNceDN
skipping to change at page 38, line 15 skipping to change at page 38, line 19
A fedfsFsn's fedfsFsnUuid and fedfsFsnTTL attributes are REQUIRED. A fedfsFsn's fedfsFsnUuid and fedfsFsnTTL attributes are REQUIRED.
A fedfsFsn's fedfsAnnotation and fedfsDescr attributes are OPTIONAL. A fedfsFsn's fedfsAnnotation and fedfsDescr attributes are OPTIONAL.
The DN of an FSN is REQUIRED to take the following form: The DN of an FSN is REQUIRED to take the following form:
"fedfsFsnUuid=$FSNUUID,$NCE", where $FSNUUID is the UUID of the FSN "fedfsFsnUuid=$FSNUUID,$NCE", where $FSNUUID is the UUID of the FSN
and $NCE is the DN of the NCE. Since LDAP requires a DN to be and $NCE is the DN of the NCE. Since LDAP requires a DN to be
unique, this ensures that each FSN entry has a unique UUID value unique, this ensures that each FSN entry has a unique UUID value
within the LDAP directory. within the LDAP directory.
A fedfsFsn MAY also have additional attributes, but these attributes
MUST NOT be referenced by any part of this document.
<CODE BEGINS> <CODE BEGINS>
/// ///
/// objectclass ( /// objectclass (
/// 1.3.6.1.4.1.31103.1.1002 NAME 'fedfsFsn' /// 1.3.6.1.4.1.31103.1.1002 NAME 'fedfsFsn'
/// DESC 'Represents a fileset' /// DESC 'Represents a fileset'
/// SUP top STRUCTURAL /// SUP top STRUCTURAL
/// MUST ( /// MUST (
/// fedfsFsnUuid /// fedfsFsnUuid
/// $ fedfsFsnTTL /// $ fedfsFsnTTL
skipping to change at page 44, line 32 skipping to change at page 44, line 32
fedfsNfsReadOrder: $READ_ORDER fedfsNfsReadOrder: $READ_ORDER
fedfsNfsWriteRank: $WRITE_RANK fedfsNfsWriteRank: $WRITE_RANK
fedfsNfsWriteOrder: $WRITE_ORDER fedfsNfsWriteOrder: $WRITE_ORDER
fedfsNfsVarSub: $VAR_SUB fedfsNfsVarSub: $VAR_SUB
fedfsNfsValidFor: $TIME fedfsNfsValidFor: $TIME
fedfsAnnotation: $ANNOTATION fedfsAnnotation: $ANNOTATION
fedfsDescr: $DESCR fedfsDescr: $DESCR
For example, if the $FSNUUID is "e8c4761c-eb3b-4307-86fc- For example, if the $FSNUUID is "e8c4761c-eb3b-4307-86fc-
f702da197966", the $FSLUUID is "ba89a802-41a9-44cf-8447- f702da197966", the $FSLUUID is "ba89a802-41a9-44cf-8447-
dda367590eb3", the $HOST is "server.example.com", $PORT is "2049", dda367590eb3", the $HOST is "server.example.com", $PORT is "20049",
the $PATH is stored in the file "/tmp/fsl_path", $CURRENCY is "0" (an the $PATH is stored in the file "/tmp/fsl_path", $CURRENCY is "0" (an
up to date copy), the FSL is writable, but not going, split, or up-to-date copy), the FSL is writable, but not going, split, or
accessible via RDMA, the simultaneous-use class is "1", the handle accessible via RDMA, the simultaneous-use class is "1", the handle
class is "0", the fileid class is "1", the write-verifier class is class is "0", the fileid class is "1", the write-verifier class is
"1", the change class is "1", the readdir class is "9", the read rank "1", the change class is "1", the readdir class is "9", the read rank
is "7", the read order is "8", the write rank is "5", the write order is "7", the read order is "8", the write rank is "5", the write order
is "6", variable substitution is false, $TIME is "300" seconds, is "6", variable substitution is false, $TIME is "300" seconds,
$ANNOTATION is ""foo" = "bar"", $DESC is "This is a description.", $ANNOTATION is ""foo" = "bar"", $DESC is "This is a description.",
and the $NCE is "o=fedfs", the operation would be (for readability and the $NCE is "o=fedfs", the operation would be (for readability
the DN is split into two lines): the DN is split into two lines):
dn: fedfsFslUuid=ba89a802-41a9-44cf-8447-dda367590eb3, dn: fedfsFslUuid=ba89a802-41a9-44cf-8447-dda367590eb3,
fedfsFsnUuid=e8c4761c-eb3b-4307-86fc-f702da197966,o=fedfs fedfsFsnUuid=e8c4761c-eb3b-4307-86fc-f702da197966,o=fedfs
changeType: add changeType: add
objectClass: fedfsNfsFsl objectClass: fedfsNfsFsl
fedfsFslUuid: ba89a802-41a9-44cf-8447-dda367590eb3 fedfsFslUuid: ba89a802-41a9-44cf-8447-dda367590eb3
fedfsFsnUuid: e8c4761c-eb3b-4307-86fc-f702da197966 fedfsFsnUuid: e8c4761c-eb3b-4307-86fc-f702da197966
fedfsNfsURI: nfs://server.example.com//tmp/fsl_path fedfsNfsURI: nfs://server.example.com:20049//tmp/fsl_path
fedfsNfsCurrency: 0 fedfsNfsCurrency: 0
fedfsNfsGenFlagWritable: TRUE fedfsNfsGenFlagWritable: TRUE
fedfsNfsGenFlagGoing: FALSE fedfsNfsGenFlagGoing: FALSE
fedfsNfsGenFlagSplit: FALSE fedfsNfsGenFlagSplit: FALSE
fedfsNfsTransFlagRdma: FALSE fedfsNfsTransFlagRdma: FALSE
fedfsNfsClassSimul: 1 fedfsNfsClassSimul: 1
fedfsNfsClassHandle: 0 fedfsNfsClassHandle: 0
fedfsNfsClassFileid: 1 fedfsNfsClassFileid: 1
fedfsNfsClassWritever: 1 fedfsNfsClassWritever: 1
fedfsNfsClassChange: 1 fedfsNfsClassChange: 1
skipping to change at page 45, line 41 skipping to change at page 45, line 41
5.1.3.2. Selecting fedfsNfsFsl Values 5.1.3.2. Selecting fedfsNfsFsl Values
The fedfsNfsFSl object class is used to describe NFSv4 accessible The fedfsNfsFSl object class is used to describe NFSv4 accessible
filesets. For the reasons described in Section 2.8.4, administrators filesets. For the reasons described in Section 2.8.4, administrators
SHOULD choose reasonable values for all LDAP attributes of an NFSv4 SHOULD choose reasonable values for all LDAP attributes of an NFSv4
accessible fedfsNfsFsl even though some of these LDAP attributes are accessible fedfsNfsFsl even though some of these LDAP attributes are
not explicitly contained in an NFSv4 fs_locations attribute. not explicitly contained in an NFSv4 fs_locations attribute.
When the administrator is unable to choose reasonable values for the When the administrator is unable to choose reasonable values for the
LDAP attributes not explicitly contained in a NFSv4 fs_locations LDAP attributes not explicitly contained in an NFSv4 fs_locations
attribute, the values in the following table are RECOMMENDED. attribute, the values in the following table are RECOMMENDED.
+-------------------------+----------+------------------------------+ +-------------------------+----------+------------------------------+
| LDAP attribute | LDAP | Notes | | LDAP attribute | LDAP | Notes |
| | value | | | | value | |
+-------------------------+----------+------------------------------+ +-------------------------+----------+------------------------------+
| fedfsNfsCurrency | negative | Indicates that the server | | fedfsNfsCurrency | negative | Indicates that the server |
| | value | does not know the currency | | | value | does not know the currency |
| | | (see 11.10.1 of [RFC5661]). | | | | (see 11.10.1 of [RFC5661]). |
| fedfsNfsGenFlagWritable | FALSE | Leaving unset is not harmful | | fedfsNfsGenFlagWritable | FALSE | Leaving unset is not harmful |
skipping to change at page 46, line 34 skipping to change at page 46, line 34
| fedfsNfsClassFileid | 0 | See fedfsNfsClassSimul note. | | fedfsNfsClassFileid | 0 | See fedfsNfsClassSimul note. |
| fedfsNfsClassWritever | 0 | See fedfsNfsClassSimul note. | | fedfsNfsClassWritever | 0 | See fedfsNfsClassSimul note. |
| fedfsNfsClassChange | 0 | See fedfsNfsClassSimul note. | | fedfsNfsClassChange | 0 | See fedfsNfsClassSimul note. |
| fedfsNfsClassReaddir | 0 | See fedfsNfsClassSimul note. | | fedfsNfsClassReaddir | 0 | See fedfsNfsClassSimul note. |
| fedfsNfsReadRank | 0 | Highest value ensures FSL | | fedfsNfsReadRank | 0 | Highest value ensures FSL |
| | | will be tried. | | | | will be tried. |
| fedfsNfsReadOrder | 0 | See fedfsNfsReadRank note. | | fedfsNfsReadOrder | 0 | See fedfsNfsReadRank note. |
| fedfsNfsWriteRank | 0 | See fedfsNfsReadRank note. | | fedfsNfsWriteRank | 0 | See fedfsNfsReadRank note. |
| fedfsNfsWriteOrder | 0 | See fedfsNfsReadRank note. | | fedfsNfsWriteOrder | 0 | See fedfsNfsReadRank note. |
| fedfsNfsVarSub | FALSE | NFSv4 does not define | | fedfsNfsVarSub | FALSE | NFSv4 does not define |
| | | variable substituion in | | | | variable substitution in |
| | | paths. | | | | paths. |
| fedfsNfsValidFor | 0 | Indicates no appropriate | | fedfsNfsValidFor | 0 | Indicates no appropriate |
| | | refetch interval (see | | | | refetch interval (see |
| | | 11.10.2 of [RFC5661]). | | | | 11.10.2 of [RFC5661]). |
+-------------------------+----------+------------------------------+ +-------------------------+----------+------------------------------+
5.1.4. Delete an FSL 5.1.4. Delete an FSL
This operation deletes a Fileset location record. The admin requests This operation deletes an FSL record. The admin requests the NSDB
the NSDB node storing the fedfsFsl to delete it from its database. node storing the fedfsFsl to delete it from its database. This
This operation does not result in fileset data being deleted on any operation does not result in fileset data being deleted on any
fileserver. fileserver.
5.1.4.1. LDAP Request 5.1.4.1. LDAP Request
The admin sends an LDAP DELETE request to the NSDB node to remove the The admin sends an LDAP DELETE request to the NSDB node to remove the
FSL. FSL.
dn: fedfsFslUuid=$FSLUUID,fedfsFsnUuid=$FSNUUID,$NCE dn: fedfsFslUuid=$FSLUUID,fedfsFsnUuid=$FSNUUID,$NCE
changeType: delete changeType: delete
skipping to change at page 51, line 27 skipping to change at page 51, line 27
authorization mechanisms or require a fileserver to act as a proxy authorization mechanisms or require a fileserver to act as a proxy
for a client. for a client.
7. IANA Considerations 7. IANA Considerations
7.1. Registry for the fedfsAnnotation Key Namespace 7.1. Registry for the fedfsAnnotation Key Namespace
This document defines the fedfsAnnotation key in Section 4.2.1.6. This document defines the fedfsAnnotation key in Section 4.2.1.6.
The fedfsAnnotation key namespace is to be managed by IANA. IANA is The fedfsAnnotation key namespace is to be managed by IANA. IANA is
to create and maintain a new registry entitled "FedFS Annotation to create and maintain a new registry entitled "FedFS Annotation
Keys". Future registrations are to be administered by IANA using the Keys". The location of this registry should be under a new heading
"First Come First Served" policy defined in [RFC5226]. Registration called "Federated File System (FedFS) Parameters". The URL address
can be based off of the new heading name, for example:
http://www.iana.org/assignments/fedfs-parameters/ ...
Future registrations are to be administered by IANA using the "First
Come First Served" policy defined in [RFC5226]. Registration
requests MUST include the key (a valid UTF-8 string of any length), a requests MUST include the key (a valid UTF-8 string of any length), a
brief description of the key's purpose, and an email contact for the brief description of the key's purpose, and an email contact for the
registration. For viewing, the registry should be sorted registration. For viewing, the registry should be sorted
lexicographically by key. There are no initial assignments for this lexicographically by key. There are no initial assignments for this
registry. registry.
7.2. Registry for FedFS Object Identifiers 7.2. Registry for FedFS Object Identifiers
Using the process described in [RFC2578], one of the authors was Using the process described in [RFC2578], one of the authors was
assigned the Internet Private Enterprise Numbers range assigned the Internet Private Enterprise Numbers range
1.3.6.1.4.1.31103.x. Within this range, the subrange 1.3.6.1.4.1.31103.x. Within this range, the subrange
1.3.6.1.4.1.31103.1.x is permanently dedicated for use by the 1.3.6.1.4.1.31103.1.x is permanently dedicated for use by the
federated file system protocols. federated file system protocols.
IANA is to create and maintain a new registry entitled "FedFS Object IANA is to create and maintain a new registry entitled "FedFS Object
Identifiers" for the purpose of administering the FedFS Object Identifiers" for the purpose of administering the FedFS Object
Identifier (OID) range. Future allocations from the Identifier (OID) range. The location of this registry should be
1.3.6.1.4.1.31103.1.x range are to be assigned by IANA using the "RFC under the heading "Federated File System (FedFS) Parameters", created
Required" policy defined in [RFC5226]. Registration requests MUST in Section 7.1. The URL address can be based off of the new heading
include an OID value from the 1.3.6.1.4.1.31103.1.x range, a short name, for example: http://www.iana.org/assignments/fedfs-parameters/
description of the OID, and a reference to the specification that ...
defines the OID's usage. For viewing, the registry should be sorted
numerically by OID value. The initial contents of the FedFS Object
Identifiers registry are given in Table 1.
+--------------------------+-------------------------+------------+ Future allocations from the 1.3.6.1.4.1.31103.1.x range are to be
| OID | Description | Reference | assigned by IANA using the "RFC Required" policy defined in
+--------------------------+-------------------------+------------+ [RFC5226]. Registration requests MUST include an OID value from the
| 1.3.6.1.4.1.31103.1.1 | fedfsUuid | RFC-TBD1 | 1.3.6.1.4.1.31103.1.x range, a short description of the OID, and a
| 1.3.6.1.4.1.31103.1.2 | fedfsNetAddr | deprecated | reference to the specification that defines the OID's usage. For
| 1.3.6.1.4.1.31103.1.3 | fedfsNetPort | deprecated | viewing, the registry should be sorted numerically by OID value. The
| 1.3.6.1.4.1.31103.1.4 | fedfsFsnUuid | RFC-TBD1 | initial contents of the FedFS Object Identifiers registry are given
| 1.3.6.1.4.1.31103.1.5 | fedfsNsdbName | deprecated | in Table 1.
| 1.3.6.1.4.1.31103.1.6 | fedfsNsdbPort | deprecated |
| 1.3.6.1.4.1.31103.1.7 | fedfsNcePrefix | deprecated | Note: A descriptor designated below as "historic" reserves an OID
| 1.3.6.1.4.1.31103.1.8 | fedfsFslUuid | RFC-TBD1 | used in a past version of the NSDB protocol. Registering such OIDs
| 1.3.6.1.4.1.31103.1.9 | fedfsFslHost | deprecated | retains compatibility among existing implementations of the NSDB
| 1.3.6.1.4.1.31103.1.10 | fedfsFslPort | deprecated | protocol. This document does not otherwise refer to historic OIDs.
| 1.3.6.1.4.1.31103.1.11 | fedfsFslTTL | deprecated |
| 1.3.6.1.4.1.31103.1.12 | fedfsAnnotation | RFC-TBD1 | +--------------------------+-------------------------+-----------+
| 1.3.6.1.4.1.31103.1.13 | fedfsDescr | RFC-TBD1 | | OID | Description | Reference |
| 1.3.6.1.4.1.31103.1.14 | fedfsNceDN | RFC-TBD1 | +--------------------------+-------------------------+-----------+
| 1.3.6.1.4.1.31103.1.15 | fedfsFsnTTL | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.1 | fedfsUuid | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.100 | fedfsNfsPath | deprecated | | 1.3.6.1.4.1.31103.1.2 | fedfsNetAddr | historic |
| 1.3.6.1.4.1.31103.1.101 | fedfsNfsMajorVer | deprecated | | 1.3.6.1.4.1.31103.1.3 | fedfsNetPort | historic |
| 1.3.6.1.4.1.31103.1.102 | fedfsNfsMinorVer | deprecated | | 1.3.6.1.4.1.31103.1.4 | fedfsFsnUuid | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.103 | fedfsNfsCurrency | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.5 | fedfsNsdbName | historic |
| 1.3.6.1.4.1.31103.1.104 | fedfsNfsGenFlagWritable | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.6 | fedfsNsdbPort | historic |
| 1.3.6.1.4.1.31103.1.105 | fedfsNfsGenFlagGoing | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.7 | fedfsNcePrefix | historic |
| 1.3.6.1.4.1.31103.1.106 | fedfsNfsGenFlagSplit | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.8 | fedfsFslUuid | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.107 | fedfsNfsTransFlagRdma | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.9 | fedfsFslHost | historic |
| 1.3.6.1.4.1.31103.1.108 | fedfsNfsClassSimul | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.10 | fedfsFslPort | historic |
| 1.3.6.1.4.1.31103.1.109 | fedfsNfsClassHandle | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.11 | fedfsFslTTL | historic |
| 1.3.6.1.4.1.31103.1.110 | fedfsNfsClassFileid | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.12 | fedfsAnnotation | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.111 | fedfsNfsClassWritever | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.13 | fedfsDescr | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.112 | fedfsNfsClassChange | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.14 | fedfsNceDN | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.113 | fedfsNfsClassReaddir | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.15 | fedfsFsnTTL | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.114 | fedfsNfsReadRank | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.100 | fedfsNfsPath | historic |
| 1.3.6.1.4.1.31103.1.115 | fedfsNfsReadOrder | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.101 | fedfsNfsMajorVer | historic |
| 1.3.6.1.4.1.31103.1.116 | fedfsNfsWriteRank | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.102 | fedfsNfsMinorVer | historic |
| 1.3.6.1.4.1.31103.1.117 | fedfsNfsWriteOrder | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.103 | fedfsNfsCurrency | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.118 | fedfsNfsVarSub | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.104 | fedfsNfsGenFlagWritable | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.119 | fedfsNfsValidFor | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.105 | fedfsNfsGenFlagGoing | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.120 | fedfsNfsURI | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.106 | fedfsNfsGenFlagSplit | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1001 | fedfsNsdbContainerInfo | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.107 | fedfsNfsTransFlagRdma | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1002 | fedfsFsn | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.108 | fedfsNfsClassSimul | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1003 | fedfsFsl | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.109 | fedfsNfsClassHandle | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1004 | fedfsNfsFsl | RFC-TBD1 | | 1.3.6.1.4.1.31103.1.110 | fedfsNfsClassFileid | RFC-TBD1 |
+--------------------------+-------------------------+------------+ | 1.3.6.1.4.1.31103.1.111 | fedfsNfsClassWritever | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.112 | fedfsNfsClassChange | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.113 | fedfsNfsClassReaddir | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.114 | fedfsNfsReadRank | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.115 | fedfsNfsReadOrder | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.116 | fedfsNfsWriteRank | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.117 | fedfsNfsWriteOrder | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.118 | fedfsNfsVarSub | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.119 | fedfsNfsValidFor | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.120 | fedfsNfsURI | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1001 | fedfsNsdbContainerInfo | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1002 | fedfsFsn | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1003 | fedfsFsl | RFC-TBD1 |
| 1.3.6.1.4.1.31103.1.1004 | fedfsNfsFsl | RFC-TBD1 |
+--------------------------+-------------------------+-----------+
Table 1 Table 1
7.3. LDAP Descriptor Registration 7.3. LDAP Descriptor Registration
In accordance with Section 3.4 and Section 4 of [RFC4520], the object In accordance with Section 3.4 and Section 4 of [RFC4520], the object
identifier descriptors defined in this document (listed below) will identifier descriptors defined in this document (listed below) will
be registered via the Expert Review process. be registered via the Expert Review process.
Subject: Request for LDAP Descriptor Registration Subject: Request for LDAP Descriptor Registration
Person & email address to contact for further information: See Person & email address to contact for further information: See
"Author/Change Controller" "Author/Change Controller"
Specification: draft-ietf-nfsv4-federated-fs-protocol Specification: draft-ietf-nfsv4-federated-fs-protocol
Author/Change Controller: [document authors] Author/Change Controller: IESG (iesg@ietf.org)
Object Identifier: 1.3.6.1.4.1.31103.1.1 Object Identifier: 1.3.6.1.4.1.31103.1.1
Descriptor (short name): fedfsUuid Descriptor (short name): fedfsUuid
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.2 Object Identifier: 1.3.6.1.4.1.31103.1.2
Descriptor (short name): fedfsNetAddr Descriptor (short name): fedfsNetAddr
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.3 Object Identifier: 1.3.6.1.4.1.31103.1.3
Descriptor (short name): fedfsNetPort Descriptor (short name): fedfsNetPort
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.4 Object Identifier: 1.3.6.1.4.1.31103.1.4
Descriptor (short name): fedfsFsnUuid Descriptor (short name): fedfsFsnUuid
Usage: attribute type Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.5 Object Identifier: 1.3.6.1.4.1.31103.1.5
Descriptor (short name): fedfsNsdbName Descriptor (short name): fedfsNsdbName
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.6 Object Identifier: 1.3.6.1.4.1.31103.1.6
Descriptor (short name): fedfsNsdbPort Descriptor (short name): fedfsNsdbPort
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.7 Object Identifier: 1.3.6.1.4.1.31103.1.7
Descriptor (short name): fedfsNcePrefix Descriptor (short name): fedfsNcePrefix
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.8 Object Identifier: 1.3.6.1.4.1.31103.1.8
Descriptor (short name): fedfsFslUuid Descriptor (short name): fedfsFslUuid
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.9 Object Identifier: 1.3.6.1.4.1.31103.1.9
Descriptor (short name): fedfsFslHost Descriptor (short name): fedfsFslHost
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.10 Object Identifier: 1.3.6.1.4.1.31103.1.10
Descriptor (short name): fedfsFslPort Descriptor (short name): fedfsFslPort
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.11 Object Identifier: 1.3.6.1.4.1.31103.1.11
Descriptor (short name): fedfsFslTTL Descriptor (short name): fedfsFslTTL
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.12 Object Identifier: 1.3.6.1.4.1.31103.1.12
Descriptor (short name): fedfsAnnotation Descriptor (short name): fedfsAnnotation
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.13 Object Identifier: 1.3.6.1.4.1.31103.1.13
Descriptor (short name): fedfsDescr Descriptor (short name): fedfsDescr
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.14 Object Identifier: 1.3.6.1.4.1.31103.1.14
Descriptor (short name): fedfsNceDN Descriptor (short name): fedfsNceDN
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.15 Object Identifier: 1.3.6.1.4.1.31103.1.15
Descriptor (short name): fedfsFsnTTL Descriptor (short name): fedfsFsnTTL
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.100 Object Identifier: 1.3.6.1.4.1.31103.1.100
Descriptor (short name): fedfsNfsPath Descriptor (short name): fedfsNfsPath
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.101 Object Identifier: 1.3.6.1.4.1.31103.1.101
Descriptor (short name): fedfsNfsMajorVer Descriptor (short name): fedfsNfsMajorVer
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.102 Object Identifier: 1.3.6.1.4.1.31103.1.102
Descriptor (short name): fedfsNfsMinorVer Descriptor (short name): fedfsNfsMinorVer
Usage: attribute type, deprecated Usage: attribute type (historic)
Object Identifier: 1.3.6.1.4.1.31103.1.103 Object Identifier: 1.3.6.1.4.1.31103.1.103
Descriptor (short name): fedfsNfsCurrency Descriptor (short name): fedfsNfsCurrency
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.104 Object Identifier: 1.3.6.1.4.1.31103.1.104
Descriptor (short name): fedfsNfsGenFlagWritable Descriptor (short name): fedfsNfsGenFlagWritable
Usage: attribute type Usage: attribute type
Object Identifier: 1.3.6.1.4.1.31103.1.105 Object Identifier: 1.3.6.1.4.1.31103.1.105
Descriptor (short name): fedfsNfsGenFlagGoing Descriptor (short name): fedfsNfsGenFlagGoing
skipping to change at page 56, line 46 skipping to change at page 57, line 46
Object Identifier: 1.3.6.1.4.1.31103.1.1003 Object Identifier: 1.3.6.1.4.1.31103.1.1003
Descriptor (short name): fedfsFsl Descriptor (short name): fedfsFsl
Usage: object class Usage: object class
Object Identifier: 1.3.6.1.4.1.31103.1.1004 Object Identifier: 1.3.6.1.4.1.31103.1.1004
Descriptor (short name): fedfsNfsFsl Descriptor (short name): fedfsNfsFsl
Usage: object class Usage: object class
8. Glossary 8. Glossary
Administrator: An user with the necessary authority to initiate Administrator: A user with the necessary authority to initiate
administrative tasks on one or more servers. administrative tasks on one or more servers.
Admin Entity: A server or agent that administers a collection of Admin Entity: A server or agent that administers a collection of
fileservers and persistently stores the namespace information. fileservers and persistently stores the namespace information.
Client: Any client that accesses the fileserver data using a Client: Any client that accesses fileserver data using a supported
supported filesystem access protocol. file-access protocol.
Federation: A set of server collections and singleton servers that Federation: A set of server collections and singleton servers that
use a common set of interfaces and protocols in order to provide use a common set of interfaces and protocols in order to provide
to their clients a federated namespace accessible through a to their clients a federated namespace accessible through a
filesystem access protocol. filesystem access protocol.
Fileserver: A server exporting a filesystem via a network filesystem Fileserver: A server exporting one or more filesystems via a file-
access protocol. access protocol.
Fileset: The abstraction of a set of files and the directory tree Fileset: The abstraction of a set of files and the directory tree
that contains them. A fileset is the fundamental unit of data that contains them. A fileset is the fundamental unit of data
management in the federation. management in the federation.
Note that all files within a fileset are descendants of one Note that all files within a fileset are descendants of one
directory, and that filesets do not span filesystems. directory, and that filesets do not span filesystems.
Filesystem: A self-contained unit of export for a fileserver, and Filesystem: A self-contained unit of export for a fileserver, and
the mechanism used to implement filesets. The fileset does not the mechanism used to implement filesets. The fileset does not
need to be rooted at the root of the filesystem, nor at the export need to be rooted at the root of the filesystem, nor at the export
point for the filesystem. point for the filesystem.
A single filesystem MAY implement more than one fileset, if the A single filesystem MAY implement more than one fileset, if the
client protocol and the fileserver permit this. client protocol and the fileserver permit this.
Filesystem Access Protocol: A network filesystem access protocol File-access Protocol: A network filesystem access protocol such as
such as NFSv3 [RFC1813], NFSv4 [3530bis], or CIFS (Common Internet NFSv3 [RFC1813], NFSv4 [3530bis], or CIFS (Common Internet File
File System) [MS-SMB] [MS-SMB2] [MS-CIFS]. System) [MS-SMB] [MS-SMB2] [MS-CIFS].
FSL (Fileset Location): The location of the implementation of a FSL (Fileset Location): The location of the implementation of a
fileset at a particular moment in time. An FSL MUST be something fileset at a particular moment in time. An FSL MUST be something
that can be translated into a protocol-specific description of a that can be translated into a protocol-specific description of a
resource that a client can access directly, such as an fs_location resource that a client can access directly, such as an
(for NFSv4), or share name (for CIFS). Note that not all FSLs fs_locations attribute (for NFSv4), or a share name (for CIFS).
need to be explicitly exported as long as they are contained
within an exported path on the fileserver.
FSN (Fileset Name): A platform-independent and globally unique name FSN (Fileset Name): A platform-independent and globally unique name
for a fileset. Two FSLs that implement replicas of the same for a fileset. Two FSLs that implement replicas of the same
fileset MUST have the same FSN, and if a fileset is migrated from fileset MUST have the same FSN, and if a fileset is migrated from
one location to another, the FSN of that fileset MUST remain the one location to another, the FSN of that fileset MUST remain the
same. same.
Junction: A filesystem object used to link a directory name in the Junction: A filesystem object used to link a directory name in the
current fileset with an object within another fileset. The current fileset with an object within another fileset. The
server-side "link" from a leaf node in one fileset to the root of server-side "link" from a leaf node in one fileset to the root of
 End of changes. 74 change blocks. 
187 lines changed or deleted 201 lines changed or added

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