我在子网 A 中的虚拟机上运行带有 LDAP 用户身份验证的 Ubuntu 10.04 NFS 服务器。该服务器使用 nfs v3 将用户主目录导出到子网 B 和 C 中的 ubuntu 客户端。该服务器正在运行其他服务,目前这对我的问题没有影响。几年来一切都运行良好。
现在我们搬到了新大楼,并获得了新的子网 D(子网 B 和 C 中的主机成为新的子网 D)。此外,与托管我的虚拟服务器的计算中心的连接现在需要一条来自商业提供商的一公里长的电缆,并且带宽更小。据我所知,这是唯一发生变化的两件事。
现在的问题是,我只能使用该nolock
选项从客户端建立有效的连接/挂载。如果没有提供此选项,我会在服务器上收到以下消息/var/log/syslog
kernel: [11457.902470] statd: server rpc.statd not responding, timed out
kernel: [11457.902481] lockd: cannot monitor notos
并且在没有 nolock 选项的情况下安装了 home 的客户端上,用户无法打开任何试图设置文件锁的带有 GUI 的程序(google-chrome,...)或甚至无法登录(因为也需要锁定)。
在迁移后的第一天,当我们在新子网中只有一半的客户端时,我并没有意识到这个问题,或者它甚至还没有出现。
除了其他许多事情之外,我还尝试了此启动板错误描述。我以为商业提供商可能不支持多播。但是没有任何效果。
任何帮助都将不胜感激。
答案1
如果您希望在 NFS 中使用锁(确实应该这样做!),您的服务器必须提供客户端可以连接的 RPC 服务器。这是为了协调锁。
验证 RPC 服务器是否正在运行。如果正在运行,则肯定有其他东西阻止了客户端与 RPC 服务器之间的通信。由于您似乎具有一般网络连接,因此肯定有防火墙(在服务器或客户端本身上,或者在客户端与服务器之间的某个地方)阻止了连接尝试。
答案2
我解决了这个问题。这与网络设置无关。最近添加的两个客户端运行的是内核版本 3.8。这个内核似乎在 lockd 中有一个错误,导致服务器 lockd 崩溃。将这些客户端的内核降级到 3.2 后,一切都像以前一样正常。
答案3
像这样添加一个条目/etc/services
:
sunrpc 111/tcp rpcbind # SUN Remote Procedure Call
sunrpc 111/udp rpcbind # SUN Remote Procedure Call