From: Frank van Maarseveen <frankvm@frankvm.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: linux-nfs@vger.kernel.org, Pavel Emelyanov <xemul@openvz.org>,
jlayton@redhat.com
Subject: Re: [NLM] support for a per-mount grace period.
Date: Sat, 30 Jul 2011 11:44:26 +0200 [thread overview]
Message-ID: <20110730094426.GA17614@janus> (raw)
In-Reply-To: <20110729171126.GN23194@fieldses.org>
On Fri, Jul 29, 2011 at 01:11:27PM -0400, J. Bruce Fields wrote:
> On Thu, Jul 28, 2011 at 08:44:18PM +0200, Frank van Maarseveen wrote:
> > The following two patches implement support for a per-mount NLM
> > grace period. The first patch is a minor cleanup which pushes
> > down locks_in_grace() calls into functions shared by NFS[234]. Two
> > locks_in_grace() tests have been reordered to avoid duplicate calls at
> > run-time (assuming gcc is smart enough). nlmsvc_grace_period is now a
> > function instead of an unused variable.
> >
> > The second patch is the actual implementation. It is currently in use for
> > a number of NFSv3 virtual servers on one physical machine running 2.6.39.3
> > where the virtualization is based on using different IPv4 addresses.
>
> Thanks, that is something we'd like to have working well.
>
> Off the top of my head:
> - Do you have a plan for dealing with NFSv4?
Not yet but I'm not aware of any additional issue there (I haven't used v4 yet).
> - Do you need any more kernel changes to get this working?
No.
> - What about userspace changes?
None except for scripting. Years ago I had to grab a random sm-notify
to make it work. At that time (2.6.27) there was a different patch
for fsid based grace times from Wendy Cheng.
> - Do you support migrating/failing over virtual nfs service
> between machines, and if so, how are you doing it?
Migration basically works as follows:
- Create a network block device on the source machine to access a
new physical block device on the destination.
- Shutdown the virtual server, create a RAID-1 device on top of
the original block device and start the server for the resulting
device. The mdadm command (v2.5.6, 2006) is something like:
mdadm -B -ayes -n2 -l1 $md $localdev -b $bitmap --write-behind missing
- Add the network block device to synchronize the destination:
mdadm $md --add --write-mostly $nbd
- When RAID-1 has synchronized then shutdown the virtual server
on the source machine and start it on the destination, i.e. migrate
its IP address.
A virtual server IP address removal is always accompanied by a
iptables -I OUTPUT -s $ADDR -j DROP
because traffic can still be in-flight causing troubles (have seen
ESTALE). Every virtual server has its own statd directory (and a
private "state" file), basically maintained from /var/lib/nfs/*. Upon
startup after a crash the latter must be saved before the standard
rpc.statd/sm-notify get a chance to empty it.
--
Frank
next prev parent reply other threads:[~2011-07-30 9:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-28 18:44 [NLM] support for a per-mount grace period Frank van Maarseveen
2011-07-28 18:44 ` [PATCH 1/2] Minor NLM cleanup preparing for a per-mount based grace time Frank van Maarseveen
2011-07-28 18:44 ` [PATCH 2/2] Support a per-mount NLM grace period Frank van Maarseveen
2011-07-29 17:11 ` [NLM] support for a per-mount " J. Bruce Fields
2011-07-29 17:40 ` Chuck Lever
2011-07-30 9:44 ` Frank van Maarseveen [this message]
2011-08-23 14:19 ` Frank van Maarseveen
2011-08-23 14:32 ` J. Bruce Fields
2011-08-23 15:49 ` Frank van Maarseveen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110730094426.GA17614@janus \
--to=frankvm@frankvm.com \
--cc=bfields@fieldses.org \
--cc=jlayton@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=xemul@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.