OpenStack之二

原创 2015年07月08日 21:45:14

OpenStack组件及功能

一个云计算系统肯定会有一些重要的模块,那么如何让这些模块相互协调工作,下面我们一起了解一下OpenStack的几个核心部件,了解了这些个核心部件就明白为什么会需要这些部件了。

虚拟机管理系统Nova

首先来看一个云计算系统粗略的结构图:
云计算系统粗略结构图
各个模块的作用:
- Web UI:主要是呈现给管理员使用。要求:界面简洁、流程简单、稳定。
- Nova:主要负责用户、权限管理;数据库交互;最主要的还是虚拟机资源管理。
- Hypervisor:虚拟机管理软件,比如:KVM/Libvirt、XEN等开源软件。
- 操作系统:采用Linux。
Nova这一层是最核心、最复杂的一层。因为这一层里面整合了太多的模块与功能。这一层和它的上层也是需要我们自己动手的,下面两层均有相关的开源软件可以实现。

磁盘存储系统Glance与Swift

开发人员可能都装过虚拟机,安装虚拟机从ISO安装也是很麻烦的,而在互联网应用中,往往需要大规模地创建新的虚拟机。如果都从ISO进行安装,无疑会浪费很多时间。
出现了重复的工作,就会有新的方式可以代替,一种简单的虚拟机安装方式:复制Image(虚拟机的磁盘)。创建好一份之后,直接复制Image作为新建虚拟机的Image就ok。采用这种方式,用户在使用云计算系统的时候,可以定制一个自己的Image,然后上传到云系统中,就可以创建自己定制的虚拟机系统了。
虚拟机Image的传输常常需要占用大量的网络带宽。如果所有的Image的传输都通过Nova模块来进行,那么Nova接口的压力会变的很大。所以,应该考虑把Image的管理独立出来,成为一个独立的Image管理系统,在OpenStack中称为Glance。无论是用户Image的传输以及管理,或者Nova内部对Image的请求,都转向Glance。虚拟机Image的管理则有Glance全权代理了。
Glance主要的功能是管理Image。为了满足各式各样的复杂的需求,比如:
- 有的公司有着独有的存储系统(包括硬件和软件)
- 大型企业需要高可靠性、高稳定性的存储需求,但是没有自己的存储系统。
- 小企业与开发人员需要简单易用的存储系统。
针对这一系列的不同需求,Glance本身并不实现存储功能,它只是提供了一系列的接口来调用底层的存储服务。我们就可以根据需要在Glance后端接上存储系统,从而提供提供给云计算系统作为Image存储服务了。如果没有自己的存储系统,Glance后端可以使用开源免费的Swift存储系统。对于一些觉得直接基于Linux文件系统上复制一下就可以的企业,Glance的后端存储也可以直接接入Linux文件系统。通过上面的介绍,Glance的结构和功能就很清楚了。

虚拟机网络管理Quantum

在大型的互联网应用中,虚拟机都不是单独使用的,往往需要组件局域网,甚至需要划分子网,以实现虚拟机与主机,及虚拟机之间的通信。传统的组网方式都是直接基于硬件进行操作,但是,在解决虚拟机的网络问题的时候,并不需要也不能采用硬件手工操作方式了。需要软件来定义虚拟机的网络,即Software defined network(SDN)。SDN在各个商业公司里面,都是作为重要的商业软件,此外,SDN业界也没有明确统一的标准。因此,SDN软件除去商业利益的争夺以外,同时还意味着标准定义的争夺。
虚拟网络如此重要,所以在云计算的虚拟网络管理中,也将其从Nova中独立了出来,OpenStack称为Quantum
参照Glance的设计原理与经验,针对下面这些不同的需求:
- 有的企业可能使用私有的网络设备以及自己定义的SDN软件。
- 有的企业有SDN软件的需求,但是并没有这样的软件。
- 小型环境或开发人员有时候只需要简单的网络环境
Quantum采用代理模式是一个较好的选择。那么使用可以根据自己的情况,在Quantum的后端选择接入自己的设备,或者采用SDN的开源实现OpenSwitch,或者直接采用Linux bridge桥接网络。

下面是OpenStack的整体架构图:
OpenStack的整体架构图

出自:OpenStack开源云

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

OpenStack建立实例完整过程源码详细分析(15)----依据AMQP通信架构实现消息接收机制解析之二

此片博文继续上一篇博文的工作,继续对/nova/server.py中类Service下的方法def start(self)进行解析,来实现对Nova下的AMQP的消息消费者机制的解析工作。 2.3 语...

OpenStack建立实例完整过程源码详细分析(13)----依据AMQP通信架构实现消息发送机制解析之二

这篇博文来继续对方法def cast(conf, context, topic, msg)进行解析,首先来看这个方法的源码: def cast(conf, context, topic, msg, ...

OpenStack Swift源码分析(2)----swift服务启动源码分析之二

继续看方法def start(self, **kwargs): def start(self, **kwargs): """ 启动一个服务...

“让云计算落地”系列之二:驯服OpenStack这匹野马

OpenStack是没有驯服的野生千里马,日行千里,可得套上缰绳让马听话了才行,那这活儿又有谁能接得了呢?...
  • pkuair
  • pkuair
  • 2017年04月11日 17:58
  • 471

OpenStack Cinder源码分析之二

同前~~~

【OpenStack源码分析之二】RabbitMQ分析

前言正在捋Nova的代码,从服务启动的入口这块就用到了第三方的Oslo_messaging库,可能也是因为消息中间件确实是整个软件的瓶颈,Oslo_messaging试图隔离出消息中间件和应用之间的接...

OpenStack云计算快速入门之二:OpenStack安装与配置

原文: OpenStack云计算----快速入门(2)     该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装。 ...
  • myjava6
  • myjava6
  • 2014年04月23日 10:38
  • 770

OpenStack云计算快速入门之二:OpenStack安装与配置

第二部分 OpenStack安装与配置 一、引言 本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1、Server2和Client1,之后的各章也...

Matlab的机器学习四件套之二

  • 2017年11月10日 11:01
  • 1.46MB
  • 下载

c语言指针知识之二

  • 2016年11月18日 14:23
  • 1.92MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenStack之二
举报原因:
原因补充:

(最多只允许输入30个字)