From: Chenggong Charles Fan (fan@rainfinity.com)
Date: 11/08/04-06:50:57 PM Z
Message-ID: <41901471.7040903@rainfinity.com>
Date: Mon, 08 Nov 2004 16:50:57 -0800
From: Chenggong Charles Fan <fan@rainfinity.com>
Subject: [nfsv4] A draft on the global namespace problem
Hi,
Attached is a slightly updated draft of the global namespace problem.
Thanks,
Charles
INTERNET-DRAFT C. Charles Fan
Expires: April 2005 Rainfinity
October 2004
NFSv4 Global Namespace Requirements
draft-fan-nfsv4-global-namespace-requirements-00.txt
Status of this Memo
By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed,
or will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts
as reference material or to cite them other than as "work in
progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt The list of
Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . 1
2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Requirements . . . . . . . . . . . . . . . . . . . . . . 3
4. Architecture . . . . . . . . . . . . . . . . . . . . . . 3
5. Work Items . . . . . . . . . . . . . . . . . . . . . . . 4
Acknowledgements . . . . . . . . . . . . . . . . . . . . 4
Normative References . . . . . . . . . . . . . . . . . . 4
Author's Address . . . . . . . . . . . . . . . . . . . . 5
Full Copyright Statement . . . . . . . . . . . . . . . . 5
1. Introduction
Global Namespace has been raised as one of the desired features of
NFSv4. RFC3530 specifies support for NFS4ERR_MOVED error code, the
fs_location attribute, and the volatile file handles. These
specifications provide the possibility of implementing NFSv4 global
namespace solutions within the RFC3530 spec.
There has not been a document that defines what is the global
namespace for NFSv4, What problems it intends to solve, or what
requirements it needs to meet. Some have mentioned as references
existing namespace solutions in NFS v2/v3, CIFS and AFS. For
example in NFS v2/v3 there are automounter-based solutions. CIFS
includes specification of Dfs links that supports the deployment of
Dfsroot namespace server. AFS can dynamically map its volumes to
different physical locations by the use of Volume Location Database
(VLDB). The functionalities of each of these solutions vary.
The goal of this draft is to define what's the scope and the
requirements of the global namespace for NFSv4. The document will
also list some architecture alternatives, and propose a list of work
items to start tackling this problem.
2. Scope
There are at least three different kind of namespaces that had been
referred to as global namespace for file storage:
1. Intra-cluster namespace. This is the unified namespace for all
NAS servers in a tightly-coupled or aggregated cluster. People
refer to it as "global" namespaces, as opposed to the "local"
namespace of each node in the cluster. Many proprietary intra-
cluster namespace schemes exist today as part of vendor solutions.
2. Enterprise namespace. This is the most requested form of "global
namespace" from the enterprise storage administrators. An
enterprise namespace provides a uniform view into the network file
storage for the entire enterprise.
3. World-wide namespace. This makes possible the "world-wide NFS",
with a global URL to each file. This could be achieved by an
extension of the enterprise namespace scheme.
This draft focuses on the enterprise namespace. Enterprise file
storage environment will continue to grow and continue to be
heterogeneous. Standardization supports the interoperability
between different vendors, and having a standards-based namespace
solution for NFSv4 will help the wide adoption of the protocol.
3. Requirements
What are the requirements for a enterprise-wide namespace? Here is
a list of basic requirements:
- Location Independent: The namespace tree is designed according to
business or logical divisions, independent of the physical location
of the data. This implies that the namespace needs to maintain a
"map" or "location table" that links between the logical namespace
and the physical locations.
- Uniform View: There should be a single map of the namespace that
all clients agree as authoritative. This implies the existence of a
root server and/or central repository for an enterprise domain, but
does not imply that each client must mount into this unified
namespace in the same way.
- Transparent: It is desired that when the physical location of the
data changes due to administrative reasons (either by migration or
replication), the namespace to the clients remain constant. The
update of the namespace map entry can be achieved transparently to
the clients. The client applications continue running, namespace
remain constant, while the data is now from a different physical
location.
- Secure. The deployment of a namespace solution must not
compromise the security of data access.
In addition to the above three requirements, there are more advanced
and/or detailed requirements:
- Granularity of namespace mapping. Whether the namespace mapping
can happen at the file system granularity, or directory granularity,
or file granularity, or sub-file granularity?
- Hierarchical Mapping. Is it possible for namespace entry /a/b to
link to filerA, while /a/b/c to link to filerB?
- Variable Support. Depending on variables such as client OS,
client geographical location, or time-of-day, can the namespace
mapping be different? It is critical to many customer environments.
- Manageability. Can the namespace be accessed and modified real-
time by administrators? by applications? by user groups? How fast
does a namespace mapping change propagate to all clients?
- Cycle Prevention. Will the namespace tree be guaranteed to be
acyclic?
- Multi-protocol Interoperability. Will NFSv2 and v3 clients be
able to use this same namespace? Will this namespace be
synchronized with the CIFS namespace?
A viable global namespace solution will need to be location
independent, unified, transparent and secure. It should also
consider the finer requirements to make itself an attactive solution
to the enterprise administrators.
4. Architecture
In an email to the Work Group mailing list, David Robinson outlined
a taxonomy of three approaches how a global namespace solution can
be achieved. They are "dumb server, smart client" (#1), "smart
server, dumb client" (#3), and "somewhere in-between" (#2).
For NFS v2/v3 environments, the most popular namespace solution
implemented is automounter daemon with automounter maps centrally
managed at NIS server or LDAP server. This solution belongs to
category #1. The popularity of this solution shows that it
addresses some of the namespace requirements outlined. In
particular, it supports "location independent" requirement (at
export granularity), the "unified" requirement and the "secure"
requirement. In addition, it supports hierarchical mapping and
wildcard variables. Because there is no server to server redirect,
there is no cycle issues here either.
So why do some NFS enterprise users still ask for a "global
namespace"? What is it lacking in an automounter-based solution?
Here is what I've heard from NFS administrators. First the update
of the automounter map is not completely transparent. Clients which
have applications running and keeping the old mount active will not
let go the old mount. For some versions of some OS, even after the
mount become inactive, the old mount still won't be released, even
with "-f" option. Dealing with the varieties of client OS's and
versions, this is a difficult problem to completely solve.
Secondly the granularity of this solution is at export level. For
some applications that require a global namespace, such as Load
Balancing, HSM (or more fashionably, ILM) applications, finer
granularity (directory, file, sub-file) is desired.
There has been good agreement that approach #3 (smart server, dumb
client) is a "best vendor win" solution, and out of scope for the
workgroup. Category #2 becomes the interesting case where by v4
protocol enhancements over v2/v3 that make the client and server
both just a little bit smarter, a superior solution (in terms of
transparency, granularity, and possibly manageability) to the
current automounter/NIS/LDAP solution might be possible.
5. Work Items
First, we should choose a central repository, such as LDAP, for the
namespace mappings. We can work to define a standard schema for the
NFS namespace mappings. This work is not part of the NFSv4 protocol
itself, but it's not too far-fetching for us to attempt it for an
NFS namespace. There were suggestions of having this namespace to
support multi-protocol. That might be too ambitious, since CIFS is
hardly under our control, and not even well documented.
Second, we need to clarify the client-server interactions based on
the "right interpretations" of RFC 3530. Dave Noveck has an I-D on
this topic. [Noveck] I believe most immediately this is the most
challenging piece of work, with clarification needed in how to
implement this section of RFC3530 for both the migration case and
the pure referral case. The security issues should also be
considered that the proposed scheme doesn't compromise existing
level of security. The hope is that this challenge will be
overcome, and we'll be able to have the first client, server and
namespace server reference implementation of the most basic use of
the NFS4ERR_MOVED and fs_location.
Third, we should define a mechanism with which clients in the
enterprise know where to find the root for the NFS enterprise
namespace. One simple solution is to leverage the DNS domain, and
set up a convention that the DNS name nfsroot always corresponds to
the root namespace server. The root namespace server can refer
clients to other namespace servers. Schemes should be designed to
enforce that the relationship between namespace servers is
hierarchical and not cyclical. This scheme can be extended to
support world-wide NFS namespace as well.
Fourth, backward compatibility with v2 and v3 is very important.
Automounters are able to access the central repository (LDAP or
else) to enforce the namespace mappings by mounting according to the
mappings. The control should be in the administrator's hand how he
would like to configure the environment and how he would like the
clients access the namespace, either by client-based automounter, or
via accessing the namespace server. There were comments that
allowing one namespace method is better than two, but in this case
allowing both might be necessary, for backward compatibility and
future enhancement.
Fifth, with NFSv4.x clients accessing the namespace through the
namespace server via NFS protocol, it is then possible to enhance
the protocol in the form of minor versions to support better
transparency and finer granularity and better manageability.
Possible enhancements in 4.x that may worth some discussion include
file-level referrals, lifetime on file handles, additional client-
server exchange of variable values, etc.
If this is a workable architecture, perhaps we have the following
work items?
1. NFSv4 Global Namespace Problem Statement
2. Clarification on NFSv4 client-server ops involving NFS4ERR_MOVED
and fs_location.
3. Best Practice in configuring NFSv4 enterprise namespace,
including nfsroot schemes.
4. Proposal for NFSv4 minor version enhancements
5. Proposal for database schema for NFS namespace
6. Prototype implementation of the client, server and namespace
server.
Acknowledgements
The author would like to thank many people in the work group with
contributions to the mailing list on this topic.
Normative References
[RFC3530]
S. Shepler, et. al., "NFS Version 4 Protocol", Standards Track
RFC
[Noveck]
D. Noveck, "Migration Issues for NFSv4", IETF Internet Draft,
draft-noveck-nfsv4-migration-issues-00.txt
[Thurlow]
R. Thurlow, "A Namespace For NFS Version 4", IETF Internet
Draft, draft-thurlow-nfsv4-namespace-00.txt
Author's Address
C. Charles Fan
Rainfinity
2740 Zanker Road
San Jose, CA 95134 USA
Phone: +1 408 382 4755
EMail: fan@rainfinity.com
Full Copyright Statement
Copyright (C) The Internet Society (2004). This document is
subject to the rights, licenses and restrictions contained in BCP
78 and except as set forth therein, the authors retain all their
rights.
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC
documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4
This archive was generated by hypermail 2.1.2 : 03/04/05-02:13:33 AM Z CST