farmer111 发表于 2019-2-2 08:27:32

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

  一、场景说明:
  Ceph的运维过程中,管理员有时候会遇到Ceph的RBD设备,通过映射的方式给客户端进行使用,但是过段时间后,在服务端,你想知道到底某个pool的img被哪个客户端占用着。另外一种情况,比如想删除某个image,但那个image可能被客户端占用,如果该客户端出现了异常那么就会出现无法删除该image的情况。
  二、分析过程:
  Ceph中有一个watch/notify的机制(粒度是object),它的主要作用是在不同客户端之间进行消息通知,使得各客户端之间的状态能够保持一致,而每一个进行watch的客户端,对于ceph集群来说都是一个watcher。
# 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的名称。
# rados -p openshift01 listwatchers rbd_header.957f238e1f29
watcher=172.16.0.48:0/54296760 client.51052 cookie=1  说明:由上面输出结果可以知道,172.16.0.48为被映射的客户端。



页: [1]
查看完整版本: Ceph:如何查看rbd映射的设备被哪个客户端使用