9.5.2. 将 Ceph Monitor 守护进程迁移到 Red Hat Ceph Storage 节点
您必须将 Ceph Monitor 守护进程从 Red Hat OpenStack Platform (RHOSP) Controller 节点移到一组目标节点。如果 Red Hat Ceph Storage 由带有 Hyperconverged Infrastructure (HCI)拓扑的 director Operator 部署,则目标节点可以是现有的 Red Hat Ceph Storage 节点,或 RHOSP Compute 节点。额外的 Ceph 监控器部署到目标节点上,它们被提升为 _admin 节点,您可以使用它们来管理 Red Hat Ceph Storage 集群并执行第 2 天操作。
要迁移 Ceph Monitor 守护进程,您必须执行以下高级别步骤:
对托管 Ceph 监控器的任何其他 Controller 节点重复这些步骤,直到您将所有 Ceph Monitor 守护进程迁移到目标节点。
9.5.2.1. 为 Ceph 监控迁移配置目标节点 复制链接链接已复制到粘贴板!
通过执行以下操作,为 Ceph Monitor 迁移准备目标 Red Hat Ceph Storage 节点:
- 在目标节点中启用防火墙规则并保留它们。
-
创建一个基于标签的 spec,并使用
cephadm应用它。 - 确保在迁移过程中维护 Ceph Monitor 仲裁。
流程
SSH 到目标节点,并启用访问 Ceph 监控服务所需的防火墙规则:
$ for port in 3300 6789; { ssh heat-admin@<target_node> sudo iptables -I INPUT \ -p tcp -m tcp --dport $port -m conntrack --ctstate NEW \ -j ACCEPT; }-
将
<target_node> 替换为托管新 Ceph Monitor 的节点的主机名。
-
将
检查规则是否已正确应用到目标节点并保留它们:
$ sudo iptables-save $ sudo systemctl restart iptables如果在现有部署中使用了
nftables,请编辑/etc/nftables/tripleo-rules.nft并添加以下内容:# 110 ceph_mon {'dport': [6789, 3300, '9100']} add rule inet filter TRIPLEO_INPUT tcp dport { 6789,3300,9100 } ct state new counter accept comment "110 ceph_mon"- 保存该文件。
重启
nftables服务:$ sudo systemctl restart nftables验证是否应用了规则:
$ sudo nft list ruleset | grep ceph_mon要将现有的 Ceph Monitor 迁移到目标 Red Hat Ceph Storage 节点,请从第一个 Ceph Monitor 或第一个 Controller 节点检索 Red Hat Ceph Storage mon spec:
$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ mkdir -p ${SPEC_DIR} $ sudo cephadm shell -- ceph orch ls --export mon > ${SPEC_DIR}/mon在
placement部分添加label:mon部分:service_type: mon service_id: mon placement: label: mon- 保存 spec。
使用 Ceph 编排器应用带有
cephadm的 spec:$ SPEC_DIR=${SPEC_DIR:-"$PWD/ceph_specs"} $ sudo cephadm shell -m ${SPEC_DIR}/mon -- ceph orch apply -i /mnt/mon将
mon标签扩展到剩余的 Red Hat Ceph Storage 目标节点,以确保在迁移过程中维护仲裁:for item in $(sudo cephadm shell -- ceph orch host ls --format json | jq -r '.[].hostname'); do sudo cephadm shell -- ceph orch host label add $item mon; sudo cephadm shell -- ceph orch host label add $item _admin; done注意应用
monspec 允许现有策略使用标签,而不是主机。因此,任何具有mon标签的节点都可以托管 Ceph Monitor 守护进程。仅执行此步骤一次,以避免在迁移多个 Ceph monitor 时进行多次迭代。检查 Red Hat Ceph Storage 和 Ceph 编排器守护进程列表的状态。确保 Ceph 监控器位于仲裁中,并由
ceph orch命令列出:$ sudo cephadm shell -- ceph -s cluster: id: f6ec3ebe-26f7-56c8-985d-eb974e8e08e3 health: HEALTH_OK services: mon: 6 daemons, quorum controller-0,controller-1,controller-2,ceph-0,ceph-1,ceph-2 (age 19m) mgr: controller-0.xzgtvo(active, since 32m), standbys: controller-1.mtxohd, controller-2.ahrgsk osd: 8 osds: 8 up (since 12m), 8 in (since 18m); 1 remapped pgs data: pools: 1 pools, 1 pgs objects: 0 objects, 0 B usage: 43 MiB used, 400 GiB / 400 GiB avail pgs: 1 active+clean$ sudo cephadm shell -- ceph orch host ls HOST ADDR LABELS STATUS ceph-0 192.168.24.14 osd mon mgr _admin ceph-1 192.168.24.7 osd mon mgr _admin ceph-2 192.168.24.8 osd mon mgr _admin controller-0 192.168.24.15 _admin mgr mon controller-1 192.168.24.23 _admin mgr mon controller-2 192.168.24.13 _admin mgr mon在剩余的流程过程中使用的第一个 Controller 节点设置 Ceph 客户端,以便与 Red Hat Ceph Storage 交互。在存储网络上设置一个额外的 IP 地址,在第一个 Controller 节点停用时用于与 Red Hat Ceph Storage 交互:
备份
ceph_client_backup目录中/etc/ceph的内容。$ mkdir -p $HOME/ceph_client_backup $ sudo cp -R /etc/ceph/* $HOME/ceph_client_backup-
在属于存储网络的 VLAN 上的 IP 地址后,编辑
/etc/os-net-config/config.yaml和 add- ip_netmask: 172.17.3.200。将172.17.3.200替换为存储网络上的任何其他可用 IP 地址,这些 IP 地址可静态分配给controller-0。 保存文件并刷新
controller-0网络配置:$ sudo os-net-config -c /etc/os-net-config/config.yaml验证 Controller 节点中是否存在 IP 地址:
$ ip -o a | grep 172.17.3.200Ping IP 地址,并确认它可以访问:
$ ping -c 3 172.17.3.200验证您可以与 Red Hat Ceph Storage 集群交互:
$ sudo cephadm shell -c $HOME/ceph_client_backup/ceph.conf -k $HOME/ceph_client_backup/ceph.client.admin.keyring -- ceph -s
后续步骤
继续下一步 Draining 源节点。