ceph 故障解决备忘

参考 ceph 环境

    cluster dc4f91c1-8792-4948-b68f-2fcea75f53b9
     health HEALTH_WARN 15 requests are blocked > 32 sec; clock skew detected on mon.hh-yun-ceph-cinder025-128075
     monmap e3: 5 mons at {hh-yun-ceph-cinder015-128055=240.30.128.55:6789/0,hh-yun-ceph-cinder017-128057=240.30.128.57:6789/0
,hh-yun-ceph-cinder024-128074=240.30.128.74:6789/0,hh-yun-ceph-cinder025-128075=240.30.128.75:6789/0,hh-yun-ceph-cinder026-128
076=240.30.128.76:6789/0}, election epoch 168, quorum 0,1,2,3,4 hh-yun-ceph-cinder015-128055,hh-yun-ceph-cinder017-128057,hh-y
un-ceph-cinder024-128074,hh-yun-ceph-cinder025-128075,hh-yun-ceph-cinder026-128076
     osdmap e27430: 100 osds: 100 up, 100 in
      pgmap v11224834: 20544 pgs, 2 pools, 70255 GB data, 17678 kobjects
            205 TB used, 157 TB / 363 TB avail
               20540 active+clean
                   4 active+clean+scrubbing+deep
  client io 57251 kB/s rd, 44602 kB/s wr, 3797 op/s

参考 ceph health detail 返回结果

1.  mon.hh-yun-ceph-cinder025-128075 addr 240.30.128.75:6789/0 clock skew 0.919947s > max 0.05s (latency 0.000544046s)
2.  15 requests are blocked

这里是具有两个常见错误
1. 时间不同步导致 mon 报警
2. 由于有硬件故障, 网络延时, 或其他原因导致客户端访问 ceph 存储超时

问题解决 (时间同步)
当前系统中的环境设定

[root@hh-yun-ceph-cinder015-128055 ceph]# ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show  | grep clock
  "mon_clock_drift_allowed": "0.05",   <- 当 mon 时间偏移 0.05 秒则不正常
  "mon_clock_drift_warn_backoff": "5",    <- 当出现 5 次偏移, 则报警
  "clock_offset": "0",                  <- mon 节点的时间偏移默认值

问题定位
检测各个机器的时间, 发现 hh-yun-ceph-cinder025-128075 节点时间偏移
修正方法

systemctl stop chronyd
ntpdate 10.199.129.21
systemctl start chronyd

当同步了时间并验证后, 需重启 mon 节点

/etc/init.d/ceph stop mon
/etc/init.d/ceph start mon

因为 mon 节点与客户非常连接, 因此, 在确保 mon 节点具有冗余情况下, 可以在生产时间段进行快速重启

问题解决 (15 requests are blocked)

参考信息

ceph health detail
HEALTH_WARN 14 requests are blocked > 32 sec; 11 osds have slow requests
7 ops are blocked > 536871 sec
2 ops are blocked > 268435 sec
2 ops are blocked > 67108.9 sec
3 ops are blocked > 33554.4 sec
1 ops are blocked > 536871 sec on osd.0
1 ops are blocked > 536871 sec on osd.10
2 ops are blocked > 536871 sec on osd.12
2 ops are blocked > 268435 sec on osd.18
1 ops are blocked > 536871 sec on osd.31
1 ops are blocked > 536871 sec on osd.38
1 ops are blocked > 67108.9 sec on osd.38
1 ops are blocked > 33554.4 sec on osd.48
1 ops are blocked > 67108.9 sec on osd.52
1 ops are blocked > 536871 sec on osd.63
1 ops are blocked > 33554.4 sec on osd.64
1 ops are blocked > 33554.4 sec on osd.69
11 osds have slow requests

上述信息, 发现, 访问被 block 而且时间很久,
解决方法

对上述 osd 进行一个一个的重启,  切记,  一个重启后,  数据 recovery 正常后才可以执行下一次的 osd 重启

/etc/init.d/ceph stop osd.0
/etc/init.d/ceph start osd.0

待数据恢复后才能够执行下一个 OSD 重启

恢复后解决

    cluster dc4f91c1-8792-4948-b68f-2fcea75f53b9
     health HEALTH_OK
     monmap e3: 5 mons at {hh-yun-ceph-cinder015-128055=240.30.128.55:6789/0,hh-yun-ceph-cinder017-128057=240.30.128.57:6789/0
,hh-yun-ceph-cinder024-128074=240.30.128.74:6789/0,hh-yun-ceph-cinder025-128075=240.30.128.75:6789/0,hh-yun-ceph-cinder026-128
076=240.30.128.76:6789/0}, election epoch 170, quorum 0,1,2,3,4 hh-yun-ceph-cinder015-128055,hh-yun-ceph-cinder017-128057,hh-y
un-ceph-cinder024-128074,hh-yun-ceph-cinder025-128075,hh-yun-ceph-cinder026-128076
     osdmap e27495: 100 osds: 100 up, 100 in
      pgmap v11231620: 20544 pgs, 2 pools, 70294 GB data, 17688 kobjects
            206 TB used, 157 TB / 363 TB avail
               20539 active+clean
                   5 active+clean+scrubbing+deep
  client io 973 kB/s rd, 22936 kB/s wr, 1334 op/s
时间: 2024-10-27 05:53:34

ceph 故障解决备忘的相关文章

pdns 错误解决[备忘]

参见日志: pdns (master) server  /var/log/messages 错误信息提示: Jan 30 10:08:08 kylezhuang-hh-qa-dns-crguy pdns[6363]: AXFR of domain '199.10.in-addr.arpa' initiated by 10.199.132.168 Jan 30 10:08:08 kylezhuang-hh-qa-dns-crguy pdns[6363]: AXFR of domain '199.1

服务器迁移之debian重新配置Web服务的一些细节备忘

这次服务系统采用的是最新的Debian 7.0,但是有几个细节的忽略导致我折腾了一番,我再这里再做个记录吧   之前配置Linux服务器时采用的是Debian系统一直很稳定,这次准备迁移到新的服务器环境上,好在以前的配置我在博客都做了备忘,所以很容易就搞定了,这次服务系统采用的是最新的Debian 7.0,但是有几个细节的忽略导致我折腾了一番,我再这里再做个记录吧: 首先要安装编译环境,虽然我们通过apt-get可以方便的绕过手动编译的环节,但是一些程序包可能内置编译命令,可以编译一些扩展程序,

[程序安装包制作] Advanced Installer 备忘

原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前,首先要知道Product Code和Upgrade Code这两个属性,同时大家不要被这两个英文词语的字面意思所以迷惑. 同一款产品,不同的版本的安装包,Product Code必须不同,但Upgrade Code必须相同. 例如,现在有一款软件叫"Hello World",已经制作了1.

技术备忘3

   shell单引号与变量 [root@test] a=55 [root@test] echo $a 55 [root@test] echo '$a' $a [root@test] echo ''$a'' #注意此处是两个单引不是一个双引 55 总结: 在单引号中引用变量,需要这样来写(单引号括起来双引号内的变量.) :   '"${a}"' 原文地址 date星期求取 <span style="font-family:Microsoft YaHei">

机器学习性能改善备忘单:32个帮你做出更好预测模型的技巧和窍门

机器学习最有价值(实际应用最广)的部分是预测性建模.也就是在历史数据上进行训练,在新数据上做出预测.  而预测性建模的首要问题是: 如何才能得到更好的结果? 这个备忘单基于本人多年的实践,以及我对顶级机器学习专家和大赛优胜者的研究. 有了这份指南,你不但不会再掉进坑里,而且会提升性能,甚至在你自己的一些预测难题中取得世界领先水平的结果. 让我们一起来看看吧! 注意:本文的结构基于早些时候另一篇关于改善深度学习性能的指南--<如何改善深度学习性能>   ◆ ◆ ◆ 概述 本备忘单的目的是为你提供

openstack 管理 - 索引(备忘)

命令行管理介绍 openstack 命令行管理一 - br-ex 网络设定 (备忘) openstack 命令行管理二 - 镜像管理 (备忘) openstack 命令行管理三 - tenant 管理 (备忘) openstack 命令行管理四 - 资源管理 (备忘) openstack 命令行管理五 - 磁盘配额管理(备忘) openstack 命令行管理六 - 用户管理 (备忘) openstack 命令行管理七 - 角色管理 (备忘) openstack 命令行管理八 - 服务管理 (备忘

Python中利用函数装饰器实现备忘功能_python

"备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum"(备忘录),意思是"被记住".虽然它和单词"memorization"在某种程度上有些相似,但它并不是该单词的错误拼写.实际上,Memoisation是一种用于通过计算来加速程序的技术,它通过记住输入量的计算结果,例如函数调用结果,来实现其加速目的.如果遇到相同的

php备忘模式之星际争霸

我们在玩星际任务版或者单机与电脑对战的时候,有时候会突然要离开游戏,或者在出兵前面,需要存储一下游戏. 那么我们通过什么办法来保存目前的信息呢?而且在任何时候,可以恢复保存的游戏呢? 待解决的问题:保存游戏的一切信息,如果恢复的时候完全还原. 思路:建立一个专门保存信息的类,让他来处理这些事情,就像一本备忘录. 为了简单,我们这里用恢复一个玩家的信息来演示.  代码如下 复制代码 //备忘类 class Memento {   //水晶矿   public $ore;   //气矿   publ

在Eclipse中构建备忘单

Eclipse提供了一种用于显示迷你型指南的内置机制,称为备忘单(cheat sheet).备忘单可以快速而有效地指导您如何在Eclipse中执行包含多个步骤的过程,它显示在工作台的边角处,您可以容易且快速地查看它们. 本教程演示了如何为Eclipse构造备忘单.构造完毕之后,它们还可以运行在BEA Workshop Studio.BEA Workshop for WebLogic和其他任何Eclipse系统之上,或许能对您现有的工具和插件进行补充.示例下载中提供了3个准备好的备忘单,其中一个备