本发明涉及虚拟机技术领域,特别涉及一种虚拟机内存快照创建方法及系统。
背景技术:
当前,随机计算机技术的不断深入,虚拟化技术也得到了快速的发展。虚拟化技术可以充分利用昂贵的硬件资源并且还可以隔离硬件体系结构和软件系统之间的依赖关系,改进系统的安全性能,提高计算资源的利用率。虚拟机内存快照是虚拟机系统的某一时刻的还原点,以文件的形式进行保存和恢复。
目前虚拟机内存快照的实现过程,通常是在同一台主机中,先暂停虚拟机,然后再保存内存快照,这样使得该虚拟机在内存快照创建过程中长时间无法为用户提供正常的虚拟化服务。
综上所述可以看出,如何在虚拟机内存快照创建的过程中减少虚拟机的停机时间是目前还有待解决的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种虚拟机内存快照创建方法及系统,能够在虚拟机内存快照创建的过程中减少虚拟机的停机时间。其具体方案如下:
一种虚拟机内存快照创建方法,包括:
将第一主机上的源虚拟机所产生的快照创建指令向第二主机进行发送;
当所述第二主机接收到所述快照创建指令,则在所述第二主机上创建与所述源虚拟机具有相同配置的虚拟机,得到目标虚拟机;
基于迭代预拷贝方法,将所述源虚拟机上的内存页拷贝至所述目标虚拟机;
以文件的形式将所述目标虚拟机获取到的内存页保存至所述第二主机。
可选的,所述在所述第二主机上创建与所述源虚拟机具有相同配置的虚拟机的过程,包括:
获取所述源虚拟机的配置信息;
在所述第二主机上创建与所述配置信息对应的并处于暂停状态的虚拟机,得到所述目标虚拟机。
可选的,在将所述源虚拟机上的内存页拷贝至所述目标虚拟机之前,还包括:
对待拷贝的内存页进行压缩和标记处理。
可选的,所述以文件的形式将所述目标虚拟机获取到的内存页保存至所述第二主机的过程之后,还包括:
对所述目标虚拟机进行销毁处理。
本发明还相应公开了一种虚拟机内存快照创建系统,包括:
指令发送模块,用于将第一主机上的源虚拟机所产生的快照创建指令向第二主机进行发送;
虚拟机创建模块,用于当所述第二主机接收到所述快照创建指令,则在所述第二主机上创建与所述源虚拟机具有相同配置的虚拟机,得到目标虚拟机;
内存拷贝模块,用于基于迭代预拷贝方法,将所述源虚拟机上的内存页拷贝至所述目标虚拟机;
内存转存模块,用于以文件的形式将所述目标虚拟机获取到的内存页保存至所述第二主机。
可选的,所述虚拟机创建模块,包括:
信息获取单元,用于获取所述源虚拟机的配置信息;
虚拟机创建单元,用于在所述第二主机上创建与所述配置信息对应的并处于暂停状态的虚拟机,得到所述目标虚拟机。
可选的,所述虚拟机内存快照创建系统,还包括:
压缩标记模块,用于在所述内存拷贝模块将所述源虚拟机上的内存页拷贝至所述目标虚拟机之前,对待拷贝的内存页进行压缩和标记处理。
可选的,所述虚拟机内存快照创建系统,还包括:
虚拟机销毁模块,用于在所述内存转存模块以文件的形式将所述目标虚拟机获取到的内存页保存至所述第二主机之后,对所述目标虚拟机进行销毁处理。
本发明中,虚拟机内存快照创建方法,包括:将第一主机上的源虚拟机所产生的快照创建指令向第二主机进行发送;当第二主机接收到快照创建指令,则在第二主机上创建与源虚拟机具有相同配置的虚拟机,得到目标虚拟机;基于迭代预拷贝方法,将源虚拟机上的内存页拷贝至目标虚拟机;以文件的形式将目标虚拟机获取到的内存页保存至第二主机。
可见,本发明在创建源虚拟机的内存快照时,并非是在本地主机上进行创建,而是在另一主机上进行创建的,这样能够减轻本地主机的资源负载,并且,在将源虚拟机的内存页拷贝至另一主机上的目标虚拟机时,是利用迭代预拷贝方法来进行拷贝的,这样能够大幅减少源虚拟机的停机时间,从而提升了虚拟机用户的用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种虚拟机内存快照创建方法流程图;
图2为本发明实施例公开的一种虚拟机内存快照创建系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种虚拟机内存快照创建方法,参见图1所示,该方法包括:
步骤S11:将第一主机上的源虚拟机所产生的快照创建指令向第二主机进行发送。
步骤S12:当第二主机接收到快照创建指令,则在第二主机上创建与源虚拟机具有相同配置的虚拟机,得到目标虚拟机。
其中,在第二主机上创建与源虚拟机具有相同配置的虚拟机的过程,具体可以包括:
获取源虚拟机的配置信息,然后在第二主机上创建与配置信息对应的并处于暂停状态的虚拟机,得到目标虚拟机。也即,本实施例中,目标虚拟机和源虚拟机具有相同的配置。
步骤S13:基于迭代预拷贝方法,将源虚拟机上的内存页拷贝至目标虚拟机。
进一步的,在将源虚拟机上的内存页拷贝至目标虚拟机之前,还可以包括:对待拷贝的内存页进行压缩和标记处理。具体的,本实施例在每次拷贝过程中,是对已分配的内存页进行压缩和标记处理,而对未分配的内存页进行丢弃处理,这样可以避免对大量内存数据进行重复传输。
步骤S14:以文件的形式将目标虚拟机获取到的内存页保存至第二主机。
进一步的,在上述以文件的形式将目标虚拟机获取到的内存页保存至第二主机的过程之后,还可以包括:对目标虚拟机进行销毁处理,从而释放第二主机上被目标虚拟机所占用的资源。
可见,本发明实施例在创建源虚拟机的内存快照时,并非是在本地主机上进行创建,而是在另一主机上进行创建的,这样能够减轻本地主机的资源负载,并且,在将源虚拟机的内存页拷贝至另一主机上的目标虚拟机时,是利用迭代预拷贝方法来进行拷贝的,这样能够大幅减少源虚拟机的停机时间,从而提升了虚拟机用户的用户体验。
相应的,本发明实施例还公开了一种虚拟机内存快照创建系统,参见图2所示,该系统包括:
指令发送模块11,用于将第一主机上的源虚拟机所产生的快照创建指令向第二主机进行发送;
虚拟机创建模块12,用于当第二主机接收到快照创建指令,则在第二主机上创建与源虚拟机具有相同配置的虚拟机,得到目标虚拟机;
内存拷贝模块13,用于基于迭代预拷贝方法,将源虚拟机上的内存页拷贝至目标虚拟机;
内存转存模块14,用于以文件的形式将目标虚拟机获取到的内存页保存至第二主机。
具体的,上述虚拟机创建模块12,可以包括信息获取单元和虚拟机创建单元;其中,
信息获取单元,用于获取源虚拟机的配置信息;
虚拟机创建单元,用于在第二主机上创建与配置信息对应的并处于暂停状态的虚拟机,得到目标虚拟机。
进一步的,上述虚拟机内存快照创建系统,还可以包括:
压缩标记模块,用于在内存拷贝模块将源虚拟机上的内存页拷贝至目标虚拟机之前,对待拷贝的内存页进行压缩和标记处理。
进一步的,上述虚拟机内存快照创建系统,还可以包括:
虚拟机销毁模块,用于在内存转存模块以文件的形式将目标虚拟机获取到的内存页保存至第二主机之后,对目标虚拟机进行销毁处理。
可见,本发明实施例在创建源虚拟机的内存快照时,并非是在本地主机上进行创建,而是在另一主机上进行创建的,这样能够减轻本地主机的资源负载,并且,在将源虚拟机的内存页拷贝至另一主机上的目标虚拟机时,是利用迭代预拷贝方法来进行拷贝的,这样能够大幅减少源虚拟机的停机时间,从而提升了虚拟机用户的用户体验。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种虚拟机内存快照创建方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。