热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

OpenStack架构分析

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

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

OpenStack架构

OpenStack的架构示意图和目前已实现情况

蓝色是要 openstack概念上的架构图,红色是目前已实现的。

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的核心项目之中。

部署

部署时,除了Dashboard必须部署在 nova-api server上以外,所有的其它进程都可以部署在不同的机器上。

OpenStack提供了基于Puppet 的自动部署工具。经过简单配置,就可以把各个组件部署到不同机器上。

OpenStack的镜像创建并没有纳入其职责列表。
你可以使用Ubuntu的已有image (https://help.ubuntu.com/community/UEC/),或者直接重新自己通过KVM安装 http://cssoss.wordpress.com/2011/04/27/openstack-beginners-guide-for-ubuntu-11-04-image-management/

网络模型

Flat Network Manager, Flat DHCP Network Manager, VLAN Network Manager.

VLAN Network Manager这种方式适合于共有云。

在私有云方面,IP充足,而且为了方便的互联互通,简单的Flat结构网络比较适合。

OpenStack支持Floating IPs,该特性可以方便的通过更改IP来Failover(容错转移)或者迁移。

CAAS

Cluster as a Service: Managing multiple clusters for openstack clouds and other diverse frameworks

OpenStack无法独自满足集群计算的需求。目前有一种方案,把集群计算部署放到IaaS/PaaS 的下一层,我们称这种解决方案是 CaaS.

当前,在很多机构或者学校,部署了不同的集群解决方案,但是他们使用的频率并不是很高,因此资源利用率不高的情况下,造成了很大的浪费(比如电费,PC)。

设计目标:

o每个集群资源都可以动态分配

o系统隔离性好

o集群有足够的性能和容量

设计:

oIaaS/PaaS层与CaaS 隔离

oIaaS/PaaS层可联机扩展

oCaaS 层的镜像可通过容器有效被处理

oCaaS 层是通过 webservice提供服务

o可通过 VLAN 网络隔离

o自动安装

在这个解决方案中是通过LXC的方式来实现系统隔离

注:

LXC, LINUX的容器工具,他使用cgroup把系统资源分组进行隔离。
它不需要指令级模拟。因此相对其他虚拟化技术性能更高。
因为他必须以进程运行执行文件的方式,因此不支持windows.

架构图

在CaaS中构建 OpenStack
Layers

oCaaS(Physical) Physical layer. OS is installed on physical machines.

oCaaS(LXC) LXC layer. A Tagged VLAN isolates LXC containers.

oIaaS Cloud layer.OpenStack(nova).

过程:

1.在物理机上安装LXC

2. 配置VPN网络

3. 执行nova的自动部署工具

重复1~3,在不同的机器上重复的安装OpenStack的计算节点

运行时架构 系统内部交互图

Swift    也是独立组件,对系统运行没影响。

nova-api 是对外的接口。

Glance   是独立组件,供 nova-compute 下载镜像使用。

核心组件:

Scheduler:根据当前资源使用情况,决定计算节点分布到哪台计算节点上。目前实现很薄,目前已支持插件方式扩展,方便后面可能有采用更复杂算法。

Compute:  计算节点,使用虚拟化技术,host 虚拟机

Network:  网络管理,给虚拟机分配网络和管理,使外部PC 可以可直接访问

Volume:   给虚拟机分配额外持久化的存储

运行时系统间交互都是通过异步消息的方式和DB进行交互。

运行时图

管理和使用是走两个通道的。管理必须要经由nova-api转发过去。而运行时,直接连接计算节点上的虚拟机即可。


推荐阅读
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 本文介绍如何在Linux Mint系统上搭建Rust开发环境,包括安装IntelliJ IDEA、Rust工具链及必要的插件。通过详细步骤,帮助开发者快速上手。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
author-avatar
林海书6758
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有