一种Linux虚拟机迁移方法及系统与流程

文档序号:12786174阅读:227来源:国知局
一种Linux虚拟机迁移方法及系统与流程

本发明涉及虚拟机技术领域,特别涉及一种Linux虚拟机迁移方法及系统。



背景技术:

当前,随着计算机虚拟化技术的快速发展,Linux虚拟机的应用范围不断扩大,受到银行、政府、部队以及各种大小企业的关注。在现有的虚拟机应用过程中,人们时常需要将Linux虚拟机从一个虚拟化平台迁移至另一个虚拟化平台。然而,在Linux虚拟机迁移之前,人们需要先关闭Linux虚拟机,然后才对Linux虚拟机进行迁移,这样便导致在Linux虚拟机迁移的过程中,用户长时间无法正常使用该虚拟机所提供的虚拟化服务,从而对用户体验造成极大的不良影响。

综上所述可以看出,如何在对Linux虚拟机进行迁移的过程中减少虚拟机停机时间是目前亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种Linux虚拟机迁移方法及系统,能够在对Linux虚拟机进行迁移的过程中大幅减少虚拟机停机时间。其具体方案如下:

一种Linux虚拟机迁移方法,包括:

步骤S11:将当前处于在线状态的源虚拟机上的全部内存数据拷贝至当前处于下线状态的目标虚拟机;

步骤S12:在内存数据拷贝过程中实时监视所述源虚拟机上的内存数据是否发生变化,如果是,则进入步骤S13,如果否,则将所述源虚拟机的运行状态切换成下线状态,并进入步骤S16;

步骤S13:判断当前所述源虚拟机和所述目标虚拟机之间的内存数据差异程度是否小于预设程度,如果否,则进入步骤S14,如果是,则进入步骤S15;

步骤S14:将所述源虚拟机在上一次内存数据拷贝过程中由于内存数据发生变化而产生的脏内存数据拷贝至所述目标虚拟机,并进入步骤S12;

步骤S15:将所述源虚拟机的运行状态切换成下线状态,并将所述源虚拟机在上一次内存数据拷贝过程由于内存数据发生变化而产生的脏内存数据拷贝至所述目标虚拟机;

步骤S16:将所述目标虚拟机的运行状态切换成上线状态。

可选的,所述源虚拟机和所述目标虚拟机为位于不同虚拟化平台上的虚拟机。

可选的,在所述目标虚拟机处于下线状态的情况下,还包括:

判断所述目标虚拟机的内核是否需要进行更新,若是,则对所述目标虚拟机的内核进行更新。

可选的,所述判断所述目标虚拟机的内核是否需要进行更新,若是,则对所述目标虚拟机的内核进行更新的过程,包括:

利用互联网上的内核库,判断所述目标虚拟机的内核版本是否为最新内核版本;

若判定出所述目标虚拟机的内核版本不是最新内核版本,则从互联网上下载所述目标虚拟机的最新内核版本,然后利用该最新内核版本对所述目标虚拟机的内核进行更新。

可选的,所述判断所述目标虚拟机的内核是否需要进行更新,若是,则对所述目标虚拟机的内核进行更新的过程,包括:

利用当前虚拟化平台上的已有内核,判断当前虚拟化平台上是否存在比所述目标虚拟机的内核版本更高的内核版本,如果是,则利用该内核版本对所述目标虚拟机的内核进行相应地更新。

本发明还相应公开了一种Linux虚拟机迁移系统,包括内存数据拷贝模块、内存数据监视模块、判断模块、源虚拟机状态切换模块以及目标虚拟机状态切换模块;其中,

所述内存数据拷贝模块,用于将当前处于在线状态的源虚拟机上的全部内存数据拷贝至当前处于下线状态的目标虚拟机;

所述内存数据监视模块,用于在所述内存数据拷贝模块进行内存数据拷贝过程中实时监视所述源虚拟机上的内存数据是否发生变化,如果是,则触发所述判断模块启动,如果否,则利用所述源虚拟机状态切换模块,将所述源虚拟机的运行状态切换成下线状态,并触发所述目标虚拟机状态切换模块启动;

所述判断模块,用于判断当前所述源虚拟机和所述目标虚拟机之间的内存数据差异程度是否小于预设程度,如果否,则通过所述内存数据拷贝模块,将所述源虚拟机在上一次内存数据拷贝过程中由于内存数据发生变化而产生的脏内存数据拷贝至所述目标虚拟机,并重新触发所述内存数据监视模块启动,如果是,则通过所述源虚拟机状态切换模块,将所述源虚拟机的运行状态切换成下线状态,并通过所述内存数据拷贝模块,将所述源虚拟机在上一次内存数据拷贝过程由于内存数据发生变化而产生的脏内存数据拷贝至所述目标虚拟机,然后触发所述目标虚拟机状态切换模块启动;

所述目标虚拟机状态切换模块,用于将所述目标虚拟机的运行状态切换成上线状态。

可选的,所述源虚拟机和所述目标虚拟机为位于不同虚拟化平台上的虚拟机。

可选的,所述Linux虚拟机迁移系统,还包括:

内核更新模块,用于在所述目标虚拟机处于下线状态的情况下,判断所述目标虚拟机的内核是否需要进行更新,若是,则对所述目标虚拟机的内核进行更新。

可选的,所述内核更新模块,包括:

第一判断单元,用于在所述目标虚拟机处于下线状态的情况下,利用互联网上的内核库,判断所述目标虚拟机的内核版本是否为最新内核版本;

第一更新单元,用于当所述第一判断单元判定出所述目标虚拟机的内核版本不是最新内核版本,则从互联网上下载所述目标虚拟机的最新内核版本,然后利用该最新内核版本对所述目标虚拟机的内核进行更新。

可选的,所述内核更新模块,具体用于在所述目标虚拟机处于下线状态的情况下,利用当前虚拟化平台上的已有内核,判断当前虚拟化平台上是否存在比所述目标虚拟机的内核版本更高的内核版本,如果是,则利用该内核版本对所述目标虚拟机的内核进行相应地更新。

本发明中,Linux虚拟机迁移方法,包括:步骤S11:将当前处于在线状态的源虚拟机上的全部内存数据拷贝至当前处于下线状态的目标虚拟机;步骤S12:在内存数据拷贝过程中实时监视源虚拟机上的内存数据是否发生变化,如果是,则进入步骤S13,如果否,则将源虚拟机的运行状态切换成下线状态,并进入步骤S16;步骤S13:判断当前源虚拟机和目标虚拟机之间的内存数据差异程度是否小于预设程度,如果否,则进入步骤S14,如果是,则进入步骤S15;步骤S14:将源虚拟机在上一次内存数据拷贝过程中由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机,并进入步骤S12;步骤S15:将源虚拟机的运行状态切换成下线状态,并将源虚拟机在上一次内存数据拷贝过程由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机;步骤S16:将目标虚拟机的运行状态切换成上线状态。

可见,本发明是在源虚拟机处于在线状态的情况下,便对源虚拟机中的内存数据展开拷贝迁移处理,并将每次内存数据拷贝过程中发生改变的内存数据不断拷贝到目标虚拟机中,直到源虚拟机和目标虚拟机之间的内存数据差异程度小于预设程度为止,然后才将源虚拟机的运行状态切换成下线状态,接着将源虚拟机中少量剩下的脏内存数据拷贝至目标虚拟机,由于最后一次需要拷贝的数据量较少,所以最后一次拷贝所需时间非常短,当最后一次拷贝结束后,便将目标虚拟机的运行状态切换成上线状态,以接替源虚拟机的工作。由此可见,在源虚拟机的整个迁移过程中,停止提供虚拟化服务的时间是非常短的,从而能够大幅改善虚拟机用户的用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种Linux虚拟机迁移方法流程图;

图2为本发明实施例公开的一种Linux虚拟机迁移系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种Linux虚拟机迁移方法,参见图1所示,该方法包括:

步骤S11:将当前处于在线状态的源虚拟机上的全部内存数据拷贝至当前处于下线状态的目标虚拟机。

本实施例中,源虚拟机和目标虚拟机为位于不同虚拟化平台上的虚拟机。

步骤S12:在内存数据拷贝过程中实时监视源虚拟机上的内存数据是否发生变化,如果是,则进入步骤S13,如果否,则进入步骤S120,然后进入步骤S16。

其中,上述步骤S120具体过程包括:将源虚拟机的运行状态切换成下线状态。

步骤S13:判断当前源虚拟机和目标虚拟机之间的内存数据差异程度是否小于预设程度,如果否,则进入步骤S14,如果是,则进入步骤S15。

步骤S14:将源虚拟机在上一次内存数据拷贝过程中由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机,并进入步骤S12。

步骤S15:将源虚拟机的运行状态切换成下线状态,并将源虚拟机在上一次内存数据拷贝过程由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机。

步骤S16:将目标虚拟机的运行状态切换成上线状态。

进一步的,本实施例中,在目标虚拟机处于下线状态的情况下,还可以包括:

判断目标虚拟机的内核是否需要进行更新,若是,则对目标虚拟机的内核进行更新。

在一种具体的实施方式中,上述判断目标虚拟机的内核是否需要进行更新,若是,则对目标虚拟机的内核进行更新的过程,具体可以包括:

利用互联网上的内核库,判断目标虚拟机的内核版本是否为最新内核版本;若判定出目标虚拟机的内核版本不是最新内核版本,则从互联网上下载目标虚拟机的最新内核版本,然后利用该最新内核版本对目标虚拟机的内核进行更新。

在另一具体的实施方式中,上述判断目标虚拟机的内核是否需要进行更新,若是,则对目标虚拟机的内核进行更新的过程,具体可以包括:

利用当前虚拟化平台上的已有内核,判断当前虚拟化平台上是否存在比目标虚拟机的内核版本更高的内核版本,如果是,则利用该内核版本对目标虚拟机的内核进行相应地更新。

可见,本发明实施例是在源虚拟机处于在线状态的情况下,便对源虚拟机中的内存数据展开拷贝迁移处理,并将每次内存数据拷贝过程中发生改变的内存数据不断拷贝到目标虚拟机中,直到源虚拟机和目标虚拟机之间的内存数据差异程度小于预设程度为止,然后才将源虚拟机的运行状态切换成下线状态,接着将源虚拟机中少量剩下的脏内存数据拷贝至目标虚拟机,由于最后一次需要拷贝的数据量较少,所以最后一次拷贝所需时间非常短,当最后一次拷贝结束后,便将目标虚拟机的运行状态切换成上线状态,以接替源虚拟机的工作。由此可见,在源虚拟机的整个迁移过程中,停止提供虚拟化服务的时间是非常短的,从而能够大幅改善虚拟机用户的用户体验。

相应的,本发明实施例还公开了一种Linux虚拟机迁移系统,参见图2所示,该系统包括内存数据拷贝模块11、内存数据监视模块12、判断模块13、源虚拟机状态切换模块14以及目标虚拟机状态切换模块15;其中,

内存数据拷贝模块11,用于将当前处于在线状态的源虚拟机上的全部内存数据拷贝至当前处于下线状态的目标虚拟机;

内存数据监视模块12,用于在内存数据拷贝模块进行内存数据拷贝过程中实时监视源虚拟机上的内存数据是否发生变化,如果是,则触发判断模块13启动,如果否,则利用源虚拟机状态切换模块14,将源虚拟机的运行状态切换成下线状态,并触发目标虚拟机状态切换模块15启动;

判断模块13,用于判断当前源虚拟机和目标虚拟机之间的内存数据差异程度是否小于预设程度,如果否,则通过内存数据拷贝模块,将源虚拟机在上一次内存数据拷贝过程中由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机,并重新触发内存数据监视模块12启动,如果是,则通过源虚拟机状态切换模块14,将源虚拟机的运行状态切换成下线状态,并通过内存数据拷贝模块11,将源虚拟机在上一次内存数据拷贝过程由于内存数据发生变化而产生的脏内存数据拷贝至目标虚拟机,然后触发目标虚拟机状态切换模块15启动;

目标虚拟机状态切换模块15,用于将目标虚拟机的运行状态切换成上线状态。

本实施例中,源虚拟机和目标虚拟机为位于不同虚拟化平台上的虚拟机。

进一步的,本实施例中的Linux虚拟机迁移系统,还可以包括:

内核更新模块,用于在目标虚拟机处于下线状态的情况下,判断目标虚拟机的内核是否需要进行更新,若是,则对目标虚拟机的内核进行更新。

在一种具体的实施方式中,上述内核更新模块,具体可以包括第一判断单元和第一更新单元;其中,

第一判断单元,用于在目标虚拟机处于下线状态的情况下,利用互联网上的内核库,判断目标虚拟机的内核版本是否为最新内核版本;

第一更新单元,用于当第一判断单元判定出目标虚拟机的内核版本不是最新内核版本,则从互联网上下载目标虚拟机的最新内核版本,然后利用该最新内核版本对目标虚拟机的内核进行更新。

在另一种具体的实施方式中,上述内核更新模块,具体可以用于在目标虚拟机处于下线状态的情况下,利用当前虚拟化平台上的已有内核,判断当前虚拟化平台上是否存在比目标虚拟机的内核版本更高的内核版本,如果是,则利用该内核版本对目标虚拟机的内核进行相应地更新。

可见,本发明实施例是在源虚拟机处于在线状态的情况下,便对源虚拟机中的内存数据展开拷贝迁移处理,并将每次内存数据拷贝过程中发生改变的内存数据不断拷贝到目标虚拟机中,直到源虚拟机和目标虚拟机之间的内存数据差异程度小于预设程度为止,然后才将源虚拟机的运行状态切换成下线状态,接着将源虚拟机中少量剩下的脏内存数据拷贝至目标虚拟机,由于最后一次需要拷贝的数据量较少,所以最后一次拷贝所需时间非常短,当最后一次拷贝结束后,便将目标虚拟机的运行状态切换成上线状态,以接替源虚拟机的工作。由此可见,在源虚拟机的整个迁移过程中,停止提供虚拟化服务的时间是非常短的,从而能够大幅改善虚拟机用户的用户体验。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种Linux虚拟机迁移方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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