9.2. 高级对象操作故障排除
作为存储管理员,您可以使用 ceph-objectstore-tool
实用程序来执行高级别对象操作。ceph-objectstore-tool
实用程序支持以下高级对象操作:
- 列出对象
- 列出丢失的对象
- 修复丢失的对象
操作对象可能会导致无法恢复的数据丢失。在使用 ceph-objectstore-tool
实用程序前,请联络红帽支持。
9.2.1. 先决条件
- 对 Ceph OSD 节点的根级别访问权限.
9.2.2. 列出对象
OSD 可以包含零个到多个 PG 的 PG,对放置组(PG)中的多个对象包含零。ceph-objectstore-tool
实用程序允许您列出 OSD 中存储的对象。
先决条件
- Ceph OSD 节点的根级别访问权限.
-
停止
ceph-osd
守护进程.
流程
验证适当的 OSD 是否停机:
语法
systemctl status ceph-FSID@osd.OSD_ID
示例
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
登录到 OSD 容器:
语法
cephadm shell --name osd.OSD_ID
示例
[root@host01 ~]# cephadm shell --name osd.0
识别 OSD 内的所有对象,而不考虑 PG:
语法
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
识别 PG 中的所有对象:
语法
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
识别对象所属的 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
9.2.3. 修复丢失的对象
您可以使用 ceph-objectstore-tool
实用程序列出和修复 Ceph OSD 中存储的、未找到 的对象。这个过程只适用于旧对象。
先决条件
- Ceph OSD 节点的根级别访问权限.
-
停止
ceph-osd
守护进程.
流程
验证适当的 OSD 是否停机:
语法
systemctl status ceph-FSID@osd.OSD_ID
示例
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
登录到 OSD 容器:
语法
cephadm shell --name osd.OSD_ID
示例
[root@host01 ~]# cephadm shell --name osd.0
列出所有丢失的旧对象:
语法
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
使用
ceph-objectstore-tool
实用程序修复 丢失和未找到 的对象。选择适当的情况:修复所有丢失的对象:
语法
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
修复 PG 中丢失的所有对象:
语法
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
使用标识符修复丢失的对象:
语法
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