Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
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
结果应该告诉您放置组映射版本 vNNNNNN
、放置组总数 x
以及放置组 y
处于特定状态,如 active+clean
:
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
如需了解有关快照修剪设置的更多详细信息,请参见《红帽 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>
输出示例:
0.1f
检索 PG 列表:
# ceph pg dump
以 JSON 格式格式化输出并将其保存到文件中:
# ceph pg dump -o <file_name> --format=json
查询特定放置组:
# ceph pg <pool_num>.<pg_id> query
JSON 格式的输出示例:
{ "state": "active+clean", "up": [ 1, 0 ], "acting": [ 1, 0 ], "info": { "pgid": "1.e", "last_update": "4'1", "last_complete": "4'1", "log_tail": "0'0", "last_backfill": "MAX", "purged_snaps": "[]", "history": { "epoch_created": 1, "last_epoch_started": 537, "last_epoch_clean": 537, "last_epoch_split": 534, "same_up_since": 536, "same_interval_since": 536, "same_primary_since": 536, "last_scrub": "4'1", "last_scrub_stamp": "2013-01-25 10:12:23.828174" }, "stats": { "version": "4'1", "reported": "536'782", "state": "active+clean", "last_fresh": "2013-01-25 10:12:23.828271", "last_change": "2013-01-25 10:12:23.828271", "last_active": "2013-01-25 10:12:23.828271", "last_clean": "2013-01-25 10:12:23.828271", "last_unstale": "2013-01-25 10:12:23.828271", "mapping_epoch": 535, "log_start": "0'0", "ondisk_log_start": "0'0", "created": 1, "last_epoch_clean": 1, "parent": "0.0", "parent_split_bits": 0, "last_scrub": "4'1", "last_scrub_stamp": "2013-01-25 10:12:23.828174", "log_size": 128, "ondisk_log_size": 128, "stat_sum": { "num_bytes": 205, "num_objects": 1, "num_object_clones": 0, "num_object_copies": 0, "num_objects_missing_on_primary": 0, "num_objects_degraded": 0, "num_objects_unfound": 0, "num_read": 1, "num_read_kb": 0, "num_write": 3, "num_write_kb": 1 }, "stat_cat_sum": { }, "up": [ 1, 0 ], "acting": [ 1, 0 ] }, "empty": 0, "dne": 0, "incomplete": 0 }, "recovery_state": [ { "name": "Started\/Primary\/Active", "enter_time": "2013-01-23 09:35:37.594691", "might_have_unfound": [ ], "scrub": { "scrub_epoch_start": "536", "scrub_active": 0, "scrub_block_writes": 0, "finalizing_scrub": 0, "scrub_waiting_on": 0, "scrub_waiting_on_whom": [ ] } }, { "name": "Started", "enter_time": "2013-01-23 09:35:31.581160" } ] }
以下小节更详细地描述了常见状态。
3.2.3.1. Create
创建池时,它将创建您指定的 PG 数量。在创建一个或多个 PG 时,Ceph 将回显 creating
。创建之后,属于放置组操作集合一部分的 OSD 将对它们进行对等操作。完成 peering 后,放置组状态应为 active+clean
,这意味着 Ceph 客户端可以开始写入 PG。
