迁移到新子网后,不能再使用文件locking进行NFS挂载:statd超时,lockd无法监视

我正在子网A中的虚拟机上运行带有LDAP用户authentication的Ubuntu 10.04 NFS服务器。服务器使用nfs v3将用户主目录导出到子网B和C中的ubuntu客户端。服务器有其他服务正在运行,目前我的问题无关紧要。 一切工作好几年。

现在我们搬到一个新的大楼,并得到一个新的子网D(子网B和C中的主机成为新的子网D)。 此外,与托pipe我的虚拟服务器的计算中心的连接,现在距离商业提供商一公里的电缆,并且具有较小的带宽。 这些是我所知道的唯一改变的两件事。

现在的问题是,我只能通过使用nolock选项从客户端进行工作连接/挂接。 如果未提供此选项,则在/var/log/syslog的服务器上收到以下消息

 kernel: [11457.902470] statd: server rpc.statd not responding, timed out kernel: [11457.902481] lockd: cannot monitor notos 

并且在没有nolock选项的情况下,用户无法使用gui尝试设置文件locking(google-chrome,…)或甚至无法login(因为需要locking)而打开任何程序。

移动后的第一天,当我们在新子网中只有一半的客户时,我并没有意识到这个问题,甚至没有出现。

除了许多其他的事情,我尝试了这个启动板错误描述中描述的内容 。 我认为商业提供商可能不能组播。 但是没有任何效果。

任何帮助将appriciated。

如果你想使用NFS锁(而且真的应该!),你的服务器必须提供一个客户端可以连接的RPC服务器。 这是为了协调锁。

validationRPC服务器正在运行。 如果是这样,必须有其他的东西阻止你的客户端和RPC服务器之间的通信。 由于您似乎具有通用的networking连接,因此必须有防火墙(无论是在服务器上,还是在客户端本身,或者客户端与服务器之间的某个地方)阻止连接尝试。

我解决了这个问题。 这与networking的设置没有任何关系。 最近添加的两个客户端运行内核版本3.8。 这个内核似乎在locking有一个错误,导致服务器locking崩溃。 将这些客户端的内核降级到3.2之后,一切都如以前那样运行。

/etc/services添加一个条目,如下所示:

 sunrpc 111/tcp rpcbind # SUN Remote Procedure Call sunrpc 111/udp rpcbind # SUN Remote Procedure Call