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. 存储要求
对于存储,请使用扩展的解决方案,并包含服务器中直接附加的存储。例如,您可以在计算主机上填充存储,其方式类似于网格计算解决方案,或在专门提供块存储的专用主机上填充存储。
如果您在计算主机中部署存储,请确保硬件可以处理存储和计算服务。