cloudstack架构详解(一)

我想把cloudstack的架构进行一个详细的梳理,对自己也是一个系统又深入的学习,如果各位和我一样正在学习cloudstack,也请帮忙一起来提意见,觉得我哪里写的不清楚,都可以告诉我,帮我完善文章。

 

第一篇,我想先简单普及一下云计算,并引出cloudstack作为iaas平台的功能与特点。

   云计算的模型,特点,Cloudstack作为IaaS平台管理软件的特点和宏观架构。

第二篇,我会介绍cloudstack的主要几个主要组成部分,及相互间的关系。

   主要组成部分包括管理节点,资源域,提供点,集群,计算节点,主存储,二级存储,3个系统虚拟机。

第三篇,我会来介绍管理节点内的运行机制,如何接收命令并发送给计算节点的

   用户使用web界面发送任务或发送API给API服务,API服务接收及处理请求,发送命令给管理节点或系统虚拟机,管理节点或SVM处理命令。

第四篇,我来详细介绍一下系统虚拟机中的:二级存储虚拟机(SSVM)和控制台代理虚拟机(CPVM)

   SSVM如何管理二级存储并与管理节点通讯,复制模板ISO快照的机制。

   CPVM的访问方式,工作流程。

第五篇,我想介绍一下第三个系统虚拟机:虚拟路由器(VR)

   VR的安全保护,各种功能的实现,网络架构上的作用。

本部分连载暂时不考虑关于cloudstack的网络架构,其实这部分也非常庞大。

这五篇我计划4天左右一篇,争取在3周以内完成,请各位监督!(其实第一篇就耽误了一个星期:)

 

那好,咱们开始第一篇。

Cloudstack的架构详解(一)——cloudstack作为IaaS管理平台的功能与特点

 

 云计算说了很多年,到现在为止,虽然各地的云计算项目仍然很多,但已经有更多的人开始理性思考。因为他们慢慢的看清了中间的门道。但其实目前还有很多人对云计算看的是云里雾里的。这边我再做一些简单的介绍。

 

云计算最早进入大众视线是在2006年,亚马逊推出弹性计算云服务,google也在同年提出“云计算”的概念。但到底什么是云计算,也一直没有个确定性的定义,直到后来美国国家标准和技术研究院的云计算定义中涉及了关于云计算的部署模型:

  • 公用云(Public Cloud)简而言之,公用云服务可通过网络及第三方服务供应者,开放给客户使用,“公用”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户数据可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。
  • 私有云(Private Cloud)私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。
  • 社区云(Community Cloud)社区云由众多利益相仿的组织掌控及使用,例如特定安全要求、共同宗旨等。社区成员共同使用云数据及应用程序。
  • 混合云(Hybrid Cloud)混合云结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及数据。
如果提供云服务,还有几个特点是一定要满足的:
  1. 云服务可以支持多租户共同使用。
  2. 能够按需进行自服务。
  3. 宽带网络的接入。
  4. 将所有资源进行池化。
  5. 快速进行弹性增减。

云计算定义也明确了三种服务模式:

  • 软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组帐号密码。例如: Microsoft CRM与Salesforce.com
  • 平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如: Google App Engine。
  • 基础架构即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如: Amazon AWS、Rackspace。


 
图1.1
以上内容来自于wiki:http://zh.wikipedia.org
这三个服务模型之间是有关系的,如上图所示,作为IaaS层会将底层的硬件设施进行统一管理并向上提供服务。而PaaS层则建立起一个平台向上提供服务,但不需要管理硬件设施,只要使用IaaS层提供的服务即可,对于PaaS层来说,硬件是透明的。而SaaS层则使用PaaS层这个平台通过软件为用户提供服务,而对于SaaS层的软件来说IaaS层是完全透明的。
那么cloudstack这个开源项目设计的初衷,即是以提供基础架构即服务的服务模型,建成一个硬件设备及虚拟化管理的统一平台,将计算资源、存储设备、网络资源进行整合,形成一个资源池,通过管理平台进行统一管理,弹性增减硬件设备。而且根据云环境中的五个特点,cloudstack进行了功能上的设计和优化。为了适应云的多租户模式,设计了用户的分级权限管理,通过各种技术进行,保证用户数据的安全和隐私。用户也可以直接通过浏览器访问,在一定权限的限制下自由使用自己的资源,实现自服务的模式。在多租户环境下,用户使用资源的计量计费功能也是不可少的,cloudstack会通过多种手段尽可能的记录用户使用的所有资源情况,并将使用情况记录下来,以提供计费时使用。对于云系统的管理员来说,绝大部分管理工作基本通过浏览器访问的界面就可完成,提供资源池化管理,高可靠性等功能,帮助云系统管理员尽可能地将管理工作简化和自动化,减少界面的切换。既可以直接对用户提供租用虚拟机的服务,也开放出API接口,为PaaS层使用提供服务。所以就有了这样一个简化的概念图。
 

 
图1.2
通过这个图我们可以看出来,最终用户只要在Cloudstack的平台上直接申请和使用虚拟机就可以了,无需关注底层的硬件设备是如何使用和设计的,也不用关心自己使用的虚拟机到底在哪个计算服务器上,在哪个存储上。
 
cloudstack系统在尽可能的增加,开放的兼容性。可以管理多种Hypervisor的虚拟化程序,包括XenServer,VMware,KVM,OracleVM,裸设备。凡是这些虚拟化程序可以支持的计算服务器,Cloudstack也都是可以正常支持,这样就有了非常广泛的兼容性。


 图1.3
Cloudstack可以使用的存储类型也非常的广泛。建立虚拟机所使用的主存储可以使用计算服务器自己的本地磁盘,也可以挂载iSCSI,光纤,NFS存储。存放光盘镜像模版的二级存储可以使用NFS外,还可以使用Openstack的swift组件。在下一篇我会来介绍什么是主存储什么二级存储。


 图1.4
cloudstack除了支持各种网络的连接方式,不需要硬件设备,系统身就会提供多种的网络服务,就可以实现如:网络隔离,防火墙,负载均衡,VPN等功能。这样既可以达到灵活控制,并且可以提供给用户自己进行配置,省去了管理员大量的配置工作,还可以节省硬件成本,其实是个一举多得的聪明做法。

 图1.5

我想把cloudstack的架构进行一个详细的梳理,对自己也是一个系统又深入的学习,如果各位和我一样正在学习cloudstack,也请帮忙一起来提意见,觉得我哪里写的不清楚,都可以告诉我,帮我完善文章。

 

第一篇,我想先简单普及一下云计算,并引出cloudstack作为iaas平台的功能与特点。

   云计算的模型,特点,Cloudstack作为IaaS平台管理软件的特点和宏观架构。

第二篇,我会介绍cloudstack的主要几个主要组成部分,及相互间的关系。

   主要组成部分包括管理节点,资源域,提供点,集群,计算节点,主存储,二级存储,3个系统虚拟机。

第三篇,我会来介绍管理节点内的运行机制,如何接收命令并发送给计算节点的

   用户使用web界面发送任务或发送API给API服务,API服务接收及处理请求,发送命令给管理节点或系统虚拟机,管理节点或SVM处理命令。

第四篇,我来详细介绍一下系统虚拟机中的:二级存储虚拟机(SSVM)和控制台代理虚拟机(CPVM)

   SSVM如何管理二级存储并与管理节点通讯,复制模板ISO快照的机制。

   CPVM的访问方式,工作流程。

第五篇,我想介绍一下第三个系统虚拟机:虚拟路由器(VR)

   VR的安全保护,各种功能的实现,网络架构上的作用。

本部分连载暂时不考虑关于cloudstack的网络架构,其实这部分也非常庞大。

这五篇我计划4天左右一篇,争取在3周以内完成,请各位监督!(其实第一篇就耽误了一个星期:)

 

那好,咱们开始第一篇。

Cloudstack的架构详解(一)——cloudstack作为IaaS管理平台的功能与特点

 

 云计算说了很多年,到现在为止,虽然各地的云计算项目仍然很多,但已经有更多的人开始理性思考。因为他们慢慢的看清了中间的门道。但其实目前还有很多人对云计算看的是云里雾里的。这边我再做一些简单的介绍。

 

云计算最早进入大众视线是在2006年,亚马逊推出弹性计算云服务,google也在同年提出“云计算”的概念。但到底什么是云计算,也一直没有个确定性的定义,直到后来美国国家标准和技术研究院的云计算定义中涉及了关于云计算的部署模型:

  • 公用云(Public Cloud)简而言之,公用云服务可通过网络及第三方服务供应者,开放给客户使用,“公用”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户数据可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。
  • 私有云(Private Cloud)私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。
  • 社区云(Community Cloud)社区云由众多利益相仿的组织掌控及使用,例如特定安全要求、共同宗旨等。社区成员共同使用云数据及应用程序。
  • 混合云(Hybrid Cloud)混合云结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及数据。
如果提供云服务,还有几个特点是一定要满足的:
  1. 云服务可以支持多租户共同使用。
  2. 能够按需进行自服务。
  3. 宽带网络的接入。
  4. 将所有资源进行池化。
  5. 快速进行弹性增减。

云计算定义也明确了三种服务模式:

  • 软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组帐号密码。例如: Microsoft CRM与Salesforce.com
  • 平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如: Google App Engine。
  • 基础架构即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如: Amazon AWS、Rackspace。
如果提供云服务,还有几个特点是一定要满足的:

  图1.1 以上内容来自于wiki:http://zh.wikipedia.org 这三个服务模型之间是有关系的,如上图所示,作为IaaS层会将底层的硬件设施进行统一管理并向上提供服务。而PaaS层则建立起一个平台向上提供服务,但不需要管理硬件设施,只要使用IaaS层提供的服务即可,对于PaaS层来说,硬件是透明的。而SaaS层则使用PaaS层这个平台通过软件为用户提供服务,而对于SaaS层的软件来说IaaS层是完全透明的。 那么cloudstack这个开源项目设计的初衷,即是以提供基础架构即服务的服务模型,建成一个硬件设备及虚拟化管理的统一平台,将计算资源、存储设备、网络资源进行整合,形成一个资源池,通过管理平台进行统一管理,弹性增减硬件设备。而且根据云环境中的五个特点,cloudstack进行了功能上的设计和优化。为了适应云的多租户模式,设计了用户的分级权限管理,通过各种技术进行,保证用户数据的安全和隐私。用户也可以直接通过浏览器访问,在一定权限的限制下自由使用自己的资源,实现自服务的模式。在多租户环境下,用户使用资源的计量计费功能也是不可少的,cloudstack会通过多种手段尽可能的记录用户使用的所有资源情况,并将使用情况记录下来,以提供计费时使用。对于云系统的管理员来说,绝大部分管理工作基本通过浏览器访问的界面就可完成,提供资源池化管理,高可靠性等功能,帮助云系统管理员尽可能地将管理工作简化和自动化,减少界面的切换。既可以直接对用户提供租用虚拟机的服务,也开放出API接口,为PaaS层使用提供服务。所以就有了这样一个简化的概念图。  

  图1.2

猜你喜欢

转载自tanthalas.iteye.com/blog/1927690