Features/FedFS

= FedFS =

Summary
RFC 5716 introduces the Federated File System (FedFS, for short). FedFS is an extensible standardized mechanism by which system administrators construct a coherent namespace across multiple file servers using file system referrals.

Owner

 * Name: Jeff Layton


 * Email: jlayton@redhat.com

Current status

 * Targeted release: Fedora 17
 * Last updated: August 31, 2011
 * Percentage of completion: 10%

Detailed Description
RFC 5716 introduces the Federated File System (FedFS, for short). FedFS is an extensible standardized mechanism by which system administrators construct a coherent namespace across multiple file servers using file system referrals.

A file system referral is like a symbolic link to another file system share, but it is not visible to applications. It behaves like an automounted directory where a new file system mount is done when an application first accesses that directory. The arguments of the mount operation are controlled by information returned by the file server.

Today, file system referral mechanisms exist in several network file system protocols. FedFS provides its namespace features by leveraging referral mechanisms already built in to network file system protocols. Thus no change to file system protocols or clients is required.

Currently, the Linux FedFS implementation supports only NFS version 4 referrals. More on NFS version 4 referrals can be found in RFC 3530. FedFS may support other network file system protocols in the future.

Benefit to Fedora
See detailed description. As this is an emerging standard, we want Fedora to be one of the first operating systems to support it.

Chuck Lever also points out that fedfs-utils is part of a larger, ongoing effort to build out storage administration features on Linux file servers. This includes, to name but a few:


 * The ability to manage NFS referrals either via FedFS or via a simple command line tool on file servers
 * Support for SMB2 in a FedFS framework
 * Support for NFSv4.1's fs_locations_info attribute
 * Client-side support for NFSv4 migration with transparent state migration
 * Support for transparent NFS client access to replicated file sets

Scope
Much of the work for this has already been done. Chuck Lever of Oracle has done an implementation of the required userspace tools for this, and I have an initial specfile to package them. There are also some relatively modest kernel patches required that should hopefully make 3.2. We'll probably also need to do some documentation and/or articles describing how to set up both the client and server for FedFS.

The upstream project website for this is here:

http://oss.oracle.com/projects/fedfs-utils

It contains license information, presentation slides, the FedFS LDAP schema, and a project roadmap.

How To Test
(FIXME: Make this less skeletal)


 * 1) set up fedfs domain and server(s)
 * 2) set up fedfs clients
 * 3) test that fedfs referrals work

User Experience
The casual Fedora user won't see any changes with this. This should only change the experience for someone who makes the effort to set up and use FedFS.

Dependencies
There are some kernel patches required, but they are fairly modest in scope, and are likely to make it into 3.2.

There are also some changes needed to nfs-utils (specifically mountd) to allow it to process junctions.

Additionally, LDAP servers need to have the FedFS LDAP schema installed. (bug 694887)

/etc/rpc needs to be updated to include the IANA-assigned fedfs RPC program number. (bug already filed for this)

Contingency Plan
If this can't be completed in time, we simply won't ship fedfs-utils, or may just ship the client side pieces initially.

Alternately we could ship the packages and simply not announce this as a new feature until everything needed is in place.

Documentation
The package has a fairly comprehensive set of manpages, but we may also need to create some other "How-To" documentation.

Release Notes

 * We'll probably just want to mention that this release supports FedFS, and maybe provide a link to documentation for it (once there is some).

Comments and Discussion

 * See Talk:Features/YourFeatureName