开源云计算平台CloudStack实战
上QQ阅读APP看书,第一时间看更新

2.1 CloudStack基础设施概念

CloudStack的基础设施比较多,包含地区、区域、提供点、集群、主机、主存储、二级存储和物理网络等。本节将对这些概念分别进行介绍。

2.1.1 地区(Region)

为了提高云的可靠性,你可以随机地组织资源到多个地理区域。在一个CloudStack的部署中,一个地区是一个最大的可用的组织单元。一个地区由多个可用的区域构成,每个区域相当于一个数据中心。每个地区都由自己的集群管理服务器控制,并且运行在一个区域内。地区中的区域在地理位置上是相近的。地区对于容错与灾难恢复来说是一个非常有效的技巧。

通过在地区中进行分区,云可以实现更高的可用性与伸缩性。用户账户可以跨多个区域,因此,用户可以在多个、分散的地区中部署虚拟机。其实一个地区变得不可用,终端用户仍然可以使用部署在另外一个地区中部署的服务。相对于通过单一的中央管理服务器管理大范围的、分散的区域来说,云内的通信延迟降低了。地区包含多个区域,如图2.1所示。

图2.1 地区包含多个区域

在地区级别上,使用的记录可以被巩固与跟踪,为每个地理区域创建报告或者账目明细。

地区对终端用户来说是可见的。当一个用户启动了一个来宾虚拟机,用户必须为其来宾用户选择一个地区。用户可以复制他们私有的模板到另外的地区,然后在这些地区中使用复制过来的模板创建来宾虚拟机。

2.1.2 区域(Zone)

一个区域在CloudStack配置中是最大的组织单元。一个区域通常代表一个单独的数据中心,当然在一个数据中心也允许有多个区域。将基础架构设施加入到区域中的好处是提供物理隔离和冗余。例如,每个区域可以有它自己的电源和网络上行链路,区域还可以是分布在不同的物理位置上(虽然这不是必需的)。区域的结构如图2.2所示。

图2.2 区域的结构图

一个区域包含:

(1)一个或多个机架。每个机架包括一个或多个集群主机,或者一个或多个主存储服务器。

(2)所有区域中的机架所共享的二级存储。

区域对终端用户是可见的。当用户启动一个客户虚拟机的时候,必须为它选择一个区域。用户必须复制他们私有的模板到追加的区域中,以便在那些区域中可以利用他们的模版创建客户虚拟机。

区域可以是私有的,也可以是公共的。公共的区域对所有用户都是可用的,这意味着任何用户都可以在区域中创建客户虚拟机。私有的区域是为一个指定的域预留的。只有在那个域中或者子域中的用户才可以创建客户虚拟机。

位于同一个区域中的主机可以相互访问而不用通过防火墙。位于不同区域中的主机可以通过静态配置VPN通道相互访问。

对每一个区域,管理员必须决定:

(1)在区域中放置多少个提供点(pods)。

(2)每个机架放置多少个集群。

(3)每个集群中放置多少台主机。

(4)每个集群中放置多少个主存储服务器(primary storage servers),存储服务器的总容量是多大。

(5)每个区域中配置多少个二级存储(secondary storage)。

2.1.3 提供点(Pod)

一个提供点经常代表一个单独的机架。位于同一个机架下的主机处于相同的子网,具体架构如图2.3所示。

图2.3 提供点的结构图

在一个CloudStack配置中的提供点是第二大的组织单元。区域中的提供点是独立的,每个区域可以包含一个或多个提供点。提供点对终端用户是不可见的。一个提供点包含一个或多个集群主机,包含一个或多个主存储服务器(primary storage servers)。

2.1.4 集群(Cluster)

集群提供一种方式来管理主机。确切地来讲,一个集群就是一个XenServer服务池,一组KVM服务器的集合,或者是一个在vCenter中预先构造的一个VMware集群。集群中的所有主机拥有相同的硬件配置,运行相同的虚拟机管理程序,位于相同的子网,访问同一个共享的主存储。虚拟机实例可以动态地从一台主机迁移到集群中的另一台主机,不用中断对用户的服务。

集群是CloudStack配置中第三大的组织单元,其大小受潜在的虚拟机管理程序限制。一个集群包括一个或多个主机、一个或多个主存储服务器,如图2.4所示。CloudStack允许多个集群存在一个云部署下。即使当本地存储是私有的,集群仍然是有组织的,即使每个集群只有一台主机。当使用VMware时,每个VMware集群被vCenter服务器管理。管理员必须向CloudStack注册vCenter服务器。每个区域中可能会有多个vCenter服务器,每个vCenter服务器可以管理多个VMware集群。

图2.4 集群的结构图

2.1.5 主机(Host)

主机是一台单独的计算机。主机提供计算资源运行客户虚拟机。每个主机配置有虚拟机管理软件来管理客户虚拟机。例如,一个Linux KVM服务器、一个Citrix XenServer服务器和一个ESXi服务器都是宿主机。

主机是一个CloudStack配置中最小的组织单元。区域包含机架,机架包含集群,集群包含主机。

CloudStack环境中的主机能够提供CPU、内存、存储和虚拟机需要的网络资源,通常采用高带宽的TCP/IP网络互联同时连接到Internet。主机可能驻留在位于不同地理位置的多个数据中心,可能拥有不同的容量(即不同的CPU速度、不同数量的内存等)。但要注意:位于一个集群中的主机必须是同质的。

CloudStack中添加的主机可以在任何时候被添加用来为客户虚拟机提供更高的能力,并支持自动发现主机提供的CPU数量和内存资源。主机对终端用户是不可见的,终端用户不能决定哪些主机可以分配给客户虚拟机。

如果要在CloudStack中运行一个主机,必须做三件事情:

(1)在宿主机上配置虚拟机管理软件。

(2)分配IP地址给宿主机。

(3)确保宿主机已经链接到CloudStack管理服务器。

2.1.6 主存储(Primary Storage)

主存储和一个集群联系在一起,而且它存储了所在集群的宿主机中的所有虚拟机磁盘卷。用户可以为一个集群添加一个或多个主存储服务器。通常主存储服务器越靠近宿主机其性能越好。

CloudStack设计用来处理所有符合标准的iSCSI和NFS服务器所支持的、底层的虚拟机管理程序,包括(但不限于)如下程序:

(1)Dell EqualLogic for iSCSI。

(2)Network Appliances filers for NFS and iSCSI。

(3)Scale Computing for NFS。

2.1.7 二级存储(Secondary Storage)

二级存储是和区域关联的,主要负责存储以下内容:


·模版。用来启动虚拟机的操作系统镜像,可以包括附加配置信息,比如已经安装好的应用程序。可以把模板理解为已经安装若干应用程序的系统打包成iso,用以创建类似的操作系统。

·ISO镜像。包含数据或可引导操作系统媒介的磁盘镜像。

·磁盘卷快照。可用来进行数据恢复,或创建新模版的虚拟机数据的副本。


基于区域的NFS二级存储中的元素可以被区域中的所有主机使用。CloudStack管理将客户虚拟机磁盘分配到特定的主存储设备上存储(注意:所有虚拟机磁盘都是位于主存储上的)。

除了基于区域的NFS二级存储之外,用户还可以添加OpenStack项目存储Swift,以使二级存储中的元素对云中的所有主机都可用。当使用Swift时,需要对整个的CloudStack配置Swift存储,然后像往常一样为每个区域配置NFS二级存储。

2.1.8 物理网络

添加一个区域的一个步骤是配置物理网络。每个区域可以关联一个或多个物理网络。网络对应着虚拟机管理程序(Hypervisor)主机上的一个网卡。每个物理网络可以承载一个或多种类型的网络流量。每个网络流量类型的选择大部分取决于你是否使用基本网络或高级网络创建一个区域。

区域中的一个物理网络是真实的网络硬件和连线。一个区域可以有多个物理网络。管理员可以针对物理网络进行如下配置:

(1)在一个zone中添加/删除/更新物理网络。

(2)在物理网络上配置VLAN。

(3)配置网络名称,随后该网络就可以被Hypervisors察觉。

(4)在一个物理网络上配置服务提供者(防火墙、本地负载均衡等)。

(5)配置物理网络主干网的IP地址。

(6)指定哪种类型的流量可以经过该物理网络,或者网络其他属性(如网络速度)。