码迷,mamicode.com
首页 > 其他好文 > 详细

删除 Ceph 集群异常客户端 watcher

时间:2017-10-25 23:48:05      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:rbd   image   

在Ceph集群日常运维中,管理员可能会遇到有的image删除不了的情况,有一种情况是由于image下有快照信息,只需要先将快照信息清除,然后再删除该image即可,还有一种情况是因为该image仍旧被一个客户端在访问,具体表现为该image中有watcher,如果该客户端异常了,那么就会出现无法删除该image的情况。

watcher是什么?


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

如何查看当前image上的watcher?


因为watch的粒度是object,想要了解一个image上的watcher信息,最简单的方法就是查看该image的header对象上的watcher信息。

首先找到image的header对象


[root@Node62 ~]# rbd info test_img

rbd image ‘test_img‘:

size 5000 MB in 1250 objects

order 22 (4096 kB objects)

block_name_prefix: rbd_data.fa7b2ae8944a

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

查询到该image的block_name_prefix为 rbd_data.fa7b2ae8944a那么该image的header对象则为rbd_header.fa7b2ae8944a,然后我们就可以通过命令查看该image的header对象上的watcher信息。


[root@Node62 ~]# rados listwatchers -p rbd rbd_header.fa7b2ae8944a


watcher=192.8.8.10:0/1262448884 client.170939 cookie=140096303678368

Ceph集群异常客户端Watcher处理


刚才查看到test_img这个image上有一个watcher,假设客户端watcher=192.8.8.10:0/1262448884出现异常,那么我们如何处理呢?其实我们只需要将此异常客户端设置到OSD的黑名单即可:


[root@Node62 ~]# ceph osd blacklist add 192.8.8.10:0/1262448884

blacklisting 192.8.8.10:0/1262448884 until 2017-03-27 02:11:54.206165 (3600 sec)

此时我们再去查看该image的header对象的watcher信息:


[root@Node62 ~]# rados listwatchers -p rbd rbd_header.fa7b2ae8944a

异常客户端的watcher信息已经不存在了,这个时候我们就可以对该image进行删除操作了。


本文出自 “让我men共同成长” 博客,转载请与作者联系!

删除 Ceph 集群异常客户端 watcher

标签:rbd   image   

原文地址:http://wujingfeng.blog.51cto.com/5725921/1976127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!