第 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
守护进程。
流程
验证适当的 OSD 的状态是否为 down:
语法
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到 OSD 容器:
语法
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 识别 OSD 中的所有对象,无论其 PG 是什么:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --op list
ceph-objectstore-tool --data-path PATH_TO_OSD --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 识别放置组中的所有对象:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 识别对象所属的 PG:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID
ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.2. 修复丢失的对象 复制链接链接已复制到粘贴板!
您可以使用 ceph-objectstore-tool
实用程序列出和修复 Ceph OSD 中存储的 丢失和未找到 的对象。此流程只适用于旧的对象。
先决条件
- 对 Ceph OSD 节点的 root 级别访问权限。
-
停止
ceph-osd
守护进程。
流程
验证适当的 OSD 的状态是否为 down:
语法
systemctl status ceph-FSID@osd.OSD_ID
systemctl status ceph-FSID@osd.OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到 OSD 容器:
语法
cephadm shell --name osd.OSD_ID
cephadm shell --name osd.OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cephadm shell --name osd.0
[root@host01 ~]# cephadm shell --name osd.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出所有丢失的旧对象:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph-objectstore-tool
程序修复 lost 和 unfound 对象。选择适当的情况:修复所有丢失的对象:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修复 PG 中所有丢失的对象:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lost
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过其标识符修复丢失的对象:
语法
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region
[ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow