OpenStack(1)

OpenStack开源云计算平台

2013/8/18    来源:万方数据    作者: 李知杰   赵健飞  
 
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
1 OpenStack的特点
 
    OpenStack是一个完全开源的云计算系统,使用者可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售;OpenStack是基于强 大的社区开发模式,任何公司和个人都可以参与到项目中,参与测试开发,贡献代码;0penStack被专门基金会管理,可以说是一个真正开源的云计算项 目;OpenStack为组建云提供了必要的软件、控制台和API;
 
    OpenStack以user和project身份来启动实例,管理网络访问规则和控制访问权限,给用户提供强大的灵活性和扩展性;OpenStack全 部组件都由python编程语言开发,和Java等其它编程语言相比,python程序具有非常高的并发处理能力和极低的系统资源占用率,增加了系统的性 能和稳定性,且代码易于维护和扩展。
 
2 Openstack设计原则
 
    ①Scalability and elasticity are our main goals(可扩展性和伸缩性是我们的主要目标);②Any feature that limits our main goals must be optional(任何影响到可扩展性和伸缩性的功能都必须是可选的);③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(充足的测试)。
 
3 OpenStack的构成

   Openstack发展到目前版本,主要由六大组件构成,如图1所示。
 
图1 OpenStack构成
 
图1 OpenStack构成
 
    (1)OpenStack Compute(Nova)计算服务。运行在主机操作系统上潜在的虚拟化机制交互的驱动,并提供基于Web的API功能。
 
    (2)OpenStack Object Storage(Swift) 存储服务。可扩展的对象 存储系统,可以用来创建基于云的弹性存储。
 
    (3)Image Service(Glance)镜像服务。虚拟机镜像的存储、查询和检索系统。
 
    (4)OpenStack Identity(Keystone)认证服务。为运行OpenStack Compute上的OpenStack云提供了认证和管理用户、帐号和角色信息服务,并为OpenStack Object Stor—age提供授权服务。
 
    (5)OpenStack Dashboard(Horizon)UI服务。Open—Stack的Web管理控制台,可以通过Web界面访问的方式来操作管理网络和虚拟机实例等。
 
    (6)OpenStack Quantum&Melange网络&地址管理。提供了虚拟网络和1P地址管理服务。
 
4 OpenStack各组件之间的关系
 
    0penStack项目总的来说被设计为一个“可交付的大型可伸缩的云操作系统”。为了达到这个目标,每个组成服务目的是在一起工作来提供一个完整的基础 设施即服务(IaaS)。这种集成通过每个服务提供公共应用程序编程接口(API)来实现。因为这些API被用作服务与服务之间相互协调的唯一方式,所以 也允许底层的这些服务可以任意替换,而不会影响其它服务,因为与这些服务相互通讯的API永远不会变化。这些组件最终也都提供相同的API给云的 终端用户。
 
    图2是OpenStack的六大组件的逻辑关系图。
 
图2 六大组件的逻辑关系
 
图2 六大组件的逻辑关系
 
    由图2,我们可以总结出以下几点;①Dashboard提供了一个统一的Web操作界面来访问其它的OpenStack服务;②Compute通过 Image存储和检索虚拟磁盘文件和相关元数据;③Network为compute提供了虚拟网络;④Block Storage为compute提供了存储卷;⑤Image可以将实际的虚拟磁盘文件存储到0bject Store上;⑥所有服务都要通过keystone来授权访问。
 
5 OpenStack的逻辑架构
 
    图3是OpenStack各个组件之间的逻辑关系图。
 
图3 OpenStack备组件之间逻辑关系
 
图3 OpenStack备组件之间逻辑关系
 
    由图3,可以总结出以下几点:① 终端用 户通过nova—api对话来与OpenStack Compute交互,通过glanee-api对话来与0penStack Glance交互,通过OpenStack ObjectAPI来与OpenStack swift交互;②OpenStaek Compute守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求;③OpenStack Glance与OpenStack Swift基本上都是独立的 基础架构,OpenStack Compute通过Grlance API和0biect API来进行交互。
 
    其各个组建的情况如下:①nova—api守护进程是OpenStack Compute的中心。它给所有API查询(Compute API或EC2 API)提供端点,初始化界大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查);②Nova-compute进程主要是一个创建和 终止虚拟机实力的Workder守护进程。其过程相当复杂,但是基本原理很简单:从队列中接受行为,然后在更新数据库的状态时,通过一系列的系统命令执 行;③Nova-volume负责管理映射到计算机实例的卷的创建、附加、取消和删除。这些卷可以来自很多提供商,比如ISCSI和 AoE;④Novanetwork 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);⑧Open—Stack Swift是一个单独的项目,它是分布式存储架构,能防止单点故障并支持横向扩展。它包括以下4个部分:swift- proxy,account,container和oh/ect。swift-proxy通过接收0penStack Object API或者HTTP传人的请求,接受文件上传、修改元数据或容器创建。此外,它还将提供文件或容器清单到浏览器上。swiftproxy可以使用一个可选 的缓存(通常部署在memcache中)来提高性能。account管理账户定义对象存储服务。container管理一个映射的容器(即文件夹)在对象 存储服务。对象 服务器管理实际对象(例如文件)在存储节点。
 
6 结语
 
   OpenStaek很可能成为未来云计算平台的标准,只要遵循统一的标准,用户便可以随意将自己的应用部署到不同的云平台,而不需要对应用做任何修改。 在未来统一的标准下,用户完全不用关心云服务提供商是用0penStaek构建的云还是其它平台构建的云,只需要把应用部署到云即可,然后为使用的云资源 付费。

转载于:https://www.cnblogs.com/Dennis-mi/articles/5411544.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值