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 覆盖网络的主要问题,一些网络监控工具或存储复制工作负载在吞吐量或过度广播流量存在性能问题。