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。[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