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

[Cluster-devel] Re: [NFS] [PATCH 2/5] NLM failover - per fs grace period

Trond Myklebust wrote:

On Mon, 2006-08-14 at 02:00 -0400, Wendy Cheng wrote:
This change enables per NFS-export entry lockd grace period. The
implementation is based on a global single linked list nlm_servs that
contains entries of fsid info. It is expected this would not be a
frequent event. The nlm_servs list should be short and the entries
expire within a maximum of 50 seconds.  The grace period setting follows
the existing NLM grace period handling logic and is triggered via
echoing the NFS export filesystem id into /proc/fs/nfsd/nlm_set_igrace
file as:

shell> echo 1234 > /proc/fs/nfsd/nlm_set_igrace

I still don't find the above interface convincing.

Firstly, as I already told you, the NSM protocol does not allow you to
set only a single filesystem in grace. Clients get notified of server
reboots, not filesystem reboots: if they try to reclaim locks and find
out that some of filesystems they have mounted will not allow them to do
so, then they _will_ get confused and start dropping locks that would
otherwise be perfectly valid.
I'll check into Linux client code to see what's going on. But please be aware that the individual filesystem grace period goes with floating ip. You notify (nfs) client by floating ip address, NOT by filesystem id (but set the grace period in server via fsid).

Say you expect nfs requests going into floating ip that will handle exported fsid 1234 and 1235. On server, you do /proc entries based on 1234 and 1235 and you notify client about

Secondly, with the above interface, you have to export the filesystem
first, and then set the grace period.
No, you don't. The changes and code has nothing to do with export. It just adds the numerical fsid into a global array (nlm_servs). When lock requests finally arrive (later), it extracts the filesystem id from the filehandle to compare. It can be invoked before filesystem is exported.

-- Wendy

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