简介
CloudStack(cloudstack.apache.org)是IaaS类型云计算的一种开源解决方案,同类的解决方案有OpenStack、OpenNebula等,CloudStack是以java语言所研发并具有高可用性、可扩展性、丰富的UI功能、Hypervisor 的多样性等等..(更多请见http://www.cloudstack-china.org/2013/11/2702.html),它可以帮助用户利用自己的硬件提供类似于Amazon EC2那样的公共云服务。CloudStack可以通过组织和协调用户的虚拟化资源,构建一个和谐的环境。CloudStack具有许多强大的功能,可以 让用户构建一个安全的多租户云计算环境。CloudStack 兼容Amazon API 接口.
CloudStack可以让用户快速和方便地在现有的架构上建立自己的云服务。CloudStack可以帮助用户更好地协调服务器、存储、网络资源,从而构建一个IaaS平台。
一、我们为什么要选择cloudstack
下面的表格是cloudstack、openstack、VMwareCloud之间的简单对比
CloudStack | OpenStack | VMwarevCloud | |
风格 | 解决方案 | 框架 | 企业级产品 |
专注方向 | 兼顾传统企业应用和云 | 完全的云风格 | 只基于传统企业架构 |
主要客户列表 | 企业,互联网行业,云服务提供商 | 云服务提供商,互联网 | 企业 |
架构 | 简单的解决方案简单的部署架构 | 大量松耦合的组件进行整合 | 一个复杂的管理产品的套件大量的接口,server,databases |
扩展性 | 40,000hosts | 依赖于很多小组件的大量扩展 | 2,000hosts |
升级 | 升级简单 | 早期不支持版本升级,复杂 | 大量产品的复杂升级,花费时间多 |
总结: 以下是对三种产品简单的总结,至于使用哪个产品自己决定吧.嘿嘿
cloudstack简单的架构部署,轻松的管理上万物理服务器、美观适用的WEB UI、各版本之间兼容性很好、支持物理机及虚拟机的故障迁移、灵活的网络架构设计等功能
Openstack复杂的部署方式(虽然有些公司提供了一键部署的iso包,那对于管理员的我们不建议使用一键安装的方式.因为不了解各个组建是如何工作的且出了问题不好排查)、各版本直接兼容性不好
VMwareCloud就不用详解介绍了,它是一个企业级产品且费用昂贵,非一般企业能够使用的起的产品
二、谁在使用cloudstack
cloudstack的安装包下载量及地区
三、cloudstack发展历史
事件 | 版本 | 时间 | 备注 |
梁胜建立公司:VMOps | 2008 | Sheng Liang, Shannon Williams, Alex Huang, Will Chan,Chiradeep Vittal | |
更名为Cloud.com | 2.0 | 2010/05/04 | 开放大部分源码,协议采用GPL V3 |
Tata电信 | 2.2 | 2011/03/08 | 公有云服务提供 |
CloudStack被Citrix收购 | 2011/07 | GPL v3 | |
Citrix发布新版本 | 3.0 | 2012/02 | |
Citrix将cloudstack捐献给apache基金会进行孵化 | 3.0.x | 2012/04/16 | ASL V2 |
4.0版本发布 | 4.0.0 | 2012/11/06 | |
Cloudstack成为apache基金会的顶级项目 | 4.0.2 | 2013/03/24 | |
4.2版本发布 | 4.2.0 | 2013/10/01 | 57个新功能,29个改进功能 |
4.3版本发布 | 4.3.0 | 2014/03/26 | 全新的UI界面,支持更多的Hypervisor |
四、cloudstack实现的功能
Cloudstack是 IaaS (Infrastructure as a Service)即基础设施即服务 的开源解决方案,cloudstack支持的功能有以下不等(4.2版本有60个左右的功能)更多详见()
简单的部署方式
弹性的架构设计支持上万计算节点
支持物理机、虚拟机的故障迁移
美观的UI界面
API的支持
支持众多的Hypervisor
等等
五、Cloudstack系统架构
在cloudstack的架构里面有这样几个概念,如图所示,如下一 一介绍
Zones(资源区域)
Cloudstack里面的最大组织单位就是区域,一个区域通常包含一个或多个提供点,
在cloudstack里面区域可以理解为一个idc机房,比如某公司的服务器分别托管在北京、杭州、广州三地的IDC机房,在cloudstack里面最好的解决方案就是创建三个不同的区域即可
Pods(提供点)
提供点在cloudstack里面通常可以理解为一个机柜或者可以理解为一个网络中的一个子网,在一个提供点里的主机要在同一个子网里面,一个提供点包含有一个或多个clusters(集群)
Clusters(集群)
集群是由一个或多个host、一个或多个主存储组成,在同一个集群中必须要有相同的Hypervisor、建议有相同配置的硬件、共用一个或多个存储。在一个集群中虚拟机实例可以随心所欲的切换到同一集群内的其它host上
Host(主机)
主机就是一台安装有Hypervisor,并为cloudstack提供计算资源的一台服务器
Primary storage(主存储)
主存储也叫一级存储,它在cloudstack里面主要是提供某一个集群中所有主机上运行的虚拟机实例的磁盘卷的存储,主存储在目前只支持NFS、SharedMountPoint 、Clvm这三种类型的存储
Secondary storage(辅助存储)
辅助存储在cloudstack里面主要提供模版、快照、卷的存储,而管理这些功能的是由一个叫ssvm的系统虚拟机
SSVM(Secondary Storage VM)
SSVM在cloudstack里面主要提供管理一级存储、二级存储、模版、快照、卷等功能,在创建并启用一个区域后SSVM会自行创建,如果手动删除cloudstack也会自行创建SSVM
CPVM(Console Proxy VM)
CPVM主要提供连接控制台代理,在cloudstack的UI界面连接某个虚拟机实例的窗口就是CPVM提供的功能,控制台主要是通过vnc实现.我们在安装配置计算节点的时候需要开启qemu的vnc监听就是为CPVM提供的服务
V-Route(虚拟路由器)
在基础网络模式下虚拟路由器提供的功能有DNS、dhcp服务
在高级网络模式下虚拟路由器提供的功能有×××、DHCP、DNS、防火墙、负载均衡(HaProxy实现)、SNAT、静态NAT、端口转发、安全组、网络ACL、等功能
虚拟路由器的DHCP功能是为虚拟机实例提供动态获取IP的功能,那有的人就会问了,既然是DHCP那作为服务器的虚拟机实例的IP会不会变呢?答案是no,因为虚拟路由器会将虚拟机实例自动获取的IP及MAC等信息存如cloudstack的数据库,这个IP永远是某个实例的,除非销毁这个实例之后IP才会被其他实例所用
有的人就说了,既然是一个虚拟路由器,它的性能及稳定性肯定是顶不住大的并发请求,那这个时候我们怎么办呢,方法有二,1、用物理路由器代替虚拟路由让cloudstack管理.2、可根据自己的网络结构让虚拟机实例的网络不从V-Route走不就好了吗.
Security Group(安全组)
安全组我们可以理解为一个网络中的出口硬件防火墙,当然事实上并不是那么会事,因为安全组主要是利用计算节点的iptables实现的
Guest network(来宾网络)
来宾网络主要是虚拟机实例的走的网络,在配置区域的时候会提示输入来宾网络的预留IP段,那段IP就是给虚拟机实例所用了,在cloudstack中网络结构是一个非常好的设计,同样也是比较难以理解的一块
管理网络
管理网络主要是用于cloudstack的管理节点、SSVM、CPVM、V-Route之间的通信使用
存储网络
存储网络主要是用于cloudstack管理节点、SSVM、计算节点直接的通信使用
公共网络
公共网络在高级模式中才有的功能,公共网络我们可以理解为公网,在cloudstack里公共网络主要是在V-Route中配置使用,为虚拟机实例提供互联网到虚拟机实例之间的IP 或端口的转发,当然用不用公共网络,也要看自己的网络设计
六、Cloudstack安装部署前准备工作
上面简单的阐述了CloudStack的特性及一些概念等信息,那么在了解相关观念之后我们就要开始着手准备安装部署了,这里简单的介绍下在安装部署之前我们要考虑的一些问题点
容量规划
服务器是否托管在多地的IDC机房(多区域)
现有的架构中有多少种Hypervisor(多集群)
准备让cloudstack容纳多少虚拟机实例(多HOST,多存储)
等
网络规划
现有的基础网络架构能否支持部署cloudstack(IP地址资源,根据计划容纳的虚拟机实例量规划)
现有的基础网络架构是否支持高级网络模式(使用基础模式)
业务并发请求量是否很大(决定自己的网络模式是否使用V-Route或是否使用物理网络设备代替V-Route)
存储规划
存储空间多大(根据每个虚拟机实例预分配的磁盘空间*虚拟机实例的个数+预留空间)
存储的高可用性(硬件存储、分布式文件系统、等)
七、CloudStack安装部署
下回再说.