APP下载

OpenStack之Nova服务

2018-09-10毛军礼

计算机与网络 2018年3期
关键词:私有云

毛军礼

摘要:云计算是近年来IT领域非常热门的研究方向,OpenStack作为开源的云计算平台得到了广泛地应用,重点对OpenStack中的Nova服务进行介绍。描述Nova服务在OpenStack中的地位及与其他服务之间关系的基础上,分别对Nova组件的逻辑架构、运行架构和部署架构进行了简要说明,并对Nova服务中的消息队列、Nova Network组件和Nova Scheduler组件的工作原理进行了进一步阐述,提出了一种基于OpenStack的适合实验室或中小型企业的私有云构建方案,并描述了其安装部署流程。

关键词:OpenStack;Nova;Nova Network;Nova Scheduler;私有云

中图分类号:TP393文献标志码:A文章编号:1008-1739(2018)03-60-4

Nova Service of OpenStack

MAO Junli

(The 54th Research Institute of CETC, Shijiazhuang Hebei 050081, China)

0引言

隨着云计算时代的到来,出现了各种基于IaaS层的云管理平台。OpenStack作为开源云管理平台软件的代表,得到了越来越多企业的应用和个人开发者的支持。OpenStack平台是为了让企业构建灵活高效的云计算环境,打造一个部署更加灵活、功能丰富且高扩展性的云计算平台。OpenStack平台的核心组件就是Nova服务,也就是通常所说的OpenStack计算服务,Nova服务是OpenStack平台的中心控制单元,提供虚拟机实例的运行功能、云网络的管理功能、用户控制、资源管理和访问管理的云部署功能。

1 Nova在OpenStack框架中的位置

OpenStack的功能由多个子项目协同实现,分别是Nova、 Swift、Keystone、Neutron、Glance及Horizon等,其中,Nova是核心管理部分[1-2]。在OpenStack云平台系统中,Nova服务作为整个系统最为核心的模块,完成虚拟机实例全生命周期管理、云平台网络管理及云平台存储管理等有关的管控能力。

OpenStack由多个单元组成:①Heat单元的作用是编排云;②Horizon组件为其他云服务提供一个基于Web的操作界面;③Ceilometer负责监视其他模块,其他模块通过Keystone进行身份认证;④虚拟机(VM)是实现云计算的核心,Nova负责创建VM;⑤Glance提供镜像给虚拟机;⑥Cinder提供快存储服务给虚拟机;⑦Neutron提供虚拟机的网络活动及服务;⑧Swift负责OpenStack的对象的存储,可保存Glance的镜像文件和Cinder的备份卷。

Nova组件的主要任务是完成虚拟机的创建和维护,以及云平台的管控和服务提供等。Nova通过与Keystone组件交互获得认证授权服务、与Glance组件交互获得虚拟机镜像及与Horizon组件交互获得用户和管理员接口。

2 Nova逻辑架构

Nova虽然是OpenStack中的一个组件,但是Nova与OpenStack整个系统的设计理念相当一致。Nova也是根据功能的不同,被划分成为不同的模块来实现不同的任务,Nova逻辑架构如图1所示。

①Nova-API:API服务守护进程,是OpenStack计算服务的核心,提供查询入口给其他所有的API,对大部分部署活动进行初始化,以及配置一些策略;

②Nova-Compute:计算单元守护进程,主要负责VM的创建和停止;

③Nova-Volume:卷服务进程,负责映射到计算机卷的创建、追加、作废及删除等管理活动;

④Nova-Network:网络控制守护进程,负责从消息队列中获取网络相关的作业,通过实现相关的程序以操控网络;

⑤Nova-Scheduler:调度管理后台进程,负责调度选择计算节点,以启动新的VM运行实例,通过特定的计算模型和算法从计算资源池中选择合适的计算节点作为可调度的资源;

⑥Nova-Database:利用基于SQL的集中式数据库,用于存储云基础平台中的绝大多数编译和运行时的状态数据;

⑦Queue:提供中心hub,是整个Nova组件中的消息中枢,为守护进程传递信息。

OpenStack的开发方、系统使用人员或系统其他组件通过Nova-PAI作为调用入口,Nova内部的组件都是通过消息队列或数据库来实现API的调用和消息的传递。

3 Nova运行架构

Nova-API在Nova服务中是重要的关键单元,为其他组件访问提供标准化的统一接口,计算资源服务、存储资源服务及网络资源服务等模块都是通过API接口来执行服务。API接口之间可以相互调用,在OpenStack中,计算服务通过调用存储服务和网络服务的API接口对外提供服务,虚拟机创建的时序图如图2所示。

①创建VM:VM实例的建立需通过调用Nova-API提供的接口来实现,Nova-API服务单元进行参数校验和用户合法性校验,根据所要创建的VM的CPU、内存、磁盘和网络等要素信息,Compute-API服务单元访问虚拟机实例数据库。

②调度:通过Nova-Scheduler和Compute-API单元配合,确定新建的VM实例运行在的哪个物理主机上,VM实例的调度消息将通过Compute-API接口以远程过程调用的模式传递给消息队列。

③订阅调度消息:Nova-Scheduler单元通过订阅调度消息来接收包含调度信息的消息。收到调度消息之后,Nova-scheduler单元在所有可用的计算节点中选择一个物理主机运行新创建的虚拟机实例,消息队列将收到Nova调度单元传来的VM的基础消息和物理主机数据。

④部署:物理主机订阅并收到调度消息,通过调度消息中所包含的要素创建并运行虚拟机。

⑤分配IP:VM实例建立完成以后,Nova-Compute单元调用Network-API接口,把VM实例信息和网络信息统一发送给消息队列。

⑥订阅网络消息:Nova-Network订阅并将接收到网络的相关信息,Nova-Network结合DHCP给新创建的虚拟机实例分配IP地址。

⑦完成网络分配。

4 Nova部署架構

Nova组件的安装配置和布设非常灵活便捷,常用的有以下几种部署架构:

①单节点架构:在单台服务器节点上安装部署所有的Nova服务组件,这种部署方式通常用于实验室场景,或者开发;

②双节点架构:2台服务器,一台安装配置作为云控制器节点,另一台安装配置作为ComputeNode,ComputeNode运行Nova-Compute,云控制节点运行所有Nova的其他服务组件;

③多节点架构:在双节点架构的基础上,将Nova-Compute部署在一台单独的服务器上,为了增加更多的Compute Node,在新加的服务器上拷贝nova.conf配置文件,即可形成多节点的部署架构。

5消息队列

在Nova组件中,所采用的消息队列是AMQP高级消息队列协议[3-5],是处于应用层的一种协议规范,基于异步消息传送为基础。通常,AMQP协议的服务器简称为消息队列,OpenStack通过消息队列这个桥梁沟通其计算节点、网络节点、存储节点以及各个不同的API服务组件和调度模块之间的通信。一般利用RabbitMQ技术来实现平台中的AMQP协议,采取远程过程调用(RPC)方式完成Nova服务各单元之间的消息传递和API接口调用,其调用模式类似于RSS的订阅和发布模式,AMQP在OpenStack中的应用架构如图3所示。

OpenStack架构对外提供的接口均为REST API标准接口,通过AMQP消息队列完成OpenStack框架内部各个组件之间的通信。

6 Nova Network组件

Nova-Network单元是OpenStack平台的网络单元,负责云平台VM集群之间及内部虚拟网络平台与外部公网平台之间的互联互通。

OpenStack平台的网络模型有Flat、Flat DHCP和VLAN三种网络模型,默认采用VLAN模式。这几种网络模式可以共存于一个OpenStack平台,采取分片式网络管理解决方案,根据不同网络区域的具体需求采用不同的网络模型。

①Flat:全部创建的VM实例都通过人工配置好的网桥连接到相同的虚拟网络中,计算节点网关的IP地址配置为Nova网络组件所在节点的IP地址。在开启虚拟机时,将VM实例创建时手工配制的IP地址加注到VM镜像中。通过对新建的VM实例进行地址翻译和转换,实现云平台和外部网络平台的互通。

②Flat DHCP:该模式的运行方式类似于Flat模式,从IP地址资源池中选取IP地址分配给虚拟机实例,和Flat类同,该网络模型为扁平式网络,所有创建成功的虚拟机实例都和相同的网桥相关联。与Flat模式不同的是,该模型多运行了一个DHCP服务,并与以太网设备建立网桥,通过DHCP服务为虚拟机实例动态分配IP和回收IP。

③VLAN:VLAN网络模型为默认的网络模式,通过为每个子项目创建独立的VLAN、网桥和子网,第一步创建VLAN和网桥,第二步配置VLAN的IP地址,将VLAN加入进独立网桥,第三步将虚拟机实例的虚拟网卡加入到独立网桥中,这样,同在一个组织的虚拟机实例均隶属于相同的虚拟局域网络中,这些项目所能获得的IP地址资源均为私网网段。

7 Nova Scheduler组件

Nova-Scheduler是Nova的资源调度器,负责选择合适的节点响应VM的请求,通过API提供接口给Nova的其他组成单元。Nova调度单元由一组Python文件构成,Nova-Scheduler调度流程如图4所示。

Nova-Scheduler单元采用的调度流程如下:

①启动调度进程:当接收到用户创建VM的请求后,Nova调度组件启动Nova默认的过滤器FilterScheduler;

②过滤主机列表:FilterScheduler获取全部主机列表,根据配置文件依次调用过滤程序,按照过滤属性进行过滤,最后选择合适主机创建指定数目的虚拟机;

③权值计算:将过滤后的主机节点逐个计算权值,OpenStack提供了2种策略来支持权值计算;

④权值排序并响应请求:根据计算出的权值对主机列表排序,根据用户请求选择适当数量的权值,最小的主机响应请求创建或更改虚拟机,并将请求处理结果返回给Nova-API。

8基于OpenStack的私有云平台部署实验

为满足科研实验室以及中小企业不同用户和不同阶段的需求,为其提供高可用性云服务,本文提出一种基于OpenStack的私有云计算平台建设思路[6]。为了提供高可用的云服务,需要在虚拟镜像中集成多种开发环境和开发工具,该私有云构建方案包括存储节点、控制节点和计算节点,如图5所示,Swift单元主要部署在存储节点上,Keystone、Glance、Horizon和Nova(不含Nova-Compute)单元均部署在控制节点上,可以采用一台或多台服务器,Nova-Compute组件部署在计算节点上。

根据企业私有云部署方案进行安装部署过程分为6个步骤,包括Keystone、Swift、Glance、Nova和Horizon单元的部署及定制开发环境,如图6所示。

①安装Keystone组件,对各项服务进行授权以便顺利使用,例如对计算、存储和镜像等服务进行注册,Swift组件提供分布式云存储服务。

②Glance组件通过建立数据库以存储镜像的元数据、管理镜像的上传、删除及验证等,实现虚拟机镜像管理的工程。

③Nova组件是核心部分,较为复杂,包括虚拟机实例、网络及云硬盘等的管理,Nova组件安装配置完成后需要安装KVM虚拟机工具,Nova开启VM实例需通过第三方软件来实现。另外,为了保证时间同步,以控制节点作为时间基准,所有计算节点的时钟均同步到控制节点。

④Horizon组件为用户提供Web界面服务,客户端通过该服务即可使用云平台。

管理员为私有云平台定制所需镜像的必要条件是其具备了控制节点、计算节点和镜像服务,可以接受用户的使用需求,提供虚拟化实例。根据用户的开发需求,为镜像定制软件和服务,安装所需的开发环境在虚拟机上,并开启需要的服务,用户实例化该镜像后,可以便捷地使用所需要的软件平台服务,不用每次都重新安装软件和启动服务,有效地提高了工作效率。

9结束语

本文通过对OpenStack中核心组件Nova进行全面分析解剖,对其工作原理进行了详细地阐述,对深入了解和使用OpenStack具有重要的意义,并提出一种简易的实验室或小型企业私有云的构建方案以及安装部署流程,利用开源的OpenStack软件快速构建私有云平台,为科研工作或企业用户提供弹性计算服务,并通过在虚拟镜像中集成各种开发环境和开发工具,提高云服务的可用性。

参考文献

[1]李知杰,赵健飞.OpenStack开源云计算平台[J].软件导刊, 2012(12):10-12.

[2]赵保华.OpenStack构建下的云计算平台实现与研究[J].激光杂志,2014,35(11):117-119.

[3]郑晨.基于OpenStack的移动设备消息中间件研究与实现[D].沈阳:东北大学,2013.

[4] Vinoski,S.Advanced Message Queuing Protocol[J].IEEE Internet Computing,2006,10(6):87-89.

[5]李知杰.基于AMQP的異步通信实现及其在OpenStack项目中的应用[J].软件导刊,2013(7):35-37.

[6] AN Jianwei.A Brief Analysis on Private Cloud Construction of Traditional Enterprise[J].China Internet Weekly,2014,7(20): 38-39.

猜你喜欢

私有云
企业创新私有云平台的搭建探究
高校私有云的架构和实施
虚拟网络建设思考与实现
基于虚拟化技术的云服务平台的构建与管理
私有云在医疗图像信息存取系统中的应用
基于私有云的高校教学机房可行性研究
金融私有云网络架构研究
高职院校私有云建设的关键技术研究
私有云的研究现状与发展趋势
利用JMX技术构建企业私有云平台的探索与研究