[PATCH 0/8] Snapshot of client-side NFSv4 migration support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here are some patches that move Linux towards client side support for
NFSv4.0 migration.  An earlier version of this patch set was
demonstrated at Connectathon 2011.  Think of this post as a request
for architectural review.

This set currently supports recovering from NFS4ERR_MOVED, and has
rudimentary support for NFS4ERR_LEASE_MOVED.  Recent versions of this
set have been tested with the prototype Solaris server migration
implementation (though this specific version of the set has not been
tested).

By default, the Solaris server implementation migrates state, so state
recovery after migration in this client is not yet supported or
tested.  It may work, somewhat, for certain nicely behaving cases.

There are still some protocol questions around state recovery after
migration, most immediately involving how clients should communicate
new callback endpoint information to the destination server in such a
way that existing leases are not broken.

In addition, the Solaris server implementation does not yet support
minor version 1, so this set has minor version 1 support sketched in,
but not fully implemented or tested.

These patches are on top of 2.6.38-rc8 with Trond's transport
swapping patches.  A full git repo with all these patches is available
here:

  http://git.linux-nfs.org/?p=cel/cel-2.6.git;a=commit;h=18d7665fd9c89268b4e15637df86e3b0c7144b29

This commit is tag "cel-03102011-1022".

---

Chuck Lever (8):
      NFS: Implement support for NFS4ERR_LEASE_MOVED
      NFS: Add migration recovery callouts in nfs4proc.c
      NFS: Remove "const" from "struct nfs_server *" fields
      NFS: Add basic migration support to state manager thread
      NFS: Add functions to swap transports during migration recovery
      NFS: Introduce nfs4_proc_get_mig_status()
      NFS: Save root file handle in nfs_server
      NFS: Add a lame client-side function to display file handles


 fs/nfs/client.c           |    2 +
 fs/nfs/getroot.c          |    6 ++
 fs/nfs/inode.c            |   44 ++++++++++++
 fs/nfs/internal.h         |    2 +
 fs/nfs/nfs4_fs.h          |    6 ++
 fs/nfs/nfs4namespace.c    |  162 +++++++++++++++++++++++++++++++++++++++++++++
 fs/nfs/nfs4proc.c         |  125 ++++++++++++++++++++++++++++++-----
 fs/nfs/nfs4state.c        |  150 ++++++++++++++++++++++++++++++++++++++++--
 fs/nfs/nfs4xdr.c          |   81 ++++++++++++++++++++++-
 include/linux/nfs4.h      |    1 
 include/linux/nfs_fs.h    |   13 ++++
 include/linux/nfs_fs_sb.h |    6 ++
 include/linux/nfs_xdr.h   |   35 ++++++----
 13 files changed, 593 insertions(+), 40 deletions(-)

-- 
Chuck Lever <chuck.lever@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux