关于nfs4.1客户端负载超高,挂载hang住的问题排查

【问题现象】
多台NFS客户端,挂载同一服务端目录。新增两台客户端后,发现这两台NFS客户端系统负载不正常的高,CPU和磁盘监控数据都正常。 且运行一段时间后会偶发出现挂载丢失,hang住。df -h和ls命令查询无反应的情况。
16U的服务器,hang住之后,负载持续上升到300多,重新mount也无反应,此时只能reboot进行重启

【问题排查】
1、查看nfs服务端cat /var/log/messages,查看到有持续输出的日志:
kernel: NFSD: client x.x.x.x testing state ID with incorrect client ID
且其中的IP为新增两台服务器
2、umount其中一台服务器的挂载,tail -f /var/log/messages,NFSD告警日志停止输出
3、怀疑是新增服务器的NFS挂载请求的问题,检查客户端nfsstat -m和服务端nfsstat -s
原其他客户端服务器linux7.3,nfsstat -m 检查版本vers=4.0,nfs-utils版本1.3.0-0.33
NFS服务端linux7.4,nfsstat -S版本为nfsv4,nfs-utils版本1.3.0.-0.33
新客户端服务器为linux 7.9,nfsstat -m 版本是vers=4.1,nfs-utils版本1.3.0-0.68。
4、nfs4.1版本中新增了session分配clientid的特性,但是对于服务端还是4版本的,可能不支持该特性,导致有多台4.1客户端连接的时候,产生数据读写的冲突,也引发了在客户端服务器上,对挂载数据的读写使得系统负载很高的问题。
https://www.likecs.com/show-305428643.html
具体负载原因未进一步分析。

【问题解决】
调整高版本服务器的挂载命令,mount -t nfs -o vers=4.0
重新执行挂载,查看nfs server的messages,kernel NFSD的日志消失
运行进程,持续一段时间观察load average,恢复正常。

【后续补充】
服务端和客户端都升级到linux 7.9,nfs-utils版本1.3.0-0.68时,
默认mount -t nfs4客户端v4.1版本挂载,仍会导致客户端负载过高以致hang住的问题。
调整为mount -t nfs vers=4.0,则会出现多个客户端无法同时访问同一目录的问题。
调整为mount -t nfs vers=3,使用3版本挂载正常。
原因未明。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值