前言
我们在使用集群的时候,一般来说比较关注的是后台的集群的状态,但是在做一些更人性化的管理功能的时候,就需要考虑到更多的细节
本篇就是其中的一个点,查询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 |