部署Apache CloudStack时所采用的架构会因项目规模与实际用途而产生显著差异。本文将介绍从适用于测试和试用的小规模部署,到面向生产环境的完全冗余的大规模架构,并探讨多节点、多站点等高级部署模式。
小规模部署

图1:CloudStack小型部署网络拓扑图
一个小规模的CloudStack测试或试用部署,其网络架构通常包含以下组件:
- 防火墙:提供互联网连接,并配置为NAT模式。防火墙负责将来自互联网的HTTP请求和API调用转发至位于管理网络中的管理服务器。
- 二层交换机:连接所有物理服务器和存储设备。
- NFS服务器:通常由单台服务器同时承担主存储和辅助存储的角色。
- 管理服务器:连接在管理网络中,负责整个云平台的控制与管理。
大规模冗余设置

图2:大规模冗余部署架构图(含独立存储网络)
生产环境中的大规模CloudStack部署追求高可用与高性能,其架构更为复杂:
- 核心网络层:数据中心核心通常采用具备冗余功能的三层交换机,并启用VRRP等路由器冗余协议。高端核心交换机常集成防火墙模块,若无则需部署独立防火墙。防火墙配置为NAT模式,其主要功能包括:
- 将互联网流量转发至管理服务器。
- 当云平台跨多个区域时,启用站点到站点VPN,实现区域间服务器直连。
- 接入交换层:每个Pod(资源池)会建立二层接入交换层。通常采用堆叠或冗余交换机对来提供足够的端口和可靠性。
- 管理服务器集群:包含前端负载均衡器、多个管理服务器节点以及MySQL数据库(主备),通过负载均衡器接入管理网络。
- 辅助存储:辅助存储服务器也连接在管理网络上。
- 计算与存储节点:每个Pod包含计算服务器和存储服务器。每台服务器都应配备冗余网卡,并连接到独立的二层接入交换机。
独立存储网络
在上述大规模架构中,存储流量(尤其是iSCSI这类对延迟敏感协议)可能挤占管理网络带宽,影响性能。因此,部署独立的存储网络是一个重要选项,可以确保客户网络流量不会与存储I/O产生争用。
多节点管理服务器
CloudStack管理服务器可以部署在多个节点上,这些节点共享同一个MySQL数据库。为了提升可用性,可以使用硬件负载均衡器来分发Web和API请求。

图3:多节点管理服务器与数据库部署架构
规划时需要决策:
- 是否使用负载均衡器。
- 部署多少台管理服务器。
- 是否通过MySQL复制部署灾难恢复备份站点。
多站点部署
CloudStack通过“区域(Zone)”的概念,可以很好地扩展到多个物理站点。

图4:跨数据中心的多站点部署示例
例如,可以在数据中心1部署主管理服务器和第一个可用区,并通过MySQL复制将数据实时同步到数据中心2的备用管理服务器,从而实现跨站点的容灾。
存储网络配置方法
配置高可用的存储网络主要有两种方法:
- NFS与网卡绑定:为NFS服务器配置网卡绑定和冗余交换机,但这通常仍处于单一网络(一个CIDR块)内。
- iSCSI与多路径I/O:iSCSI可以利用两个独立的存储网络(两个CIDR块)。多路径I/O(MPIO)客户端能够在不同网络间进行故障转移和负载均衡。

图5:网卡绑定(单一网络)与多路径I/O(多网络)对比示意图
虚拟机管理程序选择
CloudStack支持多种主流的虚拟化平台。一个云可以全部由单一类型的主机组成,也可以混合使用多种管理程序,但每个主机集群必须运行相同的管理程序。
选择取决于现有基础设施或特定需求。下表对比了不同管理程序的部分功能支持情况:

图6:XenServer、vSphere、KVM等平台功能支持对比
主存储的虚拟机管理程序支持
不同管理程序对存储类型的支持各有特点,选择合适的存储后端是部署关键之一。
- XenServer:使用集群LVM管理iSCSI/FC卷,其Hypervisor本身不支持存储超配,但可通过底层存储服务器的精简配置功能实现。
- KVM:支持“共享挂载点”存储(如OCFS2集群文件系统),CloudStack不负责挂载,需管理员确保存储可用性。
- NFS存储:CloudStack直接管理超配,通过全局参数
storage.overprovisioning.factor控制。
- 本地存储:vSphere、XenServer和KVM均可将本地磁盘作为主存储选项。启用后,系统会在每台主机自动创建本地存储池。
- 多存储池:CloudStack支持在集群中添加多个主存储池(例如多个NFS服务器或多个iSCSI LUN),便于容量扩展。
希望本文梳理的CloudStack部署架构能为您规划自己的云平台提供参考。更多关于云原生与IaaS技术的深度讨论,欢迎访问云栈社区进行交流。
|