3.2.3. 监控 PG 状态
如果您执行 ceph health、ceph -s 或 ceph -w 等命令,您可能会注意到集群并不总是回显 HEALTH OK。在检查 OSD 是否在运行后,您也应检查 PG 状态。您应预计,在多个与 peering 相关的放置组中,集群 不会 回显 HEALTH OK :
- 您刚刚创建了一个池和放置组,但尚未创建对等组。
- PG 正在恢复。
- 您刚刚将 OSD 添加到集群中或从集群中删除了 OSD。
- 您刚刚修改过 CRUSH map,而 PG 正在迁移。
- 放置组的不同副本中的数据不一致。
- Ceph 正在清理 PG 的副本。
- Ceph 没有足够的存储容量来完成回填操作。
如果其中一个情况导致 Ceph 回显 HEALTH WARN,请不要 panic。在很多情况下,集群会自行恢复。在某些情况下,您可能需要采取行动。监控 PG 的一个重要方面是确保在集群启动并运行时,所有放置组都是 active,最好是处于 clean 状态。要查看所有 PG 的状态,请执行:
ceph pg stat
# ceph pg stat
结果应该告诉您放置组映射版本 vNNNNNN、放置组总数 x 以及放置组 y 处于特定状态,如 active+clean:
vNNNNNN: x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
vNNNNNN: x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
Ceph 通常报告 PG 的多个状态。
快照 Trimming PG 状态
存在快照时,将报告两个额外的 PG 状态。
-
snaptrim: PG 目前被修剪 -
snaptrim_wait: PG 等待修剪
输出示例:
244 active+clean+snaptrim_wait 32 active+clean+snaptrim
244 active+clean+snaptrim_wait
32 active+clean+snaptrim
如需了解有关快照修剪设置的更多详细信息,请参见《红帽 Ceph 存储 3 配置指南》 中的各种 OSD 设置。
除了放置组状态外,Ceph 还将回显所使用的数据量、aa、剩余存储容量量、bb 以及放置组的总存储容量。这些数据在少数情况下可能很重要:
-
您将到达
near full ratio或full ratio。 - 由于 CRUSH 配置中出现错误,您的数据不会在集群中分布。
放置组 ID
放置组 ID 由池编号而不是池名称组成,后跟句点(.)和放置组 ID-a 十六进制数字。您可以从 ceph osd lspools 的输出中查看池号及其名称。默认池名称 data、metadata 和 rbd 分别对应于池号 0、1 和 2。完全限定 PG ID 具有以下格式:
<pool_num>.<pg_id>
<pool_num>.<pg_id>
输出示例:
0.1f
0.1f
检索 PG 列表:
ceph pg dump
# ceph pg dumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以 JSON 格式格式化输出并将其保存到文件中:
ceph pg dump -o <file_name> --format=json
# ceph pg dump -o <file_name> --format=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查询特定放置组:
ceph pg <pool_num>.<pg_id> query
# ceph pg <pool_num>.<pg_id> queryCopy to Clipboard Copied! Toggle word wrap Toggle overflow JSON 格式的输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下小节更详细地描述了常见状态。
3.2.3.1. Create 复制链接链接已复制到粘贴板!
创建池时,它将创建您指定的 PG 数量。在创建一个或多个 PG 时,Ceph 将回显 creating。创建之后,属于放置组操作集合一部分的 OSD 将对它们进行对等操作。完成 peering 后,放置组状态应为 active+clean,这意味着 Ceph 客户端可以开始写入 PG。