我们有一个使用 DRBD、心跳和 nfs 暴露给客户端的高可用性 NFS 环境(类似于以下https://help.ubuntu.com/community/HighlyAvailableNFS)。这似乎是执行 HA nfs 的一种相当常见且得到良好支持的方法,并且对我们来说非常有效,并且有一个预期。
当心跳执行切换时,nfs 客户端都会挂起大约 60-120 秒。我可以看到心跳只需 5-10 秒即可完成接管并启动 nfs(我什至可以手动安装它)。但是连接的客户端似乎在重新建立工作连接之前等待某种超时。
我尝试了以下但没有成功;
- 确保 /var/lib/nfs 存储在 drdb 磁盘上并符号链接回 /var/lib
- UDP 或 TCP 客户端连接
- NFS 服务器导出定义导出中的 fsid。
- 在挂载中使用客户端 timeo=
- 硬/软安装
设置如下;
- NFSv4
- Ubuntu LTS 服务器和客户端
- 当前客户端挂载选项=proto=tcp,noauto,bg,intr,hard,noatime,nodiratime,nosuid,noexec
笔记
- 我注意到 /var/lib/nfs/rmtab 总是空的,我不知道为什么。这可能是原因吗?
- 客户端是无 GUI 的 ubuntu 10.4 LAMP 堆栈服务器。
- 当客户端停止时,任何试图访问共享的程序都会停止。例如,执行“df”将在 nfs 挂载行挂起 ssh 会话,直到 nfs 返回。
任何建议将是最受欢迎的。