3.6. PG 命令行参考
您可以通过 ceph
CLI 设置并获取池的放置组数量,查看 PG map 和检索 PG 统计信息。
3.6.1. 设置 PG 的数量 复制链接链接已复制到粘贴板!
要在池中设置放置组数量,您必须在创建池时指定放置组数量。详情请查看创建池。为池设置放置组后,您可以增加或减少放置组数量。要更改放置组数量,请使用以下命令:
语法
ceph osd pool set POOL_NAME pg_num PG_NUMBER
ceph osd pool set POOL_NAME pg_num PG_NUMBER
示例
[ceph: root@host01 /]# ceph osd pool set pool1 pg_num 60 set pool 2 pg_num to 60
[ceph: root@host01 /]# ceph osd pool set pool1 pg_num 60
set pool 2 pg_num to 60
增加或减少放置组数量后,还必须在集群重新平衡前调整放置的放置组数量(pgp_num
)。pgp_num
应当等于 pg_num
。
语法
ceph osd pool set POOL_NAME pgp_num PGP_NUMBER
ceph osd pool set POOL_NAME pgp_num PGP_NUMBER
示例
[ceph: root@host01 /]# ceph osd pool set pool1 pgp_num 60 set pool 2 pgp_num to 60
[ceph: root@host01 /]# ceph osd pool set pool1 pgp_num 60
set pool 2 pgp_num to 60
3.6.2. 获取 PG 数量 复制链接链接已复制到粘贴板!
获取池中的放置组数量:
语法
ceph osd pool get POOL_NAME pg_num
ceph osd pool get POOL_NAME pg_num
示例
[ceph: root@host01 /]# ceph osd pool get pool1 pg_num pg_num: 60
[ceph: root@host01 /]# ceph osd pool get pool1 pg_num
pg_num: 60
3.6.3. 获取 Cluster PG 统计 复制链接链接已复制到粘贴板!
获取放置组的统计信息:
语法
ceph pg dump [--format FORMAT]
ceph pg dump [--format FORMAT]
有效格式为 plain
(默认)和 json
。
3.6.4. 获取 Stuck PG 的统计 复制链接链接已复制到粘贴板!
获取所有放置组的统计信息处于指定状态:
语法
ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} INTEGER
ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} INTEGER
Inactive 放置组无法处理读取或写入,因为它们正在等待具有最新数据最多的 OSD 上线并在内。
Unclean 放置组包含没有复制所需时间的对象。它们应该是恢复。
过时的 放置组处于未知状态 - 托管它们尚未报告给 monitor 集群的 OSD(配置为 mon_osd_report_timeout
)。
有效格式为 plain
(默认)和 json
。阈值定义了放置组在返回统计之前卡住的最小秒数(默认为 300 秒)。
3.6.5. 获取 PG map 复制链接链接已复制到粘贴板!
获取特定放置组的放置组映射:
语法
ceph pg map PG_ID
ceph pg map PG_ID
示例
[ceph: root@host01 /]# ceph pg map 1.6c osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]
[ceph: root@host01 /]# ceph pg map 1.6c
osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]
Ceph 返回放置组映射、放置组和 OSD 状态。
3.6.6. 获取 PG 统计 复制链接链接已复制到粘贴板!
检索特定放置组的统计信息:
语法
ceph pg PG_ID query
ceph pg PG_ID query
3.6.7. 清理放置组 复制链接链接已复制到粘贴板!
清理放置组:
语法
ceph pg scrub PG_ID
ceph pg scrub PG_ID
Ceph 检查主节点和任何副本节点,生成放置组中所有对象的目录,并比较它们以确保没有对象丢失或不匹配,并且其内容一致。假设副本都匹配,最终语义 sweep 可确保所有与快照相关的对象元数据一致。通过日志报告错误。
3.6.8. 恢复丢失 复制链接链接已复制到粘贴板!
如果集群丢失了一个或多个对象,并且您决定取消搜索丢失数据,您必须将未找到的对象标记为 lost
。
如果查询了所有可能的位置,并且对象仍然丢失,您可能需要放弃丢失的对象。这有不常的故障组合,允许集群了解在进行写入本身恢复之前执行的写入操作。
Ceph 仅支持"revert"选项,该选项可回滚到对象的各种版本,或者如果它是新对象,则可以忘记它。要将 "unfound" 对象标记为 "lost",请使用以下命令:
语法
ceph pg PG_ID mark_unfound_lost revert|delete
ceph pg PG_ID mark_unfound_lost revert|delete
请谨慎使用此功能,因为它可能会混淆预期对象存在的应用程序。