服务器已运行超过 1.5 年,没有出现任何问题。上周开始出现错误,工作站冻结:lockd:无法监控 statd:服务器 rpc.statd 无响应,超时
服务器:操作系统:Ubuntu 10.04.4 内核:Linux 2.6.32-51-server nfs-common 1:1.2.0-4ubuntu4.2 nfs-kernel-server 1:1.2.0-4ubuntu4.2 /home xxx0/255.255.0.0(rw,no_root_squash,insecure,async,wdelay,no_subtree_check) /public xxx0/255.255.0.0(rw,no_root_squash,insecure,async,wdelay,no_subtree_check)
工作站:Ubuntu 10.04.x 服务器:/home /home nfs defaults 0 0 服务器:/public /mnt/public nfs defaults 0 0
从工作站和服务器运行 rpcinfo -p 均返回正常。
在 lockd 冻结期间,服务器 100% 可访问,即 ssh top df 全部按预期返回。但是工作站无法在桌面之间移动并且变得无响应,chrome 停止运行
在服务器上 ps -aux | grep lockd 显示 lockd 进程为 D。然而几分钟后 lockd 返回到 S 和 R,工作站再次正常运行
启用 nlm_debug 后,我发现 lockd 进程确实卡住了
我注意到下面的日志中 lockd 卡住了一分钟 02:03:21 -- 02:04:21
当 lockd 卡住时,这种情况会重复发生,我发现通过重新启动“有问题的”工作站,所有系统都可以恢复正常运行。
Oct 2 02:04:21 fs1 kernel: [647001.312596] lockd: request from 172.x.x.x, port=960
Oct 2 02:04:21 fs1 kernel: [647001.312603] lockd: LOCK called
Oct 2 02:03:21 fs1 kernel: [646941.418685] lockd: nlmsvc_lookup_host(host='roi-lnx', vers=4, proto=tcp)
Oct 2 02:03:21 fs1 kernel: [646941.418687] lockd: get host roi-lnx
Oct 2 02:03:21 fs1 kernel: [646941.418688] lockd: nlm_lookup_host found host roi-lnx (172.16.16.76)
Oct 2 02:03:21 fs1 kernel: [646941.418689] lockd: nsm_monitor(roi-lnx)
Oct 2 02:04:21 fs1 kernel: [647001.312552] statd: server rpc.statd not responding,
timed out
Oct 2 02:04:21 fs1 kernel: [647001.312565] lockd: NSM upcall RPC failed, status=-5
Oct 2 02:04:21 fs1 kernel: [647001.312570] lockd: cannot monitor roi-lnx
Oct 2 02:04:21 fs1 kernel: [647001.312572] lockd: release host roi-lnx
这看起来像是 lockd 中的一个错误。
我花了几天时间在 Google 上查找,发现有几个类似的情况,但没有修复。
如果您有任何解决此问题的建议,请告诉我。
谢谢劳伦斯
答案1
在类似的环境中,10.04.4 ubuntu nfs-server 为大约 50 个 ubuntu/mac os x 客户端(主要是 12.04.3)提供服务,我遇到了同样的问题。客户端只有在使用 nolock 选项(不应该这样做)安装主目录时才能工作。
在花了两周时间调试了网络中所有可能的东西之后,我发现这在 serverfault 上,唯一的变化是包括两个运行内核 3.8.0-29-generic 的新客户端 (12.04.3)。将这两个客户端从网络中移除后(实际上是昨天),statd 和 lockd 在服务器上再次稳定。
一旦所有客户端再次全面运行,我就会报告今天发生的情况。
您的网络中有新客户吗?
答案2
我在 4 节点集群中也有过类似的经历,其中所有节点都在 ubuntu 12.04.5 下使用 3.2.0-38-generic。nfs 版本是:
dpkg -la | grep nfs
ii libnfsidmap2 0.25-1ubuntu2 NFS idmapping library
ii nfs-common 1:1.2.5-3ubuntu3.2 NFS support files common to client and server
ii nfs-kernel-server 1:1.2.5-3ubuntu3.2 support for NFS kernel server
发现其中一个有问题的节点不断“攻击 NFS 服务器”。一旦将有问题的节点从系统中移除,就不会再发生挂起。