3.7. 放置组命令行界面


ceph CLI 允许您设置并获取池的 PG 数量,查看 PG map 并检索 PG 统计信息。

3.7.1. 在池中设置放置组数量

要在池中设置放置组数量,您必须在创建池时指定放置组数量。详情请参阅 创建池。为池设置放置组后,您可以增加放置组的数量(但您无法减少放置组数量)。要增加放置组的数量,请执行以下操作:

语法

ceph osd pool set POOL_NAME pg_num PG_NUM

增加放置组数量后,还必须在集群重新平衡前增加放置的放置组数量(pgp_num)。pgp_num 应该等于 pg_num。要增加放置的放置组数量,请执行以下操作:

语法

ceph osd pool set POOL_NAME pgp_num PGP_NUM

3.7.2. 在池中获取放置组数量

要获取池中的放置组数量,请执行以下操作:

语法

ceph osd pool get POOL_NAME pg_num

3.7.3. 获取放置组的统计信息

要在您的 storag 集群中获取放置组的统计信息,请执行以下操作:

语法

ceph pg dump [--format FORMAT]

有效格式为 plain (默认)和 json

3.7.4. 获取卡住放置组的统计信息

要获取所有放置组的统计数据处于指定状态,请执行以下操作:

语法

ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} INTERVAL

Inactive 放置组无法处理读取或写入,因为它们正在等待具有最新数据最多的 OSD 上线并在内。

Unclean 放置组包含没有复制所需时间的对象。它们应该正在进行恢复。

Stale 放置组处于未知状态 - 托管它们尚未报告至监控集群的 OSD (由 mon_osd_report_timeout配置)。

有效格式为 plain (默认)和 json。阈值定义了放置组在返回统计之前卡住的最小秒数(默认为 300 秒)。

3.7.5. 获取放置组映射

要获取特定放置组的放置组映射,请执行以下操作:

语法

ceph pg map PG_ID

示例

[ceph: root@host01 /]# ceph pg map 1.6c

Ceph 返回放置组映射、放置组和 OSD 状态:

osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]

3.7.6. 清理放置组

要清理放置组,请执行以下操作:

语法

ceph pg scrub PG_ID

Ceph 检查主节点和任何副本节点,生成放置组中所有对象的目录,并比较它们以确保没有缺少或不匹配对象,并且其内容一致。假设副本都匹配,最终语义 sweep 可确保所有与快照相关的对象元数据一致。通过日志报告错误。

3.7.7. 标记 unfound 对象

如果集群丢失了一个或多个对象,并且您决定取消搜索丢失数据,您必须将未找到的对象标记为 lost

如果查询了所有可能的位置,并且对象仍然丢失,您可能需要放弃丢失的对象。这是可行的失败组合,允许集群了解在写入本身恢复之前执行的写入操作。

目前唯一支持的选项为 "revert",该选项可回滚到对象的旧版本,或者完全忘记了它(如果它是新对象)。要将 "unfound" 对象标记为 "lost",请执行以下操作:

语法

ceph pg PG_ID mark_unfound_lost revert|delete

重要

请谨慎使用此功能,因为它可能会混淆预期对象存在的应用程序。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.