Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第 5 章 规划您的 overcloud

以下一节提供了与规划您的 Red Hat OpenStack Platform 环境中的各个环境相关的信息。这包括定义节点角色、规划您的网络拓扑结构和存储。

5.1. 节点角色

director 为构建 overcloud 提供了多个默认的节点类型。这些节点类型是:

Controller

提供用于控制环境的关键服务。它包括仪表板服务 (horizon)、认证服务 (keystone)、镜像存储服务 (glance)、联网服务 (neutron)、编配服务 (heat) 以及高可用性服务。一个 Red Hat OpenStack Platform 环境中需要三个 Controller 节点,才能成为高可用性环境。

注意

由一个节点组成的环境可用于测试。不支持由两个节点或由三个以上节点组成的环境。

Compute
一个作为虚拟机监控程序(hypervisor)的物理服务器,它为环境中运行的虚拟机提供处理能力。一个基本的 Red Hat OpenStack Platform 环境中需要最少一个 Compute 节点。
Ceph 存储
提供 Red Hat Ceph Storage 的一个主机。额外的 Ceph Storage 主机可以在一个集群中扩展。这个实施角色是可选的。
Swift Storage
为 OpenStack 的 Swift 服务提供外部对象存储的主机。这个部署角色是可选的。

下表提供了几个不同的 overcloud 示例,以及每种情况中的节点数量。

表 5.1. 节点部署

 

Controller

Compute

Ceph 存储

Swift Storage

总计

小型 overcloud

3

1

-

-

4

中型 overcloud

3

3

-

-

6

带有额外对象存储的中型 overcloud

3

3

-

3

9

带有 Ceph Storage 集群的中型 overcloud

3

3

3

-

9

此外,还需思考是否要将各个服务划分成不同的自定义角色。有关可组合角色架构的更多信息,请参阅 Advanced Overcloud Customization 指南中的"Composable Services and Custom Roles"

5.2. Overcloud 网络

规划环境中的网络拓扑结构和子网非常重要,这样您可以把角色和服务进行正确的映射,从而使它们可以互相进行正确的通信。Red Hat OpenStack Platform 使用 Openstack Networking (neutron) 服务,此服务可自主运行,并可管理基于软件的网络、静态和浮动 IP 地址以及 DHCP。

默认情况下,director 将节点配置为使用 Provisioning / Control Plane 进行连接。不过,可以将网络流量隔离到一系列的可组合网络,供您自定义和分配服务。

在典型的 Red Hat OpenStack Platform 安装中,网络类型的数量通常会超过物理网络链路的数量。为了可以把所有网络都连接到正确的主机,overcloud 使用 VLAN 标记(VLAN tagging)来为每个接口提供多个网络。大多数的网络都是相互隔离的子网,但部分网络需要第 3 层网关来提供路由功能以便接入互联网或连接基础架构网络。如果使用 VLAN 来隔离网络流量类型,请使用支持 802.1Q 标准的交换机来提供 tagged VLAN。

注意

我们推荐,即使在部署时使用了禁用隧道功能的 neutron VLAN,您最好仍然部署一个项目网络(利用 GRE 或 VXLAN 进行隧道连接)。这只需要在部署时进行一些微小的自定义,便可为以后使用网络隧道功能实现工具网络或虚拟化网络留下选择余地。您仍然需要使用 VLAN 创建租户网络,但同时也可为特殊用途网络创建 VXLAN 隧道,而不需要消耗租户 VLAN。VXLAN 功能可以添加到带有租户 VLAN 的部署中,而租户 VLAN 却无法在不对系统运行造成干扰的情况下添加到现有的 overcloud 中。

director 也提供一系列模板,来配置具有隔离的可组合网络的 NIC。默认的配置为:

  • 单 NIC 配置 - 一个 NIC 在原生 VLAN 中用于 Provisioning 网络,并用于 tagged VLAN(使用子网处理不同的 overcloud 网络类型)。
  • 绑定 NIC 配置 - 一个 NIC 在原生 VLAN 中用于 Provisioning 网络,tagged VLAN 绑定中的两个 NIC 用于不同的 overcloud 网络类型。
  • 多 NIC 配置 - 每个 NIC 都使用一个子网来分别处理 overcloud 中不同的网络类型。

您也可以创建自己的模板来映射特定的 NIC 配置。

在思考您的网络配置时,以下细微细节也很重要:

  • 在 overcloud 创建过程中,在所有 overcloud 机器间使用同一个名称来代表 NIC。理想情况下,您应该在每个 overcloud 节点上对每个相关的网络都使用相同的 NIC 来避免混淆。例如,Provisioning 网络使用主(primary)NIC,OpenStack 服务使用从(secondary)NIC。
  • 把所有 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 中出现网络环路的风险,只能有一个接口或一个绑定作为给定网桥的成员。如果需要多个绑定或接口,可以配置多个网桥。
  • 建议使用 DNS 主机名解析,以便您的 overcloud 节点可以连接外部服务,如 Red Hat Content Delivery Network 和网络时间服务器。

5.3. Overcloud 存储

注意

如果在使用任何驱动程序或后端类型的后端 cinder-volume 的客户机实例上使用 LVM,会出现与性能、卷可见性和卷可用性有关的问题。这些问题可利用 LVM 过滤器来解决。如需更多信息,请参考 Storage Guide 中的section 2.1 Back Ends,以及 KCS 文章 3213311 "Using LVM on a cinder volume exposes the data to the compute host."

director 为 overcloud 环境提供不同的存储选项,它们包括:

Ceph Storage 节点

director 使用 Red Hat Ceph Storage 创建一组可扩展存储节点。overcloud 将这些节点用于:

  • 镜像 - Glance 管理虚拟机的镜像。镜像是不可变的,OpenStack 把镜像看做为二进制数据块,并根据它们的实际情况进行下载。您可以使用 glance 在一个 Ceph 块设备中存储镜像。
  • - Cinder 卷是块设备。OpenStack 使用卷来引导虚拟机,或把卷附加到运行的虚拟机上。OpenStack 使用 Cinder 服务管理卷。您可以使用 Cinder,通过镜像的写时复制(copy-on-write,简称 COW)克隆引导虚拟机。
  • 文件系统 - Manila 共享由文件系统来支持。OpenStack 用户使用 manila 服务来管理共享。您可以使用 manila 来管理由 CephFS 文件系统(数据保存在 Ceph Storage 节点上)支持的共享。
  • 客户机磁盘 - 客户机磁盘就是客户机操作系统磁盘。在默认情况下,当使用 nova 引导虚拟机时,它的磁盘会以一个文件的形式出现在虚拟机监控程序 (hypervisor)上,通常位于 /var/lib/nova/instances/<uuid>/。Ceph 中的每个虚拟机可以在不使用 Cinder 的情况下直接引导,这可以使您在实时迁移时更容易地执行维护操作。此外,如果您的虚拟机监控程序出现问题,它还可以方便地触发 nova evacuate,并在其他位置运行虚拟机。

    重要

    如需关于支持的镜像格式的信息,请参阅 Instances and Images Guide 中的 Image Service 章节。

    如需了解更详细的信息,请参阅 Red Hat Ceph Storage Architecture Guide

Swift 存储节点
director 会创建外部对象存储节点。当您需要扩展或替换 overcloud 环境中的控制器节点,同时需要在一个高可用性集群外保留对象存储时,这将非常有用。

5.4. Overcloud 安全性

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

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

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

5.5. Overcloud 高可用性

要部署高度可用的 overcloud,director 将配置多个 Controller、Compute 和 Storage 节点,并以单一集群的形式协同工作。出现节点故障时,根据故障的节点来触发自动隔离和重新生成流程。有关 overcloud 高可用性架构和服务的信息,请参阅 Understanding Red Hat OpenStack Platform High Availability

您也可以通过 director 为 Compute 实例配置高可用性 (Instance HA)。这种机制可以在节点故障时在 Compute 节点上自动清空和重新生成实例。Instance HA 的要求与一般的 overcloud 要求相同,但您必须通过执行额外的步骤来准备部署环境。有关 Instance HA 工作方式和安装说明的信息,请参阅 High Availability for Compute Instances 指南。

5.6. Controller 节点要求

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

处理器
支持 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 高可用控制器硬件要求”

磁盘存储和布局

至少需要 40 GB 存储。但是,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)。

5.7. 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) 功能)。

5.8. Ceph Storage 节点要求

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

处理器
支持 Intel 64 或 AMD64 CPU 扩展的 64 位 x86 处理器。
内存
红帽通常建议每个 OSD 主机最少 16GB RAM,每个 OSD 守护进程增加 2 GB RAM。
磁盘配置

大小取决于您的存储需求。推荐的 Red Hat Ceph Storage 节点配置需要至少三个或更多磁盘,采用与下方类似的布局:

  • /dev/sda - 根磁盘。director 把主 overcloud 镜像复制到这个磁盘。这应当具有最少 40 GB 的可用磁盘空间。
  • /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 平台环境需要处理大量网络数据时。
电源管理
每个 Controller 节点都需要在服务器的主板上有一个被支持的电源管理接口(如 IPMI)。

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

5.9. Object Storage 节点要求

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

处理器
支持 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)。

5.10. overcloud 软件仓库

安装和配置 undercloud 需要下列软件仓库。

表 5.2. 核心软件仓库

名称软件仓库描述

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 14 for RHEL 7 (RPMs)

rhel-7-server-openstack-14-rpms

Red Hat OpenStack Platform 核心软件仓库。

表 5.3. Ceph 软件仓库

名称软件仓库描述

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 时,应该为所有节点启用此软件仓库。

表 5.4. NFV 软件仓库

名称软件仓库描述

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

rhel-7-server-nfv-rpms

适用于 NFV 的实时 KVM (RT-KVM) 的软件仓库。包含用于启用实时内核的软件包。应该为 RT-KVM 的所有目标 Compute 节点启用这个软件仓库。注:您需要另行订阅 Red Hat OpenStack Platform for Real Time SKU,然后才能访问这个软件仓库。

IBM POWER 软件仓库

这些软件仓库供 POWER PC 架构上的 Openstack Platform 使用。使用这些软件仓库来替代核心软件仓库中的同等库。

名称软件仓库描述

Red Hat Enterprise Linux for IBM Power, little endian

rhel-7-for-power-le-rpms

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

Red Hat OpenStack Platform 14 for RHEL 7 (RPMs)

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

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