一种数据中心多虚拟机的数据迁移方法转让专利

申请号 : CN201510036992.8

文献号 : CN104683444B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 廖丹赵东成孙罡杨广华

申请人 : 电子科技大学

摘要 :

本发明提供了一种数据中心多虚拟机的数据迁移方法,属于云计算领域。本发明基于Franco Callegati和Walter Cerroni提出的基于预复制的并行多虚拟机迁移策略,以及在本发明中提出的基于后复制的串行多虚拟机迁移策略为基础,引入参量m及修正因子α,提出一种满足服务提供商与用户协商的最大停机时间的约束条件下,总迁移时间最小的数据迁移方法,该方法适用范围广,可进一步降低服务提供商的迁移时间成本。

权利要求 :

1.一种数据中心多虚拟机的数据迁移方法,具体包括以下步骤:步骤1.数据初始化:令需要迁移数据的虚拟机个数为M,确定可接受的最大停机时间 所述停机时间指所述M个虚拟机从第一个虚拟机关机时起,至所有虚拟机完成数据迁移并全部重新开机运行时止的这一段时长,确定停止迭代的脏数据量阈值Vth和迭代次数阈值nmax,选定修正因子α,其中,0<α<1,所有虚拟机的初始状态为开机正常运转状态;

步骤2.从M个虚拟机中选取原始脏数据数量最大的m个虚拟机,对这m个虚拟机采用基于预复制的并行迁移策略进行数据迁移;

步骤2-1.m取值的确定;

整个数据中心的停机时间 由以下公式确定:

其中,R是整个迁移请求提供的总带宽,ViT是第i个虚拟机的原始脏数据量,所有的虚拟机按照原始脏数据量排序编号,得到 修正因子α用于在后复制策略中用来修正实际需要迁移的脏数据量,Tres是单个虚拟机固有的启动时间;对m从1开始依次递增取值,直至其对应的停机时间 小于最大停机时间 时止,此时的m值即为选定的参量值;

步骤2-2.所选择的m个虚拟机在不关机状态下,将各自的原始脏数据通过共享宽带同时迁移至目的地,执行步骤2-3;

步骤2-3.所述m个虚拟机的原始脏数据迁移完毕后,各个虚拟机检查其原始脏数据传输期间的新增脏数据量;

若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,则同时执行步骤

2-6与步骤3;

否则,执行步骤2-4进行迭代数据迁移;

步骤2-4.将m个虚拟机的新增脏数据通过共享宽带同时迁移至目的地;

步骤2-5.所述m个虚拟机的新增脏数据迁移完毕后,各个虚拟机检查其在本次脏数据传输期间的新增的脏数据量;

若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,或者已经迭代次数等于迭代次数阈值nmax,则同时执行步骤2-6与步骤3;

否则,执行步骤2-4进行迭代数据迁移;

步骤2-6.将所有的虚拟机关机,并把m个虚拟机剩余的脏数据通过共享宽带同时迁移至 目的地;

步骤3.对剩余的M-m个虚拟机采用基于后复制的串行迁移策略进行数据迁移;

步骤4.待M个虚拟机的数据迁移完成后,重新启动所有虚拟机完成整个数据迁移过程。

2.根据权利要求1所述的数据中心多虚拟机的数据迁移方法,其特征在于,所述基于后复制的串行迁移策略主要包括以下步骤:步骤3-1.将停机后的M-m个虚拟机,按照串行方式将该M-m个虚拟机的脏数据依次传输至目的地:针对这M-m个虚拟机,上一虚拟机的脏数据完成迁移后,才进行下一虚拟机脏数据的迁移,直至M-m个虚拟机的脏数据全部完成迁移,执行步骤4;

步骤4.待M个虚拟机的数据迁移完成后,重新启动所有虚拟机完成整个数据迁移过程。

说明书 :

一种数据中心多虚拟机的数据迁移方法

技术领域

[0001] 本发明属于云计算领域,具体涉及一种数据中心多虚拟机的数据迁移方法。

背景技术

[0002] 近年来,云计算的发展越来越受到人们的关注,其相关应用也逐渐出现在了人们的生活之中。云服务提供商通过虚拟化技术向用户提供相应服务。随着用户对数据中心的资源数量和资源种类需求的增加,简单扩充数据中心规模已经不是一种可行的解决方案了。因为,当数据中心的规模增大,数据中心的建设成本也会大量增加,而且管理难度和维护难度也会大量增加。因此,为了解决这个问题,研究者提出了多数据中心的解决方案。近年来,越来越多的研究者将研究方向从单个数据中心转移到了多数据中心。
[0003] 随着数据中心规模的增加和应用程序的复杂化,节能和提高资源的利用率已经变成了研究的热点。与此同时,云服务提供商必须遵守和用户签订的服务水平协议(SLA)。为了达到这些目标,研究者提出了虚拟机迁移技术。
[0004] 针对需要在多个数据中心之间迁移多个虚拟机情况,Franco Callegati和Walter Cerroni提出了一种基于预复制策略的串行多虚拟机迁移策略。其主要思想是在不停机的情况下通过多次不断迭代的迁移每一个虚拟机的记忆(通常又称为脏数据),从而不断的减少虚拟机的脏数据的数量,当虚拟机的脏数据小于某个给定的门限值或迭代次数大于给定的最大迭代次数时,就停止迁移虚拟机的脏数据,然后将虚拟机停止,并迁移剩下的脏数据,最后启动目的虚拟机。在迁移过程中,每个虚拟机单独占有给定的全部带宽,而虚拟机之间采用串行的迁移方式,即第一个虚拟机的迁移完了之后再迁移下一个虚拟机,以此达到迁移的目的。虽然上述方法能够实现多个虚拟机的迁移,但是它的停机时间太长。且该方法对每一个虚拟机都采用预复制策略,即在迭代传输脏数据期间保持虚拟机运行;但是在虚拟数据中心(VDC)请求中,虚拟机之间有很强的关联性,当第一个虚拟机迁移之后到最后一个虚拟机重启之前这一段时间内服务是不可用的。又由于采用预复制策略,需要多次迭代,在每次的迭代过程中不断迁移虚拟机的脏数据,但是又会不断的产生脏数据。所以,采用预复制策略比后复制策略需要多迁移一些脏数据,这样就会增加迁移时间和停机时间。所以,这种基于预复制策略的串行多虚拟机迁移策略并不是最优的串行多虚拟机迁移策略。
[0005] 针对需要在多个数据中心之间迁移多个虚拟机情况,Franco Callegati和Walter Cerroni提出了另一种基于预复制策略的并行多虚拟机迁移策略。其主要思想是在不停机的情况下通过多次不断迭代的迁移所有虚拟机的脏数据,从而不断的减少虚拟机的脏数据的数量。同样当虚拟机的脏数据小于某个给定的门限值或迭代次数大于给定的最大迭代次数是停止迁移虚拟机的脏数据,然后将虚拟机停止,并迁移剩下的脏数据,最后启动目的虚拟机。在迁移过程中,所有虚拟机同时进行迁移,并且所有虚拟机共同的平均分享给定的带宽。虽然上述方法也能够实现多个虚拟机的迁移,并且在给定带宽充足的情况下,克服了串行多虚拟机迁移策略的停机时间长的缺点。但是在给定的带宽与使用串行多虚拟机迁移策略的带宽相同的情况下,由于多个虚拟机共同的分享带宽,导致并行多虚拟机迁移策略的迁移时间远大于串行多虚拟机迁移策略的迁移时间。

发明内容

[0006] 本发明针对上述现有技术的不足,基于Franco Callegati和Walter Cerroni提出的串行多虚拟机迁移策略,以改进型串行多虚拟机迁移策略和并行多虚拟机迁移策略为基础,提供一种满足服务提供商与用户协商的最大停机时间的约束条件下、总迁移时间最小的多虚拟机数据迁移方法。
[0007] 本发明具体采用如下技术方案:
[0008] 一种数据中心多虚拟机的数据迁移方法,其流程如图1所示,具体包括以下步骤:
[0009] 步骤1.数据初始化:令需要迁移数据的虚拟机个数为M,确定可接受的最大停机时间 所述停机时间指所述M个虚拟机从第一个虚拟机关机时起,至所有虚拟机完成数据迁移并全部重新开机运行时止的这一段时长,确定停止迭代的脏数据量阈值Vth和迭代次数阈值nmax,选定修正因子α,其中,0<α<1,所有虚拟机的初始状态为开机正常运转状态,执行步骤2;
[0010] 步骤2.从M个虚拟机中选取原始脏数据数量最大的m个虚拟机,对这m个虚拟机采用并行迁移策略进行数据迁移:
[0011] 步骤2-1.m的取值的确定;
[0012] 整个数据中心的停机时间 由以下公式确定:
[0013]
[0014] 其中,R是整个迁移请求提供的总带宽, 是第i个虚拟机的原始脏数据量,所有的虚拟机按照原始脏数据量排序编号,即 修正因子α用于在后复制策略中用来修正实际需要迁移的脏数据量,Tres是单个虚拟机固有的启动时间;对m从1开始依次递增取值,直至其对应的停机时间 小于最大停机时间 时止,此时的m值即为选定的参量值;
[0015] 步骤2-2.所选择的m个虚拟机在不关机状态下,将各自的原始脏数据通过共享宽带同时迁移至目的地,执行步骤2-3;
[0016] 步骤2-3.所述m个虚拟机的原始脏数据迁移完毕后,各个虚拟机检查其原始脏数据传输期间的新增脏数据量;
[0017] 若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,则同时执行步骤2-4与步骤3;
[0018] 否则,执行步骤2-4进行迭代数据迁移;
[0019] 步骤2-4.将m个虚拟机的新增脏数据通过共享宽带同时迁移至目的地;
[0020] 步骤2-5.所述m个虚拟机的新增脏数据迁移完毕后,各个虚拟机检查其在本次传输期间的再一次新增的脏数据量;
[0021] 若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,或者已经迭代次数等于迭代次数阈值nmax,则同时执行步骤2-6与步骤3;
[0022] 否则,执行步骤2-4进行迭代数据迁移;
[0023] 步骤2-6.将所有的虚拟机关机,并把m个虚拟机剩余的脏数据通过共享宽带同时迁移至目的地;
[0024] 步骤3.对剩余的M-m个虚拟机采用如下所述的基于后复制的串行迁移策略进行数据迁移:
[0025] 步骤3-1.将停机后的M-m个虚拟机,按照串行方式将该M-m个虚拟机的脏数据依次传输至目的地:针对这M-m个虚拟机,上一虚拟机的脏数据完成迁移后,才进行下一虚拟机脏数据的迁移,直至M-m个虚拟机的脏数据全部完成迁移,执行步骤4;
[0026] 步骤4.待M个虚拟机的数据迁移完成后,重新启动所有虚拟机完成整个数据迁移过程。
[0027] 本发明的有益效果是:
[0028] (1)本发明提供的多虚拟机的数据迁移方法基于服务提供商和用户所商定可接受的最大停机时间,通过引入参量m及修正因子α,在确保满足所述最大停机时间的前提下,尽可能的减小迁移时间,由此降低服务提供商的时间成本;
[0029] (2)传统的迁移策略大多是针对单虚拟机迁移请求,而本发明提供的迁移方法能适用于不同虚拟机数量的迁移请求,因此与传统的迁移策略相比,本方法的适用范围更广。

附图说明

[0030] 图1为本发明提供的数据中心多虚拟机的数据迁移方法流程图。

具体实施方式

[0031] 本具体实施方式采用如下技术方案:
[0032] 一种数据中心多虚拟机的数据迁移方法,其流程如图1所示,具体包括以下步骤:
[0033] 步骤1.数据初始化:令需要迁移数据的虚拟机个数为M,确定可接受的最大停机时间 所述停机时间指所述M个虚拟机从第一个虚拟机关机时起,至所有虚拟机完成数据迁移并全部重新开机运行时止的这一段时长,确定停止迭代的脏数据量阈值Vth和迭代次数阈值nmax,选定修正因子α,其中,0<α<1,所有虚拟机的初始状态为开机正常运转状态,执行步骤2;
[0034] 步骤2.从M个虚拟机中选取原始脏数据数量最大的m个虚拟机,对这m个虚拟机采用并行迁移策略进行数据迁移:
[0035] 步骤2-1.m的取值的确定;
[0036] 整个数据中心的停机时间 由以下公式确定:
[0037]
[0038] 其中,R是整个迁移请求提供的总带宽, 是第i个虚拟机的原始脏数据量,所有的虚拟机按照原始脏数据量排序编号,即 修正因子α用于在后复制策略中用来修正实际需要迁移的脏数据量,Tres是单个虚拟机固有的启动时间;对m从1开始依次递增取值,直至其对应的停机时间 小于最大停机时间 时止,此时的m值即为选定的参量值;
[0039] 步骤2-2.所选择的m个虚拟机在不关机状态下,将各自的原始脏数据通过共享宽带同时迁移至目的地,执行步骤2-3;
[0040] 步骤2-3.所述m个虚拟机的原始脏数据迁移完毕后,各个虚拟机检查其原始脏数据传输期间的新增脏数据量;
[0041] 若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,则同时执行步骤2-4与步骤3;
[0042] 否则,执行步骤2-4进行迭代数据迁移;
[0043] 步骤2-4.将m个虚拟机的新增脏数据通过共享宽带同时迁移至目的地;
[0044] 步骤2-5.所述m个虚拟机的新增脏数据迁移完毕后,各个虚拟机检查其在本次传输期间的再一次新增的脏数据量;
[0045] 若至少有一个虚拟机的新增脏数据量不高于所设定的脏数据量阈值,或者已经迭代次数等于迭代次数阈值nmax,则同时执行步骤2-6与步骤3;
[0046] 否则,执行步骤2-4进行迭代数据迁移;
[0047] 步骤2-6.将所有的虚拟机关机,并把m个虚拟机并把各虚拟机内剩余的脏数据通过共享宽带同时迁移至目的地;
[0048] 步骤3.对剩余的M-m个虚拟机采用如下所述的基于后复制的串行迁移策略进行数据迁移:
[0049] 步骤3-1.将停机后的M-m个虚拟机,按照串行方式将该M-m个虚拟机的脏数据依次传输至目的地:针对这M-m个虚拟机,上一虚拟机的脏数据完成迁移后,才进行下一虚拟机脏数据的迁移,直至M-m个虚拟机的脏数据全部完成迁移,执行步骤4;
[0050] 步骤4.待M个虚拟机的数据迁移完成后,重新启动所有虚拟机完成整个数据迁移过程。