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 节点是否需要额外的自定义,或者只是一个子集。