高可用性发生接pipe时,NFS服务器(Heartbeat / DRBD)会在客户端长时间挂起

我们有一个高可用性的NFS环境,使用暴露给客户端的DRBD,心跳线和nfs(与以下https://help.ubuntu.com/community/HighlyAvailableNFS相似)。 这似乎是一个相当普遍和很好的支持HA nfs的方法,对于我们来说,只要一个预见就能很好地工作。

当心跳执行切换时,nfs客户端全部挂起约60-120秒。 我可以看到,只需要5-10秒的时间来完成接pipe并获得nfs(我甚至可以手动挂载)。 但是,连接的客户端在重新build立连接之前似乎要等待一段时间。

我已经尝试了以下成功,

  • 确保/ 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较less的Ubuntu 10.4 LAMP堆栈服务器。
  • 当客户失速时,任何试图访问该共享的程序都会停止。 例如,做一个“df”会挂在nfs挂载线上的ssh会话,直到nfs回来。

任何build议将是最受欢迎的。

如果您正在使用GUI用户login(例如LTSP)运行Ubuntu,则很可能是客户端出现问题。

Gnome-Settings-Daemon有一个在NFS挂载内部挖掘周围的恶习,以检查它find的垃圾文件夹的状态。 这个问题存在于Ubuntu 9.10中,也可能在10.04中。

这在Ubuntu发行版中是硬编码的,在9.x版本中被错误地删除了。 据报道,在后来的Ubuntu发行版中已经修复了这个问题,一个常见的症状是高负载平均值,而NFS挂载无法访问。