CephFs 多节点并发读写,mds0: Client XXX:XXX failing to respond to capability release

场景描述:

在大概10台机器上面起了50个consumer实例运行,在这10台中选了1台运行一个producer实例。其中每个实例都会挂载cephfs中的同一个目录/online/import到本机。

其中producer 会删除目录下的文件

其他节点约50多个实例只会读取目录下的文件

问题描述:

CephFs会产生偶发性warning
在Mgr dashboard界面可以看到如下信息
cephfs/ceph-fuse: mds0: Client XXX:XXX failing to respond to capability release

暂时性解决办法

方法一:通过ceph health detail命令查看到具体出问题的client,将该client加入blacklist,然后再移除
方法二:将出问题的实例,重新挂载fs
方法三:如果是多活MDS的话,ceph health detail命令也显示出来是哪个MDS将Client标记为warning,重启该MDS。(有风险哦,自行评估)

问题查找

1. 参考了一些博客:

https://blog.51cto.com/michaelkang/1950506
我们集群MDS配置的mds_cache_memory_limit大小为30GB,排除了内存不足的原因

2. 参考了下官网对此的解释:
https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/ceph_file_system_guide_technology_preview/troubleshooting

出现上述错误是因为
capabilities就像一把锁,如果一个client占有了,但是当client需要访问的时候,MDS会通知client来释放,如果超时就出现上述错误。

比如这种情况下会需要caps release:
https://www.spinics.net/lists/ceph-devel/msg39777.html
如果释放失败,或者超时就会报错。

对于我上面服务的场景来说,情况就是consumer读取到了文件,处理成功之后,producer需要删除该文件,此时就涉及到了capabilities的释放。

3. 根据ceph官网记录,可能这个4.9 kernel 存在的bug
https://tracker.ceph.com/issues/18798
https://ceph-users.ceph.narkive.com/8cpL6ibq/cephfs-ceph-fuse-mds0-client-xxx-xxx-failing-to-respond-to-capability-release
根据上面帖子中的讨论,4.9和4.4的内核都有这个问题存在。Ceph开发人员也建议升级到高于4.9的版本。

其他讨论:

https://tracker.ceph.com/issues/11482

https://tracker.ceph.com/issues/11482

官网的介绍中也指出可能出现问题的地方:

https://docs.ceph.com/docs/master/cephfs/troubleshooting/

If operations are stuck on a specific inode, you probably have a client holding caps which prevent others from using it, either because the client is trying to flush out dirty data or because you have encountered a bug in CephFS’ distributed file lock code (the file “capabilities” [“caps”] system).

最终

将服务全部部署在4.11的内核的机器上之后,确实没再出现过问题了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值