From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wendy Cheng Date: Mon, 14 Aug 2006 11:59:22 -0400 Subject: [Cluster-devel] Re: [NFS] [PATCH 2/5] NLM failover - per fs grace period In-Reply-To: <1155570281.5664.84.camel@localhost> References: <1155535221.3416.26.camel@localhost.localdomain> <1155570281.5664.84.camel@localhost> Message-ID: <44E09DDA.9070302@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 10.10.1.1 that will handle exported fsid 1234 and 1235. On server, you do /proc entries based on 1234 and 1235 and you notify client about 10.10.1.1. >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