您现在的位置是:首页电子技术论文

高级工程师论文范文基于虚拟化技术的私有云计算平台设计

发布时间:2015-11-25 16:26:06更新时间:2015-11-25 16:28:19 1

  近年来,伴随着计算机技术的飞速发展,越来越多的计算服务都离不开云计算的支撑。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。本文是一篇高级工程师论文范文,主要论述了基于虚拟化技术的私有云计算平台设计。
  摘要:为提高分布式集群系统的硬件资源利用率,避免闲置设备造成的经济损失,结合虚拟化技术,提出了一种基于多种框架技术的私有云平台实现方案。该方案整合底层硬件资源,实现了对资源的按需分割、动态分配及动态迁移,并针对传统的虚拟机部署方法中的负载不均衡问题,提出了基于动态分配决策的虚拟机部署机制,该策略根据虚拟机资源的特点,结合现有物理节点的负载情况,对虚拟机进行了动态部署。最后设计实现了灵活性强、可扩展性能好的私有云计算服务平台,以石油勘探中的傅里叶有限差分叠前深度偏移为测试用例进行了应用测试,证明了私有云平台的可行性和有效性,并对虚拟机的部署机制进行了测试。实验结果表明,动态分配决策能够在部署大量虚拟机的同时,较好地保持私有云平台的负载平衡。

  关键词:私有云服务,私有云平台架构,虚拟机部署,动态分配,负载均衡

  0引言

  云计算为各行各业带来了多样化的服务,使数据中心极大地提高设备利用率,避免闲置设备造成的经济损失,降低人员及管理成本[2],这对企事业单位来说具有极大的诱惑力。因此,构建一个灵活、高效、健壮的私有云计算平台成为了国内外各大信息技术(Information Technology, IT)企业的研究热点之一[3]。现如今,构建私有云平台技术已日趋成熟,主要采用使用商业解决方案和开源解决方案来构建私有云平台[4]。不少商业公司提供了较为成熟的私有云整体解决方案,比较典型的是IBM蓝云计算平台[5],此外还可使用开源解决方案构建私有云平台,这种方案是利用开源系统构造企业或组织的私有云平台,比较典型的是使用OpenStack[6]和 Eucalyptus[7]等开源系统。

  目前石油勘探开发行业[8]对于高性能计算有着强劲的应用需求,高精度勘探对地震资料的存储和处理能力的需求呈指数倍增长,我校早期购置的一些32节点、64节点的小规模集群虽性能良好,但已不能满足大规模计算任务日益增长的需求,从而导致可用资源处于闲置状态,迫切需要对现有的IT设备基础资源进行最大限度的整合,形成统一、高效、弹性化的私有云计算平台,提供给用户方便、快捷的自愿申请及使用模式。使用商业方案的云构建模式存在价格高、可扩展性差、授权模式复杂等问题,很多情况下并不适合采用,使用开源方案构建模式虽可扩展性较好,但系统兼容性不佳,且对一般服务支持也较少,无法按照实际需求定制云服务模块。高校的私有云平台并不像企业云一样仅提供一种或几种固定的服务,具有服务多样性的需求,不仅需要 Web 服务等常规服务,也有科研计算、数据存取等特殊服务,同时还要考虑到日后可能会出现的新的服务模式,这就要求云平台具备较强的灵活性和可扩展性。

  虚拟化技术[9]是云计算平台的核心技术之一,基于虚拟化技术搭建私有云计算平台可以降低运维成本、简化管理、提高系统高可用性。虚拟技术优势的发挥取决于虚拟资源的部署,部署效果的好坏在很大程度上决定了云平台所提供的服务质量的好坏。目前针对虚拟机部署的研究较少,大多依据传统的部署方法进行,未充分考虑宿主机所能承受的负载量,导致宿主机性能与虚拟机上产生的负载量匹配状况不佳,不可避免地带来由于资源得不到合理利用而引起的负载不均衡问题,影响了云计算提供的服务质量。

  针对上述两个问题,本文基于Java框架技术[10],设计实现了一种灵活性强、可扩展性能好的私有云计算服务平台,作为基础设施即服务(Infrastructure as a Service, IaaS)资源的通用前端,该平台建立在服务器组合而成的计算机集群之上,通过服务器虚拟化技术,实现了对资源的按需分割、动态分配及动态迁移,还提出一种动态分配管理机制,实现了虚拟机资源的快速部署,一定程度上解决了云平台的负载不均衡问题,提高了资源的利用率。

  1云平台框架构建

  1.1平台总体架构

  云计算环境中的集群组织架构一般分为两种:集中式和对等式[11]。本文所建立的私有云平台主要是以虚拟化服务为核心功能,其中最重要的物理资源的支撑就是计算机节点及存储设备,为防止因单节点而导致系统崩溃的问题出现,所以采用对等式的资源组织架构。采用这一架构就要求整个网络中的每一个节点都必须有完整的服务,当新的消息到达时,响应节点就必须要将消息传播到各个节点中去,维护整个网络数据的一致性。通过分析平台功能需求,设计了私有云平台的体系结构,如图1所示,该体系结构可以分为应用层、服务层和资源层。平台服务层用来建立一组通用的服务接口,来完成与本地资源的通信。资源层为私有云平台提供可共享的资源,包括处理器、内存、存储系统等资源。网络通信层为资源层提交的各种数据之间进行信息交换控制,包括各资源的注册、验证及资源监测。这些服务将作为虚拟机服务的辅助模块,为用户提供资源申请。应用层通过开发工具应用程序编程接口(Application Programming Interface, API)调用相应的服务,继而调用相应的资源来完成具体的作业任务。

  1.2服务组件设计

  在上述平台体系结构的基础上,将私有云平台按照功能需求划分为7个服务组件,在对等式组织结构中,每个节点都具有完备的功能,因此每个节点都具有以上7部分功能服务组件,用户访问接口(User Port)、 信息服务(Information)、注册服务(Register)、任务提交(Submit)、文件服务(File)、虚拟机部署(Deployment)、任务执行(Executor)。各服务组件的功能描述如下:

  1)用户访问接口。为用户提供访问私有云平台的方式,该接口提供监控平台运行状态、获取信息资源、访问文件系统、申请虚拟机执行任务的功能。   2)信息服务。维护并监控私有云平台的正常运转,获取各个节点主机的运行情况。

  3)注册服务。云平台的搭建过程、申请虚拟机的动态加入私有云平台的网络组织结构中。

  4)任务提交。接收来自用户的任务请求,分析创建任务描述对象,将任务提交给用户申请的虚拟机节点。

  5)文件服务。提供存储和传输相关文件,如用户申请虚拟机时的镜像文件,执行任务时将相关文件传输到执行节点中。

  6)虚拟机部署。分析用户申请的虚拟机具体要求,评估信息服务中的资源信息,选取合适的主机,部署并启动虚拟机。

  7)任务执行。执行虚拟机中用户提交的任务请求,监控任务状态,将结果反馈给用户。

  上述7个功能组件并不是独立的,而是紧密配合,在相互协作的基础上完成私有云平台的各项服务功能。私有云平台系统由信息监控、文件服务、虚拟机服务和作业服务这4大模块组成。其他服务功能都是以这4个模块为基础来实现的,如图2所示,各模块之间相互配合,完成用户需求的各个功能。

  私有云平台中提供的计算服务主要依靠虚拟机来完成,平台集成了作业的提交服务,但不支持提交到物理节点。出于系统稳定性考虑,防止因作业占用过多的资源而导致系统崩溃。作业提交前需编写任务描述文件,主要包括作业的执行文件、输出文件、文件位置和提交节点等作业信息。提交任务时需要向虚拟机节点传输相应的处理文件和执行文件,通过调用文件管理模块来完成文件的传输。平台任务的提交不牵扯任务节点的分配,由用户指定特定的虚拟机节点。这样既保证任务完成的可靠性,又能够使平台空闲出更多的资源。待作业提交到虚拟节点后,由虚拟机节点调用任务执行进程自动执行该作业,直到作业结束,由文件管理模块返回相应的执行结果文件到用户存储中,供用户查询及下载。

  1.3服务组件设计

  Spring企业级框架[10]技术简化服务内部资源组织、维护和管理,能与多种通信框架无缝结合,屏蔽服务底层繁杂通信逻辑,可向外部应用者提供多种可选服务访问方式,提高了系统灵活性。Spring框架技术在服务搭建过程中处于关键地位,图3描述了私有云平台中多种框架技术的组合方式。本文设计的私有云平台以三大框架(JRE、JETTY、Spring Container[11])构成基本服务环境,在此基础上完善开发个服务组件。JETTY启动时,Spring负责初始化各应用对象,并且完成各个对象之间的依赖注入关系,各服务都正常运行时,Spring负责接收来自JETTY的请求,并解析转换成Resource层的相应方法调用处理,并将处理结果返回。

  以Spring面向接口编程为核心方法,结合多种框架技术,实现了一个以Spring依赖注入方式的各个服务组件的开发过程。在实现某一服务的过程中,根据面向接口编程的思想,首先明确该服务的接口所提供的方法,再根据接口方法明确Model层的实体类,该实体类可以由开发人员自行设计,或者由前文提到的XSD(XML Schema Definition)工具进行统一生成。这些生成的实体类是该服务能否成功运行的保证。在完成上述工作后,使用简单工厂方法确定一种该接口的实现,由Manager层统一管理。这样做的好处是当需要对某一接口进行重新修改或者使用新方法实现时,不必在原有Impl上进行改动,只需将新的实现利用工厂方法重新使用Manager选择新的实现即可,增加了代码的灵活性和可扩展性,为以后代码的健壮打下基础。同时,使用Factory选择适当的方法注入Resource层到Logic层的引用中,当外界有请求到来时,Resource层就能直接通过Logic层选择合适的Impl来进行具体的任务处理。

  1.4关键模块实现

  虚拟机管理模块是私有云服务平台提供的最核心的服务,用户可以通过该模块直接申请平台的虚拟化资源。目前主流虚拟化技术解决方案有 Xen、内核级虚拟机(Kernelbased Virtual Machine, KVM)和 VMware 等,现有的云计算平台也是基于不同的虚拟化技术,如 IBM 的 Blue Cloud 使用了 Xen 虚拟化技术,VMware 的 VMware vSphere 则使用了自己的虚拟化技术。考虑到KVM是基于硬件的完全虚拟化技术,具有核心代码少、操作简单等优势,本文采用KVM虚拟化技术作为云计算平台设计的支撑工具。虚拟机管理模块的主要功能包括:

  1)提供不同类型的基础镜像库。平台提供不同的操作系统的基础镜像,供用户选择。本地资源应包括Linux、Windows 7等操作系统镜像库。由统一的资源信息管理服务对资源进行管理。

  2)虚拟机申请。用户可以申请一台临时虚拟机,使用完毕后系统自动回收该虚拟机,达到即用即申请的目的。用户也可以申请一台固有的虚拟机,该虚拟机不会被平台销毁,用户通过远程登录该虚拟机,完成对该虚拟机的独立配置。对于该种类型的虚拟机,平台仅对空闲的虚拟机进行关机操作,而不会进行摧毁。新建的虚拟机应以镜像库中已有虚拟机镜像模板为标准来创建,用户可以自行调整虚拟机的CPU核数、内存大小等相关配置。

  3)虚拟机克隆。用户配置好一台需要的虚拟机后,若要进行并行或者多台虚拟机配合的实验,可利用本平台进行虚拟机的克隆,私有云平台所能克隆虚拟机数量的多少由平台的计算能力决定。

  4)虚拟机在线迁移。虚拟机模块中最重要的功能之一,主要负责维持整个私有云平台的负载平衡,当宿主节点过载时就需要动态地将该虚拟机迁移到别的空闲节点中,使平台稳定运行。

  5)虚拟机管理。用户能够管理自己创建的虚拟机,包括对虚拟机的日常操作,如开机、关机、暂停、回复、强制关机、销毁、创建快照等操作。

  6)负载平衡。通过实时监控平台及虚拟机的运行情况及时对满负载的节点进行及时的调整,以达到私有云平台的负载平衡。当节点负载过高时,平台会对该节点进行自动处理,如对虚拟机迁移、销毁等处理,结合VM的调度策略,选择合适的调度算法,保证平台正常运行。当系统监控到某一节点超载,就调用平台管理调度策略,采取一定措施,减少节点开销。虚拟化管理模块的实现界面如图4所示。   Libvirt Java[12]是KVM中远程控制和管理虚拟机的重要编程接口。使用该工具可通过导入Libvirt包来连接虚拟化主机节点,从而方便地管理虚拟机,减少底层复杂繁琐的安全访问机制。Libvirt Java的访问需要有安全协议的支持,在服务端配置好基于传输层安全协议的证书,即可通过Libvirt接口管理虚拟机。通过将Libvirt Java包融入到私有云平台的框架中,形成一个单独的服务组件,用户即可方便地管理自己的虚拟机。

  2虚拟机部署机制

  云计算具有弹性服务和数据中心自治性的特点,这一特点的保障主要来自于虚拟机快速部署技术的实现。为保持私有云平台的负载平衡,在虚拟机部署时需考虑虚拟机本身的资源特性,将虚拟机部署到合适的物理节点中。因此,本文提出一种虚拟机动态分配管理决策进行虚拟机的快速部署。

  2.1虚拟机部署流程

  云平台的虚拟机资源部署流程如图5所示,主要包括以下步骤:

  1)API接收用户请求,将所需虚拟机信息发送给私有云平台控制中心,由控制中心确定这些信息的正确性,其中虚拟机信息包括虚拟机系统类型、架构、核数、内存等基本信息。

  2)控制中心将虚拟机信息发送给镜像管理中心,并寻找符合要求的镜像模板。找到镜像模板则复制镜像文件并将镜像位置信息返回给控制中心;若未找到,不予响应,并返回未找到符合要求的虚拟机模板消息。

  3)控制中心接收镜像模板位置信息后,则向网络控制器请求分配固定的IP、MAC地址等相关信息,由网络控制器生成相应IP、MAC地址信息并反馈给控中心。

  4)采用本文提出的虚拟机动态分配管理决策进行宿主节点的分配。分配完成后,由控制中心进行宿主节点虚拟机基本信息的配置。至此,虚拟机部署完成,控制中心会反馈给用户一个部署完成的反馈信号,在虚拟机启动完毕后,用户即可访问该虚拟机。

  虚拟机启动时,会自动加载所有服务模块,虚拟机快速部署的实现需要信息监控模块和文件管理模块两个模块的相互配合才能完成。信息监控模块负责收集监控平台可用节点,供宿主物理节点的选择,文件传输模块负责将镜像库里的模板文件复制到网络文件系统(Network File System, NFS)中各个物理节点文件夹。以两个功能模块为支撑,虚拟机管理模块进行虚拟机的定义、启动和部署。

  2.2虚拟机动态分配

  2.2.1资源描述

  在私有云平台中,组织结构的构建是基于对等式的,所以管理节点可以是平台中的任何一个节点。为了管理方便,一般会指定一个节点为管理节点,负责管理其他的节点。该节点将不会作为虚拟机的部署节点,只是管理监控其他节点的正常运行。其余节点就可以作为虚拟机部署节点,称为资源节点RS,其节点集合定义为:

  RN={N1,N2,…,Nn}(1

  私有云平台使用NFS共享存储,所以在一般情况下不考虑平台的存储性能,其存储的管理主要由NFS管理。各节点间的网络使用InfiniBand高速网络,它主要针对服务器端的连接,负责各个节点间的通信,不仅提高了通信的效率,而且提高了性能。NFS和InfiniBand减少了虚拟机部署需考虑的因素,主要考虑节点主要性能,如CPU及内存的使用情况。定义节点性能的阈值为th,其节点相关服务能力定义如下:

  th={thproc,thmem,thd}(2)

  其中:thproc、thmem、thd分别表示处理器、内存以及硬盘的负载情况。由于私有云平台系统采用NFS硬盘共享,所以thd就是整个平台网络硬盘存储的阈值。定义th区间范围为0到1,可以用来表示某一性能指标是否过载。

  CPU处理能力NSproc主要包括以下几个性能指标,定义如下:

  NSproc={us,q,p(t)}(3)

  其中:us为当前CPU的使用百分比,q为CPU内核数,p(t)为t时刻,CPU使用负载情况,一般q>1,所以得到的p(t)为一个集合p(t)={p1(t),p2(t),…,pk(t)},通过一段连续的时刻T={t1,t2,…,ti}内,这个T时间段应是很短的一段时间内,如几秒左右的CPU的使用情况。在T时间段内得到的各个p(t),我们对其进行平均处理,即可知当前节点CPU的使用情况。

  i(t)=∑tsj=1pi(tj)/ts(4

  (t)=∑qi=1pi(t)/q(5)

  其中:ts为时间段T的总区间,i表示CPU内核数。式(4)表示在T时间段内各个内核的执行负载情况,式(5)表示求取q个内核的负载平均数值,可以用来表示当前节点CPU的负载情况。由于(t)总是在0到1的范围内,CPU空闲情况可以用1-(t)来说明。

  内存性能指标RSmem定义如下:

  RSmem={m,m(t)}(6)

  其中:m为内存的大小,m(t)为内存的t时刻的负载情况,同CPU负载的处理方式一样,在获得一段时间T={t1,t2,…,ti}的内存的负载后,取其平均值即可得到当前内存的负载情况。

  m(t)=∑ui=1m(ti)/u(7

  由于是NFS共享存储,所以不需要考虑单一节点的存储情况,只需要监控全局存储即可。使用这些数据还需对其进行标准化处理,采用式(8)所示的最常用的标准化处理方法。其中Zij为节点i的某一项性能指标j的归一化后值,Xij表示节点i的某一性能指标j的值。

  Zij=Xij/∑(Xij)2(8

  2.2.2虚拟机动态分配机制

  虚拟机的动态分配管理将决定着私有云平台能否稳定地运行。合理的分配机制能够实时监控所有部署节点的运行状况,并根据具体情况及时作出调整,保持系统负载平衡。   虚拟机管理模块监听来自用户新建虚拟机的请求,分析该虚拟机的各项性能指标,如CPU核数、内存大小等,并通过动态分配的决策算法选择最优宿主物理节点。若通过决策找到该节点,则将虚拟机镜像按照前文提到的部署步骤创建在该节点并启动加入私有云平台中;若没有找到合适物理节点,则说明私有云平台物理节点资源匮乏,已达到满载状态。私有云平台启动完成后监控模块随之启动,实时监控各个物理节点的使用情况。将式(2)中阈值的上限值定义为th,下限值定义为thmin。当监控该虚拟机的阈值低于thmin时,则表明该虚拟机处于空闲状态。当检测到某一节点阈值超过th时,私有云平台将对该节点进行处理。具体实施过程如下:

  1)检测节点是否有闲置虚拟机节点(阈值小于thmin)。若监控系统判定其为闲置节点,则将其从私有云平台中移除,并将该虚拟机销毁并删除。

  2)若该节点中的虚拟机存在负载情况,则考虑虚拟机在线迁移。在该节点选择一台负载较大或者其本身对性能要求较高(如CPU和内存要求较大)的节点,通过虚拟机分配决策方法选择一台最优主机。

  3)若找到可以迁移的主机,则将选择出来的虚拟机在线迁移到该节点中,迁移过程中,虚拟机中的运行程序将不受影响。若找不到可以迁移的主机,则继续查看物理节点中的闲置虚拟机。

  4)找到闲置虚拟机后,若其释放后的资源性能可以支持待迁移的虚拟机,则销毁闲置的虚拟机,并开始在线迁移。

  5)若未找到闲置虚拟机,则说明平台运行环境性能指标已达到阈值,系统会通知管理员采取一定措施,使得用户能够继续申请虚拟机,维护私有云平台稳定运行。

  2.2.3虚拟机动态分配决策

  虚拟机的决策分配与在平台执行作业任务不同,虚拟机的部署时间相对较固定,并且是可控制的,一个虚拟机在平台节点中的运行时间一般比较长,在节点硬件资源充足的情况下,一般不会过多地干扰虚拟机的运行。所以,选择一个较优的物理节点来部署是至关重要的。分配决策过程主要包括单一虚拟机的部署和多个虚拟机的部署。

  1)单一虚拟机的分配决策。

  单个虚拟机的分配相对较为简单,只需要找到一个可以接受该虚拟机的最优主机即可。在前文中已将节点资源统一量纲化,方便进行决策对比,从而选出最优主机来部署虚拟机。各个节点资源的使用情况主要是看(t)和(t)的负载情况,与系统规定的阈值th相比,选取各项性能指标小于阈值的n个节点作为候选节点,N={N1,N2,…,Nn}。分别计算各个节点标准化处理后剩余负载的量纲值。

  由于私有云平台的节点都是同构的,所以式(9)可以简化为:

  i=(1-i)∑nj=1(1-j)2

  i=(1-i)∑nj=1(1-j)2(10

  根据当前虚拟机对资源的需求情况,定义虚拟机对CPU、mem的权值,得到节点的总评估值如下:

  Evi=wproc×i+wmem×i(11

  最后选取的最优节点为Evi(i=1,2,…,n)中最大的节点。单个虚拟机分配过程结束。

  2)多个虚拟机的分配决策。

  若用户需要同时部署多个虚拟机,则系统需要对这些虚拟机进行合理安排,保持负载平衡。克隆出来的多个虚拟机配置完全一样,定义需分配的虚拟机个数数集为V, V={1,2,…,v}。 则按照上文描述,可以得到n个候选主机。由于上文是单个虚拟机的分配过程,虚拟机节点的资源评估值暂不考虑,但是多虚拟机的分配会涉及到物理节点资源是否能够支撑多个虚拟机,所以需要对虚拟机和候选节点进行标准化评估。

  vm=pvm/∑nj=1(1-j)2

  vm=mvm/∑nj=1(1-j)2(12

  根据式(11)得到虚拟机的最终评估值Evvm与候选主机的评估值相比,选取Evi大于等于Evvm的k个主机作为候选节点(k≤v)。设其为划分向量α={α1,α2,…,αk},供需分配v个虚拟机,则可以得到式(13):

  ∑ki=1αi=v(13

  虚拟机的分配原则是保证私有云平台的负载平衡,所以在完成虚拟机的分配后,所有节点的负载量要达到一致,如式(14):

  αi(1-Evi)=αi+1(1-Evi+1); i=1,2,…,k-1(14

  由式(13)和(14)可得到以下线性方程组。

  1-Ev1-(1-Ev2)00…00

  01-Ev2-(1-Ev3)0…00

  001-Ev3-(1-Ev4)…00

  0000…1-Evk-1-(1-Evk)

  1111…11α1α2α3αk-1αk=0000v(15

  α1=v/(1+∑ki=21-Ev11-Evi)(16

  由式(15)通过计算即可得到α1,如式(16),并通过式(14)即可依次递推得到整个α,从而得到各个宿主节点分配的虚拟机个数,完成虚拟机的动态分配过程。该策略根据虚拟机资源的特点,结合现有物理节点的负载情况,对虚拟机进行了动态部署,既满足了用户的需求,又能够明显提高闲散资源的利用率,使私有云平台的整体负载达到较好的平衡状态。

  3实验及结果分析

  私有云平台是由一组浪潮服务器组成的集群系统,总计拥有存储空间12TB。每个节点使用主频为2.60GHz 的Xeon E52670 的16线程CPU,内存为32GB。系统运行的实验作业是处理一个数据文件,本文以地震资料处理中的傅里叶有限差分叠前深度偏移(Fourier FiniteDifference,FFD) [13]为实际测试用例。地震资料数据格式严格,其数据文件可进行切割拆分存储,并且处理每一炮数据的时间基本一致,以Marmousi模型[14]为处理数据来进行私有云平台作业提交与执行的测试。   3.1虚拟机部署测试

  虚拟机的部署需要测试多台虚拟机的性能参数。以Linux redhat镜像为测试用例,在私有云平台中同时部署N=20台克隆的虚拟机。虚拟机参数如下:2核CPU,内存大小为2GB,硬盘为10GB。

  为方便测试,直接选取云平台环境中的6个节点来进行虚拟机分配。本文规定虚拟机所需资源的权重为wproc=0.4,wmem=0.6。虚拟机分配前各个节点资源情况如表1所示(CPU Use表示CPU利用率,Mem Use表示内存利用率)。

  选取N=20个虚拟机进行分配,所需总内存大小为40GB,根据表1所示信息,这6个节点完全可以满足20个虚拟机的分配。根据上文的虚拟机动态分配机制,得到节点分配的向量α={2,3,2,4,6,3},按照各节点分配虚拟机数量进行部署后,得到各个节点负载情况,如表2所示。

  由图6可知,分配前的各节点负载处在非常不平衡的状态,其节点负载的跨度高达0.348,各节点性能差距较大;在此基础上进行虚拟机的分配后,节点的负载趋于缓和,其跨度变为0.169,相比分配前,整体负载趋于平衡;但由图中可以看出,整体的负载未达到很好的平衡状态。原因在于对节点进行评估时将CPU也算入其中,但是在实际分配虚拟机时,当虚拟机中并没有负载的时候,其占用系统的使用率是基本不变的。在实际计算过程中考虑了CPU的影响,所以最后结果与理论值有一定的偏差,由图6可以得出,运用该动态分配决策过程是能够在同时分配大量虚拟机时,较好地保持私有云平台的负载平衡。

  3.2应用测试
高级工程师论文范文

  3.2.1单虚拟机执行作业测试

  为测试私有云平台中虚拟机的性能,选取与虚拟主机配置相近的一台实际主机作为对比,分别在主机中计算20、40、60、80炮数据的FFD[13],对比计算时间及执行结果的正确性。虚拟机使用主频为2.60GHz 的QEMU Virtual CPU,内存为2GB。物理主机使用主频为2.53GHz的Intel Core2 Duo CPU,内存为2GB。以不同规模的地震资料处理数据在不同的主机内进行执行作业,为验证执行结果的正确性,选取80炮时的数据成像,作业执行时间对比如表3所示。处理结果对比如图7所示。

  由图7可知,虚拟机和物理主机处理结果是一致的,说明虚拟机能够正常执行作业任务。表3数据表明,虚拟机的性能与实际物理节点的计算时间几乎一致,所以虚拟机在性能方面接近实际相同配置的物理主机。

  3.2.2多虚拟机节点执行作业测试

  选取私有云平台中的一个服务节点作为对比,比较单服务节点Cu01执行Marmousi模型138炮数据与多虚拟机节点并行执行的效率。克隆7个配置一样的Linux虚拟机(Vm1,Vm2,…,Vm7),每个虚拟机具体配置:CPU为2核;内存为2GB。利用平台将模型文件分割提交到不同的虚拟机中,设定执行作业时虚拟机已经创建完成,因此虚拟机创建时间忽略不计,并且每个文件都较小,文件传输及回收的时间也可忽略不计,各节点处理炮数、作业计算时间如表4和表5所示。

  执行结果成像如图8所示,Cu01与虚拟机并行执行的结果是一致的,说明了执行结果的正确性。表4和5中的数据表明单个虚拟机节点执行作业的效率低于单个服务节点,但随着虚拟机节点规模的扩大,处理的时间明显减少。利用虚拟机并行处理同一作业的效率明显高于单个服务节点,利用虚拟机并行处理比利用单一节点处理具有明显优势,由于虚拟机的自治性,当某一虚拟机崩溃时,不会影响其他虚拟机作业的执行,崩溃节点的计算任务可转移到别的空闲虚拟机中运行,为任务的稳定运行提供了保障。

  4结语

  在深入研究云计算架构和虚拟化技术特性的基础上,结合多种框架技术设计实现了一个能够对外提供基础设施即服务功能的私有云平台。该平台整合了目前分布式系统的硬件资源,提高了资源的使用效率,针对云平台运行过程中不可避免的负载不均衡问题,提出了一种虚拟机动态分配策略,该策略根据虚拟机资源的特点,结合现有物理节点的负载情况,对虚拟机进行了动态部署,完成了虚拟机的动态分配,使私有云平台的整体负载达到了较好的平衡。以石油勘探中的傅里叶有限差分叠前深度偏移为应用背景,采用Marmousi模型波场正演为例进行了应用测试,证明了私有云平台和虚拟机执行作业的可行性,并对虚拟机进行了部署测试,实验结果表明,运用本文提出的动态分配决策能够在分配大量虚拟机的同时,较好地保持私有云平台的负载平衡。

  参考文献:

  [1]ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4): 50-58.

  [2]YE K, WU Z. Power management of virtualized cloud computing platform[J].Chinese Journal of Computers,2012,35(6):1263-1280.(叶可江,吴朝晖.虚拟化云计算平台的能耗管理[J].计算机学报,2012,35(6):1263-1280.)

  [3]YANG R. The design of private cloud computing platform based on virtualization technology[D]. Tianjin: Hebei University of Technology, 2013:8-10.(杨荣霞. 基于虚拟化技术的私有云计算平台设计[D]. 天津:河北工业大学, 2013: 8-10.)

  [4]HUANG L, CHEN L, WANG J, et al. Research on the construction of enterprise private clouds platforms[J]. Journal of Mechanical and Electrical Engineering, 2014, 31(8): 1090-1093.(黄梁, 陈鲁敏, 王加兴, 等. 企业私有云平台建设研究[J]. 机电工程, 2014, 31(8): 1090-1093.)   [5]FANG W, WEN X, PAN W, et al. Cloud computing: conceptions, key technologies and application[J]. Journal of Nanjing University of Information Science and Technology:Natural Science Edition, 2012,4(4):351-361.(方巍, 文学志, 潘吴斌, 等. 云计算:概念, 技术及应用研究综述[J]. 南京信息工程大学学报:自然科学版, 2012, 4(4): 351-361.)

  [6]JIANG Y, WANG W, CAO L, et al. Construction of private cloud computing platform based on open source software[J]. Telecom Science, 2013, 29(1): 68-75.(姜毅, 王伟军, 曹丽, 等. 基于开源软件的私有云计算平台构建[J]. 电信科学, 2013, 29(1): 68-75.)

  [7]RATHI A, PARMAR N. Secure cloud data computing with third party auditor control[C]// Proceedings of the 3rd International Conference on Frontiers of Intelligent Computing: Theory and Applications. Berlin: Springer, 2015: 145-152.

  [8]ZHANG J, ZE X, ZHENG J, et al. Architecture and prospects of private cloud in seismic prospecting industry[J].Computer Applications of Petroleum, 2014(2):7-12.(张进铎,迮小平,郑建勇,等.地震勘探行业私有云的架构与远景展望[J].石油工业计算机应用,2014(2):7-12.)

  [9]XU W, MADISON K, FLINN M, et al. Applying virtualization technology in security education[J]. Procedia ― Social and Behavioral Sciences, 2014, 141: 10-14.
  高级工程师职称论文发表期刊推荐《计算机工程与设计》创刊于1980年,是中国航天科工集团主管、中国航天科工集团二院706所主办的国内外公开发行的计算机专业技术类刊物。该刊是中国计算机学会会刊、北京计算机学会会刊、中国宇航学会会刊,是全国中文核心期刊、中国科技核心期刊。


转载请注明来自:http://www.yueqikan.com/dianzijishulw/55432.html