一种基于带宽感知的虚拟机迁移压缩方法及系统与流程

文档序号:11690953阅读:179来源:国知局
一种基于带宽感知的虚拟机迁移压缩方法及系统与流程

本发明属于计算机虚拟化领域,更具体地,涉及一种基于带宽感知的虚拟机迁移压缩方法及系统。



背景技术:

近年来,随着云计算以及虚拟化技术的发展,虚拟机正在越来越广泛地被部署于数据中心以及集群环境中。由于虚拟机可以对计算机资源进行抽象模拟,可以在已有的计算机硬件资源基础上,模拟出虚拟硬件资源,因此它具有模拟不同平台、提高计算机资源利用率、便于管理、应用隔离等众多优点。

虚拟机迁移,是指在保证虚拟机中服务正常运行的同时,虚拟机在不同的物理主机之间进行迁移。为了保证迁移过程中虚拟机服务的可用性,迁移过程仅有非常短暂的停机时间。由于停机切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。虚拟机迁移适用于数据中心的负载均衡、节能以及系统维护等诸多场景,因此是虚拟化技术的一个非常重要的特性。

虚拟机迁移通常是在本地局域网内进行的,这种环境中虚拟机是采用共享存储的方式访问外存,因此只需要迁移虚拟机的内存数据以及虚拟cpu等设备状态即可,并且虚拟机内存占了所需迁移数据的绝大部分。预拷贝方式是被各个虚拟化平台广泛采用的最主要的迁移算法。预拷贝的迁移过程是首先拷贝完整的虚拟机内存镜像到目标主机。在此过程中,由于虚拟机仍在运行,其一部分内存页会被修改,这些被修改过的内存脏页需要在下一轮迭代中再次传输到目标主机。此后每一轮迭代过程中产生的脏页都需要在下一轮重新传输,从而保证内存状态的一致性。经过多轮迭代,最终剩余的脏页数量比较少,达到预设的阈值时,就可以进行停机拷贝,结束迭代拷贝的过程。

现有的预拷贝迁移方式虽然可以实现较短的停机时间,但是存在以下问题:由于内存数据需要多轮的迭代传输,其网络传输数据量较大,迁移时间也较长;此外,如果虚拟机中运行的负载是写内存密集型的,那么虚拟机内存被写脏的速度可能会过快,这时预拷贝的迁移方式便无法正常收敛进入停机拷贝阶段,也就无法正常地完成迁移过程。这些问题大大影响了虚拟机迁移的性能,导致在数据中心中使用虚拟机迁移技术时不能达到预期的效果。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于带宽感知的虚拟机迁移压缩方法及系统,其目的在于先检测多种压缩方法分别用于多种典型负载的压缩率和压缩速度,建立压缩索策略表,再以预定的频率感知带宽,计算当前带宽下各个压缩方法所对应的迁移速度,利用最大迁移速度所对应的压缩方法进行压缩迁移,由此解决常规压缩迁移技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于带宽感知的虚拟机迁移压缩方法,该方法以预设的频率检测网络带宽,利用带宽和压缩策略表中的每对压缩率和压缩速度计算迁移速度,选择最大迁移速度所对应的压缩方法对虚拟机当前内存数据进行压缩迁移。

进一步地,本发明方法具体包含以下步骤:

(1)监测网络带宽,获得虚拟机迁移可以利用的实时网络带宽st;

(2)利用压缩策略表中各种压缩方法所对应的压缩率ρi和压缩速度sci计算迁移速度smgti,

smgti=min(sci,st×ρi),

得到多个迁移速度,对比得出最大的迁移速度;

(3)找出得到最大迁移速度的压缩率和压缩速度,用其在压缩策略表中对应的压缩方法对虚拟机当前内存数据进行压缩迁移。

进一步地,所述压缩策略表预先采用以下方法得到:

在数据中心运行环境下选取多个典型负载依次运行于虚拟机中,并分别用多种压缩方法进行内存数据的压缩检测,每种压缩方法得到一对压缩率和压缩速度,所有压缩方法和其对应的压缩率和压缩速度组成压缩策略表。

进一步地,所述获得压缩策略表的方法具体包括以下子步骤:

(31)选取一种数据中心中的典型负载,运行于虚拟机中;

(32)选取一种压缩方法进行压缩迁移,并在每一轮压缩后将所有的内存页都设置为脏页,并更换另一种压缩方法进行压缩迁移,m种压缩方式共迭代m轮;记录每轮压缩所需压缩总时间和压缩后数据大小;

(33)更换另一种典型负载,返回步骤(31),直到n种数据中心中的典型负载压缩完成;

(34)计算第i种压缩方法对于第j种负载的压缩率ρij,

ρij=压缩前数据大小/压缩后数据大小,

计算第i种压缩方法对于第j种负载的压缩速度scij,

scij=压缩前数据大小/压缩总时间;

其中,1≤i≤m;1≤j≤n;

(35)计算第i种压缩方法对于n种负载的平均压缩率ρi,

ρi=(ρi1+ρi2+…+ρin)/n,

计算第i种压缩方法对于n种负载的平均压缩速度sci,

sci=(sci1+sci2+…+scin)/n

一共得到m种压缩方法所对应的m对平均压缩率ρi和平均压缩速度sci,压缩方法和所对应的平均压缩率及平均压缩速度共同构成压缩策略表。

进一步地,本发明方法还包括一个合并步骤:

合并步骤:进行内存数据压缩前先将多个内存页合并为一个数据包,再对数据包进行整体压缩。

按照本发明的另一方面,提供了一种基于带宽感知的虚拟机迁移压缩系统,该系统用于以预设的频率检测网络带宽,利用带宽和压缩策略表中的每对压缩率和压缩速度计算迁移速度,选择最大迁移速度所对应的压缩方法对虚拟机当前内存数据进行压缩迁移。

进一步地,本发明系统具体包含以下部分:

带宽检测模块,用于监测网络带宽,获得虚拟机迁移可以利用的实时网络带宽st;

迁移速度计算模块,用于利用压缩策略表中各种压缩方法所对应的压缩率ρi和压缩速度sci计算迁移速度smgti,

smgti=min(sci,st×ρi),

得到多个迁移速度,对比得出最大的迁移速度;

压缩迁移模块,用于找出得到最大迁移速度的压缩率和压缩速度,用其在压缩策略表中对应的压缩方法对虚拟机当前内存数据进行压缩迁移。

进一步地,所述压缩策略表预先采用以下模块得到:

压缩策略表模块,用于在数据中心运行环境下选取多个典型负载依次运行于虚拟机中,并分别用多种压缩方法进行内存数据的压缩检测,每种压缩方法得到一对压缩率和压缩速度,所有压缩方法和其对应的压缩率和压缩速度组成压缩策略表。

进一步地,所述压缩策略表模块具体包括以下部分:

负载运行单元,用于选取一种数据中心中的典型负载,运行于虚拟机中;

迭代压缩单元,用于选取一种压缩方法进行压缩迁移,并在每一轮压缩后将所有的内存页都设置为脏页,并更换另一种压缩方法进行压缩迁移,m种压缩方式共迭代m轮;记录每轮压缩所需压缩总时间和压缩后数据大小;

更换负载单元,用于更换另一种典型负载,返回负载运行单元,直到n种数据中心中的典型负载压缩完成;

计算单元,用于计算第i种压缩方法对于第j种负载的压缩率ρij,

ρij=压缩前数据大小/压缩后数据大小,

计算第i种压缩方法对于第j种负载的压缩速度scij,

scij=压缩前数据大小/压缩总时间;

其中,1≤i≤m;1≤j≤n;

策略表构建单元,用于计算第i种压缩方法对于n种负载的平均压缩率ρi,

ρi=(ρi1+ρi2+…+ρin)/n,

计算第i种压缩方法对于n种负载的平均压缩速度sci,

sci=(sci1+sci2+…+scin)/n

一共得到m种压缩方法所对应的m对平均压缩率ρi和平均压缩速度sci,压缩方法和所对应的平均压缩率及平均压缩速度共同构成压缩策略表。

进一步地,本发明系统还包括合并模块:

合并模块,用于在内存数据压缩前先将多个内存页合并为一个数据包,再对数据包进行整体压缩。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:

(1)本发明根据迁移实时带宽动态调整压缩方法,同使用单一固定的压缩方法相比,可以获得更短的迁移时间,当网络带宽较高时,本发明会选择快速而压缩率较低的压缩方法;反之,当带宽较低时,会选择慢速而压缩率较高的压缩方法,这样的动态调整过程可以使迁移系统获得更大的吞吐率,从而获得更短的迁移时间;

(2)由于不同负载运行于虚拟机中时,虚拟机内存中的数据内容差异很大,因此同一种压缩方法在压缩不同负载的内存时,所得到的压缩率和压缩速度有一定差异,本发明通过若干典型负载而获得平均压缩率和压缩速度,从而组成压缩策略表的方法,避免了对不同负载采用不同的压缩策略表,这使得本发明的具体实施更为可行和简便;

(3)本发明将多个虚拟机内存页打包进行压缩的方法,挖掘了压缩算法的压缩窗口远大于单个内存页的特点,压缩算法是在压缩窗口的范围内寻找冗余数据从而进行压缩,因此本发明提出的更大的压缩粒度可以进一步提升内存数据的压缩率,从而减少数据传输量,节省网络资源。

附图说明

图1是本发明方法的流程示意图;

图2是本发明方法实施例的系统结构图;

图3是lz4压缩算法的压缩率和压缩速度的变化曲线示意图;

图4a是采用本发明方法和现有预拷贝迁移的迁移时间对比示意图;

图4b是采用本发明方法和现有预拷贝迁移的迁移数据量对比示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明方法以预设的频率检测网络带宽,利用带宽和压缩策略表中的每对压缩率和压缩速度计算迁移速度,选择最大迁移速度所对应的压缩方法对虚拟机当前内存数据进行压缩迁移;在迁出端,压缩前先将多个内存页合并为一个数据包,再对数据包进行整体压缩;在迁入端,将接收到的网络数据包解压,从而获得虚拟机的内存页。

具体分为以下子步骤:

(1)监测网络带宽,获得虚拟机迁移可以利用的实时网络带宽st;

(2)利用压缩策略表中各种压缩方法所对应的压缩率ρi和压缩速度sci计算迁移速度smgti,

smgti=min(sci,st×ρi),

得到多个迁移速度,对比得出最大的迁移速度;

(3)找出得到最大迁移速度的压缩率和压缩速度,用其在压缩策略表中对应的压缩方法对虚拟机当前内存数据进行压缩迁移;

在迁出端,设置一个缓冲区,将要传输的虚拟机内存页首先拷贝到该缓冲区中,当缓冲区满后,将整个缓冲区进行一次压缩,将压缩后的数据包传输到迁入端;

在迁入端,设置一个和迁出端中同样大小的缓冲区,将接收到的数据包解压后得到的内存页放入该缓冲区,然后再把每一个内存页放置到对应的虚拟机地址空间中;

这样选择出来的压缩方法是当前阶段使得迁移速度最大的一个;根据网络带宽动态调整压缩方法使得在整个迁移过程的各个阶段都使用现阶段吞吐率最大的压缩方法,从而显著缩短了迁移时间。

以上内容中所述压缩策略表预先采用以下方法得到:在数据中心运行环境下选取多个典型负载依次运行于虚拟机中,并分别用多种压缩方法进行内存数据的压缩检测,每种压缩方法得到一对压缩率和压缩速度,所有压缩方法和其对应的压缩率和压缩速度组成压缩策略表

具体分为以下步骤:

(31)选取一种数据中心中的典型负载,运行于虚拟机中;

(32)选取一种压缩方法进行压缩迁移,在压缩前,设置一个缓冲区,将要传输的虚拟机内存页首先拷贝到该缓冲区中,当缓冲区满后,将整个缓冲区进行一次压缩,并在每一轮压缩后将所有的内存页都设置为脏页,并更换另一种压缩方法进行压缩迁移,m种压缩方式共迭代m轮;记录每轮压缩所需压缩总时间和压缩后数据大小;

这样对预拷贝迁移的修改可以使虚拟机地址空间中所有的内存页进行多轮传输,而在每一轮传输时选用一种压缩方法来测得压缩率和压缩速度,从而只需进行一次迁移操作就可以测得所有压缩方法对某一负载的压缩率和压缩速度,这简化了获得压缩策略表的过程;

具体到实施例中,采用lz4算法,选取了16个不同的lz4加速值,分别是1,3,5,7……31,这样构成了16种压缩方法,因为相邻两个lz4加速值(比如1和2)产生的压缩率和压缩速度差异较小,因此本实施例选择采用以2为步数来选择加速值;

(33)更换另一种典型负载,返回步骤(31),直到n种数据中心中的典型负载压缩完成;

(34)计算第i种压缩方法对于第j种负载的压缩率ρij,

ρij=压缩前数据大小/压缩后数据大小,

计算第i种压缩方法对于第j种负载的压缩速度scij,

scij=压缩前数据大小/压缩总时间;

其中,1≤i≤m;1≤j≤n;

(35)计算第i种压缩方法对于n种负载的平均压缩率ρi,

ρi=(ρi1+ρi2+…+ρin)/n,

计算第i种压缩方法对于n种负载的平均压缩速度sci,

sci=(sci1+sci2+…+scin)/n

一共得到m种压缩方法所对应的m对平均压缩率ρi和平均压缩速度sci,压缩方法和所对应的平均压缩率及平均压缩速度共同构成压缩策略表。

如图2所示,在本实施例中,本发明实施例是在kvm/qemu开源虚拟化平台上进行实现的,在迁出端,带宽监测模块以1秒1次的频率获得当前迁移网络带宽,提交给带宽感知压缩模块;压缩模块得到网络带宽后,利用压缩策略表来动态调整压缩方法;同时,在迁出端,设置一个缓冲区,将要传输的虚拟机内存页首先拷贝到该缓冲区中,当缓冲区满后,对缓冲区中的数据进行打包压缩;将压缩后的数据包传输到迁入端;迁入端将打包压缩的数据接收入缓冲区后,解压模块对其进行解压,将得到的内存页提交到对应的虚拟机地址空间中。

本发明提出的根据迁移实时带宽动态调整压缩方法可以大大提升迁移系统的吞吐率,从而显著缩短迁移时间。不同的压缩算法压缩率和压缩速度各不相同,一般而言,压缩率高的压缩算法压缩速度较低,反之亦然;此外许多压缩算法提供参数供用户选择,从而在压缩率和压缩速度之间做调整。以本发明具体实施时采用的lz4压缩算法为例,该算法提供一个加速值参数,图3是采用不同加速值时,lz4对虚拟机内存的压缩效果的变化。随着加速值的变大,压缩速度不断提升,并以压缩率的不断降低为代价。

由此可见,在某一带宽下,在迁移中使用压缩率和压缩速度不同的压缩方法,在本实施例中,即是使用加速值不同的lz4算法,其系统迁移的速度是不同的。本发明提出的方法能够找出某一带宽下可以给迁移系统带来最大迁移速度的压缩方法,并随着带宽的变化,动态选择最优的压缩方法,从而获得最短的迁移时间。

本发明通过若干典型负载而获得平均压缩率和压缩速度,从而组成压缩策略表的方法,避免了对不同负载采用不同的压缩策略表,使得本发明的具体实施更为简便可行。当虚拟机中运行不同负载时,其内存中的数据内容是不同的,因此用某一加速值的lz4压缩不同负载的内存时,所得到的压缩率和压缩速度有一定差异,从而所带来的系统的迁移速度也不相同。然而,我们的实验表明,不同的负载会在相同或邻近的加速值处取得最大的系统迁移速度。因此,本发明提出选取若干典型负载,测出它们在不同压缩方法下的压缩率和压缩速度后,对这些数据取平均值,得到平均压缩速度和压缩率,组成压缩策略表,计算得出某一带宽下的最优压缩方法。实验表明,如此得出的压缩策略表在一定误差范围内适用于所有负载。这使得本发明在实施时只需存储一组压缩策略表即可,简化了系统实现,提升了本发明的可行性。

如图4a所示,采用本发明方法和现有预拷贝迁移的迁移时间对比,本发明方法完成迁移用时更少;

和图4b所示,采用本发明方法和现有预拷贝迁移的迁移数据量对比,本发明方法完成迁移传输数据量更小。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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