Skip to content

NLM lock failover

Wendy Cheng cluster-devel linux-nfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 13 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3NLM lock failover+0 -00 replies
1/3NLM lock failover+0 -01 reply
2/3NLM lock failover+0 -00 replies
3/3NLM lock failover+0 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Cluster-devel] [PATCH 0/3] NLM lock failover

For background info, please check out:
o http://www.redhat.com/archives/linux-cluster/2006-June/msg00050.html
for interface discussion.
o https://www.redhat.com/archives/cluster-devel/2006-June/msg00231.html
for first drafted code review.

Note and Restrictions:
o With nfs-utils-1.0.8-rc4 and nfs-utils-lib-1.0.8, the tests went surprisingly well, particularly the ha-callout feature. *No* change is made into these two user mode utility packages.
o The nfs-utils config flag RESTRICTED_STATD must be off for NLM failover to be functional correctly.
o The third parameter passed to rpc.statd ha-callout program is no longer be the system_utsname.nodename (set by sethostname()). It is, instead, the specific IP interface where the server receives the client's request.
o The patches are for NFS v2/v3 only. However, we do leave room for future NFS V4 expansion. For example, echoing client_ip@server_ip into /proc/fs/nfsd/nlm_unlock could be used to drop the V4 locks.
o IP V6 modification is not included in this patch set. If required, it will be submitted as another patch set.

PATCH 1/3
---------
Add a new admin interface into current nfsd procfs filesystem to trigger NLM lock releasing logic. The command is invoked by echoing the server IP V4 address (in standard dot notation) into /proc/fs/nfsd/nlm_unlock file as:

shell> cd /prod/fs/nfsd
shell> echo 10.10.1.1 > nlm_unlock

PATCH 2/3
---------
Add take-over server counter-part command into nfsd procfs interface to allow selectively setting of per (virtual) ip (lockd) grace period. The grace period setting follows current system-wide grace period rule and default. It is also invoked by echoing the server IP V4 address (in dot notation) into /proc/fs/nfsd/nlm_set_ip_grace file:

shell> cd /proc/fs/nfsd
shell> echo 10.10.1.1 > nlm_set_ip_grace

PATCH 3/3
---------
This kernel patch adds a new field into struct nlm_host that holds the server IP address. Upon SM_MON and SM_UNMON procedure calls, the IP (in standard V4 dot notation) is placed as the "my_name" string and passed to local statd daemon. This enables ha-callout program ("man rpc.statd" for details) to receive the IP address of the server that has received the client's request. Before this change, my_name string is universally set to system_utsname.nodename.

The user mode HA implementation is expected to:
1. Specify a user mode ha-calloupt program (rpc.statd -H) for receiving client monitored states.
2. Based on info passed by ha-callout, individual state-directory should be created and can be read from take-over server.
3. Upon failover, on take-over server, send out notification to nfs client via (rpc.statd -n server_ip -P individual_state_directory -N) command.

-- Wendy

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs