10.2. 容器化环境中的 Ceph 对象故障排除
OSD 容器可以在救援/维护模式下启动,以修复 Red Hat Ceph Storage 4 中的 OSD,而无需在 OSD 节点上安装 Ceph 软件包。
您可以使用 ceph-bluestore-tool
使用 fsck
命令运行一致性检查,或者运行一致性检查并修复所有有 repair
命令的错误。
此流程只适用于容器化部署。对于裸机部署跳过此部分
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- Ceph OSD 节点的根级别访问权限.
-
停止
ceph-osd
守护进程.
流程
在集群中设置
noout
标志。示例
ceph osd set noout
[root@mon ~]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录托管 OSD 容器的节点。
将
/etc/systemd/system/ceph-osd@.service
单元文件备份到/root
目录。示例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/run/ceph-osd@OSD_ID.service-cid
文件移到/root
。示例
mv /run/ceph-osd@0.service-cid /root
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/etc/systemd/system/ceph-osd@.service
单元文件,并在 podman 命令中添加-it --entrypoint /bin/bash
选项。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载
systemd
管理器配置。示例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启动与
OSD_ID
关联的 OSD 服务。语法
systemctl restart ceph-osd@OSD_ID.service
systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
OSD_ID
替换为 OSD 的 ID。示例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录与
OSD_ID
关联的容器。语法
podman exec -it ceph-osd-OSD_ID /bin/bash
podman exec -it ceph-osd-OSD_ID /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
podman exec -it ceph-osd-0 /bin/bash
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取
osd fsid
并激活 OSD 以挂载 OSD 的逻辑卷(LV)。语法
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
fsck
和repair
命令。语法
ceph-bluestore-tool fsck --path /var/lib/ceph/osd/ceph-OSD_ID ceph-bluestore-tool repair --path /var/lib/ceph/osd/ceph-OSD_ID
ceph-bluestore-tool fsck --path /var/lib/ceph/osd/ceph-OSD_ID ceph-bluestore-tool repair --path /var/lib/ceph/osd/ceph-OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph-bluestore-tool fsck --path /var/lib/ceph/osd/ceph-0
[root@osd ~]# ceph-bluestore-tool fsck --path /var/lib/ceph/osd/ceph-0 fsck success
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-bluestore-tool repair --path /var/lib/ceph/osd/ceph-0
[root@osd ~]# ceph-bluestore-tool repair --path /var/lib/ceph/osd/ceph-0 repair success
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出容器后,从
/root
目录中复制/etc/systemd/system/ceph-osd@.service
单元文件。示例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified [root@osd ~]# cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载
systemd
管理器配置。示例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/run/ceph-osd@OSD_ID.service-cid
文件移到/tmp
。示例
mv /run/ceph-osd@0.service-cid /tmp
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启动与
OSD_ID
关联的 OSD 服务。语法
systemctl restart ceph-osd@OSD_ID.service
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow