虚拟机迁移方法及装置制造方法
【专利摘要】本发明公开了一种虚拟机迁移方法及装置,属于云计算【技术领域】。方法包括:确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标物理服务器;生成每个待迁移虚拟机的索引文件;根据生成的索引文件确定多个待迁移虚拟机之间相同的内存页;选择一个目标物理服务器,将目标物理服务器确定为第一目标物理服务器;将相同的内存页发送至第一目标物理服务器,并由第一目标物理服务器将相同的内存页发送至第二目标物理服务器。本发明根据每个待迁移虚拟机的索引文件确定多个待迁移虚拟机之间相同的内存页,将相同的内存页发送至第一目标物理服务器,由第一目标物理服务器将其发送至第二目标物理服务器,从而节省网络带宽,缩短了迁移时间。
【专利说明】虚拟机迁移方法及装置
【技术领域】
[0001] 本发明涉及云计算【技术领域】,特别涉及一种虚拟机迁移方法及装置。
【背景技术】
[0002] 虚拟机技术通过软件模拟具有完整系统功能的计算机系统,可实现在一台物理服 务器上运行多个虚拟机。在该物理服务器需要进行维护或过负载的情况时,为方便进行运 维管理,需将该物理服务器上的全部或部分虚拟机迁移到其他物理服务器上。
[0003] 现有技术在进行虚拟机迁移时,通常采用分别迁移的迁移方式,即将源物理服务 器上的每个待迁移虚拟机的全部内存页均迁移到与其对应的目标物理服务器上,直至所有 的待迁移虚拟机迁移完毕。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005] 由于在将源物理服务器上的待迁移虚拟机迁移到多台目标物理服务器的过程中, 每次需将一个虚拟机的全部内存页进行迁移,而各个虚拟机之间会存在很多相同的内存 页,因此,在整体迁移过程中将多次传输相同的内存页,不但浪费了网络带宽,而且加长了 总迁移时间。
【发明内容】
[0006] 为了解决现有技术的问题,本发明实施例提供了一种虚拟机迁移方法及装置。所 述技术方案如下:
[0007] -方面,提供了一种虚拟机迁移方法,所述方法包括:
[0008] 确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标物 理服务器;
[0009] 生成所述每个待迁移虚拟机的索引文件;
[0010] 根据生成的索引文件确定所述多个待迁移虚拟机之间相同的内存页;
[0011] 选择一个目标物理服务器,将所述目标物理服务器确定为第一目标物理服务器;
[0012] 将所述相同的内存页发送至所述第一目标物理服务器,并由所述第一目标物理服 务器将所述相同的内存页发送至第二目标物理服务器,所述第二目标物理服务器为除所述 第一目标物理服务器之外的其他目标物理服务器。
[0013] 进一步地,所述确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相 对应的目标物理服务器之前,所述方法还包括:
[0014] 预先设置源物理服务器上每个待迁移虚拟机与目标物理服务器之间的对应关系 表,并将所述对应关系表进行存储;
[0015] 所述确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目 标物理服务器,包括 :
[0016] 在预先存储的所述对应关系表中查找与每个待迁移虚拟机相对应的目标物理服 务器。
[0017] 进一步地,所述生成所述每个待迁移虚拟机的索引文件,包括:
[0018] 对于所述多个待迁移虚拟机中的一个待迁移虚拟机,计算所述待迁移虚拟机的全 部内存页的哈希值;
[0019] 对所述待迁移虚拟机的内存页与计算得到的内存页哈希值之间的对应关系进行 统计,得到所述待迁移虚拟机的索引文件。
[0020] 进一步地,所述根据生成的索引文件确定所述多个待迁移虚拟机之间相同的内存 页,包括:
[0021] 将多个索引文件中的全部哈希值进行比较;
[0022] 如果所述多个索引文件中均具有相同哈希值,则将所述相同哈希值对应的内存页 确定为所述多个待迁移虚拟机之间相同的内存页。
[0023] 进一步地,所述将所述相同的内存页发送至所述第一目标物理服务器之后,所述 方法还包括:
[0024] 对于所述多个待迁移虚拟机中的一个待迁移虚拟机,将所述待迁移虚拟机的除所 述相同的内存页之外的其他内存页发送至与所述待迁移主机相对应的目标物理服务器。
[0025] 进一步地,所述对于所述多个待迁移虚拟机中的一个待迁移虚拟机,将所述待迁 移虚拟机的除所述相同的内存页之外的其他内存页发送至与所述待迁移主机相对应的目 标物理服务器之后,所述方法还包括:
[0026] 将所述第一目标物理服务器的地址发送至所述第二目标物理服务器,以使所述第 二目标物理服务器从所述第一目标物理服务器中获取所述相同的内存页。
[0027] 进一步地,所述将所述相同的内存页发送至所述第一目标物理服务器之后,所述 方法还包括:
[0028] 向所述第一目标物理服务器发送通知消息,所述通知消息中携带所述第二目标物 理服务器的地址,以使所述第一目标物理服务器根据所述通知消息将所述相同的内存页发 送至所述第二目标物理服务器。
[0029] 另一方面,提供了 一种虚拟机迁移装置,所述装置包括:
[0030] 第一确定模块,用于确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟 机相对应的目标物理服务器;
[0031] 生成模块,用于生成所述每个待迁移虚拟机的索引文件;
[0032] 第二确定模块,用于根据所述生成模块生成的索引文件确定所述多个待迁移虚拟 机之间相同的内存页;
[0033] 第三确定模块,用于选择一个目标物理服务器,将所述目标物理服务器确定为第 一目标物理服务器;
[0034] 第一发送模块,用于将所述第二确定模块确定的相同的内存页发送至所述第一目 标物理服务器,以由所述第一目标物理服务器将所述相同的内存页发送至第二目标物理服 务器,所述第二目标物理服务器为除所述第一目标物理服务器之外的其他目标物理服务 器。
[0035] 进一步地,所述装置还包括:
[0036] 设置模块,用于预先设置源物理服务器上每个待迁移虚拟机与目标物理服务器之 间的对应关系表;
[0037] 存储模块,用于将所述设置模块设置的源物理服务器上每个待迁移虚拟机与目标 物理服务器之间的对应关系表进行存储;
[0038] 所述第一确定模块,用于在所述存储模块预先存储的所述对应关系表中查找与每 个待迁移虚拟机相对应的目标物理服务器。
[0039] 进一步地,所述生成模块,包括:
[0040] 计算单元,用于对于所述多个待迁移虚拟机中的一个待迁移虚拟机,计算所述待 迁移虚拟机的全部内存页的哈希值;
[0041] 统计单元,用于对所述待迁移虚拟机的内存页与计算得到的内存页哈希值之间的 对应关系进行统计,得到所述待迁移虚拟机的索引文件。
[0042] 进一步地,所述第二确定模块,包括:
[0043] 比较单元,用于将多个索引文件中的全部哈希值进行比较;
[0044] 确定单元,用于当所述比较单元比较出多个索引文件中均具有相同哈希值时,将 所述相同哈希值对应的内存页确定为所述多个待迁移虚拟机之间相同的内存页。
[0045] 进一步地,所述装置还包括:
[0046] 第二发送模块,用于对于所述多个待迁移虚拟机中的一个待迁移虚拟机,将所述 待迁移虚拟机的除所述相同的内存页之外的其他内存页发送至与所述待迁移主机相对应 的目标物理服务器。
[0047] 进一步地,所述装置还包括:
[0048] 第三发送模块,用于将所述第一目标物理服务器的地址发送至所述第二目标物理 服务器,以使所述第二目标物理服务器从所述第一目标物理服务器中获取所述相同的内存 页。
[0049] 进一步地,所述装置还包括:
[0050] 第四发送模块,用于向所述第一目标物理服务器发送通知消息,所述通知消息中 携带所述第二目标物理服务器的地址,以使所述第一目标物理服务器根据所述通知消息将 所述相同的内存页发送至所述第二目标物理服务器。
[0051] 本发明实施例提供的技术方案带来的有益效果是:
[0052] 在确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标 物理服务器后,生成每个待迁移虚拟机的索引文件,并根据生成的索引文件确定多个待迁 移虚拟机之间相同的内存页,之后选择一个第一目标物理服务器,并将相同的内存页发送 至第一目标物理服务器,并由第一目标物理服务器将相同的内存页发送至第二目标物理服 务器,从而实现相同的内存页仅由源物理服务器传输一次,不但节省了网络带宽,减轻了源 物理服务器的负担,且缩短了总迁移时间。
【专利附图】
【附图说明】
[0053] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0054] 图1是本发明实施例一提供的一种虚拟机迁移的方法流程图;
[0055] 图2是本发明实施例二提供的一种虚拟机迁移的方法流程图;
[0056] 图3是本发明实施例三提供的第一种虚拟机迁移的装置结构示意图;
[0057] 图4是本发明实施例三提供的第二种虚拟机迁移的装置结构示意图;
[0058] 图5是本发明实施例三提供的一种生成模块的内部结构示意图;
[0059] 图6是本发明实施例三提供的一种第二确定模块的内部结构示意图;
[0060] 图7是本发明实施例三提供的第三种虚拟机迁移的装置结构示意图;
[0061] 图8是本发明实施例三提供的第四种虚拟机迁移的装置结构示意图;
[0062] 图9是本发明实施例三提供的第五种虚拟机迁移的装置结构示意图。
【具体实施方式】
[0063] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0064] 实施例一
[0065] 本发明提供了一种虚拟机迁移的方法,参见图1,本实施例提供的方法流程包括:
[0066] 101 :确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目 标物理服务器。
[0067] 进一步地,确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应 的目标物理服务器之前,该方法还包括:
[0068] 预先设置源物理服务器上每个待迁移虚拟机与目标物理服务器之间的对应关系 表,并将对应关系表进行存储;
[0069] 确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标物 理服务器,包括但不限于:
[0070] 在预先存储的对应关系表中查找与每个待迁移虚拟机相对应的目标物理服务器。
[0071] 102 :生成每个待迁移虚拟机的索引文件。
[0072] 进一步地,生成每个待迁移虚拟机的索引文件,包括但不限于:
[0073] 对于多个待迁移虚拟机中的一个待迁移虚拟机,计算待迁移虚拟机的全部内存页 的哈希值;
[0074] 对待迁移虚拟机的内存页与计算得到的内存页哈希值之间的对应关系进行统计, 得到待迁移虚拟机的索引文件。
[0075] 103 :根据生成的索引文件确定多个待迁移虚拟机之间相同的内存页。
[0076] 进一步地,根据生成的索引文件确定多个待迁移虚拟机之间相同的内存页,包括 但不限于:
[0077] 将多个索引文件中的全部哈希值进行比较;
[0078] 如果多个索引文件中均具有相同哈希值,则将相同哈希值对应的内存页确定为多 个待迁移虚拟机之间相同的内存页。
[0079] 104 :选择一个目标物理服务器,将目标物理服务器确定为第一目标物理服务器。
[0080] 105:将相同的内存页发送至第一目标物理服务器,并由第一目标物理服务器将相 同的内存页发送至第二目标物理服务器,第二目标物理服务器为除第一目标物理服务器之 外的其他目标物理服务器。
[0081] 进一步地,将相同的内存页发送至第一目标物理服务器之后,该方法还包括:
[0082] 对于多个待迁移虚拟机中的一个待迁移虚拟机,将待迁移虚拟机的除相同的内存 页之外的其他内存页发送至与待迁移主机相对应的目标物理服务器。
[0083] 进一步地,对于多个待迁移虚拟机中的一个待迁移虚拟机,将待迁移虚拟机的除 相同的内存页之外的其他内存页发送至与待迁移主机相对应的目标物理服务器之后,该方 法还包括:
[0084] 将第一目标物理服务器的地址发送至第二目标物理服务器,以使第二目标物理服 务器从第一目标物理服务器中获取相同的内存页。
[0085] 进一步地,将相同的内存页发送至第一目标物理服务器之后,该方法还包括:
[0086] 向第一目标物理服务器发送通知消息,通知消息中携带第二目标物理服务器的地 址,以使第一目标物理服务器根据通知消息将相同的内存页发送至第二目标物理服务器。 [0087] 本实施例提供的方法,在确定与源物理服务器上多个待迁移虚拟机中每个待迁移 虚拟机相对应的目标物理服务器后,生成每个待迁移虚拟机的索引文件,并根据生成的索 引文件确定多个待迁移虚拟机之间相同的内存页,之后选择一个第一目标物理服务器,并 将相同的内存页发送至第一目标物理服务器,并由第一目标物理服务器将相同的内存页发 送至第二目标物理服务器,从而实现相同的内存页仅由源物理服务器传输一次,不但节省 了网络带宽,减轻了源物理服务器的负担,且缩短了总迁移时间。
[0088] 实施例二
[0089] 本发明实施例提供了一种虚拟机迁移的方法,现结合上述实施例所提供的虚拟机 迁移的方式,对本实施例提供的虚拟机迁移方法进行详细地解释说明。参见图2,本实施例 提供的方法流程包括:
[0090] 201 :预先设置源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机与目标物 理服务器之间的对应关系表,并将对应关系表进行存储。
[0091] 针对该步骤,在设置源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机与目 标物理服务器之间的对应关系表时,可依据源物理服务器管理员的指示而设置。也即,针对 每个待迁移虚拟机来说,由源物理服务器管理员为其指定目标物理服务器,进而根据源物 理服务器管理员的指示生成多个待迁移虚拟机中每个待迁移虚拟机与目标物理服务器之 间的对应关系表。
[0092] 进一步地,在设置源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机与目标 物理服务器之间的对应关系表时,还可依据各个目标物理服务器的负载情况而设置。如果 某一目标物理服务器的负载情况良好,也即该目标物理服务器的运行速度较高,则可将该 目标物理服务器作为数十个待迁移虚拟机的目标物理服务器;如果某一目标物理服务器的 负载情况较差,也即该目标物理服务器的运行速度缓慢,则可将该目标物理服务器作为一 个或几个待迁移虚拟机的目标物理服务器。
[0093] 以源物理服务器上存在10个待迁移虚拟机,分别以符号1至10进行标识,有两台 目标物理服务器,分别以符号A和符号B进行标识,且目标物理服务器A的负载情况良好, 目标物理服务器B的负载情况较差为例,则在设置源物理服务器上多个待迁移虚拟机中每 个待迁移虚拟机与目标物理服务器之间的对应关系表时,可将目标物理服务器A作为10个 待迁移虚拟机中的大部分(比如,8个,待迁移虚拟机1-8)待迁移虚拟机的目标物理服务 器,而将目标物理服务器B作为10个待迁移虚拟机中其余部分(比如,2个,待迁移虚拟机 9-10)的目标物理服务器。因此,可设置如下形式的对应关系表:
[0094] 表 1
[0095]
【权利要求】
1. 一种虚拟机迁移方法,其特征在于,所述方法包括: 确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标物理服 务器; 生成所述每个待迁移虚拟机的索引文件; 根据生成的索引文件确定所述多个待迁移虚拟机之间相同的内存页; 选择一个目标物理服务器,将所述目标物理服务器确定为第一目标物理服务器; 将所述相同的内存页发送至所述第一目标物理服务器,并由所述第一目标物理服务器 将所述相同的内存页发送至第二目标物理服务器,所述第二目标物理服务器为除所述第一 目标物理服务器之外的其他目标物理服务器。
2. 根据权利要求1所述的方法,其特征在于,所述确定与源物理服务器上多个待迁移 虚拟机中每个待迁移虚拟机相对应的目标物理服务器之前,所述方法还包括: 预先设置源物理服务器上每个待迁移虚拟机与目标物理服务器之间的对应关系表,并 将所述对应关系表进行存储; 所述确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相对应的目标物 理服务器,包括: 在预先存储的所述对应关系表中查找与每个待迁移虚拟机相对应的目标物理服务器。
3. 根据权利要求1所述的方法,其特征在于,所述生成所述每个待迁移虚拟机的索引 文件,包括: 对于所述多个待迁移虚拟机中的一个待迁移虚拟机,计算所述待迁移虚拟机的全部内 存页的哈希值; 对所述待迁移虚拟机的内存页与计算得到的内存页哈希值之间的对应关系进行统计, 得到所述待迁移虚拟机的索引文件。
4. 根据权利要求3所述的方法,其特征在于,所述根据生成的索引文件确定所述多个 待迁移虚拟机之间相同的内存页,包括: 将多个索引文件中的全部哈希值进行比较; 如果所述多个索引文件中均具有相同哈希值,则将所述相同哈希值对应的内存页确定 为所述多个待迁移虚拟机之间相同的内存页。
5. 根据权利要求1所述的方法,其特征在于,所述将所述相同的内存页发送至所述第 一目标物理服务器之后,所述方法还包括: 对于所述多个待迁移虚拟机中的一个待迁移虚拟机,将所述待迁移虚拟机的除所述相 同的内存页之外的其他内存页发送至与所述待迁移主机相对应的目标物理服务器。
6. 根据权利要求5所述的方法,其特征在于,所述对于所述多个待迁移虚拟机中的一 个待迁移虚拟机,将所述待迁移虚拟机的除所述相同的内存页之外的其他内存页发送至与 所述待迁移主机相对应的目标物理服务器之后,所述方法还包括: 将所述第一目标物理服务器的地址发送至所述第二目标物理服务器,以使所述第二目 标物理服务器从所述第一目标物理服务器中获取所述相同的内存页。
7. 根据权利要求1所述的方法,其特征在于,所述将所述相同的内存页发送至所述第 一目标物理服务器之后,所述方法还包括: 向所述第一目标物理服务器发送通知消息,所述通知消息中携带所述第二目标物理服 务器的地址,以使所述第一目标物理服务器根据所述通知消息将所述相同的内存页发送至 所述第二目标物理服务器。
8. -种虚拟机迁移装置,其特征在于,所述装置包括: 第一确定模块,用于确定与源物理服务器上多个待迁移虚拟机中每个待迁移虚拟机相 对应的目标物理服务器; 生成模块,用于生成所述每个待迁移虚拟机的索引文件; 第二确定模块,用于根据所述生成模块生成的索引文件确定所述多个待迁移虚拟机之 间相同的内存页; 第三确定模块,用于选择一个目标物理服务器,将所述目标物理服务器确定为第一目 标物理服务器; 第一发送模块,用于将所述第二确定模块确定的相同的内存页发送至所述第一目标 物理服务器,以由所述第一目标物理服务器将所述相同的内存页发送至第二目标物理服务 器,所述第二目标物理服务器为除所述第一目标物理服务器之外的其他目标物理服务器。
9. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 设置模块,用于预先设置源物理服务器上每个待迁移虚拟机与目标物理服务器之间的 对应关系表; 存储模块,用于将所述设置模块设置的源物理服务器上每个待迁移虚拟机与目标物理 服务器之间的对应关系表进行存储; 所述第一确定模块,用于在所述存储模块预先存储的所述对应关系表中查找与每个待 迁移虚拟机相对应的目标物理服务器。
10. 根据权利要求8所述的装置,其特征在于,所述生成模块,包括: 计算单元,用于对于所述多个待迁移虚拟机中的一个待迁移虚拟机,计算所述待迁移 虚拟机的全部内存页的哈希值; 统计单元,用于对所述待迁移虚拟机的内存页与计算得到的内存页哈希值之间的对应 关系进行统计,得到所述待迁移虚拟机的索引文件。
11. 根据权利要求10所述的装置,其特征在于,所述第二确定模块,包括: 比较单元,用于将多个索引文件中的全部哈希值进行比较; 确定单元,用于当所述比较单元比较出多个索引文件中均具有相同哈希值时,将所述 相同哈希值对应的内存页确定为所述多个待迁移虚拟机之间相同的内存页。
12. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 第二发送模块,用于对于所述多个待迁移虚拟机中的一个待迁移虚拟机,将所述待迁 移虚拟机的除所述相同的内存页之外的其他内存页发送至与所述待迁移主机相对应的目 标物理服务器。
13. 根据权利要求12所述的装置,其特征在于,所述装置还包括: 第三发送模块,用于将所述第一目标物理服务器的地址发送至所述第二目标物理服务 器,以使所述第二目标物理服务器从所述第一目标物理服务器中获取所述相同的内存页。
14. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 第四发送模块,用于向所述第一目标物理服务器发送通知消息,所述通知消息中携带 所述第二目标物理服务器的地址,以使所述第一目标物理服务器根据所述通知消息将所述 相同的内存页发送至所述第二目标物理服务器。
【文档编号】G06F9/455GK104156254SQ201410366188
【公开日】2014年11月19日 申请日期:2014年7月29日 优先权日:2014年7月29日
【发明者】张鹏, 张昕 申请人:北京高森明晨信息科技有限公司