OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分。Folsom改进了现有代码的可用性和稳定性,包括185个新功能,最主要是虚拟网络方面的功能,而且这也是新成立的OpenStack基金会推出的第一个软件版本。

两年前OpenStack基于NASA的Nova项目和Rackspace的Swift项目合并得以建立,而今OpenStack已经成为云计算领域的一颗新星,继2012年四月发布Essex版本之后,在今年九月底OpenStack第6版Folsom正式发布,本文简要分析了OpenStack Folsom的架构。

OpenStack最新的组件

OpenStack目前有7个核心组件:Compute(计算), Object Storage(对象存储),Identity(身份认证),Dashboard(仪表盘), Block Storage(块存储), Network(网络) 和 Image Service(镜像服务) 。下面将依次进行解释:

Object Storage(代号为“Swift”) 允许进行存储或者检索文件。目前已经有几好家公司开始提供基于Swift商业存储服务,这些公司包括KT,Rackspace公司(Swift项目的发源地)和Internap,而且很多大公司内部也使用Swift来存储数据。

Image Service(代号为“Glance”) 是一个虚拟机镜像的存储、查询和检索系统,它提供了一个虚拟磁盘映像的目录和存储库,这些磁盘映像常常广泛应用于OpenStack Compute之中,而且这种服务在技术上是属于可选的,任何规模的云都适用于它。

Compute(代号为“Nova”) 根据需求提供虚拟服务。Rackspace公司和HP提供商业计算服务正是建立在Nova之上,Mercado Libre和NASA(Nova项目的起源地)内部也是使用的Nova。

Dashboard(代号为“Horizon”) 为所有OpenStack的服务提供了一个模块化的web-based用户界面。使用这个Web GUI,可以在云上完成大多数的操作,如启动实例,分配IP地址,设置访问控制等。

Identity(代号为“Keystone”) 为所有的OpenStack服务提供身份验证和授权。它还提供了一个在特定OpenStack云服务上的服务目录。

Network(代号为“Quantum”) 在接口设备之间提供“网络连接作为一种服务”,而这些接口设备主要靠其他的OpenStack服务进行管理(最有可能是Nova)。该服务允许用户创建自己的网络,然后连接接口。Quantum提供一个可插拔的体系架构,它能支持很多流行的网络供应商和技术,Quantum是Folsom版本中的新项目。

Block Storage(代号为“Cinder”) 提供稳定的数据块存储服务。这个项目的很多代码最初是来自于Nova之中(就是the nova-volume service)。但是请注意,这是块存储(或者volumes),而不是类似于NFS或者CIFS文件系统,Cinder在Folsom中也是一个全新的项目。除了这些核心项目之外,也有一些“孵化”项目,未来可能会考虑列入到OpenStack的核心项目之中。

对比AWS的服务

虽然所有的OpenStack服务都具有自己的特色,但是很多人还是希望能看到它与AWS相似的部分,而且Amazon一直也是OpenStack的重要对手。

  • Nova在概念上类似于AWS中的EC2服务,不过事实上,它拥有很多种方法可以实现对EC2 API的兼容性。
  • Swift在概念上类似于S3服务,不过swift具有很强的扩展性、冗余和持久性。
  • Glance提供了很多与Amazon AMI catalog相似的功能。
  • Cinder提供类似于EBS块存储服务。

概念架构

OpenStack项目成立的目的是“提供一个大规模的可扩展的云操作系统”。要做到这一点,每一个组成服务的设计都要精心考虑,这样才能打造一个完整的IaaS平台。从概念上,我们可以描绘出各种服务之间的关系:

  • Dashboard("Horizon") 提供了一个Web前端到OpenStack其他的服务的界面
  • Compute("Nova") 存储和检索虚拟磁盘(images)和Image上相关的元数据(Glance)
  • Network("Quantum") 提供虚拟网络
  • Block Storage("Cinder") 提供存储。
  • Image("Glance") 在对象存储(Swift)上能够完成虚拟磁盘文件的存储
  • 所有的服务进行身份验证(Keystone)

这是一个程式化的简化版的体系结构视图,而且假定构建者使用所有的OpenStack服务进行最常见的配置操作,不过它也仅仅是显示“操作员”看到的云——并没有显示出云用户具体的使用过程,比如说用户如何进行直接的对象存储。

逻辑架构

正如你能想象到的那样,逻辑结构要比概念架构复杂得多的多(如图所示)。正如任何面向服务的架构图一样,如果想说明所有可能的服务通信组合,图就会迅速“乱成一团”。下面的图,仅仅显示了一个最常见的基于OpenStack的云架构。当然,随着OpenStack支持技术种类的多样化,它并不能代表唯一的架构图。

该图与上述的概念架构图是一致的:

  • 最终用户可以通过一个公共的Web界面(Horizon)进行交互或者通过其API直接访问每一项服务
  • 所有的服务进行身份验证都是通过一个共同的来源(通过Keystone)
  • 个人服务通过他们公共的API进行交互(除了那些拥有特别权限的地方才需要管理员的命令)

下面的章节中,将会深入到每个服务的架构之中进行说明。

Dashboard

Horizon是一个模块化的Django Web应用程序,它为终端用户和系统管理员提供界面来管理OpenStack服务。

和大多数Web应用程序一样,该体系架构是也是非常简单:

  • Horizon通常使用Apache上的mod_wsgi进行部署。代码本身被分离成可复用的python模块,通过逻辑(使用不同的OpenStack API进行交互)和presentation(对不同的站点很容易实现定制)实现。
  • 一个数据库,不过因为它主要依赖于其他的数据服务,所以本身存储的数据非常少。

从网络架构的角度来看,这项服务需要客户的访问而且要能够跟每项服务公共的API进行交互。如果您希望使用的管理员功能(即其他的服务),也需要连接到他们的Admin API端点(这不是客户能随意访问的)。

Compute

Nova是OpenStack中最复杂的分布式组件,它通过大量的进程合作,将最终用户的API请求发送到正在运行的虚拟机之上。以下是这些进程的列表及其功能的描述:

  • nova-api:接受和响应最终用户Compute API的请求。它支持OpenStack Compute API,Amazon EC2 API和一个特殊的Admin API。它还引发多数业务流程的活动(如运行一个实例),并实施一些政策(主要是配额检查)。
  • nova-compute:主要是一个人工守护进程,它可以通过虚拟机管理程序的API(XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)来创建和终止虚拟机实例。虽然通过该进程做的事情是相当的复杂,但是它的基础原理却是非常的简单:接收队列中的动作,然后执行一系列的系统命令(如启动KVM实例),同时更新数据库中的状态。
  • nova-volume:给虚拟机分配额外持久化的存储,管理持久卷到计算实例的创建,连接和分离。一个新的OpenStack项目,Cinder,将最终替代nova-volume功能。在发布的Folsom版本中,nova-volume和Block Storage service(块存储服务)有类似的功能。
  • nova-network:该人工守护进程与nova-compute和nova-volume非常相似。它接受队列中的网络任务,然后执行任务操纵网络(如设立桥接接口或更改iptables规则)。不过该项功能被移植到Quantum之中,已经成为一个独立的OpenStack服务。
  • nova-schedule:从概念上说是OpenStack Nova中最简单的一段代码:从队列上得到一个虚拟机实例请求并且决定它应该在哪里运行(特别是它应该运行在哪台计算服务器主机之上)
  • queue:提供了一个守护进程之间传递消息的中央枢纽。当前由RabbitMQ实现,理论上可以是Python的ampqlib支持的任何AMPQ消息队列。新的Folsom版本支持Zero MQ
  • SQL database:存储云基础设施的编译时和运行时的状态。这包括可用的实例类型,在使用中的实例,可用的网络和项目。从理论上讲,OpenStack Nova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库仅仅有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。
  • Nova还提供控制台的服务,让最终用户通过代理服务器访问他们的虚拟实例的控制台。这涉及到多个守护进程(nova-console,nova-vncproxy和nova-consoleauth)。(编译/@CSDN王鹏,审校/包研)

Object Store、Image Store、Identity、Network、Block StorageFuture Projects(敬请期待Part 2部分)

原文链接:OpenStack Folsom Architecture

相关阅读:OpenStack峰会召开在即 浅析八个发展问题

OpenStack最新版本Folsom架构解析的更多相关文章

  1. OpenStack最新版本--Victoria发布亮点与初体验

    前言 `OpenStack`是一个云操作系统,可控制整个数据中心内的大型计算,存储和网络资源池,所有资源均通过具有通用身份验证机制的`API`进行管理和配置. 还提供了一个仪表板,可让管理员进行控制, ...

  2. 企业安全04-phpstudy最新版本nginx 默认存在任意文件解析漏洞

    phpstudy最新版本nginx 默认存在任意文件解析漏洞 一.漏洞描述 phpStudy是一个PHP调试环境的程序集成包.该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ ...

  3. openstack发展历程及其架构简介

    1.0 Openstack介绍 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也 ...

  4. Openstack Swift 原理、架构与 API 介绍

    OpenStack Swift 开源项目提供了弹性可伸缩.高可用的分布式对象存储服务,适合存储大规模非结构化数据.本文将深入介绍 Swift 的基本设计原理.对称式的系统架构和 RESTful API ...

  5. OpenStack Q版本新功能以及各核心组件功能对比

    OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要 ...

  6. [译] OpenStack Ocata 版本中的 53 个新功能盘点

    原文链接:https://www.mirantis.com/blog/53-new-things-to-look-for-in-openstack-ocata/ 原文作者:Nick Chase, Ra ...

  7. OpenStack Nova虚拟机创建流程解析

    https://yikun.github.io/2017/09/27/OpenStack-Nova%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%9B%E5%BB%BA%E6%B5 ...

  8. [转]毕设- 深入HBase架构解析(一)

    深入HBase架构解析(一)   前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Archi ...

  9. DedeCMS V5.7sp2最新版本parse_str函数SQL注入漏洞

    织梦dedecms,在整个互联网中许多企业网站,个人网站,优化网站都在使用dede作为整个网站的开发架构,dedecms采用php+mysql数据库的架构来承载整个网站的运行与用户的访问,首页以及栏目 ...

随机推荐

  1. 从头学起android<android基本的绘图.四十六.>

    在一般的图形渲染用户通常只需要重写onDraw()该方法可以是.但是假设,才能真正完成绘图操作.此外,我们需要掌握的四大核心经营类: android.graphics.Bitmap:主要表示的是一个图 ...

  2. windows server 2008见安装IIS方法(解决)

    windows server 2008见安装IIS方法(解决) 刚开始有点蒙,后来才知道原来如此.! . 右键点击[我的电脑]--[管理]--[字符]--[加入角色]--仅落后win7像.啊! 版权声 ...

  3. [Shell]输入參数

    获取shell脚本的输入參数,而且推断得到的參数. #!/bin/bash #title: testPT.sh #atuhor: orangleliu #date: 2014-08-08 #desc: ...

  4. android layout物业介绍

    android:id 为控件指定对应的ID android:text 指定控件其中显示的文字,须要注意的是,这里尽量使用strings.xml文件其中的字符串 android:gravity 指定Vi ...

  5. C# 实现对接电信交费易自动缴费 续(winio/winring0 自动填密码)

    原文:C# 实现对接电信交费易自动缴费 续(winio/winring0 自动填密码) 自动填密码大家可能都不莫生,最有名的应该是 按键精灵 只要是一个可以输入的地方都可以能过按键精灵来完成输入.我今 ...

  6. 【Android界面实现】可旋转的汽车3D模型效果的实现

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 今天要给大家介绍的是怎样实现可旋转的汽车3D模型. 先看实现效果 这仅仅是静态图,实际上,这个模型是能够依据 ...

  7. Hibernate各保存方法之间的差 (save,persist,update,saveOrUpdte,merge,flush,lock)等一下

    hibernate保存  hibernate要保存的目的是提供一个方法,多.它们之间有许多不同之处,点击此处详细说明.使得差: 一.预赛: 在所有.阐释.供hibernate,,transient.p ...

  8. 绑定枚举到dropdownlist

    pageTools.BindEnumToDropdownList(typeof(enumDealerArea), ddlBmwArea, new ListItem("--请选择--" ...

  9. 怎样才能充分利用SQL索引

    原文:怎样才能充分利用SQL索引 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了. 本文 ...

  10. SQL Server调优系列基础篇(常用运算符总结)

    原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...