1.9. Red Hat Ceph Storage 的先决条件
在从 Controller 节点迁移 Red Hat Ceph Storage 集群守护进程前,请在 Red Hat OpenStack Platform 17.1 环境中完成以下任务:
- 将 Red Hat Ceph Storage 集群升级到版本 7。如需更多信息,请参阅 在 Framework 中将 Red Hat Ceph Storage 6 升级到 7 (16.2 升级到 17.1)。
-
您的 Red Hat Ceph Storage 7 部署由
cephadm管理。 - undercloud 仍然可用,节点和网络由 director Operator 管理。
-
如果使用外部部署的 Red Hat Ceph Storage 集群,则必须在目标节点中重新创建
ceph-nfs集群,并探测StorageNFS网络。
完成特定 Red Hat Ceph Storage 环境的先决条件:
1.9.1. 使用监控堆栈组件的 Red Hat Ceph Storage 集群完成先决条件 复制链接链接已复制到粘贴板!
在使用监控堆栈组件迁移 Red Hat Ceph Storage 集群前,您必须收集监控堆栈信息,查看和更新容器镜像 registry,并删除 undercloud 容器镜像。
除了更新与监控堆栈相关的容器镜像外,还需要更新与 container_image_base 相关的配置条目。这会影响依赖于 undercloud 镜像的所有 Red Hat Ceph Storage 守护进程。使用 Red Hat Ceph Storage 集群中配置的新镜像 registry 位置部署新的守护进程。
流程
收集监控堆栈的当前状态。当每个守护进程放置评估时,验证主机没有
监控标签或grafana、prometheus或alertmanager:注意整个重定位过程由
cephadm驱动,它依赖于将标签分配给目标节点,其中调度守护进程。有关为节点分配标签的更多信息,请参阅红帽知识库文章 Red Hat Ceph Storage: 支持的配置。[tripleo-admin@controller-0 ~]$ sudo cephadm shell -- ceph orch host ls HOST ADDR LABELS STATUS cephstorage-0.redhat.local 192.168.24.11 osd mds cephstorage-1.redhat.local 192.168.24.12 osd mds cephstorage-2.redhat.local 192.168.24.47 osd mds controller-0.redhat.local 192.168.24.35 _admin mon mgr controller-1.redhat.local 192.168.24.53 mon _admin mgr controller-2.redhat.local 192.168.24.10 mon _admin mgr 6 hosts in cluster确认集群处于健康状态,并且
ceph orch ls和ceph orch ps都返回预期的部署的守护进程数量。检查和更新容器镜像 registry:
注意如果在迁移 Red Hat OpenStack Platform control plane 后运行 Red Hat Ceph Storage 外部化过程,请更新 Red Hat Ceph Storage 集群配置中的容器镜像。当前容器镜像指向 undercloud registry,可能不再可用。由于使用完成后 undercloud 不可用,因此请将 undercloud 提供的镜像替换为替代的 registry。
$ ceph config dump ... ... mgr advanced mgr/cephadm/container_image_alertmanager undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-alertmanager:v4.10 mgr advanced mgr/cephadm/container_image_base undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhceph mgr advanced mgr/cephadm/container_image_grafana undercloud-0.ctlplane.redhat.local:8787/rh-osbs/grafana:latest mgr advanced mgr/cephadm/container_image_node_exporter undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus-node-exporter:v4.10 mgr advanced mgr/cephadm/container_image_prometheus undercloud-0.ctlplane.redhat.local:8787/rh-osbs/openshift-ose-prometheus:v4.10删除 undercloud 容器镜像:
$ cephadm shell -- ceph config rm mgr mgr/cephadm/container_image_base \ for i in prometheus grafana alertmanager node_exporter; do \ cephadm shell -- ceph config rm mgr mgr/cephadm/container_image_$i \ done
1.9.2. 为 Red Hat Ceph Storage RGW 迁移完成先决条件 复制链接链接已复制到粘贴板!
在开始 Ceph 对象网关(RGW)迁移前,请完成以下先决条件。
流程
检查 Red Hat Ceph Storage 节点的当前状态:
(undercloud) [stack@undercloud-0 ~]$ metalsmith list +------------------------+ +----------------+ | IP Addresses | | Hostname | +------------------------+ +----------------+ | ctlplane=192.168.24.25 | | cephstorage-0 | | ctlplane=192.168.24.10 | | cephstorage-1 | | ctlplane=192.168.24.32 | | cephstorage-2 | | ctlplane=192.168.24.28 | | compute-0 | | ctlplane=192.168.24.26 | | compute-1 | | ctlplane=192.168.24.43 | | controller-0 | | ctlplane=192.168.24.7 | | controller-1 | | ctlplane=192.168.24.41 | | controller-2 | +------------------------+ +----------------+登录到
controller-0,并检查 Pacemaker 状态以识别 RGW 迁移的重要信息:Full List of Resources: * ip-192.168.24.46 (ocf:heartbeat:IPaddr2): Started controller-0 * ip-10.0.0.103 (ocf:heartbeat:IPaddr2): Started controller-1 * ip-172.17.1.129 (ocf:heartbeat:IPaddr2): Started controller-2 * ip-172.17.3.68 (ocf:heartbeat:IPaddr2): Started controller-0 * ip-172.17.4.37 (ocf:heartbeat:IPaddr2): Started controller-1 * Container bundle set: haproxy-bundle [undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhosp17-openstack-haproxy:pcmklatest]: * haproxy-bundle-podman-0 (ocf:heartbeat:podman): Started controller-2 * haproxy-bundle-podman-1 (ocf:heartbeat:podman): Started controller-0 * haproxy-bundle-podman-2 (ocf:heartbeat:podman): Started controller-1识别存储网络的范围。以下是一个示例,值可能与您环境中的不同:
[heat-admin@controller-0 ~]$ ip -o -4 a 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 2: enp1s0 inet 192.168.24.45/24 brd 192.168.24.255 scope global enp1s0\ valid_lft forever preferred_lft forever 2: enp1s0 inet 192.168.24.46/32 brd 192.168.24.255 scope global enp1s0\ valid_lft forever preferred_lft forever 7: br-ex inet 10.0.0.122/24 brd 10.0.0.255 scope global br-ex\ valid_lft forever preferred_lft forever1 8: vlan70 inet 172.17.5.22/24 brd 172.17.5.255 scope global vlan70\ valid_lft forever preferred_lft forever 8: vlan70 inet 172.17.5.94/32 brd 172.17.5.255 scope global vlan70\ valid_lft forever preferred_lft forever 9: vlan50 inet 172.17.2.140/24 brd 172.17.2.255 scope global vlan50\ valid_lft forever preferred_lft forever 10: vlan30 inet 172.17.3.73/24 brd 172.17.3.255 scope global vlan30\ valid_lft forever preferred_lft forever2 10: vlan30 inet 172.17.3.68/32 brd 172.17.3.255 scope global vlan30\ valid_lft forever preferred_lft forever 11: vlan20 inet 172.17.1.88/24 brd 172.17.1.255 scope global vlan20\ valid_lft forever preferred_lft forever 12: vlan40 inet 172.17.4.24/24 brd 172.17.4.255 scope global vlan40\ valid_lft forever preferred_lft forever识别您之前在 HAProxy 中具有的网络,并通过 director Operator 传播到 Red Hat Ceph Storage 节点。使用此网络保留由 Red Hat Ceph Storage 拥有的新 VIP,作为 RGW 服务的入口点。
登录到
controller-0,并在当前 HAProxy 配置中找到ceph_rgw部分:$ less /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg ... ... listen ceph_rgw bind 10.0.0.103:8080 transparent bind 172.17.3.68:8080 transparent mode http balance leastconn http-request set-header X-Forwarded-Proto https if { ssl_fc } http-request set-header X-Forwarded-Proto http if !{ ssl_fc } http-request set-header X-Forwarded-Port %[dst_port] option httpchk GET /swift/healthcheck option httplog option forwardfor server controller-0.storage.redhat.local 172.17.3.73:8080 check fall 5 inter 2000 rise 2 server controller-1.storage.redhat.local 172.17.3.146:8080 check fall 5 inter 2000 rise 2 server controller-2.storage.redhat.local 172.17.3.156:8080 check fall 5 inter 2000 rise 2确认网络已用作 HAProxy 前端。下例演示了
controller-0使用外部网络来公开服务,这不包括在 Red Hat Ceph Storage 节点。您必须通过 director Operator 传播外部网络:[controller-0]$ ip -o -4 a ... 7: br-ex inet 10.0.0.106/24 brd 10.0.0.255 scope global br-ex\ valid_lft forever preferred_lft forever ...注意如果目标节点不是由 director 管理,则无法使用此流程配置网络。管理员必须手动配置所有必需的网络。
将 HAProxy 前端网络传播到 Red Hat Ceph Storage 节点。
在用来定义
ceph-storage网络接口的 NIC 模板中,在 Red Hat Ceph Storage 网络配置模板文件中添加新配置部分,例如/home/stack/composable_roles/network/nic-configs/ceph-storage.j2:--- network_config: - type: interface name: nic1 use_dhcp: false dns_servers: {{ ctlplane_dns_nameservers }} addresses: - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }} routes: {{ ctlplane_host_routes }} - type: vlan vlan_id: {{ storage_mgmt_vlan_id }} device: nic1 addresses: - ip_netmask: {{ storage_mgmt_ip }}/{{ storage_mgmt_cidr }} routes: {{ storage_mgmt_host_routes }} - type: interface name: nic2 use_dhcp: false defroute: false - type: vlan vlan_id: {{ storage_vlan_id }} device: nic2 addresses: - ip_netmask: {{ storage_ip }}/{{ storage_cidr }} routes: {{ storage_host_routes }} - type: ovs_bridge name: {{ neutron_physical_bridge_name }} dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} use_dhcp: false addresses: - ip_netmask: {{ external_ip }}/{{ external_cidr }} routes: {{ external_host_routes }} members: [] - type: interface name: nic3 primary: true将外部网络添加到裸机文件中,例如:
/home/stack/composable_roles/network/baremetal_deployment.yaml,该文件由metalsmith:注意在触发
os-net-config时,确保为目标节点启用了 network_config_update,以传播到目标节点。- name: CephStorage count: 3 hostname_format: cephstorage-%index% instances: - hostname: cephstorage-0 name: ceph-0 - hostname: cephstorage-1 name: ceph-1 - hostname: cephstorage-2 name: ceph-2 defaults: profile: ceph-storage network_config: template: /home/stack/composable_roles/network/nic-configs/ceph-storage.j2 network_config_update: true networks: - network: ctlplane vif: true - network: storage - network: storage_mgmt - network: external在裸机节点上配置新网络:
(undercloud) [stack@undercloud-0]$ openstack overcloud node provision \ -o overcloud-baremetal-deployed-0.yaml \ --stack overcloud \ --network-config -y \ $PWD/composable_roles/network/baremetal_deployment.yaml验证 Red Hat Ceph Storage 节点上的新网络是否已配置:
[root@cephstorage-0 ~]# ip -o -4 a 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 2: enp1s0 inet 192.168.24.54/24 brd 192.168.24.255 scope global enp1s0\ valid_lft forever preferred_lft forever 11: vlan40 inet 172.17.4.43/24 brd 172.17.4.255 scope global vlan40\ valid_lft forever preferred_lft forever 12: vlan30 inet 172.17.3.23/24 brd 172.17.3.255 scope global vlan30\ valid_lft forever preferred_lft forever 14: br-ex inet 10.0.0.133/24 brd 10.0.0.255 scope global br-ex\ valid_lft forever preferred_lft forever
1.9.3. 完成 Red Hat Ceph Storage RBD 迁移的先决条件 复制链接链接已复制到粘贴板!
在开始 Red Hat Ceph Storage Rados 块设备(RBD)迁移前,请完成以下先决条件。
-
目标 CephStorage 或 ComputeHCI 节点都配置为具有
storage和storage_mgmt网络。这可确保使用来自同一节点的 Red Hat Ceph Storage 公共和集群网络。从 Red Hat OpenStack Platform 17.1 及之后的版本,您不必运行堆栈更新。 -
NFS Ganesha 从 director Operator 部署迁移到
cephadm。如需更多信息,请参阅创建 NFS Ganesha 集群。 - Ceph 元数据服务器、监控堆栈、Ceph 对象网关以及 Controller 节点上部署的任何其他守护进程。
- 守护进程分布遵循 Red Hat Ceph Storage 中描述的卡性约束:支持的配置。
-
Red Hat Ceph Storage 集群处于健康状态,
ceph -s命令返回HEALTH_OK。 在裸机节点上运行
os-net-config并配置额外网络:如果目标节点是
CephStorage,请确保在CephStorage节点的裸机文件中定义了网络,例如/home/stack/composable_roles/network/baremetal_deployment.yaml:- name: CephStorage count: 2 instances: - hostname: oc0-ceph-0 name: oc0-ceph-0 - hostname: oc0-ceph-1 name: oc0-ceph-1 defaults: networks: - network: ctlplane vif: true - network: storage_cloud_0 subnet: storage_cloud_0_subnet - network: storage_mgmt_cloud_0 subnet: storage_mgmt_cloud_0_subnet network_config: template: templates/single_nic_vlans/single_nic_vlans_storage.j2添加缺少的网络:
$ openstack overcloud node provision \ -o overcloud-baremetal-deployed-0.yaml --stack overcloud-0 \ /--network-config -y --concurrency 2 /home/stack/metalsmith-0.yaml验证存储网络是否在目标节点上配置:
(undercloud) [stack@undercloud ~]$ ssh heat-admin@192.168.24.14 ip -o -4 a 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 5: br-storage inet 192.168.24.14/24 brd 192.168.24.255 scope global br-storage\ valid_lft forever preferred_lft forever 6: vlan1 inet 192.168.24.14/24 brd 192.168.24.255 scope global vlan1\ valid_lft forever preferred_lft forever 7: vlan11 inet 172.16.11.172/24 brd 172.16.11.255 scope global vlan11\ valid_lft forever preferred_lft forever 8: vlan12 inet 172.16.12.46/24 brd 172.16.12.255 scope global vlan12\ valid_lft forever preferred_lft forever
1.9.4. 创建 NFS Ganesha 集群 复制链接链接已复制到粘贴板!
本节中的内容 作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。如需更多信息,请参阅 技术预览。
如果您将 CephFS through NFS 与共享文件系统服务(manila)搭配使用,您必须在 Red Hat Ceph Storage 集群上创建新的集群的 NFS 服务。此服务替换您在 Red Hat OpenStack Platform (RHOSP) 17.1 中使用的独立、由 Pacemaker 控制的 ceph-nfs 服务。
流程
识别 Red Hat Ceph Storage 节点,以部署新的集群 NFS 服务,如
cephstorage-0、cephstorage-1、cephstorage-2。注意您必须在
StorageNFS隔离的网络中部署此服务,以便您可以通过新的 NFS 导出位置挂载现有的共享。您可以在现有 Ceph 存储节点或 HCI 节点上部署新的集群 NFS 服务,也可以在 Red Hat Ceph Storage 集群中注册的新硬件上部署。如果您使用 director Operator 部署 Red Hat Ceph Storage 节点,请将
StorageNFS网络传播到部署ceph-nfs服务的目标节点。注意如果目标节点不是由 director 管理,则无法使用此流程配置网络。管理员必须手动配置所有必需的网络。
-
识别 RHOSP 环境中使用的节点定义文件
overcloud-baremetal-deploy.yaml。有关识别overcloud-baremetal-deploy.yaml文件的更多信息,请参阅 在 OpenShift 部署上自定义 Red Hat OpenStack Services 中的自定义 overcloud 网络。 编辑与 Red Hat Ceph Storage 节点关联的网络,使其包含
StorageNFS网络:- name: CephStorage count: 3 hostname_format: cephstorage-%index% instances: - hostname: cephstorage-0 name: ceph-0 - hostname: cephstorage-1 name: ceph-1 - hostname: cephstorage-2 name: ceph-2 defaults: profile: ceph-storage network_config: template: /home/stack/network/nic-configs/ceph-storage.j2 network_config_update: true networks: - network: ctlplane vif: true - network: storage - network: storage_mgmt - network: storage_nfs编辑 Red Hat Ceph Storage 节点的
/home/stack/network/nic-configs/ceph-storage.j2,使其包含连接到StorageNFS网络的接口:- type: vlan device: nic2 vlan_id: {{ storage_nfs_vlan_id }} addresses: - ip_netmask: {{ storage_nfs_ip }}/{{ storage_nfs_cidr }} routes: {{ storage_nfs_host_routes }}更新 Red Hat Ceph Storage 节点:
$ openstack overcloud node provision \ --stack overcloud \ --network-config -y \ -o overcloud-baremetal-deployed-storage_nfs.yaml \ --concurrency 2 \ /home/stack/network/baremetal_deployment.yaml更新完成后,确保 Red Hat Ceph Storage 节点中创建了一个新接口,并使用与
StorageNFS关联的 VLAN 标记。
-
识别 RHOSP 环境中使用的节点定义文件
识别
StorageNFS网络的 IP 地址,以用作 Ceph NFS 服务的虚拟 IP 地址(VIP):$ openstack port list -c "Fixed IP Addresses" --network storage_nfs在正在运行的
cephadmshell 中,识别 NFS 服务的主机:$ ceph orch host ls标记您确定的每个主机。对您要标记的每个主机重复这个命令:
$ ceph orch host label add <hostname> nfs-
将
<hostname> 替换为您识别的主机的名称。
-
将
创建 NFS 集群:
$ ceph nfs cluster create cephfs \ "label:nfs" \ --ingress \ --virtual-ip=<VIP> \ --ingress-mode=haproxy-protocol将
<VIP> 替换为 Ceph NFS 服务的 VIP。注意您必须将
ingress-mode参数设置为haproxy-protocol。不支持其他 ingress 模式。此入口模式允许您通过共享文件系统服务强制客户端限制。有关部署集群 Ceph NFS 服务的更多信息,请参阅 Red Hat Ceph Storage 7 Operations Guide 中的使用 Ceph Orchestrator (Limited Availability)管理 NFS-Ganesha 网关。
检查 NFS 集群的状态:
$ ceph nfs cluster ls $ ceph nfs cluster info cephfs