迁移资源时,NFS故障转移将失败并显示失效的文件句柄

在这里遇到一些问题,我设置了两台带有Glusterfs的服务器(Centos 6)和它们之间的共享目录,我将nfs目录移动到共享的Gluster文件夹,并在两个框上创build了一个符号链接。 机器可以通过主机名与自己对话,Gluster复制通过服务器之间的另一个以太网卡进行处理。

我遇到的问题是,即使资源故障转移正确(尽pipe似乎在故障转移时出现了几次),我在客户机上得到了过时的nfs句柄。 以下是我的crmconfiguration; 我究竟做错了什么?

客户端上的nfs挂载尽可能简单。

node GlusterFS01 node GlusterFS02 primitive ClusterIP ocf:heartbeat:IPaddr2 \ params ip="10.10.10.167" cidr_netmask="24" clusterip_hash="sourceip" \ op monitor interval="5s" primitive exportfs ocf:heartbeat:exportfs \ params fsid="0" directory="/GlusterFS/Files" \ options="rw,sync,no_subtree_check,no_root_squash" \ clientspec="10.10.10.0/24" \ wait_for_leasetime_on_stop="false" \ op monitor interval="5s" \ op start interval="0s" timeout="240s" \ op stop interval="0s" timeout="100s" \ meta is-managed="true" target-role="Started" primitive nfs lsb:nfs \ meta target-role="Started" \ op monitor interval="5s" timeout="5s" colocation sitewithnfs inf: ClusterIP exportfs nfs order nfsorder inf: exportfs ClusterIP nfs property $id="cib-bootstrap-options" \ dc-version="1.1.10-14.el6_5.2-368c726" \ cluster-infrastructure="classic openais (with plugin)" \ expected-quorum-votes="2" \ stonith-enabled="false" \ no-quorum-policy="ignore" \ last-lrm-refresh="1395246465" \ default-resource-stickiness="100" rsc_defaults $id="rsc-options" \ resource-stickiness="100" 

感谢您的时间。

Update1:​​我已经决定过于复杂了。 在与Florian通话之后,他说服我简化。 我直接从Gluster分享nfs,并且只有corosync / pacemaker处理的ip资源。 更简单的解决scheme,它符合我的需求。

但是我会说,他的评价和build议是完全正确的,即使我没有把它在生产环境中100%地运行起来(即使是在testing中也是如此)。

colocation sitewithnfs inf:ClusterIP exportfs nfs

order nfsorder inf:exportfs ClusterIP nfs

首先,我相信你想在导出之前启动nfsd。

unlock_on_stop="true"参数添加到exportfs资源代理程序也可能有所帮助,但真正在我testing中发挥作用的是在故障转移期间首先停止虚拟IP。 我不完全确定为什么,但我怀疑这是与closures连接之前,试图停止出口。

另外,我还记得在旧版本的心脏起搏器中存在“资源集合”(即有两种以上资源的sorting和托pipe约束)问题。 我会build议删除您的订购和主机托pipe约束,并用一个资源组来replace它们,如下所示:

group g_nfs nfs exportfs ClusterIP

PS exportfs资源代理应该处理所有的输出。 你的/ etc / exports文件应该是空的。