基于OpenStack的云计算数据中心管理系统的设计与开发 - 图文(5)

2019-03-27 19:47

南京邮电大学2015届本科生毕业设计(论文)

通过一个nova API来对外提供服务。

Nova的功能和特点有:实例生命周期管理,管理计算资源,网络和认证管理,REST风格的API,异步的一致性通信,Hypervisor透明:支持Xen,XenServer/XCP, KVM, UML, VMware,vSphere and Hyper-V。

3.3.2 Nova架构

图3.3 Nova 架构

Nova 云架构(如图3.3)的各个组件是以数据库和队列为中心进行通信的,下面对其中的几个组件做一个简单的介绍:

(1)Queue,也就是消息队列,它就像是网络上的一个hub,nova各个组件之间的通信几乎都是靠它进行的,当前的Queue是用RabbitMQ实现的,它和database一起为各个守护进程之间传递消息。

(2)database存储云基础架构中的绝大多数状态。这包括了可用的实例类型,在用的实例,可用的网络和项目。当前广泛使用的数据库是sqlite(仅适合测试和开发工作)、MySQL和PostgreSQL。

(3)nova-compute负责决定创造虚拟机和撤销虚拟机,通过运行一系列系统命令(例如发起一个KVM实例),并把这些状态更新到nova-database中去,其过程相当复杂,但是基本原理很简单。

15

南京邮电大学2015届本科生毕业设计(论文)

(4)nova-schedule负责从queue里取得虚拟机请求并决定把虚拟机分配到哪个服务器上去。schedule的算法可以自己定义,目前有Simple (最少加载主机),chancd(随机主机分配) ,zone(可用区域内的随机节点)等算法。

(5)nova-volume负责记录每一个计算实例,相当于一个计算请求吧,并负责创建,分配或撤销持久层容器(Amazon的iSCSI,AoE等等)给这些compute instances。

(6)nova -netwok负责处理队列里的网络任务。

(7)nova-api守护进程是OpenStack Compute的中心。它为所有API查询提供一个入口。

3.3.3 Nova工作流程

为了看看nova是如何工作的,可以以启动一个实例为例来进行说明,因为启动一个新的instance涉及到很多openstack nova里面的组件共同协作[14]。

Scheduler Queue&Database Api Nova-network Nova-compute 图3.4 Nova工作流程

(1)API:处理客户端的请求,并且转发到 Queue和Database中。如:输入一个启动instance的命令api就会查看这种类型的instance是否达到最大值并给scheduler发送一个消息(实际上是发送到Queue中)去运行这个实例。

(2)Scheduler:选择一个host去执行命令。如:Schedule:调度器接收到了消息队列Queue中API发来的消息,然后根据事先设定好的调度规则,选择好一个host,之后,这个instance会在这个host上创建。

(3)nova-compute :启动和停止实例,附加和删除卷等操作。如:创建一个instance的操作是由Compute完成的,而这个过程中computer组件与Glance-api

16

南京邮电大学2015届本科生毕业设计(论文)

交互得到所需的instance镜像。

(4)nova-network:管理网络资源,分配固定IP。

3.4 OpenStack网络服务——Neutron 3.4.1 Neutron介绍

OpenStack网络的核心理念就是通过多个其他元素(如虚拟机、系统管理模块以及其他连接的网络)为用户提供一组一致性的网络服务[16]。从本质上讲,OpenStack网络创建了一个一致的逻辑通讯层,而其他元素可以有效地、大规模地使用这个逻辑层。

这一模式是在OpenStack Neutron服务器中实现的,它与OpenStack Nova软件管理的虚拟机(即计算服务)以及上述提及的其他元素进行交互[17]。用户通过OpenStack的Horizon GUI与网络功能进行交互,而其他的管理系统和网络则通过使用Neutron API与网络服务进行交互。

Neutron使用RESTful网络服务和HTTP与其客户端进行通讯。它使用JavaScript对象表示(JSON)和XML对其运行进行建模。它是专为随时间推移而实现灵活增加功能的目标而设计的,它可扩展至一系列的部署并使用易于理解的开放式软件以便于能够更高效地把多方功能整合至OpenStack网络环境。请求、响应以及其他的逻辑步骤都有明确的定义,并且这些逻辑步骤都可用于一些必要功能的创建与管理,进而支持网络服务实施[15]。

在其目前的分布中,OpenStack Neutron混合实施了第二层的VLAN和第三层的路由服务,它可为所支持的网络提供防火墙、负载平衡等扩展功能。网络中的虚拟机来自于虚拟机管理程序[7]。

此外,通过使用支持IPv4和IPv6的强大地址管理功能,Neutron可在一个站点内实现虚拟机的灵活部署。它采用了一个逻辑的子网架构,IP块表示可以寻址虚拟位置和到达其部署结构中任何的位置。这种结构类似于在众多Neutron IP组网中所使用的子网技术,它通常是从与子网相关的物理端口抽取出来的。在覆盖网络中,它可被用作逻辑关联机制,以便于为不同用户和应用程序分离网络流量。通过使用这种方法,云计算供应商可以分别实现多个租户的通讯并为不同应用程序部署拓扑,例如多层服务器组合以处理一个整体应用程序的不同部分。

17

南京邮电大学2015届本科生毕业设计(论文)

Software-define Networking service L3-agent Neutron-server Plugin-agent Message queue Dhcp-agent 图3.5 Neutron架构

如图3.5所示:

(1)neutron-server 是 OpenStack Networking 服务器的主要流程。它是一个 Python 后台进程,将用户请求从 OpenStack Networking API 中继到配置的插件。

(2)neutron-dhcp-agent 向所有租户网络提供动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 服务。

(3)neutron-l3-agent 执行 L3/网络地址转换 (Network Address Translation) 转发,以支持网络网络访问租户网络上的 VM。

一个特定于插件的可选代理 (neutron-*-agent) 在每个虚拟机管理程序上执行本地虚拟交换机配置。

3.4.2 Neutron 网络创建过程

Neutron 网络目的是为 OpenStack 云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。另外,Neutron 提供 API 来实现这种目标。Neutron 中用户可以创建自己的网络对象,如果要和物理环境下的概念映射的话,这个网络对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口[7]。

在 Horizon 上创建 Neutron 网络过程如下:

首先管理员拿到一组可以在互联网上寻址的 IP 地址,并且创建一个外部网络和子网。

租户创建一个网络和子网。

18

南京邮电大学2015届本科生毕业设计(论文)

租户创建一个路由器并且连接租户子网和外部网络。 租户创建虚拟机。

3.5 本章小结

本章首先介绍了OpenStack的概念架构和访问流程对OpenStack的整体运行原理有一个大致的了解,之后详细介绍了OpenStack的三大服务:OpenStack认证服务Keystone、OpenStack计算服务Nova 、OpenStack网络服务Neutron,对每一种服务的架构、访问流程以及实现原理都做出了详细的介绍。

19


基于OpenStack的云计算数据中心管理系统的设计与开发 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福州市凤坂河综合治理工程施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: