CloudStack 是一款由美籍华人梁胜(Sheng Liang)创立的 Java 语言编写的基础设施即服务(IaaS)解决方案,最初是云计算平台 Cloud.com 的核心产品。2011年,Citrix 公司收购了 Cloud.com,随后在2012年4月,CloudStack 转向开放源代码社区,被捐赠给了Apache软件基金会(ASF),自此遵循Apache License v2协议,成为100%开源项目,支持企业和个人构建私有云和公有云环境。
CloudStack 的架构设计旨在简化交付流程,具备在线支付和即时开通的能力,强调资源类型的高度标准化和用户间的安全隔离。尽管它在服务响应速度上可能较低,SLA级别较低,但其灵活性体现在可以适应企业内部使用,尤其是在局域网内的场景,提供了对“虚拟机蔓延”的有效控制。另一方面,针对企业的成本核算,CloudStack 提供了灵活的计费模式,适合各种规模的企业需求。
其架构主要由以下几个组件构成:
1. 主机(Hosts):部署虚拟化管理程序的物理服务器,是实现虚拟化的基础。
2. 主存储(Primary Storage):存放虚拟机的数据,通常是高性能、直接连接到主机的存储设备。
3. 群集(Cluster):一组主机及其共享的主存储,用于提高可用性和性能。
4. 机架(Pod):一组Cluster的集合,常常配置一个2层交换机设备,用于物理隔离和故障切换。
5. 网络(Network):为虚拟机提供网络连接,确保通信和资源共享。
6. 二级存储(Secondary Storage):存放虚拟机模板、快照和ISO文件等非实时数据。
资源域(Zone)是架构的核心组成部分,由一组Pod和相关的二级存储构成,是地理区域级别的划分,以实现高可用性和容灾。一个Zone可能由一个或多个Pod组成,每个Pod通常配置在一个地理位置,且Zone之间通过互联网或专用的VPNS进行访问。
管理服务器(Management Server)是整个架构的控制中心,负责统一管理Zone内的所有资源,包括Host、Cluster和Pod等。管理服务器支持多节点部署,以提高系统稳定性和可用性,同时为了处理大规模资源,单台MgmtServer最大可管理约5000台Host。为了保证性能和冗余,MgmtServer既可以作为物理机部署,也可以选择虚拟化形式,同时注意保持其状态无保留,以减少单点故障风险。
CloudStack 的技术架构设计注重效率、灵活性和安全性,是企业构建定制化云环境的理想选择,尤其适用于那些寻求内部管理和成本优化的企业。