面向校园云平台的虚拟机管理调度方法和***
技术领域
本发明涉及虚拟机管理技术领域,尤其涉及校园云平台中虚拟机管理调度的方法和***。
背景技术
随着教育改革不断深化,信息化技术迅速发展,高校的信息化建设已成为国内外高校现代化建设的重要内容。而当前高校信息化现状往往是将一个应用***部署在一个或多个服务器上,导致了投入大量资金购买服务器等设备,但设备使用率较低,造成了严重的资源浪费。
将云计算技术应用在校园,即校园云的兴起很好的解决了上述问题。校园云平台主要是利用虚拟化技术整合、虚拟物理资源,实现对计算资源的动态调配和按需使用。校园云平台包含教学、科研两类应用。科研应用呈现不可预知性、非周期性等特点,与传统应用类似;而教学应用具有周期性、可预测性、批量性等特点。
由于教学应用的特性,面向教学需求的计算资源即虚拟机的调配是个关键问题。但是目前的研究并没有针对校园云平台的虚拟机管理调度方法,没有考虑到应用负载的特征,这样就会造成很多不必要的虚拟机迁移,以及由此带来的资源浪费。
综上所述,现在迫切需要一种面向校园云平台的虚拟机管理调度的方法和***。
发明内容
本发明旨在解决上述问题,提供了一种面向校园云平台的虚拟机管理调度方法和***。其目的在于,提出针对校园云平台教学应用特点的虚拟机管理方法,解决物理集群资源浪费、负载不均衡的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种面向校园云平台的虚拟机管理调度方法,所述方法包括以下步骤:
1)优化部署课程虚拟机,所述虚拟机具备周期性、批量性、可预测性,所述优化部署依据课程需求与物理机预测负载所计算的吻合度确定,所述吻合度以新申请的课程需求与物理机负载重合的课程数、新申请课程需求的课程总数为参数;为了使得吻合度能够很好地反应课程对应的虚拟机与物理机之间的相近似程度,本申请中将新申请的课程需求与物理机负载重合的课程数、新申请课程需求的课程总数两个重要因素作为计算吻合度以及后续判断的依据,这样可以充分表示出不同的课程虚拟机需求与特定的物理机之间的吻合程度,此处,可以采用多种数学运算方式将这两个参数加以运算,以反应虚拟机与物理机之间的这一吻合程度;
2)获取各物理机的资源监控值,依据所述资源监控值对所述课程虚拟机进行动态调度。
优选地,在所述步骤1)中,可进一步包括一下步骤:
11)根据课程需求与物理机预测负载计算吻合度,所述吻合度为新申请的课程需求与物理机负载重合的课程数除以新申请课程需求的课程总数;
12)按照吻合度将物理机进行排序;
13)对吻合度最高的一组物理机,计算部署优先值,所述部署优先值由物理机可分配的CPU数目比与内存数目比的加权求和获得;因考虑到物理机的资源占用情况,作为后续虚拟机迁移的判断依据,故本发明中以物理机中CPU资源和内存资源的占用比或可分配比作为主要的参考参数,并以其参考程度以加权求和的形势,获得物理机的部署优先值;
14)对由步骤13)计算的部署优先值,进一步计算每台物理机预分配的虚拟机个数。
优选地,所述步骤2)进一步包括一下步骤:
21)获取各物理机的资源监控值,根据所述资源监控值以及资源高低阈值确定物理机的状态,所述状态包括过载、过闲和正常状态;
22)对于过载的物理机,根据虚拟机资源使用情况,进行虚拟机的迁出,从而消除过载物理机,实现负载均衡的目的。
考虑到在物理机资源充足的情况下,可以适当将物理机资源进行充分利用,优选地,所述步骤2)可以进一步包括,
23)当调度域内无过载物理机时,对于过闲的物理机,根据虚拟机资源使用情况,进行虚拟机的迁出,从而消除过闲物理机,实现节能的目的。
在上述步骤中,优选地但不限于以下方法,所述吻合度的计算公式可以采用比值的方式,即:
吻合度其中,Numoverlap为新申请的课程需求与物理机负载重合的课程数,Numall为新申请的课程需求的课程总数。
在上述各步骤中,优选地但不限于以下方法,所述部署优先值可以采用可用资源占比加权求和的方式计算,即:
其中,
vCpu为物理机虚拟处理器的总数,Cijk.PCpu为与申请课程需求相同时间段的物理机已分配
的vCpu数目,vMemory为物理机虚拟内存的大小,Cijk.PMemory为与申请课程需求相同时间
段的物理机已分配的vMemory的大小,ijk可按物理机上已有课程与课程需求第一次重合的
时间计算,Wcpu为cpu维度上资源利用率对部署优先值的贡献权重,Wmemory为内存维度上资源
利用率对部署优先值的贡献权重,满足:Wcpu+Wmemory=1,具体值依据经验及课程类型加以设
定。
在上述各步骤14)中,在得到部署优先值之后,就可以确定每台物理机预分配的虚拟机个数,这一分配个数可以依据各个部署优先值在全部物理机的部署优先值中的占比获得,优选地但不限于以下方法,每台物理机预分配的虚拟机个数可以采用如下公式求得:其中,n为当前吻合度最高的一组物理机的个数。
进一步优选地,所述步骤22)可以进一步包括:
221)依据虚拟机资源使用情况,选择综合资源使用率最高的虚拟机作为要迁出的虚拟机;
222)计算待迁出虚拟机与正常、过闲物理机的吻合度,按照吻合度对物理机进行排序;
223)对于当前吻合度最高的物理机,若将待迁入的虚拟机迁入后,物理机的资源使用情况未超过资源高阈值,则将虚拟机迁移到该物理机,否则,则选择吻合度次高的物理机,直到该物理机资源使用情况满足小于资源高阈值,将此选为目标物理机;不同的课程对应着不同的虚拟机;
224)执行虚拟机迁移操作,若物理机仍处于过载状态,则重复以上操作,直到物理机变为正常状态,从而实现负载均衡的目的。
进一步优选地,所述步骤23)还可以包括:
231)根据监控得到的数据,选取资源使用率最低的虚拟机作为待迁出虚拟机;
232)计算待迁出虚拟机与正常物理机的吻合度,按照吻合度高低对物理机进行排序;
233)选取吻合度最高的物理机,计算待迁入虚拟机迁入后的资源使用情况,若低于资源高阈值,则选择该物理机为目标物理机;否则,选取吻合度次高的物理机,直到满足要求;
234)执行虚拟机迁移操作,若物理机仍处于过闲状态,则重复以上操作,直到物理机变为正常状态,从而实现节能的目的。
根据本发明另一方面,还提供了一种面向校园云平台的虚拟机管理调度***,其特征在于:
所述***包括用户请求模块、数据存储模块、虚拟机调度模块、虚拟机控制模块;
所述虚拟机调度模块用于依据新申请的课程需求与物理机负载重合的课程数、新申请课程需求的课程总数判断吻合度,以及根据所述吻合度计算部署优先值;
所述虚拟机调度模块与虚拟机控制模块用于对课程虚拟机进行动态调度;
所述部署优先值由物理机可分配的CPU数目比与内存数目比的加权求和获得。
进一步优选地,所述虚拟机调度模块还可以用于实现判断物理机状态以及调度决策;所述用户请求模块通过云平台接收申请以及课程所需虚拟机的详情。
优选地,所述用户请求模块可以采用人机交互界面,用户通过校园云平台提交申请以及课程所需虚拟机的详情;
所述数据存储模块包括物理机预测负载存储模块、课程需求存储模块、监控数据存储模块以及映射关系存储模块;物理机预测负载存储模块用以存储根据虚拟机的课程详情而预测的物理机负载;课程需求存储模块用以存储用户提交的课程申请详情;监控数据存储模块用以存储物理机、虚拟机的实时资源使用情况;映射关系存储模块用以存储服务器与虚拟机的放置映射关系。
所述虚拟机调度模块包括吻合度判断模块、部署优先值判断模块、调度决策模块、状态判断模块。
所述虚拟机控制模块包括创建、删除、启动、停止、迁移、配额调整模块,从而实现对虚拟机实例的创建、删除、开启、关闭、迁移以及虚拟机配额调整等操作。
本发明的有益效果为:针对校园云平台教学应用周期性、可预测性、批量性等特点提出虚拟机调度方法,有效减少了物理服务器使用数量,并使物理机集群实现了负载均衡。
附图说明
图1是根据本发明一个优选实施例的虚拟机管理调度方法流程图;
图2是根据本发明一个优选实施例的优化部署虚拟机的具体流程图;
图3是根据本发明一个优选实施例的动态调度虚拟机的流程图;
图4是根据本发明一个优选实施例的虚拟机管理调度***的框图;
具体实施方式
本发明实施例一种面向校园云平台的虚拟机管理调度方法和***,能够针对校园云平台教学应用周期性、可预测性、批量性等特点进行虚拟机的静态部署和动态调度;对于新申请的课程虚拟机申请,能够根据请求详细信息以及当前物理机负载情况进行负载预测,从而实现节能、负载均衡的虚拟机放置;在虚拟机使用时,能够根据获取的各物理机的各资源维度的当前利用率确定物理机处于何种状态,同时结合物理机负载模型,即对负载的预测,从而选择合适的虚拟机、物理机进行迁移调度。这样可解决现有虚拟机管理调度方法没有考虑到校园云平台教学应用特征所带来的资源浪费以及负载不均衡问题。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对根据本发明一个实施例的面向校园云平台的虚拟机管理调度方法和***进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
首先,对本发明实施例的实现过程中涉及到的参数进行定义,具体如下:
1)课程需求模型租户提交申请的课程需求模型可以定义为一个六元组:CRequest=(CName,CTime,CCpu,CMemory,CNumber,LSet),其中CName表示课程名称类,是课程唯一性的标识;CTime表示课程时间段类,由于学校上课时间一般用周数计算,所以可用该门课程的起始和结束周数来表示时间段类,可定义为一个二元组CTime=(IWeek,FWeek),IWeek表示课程的起始周数,FWeek表示课程的结束周数;CCpu表示课程申请的虚拟机所需的CPU大小;CMemory表示课程申请的虚拟机所需的内存大小;CNumber表示虚拟机个数;LSet表示课程具体的课时集,每个元素可以表示为一个三元组,LSet=(LSection,LDay,LWeek),LSection表示课程在某一天具体上课的节数,根据学校实际情况,用一节大课来表示两节课程,例如第2节大课表示第3.4节课,LDay表示一周具体上课的时间,即课程所在的星期几,LWeek表示课程所在的单双周类,由学校课程安排的实际情况考虑,并不是所有课程每周都有,可定义为一个二元组:LWeek=(SWeek,DWeek),DWeek为1表示双周有课,SWeek为1表示单周有课,否则为0。
2)物理机负载模型物理机上所部署的虚拟机的课程详情,该模型可定义为一个5*5*16的三维矩阵C=[Cijk]5*5*16,其中1≤i≤5,1≤j≤5,1≤k≤16。如图1所示,k周,星期j,i节课的虚拟机使用情况Cijk可定义为一个三元组:Cijk=(PName,PCpu,PMemory),其中PName={LName1,LName2,...,LNamew},w为第k周,星期j,i节课时间段所要同时进行的课程的数目,LNamew为第w种课程的名称;PCpu为物理机上所占用的CPU资源大小;PMemory为物理机上所占用的内存资源大小。
3)吻合度新申请的课程需求与物理机负载相对应元之间的重合度高低,用公式其中Numoverlap为新申请的课程需求与物理机负载重合的课程数,Numall为新申请的课程需求的课程总数。
4)部署优先值该值用来对吻合度相同的物理机做可部署虚拟机的顺序排序,即对
物理机所剩资源的综合评价。本文综合考虑CPU、内存两个维度的资源,公式定义如下:其中vCpu为物理
机虚拟机出的Cpu数目;Cijk.PCpu为与申请需求相同时间段的物理机已分配vCpu的数目,其
中ijk可按物理机上已有课程与课程需求第一次重合的时间计算,若无重合时间,则ijk为
课程第一次上课时间;内存公式同上。
如图1所示,本发明实施例一种面向校园云平台的虚拟机管理调度方法,技术方案包括:
S1、优化部署具有周期性、批量性、可预测性的课程虚拟机;
S2、根据监控数据对具有周期性、批量性、可预测性的课程虚拟机进行动态调度。
需要说明的是,该技术方案完整解决了面向教学需求的虚拟机调配这一问题,包含以下两个子问题:虚拟机创建时的部署问题,即决定新创建的虚拟机部署在哪台物理机上;虚拟机使用时的动态调度问题,即根据物理机实际资源使用情况进行虚拟机的动态迁移。对于一个新的课程申请,需完整的使用步骤S1、S2;对于已经部署好的课程申请,使用步骤S2即可。
如图2所示,本发明实施例中,步骤S1、优化部署具有周期性、批量性、可预测性虚拟机,包括:
S11、对于一个新的课程需求,根据课程需求与物理机预测负载计算吻合度;
需要说明的是,本发明实施例中用户提交的课程需求用定义一所示的课程需求模型来刻画,物理机预测负载用定义二所示的物理机负载模型来刻画,吻合度通过定义三所示公式计算。例如,一课程申请为crequest=(Java,(1,16),2,4,20,(2,1,(1,0))),即课程在第1、3、5、7、9、11、13、15周的周一第2节大课进行,共有8次课。一物理机负载存在元C211、C213、C215、C217、C219、C2111,即存在课程在第1、3、5、7、9、11周的周一第2节大课进行,则该物理机与新申请课程需求的吻合度为0.75;若物理机负载没有相对应的元存在,则吻合度定为0,即若吻合度为0表示该物理机上没有与新申请的课程需求相同时间段的其他课程的虚拟机。
S12、按照吻合度从高到低对物理机进行排序,得到有序的m个吻合度相同的物理机负载组;
需要说明的是,m为小组个数,例如若得到的物理机负载组为D1、D2…Dm,则D1小组吻合度最高,且组内各物理机吻合度相同。
S13、对当前吻合度最高的一组物理机,计算部署优先值;
S14、对当前部署优先值最高的物理机,进一步计算该物理机预分配的虚拟机个数,根据该值及预测资源剩余情况部署虚拟机。
需要说明的是,步骤S13、S14是个循环过程。首先对吻合度最高的一组物理机计算部署优先值,例如一个组内有n个物理机,则得到有序的{P1、P2、…、Pn};然后对组内的物理机Pi计算预分配的虚拟机个数若NUMi*crequest'.Cpu≤Pi.LCpu &&NUMi*crequest'.Memory≤Pi.LMemory(Pi.LCpu为物理机Pi剩余CPU大小,Pi.Memory为物理机Pi剩余内存大小),则在物理机Pi上部署NUMi台虚拟机,否则部署min{Pi.LCpu/crequest'.Cpu,Pi.LMemory/crequest'.Memory}台虚拟机;依次计算组内的n台物理机,直到虚拟机全部被分配完成;若循环完组内所有物理机,虚拟机也未分配完成,则取当前吻合度最高的物理机组重复上面步骤,直至虚拟机完全分配。若循环完所有的物理机,虚拟机还未分配完成,则发出物理机不足的警告。
如图3所示,本发明实施例中,步骤S2、根据监控值动态调度具有周期性、批量性、可预测性的虚拟机,包括:
S21、获取各物理机的资源监控值,根据该监控值以及资源高低阈值确定物理机处于何种状态,过载、过闲或者正常状态;
需要说明的是,各个物理机历史资源监控值利用滑动时间窗口来保存,考察一定时间范围T内取得的n个监控值,该监控值包含CPU和内存这两个资源维度。对于任一资源维度,取得的n个监控值中若有m个大于资源高阈值(0≤m≤n),则该物理机为过载物理机;若有m个小于资源低阈值(0≤m≤n),则该物理机为过闲物理机;其余的则为正常物理机。
S22、对于过载的物理机,根据虚拟机资源使用情况,进行虚拟机的迁出,从而消除过载物理机,实现负载均衡的目的。具体做法如下:首先根据虚拟机实际资源使用情况,选择综合资源使用率最高的虚拟机作为待迁出的虚拟机;然后计算待迁出虚拟机与正常、过闲物理机的吻合度,按照吻合度高低对物理机进行排序;对于当前吻合度最高的物理机,若将待迁入的虚拟机迁入后,物理机的资源使用情况未超过资源高阈值,则将虚拟机迁移到该物理机,若超过资源高阈值,则选择吻合度次高的物理机,直到该物理机资源使用情况满足小于资源高阈值,将此选为目标物理机;执行虚拟机迁移操作,若物理机仍处于过载状态,则重复以上操作,直到物理机变为正常状态,从而实现负载均衡的目的。
S23、当调度域内无过载物理机时,对于过闲的物理机,根据虚拟机资源使用情况,进行虚拟机的迁出,从而消除过闲物理机,实现节能的目的。首先根据监控得到的数据,选取资源使用率最低的虚拟机作为待迁出虚拟机;计算待迁出虚拟机与正常物理机的吻合度,按照吻合度高低对物理机进行排序;选取吻合度最高的物理机,计算待迁入虚拟机迁入后的资源使用情况,若低于资源高阈值,则选择该物理机为目标物理机,若高于资源高阈值,则选取吻合度次高的物理机,直到满足要求;执行虚拟机迁移操作,若物理机仍处于过闲状态,则重复以上操作,直到物理机变为正常状态,从而实现节能的目的。
图4是根据本发明一个优选实施例的面向校园云平台的虚拟机管理调度***的框图。如图所示,该***主要包括下列模块:
用户请求模块:用户请求模块和数据存储模块相连接。用户请求模块是面向校园云平台的虚拟机管理调度***的用户使用接口,为用户提供了交互界面,支持用户提交课程申请以及课程所需虚拟机的详情,将用户提交的申请发送到课程需求模块,并间接触发虚拟机的创建,同时可为用户呈现课程申请的处理情况。
数据存储模块:数据存储模块与用户请求模块、虚拟机调度模块、虚拟机控制模块以及部署在服务器上的监控模块相连接。该模块又进一步包括物理机预测负载存储模块、课程需求存储模块、监控数据存储模块以及映射关系存储模块。
物理机预测负载存储模块用以计算、存储根据虚拟机的课程详情而预测的物理机负载,该模块在每次部署新的虚拟机以及虚拟机动态调度完成之后都要进行更新,以保证信息的准确性。
课程需求存储模块用以存储用户请求模块发送的用户提交的课程申请详情,同时触发虚拟机调度模块处理该请求。
监控数据存储模块用以存储物理机、虚拟机的实时资源使用情况,同时发送到虚拟机调度模块,作为是否进行动态调度的依据。
映射关系存储模块用以存储服务器与虚拟机的映射关系,包括虚拟机创建时的放置映射关系以及虚拟机动态调度之后的映射关系。
虚拟机调度模块:虚拟机调度模块和数据存储模块、虚拟机控制模块相连接。该模块具体包括吻合度判断模块、部署优先值判断模块、调度决策模块以及状态判断模块。
吻合度判断模块用于虚拟机创建时新的课程需求与各物理机负载的吻合度计算、标记,以及虚拟机使用时,待迁出虚拟机与正常、过闲物理机的吻合度计算、标记。
部署优先值判断模块用于虚拟机部署时对定义四所示部署优先值的计算、标记。
状态判断模块用于动态调度时根据监控数据对物理机的状态进行判断,即过载、过闲或正常状态,从而对虚拟机进行正确调度,消除非正常状态的物理机。
调度决策模块用于决策虚拟机创建时与物理机的映射关系,以及物理机出现过载、过闲情况时对虚拟机的调度。
虚拟机控制模块:虚拟机控制模块与虚拟机调度模块、IaaS层接口相连接。该控制模块具体包括创建模块、删除模块、启动模块、停止模块、迁移模块以及配额调整模块,每一个模块对应着对虚拟机的一种操作。
最后所应说明的是,以上仅用以说明本发明的技术方案而非限制。尽管对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。