一、客户端:lockd: server <nfs_server_address> not responding, still trying
1.1 原因1:udp丢包
在客户端抓包,定位问题
# tcpdump 抓包
tcpdump -i eth0 -s 0 -w /tmp/tcpdump.pcap host <nfs-server-address>
# iperf 测试
## 服务端
iperf -s <nfs-server-ip>
## 客户端
iperf -c <nfs-server-address> -u -b 100M -t 300
根据上述命令的返回结果判断UDP协议是否丢包,如果丢包严重,则确定了原因
解决方案:修改nfs 挂载参数,mount -o proto=tcp <nfs_server_address>
,挂载时添加 proto=tcp 参数
1.2 原因2:文件锁定
nolock
参数的作用
作用:
nolock
参数用于禁用 NFS 客户端的文件锁定功能。当指定此参数时,客户端不会使用 RPC 锁定服务来处理文件锁定操作。这通常在以下几种情况下是有用的:- 简化配置:在不需要文件锁定的情况(例如,只有一个客户端或对文件的并发访问不是问题)时,可以避免使用额外的锁定机制,从而简化配置。
- 解决锁服务不可用的问题:如果 NFS 服务器上的锁定服务不可用,客户端可以使用
nolock
来绕过这个问题,仍然能够访问共享文件。
优点
- 提高性能:禁用锁定可以减少网络开销和延迟,尤其是在对文件的高频读写操作时,因此可能会提高性能。
- 简化配置:在一些简单的或特定用例中,省略锁定可以简化 NFS 的配置和管理。
- 解决特定问题:如果遇到因锁服务引起的挂载或访问失败的问题,使用
nolock
可能是一个临时的解决方案。
缺点和风险
- 数据一致性问题:不使用锁定会导致数据一致性问题,尤其是当多个客户端对同一文件进行写操作时。没有锁定的情况下,多个客户端可能同时更改同一个文件,这将导致数据损坏和不一致。
- 并发访问问题:在多用户环境中,多个客户端可能同时对文件进行操作而不进行任何控制,会导致意外的结果。例如,两个客户端可能同时读取和写入文件,导致一个客户端的更改被另一个客户端覆盖。
- 调试困难:当出现由于缺乏锁定导致的数据一致性问题时,调试和追踪问题可能会变得更复杂,因为缺乏“锁”的调试信息。
- 不适用于所有应用:对于需求高的应用程序(如数据库等)来说,不使用锁是不可取的,因为这会严重影响数据的完整性和可靠性。
解决方案:修改nfs 挂载参数,mount -o nolock <nfs_server_address>
,挂载时添加 nolock 参数
二、服务端:kernel: statd: server rpc.statd not responding, timed out
详细日志:
kernel: statd: server rpc.statd not responding, timed out
kernel: cannot monitor <nfs_client_address>
原因:文件锁定
解决方案:修改nfs 挂载参数,mount -o nolock <nfs_server_address>
,挂载时添加 nolock 参数
三、服务端:kernel: NFSD: client <nfs_client_address> testing state ID with incorrect client ID
详细日志:
kernel: NFSD: client <nfs_client_address> testing state ID with incorrect client ID
kernel: nfsd4_validate_stateid: 119 callbacks suppressed
原因:nfs 客户端协议版本不兼容,建议使用 nfs v3版本。v4支持了acl等特性。但是部分老系统兼容性有问题,不建议使用
解决方案:
在 CentOS 8.2.2004 中,编辑 /etc/nfs.conf
文件中的 [nfsd]
模块:
vers4=n
vers4.0=n
vers4.1=n
vers4.2=n
重启 nfs-server
服务,systemctl restart nfs-server.service
四、参考链接
https://www.ovirt.org/develop/troubleshooting-nfs-storage-issues.html
https://access.redhat.com/zh_CN/solutions/1386653
https://www.cnblogs.com/jasmine456/p/18061458
https://serverfault.com/questions/527463/desperate-statd-timed-out-lockd-cannot-monitor-unmonitor
2 条评论
非常感谢,很有用
不客气