我有一个运行 Ubuntu 10.04 的 NFS 服务器,服务于 OCFS2 文件系统。设置有点复杂,因为服务器安装了 Heartbeat 和 Pacemaker 以与另一台服务器建立集群。
不管怎样,奇怪的是:
# tail -12 /var/log/messages
Jul 17 17:15:45 ctserv01 exportfs[14870]: INFO: Directory /export/homes is exported to 172.16.54.0/24 (started).
Jul 17 17:15:45 ctserv01 exportfs[14869]: INFO: Directory /export/proyectos is exported to 172.16.54.0/24 (started).
Jul 17 17:15:45 ctserv01 exportfs[14871]: INFO: Directory /export is exported to 172.16.54.0/24 (started).
Jul 17 17:16:15 ctserv01 exportfs[15960]: INFO: Directory /export/proyectos is exported to 172.16.54.0/24 (started).
Jul 17 17:16:15 ctserv01 exportfs[15961]: INFO: Directory /export is exported to 172.16.54.0/24 (started).
Jul 17 17:16:15 ctserv01 exportfs[15962]: INFO: Directory /export/homes is exported to 172.16.54.0/24 (started).
Jul 17 17:16:45 ctserv01 exportfs[17054]: INFO: Directory /export/proyectos is exported to 172.16.54.0/24 (started).
Jul 17 17:16:45 ctserv01 exportfs[17055]: INFO: Directory /export/homes is exported to 172.16.54.0/24 (started).
Jul 17 17:16:45 ctserv01 exportfs[17056]: INFO: Directory /export is exported to 172.16.54.0/24 (started).
Jul 17 17:17:15 ctserv01 exportfs[18168]: INFO: Directory /export is exported to 172.16.54.0/24 (started).
Jul 17 17:17:15 ctserv01 exportfs[18169]: INFO: Directory /export/proyectos is exported to 172.16.54.0/24 (started).
Jul 17 17:17:15 ctserv01 exportfs[18170]: INFO: Directory /export/homes is exported to 172.16.54.0/24 (started).
日志显示 exportfs 每 30 秒重新生成一次。NFS 服务器大部分时间工作正常,但几天后,它开始每 13-15 分钟挂起长达 20 秒,人们为此大声疾呼。
可能 Pacemaker、Heartbeat 或其他东西导致了这种情况。或者这可能是预期的行为,问题应该出在其他地方?
Pacemaker 配置(注意 /export/proyectos 现在已停止):
# crm configure show
node $id="06334af6-e766-457c-8c30-457080276507" ctserv01
node $id="bf53e028-9f27-4ef3-bb45-4fcef981e441" ctserv02
primitive ClusterIP ocf:heartbeat:IPaddr2 \
params ip="172.16.54.56" cidr_netmask="24" nic="eth0"
primitive exports_nfs_home ocf:heartbeat:exportfs \
params rmtab_backup="none" directory="/export/homes" clientspec="172.16.54.0/24" options="rw,async,no_subtree_check,insecure,root_squash" fsid="1" \
op monitor interval="30s" \
op start interval="0" timeout="240s" \
meta target-role="Started"
primitive exports_nfs_proys ocf:heartbeat:exportfs \
params rmtab_backup="none" directory="/export/proyectos" clientspec="172.16.54.0/24" options="rw,async,no_subtree_check,insecure,root_squash" fsid="2" \
op monitor interval="30s" \
op start interval="0" timeout="240s" \
meta target-role="Stopped"
primitive exports_nfs_root ocf:heartbeat:exportfs \
params rmtab_backup="none" directory="/export" clientspec="172.16.54.0/24" options="rw,async,no_subtree_check,insecure" fsid="0" \
op monitor interval="30s" \
op start interval="0" timeout="240s"
group grupo_nfs ClusterIP exports_nfs_root exports_nfs_home exports_nfs_proys
location nodo_preferido grupo_nfs 100: 06334af6-e766-457c-8c30-457080276507
order orden_de_recursos inf: ClusterIP exports_nfs_root exports_nfs_home exports_nfs_proys
property $id="cib-bootstrap-options" \
dc-version="1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c" \
cluster-infrastructure="Heartbeat" \
stonith-enabled="false" \
no-quorum-policy="ignore" \
expected-quorum-votes="2" \
cluster-recheck-interval="60min"
您看到的垃圾日志消息来自
ocf:heartbeat:exportfs
资源代理。它们每 30 秒出现一次,这对应于您在 exportfs 原语定义中指定的监视间隔。恕我直言,资源代理有点过于冗长,但这应该不是问题。只需确保您经常进行 logrotate,以使日志不会填满您的磁盘。或者将资源代理编辑得不那么冗长。您的问题可能在集群设置的某个更深层次。您发布的 Pacemaker 配置是否完整?在我看来,集群并没有管理它应该管理的所有资源,比如 NFS 服务器本身、idmapd 或绑定挂载。
众所周知,NFS(在 Linux 下)很难在 HA 环境中正确运行。我建议您阅读Linbit的 HA NFS 技术指南,他们是制作 DRBD 和大部分 Linux HA 堆栈的人。需要免费注册,但它是关于设置工作和稳定的 NFS HA 集群的非常好的和详细的指南。我们在生产中运行了几个这样的集群。