第 8 章 Ceph 对象故障排除


作为存储管理员,您可以使用 ceph-objectstore-tool 程序执行高级别或低级对象操作。ceph-objectstore-tool 实用程序可帮助您排除与特定 OSD 或放置组中的对象相关的问题。

重要

操作对象可能会导致无法恢复的数据丢失。在使用 ceph-objectstore-tool 实用程序前,请联系红帽支持。

先决条件

  • 验证没有与网络相关的问题。

8.1. 高级对象操作故障排除

作为存储管理员,您可以使用 ceph-objectstore-tool 程序执行高级别对象操作。ceph-objectstore-tool 实用程序支持以下高级别对象操作:

  • 列出对象
  • 列出丢失的对象
  • 修复丢失的对象
重要

操作对象可能会导致无法恢复的数据丢失。在使用 ceph-objectstore-tool 实用程序前,请联系红帽支持。

先决条件

  • 对 Ceph OSD 节点的 root 级别访问权限。

8.1.1. 列出对象

OSD 可以包含零个到多个 PG 的 PG,对放置组(PG)中的多个对象包含零。ceph-objectstore-tool 实用程序允许您列出 OSD 中存储的对象。

先决条件

  • 对 Ceph OSD 节点的 root 级别访问权限。
  • 停止 ceph-osd 守护进程。

流程

  1. 验证适当的 OSD 是否为 down:

    语法

    systemctl status ceph-FSID@osd.OSD_ID

    示例

    [root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service

  2. 登录到 OSD 容器:

    语法

    cephadm shell --name osd.OSD_ID

    示例

    [root@host01 ~]# cephadm shell --name osd.0

  3. 识别 OSD 中的所有对象,而不考虑其放置组:

    语法

    ceph-objectstore-tool --data-path PATH_TO_OSD --op list

    示例

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list

  4. 识别放置组中的所有对象:

    语法

    ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list

    示例

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list

  5. 识别对象所属的 PG:

    语法

    ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID

    示例

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region

8.1.2. 修复丢失的对象

您可以使用 ceph-objectstore-tool 实用程序列出和修复 Ceph OSD 中存储的 丢失和未找到 的对象。此流程只适用于旧的对象。

先决条件

  • 对 Ceph OSD 节点的 root 级别访问权限。
  • 停止 ceph-osd 守护进程。

流程

  1. 验证适当的 OSD 是否为 down:

    语法

    systemctl status ceph-FSID@osd.OSD_ID

    示例

    [root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service

  2. 登录到 OSD 容器:

    语法

    cephadm shell --name osd.OSD_ID

    示例

    [root@host01 ~]# cephadm shell --name osd.0

  3. 列出所有丢失的传统对象:

    语法

    ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run

    示例

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run

  4. 使用 ceph-objectstore-tool 实用程序修复 lost 和 unfound 对象。选择适当的情况:

    1. 修复所有丢失的对象:

      语法

      ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost

      示例

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost

    2. 修复放置组中的所有丢失对象:

      语法

      ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lost

      示例

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost

    3. 按标识符修复丢失的对象:

      语法

      ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID

      示例

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.