计算服务器架构概述¶
在设计计算资源池时,请考虑处理器数量、内存量、网络需求、每个 hypervisor 所需的存储量,以及通过 ironic 提供的裸机主机的任何需求。
在构建 OpenStack 云时,作为规划过程的一部分,您不仅需要确定使用哪些硬件,还需要确定计算资源是提供在单个池中,还是在多个池或可用区中。您应该考虑云是否会为计算提供明显不同的配置。
例如,基于 CPU、内存或本地存储的计算节点。对于 NFV 或 HPC 云,可能还会存在应为这些特定工作负载在特定计算节点上保留的特定网络配置。将特定资源设计到计算的分组或区域中的这种方法可以称为 bin packing(箱式打包)。
注意
在箱式打包设计中,每个独立的资源池为特定的 flavor 提供服务。由于实例被调度到计算 hypervisor 上,每个独立节点的资源将被分配以有效地利用可用硬件。虽然箱式打包可以将特定于工作负载的资源分离到单个服务器上,但箱式打包也需要通用的硬件设计,计算资源池内的所有硬件节点共享通用的处理器、内存和存储布局。这使得在整个生命周期中部署、支持和维护节点变得更容易。
增加支持计算环境的规模会增加网络流量和消息,给用于支持 OpenStack 云或网络节点的控制器和管理服务增加负载。在考虑控制器节点硬件时,无论使用单体控制器设计(所有控制器服务都位于一个或多个物理硬件节点上),还是任何较新的共享无控制平面模型,都必须分配和扩展足够的资源以满足规模需求。对环境进行有效监控将有助于容量决策和扩展。适当的规划将有助于避免瓶颈和网络过度订阅,随着云的扩展。
计算节点会自动附加到 OpenStack 云,从而在向 OpenStack 云添加额外的计算容量时实现水平扩展过程。为了进一步分组计算节点并将节点放置到适当的可用区和主机聚合中,需要额外的工作。有必要规划机架容量和网络交换机,因为扩展计算主机会直接影响数据中心基础设施资源,就像任何其他基础设施扩展一样。
虽然在大企业中并不常见,但计算主机组件也可以升级以应对需求的增加,这称为垂直扩展。升级具有更多核心的 CPU,或增加服务器的整体内存,可以根据正在运行的应用程序是更依赖 CPU 还是内存来添加额外的所需容量。我们建议对计算节点进行滚动升级,以提高冗余性和可用性。升级后,当计算节点返回 OpenStack 集群时,它们将被重新扫描,并且新的资源将被发现并调整到 OpenStack 数据库中。
在选择处理器时,比较其特性和性能特征。一些处理器包含特定于虚拟化计算主机的特性,例如硬件辅助虚拟化以及与内存分页相关的技术(也称为 EPT shadowing)。这些类型的特性会对您的虚拟机的性能产生重大影响。
处理器核心和线程的数量会影响可以在资源节点上运行的 worker 线程的数量。设计决策必须直接与在其上运行的服务相关,并为所有服务提供平衡的基础设施。
另一种选择是评估平均工作负载,并通过调整超配比率来增加可以在计算环境中运行的实例数量。此比率可配置为 CPU 和内存。默认 CPU 超配比率为 16:1,默认内存超配比率为 1.5:1。在设计阶段确定超配比率的调整非常重要,因为它直接影响计算节点的硬件布局。
注意
更改 CPU 超配比率可能会产生不利影响并可能导致“吵闹的邻居”问题。
磁盘容量不足也可能对整体性能产生负面影响,包括 CPU 和内存使用情况。根据 OpenStack 块存储层的后端架构,容量包括向企业存储系统添加磁盘货架或安装额外的块存储节点。升级直接连接到计算主机中安装的存储,并为实例添加额外的临时存储容量到共享存储,可能是必要的。
请考虑非 hypervisor 节点(也称为资源节点)的计算需求。这包括控制器、对象存储节点、块存储节点和网络服务。
应考虑为不可预测的工作负载创建池或可用区。在某些情况下,对某些实例类型或 flavor 的需求可能无法证明单独的硬件设计是合理的。分配能够服务于最常见的实例请求的硬件设计。稍后可以向整体架构添加硬件。