一种基于虚拟机迁移的网关控制方法、装置及系统的制作方法

文档序号:6626009阅读:318来源:国知局
一种基于虚拟机迁移的网关控制方法、装置及系统的制作方法
【专利摘要】本发明实施例公开了一种基于虚拟机迁移的网关控制方法、装置及系统,涉及通信领域,用以解决虚拟机迁移后进行数据传输时,占用设备间进行数据传输的带宽,造成带宽资源浪费的问题。具体方案为:SDN控制器获取第一虚拟机网关的IP地址、第一虚拟机网关MAC地址和第二物理服务器的VTEP IP地址;SDN控制器根据第二物理服务器的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关,第二虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且第二虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同;创建第一流表项,以使得第二物理网关根据第一流表项所指示的数据转发策略为该虚拟机转发数据。
【专利说明】一种基于虚拟机迁移的网关控制方法、装置及系统

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种基于虚拟机迁移的网关控制方法、装置及系统。

【背景技术】
[0002]虚拟机(Virtual Machine, VM)是指通过软件模拟的具有完整硬件系统功能的,且运行在物理服务器上的计算机系统。一台物理服务器上可以同时运行多个虚拟机,每个虚拟机使用物理服务器中的一部分物理资源,如中央处理器、内存等。
[0003]虚拟机可以由一个物理服务器迁移至另一个物理服务器,并在迁移后的物理服务器上运行,以实现服务器的负载均衡、在线维护和故障处理等功能。其中,虚拟机迁移前所在的物理服务器的物理网关与虚拟机迁移后所在的物理服务器的物理网关不同,一个物理网关上可以配置至少一个虚拟机的虚拟机网关。
[0004]其中,当虚拟机由一个物理服务器(物理服务器A)迁移至另一个物理服务器(物理服务器B)时,虚拟机的物理位置发生了变化,而虚拟机的虚拟机网关仍处于物理服务器A的物理网关上,此时,为了保证业务的连续性,虚拟机在与其他虚拟机(其他虚拟机为与该虚拟机处于不同网段的虚拟机)进行通信时,需要通过交换机将物理服务器B与物理服务器A相连,再通过物理服务器A的物理网关上配置的该虚拟机的虚拟机网关(原虚拟机网关)进行数据的转发。
[0005]但是,存在的问题是:虚拟机和与该虚拟机处于不同物理服务器的虚拟机网关传输数据时,需要经过物理服务器之间的若干其他设备(如交换机)对该数据进行转发,而设备之间额外的数据转发则会增加设备之间进行数据传输的数据流量,占用设备之间进行数据传输的带宽,造成带宽资源的浪费。


【发明内容】

[0006]本发明的实施例提供一种基于虚拟机迁移的网关控制方法、装置及系统,用以解决虚拟机迁移后进行数据传输时,占用设备之间进行数据传输的带宽,造成带宽资源浪费的问题。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]本发明实施例的第一方面,提供一种基于虚拟机迁移的网关控制方法,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,当虚拟机由所述第一物理服务器迁移至所述第二物理服务器时,所述方法包括:
[0009]软件定义网络SDN控制器获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关;
[0010]所述SDN控制器根据所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,所述第二虚拟机网关的IP地址与所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述第一虚拟机网关的MAC地址相同;
[0011]所述SDN控制器创建第一流表项,所述第一流表项中包含所述第二物理网关的VTEP IP地址、所述第二虚拟机网关的IP地址、所述第二虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID,并发送所述第一流表项至所述第二物理网关,以使得所述第二物理网关根据所述第一流表项所指示的数据转发策略为所述虚拟机转发数据,所述虚拟机的VxLAN ID用于标识所述虚拟机所在的网段。
[0012]结合第一方面,在一种可能的实现方式中,所述SDN控制器根据所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,包括:
[0013]所述SDN控制器根据所述第二物理服务器的VTEP IP地址确定所述第二物理网关的VTEP IP地址;
[0014]所述SDN控制器根据所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关。
[0015]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述SDN控制器根据所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关,包括:
[0016]所述SDN控制器根据所述第二物理网关的VTEP IP地址,发送所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址至所述第二物理网关,以使得所述第二物理网关根据所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址在所述第二物理网关上配置所述第二虚拟机网关。
[0017]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述软件定义网络SDN控制器获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,包括:
[0018]所述SDN控制器获取虚拟机迁移信息,所述虚拟机迁移信息包括:所述虚拟机的IP地址、所述虚拟机的MAC地址和所述第二物理服务器的VTEP IP地址;
[0019]所述SDN控制器根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址。
[0020]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述SDN控制器创建第一流表项之后,所述方法还包括:
[0021]删除第二流表项,所述第二流表项中包含所述第一物理网关的VTEPIP地址、第一虚拟机网关的IP地址、所述第一虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID。
[0022]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述SDN控制器创建第一流表项之前,所述SDN控制器获取虚拟机迁移信息之后,所述方法还包括:
[0023]根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述虚拟机的VxLAN ID。
[0024]结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述创建第一流表项之后,所述方法还包括:
[0025]判断所述虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用所述第一虚拟机网关;
[0026]若所述虚拟机的VxLAN ID所标识的网段内,不存在所述其他虚拟机使用所述第一虚拟机网关,则控制所述第一物理网关删除所述第一物理网关上配置的所述第一虚拟机网关。
[0027]本发明实施例的第二方面,提供一种软件定义网络SDN控制器,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由所述第一物理服务器迁移至所述第二物理服务器的过程中,所述SDN控制器包括:
[0028]获取单元,用于获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关;
[0029]配置单元,用于根据所述获取单元获取的所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,所述第二虚拟机网关的IP地址与所述获取单元获取的所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述获取单元获取的所述第一虚拟机网关的MAC地址相同;
[0030]创建单元,用于创建第一流表项,所述第一流表项中包含所述第二物理网关的VTEP IP地址、所述第二虚拟机网关的IP地址、所述第二虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID ;
[0031]发送单元,用于发送创建单元创建的所述第一流表项至所述第二物理网关,以使得所述第二物理网关根据所述第一流表项所指示的数据转发策略为所述虚拟机转发数据,所述虚拟机的VxLAN ID用于标识所述虚拟机所在的网段。
[0032]结合第二方面,在一种可能的实现方式中,所述配置单元,包括:
[0033]第一确定子单元,用于根据所述第二物理服务器的VTEP IP地址确定所述第二物理网关的VTEP IP地址;
[0034]配置子单元,用于根据所述第一确定子单元确定的所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关。
[0035]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述配置单元,具体用于根据所述第二物理网关的VTEP IP地址,发送所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址至所述第二物理网关,以使得所述第二物理网关根据所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址在所述第二物理网关上配置所述第二虚拟机网关。
[0036]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述获取单元,包括:
[0037]获取子单元,用于获取虚拟机迁移信息,所述虚拟机迁移信息包括:所述虚拟机的IP地址、所述虚拟机的MAC地址和所述第二物理服务器的VTEP IP地址;
[0038]第二确定子单元,用于根据所述获取子单元获取的所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址。
[0039]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述SDN控制器还包括:
[0040]删除单元,用于在所述创建单元创建所述第一流表项之后,删除第二流表项,所述第二流表项中包含所述第一物理网关的VTEP IP地址、第一虚拟机网关的IP地址、所述第一虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLANID。
[0041]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述SDN控制器还包括:
[0042]确定单元,用于在所述创建单元创建所述第一流表项之前,所述获取单元获取所述虚拟机迁移信息之后,根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述虚拟机的 VxLAN ID。
[0043]结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述SDN控制器还包括:
[0044]判断单元,用于在所述创建单元创建所述第一流表项之后,判断所述虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用所述第一虚拟机网关;
[0045]所述删除单元,还用于若所述判断单元判断得到所述虚拟机的VxLANID所标识的网段内,不存在所述其他虚拟机使用所述第一虚拟机网关,则控制所述第一物理网关删除所述第一物理网关上配置的所述第一虚拟机网关。
[0046]本发明实施例的第三方面,提供一种基于虚拟机迁移的网关控制系统,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由所述第一物理服务器迁移至所述第二物理服务器的过程中,所述系统包括:软件定义网络SDN控制器、所述虚拟机、所述第一物理服务器、所述第一物理网关、第一虚拟机网关、所述第二物理服务器、所述第二物理网关和第二虚拟机网关;
[0047]所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关;所述第二虚拟机网关为配置在所述第二物理网关上的所述虚拟机的虚拟机网关;
[0048]所述SDN控制器,用于执行如权利要求1-7中任一项所述的基于虚拟机迁移的网关控制方法;
[0049]第二物理网关,用于根据所述SDN控制器的控制,在所述第二物理网关上配置所述第二虚拟机网关;
[0050]其中,所述第二虚拟机网关的网际协议IP地址与所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述第一虚拟机网关的媒体接入控制MAC地址相同。
[0051]本发明实施例提供的基于虚拟机迁移的网关控制方法、装置及系统,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。

【专利附图】

【附图说明】
[0052]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0053]图1为实施例中的一种基于虚拟机迁移的网关控制方法流程图;
[0054]图2为实施例中的另一种基于虚拟机迁移的网关控制方法流程图;
[0055]图3为实施例中的一种虚拟机I和虚拟机2之间的通信交互图;
[0056]图4为实施例中的一种VxLAN报文的格式示意图;
[0057]图5为实施例中的一种SDN控制器组成示意图;
[0058]图6为实施例中的另一种SDN控制器组成示意图;
[0059]图7为实施例中的另一种SDN控制器组成示意图;
[0060]图8为实施例中的另一种SDN控制器组成示意图;
[0061]图9为实施例中的另一种SDN控制器组成示意图;
[0062]图10为实施例中的另一种SDN控制器组成示意图;
[0063]图11为实施例中的再一种SDN控制器组成示意图;
[0064]图12为实施例中的一种基于虚拟机迁移的网关控制系统组成示意图。

【具体实施方式】
[0065]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本领域普通技术人员根据本发明中的实施例所获得的所有其他实施例,都属于本发明保护的范围。
[0066]另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0067]为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个术语。
[0068]数据中心:是一种数据整合系统,通常由计算系统、存储系统、通讯系统、网络设备、环境控制系统和安全系统等组件构成,其常用于数据的计算和存储。
[0069]云管理平台:可以是多个管理软件的集合,也可以是实现所需要的管理功能的一个软件。云管理平台可以以低运营成本实现对大规模的数据中心的集中管理。
[0070]物理服务器:是指一个用于管理资源并为用户提供服务的计算机。相对于普通计算机来说,物理服务器在稳定性和安全性等方面的要求更高。
[0071]虚拟机(Virtual Machine, VM):是指通过软件模拟的具有完整硬件系统功能的,且运行在物理服务器上的计算机系统。一台物理服务器上可以同时运行多个虚拟机,每个虚拟机使用物理服务器中的一部分物理资源,如中央处理器、内存等。也可以将多个不同类型的应用程序,运行在不同的虚拟机上,并整合到一个物理服务器上,这样可以提高资源的利用率,提高数据中心的计算能力。
[0072]扩展虚拟局域网络(Virtual Extensible LAN,VxLAN):是一种将二层(数据链路层)报文用三层(网络层)协议进行封装的技术,可以对二层网络在三层范围进行扩展。它应用于数据中心内部,使虚拟机可以在互相连通的三层网络范围内迁移,而不需要改变网际协议(Internet Protocol, IP)地址和媒体接入控制(Media Access Control, MAC)地址,保证业务的连续性。
[0073]VxLAN ID (Virtual Extensible LAN ID):VxLAN 网段的标识符,同一个网段内的虚拟机的VxLAN ID相同。
[0074]虚拟隧道终端节点(Virtual tunnel endpoint, VTEP):用于对VxLAN报文(包括地址解析协议(Address Resolut1n Protocol, ARP)请求报文和正常的VxLAN数据报文)进行封装/解封装,在一端VTEP封装报文后通过隧道向另一端VTEP发送封装报文,另一端VTEP接收到封装报文后对报文解封装并根据封装的MAC地址进行转发。VTEP可由支持VxLAN的硬件设备或软件来实现。
[0075]地址解析协议ARP:是根据IP地址获取MAC地址的一个传输控制协议/因特网互联协议(Transmiss1n Control Protocol/Internet Protocol,TCP/IP)。其功能是:本地物理服务器向网络上的所有物理服务器广播ARP请求,并接收网络上的某个物理服务器的返回消息,根据目标物理服务器的IP地址确定目标物理服务器的MAC地址,同时将目标物理服务器的IP地址和MAC地址存入本地物理服务器的ARP缓存中。
[0076]物理网关(Gateway, Gff):负责不同VxLAN之间的数据转发,根据流表对VxLAN报文进行封装与解封装。
[0077]虚拟机网关:配置在物理网关上,用于虚拟机的数据转发。一个物理网关上可以配置多个虚拟机网关。
[0078]虚拟交换机(Virtual switch, Vswtich):和物理交换机一样,包含一定数量的端口,可以提供连接在不同端口的设备之间的数据交换。
[0079]软件定义网络控制器(SoftwareDefined Network controller, SDN controller):对网络进行软件编程,可以通过创建流表控制VTEP以及VxLAN网关的数据转发。
[0080]在VxLAN网络中,虚拟机从一个物理服务器迁移到另一个物理服务器时,云管理平台会将虚拟机的迁移信息通告给SDN控制器,由SDN控制器控制虚拟机的数据转发方向。本发明实施例以VxLAN网络中的虚拟机迁移为例进行说明。
[0081]实施例1
[0082]本发明实施例提供一种基于虚拟机迁移的网关控制方法,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,如图1所示,当虚拟机由第一物理服务器迁移至第二物理服务器时,该方法包括:
[0083]SlOU SDN控制器获取第一虚拟机网关的IP地址、第一虚拟机网关的MAC地址和第二物理服务器的VTEP IP地址。
[0084]其中,第一虚拟机网关为配置在第一物理网关上的虚拟机的虚拟机网关。第一物理服务器为虚拟机迁移前所在的物理服务器,第二物理服务器为虚拟机迁移后所在的物理服务器。一个物理服务器上可以配置多个虚拟机,每个虚拟机可以使用物理服务器的部分物理资源,如中央处理器、内存等。
[0085]本发明实施例中的第一虚拟机网关为虚拟机迁移前所在的物理服务器(第一物理服务器)的物理网关(第一物理网关)上虚拟出的用于虚拟机的数据转发的虚拟机的虚拟机网关。一个物理网关上可以配置多个虚拟机网关。
[0086]可选的,在本发明实施例中,虚拟机与虚拟机网关之间的映射关系可以为预先建立好,并存储在SDN控制器中的。当然,SDN控制器也可以在虚拟机需要通过虚拟机网关进行数据转发时,再建立虚拟机与虚拟机网关之间的映射关系,本发明实施例对此不做限制。
[0087]其中,SDN控制器可以根据SDN控制器中存储的虚拟机网关与虚拟机之间的映射关系、虚拟机的IP地址和虚拟机的MAC地址,查找第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址。
[0088]可选的,SDN控制器可以根据云管理平台上报的虚拟机迁移信息获取第二物理服务器的VTEP IP地址。当然,SDN控制器也可以通过向云管理平台发送请求以获取虚拟机迁移信息,本发明实施例对此不做限制。其中,虚拟机迁移信息包括虚拟机的IP地址、虚拟机的MAC地址和第二物理服务器的VTEP IP地址。
[0089]S102、SDN控制器根据第二物理服务器的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关。
[0090]其中,第二虚拟机网关为虚拟机迁移后所在的物理服务器(第二物理服务器)的物理网关(第二物理网关)上虚拟出的用于虚拟机的数据转发的虚拟机的虚拟机网关。第二虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且第二虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同。
[0091]具体的,SDN控制器可以根据第二物理服务器的VTEP IP地址确定第二物理网关的VTEP IP地址,并根据第二物理网关的VTEP IP地址确定第二物理网关,为虚拟机在第二物理网关上配置第二虚拟机网关。
[0092]可选的,物理服务器与物理网关之间的映射关系可以为预先建立好的、并存储在SDN控制器中的。当然,SDN控制器也可以在虚拟机需要通过虚拟机网关进行数据转发时,再建立物理服务器与物理网关之间的映射关系,本发明实施例对此不做限制。其中,物理服务器和物理网关可以用不同的VTEP IP地址标识。每个物理服务器有一个唯一的VTEP IP地址,每一个物理网关有一个唯一的VTEP IP地址。
[0093]其中,SDN控制器可以根据SDN控制器中存储的物理服务器与物理网关的映射关系和第二物理服务器的VTEP IP地址,查找第二物理网关的VTEP IP地址。
[0094]S103、SDN控制器创建第一流表项,第一流表项中包含第二物理网关的VTEP IP地址、第二虚拟机网关的IP地址、第二虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的扩展虚拟局域网络VxLAN ID。
[0095]其中,第一流表项存储在SDN控制器中。
[0096]S104、SDN控制器发送第一流表项至第二物理网关,以使得第二物理网关根据第一流表项所指示的数据转发策略为虚拟机转发数据。
[0097]其中,虚拟机的VxLAN ID用于标识虚拟机所在的网段。第一流表项记录了物理网关、虚拟机网关和虚拟机之间的映射关系以及虚拟机所在的网段。第二物理网关在虚拟机迁移至第二物理服务器后,可以根据第一流表项的指示,通过第二虚拟机网关为虚拟机转发数据。
[0098]本发明实施例提供的基于虚拟机迁移的网关控制方法,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。
[0099]实施例2
[0100]本发明实施例提供一种基于虚拟机迁移的网关控制方法,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,如图2所示,当虚拟机由第一物理服务器迁移至第二物理服务器时,该方法包括:
[0101]S201、SDN控制器获取虚拟机迁移信息,虚拟机迁移信息包括:虚拟机的IP地址、虚拟机的MAC地址和第二物理服务器的VTEP IP地址。
[0102]其中,虚拟机由第一物理服务器迁移至第二物理服务器包括:手动将虚拟机迁移至第二物理服务器;虚拟机自动迁移至第二物理服务器。虚拟机自动迁移需要云管理平台支持。虚拟机的迁移信息可以由云管理平台上报给SDN,也可以由SDN控制器向云管理平台发送请求,以获取虚拟机迁移信息,本发明实施例对此不做限制。第二物理服务器为虚拟机迁移后所在的物理服务器,用VTEP IP地址可以唯一标识物理服务器。
[0103]S202、SDN控制器根据虚拟机的IP地址和虚拟机的MAC地址,确定第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址。
[0104]其中,第一虚拟机网关为虚拟机迁移前所在的物理服务器(第一物理服务器)的物理网关(第一物理网关)上虚拟出的用于虚拟机的数据转发的虚拟机的虚拟机网关。SDN控制器确定第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址的方法可以参考上述实施例中的相关描述,本发明实施例这里不再赘述。
[0105]S203、SDN控制器根据第二物理服务器的VTEP IP地址确定第二物理网关的VTEPIP地址。
[0106]其中,第二物理网关为第二物理服务器的物理网关,SDN控制器确定第二物理网关的VTEP IP地址的方法可以参考上述实施例中的相关描述,本发明实施例这里不再赘述。
[0107]S204、SDN控制器根据第二物理网关的VTEP IP地址,发送第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址至第二物理网关,以使得第二物理网关根据第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址为虚拟机在第二物理网关上配置第二虚拟机网关。
[0108]其中,第一虚拟机网关为虚拟机迁移前所在的物理服务器(第一物理服务器)的物理网关(第一物理网关)上虚拟出的用于虚拟机的数据转发的虚拟机的虚拟机网关。第二虚拟机网关为虚拟机迁移后所在的物理服务器(第二物理服务器)的物理网关(第二物理网关)上虚拟出的用于虚拟机的数据转发的虚拟机的虚拟机网关。第二虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且第二虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同。
[0109]S205、SDN控制器根据虚拟机的IP地址和虚拟机的MAC地址确定虚拟机的VxLANID0
[0110]其中,虚拟机的VxLAN ID用于标识虚拟机所在的网段。虚拟机与虚拟机的VxLANID的映射关系可以为预先建立好,并存储在SDN控制器中的。SDN控制器可以根据SDN控制器中存储的虚拟机与虚拟机的VxLAN ID的映射关系、虚拟机的IP地址和虚拟机的MAC地址,查找虚拟机的VxLANID。
[0111]S206、SDN控制器创建第一流表项,第一流表项中包含第二物理网关的VTEP IP地址、第二虚拟机网关的IP地址、第二虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的VxLAN ID。
[0112]其中,第一流表项存储在SDN控制器中,第一流表项记录了虚拟机迁移后的物理网关、虚拟机迁移后的虚拟机的虚拟机网关和虚拟机之间的映射关系以及虚拟机所在的网段。在虚拟机迁移至第二物理服务器后,第二物理网关可以根据第一流表项的指示,为虚拟机转发数据。
[0113]S207、SDN控制器发送第一流表项至第二物理网关,以使得第二物理网关根据第一流表项所指示的数据转发策略为虚拟机转发数据。
[0114]S208、SDN控制器删除第二流表项,第二流表项中包含第一物理网关的VTEP IP地址、第一虚拟机网关的IP地址、第一虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的VxLAN ID。
[0115]其中,第二流表项存储在SDN控制器中,第二流表项记录了虚拟机迁移前的物理网关、虚拟机迁移前的虚拟机的虚拟机网关和虚拟机之间的映射关系以及虚拟机所在的网段。
[0116]通过建立第一流表项,删除第二流表项,可以防止虚拟机在进行数据传输时,再通过虚拟机迁移前的虚拟机的虚拟机网关(第一虚拟机网关)进行数据转发,而可以通过虚拟机迁移后的虚拟机的虚拟机网关(第二虚拟机网关)进行数据转发。这种通过第二虚拟机网关进行数据转发的过程,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽。
[0117]S209、SDN控制器判断虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用第一虚拟机网关。
[0118]其中,SDN控制器可以在虚拟机的VxLAN ID所标识的网段内,根据SDN控制器中存储的虚拟机网关与虚拟机的映射关系、第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址,查找是否存在其他虚拟机的虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同,进而判断出是否存在其他虚拟机使用第一虚拟机网关。具体的,若虚拟机的VxLAN ID所标识的网段内,存在其他虚拟机的虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同,则可以判断出存在其他虚拟机使用第一虚拟机网关;若虚拟机的VxLAN ID所标识的网段内,不存在其他虚拟机的虚拟机网关的IP地址与第一虚拟机网关的IP地址相同,且虚拟机网关的MAC地址与第一虚拟机网关的MAC地址相同,则可以判断出不存在其他虚拟机使用第一虚拟机网关。
[0119]S210、若虚拟机的VxLAN ID所标识的网段内,不存在其他虚拟机使用第一虚拟机网关,则SDN控制器控制第一物理网关删除第一物理网关上配置的第一虚拟机网关。
[0120]其中,若不存在其他虚拟机使用第一虚拟机网关,则删除第一物理网关上配置的第一虚拟机网关,可以减少物理网关资源(例如,MAC地址表容量、ARP表项容量和路由表项容量)的消耗。
[0121]需要说明的是,在完成上述虚拟机网关配置方法的步骤之后,当虚拟机需要通过网关转发数据时,SDN控制器控制第二物理网关上配置的第二虚拟机网关对虚拟机的数据进行转发。本发明实施例以虚拟机I和虚拟机2之间的通信为例进行说明。其中,虚拟机I为发生迁移的虚拟机,在完成上述虚拟机网关配置方法的步骤之后,如图3所示,虚拟机I和虚拟机2之间的通信流程包括:
[0122]S301、虚拟机I向虚拟交换机I发送访问虚拟机I的请求,该请求包括虚拟机I的IP地址、虚拟机2的IP地址以及广播地址。
[0123]其中,虚拟机I在第一次访问虚拟机2时,虚拟机I不能获取虚拟机2的MAC地址,可以用广播地址代替虚拟机2的MAC地址。虚拟机I要获取虚拟机2的MAC地址,可以通过向网络上的所有虚拟机发送ARP请求,以获取虚拟机2的MAC地址。
[0124]S302、虚拟交换机I向SDN控制器发送访问请求,该请求包括虚拟机I的IP地址、虚拟机2的IP地址以及虚拟机I所在的物理服务器的VTEP IP。
[0125]其中,虚拟交换机I可以根据接收到的虚拟机I上报的信息,解析得到虚拟机I所在的物理服务器的VTEP IP地址。
[0126]S303、SDN控制器查看虚拟机I的IP地址与虚拟机2的IP地址,判断虚拟机I与虚拟机2是否在同一网段。
[0127]S304、若虚拟机I与虚拟机2不在同一网段,则SDN控制器根据虚拟机I所在的物理服务器的VTEP IP地址确定离虚拟机I的物理位置最近的物理网关I。
[0128]其中,SDN控制器可以根据SDN控制器中存储的物理服务器与物理网关的映射关系和虚拟机I所在的物理服务器的VTEP IP地址,查找离虚拟机I的物理位置最近的物理网关1,该物理网关I为虚拟机I迁移后的物理服务器的物理网关(即本发明实施例上述描述中的第二物理网关),且该物理网关I上有为虚拟机I配置的第二虚拟机网关。物理位置最近用于表征转发路径最短。
[0129]S305、SDN控制器下发关于虚拟机I的IP地址、虚拟机2的IP地址、虚拟机I所在的物理服务器的VTEP IP地址以及物理网关I的流表项至虚拟交换机I。
[0130]S306、虚拟交换机I记录物理网关I的VTEP IP地址和虚拟机2的IP地址的映射关系。
[0131]S307、虚拟机I再次向虚拟交换机I发送访问虚拟机2的请求,该请求包括虚拟机I的IP地址、虚拟机2的IP地址以及广播地址。
[0132]S308、虚拟交换机I根据虚拟机2的IP地址封装虚拟机I所在的物理服务器的VTEP IP地址,形成虚拟机I访问虚拟机2的报文。
[0133]S309、虚拟交换机I将I访问2的报文发送至物理网关I。
[0134]S310、物理网关I根据虚拟机2的IP地址向SDN控制器请求虚拟机2所在的物理服务器的VTEP IP地址。
[0135]其中,虚拟机与物理服务器的映射关系可以为预先建立好,并在SDN控制器中存储的。SDN控制器可以根据SDN控制器中存储的虚拟机与物理服务器的映射关系和虚拟机2的IP地址,查找虚拟机2所在的物理服务器的VTEP IP地址。
[0136]S311、SDN控制器向物理网关I下发虚拟机2所在的物理服务器的VTEP IP地址和虚拟机2的VxLAN ID。
[0137]其中,虚拟机2所在的物理服务器的VTEP IP地址和虚拟机2的VxLANID用于物理网关I封装VxLAN报文。
[0138]S312、物理网关I封装VxLAN报文。
[0139]其中,VxLAN报文的格式如图4所示,在原以太网帧的基础上增加VxLAN封装。夕卜部目标IP地址为虚拟机2所在的物理服务器的VTEP IP地址;外部源IP地址为虚拟机I所在的物理服务器的VTEP IP地址;VxLANID为虚拟机2的VxLAN ID。外部目标MAC地址为物理网关I的MAC地址。当虚拟机2与虚拟机I在同一物理网关下时,外部目标MAC地址和外部源MAC地址相同;当虚拟机2与虚拟机I不在同一物理网关下时,外部目标MAC地址为虚拟机2的物理网关的MAC地址,外部源MAC地址为虚拟机I的物理网关的MAC地址。
[0140]S313、物理网关I向虚拟交换机2发送VxLAN报文。
[0141]其中,物理网关I通过物理网关I上为虚拟机I配置的第二虚拟机网关向虚拟交换机2发送VxLAN报文。
[0142]S314、虚拟交换机2对VxLAN报文解封装,并向虚拟机2发送原始报文。
[0143]其中,原始报文为虚拟机I向虚拟交换机I发送的访问虚拟机2的请求的报文。
[0144]本发明实施例提供的基于虚拟机迁移的网关控制方法,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。
[0145]实施例3
[0146]本发明实施例提供一种SDN控制器,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由第一物理服务器迁移至第二物理服务器的过程中,如图5所示,该SDN控制器可以包括:获取单元31、配置单元32、创建单元33和发送单元34。
[0147]获取单元31,获取第一虚拟机网关的网际协议IP地址、第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,第一虚拟机网关为配置在第一物理网关上的虚拟机的虚拟机网关。
[0148]配置单元32,用于根据获取单元31获取的第二物理服务器的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关,第二虚拟机网关的IP地址与获取单元获取的第一虚拟机网关的IP地址相同,且第二虚拟机网关的MAC地址与获取单元获取的第一虚拟机网关的MAC地址相同。
[0149]创建单元33,用于创建第一流表项,第一流表项中包含第二物理网关的VTEP IP地址、第二虚拟机网关的IP地址、第二虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的扩展虚拟局域网络VxLAN ID。
[0150]发送单元34,用于发送创建单元33创建的第一流表项至第二物理网关,以使得第二物理网关根据第一流表项所指示的数据转发策略为虚拟机转发数据,虚拟机的VxLAN ID用于标识虚拟机所在的网段。
[0151]进一步的,如图6所示,配置单元32,可以包括:第一确定子单元321和配置子单元 322。
[0152]第一确定子单元321,用于根据第二物理服务器的VTEP IP地址确定第二物理网关的VTEP IP地址。
[0153]配置子单元322,用于根据第一确定子单元321确定的第二物理网关的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关。
[0154]进一步的,配置单元32,具体用于根据第二物理网关的VTEP IP地址,发送第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址至第二物理网关,以使得第二物理网关根据第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址在第二物理网关上配置第二虚拟机网关。
[0155]进一步的,如图7所示,获取单元31,可以包括:获取子单元311和第二确定子单元 312。
[0156]获取子单元311,用于获取虚拟机迁移信息,虚拟机迁移信息包括:虚拟机的IP地址、虚拟机的MAC地址和第二物理服务器的VTEP IP地址。
[0157]第二确定子单元312,用于根据获取子单元311获取的虚拟机的IP地址和虚拟机的MAC地址确定第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址。
[0158]进一步的,如图8所示,本发明实施例中的SDN控制器,还可以包括删除单元35。
[0159]删除单元35,用于在创建单元33创建第一流表项之后,删除第二流表项,第二流表项中包含第一物理网关的VTEP IP地址、第一虚拟机网关的IP地址、第一虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的扩展虚拟局域网络VxLAN ID。
[0160]进一步的,如图9所示,本发明实施例中的SDN控制器,还可以包括确定单元36。
[0161]确定单元36,用于在创建单元33创建第一流表项之前,获取单元31获取虚拟机迁移信息之后,根据虚拟机的IP地址和虚拟机的MAC地址确定虚拟机的VxLAN ID。
[0162]进一步的,如图10所示,本发明实施例中的SDN控制器,还可以包括判断单元37。
[0163]判断单元37,用于在创建单元33创建第一流表项之后,判断虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用第一虚拟机网关。
[0164]删除单元35,还用于若判断单元37判断得到虚拟机的VxLAN ID所标识的网段内,不存在其他虚拟机使用第一虚拟机网关,则控制第一物理网关删除第一物理网关上配置的第一虚拟机网关。
[0165]需要说明的是,本发明实施例提供的SDN控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
[0166]本发明实施例提供的SDN控制器,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。
[0167]实施例4
[0168]本发明实施例提供一种SDN控制器,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由第一物理服务器迁移至第二物理服务器的过程中,如图11所示,该SDN控制器可以包括:接收器41、处理器42、发送器43和存储器44。
[0169]接收器41,用于接收虚拟机迁移信息,以获取第一虚拟机网关的网际协议IP地址、第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEPIP地址,第一虚拟机网关为配置在第一物理网关上的虚拟机的虚拟机网关;虚拟机迁移信息包括:虚拟机的IP地址、虚拟机的MAC地址和第二物理服务器的VTEP IP地址。
[0170]处理器42,用于根据接收器41获取的第二物理服务器的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关,第二虚拟机网关的IP地址与获取单元获取的第一虚拟机网关的IP地址相同,且第二虚拟机网关的MAC地址与获取单元获取的第一虚拟机网关的MAC地址相同;还用于创建第一流表项,第一流表项中包含第二物理网关的VTEP IP地址、第二虚拟机网关的IP地址、第二虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的扩展虚拟局域网络VxLAN ID。
[0171]发送器43,用于发送处理器42创建的第一流表项至第二物理网关,以使得第二物理网关根据第一流表项所指示的数据转发策略为虚拟机转发数据,虚拟机的VxLAN ID用于标识虚拟机所在的网段。
[0172]存储器44,用于存储接收器41和处理器42得到的数据,如第一虚拟机网关的IP地址、第一虚拟机网关的MAC地址和第二物理服务器的VTEP IP地址、第二虚拟机网关的IP地址、第二虚拟机网关的MAC地址以及第一流表项等。
[0173]其中,接收器41和发送器43可以为SDN控制器与其他设备进行通信时的通信接口。接收器41、处理器42、发送器43和存储器44通过总线连接并完成相互间的通信。
[0174]其中,总线可以是工业标准体系结构(Industry Standard Architecture, ISA)总线、夕卜部设备互连(Peripheral Component Interconnect, PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture, EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0175]需要说明的是,在本发明实施例中,所述处理器42可以为所述SDN控制器的控制中心,如中央处理器(Central Processing Unit, CPU),该控制中心可以利用各种接口和线路连接整个所述SDN控制器的各个部分。该处理器42可以由集成电路(IntegratedCircuit, IC)或者特定集成电路(Applicat1n Specific Integrated Circuit, ASIC)组成(例如,该处理器42可以由单颗封装的IC所组成),也可以由连接多颗相同功能或不同功能的封装IC组成。举例来说,处理器42可以仅包括CPU,也可以是CPU、图像处理器(Graphic Processing Unit, GPU)、数字信号处理器(Digital Signal Processor, DSP)以及通信单元中的控制芯片(例如基带芯片)的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
[0176]进一步的,处理器42,还用于根据第二物理服务器的VTEP IP地址确定第二物理网关的VTEP IP地址;根据第二物理网关的VTEP IP地址,控制第二物理网关为虚拟机在第二物理网关上配置第二虚拟机网关。
[0177]进一步的,处理器42,还用于根据第二物理网关的VTEP IP地址,发送第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址至第二物理网关,以使得第二物理网关根据第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址在第二物理网关上配置第二虚拟机网关。
[0178]进一步的,处理器42,还用于根据接收器41获取的虚拟机的IP地址和虚拟机的MAC地址确定第一虚拟机网关的IP地址和第一虚拟机网关的MAC地址。
[0179]进一步的,处理器42,还用于在创建第一流表项之后,删除第二流表项,第二流表项中包含第一物理网关的VTEP IP地址、第一虚拟机网关的IP地址、第一虚拟机网关的MAC地址和虚拟机的IP地址之间的映射关系以及虚拟机的扩展虚拟局域网络VxLAN ID。
[0180]进一步的,处理器42,还用于在创建第一流表项之前,接收器41获取虚拟机迁移信息之后,根据虚拟机的IP地址和虚拟机的MAC地址确定虚拟机的VxLAN ID。
[0181]进一步的,处理器42,还用于在创建第一流表项之后,判断虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用第一虚拟机网关;若虚拟机的VxLAN ID所标识的网段内,不存在其他虚拟机使用第一虚拟机网关,则控制第一物理网关删除第一物理网关上配置的第一虚拟机网关。
[0182]需要说明的是,本发明实施例提供的SDN控制器中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
[0183]本发明实施例提供的SDN控制器,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。
[0184]实施例5
[0185]本发明实施例提供一种基于虚拟机迁移的网关控制系统,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由第一物理服务器迁移至第二物理服务器的过程中,如图12所示,该系统可以包括:SDN控制51、虚拟机52、第一物理服务器53、第一物理网关54、第一虚拟机网关55、第二物理服务器56、第二物理网关57和第二虚拟机网关58。
[0186]第一虚拟机网关55为配置在第一物理网关54上的虚拟机52的虚拟机网关;第二虚拟机网关58为配置在第二物理网关57上的虚拟机52的虚拟机网关。
[0187]SDN控制51,用于执行如权利要求1_7中任一项所述的基于虚拟机迁移的网关控制方法。
[0188]第二物理网关57,用于根据SDN控制51的控制,在第二物理网关57上配置第二虚拟机网关58。
[0189]其中,第二虚拟机网关58的IP地址与第一虚拟机网关55的IP地址相同,且第二虚拟机网关58的MAC地址与第一虚拟机网关55的MAC地址相同。
[0190]本发明实施例提供的基于虚拟机迁移的网关控制系统,在虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置了与虚拟机迁移前的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机的虚拟机网关(第一虚拟机网关)具有相同的IP地址和MAC地址的虚拟机网关(第二虚拟机网关),保证了虚拟机迁移前后的虚拟机网关地址(虚拟机网关的IP地址和虚拟机网关的MAC地址)不变;并且,可以发送记录物理网关、虚拟机网关和虚拟机的映射关系的流表项至第二物理网关,以使虚拟机在进行数据传输时,可以直接通过虚拟机迁移后的物理服务器(第二物理服务器)的物理网关(第二物理网关)上配置的虚拟机网关(第二虚拟机网关,即与虚拟机迁移前的虚拟机网关具有相同的IP地址和MAC地址的虚拟机网关)进行数据转发,不需要迂回到虚拟机迁移前所处的物理服务器(第一物理服务器)的物理网关(第一物理网关)上配置的虚拟机网关(第一虚拟机网关)进行数据转发,可以减少设备之间进行数据传输的数据流量,进而减少设备之间进行数据传输所占用的带宽,可以在一定程度上减少带宽资源的浪费。
[0191]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0192]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0193]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0194]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0195]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0196]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种基于虚拟机迁移的网关控制方法,其特征在于,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,当虚拟机由所述第一物理服务器迁移至所述第二物理服务器时,所述方法包括: 软件定义网络SDN控制器获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关; 所述SDN控制器根据所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,所述第二虚拟机网关的IP地址与所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述第一虚拟机网关的MAC地址相同; 所述SDN控制器创建第一流表项,所述第一流表项中包含所述第二物理网关的VTEPIP地址、所述第二虚拟机网关的IP地址、所述第二虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID,并发送所述第一流表项至所述第二物理网关,以使得所述第二物理网关根据所述第一流表项所指示的数据转发策略为所述虚拟机转发数据,所述虚拟机的VxLAN ID用于标识所述虚拟机所在的网段。
2.根据权利要求1所述的方法,其特征在于,所述SDN控制器根据所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,包括: 所述SDN控制器根据所述第二物理服务器的VTEP IP地址确定所述第二物理网关的VTEP IP 地址; 所述SDN控制器根据所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关。
3.根据权利要求1或2所述的方法,其特征在于,所述SDN控制器根据所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关,包括: 所述SDN控制器根据所述第二物理网关的VTEP IP地址,发送所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址至所述第二物理网关,以使得所述第二物理网关根据所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址在所述第二物理网关上配置所述第二虚拟机网关。
4.根据权利要求1或2所述的方法,其特征在于,所述软件定义网络SDN控制器获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,包括: 所述SDN控制器获取虚拟机迁移信息,所述虚拟机迁移信息包括:所述虚拟机的IP地址、所述虚拟机的MAC地址和所述第二物理服务器的VTEP IP地址; 所述SDN控制器根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述SDN控制器创建第一流表项之后,所述方法还包括: 删除第二流表项,所述第二流表项中包含所述第一物理网关的VTEPIP地址、第一虚拟机网关的IP地址、所述第一虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID。
6.根据权利要求4所述的方法,其特征在于,在所述SDN控制器创建第一流表项之前,所述SDN控制器获取虚拟机迁移信息之后,所述方法还包括: 根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述虚拟机的VxLAN ID。
7.根据权利要求6所述的方法,其特征在于,在所述创建第一流表项之后,所述方法还包括: 判断所述虚拟机的VxLAN ID所标识的网段内,是否存在其他虚拟机使用所述第一虚拟机网关; 若所述虚拟机的VxLAN ID所标识的网段内,不存在所述其他虚拟机使用所述第一虚拟机网关,则控制所述第一物理网关删除所述第一物理网关上配置的所述第一虚拟机网关。
8.一种软件定义网络SDN控制器,其特征在于,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由所述第一物理服务器迁移至所述第二物理服务器的过程中,所述SDN控制器包括: 获取单元,用于获取第一虚拟机网关的网际协议IP地址、所述第一虚拟机网关的媒体接入控制MAC地址和第二物理服务器的虚拟隧道终端节点VTEP IP地址,所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关; 配置单元,用于根据所述获取单元获取的所述第二物理服务器的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置第二虚拟机网关,所述第二虚拟机网关的IP地址与所述获取单元获取的所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述获取单元获取的所述第一虚拟机网关的MAC地址相同; 创建单元,用于创建第一流表项,所述第一流表项中包含所述第二物理网关的VTEP IP地址、所述第二虚拟机网关的IP地址、所述第二虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID ; 发送单元,用于发送创建单元创建的所述第一流表项至所述第二物理网关,以使得所述第二物理网关根据所述第一流表项所指示的数据转发策略为所述虚拟机转发数据,所述虚拟机的VxLAN ID用于标识所述虚拟机所在的网段。
9.根据权利要求8所述的SDN控制器,其特征在于,所述配置单元,包括: 第一确定子单元,用于根据所述第二物理服务器的VTEP IP地址确定所述第二物理网关的VTEP IP地址; 配置子单元,用于根据所述第一确定子单元确定的所述第二物理网关的VTEP IP地址,控制所述第二物理网关为所述虚拟机在所述第二物理网关上配置所述第二虚拟机网关。
10.根据权利要求8或9所述的SDN控制器,其特征在于,所述配置单元,具体用于根据所述第二物理网关的VTEP IP地址,发送所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址至所述第二物理网关,以使得所述第二物理网关根据所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址在所述第二物理网关上配置所述第二虚拟机网关。
11.根据权利要求8或9所述的SDN控制器,其特征在于,所述获取单元,包括: 获取子单元,用于获取虚拟机迁移信息,所述虚拟机迁移信息包括:所述虚拟机的IP地址、所述虚拟机的MAC地址和所述第二物理服务器的VTEP IP地址; 第二确定子单元,用于根据所述获取子单元获取的所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述第一虚拟机网关的IP地址和所述第一虚拟机网关的MAC地址。
12.根据权利要求8-11中任一项所述的SDN控制器,其特征在于,还包括: 删除单元,用于在所述创建单元创建所述创建第一流表项之后,删除第二流表项,所述第二流表项中包含所述第一物理网关的VTEP IP地址、第一虚拟机网关的IP地址、所述第一虚拟机网关的MAC地址和所述虚拟机的IP地址之间的映射关系以及所述虚拟机的扩展虚拟局域网络VxLAN ID0
13.根据权利要求11所述的SDN控制器,其特征在于,还包括: 确定单元,用于在所述创建单元创建所述第一流表项之前,所述获取单元获取所述虚拟机迁移信息之后,根据所述虚拟机的IP地址和所述虚拟机的MAC地址确定所述虚拟机的VxLAN ID。
14.根据权利要求10所述的SDN控制器,其特征在于,还包括: 判断单元,用于在所述创建单元创建所述第一流表项之后,判断所述虚拟机的VxLANID所标识的网段内,是否存在其他虚拟机使用所述第一虚拟机网关; 所述删除单元,还用于若所述判断单元判断得到所述虚拟机的VxLANID所标识的网段内,不存在所述其他虚拟机使用所述第一虚拟机网关,则控制所述第一物理网关删除所述第一物理网关上配置的所述第一虚拟机网关。
15.一种基于虚拟机迁移的网关控制系统,其特征在于,第一物理网关为第一物理服务器的物理网关,第二物理网关为第二物理服务器的物理网关,应用于虚拟机由所述第一物理服务器迁移至所述第二物理服务器的过程中,所述系统包括:软件定义网络SDN控制器、所述虚拟机、所述第一物理服务器、所述第一物理网关、第一虚拟机网关、所述第二物理服务器、所述第二物理网关和第二虚拟机网关; 所述第一虚拟机网关为配置在所述第一物理网关上的所述虚拟机的虚拟机网关;所述第二虚拟机网关为配置在所述第二物理网关上的所述虚拟机的虚拟机网关; 所述SDN控制器,用于执行如权利要求1-7中任一项所述的基于虚拟机迁移的网关控制方法; 第二物理网关,用于根据所述SDN控制器的控制,在所述第二物理网关上配置所述第二虚拟机网关; 其中,所述第二虚拟机网关的网际协议IP地址与所述第一虚拟机网关的IP地址相同,且所述第二虚拟机网关的MAC地址与所述第一虚拟机网关的媒体接入控制MAC地址相同。
【文档编号】G06F9/48GK104243265SQ201410449715
【公开日】2014年12月24日 申请日期:2014年9月5日 优先权日:2014年9月5日
【发明者】张辛波, 刘万来 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1