一种基于Openstack的虚拟机迁移节点选择方法与流程

文档序号:31473855发布日期:2022-09-09 23:56阅读:196来源:国知局
一种基于Openstack的虚拟机迁移节点选择方法与流程
一种基于openstack的虚拟机迁移节点选择方法
技术领域
1.本发明属于云计算技术领域,具体涉及一种基于openstack的虚拟机迁移节点选择方法。


背景技术:

2.openstack是一个开源的云计算服务平台,它分为公共和私有云,提供可伸缩的云计算服务。随着openstack平台的大规模部署,在云数据中心部署了数千个物理节点。但是,在这些物理节点上运行着许多不同的服务和应用程序。很明显,openstack平台应该满足更高的要求。
3.资源调度是开放堆栈中的重要研究方向之一。对虚拟机的调度算法的研究有很多,大致分为静态和动态负载平衡算法。
4.对于静态负载平衡算法,决策是根据系统的先验知识推导出的。但是,不考虑算法的节点状态,导致决策的精度较低。动态负载平衡算法可以分为集中式算法和分布式负载平衡算法。集中式算法缺乏可伸缩性和可靠性。
5.gmds(gray markov dynamic scheduling)方法是一种基于灰色马尔可夫预测模型的虚拟机动态调度算法。灰色马尔可夫预测模型用于预测节点负载信息的状态,以配合虚拟机动态调度机制正确迁移虚拟机,并设置节点的上下阈值来实现负载平衡和降低能耗。
6.虚拟机迁移的触发条件主要分为上阈值触发和下阈值触发两种类型。cpu使用量、内存消耗率和磁盘利用率是在上限触发条件下需要考虑的因素,只要其中一个超过阈值,就需要进行迁移。在迁移的上限触发条件下,需要考虑的问题之一是,节点负载信息的实时更新容易出现瞬时峰值,但可以在短时间内快速降低。为了避免瞬时冲击移动造成的误差,可以采用延迟触发策略,即一旦加载信息的属性值达到或超过设定的阈值,首先通过灰色马尔可夫预测算法预测节点的状态,首先要读取系统历史数据时采用10分钟每次的方式。这样的方式被称为间隔采样,采样时间采用等长的模式进行。理论上灰色马尔可夫序列预测主要会对上一个时间段的节点加载属性值最大的那个硬件进行定位,接下来将会针对这个可能超载或者已经超载的硬件,该硬件下一个状态的熟悉进行预测。当然想实现精确量化式预测是不现实的,根据之前所有硬件参数,马尔可夫预测只能进行趋势判断,也就是说它可以判断这一节点下一状态的资源使用是否增加,如果资源使用量将继续增加,则将会把该资源列入过载节点的监测资源,并根据其当下资源使用情况判断其资源是否存在使用超标,如果达到硬件资源的饱和值,则会判定为资源过载。
7.gmds处于触发低负载的条件下,此时资源存在大量闲置。由于不同虚拟机所需的资源类型可能差异很大,因此在某些情况下,某些资源利用率上的工作节点更高,但其他一些资源可能相对空闲,如果在这种情况下向虚拟机迁移可能对虚拟机运行的质量有很大的影响,并且实际上增加了其他工作节点的负载,甚至触发链迁移任务。因此,在最小化运行节点数量、确保虚拟机调度对所有运行节点的影响最小的前提下,建议使用下阈值并触发
下限来触发迁移策略。
8.一旦属性值的负荷信息低于阈值下限,则使用灰色马尔可夫预测算法预测节点的未来状态,然后根据一定的时间间隔采样和最大采集时间开始统计后续的加载信息利用率、节点负荷信息最大,如果此时的虚拟机资源使用情况已经接近于极限,也就该物理机上面开启的虚拟机处于极限运行,此时物理机资源使用情况维持在物理机最低负载情况下。接下来使用马尔可夫算法对该虚拟机未来的运行情况进行预测,发现其未来运行时消耗的资源将会低于物理机最低负载资源。这时可能需要将虚拟机的服务迁移,如果有新虚拟机服务加入此物理机,则该物理机将会作为虚拟机迁移的最佳节点。
9.gmds也是业内目前比较成熟的技术。该技术于2018年发表在acai人工智能国际会议论文集上,目前该论文被收录到web if seience杂志上。该技术在动态调度领域具有较好的效果,但在动态调度精确度上仍存在着一定的问题,调度资源时会存在资源数据冗余等问题,具体的:虚拟机的迁移在于迁移节点的选择,迁移节点的选择在于gmds对于现有资源的判断和该资源未来的潜力,属于判断+预测双重属性兼具的算法,但是该算法在判断模式中过于冗余,很容易造成判断不准,进而影响资源的分配。除了这个问题,最大的问题是判断的精度上面,因为预测最依赖的是根据原始参数提供的判断依据,如果判断依据不准,则会影响后期的预测精度。


技术实现要素:

10.本发明所要解决的技术问题是针对上述现有技术的不足,提供一种基于openstack的虚拟机迁移节点选择方法,以改进版的灰色马尔可夫预测模型为基础,通过特定的遗传算法得到一套基于openstacck的虚拟机动态调度机制,可用来对任意节点的下一时刻状态进行高效预测,在虚拟机调度上具备优越性能,可应用在虚拟机的动态调度上,解决gmds调度虚拟机资源的精度问题,调度资源时达到资源最大化的效果。
11.为实现上述技术目的,本发明采取的技术方案为:
12.一种基于openstack的虚拟机迁移节点选择方法,包括:
13.步骤1、基于openstack判断虚拟机节点状态,所述虚拟机节点状态分为超载、低负载和正常状态;
14.步骤2、若虚拟机节点超载,则执行最小二乘法来选择虚拟机迁移节点;
15.步骤3、若虚拟机节点低负载,则执行基于遗传算法改进后的gmds来选择虚拟机迁移节点;
16.步骤4、若虚拟机节点正常状态,则使用gmds结合遗传算法的模式来选择虚拟机迁移节点;
17.步骤5、基于步骤2-4选择的虚拟机迁移节点进行虚拟机最终迁移节点确认。
18.为优化上述技术方案,采取的具体措施还包括:
19.上述的步骤1具体为:
20.使用openstack的ceilometer module模块来获得所有物理服务器的负载属性值和消耗率,从而判断判断虚拟机节点状态。
21.上述的步骤2具体为:
22.若虚拟机节点超载,那么对其下一个时间状态进行预测时执行最小二乘法;
23.所述最小二乘法通过转置矩阵的方式完成对超载虚拟机节点状态的初始化,使其回归到超载即将结束的状态,以非超载的状态作为下一阶段的预测参数;
24.具体的,最小二乘法的最优解为u,根据u配置节点状态值;
25.u=[a,b]
[0026]
其中,a为节点超载前各个节点资源使用的状态统计,b为超载的资源状态;
[0027]
最小二乘法通过降低虚拟机的使用状态将b节点的状态还原到a,并且开始为超载节点上的虚拟机寻找新的物理机节点,为其迁移做准备。
[0028]
上述的步骤3具体为:
[0029]
若虚拟机节点低负载,则不足以支撑gmds的预测,因此基于遗产算法的思想,加入干涉条件,当节点低于预设最低值,则节点执行gmds能够正常预测所需参数的最小值。
[0030]
上述的步骤4包括:
[0031]
(1)初始化:配置进化代数计数器time=0,最大进化代数t,随机模拟m个个体作为初始群体vm(0);
[0032]
vm(0)包括vmcpu,vmmem,pmcpu,pmmem参数的初始化数值;
[0033]
vmcpu,vmmem为虚拟的cpu、内存;pmcpu,pmmem为服务器的cpu、内存采用ui表示第i台物理机的资源总量以及其上面跑的全部虚拟机的资源总量,则:
[0034]
ui={vm
cpu
,vm
mem
,pm
cpu
,pm
mem
}
[0035]
(2)参数评价:记系统内的个体的适应度配置为u,umin为最小二乘法的最优解,其中;
[0036]
u={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0037]
对上述u中数据每两个一组,进行最小二乘判断;
[0038]
ui表示从物理机节点超载前各个节点资源使用的状态统计;
[0039]
ua表示物理机a在i时间点时的资源使用量;
[0040]
ub表示物理机b在i时间点时的资源使用量;
[0041]
uc表示物理机c在i时间点时的资源使用量;
[0042]ufin
表示物理机fin在i时间点时的资源使用量。
[0043]
依次进行判断,求得上述u中最小二乘法的最优解;
[0044]
(3)选择运算:
[0045]
首先按照时间先后顺序,对每一时刻的包括vmcpu,vmmem,pmcpu,pmmem的参数的取值进行判断,统计出其各自的权重,随着迭代的不断继续,每时每刻这四个参数对应的权重也在不断变化;
[0046]
假设ui有n个时刻,每时每刻状态各不相同,时间上用ti来表示,则:
[0047]ui=t1
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0048]ui=t2
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0049]ui=t3
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0050]ui=t4
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0051][0052]ui=tn
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0053]
上述方程统计出其每时每刻的状态,上述每时每刻都有一个最合适的最优解,接
下来按照时间的顺序依次横向挑取一个最优解;
[0054]
(4)交叉运算:对包括vmcpu,vmmem,pmcpu,pmmem的参数进行交叉计算,在不断的对比中,将有用的参数保留,无用的参数权重降低;
[0055]
假设按照时间的顺序求解的一组最优解为:
[0056]ubest
={u
t1
,ub},{u
t2
,uc},{u
t3
,u
fin
},...,{u
t-fin
,ua}
[0057]
对上式,两两一组进行对比,匹配出一个在最佳使用时间内满足资源使用的同时虚拟机可以获得更多资源的情况;
[0058]
(5)参数降低:在ui中引入权重,通过权重选择,将不必要参数权重赋值为0,将参数数量降低,只统计必要参数;
[0059]
(6)终止条件判断:根据gmds对选择后的参数进行运算,若当前状态无限趋近于u,且参数经过交叉运算后不再减少,此刻则以运算过程中所得到的具有最大适应度个体作为最优解输出,终止计算,得到最终计算节点,则此刻的节点最适合创建虚拟机。
[0060]
上述的步骤5具体为:获取一个卸载节点,并检查是否存在最佳的迁移计划,如果存在,请执行迁移,如果不存在,则标记该节点,并在规定时间内不执行较低阈值的检测。
[0061]
本发明具有以下有益效果:
[0062]
本发明通过遗传算法中对于参数的决策性优化机制,优化了对于gmds作用较小的参数,使其能够在已有计算基础上以更加小的算法复杂度解决节点下一状态的预测问题,同时也解决了传统gmds在复杂度较高时带来的系统稳定性下降的问题。本发明可以有效解决gmds的预测精度问题。
[0063]
本发明在gmds的基础上,利用权重分析和遗传算法特有的迭代机制,将gmds预测时所采集到的参数按照优先级进行有效定位,之后计算出各参数对于gmds的影响程度,之后赋予其权重,在预测时按照权重大小修正最终预测结果,同时由于参数数量下降,预测速度得到了提高,同时准确率也进一步提高。
[0064]
本发明主要特点为:
[0065]
1.传统方法的改进都是基于隐马尔可夫技术的,将其与遗传算法结合后可以在精度上面得到提高,但是类似本发明的灰色马尔可夫列,并没有在遗传算法上的应用。
[0066]
2.对于灰色马尔可夫技术对处理虚拟机的动态调度的资源进行预测,在降低算法复杂度的基础同时提高精度,遗传算法中的最优解可为其提供支持。
附图说明
[0067]
图1是发明gmds+遗传算法在节点预测时的流程图;
[0068]
图2是遗产算法对gmds的改造过程。
具体实施方式
[0069]
以下结合附图对本发明的实施例作进一步详细描述。
[0070]
如图1所示,本发明实施例提供基于openstack的虚拟机迁移节点选择方法,其主要包括:
[0071]
步骤1、基于openstack判断虚拟机节点状态,所述虚拟机节点状态分为超载、低负载和正常状态;
[0072]
步骤2、若虚拟机节点超载,则执行最小二乘法来选择虚拟机迁移节点;
[0073]
步骤3、若虚拟机节点低负载,则执行基于遗传算法改进后的gmds来选择虚拟机迁移节点;
[0074]
步骤4、若虚拟机节点正常状态,则使用gmds结合遗传算法的模式来选择虚拟机迁移节点。
[0075]
步骤5、基于步骤2-4选择的虚拟机迁移节点进行虚拟机最终迁移节点确认。
[0076]
实施例中,具体为:
[0077]
步骤1、判断虚拟机节点是否超载
[0078]
该算法开始时,使用openstack的ceilometer module模块来获得所有物理服务器的负载属性值和消耗率。检查过载队列是否为空,没有节点超载。如果未超载,则执行基于遗传算法的gmds模块,如果超载,执行最小二乘法模块。节点资源队列是有空的地方。如果节点资源队列存在空的位置,则使用静态资源作为虚拟机迁移的判断依据。如果没有,则节点类型为超载节点,请执行特殊条件下的gmds。gmds的上下阀控制主要是判断虚拟机节点是否超载。
[0079]
具体示例如下:
[0080]
首先启动100台物理机,并且在其中99台物理机上跑起虚拟机,有一台机器上没有跑虚拟机。此时在静态资源划分情况下,会从某一时刻的资源列表中读取到有一个节点是没有使用的,这时,如果有一台物理机需要启动一台大的虚拟机,原有的虚拟机资源已经快将资源占满了,这时需要考虑的方案有两个,一个是静态资源划分,一个是基于gmds的虚拟机动态迁移机制。
[0081]
根据静态资源,发现了有一台机器没有跑虚拟机,则优先使用此节点作为虚拟机的迁移节点。优先级是静态资源划分高于动态迁移。这时,100台物理机上面全部都跑有虚拟机。整个由100物理机节点构成的云计算集群上面全部跑满了虚拟机。
[0082]
但是100台物理机上运行的虚拟机消耗物理机资源大小不同,而且100台物理机所拥有的资源也是各不相同,有高有低。这样的话,如果是在资源充足的物理机节点上运行虚拟机,可以同时跑20台虚拟机。此时该节点上面只有19台虚拟机。此时根据客户需求,需要再开一台虚拟机。此时你发现,100台机器上面都跑慢了虚拟机,这个时候使用静态资源划分无法为该虚拟机划分资源,接下来就是使用动态划分资源的方法gmds了。
[0083]
步骤2.若超载,执行最小二乘法
[0084]
在动态规划的场景下,采用gmds算法中的最小二乘的机制是为了有效保障系统运行,当gmds算法判定节点出现负载时,会满足触发上条件,而本算法的核心目的是预测下一个节点是否会超载,如果此刻该节点负载超载,那么它的下一个时间状态的预测,也会采用该点此时的状态作为输入,也就是说一个节点负载超载,那么下一个点也会超载,而最小二乘的机制则能通过转置矩阵的方式完成对该点状态的初始化,使其回归到该点负载超载即将结束的那个状态,以非超载的状态作为下一阶段的预测参数。其最优解为u,根据u配置节点状态值。
[0085]
u=[a,b]
[0086]
其中,a为物理机节点超载前各个节点资源使用的状态统计,b为超载的资源状态,需要通过降低虚拟机的使用状态将b节点的状态还原到a,并且开始为超载节点上的虚拟机
寻找新的物理机节点,为其迁移做准备。
[0087]
也就是说,不管物理机资源如何超载,超载后在保证资源能够继续运行的情况下降低虚拟机的内存资源核存储,使其处于超载前的状态,并继续运行,这时应尽快为虚拟机的迁移做准备。
[0088]
具体场景:
[0089]
使用gmds高效匹配资源时需要在100台物理机中,其中那台跑19台虚拟机的节点,是可以再容纳一台虚拟机的,但是经过你对这台机器剩余资源的分析,发现如果新虚拟机迁移在这个节点上,只能让该虚拟机以很低的状态去运行,这个是怎么知道的。物理机资源使用情况使用ceilometer module进行收集!根据其它19台虚拟机的历史使用资源发现,它们这19台虚拟机的资源使用呈现递增方式,而预测这种资源变化的方法就是gmds。有了这个参考,可知此刻该物理机能够满足虚拟机迁移条件,但是未来随着其它19台机器使用量的增加,第20台机器的使用会大打折扣。因此,物理节点不是最佳的虚拟机迁移节点。这时就要继续根据gmds对其它可以进行虚拟机迁移的物理机进行资源分析和预测。将得到的资源从高到低排序,选取一个现在可以迁移并且未来会释放资源的物理机作为新虚拟机的迁移点。
[0090]
虽然19台虚拟机的那个物理节点不是最佳的迁移方案,但也是可以作为虚拟机迁移节点,只有当100台虚拟机全部跑满了虚拟机,并且已经出现资源满载时,你会发现,没有一台机器可以安装新虚拟机,除了这台跑19个虚拟机的机器,因此,会在该节点上迁移虚拟机。并且相应降低19台虚拟机的运行速度。因为一旦资源超标发生,会造成虚拟机宕机。
[0091]
这时满载状态的虚拟机,需要遵循最小二乘法的规则,也就是即其满载前能够支持全功率运行的那一个状态为最佳状态。通过降低虚拟机的运行内存和硬盘消耗,使其资源处于一个极限状态并运行下去。
[0092]
步骤3.若低负载时,执行基于遗传算法改进后的gmds
[0093]
gmds预测算法的效率在很大程度上直接影响了虚拟机的迁移。该预测算法应能够反映近期监测信息的总体趋势,以预测下一个可能的负载信息值。而且在时间复杂度方面,它不能过分满足在线预测的需要,因此整个算法的效率不会太高。为了解决这一问题,通过遗传算法的思想来改造gmds,使其目的性更加明确,算法复杂度相对于原来大幅下降,从而提高gmds算法的性能。这也是本专利最核心的专利点。
[0094]
针对低负载场景下节点负载不足以支撑gmds的预测,因此要加入干涉条件,当节点低于最低值,则让其执行gmds能够正常预测所需参数的最小值。
[0095]
gmds=min[status 1,status 2,...,status n]
[0096]
以gmds状态为基础的status,描述了status在满载之前一切满足运行状态的status,假设这样的状态有n种,之后当系统节点负载低时,只需要选择出其中能运行gmds状态最小的数值。
[0097]
当gmds满载为最大值时,节点超载,此时不能选取status最大值,应该用最小二乘法对那一时刻的状态重制,并将其归纳为gmds的ststus偏中位数那个数值。
[0098]
步骤4.正常状态下使用gmds+遗传算法模式
[0099]
如图2所示,一种基于openstack的改进版gmds算法,首先是要研究清楚什么样类型的参数可以被遗传算法统一选取,统一计算,数据的长度和内容,数据的维度要如何控
制,原有的gmds处理方法是将全部的参数直接进行运算,并没有对其分类处理以及鉴别,因此,才会造成gmds算法复杂度大幅增加,而结合遗传算法对gmds进行重构以后,这样的问题得到了解决,同时带来了算法稳定性的提高,这两点是本专利新算法带来的效果,同时也是本发明的技术要点。
[0100]
不同参数不同权重不同决策规则对于遗传算法影响很大,改进gmds时,应结合gmds的约束条件和使用情况进行有效分析,主要是围绕gmds输入的参数和gmds在不同状态下输出的数据,以此为参考进行gmds的定制化设计,这也是本发明最应该保护的点!
[0101]
gmds的具体步骤如下:
[0102]
1.遗传算法选取:
[0103]
该算法可以通过非常小的时间复杂度来解决最优解的选取。
[0104]
优势:遗传算法参数配置比较容易,且适用性非常强。
[0105]
2.上下触发点概念:
[0106]
虚拟机的迁移触发机制用于确定在什么条件下执行虚拟机迁移操作。虚
[0107]
拟机迁移的触发条件主要分为上阈值触发和下阈值触发两种类型!
[0108]
3.灰色马尔可夫预测:
[0109]
1.很高维度参数去预测,算法复杂度极高但性能不稳定。
[0110]
2.但是变形极多,可运用于各类特殊状态的节点。
[0111]
4.基于遗传算法改进的灰色马尔可夫预测:
[0112]
采用遗传算法中对于最优解求解思想,改善了gmds在预测阶段的决策机制,原gmds计算公式并未改变,但是其计算模式改变了,这样做可以对高维参数进行决策化处理,在增加性能的前提下进一步提高gmds的算法稳定性。
[0113]
在gmds的真实的使用场景中,vmcpu,vmmem,和vm磁盘分别代表虚拟的cpu、内存和磁盘存储大小机器和pmcpu,pmmem和pm磁盘分别表示服务器的cpu、内存和磁盘存储容量,wcpu wmem,和w磁盘分别代表存储在cpu、内存和磁盘中的属性的权重值。cpu的位置avg计量单位avg和diskavg表示平均值调度域中所有物理服务器的cpumem和disk属性消耗率。
[0114]
这些属性数据按照一定的计算公式形成了一套完备的gmds算法,该算法主要以参数运行状态出发,对每时每刻不断变化的上述数据进行抽取,以该时刻状态为根据而设计的动态规划算法。
[0115]
遗传算法的基本运算过程如下:
[0116]
(1)初始化:配置进化代数计数器time=0,最大进化代数t,随机模拟m个个体作为初始群体vm(0),vm(0)包括vmcpu,vmmem,pmcpu,pmmem等参数的初始化数值。
[0117]
ui={vm
cpu
,vm
mem
,pm
cpu
,pm
mem
}
[0118]
其中,ui表示第i台物理机的资源总量以及其上面跑的全部虚拟机的的资源总量,将u的资源总量限制在cpu资源和内存资源,因为gpu资源不算刚需资源,因此不会纳入统计。
[0119]
(2)参数评价:系统内的个体的适应度配置为u,umin为最小二乘法的最优解。该参数既可以作为衡量节点状态的标准参考,又可以用来应节点负载时的状态优化。
[0120]
u={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0121]
上述数据每两个一组,进行最小二乘判断,依次进行判断,求得上述方程中最小二
乘法的最优解。
[0122]
资源池内能够被用来做虚拟机迁移的物理机分别为a,b,...,fin;
[0123]
ui表示从物理机节点超载前各个节点资源使用的状态统计,换言而知就是在第i个时间点下,虚拟机资源的使用量,其内部包括其内部包括ua的vmcpu,vmmem,vmnetwork依次为虚拟机cpu剩余资源,虚拟机内存剩余资源,虚拟机网络资源等类型资源可用量。
[0124]
ua表示物理机a在i时间点时的资源使用量,其内部包括ua的pmcpu,pmmem,pmnetwork依次为物理机cpu剩余资源,物理机内存剩余资源,物理机网络资源等类型资源可用量。
[0125]
ub表示物理机b在i时间点时的资源使用量,其内部包括ub的pmcpu,pmmem,pmnetwork依次为物理机cpu剩余资源,物理机内存剩余资源,物理机网络资源等类型资源可用量。
[0126]
uc表示物理机c在i时间点时的资源使用量;
[0127]
......
[0128]ufin
表示物理机fin在i时间点时的资源使用量,其内部包括ufin的pmcpu,pmmem,pmnetwork依次为物理机cpu剩余资源,物理机内存剩余资源,物理机网络资源等类型资源可用量。
[0129]
(3)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,本专利中,首先按照时间先后顺序,对每一时刻的vmcpu,vmmem,pmcpu,pmmem等参数的取值进行判断,统计出其各自的权重,随着迭代的不断继续,每时每刻这四个参数对应的权重也在不断变化。
[0130]ui=t1
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0131]ui=t2
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0132]ui=t3
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0133]ui=t4
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0134][0135]ui=tn
={ui,ua},{ui,ub},{ui,uc},...,{ui,u
fin
}
[0136]
目前,假设ui有n个时刻,每时每刻状态各不相同,时间上用ti来表示,上述方程统计出其每时每刻的状态,上述每时每刻都有一个最合适的最优解,接下来按照时间的顺序依次横向挑取一个最优解。
[0137]
(4)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子,vmcpu,vmmem,pmcpu,pmmem等参数进行交叉计算,其目的就是为了在不断的对比中,将有用的参数保留,无用的参数权重降低,当权重归零时,其对应参数不再具备功能,实现的筛选参数的目的。
[0138]ubest
={u
t1
,ub},{u
t2
,uc},{u
t3
,u
fin
},...,{u
t-fin
,ua}
[0139]
上述为(3)中按照时间顺序求解的一组最佳的情况,形式不是固定的,上述最佳情况会随着物理机节点状态的改变而改变,接下来将上述情况中,两两一组进行对比,匹配出一个在最佳使用时间内满足资源使用的同时,负载上面也要进行相应考虑,虚拟机因此可以获得更多资源,这样就能让业务更好的跑起来。
[0140]
(5)参数降低:有了上述的操作后,经过对权重值w的不断迭代,其参数会减少,但是某些必要参数的权重不会减少到零,此刻的状态会发现,如果参数不会下降,则此时为最佳状态,当然如节点负载严重不足时,会造成大量权重为零,参数进而趋于零,但是节点依旧运行。
[0141]
ui={vm
cpu
*w1,vm
mem
*w2,pm
cpu
*w3,pm
mem
*w4}w1+w2+....+w
p
=1
[0142]
在ui中引入权重的概念,假设一共有p个内容需要加入权重,则满足上述表达式,对于某些虚拟机按照需求划分,其权重值可以配置为零,更有的虚拟机需要gpu和network作为需求,因此权重的数量p应按照具体的需求来定义。通过权重选择,将权重赋值为领,就可以将参数数量降低。只统计必要参数。
[0143]
(6)终止条件判断:若此时的状态无限趋近于u,且参数经过交叉运算后不再减少时,此刻则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算,则此刻的节点最适合创建虚拟机。
[0144]ufin
={um,un}
[0145]
上述为最终结果,且满足um无限接近于un,这个时候,此刻的节点最适合创建虚拟机。
[0146]
具体场景:
[0147]
遗传算法的本质是求最优解,最优解指的是虚拟机的资源分配,也就是什么样的物理机跑什么样的虚拟机都经过最优化的求解,求解方案在上面:正常状态下使用gmds+遗传算法模式进行介绍,最优化求解好在哪些地方,首先,还是上述案例,在19台虚拟机使用一台大资源物理机时,你的任务是为其选择一台合适的物理机作为运行支持。有了遗传算法加持,你发现了隔壁物理机,有一台小虚拟机,消耗资源非常少,这时,会让本机上19台虚拟机的其中一台消耗大的虚拟机自动迁移到另一台物理机上面,另一台物理机上面的小虚拟机迁移到本台虚拟机上面,这样资源一互换,之前19台虚拟机的物理机由于资源不够的问题就解决了,并且该物理节点能够作为第20台虚拟机启动的物理机节点。也就是说,能够收集100个物理机全部大小资源,根据虚拟机的大小资源设计出一个最佳的匹配方案。并且结合gmds这样的机制能够很好的预测硬件使用资源,从而大面积降低了由于资源过载带来的虚拟机宕机。
[0148]
当全部100台机器均处于满载运行下,这时根据gmds会检测出存在宕机风险的节点,这时会将通过遗传算法重构资源分配方案,并能按照最佳方案进行最小限度的迁移,完成资源互换,降低虚拟机的宕机风险。
[0149]
当然同样的道理,通过gmds也能监测到资源丰富的物理机,并将其作为那些存在宕机风险物理机上虚机迁移的备用节点,这样当风险即将来临时对虚机进行迁移,使物理机资源能够被最大力度的使用。
[0150]
gmds会得到冗余的全局解,遗传算法会得到适应当前状态的局部最优解。使用遗传算法可以高效确定虚拟机的迁移节点。
[0151]
5.虚拟机最终迁移节点确认
[0152]
获取一个卸载节点,并检查是否存在最佳的迁移计划。如果存在,请执行迁移。如果它不存在,则标记该节点,并在规定时间内不执行较低阈值的检测。获取所有物理服务器的列表,并检查是否存在最佳的创建计划。如果是,则在节点上创建一个虚拟机。
[0153]
步骤5.虚拟机最终迁移节点确认
[0154]
虚拟机迁移的核心是对物理机资源的判断,迁移节点和物理机是等价的,也就是说只要判断资源允许,则可以将虚拟机迁入到此物理机上面。获取一个卸载节点,并检查是否存在最佳的迁移计划。如果存在,请执行迁移,迁移到由步骤2-4选择的迁移节点。如果它不存在,则标记该节点,并在规定时间内不执行较低阈值的检测。获取所有物理服务器的列表,并检查是否存在最佳的创建计划。如果是,则在节点上创建一个虚拟机。
[0155]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1