两年前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部分)

转载于:https://www.cnblogs.com/qq78292959/archive/2012/10/29/2745096.html

OpenStack最新版本Folsom架构解析(转)相关推荐

  1. OpenStack(Kilo版本)基础架构学习笔记

    一.OpenStack项目简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack  ...

  2. OpenStack最新版本:Ussuri发布亮点

    前言 又到了半年一次的OpenStack的发布日期,至今发布已有21个版本,如今已经更加稳定,更加强健.近几年,docker,k8s,serverless等新技术风头之盛可谓一时无两,而OpenSta ...

  3. OpenStack 最新版本Queens发布 中国公司贡献率排名出炉

    文章来源:OpenStack中国 2月28日,OpenStack Queens版本正式发布,这也是OpenStack自诞生以来公布的第17个版本.根据OpenStack基金会披露,为满足边缘计算,HA ...

  4. CAD软件2023最新版本-新功能解析

    数百万用户信赖的二维&三维绘图软件AutoCAD,它的版本更新是很快的,基本上一年一个版本.每次更新,CAD软件性能都会变得更好用.更稳定.更快捷.今天我们来了解一下,最新版本的AutoCAD ...

  5. openstack horizon dashboard_OpenStack最新版本:Ussuri发布亮点

    前言 又到了半年一次的OpenStack的发布日期,至今发布已有21个版本,如今已经更加稳定,更加强健.近几年,docker,k8s,serverless等新技术风头之盛可谓一时无两,而OpenSta ...

  6. OpenStack发布最新版本Ocata

    相较于新功能,最新OpenStack发行版专注于提升稳定性与性能表现.按惯例来讲,开源OpenStack基金会通常还需要几个月才会发布其云软件的最新版本.然而这一次OpenStack社区抢先推出了本轮 ...

  7. Openstack Queens版本双节点架构笔记9,Ceph安装1:

    做Ceph实验需要重新创建三个Ceph环境用到的虚拟机:(以下实验在node1,node2,node3节点做) 虚拟机初始化搭架参考:Openstack Queens版本双节点架构笔记1,虚拟机环境安 ...

  8. ubuntu20.04手动安装Openstack YOGA版本(双节点)

    目录 想说的话 双节点手动安装openstack yoga版本 环境准备 网络配置 hostname解析 测试网络连通性 NTP时间同步 所有节点安装openstack包 controller节点安装 ...

  9. 特斯拉Tesla Model 3整体架构解析(上)

    特斯拉Tesla Model 3整体架构解析(上) 一辆特斯拉 Model 3型车在硬件改造后解体 Sensors for ADAS applications 特斯拉 Model 3型设计的传感器组件 ...

  10. OpenStack高可用核心架构分析

    摘要:对任何一个分布式系统,高可用HA都是最核心的设计目标之一,而OpenStack这样一个复杂系统,高可用更是涉及到多个层面,本文重点解析了OpenStack各层次的HA设计. [编者按]本文从Op ...

最新文章

  1. Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
  2. PHP如何调取vlc播放rtsp,H5+VLC播放RTSP视频流
  3. kali-linux 完美解决sublime输入 中文
  4. noe4j 多层关系查询
  5. android头部固定悬停,Android开发上滑悬停且头部可刷新
  6. java 值 继承_java中继承的数值传递引用
  7. python 路径拼接字符串_anaconda环境变量添加 python笔记
  8. 怎么调整矩形边框宽度_PKPM:梁刚度放大通过放大系数与矩形梁转T形梁的区别...
  9. 【Mybatis】maven配置pom.xml时找不到依赖项(已解决)
  10. Js中去除数组中重复元素的4种方法
  11. centos7设置分辨率
  12. php计算排名,成绩相同需要并列算法
  13. 单片机c语言延时30s程序,单片机C语言的延时程序
  14. 红帽linux7.2安装教程,RHEL 6.2安装(超级详细图解教程) | 系统运维
  15. libxml2 安装使用
  16. 教育知识与能力·中学
  17. VUE + howler.js 播放音频
  18. JPA教程(第五章)
  19. 目标检测常用评价指标笔记
  20. 知识点01、2022版MyBatisPlus教程(一套玩转mybatis-plus) - 1.01-MyBatis-Plus简介

热门文章

  1. 大一软件工程C语言推荐书籍,大一软件工程学生,看完了谭浩强的书,越看越迷茫,感觉并没什么用,什么大程序都不会编,求指点?...
  2. 给定一个数跟数组,将小于等于该数的数组元素放在左边,将大于该数的数组元素放在右边...
  3. jdbc编程遇到文件上传
  4. CADisplaylink初解
  5. 设置windows服务依赖项
  6. JS 运算、判断优化
  7. 【TFS 2017 CI/CD系列 - 01】-- Agent篇
  8. 20155226-虚拟机与Linux之初体验
  9. ACM题目————STL练习之众数问题
  10. DG - 开启Active Data Guard