当前位置:文档之家› OpenStack开源云计算平台

OpenStack开源云计算平台

OpenStack开源云计算平台摘要:OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。

其宗旨在于,帮助组织运行虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。

关键词:Openstack;云计算;云平台;云软件1OpenStack 的特点OpenStack是一个完全开源的云计算系统,使用者可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售;OpenStack是基于强大的社区开发模式,任何公司和个人都可以参与到项目中,参与测试开发,贡献代码;OpenStack被专门基金会管理,可以说是一个真正开源的云计算项目;OpenStack为组建云提供了必要的软件、控制台和API;OpenStack以user和project身份来启动实例,管理网络访问规则和控制访问权限,给用户提供强大的灵活性和扩展性;OpenStack全部组件都由python编程语言开发,和Java等其它编程语言相比,python程序具有非常高的并发处理能力和极低的系统资源占用率,增加了系统的性能和稳定性,且代码易于维护和扩展。

2Openstack设计原则①Scalability and elasticity are our main goals (可扩展性和伸缩性是我们的主要目标);②Any feature that limits our main goals must beoptional (任何影响到可扩展性和伸缩性的功能都必须是可选的);③Everything should be asynchronous,If you can’t do something asynchronously,see #2 (所有的环节必须是异步的,如果不能异步实现,参考第②条设计原理);④All required components must be horizontally scalable(所有的基础组件必须能横向扩展);⑤Always use shared nothing architecture (SN)or sharding,If you can’t share nothing/shard,see #2 (始终使用无共享的架构,如果不能实现,参见第②条);⑥Distribute everything especially logic. Move logic to where state naturally exists(所有的都是分布式的,尤其是逻辑。

把逻辑放在状态应该存在的地方);⑦Accept eventual consistency and use it where it is appropriate(接受最终一致性,并在适合的条件下使用);⑧Test everything(充足的测试)。

3OpenStack的构成Openstack发展到目前版本,主要由六大组件构成,如图1所示。

图1OpenStack构成(1)OpenStack Compute(Nova)计算服务。

运行在主机操作系统上潜在的虚拟化机制交互的驱动,并提供基于Web的API功能。

(2)OpenStack Object Storage(Swift)存储服务。

可扩展的对象存储系统,可以用来创建基于云的弹性存储。

(3)Image Service(Glance)镜像服务。

虚拟机镜像的存储、查询和检索系统。

(4)OpenStack Identity(Keystone)认证服务。

为运行OpenStackCompute上的OpenStack云提供了认证和管理用户、帐号和角色信息服务,并为OpenStack Object Storage提供授权服务。

(5)OpenStack Dashboard (Horizon)UI服务。

OpenStack的Web管理控制台,可以通过Web界面访问的方式来操作管理网络和虚拟机实例等。

(6)OpenStack Quantum & Melange网络&地址管理。

提供了虚拟网络和IP地址管理服务。

4OpenStack各组件之间的关系OpenStack项目总的来说被设计为一个“可交付的大型可伸缩的云操作系统”。

为了达到这个目标,每个组成服务目的是在一起工作来提供一个完整的基础设施即服务(IaaS)。

这种集成通过每个服务提供公共应用程序编程接口(API)来实现。

因为这些API被用作服务与服务之间相互协调的唯一方式,所以也允许底层的这些服务可以任意替换,而不会影响其它服务,因为与这些服务相互通讯的API 永远不会变化。

这些组件最终也都提供相同的API给云的终端用户。

图2是OpenStack的六大组件的逻辑关系图。

图2六大组件的逻辑关系由图2,我们可以总结出以下几点:①Dashboard提供了一个统一的Web操作界面来访问其它的OpenStack服务;②Compute通过Image存储和检索虚拟磁盘文件和相关元数据;③Network 为compute提供了虚拟网络;④Block Storage 为compute提供了存储卷;⑤Image可以将实际的虚拟磁盘文件存储到Object Store上;⑥所有服务都要通过keystone来授权访问。

5OpenStack的逻辑架构图3是OpenStack各个组件之间的逻辑关系图。

图3OpenStack各组件之间逻辑关系由图3,可以总结出以下几点:①终端用户通过nova-api对话来与OpenStack Compute 交互,通过glance-api对话来与OpenStack Glance 交互,通过OpenStack Object API来与OpenStack swift 交互;②OpenStack Compute 守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求;③OpenStack Glance 与OpenStack Swift 基本上都是独立的基础架构,OpenStack Compute通过Glance API 和Object API来进行交互。

其各个组建的情况如下:①nova-api 守护进程是OpenStack Compute的中心。

它给所有API查询(Compute API或EC2 API)提供端点,初始化界大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查);②Nova-compute 进程主要是一个创建和终止虚拟机实力的Workder守护进程。

其过程相当复杂,但是基本原理很简单:从队列中接受行为,然后在更新数据库的状态时,通过一系列的系统命令执行;③Nova-volume负责管理映射到计算机实例的卷的创建、附加、取消和删除。

这些卷可以来自很多提供商,比如ISCSI和AoE;④Nova-network worker 守护进程类似于nova-compute和nova-volume。

它们从队列中接受网络任务,然后执行任务以操控网络,比如创建bridging interfaces或者改变iptables rules;⑤Queue提供中心hub,为守护进程传递消息。

当前用RabbitMQ实现。

但是理论上是python ampqlib支持的任何AMPQ消息队列;⑥Nova database 存储云基础架构中的绝大多数编译时和运行时状态。

这包括了可用的实例类型,在用的实例,可用的网络和项目。

理论上,OpenStack Compute能支持SQL-Alchemy支持的任何数据库,当前广泛使用sqlite3(仅用于测试和开发工作)、MySQL和PostgreSQL;⑦OpenStack Glance 是一个单独的项目,它是一个compute架构中可选的部分,分为3个部分:glance-api,glance-registry 和image store。

其中,glance-api接受OpenStack image API调用,glance-registry负责存储和检索镜像的元数据,实际的Image Blob存储在Image Store中。

Image Store可以是多种不同的ObjectStore,包括OpenStack Ojbect Storage(Swift);⑧OpenStack Swift是一个单独的项目,它是分布式存储架构,能防止单点故障并支持横向扩展。

它包括以下4个部分:swift-proxy,account,container 和object。

swift-proxy 通过接收OpenStack Object API或者HTTP 传入的请求,接受文件上传、修改元数据或容器创建。

此外,它还将提供文件或容器清单到浏览器上。

swift-proxy可以使用一个可选的缓存(通常部署在memcache中)来提高性能。

account管理账户定义对象存储服务。

container管理一个映射的容器(即文件夹)在对象存储服务。

对象服务器管理实际对象(例如文件)在存储节点。

6结语OpenStack很可能成为未来云计算平台的标准,只要遵循统一的标准,用户便可以随意将自己的应用部署到不同的云平台,而不需要对应用做任何修改。

在未来统一的标准下,用户完全不用关心云服务提供商是用OpenStack构建的云还是其它平台构建的云,只需要把应用部署到云即可,然后为使用的云资源付费。

参考文献:[1]OpenStack Compute Administration Manual[EB/OL].http://cactus/openstack-compute/admin/content,2012.[2]OpenStack详细解读:定义,好处与使用实例[EB/OL].http:///thread-335-1-1.html,2012.[3]如何用OpenStack安全构建私有云?[EB/OL].http:///showcontent_59217.htm,2012. Cloud Platform of OpenStackAbstract:OpenStack is a collection of open source technologies that provides massively scalable open source cloud computing software.OpenStack can be used by corporations,service providers,V ARS,SMBs,researchers,and global data centers looking to deploy large-scale cloud deployments for private or public clouds.Key Words:OpenStack;Cloud Computing;Cloud Platform;Cloud Software。

相关主题