迁移资源时,NFS 故障转移因文件句柄过时而失败

迁移资源时,NFS 故障转移因文件句柄过时而失败

这里遇到了一点问题,我设置了两台服务器 (Centos 6),其中安装了 Glusterfs,并在它们之间建立了一个共享目录,我将 nfs 目录移到了共享的 Gluster 文件夹中,并在两台机器上都创建了一个符号链接。机器可以通过主机名进行自我通信,Gluster 复制通过服务器之间的另一张以太网卡进行处理。

我遇到的问题是,即使资源正确地进行了故障转移(尽管在故障转移过程中似乎会出现几次启动和关闭),客户端上的 nfs 句柄仍然过时。以下是我的 crm 配置;我做错了什么?

客户端上的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" 

感谢您的时间。

更新 1:我决定把所有事情都复杂化。在与 Florian 通话后,他说服我简化。我直接从 Gluster 共享 nfs,并且只有由 corosync/pacemaker 处理的 ip 资源。更简单的解决方案,满足我的需求。

然而我要说的是,Dok 的评估和建议是完全正确的,尽管我无法在生产环境中 100% 地启动并运行它(即使认为在测试中是可行的)。

答案1

共置 sitewithnfs inf: ClusterIP exportfs nfs

订单 nfsorder inf:exportfs ClusterIP nfs

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

向 exportfs 资源代理添加unlock_on_stop="true"参数可能也有帮助,但在我的测试中真正起作用的是在故障转移期间首先停止虚拟 IP。我不太清楚为什么,但我怀疑这与在尝试停止导出之前关闭连接有关。

另外,我记得旧版本的 Pacemaker 中存在“资源集”(即具有两个以上资源的排序和共置约束)问题。我建议删除排序和共置约束,并将其替换为单个资源组,如下所示:

group g_nfs nfs exportfs ClusterIP

PS:exportfs 资源代理应处理所有导出。您的 /etc/exports 文件应为空。

相关内容