15.2. 缩减并替换 Ceph Storage 节点
在某些情况下,您可能需要缩减 Ceph Storage 集群或替换 Ceph Storage 节点。在这两种情况下,您必须禁用并重新平衡您要从 overcloud 中删除的 Ceph Storage 节点,以防止数据丢失。
如果 Ceph Storage 集群没有丢失 OSD 的容量,则不要进行此流程。
-
以
tripleo-admin
用户身份登录 overcloud Controller 节点。 -
使用
sudo cephadm shell
命令启动 Ceph shell。 使用
ceph osd tree
命令来识别要被服务器移除的 OSD。在以下示例中,我们将标识
ceph-2
主机的 OSD。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Ceph 集群规格导出到 YAML 文件。
[ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
[ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑导出的规格文件,以便适用的主机从
service-type: osd hosts
列表中移除,并且适用的主机具有placement: hosts
值被删除。 - 保存编辑的文件。
应用修改后的 Ceph 规格文件。
[ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
[ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您在删除 OSD 之前导出并编辑 Ceph 规格文件,Ceph 管理器将尝试重新创建 OSD。
使用
ceph orch osd rm --zap <osd_list>
; 命令来移除 OSD。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph orch osd status
命令检查移除 OSD 的状态。[ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 34 False False 2021-04-23 21:35:51.215361 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
[ceph: root@oc0-controller-0 /]# ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE DRAIN_STARTED_AT 7 ceph-2 draining 34 False False 2021-04-23 21:35:51.215361 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告不要继续下一步,直到此命令返回任何结果。
使用
ceph orch host drain <HOST>
; 命令来排空任何剩余的守护进程。[ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
[ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph orch host rm <HOST&
gt; 命令删除主机。[ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
[ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 结束 Ceph shell 会话。
-
从
tripleo-admin
帐户注销。 -
以
stack
用户身份登录 undercloud 节点。 使用以下命令修改
~/overcloud-baremetal-deploy.yaml
:-
减少要缩减的角色中的
count
属性。 为被取消置备的每个节点添加一个
instances
条目。每个条目都必须包含以下内容:-
baremetal
节点的名称
。 -
分配给该节点的主机名
。 provisioned: false
值。以下示例将移除
overcloud-compute-1
节点。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
baremetal
-
减少要缩减的角色中的
使用
openstack overcloud node delete
命令删除节点。openstack overcloud node delete \ --stack overcloud \ --baremetal-deployment ~/overcloud-baremetal-deploy.yaml
openstack overcloud node delete \ --stack overcloud \ --baremetal-deployment ~/overcloud-baremetal-deploy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在删除节点前,将提供要删除的节点列表,并带有确认提示。
如果缩减 Ceph 集群是临时的,并且删除的节点稍后会被恢复,扩展操作在之前设置了 provisioned: false
的节点上增加 count
,并设置 provisioned: true
如果节点永远不会重复使用,则可以无限期设置 provisioned: false
,扩展操作可以指定一个新的 instances 条目。
+ 以下文件示例提供了每个实例的一些示例。
+