云架构设计:OpenStack 的性能、网络与存储优化
1. Nova Compute 服务的内存页分配优化
在 OpenStack 的 Nova Compute 服务中,内存页分配是最后一项重大性能改进点。默认情况下,64 位英特尔系统上的 Linux 操作系统以 4KB 页面分配内存。这对传统工作负载很合理,因为它与典型文件系统块大小匹配,但在虚拟机内存分配性能方面可能产生负面影响。
Linux 操作系统还支持 2MB 和 1GB 大小的内存页面,即大页面(huge pages)。OpenStack 的 Kilo 版本开始支持使用大页面来支持虚拟机实例。PCI 透传、CPU 和内存固定以及大页面支持的组合,能显著提升 OpenStack 中虚拟机实例的性能,对于网络功能虚拟化(NFV)等工作负载是必需的。
不过,这对硬件选择有一些影响。典型的 NFV 实例通常需要一个专用的非统一内存访问(NUMA)区域,因此这些实例规格通常很大,且特定于应用程序和硬件。例如,如果实例需要 16 个虚拟 CPU 和 32GB 内存,那么硬件需要有一个包含 16 个物理核心和 32GB 内存的 NUMA 区域。而且,如果该 NUMA 区域额外配置了 32GB 内存,由于实例对该区域有独占访问权,系统的其他部分将无法使用这些内存。
2. 网络设计
OpenStack 部署的网络需求因工作负载而异。OpenStack 通常会让企业首次接触软件定义网络(SDN),这使得物理和虚拟网络的设计过程变得复杂。云架构师在网络规划时应充分依靠网络架构团队的同行。
2.1 网络分段
OpenStack 源于公共云提供商领域,这