法律状态公告日
法律状态信息
法律状态
2019-03-08
授权
授权
2016-10-05
实质审查的生效 IPC(主分类):G06F9/455 申请日:20160429
实质审查的生效
2016-09-07
公开
公开
技术领域
本发明涉及云计算技术领域,具体地说是一种三阈值的虚拟机迁移策略。
背景技术
云计算是继网格计算、并行计算、分布式计算之后产生的一种基于互联网的新型计算模式。虚拟化技术为云计算动态资源调整提供了解决途径(BARHAM P,DRAGOVIC B,FRASER K,et al.Xen and the Art of Virtualization[J].ACM,2003(08):164-177.),是云计算重要的核心技术之一。
虚拟化技术可以将物理资源抽象成一个资源池,虚拟机从资源池中获取运行所需的资源。运用虚拟化技术可以在一台物理机上同时运行多台虚拟机,这不仅增加了物理资源的利用率(NICOLAE B,CAPPELLO F.A hybrid local storage transfer scheme for live migration of I/O intensive workloads[C].Proc of the 21st International Symposium on High-performance Parallel and Distributed Computing.New York:ACM Press,2012),而且还提高了云计算环境中资源分配的灵活性(Ma Sugang.A review on cloud computing development[J].Journal of Networks,2012,7(2):305-310.)。云计算中心通过虚拟化技术构建的虚拟集群,使动态地组织异构的计算资源得到了可能(Mauro Andreolini,Sara Casolari,Michele Colajanni.Dynamic load management of virtual machines in a cloud architecture[J].Department of Information Engineering,2010:201-204)。虚拟化技术已经日趋成熟,在其发展过程中不乏许多革命性的突破,虚拟机迁移技术就是其中之一。
虚拟机迁移技术是将虚拟机从源主机中迁出并迁入到另一台目的主机,通过虚拟机迁移可以对虚拟化集群中的资源进行更为合理得调配。虚拟机迁移技术已经从最初的离线迁移发展到如今的在线迁移,这使得虚拟机在迁移的过程中保持开启,不会中断部署于虚拟机上的应用(CLARK C,FRASER K,HAND S,et al.Live migration ofvirtual machines[C].Proc of the 2nd Symposium on Networked Systems Design&Implementation.Berkeley:USENIX Association,2005:273-286.),整个迁移过程对于云用户是透明的。虚拟机在线迁移技术给云计算带来了革命性的突破,使云数据中心中资源的动态管理得到了可能。
在实际的IaaS应用中,虚拟机在不同时刻对于资源的需求量不是一成不变的。在超订环境中,当物理主机不足以提供虚拟机由空闲状态转为高负荷状态时所需要的资源,那么这将会降低云服务的质量。此时就需要从过载主机中迁出一部分虚拟机到其它主机中,以保证虚拟机对于资源的需求。
现有的双阈值虚拟机迁移策略主要通过设定上阈值与下阈值来触发虚拟机的迁移动作。当主机的负载超过上阈值时,从主机中迁出一部分虚拟机到集群中的其它主机中去,降低违反SLA的风险。当主机的负载低于下阈值时,将主机中的所有虚拟机都迁出到集群中的其它主机中去,并将该主机关闭以节省能源。
在主机中的虚拟机负载变化比较平稳的状态下,使用双阈值的虚拟机迁移策略不会经常触发虚拟机的迁移动作。但如果虚拟机负载波动剧烈时,使用双阈值虚拟机迁移策略将会经常触发虚拟机的迁移动作,导致云服务的质量下降。
发明内容
本发明是为避免现有技术所存在的不足之处,提出一种三阈值的虚拟机迁移策略,以期能降低在云计算环境中虚拟机负载波动剧烈的情况下虚拟机在集群中的主机之间的迁移次数,从而使云服务质量得到提高。
本发明为解决技术问题采用如下技术方案:
本发明一种三阈值的虚拟机迁移策略,是用于对N台虚拟机在M台主机间的迁移过程中,其特点是:
令M台主机记为集合PM={pm1,pm2,...,pmm,...,pmM},1≤m≤M;pmm表示PM中的第m台主机,令第T个周期中的第m台主机pmm记为且pcm表示第m台主机pmm的总CPU计算能力;表示第T个周期中第m台主机的负载,且表示第T个周期中第m台主机使用的CPU计算能力,且表示第T个周期中第m台主机的空闲CPU计算能力,且表示第T个周期中第m台主机的活跃标记,且utm、ltm和mtm分别表示第m台主机pmm的上阈值、下阈值和迁移阈值;其中utm=α;ltm=β;且α<γ<μ≤β;
假设第T个周期的第m台主机中包含台虚拟机,记为虚拟机集合且将所述在第T周期中第m台主机中第台虚拟机抽象为表示第m台主机pmm中第台虚拟机的总CPU计算能力;表示第T个周期中第m台主机中第台虚拟机的负载,且表示第T个周期中第m台主机中第台虚拟机已使用的CPU计算能力,且表示第T个周期中第m台主机的第台虚拟机的空闲CPU计算能力,且表示第T周期中第m台主机的第台虚拟机的活跃度,其中s表示定值,1≤w≤s;表示表示第T周期中第m台主机的第台虚拟机的活跃标记,其中,at表示虚拟机的活跃度阈值;
所述虚拟机迁移策略是按如下步骤进行:
步骤1、定义第T周期的过载迁移总队列为L(T);定义在第T周期中第m台主机所使用的过载迁移队列为初始化T=1;初始化m=1;
步骤2、若m>M成立,则跳转到步骤7;否则,初始化过载迁移队列为空;标记出在虚拟机集合中所有虚拟机的活跃标记与第T个周期的第m台主机的活跃标记不相同的虚拟机;并将标记出的虚拟机从虚拟机集合中迁出,放入过载迁移队列为中;从而更新所述第T周期中第m台主机所使用的过载迁移队列以及第T个周期第m台主机中虚拟机集合
步骤3、若第T个周期的第m台主机中更新后的虚拟机集合中所有虚拟机使用的CPU的计算能力的总和大于等于pcm×utm成立,则跳转到步骤4;否则跳转到步骤6;
步骤4、将更新后的虚拟机集合中所有虚拟机按照负载从小到大的顺序进行排序,获得更新后的有序虚拟机集合
步骤5、从所述更新后的有序虚拟机集合中依次将虚拟机迁入至更新后的过载迁移队列中,直到更新后的有序虚拟机集合中所有虚拟机的使用的CPU计算能力的总和小于等于pcm×utm为止;从而再次更新第T个周期中第m台主机所使用的过载迁移队列以及第T个周期第m台主机中虚拟机集合
步骤6、令m+1赋值给m;跳转到步骤2;
步骤7、令第T个周期的过载迁移总队列为所述第T个周期的过载迁移总队列L(T)中的虚拟机数量记为将所述第T个周期的过载迁移总队列L(T)中的虚拟机按照其已使用的CPU计算能力从大到小的顺序进行排序,从而获得排序后的第T个周期的过载迁移总队列表示排序后的第T个周期的过载迁移总队列L′(T)中的第i(T)台虚拟机;第i(T)台虚拟机的已使用的CPU计算能力记为第i(T)台虚拟机的活跃标示记为1≤i(T)≤I(T);
步骤8、令i(T)=1;
步骤9、若i(T)>I(T)成立,则表示在第T周期中主机集合中的所有主机均未过载,将第T个周期中均未过载的主机集合记为第T个周期中第m台未过载主机记为第T个周期中第m台未过载主机中的虚拟机集合记为且并跳转至步骤12;否则,将M台主机PM中的所有主机按照其使用的CPU计算能力从大到小进行排序,从而获得在第T个周期中第i(T)次排序后的M台主机表示在第T个周期中第i(T)次排序后的M台主机中的第m台主机;且
步骤10、令m=1;
步骤11、对排序后的第T个周期的过载迁移总队列L′(T)中的第i(T)台虚拟机判断是否满足且如满足条件,则将第i(T)台虚拟机放入第i(T)次排序后的第m台主机中,并令i(T)+1赋值给i(T)后,跳转至步骤9;如不满足条件,则令m+1赋值给m后,跳转至步骤11;
步骤12、定义第T周期的轻载迁移总队列为L*(T),定义在第T周期中第m台主机所使用的轻载迁移队列为初始化m=1;
步骤13、若m>M成立,则跳转至步骤14;否则,初始化轻载迁移队列为空;若第T个周期中第m台未过载主机中的虚拟机集合中所有虚拟机使用的CPU的计算能力的总和小于等于ltm×pcm,则将中的虚拟机全部迁入到轻载迁移队列中,从而更新第T个周期第m台主机所使用的轻载迁移队列令m+1赋值给m,跳转至步骤13;
步骤14、令第T个周期的轻载迁移总队列为所述第T个周期的轻载迁移总队列L*(T)中的虚拟机数量记为I*(T);将所述第T个周期的轻载迁移总队列L*(T)中的虚拟机按照其已使用的CPU计算能力从大到小的顺序进行排序,从而获得排序后的第T个周期的轻载总队列表示排序后的第T个周期的轻载迁移总队列L′*(T)中的第i*(T)台虚拟机;第i*(T)台虚拟机的已使用的CPU计算能力记为第i*(T)台虚拟机的活跃标示记为1≤i*(T)≤I*(T);
步骤13、令i*(T)=1;
步骤14、若i*(T)>I*(T)成立,则表示在第T周期中主机集合中的所有主机均未轻载,并跳转至步骤17;否则,将M台主机PM中的所有主机按照其使用的CPU计算能力从大到小进行排序,从而获得在第T个周期中第i*(T)次排序后的M台主机表示在第T个周期中第i*(T)次排序后的M台主机中的第m台主机;且
步骤15、令m=1;
步骤16、对排序后的第T个周期的轻载迁移总队列L′*(T)中的第i*(T)台虚拟机判断是否满足且如满足条件,则将第i*(T)台虚拟机放入第i*(T)次排序后的第m台主机中,并令i*(T)+1赋值给i*(T)后,跳转至步骤14;如不满足条件,则令m+1赋值给m后,跳转至步骤16;
步骤17、令T+1赋值给T,并跳转至步骤2。
与已有技术相比,本发明有益效果体现在:
1、本发明通过在双阈值虚拟机迁移策略的基础之上新增迁移阈值,用作将虚拟从迁移队列迁入主机时判断主机是否合适的条件,从而能够降低负载波动剧烈的活跃虚拟机在迁入主机之后使得该主机立马达到迁移阈值的几率,进而降低了触发虚拟机迁移的次数,提高了云服务质量。
2、本发明使用虚拟机活跃度模型来量化虚拟机生命周期中的负载波动情况,从而能直观反映出虚拟机负载的波动大小。
3、本发明通过区别对待由虚拟机活跃度来区分的两类虚拟机,通过设定不同的迁移阈值以达到增加虚拟机部署密度和减少CPU计算资源的浪费的作用。
附图说明
图1为本发明方法流程图。
具体实施方式
本实施例中,一种三阈值的虚拟机迁移策略,是用于对N台虚拟机在M台主机间的迁移过程中,
令M台主机记为集合PM={pm1,pm2,...,pmm,...,pmM},1≤m≤M;pmm表示PM中的第m台主机,令第T个周期中的第m台主机pmm记为且pcm表示第m台主机pmm的总CPU计算能力,例如主机中有2个CPU,每个CPU的计算能力为2000MIPS,则该主机总的CPU计算能力为4000;表示第T个周期中第m台主机的负载,且例如主机在当前周期中的CPU使用率为50%,则该主机在当前周期中的负载为0.5;表示第T个周期中第m台主机使用的CPU计算能力,且表示第T个周期中第m台主机的空闲CPU计算能力,且表示第T个周期中第m台主机的活跃标记,且本实施例中,0表示非活跃,1表示活跃;utm、ltm和mtm分别表示第m台主机pmm的上阈值、下阈值和迁移阈值;其中utm=α;ltm=β;且α<γ<μ≤β,根据经验将α设置为0.2,β设置为0.8,γ设置为0.6,μ设置为0.8;
假设第T个周期的第m台主机中包含台虚拟机,记为虚拟机集合且将在第T周期中第m台主机中第台虚拟机抽象为表示第m台主机pmm中第台虚拟机的总CPU计算能力;表示第T个周期中第m台主机中第台虚拟机的负载,且表示第T个周期中第m台主机中第台虚拟机已使用的CPU计算能力,且表示第T个周期中第m台主机的第台虚拟机的空闲CPU计算能力,且表示第T周期中第m台主机的第台虚拟机的活跃度,其中s表示定值,1≤w≤s,本实施例中,将s设置为6,表示虚拟机的活跃度是通过最近6个周期的负载情况来计算得出的;表示表示第T周期中第m台主机的第台虚拟机的活跃标记,其中,at表示虚拟机的活跃度阈值,本实施例中,将at设置为8,即虚拟机活跃度超过8的虚拟机被标记为活跃的虚拟机,而虚拟机活跃度小于8的虚拟机则被标记为非活跃的虚拟机;
如图1所示,虚拟机迁移策略是按如下步骤进行:
步骤1、定义第T周期的过载迁移总队列为L(T);定义在第T周期中第m台主机所使用的过载迁移队列为初始化T=1;初始化m=1;
步骤2、若m>M成立,表示已经遍历完所有主机,并已经将在当前周期主机中的异类虚拟机添加到各个过载迁移队列中,则跳转到步骤7;否则,初始化过载迁移队列为空;标记出在虚拟机集合中所有虚拟机的活跃标记与第T个周期的第m台主机的活跃标记不相同的虚拟机,称为异类虚拟机;并将标记出的虚拟机从虚拟机集合中迁出,放入过载迁移队列为中;从而更新第T周期中第m台主机所使用的过载迁移队列以及第T个周期第m台主机中虚拟机集合例如在第T个周期中,第m台主机中共有4台虚拟机,记为若为异类虚拟机,则将异类主机迁出之后更新为而过载迁移队列更新为
步骤3、若第T个周期的第m台主机中更新后的虚拟机集合中所有虚拟机使用的CPU的计算能力的总和大于等于pcm×utm成立,表示该主机已经过载,则跳转到步骤4;否则跳转到步骤6;
步骤4、将更新后的虚拟机集合中所有虚拟机按照负载从小到大的顺序进行排序,获得更新后的有序虚拟机集合
步骤5、从更新后的有序虚拟机集合中依次将虚拟机迁入至更新后的过载迁移队列中,直到更新后的有序虚拟机集合中所有虚拟机的使用的CPU计算能力的总和小于等于pcm×utm为止;从而再次更新第T个周期中第m台主机所使用的过载迁移队列以及第T个周期第m台主机中虚拟机集合例如中有三台有序的虚拟机,即过载迁移队列假如三台虚拟机使用的CPU的计算能力的总和大于等于pcm×utm,先将迁出,如果剩下两台虚拟机使用的CPU的计算能力的总和小于pcm×utm,则更新
步骤6、令m+1赋值给m;跳转到步骤2;
步骤7、令第T个周期的过载迁移总队列为第T个周期的过载迁移总队列L(T)中的虚拟机数量记为将第T个周期的过载迁移总队列L(T)中的虚拟机按照其已使用的CPU计算能力从大到小的顺序进行排序,从而获得排序后的第T个周期的过载迁移总队列表示排序后的第T个周期的过载迁移总队列L′(T)中的第i(T)台虚拟机;第i(T)台虚拟机的已使用的CPU计算能力记为第i(T)台虚拟机的活跃标示记为1≤i(T)≤I(T);
步骤8、令i(T)=1;
步骤9、若i(T)>I(T)成立,则表示在第T周期中主机集合中的所有主机均未过载,将第T个周期中均未过载的主机集合记为第T个周期中第m台未过载主机记为第T个周期中第m台未过载主机中的虚拟机集合记为且并跳转至步骤12;否则,将M台主机PM中的所有主机按照其使用的CPU计算能力从大到小进行排序,从而获得在第T个周期中第i(T)次排序后的M台主机表示在第T个周期中第i(T)次排序后的M台主机中的第m台主机;且
步骤10、令m=1;
步骤11、对排序后的第T个周期的过载迁移总队列L′(T)中的第i(T)台虚拟机判断是否满足且如满足条件,则将第i(T)台虚拟机放入第i(T)次排序后的第m台主机中,并令i(T)+1赋值给i(T)后,跳转至步骤9;如不满足条件,则令m+1赋值给m后,跳转至步骤11;
步骤12、定义第T周期的轻载迁移总队列为L*(T),定义在第T周期中第m台主机所使用的轻载迁移队列为初始化m=1;
步骤13、若m>M成立,则跳转至步骤14;否则,初始化轻载迁移队列为空;若第T个周期中第m台未过载主机中的虚拟机集合中所有虚拟机使用的CPU的计算能力的总和小于等于ltm×pcm,则将中的虚拟机全部迁入到轻载迁移队列中,从而更新第T个周期第m台主机所使用的轻载迁移队列令m+1赋值给m,跳转至步骤13;
步骤14、令第T个周期的轻载迁移总队列为第T个周期的轻载迁移总队列L*(T)中的虚拟机数量记为I*(T);将第T个周期的轻载迁移总队列L*(T)中的虚拟机按照其已使用的CPU计算能力从大到小的顺序进行排序,从而获得排序后的第T个周期的轻载总队列表示排序后的第T个周期的轻载迁移总队列L′*(T)中的第i*(T)台虚拟机;第i*(T)台虚拟机的已使用的CPU计算能力记为第i*(T)台虚拟机的活跃标示记为1≤i*(T)≤I*(T);
步骤13、令i*(T)=1;
步骤14、若i*(T)>I*(T)成立,则表示在第T周期中主机集合中的所有主机均未轻载,并跳转至步骤17;否则,将M台主机PM中的所有主机按照其使用的CPU计算能力从大到小进行排序,从而获得在第T个周期中第i*(T)次排序后的M台主机表示在第T个周期中第i*(T)次排序后的M台主机中的第m台主机;且
步骤15、令m=1;
步骤16、对排序后的第T个周期的轻载迁移总队列L′*(T)中的第i*(T)台虚拟机判断是否满足且如满足条件,则将第i*(T)台虚拟机放入第i*(T)次排序后的第m台主机中,并令i*(T)+1赋值给i*(T)后,跳转至步骤14;如不满足条件,则令m+1赋值给m后,跳转至步骤16;
步骤17、令T+1赋值给T,并跳转至步骤2。
为了验证三阈值虚拟机迁移策略的有效性,使用Cloudsim对三阈值虚拟机迁移策略进行仿真模拟。实验在CloudSim搭建的云环境中建立1个数据中心,数据中心中有500台主机。每台主机的CPU计算能力为3000MIPS。数据中心中有500台虚拟机运行于主机中,每台虚拟机的CPU计算能力为1000MIPS。
模拟实验采用(Beloglazov A,Buyya R.Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers[J].Concurrency and Computation:Practice and c Experience,2012,24(13):1397-1420.)中公布的虚拟机负载的数据集。整个数据集记录了1052台生产环境中的服务器,在240小时的运行中每5分钟时间间隔测得的CPU负载的原始数据。
实验进行5次,实验结果取5次实验的平均值。每次实验使用三个测试数据集(D1,D2,D3)对三阈值虚拟机迁移策略进行验证,每个数据集中有500条虚拟机负载数据。三个数据集分别模拟(高,低,中)三种不同的虚拟机负载波动。
实验比较实用双阈值虚拟机迁移策略与三阈值虚拟机迁移策略虚拟机迁移次数与SLA的违约率。每当有一台虚拟机从主机中迁出时虚拟机迁移次数加一。SLA违约率是通过虚拟机请求的CPU计算能力减去主机能够提供的CPU计算能力的差除以虚拟机请求的CPU计算能力计算得出。实验结果如表1和表2所示:
表1虚拟机迁移次数比较
表2 SLA违约率比较
从表1和表2中可以看书虚拟机使用三阈值的虚拟机迁移策略能够有效地减少虚拟机的迁移次数以及SLA的违约率。
机译: 用于基于迁移策略将虚拟机和资源使用情况数据迁移到所选目标主机的系统
机译: 用于调整选择算法的方法和系统,该选择算法用于从具有与虚拟机的存储器共享历史的标准偏差低于阈值量的主机的集合中选择与目标虚拟机具有最高存储器共享历史值的候选主机
机译: 生成包含第三方系统代码的虚拟机的方法,以及(生成包含第三方代码的虚拟机)计算机程序的方法