1.5. 部署 HCI overcloud
完成 HCI 配置后,您必须部署 overcloud。
在部署 Red Hat OpenStack Platform (RHOSP) HCI 环境时,不要启用实例 HA。如果要将 Instance HA 与 Red Hat Ceph Storage 搭配使用超线程 RHOSP 部署,请联系您的红帽代表。
先决条件
-
对于所有其他 Red Hat Ceph Storage 设置,您可以使用单独的基本环境文件或一组文件,例如
/home/stack/templates/storage-config.yaml。有关更多信息,请参阅自定义存储服务 和 附录 A. Sample 环境文件:创建 Ceph 存储集群。 - 您已定义了您要分配给基本环境文件中各个角色的节点数量。如需更多信息,请参阅 将节点和类别分配给角色。
-
在 undercloud 安装过程中,您可以在
undercloud.conf文件中设置generate_service_certificate=false。否则,在部署 overcloud 时您必须注入一个信任定位符,如 Overcloud Public Endpoints 上启用 SSL/TLS 中所述。
流程
使用其他环境文件将新角色和环境文件添加到堆栈中,并部署您的 HCI overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -r /home/stack/templates/roles_data_hci.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml -e /home/stack/templates/storage-config.yaml \ -e /home/stack/templates/storage-container-config.yaml \ -n /home/stack/templates/network_data.yaml \ [-e /home/stack/templates/ceph-backfill-recovery.yaml \ ] --ntp-server pool.ntp.org
在部署命令中包含
/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml,添加部署容器化 Red Hat Ceph 集群的基本环境文件,以及所有默认设置。有关更多信息,请参阅使用容器化 Red Hat Ceph 部署 Overcloud。
如果您的部署使用单一根输入/输出虚拟化(SR-IOV),请在部署命令中包括以下选项。
如果您在部署中使用 ML2/OVS 机制驱动程序,请指定以下选项:
-e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml -e /home/stack/templates/network-environment.yaml
如果您在部署中使用 ML2/OVN 机制驱动程序,请指定以下选项:
-e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-sriov.yaml -e /home/stack/templates/network-environment.yaml
您还可以使用 回答文件 来指定要在部署中包含的环境文件。如需更多信息,请参阅 Director 安装和使用 指南中的将 overcloud 部署包含环境文件。
1.5.1. 限制运行 ceph-ansible 的节点
您可以通过限制运行 ceph-ansible 的节点来缩短部署更新时间。当 Red Hat OpenStack Platform (RHOSP)使用 config-download 配置 Ceph 时,您可以使用 --limit 选项指定节点列表,而不是在整个部署中运行 config-download 和 ceph-ansible。此功能很有用,例如,作为扩展 overcloud 的一部分或替换失败的磁盘的一部分。在这些情况下,部署只能在添加到环境中的新节点上运行。
在故障磁盘替换中使用 --limit 的示例
在以下示例中,Ceph 存储节点 oc0-cephstorage-0 有一个磁盘故障,以便它收到新的工厂清理磁盘。Ansible 需要在 oc0-cephstorage-0 节点上运行,以便新磁盘可以用作 OSD,但它不需要在所有其他 Ceph 存储节点上运行。将示例环境文件和节点名称替换为您的环境。
流程
以
stack用户身份登录 undercloud 节点,并提供stackrc凭证文件:# source stackrc
完成以下步骤以之一,以便使用新磁盘来启动缺少的 OSD。
运行堆栈更新并包含
--limit选项,以指定您希望ceph-ansible运行的节点:$ openstack overcloud deploy --templates \ -r /home/stack/roles_data.yaml \ -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e ~/my-ceph-settings.yaml \ -e <other-environment_files> \ --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
在本例中,包含控制器,因为 Ceph mons 需要 Ansible 来更改其 OSD 定义。
如果
config-download创建了ansible-playbook-command.sh脚本,您也可以使用--limit选项运行脚本,将指定节点传递给ceph-ansible:./ansible-playbook-command.sh --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
- 警告
-
在使用
--limit时,您必须始终在限制列表中包含 undercloud,否则无法执行ceph-ansible。这是必要的,因为ceph-ansible执行通过external_deploy_steps_tasksplaybook 进行,该 playbook 仅在 undercloud 上运行。