基于温度预测的虚拟机迁移规划调度方法及其系统与介质与流程

文档序号:22123921发布日期:2020-09-04 16:57阅读:212来源:国知局
基于温度预测的虚拟机迁移规划调度方法及其系统与介质与流程

本发明涉及基础架构即服务(iaas)云数据中心节能领域,具体地,涉及基于温度预测的虚拟机迁移规划调度方法及其系统与介质。尤其是同时考虑到最小化运行状态云服务器温度与数量的节能技术方案。



背景技术:

随着信息产业及社会经济的不断发展,iaas云计算作为一种新兴的资源使用和交付服务模式规模呈快速增长的趋势。作为iaas云计算服务的承载体,iaas云数据中心的能耗已成为影响iaas云计算服务成本的瓶颈。

在传统的分布式计算系统中,计算任务的计算量和/或计算时长往往预先已知,计算系统可根据多个计算任务的计算量预先规划计算任务在服务器的分配以达到服务器总能耗最低的节能目标;但是对于iaas云数据中心而言,用户的计算任务是未知的,因此仅能通过监控iaas云数据中心云服务器的实际使用情况实时规划虚拟机的迁移路径以实现iaas云数据中心节能。

但是,现有技术中的虚拟机迁移调度方案通常依据当前云服务器的负载信息实施调度规划,而非考虑云服务器的热负载(即温度),无法将虚拟机迁移调度策略与数据中心节能目标直接挂钩。或者是,现有技术在实施虚拟机迁移调度时,仅依赖于对云服务器当前温度的感知,而非利用对云服务器未来温度的预测实施规划,往往导致调度迟滞于负荷变化,无法做到及时有效转移云服务器负荷。

因此,需要设计一种全新的虚拟机迁移调度规划方法,以对云服务器未来温度的预测作为依据,将虚拟机迁移到预测温度低的云服务器,最小化处于工作状态云服务器温度及数量,从而降低iaas云数据中心云服务器总能耗,最终达到iaas云数据中心节能的目的。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于温度预测的虚拟机迁移规划调度方法及其系统与介质。

根据本发明提供的一种基于温度预测的虚拟机迁移规划调度方法,包括:

步骤s1:获取云数据中心云服务器列表,获取基于贝叶斯线性回归的温度预测模型对所述云数据中心云服务器列表中的每个云服务器温度的预测值,得到云服务器的预测温度;

步骤s2:将运行状态云服务器列表中负荷监控指标满足低负荷条件的运行状态云服务器,定义为低负荷云服务器,构建低负荷云服务器列表;

步骤s3:遍历所述低负荷云服务器列表,获取每台低负荷云服务器中的虚拟机,并列入待迁移虚拟机列表;

步骤s4:根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移;其中,所述宿主云服务器包括正常运行状态云服务器、休眠状态云服务器列表中的云服务器;目标宿主云服务器的选择顺序为优先选择正常运行状态云服务器,无符合匹配条件正常运行状态云服务器时,选择休眠状态云服务器;正常运行状态云服务器定义为运行状态云服务器列表中未列入低负荷云服务器列表且未列入告警云服务器列表的云服务器;

步骤s5:将虚拟机已经全部迁移出的低负荷云服务器设置为休眠状态,列出运行状态云服务器列表,并列入休眠状态云服务器列表;

步骤s6:将所述运行状态云服务器列表中监控指标满足告警条件的运行状态云服务器,定义为告警云服务器,将全部告警云服务器列入告警云服务器列表;

步骤s7:遍历所述告警云服务器列表,得到每台告警云服务器中的最高迁移优先级的虚拟机,并列入待迁移虚拟机列表;

步骤s8:根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移;

步骤s9:将虚拟机已经全部迁移出的告警云服务器设置为休眠状态,列出运行状态云服务器列表,并列入休眠状态云服务器列表;

步骤s10:判断流程是否结束;若是,则结束流程;若否,则跳转到所述步骤s1继续执行。

优选地,所述步骤s1中的所述温度预测模型,是通过如下步骤得到的:

步骤s101:利用历史上采样数据构建初始训练数据集,对贝叶斯线性回归模型进行初始训练,得到初始的温度预测模型;

步骤s102:在云数据中心日常运行过程中,实时采集新增训练数据集,以增量的方式对当前的云服务器温度预测模型进行在线的增量训练,更新温度预测模型并使用温度预测模型对云服务器未来温度实施预测,获得云服务器未来温度预测值;

其中:

所述步骤s101包括如下步骤:

步骤s10101:定义每两个相邻采样时刻间的时段为一个采样周期,在每一个采样周期上定义一个预测周期,预测周期的长度为温度预测模型的预测深度,预测周期初始时刻为同一采样周期初始时刻;其中,将预测周期初始时刻时云服务器的指标数据作为模型输入数据指标,将同一预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标,来构建初始训练数据集;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;

步骤s10102:对初始训练数据集进行预处理;

步骤s10103:利用预处理后的初始训练数据集,对贝叶斯线性回归模型进行训练,获取初始的贝叶斯线性回归模型的参数后验分布函数;

步骤s10104:输出初始的贝叶斯线性回归模型的参数后验分布函数;

所述步骤s102包括如下步骤:

步骤s10201:输入当前的贝叶斯线性回归模型的参数后验分布函数;

步骤s10202:获取新增训练数据集;其中,所述新增训练数据集包括:云服务器在当前采样周期初始时刻结束的预测周期初始时刻时的指标数据作为输入数据指标、云服务器在当前采样周期初始时刻结束的预测周期结束时刻时的实测的云服务器温度作为输出数据指标;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;

步骤s10203:对新增训练数据集进行预处理;

步骤s10204:利用预处理后的新增训练数据集对当前的贝叶斯线性回归模型进行增量训练,更新当前贝叶斯线性回归模型的参数后验分布函数;

步骤s10205:获取当前贝叶斯线性回归模型的参数贝叶斯最优估计;

步骤s10206:基于当前的贝叶斯线性回归模型的参数贝叶斯最优估计预测当前预测周期结束时刻时云服务器的温度;

步骤s10207:输出云服务器的预测温度;

步骤s10208:判断云服务器预测温度流程是否结束;若是,则结束流程;若否,则跳转到步骤s10202继续执行。

优选地,所述步骤s10101和步骤s10202中,云服务器温度预测模型训练数据指标包括输入数据指标、输出数据指标;

输入数据指标包括如下任一种或任多种数据:

云服务器cpu核数;

云服务器使用cpu核数;

云服务器cpu利用率;

云服务器内存量;

云服务器内存使用率;

云服务器cpu的当前频率;

云服务器输入网络流量;

云服务器输出网络流量;

云服务器每个风扇转速;

云服务器节点部署虚拟机数量;

输出数据指标包括如下任一种数据或任多种数据的算数平均值:

实测的云服务器进风温度;

实测的云服务器出风温度;

实测的云服务器cpu温度;

实测的云服务器gpu温度。

优选地,所述步骤s10102和步骤s10203中的预处理包括如下步骤:

数据清洗步骤:如果在采样时刻获得的采样输入数据项的值为空缺值,使用该数据项的历史平均值填充空缺值;

归一化步骤:对于每一个输入数据项,将所述步骤s10102中定义的初始训练数据集中数据项的最小值、最大值分别记为,将输入数据项的原始值映射成近似在区间[0,1]中的新值,其公式为:

将训练样本中每一输入数据项经预处理后获得的数据项的值合并为预处理后训练样本输入数据作为步骤s10103中贝叶斯线性回归初始训练和步骤s10204中贝叶斯线性回归增量训练的输入。

优选地,所述步骤s10103包括:在贝叶斯线性回归初始训练阶段,选择模型参数先验分布服从给定初始超参数为的高斯-反gamma概率分布,贝叶斯线性回归模型在完成初始训练后,模型参数后验分布服从超参数为的高斯-反gamma概率分布,其中n表示初始训练数据集中的最后一个采样周期;超参数均为及初始训练样本集的简单函数,有解析解。

所述步骤s10204包括:在贝叶斯线性回归增量训练阶段,当前采样周期t之前的模型参数服从超参数为的高斯-反gamma概率分布,在当前采样周期t通过增添采样周期t的采样训练样本,更新当前采样周期t的模型参数为服从超参数的高斯-反gamma概率分布;超参数均为及增量训练样本的简单函数,有解析解。

优选地,低负荷条件是指:运行状态云服务器cpu使用率低于设定的第一阈值;

满足告警条件是指满足如下任一个条件:

第一条件,云服务器cpu使用率高于设定的第二阈值,其中,第二阈值大于第一阈值;

第二条件,云服务器当前的预测温度高于服务器警报温度。

优选地,在所述步骤s8中,根据如下步骤计算虚拟机迁移优先级v:

步骤s801:根据用户的月消费金额或年消费金额,以得到用户级别;根据所述用户级别,以得到用户优先级权重系数r;所述用户优先级权重系数包括0~1之间的数值;

步骤s802:获取虚拟机内存大小;计算运行状态云服务器中所有虚拟机内存大小的平均值;根据所述虚拟机内存大小,以及所有运行状态云服务器中所有虚拟机内存大小的平均值,计算虚拟机常量迁移负荷权重系数

步骤s803:获取虚拟机单位时间内存变化率;计算所有运行状态云服务器中所有虚拟机单位时间内存变化率的平均值;根据所述虚拟机单位时间内存变化率,以及运行状态云服务器中所有虚拟机单位时间内存变化率的平均值,计算虚拟机增量迁移负荷权重系数

步骤s804:根据所述用户优先级权重系数、虚拟机常量迁移负荷权重系数以及虚拟机增量迁移负荷权重系数,计算虚拟机的迁移优先级:

根据迁移优先级计算公式:,其中,,则虚拟机迁移优先级

其中,表示用户优先级权重系数,表示虚拟机常量迁移负荷权重系数,表示虚拟机增量迁移负荷权重系数,表示虚拟机的内存大小,表示所有运行状态云服务器中全部虚拟机的平均内存大小,表示虚拟机的单位时间内存变化率,表示所有运行状态云服务器中全部虚拟机的平均的单位时间内存变化率,为经验参数,取值范围(0,1]。

优选地,在所述步骤s4和步骤s8中,根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器的步骤,均采用最小温度服务器分配原则算法,具体包括如下步骤:

步骤a:遍历所述待迁移虚拟机列表中的待迁移虚拟机,对于每个待迁移虚拟机执行第一循环步骤,其中,所述第一循环步骤包括如下步骤:

步骤a:遍历所有正常运行状态云服务器,获取每个正常运行状态云服务器当前的预测温度;

步骤b:将正常运行云服务器按照预测温度从低到高排序,得到排序后的待选择云服务器列表;

步骤c:遍历排序后的待选择云服务器列表,执行第二循环步骤,其中,所述第二循环步骤包括如下步骤:

步骤c1:对于当前待选择云服务器,判断当前待选择云服务器是否满足如下条件:

预测温度小于服务器警报温度阈值;

剩余cpu核数大于待迁移虚拟机的cpu核数需求;

剩余未分配内存量大于待迁移虚拟机的内存需求;

若是,则分配待迁移虚机给当前待选择云服务器,得到目标宿主云服务器;退出第二循环步骤;

若否,则进入步骤c2继续执行;

步骤c2:判断待选择云服务器列表是否存在下一个待选择云服务器;若是,则进入步骤c3继续执行;若否,则跳转到步骤c4继续执行;

步骤c3:将下一个待选择云服务器作为当前待选择云服务器,跳转到步骤c1继续执行;

步骤c4:从休眠状态云服务器列表中列出一云服务器,将这一云服务器列入正常运行状态云服务器列表,将这一云服务器作为当前待选择云服务器,跳转到步骤c1继续执行;

步骤b:判断是否存在下一个待迁移虚拟机;若否,则进入步骤c继续执行;若是,则进入步骤a继续执行第一循环步骤;

步骤c:得到待迁移虚拟机与目标宿主云服务器的匹配关系。

根据本发明提供的一种基于温度预测的虚拟机迁移规划调度系统,包括:

温度预测模型训练预测模块100:训练基于贝叶斯线性回归的温度预测模型,利用温度预测模型进行温度预测,获得云服务器的预测温度;

云服务器分类模块200:根据工作状态将云服务器分类为运行状态云服务器、休眠状态云服务器,其中,运行状态云服务器分类为低负荷云服务器、正常运行状态云服务器、告警状态云服务器;

虚拟机迁移模块300:基于云服务器分类模块200对云服务器的分类,根据温度预测模型训练预测模块100得到的云服务器的预测温度,将低负荷云服务器上的虚拟机、告警云服务器上的最高迁移优先级的虚拟机迁移到宿主云服务器;其中,所述宿主云服务器包括正常运行状态云服务器、休眠状态云服务器列表中的云服务器;目标宿主云服务器的选择顺序为优先选择正常运行状态云服务器,无符合匹配条件正常运行状态云服务器时,选择休眠状态云服务器;正常运行状态云服务器定义为运行状态云服务器列表中未列入低负荷云服务器列表且未列入告警云服务器列表的云服务器。

优选地,所述温度预测模型训练预测模块100包括:

数据采集模块110:采集云服务器的指标数据、实测的云服务器温度数据;

数据预处理模块120:对数据采集模块110采集的数据进行预处理;

温度预测模型训练模块130:使用数据预处理模块120预处理后的数据对贝叶斯线性回归模型进行训练;

温度预测模块140:根据温度预测模型训练模块130训练得到的当前的贝叶斯线性回归模型进行温度预测,获得云服务器的预测温度。

优选地,所述数据采集模块110包括:

初始训练数据集构建模块111:利用历史上采样数据,构建初始训练数据集;定义每两个相邻采样时刻间的时段为一个采样周期,在每一个采样周期上定义一个预测周期,预测周期的长度为温度预测模型的预测深度,预测周期初始时刻为同一采样周期初始时刻;其中,将预测周期初始时刻时云服务器的指标数据作为模型输入数据指标,将同一预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标,来构建初始训练数据集;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;

新增训练数据集构建模块112:获取新增训练数据集;其中,所述新增训练数据集包括:云服务器在当前采样周期初始时刻结束的预测周期初始时刻时的指标数据作为模型输入数据指标、云服务器在当前采样周期初始时刻结束的预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;

其中,云服务器温度预测模型训练数据指标包括输入数据指标、输出数据指标;

输入数据指标包括如下任一种或任多种数据:

云服务器cpu核数;

云服务器使用cpu核数;

云服务器cpu利用率;

云服务器内存量;

云服务器内存使用率;

云服务器cpu的当前频率;

云服务器输入网络流量;

云服务器输出网络流量;

云服务器每个风扇转速;

云服务器部署虚拟机数量;

输出数据指标包括如下任一种数据或任多种数据的算数平均值:

实测的云服务器进风温度;

实测的云服务器出风温度;

实测的云服务器cpu温度;

实测的云服务器gpu温度。

优选地,所述数据预处理模块120包括:

初始训练数据集预处理模块121:对初始训练数据集进行预处理;

新增训练数据集预处理模块122:对新增训练数据集进行预处理;

所述初始训练数据集预处理模块121、新增训练数据集预处理模块122均包括:

数据清洗模块1201:如果在采样时刻获得的采样数据项的值为空缺值,使用该数据项的历史平均值填充空缺值;

归一化模块1202:对于每一个数据项,将所述初始训练数据集中数据项的最小值、最大值分别记为,将数据项的原始值映射成近似在区间[0,1]中的新值,其公式为:

将训练样本中每一数据项经预处理后获得的数据项的值合并为预处理后训练样本作为温度预测模型训练模块130中贝叶斯线性回归初始训练和贝叶斯线性回归增量训练的输入。

优选地,所述温度预测模型训练模块130包括:

初始训练数据集训练模块131:使用预处理后的初始训练数据,对贝叶斯线性回归模型进行初始训练,得到初始的温度预测模型;其中,在贝叶斯线性回归初始训练阶段,选择模型参数先验分布服从给定初始超参数为的高斯-反gamma概率分布,贝叶斯线性回归模型在完成初始训练后,模型参数后验分布服从超参数为的高斯-反gamma概率分布,其中n表示初始训练数据集中的最后一个采样周期;超参数均为及初始训练样本集的简单函数,有解析解;

新增训练数据集训练模块132:使用预处理后的新增训练数据集以增量的方式,对贝叶斯线性回归模型进行在线的增量训练;其中,在贝叶斯线性回归增量训练阶段,当前采样周期t之前的模型参数服从超参数为的高斯-反gamma概率分布,在当前采样周期t通过增添采样周期t的采样训练样本,更新当前采样周期t的模型参数为服从超参数的高斯-反gamma概率分布;超参数均为及增量训练样本的简单函数,有解析解。

优选地,所述云服务器分类模块200包括:

休眠状态云服务器归类模块201:将处于休眠状态的云服务器归类为休眠状态云服务器;休眠状态云服务器能够作为宿主云服务器;

运行状态云服务器归类模块202:将处于运行状态的云服务器归类为运行状态云服务器;

所述运行状态云服务器归类模块202包括:

低负荷云服务器归类模块20201:将运行状态云服务器节点cpu使用率低于设定的第一阈值的云服务器归类为低负荷云服务器;

告警云服务器归类模块20202:将满足告警条件的云服务器归类为告警云服务器,其中,满足告警条件是指满足如下任一个条件:

第一条件,云服务器节点cpu使用率高于设定的第二阈值,其中,第二阈值大于第一阈值;

第二条件,云服务器当前的预测温度高于服务器警报温度;

正常运行状态云服务器归类模块20203:将运行状态云服务器列表中不属于低负荷云服务器且不属于告警云服务器的云服务器,归类为正常运行状态云服务器,正常运行状态云服务器能够作为宿主云服务器。

优选地,所述虚拟机迁移模块300包括:

云服务器温度获取模块301:遍历所述云数据中心云服务器列表,获取每台云服务器当前时刻所在采样周期上定义的预测周期结束时刻的云服务器温度预测值;

待迁移虚拟机获取模块302:遍历低负荷云服务器,得到每台低负荷云服务器中的虚拟机作为待迁移虚拟机,列入待迁移虚拟机列表;遍历告警云服务器,得到每台告警云服务器中的最高迁移优先级虚拟机作为待迁移虚拟机,列入待迁移虚拟机列表;

迁移操作模块303:根据各个宿主云服务器的预测温度及剩余负荷容量来确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移;

流程结束判断模块304:判断流程是否结束;若是,则结束流程;若否,则触发所述云服务器温度获取模块301进入下一个虚拟机迁移规划周期,继续执行获取云服务器预测温度。

优选地,在所述待迁移虚拟机获取模块302中,通过如下模块计算虚拟机迁移优先级v:

用户优先级权重系数获取模块30201:根据用户的月消费金额或年消费金额,以得到用户级别;根据所述用户级别,以得到用户优先级权重系数r;所述用户优先级权重系数r包括0~1之间的数值;

虚拟机常量迁移负荷权重系数获取模块30202:获取虚拟机内存大小p;计算运行状态云服务器中所有虚拟机内存大小的平均值;根据所述虚拟机内存大小p,以及所有运行状态云服务器中所有虚拟机内存大小的平均值,计算虚拟机常量迁移负荷权重系数

虚拟机增量迁移负荷权重系数获取模块30203:获取虚拟机单位时间内存变化率s;计算所有运行状态云服务器中所有虚拟机单位时间内存变化率的平均值;根据所述虚拟机单位时间内存变化率s,以及运行状态云服务器中所有虚拟机单位时间内存变化率的平均值,计算虚拟机增量迁移负荷权重系数

虚拟机的迁移优先级获取模块30204:根据所述用户优先级权重系数、虚拟机常量迁移负荷权重系数以及虚拟机增量迁移负荷权重系数,计算虚拟机的迁移优先级:

根据迁移优先级计算公式:,其中,,则虚拟机迁移优先级

其中,r表示用户优先级权重系数,表示虚拟机常量迁移负荷权重系数,表示虚拟机增量迁移负荷权重系数,p表示虚拟机的内存大小,表示所有运行状态云服务器中全部虚拟机的平均内存大小,表示虚拟机的单位时间内存变化率,表示所有运行状态云服务器中全部虚拟机的平均的单位时间内存变化率,为经验参数,取值范围(0,1]。

优选地,所述迁移操作模块303包括:

迁移匹配关系分配模块3031:遍历所述待迁移虚拟机列表中的待迁移虚拟机,对各个待迁移虚拟机进行目标宿主云服务器的分配;

迁移匹配关系输出模块3032:根据迁移匹配关系分配模块3031确立的待迁移虚拟机与目标宿主云服务器的匹配关系,对待迁移虚拟机进行迁移;

其中,所述迁移匹配关系分配模块3031包括:

预测温度排序模块303101:将正常运行云服务器按照云服务器温度获取模块301获取的预测温度从低到高排序,得到排序后的待选择云服务器列表;

待迁移虚拟机遍历模块303102:遍历所述待迁移虚拟机列表中的待迁移虚拟机,获取所述待迁移虚拟机列表中下一个虚拟机作为当前待迁移虚拟机;

待选择云服务器筛选模块303103:依照所述预测温度排序模块303101排序后的待选择云服务器列表的顺序,将满足如下条件的待选择云服务器作为目标宿主云服务器分配给当前待迁移虚拟机:

预测温度小于服务器警报温度阈值;

剩余cpu核数大于待迁移虚拟机的cpu核数需求;

剩余未分配内存量大于待迁移虚拟机的内存需求;

休眠状态云服务器唤醒模块303104:对于待选择云服务器筛选模块303103未分配目标宿主云服务器的当前待迁移虚拟机,从休眠状态云服务器列表中列出一云服务器,将这一云服务器列入正常运行状态云服务器列表,将这一云服务器作为当前待选择云服务器分配给待迁移虚拟机。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于温度预测的虚拟机迁移规划调度方法的步骤。

与现有技术相比,本发明具有如下的有益效果:

1、本发明整体上将虚拟机迁移到预测温度低的满足要求的运行状态云服务器,最小化运行状态云服务器温度及数量,从而达成云数据中心节能的效果;

2、本发明根据当前实时预测的云服务器温度、云服务器负载等因素确定需迁出虚拟机的云服务器,降低云服务器故障风险,提高了云服务器可靠性;

3、本发明中的云服务器温度预测模块基于训练得到的贝叶斯线性回归模型进行预测,能够实现在线实时训练,且能够在线实时预测短暂未来的云服务器温度;

4、综合考虑虚拟机的客户属性及虚拟机迁移代价确定需迁移虚拟机,减少了虚拟机迁移服务中断时间,优化了用户体验。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为基于温度预测的虚拟机迁移规划调度方法的整体步骤流程图;

图2为贝叶斯线性回归模型初始训练的具体步骤流程图;

图3为贝叶斯线性回归模型增量训练及预测的具体步骤流程图;

图4为云服务器温度预测模型训练数据列表及模型训练示意图;

图5为云服务器温度预测模型训练数据预处理的具体步骤流程图;

图6为计算虚拟机迁移优先级的具体步骤流程图;

图7为最小温度服务器分配原则算法的具体步骤流程图;

图8为基于温度预测的虚拟机迁移规划调度系统的整体结构示意图;

图9为基于温度预测的虚拟机迁移规划调度系统的具体结构示意图;

图10为基于温度预测的虚拟机迁移规划调度系统数据预处理模块120的结构示意图;

图11为基于温度预测的虚拟机迁移规划调度系统待迁移虚拟机获取模块302确定虚拟机迁移优先级的模块的结构示意图;

图12为基于温度预测的虚拟机迁移规划调度系统迁移操作模块303的结构示意图。

图中示出:

温度预测模型训练预测模块100;

数据采集模块110;

初始训练数据集构建模块111;

新增训练数据集构建模块112;

数据预处理模块120;

初始训练数据集预处理模块121;

新增训练数据集预处理模块122;

数据清洗模块1201;

归一化模块1202;

温度预测模型训练模块130;

初始训练数据集训练模块131;

新增训练数据集训练模块132;

温度预测模块140;

云服务器分类模块200;

休眠状态云服务器归类模块201;

运行状态云服务器归类模块202;

低负荷云服务器归类模块20201;

告警云服务器归类模块20202;

正常运行状态云服务器归类模块20203;

虚拟机迁移模块300;

云服务器温度获取模块301;

待迁移虚拟机获取模块302;

用户优先级权重系数获取模块30201;

虚拟机常量迁移负荷权重系数获取模块30202;

虚拟机增量迁移负荷权重系数获取模块30203;

虚拟机的迁移优先级获取模块30204;

迁移操作模块303;

迁移匹配关系分配模块3031;

预测温度排序模块303101;

待迁移虚拟机遍历模块303102;

待选择云服务器筛选模块303103;

休眠状态云服务器唤醒模块303104;

迁移匹配关系输出模块3032;

流程结束判断模块304。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

第一实施例

在第一实施例中,通过图1至图7对根据本发明提供的一种基于温度预测的虚拟机迁移规划调度方法进行说明。

如图1所示,所述基于温度预测的虚拟机迁移规划调度方法,包括如下步骤。

步骤s1:获取云数据中心云服务器列表,获取基于贝叶斯线性回归的温度预测模型对所述云数据中心云服务器列表中的每个云服务器温度的预测值,得到云服务器预测温度;然后进入步骤s2继续执行。

具体地,所述温度预测模型是通过对贝叶斯线性回归模型进行初始训练与增量训练后得到,当前的贝叶斯线性回归模型构成当前的温度预测模型。在初始训练过程中,云服务器数据与温度预测模型的映射关系可以为每一台云服务器单独构建并训练一个温度预测模型,其温度预测模型的训练数据均采集自这一台云服务器;为了提高温度预测模型的预测准确性,初始训练数据集中的历史上的数据为同一个云服务器的历史数据,使用同一个云服务器的历史数据来针对该云服务器的温度预测模型进行训练能够提高预测准确率。在初始训练过程中,云服务器数据与温度预测模型的映射关系也可以为多台云服务器构建并训练一个温度预测模型,其温度预测模型的训练数据采集自这多台云服务器,训练时将这多台云服务器的数据视为一台云服务器在不同预测周期下的数据。

更为具体地,云服务器的预测温度将在后续的步骤s4和步骤s8中被使用到,作为虚拟机迁移调度规划的重要考量因素。云服务器的预测温度包括运行状态云服务器的预测温度、休眠状态云服务器的预测温度。

步骤s2:将所述运行状态云服务器列表中负荷监控指标满足低负荷条件的运行状态云服务器,定义为低负荷云服务器,构建低负荷云服务器列表。然后进入步骤s3继续执行。所述低负荷条件是指:运行状态云服务器cpu使用率低于设定的第一阈值。在本应用实例中,第一阈值设置为6%。

具体地,低负荷云服务器上的虚拟机被全部迁移后,即可调整至休眠状态,成为休眠状态云服务器以节约能源。因此通过步骤s2构建低负荷云服务器列表,然后再通过步骤s3、步骤s4完成低负荷云服务器列表中部分或全部虚拟机的迁移,并将虚拟机已全部迁移出的低负荷云服务器调整至休眠状态。本领域技术人员可以理解,所述运行状态云服务器列表用于指示当前处于运行状态的云服务器,当前未处于运行状态的云服务器将被排除移出运行状态云服务器列表;所述低负荷云服务器列表用于指示当前处于低负荷运行状态的云服务器,当前未处于低负荷运行状态的云服务器将被排除移出低负荷云服务器列表。

步骤s3:遍历所述低负荷云服务器列表,获取每台低负荷云服务器中的虚拟机,并列入待迁移虚拟机列表。

具体地,本领域技术人员可以理解,所述待迁移虚拟机列表用于指示当前处于待迁移状态的虚拟机,当前未处于待迁移状态的虚拟机将被排除移出待迁移虚拟机列表。

步骤s4:根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移;进入步骤s5继续执行。

具体地,所述宿主云服务器为运行状态云服务器,且不属于低负荷云服务器,或者所述宿主云服务器也可以为休眠状态云服务器。宿主云服务器的选择顺序为优先选择正常运行状态云服务器,在无符合匹配条件正常运行状态云服务器时,选择休眠状态云服务器;所述匹配条件例如可以是云服务器剩余的负荷能力的指标大于待迁移虚拟机对宿主服务器可用负荷能力指标需求的阈值。本领域技术人员可以理解,所述宿主云服务器列表用于指示当前的宿主云服务器,当前不符合宿主云服务器定义的云服务器将被排除移出宿主云服务器列表。

更为具体地,虚拟机从低负荷云服务器迁移出后,针对该虚拟机而言,需考虑到虚拟机所迁移入云服务器的情况,优先选择未来预测温度低的正常运行状态云服务器作为宿主云服务器。但若这一云服务器的当前负荷容量已满,则不能作为宿主云服务器。当无正常运行状态云服务器满足虚拟机负荷容量需求,则选择休眠状态云服务器作为宿主云服务器。

步骤s5:将虚拟机已经全部迁移出的低负荷云服务器设置为休眠状态,列出运行状态云服务器列表,并列入休眠状态云服务器列表。然后进入步骤s6继续执行。

具体地,本领域技术人员可以理解,所述休眠状态云服务器列表用于指示当前处于休眠状态的云服务器,当前未处于休眠状态的云服务器将被排除移出休眠状态云服务器列表。

步骤s6:将所述运行状态云服务器列表中监控指标满足告警条件的运行状态云服务器,定义为告警云服务器,将全部告警云服务器列入告警云服务器列表。然后进入步骤s7继续执行。

具体地,在所述步骤s6中,所述满足告警条件是指满足如下任一个条件:第一条件,云服务器cpu使用率高于设定的第二阈值,其中,第二阈值大于第一阈值;在本应用实例,第一阈值设置为6%,第二阈值设置为90%;第二条件,云服务器当前的预测温度高于服务器警报温度,在本应用实例,服务器报警温度设置为95度。

进一步,告警云服务器通常负荷较高,长期运行容易因持续高温等因素而导致故障,需考虑降低负荷。因此通过步骤s6构建告警云服务器列表,然后再通过步骤s7、步骤s8完成告警云服务器列表中最高迁移优先级的虚拟机的迁移,并将虚拟机迁移出后已不满足告警云服务器定义的云服务器排除移出告警云服务器列表。

步骤s7:遍历所述告警云服务器列表,得到每台告警云服务器中的最高迁移优先级虚拟机,并列入待迁移虚拟机列表。然后进入步骤s8继续执行。

具体地,本领域技术人员可以理解,所述待迁移虚拟机列表用于指示待迁移的虚拟机,已迁移的虚拟机将被排除移出待迁移虚拟机列表。

步骤s8:根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移。然后进入步骤s9继续执行。

更为具体地,参见步骤s4的说明,在虚拟机迁移入一云服务器之前,需考虑到虚拟机所迁移入云服务器的情况,优先选择未来预测温度低的云服务器作为宿主云服务器。但若这一云服务器的当前负荷容量已满,则不能作为宿主云服务器。当无正常运行状态云服务器满足虚拟机负荷容量需求时,则选择休眠状态云服务器作为宿主云服务器。

步骤s9:将虚拟机已经全部迁移出的告警云服务器设置为休眠状态,列出运行状态云服务器列表,并列入休眠状态云服务器列表。然后进入步骤s10继续执行。

具体地,本领域技术人员可以理解,所述休眠状态云服务器列表用于指示当前处于休眠状态的云服务器,当前未处于休眠状态的云服务器将被排除移出休眠状态云服务器列表。

步骤s10:判断流程是否结束;若是,则结束流程;若否,则跳转到所述步骤s1继续执行,实施新一轮的虚拟机调度规划。

其中,云服务器工作状态的监控周期也是虚拟机的虚拟机迁移规划周期,虚拟机的一个虚拟机迁移规划周期定义为基于温度预测的虚拟机迁移规划调度方法步骤1至步骤9的一次完整执行。在本应用实例中一个云服务器工作状态的监控周期的耗时通常在2-5分钟之间。依据这一经验值设置温度预测模型的预测周期的长短,可以使得对于云服务器工作状态的监控周期短于温度预测模型的预测周期,例如一个监控周期经验耗时在2-5分钟之间短于6分钟的预测周期,从而保证虚拟机的迁移进度与对宿主云服务器未来热负载的预测深度相匹配。在本应用实例中,通过设置温度预测模型的采样周期短于一个云服务器工作状态的监控周期的最短经验耗时,例如一个监控周期的经验耗时在2-5分钟之间,长于本应用实例设置的30秒钟的采样周期,从而保证对云服务器工作状态的监控总能获得实时有效的云服务器短暂未来温度的预测值。本领域技术人员能够理解到,对温度预测模型的初始训练属于虚拟机迁移规划调度之前的准备工作,仅执行一次初始训练即可。

进一步,所述步骤s1中的所述温度预测模型,是通过如下步骤得到的。

步骤s101:利用历史上采样数据构建初始训练数据集,对贝叶斯线性回归模型进行初始训练,得到初始的温度预测模型;然后进入步骤s102继续执行。

步骤s102:在云数据中心日常运行过程中,实时采集新增训练数据集,以增量的方式对当前的云服务器温度预测模型进行在线的增量训练,更新温度预测模型并使用温度预测模型对云服务器未来温度实施预测,获得云服务器未来温度预测值。其中,温度预测模型是对云服务器短暂未来温度实施预测,例如预测未来6分钟时的温度。

在优选例中,在对云服务器未来温度预测中,通过使用贝叶斯线性回归模型进行统计推理,通过选择高斯-反gamma概率分布作为贝叶斯线性回归模型参数共轭先验分布,利用初始训练数据进行贝叶斯推理所获得贝叶斯线性回归模型参数的后验分布亦为高斯-反gamma概率分布。贝叶斯线性回归模型参数的先验分布与后验分布为同分布,这使得步骤s102的贝叶斯线性回归模型在线快速增量训练成为可能,从而达到快速高效精准预测云服务器温度的目的。

下面对贝叶斯线性回归模型进行详细说明。

即,贝叶斯线性回归模型的输入样本集合由n个连续采样周期输入样本组成,这里采用记号:为矩阵表达形式。表示在第n个采样周期获得的输入样本,在本发明应用实例中输入样本数据包括云服务器的指标数据。贝叶斯线性回归模型输出样本集合由n个连续采样周期输出样本组成,这里采用记号:表示在第n个采样周期获得的输出样本,在本发明应用实例中输出样本为实测的云服务器温度数据,具体为实测的云服务器不同部位和/或组件温度的算术平均值。

所述贝叶斯线性回归模型如下:

表示在给定输入样本集合,贝叶斯线性回归模型参数下,输出样本集合的条件概率密度函数。如上式所述,输出样本集合的条件概率服从n维高斯分布。

其中为输入样本特征的权重向量;为线性回归残差的方差;即构成贝叶斯线性回归模型的参数。

接下来对贝叶斯线性回归模型参数的先验概率分布进行展开说明。

依据贝叶斯推理原理,共轭先验概率可以分解为,选用超参数为的高斯-反gamma概率分布作为参数的先验概率分布。其中方差的概率密度函数形式如下式:

方差服从反gamma分布;参数为反gamma分布的超参数;在本发明应用实例中超参数值的选择为

给定方差,权重向量的条件概率密度函数形式如下式:

给定方差服从高斯分布;期望向量,方差矩阵为k维高斯分布的超参数;在本发明应用实例中超参数值的选择:

维0向量;参数表示阶单位矩阵;表示作为输入量的输入样本集合的特征维度。

接着对模型参数的后验概率分布进行展开说明。

模型参数的后验分布由下式计算:

其中,是给定输入样本集合和输出样本集合时的模型参数的后验概率密度函数。后验概率密度等于输出的似然乘以给定输入的参数的先验概率密度函数并且除以归一化常数。

具体到贝叶斯线性回归,后验分布为:

=

=

其中为高斯分布的密度函数;

为反gamma分布的密度函数。

综上所述,即模型在观测到输入样本集和输出样本集后,参数的后验概率分布服从超参数为的高斯-反gamma分布,超参数的计算公式如下:

参数为高斯分布的期望向量;

参数分布的方差矩阵;

为反gamma分布的超参数。

经过上述贝叶斯统计推理,贝叶斯线性回归输入特征权重参数的初始训练最优贝叶斯估计为:

使用初始贝叶斯最优线性回归模型对预测周期m结束时刻时云服务器温度的预测值表示为,其中表示预测周期m结束时刻的云服务器温度的预测值,表示预测周期m开始时刻的输入云服务器指标数据。

接下来就贝叶斯线性回归增量训练进行详细说明。

在输入样本数n>1的情况下,贝叶斯增量训练以下式表示:

其中,为在采样周期t观测到所有历史输入样本集合和所有历史输出样本集合的条件下模型参数的概率密度函数。此项等于给定当前采样周期输入样本,当前采样周期输出样本的似然乘以在采样周期n-1中观测到所有历史输入样本集合和所有历史输出样本集合的条件下模型参数的概率密度函数并归一化。

具体到贝叶斯线性回归,设在采样周期t-1时,模型参数的后验概率密度函数为超参数为的高斯-反gamma分布,在采样周期t,观测到新的训练样本后,模型参数的后验概率密度函数为超参数为的高斯-反gamma分布。超参数更新公式即增量训练公式如下:

经过上述贝叶斯统计推理,在当前采样周期t内,贝叶斯线性回归输入特征权重参数的增量训练最优贝叶斯估计为:

使用当前增量贝叶斯最优线性回归模型对当前预测周期t结束时刻云服务器温度的预测由公式1表示:

(公式1)

其中表示当前预测周期t结束时刻的云服务器温度的预测值,表示当前预测周期t开始时刻的模型输入的云服务器指标数据。

如图2所示,具体地,所述步骤s101包括如下步骤。

步骤s10101:定义每两个相邻采样时刻间的时段为一个采样周期,在每一个采样周期上定义一个预测周期,预测周期的长度为温度预测模型的预测深度,预测周期初始时刻为同一采样周期初始时刻;其中,将预测周期初始时刻时云服务器的指标数据作为模型输入数据指标,将同一预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标,来构建初始训练数据集;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;然后进入步骤s10102继续执行。

具体地,相邻的两个预测周期的初始时刻分别为相邻的两个采样周期的初始时刻。在优选例中,一个预测周期由多个连续的采样周期构成,且预测周期的初始时刻与第一个采样周期的初始时刻为同一个时刻;连续相邻的两个预测周期的初始时刻分别为连续相邻的两个采样周期的初始时刻。例如,假设有十个采样时刻,记为t1,t2,…,t10;每一个采样时刻至下一个采样时刻之间的间隔时间构成一个采样周期,该采样周期的初始时刻即为该采样时刻,该采样周期的结束时刻即为该下一个采样时刻。进一步假设一个预测周期由五个采样周期构成,则第一个预测周期是t1至t6之间的间隔时间,第二个预测周期是t2至t7之间的间隔时间,第三个预测周期是t3至t8之间的间隔时间,以此类推。

步骤s10102:对初始训练数据集进行预处理;然后进入步骤s10103继续执行。

步骤s10103:利用预处理后的初始训练数据集,对贝叶斯线性回归模型进行训练,获取初始的贝叶斯线性回归模型的参数后验分布函数;然后进入步骤s10104继续执行。

具体地,所述步骤s10103包括:在贝叶斯线性回归初始训练阶段,选择模型参数先验分布服从给定初始超参数为的高斯-反gamma概率分布,贝叶斯线性回归模型在完成初始训练后,模型参数后验分布服从超参数为的高斯-反gamma概率分布,其中n表示初始训练数据集中的最后一个采样周期;超参数均为及初始训练样本集的简单函数,有解析解。

步骤s10104:输出初始的贝叶斯线性回归模型的参数后验分布函数。

如图3所示,具体地,所述步骤s102包括如下步骤。

步骤s10201:输入当前的贝叶斯线性回归模型的参数后验分布函数;然后进入步骤s10202继续执行。

步骤s10202:获取新增训练数据集;其中,所述新增训练数据集包括:云服务器在当前采样周期初始时刻结束的预测周期初始时刻时的指标数据作为输入数据指标、云服务器在当前采样周期初始时刻结束的预测周期结束时刻时的实测的云服务器温度作为输出数据指标;其中,所述实测的云服务器温度定义为实测的云服务器不同部位和/或组件温度的算术平均值;然后进入步骤s10203继续执行。

步骤s10203:对新增训练数据集进行预处理;然后进入步骤s10204继续执行。

步骤s10204:利用预处理后的新增训练数据集对当前的贝叶斯线性回归模型进行增量训练,更新当前贝叶斯线性回归模型的参数后验分布函数;然后进入步骤s10205继续执行。

具体地,所述步骤s10204包括:在贝叶斯线性回归增量训练阶段,当前采样周期t之前的模型参数服从超参数为的高斯-反gamma概率分布,在当前采样周期t通过增添采样周期t的采样训练样本,更新当前采样周期t的模型参数为服从超参数的高斯-反gamma概率分布;超参数均为及增量训练样本的简单函数,有解析解。

步骤s10205:获取当前贝叶斯线性回归模型的参数贝叶斯最优估计;然后进入步骤s10206继续执行。

步骤s10206:基于当前的贝叶斯线性回归模型的参数贝叶斯最优估计预测当前预测周期结束时刻时云服务器的温度;然后进入步骤s10207继续执行。

具体地,在所述步骤s10206中,基于当前的贝叶斯线性回归模型,通过使用公式1预测当前采样周期上定义的预测周期结束时刻时的云服务器的温度。

步骤s10207:输出云服务器的预测温度;然后进入步骤s10208继续执行。

步骤s10208:判断云服务器预测温度流程是否结束;若是,则结束流程;若否,则跳转到步骤s10202继续执行。

如图4所示,所述步骤s10101和步骤s10202中所述云服务器温度预测模型的训练数据指标包括输入数据指标、输出数据指标。

输入数据指标包括如下任一种或任多种数据:云服务器cpu核数;云服务器使用cpu核数;云服务器cpu利用率;云服务器内存量;云服务器内存使用率;云服务器cpu的当前频率;云服务器输入网络流量;云服务器输出网络流量;云服务器每个风扇转速;云服务器节点部署虚拟机数量;

输出数据指标包括如下任一种数据或任多种数据的算数平均值:实测的云服务器进风温度;实测的云服务器出风温度;实测的云服务器cpu温度;实测的云服务器gpu温度。

如图5所示,初始训练数据集中的数据并非一定是理想的,例如存在数据遗失等问题,因此需要对初始训练数据集中的数据进行预处理,所述步骤s10102和步骤s10203中的预处理包括如下步骤。

数据清洗步骤:如果在采样时刻获得的采样输入数据项的值为空缺值,使用该数据项的历史平均值填充空缺值;

归一化步骤:对于每一个输入数据项,将所述步骤s10102中定义的初始训练数据集中数据项的最小值、最大值分别记为,将输入数据项的原始值映射成近似在区间[0,1]中的新值,其公式为:

将训练样本中每一输入数据项经预处理后获得的数据项的值合并为预处理后训练样本输入数据作为步骤s10103中贝叶斯线性回归初始训练和步骤s10204中贝叶斯线性回归增量训练的输入。

如图6所示,在所述步骤s8中,根据如下步骤计算虚拟机迁移优先级v。迁移优先级的计算原则综合考虑用户的级别、虚拟机迁移的工作量成本。用户级别较低的通常对于计算任务的连续性要求较低,因此优先迁移。虚拟机的常量及增量迁移成本越小,则越优先迁移。

步骤s801:根据用户的月消费金额或年消费金额,以得到用户级别;根据所述用户级别,以得到用户优先级权重系数;所述用户优先级权重系数r包括0~1之间的数值;

具体地,用户优先级权重系数r根据如下用户类型确定。客户类型为vvip的,用户优先级权重系数r设定为0.2。客户类型为vip的,用户优先级权重系数r设定为0.5。客户类型为普通的(月消费金额不低于均值的50%),用户优先级权重系数r设定为0.7。客户类型为低质量的(月消费金额低于均值的50%),用户优先级权重系数r设定为1。

步骤s802:获取所述虚拟机内存大小p;计算运行状态云服务器中所有虚拟机内存大小的平均值;根据所述虚拟机内存大小p,以及所有运行状态云服务器中所有虚拟机内存大小的平均值,计算所述虚拟机常量迁移负荷权重系数

步骤s803:获取所述虚拟机单位时间内存变化率s;计算所有运行状态云服务器中所有虚拟机单位时间内存变化率的平均值;根据所述虚拟机单位时间内存变化率s,以及运行状态云服务器中所有虚拟机单位时间内存变化率的平均值,计算所述虚拟机增量迁移负荷权重系数

步骤s804:根据所述用户优先级权重系数、虚拟机常量迁移负荷权重系数以及虚拟机增量迁移负荷权重系数,计算所述虚拟机的迁移优先级:

根据迁移优先级计算公式:,其中,,则虚拟机迁移优先级

其中,r表示用户优先级权重系数,表示虚拟机常量迁移负荷权重系数,表示虚拟机增量迁移负荷权重系数,p表示虚拟机的内存大小,表示所有运行状态云服务器中全部虚拟机的平均内存大小,表示虚拟机的单位时间内存变化率,表示所有运行状态云服务器中全部虚拟机的平均的单位时间内存变化率,为经验参数,取值范围(0,1],在本应用实例经验常数取值为0.0001。

如图7所示,在所述步骤s4和步骤s8中,所述根据宿主云服务器列表中各个宿主云服务器的所述预测温度及剩余负荷容量来确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器的步骤,均采用最小温度服务器分配原则算法,具体包括如下步骤。

步骤a:遍历所述待迁移虚拟机列表中的待迁移虚拟机,对于每个待迁移虚拟机执行第一循环步骤。具体为对于当前的待迁移虚拟机执行第一循环步骤,然后进入步骤b继续执行。

步骤b:判断是否存在下一个待迁移虚拟机;若否,则进入步骤c继续执行;若是,则将下一个待迁移虚拟机作为当前的待迁移虚拟机,跳转到步骤a继续执行第一循环步骤。

步骤c:得到待迁移虚拟机与目标宿主云服务器的匹配关系。

其中,所述第一循环步骤包括如下步骤。

步骤a:遍历所有正常运行状态云服务器,获取每个正常运行状态云服务器当前的预测温度;然后进入步骤b继续执行。

步骤b:将正常运行云服务器按照预测温度从低到高排序,得到排序后的待选择云服务器列表;然后进入步骤c继续执行。

步骤c:遍历排序后的待选择云服务器列表,执行第二循环步骤。

其中,所述第二循环步骤包括如下步骤。

步骤c1:对于当前待选择云服务器,判断当前待选择云服务器是否满足如下条件:预测温度小于服务器警报温度阈值;剩余cpu核数大于待迁移虚拟机的cpu核数需求;剩余未分配内存量大于待迁移虚拟机的内存需求。若是,则分配待迁移虚机给当前待选择云服务器,得到目标宿主云服务器;退出第二循环步骤;若否,则进入步骤c2继续执行。

步骤c2:判断待选择云服务器列表是否存在下一个待选择云服务器;若是,则进入步骤c3继续执行;若否,则跳转到步骤c4继续执行。

步骤c3:将下一个待选择云服务器作为当前待选择云服务器,跳转到步骤c1继续执行。

步骤c4:从休眠状态云服务器列表中列出一云服务器,将这一云服务器列入正常运行状态云服务器列表,将这一云服务器作为当前待选择云服务器,跳转到步骤c1继续执行。

第二实施例

在第二实施例中,通过图8至图12对根据本发明提供的一种基于温度预测的虚拟机迁移规划调度系统进行说明。本领域技术人员可以将第一实施例理解为第二实施例的一个优选的具体实施例,即第二实施例中的系统可以通过执行第一实施例中的方法步骤实现。

如图8所示,所述基于温度预测的虚拟机迁移规划调度系统,包括:

温度预测模型训练预测模块100:训练基于贝叶斯线性回归的温度预测模型,利用温度预测模型进行温度预测,获得云服务器的预测温度;

云服务器分类模块200:根据工作状态将云服务器分类为运行状态云服务器、休眠状态云服务器,其中,运行状态云服务器分类为低负荷云服务器、正常运行状态云服务器、告警状态云服务器;

虚拟机迁移模块300:基于云服务器分类模块200对云服务器的分类,根据温度预测模型训练预测模块100得到的云服务器的预测温度,将低负荷云服务器中虚拟机、告警云服务器上的最高迁移优先级虚拟机迁移到正常运行云服务器或者休眠状态云服务器。其中,所述云服务器的预测温度包括运行状态云服务器的预测温度、休眠状态云服务器的预测温度。虚拟机迁移目标宿主云服务器的选择顺序为优先选择正常运行状态云服务器,无符合匹配条件正常运行状态云服务器时,选择休眠状态云服务器;

所述温度预测模型训练预测模块100包括:

数据采集模块110:采集云服务器的指标数据、实测的云服务器温度数据;

数据预处理模块120:对数据采集模块110采集的数据进行预处理;

温度预测模型训练模块130:使用数据预处理模块120预处理后的数据对贝叶斯线性回归模型进行训练;

温度预测模块140:根据温度预测模型训练模块130训练得到的当前的贝叶斯线性回归模型进行温度预测,获得云服务器的预测温度;

具体地,在实施贝叶斯线性回归预测云服务器温度的初始阶段训练阶段,首先,数据采集模块110采集历史云服务器的指标数据、实测的云服务器温度;并将采集到的历史数据发送给数据预处理模块120进行数据预处理;其次,数据预处理模块120对数据采集模块110采集的数据进行预处理;将预处理后的数据发送给温度预测模型训练模块130做贝叶斯线性回归模型的初始训练;最后,温度预测模型训练模块130使用数据预处理模块120产生的预处理后的数据对贝叶斯线性回归模型进行初始训练,获得初始贝叶斯线性回归模型。

在实施贝叶斯线性回归在线增量训练及预测阶段,在每个贝叶斯线性回归在线增量训练及预测实施周期,首先,数据采集模块110采集当前采样周期初始时刻结束的预测周期的云服务器的指标数据、实测的云服务器温度作为增量训练样本;并将采集到的增量训练数据发送给数据预处理模块120进行数据预处理;其次,数据预处理模块120对数据采集模块110采集的增量训练样本进行预处理;将预处理后的增量训练样本发送给温度预测模型训练模块130做贝叶斯线性回归模型的增量训练;再其次,温度预测模型训练模块130使用数据预处理模块120产生的预处理后的增量样本对贝叶斯线性回归模型进行增量训练,更新贝叶斯线性回归模型,并在更新完成后触发温度预测模块140利用温度预测模型训练模块130更新后的贝叶斯线性回归模型,对云服务器温度进行预测,得到云服务器温度预测值。至此,一个贝叶斯线性回归在线增量训练及预测实施周期完成。当下一个采样周期初始时刻到来时,温度预测模块140触发数据采集模块110启动采集工作,开始下一个贝叶斯线性回归在线增量训练及预测实施周期。

下面对贝叶斯线性回归模型进行详细说明。

即,贝叶斯线性回归模型的输入样本集合由n个连续采样周期输入样本组成,这里采用记号:为矩阵表达形式。表示在第n个采样周期获得的输入样本,在本发明应用实例中输入样本数据包括云服务器的指标数据。贝叶斯线性回归模型输出样本集合由n个连续采样周期输出样本组成,这里采用记号:表示在第n个采样周期获得的输出样本,在本发明应用实例中输出样本为实测的云服务器温度数据,具体是实测的云服务器不同部位和/或组件温度的算术平均值。

所述贝叶斯线性回归模型如下:

表示在给定输入样本集合,贝叶斯线性回归模型参数下,输出样本集合的条件概率密度函数。如上式所述,输出样本集合的条件概率服从n维高斯分布。

其中为输入样本特征的权重向量;为线性回归残差的方差;即构成贝叶斯线性回归模型的参数。

接下来对贝叶斯线性回归模型参数的先验概率分布进行展开说明。

依据贝叶斯推理原理,共轭先验概率可以分解为,选用超参数为的高斯-反gamma概率分布作为参数的先验概率分布。其中方差的概率密度函数形式如下式:

方差服从反gamma分布;参数为反gamma分布的超参数;在本发明应用实例中超参数值的选择为

给定方差,权重向量的条件概率密度函数形式如下式:

给定方差服从高斯分布;期望向量,方差矩阵为k维高斯分布的超参数;在本发明应用实例中超参数值的选择:

维0向量;参数表示阶单位矩阵;表示作为输入量的输入样本集合的特征维度。

接着对模型参数的后验概率分布进行展开说明。

模型参数的后验分布由下式计算:

其中,是给定输入样本集合和输出样本集合时的模型参数的后验概率密度函数。后验概率密度等于输出的似然乘以给定输入的参数的先验概率密度函数并且除以归一化常数。

具体到贝叶斯线性回归,后验分布为:

=

=

其中为高斯分布的密度函数;

为反gamma分布的密度函数。

综上所述,即模型在观测到输入样本集和输出样本集后,参数的后验概率分布服从超参数为的高斯-反gamma分布,超参数的计算公式如下:

参数为高斯分布的期望向量;

参数分布的方差矩阵;

为反gamma分布的超参数。

经过上述贝叶斯统计推理,贝叶斯线性回归输入特征权重参数的初始训练最优贝叶斯估计为:

使用初始贝叶斯最优线性回归模型对预测周期m结束时刻时云服务器温度的预测值表示为,其中表示预测周期m结束时刻的云服务器温度的预测值,表示预测周期m开始时刻的输入云服务器指标数据。

更为具体地,接下来就贝叶斯线性回归增量训练进行详细说明。

在输入样本数n>1的情况下,贝叶斯增量训练以下式表示:

其中,为在采样周期t观测到所有历史输入样本集合和所有历史输出样本集合的条件下模型参数的概率密度函数。此项等于给定当前采样周期输入样本,当前采样周期输出样本的似然乘以在采样周期n-1中观测到所有历史输入样本集合和所有历史输出样本集合的条件下模型参数的概率密度函数并归一化。

具体到贝叶斯线性回归,设在采样周期t-1时,模型参数的后验概率密度函数为超参数为的高斯-反gamma分布,在采样周期t,观测到新的训练样本后,模型参数的后验概率密度函数为超参数为的高斯-反gamma分布。超参数更新公式即增量训练公式如下:

经过上述贝叶斯统计推理,在当前采样周期t内,贝叶斯线性回归输入特征权重参数的增量训练最优贝叶斯估计为:

使用当前增量贝叶斯最优线性回归模型对当前预测周期t结束时刻云服务器温度的预测由公式1表示:

(公式1)

其中表示当前预测周期t结束时刻的云服务器温度的预测值,表示当前预测周期t开始时刻的模型输入的云服务器指标数据。温度预测模块140基于当前的贝叶斯线性回归模型,通过使用公式1预测当前采样周期上定义的预测周期结束时刻时的云服务器的温度。

进一步地,在实施虚拟机迁移的阶段,虚拟机迁移模块300首先确定要迁移哪些虚拟机以构建待迁移虚拟机列表,然后按照虚拟机迁移优先级确定迁移虚拟机的先后顺序,再然后根据温度预测模块140得到的云服务器预测温度以及云服务器的剩余负荷容量确定目标宿主云服务器,最后完成虚拟机的迁移。在实施虚拟机迁移的阶段的过程中,虚拟机迁移模块300需要针对休眠状态云服务器、低负荷云服务器、告警云服务器、正常运行状态云服务器进行不同的控制,而对于云服务器工作状态的归类标记则由云服务器分类模块200完成。

具体地,如图8所示,所述云服务器分类模块200包括如下模块。

休眠状态云服务器归类模块201:将处于休眠状态的云服务器归类为休眠状态云服务器。

运行状态云服务器归类模块202:将处于运行状态的云服务器归类为运行状态云服务器。

所述运行状态云服务器归类模块202包括如下模块。

低负荷云服务器归类模块20201:将运行状态云服务器节点cpu使用率低于设定的第一阈值的云服务器归类为低负荷云服务器。

告警云服务器归类模块20202:将满足告警条件的云服务器归类为告警云服务器,其中,满足告警条件是指满足如下任一个条件:第一条件,云服务器节点cpu使用率高于设定的第二阈值,其中,第二阈值大于第一阈值;第二条件,云服务器当前的预测温度高于服务器警报温度;

正常运行状态云服务器归类模块20203:将运行状态云服务器列表中不属于低负荷云服务器且不属于告警云服务器的云服务器,归类为正常运行状态云服务器,正常运行状态云服务器可作为宿主云服务器。

如图9所示,所述数据采集模块110包括如下模块。

初始训练数据集构建模块111:利用历史上采样数据,构建初始训练数据集;定义每两个相邻采样时刻间的时段为一个采样周期,在每一个采样周期上定义一个预测周期,预测周期的长度为温度预测模型的预测深度,预测周期初始时刻为同一采样周期初始时刻;其中,将预测周期初始时刻时云服务器的指标数据作为模型输入数据指标,将同一预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标,来构建初始训练数据集。

新增训练数据集构建模块112:获取新增训练数据集;其中,所述新增训练数据集包括:云服务器在当前采样周期初始时刻结束的预测周期初始时刻时的指标数据作为模型输入数据指标、云服务器在当前采样周期初始时刻结束的预测周期结束时刻时的实测的云服务器温度作为模型输出数据指标;其中,所述实测的云服务器温度是指实测的云服务器不同部位和/或组件温度的算术平均值。

其中,如图4所示,所述云服务器温度预测模型训练数据指标包括输入数据指标、输出数据指标。输入数据指标包括如下任一种或任多种数据:云服务器cpu核数;云服务器使用cpu核数;云服务器cpu利用率;云服务器内存量;云服务器内存使用率;云服务器cpu的当前频率;云服务器输入网络流量;云服务器输出网络流量;云服务器每个风扇转速;云服务器部署虚拟机数量。输出数据指标包括如下任一种数据或任多种数据的算数平均值:实测的云服务器进风温度;实测的云服务器出风温度;实测的云服务器cpu温度;实测的云服务器gpu温度。

所述数据预处理模块120包括:初始训练数据集预处理模块121:对初始训练数据集进行预处理;新增训练数据集预处理模块122:对新增训练数据集进行预处理。

所述温度预测模型训练模块130包括如下模块。

初始训练数据集训练模块131:使用预处理后的初始训练数据,对贝叶斯线性回归模型进行初始训练,得到初始的温度预测模型;其中,在贝叶斯线性回归初始训练阶段,选择模型参数先验分布服从给定初始超参数为的高斯-反gamma概率分布,贝叶斯线性回归模型在完成初始训练后,模型参数后验分布服从超参数为的高斯-反gamma概率分布,其中n表示初始训练数据集中的最后一个采样周期;超参数均为及初始训练样本集的简单函数,有解析解。

新增训练数据集训练模块132:使用预处理后的新增训练数据集以增量的方式,对贝叶斯线性回归模型进行在线的增量训练;其中,在贝叶斯线性回归增量训练阶段,当前采样周期t之前的模型参数服从超参数为的高斯-反gamma概率分布,在当前采样周期t通过增添采样周期t的采样训练样本,更新当前采样周期t的模型参数为服从超参数的高斯-反gamma概率分布;超参数均为及增量训练样本的简单函数,有解析解。

所述虚拟机迁移模块300包括如下模块。

云服务器温度获取模块301:遍历所述云数据中心云服务器列表,获取每台云服务器当前时刻所在采样周期上定义的预测周期结束时刻的云服务器温度预测值。

待迁移虚拟机获取模块302:遍历所述低负荷云服务器,得到每台低负荷云服务器中的虚拟机作为待迁移虚拟机,列入待迁移虚拟机列表;遍历所述告警云服务器,得到每台告警云服务器中的最高迁移优先级虚拟机作为待迁移虚拟机,列入待迁移虚拟机列表。

迁移操作模块303:根据各个宿主云服务器的所述预测温度及剩余负荷容量来确定所述待迁移虚拟机列表中每个虚拟机的目标宿主云服务器,并完成虚拟机迁移。

流程结束判断模块304:判断流程是否结束;若是,则结束流程;若否,则触发所述云服务器温度获取模块301在下一个虚拟机迁移规划周期获取云服务器的预测温度。

具体地,在图9中,首先,初始训练数据集构建模块111将构建的初始训练数据集发送给初始训练数据集预处理模块121进行预处理,初始训练数据集预处理模块121将预处理后的初始训练数据集发送给初始训练数据集训练模块131对贝叶斯线性回归模型进行训练,得到初始的温度预测贝叶斯线性回归模型,并触发新增训练数据集构建模块112采集新增训练数据。其次,新增训练数据集构建模块112将构建的新增训练数据集发送给新增训练数据集预处理模块122进行预处理,新增训练数据集预处理模块122将预处理后的新增训练数据集发送给新增训练数据集训练模块132以对当前的贝叶斯线性回归模型进行增量训练,并触发温度预测模块140进行云服务器温度预测,得到云服务器温度预测值。预测过程结束后,在下一个采样周期初始时刻,温度预测模块140触发新增训练数据集构建模块112采集新增训练数据,开启下一个云服务器温度预测模型增量训练预测实施周期。

独立于温度预测模型训练预测模块100对云服务器温度预测模型的增量训练及云服务器温度的预测,由虚拟机迁移模块300控制虚拟机的迁移,其中,在虚拟机迁移规划周期的初始时刻,云服务器温度获取模块301从温度预测模块140获取到包括运行状态云服务器和休眠状态云服务器在内的所有云服务器当前时刻所在采样周期上定义的预测周期结束时刻的预测温度,并触发待迁移虚拟机获取模块302;待迁移虚拟机获取模块302确定需要迁移的虚拟机并触发迁移操作模块303,迁移操作模块303根据云服务器温度获取模块301获取到的云服务器的预测温度并结合云服务器剩余负荷容量,对虚拟机进行迁移,之后触发流程结束判断模块304判断流程是否结束;若流程没有结束,则触发云服务器温度获取模块301获取云服务器的预测温度,开启下一个虚拟机迁移规划周期。其中,待迁移虚拟机获取模块302和迁移操作模块303调用云服务器分配模块200对云服务器进行分类并施加不同的控制。

进一步具体地,结合图9对采样周期、预测周期、监控周期、虚拟机迁移规划周期进行更为具体的说明。采样周期是温度预测模型训练预测模块100的工作周期,其中,温度预测模块140按照采样周期触发新增训练数据集构建模块112采集新增数据。预测周期是温度预测模型的预测深度,大于采样周期,温度预测模块140按照每个采样周期上定义的预测周期作为预测深度进行温度预测。监控周期是云服务器分类模块200监控云服务器状态的工作周期。虚拟机迁移规划周期是虚拟机迁移模块300规划并迁移虚拟机的工作周期,虚拟机迁移规划周期以调度实际所需时间为准,所述监控周期与虚拟机迁移规划周期同步开始与结束。温度预测模型训练预测模块100、虚拟机迁移模块300分别按照采样周期、虚拟机迁移规划周期独立运行,并且虚拟机迁移规划周期大于采样周期,当下一个虚拟机迁移规划周期来到时,云服务器温度获取模块301从温度预测模块140获取的是当前采样周期上定义的预测周期结束时刻的预测温度。

如图10所示,所述初始训练数据集预处理模块121、新增训练数据集预处理模块122均包括如下模块。

数据清洗模块1201:如果在采样时刻获得的采样数据项的值为空缺值,使用该数据项的历史平均值填充空缺值。

归一化模块1202:对于每一个数据项,将所述初始训练数据集中数据项的最小值、最大值分别记为,将数据项的原始值映射成近似在区间[0,1]中的新值,其公式为:

将训练样本中每一数据项经预处理后获得的数据项的值合并为预处理后训练样本作为温度预测模型训练模块130中贝叶斯线性回归初始训练和贝叶斯线性回归增量训练的输入。

具体地,在数据采集模块110采集到训练数据后,数据清洗模块1201完成数据清洗并触发归一化模块1202,归一化模块1202对已完成数据清洗的训练数据进行归一化,并将得到归一化数据发送给温度预测模型训练模块130进行训练。

如图11所示,在所述迁移操作模块303中,通过如下模块计算虚拟机迁移优先级v。

用户优先级权重系数获取模块30201:根据用户的月消费金额或年消费金额,以得到用户级别;根据所述用户级别,以得到用户优先级权重系数r;所述用户优先级权重系数r包括0~1之间的数值。

虚拟机常量迁移负荷权重系数获取模块30202:获取所述虚拟机内存大小p;计算运行状态云服务器中所有虚拟机内存大小的平均值;根据所述虚拟机内存大小p,以及所有运行状态云服务器中所有虚拟机内存大小的平均值,计算所述虚拟机常量迁移负荷权重系数

虚拟机增量迁移负荷权重系数获取模块30203:获取所述虚拟机单位时间内存变化率s;计算所有运行状态云服务器中所有虚拟机单位时间内存变化率的平均值;根据所述虚拟机单位时间内存变化率s,以及运行状态云服务器中所有虚拟机单位时间内存变化率的平均值,计算所述虚拟机增量迁移负荷权重系数

虚拟机的迁移优先级获取模块30204:根据所述用户优先级权重系数、虚拟机常量迁移负荷权重系数以及虚拟机增量迁移负荷权重系数,计算所述虚拟机的迁移优先级。

根据迁移优先级计算公式:,其中,,则虚拟机迁移优先级

其中,r表示用户优先级权重系数,表示虚拟机常量迁移负荷权重系数,表示虚拟机增量迁移负荷权重系数,p表示虚拟机的内存大小,表示所有运行状态云服务器中全部虚拟机的平均内存大小,表示虚拟机的单位时间内存变化率,表示所有运行状态云服务器中全部虚拟机的平均的单位时间内存变化率,为经验参数,取值范围(0,1]。

如图12所示,所述迁移操作模块303包括如下模块。

迁移匹配关系分配模块3031:遍历所述待迁移虚拟机列表中的待迁移虚拟机,对各个待迁移虚拟机进行目标宿主云服务器的分配;

迁移匹配关系输出模块3032:根据迁移匹配关系分配模块3031确立的待迁移虚拟机与目标宿主云服务器的匹配关系,对待迁移虚拟机进行迁移;

其中,所述迁移匹配关系分配模块3031包括:

预测温度排序模块303101:将正常运行云服务器按照云服务器温度获取模块301获取的预测温度从低到高排序,得到排序后的待选择云服务器列表;

待迁移虚拟机遍历模块303102:遍历所述待迁移虚拟机列表中的待迁移虚拟机,获取所述待迁移虚拟机列表中下一个虚拟机作为当前待迁移虚拟机;

待选择云服务器筛选模块303103:依照所述预测温度排序模块303101排序后的待选择云服务器列表的顺序,将满足如下条件的待选择云服务器作为目标宿主云服务器分配给当前待迁移虚拟机:

预测温度小于服务器警报温度阈值;

剩余cpu核数大于待迁移虚拟机的cpu核数需求;

剩余未分配内存量大于待迁移虚拟机的内存需求;

休眠状态云服务器唤醒模块303104:对于待选择云服务器筛选模块303103未分配目标宿主云服务器的当前待迁移虚拟机,从休眠状态云服务器列表中列出一云服务器,将这一云服务器列入正常运行状态云服务器列表,将这一云服务器作为当前待选择云服务器分配给待迁移虚拟机。

具体地,结合图9和图12进行说明。在待迁移虚拟机获取模块302的触发下,迁移匹配关系分配模块3031遍历待迁移虚拟机获取模块302提供的所述待迁移虚拟机列表中的待迁移虚拟机,对各个待迁移虚拟机进行目标宿主云服务器的分配,得到待迁移虚拟机与目标宿主云服务器的匹配关系,并将匹配关系发送给迁移匹配关系输出模块3032;迁移匹配关系输出模块3032根据待迁移虚拟机与目标宿主云服务器的匹配关系,对待迁移虚拟机进行迁移,并触发流程结束判断模块304继续处理。

更为具体地,如图12所示,对于给定的待迁移虚拟机列表,预测温度排序模块303101将正常运行云服务器按照预测温度从低到高排序,得到排序后的待选择云服务器列表,然后触发待迁移虚拟机遍历模块303102;待迁移虚拟机遍历模块303102判断待迁移虚拟机列表中虚拟机是否遍历完毕;若是,则触发迁移匹配关系输出模块3032并将匹配关系发送给迁移匹配关系输出模块3032;若否,则获取待迁移虚拟机列表中下一个虚拟机作为当前待迁移虚拟机,然后触发待选择云服务器筛选模块303103;待选择云服务器筛选模块303103依照所述预测温度排序模块303101排序后的待选择云服务器列表的顺序,将满足如下条件的待选择云服务器作为目标宿主云服务器分配给当前待迁移虚拟机:

预测温度小于服务器警报温度阈值;

剩余cpu核数大于待迁移虚拟机的cpu核数需求;

剩余未分配内存量大于待迁移虚拟机的内存需求;

然后,待选择云服务器筛选模块303103触发休眠状态云服务器唤醒模块303104。休眠状态云服务器唤醒模块303104判断若当前的待迁移虚拟机已经被待选择云服务器筛选模块303103分配了目标宿主云服务器,则休眠状态云服务器唤醒模块303104触发待迁移虚拟机遍历模块303102就下一个待迁移虚拟机继续进行处理;若当前的待迁移虚拟机没有被待选择云服务器筛选模块303103分配目标宿主云服务器,则休眠状态云服务器唤醒模块303104从休眠状态云服务器列表中列出一云服务器,将这一云服务器列入正常运行状态云服务器列表,并将这一云服务器作为当前待选择云服务器分配给当前待迁移虚拟机,然后再触发待迁移虚拟机遍历模块303102就下一个待迁移虚拟机继续进行处理。

第三实施例

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于温度预测的虚拟机迁移规划调度方法的步骤。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1