15.2. 缩减并替换 Red Hat Ceph Storage 节点
在某些情况下,您可能需要缩减 Red Hat Ceph Storage 集群或替换 Red Hat Ceph Storage 节点。在这两种情况下,您必须禁用并重新平衡您要从 overcloud 中删除的 Red Hat Ceph Storage 节点,以防止数据丢失。
如果使用 director 部署的 Red Hat Ceph Storage,了解替换 Controller 节点的影响非常重要。Ceph 监控服务在 Controller 节点上运行,通常是从存储网络分配 IP 地址。这些 Ceph 监控服务 IP 地址与使用 Red Hat Ceph Storage 的虚拟机实例关联。如果在替换 Controller 节点的过程中 Ceph Monitor 服务 IP 地址发生变化,则不会动态更新它们。这可能会导致存储中断,特别是当替换多个 Controller 节点时。每个虚拟机实例都必须迁移、重启或取消封锁,才能解决 IP 地址更改和导致的中断。
重复利用已删除 Ceph Monitor 服务实例的 IP 地址,而不使用新的 IP 地址以避免这种情况。
例如,请参阅 overcloud 置备裸机节点的 第 5 步中的 fixed_ip 配置示例。
在 Controller 节点上使用以下命令查找当前的 Ceph Monitor 服务 IP 地址:
$ sudo cephadm shell -- ceph mon stat
如果 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-
退出
cephadmshell 将 Ceph 集群规格导出到 YAML 文件。
$ sudo cephadm shell -- ceph orch ls --export > spec.yaml-
编辑上一步中导出的规格文件。从
spec.yaml文件的placement:hosts部分中删除所有缩减的节点。 - 保存编辑的文件。
应用修改后的 Ceph 规格文件。
$ sudo cephadm shell -m spec.yaml -- ceph orch apply -i /mnt/spec.yaml重要如果您在删除 OSD 前没有导出和导入 Ceph 规范文件,Ceph 管理器将尝试重新创建 OSD。
-
使用
sudo cephadm shell命令启动 Ceph shell。 使用
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 集群使用,但仍然由 director 管理作为裸机节点。
结束 Ceph shell 会话。
注意如果缩减 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- 要从 director 中删除节点,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的缩减裸机节点。