查看ceph集群被哪些客户端连接

前言

我们在使用集群的时候,一般来说比较关注的是后台的集群的状态,但是在做一些更人性化的管理功能的时候,就需要考虑到更多的细节

本篇就是其中的一个点,查询ceph被哪些客户端连接了

实践

从接口上来说,ceph提供了文件,块,和对象的接口,所以不同的接口需要不同的查询方式,因为我接触文件和块比较多,并且文件和块存储属于长连接类型,对象属于请求类型,所以主要关注文件和块存储的连接信息查询

我的集群状态如下

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@lab8106 ~]# ceph -s
cluster 3daaf51a-eeba-43a6-9f58-c26c5796f928
health HEALTH_WARN
mon.lab8106 low disk space
monmap e1: 1 mons at {lab8106=192.168.8.106:6789/0}
election epoch 6, quorum 0 lab8106
fsmap e20: 1/1/1 up {0=lab8106=up:active}
osdmap e52: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v27223: 96 pgs, 3 pools, 2579 MB data, 4621 objects
2666 MB used, 545 GB / 548 GB avail
96 active+clean

文件接口的连接信息查询

文件接口的连接信息是保存在MDS的,所以需要通过跟MDS进行交互查询,我的0h环境的MDS在lab8106,登陆到lab8106这台机器执行下面命令

1
2
3
4
5
6
7
[root@lab8106 ~]# ceph daemon mds.lab8106 session ls|grep 'inst\|hostname\|kernel_version'
"inst": "client.34157 192.168.8.106:0\/3325402310",
"hostname": "lab8106",
"kernel_version": "4.9.5-1.el7.elrepo.x86_64",
"inst": "client.14118 192.168.8.107:0\/2202227749",
"hostname": "lab8107",
"kernel_version": "4.1.12-37.5.1.el7uek.x86_64"

输出结果我做了过滤,主要信息是机器的IP,主机名,和内核版本

块接口的连接信息查询

块接口也就是rbd的接口的

首先在一台机器上map

1
[root@lab8106 ~]# rbd map rbd/zp1

执行查询

1
2
3
[root@lab8106 ~]# rbd status zp1
Watchers:
watcher=192.168.8.106:0/1837592013 client.34246 cookie=1844646259873284096

可以看到是被192.168.8.106使用了,也就是watcher

总结

命令都比较简单,如果做成一个监控平台,这种连接信息还是有个地方进行查询比较好

变更记录

Why Who When
创建 武汉-运维-磨渣 2017-04-13