CN104750554B - 一种虚拟机间数据迁移的方法和设备 - Google Patents
一种虚拟机间数据迁移的方法和设备 Download PDFInfo
- Publication number
- CN104750554B CN104750554B CN201310752981.0A CN201310752981A CN104750554B CN 104750554 B CN104750554 B CN 104750554B CN 201310752981 A CN201310752981 A CN 201310752981A CN 104750554 B CN104750554 B CN 104750554B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data
- task
- request
- target virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种虚拟机间数据迁移的方法和设备,内容包括:在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,这样,源虚拟机和目标虚拟机在执行迁移时保持同步运行,并且使得源虚拟机在迁移过程中不停机,避免了迁移过程中由于停机导致的业务访问数据丢失的问题,提高了虚拟机计算能力的整体可靠性和稳定性。
Description
技术领域
本发明涉及无线通信技术领域,尤其涉及一种虚拟机间数据迁移的方法和设备。
背景技术
虚拟机是云计算平台(尤其是基于IaaS模式的服务平台)的一种重要资源,支持虚拟机在不同物理主机上进行动态迁移是云计算平台必须具备的基础功能之一。
虚拟机热迁移技术研究的关键问题在于保证迁移前后虚拟机数据存储和运行状态的完整性和一致性。实现服务在虚拟机内存迁移过程中完全不受影响,是此类技术研究的最大挑战。
目前解决虚拟机热迁移问题的技术方案主要包括以下四个关键步骤:1、在源虚拟机和目标虚拟机之间建立连接;2、传送虚拟机间的配置信息和设备信息;3、暂停或者挂起源虚拟机并将源虚拟机的当前状态信息发送给目标虚拟机;4、启动目标虚拟机处理业务。
经研究发现,目前解决虚拟机热迁移问题的技术方案存在以下问题:通过暂停或者挂起源虚拟机的方式,使得源虚拟动态的内存运行状态转化为可迁移的静止数据,这样从源虚拟机挂起到目标虚拟机重启这一段时间内存在数据丢失的风险,并且使得目标虚拟机重启之后一段时间内业务处理压力较大。
因此,亟需一种虚拟机间数据迁移的方法,用于解决目前虚拟机热迁移问题的技术方案中存在的数据丢失、增加目标虚拟机业务处理压力的问题。
发明内容
本发明实施例提供了一种虚拟机间数据迁移的方法和设备,用于解决目前虚拟机热迁移问题的技术方案中存在的数据丢失、增加目标虚拟机业务处理压力的问题。
一种虚拟机间数据迁移的方法,包括:
在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;
检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略。
所述类型信息包含了本地进程任务和远程任务请求,其中,所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求。
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
当检测到的类型信息是本地进程任务队列的已有任务时,检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;
在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,其中,所述同步迁移指令中包含了挂起的所述任务;
在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
当检测到的类型信息是用户设备提交的新业务请求时,检测处理所述新业务请求需要的进程状态;
在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;
在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机。
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;
判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;
在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;
在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令。
所述方法还包括:
在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,创建用于记录后续系统状态变更的日志文件;
确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机。
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
一种虚拟机间数据迁移的方法,包括:
在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志,其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息;
根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据。
根据所述迁移日志中包含的系统状态信息,从所述源虚拟机中获取待迁移的数据,包括:
判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
根据所述迁移日志中包含的内存数据信息,从所述源虚拟机中获取待迁移的数据,包括:
向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
根据所述迁移日志中包含的内存数据信息,从所述源虚拟机中获取待迁移的数据,包括:
向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
在将待迁移数据加载至内存中之后,所述方法还包括:
确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
所述方法还包括:
在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
一种虚拟机间数据迁移的设备,包括:
确定发送模块,用于在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;
业务处理模块,用于检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略。
所述类型信息包含了本地进程任务和远程任务请求,其中,所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求。
所述业务处理模块,具体用于当检测到的类型信息是本地进程任务队列的已有任务时,检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;
在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,其中,所述同步迁移指令中包含了挂起的所述任务;
在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
所述业务处理模块,具体用于当检测到的类型信息是用户设备提交的新业务请求时,检测处理所述新业务请求需要的进程状态;
在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;
在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机。
所述业务处理模块,具体用于当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;
判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;
在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;
在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令。
所述设备还包括:
更新模块,用于在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
所述业务处理模块,具体用于当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,创建用于记录后续系统状态变更的日志文件;
确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机。
所述业务处理模块,具体用于当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
一种虚拟机间数据迁移的设备,包括:
接收模块,用于在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志,其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息;
迁移模块,用于根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据。
所述迁移模块,具体用于判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
所述迁移模块,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
所述迁移模块,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
所述设备还包括:
合并模块,用于在将待迁移数据加载至内存中之后,确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
所述设备还包括:
终止模块,用于在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
本发明有益效果如下:
本发明实施例在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,这样,源虚拟机和目标虚拟机在执行迁移时保持同步运行,并且使得源虚拟机在迁移过程中不停机,避免了迁移过程中由于停机导致的业务访问数据丢失的问题,提高了虚拟机计算能力的整体可靠性和稳定性。
附图说明
图1为本发明实施例一提供的一种虚拟机间数据迁移的方法流程示意图;
图2为源虚拟机根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略的示意图;
图3为源虚拟机在执行迁移阶段的流程示意图;
图4为本发明实施例二提供的一种虚拟机间数据迁移的方法的流程示意图;
图5为迁移过程中目标虚拟机的工作流程示意图;
图6为迁移过程中目标虚拟机执行加载内存数据操作的工作流程示意图;
图7为迁移过程中目标虚拟机终止迁移的工作流程示意图;
图8为本发明实施例三提供的一种虚拟机间数据迁移的设备的结构示意图;
图9为本发明实施例四提供的一种虚拟机间数据迁移的设备的结构示意图;
图10为本发明实施例五提供的一种虚拟机间数据迁移的系统结构示意图;
图11为源物理主机中的同步控制器的工作流程示意图。
具体实施方式
为了实现本发明的目的,本发明实施例提供了一种虚拟机间数据迁移的方法和设备,在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,这样,源虚拟机和目标虚拟机在执行迁移时保持同步运行,并且使得源虚拟机在迁移过程中不停机,避免了迁移过程中由于停机导致的业务访问数据丢失的问题,提高了虚拟机计算能力的整体可靠性和稳定性。
下面结合说明书附图对本发明各个实施例进行详细描述。
实施例一:
如图1所示,为本发明实施例一提供的一种虚拟机间数据迁移的方法流程示意图。所述方法可以如下所述。
步骤101:在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机。
使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息。
在步骤101中,在确定与目标虚拟机间启动数据迁移之前,确定虚拟机间迁移所需的外部环境、数据环境,配置迁移目标虚拟机的系统资源,以及启动迁移目标虚拟机等操作组成。
具体地,选择目标物理主机,部署模板并设置目标虚拟机的设备资源,在源虚拟机和迁移目标虚拟机之间建立网络环境,准备迁移目标虚拟机的“外存”数据环境,启动目标虚拟机,以及通知源虚拟机开始迁移。
在确定与目标虚拟机间启动数据迁移时,在源虚拟机的物理主机上创建独立文件,扫描源虚拟机的内存数据,获取当前的内存数据信息;同时确定源虚拟机当前的系统状态信息,并将源虚拟机中目前拥有的进程标记为执行任务状态。
将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机。
步骤102:检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略。
其中,所述类型信息包含了本地进程任务和远程任务请求。
需要说明的是,本地进程任务是指来自源虚拟机内存进程任务队列的请求;远程任务请求是来自迁移目标虚拟机的请求。
其中,所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求;
所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求。
在步骤102中,首先,检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息。
其次,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略。
具体地,当检测到的类型信息是本地进程任务队列的已有任务时,检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;
在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,其中,所述同步迁移指令中包含了挂起的所述任务。
需要说明的是,挂起所述任务时,将所述任务对应的进程状态修改为远程执行状态。
在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
需要说明的是,在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,获取源虚拟机中的资源,利用该资源正常处理该任务,并监控该任务的完成状态,在任务完成时,更新系统状态。
具体地,当检测到的类型信息是用户设备提交的新业务请求时,检测处理所述新业务请求需要的进程状态;
在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;
在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机。
具体地,当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;
判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;
在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;
在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令。
在本发明的另一个实施例中,所述方法还包括:
在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
具体地,当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,创建用于记录后续系统状态变更的日志文件;
确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机。
具体地,当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
如图2所示,为源虚拟机根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略的示意图。
如图3所示,为源虚拟机在执行迁移阶段的流程示意图。从图3中可以看出,源虚拟机在执行迁移阶段的工作流程可以描述为:
第一步:收到执行迁移指令;
第二步:在源虚拟机所在物理主机上创建独立文件;
第三步:扫描源虚拟机的系统内存数据;
第四步:初始化内存迁移过程的系统状态日志文件并记录状态日志;
第五步:为源虚拟机的系统内存重新分配物理资源;
第六步:源虚拟机中现有全部进程被标记为执行任务状态;
第七步:保存源虚拟机在执行迁移阶段的初始状态信息和内存数据;
第八步:发送同步迁移指令;
第九步:检测源虚拟机系统内存进程任务队列下一个任务的状态;
第十步:根据状态检测结果,执行进程任务;
第十一步:更新系统状态日志;
第十二步:检测迁移是否结束,如果结束,执行第十三步,否则执行第九步;
第十三步:中断源虚拟机的服务;
第十四步:向目标虚拟机迁移最终状态。
通过本发明实施例一的方案,在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,这样,源虚拟机和目标虚拟机在执行迁移时保持同步运行,并且使得源虚拟机在迁移过程中不停机,避免了迁移过程中由于停机导致的业务访问数据丢失的问题,提高了虚拟机计算能力的整体可靠性和稳定性。
实施例二:
如图4所示,为本发明实施例二提供的一种虚拟机间数据迁移的方法的流程示意图,本发明实施例二是与本发明实施例一在同一个发明构思下的发明,所述方法可以如下所述。
步骤201:在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志。
其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息。
步骤202:根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据。
在步骤202中,首先,根据所述迁移日志中包含的系统状态信息,从所述源虚拟机中获取待迁移的数据。
具体地,判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
其次,根据所述迁移日志中包含的内存数据信息,从所述源虚拟机中获取待迁移的数据。
具体地,第一种方式:
向所述源虚拟机发送迁移数据请求。
其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
第二种方式:
向所述源虚拟机发送迁移数据请求。
其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
在本发明的另一个实施例中,在将待迁移数据加载至内存中之后,所述方法还包括:
确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
步骤203:在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
如图5所示,为迁移过程中目标虚拟机的工作流程示意图。从图5中看出,目标虚拟机的工作流程可以描述为:
第一步、监听源虚拟机发送的系统状态日志;
第二步、接收系统状态日志数据后,检查源虚拟机状态是否更新;
第三步、如果发现日志数据更新,执行第四步,否则执行第七步;
第四步、扫描系统状态日志记录并合并相同资源的状态变化序列;
第五步、执行加载内存数据操作;
第六步、更新迁移目标的系统状态;
第七步、检查迁移进度,分析是否达到终止迁移要求,如果达到要求,执行第九步,否则执行步骤第八步;
第八步、向源虚拟机请求迁移系统状态,并继续执行第一步;
第九步、执行迁移终止处理。
如图6所示,为迁移过程中目标虚拟机执行加载内存数据操作的工作流程示意图。从图6中看出,目标虚拟机执行加载内存数据操作的流程可以描述为:
第一步、检查所需的数据是否已经在虚拟机的内存中,如果是则结束操作,否则继续执行第二步;
第二步、向源虚拟机请求迁移内存数据;
第三步、接收源虚拟机返回的数据,并分析加载方式;
第四步、如果要求本地加载,则执行第五步,否则执行第六步;
第五步、识别数据文件在虚拟机外存中的访问路径,并查找所需数据;
第六步、加载数据进入虚拟机的内存;
第七步、确定需要该数据的进程,与进程地址空间已有数据进行合并。
如图7所示,为迁移过程中目标虚拟机终止迁移的工作流程示意图。从图7中看出,目标虚拟机终止迁移的流程可以描述为:
第一步、准备切换服务;
第二步、向源虚拟机发送终止迁移任务请求;
第三步、接收源虚拟机的最终状态数据,解析并用于更新系统资源状态;
第四步、切换到正常服务模式。
实施例三:
如图8所示,为本发明实施例三提供的一种虚拟机间数据迁移的设备的结构示意图,所述设备包括:确定发送模块11和业务处理模块12,其中:
确定发送模块11,用于在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;
业务处理模块12,用于检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略。
所述类型信息包含了本地进程任务和远程任务请求,其中,所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求。
所述业务处理模块12,具体用于当检测到的类型信息是本地进程任务队列的已有任务时,检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;
在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,其中,所述同步迁移指令中包含了挂起的所述任务;
在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
所述业务处理模块12,具体用于当检测到的类型信息是用户设备提交的新业务请求时,检测处理所述新业务请求需要的进程状态;
在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;
在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机。
所述业务处理模块12,具体用于当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;
判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;
在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;
在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令。
所述设备还包括:更新模块13,其中:
更新模块13,用于在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
所述业务处理模块12,具体用于当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,创建用于记录后续系统状态变更的日志文件;
确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机。
所述业务处理模块12,具体用于当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
需要说明的是,本发明实施例三所述的设备为本发明实施例一和本发明实施例二中的源虚拟机,可以通过硬件方式实现,也可以通过软件方式实现。
实施例四:
如图9所示,为本发明实施例四提供的一种虚拟机间数据迁移的设备的结构示意图,本发明实施例四是与本发明实施例一~本发明实施例三在同一发明构思下的发明,所述设备包括:接收模块21和迁移模块22,其中:
接收模块21,用于在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志,其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息;
迁移模块22,用于根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据。
所述迁移模块22,具体用于判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
所述迁移模块22,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
所述迁移模块22,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
所述设备还包括:合并模块23,其中:
合并模块23,用于在将待迁移数据加载至内存中之后,确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
所述设备还包括:终止模块24,其中:
终止模块24,用于在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
需要说明的是,本发明实施例三所述的设备为本发明实施例一和本发明实施例二中的目标虚拟机,可以通过硬件方式实现,也可以通过软件方式实现。
实施例五:
如图10所示,为本发明实施例五提供的一种虚拟机间数据迁移的系统结构示意图,本发明实施例五是与本发明实施例一至本发明实施例四属于同一发明构思下的发明,所述系统包括:源虚拟机31、源物理主机32、资源调度设备33、目标物理主机34和目标虚拟机35,其中:
源物理主机32中包含了虚拟管理设备、内存监控设备、状态记录设备和同步控制设备;
目标物理主机34中也包含了虚拟管理设备、内存监控设备、状态记录设备和同步控制设备。
资源调度设备,用于负责统一管理和调度资源池的物理主机和虚拟机资源,包括选择目标物理主机,维护源虚拟机和迁移目标之间的网络连接,配置迁移目标的资源环境,保证服务在虚拟机迁移后的网络可达。
虚拟机管理设备运行在物理主机和虚拟机之间,用于按照资源调度设备的指令,配置资源保证虚拟机正常运行,从物理主机层面创建独立的文件保存虚拟机当前状态和内存数据信息。
内存监控设备负责扫描虚拟机的内存使用情况,包括监控系统内核和用户进程,以及进程地址空间的使用情况。
同步控制设备负责在源虚拟机和目标虚拟机之间传递迁移信号和同步数据。
状态记录设备,负责记录虚拟机关键资源的实时状态,产生或更新状态日志;其中,所述虚拟机关键资源状态,包括虚拟机的CPU、寄存器、I/O设备、网络设备、以及系统进程和用户进程的运行状态。
虚拟机管理设备把内存数据和系统状态从源虚拟机迁移到目标虚拟机,并且在迁移的过程中保持虚拟机所承载的应用正常运行、业务访问不受影响。在执行迁移阶段中,依据执行任务作业给内存/外存数据带来的变化,对源虚拟机系统内存空间中所有的进程任务重新分类和分派,将可能引起外存数据变化的任务转发给迁移目标执行,由源虚拟机处理当前内存数据足够满足计算需求的任务子集,并通过动态记录系统状态,以及与迁移目标同步系统状态日志的方式,推动迁移目标的状态重置;迁移目标在重置系统状态以及执行进程任务时,将源虚拟机作为远程内存资源,通过发送内存同步请求的方式,分批拷贝内存数据,逐步实现进程空间数据完善,最终达成充分迁移源虚拟机系统内存和运行环境的目的,使迁移目标能够在切换服务后具备有效处理业务访问和任务请求的能力。在迁移过程中源虚拟机继续处理业务,在处理已有进程任务以及新产生的业务请求时,源虚拟机会首先检查是否引起当前内存或外存数据状态变化,并将导致内外存数据状态改变的业务请求转发给迁移目标进行处理;迁移目标在处理业务请求时可以从源虚拟机内存或本地外存获取必要数据加载到内存中,用以满足处理业务请求的需求。
同步控制器负责在源虚拟机和迁移目标之间执行迁移同步操作,按照同步控制器所负责虚拟机在迁移内存过程中所处的角色差别,触发执行同步操作的逻辑指令和同步内分别包括:
1、源虚拟机的同步控制器执行同步操作的触发指令包括:
在资源调度器发出开始迁移指令时,源虚拟机的虚拟机管理器发出同步迁移状态指令;
源虚拟机收到迁移目标请求迁移内存数据或者迁移系统状态的任务进行同步的操作内容包括:
源虚拟机的当前内存数据、迁移目标请求的进程内存空间数据、源虚拟机的系统状态日志;
终止同步的触发指令包括:迁移目标请求终止同步的任务;
2、迁移目标的同步控制器执行同步操作的触发指令包括:
迁移目标的虚拟机管理器发出请求迁移内存数据指令;
迁移目标的虚拟机管理器发出请求迁移系统状态指令进行同步的操作内容包括:源虚拟机迁移内存数据的请求、源虚拟机迁移系统状态日志的请求;
终止同步的触发指令包括:迁移目标的内存监控器发出终止迁移指令。
如图11所示,为源物理主机中的同步控制器的工作流程示意图。从图11中可以看出,源物理主机中的同步控制器的工作流程可以描述为:
第一步、启动线程监听同步迁移指令;
第二步、如果接收到同步迁移指令,执行第三步,否则继续执行监听;
第三步、向迁移目标发送最近更新的系统状态日志;
第四步、检查迁移是否结束,如果结束,执行第五步,否则执行监听同步迁移指令;
第五步、终止监听线程。
资源调度器在收到迁移目标发出的准备切换服务信号之后,修改迁移环境配置,并等待源虚拟机发出确认终止迁移指令,并在收到源虚拟机的确认指令之后,使配置生效。资源调度器通知虚拟机管理器切换迁移目标到正常服务模式,虚拟机管理器中断针对源虚拟机和目标虚拟机的所有迁移监控逻辑。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种虚拟机间数据迁移的方法,其特征在于,包括:
在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;
检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息;
根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略;所述类型信息包含了本地进程任务和远程任务请求;本地进程任务是指来自源虚拟机内存进程任务队列的请求;远程任务请求是来自目标虚拟机的请求;所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求;
其中:
当检测到的类型信息是本地进程任务队列的已有任务时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,所述同步迁移指令中包含了挂起的所述任务;在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机;
当检测到的类型信息是用户设备提交的新业务请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测处理所述新业务请求需要的进程状态;在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令;
当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
创建用于记录后续系统状态变更的日志文件;确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
2.如权利要求1所述的方法,其特征在于,当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,所述方法还包括:
在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
3.一种虚拟机间数据迁移的方法,其特征在于,包括:
在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志,其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息;
根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据;所述待迁移的数据是所述源虚拟机检测在向目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略后发送的;所述类型信息包含了本地进程任务和远程任务请求;本地进程任务是指来自源虚拟机内存进程任务队列的请求;远程任务请求是来自目标虚拟机的请求;所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求;
其中:
当检测到的类型信息是本地进程任务队列的已有任务时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,所述同步迁移指令中包含了挂起的所述任务;在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机;
当检测到的类型信息是用户设备提交的新业务请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测处理所述新业务请求需要的进程状态;在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令;
当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
创建用于记录后续系统状态变更的日志文件;确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
4.如权利要求3所述的方法,其特征在于,根据所述迁移日志中包含的系统状态信息,从所述源虚拟机中获取待迁移的数据,包括:
判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
5.如权利要求3所述的方法,其特征在于,根据所述迁移日志中包含的内存数据信息,从所述源虚拟机中获取待迁移的数据,包括:
向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
6.如权利要求3所述的方法,其特征在于,根据所述迁移日志中包含的内存数据信息,从所述源虚拟机中获取待迁移的数据,包括:
向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
7.如权利要求5或者6所述的方法,其特征在于,在将待迁移数据加载至内存中之后,所述方法还包括:
确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
9.一种虚拟机间数据迁移的设备,其特征在于,包括:
确定发送模块,用于在确定与目标虚拟机间启动数据迁移时,确定当前内存数据信息和系统状态信息,并将包含了所述内存数据信息和所述系统状态信息的迁移日志发送给所述目标虚拟机,使得所述目标虚拟机根据所述迁移日志获取内存数据信息和系统状态信息;
业务处理模块,用于检测在向所述目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略;所述类型信息包含了本地进程任务和远程任务请求;本地进程任务是指来自源虚拟机内存进程任务队列的请求;远程任务请求是来自目标虚拟机的请求;所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求;
其中:
当检测到的类型信息是本地进程任务队列的已有任务时,所述业务处理模块具体用于:
检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,所述同步迁移指令中包含了挂起的所述任务;在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机;
当检测到的类型信息是用户设备提交的新业务请求时,所述业务处理模块具体用于:
检测处理所述新业务请求需要的进程状态;在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,所述业务处理模块具体用于:
确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令;
当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,所述业务处理模块具体用于:
创建用于记录后续系统状态变更的日志文件;确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,所述业务处理模块具体用于:
中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
10.如权利要求9所述的设备,其特征在于,当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,所述设备还包括:
更新模块,用于在将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机之后,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
11.一种虚拟机间数据迁移的设备,其特征在于,包括:
接收模块,用于在确定与源虚拟机间启动数据迁移时,接收所述源虚拟机发送的迁移日志,其中,所述迁移日志中包含了所述源虚拟机发生数据迁移时的内存数据信息和系统状态信息;
迁移模块,用于根据所述迁移日志中包含的系统状态信息和内存数据信息,从所述源虚拟机中获取待迁移的数据;所述待迁移的数据是所述源虚拟机检测在向目标虚拟机执行数据迁移的过程中接收到的待执行任务的类型信息,并根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略后发送的;其中,所述类型信息包含了本地进程任务和远程任务请求;本地进程任务是指来自源虚拟机内存进程任务队列的请求;远程任务请求是来自目标虚拟机的请求;所述本地进程任务中至少包含了执行本地进程任务队列的已有任务和用户设备提交的新业务请求,所述远程任务请求中至少包含了所述目标虚拟机发起的迁移数据请求、所述目标虚拟机发起的更新迁移日志请求以及所述目标虚拟机发起的迁移终止请求;
其中:
当检测到的类型信息是本地进程任务队列的已有任务时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测当前内存数据处理本地进程任务队列的已有任务的能力,并判断处理本地进程任务队列的已有任务是否能够引起所述内存数据的变化;在判断结果是处理本地进程任务队列的已有任务能够引起所述内存数据的变化时,挂起所述任务、并保存所述任务对应的进程,并向所述目标虚拟机发送同步迁移指令,所述同步迁移指令中包含了挂起的所述任务;在判断结果是处理本地进程任务队列的已有任务不能够引起所述内存数据的变化时,处理所述任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机;
当检测到的类型信息是用户设备提交的新业务请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
检测处理所述新业务请求需要的进程状态;在检测得到的进程状态是本地进程时,将所述新业务请求添加至处理本地进程任务队列中;在检测得到的进程状态是远程进程时,将接收到的所述业务请求的原始数据发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移数据请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
确定所述目标虚拟机发起的迁移数据请求所要迁移的数据所属进程;判断确定的所述进程地址空间中是否包含了所述迁移数据请求所要迁移的数据;在判断结果是确定的所述进程地址空间中包含了所述迁移数据请求所要迁移的数据时,将所述迁移数据请求所要迁移的数据发送给所述目标虚拟机;在判断结果是确定的所述进程地址空间中未包含了所述迁移数据请求所要迁移的数据时,向所述目标虚拟机发送本地加载指令;
当检测到的类型信息是所述目标虚拟机发起的更新迁移日志请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
创建用于记录后续系统状态变更的日志文件;确定当前系统状态信息,并将确定的所述系统状态信息发送给所述目标虚拟机;
当检测到的类型信息是所述目标虚拟机发起的迁移终止请求时,根据所述类型信息,触发执行与所述类型信息相匹配的数据处理策略,包括:
中断系统内存中的系统任务,更新系统状态,并将更新后的系统状态发送给所述目标虚拟机。
12.如权利要求11所述的设备,其特征在于,
所述迁移模块,具体用于判断接收到的所述系统状态信息是否更新;
在确定接收到的所述系统状态信息发生更新时,扫描所述系统状态信息,并合并相同资源的状态变化序列,加载更新的内存数据,使得与所述源虚拟机的系统状态同步。
13.如权利要求11所述的设备,其特征在于,
所述迁移模块,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的待迁移数据,并将接收到的待迁移数据加载至内存中。
14.如权利要求11所述的设备,其特征在于,
所述迁移模块,具体用于向所述源虚拟机发送迁移数据请求,其中,所述迁移数据请求中包含了待迁移的数据;
接收所述源虚拟机发送的本地加载指令,并根据所述本地加载指令,确定数据文件在外存中的访问路径,利用所述访问路径得到待迁移的数据;
将得到的待迁移数据加载至内存中。
15.如权利要求13或者14所述的设备,其特征在于,所述设备还包括:
合并模块,用于在将待迁移数据加载至内存中之后,确定加载至内存中的数据需要的进程,并与所述进程对应的进程地址空间内已有的数据进行合并。
16.如权利要求15所述的设备,其特征在于,所述设备还包括:
终止模块,用于在待迁移的数据迁移完毕后,向所述源虚拟机发送迁移终止请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310752981.0A CN104750554B (zh) | 2013-12-31 | 2013-12-31 | 一种虚拟机间数据迁移的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310752981.0A CN104750554B (zh) | 2013-12-31 | 2013-12-31 | 一种虚拟机间数据迁移的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750554A CN104750554A (zh) | 2015-07-01 |
CN104750554B true CN104750554B (zh) | 2018-03-23 |
Family
ID=53590297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310752981.0A Active CN104750554B (zh) | 2013-12-31 | 2013-12-31 | 一种虚拟机间数据迁移的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750554B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105978952B (zh) * | 2016-04-28 | 2019-04-30 | 中国科学院计算技术研究所 | 一种基于网络功能虚拟化场景的流迁移方法及系统 |
US10742498B2 (en) | 2016-06-22 | 2020-08-11 | Amazon Technologies, Inc. | Application migration system |
CN107783826B (zh) * | 2016-08-26 | 2021-07-09 | 北京金山云网络技术有限公司 | 一种虚拟机迁移方法、装置及系统 |
CN107797878A (zh) * | 2016-09-06 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 虚拟机热迁移处理方法及系统 |
US11036531B2 (en) * | 2017-06-27 | 2021-06-15 | Intel Corporation | Techniques to migrate a virtual machine using disaggregated computing resources |
CN109426547B (zh) | 2017-09-04 | 2022-05-17 | 华为技术有限公司 | 一种虚拟机的热迁移方法、装置和系统 |
CN111324413B (zh) * | 2018-12-14 | 2023-08-15 | 中移(杭州)信息技术有限公司 | 一种数据迁移方法及数据迁移管理设备 |
CN114281259A (zh) * | 2021-12-23 | 2022-04-05 | 天翼视讯传媒有限公司 | 一种基于多角度的数据热迁移系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081552A (zh) * | 2009-12-01 | 2011-06-01 | 华为技术有限公司 | 一种物理机到虚拟机的在线迁移方法、装置和系统 |
CN103136043A (zh) * | 2013-01-28 | 2013-06-05 | 华为技术有限公司 | 一种异步io的迁移方法、系统和网络节点 |
-
2013
- 2013-12-31 CN CN201310752981.0A patent/CN104750554B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081552A (zh) * | 2009-12-01 | 2011-06-01 | 华为技术有限公司 | 一种物理机到虚拟机的在线迁移方法、装置和系统 |
CN103136043A (zh) * | 2013-01-28 | 2013-06-05 | 华为技术有限公司 | 一种异步io的迁移方法、系统和网络节点 |
Also Published As
Publication number | Publication date |
---|---|
CN104750554A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750554B (zh) | 一种虚拟机间数据迁移的方法和设备 | |
US10613788B2 (en) | Data migration between cloud storage systems | |
US8862933B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
EP2614436B1 (en) | Controlled automatic healing of data-center services | |
CN113037538B (zh) | 分布式资源管理中低时延节点本地调度的系统和方法 | |
JP6183374B2 (ja) | データ処理システム、データ処理方法およびプログラム | |
US11645123B1 (en) | Dynamic distribution of a workload processing pipeline on a computing infrastructure | |
US10965597B2 (en) | Virtual network function load balancer | |
CN107016480A (zh) | 任务调度方法、装置及系统 | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
CN107809473A (zh) | 一种控制服务器部署的方法和装置 | |
CN111399968B (zh) | 一种基于容器的虚拟资源管理方法、装置及系统 | |
CN107479984A (zh) | 基于消息的分布式空间数据处理系统 | |
CN107704310A (zh) | 一种实现容器集群管理的方法、装置和设备 | |
US9325576B2 (en) | Dynamic server to server configuration and initialization | |
US9501303B1 (en) | Systems and methods for managing computing resources | |
EP3316518B1 (en) | Method and device for upgrading virtual network element, and computer storage medium | |
CN105930945A (zh) | 一种业务处理方法及装置 | |
CA2954262C (en) | Control in initiating atomic tasks on a server platform | |
CN105653347B (zh) | 一种服务器、资源管理方法及虚拟机管理器 | |
CN116737560B (zh) | 基于智能导控的智慧训练系统 | |
CN103617077B (zh) | 智能型云端化移转的方法与系统 | |
CN104834565B (zh) | 一种系统服务动态部署方法及装置 | |
EP4109255A1 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
CN113326098A (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |