Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第 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)。
如果不同时从 Open vSwitch (OVS) 2.4.0 升级到 OVS 2.5.0,请勿升级到 Red Hat Enterprise Linux 7.3 内核。倘若仅升级内核,OVS 将停止工作。
2.2. Undercloud 配置要求
托管 director 的 undercloud 系统为 overcloud 中所有节点提供部署和管理服务。
- 支持 Intel 64 或 AMD64 CPU 扩展的 8 核 64 位 x86 处理器。
- 最少 16GB 内存。
- 根磁盘上需要至少 40 GB 的可用磁盘空间。在进行 overcloud 部署或更新前,需要保证至少有 10 GB 的可用磁盘空间。这些可用磁盘空间用来保存节点部署过程中的镜像转换和缓存。
- 最少两张 1 Gbps 网卡。推荐为 Provisioning 网络流量使用 10 Gbps 接口,特别是部署 overcloud 环境中大量节点时。
- 安装 Red Hat Enterprise Linux 7.3 作为主机操作系统。
如果使用逻辑卷管理(LVM),请确保 undercloud 的文件系统仅包含根分区和交换分区。如需更多信息,请参阅红帽客户门户上的文章“安装 undercloud 后 Director 节点无法启动”。
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,详见认证虚拟机管理器名单 |
Microsoft Hyper-V |
托管于各种版本的 Hyper-V,详见红帽客户门户认证目录。 |
VMware ESX 和 ESXi |
托管于各种版本的 ESX 和 ESXi,详见红帽客户门户认证目录。 |
虚拟机要求
虚拟 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
以下命令会在 KVM 主机上创建 undercloud 虚拟机,同时创建连接对应网桥的两个虚拟 NIC:
$ virt-install --name undercloud --memory=16384 --vcpus=4 --location /var/lib/libvirt/images/rhel-server-7.3-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: 按照备份和恢复 Director Undercloud 指南中的说明操作。
- 选项 2:关闭 undercloud,再复制 undercloud 虚拟机存储后备文件。
- 选项 3: 如果您的虚拟机管理器支持实时或原子快照,可创建 undercloud 虚拟机的快照。
如果使用的是 KVM 服务器,请通过以下步骤来创建快照:
-
确保 undercloud 客户机虚拟机上正在运行
qemu-guest-agent
。 - 创建正在运行的虚拟机的实时快照:
$ virsh snapshot-create-as --domain undercloud --disk-only --atomic --quiesce
- 复制 QCOW 后备文件(现为只读)
$ rsync --sparse -avh --progress /var/lib/libvirt/images/undercloud.qcow2 1.qcow2
- 将 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 地址使用规划相关的信息(如用于存储网络、供应商网络和租户网络),请参阅联网指南。
- 把所有 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 地址只会为一个租户预留以供使用,租户可以根据需要关联或取消关联一个特定的实例。这个配置会使您的环境暴露于外部网络,您需要确保使用了适当的安全保护措施。
OpenStack Platform 环境的安全性在一定程度上取决于网络的安全性。在您的网络环境中使用适当的安全性措施来确保可以正确地控制网络访问。例如:
- 使用网络分段(network segmentation)技术来控制网络数据并隔离敏感数据。扁平化网络(flat network)通常不是非常安全。
- 限制对服务和端口的访问。
- 使用适当的防火墙设置以及密码。
- 启用 SELinux。
如需了解更多与系统安全相关的信息,请参阅:
2.4. Overcloud 的配置要求
以下小节详细介绍 overcloud 安装中各个系统和节点的要求。
当前还不支持从 SAN(FC-AL、FCoE、iSCSI)引导 overcloud 节点。
2.4.1. Compute 节点的配置要求
Compute 节点负责运行虚拟机实例。它们必须支持硬件虚拟化,并需要有足够的内存和磁盘空间来支持它们所运行的虚拟机。
- 处理器
- 支持带有 Intel 64 或 AMD64 CPU 扩展并启用了 Intel VT 硬件虚拟扩展的 64 位 x86 处理器。我们推荐所使用的处理器最少有 4 个内核。
- 内存
- 最少 6 GB 内存,再加上提供给虚拟机实例使用的内存。
- 磁盘空间
- 最少具有 40GB 可用磁盘空间。
- 网据接口卡
- 最少一个 1 Gbps 网络接口卡。但在生产环境中,推荐最少使用两个网卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。
- 电源管理
- 每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。
2.4.2. Controller 节点的要求
Controller 节点用来托管 RHEL OpenStack Platform 环境中的核心服务,如 Horizon 仪表板、后端数据库服务器、Keystone 认证和高可用性服务。
- 处理器
- 支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。
- 内存
至少 16 GB 的内存。不过,建议根据 CPU 内核数量来决定内存大小。请参考以下计算方式:
控制器 RAM 最小值计算:
- 每个内核使用 1.5 GB 内存。例如,拥有 48 个内核的计算机应当具有 72 GB RAM。
控制器 RAM 建议值计算:
- 每个内核使用 3 GB 内存。例如,拥有 48 个内核的计算机应当具有 144 GB RAM。
有关测量内存要求的更多信息,请参阅红帽客户门户上的“Red Hat OpenStack Platform 高可用控制器硬件要求”。
- 磁盘空间
- 最少具有 40GB 可用磁盘空间。
- 网据接口卡
- 最少两个 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 磁盘。可以根据您的存储需要使用多个磁盘。本文档包括了把您的 Ceph 存储磁盘映射到 director 的方法。
-
- 网据接口卡
- 最少一个 1 Gbps 网络接口卡。但在生产环境中,推荐最少使用两个网卡。额外的网卡可以组成绑定接口,或处理标记的 VLAN 网络(tagged VLAN)流量。推荐为存储节点使用10 Gbps 接口,特别是所创建的 OpenStack Platform 环境需要处理大量网络数据时。
- 电源管理
- 每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。
director 不会在 journal 磁盘上创建分区。在 Director 部署 Ceph Storage 节点前,您需要手工创建这些 journal 分区。
Ceph Storage OSD 和 journals 分区需要 GPT 磁盘标签,您可以提前对这些标签进行配置。例如,使用以下命令,在潜在的 Ceph Storage 主机上为一个磁盘或分区创建一个 GPT 磁盘标签:
# parted [device] mklabel gpt
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 频道名列表:
如果不同时从 Open vSwitch (OVS) 2.4.0 升级到 OVS 2.5.0,请勿升级到 Red Hat Enterprise Linux 7.3 内核。倘若仅升级内核,OVS 将停止工作。
表 2.1. OpenStack Platform 软件仓库
名称 |
软件仓库 |
描述 |
Red Hat Enterprise Linux 7 Server (RPMs) |
|
基本操作系统的软件仓库。 |
Red Hat Enterprise Linux 7 Server - Extras (RPMs) |
|
包括 Red Hat OpenStack Platform 的依赖软件包。 |
Red Hat Enterprise Linux 7 Server - RH Common (RPMs) |
|
包括部署和配置 Red Hat OpenStack Platform 的工具程序。 |
Red Hat Satellite Tools for RHEL 7 Server RPMs x86_64 |
|
使用 Red Hat Satellite 6 管理主机的工具。 |
Red Hat Enterprise Linux High Availability (for RHEL 7 Server) (RPMs) |
|
Red Hat Enterprise Linux 的高可用性工具。用于 Controller 节点的高可用性功能。 |
Red Hat Enterprise Linux OpenStack Platform 10 for RHEL 7 (RPMs) |
|
Red Hat OpenStack Platform 核心存储库。也包含 Red Hat OpenStack Platform director 的软件包。 |
Red Hat Ceph Storage OSD 2 for Red Hat Enterprise Linux 7 Server (RPMs) |
|
(Ceph Storage 节点)Ceph Storage Object Storage 守护进程的软件仓库。在 Ceph Storage 节点上安装。 |
Red Hat Ceph Storage MON 2 for Red Hat Enterprise Linux 7 Server (RPMs) |
|
(Ceph Storage 节点)Ceph Storage Monitor 守护进程的软件仓库。在使用 Ceph Storage 节点的 OpenStack 环境的 Controller 节点上安装。 |
如需在一个离线网络中为 Red Hat OpenStack Platform 环境配置软件仓库,请参阅红帽客户门户网站所提供的 "Configuring Red Hat OpenStack Platform Director in an Offline Environment"。