1.一种虚拟机在线迁移方法,其特征在于,包括:
获取源虚拟机的磁盘工作集中预设个数的磁盘块数据,并将所述预设个数的磁盘块数据写入缓存,其中,所述磁盘工作集为预设时间段内待访问磁盘块的集合;
将所述预设个数的磁盘块数据向目的宿主计算机传输,并将所述源虚拟机的内存页面数据向所述目的宿主计算机传输;其中,所述目的宿主计算机中运行有目的虚拟机;
在所述内存页面数据传输过程中,当所述内存页面脏数据收敛到预设阈值时,确定所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式;
根据所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式,将所述磁盘工作集中磁盘脏块数据、和/或、所述源虚拟机的内存页面脏数据传输到所述目的宿主计算机;
将非磁盘工作集的磁盘块数据传输到所述目的宿主计算机,其中,所述非磁盘工作集为所述源虚拟机中除所述磁盘工作集以外的磁盘块集合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式之前,还包括:
将所述磁盘工作集中的磁盘脏块数据写入所述缓存,并将所述磁盘工作集中的磁盘脏块数据向所述目的宿主计算机传输。
3.根据权利要求2所述的方法,其特征在于,所述确定所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式之前,还包括:
获取所述磁盘工作集的磁盘脏块数据产生率P1、当前所述磁盘工作集中剩余的磁盘脏块个数M、以及所述磁盘工作集的磁盘块数据向目的宿主计算机传输的传输速率P2;
根据所述当前所述磁盘工作集中剩余的磁盘脏块个数M、以及所述磁盘工作集的磁盘块数据向目的宿主计算机传输的传输速率P2,计算停机拷贝时间段长度、以及所述停机拷贝时间段内最大剩余磁盘脏块个数N;
其中,M和N为大于0的正整数,P1和P2大于0。
4.根据权利要求3所述的方法,其特征在于,所述确定所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式,包括:
M小于或等于N时,执行步骤A:停止所述源虚拟机,且将所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据向所述目的宿主计算机传输;或者,
P1小于P2、且M大于N时,继续将所述磁盘工作集中的磁盘脏块数据写入所述缓存直至在预设超时时间段内M小于或等于N时,执行步骤A;否则,执行步骤B;
P1大于或等于P2、且M大于N时,执行步骤B:停止所述源虚拟机,将所述磁盘工作集中的磁盘脏块变更为非磁盘工作集的磁盘块,并将所述源虚拟机的内存页面脏数据向所述目的宿主计算机传输。
5.根据权利要求1所述的方法,其特征在于,在将所述预设个数的磁盘块数据写入缓存过程中,所述方法还包括:
截获所述磁盘工作集中已写入所述缓存的磁盘数据块的写操作;
根据所述写操作将待写数据写入所述缓存中。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述获取源虚拟机的磁盘工作集中预设个数的磁盘块数据之前,还包括:
截获预设时间段内的所有IO读写操作;
根据所述IO读写操作以及工作集选择算法,确定磁盘工作集/非工作集信息;其中,所述磁盘工作集/非工作集信息包括:磁盘工作集的指示信息以及非磁盘工作集的指示信息。
7.一种虚拟机在线迁移装置,其特征在于,包括:
处理模块,用于获取源虚拟机的磁盘工作集中预设个数的磁盘块数据,并将所述预设个数的磁盘块数据写入缓存,其中,所述磁盘工作集为预设时间段内待访问磁盘块的集合;
第一传输模块,用于将所述预设个数的磁盘块数据向目的宿主计算机传输,并将所述源虚拟机的内存页面数据向所述目的宿主计算机传输;其中,所述目的宿主计算机中运行有目的虚拟机;
确定模块,用于在所述内存页面数据传输过程中,当所述内存页面脏数据收敛到预设阈值时,确定所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式;
第二传输模块,用于根据所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据拷贝方式,将所述磁盘工作集中磁盘脏块数据、和/或、所述源虚拟机的内存页面脏数据传输到所述目的宿主计算机;
第三传输模块,用于将非磁盘工作集的磁盘块数据传输到所述目的宿主计算机,其中,所述非磁盘工作集为所述源虚拟机中除所述磁盘工作集以外的磁盘块集合。
8.根据权利要求7所述的装置,其特征在于,还包括:
第四传输模块,用于将所述磁盘工作集中的磁盘脏块数据写入所述缓存,并将所述磁盘工作集中的磁盘脏块数据向所述目的宿主计算机传输。
9.根据权利要求8所述的装置,其特征在于,还包括:
获取模块,用于获取所述磁盘工作集的磁盘脏块数据产生率P1、当前所述磁盘工作集中剩余的磁盘脏块个数M、以及所述磁盘工作集的磁盘块数据向目的宿主计算机传输的传输速率P2;
计算模块,用于根据所述当前所述磁盘工作集中剩余的磁盘脏块个数M、以及所述磁盘工作集的磁盘块数据向目的宿主计算机传输的传输速率P2,计算停机拷贝时间段长度、以及所述停机拷贝时间段内最大剩余磁盘脏块个数N;
其中,M和N为大于0的正整数,P1和P2大于0。
10.根据权利要求9所述的装置,其特征在于,所述确定模块具体用于:
M小于或等于N时,执行步骤A:停止所述源虚拟机,且将所述磁盘工作集中磁盘脏块数据和所述源虚拟机的内存页面脏数据向所述目的宿主计算机传输;或者,
P1小于P2、且M大于N时,继续将所述磁盘工作集中的磁盘脏块数据写入所述缓存直至在预设超时时间段内M小于或等于N时,执行步骤A;否则,执行步骤B;
P1大于或等于P2、且M大于N时,执行步骤B:停止所述源虚拟机,将所述磁盘工作集中的磁盘脏块变更为非磁盘工作集的磁盘块,并将所述源虚拟机的内存页面脏数据向所述目的宿主计算机传输。
11.根据权利要求7所述的装置,其特征在于,所述处理模块还用于:
截获所述磁盘工作集中已写入所述缓存的磁盘数据块的写操作;
根据所述写操作将待写数据写入所述缓存中。
12.根据权利要求7-11中任一项所述的装置,其特征在于,还包括:
截获模块,用于截获预设时间段内的所有IO读写操作;
确定模块,用于根据所述IO读写操作以及工作集选择算法,确定磁盘工作集/非工作集信息;其中,所述磁盘工作集/非工作集信息包括:磁盘工作集的指示信息以及非磁盘工作集的指示信息。
13.一种虚拟机在线迁移系统,其特征在于,包括:运行源虚拟机的源宿主计算机以及运行目的虚拟机的目的宿主计算机,其中,所述源宿主计算机中包含如权利要求7-12中任一项所述的虚拟机在线迁移装置。