- 管理服务程序——基于JAVA语言编写,包含tomcat服务,API服务,管理各类Hypervisor的core服务,管理整个系统工作流程的server服务,等几个核心组件。
- MySQL数据库——记录CloudStack系统中的所有信息。
- Usage服务程序——主要用于记录用户VM使用各种资源的统计和事件,为计费提供数据,所以当不需要计费功能时,可以不必安装此程序。
- 安装多个管理服务程序作为一个集群,再使用负载均衡设备放在此集群前,可以负载大量的WEB访问或API请求。
- 将MySQL数据库安装在独立的服务器中,并搭建主从方式(master-slave)的MySQL数据库作为一种备份方案。
- 将Usage服务程序安装在独立服务器,用于分担管理服务器上的压力。
提供点(Pod)是Cloudstack的资源域内第二级的逻辑组织单元,可以理解为一个物理的机架,包含交换机,服务器,存储的整合。所以参照物理机架的概念,在cloudstack的提供点中,也有网络的概念,即所有提供点内的计算服务器、系统虚拟机、客户虚拟机都在同一个子网中。一般来说,提供点上的服务器连接至同一个或一组Layer2交换机上,所以很多实际部署中基本也都是以一个物理机架来进行规划。一个资源域内可以有多个独立的提供点,数量没有上限。一个提供点可以由一个或多个集群构成,一个提供点中的集群数量没有上限。出于对网络灵活扩展的目的,提供点是不可或缺的一个层级。
另外,机架对最终用户不可见。
4.集群(Cluster)
集群是Cloudstack的系统中最小的逻辑组织单元,由一组计算服务器和一个或多个主存储所组成。同一个集群的计算服务器必须使用相同的Hypervisor类型,硬件型号也必须相同(带有高级功能的XenServer和vSphere可以兼容异构的CPU)。虚拟机可以在集群内的不同主机之间实现动态迁移(live migrate)。一个提供点可以包含多个集群,可以包含使用不同hypervisor程序的集群。虽然cloudstack并不限制集群的数量,但由于提供点所划分的子网范围,提供点内的集群和主机数量不会是完全无限制的。而集群内主机的数量,虽然也没有限制,但根据最佳实践,一个集群内的计算服务器的数量建议不超过16台。
需要注意的是,vSphere集群由vCenter服务器进行管理。管理员必须将vCenter服务器。每个vCenter服务器可以管理多个vSphere集群。
集群内可以添加多个作为共享存储所使用的主存储(primary storage),主存储的类型没有限制,只要可以和计算服务器正常通讯即可。在新版本中,Cloudstack可以实现虚拟机的所使用的镜像文件在多个主存储之前进行迁移,但肯定需要关闭虚拟机电源进行迁移。
5.计算服务器(Host)
计算服务器是CloudStack中最基本的硬件模块之一,用于提供虚拟化能力和计算资源,并运行客户创建的虚拟机,根据系统压力可以进行弹性增减。计算服务器上需要安装Hypervisor程序,目前CloudStack支持CitrixXenServer、VMware ESXi、KVM(包括RHEL或Ubuntu类型)、Oracle VM的Hypervisor。具体支持的hypervisor程序及版本可以在Cloudstack的图形界面上找到:
图2.4
计算服务器具有以下特点:
- 提供虚拟机需要的所有CPU,内存,存储和网络资源
- 互相通过高速网络互联互通,并具备Internet连接
- 可以位于不同地理位置的不同数据中心
- 可以具有不同的规格(如不同的CPU速度,不同的内存大小等等)
- 是高性能通用x86兼容服务器,自身相对可靠,但规模较大时允许出现个别服务器故障
Cloudstack可以兼容绝大部分硬件设备,其实就是所使用的硬件是否能够被hypervisor程序兼容。在安装hypervisor程序之前,需要先确定该服务器所使用的CPU能支持虚拟化技术,并在BIOS中打开CPU对虚拟化技术的支持。而服务器上的所有硬件是否与Hypervisor程序兼容,建议在Citrix,VMware等官方网站上进行检查。
6.主存储(Primary Storage)
主存储一般作为每个集群中多台计算服务器共同使用的共享存储存在,一个集群中可以有一个或者多个不同类型的存储。也可以通过参数配置,使用计算节点的本地磁盘作为本地存储使用。主存储用于存储所有虚拟机的镜像文件和数据卷文件。集群中的所有计算节点都可以访问共享存储,用以实现虚拟机的在线迁移(live migrate)和高可用(High Available)的功能。如果设为本地磁盘为主存储,虚拟机的磁盘读写有很好的性能,但无法解决主机故障导致虚拟机无法启动而出现的单点故障。
CloudStack的主存储支持的设备依赖于计算节点所使用的Hypervisor程序,如XenServer和vSphere可以全面的支持NFS,iSCSI,FC-SAN等传统存储设备。对于KVM,支持NFS较容易,但需要使用Sheard MountPoint功能来间接支持iSCSI、FC-SAN、CLVM,并可以间接支持较新的分布式存储技术架构。
7. 二级存储(secondary Storage)
二级存储是cloudstack根据IaaS平台的特点,专门设计出来的存储。每个资源域只需一个二级存储,用于存放创建虚拟机用的ISO镜像文件,模版文件,以及对虚拟机做的快照文件。二级存储可以支持NFS存储和openstack的组件swift存储。为什么会单独设计一个存储出来呢?其实大家可以看一下存放的几种类型的文件,第一是占用很大的空间,第二是基本在一次性写入后只有读取操作,使用也不会非常频繁,属于冷数据。相比较经常使用的虚拟机数据卷文件