Ceph:如何查看rbd映射的设备被哪个客户端使用

一、场景说明:

    Ceph的运维过程中,管理员有时候会遇到Ceph的RBD设备,通过映射的方式给客户端进行使用,但是过段时间后,在服务端,你想知道到底某个pool的img被哪个客户端占用着。另外一种情况,比如想删除某个image,但那个image可能被客户端占用,如果该客户端出现了异常那么就会出现无法删除该image的情况。


二、分析过程:

Ceph中有一个watch/notify的机制(粒度是object),它的主要作用是在不同客户端之间进行消息通知,使得各客户端之间的状态能够保持一致,而每一个进行watch的客户端,对于ceph集群来说都是一个watcher。

1
2
3
4
5
6
7
8
# rbd info openshift01/openshift01-img01
rbd image  'openshift01-img01' :
     size 102400 MB  in  25600 objects
     order 22 (4096 kB objects)
     block_name_prefix: rbd_data.957f238e1f29
     format : 2
     features: layering
     flags:

说明:openshift01为pool的名称,openshift01-img01为img的名称。

1
2
# rados -p openshift01 listwatchers rbd_header.957f238e1f29
watcher=172.16.0.48:0 /54296760  client.51052 cookie=1

说明:由上面输出结果可以知道,172.16.0.48为被映射的客户端。










本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/2069609,如需转载请自行联系原作者

你可能感兴趣的:(Ceph:如何查看rbd映射的设备被哪个客户端使用)