ceph-fuse卡顿无法写入的问题

问题

ceph fuse closing stale session while still operable (Oliver Dzombic)

问题原文:

Hi,
i am testing on centos 6 x64 minimal install.
i am mounting successfully:
ceph-fuse -m 10.0.0.1:6789,10.0.0.2:6789,10.0.0.3:6789,10.0.0.4:6789
/ceph-storage/
……

分析:

问题的提出者在使用ceph-fuse去挂载集群的时候,写入一个大文件的时候出现无法写入的问题,在mds的日志当中可以看到
closing stale session client.21176728 10.0.0.91:0/1635 after 301.302291 的日志信息

从日志检查过程看
ceph -s 出现了 62 requests are blocked > 32 sec
问题提出者在认证的时候,出现了语法错误 ceph auth list showed 可以检查,后经修改,还是问题一样

查看客户端的请求:
ceph daemon /var/run/ceph/ceph-client.admin.asok objecter_requests

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"ops": [
{
"tid": 12,
"pg": "6.7230bd94",
"osd": 1,
"object_id": "10000000017.00000004",
"object_locator": "@6",
"target_object_id": "10000000017.00000004",
"target_object_locator": "@6",
"paused": 0,
"used_replica": 0,
"precalc_pgid": 0,
"last_sent": "2016-01-22 23:11:28.788800",
"attempts": 95,
"snapid": "head",
"snap_context": "1=[]",
"mtime": "2016-01-21 23:41:18.001327",
"osd_ops": [
"write 0~4194304 [5@0]"
]

其中

1
"attempts": 95,

这个可以说明请求了95次还没有回应,从这个分析,应该是问题提出者的环境中的某个osd出现了问题,阻塞了请求

总结:

在无法写入的时候,可以查看下客户端的sock去查看哪个请求被阻塞了,然后去排查对应的osd即可