监控 Ceph 集群

scuttlemonkey

鸣谢:xkcd.org

好的,所以你已经完成了五分钟快速入门指南,了解了一些关于 Ceph 的知识,并搭建了一个预生产服务器来测试真实的数据和操作……现在怎么办? 在过去的几周里,我们收到了一些关于在拥有 Ceph 集群后如何监控和排查问题的问题。 幸运的是,我们的文档一直在不断完善。 但是,我们认为对一些更常用的故障排除工具进行快速概述可能会有所帮助。

解决问题的第一步是了解你_确实_存在问题。 为此,有许多健康和监控工具可用于密切关注 Ceph。 这些工具可以在交互模式下运行(只需在命令行中键入“ceph”),也可以通过一系列状态查询和监视命令运行。 要在交互模式下运行 ceph 工具,请在命令行中键入 ceph,不带任何参数。 例如

  • ceph
  • ceph> health
  • ceph> status
  • ceph> quorum_status
  • ceph> mon_status

或者,你也可以从单次命令中获得相同的数据,例如“ceph health”、“ceph status”(ceph -s)或“ceph -w”。 这些命令大致按照其详细程度排序,其中“ceph health”仅返回单行状态(例如 HEALTH_OK),“ceph status”提供健康信息以及关于你的 mon/osd/pg/mds 数据的一些行,而“ceph -w”提供集群中操作的持续跟踪。

类似的命令也适用于监控集群中各个节点类型的形式,即“ceph {mon|mds|osd} {stat|dump}”,可以提供关于每个节点类型的更具体信息。 为了更好地了解你的 OSD 在做什么,你还可以打印 CRUSH 树,以查看你的 OSD 如何相互关联及其状态和权重,使用“ceph osd tree”。 这是在排查集群问题时非常有用的命令,通常是我们 IRC 频道中的工程师在收到新问题时会要求的信息。

另一个经常被问到的问题与各种监控命令返回的内容有关。 通常,你希望你的 OSD 处于“up”和“in”状态(表示正在运行并且是集群的活动成员)。 至于 OSD 内的放置组,你也应该看到“active”和“clean”的返回,但如果你看到其他内容,请访问我们的 放置组状态 页面,看看你的集群在告诉你什么。

为了更深入地了解,我们的文档对 集群和节点监控选项 有着相当不错的介绍,但如果你遇到问题或看到文档中缺少的内容,请 告诉我们