CloudStack 4.4学习总结之简介

jopen 10年前

一、CloudStack简介

1、CloudStack是一个开源的具有高可用性及扩展性的云计算平台。

 

2、其实CloudStack更像是一个商业化过后的产品,有着非常好的用户界面,各个模块默认集成的很好,且安装与部署过程也相对容易一些。

 

3、Cloudstack支持管理大部分主流的hypervisors,如KVMXenServerVMwareOracle VMXen等。

 

4CloudStack具有商业软件所拥有的完善的用户权限管理,可以让用户构建一个安全的多租户云计算环境。同时兼容Amazon AWS API 接口,可用来管理AWS的资源。

 

5、CloudStack 采用了典型的分层结构:客户端、核心引擎、以及资源层。它面向各类型的客户提供了不同的访问方式:Web Console、Command Shell 和 Web Service API。通过它们,用户可以管理使用在其底层的计算资源(又分为主机、网络和存储),完成诸如在主机上分配虚拟机,配给虚拟磁盘等功能。

 

6、系统架构图:

CloudStack 4.4学习总结之简介

虚拟机如果使用 Xen 和KVM,需要安装 CloudStack Agent 来支持其与管理服务器的交互。而管理服务器和 Xen Server 交互则是靠 XAPI,和 vCenter、ESX 交互靠 HTTP。

 

7、部署图:

 

CloudStack 4.4学习总结之简介

Zone:Zone 对应于现实中的一个数据中心,它是 CloudStack 中最大的一个单元

Pod:Pod 对应着一个机架。同一个 pod 中的机器在同一个子网(网段)中

Cluster:Cluster 是多个主机组成的一个集群。同一个 cluster 中的主机有相同的硬件,相同的 Hypervisor,和共用同样的存储。同一个 cluster 中的虚拟机,可以实现无中断服务地从一个主机迁移到另外一个上。

Host:Host 就是运行的虚拟机(VM)主机

 

即从包含关系上来说,一个 zone 包含多个 pod,一个 pod 包含多个 cluster,一个 cluster 包含多个 host。

 

CloudStack 中存在两种存储:

 

Primary storage一级存储与 cluster 关联,它为该 cluster 中的主机的全部虚拟机提供磁盘卷一个 cluster 至少有一个一级存储,且在部署时位置要临近主机以提供高性能。

 

Secondary storage二级存储与 zone 关联,它存储模板文件,ISO 镜像和磁盘卷快照

 

8、提供点(Pods):

 

一个提供点通常代表一个机架,机柜里面的主机在同一个子网,每个区域中必须包含一个或多个提供点,提供点中包含主机和主存储服务器, CloudStack 的内部管理通信配置一个预留 IP 地址范围。预留的 IP 范围对云中的每个区域来说必须唯一。

 

9、集群(Clusters):

 

Cluster 是多个主机组成的一个集群。

同一个cluster中的主机有相同的硬件,相同的 Hypervisor,和共用同样的存储。同一个 cluster 中的虚拟机,可以实现无中断服务地从一个主机迁移到另外一个上。

 

集 群由一个或多个宿主机和一个或多个主要存储服务器构成。集群的大小取决于下层虚拟机软件。大多数情况下基本无建议。当使用VMware时,每个 VMware集群都被vCenter 服务器管理。管理员必须在本产品中登记vCenter。每个zone下可以有多个vCenter服务器。每个vCenter服务器可能管理多个 VMware集群

 

10、主机(Hosts):

 

    Host 就是运行的虚拟机(VM)主机

 

宿主机就是个独立的计算机。宿主机运行来宾虚拟机并提供其相应的计算资源。每个宿主机都装有虚拟机软件来运行来宾虚拟机。比如一个开启了kvm支持的服务器,一个思杰XenServer服务器,或者一个ESXi服务器都可以作为宿主机。

 

宿 主机在CloudStack部署中属于最小的组织单元。宿主机包含于集群中,集群又属于提供点,而区域中包含提供点(就是在逻辑概念上 zone>pod>cluster>host),新增的宿主机可以随时添加以提供更多资源给来宾虚拟机,CloudStack自动探测 宿主机的cpu数量和内存资源。宿主机对终端用户不可见。终端用户不能决定他们的虚拟机被分配到哪台宿主机。

 

11、存储(Primary Storage):

 

    一级存储与 cluster 关联,它为该 cluster 中的主机的全部虚拟机提供磁盘卷。一个 cluster 至少有一个一级存储,且在部署时位置要临近主机以提供高性能。

 

CloudStack 4.4学习总结之简介

iSCSI和FC-San存储在Xenserver中被加载为Clustered LVM格式,此种格式下,不能支持存储的超配。如果存储本身支持XenServer的thin-provisioning,CloudStack也可以支持存储超配

 

在全局配置中,有storage.overprovisioning.factor 项用来配置超配的比例。默认为2,即支持超配的存储格式,可以使用的存储为该存储的N倍。

 

配置完成后,可以在UI的Dashboard中查看存储信息。Primary Storage Allocated项是超配后的所有主存储的总和,Storage项是所有主存储实际大小的总和。

 

12、辅助存储(Secondary Storage):

 

二级存储虚拟机(secondary Storage VM)简称ssvm, 作为系统虚机的一种,在cloudstack中扮演了很重要的角色,没有它很多功能都无法实现。

 

简单来说ssvm主要用来管理二级存储,也就是对二级存储相关的操作都会通过它来完成。每一个资源域可以有多个SSVM, 当SSVM被删除或停止,它会自动被重建并启动。

 

cloudstack 是通过ssh访问直接访问ssvm, 系统虚机模板中已经植入了一个ssh 的private key,此时cloudstack只需要通过自己的public key访问就可以了,端口为3922,这里xen与vmware的机制有些不同,由于默认vmware是禁止ssh登陆的,所以对于vmware来说,可 以通过cloudstack的management server直接访问ssvm的public ip.在配置完ssvm后,cloudstack会让ssvm重新生成一对public key和private key,以后就使用新的key来访问ssvm。

 

在 ssvm中有一个java进程,专门负责与cloudstack的8250端口进行通讯,而这个java进程,以及相关shell脚本都是在通过创建完 ssvm之后,由cloudstack注入进去的,如vmware,会有一个system.iso,这里面就存放着所有系统虚机需要的文件,在mount 上二级存储之后,会将这个文件拷贝到ssvm中,在ssvm解压,并将相关文件存到指定路径下。

 

13、二级存储里面具体放哪些东西?

 

二级存储与 zone 关联,它存储模板文件,ISO 镜像和磁盘卷快照。 也就是说对这些资源的管理都是通过SSVM进行的。

 

    ①、模板:可以启动虚拟机的操作系统镜像,也包括诸如已安装应用的其余配置信息。

    ②、ISO 镜像:包含操作系统数据或启动媒质的磁盘镜像。

    ③、磁盘卷快照:虚拟机数据的已储存副本,能用于数据恢复或者创建新模板。

 

14、ssvm管理二级存储?

 

ssvm 对存放在二级存储里面的资源进行管理,首先ssvm会将二级存储mount到本地,之后对二级存储的操作也就转换成对本地文件夹的操作。从功能上 讲,ssvm负责管理snapshot, volume, iso, template, 下面将分别从上传,下载,查询,删除者4个角度说明对这些资源是如何管理的。

 

    ①、上传资源:

 

当用户选择上传资源时,management server 会将url传递给ssvm, 这样ssvm就可以通过wget从指定的url中下载资源。

 

    ②、下载资源:

 

当用户选择下载指定资源时候,management server 首先从数据库中查找该资源对应的路径,并将该路径传递给ssvm,ssvm 使用内置的apache server来提供资源上传服务。这样用户就可以通过ssvm下载所需要的资源了。

 

    ③、查询资源:

 

ssvm会定期向management server上传自己的状态信息。

 

    ④、删除资源:

 

由于二级存储已经挂载到ssvm中,这样它就可以直接将二级存储里面的内容删除。

 

15、如何验证ssvm?

 

在ssvm中有一个ssvm-check.sh,这个shell文件主要负责对ssvm的相关配置进行验证。验证内容包括: dns, mount的二级存储, 与management server的连接,相关java进程。

 

16、cloudstack网络流量类型:


网络的设计规划是CloudStack的一个亮点,也是CloudStack被广泛商业应用的一个主要原因.本篇深入讨论一下CloudStack中网络的设计方式.

 

CloudStack中根据不同的数据流量类型设计了管理,公共,客户及存储网络,可以简称为PMGS ( Public, Management, Guest, Storage) 网络.

 

     ①、公用网络(Public Network)

 

当 虚拟机需要访问Internet或外部网络时,需要通过公共网络;这就说明客户虚拟机必须被分配某种形式的外网IP.用户可以在CloudStack的 UI上获得一个IP来做NAT映射,也可以在Guest与Public之间做负载均衡.所有的Hypervisor都需要共享Public VLan以保证虚拟机对外的访问

 

 

    ②、来宾网络(Guest Network)

 

最终用户运行CloudStack创建的虚拟机实例时产生Guest流量,虚拟机实例之间的相互通信通过客户网络。

 

    ③、管理网络(Management Network)

 

CloudStack内部资源相互通信会产生Management流量,这些流量包括管理服务器节点与Hypervisor集群之间的通信,与系统虚拟机之间的通信或与其它组件之间的通信等;集群规模较小时管理流量只占用很少的带宽.

 

    ④、存储网络(Storage Network)

 

主存储与Hypervisor之间互连互通的流量;主存储与二级存储之间也会产生Stroage流量,比如虚拟机模板和快照的搬移。

 

     了解更多,请参考:http://54im.com/%E4%BA%91 %E8%AE%A1%E7%AE%97/cloudstack/%E7%AE%80%E5%8D%95%E9%83%A8%E7%BD%B2cloudstackcentos6-5%E5%AE%89%E8%A3%85cloudstack-4-3%E4%B9%8B%E6%A6%82%E5%BF%B5%E4%BB%8B%E7%BB%8D.html

 
来自:http://my.oschina.net/fufangchun/blog/336711