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

  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

也可以:

root@ceph01:~/my-cluster# rbd status test-img
Watchers:
watcher=172.16.71.203:/ client. cookie=

如果image为格式1:

[root@nc1 ~]# rbd info hzb-mysql
     rbd image 'hzb-mysql':
     size 2048 MB in 512 objects
     order 22 (4096 kB objects)
     block_name_prefix: rb.0.11895f.6b8b4567
     format: 1

则用:rados -p rbd listwatchers 'hzb-mysql.rbd

  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进行删除操作了。这种方法不是最推荐的,但是目前还找不到很好的解决方法。

查询黑名单列表:

ceph osd blacklist ls

从黑名单移出某一个

root@ceph01:~# ceph osd blacklist rm 172.16.71.203:/
un-blacklisting 172.16.71.203:/

清空黑名单里面的东西

root@ceph01:~# ceph osd blacklist clear
removed all blacklist entries

删除 Ceph 的image报rbd: error: image still has watchers的更多相关文章

  1. 无法删除image报rbd: error: image still has watchers解决方法

    标签(空格分隔): ceph,ceph运维,rbd 解决思路: 在Ceph集群日常运维中,管理员可能会遇到有的image删除不了的情况: 1) 由于image下有快照信息,只需要先将快照信息清除,然后 ...

  2. postgresql 删除库的时候报错database "temp_test_yang" is being accessed by other users

    删除库的时候报错 ERROR: database "temp_test_yang" is being accessed by other usersDETAIL: There ar ...

  3. 发布报错:Error ITMS-90635 - Invalid Mach-O in bundle - submitting to App store

    发布报错:Error ITMS-90635 - Invalid Mach-O in bundle - submitting to App store 昨晚上传项目到AppStore,报了这个错,纳尼! ...

  4. mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

    1. 问题背景         InnoDB是新版MySQL(v5.5及以后)默认的存储引擎,之前版本的默认引擎为MyISAM,因此,低于5.5版本的mysql配置文件.my.cnf中,关于InnoD ...

  5. 在使用 Git pull 时候报错 error: inflate

    在使用 Git pull 时候报错 error: inflate 具体的错误是 这样的 error: inflate: data stream error (unknown compression m ...

  6. 【MySQL笔记】mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

    step1:查看 1.1 Mysql命令行里输入"show engines:"查看innoddb数据引擎状态, 1.2 show variables "%_buffer% ...

  7. mysql-创建用户报错ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX'(转载)

    创建用户: create user ‘test’@’%’ identified by ‘test’; 显示ERROR 1396 (HY000): Operation CREATE USER faile ...

  8. mysql-创建用户报错ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

    创建用户: create user ‘test’@’%’ identified by ‘test’; 显示ERROR 1396 (HY000): Operation CREATE USER faile ...

  9. docker删除镜像的时候报错--image has dependent child images

    背景 偶然间发现服务器上有很多镜像占用不少空间,想清理一下.结果直接进行删除报错: docker rmi 8f5116cbc201 Error response from daemon: confli ...

随机推荐

  1. TCP 三次握手 四次握手

    http://blog.chinaunix.net/uid-22312037-id-3575121.html http://www.centos.bz/2012/08/tcp-establish-cl ...

  2. JAVA线程分析定位排查

    java开发中有的时间经常遇到某个线程消耗CPU高的问题,但是不清楚这个线程在做什么. 于是网上看了一些文章,找到了一个比较靠谱的办法(Linux下,Windows同理) : 首先使用top确认是否消 ...

  3. 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)

    题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...

  4. openStack nova nova valid hosts 优化

    scheduler_default_filters=AllHostsFilterallow_resize_to_same_host=Trueallow_migrate_to_same_host=Tru ...

  5. 爬虫的三种解析方式(正则解析, xpath解析, bs4解析)

    一 : 正则解析 : 常用正则回顾: 单字符: . : 除换行符以外的所有字符 [] : [aoe] [a-w] 匹配集合中任意一个字符 \d : 数字 [0-9] \D : 非数字 \w : 非数字 ...

  6. GeoServer之styles定制

    GeoServer之styles定制 GeoServer中styles类似于css,将地图中的点线面画出一层皮肤,引用在图层上.不同的地方在于.GeoServer中的styles用的是sld语法,也就 ...

  7. keepalived + nginx实现高可用

    1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker. ...

  8. 如何有效地学习《空中英语教室》&《彭蒙惠英语》

    读者定位: <大家说英语>是学习美式口语入门书,内容全部是情境会话,定位为“初级美式生活会话”. <空中英语教室>以浅显英语提供从新闻.旅游到时尚等流行话题,丰富会话材料,定位 ...

  9. FreeSWITCH--配置代接电话

    配置代接电话,需要更改 分机.拨号计划.外线 的配置 一.配置分机 代接组内分机的这个“组”, 不是“conf/directory/default.xml"中配置的 group,而是要在分机 ...

  10. 【bzoj3667】Rabin-Miller算法

    3667: Rabin-Miller算法 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1200  Solved: 363[Submit][Statu ...