前言

ceph里面的数据是以对象的形式存储在OSD当中的,有的时候因为磁盘的损坏或者其它的一些特殊情况,会引起集群当中的某一个对象的异常,那么我们需要对这个对象进行处理

在对象损坏的情况下,启动OSD有的时候都会有问题,那么通过rados rm的方式是没法发送到这个无法启动的OSD的,也就无法删除,所以需要用其他的办法来处理这个情况

处理步骤

查找对象的路径

[root@lab8106 ~]# ceph osd map rbd  rbd_data.857e6b8b4567.00000000000000ba
osdmap e53 pool 'rbd' (0) object 'rbd_data.857e6b8b4567.00000000000000ba' -> pg 0.2daee1ba (0.3a) -> up ([1], p1) acting ([1], p1)

先找到这个对象所在的OSD以及PG

设置集群的noout

[root@lab8106 ~]#ceph osd set noout

这个是为了防止osd的停止产生不必要的删除

停止OSD

[root@lab8106 ]#systemctl stop ceph-osd@1

如果osd已经是停止的状态就不需要做这一步

使用ceph-objectstore-tool工具删除单个对象

[root@lab8106 ]#ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-1/ --journal-path /var/lib/ceph/osd/ceph-1/journal --pgid 0.3a  rbd_data.857e6b8b4567.00000000000000ba remove

如果有多个副本的情况下,最好都删除掉,影响的数据就是包含这个对象的数据,这个操作的前提是这个对象数据已经被破坏了,如果是部分破坏,可以用集群的repair进行修复,这个是无法修复的情况下的删除对象,来实现启动OSD而不影响其它的数据的

启动OSD

[root@lab8106 ]# systemctl start ceph-osd@1

解除noout

[root@lab8106 ~]#ceph osd unset noout

总结

一般情况下比较少出现这个情况,如果有这样的删除损坏的对象的需求,就可以这么处理

变更记录

Why Who When
创建 武汉-运维-磨渣 2017-04-19

最新文章

  1. C# 在excel中查找及替换数据
  2. C# 必看书籍
  3. ecshop 订单编号 get_order_sn
  4. activeamq启动失败
  5. python watchdog
  6. SQLSERVER数据库表各种同步技术
  7. 淘宝的ruby镜像已无人维护,使用ruby-china的RubyGems镜像
  8. 《Python核心编程》 第三章 Python基础 - 练习
  9. Servlet & JSP - Form-based Authentication
  10. 格雷码(Gray Code)转二进制码(Binary Code)
  11. JQUERY1.9学习笔记 之基本过滤器(六) 页眉选择器
  12. JavaScript检测原始值、引用值、属性
  13. Realview MDK 中不用手动开中断的原因
  14. Python之线程&进程
  15. 51 Nod 1057 N的阶乘【Java大数乱搞】
  16. C#处理JavaScript引擎
  17. 免费IPv6访问收费IPv4,校园网免流量
  18. 一周RMAN备份脚本
  19. rabbitMQ学习2-Python与rabbitmq
  20. flex自定义preloader预加载进度条

热门文章

  1. Termux基础教程(一):技能部署
  2. spring boot:使用spring cache+caffeine做进程内缓存(本地缓存)(spring boot 2.3.1)
  3. nginx优化:使用expires在浏览器端缓存静态文件
  4. centos8平台安装zookeeper3.6集群
  5. 修改apt,pip,npm为国内镜像源
  6. 【应用服务 App Service】App Service中抓取网络日志
  7. IOS8 对flex兼容性问题
  8. java后端选型20200729
  9. C#基础访问修饰符概述
  10. viewpager欢迎页面底部点的滑动效果