一种虚拟机热迁移系统及其热迁移方法
文献发布时间:2023-06-19 09:57:26
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机热迁移系统及其热迁移方法。
背景技术
虚拟化技术随着云计算的开展得到广泛应用,其中热迁移技术可以方便的将虚拟机在业务不中断的情况下,从一台物理机迁移到另一台物理机,在系统软硬件升级、负载均衡以及节能等场景得到广泛应用。
在热迁移时,首先在目的物理主机上启动同规格的虚拟机并置暂停状态,然后将源物理主机上虚拟机的内存通过网络复制到目的物理机的虚拟机中,由于虚拟机同时在运行,内存复制过程中会产生新的内存脏页,内存复制完后,继续将新产生的脏页内容复制到目的物理机的虚拟机中,虚拟机内存持续迭代复制,直到内存脏页量很小时,中止虚拟机运行,将脏页全部同步到目的虚拟机,并激活目的虚拟机运行。
从上述过程可知,在内存负载压力大的情况下,虚拟机热迁移不一定成功。热迁移过程中,每一轮内存迭代拷贝,如果虚拟机的内存压力较大,产生的脏页数目不能收敛,当内存拷贝迭代次数超过阈值时,就会热迁移失败。对巨型虚拟机(比如数据库业务虚拟机等)而言,由于虚拟机占用的内存较大,目的物理主机需要预留同样的资源,热迁移过程中多轮迭代后才发现不能热迁移,同时热迁移过程由于将页表设为只读,对内存写操作会引入性能损耗,所以巨型虚拟机热迁移失败,会引入较高的空间和时间开销。
发明内容
本发明提供了一种虚拟机热迁移系统及其热迁移方法,避免热迁移失败引入的时间和空间开销。
第一方面,本发明提供了一种虚拟机热迁移系统,该虚拟机热迁移系统包括源物理机和目的物理机。在源物理机上安装有虚拟机监视器(Hypervisor),在虚拟机监视器上安装有待迁移虚拟机。该虚拟机热迁移系统还包括迁移管理装置,迁移管理装置用于将待迁移虚拟机从源物理机热迁移到目的物理机。在虚拟机监视器上还安装有与迁移管理装置通信连接的预迁移决策装置。预迁移决策装置根据在设定时间段内待迁移虚拟机产生的脏页量、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。预迁移决策装置还用于将预估结果发送给迁移管理装置。
在上述的方案中,通过设置预迁移决策装置,预迁移决策装置根据在设定时间段内待迁移虚拟机产生的脏页量、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,从而得出预估结果,并将该预估结果发送给迁移管理装置,由迁移管理装置根据预迁移决策装置的预估结果进行相应的调整。现有技术中不经预先估计能够完成热迁移,而是直接进行内存迭代拷贝的热迁移,直到迭代次数超出阈值,才确定热迁移失败,若热迁移失败,对待迁移虚拟机为巨型虚拟机的场景会引入较大的资源开销。本申请的方案相比现有技术,对待迁移虚拟机先预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,即通过预先统计虚拟机内存负载情况,判断是否可以热迁移,若内存脏页变化较大,可以提前判断待迁移虚拟机不可热迁移,从而避免热迁移失败引入的时间和空间开销。
在一个具体的实施方式中,预迁移决策装置根据设定时间段内待迁移虚拟机产生的脏页量,计算单位时间内的脏页变化率;并根据单位时间内的脏页变化率、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。以简化预估算法,同时提高预估准确性。
在一个具体的实施方式中,预迁移决策装置根据单位时间内的脏页变化率、以及源物理机和目的物理机之间的网络带宽,计算能否在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理机;并根据计算结果,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。以准确判断能否完成热迁移。
在一个具体的实施方式中,如果计算结果为能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理结,则预迁移决策装置的预估结果为能够在内存迭代拷贝的次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。如果计算结果为不能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理机,则预迁移决策装置的预估结果为不能够在内存迭代拷贝的次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。
在一个具体的实施方式中,如果迁移管理装置接收到预迁移决策装置发送的预估结果为能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,则迁移管理装置采用包含有内存迭代拷贝的方式将待迁移虚拟机从源物理机热迁移到目的物理机。如果迁移管理装置接收到预迁移决策装置发送的预估结果为不能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,则迁移管理装置停止将待迁移虚拟机从源物理机热迁移到目的物理机。以根据预估结果确定是否进行热迁移,从而避免热迁移失败引入的时间和空间开销。
在一个具体的实施方式中,预迁移决策装置在设定时间段内,将待迁移虚拟机的EPT(Extended Page Tables)或NPT(Nested Page Tables)页表设置为只读,使虚拟机监视器能够截获待迁移虚拟机的内存写操作,以统计设定时间段内待迁移虚拟机产生的脏页量。以便于统计在设定时间段内的内存写操作的数据量。
在一个具体的实施方式中,设定时间段为60s~120s,提高判断脏页增加率的准确性,同时减小对待迁移虚拟机的正常运行造成影响的时间。
在一个具体的实施方式中,允许业务中断时间为不大于2s,以防止对待迁移虚拟机的正常运行造成较大的影响。
在一个具体的实施方式中,迁移管理装置为云计算平台,以便于进行远程控制。
第二方面,本发明还提供了一种基于上述虚拟机热迁移系统的热迁移方法,该热迁移方法包括:
迁移管理装置指定待迁移虚拟机,并将指定的待迁移虚拟机信息发送给预迁移决策装置;
预迁移决策装置根据在设定时间段内待迁移虚拟机产生的脏页量、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机;
预迁移决策装置将预估结果发送给迁移管理装置。
在上述的方案中,通过使预迁移决策装置根据在设定时间段内待迁移虚拟机产生的脏页量、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,从而得出预估结果,并将该预估结果发送给迁移管理装置,由迁移管理装置根据预迁移决策装置的预估结果进行相应的调整。本申请的方案相比现有技术,对待迁移虚拟机先预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机,即通过预先统计虚拟机内存负载情况,判断是否可以热迁移,若内存脏页变化较大,可以提前判断待迁移虚拟机不可热迁移,从而避免热迁移失败引入的时间和空间开销。
在一个具体的实施方式中,预迁移决策装置根据在设定时间段内待迁移虚拟机产生的脏页量、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机包括:预迁移决策装置根据设定时间段内待迁移虚拟机产生的脏页量,计算单位时间内的脏页变化率;根据单位时间内的脏页变化率、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。以简化预估算法,同时提高预估准确性。
在一个具体的实施方式中,根据单位时间内的脏页变化率、以及源物理机和目的物理机之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机包括:预迁移决策装置根据单位时间内的脏页变化率、以及源物理机和目的物理机之间的网络带宽,计算能否在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理机;根据计算结果,预估能否在内存迭代拷贝的迭代次数不超过设定阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。以准确判断能否完成热迁移。
在一个具体的实施方式中,根据计算结果,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机包括:如果计算结果为能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理机,则预迁移决策装置的预估结果为能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。如果计算结果为不能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机拷贝到目的物理机,则预迁移决策装置的预估结果为不能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机从源物理机热迁移到目的物理机。以根据预估结果确定是否进行热迁移,从而避免热迁移失败引入的时间和空间开销。
附图说明
图1为本发明实施例提供的一种虚拟机热迁移系统的示意框图;
图2为本发明实施例提供的热迁移方法的一种流程图;
图3为本发明实施例提供的热迁移方法的另一种流程图;
图4为本发明实施例提供的热迁移方法的另一种流程图。
附图标记:
10-源物理机 20-目的物理机
30-虚拟机监视器 40-待迁移虚拟机
50-预迁移决策装置 60-迁移管理装置
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例提供的虚拟机热迁移系统,下面首先说明一下本发明实施例提供的虚拟机热迁移系统的应用场景,该虚拟机热迁移系统用于将待迁移虚拟机从源物理机热迁移到目的物理机的过程中。下面结合附图对该虚拟机热迁移系统进行详细的叙述。
参考图1,本发明实施例提供的虚拟机热迁移系统包括源物理机10和目的物理机20。在源物理机10上安装有虚拟机监视器30,在虚拟机监视器30上安装有待迁移虚拟机40。该虚拟机热迁移系统还包括迁移管理装置60,迁移管理装置60用于将待迁移虚拟机40从源物理机10热迁移到目的物理机20。具体的,在目的物理机20上还安装有虚拟机监视器30,迁移管理装置60用于将待迁移虚拟机40从源物理机10上热迁移到目的物理机20的虚拟机监视器30上。在设置迁移管理装置60时,该迁移管理装置60可以为云计算平台,以便于进行远程控制。
参考图1及图2,在虚拟机监视器30上还安装有与迁移管理装置60通信连接的预迁移决策装置50。预迁移决策装置50用于根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。预迁移决策装置50还用于将预估结果发送给迁移管理装置60。即预迁移决策装置50用于先预估待迁移虚拟机40能否完成从源物理机10到目的物理机20的热迁移,之后根据预估结果,迁移管理装置60进行相应的调整。通过设置预迁移决策装置50,预迁移决策装置50根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,从而得出预估结果,并将该预估结果发送给迁移管理装置60,由迁移管理装置60根据预迁移决策装置50的预估结果进行相应的调整。现有技术中不经预先估计能够完成热迁移,而是直接进行内存迭代拷贝的热迁移,直到迭代次数超出阈值,才确定热迁移失败,若热迁移失败,对待迁移虚拟机40为巨型虚拟机的场景会引入较大的资源开销。本申请的方案相比现有技术,对待迁移虚拟机40先预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,即通过预先统计虚拟机内存负载情况,判断是否可以热迁移,若内存脏页变化较大,可以提前判断待迁移虚拟机40不可热迁移,从而避免热迁移失败引入的时间和空间开销。
在确定上述设定时间段的大小时,设定时间段的大小可以为60s~120s,具体的,设定时间段的大小可以为60s、70s、80s、90s、100s、110s、120s等介于60s~120s之间的任意值。以提高判断脏页增加率的准确性,同时减小对待迁移虚拟机40的正常运行造成影响的时间。
在具体实现预迁移决策装置50来统计设定时间段内产生的脏页量时,预迁移决策装置50在设定时间段内,可以将待迁移虚拟机40的EPT(Extended Page Tables)或NPT(Nested Page Tables)页表设置为只读,使虚拟机监视器30能够截获待迁移虚拟机40的内存写操作,以统计设定时间段内待迁移虚拟机40产生的脏页量。即由于将页表设置为只读,如果待迁移虚拟机40有内存写操作,将导致VM-exit,被虚拟机监视器30截获,由预迁移决策装置50统计该待迁移虚拟机40产生的脏页情况,以便于统计在设定时间段内的内存写操作的数据量。
预迁移决策装置50在具体进行预估时,参考图3,首先,预迁移决策装置50根据设定时间段内待迁移虚拟机40产生的脏页量,计算单位时间内的脏页变化率。之后,预迁移决策装置50根据单位时间内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。即预迁移决策装置50根据单位时间内的脏页变化率、以及源物理机10与目的物理机20之间的网络带宽,预估待迁移虚拟机40能否在不超过预设阈值的内存迭代拷贝之后,完成从源物理机10到目的物理机20的热迁移,以简化预估算法,同时提高预估准确性。
预迁移决策装置50在具体根据单位时间内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽进行预估时,参考图4,首先,预迁移决策装置50根据单位时间段内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽,计算能否在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理机20。之后,根据计算结果,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以准确判断能否完成热迁移,同时不对待迁移虚拟机40的运行造成很大影响。即通过计算单位时间内的脏页变化率,之后计算能否在允许业务中断时间内将单位时间内产生的脏页从源物理机10拷贝到目的物理机20,以确定是否能够进行热迁移,从而提高判断能否成功将待迁移虚拟机40热迁移到目的物理机20的可能性。
预迁移决策装置50预估的结果可以为待迁移虚拟机40能够完成从源物理机10热迁移到目的物理机20,或者是待迁移虚拟机40不能够完成从源物理机10热迁移到目的物理机20。具体的结果如下:如果计算结果为能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理结,则预迁移决策装置50的预估结果为能够在内存迭代拷贝的次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。同样的,参考图4,此时预迁移决策装置50向迁移管理装置60发送的是能够完成待迁移虚拟机40向目的物理机20的热迁移。如果迁移管理装置60接收到预迁移决策装置50发送的预估结果为能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,则迁移管理装置60可以采用包含有内存迭代拷贝的方式将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以实现将待迁移虚拟机40从源物理机10热迁移到目的物理机20。
如果预迁移决策装置50的计算结果为不能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理机20,则预迁移决策装置50的预估结果为不能够在内存迭代拷贝的次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。同样的,参考图4,此时预迁移决策装置50向迁移管理装置60发送的是不能够完成待迁移虚拟机40向目的物理机20的热迁移。如果迁移管理装置60接收到预迁移决策装置50发送的预估结果为不能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,则迁移管理装置60停止将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以根据预估结果确定是否进行热迁移,从而避免热迁移失败引入的时间和空间开销。
另外,上述允许业务中断时间可以为不大于2s,具体的,允许业务中断时间可以为0.5s、1.0s、1.5s、2.0s等不大于2s的任意值,以防止对待迁移虚拟机40的正常运行造成较大的影响。
通过设置预迁移决策装置50,预迁移决策装置50根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,从而得出预估结果,并将该预估结果发送给迁移管理装置60,由迁移管理装置60根据预迁移决策装置50的预估结果进行相应的调整。本申请的方案相比现有技术,对待迁移虚拟机40先预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,即通过预先统计虚拟机内存负载情况,判断是否可以热迁移,若内存脏页变化较大,可以提前判断待迁移虚拟机40不可热迁移,从而避免热迁移失败引入的时间和空间开销。
另外,本发明实施例还提供了一种基于上述虚拟机热迁移系统的热迁移方法,参考图1及图2,该热迁移方法包括:
Step10:迁移管理装置60指定待迁移虚拟机40,并将指定的待迁移虚拟机40信息发送给预迁移决策装置50;
Step20:预迁移决策装置50根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20;
Step30:预迁移决策装置50将预估结果发送给迁移管理装置60。
通过使预迁移决策装置50根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,从而得出预估结果,并将该预估结果发送给迁移管理装置60,由迁移管理装置60根据预迁移决策装置50的预估结果进行相应的调整。本申请的方案相比现有技术,对待迁移虚拟机40先预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20,即通过预先统计虚拟机内存负载情况,判断是否可以热迁移,若内存脏页变化较大,可以提前判断待迁移虚拟机40不可热迁移,从而避免热迁移失败引入的时间和空间开销。
预迁移决策装置50在具体根据在设定时间段内待迁移虚拟机40产生的脏页量、以及源物理机10和目的物理机20之间的网络带宽,预估能否成功将待迁移虚拟机40热迁移到目的物理机20时,参考图3,预迁移决策装置50可以先根据设定时间段内待迁移虚拟机40产生的脏页量,计算单位时间内的脏页变化率。之后根据单位时间内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽,预估能否在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以简化预估算法,同时提高预估准确性。
在预迁移决策装置50在具体根据单位时间内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽,预估待迁移虚拟机40能否完成热迁移时,参考图4,预迁移决策装置50可以先根据单位时间内的脏页变化率、以及源物理机10和目的物理机20之间的网络带宽,计算能否在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理机20。之后,根据计算结果,预估能否在内存迭代拷贝的迭代次数不超过设定阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以准确判断能否完成热迁移。
参考图4,预迁移决策装置50具体根据计算结果,预估的结果可能是待迁移虚拟机40能够完成热迁移到目的物理机20,也可能是待迁移虚拟机40不能够完成热迁移到目的物理机20。具体的预估结果如下:如果计算结果为能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理机20,则预迁移决策装置50的预估结果为能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。如果计算结果为不能够在允许业务中断时间内,将单位时间内产生的脏页从源物理机10拷贝到目的物理机20,则预迁移决策装置50的预估结果为不能够在内存迭代拷贝的迭代次数不超过预设阈值的情况下,将待迁移虚拟机40从源物理机10热迁移到目的物理机20。以根据预估结果确定是否进行热迁移,从而避免热迁移失败引入的时间和空间开销。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
- 一种虚拟机热迁移系统及其热迁移方法
- 虚拟机热迁移的方法、虚拟机迁移管理装置及系统