[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    Re: [Linux-ha-dev] [PATCH] handle idmapd using nfsserver RA
From:       Junko IKEDA <tsukishima.ha () gmail ! com>
Date:       2012-05-31 1:22:27
Message-ID: CAB49TtQSu+=WYBHRwGFEsmvonTdaYvppQ7R_=xVAuM06dm8y_Q () mail ! gmail ! com
[Download RAW message or body]

Hi,

My previous patch had a spelling error, revise it just a bit.

Thanks,
Junko

2012/5/30 Junko IKEDA <tsukishima.ha@gmail.com>:
> Hi,
>
> I am trying to setup NFSv4 server using nfsserver RA,
> and adding some handlings for rpc.idmad.
> http://linux.die.net/man/8/rpc.idmapd
>
> Please see the attached.
>
> /etc/init.d/nfs script which is included with RHEL6.2 starts idmad
> during its starting process.
>
> # /etc/init.d/nfs start
> Starting NFS services: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 [ =A0OK =A0]
> Starting NFS quotas: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 [ =A0OK =A0]
> Starting NFS daemon: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 [ =A0OK =A0]
> Starting NFS mountd: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 [ =A0OK =A0]
> Starting RPC idmapd : =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 [ =A0OK =A0]
>
> But nfs init script does not stop idmapd, so I need this patch for now.
> How's that for the other distribution?
>
> # /etc/init.d/nfs stop
> Shutting down NFS mountd: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0[ =A0OK =A0]
> Shutting down NFS daemon: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0[ =A0OK =A0]
> Shutting down NFS quotas: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0[ =A0OK =A0]
> Shutting down NFS services: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0[ =A0OK =A0]
>
> # /etc/init.d/rpcidmapd status
> rpc.idmapd (pid 17450) is running...
>
> Thanks,
> Junko IKEDA
>
> NTT DATA INTELLILINK CORPORATION

["nfsserver.patch" (application/octet-stream)]

diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
index 52f00d8..db77225 100755
--- a/heartbeat/nfsserver
+++ b/heartbeat/nfsserver
@@ -75,6 +75,17 @@ IP addresses.
 <content type="string"/>
 </parameter>
 
+<parameter name="rpcidmapd_init_script" unique="0" required="0">
+<longdesc lang="en">
+The init script for rpc.idmapd.
+rpc.idmapd is the NFSv4 ID-name mapping daemon.
+</longdesc>
+<shortdesc lang="en">
+The init script for rpc.idmapd.
+</shortdesc>
+<content type="string" default="" />
+</parameter>
+
 </parameters>
 
 <actions>
@@ -124,6 +135,20 @@ nfsserver_monitor ()
 	ocf_log debug `cat $fn`
 	rm -f $fn
 
+	if [ $rc -eq 0 -a x != x"${OCF_RESKEY_rpcidmapd_init_script}" ]; then
+		while true; do
+		${OCF_RESKEY_rpcidmapd_init_script} status /dev/null 2>&1
+		if [ $? -ne 0 ]; then
+			ocf_log debug "restart rpcidmapd"
+			${OCF_RESKEY_rpcidmapd_init_script} start
+			[ $? -eq 0 ] && break
+		else
+			break
+		fi
+		sleep 1
+		done
+	fi
+
 #Adapte LSB status code to OCF return code
 	if [ $rc -eq 0 ]; then
 		return $OCF_SUCCESS
@@ -161,8 +186,11 @@ bind_tree ()
 
 unbind_tree ()
 {
-	if `mount | grep -q "rpc_pipefs on /var/lib/nfs/rpc_pipefs"`; then
-		umount /var/lib/nfs/rpc_pipefs
+	if `mount | grep -q "type rpc_pipefs"`; then
+		if [ x != x"${OCF_RESKEY_rpcidmapd_init_script}" ]; then
+			${OCF_RESKEY_rpcidmapd_init_script} stop
+		fi
+		umount -a -t rpc_pipefs
 	fi
 	if is_bound $fp /var/lib/nfs; then
 		umount /var/lib/nfs


_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic