CN104765642B - 云环境下基于动态预测模型的虚拟机部署方法及系统 - Google Patents

云环境下基于动态预测模型的虚拟机部署方法及系统 Download PDF

Info

Publication number
CN104765642B
CN104765642B CN201510129326.9A CN201510129326A CN104765642B CN 104765642 B CN104765642 B CN 104765642B CN 201510129326 A CN201510129326 A CN 201510129326A CN 104765642 B CN104765642 B CN 104765642B
Authority
CN
China
Prior art keywords
virtual machine
mrow
msub
physical node
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201510129326.9A
Other languages
English (en)
Other versions
CN104765642A (zh
Inventor
张建明
杨黎
罗元盛
刘阳春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha University of Science and Technology
Original Assignee
Changsha University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changsha University of Science and Technology filed Critical Changsha University of Science and Technology
Priority to CN201510129326.9A priority Critical patent/CN104765642B/zh
Publication of CN104765642A publication Critical patent/CN104765642A/zh
Application granted granted Critical
Publication of CN104765642B publication Critical patent/CN104765642B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种云环境下基于动态预测模型的虚拟机部署方法及系统,系统包括控制节点、待部署的虚拟机及物理节点;控制节点中设置有请求列表模块、监视模块、调度模块、预测模块和放置模块;请求列表模块将待部署的虚拟机按照初始内存配额的大小进行降序排列,生成虚拟机列表;监视模块以时间k为周期采集各个物理节点上已经部署的虚拟机的历史内存消耗实际值;调度模块调用预测模块为待部署的虚拟机寻找合适的物理节点;预测模块根据监视模块中的历史内存消耗实际值,计算各个物理节点上已经部署的虚拟机在第t个时刻的内存消耗预测值;放置模块将虚拟机部署到一个合适的物理节点上。本发明能优化云环境中的资源配置,提高资源使用率。

Description

云环境下基于动态预测模型的虚拟机部署方法及系统
技术领域
本发明涉及一种云环境下基于动态预测模型的虚拟机部署方法及系统。
背景技术
信息化高速发展的今天,无论是国家政府、大中小企业以及个人用户,各行各业都看好云计算模式所蕴藏着潜在的机遇,一场以云计算为主角的信息化革命正在全球范围内如火如荼的演绎着。随着IT技术的高速发展,以及网络的广泛普及,越来越多的应用正在转移到云环境上。作为一项新颖的资源整合技术,云计算将传统的软件、硬件等IT资源看成基础设施,并以服务的方式提供给使用者。云计算之所以称作为“云”,是因为作为各种服务的基础设施并不是存在用户本地,而是存在于网络中;用户在使用该类服务时并不需要知道该服务存在于哪里。
数据中心从传统型发展为目前的云计算模式,共经历了漫长的40多年的发展变革;由于数据中心规模的扩大和功能的多样性,随之出现的问题是数据中心的可靠性及维护管理的巨大成本。传统数据中心主要关注应用的稳定性、数据的安全性和运行的可靠性,而对资源的利用率、节能等问题考虑的较少;目前云环境中的资源利用率依旧不高。数据中心资源利用率不高的原因并不是因为硬件设备本身消耗能源低效率,而是因为数据中心存在低效的使用方式。
为了提高云环境资源使用率,一方面可以通过提高工业设计水平来提高服务器的性能;另一方面可以通过优化云环境中资源整合策略,提高服务器整合率,从而达到资源的高效利用。而云计算的核心技术是虚拟化,通过虚拟化可以将应用程序的执行环境以打包的方式转到云平台中去执行,实现了程序的执行环境与物理环境的隔离;云环境中的计算、存储、应用都可以抽象化为资源,而且虚拟化技术提供了平台的管理、扩展、备份机制。因此对虚拟资源管理是云计算中的一个主要研究方向,其中包括资源的分配、资源的调度、资源的存储。云环境中的虚拟机作为计算资源的执行者,通过虚拟化技术共享使用云环境中各种资源;而要真正的让云使用者像使用水电一样基于按需来使用资源,云平台需要处理好资源的匹配。而且云环境中的应用种类繁多,加上基于按需消耗的用户需求也是实时的动态变化,同时需要考虑云平台提供者的效益等相关因素,使得云环境下虚拟机资源的分配变得非常的复杂化。因此,高效的云环境下虚拟机资源的整合成为目前的工业界亟需解决的问题。
虚拟化技术是云计算中的重要技术之一,虚拟化技术最大的特点是能够快速的对云环境中的资源进行融合,并最大限度的对整合的资源进行有效利用,是云计算的技术支撑。
按照虚拟化应用可以分成如下几类:
平台虚拟化(Platform Virtualization),如服务器平台虚拟化
资源虚拟化(Resource Virtualization),如内存、存储、网络资源等
应用虚拟化(Application Virtualization),如仿真技术,模拟技术等
通过虚拟化技术,多个虚拟机将共享云环境中的各种硬件资源;而不同的虚拟机上运行着各自的应用,虚拟化技术将各个虚拟机隔离开来。基于共享的思想,每个物理服务器上将部署多个虚拟机,因此确保多个虚拟机能高效的使用云环境中的虚拟资源,是当前云环境下资源调度的核心问题。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提供了一种云环境下基于动态预测模型的虚拟机部署方法及系统,能优化云环境中的资源配置,提高云环境下资源的使用率。
本发明的技术方案为:
一种云环境下基于动态预测模型的虚拟机部署方法,系统包括控制节点、N个待部署的虚拟机VM1,VM2,...,VMi,...,VMN以及M个物理节点PM1,PM2,...,PMj,...,PMM;所述控制节点中设置有请求列表模块、监视模块、调度模块、预测模块和放置模块;
所述虚拟机部署算法包括以下步骤:
(1)配置参数,包括配置各个虚拟机的默认初始内存配额;
(2)请求列表模块将待部署的虚拟机VM1,VM2...VMi...VMN按照虚拟机的默认初始内存配额大小进行降序排列;
(3)调度模块先判断待部署的虚拟机列表的长度VMList.Size(),若VMList.Size()>0,则从VMList中选择第一个虚拟机,然后调用预测模块为该虚拟机寻找合适的物理节点;否则,结束部署;
(4)预测模块根据监视模块中物理节点PMj上已经部署的虚拟机的历史内存消耗实际值,动态计算物理节点PMj上所有虚拟机在第t个时刻的内存消耗预测值总和;根据内存消耗预测值总和选出合适的物理节点,然后调用放置模块,将该虚拟机部署到一个合适的物理节点上;
(5)部署完一个虚拟机后,令VMList.Size()=VMList.Size()-1;跳转至步骤(3)。
所述步骤(4)中的动态计算物理节点PMj上所有虚拟机在第t个时刻内存消耗预测值总和的步骤为:首先获得物理节点PMj上已经部署的虚拟机列表vmListTemp,然后分别获得每个虚拟机的历史内存消耗实际值,再基于p阶的AR时间序列模型计算每个虚拟机在第t个时刻的内存消耗预测值;最后得到物理节点PMj上所有虚拟机在第t个时刻的内存消耗预测值总和。
p阶的AR时间序列模型为:
其中f(t,t+1)表示在第t个时刻计算得到的虚拟机在第t+1个时刻的内存消耗预测值,U(t)为虚拟机在第t个时刻内存消耗实际值,U(t-1)为虚拟机在第t-1个时刻的内存消耗实际值,U(t-p)为虚拟机在第t-p个时刻的内存消耗实际值,为p阶的AR时间序列模型的回归系数,at为残差因子。
使用最小二乘法【LeastSquares方法】来估计p阶的AR时间序列模型的系数 包括即求解以下函数:
其中,函数表示求解使得函数值最小的值;U(p+t)为虚拟机在第p+t个时刻内存消耗实际值;
表示在第p+t-1个时刻计算得到的虚拟机在第p+t个时刻的内存消耗预测值,H为采集的虚拟机内存消耗实际值个数;
因为
求解即求解使得残差at的平方和最小的回归系数的值。
令p=2,即基于2阶的AR时间序列模型预测每个虚拟机在时刻t的内存消耗值;2阶的AR时间序列模型为:
使用LeastSquares方法来估计2阶的AR时间序列模型的系数即求解以下函数:
其中,函数表示求解使得函数值最小的值。
因为求解即求解使得残差at的平方和最小的回归系数
所述根据预测值选出合适的物理节点,具体是指:基于装箱问题选出合适的物理节点,其数学模型表示如下:
其中z(y)已部署虚拟机的物理节点的个数,minz(y)表示使已部署虚拟机的物理节点的个数尽可能少;yj∈{0,1},j∈{1,2,...,M},yj=1表示物理节点PMj上部署有虚拟机,yj=0表示物理节点PMj上没有部署虚拟机;
同时需满足:
其中Xij∈{0,1},Xij=1表示虚拟机VMi部署在物理节点PMj上;MACj表示物理节点PMj上所有虚拟机内存消耗实际值总和;Lm表示物理节点可分配的内存比例阈值,即虚拟机占用内存与物理节点内存的比例值上限,其取值根据具体的环境进行预设定;Mc j表示物理节点PMj自身的内存大小,Ui(t)表示虚拟机VMi在第t个时刻的内存消耗实际值;MFj为物理节点PMj上所有虚拟机内存消耗预测值总和,fi(t,t+1)表示在第t个时刻计算得到的虚拟机VMi在第t+1个时刻的内存消耗预测值;VMi.rm为虚拟机VMi的默认初始内存配额,MSLAj表示满足SLA条件下物理节点PMj可分配出的内存值,r表示物理节点PMj上的虚拟机内存消耗预测值总和超过MSLAj的比例值,其中r的值满足(MACj-MSLAj)/MSLAj<r。
所述Lm=0.8,r的取值范围为(0,0.25)。
所述将该虚拟机部署到一个合适的物理节点上,是指采用降序首次适应算法将该虚拟机部署到第一个合适的物理节点上。
一种云环境下基于动态预测模型的虚拟机部署系统,包括控制节点、N个待部署的虚拟机VM1,VM2,...,VMi,...,VMN以及M个物理节点PM1,PM2,...,PMj,...,PMM;所述控制节点中设置有请求列表模块、监视模块、调度模块、预测模块和放置模块;
所述请求列表模块用于将待部署的虚拟机VM1,VM2,...,VMi,...,VMN按照虚拟机的默认初始内存配额的大小进行降序排列,生成虚拟机列表VMList;
所述监视模块用于以时间k为周期采集各个物理节点上已经部署的虚拟机的历史内存消耗实际值;
调度模块的作用是:先判断待部署的虚拟机列表的长度VMList.Size(),若VMList.Size()>0,则从VMList中选择第一个虚拟机,然后调用预测模块为该虚拟机寻找合适的物理节点;
预测模块用于根据监视模块中的历史内存消耗实际值,计算各个物理节点上已经部署的虚拟机在第t个时刻的内存消耗预测值;
所述放置模块用于将虚拟机部署到一个合适的物理节点上;
云环境下基于动态预测模型的虚拟机部署系统采用上述的云环境下基于动态预测模型的虚拟机部署算法进行虚拟机部署。
有益效果:
云环境下虚拟机部署包括虚拟机初始放置,其核心思想是为待部署的虚拟机找一个合适的物理服务器;在部署的过程中需要考虑虚拟机对资源请求,如CPU资源、内存资源、网络以及存储等。为提高云计算中服务器内存资源利用率,针对云环境下虚拟机动态部署,本发明提出一种基于服务器内存过量预分配机制下的虚拟机动态预测部署算法VM-DFS(virtual machine dynamic forecast schedule)。首先,在VM-DFS算法中通过引入虚拟机内存动态消耗机制,同时在虚拟机部署的过程中统计虚拟机内存历史消耗数据,然后,使用自回归时间序列模型来预测虚拟机在未来某个时刻对内存资源的消耗值,为虚拟机放置算法提供相应的决策信息,最后将该虚拟机部署问题抽象为动态的装箱问题。为了确保虚拟机对内存SLA要求,在本发明中对云环境中的物理服务器内存资源设置一个消耗阈值,并对内存消耗超过该阈值设置为过载比例因子r。该算法的目标是为了在满足云环境中阈值Lm和过载比例因子r的前提条件下,减少物理服务器开启的数目。本发明能优化云环境中的资源配置,提高云环境下资源的使用率。
附图说明
图1是VMi内存动态消耗变化曲线。
图2是VMi在t+k时刻其内存消耗概率分布情况。
图3是虚拟机在t1时刻对内存资源消耗情况。
图4是部署新的VMi节点。m1是原始VM初内存值,m1′是运行时某一时刻的VM内存值,m1″是运行时另一时刻的VM内存值。
图5是虚拟机动态预测部署算法架构图。
图6是基于动态预测的虚拟机部署算法流程图。
图7云环境下基于动态预测模型的虚拟机部署过程示意图。
具体实施方式:
以下结合附图和具体实施方式对本发明进行进一步具体说明。
本发明原理主要包括三个部分:
一、虚拟机内存动态消耗分析
考虑虚拟机对内存资源消耗的动态变化性是本发明的基本出发点,并为后续所提出的基于物理服务器内存过量预分配的虚拟机部署提供理论支撑。
假定静态内存分配(Static memory allocation)方案中虚拟机内存恒定,分配给虚拟机的内存与物理节点内存比例一直为Lm,而本发明所采用的动态内存分配(Dynamicmemory allocation)的比例值是伴随当前虚拟机的实际内存消耗量动态的变化;如图1所示,考虑内存消耗的动态变化性,虚拟机VMi在第t个时刻所消耗的内存比例值为Pi(t),如图1上的曲线所示;采用本发明所提出的动态预测技术,VMi在第t+k个时刻所消耗的内存的比例值是根据虚拟机VMi历史内存消耗时间序列进行动态预测,记为Pi(t+k)。与静态内存分配方式相比,基于动态预测分配机制所节省的内存资源可表示为:
MemSaving=Lm–Pi(t+k) (3.1)
在本发明中,虚拟机VMi的内存消耗Ui(t)是随着时间动态变化,其概率密度函数记为pt(x),其中0≤x≤1;而对于VMi在第t+k个时刻动态预测的概率密度为pt+k(x),如图2所示;因此,在第t+k个时刻内VMi的平均内存节省(百分比)可以表示为:
上面等式3.2可以简化为:
而当虚拟机VMi的内存动态消耗时间序列满足线性平稳模型时,此时上述等式3.3将满足:
当该虚拟机VMi内存消耗时间序列满足线性平稳模型,其预测消耗的期望值和实际消耗的平均值相等;因此该预测是无偏估计,残差服从期望为零、方差为σ2的高斯分布。因此对于云环境中虚拟机部署问题,在考虑虚拟机内存动态消耗的前提下,该分析结果能够为本发明中所采用的虚拟机动态预测部署算法提供理论依据。
二、服务器内存过量预分配模型
在初始状态t0,在物理节点PM1上部署了三个虚拟机分别为VM1、VM2、VM3,初始申请的内存资源配额分别为{m1,m2,m3}。如图3所示。
假定物理节点将保留内存资源大小为MR(memory reserve),物理节点可以分配出去的内存记为MA(memory available),则MAj=Mj c-MR;而该物理节点内存预测消耗值记为MF(memory forecast),MAC(memory actual consumed)来表示服务器当前时刻实际消耗的内存资源。
对于一个新的VMi部署请求,在基于静态峰值部署的策略下,若(VMi_Req_Mem+MemApply1)≥MA1,即:(新VM运行所需的内存+已有的所有虚拟机在物理机上申请的内存)≥物理节点可分配的内存,此时PM1节点剩余的内存空间已经不能放置该虚拟机;而对本发明所采用的动态预测过量预分配机制,若满足VMi_Req_Mem+PM1_MAC1<MA1,即:(新VM运行所需要的内存+PMj节点实际内存消耗值)<物理节点可分配的内存,同时满足VMi_Req_Mem+MF1<MA1,即:(新VM运行所需要的内存+物理节点内存预测消耗值)<物理节点可分配的内存,则依旧可以将该虚拟机部署在当前PM1节点上,此时,对于一个新的VMi部署请求,则可以将该虚拟机部署在当前PM1节点上,如图4所示。
三、基于装箱问题的虚拟机部署
本发明将虚拟机放置抽象为装箱问题,假设给定N个大小(虚拟机初始内存请求值)为W1,W2,…,WN的虚拟机和M个内存容量为Mc 1,Mc 2,…,Mc j,…,Mc m的物理节点;目标是在满足虚拟机内存要求的前提下将虚拟机部署到物理节点上,且整个云环境中开启的物理节点数量尽可能少。为了方便对虚拟机部署模型的描述,对相关的变量缩写如下:
表1 VM-DFS算法中相关变量声明
为了简化模型,将Wi看成是虚拟机VMi的内存配额,Mc j为第j个物理节点的内存容量;则基于装箱问题的虚拟机内存静态部署方式数学模型可描述如下:
S.T:
该模型可以看成经典的组合优化问题,其中Xij=1表示当前虚拟机VMj部署在PMj节点上;yj=1表示当前物理机上部署有虚拟机,并约定每一个虚拟机只能放入其中一台物理机上,不可以部分放入;同时每个物理机都有一个内存容量约束条件。
为了在上述装箱问题中引入本节提出的虚拟机内存动态预测消耗技术,需要对约束条件进一步的修改;由于每个物理节点的内存使用有一个上限,总的内存消耗超过MSLA的比例需小于预设阈值r;每个虚拟机的内存消耗是随着时间周期动态的变化,因此每次在部署VMi到某个PMj上之前,将综合考虑该PMj上的所有虚拟机内存消耗预测值之和MFj,预测内存消耗预测值表示为:
上式中fi(t,t+1)表示对于某个虚拟机VMi,在第t个时刻计算得到的第t+1个时刻的内存消耗预测值。通过动态预测虚拟机内存消耗的变化情况,为虚拟机的部署提供决策信息。
四、本发明将考虑如下几个情况:
(1)在虚拟机部署过程中,若给定的PMj节点上所有虚拟机内存消耗预测值MFi超过MSLAj的比例大于预设阈值r时,此时不在该节点上部署虚拟机。
此处主要是虚拟机的部署研究,修改后的基于装箱问题的虚拟机内存动态预测消耗部署方式的数学模型表示如下:
z(y)表示部署有虚拟机的物理节点个数,求解其最小值;
S.T:
其中Lm表示物理节点可分配的内存阈值,Lm的值可以根据具体的环境进行预设定,Ui(t)为VMi的内存消耗实际值,MACj表示物理节点PMj上所有的虚拟机内存消耗实际值总和,MFj为PMj上所有虚拟机内存消耗预测值总和,VMi.rm为VMi默认的内存配。相对于静态部署模型,为了防止虚拟机对内存消耗的峰值而导致物理节点内存消耗的震荡,在动态预测部署中添加了Lm和r作为约束条件。在虚拟机部署过程中将考虑各个虚拟机历史内存消耗情况,通过统计分析虚拟机在不同时间序列的内存实际消耗量,使用基于虚拟机内存动态消耗的时间序列来预测虚拟机在下一个周期及将来某个周期对内存资源消耗情况。
本发明基于AR(p)的时间序列模型来对虚拟机内存资源消耗进行动态预测。
定义1:VM-MCTS(虚拟机内存消耗时间序列VM-Memory Consumption TimeSeries):对于给定的时间序列t,虚拟机VMi在第t个时刻其内存消耗实际值记为Ui(t),对于时间序列t-1,t-2,…,t-p,VMi的内存消耗观测值为Ui(t-1),Ui(t-2),...,Ui(t-p)。
本发明中所提到的虚拟机内存消耗实际值Ui(t)是在离散、等间隔时间区间上统计得到;对于p阶的AR模型可以表示为:
其中f(t,t+1)表示在第t个时刻计算得到的虚拟机在第t+1个时刻的内存消耗预测值,U(t)为虚拟机在第t个时刻内存消耗实际值,U(t-1)为虚拟机在第t-1个
时刻的内存消耗实际值,U(t-p)为虚拟机在第t-p个时刻的内存消耗实际值,
为p阶的AR时间序列模型的回归系数,at为残差因子。
为简化模型的建立,本算法采用2阶的AR模型:
并采用LeastSquares(最小二乘法)来估计AR模型的参数值。
使用LeastSquares来估计预测模型系数的目的是使得等式(3.16)残差αt平方和最小。
其中,U(p+t)为虚拟机在第p+t个时刻内存消耗实际值,
表示在第p+t-1个时刻计算得到的虚拟机在第p+t个时刻的内存消耗预测值,H为采集的虚拟机内存消耗实际值个数【已知的统计数据个数】。
该模型在平稳条件下,=经由公式(3.2)(3.4)可知预测估计是无偏估计,且残差服从期望为零的高斯分布N(μ,σ2);在本发明中预测模型的参数在每次虚拟机部署的过程中都将进行估计,VM-DFS算法不断的对模型参数进行估计能够及时的修正残差所带来的影响。通过上述分析,在虚拟机动态预测部署的过程中,VM-DFS所产生的预测误差是在可接受的范围内。
虚拟机动态预测部署算法(VM-DFS):
为了对云环境中物理服务器内存资源进行高效的利用,本发明提出一种新颖的云环境下基于物理服务器内存过量预分配的虚拟机动态预测部署模型。针对给定的VMList(待部署的虚拟机列表),在放置每一个虚拟机之前都将统计并分析云平台中每个物理节点上已部署的虚拟机过去内存的消耗值;通过自回归分析,预测虚拟机将来的值,为新的虚拟机部署提供决策信息。
本发明所提出的VM-DFS算法主要包括如下模块,请求列表模块(VM ReqList)、监视模块(Monitor Service)、调度模块(Schedule Service)、预测模块(Forecast Service)和放置模块(VM Placement Service)。VM-DFS部署模型详细的架构如图5所示,其中Controller Node是控制节点,Computer Node是计算节点(本发明中所说的物理节点);类似于目前比较流行的开源IaaS云平台,如OpenStack的控制节点和计算节点。控制节点负责云平台的运维,管理等,计算节点负责虚机部署及正常运行。VM-DFS算法流程如图6所示:
VM-DFS算法基本步骤如下:
(1)配置相关参数,并初始化系统;
(2)将待部署的虚拟机列表以虚拟机默认初始内存配额大小进行降序排列;
(3)若待部署列表长度VMList.Size()>0,从待部署列表中选择第一个虚拟机,并为它选择合适的物理节点;对于每个虚拟机部署请求,先读取Monitor Service模块中的数据,然后Schedule Service调用Forecast Service服务;
(4)预测模块根据各个物理节点上的虚拟机内存历史数据进行动态预测;使用下面的算法一进行动态预测,并从预测值中选出合适的物理节点,然后调用VM-PlacementService将该虚拟机部署到目的物理服务器节点上;
(5)部署完一个虚拟机后,令VMList.Size()=VMList.Size()-1;若VMList.Size()大于0,依次重复上面第(3)、(4);否则,跳转到(6);
(6)结束;
在算法一中,首先获得当前PMj节点上已经部署的虚拟机列表vmListTemp,再分别获得每个虚拟机的历史内存消耗数据vmHistoryData,针对每个虚拟机的历史内存数据vmHistoryData使用Least Square方法进行估计该AR模型的系数值,最后预测虚拟机在时间k的内存消耗vmRamMF。该算法最后返回的是PMj节点上所有虚拟机在时间k内存预测消耗值总和。
动态预测算法流程如下:
其中,在部署的初始阶段由于此时并没有历史数据,因此采用现有技术直接部署,即在计算节点中由云平台负责选择合适区域使用已应用的技术部署虚机;MonitorService周期性的收集云平台中各个物理节点上虚拟机的内存消耗实际值;本发明将虚拟机部署过程抽象为装箱问题,和传统装箱问题不同在于本发明提出虚拟机在部署过程中其“重量”是动态变化,是一个动态装箱过程;因此本发明采用first fit decreasing(降序首次适应FFD)算法【降序首次适应算法(FFD):先对物品按降序排序,再按照首次适应算法进行装箱。首次适应算法(FF):针对下次适应算法的缺陷,首次适应算法处理当前物品的时候,检查所有非空箱子,找到第一个能够放下当前物品的箱子并将该物品放入,否则则开启新的箱子。】进行近似求解。
在VM-DFS算法中,Lm和r是根据当前实验环境来设定;在算法中,首先对虚拟机列表按照其内存配额值进行降序排列;使用FFD策略为每个虚拟机找到第一个合适的物理节点进行部署,MACj为PMj上所有虚拟机内存的实际消耗值,MFj为部署在PMj上的虚拟机内存预测值,虚拟机动态预测部署算法如下所示:

Claims (7)

1.一种云环境下基于动态预测模型的虚拟机部署方法,其特征在于,系统包括控制节点、N个待部署的虚拟机VM1,VM2,...,VMi,...,VMN以及M个物理节点PM1,PM2,...,PMj,...,PMM;所述控制节点中设置有请求列表模块、监视模块、调度模块、预测模块和放置模块;
所述虚拟机部署方法包括以下步骤:
(1)配置参数,包括配置各个虚拟机的默认初始内存配额;
(2)请求列表模块将待部署的虚拟机VM1,VM2...VMi...VMN按照虚拟机的默认初始内存配额大小进行降序排列;
(3)调度模块先判断待部署的虚拟机列表的长度VMList.Size(),若VMList.Size()>0,则从VMList中选择第一个虚拟机,然后调用预测模块为该虚拟机寻找合适的物理节点;否则,结束部署;
(4)预测模块根据监视模块中物理节点PMj上已经部署的虚拟机的历史内存消耗实际值,动态计算物理节点PMj上所有虚拟机在第t个时刻的内存消耗预测值总和;根据内存消耗预测值总和选出合适的物理节点,然后调用放置模块,将该虚拟机部署到一个合适的物理节点上;
(5)部署完一个虚拟机后,令VMList.Size()=VMList.Size()-1;跳转至步骤(3);
所述步骤(4)中的动态计算物理节点PMj上所有虚拟机在第t个时刻内存消耗预测值总和的步骤为:首先获得物理节点PMj上已经部署的虚拟机列表vmListTemp,然后分别获得每个虚拟机的历史内存消耗实际值,再基于p阶的AR时间序列模型计算每个虚拟机在第t个时刻的内存消耗预测值;最后得到物理节点PMj上所有虚拟机在第t个时刻的内存消耗预测值总和;
p阶的AR时间序列模型为:
其中f(t,t+1)表示在第t个时刻计算得到的虚拟机在第t+1个时刻的内存消耗预测值,U(t)为虚拟机在第t个时刻内存消耗实际值,U(t-1)为虚拟机在第t-1个时刻的内存消耗实际值,U(t-p)为虚拟机在第t-p个时刻的内存消耗实际值,为p阶的AR时间序列模型的回归系数,at为残差因子。
2.根据权利要求1所述的云环境下基于动态预测模型的虚拟机部署方法,其特征在于,使用最小二乘法来估计p阶的AR时间序列模型的系数 包括即求解以下函数:
其中,函数表示求解使得函数值最小的值;U(p+t)为虚拟机在第p+t个时刻内存消耗实际值;
表示在第p+t-1个时刻计算得到的虚拟机在第p+t个时刻的内存消耗预测值,H为采集的虚拟机内存消耗实际值个数。
3.根据权利要求1所述的云环境下基于动态预测模型的虚拟机部署方法,其特征在于,令p=2,即基于2阶的AR时间序列模型预测每个虚拟机在时刻t的内存消耗值;2阶的AR时间序列模型为:
使用LeastSquares方法来估计2阶的AR时间序列模型的系数即求解以下函数:
其中,函数表示求解使得函数值最小的值。
4.根据权利要求1~3中任一项所述的云环境下基于动态预测模型的虚拟机部署方法,其特征在于,所述根据预测值选出合适的物理节点,具体是指:基于装箱问题选出合适的物理节点,其数学模型表示如下:
<mrow> <mi>min</mi> <mi> </mi> <mi>z</mi> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>y</mi> <mi>j</mi> </msub> </mrow>
其中z(y)已部署虚拟机的物理节点的个数,minz(y)表示使已部署虚拟机的物理节点的个数尽可能少;yj∈{0,1},j∈{1,2,...,M},yj=1表示物理节点PMj上部署有虚拟机,yj=0表示物理节点PMj上没有部署虚拟机;
同时需满足:
<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>=</mo> <mi>N</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>MAC</mi> <mi>j</mi> </msub> <mo>&amp;le;</mo> <msub> <mi>L</mi> <mi>m</mi> </msub> <msub> <msup> <mi>M</mi> <mi>c</mi> </msup> <mi>j</mi> </msub> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>MAC</mi> <mi>j</mi> </msub> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>U</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>MF</mi> <mi>j</mi> </msub> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>i</mi> <mo>=</mo> <mi>N</mi> </mrow> </munderover> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <msub> <mi>f</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>,</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>VM</mi> <mi>i</mi> </msub> <mo>.</mo> <mi>r</mi> <mi>m</mi> <mo>&lt;</mo> <msub> <mi>MSLA</mi> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>r</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>MAC</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <msub> <mi>MF</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>MSLA</mi> <mi>j</mi> </msub> <mo>)</mo> <mo>/</mo> <msub> <mi>MSLA</mi> <mi>j</mi> </msub> <mo>&lt;</mo> <mi>r</mi> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>X</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>&amp;Element;</mo> <mo>{</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>}</mo> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>i</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>N</mi> <mo>}</mo> <mo>,</mo> <mo>&amp;ForAll;</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>&amp;Element;</mo> <mo>{</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>}</mo> <mo>,</mo> <mi>j</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>}</mo> </mrow> </mtd> </mtr> </mtable> </mfenced>
其中Xij∈{0,1},Xij=1表示虚拟机VMi部署在物理节点PMj上;MACj表示物理节点PMj上所有虚拟机内存消耗实际值总和;Lm表示物理节点可分配的内存比例阈值;Mc j表示物理节点PMj自身的内存大小,Ui(t)表示虚拟机VMi在第t个时刻的内存消耗实际值;MFj为物理节点PMj上所有虚拟机内存消耗预测值总和,fi(t,t+1)表示在第t个时刻计算得到的虚拟机VMi在第t+1个时刻的内存消耗预测值;VMi.rm为虚拟机VMi的默认初始内存配额,MSLAj表示满足SLA条件下物理节点PMj可分配出的内存值,r表示物理节点PMj上的虚拟机内存消耗预测值总和超过MSLAj的比例值,其中r的值满足(MACj-MSLAj)/MSLAj<r。
5.根据权利要求4所述的云环境下基于动态预测模型的虚拟机部署方法,其特征在于,所述Lm=0.8,r的取值范围为(0,0.25)。
6.根据权利要求4所述的云环境下基于动态预测模型的虚拟机部署方法,其特征在于,所述将该虚拟机部署到一个合适的物理节点上,是指采用降序首次适应算法将该虚拟机部署到第一个合适的物理节点上。
7.一种云环境下基于动态预测模型的虚拟机部署系统,其特征在于,包括控制节点、N个待部署的虚拟机VM1,VM2,...,VMi,...,VMN以及M个物理节点PM1,PM2,...,PMj,...,PMM;所述控制节点中设置有请求列表模块、监视模块、调度模块、预测模块和放置模块;
所述请求列表模块用于将待部署的虚拟机VM1,VM2,...,VMi,...,VMN按照虚拟机的默认初始内存配额的大小进行降序排列,生成虚拟机列表VMList;
所述监视模块用于以时间k为周期采集各个物理节点上已经部署的虚拟机的历史内存消耗实际值;
调度模块的作用是:先判断待部署的虚拟机列表的长度VMList.Size(),若VMList.Size()>0,则从VMList中选择第一个虚拟机,然后调用预测模块为该虚拟机寻找合适的物理节点;
预测模块用于根据监视模块中的历史内存消耗实际值,计算各个物理节点上已经部署的虚拟机在第t个时刻的内存消耗预测值;
所述放置模块用于将虚拟机部署到一个合适的物理节点上;
云环境下基于动态预测模型的虚拟机部署系统采用权利要求6所述的云环境下基于动态预测模型的虚拟机部署方法进行虚拟机部署。
CN201510129326.9A 2015-03-24 2015-03-24 云环境下基于动态预测模型的虚拟机部署方法及系统 Expired - Fee Related CN104765642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510129326.9A CN104765642B (zh) 2015-03-24 2015-03-24 云环境下基于动态预测模型的虚拟机部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510129326.9A CN104765642B (zh) 2015-03-24 2015-03-24 云环境下基于动态预测模型的虚拟机部署方法及系统

Publications (2)

Publication Number Publication Date
CN104765642A CN104765642A (zh) 2015-07-08
CN104765642B true CN104765642B (zh) 2017-11-10

Family

ID=53647489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510129326.9A Expired - Fee Related CN104765642B (zh) 2015-03-24 2015-03-24 云环境下基于动态预测模型的虚拟机部署方法及系统

Country Status (1)

Country Link
CN (1) CN104765642B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279023B (zh) * 2015-11-27 2018-06-26 浪潮(北京)电子信息产业有限公司 一种虚拟机迁移方法和装置
CN105607948A (zh) * 2015-12-18 2016-05-25 国云科技股份有限公司 一种基于sla的虚拟机迁移预测方法
CN105487826B (zh) * 2015-12-22 2019-04-26 国云科技股份有限公司 一种云存储资源超量分配使用的方法
CN106533806B (zh) * 2016-12-26 2020-05-22 上海交通大学 多租户SDN网络中基于应用感知提供跨层QoS的方法
CN106899660B (zh) * 2017-01-26 2021-05-14 华南理工大学 基于滚动灰色预测模型的云数据中心节能调度实现方法
US11301307B2 (en) 2019-07-24 2022-04-12 Red Hat, Inc. Predictive analysis for migration schedulers
CN110942180B (zh) * 2019-11-12 2023-07-04 广州泽沐信息科技有限责任公司 基于xgboost算法的工业设计匹配服务方预测方法
CN111026550A (zh) * 2019-11-29 2020-04-17 中国科学院深圳先进技术研究院 容器云环境下的任务调度方法、装置、服务器及存储装置
CN113157383A (zh) * 2021-01-22 2021-07-23 浪潮云信息技术股份公司 一种OpenStack环境下动态调整超配比的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103607459A (zh) * 2013-11-21 2014-02-26 东北大学 一种云计算平台IaaS层的动态资源监测及调度方法
CN104239123A (zh) * 2014-09-05 2014-12-24 北方工业大学 面向校园云平台的虚拟机管理调度方法和系统
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103607459A (zh) * 2013-11-21 2014-02-26 东北大学 一种云计算平台IaaS层的动态资源监测及调度方法
CN104239123A (zh) * 2014-09-05 2014-12-24 北方工业大学 面向校园云平台的虚拟机管理调度方法和系统
CN104283946A (zh) * 2014-09-26 2015-01-14 东北大学 一种单物理机下多虚拟机的资源自适应调整系统及方法

Also Published As

Publication number Publication date
CN104765642A (zh) 2015-07-08

Similar Documents

Publication Publication Date Title
CN104765642B (zh) 云环境下基于动态预测模型的虚拟机部署方法及系统
Bhattacharjee et al. Barista: Efficient and scalable serverless serving system for deep learning prediction services
CN104283946B (zh) 一种单物理机下多虚拟机的资源自适应调整系统及方法
CN110096349A (zh) 一种基于集群节点负载状态预测的作业调度方法
CN103607459B (zh) 一种云计算平台IaaS层的动态资源监测及调度方法
CN104216782B (zh) 高性能计算和云计算混合环境中的动态资源管理方法
CN107404523A (zh) 云平台自适应资源调度系统和方法
CN106020933B (zh) 基于超轻量虚拟机的云计算动态资源调度系统及方法
CN110231976B (zh) 一种基于负载预测的边缘计算平台容器部署方法及系统
US20080104605A1 (en) Methods and apparatus for dynamic placement of heterogeneous workloads
CN108804227A (zh) 基于移动云计算的计算密集型任务卸载和最佳资源配置的方法
Zhang et al. A-SARSA: A predictive container auto-scaling algorithm based on reinforcement learning
CN106600058A (zh) 一种制造云服务QoS的组合预测方法
CN105843679A (zh) 自适应众核资源调度方法
CN109491760A (zh) 一种高效能数据中心云服务器资源自主管理方法和系统
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
US20200233724A1 (en) Workload placement in a cluster computing environment using machine learning
CN110196773B (zh) 统一调度计算资源的多时间尺度安全校核系统及方法
Raman et al. Computation of workflow scheduling using backpropagation neural network in cloud computing: a virtual machine placement approach
Parsa et al. Task dispatching approach to reduce the number of waiting tasks in grid environments
Zheng et al. A cloud resource prediction and migration method for container scheduling
Faraji-Mehmandar et al. A self-learning approach for proactive resource and service provisioning in fog environment
Sahal et al. GPSO: An improved search algorithm for resource allocation in cloud databases
Gao et al. Minimizing financial cost of scientific workflows under deadline constraints in multi-cloud environments
Nguyen et al. A QoS based load balancing framework for large scale elastic distributed systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171110

Termination date: 20200324