CN104243427A - 虚拟机在线迁移方法、数据包传输方法和设备 - Google Patents
虚拟机在线迁移方法、数据包传输方法和设备 Download PDFInfo
- Publication number
- CN104243427A CN104243427A CN201310245242.2A CN201310245242A CN104243427A CN 104243427 A CN104243427 A CN 104243427A CN 201310245242 A CN201310245242 A CN 201310245242A CN 104243427 A CN104243427 A CN 104243427A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- address
- packet
- physical
- physical device
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种虚拟机在线迁移方法、数据包传输方法和设备,属于虚拟机领域。方法包括:接收迁移指令,迁移指令用于指示源虚拟机迁移至目的虚拟机管理器;获取源虚拟机的虚拟机数据,将源虚拟机的虚拟机数据以数据包的形式发送至目的虚拟机管理器,使得目的虚拟机管理器根据虚拟机数据创建虚拟机;当虚拟机数据发送完成时,将源虚拟机的虚拟机标识对应的物理设备地址更新为目的虚拟机管理器所在物理设备的物理设备地址。本发明可以在访问过程中根据虚拟机标识获取到变化后的物理设备地址,实现对迁移后的虚拟机的正确访问,避免了由于DNS设置不及时而导致的访问错误。
Description
技术领域
本发明涉及虚拟机领域,特别涉及一种虚拟机在线迁移方法、数据包传输方法和设备。
背景技术
随着数据服务的飞速发展,虚拟化技术越来越广泛的应用于数据中心。虚拟化技术是将物理设备分割为多个互相隔离的逻辑分区,并通过虚拟机管理器(Hypervisor)在每个逻辑分区中模拟出一个具有完整硬件的***,这种模拟出的每一个完整硬件***即是一个虚拟机,一个虚拟机管理器可以管理多个虚拟机,数据中心可通过虚拟机管理器应用多个虚拟机在同一台物理设备上运行多个不同的操作***。
当需要对虚拟机或物理设备进行升级或数据转移等操作时,需要对虚拟机进行在线迁移。该在线迁移是指在维持虚拟机的操作***正常运行的情况下,将一个虚拟机的虚拟机数据复制到另一个虚拟机的过程。其中,被复制的对象为源虚拟机,复制后传输的目标为目的虚拟机。该过程如具体可以由以下的数据包转发过程实现:源虚拟机管理器根据目的虚拟机的IP(Internet Protocol,网络之间互连的协议)地址以及目的物理设备的MAC地址对待发送数据进行封装;源虚拟机管理器通过与目的虚拟机管理器之间建立的IP通道转发数据包,当目的虚拟机管理器接收到数据包时,将数据包发送给目的虚拟机。
上述在线迁移过程一般是在数据链路层面进行。在该在线迁移过程中,源虚拟机所在的物理设备与目的虚拟机所在的物理设备处于同一局域网中。
然而,随着数据中心的规模越来越大,简单的二层组网显然不能满足数据中心的需要,而必然是一个层次型的三层组网,因此跨子网的虚拟机迁移技术成为必然的需求。当需要在跨局域网的数据中心中进行虚拟机在线迁移时,其在线迁移过程即涉及到了网络层。由于源虚拟机所在的物理设备与目的虚拟机所在的物理设备不在同一个局域网中,会引起虚拟机IP地址的变化。而由于DNS(Domain Name System,域名***)不能够实时随着虚拟机IP地址的变化而更新域名与IP地址的映射,会使得在虚拟机在线迁移后,源虚拟机用户的访问仍然发送至源虚拟机,导致源虚拟机用户的访问错误,影响虚拟机的正常运行。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种虚拟机在线迁移方法、数据包传输方法和设备。所述技术方案如下:
第一方面,提供了一种虚拟机在线迁移方法,所述方法包括:
接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;
获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;
当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址之后,所述方法还包括:
将所述目的虚拟机管理器所在物理设备的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
接收迁移指令之前,所述方法还包括:
根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
第二方面,提供了一种数据包传输方法,所述方法包括:
接收到第一数据包,所述第一数据包包头的目标地址段包括第一虚拟机标识;
根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;
以所述第一物理设备地址为目标地址段对所述第一数据包进行封装,得到第二数据包;
将所述第二数据包转发至所述第一物理设备地址,使得所述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址包括:
向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
接收所述指定装置返回的第一物理设备地址。
所述方法还包括:
接收第三数据包,所述第三数据包包头的目标地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址;
解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
接收到第一数据包之前,所述方法还包括:
根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
第三方面,一种虚拟机管理装置,所述装置包括:
接收模块,用于接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;
迁移模块,用于获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管 理器根据所述虚拟机数据创建虚拟机;
更新模块,用于当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
所述装置还包括:
发送模块,用于将所述目的虚拟机管理器所在物理设备的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
第四方面,提供了一种数据包传输装置,所述装置包括:
接收模块,用于接收到第一数据包,所述第一数据包包头的目标地址段包括第一虚拟机标识;
物理设备地址获取模块,用于根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;
封装模块,用于以所述第一物理设备地址为目标地址段对所述第一数据包进行封装,得到第二数据包;
发送模块,用于将所述第二数据包转发至所述第一物理设备地址,使得所 述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
所述物理设备地址获取模块用于触发所述发送模块向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
所述接收模块,还用于接收所述指定装置返回的第一物理设备地址。
所述接收模块还用于接收第三数据包,所述第三数据包包头的目标地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址;
解封装模块,用于解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
所述发送模块,用于将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
第五方面,提供了一种映射关系处理方法,所述方法包括:
接收设备的获取请求,所述获取请求携带至少一个虚拟机标识;
根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址;
向所述设备发送所述虚拟机标识对应的物理设备地址。
该方法还包括:
接收设备的更新请求,所述更新请求携带指定虚拟机标识和物理设备地址;
将所述虚拟机标识与物理设备地址的映射关系中与所述指定虚拟机标识对应的物理设备地址更新为所述更新请求携带的物理设备地址。
第六方面,提供了一种指定装置,所述装置包括:
请求接收模块,用于接收设备的获取请求,所述获取请求携带至少一个虚拟机标识;
获取模块,用于根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址;
发送模块,用于向所述设备发送所述虚拟机标识对应的物理设备地址。
所述请求接收模块还用于接收设备的更新请求,所述更新请求携带指定虚拟机标识和物理设备地址;
所述装置还包括:
更新模块,用于将所述虚拟机标识与物理设备地址的映射关系中与所述指定虚拟机标识对应的物理设备地址更新为所述更新请求携带的物理设备地址。
第七方面,提供了一种数据中心***,包括:
虚拟机管理装置,用于接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;获取所述源虚拟机的虚拟机数据, 将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址;
指定装置,用于存储虚拟机标识与物理设备地址的映射关系,当接收到获取请求,根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址,并返回所述虚拟机标识对应的物理设备地址。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的虚拟机在线迁移方法、数据包传输方法和设备,通过向源虚拟机发送迁移指令,所述迁移指令用于指示所述源虚拟机向目的虚拟机进行迁移,所述源虚拟机所在物理设备与所述目的虚拟机所在物理设备属于数据中心的不同子网络;接收所述源虚拟机发送的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机;当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机对应的物理设备地址。采用本发明实施例提供的技术方案,通过在虚拟机的数据迁移结束时,更新源虚拟机的虚拟机标识对应的物理设备地址,由于虚拟机标识未发生变化,因此,可以在访问过程中根据虚拟机标识获取到变化后的物理设备地址,实现对迁移后的虚拟机的正确访问,避免了由于DNS设置不及时而导致的访问错误。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种虚拟机在线迁移方法的流程图;
图2是本发明实施例提供的一种数据中心架构示意图;
图3为基于图2的数据中心架构的虚拟机在线迁移方法的流程图;
图4a是本发明实施例提供的一种数据包传输方法的流程图;
图4b是本发明实施例提供的一种数据包格式的示意图;
图4c是本发明实施例提供的另一种数据包格式的示意图;
图5是本发明实施例提供的另一种数据包传输方法的流程图;
图6是本发明实施例提供的一种网关侧的数据包传输方法的流程图;
图7是本发明实施例提供的另一种网关侧的数据包传输方法的流程图;
图8是本发明实施例提供以虚拟机之间的数据交互为例的一种数据包传输方法的流程图;
图9是本发明实施例提供的一种虚拟机管理装置的功能方框图;
图10是本发明实施例提供的一种数据包传输装置的功能方框图;
图11是本发明实施例提供的一种指定装置的功能方框图;
图12是本发明实施例提供的一种数据中心***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种虚拟机在线迁移方法的流程图。该发明实 施例的执行主体为虚拟机管理装置,如,虚拟机管理软件Hypervisor等。而为了便于说明,本发明实施例仅以该虚拟机管理装置为源虚拟机管理器为例进行描述。参见图1,该发明实施例包括:
101、接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;
数据中心在需要进行跨子网络的虚拟机迁移的场景中,由数据中心向源虚拟机管理器配置待迁移的源虚拟机以及迁移的目的虚拟机,源虚拟机管理器接收数据中心的迁移指令,该迁移指令至少携带目的虚拟机的虚拟机名称(如域名或设备名称),使得源虚拟机管理器能够根据迁移指令将源虚拟机上的虚拟机数据迁移至目的虚拟机。
在本发明实施例中,每个虚拟机标识是该虚拟机面向用户的唯一标识,该虚拟机标识可以由数据中心统一分配。优选地,虚拟机标识可以为IP地址,在后续实施例中均以该虚拟机标识为IP地址为例进行说明。
102、获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;
其中,虚拟机数据包括但不限于虚拟机的物理内存和运行状态。在迁移过程中,作为一种将源虚拟机的虚拟机数据发送至目的虚拟机的方式,可以采用如下方法:源虚拟机管理器根据目的虚拟机的IP地址以及目的物理地址的MAC地址对待发送数据进行封装,并将封装后的数据包向目的物理地址发送,经过路由转发,由目的虚拟机管理器接收数据包并将数据包发送给目的虚拟机。
虚拟机迁移的过程实际上是迁移前后两个物理机器上的虚拟机管理器之间 的交互过程,与虚拟机本身无关。虚拟机迁移时,迁移数据的是由虚拟机管理器负责封装并从物理设备的端口发送出去,跟虚拟机本身无关,虚拟机本身并不知道自己将要被迁移或者已经被迁移。
需要说明的是,源虚拟机的虚拟机数据可以分为多个数据包进行发送,每个数据包包括指定大小的数据,该指定大小可以由技术人员在***配置时设置,还可以由源虚拟机管理器根据网络情况设置。如,为了避免虚拟机管理器对报文加封装后而使得报文超出了MTU(Maximum Transmission Unit,最大传输单元)被分片,虚拟机上的MTU可以相应设的小一些,设为物理设备的MTU减去8个字节。
103、当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
当虚拟机数据发送完成且物理设备地址更新后,该虚拟机在线迁移过程结束。在该在线迁移过程后,数据中心中的用户访问以及虚拟机的互相访问将依据虚拟机标识以及虚拟机标识对应的更新后的物理设备地址进行。具体地,数据中心用户或数据中心内的其他虚拟机通过查询DNS,获取访问目标虚拟机的IP地址,由于DNS解析得到的IP地址可看做是虚拟机的虚拟机标识,对于访问者来说,即是通过DNS的解析得到该源虚拟机的虚拟机标识,并以该虚拟机标识为目的地址进行发送。而由于该源虚拟机的虚拟机标识对应的物理设备地址在迁移后已经更新,因此,以该虚拟机标识为目的地址进行发送时,虚拟机管理器会将数据转发至更新后的物理设备地址,更新后的物理设备地址上的虚拟机处于正常运行状态,也就不会发生由于迁移前后物理设备地址发生变化而造成的访问错误。
本发明实施例提供的方法,通过在虚拟机的数据迁移结束时,更新源虚拟 机的虚拟机标识对应的物理设备地址,由于虚拟机标识未发生变化,因此,可以在访问过程中根据虚拟机标识获取到变化后的物理设备地址,实现对迁移后的虚拟机的正确访问,避免了由于DNS设置不及时而导致的访问错误。
在虚拟机迁移过程结束时,作为数据中心用户的某些通信节点可能正处于与该源虚拟机交互过程中,该交互通过通信节点与源物理设备之间的基于IP地址的通信连接进行,而为了保证这些通信节点的通信连接不受虚拟机迁移中物理设备地址变化的影响,需要向通信节点发送该更新后的物理设备地址,以便通信节点根据更新后的物理设备地址及时更改其通信连接,保证通信不中断。因此,可选地,基于图1所示实施例的技术方案的基础上,该步骤103“将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机对应的物理设备地址”之后,所述方法还包括以下步骤104:
104、将所述目的虚拟机对应的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
在步骤103的更新之后,源虚拟机管理器根据当前正在访问源虚拟机的通信节点的IP地址,向该通信节点发送目的虚拟机对应的物理设备地址,当通信节点接收到更新后的物理设备地址时,及时更新与虚拟机的通信连接的目标IP地址,以更新后的物理设备地址作为访问的目标IP地址继续访问虚拟机,以避免发生访问中断的情况。
本发明实施例提供的方法,通过在虚拟机的数据迁移结束时,更新源虚拟机的虚拟机标识对应的物理设备地址,由于虚拟机标识未发生变化,因此,可以在访问过程中根据虚拟机标识获取到变化后的物理设备地址,实现对迁移后的虚拟机的正确访问,避免了由于DNS设置不及时而导致的访问错误。进一步 地,通过将更新的物理设备地址及时通知给正在访问源虚拟机的通信节点,保证了通信节点的通信连接不受到物理设备地址更改的影响,能够完成在迁移结束时未完成的正常访问。
可选地,在本发明实施例中,虚拟机标识与物理设备地址的映射关系用于维护作为虚拟机标识的IP地址与该虚拟机标识对应的虚拟机当前所在物理设备的IP地址的映射关系。该映射关系可以保存在指定装置中,该指定装置可以为独立的设备或位于数据中心的某个控制设备的功能模块。上述步骤103中的“当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址”包括:源虚拟机管理器向指定装置发送更新请求,该更新请求携带虚拟机标识以及物理设备地址,使得指定装置根据将该虚拟机标识对应的物理设备地址更新为更新请求所携带的物理设备地址。
可选地,基于图1所示实施例的技术方案的基础上,源虚拟机管理器接收迁移指令之前,所述方法还包括以下步骤1001、1002:
1001、根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
数据中心包括多个IP池,数据中心根据物理设备的拓扑分布和物理位置,为物理设备分配IP地址池,在该IP地址池中为该物理设备分配IP地址。
1002、根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
在本发明实施例中,一个物理设备上可以运行多个虚拟机,从同一IP地址池中为多个虚拟机分别分配IP地址。如,为物理设备分配的IP地址为201.1.1.1, 则可从该IP地址所在IP段201.1.1.1~201.1.1.254中为该物理设备上运行的虚拟机任意分配虚拟机标识。
进一步地,为了提高IP地址的利用率,物理设备和其运行的一个虚拟机可以复用同一IP地址池,即,同一个32bit的IP地址即可以是某个物理设备的IP地址,也可以是某个虚拟机的虚拟机标识。
本发明实施例提供的方法,通过在虚拟机的数据迁移结束时,更新源虚拟机的虚拟机标识对应的物理设备地址,由于虚拟机标识未发生变化,因此,可以在访问过程中根据虚拟机标识获取到变化后的物理设备地址,实现对迁移后的虚拟机的正确访问,避免了由于DNS设置不及时而导致的访问错误。进一步地,通过应用同一IP段,为物理设备以及其运行的虚拟机进行IP地址以及虚拟机标识的分配,为虚拟机迁移以及数据中心的运行提供了一种新数据传输模式。
为了便于对本发明实施例进一步了解,下面结合数据中心结构对本发明实施例的具体实现进行举例说明。
图2是本发明实施例提供的一种数据中心架构示意图。该数据中心至少包括:位于子网络1的物理设备A,物理设备A上运行的虚拟机A1、A2和A3,该物理设备A上的虚拟机均由虚拟机管理器A0管理,位于子网络2的物理设备B,该物理设备B上的虚拟机均由虚拟机管理器B0管理,DNS和网关GW和指定装置LS,其中,网关DNS用于与数据中心以及外部网络交互,指定装置LS用于存储虚拟机标识和物理设备地址的映射关系。
图3为基于图2的数据中心架构的虚拟机在线迁移方法的流程图。以源虚拟机为虚拟机A1,目的虚拟机管理器为虚拟机管理器B0为例进行说明。
301、虚拟机管理器A0接收数据中心发送的迁移指令,该迁移指令用于指 示虚拟机A1进行迁移;
302、虚拟机管理器A0获取虚拟机A1的虚拟机数据,将虚拟机数据以数据包的形式发送至虚拟机管理器B0所在物理设备;
303、当虚拟机管理器B0接收到虚拟机数据,根据虚拟机数据创建虚拟机B1;
需要说明的是,在本发明实施例中,该待发送数据为虚拟机数据,优选地,为了避免数据转发压力过大,该待发送数据可以分多次发送,而本发明实施例的步骤302仅是以一次发送为例进行说明。
304、当虚拟机数据发送完成时,虚拟机管理器A0向指定装置LS发送物理设备地址更新请求,该请求至少携带物理设备B的IP地址;
305、指定装置将虚拟机A1的虚拟机标识对应的物理设备地址更新为虚拟机B1对应的物理设备地址。
进一步可选地,在步骤305之后还可以包括:如果当前有通信节点正在访问虚拟机A1,将物理设备B的IP地址发送至正在访问虚拟机A1的通信节点,使得所述通信节点根据更新后的IP地址继续访问物理设备B上迁移后的虚拟机。
进一步可选地,在上述在线迁移的过程中,当数据中心外部的通信节点发起向虚拟机A1的访问时,该方法还可以包括以下步骤:通信节点向网关发送第一数据包时,该数据包携带虚拟机A1的虚拟机标识和通信节点的IP地址;网关接收到第一数据包,向指定装置发送获取请求,该获取请求携带虚拟机A1的虚拟机标识;指定装置LS根据虚拟机A1的虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取物理设备A的IP地址;指定装置LS向网关返回该物理设备A的IP地址;网关以物理设备A的IP地址和网关自身的IP地址为 包头对第一数据包进行封装,得到第二数据包;网关根据物理设备A的IP地址,将所述第二数据包转发至物理设备A的IP地址;当虚拟机管理器A0截获该第二数据包时,解封装该第二数据包并移除包头;虚拟机管理器A0将移除包头的数据包发送至虚拟机A。
在大规模数据中心的运营过程中,不仅存在来自数据中心外部网络的用户访问,还主要存在数据中心中虚拟机与虚拟机之间的互访,由于本发明实施例中配置了虚拟机标识与物理设备地址的映射关系,因此,在该映射关系的基础上,本发明实施例提供了一种数据包传输方法。参见图4a,该发明实施例具体包括:
401、接收到第一数据包,所述第一数据包包头的目标地址段包括第一虚拟机标识;
其中,该第一数据包可以为数据中心的网关接收到的来自外部网络的数据包,还可以为数据中心中一台虚拟机向另一台虚拟机发送的数据包。
当第一数据包为数据中心的网关接收到的来自外部网络的数据包时,该第一数据包包头的目标地址段包括第一虚拟机标识,该第一数据包包头的源地址段包括访问用户的IP地址。当第一数据包为数据中心中一台虚拟机向另一台虚拟机发送的数据包,该第一数据包包头的目标地址段包括第一虚拟机标识,该第一数据包包头的源地址段包括作为第二虚拟机标识,该第二虚拟机标识为发送端虚拟机标识。
402、根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;
在发明实施例中,当第一数据包为数据中心的网关接收到的来自外部网络 的数据包时,该步骤402具体包括:访问用户查询DNS获取第一虚拟机标识,由于第一虚拟机标识本质上是一个可路由的IP地址,而该IP地址位于数据中心内,因此用第一虚拟机标识作为目的IP地址,可以将数据包逐跳发送,最终到达数据中心的网关。网关通过外部物理接口接收到第一数据包,该第一数据包包头的目标地址段包括第一虚拟机标识,该第一数据包包头的源地址段包括访问用户的IP地址,网关根据第一虚拟机标识,查询虚拟机标识与物理设备地址的映射关系,获取与该第一虚拟机标识对应的第一物理设备地址。需要说明的是,对于网关来说,可以将从外部物理接口接收到的数据包包头中所携带的IP地址均看做是虚拟机标识。
在发明实施例中,当第一数据包为数据中心中的第二虚拟机向第一虚拟机发送的数据包时,该步骤402具体包括:
第二虚拟机查询DNS获取第一虚拟机标识,并获取第二虚拟机管理器的MAC地址,根据MAC地址、第二虚拟机标识和第一虚拟机标识对待发送数据进行封装。第二虚拟机将封装后的第一数据包发送至第二虚拟机管理器。当第二虚拟机管理器接收到第一数据包时,该第一数据包包头的目标地址段包括第一虚拟机标识,该第一数据包包头的源地址段包括作为第二虚拟机标识,该第二虚拟机标识为发送端虚拟机标识,根据该第一数据包携带的第一虚拟机标识和第二虚拟机标识从虚拟机标识与物理设备地址的映射关系中,获取第一物理设备地址和第二物理设备地址,该第一物理设备地址为第一虚拟机当前所在物理设备的IP地址。其中,第二虚拟机获取第二虚拟机管理器的MAC地址的步骤包括:第二虚拟机向第二虚拟机管理器发送ARP(Address Resolution Protocol,地址解析协议)报文,第二虚拟机管理器返回自身的MAC地址。
该步骤403中的数据包的格式可参见图4b所示,其中,数据包包头包括第 一虚拟机标识和第二虚拟机标识。需要说明的是,该图4b所示的数据包格式仅是用于表示数据包的包头所封装的内容,并不涉及该数据包的编码或压缩格式。
403、以所述第一物理设备地址为包头对所述第一数据包进行封装,得到第二数据包;
在本发明实施例中,当第一数据包为数据中心的网关接收到的来自外部网络的数据包时,该步骤403具体包括:将网关自身的物理设备地址获取为第二物理地址,以第一物理设备地址和第二物理设备地址为包头对第一数据包进行封装,得到第二数据包。
在本发明实施例中,当第一数据包为数据中心中一台虚拟机向另一台虚拟机发送的数据包时,该步骤403具体包括:以第一物理设备地址和第二物理设备地址为包头对第一数据包进行封装,得到第二数据包。
当第二虚拟机管理器获取到第二物理设备地址和第一物理设备地址时,以所述第二物理设备地址和第一物理设备地址为包头对数据包进行再次封装,得到转发数据包。此时,数据包原来的包头中包括第二虚拟机标识和第一虚拟机标识,而通过该再次封装,在原有包头的基础上,添加了新的包头,也即是得到的转发数据包的包头不再是第二虚拟机标识和第一虚拟机标识,而是第二虚拟机所在物理设备和第一虚拟机所在物理设备的当前IP地址。
该转发数据包的格式可参见图4c所示,其中,转发数据包包头包括第二物理设备地址和第一物理设备地址。需要说明的是,该图4c所示的数据包格式仅是用于表示数据包的包头所封装的内容,并不涉及该数据包的编码或压缩格式。
404、将所述第二数据包转发至所述第一物理设备地址,使得所述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
第二虚拟机管理器根据转发数据包的包头中的第一物理设备地址,选择第二物理设备上与该第一物理设备地址相应的物理接口,将转发数据包从选中的物理接口转发至第一物理设备地址。而当转发数据包到达第一虚拟机管理器时,第一虚拟机管理器截获该转发数据包,对该转发数据包进行解封装,该解封装与第二虚拟机管理器的再次封装相对应,该解封装过程即是移除包头的过程,解封装后的数据包即是第二虚拟机管理器再次封装之前的数据包,解封装后的包头不再是第一物理设备地址和第二物理设备地址,而是第二虚拟机标识和第一虚拟机标识,第一虚拟机管理器根据该第一虚拟机标识,将移除包头的数据包发送至该第一虚拟机。
需要说明的是,该步骤401-404可以是在步骤101-103的迁移过程中进行,也即是当在虚拟机迁移过程中,源虚拟机接收到外部访问时,通过步骤401-403,将该外部访问转发给目的虚拟机,无需建立第一虚拟机和第二虚拟机之间的数据通道即能够保证虚拟机迁移过程中数据中心外部对虚拟机的正常访问,仅通过对数据包进行封装或解封装(即进行添加或移除包头)的方式,使得数据包能够在数据中心的子网络之间流转,提供了一种最优转发路径,缩短了数据传输耗时,提高了数据中心的处理效率。
另外,该步骤401-404还可以脱离步骤101-103的迁移过程进行,该第一虚拟机和第二虚拟机并不代表步骤101-103中所述的源虚拟机和目的虚拟机,而仅用于区分数据中心中有数据交互需求的两个虚拟机,仅通过对数据包进行封装或解封装(即进行添加或移除包头)方式,使得数据包能够在数据中心的子网络之间流转,提供了一种最优转发路径,缩短了数据传输耗时,提高了数据中心的处理效率。
本发明实施例所述的映射关系可以保存在指定装置中,该指定装置可以为独立的设备或位于数据中心的某个控制设备的功能模块。可选地,基于上述实施例的技术方案的基础上,该步骤402“根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址”包括以下步骤4011-4012:
4011、向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
该获取请求的发送方可以为数据中心网关或数据中心内任一个虚拟机,当数据中心网关接收从外部接口接收到数据包或数据中心内任一个虚拟机需要向其他虚拟机发送数据时,均可向指定装置发送获取请求,在本发明实施例中,仅以发送方为源虚拟机管理器为例进行说明。
其中,虚拟机标识(ID)以及物理设备地址(Locator)的映射关系可以如下表1所示,如以虚拟机标识为10.0.0.1查询指定装置,指定装置将根据该表1,返回物理设备地址12.0.0.1。
表1
虚拟机标识 | 物理设备地址 | |
1 | 10.0.0.1 | 12.0.0.1 |
2 | 11.0.0.3 | 20.0.0.2 |
4012、接收所述指定装置返回的第一物理设备地址。
需要说明的是,该获取请求可以携带至少一个待查询的虚拟机标识,指定装置根据接收到的虚拟机标识进行查询,向获取请求的发送方返回查询结果。
本发明实施例提供的方法提供了一种可以独立使用的指定装置作为数据中心的寻址工具,避免了由于DNS更新不及时而造成的访问错误。
上述图4所示的实施例以数据传输的发送端为例对数据包传输方法进行了描述,而与该图4所示实施例相应地,在此以数据传输的接收端为例对数据包传输方法进行说明,参见图5,所述方法包括以下步骤501-503:
501、接收第三数据包,所述第三数据包包头的目的地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址,所述第三数据包还携带所述第三虚拟机标识和所述第四虚拟机标识;
其中,该第三数据包可以为数据中心的网关接收到的来自数据中心内部任一虚拟机的数据包,还可以为数据中心中一台虚拟机向另一台虚拟机发送的数据包。
502、解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
在本发明实施例中,网关通过内部物理接口接收第三数据包,解封装该第三数据包,也即是移除所述第三数据包的包头,得到解封装后的第四数据包,此时,该第四数据包包头的目标地址段包括第三虚拟机标识,源地址段包括第四虚拟机标识,使得该接收到第三数据包的虚拟机管理器或网关能够根据目的地址段将第四数据包发送到目的地。
在本发明实施例中,步骤502中的解封装与步骤403中的封装为同一封装格式的正向应用和反向应用,本发明实施例对此不作详述。
503、将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
在本发明实施例中,当该第三数据包为数据中心的网关接收到的来自数据中心内部任一虚拟机的数据包时,该步骤503具体包括:网关通过外部物理接 口将第四数据包发送至第三虚拟机标识对应的IP地址。
在本发明实施例中,当该第三数据包为数据中心中一台虚拟机向另一台虚拟机发送的数据包时,该步骤503具体包括:第三虚拟机管理器将第四数据包发送至第三虚拟机标识对应的虚拟机。
由于对于数据中心外部的访问用户来说,该访问用户仅知道访问目标虚拟机的虚拟机标识,而不知道访问目标虚拟机的实际物理地址,通过网关对接收到的数据包进行添加或移除携带虚拟机所在物理设备地址的包头,能够使得访问用户能够仅根据虚拟机标识即可进行虚拟机访问。
可选地,基于图4所示实施例的技术方案的基础上,启动从源虚拟机向目的虚拟机的迁移之前,所述方法还包括以下步骤4001、4002:
4001、根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
4002、根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
该步骤4001-4002与步骤1001和1002同理,在此不再赘述。
本发明实施例提供的方法通过基于同一IP地址池,为物理设备以及其运行的虚拟机进行IP地址以及虚拟机标识的分配,为虚拟机迁移以及数据中心的运行提供了一种新数据传输模式。
为了更详细的说明上述数据包传输方法在数据中心接收到外部通信节点的访问中的应用,本发明实施例以通信节点对虚拟机A1进行访问为例对网关侧的数据包传输进行说明,参见图6,该方法包括:
600、根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识;
该步骤600在图中未示出,该步骤600可以在数据中心架构建立起来时执行,也可以在数据中心架构进行升级过程中执行,本发明实施例对此不做限定。
601、通信节点向网关发送第一数据包,该数据包包头的目标地址段包括虚拟机A1的虚拟机标识,数据包包头的源地址段包括通信节点的IP地址;
需要说明的是,对于通信节点来说,仅知道虚拟机的IP地址,也即是虚拟机标识,因此,该通信节点是以该虚拟机标识为目标地址发送数据包。
602、网关接收到第一数据包,向指定装置发送获取请求,该获取请求携带虚拟机A1的虚拟机标识;
603、指定装置LS根据虚拟机A1的虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取物理设备A的IP地址;
604、指定装置LS向网关返回该物理设备A的IP地址;
605、网关以物理设备A的IP地址和网关自身的IP地址为包头对第一数据包进行封装,得到第二数据包;
606、网关根据物理设备A的IP地址,将所述第二数据包转发至物理设备A的IP地址;
607、当虚拟机管理器A0截获该第二数据包时,解封装该第二数据包;
608、虚拟机管理器A0将移除包头的数据包发送至虚拟机A。
而对于数据中心内部的虚拟机向外部发送数据的情况,本发明实施例还在网关侧还提供了如图7所示的方法,以虚拟机B1向网关发送数据为例进行说明,参见图7,该方法包括:
701、虚拟机B1向网关发送第三数据包,所述第三数据包包头的目标地址段包括网关的IP地址,所述第三数据包包头的源地址段包括物理设备B的IP地址;
其中,该虚拟机B1向网关发送数据包的过程与上述实施例的发送同理,需通过虚拟机管理器B0进行,在此不再详述。
702、网关通过内部物理接口接收第三数据包,解封装该第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括目标通信节点的IP地址,所述第四数据包包头的源地址段包括虚拟机B1的虚拟机标识;
703、网关将第四数据包发送至目标通信节点。
由于对于数据中心外部的访问用户来说,该访问用户仅知道访问目标虚拟机的虚拟机标识,而不知道访问目标虚拟机的实际物理地址,通过网关对接收到的数据包进行封装或解封装(也即是添加或移除携带虚拟机所在物理设备地址的包头),能够使得访问用户能够仅根据虚拟机标识即可进行虚拟机访问。
为了更详细的说明上述数据包传输方法在数据中心接收到外部通信节点的访问中的应用,本发明实施例以虚拟机B1对虚拟机A1进行访问为例对网关侧的数据包传输进行说明,参见图8,该方法包括:
800、根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识;
该步骤800在图中未示出,该步骤800可以在数据中心架构建立起来时执行,也可以在数据中心架构进行升级过程中执行,本发明实施例对此不做限定。
801、虚拟机B1向虚拟机管理器B0发送第一数据包,该数据包的目标地址段包括虚拟机A1的虚拟机标识,源地址段包括虚拟机B1的虚拟机标识;
802、虚拟机管理器B0接收到第一数据包,向指定装置发送获取请求,该获取请求携带虚拟机A1的虚拟机标识和虚拟机B1的虚拟机标识;
803、指定装置LS根据虚拟机A1的虚拟机标识和虚拟机B1的虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取物理设备A的IP地址;
804、指定装置LS向网关返回该物理设备A的IP地址;
805、虚拟机管理器B0根据该物理设备A的IP地址和物理设备B的IP地址对第一数据包进行封装,得到第二数据包,该第二数据包的目标地址段为物理设备A的IP地址,源地址段为物理设备B的IP地址;
806、虚拟机管理器B0根据物理设备A的IP地址,将所述第二数据包转发至物理设备A的IP地址;
807、当虚拟机管理器A0截获该第二数据包时,解封装该第二数据包;
808、虚拟机管理器A0根据解封装后的数据包的目标地址段中的虚拟机标识,将解封装后的数据包发送至虚拟机A1。
图9是本发明实施例提供的一种虚拟机管理装置的功能方框图。参见图9,所述装置包括:接收模块901、迁移模块902和更新模块903。
其中,接收模块901用于接收迁移指令,所述迁移指令用于指示所述源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;接收模块901和迁移模块902连接,迁移模块902用于获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟 机管理器根据所述虚拟机数据创建虚拟机;迁移模块902和更新模块903连接,更新模块903用于当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
可选地,所述装置还包括:发送模块,用于将所述目的虚拟机管理器所在物理设备的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
可选地,所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
需要说明的是:上述实施例提供的虚拟机管理装置在虚拟机在线迁移时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟机管理装置与虚拟机在线迁移方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本发明实施例提供的一种数据包传输装置的功能方框图。参见图10,该装置包括:接收模块1001、物理设备地址获取模块1002、封装模块1003和发送模块1004,其中,接收模块1001用于接收到第一数据包,所述第一数据包 包头的目标地址段包括第一虚拟机标识;接收模块1001和物理设备地址获取模块1002连接,物理设备地址获取模块1002用于根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;物理设备地址获取模块1002和封装模块1003连接,封装模块1003用于以所述第一物理设备地址为目标地址段对所述第一数据包进行封装,得到第二数据包;封装模块1003和发送模块1004连接,发送模块1004用于将所述第二数据包转发至所述第一物理设备地址,使得所述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
可选地,所述物理设备地址获取模块1003用于触发所述发送模块向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
所述接收模块1001,还用于接收所述指定装置返回的第一物理设备地址。
可选地,所述接收模块1001还用于接收第三数据包,所述第三数据包包头的目标地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址;
该装置还包括:解封装模块,该解封装模块与接收模块1001连接,该解封装模块用于解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
所述发送模块1004,用于将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
可选地,所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
需要说明的是:上述实施例提供的数据包传输装置在数据包传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据包传输装置与数据包传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本发明实施例提供的一种指定装置的功能方框图。参见图11,所述装置包括:
请求接收模块1101,用于接收设备的获取请求,所述获取请求携带至少一个虚拟机标识;
获取模块1102,用于根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址;
发送模块1103,用于向所述设备发送所述虚拟机标识对应的物理设备地址。
可选地,
所述请求接收模块1101还用于接收设备的更新请求,所述更新请求携带指定虚拟机标识和物理设备地址;
进一步地,所述装置还包括:
更新模块1104,用于将所述虚拟机标识与物理设备地址的映射关系中与所述指定虚拟机标识对应的物理设备地址更新为所述更新请求携带的物理设备地址。
图12是本发明实施例提供的一种数据中心***的结构示意图。参见图12,该数据中心***包括:
虚拟机管理装置1201,用于接收迁移指令,所述迁移指令用于指示所述源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址;
指定装置1202,用于存储虚拟机标识与物理设备地址的映射关系,当接收到获取请求,根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址,并返回所述虚拟机标识对应的物理设备地址。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
Claims (19)
1.一种虚拟机在线迁移方法,其特征在于,所述方法包括:
接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;
获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;
当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
2.根据权利要求1所述的方法,其特征在于,所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址之后,所述方法还包括:
将所述目的虚拟机管理器所在物理设备的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
3.根据权利要求1或2任一项所述的方法,其特征在于,接收迁移指令之前,所述方法还包括:
根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
4.一种数据包传输方法,其特征在于,所述方法包括:
接收到第一数据包,所述第一数据包包头的目标地址段包括第一虚拟机标识;
根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;
以所述第一物理设备地址为目标地址段对所述第一数据包进行封装,得到第二数据包;
将所述第二数据包转发至所述第一物理设备地址,使得所述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
5.根据权利要求4所述的方法,其特征在于,根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址包括:
向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
接收所述指定装置返回的第一物理设备地址。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收第三数据包,所述第三数据包包头的目标地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址;
解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
7.根据权利要求4-6任一项所述的方法,其特征在于,接收到第一数据包之前,所述方法还包括:
根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
8.一种虚拟机管理装置,其特征在于,所述装置包括:
接收模块,用于接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;
迁移模块,用于获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;
更新模块,用于当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
发送模块,用于将所述目的虚拟机管理器所在物理设备的物理设备地址发送至正在访问所述源虚拟机的通信节点,使得所述通信节点根据更新后的物理设备地址继续访问虚拟机。
10.根据权利要求8或9任一项所述的装置,其特征在于,所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
11.一种数据包传输装置,其特征在于,所述装置包括:
接收模块,用于接收到第一数据包,所述第一数据包包头的目标地址段包括第一虚拟机标识;
物理设备地址获取模块,用于根据所述第一虚拟机标识,从虚拟机标识与物理设备地址的映射关系中,获取所述第一物理设备地址;
封装模块,用于以所述第一物理设备地址为目标地址段对所述第一数据包进行封装,得到第二数据包;
发送模块,用于将所述第二数据包转发至所述第一物理设备地址,使得所述第二数据包由所述第一物理设备的虚拟机管理器截获后,解封装所述第二数据包,并将解封装后的数据包发送至所述第一虚拟机标识对应的虚拟机。
12.根据权利要求11所述的装置,其特征在于,所述物理设备地址获取模块用于触发所述发送模块向指定装置发送获取请求,所述获取请求携带所述第一虚拟机标识,所述指定装置用于存储虚拟机标识与物理设备地址的映射关系;
所述接收模块,还用于接收所述指定装置返回的第一物理设备地址。
13.根据权利要求11所述的装置,其特征在于,所述接收模块还用于接收第三数据包,所述第三数据包包头的目标地址段包括第三虚拟机标识对应的第三物理设备地址,所述第三数据包包头的源地址段包括第四虚拟机标识对应的第四物理设备地址;
解封装模块,用于解封装所述第三数据包,得到第四数据包,所述第四数据包包头的目标地址段包括第三虚拟机标识,所述第四数据包包头的源地址段包括第四虚拟机标识;
所述发送模块,用于将第四数据包发送至所述第三虚拟机标识对应的虚拟机或IP地址。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述装置还包括:
IP地址分配模块,用于根据数据中心的物理设备的拓扑结构,为所述物理设备分配IP地址;
虚拟机标识分配模块,用于根据所述物理设备所分配的IP地址,为所述物理设备上运行的虚拟机分配与所述物理设备的IP地址属于同一个IP地址池的IP地址作为所述虚拟机的虚拟机标识。
15.一种映射关系处理方法,其特征在于,所述方法包括:
接收设备的获取请求,所述获取请求携带至少一个虚拟机标识;
根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址;
向所述设备发送所述虚拟机标识对应的物理设备地址。
16.根据权利要求15所述的方法,其特征在于,该方法还包括:
接收设备的更新请求,所述更新请求携带指定虚拟机标识和物理设备地址;
将所述虚拟机标识与物理设备地址的映射关系中与所述指定虚拟机标识对应的物理设备地址更新为所述更新请求携带的物理设备地址。
17.一种指定装置,其特征在于,所述装置包括:
请求接收模块,用于接收设备的获取请求,所述获取请求携带至少一个虚拟机标识;
获取模块,用于根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址;
发送模块,用于向所述设备发送所述虚拟机标识对应的物理设备地址。
18.根据权利要求17所述的装置,其特征在于,
所述请求接收模块还用于接收设备的更新请求,所述更新请求携带指定虚拟机标识和物理设备地址;
所述装置还包括:
更新模块,用于将所述虚拟机标识与物理设备地址的映射关系中与所述指定虚拟机标识对应的物理设备地址更新为所述更新请求携带的物理设备地址。
19.一种数据中心***,其特征在于,包括:
虚拟机管理装置,用于接收迁移指令,所述迁移指令用于指示源虚拟机迁移至目的虚拟机管理器,所述源虚拟机所在物理设备与所述目的虚拟机管理器所在物理设备属于数据中心的不同子网络;获取所述源虚拟机的虚拟机数据,将所述源虚拟机的虚拟机数据以数据包的形式发送至所述目的虚拟机管理器,使得所述目的虚拟机管理器根据所述虚拟机数据创建虚拟机;当虚拟机数据发送完成时,将所述源虚拟机的虚拟机标识对应的物理设备地址更新为所述目的虚拟机管理器所在物理设备的物理设备地址;
指定装置,用于存储虚拟机标识与物理设备地址的映射关系,当接收到获取请求,根据所述获取请求携带的虚拟机标识,从所述虚拟机标识与物理设备地址的映射关系中获取与所述虚拟机标识对应的物理设备地址,并返回所述虚拟机标识对应的物理设备地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310245242.2A CN104243427B (zh) | 2013-06-19 | 2013-06-19 | 虚拟机在线迁移方法、数据包传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310245242.2A CN104243427B (zh) | 2013-06-19 | 2013-06-19 | 虚拟机在线迁移方法、数据包传输方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243427A true CN104243427A (zh) | 2014-12-24 |
CN104243427B CN104243427B (zh) | 2018-04-06 |
Family
ID=52230784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310245242.2A Active CN104243427B (zh) | 2013-06-19 | 2013-06-19 | 虚拟机在线迁移方法、数据包传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243427B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704235A (zh) * | 2016-03-24 | 2016-06-22 | 武汉邮电科学研究院 | 基于大二层网络的云计算虚拟机位置解析prs***及其工作方法 |
CN107329803A (zh) * | 2017-07-07 | 2017-11-07 | 北京金山安全管理***技术有限公司 | 虚拟机管理方法和装置 |
CN107566319A (zh) * | 2016-06-30 | 2018-01-09 | 中央大学 | 虚拟机器即时转移方法 |
WO2018201461A1 (zh) * | 2017-05-05 | 2018-11-08 | 华为技术有限公司 | 虚拟机迁移的方法、装置和虚拟化*** |
CN110515697A (zh) * | 2019-08-16 | 2019-11-29 | 济南浪潮数据技术有限公司 | 一种虚拟机迁移方法、装置、存储介质及计算机设备 |
CN110633127A (zh) * | 2018-06-25 | 2019-12-31 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN113821348A (zh) * | 2016-03-16 | 2021-12-21 | 谷歌有限责任公司 | 远程访问数据的有效实时迁移 |
CN115065630A (zh) * | 2022-05-10 | 2022-09-16 | 深信服科技股份有限公司 | 虚拟路由器的迁移方法、装置、电子设备及存储介质 |
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333037A (zh) * | 2011-10-20 | 2012-01-25 | 中兴通讯股份有限公司 | 虚拟机迁移方法及装置 |
CN102455942A (zh) * | 2010-12-02 | 2012-05-16 | 中标软件有限公司 | 一种广域网虚拟机动态迁移方法及*** |
CN102576343A (zh) * | 2009-09-28 | 2012-07-11 | 日本电气株式会社 | 计算机***和虚拟机迁移方法 |
CN102724277A (zh) * | 2012-05-04 | 2012-10-10 | 华为技术有限公司 | 虚拟机热迁移和部署的方法、服务器及集群*** |
US20120297091A1 (en) * | 2011-05-18 | 2012-11-22 | Hitachi, Ltd. | Method and apparatus of server i/o migration management |
CN102801715A (zh) * | 2012-07-30 | 2012-11-28 | 华为技术有限公司 | 一种网络中虚拟机迁移的方法、网关及*** |
CN102821023A (zh) * | 2012-08-07 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种vlan配置动态迁移的方法及装置 |
CN103095834A (zh) * | 2013-01-16 | 2013-05-08 | 中国科学院计算技术研究所 | 一种跨虚拟化数据中心的虚拟机在线迁移方法 |
CN103152200A (zh) * | 2013-03-07 | 2013-06-12 | 华为技术有限公司 | 虚拟机迁移方法、交换机、网络管理设备和网络*** |
-
2013
- 2013-06-19 CN CN201310245242.2A patent/CN104243427B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576343A (zh) * | 2009-09-28 | 2012-07-11 | 日本电气株式会社 | 计算机***和虚拟机迁移方法 |
CN102455942A (zh) * | 2010-12-02 | 2012-05-16 | 中标软件有限公司 | 一种广域网虚拟机动态迁移方法及*** |
US20120297091A1 (en) * | 2011-05-18 | 2012-11-22 | Hitachi, Ltd. | Method and apparatus of server i/o migration management |
CN102333037A (zh) * | 2011-10-20 | 2012-01-25 | 中兴通讯股份有限公司 | 虚拟机迁移方法及装置 |
CN102724277A (zh) * | 2012-05-04 | 2012-10-10 | 华为技术有限公司 | 虚拟机热迁移和部署的方法、服务器及集群*** |
CN102801715A (zh) * | 2012-07-30 | 2012-11-28 | 华为技术有限公司 | 一种网络中虚拟机迁移的方法、网关及*** |
CN102821023A (zh) * | 2012-08-07 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种vlan配置动态迁移的方法及装置 |
CN103095834A (zh) * | 2013-01-16 | 2013-05-08 | 中国科学院计算技术研究所 | 一种跨虚拟化数据中心的虚拟机在线迁移方法 |
CN103152200A (zh) * | 2013-03-07 | 2013-06-12 | 华为技术有限公司 | 虚拟机迁移方法、交换机、网络管理设备和网络*** |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11824926B2 (en) | 2016-03-16 | 2023-11-21 | Google Llc | Efficient live-migration of remotely accessed data |
CN113821348A (zh) * | 2016-03-16 | 2021-12-21 | 谷歌有限责任公司 | 远程访问数据的有效实时迁移 |
CN113821348B (zh) * | 2016-03-16 | 2024-04-19 | 谷歌有限责任公司 | 远程访问数据的有效实时迁移 |
CN105704235A (zh) * | 2016-03-24 | 2016-06-22 | 武汉邮电科学研究院 | 基于大二层网络的云计算虚拟机位置解析prs***及其工作方法 |
CN105704235B (zh) * | 2016-03-24 | 2019-06-07 | 武汉邮电科学研究院 | 基于大二层网络的云计算虚拟机位置解析prs***及其工作方法 |
CN107566319A (zh) * | 2016-06-30 | 2018-01-09 | 中央大学 | 虚拟机器即时转移方法 |
CN107566319B (zh) * | 2016-06-30 | 2021-01-26 | 中央大学 | 虚拟机器即时转移方法 |
WO2018201461A1 (zh) * | 2017-05-05 | 2018-11-08 | 华为技术有限公司 | 虚拟机迁移的方法、装置和虚拟化*** |
US11210132B2 (en) | 2017-05-05 | 2021-12-28 | Huawei Technologies Co., Ltd. | Virtual machine migration in virtualization environment having different virtualization systems |
CN107329803A (zh) * | 2017-07-07 | 2017-11-07 | 北京金山安全管理***技术有限公司 | 虚拟机管理方法和装置 |
CN110633127A (zh) * | 2018-06-25 | 2019-12-31 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
US11941423B2 (en) | 2018-06-25 | 2024-03-26 | Huawei Technologies Co., Ltd. | Data processing method and related device |
CN110515697A (zh) * | 2019-08-16 | 2019-11-29 | 济南浪潮数据技术有限公司 | 一种虚拟机迁移方法、装置、存储介质及计算机设备 |
CN115065630B (zh) * | 2022-05-10 | 2024-04-09 | 深信服科技股份有限公司 | 虚拟路由器的迁移方法、装置、电子设备及存储介质 |
CN115065630A (zh) * | 2022-05-10 | 2022-09-16 | 深信服科技股份有限公司 | 虚拟路由器的迁移方法、装置、电子设备及存储介质 |
CN115473766B (zh) * | 2022-08-22 | 2024-01-26 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN104243427B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243427A (zh) | 虚拟机在线迁移方法、数据包传输方法和设备 | |
CN108449282B (zh) | 一种负载均衡方法及其装置 | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
CN102594711B (zh) | 一种在边缘设备上的报文转发方法和边缘设备 | |
CN105791463B (zh) | 一种实现虚拟机通信的方法和装置 | |
CN1822570B (zh) | 在基于以太网的网络中进行的伪线路对等体地址的自动发现方法 | |
CN104426680B (zh) | 数据传输方法、装置和*** | |
CN109716717A (zh) | 从软件定义的网络控制器管理虚拟端口信道交换机对等体 | |
CN102447752B (zh) | 基于二层隧道协议的业务访问方法、***和装置 | |
CN106712988B (zh) | 一种虚拟网络管理方法及装置 | |
CN104283980A (zh) | 一种地址解析协议代答方法和装置 | |
CN105099779A (zh) | 多租户云平台架构 | |
CN105227466B (zh) | 通信处理方法和装置 | |
CN101785283B (zh) | 实时通信网络中用于诊断数据的通信的方法及设备 | |
CN104580029B (zh) | 地址分配方法及装置 | |
CN105827495A (zh) | Vxlan网关的报文转发方法和设备 | |
CN105359458A (zh) | 网络设备通信方法及网络设备 | |
CN101873320B (zh) | 一种基于DHCPv6中继的客户端信息确认方法及其装置 | |
CN110460684A (zh) | Vxlan同网段的广播域隔离方法及装置 | |
CN106209648A (zh) | 跨虚拟可扩展局域网的组播数据报文转发方法和设备 | |
CN109936492A (zh) | 一种通过隧道传输报文的方法、装置和*** | |
CN107370839A (zh) | 工业现场设备的寻址方法及相关装置、*** | |
CN115189920A (zh) | 跨网络域通信方法和相关装置 | |
CN109936490A (zh) | 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及*** | |
CN108206783A (zh) | 一种软件定义网络***中地址配置方法及其装置 |
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 |