转载请注明出处:http://blog.csdn.net/xingjiarong/article/details/46830999
为了更好的理解,我们首先来说一下云计算的类型。根据所提供服务的类型,云计算有以下三种落地方式:
1、Iaas(基础架构即服务),用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序。
2、PaaS(平台即服务),用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上边安装其他应用程序,但不能修改已经预装好的操作系统和运行环境。
3、SaaS(软件即服务),用户可以通过网络以租赁的方式来使用一些软件,而不是购买,比较常见的模式是提供一组账号密码。
OpenStack就是一种IaaS。2010年7月,RackSpace和美国国家航空航天局合作,分别贡献出RackSpace云文件平台代码和NASA Nebula平台代码,并以Apache许可证开源发布了OpenStack,OpenStack由此诞生。OpenStack第一版的代号为Austin,以RackSpace所在的美国德州Texas首府命名,计划每隔几个月发布一个全新的版本,并且以26个英文字母为首字母从A到Z顺序命名后面的版本。第一版仅有Swift和Nova两个项目。
2011年2月,OpenStack社区发布了Bexar版本,这是OpenStack的第二版,新增了Glance来提供镜像服务。
2011年4月,OpenStack社区发布了更加稳定的Cactus版本,但是这个版本没有新的项目。
2011年9月,OpenStack发布了它的第四个版本Diablo,从此OpenStack的版本更新定为每半年一次,分别是当年的春秋两季。
…….
OpenStack目前共涵盖了七个核心组件,分别是计算(Compute)、对象存储(Object Storage)、认证(Identity)、用户界面(Dashboard)、块存储(Block Storage)、网络(Network)和镜像服务(Image Service)。每个组件都是多个服务的集合,一个服务意味着运行着的一个进程。
Compute(Nova)Compute的项目代号是Nova,他根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移等。
Object Storage(Swift)它允许存储或检索对象,也可以认为它允许存储或检索文件,它能以低成本的方式管理大量无结构数据。
Identity(Keystone)为所有OpenStack服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用服务及API列表。
DashBoard(Horizon)它为所有OpenStack的服务提供一个模块化的基于Django的界面,通过这个界面,不论是最终用户还是运维人员都可以完成大多数的操作,比如启动虚拟机,分配IP地址,动态迁移等。
Block Storage(Cinder)提供块存储服务
Network(Neutron)用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口。
ImageService(Glance)提供一个虚拟机镜像的存储、查询和检索服务,通过提供一个虚拟磁盘映像的目录和存储库,为Nova虚拟机提供镜像服务。
下面以创建虚拟机为例说明一下各个组件之间是如何相互配合完成工作的。用户首先接触到的是界面,也就是Horizon。通过Horizon上的简单界面操作,一个创建虚拟机的请求被发送到OpenStack系统后端。既然要启动一个虚拟机,就必须指定虚拟机操作系统是什么类型,就必须下载启动镜像以供虚拟机启动使用,这件事情就有Glance来完成的,而此时Glance所管理的镜像是有可能存储在Swift上的,所以需要与Swift交互得到需要的镜像文件。
在创建虚拟机的时候,自然而然地需要Cinder提供块服务和Neutron提供网络服务,以便该虚拟机有volume可以使用,能被分配到IP地址与外界网络连接,而且之后改虚拟机资源的访问要经过KeyStone的认证之后才可以继续。至此,OpenStack的所有核心组件都参与了这个创建虚拟机的操作。