架构指南
产品、组件和架构示例介绍
摘要
前言 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 为在 Red Hat Enterprise Linux 之上构建私有或公共基础设施即服务(IaaS)云提供基础。它为开发启用云的工作负载提供了一个高度可扩展的容错平台。
Red Hat OpenStack Platform 被打包,以便可以将可用的物理硬件转换为私有、公共或混合云平台,其中包括:
- 完全分布式对象存储
- 持久性块级存储
- 虚拟机置备引擎和镜像存储
- 认证和授权机制
- 集成网络
- 基于 Web 浏览器的界面可供用户和管理员访问
- 有关本指南中提到的组件的参考信息,请参考 第 5 章 部署信息。
- 有关完整的 Red Hat OpenStack Platform 文档套件,请参阅 Red Hat OpenStack Platform 文档。
第 1 章 组件 复制链接链接已复制到粘贴板!
红帽 OpenStack 平台 IaaS 云实施为包含控制计算、存储和网络资源的交互服务的集合。云可以通过基于 Web 的控制面板或命令行客户端进行管理,供管理员控制、调配和自动化 OpenStack 资源。OpenStack 还具有广泛的 API,适用于所有云用户。
下图显示了 OpenStack 核心服务及其相互的关系的高级概述。
下表描述了图中显示的每个组件,并提供了组件文档部分的链接。
| 服务 | 代码 | 描述 | 位置 | |
|---|---|---|---|---|
|
| Dashboard | Horizon | 用于管理 OpenStack 服务的基于 Web 浏览器的仪表板。 | |
|
| 身份 | keystone | 用于 OpenStack 服务身份验证和授权的集中式服务,以及管理用户、项目和角色。 | |
|
| OpenStack 网络 | neutron | 提供 OpenStack 服务接口之间的连接。 | |
|
| 块存储 | cinder | 管理虚拟机的永久块存储卷。 | |
|
| Compute | nova | 管理并置备在虚拟机监控程序节点上运行的虚拟机。 | |
|
| Image | Glance | 用于存储虚拟机镜像和卷快照等资源的 registry 服务。 | |
|
| 对象存储 | swift | 允许用户存储和检索文件及任意数据。 | |
|
| Telemetry | ceilometer | 提供云资源的测量。 | |
|
| 编配 | heat | 基于模板的编配引擎支持自动创建资源堆栈。 |
每个 OpenStack 服务都包含一组可正常工作的 Linux 服务和其他组件。例如,glance-api 和 glance-registry Linux 服务以及 MariaDB 数据库一起实施镜像服务。有关 OpenStack 服务中包含的第三方组件的详情,请参考 第 1.6.1 节 “第三方组件”。
其他服务包括:
- 第 1.3.2 节 “OpenStack Bare Metal Provisioning (ironic)” - 允许用户使用各种硬件供应商调配物理计算机(裸机)。
- 第 1.2.3 节 “OpenStack 数据库即服务(trove)” - 允许用户部署关系和非关系数据库引擎,并处理复杂的数据库管理任务。
- 第 1.3.5 节 “OpenStack 数据处理(sahara)” - 允许用户在 OpenStack 上调配和管理 Hadoop 集群。
1.1. 网络 复制链接链接已复制到粘贴板!
1.1.1. OpenStack Networking (neutron) 复制链接链接已复制到粘贴板!
OpenStack 网络处理 OpenStack 云中虚拟网络基础架构的创建和管理。基础架构元素包括网络、子网和路由器。您还可以部署防火墙或虚拟专用网络(VPN)等高级服务。
OpenStack 网络为云管理员提供了相应的灵活性,决定在哪些物理系统上运行。所有服务守护进程可以在单一物理主机中运行,以进行评估。或者,每个服务都可以有一个唯一的物理主机,或者在多个主机间复制,以提供冗余。
由于 OpenStack 网络是软件定义的,它可以实时响应更改的网络需求,如创建和分配新的 IP 地址。
OpenStack 网络的优点包括:
- 用户可以创建网络、控制流量,并将服务器和设备连接到一个或多个网络。
- 灵活的网络模型可以适应网络卷和租期。
- IP 地址可以专用或浮动,浮动 IP 可用于动态流量重新路由。
- 如果使用 VLAN 网络,您可以使用最多 4094 VLAN (4094 网络),其中 4094 = 2^12 (最少 2 个不可用)网络地址,该地址由 12 位标头限制实施。
- 如果使用基于 VXLAN 隧道的网络,VNI (虚拟网络标识符)可以使用 24 位标头,这基本上允许大约 1,600万唯一的地址/网络。
| 组件 | 描述 |
|---|---|
| 网络代理 | 在每个 OpenStack 节点上运行的服务,为节点虚拟机以及 Open vSwitch 等网络服务执行本地网络配置。 |
| neutron-dhcp-agent | 为租户网络提供 DHCP 服务的代理。 |
| neutron-ml2 | 管理网络驱动程序并提供路由和交换服务(如 Open vSwitch 或 Ryu 网络)的插件。 |
| neutron-server | 管理用户请求的 Python 守护进程,并公开网络 API。默认服务器配置使用带有特定网络机制集的插件来实现网络 API。 某些插件(如 openvswitch 和 linuxbridge 插件)使用原生 Linux 网络机制,其他插件接口则与外部设备或 SDN 控制器一起使用。 |
| neutron | 用于访问 API 的命令行客户端。 |
OpenStack 网络服务和代理的放置取决于网络要求。下图显示了没有控制器的通用部署模型示例。此模型利用专用的 OpenStack 网络节点和租户网络。
示例显示了以下网络服务配置:
两个 Compute 节点运行 Open vSwitch (ovs-agent),一个 OpenStack 网络节点执行以下网络功能:
- L3 路由
- DHCP
- NAT,包括 FWaaS 和 LBaaS 等服务
- 计算节点各自有两个物理网卡。一个卡处理租户流量,另一个卡管理连接。
- OpenStack 网络节点具有第三个网卡,专用于提供商流量。
1.2. Storage 复制链接链接已复制到粘贴板!
第 1.2.1 节 “OpenStack Block Storage (cinder)”
第 1.2.2 节 “OpenStack Object Storage (swift)”
第 1.2.3 节 “OpenStack 数据库即服务(trove)”
1.2.1. OpenStack Block Storage (cinder) 复制链接链接已复制到粘贴板!
OpenStack Block Storage 为虚拟硬盘提供持久的块存储管理。块存储允许用户创建和删除块设备,并管理向服务器附加块设备。
设备的实际附加和分离是通过与计算服务的集成来处理的。您可以使用地区和区域来处理分布式块存储主机。
您可以在性能敏感的场景中使用块存储,如数据库存储或可扩展文件系统。您还可以将其用作可访问原始块存储的服务器。另外,您可以获取卷快照来恢复数据或创建新块存储卷。快照依赖于驱动程序支持。
OpenStack Block Storage 的优点包括:
- 创建、列出和删除卷和快照。
- 将卷附加和分离到正在运行的虚拟机.
虽然主要的块存储服务(如卷、调度程序、API)可以共存到生产环境中,但它比部署卷服务的多个实例以及多个 API 和调度程序服务实例来管理它们更为常见。
| 组件 | 描述 |
|---|---|
| openstack-cinder-api | 响应请求并将其放置在消息队列中。收到请求时,API 服务会验证是否满足身份要求,并将请求转换为包含所需块存储操作的消息。然后,消息会被发送到消息代理,供其他块存储服务处理。 |
| openstack-cinder-backup | 将块存储卷备份到外部存储库。默认情况下,OpenStack 使用对象存储服务存储备份。您还可以使用 Ceph 或 NFS 后端作为备份的存储存储库。 |
| openstack-cinder-scheduler | 将任务分配到队列,并确定调配卷服务器。调度程序服务从消息队列读取请求,并确定哪个块存储主机执行请求的操作。然后,调度程序与所选主机上的 openstack-cinder-volume 服务通信,以处理请求。 |
| openstack-cinder-volume | 指定虚拟机的存储。卷服务管理与块存储设备的交互。当请求到达调度程序时,卷服务可以创建、修改或删除卷。卷服务包括几个与块存储设备(如 NFS、Red Hat Storage 或 Dell EqualLogic)交互的驱动程序。 |
| cinder | 用于访问块存储 API 的命令行客户端。 |
下图显示了块存储 API、调度程序、卷服务和其他 OpenStack 组件之间的关系。
1.2.2. OpenStack Object Storage (swift) 复制链接链接已复制到粘贴板!
对象存储为大量数据提供 HTTP 可访问的存储系统,包括视频、镜像、电子邮件消息、文件或虚拟机镜像等静态实体。对象作为二进制文件存储在底层文件系统中,以及存储在各个文件的扩展属性中的元数据。
对象存储分布式架构通过基于软件的数据复制,支持水平扩展以及故障转移冗余。由于该服务支持异步和最终一致性复制,因此您可以在多个数据中心部署中使用它。
OpenStack Object Storage 的优点包括:
- 存储副本在停机时维护对象的状态。建议至少有三个副本。
- 存储区域托管副本。zones 确保给定对象的每个副本都可以单独存储。区域可能代表单独的磁盘驱动器、阵列、服务器、服务器机架,甚至整个数据中心。
- 存储区域可以根据位置对区域进行分组。地区可以包括通常位于同一地理位置的服务器或服务器场。区域为每个对象存储服务安装有一个单独的 API 端点,允许离散地分离服务。
对象存储使用 ring .gz 文件,该文件充当数据库和配置文件。这些文件包含所有存储设备的详细信息,以及存储实体到各个文件的物理位置的映射。因此,您可以使用 ring 文件来确定特定数据的位置。每个对象、帐户和容器服务器都有唯一的 ring 文件。
对象存储服务依赖于其他 OpenStack 服务和组件来执行操作。例如,需要 Identity Service (keystone)、rsync 守护进程和负载均衡器。
| 组件 | 描述 |
|---|---|
| openstack-swift-account | 使用帐户数据库处理容器列表。 |
| openstack-swift-container | 使用容器数据库处理特定容器中包含的对象列表。 |
| openstack-swift-object | 存储、检索和删除对象。 |
| openstack-swift-proxy | 公开公共 API,提供身份验证和路由请求。对象通过代理服务器流传输给用户,无需假脱机。 |
| swift | 用于访问对象存储 API 的命令行客户端。 |
| housekeeping | 组件 | 描述 |
|---|---|---|
| Auditing |
| 验证对象存储帐户、容器和对象的完整性,有助于防止数据崩溃。 |
| 复制 |
| 确保 Object Storage 集群中一致且可用的复制,包括垃圾回收。 |
| 更新 |
| 标识并重试失败的更新。 |
下图显示了对象存储用于与其他 OpenStack 服务、数据库和代理交互的主要接口。
1.2.3. OpenStack 数据库即服务(trove) 复制链接链接已复制到粘贴板!
DEPRECATION NOTICE :从 Red Hat OpenStack Platform 10 开始,OpenStack Trove 服务将不再包含在 Red Hat OpenStack Platform 发行版本中。我们与信任的合作伙伴合作为我们的客户提供生产就绪的 DBaaS 服务。请联系您的销售客户经理,了解有关此选项的更多信息。
这个功能在此发行版本中 作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
OpenStack 数据库即服务允许用户选择、配置和操作各种相关和非关系数据库,并开箱即用处理更复杂的数据库管理任务。
OpenStack Database-as-a-Service 优点包括:
- 用户和数据库管理员可以在云中调配和管理多个数据库实例。
- 高性能资源隔离,同时自动执行复杂的管理任务,如部署、配置、修补、备份、恢复和监控。
| 组件 | 描述 |
|---|---|
| openstack-trove-api | 支持 JSON 和 XML 来调配和管理数据库即服务实例的 RESTful API。 |
| openstack-trove-conductor | 在主机上运行,以接收来自带有更新主机上信息的客户机实例的信息。请求可以包含实例的状态或备份的当前状态。 使用 openstack-trove-conductor 时,虚拟机实例不需要直接连接到主机数据库。服务通过消息总线侦听 RPC 消息,并执行所请求的操作。 |
| openstack-trove-guestagent | 在客户机实例上运行,以直接管理和对主机数据库执行操作。openstack-trove-guestagent 通过消息总线侦听 RPC 消息,并执行所请求的操作。 |
| openstack-trove-taskmanager | 负责调配实例、管理实例生命周期和数据库实例操作等任务。 |
| Trove | 用于访问 Database-as-a-Service API 的命令行客户端。 |
下图显示了 Database-as-a-Service 和其他 OpenStack 服务之间的关系。
- 虽然 OpenStack Database-as-a-Service 默认 OpenStack 频道可用,但您必须手动安装和配置组件。
1.3. 虚拟机、镜像和模板 复制链接链接已复制到粘贴板!
第 1.3.1 节 “OpenStack Compute (nova)”
第 1.3.2 节 “OpenStack Bare Metal Provisioning (ironic)”
第 1.3.3 节 “OpenStack Image (glance)”
第 1.3.4 节 “OpenStack Orchestration (heat)”
第 1.3.5 节 “OpenStack 数据处理(sahara)”
1.3.1. OpenStack Compute (nova) 复制链接链接已复制到粘贴板!
OpenStack Compute 通过按需提供虚拟机,充当 OpenStack 云的核心。计算通过定义与底层虚拟化机制交互的驱动程序并将虚拟机调度到一组节点上运行,并通过向其他 OpenStack 组件提供功能。
计算支持使用 KVM 作为 hypervisor 的 libvirt 驱动程序 libvirtd。hypervisor 创建虚拟机并启用从节点实时迁移到节点。要置备裸机,您还可以使用 第 1.3.2 节 “OpenStack Bare Metal Provisioning (ironic)”。
计算与身份服务交互,以验证实例和数据库访问,以及访问镜像服务,以及启动实例的仪表板服务,以及提供用户和管理界面的控制面板服务。
您可以根据项目和用户限制对镜像的访问,并指定项目和用户配额,如单个用户可创建的实例数量。
部署 Red Hat OpenStack Platform 云时,您可以根据不同的类别划分云:
- 区域
Identity 服务中的每个服务目录都由服务区域标识,后者通常代表地理位置和服务端点。在具有多个计算节点的云中,区域可以分散分散的服务。
您还可以使用区域在计算安装之间共享基础架构,同时维护高度的容错能力。
- 单元(技术预览)
计算主机可以划分为名为 cells 的组,以处理大型部署或地理分散的安装。单元在树中配置,称为 API 单元(称为 API 单元)运行 nova-api 服务,但没有 nova-compute 服务。
树中的每个子单元运行所有其他典型的 novaoverlayfs 服务,但不运行 nova-api 服务。每个单元都有单独的消息队列和数据库服务,并运行 nova-cells 服务来管理 API 单元和子单元之间的通信。
单元的优点包括:
- 您可以使用单个 API 服务器来控制对多个计算安装的访问。
- 在单元格级别上提供了额外的调度级别,与主机调度不同,您可以在运行虚拟机时提供更大的灵活性和控制。
这个功能在此发行版本中 作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
- 主机聚合和可用区
单个计算部署可以分区为逻辑组。您可以创建共享通用资源(如存储和网络)的多个主机组,或者创建共享特殊属性(如可信计算硬件)的组。
对于管理员,组以 Host Aggregate 的形式显示,并分配有分配的计算节点和相关元数据。Host Aggregate 元数据通常用于提供 openstack-nova-scheduler 操作的信息,如将特定的类别或镜像限制到主机的子集。
对于用户,组作为可用性区域显示。用户无法查看组元数据或查看区域中主机列表。
聚合或区的好处包括:
- 负载平衡和实例分发。
- 区域之间的物理隔离和冗余,通过单独的电源或网络设备实现。
- 为具有通用属性的服务器组进行标记。
- 分隔不同类型的硬件.
| 组件 | 描述 |
|---|---|
| openstack-nova-api | 处理请求并提供对计算服务的访问,如引导实例。 |
| openstack-nova-cert | 提供证书管理器。 |
| openstack-nova-compute | 在每个节点上运行,以创建和终止虚拟实例。计算服务与虚拟机监控程序交互以启动新实例,并确保实例状态在计算数据库中维护。 |
| openstack-nova-conductor | 为计算节点提供数据库访问支持,以降低安全风险。 |
| openstack-nova-consoleauth | 处理控制台身份验证。 |
| openstack-nova-network | 可以充当 OpenStack 网络的替代网络服务,并处理基本网络流量以进行私有和公共访问。有关 OpenStack 网络和计算网络的比较,请参阅 第 2 章 Network In-Depth。 |
| openstack-nova-novncproxy | 为浏览器提供 VNC 代理,以启用 VNC 控制台来访问虚拟机。 |
| openstack-nova-scheduler | 根据配置的权重和过滤器,将新虚拟机的请求分配给正确的节点。 |
| nova | 用于访问计算 API 的命令行客户端。 |
下图显示了计算服务和其他 OpenStack 组件之间的关系。
1.3.2. OpenStack Bare Metal Provisioning (ironic) 复制链接链接已复制到粘贴板!
OpenStack 裸机置备使用户能够为具有特定硬件驱动程序的各种硬件供应商调配物理或裸机。裸机调配与计算服务集成,以调配虚拟机的方式调配裸机,并为 裸机到可信租户 用例提供解决方案。
OpenStack 裸机置备优势包括:
- Hadoop 集群可以部署在裸机上。
- 可以部署超大规模和高性能计算(HPC)集群。
- 对于对虚拟机敏感的应用程序,可以使用数据库托管。
裸机恢复调配使用计算服务进行调度和配额管理,并使用 Identity 服务进行身份验证。实例镜像必须配置为支持裸机置备,而不是 KVM。
下图显示了在置备物理服务器时 Ironic 和其他 OpenStack 服务如何交互:
| 组件 | 描述 |
|---|---|
| openstack-ironic-api | 处理请求并提供对裸机节点上计算资源的访问。 |
| openstack-ironic-conductor | 直接与硬件和 ironic 数据库交互,并处理请求的和定期操作。您可以创建多个编排器来与不同的硬件驱动程序交互。 |
| ironic | 用于访问裸机置备 API 的命令行客户端。 |
下图中演示了 Ironic API:
1.3.3. OpenStack Image (glance) 复制链接链接已复制到粘贴板!
OpenStack 镜像充当虚拟磁盘镜像的注册表。用户可以添加新镜像,也可以为现有服务器生成快照以进行即时存储。您可以使用快照进行备份,或用作新服务器的模板。
注册的镜像可以存储在对象存储服务或其他位置中,如简单文件系统或外部 Web 服务器。
支持以下镜像磁盘格式:
- aki/ami/ari (Amazon 内核、ramdisk 或机器镜像)
- ISO (光盘的存档格式,如 CD)
- qcow2 (Qemu/KVM, support Copy on Write)
- 原始(未结构化格式)
- VHD (Hyper-V,常用于来自 VMware、Xen、Microsoft 和 VirtualBox 等供应商的虚拟机监控)
- vdi (Qemu/VirtualBox)
- VMDK (VMware)
容器格式也可以由镜像服务注册。容器格式决定了要存储在镜像中的虚拟机元数据的类型和详细级别。
支持以下容器格式:
- 裸机(无元数据)
- OVA (OVA tar 存档)
- OVF (OVF 格式)
- aki/ami/ari (Amazon 内核、ramdisk 或机器镜像)
| 组件 | 描述 |
|---|---|
| openstack-glance-api | 与存储后端交互,以处理镜像检索和存储的请求。API 使用 openstack-glance-registry 来检索镜像信息。您不能直接访问 registry 服务。 |
| openstack-glance-registry | 管理每个镜像的所有元数据。 |
| Glance | 用于访问镜像 API 的命令行客户端。 |
下图显示了镜像服务用来注册和检索镜像数据库的主要接口。
1.3.4. OpenStack Orchestration (heat) 复制链接链接已复制到粘贴板!
OpenStack 编排提供模板来创建和管理云资源,如存储、网络、实例或应用。模板用于创建堆栈,这些堆栈是资源的集合。
例如,您可以为实例、浮动 IP、卷、安全组或用户创建模板。编排通过单一模块化模板提供对所有 OpenStack 核心服务的访问,以及自动扩展和基本高可用性等功能。
OpenStack 编排优势包括:
- 单个模板提供对所有底层服务 API 的访问。
- 模板是模块化的,并以资源为导向。
- 模板可以递归定义和可重复使用,如嵌套堆栈。然后,可以采用模块化方式定义和重新利用云基础架构。
- 资源实施是可插拔的,允许自定义资源。
- 资源可以自动扩展,因此根据使用情况添加或删除集群。
- 基本高可用性功能可用。
| 组件 | 描述 |
|---|---|
| openstack-heat-api | OpenStack 原生 REST API,通过将请求发送到 openstack-heat-engine 服务通过 RPC 来处理 API 请求。 |
| openstack-heat-api-cfn | 可选的 AWS-Query API 与 AWS CloudFormation 兼容,通过 RPC 发送请求到 openstack-heat-engine 服务来处理 API 请求。 |
| openstack-heat-engine | 编配模板启动,并为 API 使用者生成事件。 |
| openstack-heat-cfntools | 处理元数据的更新并执行自定义 hook 等帮助程序脚本的软件包,如 cfn-hup。 |
| heat | 与编排 API 通信的命令行工具,以执行 AWS CloudFormation API。 |
下图显示了编排服务用于创建两个新实例和本地网络的新堆栈的主要接口。
1.3.5. OpenStack 数据处理(sahara) 复制链接链接已复制到粘贴板!
OpenStack 数据处理支持在 OpenStack 上调配和管理 Hadoop 集群。Hadoop 在群集中存储和分析大量非结构化和结构化数据。
Hadoop 集群是可以充当运行 Hadoop 分布式文件系统(HDFS)的存储服务器组,运行 Hadoop 的 MapReduce (MR)框架或两者。
Hadoop 集群中的服务器需要驻留在同一网络中,但不需要共享内存或磁盘。因此,您可以在不影响现有服务器兼容性的情况下添加或删除服务器和集群。
Hadoop 计算和存储服务器共同定位,支持对存储数据的高速分析。所有任务都划分到服务器间,并使用本地服务器资源。
OpenStack Data Processing 优点包括:
- 身份服务可以验证用户,并在 Hadoop 集群中提供用户安全性。
- 计算服务可以置备集群实例。
- 镜像服务可以存储集群实例,其中每个实例都包含操作系统和 HDFS。
- 对象存储服务可用于存储 Hadoop 作业流程的数据。
- 模板可用于创建和配置集群。用户可以通过创建自定义模板或覆盖集群创建过程中的参数来更改配置参数。节点使用 Node Group 模板分组在一起,集群模板会组合节点组。
- 作业可用于在 Hadoop 集群上执行任务。作业二进制文件存储可执行代码,数据源存储输入或输出位置以及任何必要的凭证。
数据处理支持 Cloudera (CDH)和 Hortonworks Data Platform (HDP)发行版以及特定于供应商的管理工具,如 Apache Ambari。您可以使用 OpenStack 仪表板或命令行工具来置备和管理集群。
| 组件 | 描述 |
|---|---|
| openstack-sahara-all | 处理 API 和引擎服务的传统软件包。 |
| openstack-sahara-api | 处理 API 请求并提供对数据处理服务的访问。 |
| openstack-sahara-engine | 处理集群请求和数据交付的置备引擎。 |
| sahara | 用于访问数据处理 API 的命令行客户端。 |
下图显示了数据处理服务用于调配和管理 Hadoop 集群的主要接口。
1.4. 身份管理 复制链接链接已复制到粘贴板!
1.4.1. OpenStack Identity (keystone) 复制链接链接已复制到粘贴板!
OpenStack Identity 为所有 OpenStack 组件提供用户身份验证和授权。身份支持多种身份验证机制,包括用户名和密码凭据、基于令牌的系统和 AWS 样式的日志。
默认情况下,身份服务使用 MariaDB 后端作为令牌、目录、策略和身份信息。对于开发环境,建议使用此后端,或者验证较小的用户集。您还可以同时使用多个身份后端,如 LDAP 和 SQL。您还可以使用 memcache 或 Redis 进行令牌持久性。
身份支持与 SAML 的联邦。联邦身份在身份提供程序(IdP)和为最终用户提供的服务之间建立信任。
联邦身份和并发多个后端需要 Identity API v3 和 Apache HTTPD 部署,而不是 Eventlet 部署。
OpenStack Identity 的优点包括:
- 用户帐户管理,包括名称和密码等相关信息。除了自定义用户外,还必须为每个目录服务定义一个用户。例如,必须为 Image 服务定义 glance 用户。
- 租户或项目管理。租户可以是用户组、项目或组织。
- 角色管理。角色决定了用户权限。例如,某个角色可能会区分销售代表和经理的权限。
- 域管理.域决定了 Identity 服务实体的管理边界,并支持多租户,其中域代表一组用户、组和租户。一个域可以有多个租户,如果您使用多个并发身份提供程序,则每个供应商都有一个域。
| 组件 | 描述 |
|---|---|
| openstack-keystone | 提供 Identity 服务,以及管理和公共 API。支持 Identity API v2 和 API v3。 |
| keystone | 用于访问身份 API 的命令行客户端。 |
下图显示了 Identity 用来对与其他 OpenStack 组件验证用户身份的基本身份验证流程。
1.5. 用户界面 复制链接链接已复制到粘贴板!
第 1.5.1 节 “OpenStack Dashboard (horizon)”
第 1.5.2 节 “OpenStack Telemetry (ceilometer)”
1.5.1. OpenStack Dashboard (horizon) 复制链接链接已复制到粘贴板!
OpenStack 控制面板为用户和管理员提供了一个图形用户界面,供用户和管理员执行诸如创建和启动实例、管理网络和设置访问控制等操作。
控制面板服务提供 Project、Admin 和 Settings 默认仪表板。模块化设计使仪表板能够与其他产品(如计费、监控和其他管理工具)进行接口。
下图显示了 Admin 控制面板中的 Compute 面板的示例。
登录到仪表板的用户的角色决定了哪些仪表板和面板可用。
| 组件 | 描述 |
|---|---|
| openstack-dashboard | Django Web 应用,从任何 Web 浏览器提供对仪表板的访问。 |
| Apache HTTP 服务器(httpd 服务) | 托管应用。 |
下图显示了仪表板架构的概述。
示例显示了以下交互:
- OpenStack Identity 服务验证和授权用户
- 会话后端提供数据库服务
- httpd 服务托管 Web 应用以及用于 API 调用的所有其他 OpenStack 服务
1.5.2. OpenStack Telemetry (ceilometer) 复制链接链接已复制到粘贴板!
OpenStack Telemetry 为基于 OpenStack 的云提供用户级使用情况数据。数据可用于客户计费、系统监控或警报。Telemetry 可以从现有 OpenStack 组件(如计算使用事件)发送的通知收集数据,或者通过轮询 OpenStack 基础架构资源(如 libvirt )来收集。
Telemetry 包括一个存储守护进程,它通过可信消息传递系统与经过身份验证的代理通信,以收集和聚合数据。另外,该服务使用插件系统来添加新监控器。您可以在不同的主机上部署 API 服务器、中央代理、数据存储服务和收集器代理。
该服务使用 MongoDB 数据库来存储收集的数据。只有收集器代理和 API 服务器有权访问数据库。
| 组件 | 描述 |
|---|---|
| openstack-ceilometer-alarm-evaluator | 触发警报状态转换。 |
| openstack-ceilometer-alarm-notifier | 触发警报时执行操作。 |
| openstack-ceilometer-api | 在一个或多个中央管理服务器上运行,提供对数据库中数据的访问。 |
| openstack-ceilometer-central | 在中央管理服务器上运行,轮询独立于实例或 Compute 节点的资源的利用率统计。代理无法水平扩展,因此一次只能运行此服务的一个实例。 |
| openstack-ceilometer-collector | 在一个或多个中央管理服务器上运行,以监控消息队列。每个收集器处理通知消息并将其转换为遥测消息,并将消息发回到带有相关主题的消息总线。 遥测消息不经修改写入到数据存储中。您可以选择运行这些代理的位置,因为所有内部代理通信都基于对 ceilometer-api 服务的 AMQP 或 REST 调用,这与 ceilometer-alarm-evaluator 服务类似。 |
| openstack-ceilometer-compute | 在每个 Compute 节点上运行,以轮询资源利用率统计。每个 nova-compute 节点都必须部署并运行 ceilometer-compute 代理。 |
| openstack-ceilometer-notification | 将指标从各种 OpenStack 服务推送到收集器服务。 |
| ceilometer | 用于访问 Telemetry API 的命令行客户端。 |
下图显示了由 Telemetry 服务使用的接口。
1.6. 第三方组件 复制链接链接已复制到粘贴板!
1.6.1. 第三方组件 复制链接链接已复制到粘贴板!
有些 Red Hat OpenStack Platform 组件使用第三方数据库、服务和工具。
1.6.1.1. 数据库 复制链接链接已复制到粘贴板!
- MariaDB 是 Red Hat Enterprise Linux 附带的默认数据库。MariaDB 使红帽能够完全支持开源社区开发的软件。除 Telemetry 外的每个 OpenStack 组件都需要一个正在运行的 MariaDB 服务。因此,您需要在部署完整的 OpenStack 云服务前部署 MariaDB,然后才能安装任何独立的 OpenStack 组件。
- Telemetry 服务使用 MongoDB 数据库来存储从收集器代理收集的使用量数据。只有收集器代理和 API 服务器有权访问数据库。
1.6.1.2. 消息传递 复制链接链接已复制到粘贴板!
RabbitMQ 是基于 AMQP 标准的强大开源消息传递系统。RabbitMQ 是许多企业系统中具有广泛商业支持的高性能消息代理。在 Red Hat OpenStack Platform 中,RabbitMQ 是默认的和推荐的消息代理。
RabbitMQ 管理 OpenStack 事务,包括排队、分发、安全性、管理、集群和联合。它还在高可用性和集群场景中扮演重要角色。
1.6.1.3. 外部缓存 复制链接链接已复制到粘贴板!
memcached 或 Redis 等用于缓存的外部应用程序,提供持久性和共享存储,并通过减少数据库负载来加快动态 Web 应用程序。外部缓存由各种 OpenStack 组件使用,例如:
- 对象存储服务使用 memcached 缓存经过身份验证的客户端,而不是要求每个客户端重新授权每个交互。
- 默认情况下,仪表板使用 memcached 进行会话存储。
- Identity 服务使用 Redis 或 memcached 进行令牌持久性。
第 2 章 Network In-Depth 复制链接链接已复制到粘贴板!
2.1. 基本网络的工作方式 复制链接链接已复制到粘贴板!
网络包括将信息从一个计算机移动到另一台计算机。在最基本的级别,这通过在两台机器之间运行一个电缆来执行,每个计算机都安装了网络接口卡(NIC)。如果您研究了 OSI 网络模型,则这是第 1 层。
当您想参与对话中的两台计算机时,您需要通过添加名为 switch 的设备来扩展此配置。交换机是具有多个以太网端口的专用设备,您连接了额外的机器。此配置称为局域网(LAN)。
交换机将 OSI 模型移到第 2 层,并且应用比较低层 1 的更智能。每个 NIC 都有分配给硬件的唯一 MAC 地址,这个数字允许插入同一交换机的机器相互找到。
交换机维护将哪些 MAC 地址插入到哪些端口的列表,以便在一台计算机试图将数据发送到另一台计算机时,交换机会知道每个 NIC 所在的位置,并调整电路将网络流量定向到正确的目的地。
2.1.1. 连接多个 LAN 复制链接链接已复制到粘贴板!
如果您在两个独立交换机中使用两个 LAN,您可以使用以下方法将它们相互共享信息:
- 中继电缆
- 您可以直接连接到物理电缆,称为中继电缆。在此配置中,您可以将中继电缆的每一个端插入每个交换机上的端口,然后将这些端口定义为中继端口。现在,两个交换机充当一个大的逻辑交换机,连接的计算机可以相互成功找到。这个选项不可扩展,开销会造成您直接链接的更多交换机。
- 路由器
您可以使用名为 router 的设备从每个交换机插入电缆。因此,路由器知道在两个交换机上配置的网络。插入路由器的每个交换机都会成为接口,并分配一个 IP 地址,称为该网络的默认网关。默认网关中的"默认"意味着,如果目标计算机不与数据传输来源位于同一个 LAN 上,则会发送流量。
在每台计算机上设置此默认网关后,他们不需要了解其他网络上的所有其他计算机,才能向它们发送流量。流量仅发送到默认网关,路由器从那里处理它。由于路由器知道哪些网络驻留在哪个接口上,因此它可以将数据包发送到其预期的目的地。路由在 OSI 模型的第 3 层工作,并利用熟悉的概念,如 IP 地址和子网。
这种概念就是互联网本身的运行方式。许多由不同机构运行的独立的网络都使用交换机和路由器进行互连。遵循正确的默认网关,您的流量最终将到达需要前往的位置。
2.1.2. vlan 复制链接链接已复制到粘贴板!
虚拟局域网(VLAN)允许您为在同一交换机上运行的计算机分段网络流量。您可以通过将端口配置为不同网络的成员来对交换机进行逻辑划分。此配置会将端口转换为 mini-LANs,允许您为安全目的分隔流量。
例如,如果您的交换机有 24 个端口,您可以定义端口 1-6 属于 VLAN200,端口 7-18 属于 VLAN201。插入 VLAN200 的计算机与 VLAN201 上的计算机完全独立,且无法直接通信。两个 VLAN 之间的所有流量现在都必须通过路由器,就像它们是两个独立的物理交换机一样。您还可以增强防火墙的安全性,以确定哪些 VLAN 可以相互通信。
2.1.3. 防火墙 复制链接链接已复制到粘贴板!
防火墙与 IP 路由位于同一个 OSI 层。它们通常位于与路由器相同的网络段中,它们管理所有网络之间的流量。防火墙使用预定义的规则集,它们规定哪些流量可以或无法进入网络。这些规则可能非常精细的。例如,您可以定义一个规则,其中 VLAN 200 上的服务器只能与 VLAN201 上的计算机通信,并且仅当流量是 Web (HTTP)并移动一个方向时。
为了帮助强制实施这些规则,一些防火墙也会执行有状态数据包调用(SPI),在其中检查数据包的内容以确保它们声明是什么。黑客通过发送伪装作为其他内容的流量来消除数据,SPI 是一种有助于缓解威胁的方法。
2.1.4. 网桥 复制链接链接已复制到粘贴板!
网桥是运行在 OSI 模型的同一级别 2 的交换机,但它们的唯一功能是将独立的网络连接在一起,类似于路由器。
2.2. OpenStack 中的网络 复制链接链接已复制到粘贴板!
OpenStack 云中的所有基本网络概念,除了它们由服务和配置定义。这称为软件定义型网络(SDN)。虚拟交换机(Open vSwitch)和路由器(l3-agent)允许您的实例相互通信,并允许它们使用物理网络与外部通信。Open vSwitch 网桥将虚拟端口分配给实例,跨越到物理网络,以允许传入和传出流量。
2.3. 选择网络后端 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 提供两种不同的网络后端: Nova 网络 (nova-network)和 OpenStack Networking (neutron)。
Nova 网络已在 OpenStack 技术路线图中弃用,但仍可使用。OpenStack 网络被视为 OpenStack 转发路线图的核心软件定义型网络(SDN)组件,处于积极开发中。
Nova 网络和 OpenStack 网络之间没有迁移路径。因此,如果您计划部署 Nova 网络并迁移到 OpenStack 网络,则必须手动迁移所有网络和配置。此迁移可能会导致网络中断。
2.3.1. 何时选择 OpenStack Networking (neutron) 复制链接链接已复制到粘贴板!
- 如果您需要覆盖网络解决方案。OpenStack 网络支持 GRE 或 VXLAN 隧道以实现虚拟机流量隔离。使用 GRE 或 VXLAN 时,网络结构上不需要 VLAN 配置,物理网络的唯一要求是提供节点之间的 IP 连接。另外,VXLAN 或 GRE 允许 1,600万个唯一 ID 的理论扩展限制,其大于 802.1q VLAN ID 的 4094 限制。相比之下,Nova 网络基于 802.1q VLAN 的网络隔离,且不支持使用 GRE 或 VXLAN 隧道。
- 如果您需要租户之间重叠的 IP 地址。OpenStack 网络使用 Linux 内核的网络命名空间功能,允许不同的租户在同一计算节点上使用相同的子网范围,如 192.168.100/24,没有任何重叠或干扰的风险。这是推荐用于大型多租户部署。相比之下,Nova 网络仅支持扁平拓扑,它们必须记住所有租户使用的子网。
如果您需要红帽认证的第三方 OpenStack Networking 插件。默认情况下,Red Hat Enterprise Linux OpenStack Platform 5 及更高版本使用带有 Open vSwitch (OVS)机制驱动程序的开源 ML2 核心插件。根据物理网络结构和其他网络要求,可以部署第三方 OpenStack 网络插件,而不是默认的 ML2/Open vSwitch 驱动程序。
注意红帽正在不断努力增强我们的合作伙伴认证计划,以针对红帽 OpenStack 平台认证更多 OpenStack 网络插件。您可以了解有关我们的认证计划和认证 OpenStack 网络插件的更多信息,网址为 http://marketplace.redhat.com
- 如果您需要 VPN 即服务(VPNaaS)、防火墙即服务(FWaaS)或负载平衡即服务(LBaaS)。这些网络服务仅适用于 OpenStack 网络,且在 Nova 网络中不可用。控制面板允许租户管理这些服务,而无需管理员干预。
2.3.2. 选择 Nova 网络(nova-network)时. 复制链接链接已复制到粘贴板!
- 如果您的部署需要 flat (未标记)或 VLAN (802.1q 标记)网络。这种类型的部署意味着可扩展性要求,因为理论上的扩展限制 4094 VLAN ID 通常大于物理交换机的限制,以及管理和配置要求。物理网络上需要特定的配置,以便在节点之间中继所需的 VLAN 集合。
- 如果您的部署不需要租户之间重叠的 IP 地址。这通常建议只用于小型私有部署。
- 如果您不需要软件定义型网络(SDN)解决方案,或者与物理网络结构交互的能力。
- 如果您不需要自助服务 VPN、防火墙或负载平衡服务。
2.4. 高级 OpenStack 网络概念 复制链接链接已复制到粘贴板!
2.4.1. 第 3 层高可用性 复制链接链接已复制到粘贴板!
OpenStack 网络在集中式网络节点上托管虚拟路由器,这是专用于托管虚拟网络组件功能的物理服务器。这些虚拟路由器将流量定向到虚拟机,并且对环境继续连接至关重要。由于由于许多原因,物理服务器可能会遇到中断问题,因此当网络节点不可用时,您的虚拟机可能会受到停机的影响。
OpenStack 网络使用第 3 层高可用性来帮助缓解此漏洞,实施行业标准 VRRP 来保护虚拟路由器和浮动 IP 地址。使用第 3 层高可用性时,租户的虚拟路由器在多个物理网络节点上随机分布,一个路由器被指定为活跃路由器,而其他路由器则准备好接管托管活跃路由器的网络节点是否中断。
"层 3"指的是此功能功能的 OSI 模型的部分,这意味着它可以保护路由和 IP 地址。
如需更多信息,请参阅网络指南中的"Layer 3 高可用性" 章节。
2.4.2. 负载平衡即服务(LBaaS) 复制链接链接已复制到粘贴板!
负载平衡即服务(LBaaS)使 OpenStack 网络能够在指定的实例之间平均分配传入的网络请求。此发行版可确保工作负载在实例之间共享,有助于更有效地使用系统资源。传入的请求使用以下负载均衡方法之一分发:
- round robin
- 在多个实例之间平均轮转请求。
- 源 IP
- 来自唯一源 IP 地址的请求始终定向到同一实例。
- 最少连接
- 将请求分配给具有最低活跃连接数的实例。
如需更多信息,请参阅网络指南中的"配置负载平衡即服务"部分。
2.4.3. IPv6 复制链接链接已复制到粘贴板!
OpenStack 网络支持租户网络中的 IPv6 地址,以便您可以为虚拟机动态分配 IPv6 地址。OpenStack 网络也可以与物理路由器上的 SLAAC 集成,以便虚拟机可以从现有的 DHCP 基础架构接收 IPv6 地址。
有关更多信息,请参阅 《网络指南》 中的"IPv6"章节。
第 3 章 设计 复制链接链接已复制到粘贴板!
本节介绍了设计 Red Hat OpenStack Platform 部署时要考虑的技术和操作注意事项。
本指南中的所有架构示例假设您使用 KVM 管理程序在 Red Hat Enterprise Linux 7.2 上部署 OpenStack Platform。
3.1. 规划模型 复制链接链接已复制到粘贴板!
当您设计 Red Hat OpenStack Platform 部署时,项目的持续时间可能会影响部署的配置和资源分配。每个计划模型可能旨在实现不同的目标,因此需要不同的考虑。
3.1.1. 短期模型(3 个月) 复制链接链接已复制到粘贴板!
要执行短期容量规划和预测,请考虑捕获以下指标的记录:
- vCPU 总数
- vim 分配总数
- I/O 平均延迟
- 网络流量
- 计算负载
- 存储分配
vCPU、vRAM 和延迟指标是容量规划的最可访问。通过这些详细信息,您可以应用标准的第二排序回归,并获得一个可用容量估算,涵盖以下三个月。使用此估算来确定是否需要部署额外硬件。
3.1.2. 中期模型(6 个月) 复制链接链接已复制到粘贴板!
此模型需要检查迭代,您必须估算预测趋势和实际使用情况的偏差。您可以使用标准统计工具或特殊分析模型(如 Nash-Sutcliffe )分析此信息。也可以使用第二顺序回归来计算趋势。
在具有多个实例类别的部署中,如果您将 vCPU 和 vRAM 指标视为单一指标,您可以更轻松地关联 vRAM 和 vCPU 使用量。
3.1.3. 长期模型(1 年) 复制链接链接已复制到粘贴板!
总资源使用量可能在一年内有所不同,通常发生自原始长期容量估算的偏差。因此,对于容量预测,第二排序回归可能不足,特别是在使用cyclical 时。
在计划长期部署时,基于超过一年的数据的容量规划模型必须至少适合第一天。根据使用情况模式,可能还需要频率分析。
3.2. 计算资源 复制链接链接已复制到粘贴板!
计算资源是 OpenStack 云的核心。因此,在设计 Red Hat OpenStack Platform 部署时,建议考虑物理和虚拟资源分配、分发、故障转移和其他设备。
3.2.1. 常规注意事项 复制链接链接已复制到粘贴板!
- 每个 hypervisor 中的处理器、内存和存储数量
处理器内核和线程数量直接影响 Compute 节点上运行的 worker 线程数量。因此,您必须根据服务并根据均衡的基础架构来确定设计。
根据工作负载配置集,以后可以将额外的 Compute 资源池添加到云中。在某些情况下,对特定实例类型的需求可能并不只是证明独立的硬件设计,而优先选择采用模块化系统。
在这两种情况下,通过分配可以服务常见实例请求的硬件资源来启动设计。如果要向整个架构添加其他硬件设计,可以稍后完成此操作。
- 处理器类型
在硬件设计中,处理器选择非常重要,特别是在比较不同处理器的功能和性能特性时。
处理器可以包括专门用于虚拟化计算主机的功能,如硬件辅助虚拟化和内存分页,或 EPT shadowing 技术。这些功能可能会对云虚拟机的性能产生重大影响。
- 资源节点
- 您必须考虑云中非虚拟机监控程序资源节点的计算要求。资源节点包括运行对象存储、块存储和网络服务的控制器节点和节点。
- 资源池
使用计算设计来按需分配多个资源池。这种设计可最大化云中的应用程序资源使用情况。每一资源池应当服务特定的实例或类别类别。
设计多个资源池有助于确保每当实例调度到计算虚拟机监控程序时,分配每一组节点资源以最大化可用硬件的使用情况。这通常被称为 bin pack。
在资源池中跨节点使用一致的硬件设计还有助于支持组合包。为 Compute 资源池选择的硬件节点应共享一个通用的处理器、内存和存储布局。选择常见的硬件设计有助于更轻松地部署、支持和节点生命周期维护。
- 过量提交比率
OpenStack 允许用户在 Compute 节点上过量使用 CPU 和 RAM,这有助于增加云中运行的实例数量。但是,过量提交可能会降低实例的性能。
over-commit 比率是可用虚拟资源与可用物理资源相比的比率。
- 默认 CPU 分配比率为 16:1,这意味着调度程序为每个物理内核最多分配 16 个虚拟内核。例如,如果物理节点有 12 个内核,调度程序可以分配最多 192 个虚拟内核。由于每个实例有 4 个虚拟内核的典型类别定义,这种比例可在物理节点上提供 48 个实例。
- 1.5:1 的默认 RAM 分配比率表示,如果与实例关联的 RAM 总量小于物理节点上可用 RAM 量,调度程序会将实例分配给物理节点。
在设计阶段,为 CPU 和内存调优超额分配率非常重要,因为它对 Compute 节点的硬件布局有直接影响。将硬件节点设计为服务实例的计算资源池时,请考虑节点上可用的处理器内核数,以及运行完全容量的服务实例所需的磁盘和内存。
例如,m1.small 实例使用 1 个 vCPU、20 GB 的临时存储,以及 2,048 MB RAM。对于每个有 2 个 CPU 为 10 个内核的服务器,超线程打开:
- 默认 CPU 过量使用比率为 16:1,它允许 640 (2 swig 10 swig 2 16) total m1.small 实例。
- 1.5:1 的默认内存超提交比率为 1.5:1 表示服务器需要至少 853 GB (640 mtc 2,048 MB / 1.5)。
为内存调整节点大小时,务必要考虑服务操作系统和服务需求所需的额外内存。
3.2.2. Flavors 复制链接链接已复制到粘贴板!
每个创建的实例都会提供一个类别或资源模板,它决定了实例大小和容量。类别也可以指定辅助临时存储、交换内存、用于限制使用的元数据,或者特殊项目访问权限。默认类别没有定义这些额外属性。实例类型允许测量容量预测,因为常见的用例是可预测的大小,而不是调整其大小。
为方便将虚拟机打包到物理主机,默认选择类别提供第二个最大类别的大小,即每个维度中最大的类别的大小。该类别具有一半的 vCPU、半个vRAM 和一半的临时磁盘。每个后续的最大类别都是之前类别的一半。
下图显示了通用计算设计中类别分配的可视化表示,以及 CPU 优化的打包服务器:
对于商用服务器硬件的典型配置,建议使用默认类别。为最大化利用率,您可能需要自定义类别或创建新类别,使实例大小与可用硬件保持一致。
如果可能,请将您的类别限制为每个类别的一个 vCPU。请注意,类型 1 管理程序可以更轻松地将 CPU 时间调度到配置了一个 vCPU 的虚拟机。例如,将 CPU 时间调度到配置了 4 个 vCPU 的虚拟机的虚拟机监控程序必须等到四个物理内核可用,即使任务只需要一个 vCPU。
工作负载特征也可以影响硬件选择和类别配置,特别是任务存在不同 CPU、RAM 或 HDD 要求的情况。有关类别的详情,请参阅管理实例和镜像。
3.2.3. vCPU 到物理 CPU 内核比率 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 中的默认分配比率是每个物理或超线程内核 16 个 vCPU。
下表根据可用内存(包括为系统保留 4GB)在物理主机中可以运行的最大虚拟机数量:
| RAM 总量 | 虚拟机 | vCPU 总数 |
|---|---|---|
| 64GB | 14 | 56 |
| 96GB | 20 | 80 |
| 128GB | 29 | 116 |
例如,规划一个初始的 greenfields 代表 60 个实例,需要 3+1 计算节点。通常,内存瓶颈比 CPU 瓶颈要多。但是,如果需要,每个物理内核可将分配比率降低到 8 个 vCPU。
3.2.4. 内存开销 复制链接链接已复制到粘贴板!
KVM hypervisor 需要少量的虚拟机内存开销,包括非共享内存。QEMU/KVM 系统的可共享内存可以为每个管理程序舍入为 200 MB。
| vRAM | 物理内存使用量(平均) |
|---|---|
| 256 | 310 |
| 512 | 610 |
| 1024 | 1080 |
| 2048 | 2120 |
| 4096 | 4180 |
通常,您可以估计每个虚拟机的 100mb 的管理程序开销。
3.2.5. over-subscription 复制链接链接已复制到粘贴板!
内存是虚拟机监控程序部署的一个限制因素。您可以在每个物理主机上运行的虚拟机数量受主机可访问的内存量的限制。例如,部署具有 256GB RAM 和 200GB 实例的四核 CPU 会导致性能不佳。因此,您必须仔细确定 CPU 内核和内存的最佳比例,以便在实例之间分发。
3.2.6. 密度 复制链接链接已复制到粘贴板!
- 实例密度
- 在以计算为中心的架构中,实例密度较低,这意味着 CPU 和 RAM 超订阅比率也较低。如果实例密度较低,您可能需要更多主机来支持预期的扩展,特别是在设计使用双套接字硬件设计时。
- 主机密度
- 您可以使用四插槽平台解决更高双插槽设计的主机数量。这个平台会降低主机密度,这会增加机架数量。此配置可能会影响网络要求、电源连接数量,并可能会影响冷却要求。
- 电源和冷却密度
- 降低电源和冷却密度是具有较旧基础架构的数据中心的重要考虑因素。例如,由于主机密度较低,2U、3U 甚至 4U 服务器设计的电源和冷却密度要求可能低于刀片、滑动或 1U 服务器设计。
3.2.7. 计算硬件 复制链接链接已复制到粘贴板!
- 刀片服务器
- 大多数刀片服务器都支持双插槽和多核 CPU。为避免超过 CPU 限制,请选择 全宽度 或全he 刀片式服务器。这些刀片类型也可以降低服务器密度。例如,高密度刀片服务器(如 HP BladeSystem 或 Dell PowerEdge M1000e)最多支持十个机架单元中的 16 个服务器。半height 刀片式服务器是密度为全亮的刀片式的两倍,其导致每十个机架单元有 8 个服务器。
- 1U 服务器
1U rack-mounted 服务器仅占用一个机架单元,可提供比刀片服务器解决方案更高的服务器密度。您可以使用一个机架中的 40 个 1U 服务器单元来为机架(ToR)交换机的顶部提供空间。相比之下,您只能在一个机架中使用 32 个完整宽度的刀片服务器。
但是,来自主要供应商的 1U 服务器只有双插槽、多核 CPU 配置。要支持 1U rack-mount 格式的更高的 CPU 配置,请从原始设计制造商(ODM)或第二层制造商购买系统。
- 2U 服务器
- 2U 机架安装服务器提供四插槽、多核 CPU 支持,但在服务器密度方面具有相应的降低。2U rack-mounted 服务器提供 1U rack-mounted 服务器提供的密度。
- 较大的服务器
- 大型机架安装服务器(如 4U 服务器)通常提供更高的 CPU 容量,通常支持四个甚至 8 个 CPU 插槽。这些服务器具有更大的灵活性,但服务器密度较低,通常成本更高。
- SLED 服务器
SLED 服务器是机架式服务器,在单一 2U 或 3U 独立服务器中支持多个独立的服务器。这些服务器提供比典型的 1U 或 2U 机架挂载的服务器更高的密度。
例如,许多分片服务器在 2U 中提供四个独立的双插槽节点,共 8 个 CPU 插槽。但是,单个节点上的双插槽限制可能不足以降低额外的成本和配置复杂性。
3.2.8. 其他设备 复制链接链接已复制到粘贴板!
您可以考虑 Compute 节点的以下附加设备:
- 用于高性能计算作业的图形处理单元(GPU)
-
基于硬件的随机数生成器,以避免加密例程的熵不足。可以使用 及实例镜像属性将随机数生成器设备添加到实例中。
/dev/random是默认的熵源。 - SSD 用于临时存储,以最大化数据库管理系统的读/写时间。
- 主机聚合通过将共享类似特征的主机分组到一起工作,如硬件相似性。为云部署添加特殊硬件可能会增加每个节点的成本,因此请考虑所有 Compute 节点是否需要额外的自定义,或者只是一个子集。
3.3. 存储资源 复制链接链接已复制到粘贴板!
当您设计云时,您选择的存储解决方案会影响部署的关键方面,如性能、容量、可用性和互操作性。
选择存储解决方案时请考虑以下因素:
3.3.1. 常规注意事项 复制链接链接已复制到粘贴板!
- 应用程序
应用程序应该了解底层存储子系统来有效地使用云存储解决方案。如果原生可用的复制不可用,操作人员必须能够配置应用来提供复制服务。
可检测底层存储系统的应用程序可在各种基础架构中正常工作,无论底层基础架构的差异如何,仍然具有相同的基本行为。
- I/O
input-output 性能的基准为预期的性能级别提供基准。基准结果数据有助于对不同负载下的行为建模,并帮助您设计合适的架构。
架构生命周期中较小的脚本基准有助于在不同时间记录系统健康状况。脚本基准中的数据可以帮助到范围,并深入了解组织需求。
- 互操作性
- 确保您选择的任何硬件或存储管理平台都与 OpenStack 组件(如 KVM hypervisor)相互互操作性,这会影响您是否可以将其用于短期实例存储。
- 安全性
- 数据安全设计可以专注于基于 SLA、法律要求、行业法规以及系统或人员所需的认证。考虑根据数据类型遵守 HIPPA、ISO9000 或 SOX。对于某些机构,也应考虑访问控制级别。
3.3.2. OpenStack Object Storage (swift) 复制链接链接已复制到粘贴板!
- 可用性
设计对象存储资源池,以提供对象数据所需的可用性级别。考虑机架级和区域级设计,以适应必要副本数。副本数为三个。每个数据副本都应该存在于一个单独的可用区,带有独立电源、冷却和服务特定区域的网络资源。
OpenStack Object Storage 服务将特定数量的数据副本作为对象放在资源节点上。这些副本根据一致的散列环在集群中分发,该环存在于集群中的所有节点上。另外,对象存储代理服务器池提供对对象节点上存储的数据的访问应服务每个可用区。
设计对象存储系统具有足够数量的区,以便为副本数量提供最低所需的成功响应。例如,如果您在 Swift 集群中配置三个副本,建议在 Object Storage 集群中配置的区域数为五个。
虽然您可以使用较少的区域部署解决方案,但有些数据可能不可用,但对存储在集群中的某些对象的 API 请求可能会失败。因此,请确保考虑 Object Storage 集群中的区数量。
每个区域中的对象代理应利用本地的读取和写入关联性,以便本地存储资源能够尽可能地访问对象。您应该部署上游负载平衡,以确保代理服务分布到多个区域。在某些情况下,您可能需要第三方解决方案来协助服务地理分布。
Object Storage 集群中的区是一个逻辑划分,它由单个磁盘、节点、节点集合、节点集合组成。您必须在提供可用的和冗余存储系统的同时,允许 Object Storage 集群扩展。您可能需要为副本、保留和其他可能会影响特定区域中存储设计的其他因素配置存储策略。
- 节点存储
在为 OpenStack Object Storage 设计硬件资源时,主要目标是最大化每个资源节点中的存储量,同时确保每个 terabyte 的成本保持最小。这通常涉及使用可以保存大量旋转磁盘的服务器。您可以使用带有附加存储的 2U 服务器表单因素,或使用包含大量驱动器的外部机箱。
OpenStack Object Storage 的一致性和分区容错特征可确保数据保持最新且存活的硬件故障,而无需特殊的数据复制设备。
- 性能
- 应该设计对象存储节点,以便请求数量不会影响集群的性能。对象存储服务是一个 chatty 协议。因此,使用具有更高内核数量的多个处理器可确保 IO 请求不会忽略服务器。
- 加权和成本
OpenStack Object Storage 提供了在 swift 环内混合和匹配驱动器的功能。在设计 swift 存储集群时,您可以使用最经济的存储解决方案。
许多服务器机箱可以在 4U 机架空间中容纳 60 个或更多驱动器。因此,您可以把每个机架单元的存储量最大化为每 TB 的最佳成本。但是,不建议在对象存储节点中使用 RAID 控制器。
- 扩展
在设计存储解决方案时,您必须确定对象存储服务所需的最大分区功能,然后决定您可以创建的最大分区数。对象存储在整个存储集群中分发数据,但每个分区无法跨越多个磁盘。因此,分区的最大数量不能超过磁盘数量。
例如,具有初始单一磁盘和三个分区能力的系统可以容纳 8 (23)分区。添加第二个磁盘意味着每个磁盘都可以包含四个分区。1-disk-per-partition 限制意味着此系统不能有超过 8 个磁盘并限制其可扩展性。但是,具有初始单一磁盘和 10 分区能力的系统最多可有 1024 (210)分区。
每当您增加系统后端存储容量时,分区都会在存储节点上重新分发数据。在某些情况下,此复制由非常大的数据集组成。在这些情况下,您应该使用不与租户访问数据冲突的后端复制链接。
如果更多租户开始访问集群中的数据,且数据集增长,您必须添加前端带宽才能服务数据访问请求。为对象存储集群添加前端带宽需要设计对象存储代理,供租户用于获取数据的访问权限,以及启用代理层扩展的高可用性解决方案。
您应该设计一个前端负载平衡层,供租户和使用者用于获取集群中存储的数据的访问权限。这种负载平衡层可以在区域、地区甚至跨地理界限之间分发。
在某些情况下,您必须在代理服务器和存储节点之间服务请求的网络资源中添加带宽和容量。因此,提供对存储节点和代理服务器访问权限的网络架构应该可扩展。
3.3.3. OpenStack Block Storage (cinder) 复制链接链接已复制到粘贴板!
- 可用性和冗余
应用程序每秒的 input-output (IOPS)要求决定是否应使用 RAID 控制器,以及需要哪个 RAID 级别。对于冗余,您应该使用冗余的 RAID 配置,如 RAID 5 或 RAID 6。一些特殊功能(如自动复制块存储卷)可能需要第三方插件或企业块存储解决方案来满足更高的需求。
在对块存储具有极端需求的环境中,您应该使用多个存储池。每个设备池应该在那个池中的所有硬件节点之间有类似的硬件设计和磁盘配置。此设计可让应用程序访问具有各种冗余、可用性和性能特性的各种块存储池。
网络架构也应考虑实例使用可用存储资源所需的东西带宽量。所选网络设备应该支持巨型帧来传输大量数据块。在某些情况下,您可能需要创建额外的专用后端存储网络,以提供实例和块存储资源之间的连接,以减少网络资源的负载。
在部署多个存储池时,您必须考虑对 Block Storage 调度程序的影响,该调度程序在资源节点之间置备存储。确保应用程序可以在带有特定网络、电源和冷却基础架构的多个区域调度卷。此设计允许租户构建在多个可用区间分布的容错应用程序。
除了块存储资源节点外,还务必要设计用于负责置备和提供对存储节点的访问的 API 和相关服务的高可用性和冗余。您应该设计了硬件或软件负载平衡器的一层,以实现 REST API 服务的高可用性,以提供不间断的服务。
在某些情况下,您可能需要部署额外的负载均衡层,以提供对负责服务和存储块存储卷状态的后端数据库服务的访问。您应该设计一种高可用性数据库解决方案,以存储块存储数据库,如 MariaDB 和 Galera。
- 附加存储
块存储服务可以利用由硬件供应商开发的插件驱动程序,利用企业存储解决方案。大量企业插件随 OpenStack 块存储一起提供,其他插件则可通过第三方渠道获得。
常规用途云通常在大多数块存储节点上使用直接附加存储。因此,您可能需要向租户提供额外的服务级别。这些级别可能仅由企业存储解决方案提供。
- 性能
- 如果需要更高的性能,您可以使用高性能 RAID 卷。为了极端性能,您可以使用高速固态驱动器(SSD)磁盘。
- 池
- 块存储池应该允许租户为其应用程序选择适当的存储解决方案。通过创建多种不同类型的存储池并为块存储服务配置高级存储调度程序,您可以使用各种性能级别和冗余选项为租户提供大型存储服务目录。
- 扩展
您可以升级块存储池来添加存储容量,而不中断整个块存储服务。通过安装和配置适当的硬件和软件,将节点添加到池。然后,您可以将新节点配置为使用消息总线报告正确的存储池。
由于块存储节点将节点可用性报告给调度程序服务,所以当新节点上线并可用时,租户就可以立即使用新的存储资源。
在某些情况下,对来自实例的块存储的需求可能会耗尽可用的网络带宽。因此,您应该设计网络基础架构来服务块存储资源,以便您无缝添加容量和带宽。
这通常涉及动态路由协议或高级网络解决方案,来向下游设备添加容量。前端和后端存储网络设计应包括快速轻松地添加容量和带宽的能力。
3.3.4. 存储硬件 复制链接链接已复制到粘贴板!
- 容量
节点硬件应该为云服务支持足够的存储,并且应确保部署后可以添加容量。硬件节点应支持大量成本成本的磁盘,且不受 RAID 控制器卡的依赖。
硬件节点还应能够支持高速存储解决方案和 RAID 控制器卡,以提供基于硬件的存储性能和冗余。选择自动修复损坏的阵列的硬件 RAID 控制器有助于替换降级或销毁存储设备。
- 连接性
- 如果您在存储解决方案中使用非以太网存储协议,请确保硬件可以处理这些协议。如果您选择了一个集中存储阵列,请确保 hypervisor 可以连接到该镜像存储的该存储阵列。
- Cost
- 存储可能是整体系统成本的显著部分。如果您需要供应商支持,则建议使用商业存储解决方案,但会带来更大的费用。如果您需要最小化初始的财务投资,您可以根据商业硬件设计系统。但是,初始保存可能会导致运行的支持成本和更高的不兼容风险。
- 直接附加存储
- 直接附加存储(DAS)会影响服务器硬件选择,并影响主机密度、实例密度、电源密度、操作系统管理程序和管理工具。
- 可扩展性
- 可扩展性是任何 OpenStack 云中的主要考虑因素。有时很难预测实施的最终预期大小;请考虑扩展初始部署,以适应增长和用户需求。
- 扩展性
可扩展性是存储解决方案的主要架构因素。扩展至 50 PB 的存储解决方案被视为比仅扩展至 10 PB 的解决方案进行扩展。此指标与可扩展性不同,即随着工作负载增加而解决方案的性能度量。
例如,开发平台云的存储架构可能不需要与商业产品云相同的可伸缩性和可扩展性。
- 容错
Object Storage 资源节点不需要硬件容错或 RAID 控制器。您不需要规划对象存储硬件中的容错功能,因为对象存储服务默认在区域之间提供复制。
块存储节点、计算节点和云控制器在硬件级别带有硬件 RAID 控制器和不同级别的 RAID 配置应具有容错内置。RAID 的级别应与云的性能和可用性要求保持一致。
- 位置
- 实例和镜像存储的地理位置可能会影响您的架构设计。
- 性能
运行对象存储服务的磁盘不需要是快速性能的磁盘。因此,您可以最大化每 TB 的存储成本效率。但是,运行块存储服务的磁盘应使用性能提升功能,这些功能可能需要 SSD 或闪存存储来提供高性能块存储池。
应该考虑您用于实例的短期磁盘的存储性能。如果计算池需要高利用短期存储,或需要非常高性能,您应该部署类似硬件解决方案作为块存储部署。
- 服务器类型
- 包含 DAS 的横向扩展存储架构会影响服务器硬件选择。此架构还可以影响主机密度、实例密度、电源密度、操作系统管理程序、管理工具等。
3.3.5. Ceph Storage 复制链接链接已复制到粘贴板!
如果您为外部存储考虑 Ceph,则必须调整 Ceph 集群后端的大小,才能处理具有合理的延迟的并发虚拟机数量。可接受的服务级别可以在 20ms 下维护 99% 的 I/O 操作,用于写入操作,在 10ms 下,用于读取操作。
您可以通过配置每个 Rados 块设备(RBD)的最大带宽或设置最低保证承诺,将 I/O 高峰与其他虚拟机隔离。
3.4. 网络资源 复制链接链接已复制到粘贴板!
网络可用性对云部署中的虚拟机监控程序至关重要。例如,如果虚拟机监控程序支持每个节点只有几个虚拟机(VM),且应用程序不需要高速网络,那么您可以使用一个或两个 1GB 以太网链接。但是,如果应用程序需要高速网络,或者您的管理程序支持每个节点的多个虚拟机,则建议使用一个或两个 10GB 以太网链接。
与传统的核心网络拓扑相比,典型的云部署使用更对等的通信。虽然虚拟机在集群中随机置备,但这些虚拟机需要相互通信,就像它们位于同一网络中一样。这个要求可能会减慢网络的速度,并导致传统核心网络拓扑中的数据包丢失,因为边缘和网络内核之间的超额订阅链接。
3.4.1. 隔离您的服务 复制链接链接已复制到粘贴板!
OpenStack 云传统上有多个网络段。每个片段提供对云中资源的访问权限,供操作员和租户使用。网络服务还需要与其他网络分开的网络通信路径。将服务隔离到单独的网络有助于保护敏感数据并防止未经授权的访问服务。
最低推荐的隔离涉及以下网络段:
- 租户和操作员用于访问云 REST API 的公共网络片段。通常,只需要云中的控制器节点和 swift 代理才能连接到此网络段。在某些情况下,这个网络段也可能由硬件负载均衡器和其他网络设备提供服务。
云管理员使用管理网络段来管理硬件资源,并通过配置管理工具将软件和服务部署到新硬件。在某些情况下,这个网络段还可能用于内部服务,包括需要相互通信的消息总线和数据库服务。
由于此网络段的安全要求,建议保护此网络不受未授权访问的影响。这个网络片段通常需要与云中的每个硬件节点通信。
应用程序和消费者使用的应用程序网络段提供对物理网络的访问,以及用户访问云中运行的应用程序。这个网络需要与公共网络段隔离,且不应直接与云中的硬件资源通信。
此网络段可用于由计算资源节点和网络网关服务进行通信,这些服务将应用程序数据传输到云之外的物理网络。
3.4.2. 选择您的网络类型 复制链接链接已复制到粘贴板!
您选择的网络类型在云网络架构设计中扮演关键角色。
- OpenStack Networking (neutron)是 OpenStack forward-looking 路线图的核心软件定义型网络(SDN)组件,正在积极开发。
- OpenStack 技术发展蓝图中弃用了计算网络(nova-network),但目前仍然可用。
Compute 网络和 OpenStack 网络之间没有迁移路径。因此,如果您计划部署计算网络,则无法升级到 OpenStack 网络,且网络类型之间的任何迁移都必须手动执行,并且需要网络中断。
3.4.2.1. 何时选择 OpenStack Networking (neutron) 复制链接链接已复制到粘贴板!
如果您需要以下功能,请选择 OpenStack 网络:
覆盖网络解决方案.OpenStack 网络支持 GRE 和 VXLAN 隧道以实现虚拟机流量隔离。GRE 或 VXLAN 不需要网络光纤上的 VLAN 配置,只需要物理网络来提供节点之间的 IP 连接。
与 802.1q VLAN 上的 4094 个唯一 ID 限制相比,VXLAN 或 GRE 还允许 3,200万个唯一 ID 限制。计算网络在 802.1q VLAN 上进行网络隔离,且不支持使用 GRE 或 VXLAN 进行隧道连接。
租户之间的 IP 地址重叠。OpenStack 网络使用 Linux 内核中的网络命名空间功能,允许不同的租户在同一计算节点上使用相同的子网范围,如 192.168.100/24,而无需重叠或干扰风险。此功能适用于大型多租户部署。
相比之下,计算网络仅提供扁平拓扑,它们必须保持了解所有租户使用的子网。
红帽认证第三方 OpenStack Networking 插件.默认情况下,Red Hat OpenStack Platform 使用带有 Open vSwitch (OVS)机制驱动程序的开源 ML2 核心插件。OpenStack 网络的模块化结构允许您根据物理网络结构和其他网络要求部署第三方 OpenStack 网络插件,而不是默认的 ML2/Open vSwitch 驱动程序。
红帽正在扩展合作伙伴认证计划,为 Red Hat OpenStack Platform 认证更多 OpenStack 网络插件。您可以了解更多有关认证计划的信息,并查看经认证的 OpenStack 网络插件列表 :http://marketplace.redhat.com
- VPN 即服务(VPNaaS)、防火墙即服务(FWaaS)或负载平衡即服务(LBaaS)。这些网络服务仅适用于 OpenStack 网络,且在计算网络中不可用。控制面板允许租户管理这些服务,而无需管理员干预。
3.4.2.2. 选择 Compute Networking (nova-network) 复制链接链接已复制到粘贴板!
计算网络(nova-network)服务主要是第 2 层网络服务,可在两种模式下工作。这些模式因 VLAN 使用量而异:
- 扁平网络模式.云中的所有网络硬件节点和设备都连接到单一第 2 层网络段,提供对应用程序数据的访问。
- VLAN 分段模式。如果云中的网络设备支持 VLAN 的分段,则云中的每个租户都会分配一个映射到物理网络上的 VLAN 的网络子网。如果您的云设计需要支持多个租户,而您想要使用 Compute 网络,您应该使用此模式。
计算网络仅由云操作员管理。租户无法控制网络资源。如果租户需要管理和创建网络资源,如网络网段和子网,您必须安装 OpenStack 网络服务,以提供实例的网络访问。
在以下情况下选择 Compute 网络:
- 如果您的部署需要扁平未标记的网络,或标记了 VLAN 802.1q 网络。您必须记住,网络拓扑将理论扩展限制为 4094 VLAN ID,物理交换机通常会支持较少的数字。此网络还可减少管理和置备限制。您必须手动配置网络,以在节点之间中继所需的 VLAN 集合。
- 如果您的部署不需要租户之间重叠的 IP 地址。这通常仅适用于小型私有部署。
- 如果您不需要软件定义型网络(SDN)解决方案或与物理网络结构交互的功能。
- 如果您不需要自助服务 VPN、防火墙或负载均衡服务。
3.4.3. 常规注意事项 复制链接链接已复制到粘贴板!
- 安全性
确保您隔离网络服务,并且流量流到正确的目的地,而无需通过不必要的位置进行跨度。
考虑以下示例因素:
- 防火墙
- 用于加入独立租户网络的覆盖互连
- 通过或避免特定网络的路由
网络附加到虚拟机监控程序的方式可以公开安全漏洞。为了缓解利用虚拟机监控程序中断的情况,请将网络与其他系统分离,并将网络调度到专用 Compute 节点。这种分离可防止攻击者从被破坏的实例获取网络访问权限。
- 容量规划
- 云网络需要容量和增长管理。容量规划可包括购买网络电路和硬件,以及以月或数年测量的领导时间。
- 复杂性
- 复杂的网络设计可能很难维护和故障排除。虽然设备级配置可以简化维护问题和自动化工具可以处理覆盖网络,但避免或记录功能与专用硬件之间的非传统互连,以防止中断。
- 配置错误
- 配置不正确的 IP 地址、VLAN 或路由器可能会导致网络区域出现中断,甚至整个云基础架构中。自动化网络配置,以最大程度降低可能会破坏网络可用性的 Operator 错误。
- 非标准功能
配置云网络以利用特定供应商的功能可能会带来额外的风险。
例如,您可以使用多链路聚合(MLAG)在网络的聚合器交换机级别提供冗余。MLAG 不是标准聚合格式,每个供应商都实施该功能的专有类别。MLAG 架构不跨交换机供应商实现互操作性,这会导致厂商锁定,并可能导致升级网络组件时出现延迟或问题。
- 单点故障
- 如果您的网络因为只有一个上游链接或只有一个电源而有单一故障(SPOF),您可能会在失败时遇到网络中断。
- Tuning
- 配置云网络,以最大程度降低链路丢失、数据包丢失、数据包障碍、广播形势和循环。
3.4.4. 网络硬件 复制链接链接已复制到粘贴板!
网络硬件没有单一最佳实践架构来支持 OpenStack 云,您可以适用于所有实施。选择网络硬件的关键考虑因素包括:
- 可用性
为确保不间断云节点访问,网络架构应识别任何单点故障,并提供适当的冗余或容错能力:
- 可以通过添加冗余电源或配对的交换机来实现网络冗余。
- 对于网络基础架构,LACP、VRRP 或类似的网络协议可用于实现高度可用的网络连接。
- 为确保 OpenStack API 和云中的任何其他服务高度可用,您应该在网络架构中设计负载平衡解决方案。
- 连接性
- OpenStack 云中的所有节点都需要网络连接。在某些情况下,节点需要访问多个网络段。设计必须包含足够的网络容量和带宽,以确保云中的所有南北和东西流量都有充足的资源。
- 端口
任何设计都需要具有所需端口的网络硬件:
- 确保具有提供端口所需的物理空间。首选更高的端口密度,因为它为计算或存储组件留出更多机架空间。适当的端口可用性还可防止故障域并协助电源密度。密度更高的交换机更为昂贵,应该考虑它,因为如果不需要,则不必过度设计网络。
- 网络硬件必须支持提议的网络速度。例如: 1 GbE、10 GbE 或 40 GbE (甚至 100 GbE)。
- power
- 确保物理数据中心为所选网络硬件提供所需的电源。例如,leaf-and-spine fabric 或行尾(EoR)交换机中的 spine 交换机可能无法提供足够的电源。
- 可扩展性
- 网络设计应包括可扩展的物理和虚拟网络设计。网络硬件应该提供硬件节点所需的接口和速度的类型。
3.5. 性能 复制链接链接已复制到粘贴板!
OpenStack 部署的性能取决于与基础架构和控制器服务相关的多个因素。用户要求可分为一般网络性能、计算资源性能和存储系统性能。
确保保留系统的历史性能基准,即使这些系统在没有慢速的情况下一致执行。当您遇到性能问题并需要数据进行比较时,可用的基准信息是有用的参考。
除了 第 1.5.2 节 “OpenStack Telemetry (ceilometer)” 外,外部软件也可用于跟踪性能。Red Hat OpenStack Platform 的 Operational Tools 存储库包括以下工具:
3.5.1. 网络性能 复制链接链接已复制到粘贴板!
网络要求有助于确定性能功能。例如,较小的部署可能会使用 1 千兆位以太网(GbE)网络,并为多个部门或许多用户提供服务的大型安装应使用 10 GbE 网络。
运行实例的性能可能会受这些网络速度的限制。您可以设计运行多种网络功能的 OpenStack 环境。通过利用不同的接口速度,OpenStack 环境的用户可以选择符合其目的的网络。
例如,web 应用程序实例可以在带有 OpenStack 网络 1GbE 功能的公共网络中运行,后端数据库可以使用具有 10 GbE 功能的 OpenStack 网络来复制其数据。在某些情况下,设计可以纳入链路聚合来提高吞吐量。
通过实施向云 API 提供前端服务的硬件负载均衡器,可以提升网络性能。如果需要,硬件负载均衡器也可以执行 SSL 终止。在实现 SSL 卸载时,验证所选设备的 SSL 卸载功能非常重要。
3.5.2. Compute 节点性能 复制链接链接已复制到粘贴板!
计算节点中使用的硬件规格(包括 CPU、内存和磁盘类型)直接影响实例的性能。OpenStack 服务中的可调参数也可以直接影响性能。
例如,OpenStack Compute 的默认 over-commit 比率为 16:1,CPU 和 1.5 内存。这些高比例可能会导致"无法"活动增加。您必须仔细调整 Compute 环境的大小,以避免这种情况,并确保在使用量增加时监控您的环境。
3.5.3. 块存储主机性能 复制链接链接已复制到粘贴板!
块存储可以使用 NetApp 或 EMC 等企业后端系统,如 Ceph,或者利用块存储节点中直接附加存储的功能。
可以部署块存储,使流量遍历主机网络,这可能会受到前端 API 流量性能的影响。因此,请考虑使用带有控制器和计算主机上专用接口的专用数据存储网络。
3.5.4. 对象存储主机性能 复制链接链接已复制到粘贴板!
用户通常通过代理服务访问对象存储,该服务在硬件负载均衡器后面运行。默认情况下,高弹性存储系统复制存储的数据,这可能会影响整体系统性能。在这种情况下,建议在存储网络构架中推荐 10 GbE 或更高的网络容量。
3.5.5. 控制器节点 复制链接链接已复制到粘贴板!
控制器节点为最终用户提供管理服务,并在内部为云操作提供服务。务必要仔细设计用于运行控制器基础架构的硬件。
控制器在服务间为系统消息传递运行消息排队服务。消息传递中的性能问题可能会导致操作功能(如启动和删除实例、置备新存储卷和管理网络资源)的延迟。这些延迟还可能会影响应用程序对某些条件做出反应的能力,特别是在使用自动扩展功能时。
您还需要确保控制器节点可以处理多个并发用户的工作负载。确保 API 和 Horizon 服务已加载,以提升您客户的服务可靠性。
务必要考虑 OpenStack Identity Service (keystone),它在 OpenStack 和最终用户内部为所有服务提供身份验证和授权。如果该服务没有适当大小,则这个服务可能会导致整体性能降低。
监控非常重要的指标包括:
- 镜像磁盘使用率
- Compute API 的响应时间
3.6. 维护和支持 复制链接链接已复制到粘贴板!
为了支持和维护安装,OpenStack 集群管理需要操作人员了解架构设计。操作与工程人员之间的技能级别和角色划分取决于安装的大小和目的。
- 大型云服务供应商(或电信提供商)更有可能由特有的专业运营组织来管理。
- 更小的实施更有可能依赖支持人员,需要采用组合工程、设计和操作功能。
如果您纳入了减少设计中操作开销的功能,您可以自动执行一些操作功能。
您的设计也会直接受到服务等级协议(SLA)的影响。SLA 定义服务级别的可用性,如果您不满足合同义务,则通常包括损失。影响设计的 SLA 术语包括:
- API 可用性保证意味着意味着多个基础架构服务和高度可用的负载均衡器。
- 网络正常运行时间保证会影响交换机设计,可能需要冗余切换和电源。
- 旨在简化网络隔离或其他安全机制的网络安全策略要求。
3.6.1. Backups 复制链接链接已复制到粘贴板!
您的设计可能会受到您的备份和恢复策略、数据评估或分层存储管理、保留策略、数据放置和工作流自动化的影响。
3.6.2. 停机时间 复制链接链接已复制到粘贴板!
有效的云构架应支持以下内容:
- 计划停机时间(维护)
- 计划外停机时间(系统故障)
例如,如果计算主机失败,则可能会从快照中恢复实例,或者通过重新生成实例来恢复。但是,为了获得高可用性,您可能需要部署额外的支持服务,如共享存储或设计可靠的迁移路径。
3.7. 可用性 复制链接链接已复制到粘贴板!
当您使用至少两台服务器时,OpenStack 可以提供高可用性部署。服务器可以从 RabbitMQ 消息排队服务和 MariaDB 数据库服务运行所有服务。
当您在云中扩展服务时,后端服务也需要扩展。监控和报告服务器利用率和响应时间以及系统负载测试可帮助确定扩展决策。
- 为避免出现单一故障点,OpenStack 服务应当部署到多个服务器。通过将这些服务放在具有多个 OpenStack 服务器的高可用负载均衡器中,可以实现 API 可用性。
- 确保您的部署具有足够的备份功能。例如,在有两个基础架构控制器节点的部署中使用高可用性,如果您丢失一个控制器,您仍然可以从另一个控制器运行云服务。
- OpenStack 基础架构是提供服务不可或缺的,特别是在操作 SLA 时。考虑对核心基础架构所需的交换机、路由和冗余能力数量,以及网络的相关绑定,为高度可用的交换机基础架构提供不同的路由。请注意要使用的网络后端类型。有关如何选择网络后端的详情,请参考 第 2 章 Network In-Depth。
- 如果您没有为实时迁移配置计算主机,且计算主机失败,则计算实例和该实例中存储的任何数据都可能会丢失。为确保计算主机的正常运行时间,您可以在企业存储或 OpenStack 块存储上使用共享文件系统。
外部软件可以用来检查服务可用性或阈值限制,并设置适当的警报。Red Hat OpenStack Platform 的 Operational Tools 存储库包括:
有关在 OpenStack 中使用高可用性的参考架构,请参阅: 使用 Ceph Storage 部署高可用性 Red Hat OpenStack Platform 6
3.8. 安全性 复制链接链接已复制到粘贴板!
安全域包括在单个系统中共享共同信任要求的用户、应用程序、服务器或网络。安全域通常使用相同的身份验证和授权要求和用户。
典型的安全域类别包括公共、客户机、管理和数据。域可以单独或组合映射到 OpenStack 部署。例如,一些部署拓扑将客户机和数据域组合在一个物理网络中,其他情况下网络会被物理分开。每个情况都需要云操作员了解相关的安全问题。
安全域应映射到您的特定 OpenStack 部署拓扑。域和域信任要求取决于云实例是公共、私有还是混合。
- 公共域
- 云基础架构完全不受信任的区域。公共域可以将互联网称为您没有授权的整个或网络。此域应始终被视为不受信任的。
- 客户机域
通常用于计算实例到实例流量,并处理云上实例生成的计算数据,但不由支持云操作的服务(如 API 调用)提供服务。
公共云供应商和私有云供应商对实例使用没有严格控制,或者允许不受限制的互联网访问实例的公共云提供商应认为这个域不被信任。私有云供应商可能会考虑这个网络内部,因此仅信任为实例和所有云租户中的控制。
- 管理域
- 服务相互交互的域。这个域有时被称为 control plane。此域中的网络传输机密数据,如配置参数、用户名和密码。在大多数部署中,这个域被视为可信。
- 数据域
- 存储服务传输数据的域。跨该域的大多数数据都具有高度完整性和保密性要求,并且根据部署类型,也可能具有强大的可用性要求。此网络的信任级别取决于其他部署决策。
当您在企业将 OpenStack 部署为私有云时,部署通常位于防火墙后面,并且位于具有现有系统的可信任的网络中。云的用户通常是受公司所定义的安全要求约束的员工。这种部署意味着大多数安全域都可以被信任。
但是,当您以面向公共的角色部署 OpenStack 时,对域的信任级别没有假设,攻击向量会显著提高。例如,API 端点和底层软件会容易受到想要获得未授权访问或阻止访问服务的不当者的影响。这些攻击可能会导致数据丢失、功能和声望。这些服务必须使用审计和适当的过滤进行保护。
当您为公共云和私有云管理系统用户时,您必须谨慎操作。Identity 服务可以使用外部身份后端,如 LDAP,这简化了 OpenStack 中的用户管理。由于用户身份验证请求包含敏感信息,如用户名、密码和身份验证令牌,因此您应该将 API 服务放在执行 SSL 终止的硬件后。
3.9. 其他软件 复制链接链接已复制到粘贴板!
典型的 OpenStack 部署包括特定于 OpenStack 的组件和 第 1.6.1 节 “第三方组件”。补充软件包括集群、日志记录、监控和警报的软件。因此,部署设计必须考虑额外的资源消耗,如 CPU、RAM、存储和网络带宽。
当您设计云时,请考虑以下因素:
- 数据库和消息传递
底层消息队列提供程序可能会影响所需的控制器服务数量,以及提供高弹性的数据库功能的技术。例如,如果您在 Galera 中使用 MariaDB,服务的复制依赖于仲裁。因此,底层数据库应至少包含三个节点来恢复失败的 Galera 节点。
当您增加支持软件功能的节点数量时,请考虑机架空间和交换机端口密度。
- 外部缓存
Memcached 是一个分布式内存对象缓存系统,Redis 是一个键值存储。两个系统都可以部署到云中,以减少 Identity 服务的负载。例如,memcached 服务会缓存令牌,并使用分布式缓存系统来帮助减少底层身份验证系统的一些瓶颈。
使用 memcached 或 Redis 不会影响架构的整体设计,因为这些服务通常部署到提供 OpenStack 服务的基础架构节点。
- 负载平衡
虽然许多通用的部署使用硬件负载均衡器来提供高度可用的 API 访问和 SSL 终止,但也可考虑 HAProxy 等软件解决方案。您必须确保软件定义的负载平衡实施也高度可用。
您可以使用 Corosync 之类的解决方案配置软件定义的高可用性,如 Keepalived 或 Pacemaker。Pacemaker 和 Corosync 可以根据 OpenStack 环境中的特定服务提供主动-主动或主动 - 被动高可用性配置。
这些应用可能会影响设计,因为它们需要至少具有两个节点的部署,其中其中一个控制器节点可以在待机模式下运行服务。
- 日志记录和监控
日志应存储在集中式位置,以便更轻松地分析。日志数据分析引擎还可以提供自动化和发布通知的机制,以警报和修复常见问题。
除了基本 OpenStack 日志外,您还可以使用外部日志记录或监控软件,只要工具支持架构设计中的现有软件和硬件。Red Hat OpenStack Platform 的 Operational Tools 存储库包括以下工具:
3.10. 规划工具 复制链接链接已复制到粘贴板!
Cloud Resource Calculator 工具可帮助您计算容量要求。
要使用该工具,请在电子表格中输入您的硬件详情。然后,该工具显示为您可用的实例数量计算的估算,包括类别变化。
此工具仅用于方便使用。它不受红帽官方支持。
第 4 章 架构示例 复制链接链接已复制到粘贴板!
本章包含 Red Hat OpenStack Platform 部署架构示例的引用。
本指南中的所有架构示例假设您使用 KVM 管理程序在 Red Hat Enterprise Linux 7.2 上部署 OpenStack Platform。
4.1. 概述 复制链接链接已复制到粘贴板!
通常,部署基于性能或功能。部署也可以基于部署的基础架构。
| Example | 描述 |
|---|---|
| 如果您不确定特定技术或环境需求,要使用的常规高可用性云。这种架构类型是灵活的,不强调任何单个 OpenStack 组件,并且不限于特定环境。 | |
| 以计算为中心的云,专门用于支持计算密集型工作负载。计算密集型工作负载可能意味着 CPU 密集型,如大量数据计算、加密或解密。它可能还意味着 RAM 密集型,如内存缓存或数据库服务器,或者 CPU 密集型和 RAM 密集型。它通常并不意味着存储密集型或网络密集型。如果需要高性能计算资源,您可以选择此架构类型。 | |
| 以性能为导向的存储系统设计,用于管理和分析大型数据集,如 Hadoop 集群。在这种架构类型中,OpenStack 与 Hadoop 集成,以管理 Hadoop 集群,将 Ceph 作为存储后端。 | |
| 高性能存储系统假定数据库 IO 要求增加,并使用固态驱动器(SSD)来处理数据。您可以将此架构类型用于现有存储环境。 | |
| 基于云的文件存储和共享服务,通常用于 OpenStack 部署。此架构类型使用云备份应用程序,其中传入的数据到云流量大于传出数据。 | |
| 大规模 Web 应用的基于硬件的负载平衡集群。此架构类型提供 SSL-offload 功能,并连接到租户网络,以减少地址消耗并水平扩展 Web 应用程序。 |
4.2. 常规架构 复制链接链接已复制到粘贴板!
如果您不确定特定技术或环境需求,您可以部署通用高可用性云。这种灵活的架构类型不强调任何单一的 OpenStack 组件,并且不限于特定环境。
这个构架类型涵盖了 80% 的潜在用例,包括:
- 简单数据库
- Web 应用程序运行时环境
- 共享应用程序开发环境
- 测试环境
- 需要横向扩展的环境而不是扩展添加
对于需要提高安全性的云域,我们不推荐使用此架构类型。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.2.1. 用例示例 复制链接链接已复制到粘贴板!
在线分类广告公司希望在私有云中运行包括 Apache Tomcat、Nginx 和 MariaDB 的 Web 应用程序。为满足策略要求,云基础架构将在公司数据中心内运行。
公司具有可预测的负载要求,但需要随着需求不断增长而扩展以应对。当前环境没有与运行开源 API 环境的公司目标保持一致的灵活性。
当前环境由以下组件组成:
- 在 120 和 140 安装的 Nginx 和 Tomcat 之间,每个都有 2 个 vCPU 和 4 GB RAM
- 一个三节点 MariaDB 和 Galera 集群,每个集群有 4 个 vCPU 和 8 GB RAM。Pacemaker 用于管理 Galera 节点。
公司运行硬件负载均衡器以及为 Web 站点提供服务的多个 Web 应用程序。环境编排使用脚本和 Puppet 的组合。网站每天都会生成大量需要存档的日志数据。
4.2.2. 关于设计 复制链接链接已复制到粘贴板!
本例中的架构包含三个控制器节点和至少 8 个 Compute 节点。它使用 OpenStack Object Storage 进行静态对象,并将 OpenStack Block Storage 用于所有其他存储需求。
为确保 OpenStack 基础架构组件高度可用,节点将 Pacemaker 附加组件用于 Red Hat Enterprise Linux 和 HAProxy。
架构包括以下组件:
- 防火墙、交换机和硬件负载均衡器,用于面向公共的网络连接。
- 运行镜像、身份和网络的 OpenStack 控制器服务,以及 MariaDB 和 RabbitMQ 的支持服务。这些服务至少为三个控制器节点上的高可用性配置。
- 使用 Red Hat Enterprise Linux 的 Pacemaker 附加组件为高可用性配置云节点。
- Compute 节点将 OpenStack Block Storage 用于需要持久性存储的实例。
- 用于提供静态对象的 OpenStack 对象存储,如镜像。
4.2.3. 架构组件 复制链接链接已复制到粘贴板!
| 组件 | 描述 |
|---|---|
| 块存储 | 实例的持久性存储。 |
| 计算控制器服务 | 在控制器上运行的计算管理和调度服务。 |
| Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
| 身份 | 用户和租户的基本身份验证和授权。 |
| Image | 存储用于引导实例和管理快照的镜像。 |
| MariaDB | 所有 OpenStack 组件的数据库。MariaDB 服务器实例将数据存储在共享存储中,如 NetApp 或 Solidfire。如果 MariaDB 实例失败,则必须重新连接到另一个实例并重新加入 Galera 集群。 |
| 网络 | 使用插件和网络 API 控制硬件负载均衡器。如果增加 OpenStack 对象存储,您必须考虑网络带宽要求。建议您在具有 10 GbE 或更高版本的网络连接上运行 OpenStack Object Storage。 |
| 对象存储 | 来自 Web 应用程序服务器的流程和存档日志。您还可以使用对象存储从 OpenStack Object Storage 容器移动静态 Web 内容,或者备份由 OpenStack Image 管理的镜像。 |
| Telemetry | 监控和报告其他 OpenStack 服务。 |
4.2.4. Compute 节点要求 复制链接链接已复制到粘贴板!
Compute 服务安装在每个 Compute 节点上。
这种通用架构可以最多运行 140 个 Web 实例,而少量 MariaDB 实例需要 292 个 vCPU 和 584 GB RAM。在具有超线程双插槽十六进制 Intel CPU 的典型 1U 服务器上,假设 2:1 CPU over-commit 比例,此架构需要 8 个 Compute 节点。
Web 应用实例从每个 Compute 节点上的本地存储运行。Web 应用实例是无状态的,因此当其中一个实例出现故障时,应用可以继续运行。
4.2.5. 存储要求 复制链接链接已复制到粘贴板!
对于存储,请使用扩展的解决方案,并包含服务器中直接附加的存储。例如,您可以在计算主机上填充存储,其方式类似于网格计算解决方案,或在专门提供块存储的专用主机上填充存储。
如果您在计算主机中部署存储,请确保硬件可以处理存储和计算服务。
4.3. 计算使用架构 复制链接链接已复制到粘贴板!
此单元版本 作为技术预览提供,因此不受红帽完全支持。它们只应用于测试,不应在生产环境中部署。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
计算为中心的云支持 CPU 密集型工作负载,如数据计算或加密和解密、RAM 密集型工作负载,如内存缓存或数据库服务器等。这种架构类型通常不是存储密集型或网络密集型,它会为客户提供需要计算资源的强大功能。
以计算为计算的工作负载包括以下用例:
- 高性能计算(HPC)
- 使用 Hadoop 或其他分布式数据存储进行大数据分析
- 持续集成或持续部署(CI/CD)
- 平台即服务(PaaS)
- 网络功能虚拟化(NFV)的信号处理.
以计算为中心的 OpenStack 云通常不使用原始块存储服务,因为云通常不托管需要持久块存储的应用。基础架构组件不共享,因此工作负载可以根据需要消耗尽可能多的可用资源。基础架构组件还需要具有高可用性。此设计使用负载均衡器。您还可以使用 HAProxy。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.3.1. 用例示例 复制链接链接已复制到粘贴板!
组织为研究项目提供 HPC,需要将第三个计算中心添加到欧洲的两个现有计算中心。
下表列出了要添加的每个计算中心的要求:
| 数据中心 | 大约容量 |
|---|---|
| Geneva, Switzerland |
|
| Budapest, Hungary |
|
4.3.2. 关于设计 复制链接链接已复制到粘贴板!
此架构使用单元格来隔离计算资源,并在不同数据中心之间透明扩展。这个决定会影响对安全组和实时迁移的支持。此外,它需要跨单元手动复制一些配置元素,如类别。但是,单元在向用户公开一个公共 API 端点时提供所需的扩展。
云对两个原始数据中心使用一个计算单元,每当您添加新数据中心时,都将创建新的计算单元。每个单元都包含三个可用区,用于进一步隔离计算资源,以及至少三个为具有镜像队列以实现高可用性的集群配置的 RabbitMQ 消息代理。
位于 HAProxy 负载均衡器后面的 API 单元位于 Switzerland 的数据中心。API 单元使用单元调度程序的自定义变体将 API 调用定向到计算单元。自定义允许某些工作负载路由到特定数据中心,或基于单元 RAM 可用性的所有数据中心。
您还可以使用过滤器来自定义处理单元格中放置的计算调度程序。例如,ImagePropertiesFilter 根据客户机运行的操作系统(如 Linux 或 Windows)提供特殊处理。
中央数据库团队使用 NetApp 存储后端在主动/被动配置中管理每个单元格的 SQL 数据库服务器。备份每 6 小时运行一次。
4.3.3. 架构组件 复制链接链接已复制到粘贴板!
| 组件 | 描述 |
|---|---|
| Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
| 仪表板服务 | 用于 OpenStack 管理的 GUI. |
| Identity Service | 基本身份验证和授权功能。 |
| 镜像服务 | 在 API 单元中运行,并维护一组小型 Linux 镜像,以便编配工具可以放置应用程序。 |
| 网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
| 监控 | 遥测服务执行 metering,以使用分片复制的 MongoDB 后端调整项目配额。要分散 API 负载,您必须在 Telemetry 可以查询的子单元中部署 openstack-nova-api 服务的实例。此部署还需要在子单元中配置支持服务,如身份和镜像。要捕获的特定关键指标包括镜像磁盘利用率和计算 API 响应时间。 |
| 编配服务 | 自动部署和测试新实例。 |
| Telemetry 服务 | 支持编排自动扩展功能。 |
| 对象存储 | 存储具有 3 PB Ceph 集群的对象。 |
4.3.4. 设计注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 和计算节点设计注意事项 中描述的基本设计注意事项外,还需要考虑以下项目用于计算密集型架构。
- 工作负载
短期的工作负载可以包含持续集成和持续部署(CI-CD)作业,该作业同时创建大量计算实例来执行一组计算密集型任务。然后,环境会在终止实例前将结果或工件从每个实例复制到长期存储。
长期工作负载,如 Hadoop 集群或 HPC 集群,通常会接收大型数据集,在这些数据集上执行计算工作,然后将结果推送到长期存储。计算工作结束时,实例将闲置,直到它们收到另一个作业。对于长期工作负载的环境通常更大且更为复杂,但您可以通过保持在作业间活跃而降低构建这些环境的成本。
以计算为计算的 OpenStack 云中的工作负载通常需要持久块存储,除了使用HDFS 的 Hadoop 之外。共享文件系统或对象存储维护初始数据集,并充当保存计算结果的目的地。通过避免 input-output (IO)开销,您可以显著提高工作负载性能。根据数据集的大小,您可能需要扩展对象存储或共享文件系统。
- 扩展规划
云用户期望在需要时即时访问新的资源。因此,您必须计划典型使用,并需要满足资源需求突然的激增。如果您计划太保守,您可能会遇到对云的意外订阅的情况。如果您非常积极地计划,您可能会遇到云不必要的操作和维护成本的意外利用。
扩展规划的主要因素是分析云使用情况的趋势。衡量您提供服务的一致性,而不是云的平均速度或容量。这些信息可帮助您对容量性能建模,并确定云的当前和未来容量。
有关监控软件的详情,请参考 第 3.9 节 “其他软件”。
- CPU 和 RAM
现在,典型的服务器产品包括最多 12 个内核的 CPU。另外,一些 Intel CPU 支持 Hyper-Threading Technology (HTT),这会加倍内核容量。因此,一个支持多个 CPU 的服务器带有 HTT 乘以可用内核数。HTT 是一个 Intel 专有同时多线程实施,用于改进 Intel CPU 上的并行化。考虑启用 HTT 来提高多线程应用程序的性能。
在 CPU 上启用 HTT 的决定取决于用例。例如,禁用 HTT 可以帮助编写计算环境。使用或不使用 HTT 运行本地工作负载的性能测试可帮助确定哪个选项更适合特定情况。
- 容量规划
您可以使用以下策略为计算环境添加容量:
通过向云添加额外的容量来水平扩展。您应该在额外节点中使用相同的或类似的 CPU,以减少破坏所有实时迁移功能的机会。横向扩展虚拟机监控程序主机也会影响网络和其他数据中心资源。当您访问机架容量或需要额外网络交换机时,请考虑此增加。
注意请注意,将节点放在适当的可用区和主机聚合中所需的额外工作。
- 通过增加内部计算主机组件的容量来扩展,以支持使用量增加。例如,您可以将 CPU 替换为更多内核,或者增加服务器的 RAM。
通过调整 over-commit 比率,评估您的平均工作负载,并尽可能增加计算环境中运行的实例数量。
重要不要在以计算的 OpenStack 设计架构中增加 CPU 超提交率。更改 CPU over-commit 比率可能会导致与其他需要 CPU 资源的其他节点冲突。
- Compute Hardware
以计算为中心的 OpenStack 云对处理器和内存资源非常要求。因此,您应该对可提供更多 CPU 插槽、更多 CPU 内核和更多 RAM 的服务器硬件优先排序。
网络连接和存储容量对这个架构而言并不重要。硬件必须提供足够的网络连接和存储容量来满足最低用户要求,但存储和网络组件主要将数据集加载到计算集群,且不需要一致的性能。
- 存储硬件
您可以使用具有开源软件的商业硬件构建存储阵列,但可能需要专门的专业知识来部署它。您还可以使用带有服务器中直接附加的存储的横向扩展存储解决方案,但您必须确保服务器硬件支持存储解决方案。
在设计存储硬件时请考虑以下因素:
- 可用性。如果实例必须在主机之间高度可用或能够迁移,请将共享存储文件系统用于临时实例数据,以确保计算服务在节点出现故障时可以运行不间断。
- 延迟使用固态驱动器(SSD)磁盘来最大程度减少实例存储延迟,减少 CPU 延迟并提高性能。考虑在计算主机中使用 RAID 控制器卡来提高底层磁盘子系统的性能。
- 性能。虽然以计算为计算的云通常需要主数据 I/O 和存储,但存储性能仍是要考虑的重要因素。您可以通过观察存储 I/O 请求的延迟来测量存储硬件性能。在某些计算密集型工作负载中,尽量减少从存储获取数据时 CPU 体验的延迟可能会显著提高应用程序的整体性能。
- 可扩展性.决定存储解决方案的最大容量。例如,扩展至 50 PB 的解决方案比只扩展至 10PB 的解决方案更可扩展。此指标与以下指标相关,但与可扩展性不同,这是随着不断扩展的解决方案性能的测量。
- 连接性.连接必须满足存储解决方案要求。如果您选择了集中存储阵列,请确定如何将虚拟机监控程序连接到存储阵列。连接可能会影响延迟和性能。因此,请确保网络特征最小化延迟,以提高环境的整体性能。
- 网络硬件
除了 第 2 章 Network In-Depth 中描述的基本网络注意事项外,请考虑以下因素:
- 所需的端口计数会影响网络设计需要的物理空间。例如,为 1U 服务器中的每个端口提供 48 个端口有 10 GbE 容量的交换机,其端口密度高于交换机,为 2U 服务器中的每个端口提供有 10 GbE 容量的 24 个端口。更高的端口密度可为计算或存储组件提供更多机架空间。您还必须考虑故障域和电源密度。虽然更为昂贵,但您也可以考虑更高的密度交换机,因为您不应设计网络超出功能要求。
- 您应该使用可扩展的网络模型设计网络架构,这有助于添加容量和带宽,如 leaf-spline 模型。在这种网络设计中,您可以添加额外的带宽并扩展到额外的 gear 机架。
- 选择支持所需端口数、端口速度和端口密度的网络硬件非常重要,而且在工作负载需求增加时也允许未来增长。还需要评估网络架构中提供冗余的重要位置。提高网络可用性和冗余成本可能会昂贵,因此您应该将额外成本与冗余网络交换机和绑定接口的好处进行比较。
4.4. 存储使用架构 复制链接链接已复制到粘贴板!
4.4.1. 存储使用架构类型 复制链接链接已复制到粘贴板!
云存储模型将数据存储在物理存储设备上的逻辑池中。这种架构通常被称为集成存储云。
云存储通常是指托管的对象存储服务。但是,术语也可以包括作为服务可用的其他类型的数据存储。OpenStack 提供 Block Storage (cinder)和 Object Storage (swift)。云存储通常在虚拟基础架构上运行,类似于接口可访问性、弹性、可扩展性、多租户和量表资源方面的更广泛的云计算。
您可以在内部或内部使用云存储服务。云存储对冗余和数据分布具有高度容错性,具有版本控制副本,可以执行一致的数据复制。
云存储应用程序示例包括:
- 活跃的归档、备份和分层存储管理
- 常规内容存储和同步,如私有 DropBox 服务
- 带有并行文件系统的数据分析
- 用于社交媒体后端存储等服务的非结构化数据存储
- 持久性块存储
- 操作系统和应用程序镜像存储
- 介质流
- 数据库
- 内容发布
- 云存储对等
有关 OpenStack 存储服务的更多信息,请参阅 第 1.2.2 节 “OpenStack Object Storage (swift)” 和 第 1.2.1 节 “OpenStack Block Storage (cinder)”。
4.4.2. 数据分析架构 复制链接链接已复制到粘贴板!
对大型数据集的分析高度依赖于存储系统的性能。并行文件系统可以提供高性能数据处理,并推荐用于大规模以性能为导向的系统。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.4.2.1. 关于设计 复制链接链接已复制到粘贴板!
OpenStack Data Processing (sahara)与 Hadoop 集成,以管理云内的 Hadoop 集群。下图显示了具有高性能要求的 OpenStack 存储。
硬件要求和配置与 第 4.4.3 节 “高性能数据库架构” 中描述的高性能架构类似。在本例中,架构使用 Ceph Swift 兼容的 REST 接口来连接缓存池,并启用可用池的加速。
4.4.2.2. 架构组件 复制链接链接已复制到粘贴板!
| 组件 | 描述 |
|---|---|
| Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
| Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
| 身份 | 基本身份验证和授权功能。 |
| Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
| 网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
| Telemetry | 监控和报告其他 OpenStack 服务。使用此服务监控实例使用情况并调整项目配额。 |
| 对象存储 | 使用 Hadoop 后端存储数据。 |
| 块存储 | 通过 Hadoop 后端存储卷。 |
| 编配 | 管理实例和块存储卷的模板。使用此服务启动额外的实例,以进行存储密集型处理,使用 Telemetry 进行自动扩展。 |
4.4.2.3. 云要求 复制链接链接已复制到粘贴板!
| 要求 | 描述 |
|---|---|
| 性能 | 要提高性能,您可以选择特殊的解决方案来缓存磁盘活动。 |
| 安全性 | 您必须保护传输和静态数据中的数据。 |
| 存储相似性 | 为了提供高性能或大量存储空间,您可能需要将存储附加到每个虚拟机监控程序或从中央存储设备提供服务。 |
4.4.2.4. 设计注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.4.4 节 “存储使用架构注意事项” 中描述的注意事项。
4.4.3. 高性能数据库架构 复制链接链接已复制到粘贴板!
数据库架构从高性能存储后端中受益。虽然企业存储不是必需的,但许多环境包括 OpenStack 云可以用作后端的存储。
您可以创建一个存储池来为实例和对象接口为块设备提供 OpenStack Block Storage。在这种架构中,数据库 I/O 要求很高,需要来自快速 SSD 池的存储。
4.4.3.1. 关于设计 复制链接链接已复制到粘贴板!
存储系统使用支持传统存储阵列中的一组 SSD 的 LUN,并使用 OpenStack Block Storage 集成或 Ceph 等存储平台。
这个系统可以提供额外的性能功能。在数据库示例中,部分 SSD 池可以充当数据库服务器的块设备。在高性能分析示例中,内联 SSD 缓存层可加快 REST 接口。
在本例中,Ceph 提供 Swift 兼容的 REST 接口,以及分布式存储群集中的块存储。它高度灵活,通过自我修复和自动平衡等功能降低了操作成本。建议纠删代码池最大化可用空间量。
纠删代码池需要特殊考虑,如计算要求和对象上允许哪些操作的限制。纠删代码池不支持部分写入。
4.4.3.2. 架构组件 复制链接链接已复制到粘贴板!
| 组件 | 描述 |
|---|---|
| Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
| Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
| 身份 | 基本身份验证和授权功能。 |
| Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
| 网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
| Telemetry | 监控和报告其他 OpenStack 服务。使用此服务监控实例使用情况并调整项目配额。 |
| 监控 | 使用 Telemetry 服务执行 metering,用于调整项目配额。 |
| 对象存储 | 使用 Ceph 后端存储数据。 |
| 块存储 | 使用 Ceph 后端存储卷。 |
| 编配 | 管理实例和块存储卷的模板。使用此服务启动额外的实例,以进行存储密集型处理,使用 Telemetry 进行自动扩展。 |
4.4.3.3. 硬件要求 复制链接链接已复制到粘贴板!
您可以使用 SSD 缓存层将块设备直接链接到虚拟机监控程序或实例。REST 接口也可以使用 SSD 缓存系统作为内联缓存。
| 组件 | 要求 | 网络 |
|---|---|---|
| 10 GbE 可横向扩展的 spine-leaf backend storage 和前端网络 | 存储硬件 | 适用于缓存层 24x1 TB SSD 的 5 个存储服务器 每个服务器有 12x4 TB 磁盘的 10 个存储服务器,它等于在 3 个副本后有大约 160 TB 的可用空间 |
4.4.3.4. 设计注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.4.4 节 “存储使用架构注意事项” 中描述的注意事项。
4.4.4. 存储使用架构注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 和存储节点设计 第 3.3 节 “存储资源” 中描述的基本设计注意事项外,还应该考虑以下项目用于存储密集型架构。
- 连接性
- 确保连接与存储解决方案要求匹配。如果您选择了集中存储阵列,请确定如何将虚拟机监控程序连接到阵列。连接可能会影响延迟和性能。确认网络特征最小化延迟,以提高设计的整体性能。
- 密度
- 实例密度。在以存储为中心的架构中,实例密度和 CPU/RAM 超额订阅较低。您需要更多的主机来支持预期的规模,特别是在设计使用双插槽硬件设计时。
- 主机密度。您可以使用四插槽平台处理更高的主机数。这个平台减少了主机密度并增加机架数量。此配置会影响电源连接的数量,也会影响网络和冷却要求。
- 电源和冷却.电源和冷却密度要求可能会降低 2U、3U 或 4U 服务器,而刀片服务器、上机或 1U 服务器设计可能会降低。建议对具有较旧的基础架构的数据中心进行此配置。
- 灵活性
- 组织需要具有在外部和内部云存储选项之间进行选择的灵活性。例如,操作、灾难恢复、安全性和记录保留法律、法规和策略的连续性可能会影响存储提供商的经济性。
- latency
- 固态驱动器(SSD)可以最小化实例存储的延迟,并减少存储延迟可能会导致的 CPU 延迟。评估计算主机上使用 RAID 控制器卡,以提高底层磁盘子系统的性能。
- 监控和警报
监控和警报服务在云环境中对存储资源具有高要求的关键。这些服务提供存储系统健康和性能的实时视图。视觉化 SNMP 数据的其他仪表板的集成的管理控制台或其他仪表板有助于发现和解决存储集群的问题。
以存储为导向的云设计应包括:
- 监视物理硬件和环境资源,如温度和高效率。
- 监控存储资源,如可用存储、内存和 CPU。
- 监控高级存储性能数据,以确保存储系统按预期运行。
- 监控网络资源,以获取影响存储访问的服务中断。
- 集中日志收集和日志分析功能。
- 票务系统或与票据系统集成以跟踪问题。
- 负责团队或自动化系统的警报和通知,这些系统在出现存储时可以解决问题。
- 网络运营中心(NOC)员工,始终可用于解决问题。
- 扩展
- 以存储为导向型 OpenStack 架构应专注于扩展而不是横向扩展。您应该根据成本、电源、冷却、物理机架和自治区空间、支持保证和易管理性等因素来确定更大的主机还是更多的较小主机。
4.5. 网络使用的架构 复制链接链接已复制到粘贴板!
4.5.1. 网络使用架构类型 复制链接链接已复制到粘贴板!
由于基于服务的性质,所有 OpenStack 部署都依赖于网络通信才能正常工作。然而,在某些情况下,网络配置更为重要,需要其他设计注意事项。
下表描述了常见以网络为中心的架构。这些架构依赖于可靠的网络基础架构,以及满足用户和应用程序要求的服务。
| 架构 | 描述 |
|---|---|
| 大数据 | 用于管理和收集大数据的云可带来大量对网络资源的需求。大数据通常使用部分数据副本来维护大型分布式云的完整性。需要大量网络资源的大数据应用包括 Hadoop、Cassandra、NuoDB、Riak 或其他 NoSQL 和分布式数据库。 |
| 内容交付网络(CDN) | CDN 可用于流视频、查看摄影、主机网络会议,或者由大量最终用户访问任何分布式基于云的数据存储库。网络配置会影响实例的延迟、带宽和分发。影响内容交付和性能的其他因素包括:后端系统、资源位置、WAN 架构和缓存方法的网络吞吐量。 |
| 高可用性(HA) | HA 环境取决于在站点间复制数据的网络大小。如果一个站点不可用,额外的站点就可以为负载提供服务,直到原始站点返回服务为止。调整网络容量以处理额外负载非常重要。 |
| 高性能计算(HPC) | HPC 环境需要额外考虑流量流和使用模式以满足云集群的需求。HPC 在网络中具有用于分布式计算的东西流量模式,但也可以具有大量南北流量,具体取决于应用。 |
| 高速或高容量事务系统 | 这些应用程序类型对网络 jitter 和 latency 敏感。示例环境包括金融系统、信用卡交易应用程序和交易系统。这些架构必须平衡高的东西流量与南北流量,以最大化数据交付效率。其中许多系统都必须访问大型的高性能数据库后端。 |
| 网络管理功能 | 支持提供后端网络服务的环境,如 DNS、NTP 或 SNMP。您可以将这些服务用于内部网络管理。 |
| 网络服务产品 | 运行面向客户的网络工具的环境来支持服务。示例包括 VPN、MPLS 专用网络和 GRE 隧道。 |
| 虚拟桌面基础架构(dual) | dnssec 系统对网络拥塞、延迟和 jitter 非常敏感。AssumeRole 需要上游和下游流量,且不能依赖缓存将应用传送到最终用户。 |
| IP 的语音(VoIP) | VoIP 系统对网络拥塞、延迟和 jitter 非常敏感。VoIP 系统具有对称流量模式,并且需要网络服务质量(QoS)才能获得最佳性能。此外,您还可以实施活动队列管理,以提供语音和多媒体内容。用户对延迟和判断非常敏感,并可以在非常低的级别上检测它们。 |
| 视频或网络会议 | 限制系统对于网络拥塞、延迟和判断性非常敏感。视频会议系统具有对称流量模式,但如果网络没有托管在 MPLS 专用网络上,则系统无法使用网络服务质量(QoS)来提高性能。与 VoIP 类似,这些系统的用户也发现网络性能问题,甚至较低级别。 |
| Web 门户或服务 | Web 服务器是云服务中的常见应用程序,需要了解网络要求。网络必须扩展以满足用户需求,并提供最小延迟的网页。根据门户架构的详细信息,您应该在规划架构时考虑内部 east-west 和 north-south 网络带宽。 |
4.5.2. 云存储和备份架构 复制链接链接已复制到粘贴板!
这种架构适用于提供文件存储和文件共享的云。您可以考虑以存储为中心的用例,但网络端要求使其成为以网络为中心的用例。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.5.2.1. 关于设计 复制链接链接已复制到粘贴板!
以下 cloud-backup 应用程序工作负载具有两个影响网络的具体行为。
由于此工作负载包含面向外部的服务和内部复制应用,因此需要南北和东西流量注意事项。
- 南北流量
南北流量由云内和移出的数据组成。当用户上传并存储内容时,该内容会将南向移到 OpenStack 环境中。当用户下载内容时,该内容会从 OpenStack 环境中移动北向。
由于此服务主要作为备份服务运行,因此大多数流量都会将南向移到环境中。在这种情况下,您应该将网络配置为非对称下游,因为进入 OpenStack 环境的流量大于离开环境的流量。
- east-west 流量
- 东西流量由环境中移动的数据组成。此流量可能是完全对称的,因为复制源自任何节点,并且可能会以算法为多个节点算法目标。但是,此流量可能会影响南北流量。
4.5.2.2. 架构组件 复制链接链接已复制到粘贴板!
| 组件 | 描述 |
|---|---|
| Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
| Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
| 身份 | 基本身份验证和授权功能。 |
| Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
| 网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
| 对象存储 | 存储备份内容。 |
| Telemetry | 监控和报告其他 OpenStack 服务。 |
4.5.2.3. 设计注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.5.4 节 “网络使用的架构注意事项” 中描述的注意事项。
4.5.3. 大规模 Web 应用程序架构 复制链接链接已复制到粘贴板!
此架构适用于大规模 Web 应用,可横向扩展并产生高实例数。应用程序需要 SSL 连接安全数据,且不得丢失到各个服务器的连接。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.5.3.1. 关于设计 复制链接链接已复制到粘贴板!
下图显示了此工作负载的示例设计。
此设计包括以下组件和工作流:
- 硬件负载均衡器提供 SSL 卸载功能,并连接到租户网络,以减少地址消耗。
- 负载均衡器链接到路由架构,而它为应用程序提供虚拟 IP (VIP)。
- 路由器和负载平衡器使用应用租户网络的 GRE 隧道 ID,以及一个位于租户子网但位于地址池外部的 IP 地址。此配置可确保负载均衡器可以在不消耗公共 IP 地址的情况下与应用程序 HTTP 服务器通信。
4.5.3.2. 架构组件 复制链接链接已复制到粘贴板!
Web 服务架构可以包含多个选项和可选组件。因此,这种架构可用于多个 OpenStack 设计。但是,必须部署一些关键组件来处理大多数 Web 扩展工作负载。
| 组件 | 描述 |
|---|---|
| Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
| Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
| 身份 | 基本身份验证和授权功能。 |
| Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
| 网络 | 网络服务。分割网络配置与位于私有租户网络上的数据库兼容,因为数据库不会发出大量广播流量,并可能需要连接到其他数据库以进行内容。 |
| 编配 | 管理实例模板,以便在横向扩展和流量突发期间使用。 |
| Telemetry | 监控和报告其他 OpenStack 服务。使用此服务监控实例使用情况,并从编排服务调用实例模板。 |
| 对象存储 | 存储备份内容。 |
4.5.3.3. 设计注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.5.4 节 “网络使用的架构注意事项” 中描述的注意事项。
4.5.4. 网络使用的架构注意事项 复制链接链接已复制到粘贴板!
除了 第 3 章 设计 中描述的基本设计注意事项以及 第 2 章 Network In-Depth 中描述的网络节点设计外,还应该考虑以下项目用于网络密集型架构。
- 外部依赖项
考虑使用以下外部网络组件:
- 硬件负载均衡器来分发工作负载或卸载某些功能
- 用于实现动态路由的外部设备
虽然 OpenStack 网络提供隧道功能,但它仅限于网络管理的区域。要将隧道扩展到 OpenStack 区域之外的其他区域或外部系统,请在 OpenStack 外部实施隧道,或者使用隧道管理系统将隧道或覆盖映射到外部隧道。
- 最大传输单元(MTU)
有些工作负载需要更大的 MTU,因为传输大量数据。为视频流或存储复制等应用提供网络服务时,请尽可能为巨型帧配置 OpenStack 硬件节点和支持网络设备。此配置可最大化可用带宽使用量。
在数据包遍历的整个路径中配置巨型帧。如果一个网络组件无法处理巨型帧,则整个路径都会恢复到默认的 MTU。
- NAT 用法
如果需要浮动 IP 而不是固定的公共 IP,则必须使用 NAT。例如,使用映射到 DHCP 服务器 IP 的 DHCP 转发。在这种情况下,可以更轻松地自动化基础架构将目标 IP 应用到新实例,而不是为每个新实例重新配置传统或外部系统。
由 OpenStack 网络管理的浮动 IP 的 NAT 驻留在虚拟机监控程序中。但是,其它版本的 NAT 可能在其它地方运行。如果 IPv4 地址不足,您可以使用以下方法缓解 OpenStack 之外的短缺:
- 在 OpenStack 中作为实例或作为服务外部运行负载均衡器。OpenStack 负载均衡即服务(LBaaS)可以在内部管理负载平衡软件,如 HAproxy。此服务管理虚拟 IP (VIP)地址,而来自 HAproxy 实例的双homed 连接将公共网络与托管所有内容服务器的租户专用网络连接。
- 使用负载均衡器来提供 VIP,并使用外部方法或专用地址连接到租户覆盖网络。
在某些情况下,可能只需要在实例上只使用 IPv6 地址,并运行一个实例或外部服务,以提供基于 NAT 的转换技术,如 NAT64 和 DNS64。此配置提供全局路由的 IPv6 地址,但仅在需要时消耗 IPv4 地址。
- 服务质量(QoS)
QoS 会影响网络密集型工作负载,因为它为具有高优先级的数据包提供即时服务,因为网络性能不佳。在 IP (VoIP)等应用程序中,需要区分的服务代码点才能继续操作。
您还可以将 QoS 用于混合工作负载,以防止低优先级、高带宽应用程序,如备份服务、视频会议或文件共享,阻止其他工作负载的持续操作所需的带宽。
您可以将 file-storage 流量标记为较低类流量,如最佳工作或 scavenger,以允许优先级更高的流量通过网络移动。如果云中的区域分布在地理上分布,您还可以使用 WAN 优化来减少延迟或数据包丢失。
- 工作负载
路由和切换架构应该适应需要网络级别冗余的工作加载。配置取决于您的所选网络硬件、所选硬件性能和您的网络模型。示例包括链路聚合(LAG)和 Hot Standby 路由器协议(HSRP)。
工作负载也会影响覆盖网络的有效性。如果应用程序网络连接很小、短存或突发,运行动态覆盖可以比网络传输的数据包产生尽可能多的带宽。覆盖也可以降低足够的延迟,以导致 hypervisor 出现问题,这会导致数据包每秒和每秒连接每秒的性能下降。
默认情况下,覆盖包括依赖于工作负载的辅助 full-mesh 选项。例如,大多数 web 服务应用程序没有与 full-mesh 覆盖网络的主要问题,一些网络监控工具或存储复制工作负载在吞吐量或过度广播流量存在性能问题。
第 5 章 部署信息 复制链接链接已复制到粘贴板!
下表包含本指南中提到的组件部署引用。
有关 Red Hat OpenStack Platform 的额外手册,请访问 :https://access.redhat.com/documentation/zh-CN/Red_Hat_OpenStack_Platform/
| 组件 | 参考 |
|---|---|
| Red Hat Enterprise Linux | Red Hat OpenStack Platform 在 Red Hat Enterprise Linux 7.2 或更高版本上被支持。有关安装 Red Hat Enterprise Linux 的详情,请参考相应的安装指南 :https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/。 |
| OpenStack | 要安装 OpenStack 组件及其依赖项,请使用 Red Hat OpenStack Platform director。director 使用基本的 OpenStack undercloud,然后用于在最终 overcloud 中调配和管理 OpenStack 节点。 请注意,除了部署 overcloud 的必要环境外,您还需要一台额外的主机机器来安装 undercloud。具体步骤请查看 Red Hat OpenStack Platform Director 安装和使用。 |
| 高可用性 | 有关其他高可用性组件的配置(如 HAProxy),请参阅使用 Ceph Storage 部署高可用性 Red Hat OpenStack Platform 6。 有关配置实时迁移的详情,请参考 管理实例和镜像。 |
| LBasS | 要使用负载平衡即服务,请参阅网络指南中的"配置负载平衡即服务"。 |
| pacemaker | Pacemaker 作为附加组件集成到 Red Hat Enterprise Linux 中。要设置 Red Hat Enterprise Linux 以实现高可用性,请参阅 高可用性附加组件概述。 |








