从 Ceph 集群中清除 OSD

可以使用 rook-ceph-purge-osd 作业中的示例自动删除 OSD。 在 osd-purge.yaml 中,将 <OSD-IDs> 更改为要删除的 OSD 的 ID。
step 1. Run the job:

  1. kubectl create -f osd-purge.yaml

step 2.作业完成后,查看日志以确保成功:

  1. kubectl -n rook-ceph logs -l app=rook-ceph-purge-osd

step 3.完成后,您可以删除作业:

  1. kubectl delete -f osd-purge.yaml

手动清除 OSD
如果 OSD 清除作业失败或者您需要对删除进行细粒度控制,以下是可以从工具箱运行的各个命令。
step 1. 如果 Ceph 尚未将 OSD 标记为 out,则将其标记为 out。 这表示 Ceph 开始将那个 OSD 上的数据移动(回填)到另一个 OSD。

  1. ceph osd out osd.<ID>

OSD ID 是 23,这将是 “ceph osd out osd.23”

step 2.等待数据回填到其他 OSD。
当所有 PG 都处于 active+clean 状态时,ceph status 将指示回填已完成。 如果需要,在此之后移除磁盘是安全的。
step 3.从 Ceph 集群中删除 OSD

  1. ceph osd purge <ID> --yes-i-really-mean-it

step 4.验证 OSD 已从 CRUSH 图中的节点移除

  1. ceph osd tree

step 5.删除被 Ceph 视为“可安全销毁”的 OSD
operator可以自动删除被 Ceph 视为“可安全销毁”的 OSD 部署。 完成上述步骤后,OSD 将被视为可以安全移除,因为数据已全部移至其他 OSD。

a. 如果您在集群 CR 中有此设置,这只会由操作员自动完成:“removeOSDsIfOutAndSafeToRemove: true”
b. 否则,您将需要直接删除部署:

  1. kubectl delete deployment -n rook-ceph rook-ceph-osd-<ID>
posted @ 2022-04-29 09:34  Oops!#  阅读(1234)  评论(0编辑  收藏  举报