ceph osd, pool的删除

时间:2024-03-15 13:58:30

第一部分:ceph osd的删除

如果要删除某一个osd(不管是处于up状态的还是处于down状态的)

    A) 如果osd处于up状态,第一步就是要将up状态转换为down状态,执行命令ceph osd down osd.num(此为osd id)

    B) 如果osd处于down状态,直接执行命令ceph osd out osd.id, 将osd标记为out状态。

    C) 接着执行命令ceph osd rm osd.id 将osd 直接删除。

    D) 接下来删除cursh 中与osd.id对应的map,可以执行命令ceph osd crush rm osd.id。

    E) 最后删除osd.id的auth,命令为:ceph auth del osd.id。

整个流程的步骤如下图:

ceph osd, pool的删除

PS:删除osd的前提是osd进程必须处于stop状态。

第二部分: cephfs的删除

 a) 查找要删除的pool,ceph osd lspools

ceph osd, pool的删除

b) 假如要删除第三个pool,也就是reco-fs。

    执行命令ceph osd pool rm reco-fs --yes-i-really-really-mean-it。此时会报错,错误内容为:Error EPERM: WARNING: this will *PERMANENTLY DESTROY* all data stored in pool reco-fs.  If you are *ABSOLUTELY CERTAIN* that is what you want, pass the pool name *twice*, followed by --yes-i-really-really-mean-it.然后根据提示在删除的时候输入两次pool name,然后执行命令:ceph osd pool rm reco-fs reco-fs --yes-i-really-really-mean-it. 此时又会有错误提示:Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool。根据提示需要将mon_allow_pool_delete的value设置为true,可以查看mon_allow_pool_delete的默认值。

ceph osd, pool的删除

然后在mon节点上面修改ceph.conf文件,添加内容: mon_allow_pool_delete = true, 然后重启osd进程mgr进程,

ceph osd, pool的删除

最后执行命令:ceph osd pool rm reco-fs reco-fs --yes-i-really-mean-it 删除pool  reco-fs

ceph osd, pool的删除