9.4. 列出放置组不一致


使用 rados 实用程序列出对象不同副本中的不一致情况。使用 --format=json-pretty 选项列出更详细的输出。

本节涵盖以下列表:

  • 池中 PG 不一致
  • 放置组中的对象不一致
  • PG 中的快照设置不一致

先决条件

  • 正在运行的红帽 Ceph 存储集群处于健康状态。
  • 节点的根级别访问权限。

流程

rados list-inconsistent-pg POOL --format=json-pretty
Copy to Clipboard Toggle word wrap

例如,列出名为 data 的池中所有不一致的 PG:

# rados list-inconsistent-pg data --format=json-pretty
[0.6]
Copy to Clipboard Toggle word wrap
rados list-inconsistent-obj PLACEMENT_GROUP_ID
Copy to Clipboard Toggle word wrap

例如,列出 ID 为 0.6 的 PG 中的不一致对象:

# rados list-inconsistent-obj 0.6
{
    "epoch": 14,
    "inconsistents": [
        {
            "object": {
                "name": "image1",
                "nspace": "",
                "locator": "",
                "snap": "head",
                "version": 1
            },
            "errors": [
                "data_digest_mismatch",
                "size_mismatch"
            ],
            "union_shard_errors": [
                "data_digest_mismatch_oi",
                "size_mismatch_oi"
            ],
            "selected_object_info": "0:602f83fe:::foo:head(16'1 client.4110.0:1 dirty|data_digest|omap_digest s 968 uv 1 dd e978e67f od ffffffff alloc_hint [0 0 0])",
            "shards": [
                {
                    "osd": 0,
                    "errors": [],
                    "size": 968,
                    "omap_digest": "0xffffffff",
                    "data_digest": "0xe978e67f"
                },
                {
                    "osd": 1,
                    "errors": [],
                    "size": 968,
                    "omap_digest": "0xffffffff",
                    "data_digest": "0xe978e67f"
                },
                {
                    "osd": 2,
                    "errors": [
                        "data_digest_mismatch_oi",
                        "size_mismatch_oi"
                    ],
                    "size": 0,
                    "omap_digest": "0xffffffff",
                    "data_digest": "0xffffffff"
                }
            ]
        }
    ]
}
Copy to Clipboard Toggle word wrap

以下字段对于决定造成不一致的原因非常重要:

  • name :副本不一致的对象名称。
  • NS PACE:是池逻辑分割的命名空间。默认情况下是空的。
  • locator :用作放置对象名称替代替换的键。
  • snap :对象的快照 ID。对象的唯一可写版本称为 head。如果对象是克隆,则此字段包含其顺序 ID。
  • Version :副本不一致的对象的版本 ID。每个对象写入操作都会递增它。
  • 错误 :显示分片之间不一致的错误列表,但不决定哪个分片或分片不正确。请参阅 分片 数组以进一步调查错误。

    • data_digest_mismatch :从一个 OSD 读取的副本摘要与其他 OSD 不同。
    • size_mismatch :克隆的大小或 对象与预期不匹配。
    • read_error :此错误表示磁盘错误很有可能导致不一致。
  • union_shard_error :所有特定于分片的错误的并集。这些错误连接到有故障的分片。with oi 结尾的错误表示您必须将故障对象中的信息与选定对象的信息进行比较。请参阅 分片 数组以进一步调查错误。

    在上例中,存储在 osd.2 上的对象副本的摘要与 osd. 0 和 osd. 1 上存储的副本不同。具体来说,副本摘要不是从 osd.2 读取的分片中计算的 0xffffffff,而是 0xe978e67f。此外,从 osd.2 读取的副本大小为 0,而 osd. 0 和 osd. 1 报告的大小为 968。

rados list-inconsistent-snapset PLACEMENT_GROUP_ID
Copy to Clipboard Toggle word wrap

例如,列出 ID 为 0.23 的 PG 中不一致的快照集(snapset):

# rados list-inconsistent-snapset 0.23 --format=json-pretty
{
    "epoch": 64,
    "inconsistents": [
        {
            "name": "obj5",
            "nspace": "",
            "locator": "",
            "snap": "0x00000001",
            "headless": true
        },
        {
            "name": "obj5",
            "nspace": "",
            "locator": "",
            "snap": "0x00000002",
            "headless": true
        },
        {
            "name": "obj5",
            "nspace": "",
            "locator": "",
            "snap": "head",
            "ss_attr_missing": true,
            "extra_clones": true,
            "extra clones": [
                2,
                1
            ]
        }
    ]
Copy to Clipboard Toggle word wrap

该命令返回以下错误:

  • ss_attr_missing :缺少一个或多个属性。属性是关于作为键值对列表编码到快照集的快照的信息。
  • ss_attr_corrupted :一个或多个属性无法解码。
  • clone_missing :缺少克隆。
  • snapset_mismatch :快照集本身不一致。
  • head_mismatch :快照集表示 head 存在或不存在,但清理结果报告其他。
  • 标头:缺少快照集 的头部
  • size_mismatch :克隆的大小或 对象与预期不匹配。

其它资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat