15.2. 缩减并替换 Red Hat Ceph Storage 节点
在某些情况下,您可能需要缩减 Red Hat Ceph Storage 集群或替换 Red Hat Ceph Storage 节点。在这两种情况下,您必须禁用并重新平衡您要从 overcloud 中删除的 Red Hat Ceph Storage 节点,以防止数据丢失。
如果 Red Hat Ceph Storage 集群没有丢失 OSD 的容量,请不要继续这个过程。
-
以
tripleo-admin
用户身份登录 overcloud Controller 节点。 -
使用
sudo cephadm shell
命令启动 Ceph shell。 使用
ceph osd tree
命令识别服务器要删除的 OSD。在以下示例中,我们需要识别
ceph-2
主机的 OSD。[ceph: root@oc0-controller-0 /]# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.58557 root default -7 0.19519 host ceph-2 5 hdd 0.04880 osd.5 up 1.00000 1.00000 7 hdd 0.04880 osd.7 up 1.00000 1.00000 9 hdd 0.04880 osd.9 up 1.00000 1.00000 11 hdd 0.04880 osd.11 up 1.00000 1.00000
将 Ceph 集群规格导出到 YAML 文件。
[ceph: root@oc0-controller-0 /]# ceph orch ls --export > spec.yml
-
编辑导出的规格文件,以便适用的主机从
service-type: osd hosts
列表中移除,且适用的主机将移除placement: hosts
值。 - 保存编辑的文件。
应用修改后的 Ceph 规格文件。
[ceph: root@oc0-controller-0 /]# ceph orch apply -i spec.yml
重要如果您在删除 OSD 前没有导出和导入 Ceph 规范文件,Ceph 管理器将尝试重新创建 OSD。
使用
ceph orch osd rm --zap <osd_list>
; 命令来移除 OSD。[ceph: root@oc0-controller-0 /]# ceph orch osd rm --zap 5 7 9 11 Scheduled OSD(s) for removal [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 27 False False 2021-04-23 21:35:51.215361 9 ceph-2 draining 8 False False 2021-04-23 21:35:49.111500 11 ceph-2 draining 14 False False 2021-04-23 21:35:50.243762
使用
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 orch host drain <HOST>
; 命令来排空任何剩余的守护进程。[ceph: root@oc0-controller-0 /]# ceph orch host drain ceph-2
使用
ceph orch host rm <HOST>
; 命令来移除主机。[ceph: root@oc0-controller-0 /]# ceph orch host rm ceph-2
- 结束 Ceph shell 会话。
-
从
tripleo-admin
帐户注销。 -
以
stack
用户身份登录 undercloud 节点。 使用以下方法修改
~/overcloud-baremetal-deploy.yaml
:-
减少角色中的
count
属性,以缩减。 为被取消置备的每个节点添加一个
instances
条目。每个条目都必须包含以下内容:-
baremetal
节点的名称
。 -
分配给该节点的主机名
。 provisioned: false
值。以下示例将删除
overcloud-compute-1
节点。- name: Compute count: 1 instances: - hostname: overcloud-compute-0 name: node10 # Removed from deployment due to disk failure provisioned: false - hostname: overcloud-compute-1 name: node11
-
baremetal
-
减少角色中的
使用
openstack overcloud node delete
命令删除该节点。openstack overcloud node delete \ --stack overcloud \ --baremetal-deployment ~/overcloud-baremetal-deploy.yaml
注意在删除节点前,将提供一个确认提示要删除的节点列表。
如果缩减 Ceph 集群是临时的,并且删除的节点稍后会被恢复,扩展操作在之前设置了 provisioned: false
的节点上增加 count
,并设置 provisioned: true
如果节点永远不会重复使用,则可以无限期设置 provisioned: false
,扩展操作可以指定新的 instances 条目。
+ 以下文件示例提供了每个实例的一些示例。
+
- name: Compute count: 2 instances: - hostname: overcloud-compute-0 name: node10 # Removed from deployment due to disk failure provisioned: false - hostname: overcloud-compute-1 name: node11 - hostname: overcloud-compute-2 name: node12