第 2 章 配置要求

设置一个环境来使用 director 部署 Red Hat OpenStack Platform 对相关系统有一定的配置要求。本章概述了与设置和访问 director 相关的系统配置要求信息,以及对使用 direct 部署用来提供 OpenStack 服务的主机的硬件配置要求。

注意

在部署 Red Hat OpenStack Platform 前,务必要考虑可用部署方法的特征。如需了解更多相关信息,请参阅安装和管理 Red Hat OpenStack Platform

2.1. 环境配置要求

最低要求

  • 一个作为 Red Hat OpenStack Platform director 的主机
  • 一个作为 Red Hat OpenStack Platform Compute 节点的主机
  • 一个作为 Red Hat OpenStack Platform Controller 节点的主机

推荐的配置要求:

  • 一个作为 Red Hat OpenStack Platform director 的主机
  • 3 个作为 Red Hat OpenStack Platform Compute 节点的主机
  • 3 个作为一个集群中的 Red Hat OpenStack Platform Controller 节点的主机
  • 3 个作为一个集群中的 Red Hat Ceph Storage 节点的主机

请注意:

  • 推荐所有主机都使用裸机系统。最起码,Compute 节点需要使用裸机系统。
  • 因为 director 控制电源管理,所以所有 overcloud 裸机系统都需要一个智能平台管理接口(IPMI)。
  • 要在 POWER (ppc64le) 硬件上部署 overcloud Compute 节点,请阅读附录 G, Red Hat OpenStack Platform for POWER(技术预览)中的概述。

2.2. undercloud 配置要求

托管 director 的 undercloud 系统为 overcloud 中所有节点提供部署和管理服务。

  • 支持 Intel 64 或 AMD64 CPU 扩展的 8 核 64 位 x86 处理器。
  • 最少 16GB 内存。
  • 根磁盘上有至少 100 GB 的可用磁盘空间。包括:

    • 10 GB 用于容器镜像
    • 10 GB 在节点部署过程中用于 QCOW2 镜像转换和缓存
    • 80 GB 或更大空间供常规使用、保存日志和指标以及满足增长需要
  • 最少两张 1 Gbps 网卡。推荐为 Provisioning 网络流量使用 10 Gbps 接口,特别是部署 overcloud 环境中大量节点时。
  • 安装 Red Hat Enterprise Linux 的最新次要版本作为主机操作系统。
  • 已在主机上启用 SELinux。

2.2.1. 虚拟化支持

红帽仅支持以下平台上的虚拟化 undercloud:

平台备注

基于内核的虚拟机(KVM)

托管于 Red Hat Enterprise Linux 5、6 和 7,详见认证虚拟机管理器名单

Red Hat Enterprise Virtualization

托管于 Red Hat Enterprise Virtualization 3.0、3.1、3.2、3.3、3.4、3.5 、3.6 和 4.0,详见认证虚拟机管理器名单

Microsoft Hyper-V

托管于各种版本的 Hyper-V,详见红帽客户门户认证目录

VMware ESX 和 ESXi

托管于各种版本的 ESX 和 ESXi,详见红帽客户门户认证目录

重要

Red Hat OpenStack Platform director 需要使用最新版本的 Red Hat Enterprise Linux 作为主机操作系统。这表示,您的虚拟化平台也必须支持底层 Red Hat Enterprise Linux 版本。

虚拟机要求

虚拟 undercloud 的要求与裸机 undercloud 的相似。在部署时,您应当考虑各种不同的调优选项,如网络模型、客户机 CPU 配置、存储后端、存储格式和缓存模式等。

网络注意事项

虚拟化 undercloud 需要注意下列网络事项:

电源管理
undercloud 虚拟机要求访问 overcloud 节点的电源管理设备。这是注册节点时为 pm_addr 参数设置的 IP 地址。
Provisioning 网络
用于部署(ctlplane)网络的 NIC 必须能够对 overcloud 裸机节点的 DHCP 请求进行广播和服务。建议创建一个网桥,将虚拟机的 NIC 连接到与裸机 NIC 相同的网络。
注意

虚拟机管理器技术阻止 undercloud 从自未知地址传输流量时存在一个常见问题。如果使用 Red Hat Enterprise Virtualization,可通过禁用 anti-mac-spoofing 来避免此问题。如果使用 VMware ESX 或 ESXi,可通过允许伪传输来避免此问题。

示例架构

这仅仅是利用 KVM 服务器的基本 undercloud 虚拟化架构的示例。您可以根据自己的网络和资源要求,在此基础上进行构建。

KVM 主机使用两个 Linux 网桥:

br-ex(eth0)
  • 提供对 undercloud 的外部访问
  • 外部网络上的 DHCP 服务器利用虚拟 NIC(eth0)把网络配置分配到 undercloud
  • 为 undercloud 提供对裸机服务器的电源管理接口的访问
br-ctlplane(eth1)
  • 连接到裸机 overcloud 节点所在的网络
  • undercloud 通过虚拟 NIC(eth1)处理 DHCP 和 PXE 引导请求
  • overcloud 的裸机服务器在这一网络上通过 PXE 来引导

KVM 主机需要以下软件包:

$ yum install libvirt-client libvirt-daemon qemu-kvm libvirt-daemon-driver-qemu libvirt-daemon-kvm virt-install bridge-utils rsync

以下命令会在 KVM 主机上创建 undercloud 虚拟机,同时创建连接对应网桥的两个虚拟 NIC:

$ virt-install --name undercloud --memory=16384 --vcpus=4 --location /var/lib/libvirt/images/rhel-server-7.5-x86_64-dvd.iso --disk size=100 --network bridge=br-ex --network bridge=br-ctlplane --graphics=vnc --hvm --os-variant=rhel7

这将启动 libvirt 域。使用 virt-manager 进行连接,并逐步完成安装过程。此外,您也可通过以下选项包含 kickstart 文件来执行无人看守安装:

--initrd-inject=/root/ks.cfg --extra-args "ks=file:/ks.cfg"

安装完成后,以 root 用户身份通过 SSH 连接实例,再按照第 4 章 安装 undercloud一章中的说明操作

备份

若要备份虚拟 undercloud,可以从多个解决方案中选择:

  • 选项 1:按照 Back Up and Restore the Director Undercloud 指南中的说明操作。
  • 选项 2:关闭 undercloud,再复制 undercloud 虚拟机存储后备文件。
  • 选项 3: 如果您的虚拟机管理器支持实时或原子快照,可创建 undercloud 虚拟机的快照。

如果使用的是 KVM 服务器,请通过以下步骤来创建快照:

  1. 确保 undercloud 客户机虚拟机上正在运行 qemu-guest-agent
  2. 创建正在运行的虚拟机的实时快照:
$ virsh snapshot-create-as --domain undercloud --disk-only --atomic --quiesce
  1. 复制 QCOW 后备文件(现为只读)
$ rsync --sparse -avh --progress /var/lib/libvirt/images/undercloud.qcow2 1.qcow2
  1. 将 QCOW 覆盖文件合并到后备文件,再将 undercloud 虚拟机切回到使用原始的文件:
$ virsh blockcommit undercloud vda --active --verbose --pivot

2.3. 网络要求

undercloud 主机最少需要两个网络:

  • Provisioning 网络 - 提供 DHCP 和 PXE 引导功能来帮助发现裸机系统以在 overcloud 中使用。通常情况下,此网络需要在一个主干接口中使用一个原生的 VLAN,从而使 director 处理 PXE 引导和 DHCP 请求。虽然一些服务器硬件的 BIOS 支持从 VLAN 进行 PXE 引导,但 BIOS 必须同时支持在引导后把 VLAN 转换为原生 VLAN,否则将无法访问 undercloud。当前,只有一小部分的服务器硬件完整支持此功能。另外,此网络还用于通过智能平台管理接口(IPMI)控制所有 overcloud 节点的电源管理。
  • External 网络 - 用来远程连接到所有节点的一个独立网络。连接到这个网络的接口需要一个可路由的 IP 地址(静态定义或通过一个外部 DHCP 服务动态分配)。

以上为至少需要的网络数量。不过,director 可以将其他 Red Hat OpenStack Platform 网络流量隔离到其他网络。Red Hat OpenStack Platform 支持将物理接口和 tagged VLAN 用于网络隔离。

请注意:

  • 典型的最小 overcloud 网络配置可以包括:

    • 单 NIC 配置 - 一个 NIC 在原生 VLAN 中用于 Provisioning 网络,并用于 tagged VLAN(使用子网处理不同的 overcloud 网络类型)。
    • 双 NIC 配置 - 一个 NIC 用于 Provisioning 网络,另外一个 NIC 作为 External 网络。
    • 双 NIC 配置 - 一个 NIC 在原生 VLAN 中用于 Provisioning 网络,另外一个用于 tagged VLAN(使用子网处理不同的 overcloud 网络类型)。
    • 多 NIC 配置 - 每个 NIC 都使用一个子网来分别处理 overcloud 中不同的网络类型。
  • 额外的物理 NIC 可以用来分离不同的网络、创建绑定的接口或处理 tagged VLAN 的网络数据。
  • 如果使用 VLAN 分离网络流量类型,使用支持 802.1Q 标准的交换机来提供 tagged VLAN。
  • 在 overcloud 创建过程中,在所有 overcloud 机器间使用同一个名称来代表 NIC。理想情况下,您应该在每个 overcloud 节点上对每个相关的网络都使用相同的 NIC 来避免混淆。例如,Provisioning 网络使用主(primary)NIC, OpenStack 服务使用从(secondary)NIC。
  • 确保 Provisioning 网络的 NIC 和在 director 机器上用来进行远程连接的 NIC 不同。director 会使用 Provisioning NIC 创建一个网桥,它会忽略所有远程连接。在 director 系统上需要使用 External NIC 进行远程连接。
  • Provisioning 网络需要一个与您的环境大小相匹配的 IP 范围。使用以下原则来决定包括在这个范围内的 IP 地址数量:

    • 最少为每个连接到 Provisioning 网络的节点包括一个 IP。
    • 如果有高可用性配置,则需要包括一个额外的 IP 地址来作为集群的虚拟 IP。
    • 为扩展环境准备额外的 IP 地址。

      注意

      在 Provisioning 网络中需要避免重复的 IP 地址。相关信息,请参阅 第 3.2 节 “规划网络”

      注意

      如需了解更多与 IP 地址使用规划(如用于存储网络、供应商网络和租户网络)相关的信息,请参阅 Networking Guide

  • 把所有 overcloud 系统设置为使用 Provisioning NIC 进行 PXE 引导,并在 External NIC 以及系统的所有其他 NIC 上禁用 PXE 引导。另外,还需要确保 Provisioning NIC 在 PXE 引导设置中位于引导顺序的最上面(在硬盘和 CD/DVD 驱动器之前)。
  • 所有 overcloud 裸机系统都需要一个受支持的电源管理接口,如智能平台管理接口(IPMI)。这将使得 director 能够控制每个节点的电源管理。
  • 请记录下每个 overcloud 系统的以下信息:Provisioning NIC 的 MAC 地址、IPMI NIC 的 IP 地址、IPMI 用户名和 IPMI 密码。稍后设置 overcloud 节点时需要用到这些信息。
  • 如果一个实例需要可以被外部互联网访问,则需要从公共网络中分配一个浮动 IP 地址,并把它和这个实例相关联。这个实例仍然会保留它的私人 IP,但网络数据可以通过 NAT 到达浮动 IP 地址。请注意,一个浮动 IP 地址只能分配给一个接口,而不能分配给多个私人 IP 地址。但是,浮动 IP 地址只会为一个租户预留以供使用,租户可以根据需要关联或取消关联一个特定的实例。这个配置会使您的环境暴露于外部网络,您需要确保使用了适当的安全保护措施。
  • 为了减少 Open vSwitch 中出现网络环路的风险,只能有一个接口或一个绑定作为给定网桥的成员。如果需要多个绑定或接口,可以配置多个网桥。
重要

OpenStack Platform 环境的安全性在一定程度上取决于网络的安全性。在您的网络环境中使用适当的安全性措施来确保可以正确地控制网络访问。例如:

  • 使用网络分段(network segmentation)技术来控制网络数据并隔离敏感数据。扁平化网络(flat network)通常不是非常安全。
  • 限制对服务和端口的访问。
  • 使用适当的防火墙设置以及密码。
  • 启用 SELinux。

如需了解更多与系统安全相关的信息,请参阅:

2.4. overcloud 的配置要求

以下小节详细介绍 overcloud 安装中各个系统和节点的要求。

2.4.1. Compute 节点的配置要求

Compute 节点负责运行虚拟机实例。它们必须支持硬件虚拟化,并需要有足够的内存和磁盘空间来支持它们所运行的虚拟机。

处理器
  • 支持带有 Intel 64 或 AMD64 CPU 扩展并启用了 Intel VT 硬件虚拟扩展的 64 位 x86 处理器。我们推荐所使用的处理器最少有 4 个内核。
  • IBM POWER 8 处理器。
内存
最少 6 GB RAM,再加上准备提供给虚拟机实例使用的内存。
磁盘空间
最少具有 40GB 可用磁盘空间。
网据接口卡
最少一个 1 Gbps 网络接口卡。但在生产环境中,推荐最少使用两个网卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。
电源管理
每个 Compute 节点在服务器的主板上都要有一个受支持的电源管理接口(如智能平台管理接口 (IPMI) 功能)。

2.4.2. Controller 节点的要求

Controller 节点用来托管 RHEL OpenStack Platform 环境中的核心服务,如 Horizon 仪表板、后端数据库服务器、Keystone 认证和高可用性服务。

处理器
支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。
内存

至少 32 GB 的内存。不过,建议根据 vCPU 数量(CPU 内核数乘以超线程值)来决定内存大小。请参考以下计算方式:

  • 控制器 RAM 最小值计算:

    • 每个 vCPU 使用 1.5 GB 内存。例如,拥有 48 个 vCPU 的计算机应当具有 72 GB RAM。
  • 控制器 RAM 建议值计算:

    • 每个 vCPU 使用 3 GB 内存。例如,拥有 48 个 vCPU 的计算机应当具有 144 GB RAM。

有关测量内存要求的更多信息,请参阅红帽客户门户上的“Red Hat OpenStack Platform 高可用控制器硬件要求”

磁盘存储和布局

默认情况下,Telemetry (gnocchi) 和 Object Storage (swift) 服务都安装在 Controller 上,都配置为使用根磁盘。这些默认布置适合在商品硬件上部署小型 overcloud,这样的环境通常用于概念验证以及测试。基于这些默认布置,只需最少的规划即可部署 overcloud,但只能提供很低的工作负载容量和性能。

然而在企业环境中,这可能造成很大的瓶颈。这是因为 Telemetry 会不断地访问存储资源,导致磁盘 I/O 使用率很高,从而严重影响所有其他 Controller 服务的性能。在这类环境中,需要细致规划 overcloud 并相应地进行配置。

红帽为 Telemetry 和 Object Storage 提供了一些配置建议方案。如需了解详细信息,请参阅 Deployment Recommendations for Specific Red Hat OpenStack Platform Services

网据接口卡
最少两个 1 Gbps 网络接口卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。
电源管理
每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。

2.4.3. Ceph 存储节点的要求

Ceph 存储节点负责在 RHEL OpenStack Platform 环境中提供对象存储。

处理器
支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。
内存
所需的内存数量取决于存储空间的数量。理想情况下,每 1TB 硬盘空间需要最少 1GB 内存。
磁盘空间
所需的存储数量取决于内存空间的数量。理想情况下,每 1TB 硬盘空间需要最少 1GB 内存。
磁盘配置

推荐的 Red Hat Ceph Storage 节点配置需要至少三个或更多磁盘,采用与下方类似的布局:

  • /dev/sda - root 磁盘。director 把主 overcloud 镜像复制到这个磁盘。
  • /dev/sdb - journal 磁盘。这个磁盘被分为不同的分区来保存 Ceph OSD 的日志信息。例如,/dev/sdb1/dev/sdb2/dev/sdb3 等。 journal 磁盘通常需要是一个固态磁盘(SSD)来保证系统的性能。
  • /dev/sdc 和后续 - OSD 磁盘。可以根据您的存储需要使用多个磁盘。

    注意

    Red Hat OpenStack Platform director 使用 ceph-ansible,不支持在 Ceph Storage 节点的根磁盘上安装 OSD。这意味着所支持的每个 Ceph Storage 节点需要至少两个或更多磁盘。

网据接口卡
最少一个 1 Gbps 网络接口卡。但在生产环境中,推荐最少使用两个网卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。推荐为存储节点使用10 Gbps 接口,特别是所创建的 OpenStack Platform 环境需要处理大量网络数据时。
电源管理
每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。

如需了解更多有关安装使用 Ceph Storage 集群的 overcloud 的信息,请参阅 Deploying an Overcloud with Containerized Red Hat Ceph 指南。

2.4.4. 对象存储节点要求

对象存储节点提供 overcloud 的对象存储层。对象存储代理安装在控制器节点上。存储层要求每一个裸机节点装有多个磁盘。

处理器
支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。
内存
内存要求取决于存储空间大小。理想状态下,每 1TB 硬盘空间需要至少 1GB 内存。为获得最佳性能,建议每 1TB 硬盘空间使用 2GB 内存,尤其是小文件(100GB 以下)工作负载。
磁盘空间

存储要求取决于工作负载需要的容量。建议使用 SSD 驱动器存储帐户和容器数据。帐户和容器数据大约占对象数据的 1%。例如,对于每 100TB 硬盘容量,请提供 1TB 容量来存储帐户和容器数据。

不过,这还取决于所存储数据的类型。如果存储的大部分是小对象,则需要提供较多的 SSD 空间。而对于大对象(视频和备份等),可提供较少的 SSD 空间。

磁盘配置

所推荐的节点配置需要类似于如下的磁盘布局:

  • /dev/sda - 根磁盘。director 把主 overcloud 镜像复制到该磁盘。
  • /dev/sdb - 用于帐户数据。
  • /dev/sdc - 用于容器数据。
  • /dev/sdd 及后续 - 对象服务器磁盘。可以根据您的存储需要使用多个磁盘。
网据接口卡
最少两个 1 Gbps 网络接口卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。
电源管理
每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。

2.5. 软件仓库的要求

undercloud 和 overcloud 都需要通过 Red Hat Content Delivery Network 或者 Red Hat Satellite 5 或 6 来访问红帽软件仓库。如果使用 Red Hat Satellite Server,请将所需的软件仓库与您的 OpenStack Platform 环境进行同步。请参考下方的 CDN 频道名列表:

表 2.1. OpenStack Platform 软件仓库

名称软件仓库描述

Red Hat Enterprise Linux 7 Server (RPMs)

rhel-7-server-rpms

x86_64 系统的基本操作系统仓库。

Red Hat Enterprise Linux 7 Server - Extras (RPMs)

rhel-7-server-extras-rpms

包括 Red Hat OpenStack Platform 的依赖软件包。

Red Hat Enterprise Linux 7 Server - RH Common (RPMs)

rhel-7-server-rh-common-rpms

包括部署和配置 Red Hat OpenStack Platform 的工具程序。

Red Hat Satellite Tools for RHEL 7 Server RPMs x86_64

rhel-7-server-satellite-tools-6.3-rpms

使用 Red Hat Satellite 6 管理主机的工具。

Red Hat Enterprise Linux High Availability (for RHEL 7 Server) (RPMs)

rhel-ha-for-rhel-7-server-rpms

Red Hat Enterprise Linux 的高可用性工具。用于 Controller 节点的高可用性功能。

Red Hat OpenStack Platform 13 for RHEL 7 (RPMs)

rhel-7-server-openstack-13-rpms

Red Hat OpenStack Platform 核心软件仓库。也包含 Red Hat OpenStack Platform director 的软件包。

Red Hat Ceph Storage OSD 3 for Red Hat Enterprise Linux 7 Server (RPMs)

rhel-7-server-rhceph-3-osd-rpms

(Ceph Storage 节点)Ceph Storage Object Storage 守护进程的软件仓库。在 Ceph Storage 节点上安装。

Red Hat Ceph Storage MON 3 for Red Hat Enterprise Linux 7 Server (RPMs)

rhel-7-server-rhceph-3-mon-rpms

(Ceph Storage 节点)Ceph Storage Monitor 守护进程的软件仓库。在使用 Ceph Storage 节点的 OpenStack 环境的 Controller 节点上安装。

Red Hat Ceph Storage Tools 3 for Red Hat Enterprise Linux 7 Server (RPMs)

rhel-7-server-rhceph-3-tools-rpms

提供节点与 Ceph Storage 集群进行通信的工具。部署配备 Ceph Storage 集群的 overcloud 时,应该为所有节点启用此软件仓库。

Enterprise Linux for Real Time for NFV (RHEL 7 Server) (RPMs)

rhel-7-server-nfv-rpms

适用于 NFV 的实时 KVM (RT-KVM) 的软件仓库。包含用于启用实时内核的软件包。应该为 RT-KVM 的所有目标 Compute 节点启用这个软件仓库。

适用于 IBM POWER 的 OpenStack Platform 软件仓库

这些软件仓库用于 附录 G, Red Hat OpenStack Platform for POWER(技术预览) 的功能。

名称软件仓库描述

Red Hat Enterprise Linux for IBM Power, little endian

rhel-7-for-power-le-rpms

ppc64le 系统的基本操作系统软件仓库。

Red Hat OpenStack Platform 13 for RHEL 7 (RPMs)

rhel-7-server-openstack-13-for-power-le-rpms

用于 ppc64le 系统的 Core Red Hat OpenStack Platform 软件仓库。

注意

如需在一个离线网络中为 Red Hat OpenStack Platform 环境配置软件仓库,请参阅红帽客户门户网站所提供的"Configuring Red Hat OpenStack Platform Director in an Offline Environment"