rbd刪除image報:rbd: error: image still has watchers

1、解決思路:
遇到有image無法刪除的情況,一般有以下兩種原因:
a、由於image下有快照信息,只需要先將快照信息刪除,然後就可以刪除該image了;
b、該image正在被另一個客戶端訪問,具體表現爲該image中有watcher。如果該客戶端異常,那麼就會出現無法刪除該image的情況;
對於第一種情況,只需要刪除快照即可解決,下面介紹第二種情況的解決方法。

2、解決方案:
查看當前image上的watcher
方法一:

rbd status volume -p abc
watcher=192.168.197.157:0/1135656048 client.4172 cookie=1

方法二:
a、首先找到image的header對象。

rbd info volume -p abc
rbd image 'volume':
        size 1024 MB in 256 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.1041643c9869
        format: 2
        features: layering
        flags: 
        create_timestamp: Tue Oct 17 10:20:50 2017

由該image的block_name_prefix爲rbd_data.1041643c9869,可知該image的header對象爲rbd_header.1041643c9869,得到了header對象後,查看watcher信息。

b、查看該image的header對象上的watcher信息

rados -p abc listwatchers rbd_header.1041643c9869
watcher=192.168.197.157:0/1135656048 client.4172 cookie=1

3、刪除image上的watcher
a、把該watcher加入黑名單:

ceph osd blacklist add 192.168.197.157:0/1135656048
blacklisting 192.168.197.157:0/1135656048 until 2017-10-18 12:04:19.103313 (3600 sec)

b、查看佔用該image的watcher:

rados -p abc listwatchers  rbd_header.1041643c9869

異常客戶端的watcher信息已經不存在了,之後就可以刪除該image了。
c、刪除image

rbd rm volume -p abc

4、後續操作:
刪除image之後,最好將黑名單中的客戶端移除,下面是有關黑名單的相關操作
a、查看黑名單列表:

ceph osd blacklist ls
listed 1 entries
192.168.197.157:0/1135656048 2017-10-18 12:04:19.103313

b、從黑名單移除一個客戶端

ceph osd blacklist rm 192.168.197.157:0/1135656048 
un-blacklisting 192.168.197.157:0/1135656048

c、清除黑名單

ceph osd blacklist clear
 removed all blacklist entries
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章