用于网络文件系统 (NFS) 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

Sun Cluster HA for NFS 故障监视器

Sun Cluster HA for NFS 故障监视器使用以下两个进程:

启动故障监视器

首先,NFS 资源 MONITOR_START 方法启动 NFS 系统故障监视器。此启动方法先检查 NFS 系统故障监视器 (nfs_daemons_probe) 是否已在进程监视器守护程序 (rpc.pmfd) 下运行。如果 NFS 系统故障监视器未运行,启动方法将在进程监视器的控制下启动 nfs_daemons_probe 进程。然后,启动方法将仍然在进程监视器的控制下启动资源故障监视器 (nfs_probe)。

停止故障监视器

首先,NFS 资源 MONITOR_STOP 方法停止资源故障监视器。然后,如果本地节点上没有运行其它 NFS 资源故障监视器,此方法将停止 NFS 系统故障监视器。

NFS 系统故障监视器进程

NFS 系统故障监视器通过检查进程是否存在及其对空 rpc 调用的响应,来探测本地节点上的 rpcbindstatdlockdnfsdmountd。此监视器使用以下 NFS 扩展特性。

Rpcbind_nullrpc_timeout Lockd_nullrpc_timeout
Nfsd_nullrpc_timeout Rpcbind_nullrpc_reboot
Mountd_nullrpc_timeout Nfsd_nullrpc_restart

Statd_nullrpc_timeout

Mountd_nullrpc_restart

请参见配置 Sun Cluster HA for NFS 扩展特性以查看或设置扩展特性。

每个系统故障监视器探测周期将在一个循环中执行以下步骤。

  1. 进行休眠,时间为 Cheap_probe_interval

  2. 探测 rpcbind

    如果进程意外终止,但是守护程序正在进行重新热启动,rpcbind 将继续探测其它守护程序。

    如果进程意外终止,则故障监视器将重新引导节点。

    如果针对守护程序的空 rpc 调用意外终止,并且 Rpcbind_nullrpc_reboot=TrueFailover_mode=HARD,则故障监视器将重新引导节点。

  3. 先探测 statd,然后探测 lockd

    如果 statdlockd 意外终止,则系统故障监视器将尝试重新启动这两个守护程序。

    如果针对这些守护程序的空 rpc 调用意外终止,则故障监视器将在 syslog 中记录一条消息,但是不会重新启动 statdlockd

  4. 探测 mountd

    如果 mountd 意外终止,则故障监视器将尝试重新启动该守护程序。

    如果针对守护程序的空 rpc 调用意外终止,并且 Mountd_nullrpc_restart=True,则故障监视器将在群集文件系统可用时尝试重新启动 mountd

  5. 探测 nfsd

    如果 nfsd 意外终止,则故障监视器将尝试重新启动该守护程序。

    如果针对守护程序的空 rpc 调用意外终止,并且 Nfsd_nullrpc_restart=TRUE,则故障监视器将在群集文件系统可用时尝试重新启动 nfsd

如果上述任何 NFS 守护程序(rpcbind 除外)在探测周期期间无法重新启动,则 NFS 系统故障监视器将在下一个周期内再次尝试重新启动。当所有 NFS 守护程序均已重新启动并且运行正常时,资源状态将被设置为 ONLINE。监视器在上一个 Retry_interval 内记录 NFS 守护程序的意外终止。如果守护程序的意外终止总数达到了 Retry_count,则系统故障监视器将发出 scha_control 停止通知。如果停止调用失败,监视器将尝试重新启动失败的 NFS 守护程序。

在每个探测周期的末尾,如果所有守护程序均正常运行,监视器将清除故障历史记录。

NFS 资源故障监视器进程

启动资源故障监视器探测之前,请从 dfstab 文件读取所有共享路径并将它们存储在内存中。在每个探测周期内,通过对路径执行 stat() 以探测每个迭代中的所有共享路径。

每个资源故障监视器故障探测将在一个循环中执行以下步骤。

  1. 进行休眠,时间为 Thorough_probe_interval

  2. 如果 dfstab 自上次读取后已发生更改,则刷新内存。

    如果在读取 dfstab 文件时发生错误,则资源状态将被设置为 FAULTED,监视器将跳过当前探测周期的剩余检查。

  3. 通过对路径执行 stat() 以探测每个迭代中的所有共享路径。

    如果任何路径不能正常运行,则资源状态将被设置为 FAULTED

  4. 探测 NFS 守护程序(nfsdmountdlockdstatd)以及 rpcbind 是否存在。

  5. 如果这些守护程序中的任何一个停止,则资源状态将被设置为 FAULTED

如果所有共享路径都有效并且 NFS 守护程序都存在,则资源状态将在探测周期的末尾被重置为 ONLINE