一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟机迁移方法及虚拟机迁移装置与流程

2021-11-25 00:18:00 来源:中国专利 TAG:


1.本发明涉及通信技术领域,具体涉及一种虚拟机迁移方法及虚拟机迁移装置。


背景技术:

2.当evpn(ethernet virtual private network,以太网虚拟专用网络)采用分布式网关架构时,每台vtep(vxlan tunnel end point,vxlan隧道端点)设备都可以作为evpn网关,对本地站点的流量进行三层转发。但是,不同的分布式网关接入用户数目不同,且每个分布式网关的处理能力存在差异,导致不同的分布式网关之间arp(address resolution protocol,地址解析协议)的处理能力差异较大。当其中一个分布式网关的arp表项数量达到最大值时,将无法学习arp表项并进行响应,从而导致了evpn网络的用户无法正常进行数据报文的转发。


技术实现要素:

3.为此,本发明提供一种虚拟机迁移方法及虚拟机迁移装置,以解决现有技术中的虚拟机迁移至arp表项数量达到最大值的vtep下的物理主机,导致将无法学习arp表项并进行响应,而致使evpn网络的用户无法正常进行数据报文的转发的问题。
4.为了实现上述目的,第一方面,本发明提供一种虚拟机迁移方法,包括:
5.接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求;
6.获取地址解析协议arp表项警告信息表中存储的虚拟扩展局域网隧道端点vtep,并获取所述vtep对应的各物理主机标识,其中,所述arp表项警告信息表中的所述vtep为arp表项数量达到预设阈值的vtep;
7.向所述云管理平台发送携带所述物理主机标识的迁移响应信息,以使所述云管理平台将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
8.在一些示例中,所述接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求之前,所述方法还包括:
9.接收所述vtep响应于arp表项数量达到预设阈值发送的arp表项警告信息;
10.根据所述arp表项警告信息创建所述arp表项警告信息表。
11.在一些示例中,获取地址解析协议arp表项警告信息表中存储的虚拟扩展局域网隧道端点vtep,并获取所述vtep对应的各物理主机标识包括:
12.获取所述arp表项警告信息表中存储的所述vtep;
13.从预设的所述vtep与物理主机的映射表中获取所述vtep对应的各物理主机标识。
14.在一些示例中,所述向所述云管理平台发送携带所述物理主机标识的迁移响应信息,以使所述云管理平台将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除之后,所述方法还包括:
15.接收所述云管理平台响应于所述虚拟机触发的迁移成功信息发送的迁移确认信息,其中,所述迁移确认信息中包含所述虚拟机迁移后对应的vtep标识;
16.根据所述虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同确定目标vtep;
17.向所述目标vtep发送所述虚拟机对应的流表。
18.在一些示例中,所述向所述目标vtep发送所述虚拟机对应的流表包括:
19.向所述目标vtep发送对应所述虚拟机的清除原流表请求;
20.接收所述目标vtep响应于所述清除原流表请求返回的清除确认信息,并向迁移后对应的vtep发送对应所述虚拟机的arp请求,以使迁移后对应的vtep向所述虚拟机转发所述arp请求;
21.接收迁移后对应的vtep返回的arp响应信息,其中,所述arp响应信息为所述虚拟机响应于所述arp请求发送的;
22.根据所述arp响应信息创建所述虚拟机对应的流表并发送给所述目标vtep。
23.在一些示例中,所述根据所述虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同确定目标vtep包括:
24.根据所述vtep标识确定所述虚拟机迁移后对应的vtep;
25.比较所述虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同,若相同,则确定所述目标vtep为迁移后对应的vtep,若不同,则确定所述目标vtep为迁移后对应的vtep所属的软件定义网络sdn控制器所管理的各个vtep。
26.第二方面,本发明提供一种虚拟机迁移方法,包括:
27.响应于虚拟机触发的第一迁移请求,向sdn控制器发送第二迁移请求,使所述sdn控制器获取arp表项警告信息表中存储的vtep,并获取所述vtep对应的各物理主机标识,其中,所述arp表项警告信息表中的所述vtep为arp表项数量达到预设阈值的vtep;
28.接收所述sdn控制器发送的携带所述物理主机标识的迁移响应信息,并将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
29.在一些示例中,所述接收所述sdn控制器发送的携带所述物理主机标识的迁移响应信息,并将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除之后,所述方法还包括:
30.响应于虚拟机触发的迁移成功信息,向所述sdn控制器发送迁移确认信息,使所述sdn控制器根据所述虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同确定目标vtep,并向所述目标vtep发送所述虚拟机对应的流表,其中,所述迁移确认信息中包含所述虚拟机迁移后对应的vtep标识。
31.第三方面,本发明提供一种虚拟机迁移装置,包括:
32.第一接收模块,其用于接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求;
33.获取模块,其用于获取地址解析协议arp表项警告信息表中存储的虚拟扩展局域网隧道端点vtep,并获取所述vtep对应的各物理主机标识,其中,所述arp表项警告信息表中的所述vtep为arp表项数量达到预设阈值的vtep;
34.第一发送模块,其用于向所述云管理平台发送携带所述物理主机标识的迁移响应信息,以使所述云管理平台将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
35.第四方面,本发明提供一种虚拟机迁移装置,包括:
36.第二发送模块,其用于响应于虚拟机触发的第一迁移请求向sdn控制器发送第二迁移请求,使所述sdn控制器获取arp表项警告信息表中存储的vtep,并获取所述vtep对应的各物理主机标识,其中,所述arp表项警告信息表中的所述vtep为arp表项数量达到预设阈值的vtep;
37.第二接收模块,其用于接收所述sdn控制器发送的携带所述物理主机标识的迁移响应信息,并将所述物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
38.第五方面,本发明提供一种电子设备,包括:
39.至少一个处理器;以及
40.与所述至少一个处理器通信连接的存储器;其中,
41.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。
42.第六方面,本发明提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的方法。
43.本发明具有如下优点:
44.本发明所提供的虚拟机迁移方法,通过在虚拟机迁移前,通过sdn(software defined network,软件定义网络)控制器获取arp表项余量不足的vtep下的各物理主机,从而能够避免虚拟机迁移至对应arp表项余量不足的vtep的物理主机,而导致无法进行arp表项学习,进而能够避免迁移后无法正常进行数据报文的转发的问题。
附图说明
45.附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
46.图1为一种sdn架构的结构示意简图;
47.图2为本发明提供的虚拟机迁移方法的一种实施例的流程示意图之一;
48.图3为本发明提供的虚拟机迁移方法的一种实施例的流程示意图之二;
49.图4为本发明提供的虚拟机迁移方法的一种实施例的流程示意图之三;
50.图5为本发明提供的虚拟机迁移方法的另一种实施例的流程示意图之一;
51.图6为本发明提供的虚拟机迁移方法的另一种实施例的流程示意图之二;
52.图7为本发明提供的虚拟机迁移装置的一种实施例的结构示意图;
53.图8为本发明提供的虚拟机迁移装置的另一种实施例的结构示意图;
54.图9为本发明提供的一种电子设备的结构示意图。
具体实施方式
55.为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
56.可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
57.可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
58.可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
59.可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
60.可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。
61.可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
62.可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
63.在相关技术中,vxlan(virtual extensible lan,可扩展虚拟局域网络)是基于ip(internet protocol,网际互连协议)网络、采用mac

in

udp(media access control address

in

user datagram protocol,物理地址封装在用户数据协议)封装形式的二层vpn(virtual private network,虚拟专用网络)技术。vxlan可以基于已有的服务提供商或企业ip网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。vxlan主要应用于数据中心网络。vxlan具有诸多特点,例如支持大量的租户,使用24位的标识符,最多可支持2的24次方(16777216)个vxlan,使支持的租户数目大规模增加,解决了传统二层网络vlan资源不足的问题。又例如易于维护,基于ip网络组建大二层网络,使得网络部署和维护更加容易,并且可以充分地利用现有的ip网络技术,例如利用等价路由进行负载分担等;只有ip核心网络的边缘设备需要进行vxlan处理,网络中间设备只需根据ip头转发报文,降低了网络部署的难度和费用。vxlan技术将已有的三层物理网络作为underlay网络(即底层网络),在其上构建出虚拟的二层网络,即overlay网络(即叠层网络)。overlay网络通过封装技术、利用underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。vxlan的典型网络模型可以包括如下几部分:
64.vm(virtual machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的vxlan。属于相同vxlan的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同vxlan的虚拟机之间二层隔离。vxlan通过vxlan id来标识,vxlan id又称vni(vxlan network identifier,vxlan网络标识符),其长度为24比特。
65.vtep(vxlan tunnel end point,vxlan隧道端点):vxlan的边缘设备。vxlan的相关处理都在vtep上进行,例如识别以太网数据帧所属的vxlan、基于vxlan对数据帧进行二层转发、封装/解封装报文等。需要说明的是,vtep可以是一台独立的物理设备,也可以是虚拟机所在的服务器,在此不做限定。
66.vxlan隧道:两个vtep之间的点到点逻辑隧道。vtep为数据帧封装vxlan头、udp(user datagram protocol,用户数据协议)头和ip头后,通过vxlan隧道将封装后的报文转发给远端vtep,远端vtep对其进行解封装。
67.核心设备:ip核心网络中的设备。核心设备不参与vxlan处理,仅需要根据封装后报文的目的ip地址对报文进行三层转发。
68.vsi(virtual switch instance,虚拟交换实例):vtep上为一个vxlan提供二层交换服务的虚拟交换实例。vsi可以看做是vtep上的一台基于vxlan进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源mac地址学习、mac地址老化、泛洪等。vsi与vxlan一一对应。
69.ac(attachment circuit,接入电路):vtep连接本地站点的物理电路或虚拟电路。在vtep上,与vsi关联的三层接口或以太网服务实例(service instance)称为ac。其中,以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则,用来匹配从该二层以太网接口上接收到的数据帧。1个二层物理口下面配置了服务实例ac。
70.并且,evpn(ethernet virtual private network,以太网虚拟专用网络)是一种二层vpn技术,控制平面采用mp

bgp(border gateway protocol,边界网关协议)通告evpn路由信息,数据平面采用vxlan封装方式转发报文。其中,evpn相比较vxlan的优势在于简化配置,通过mp

bgp实现vtep自动发现、vxlan隧道自动建立、vxlan隧道与vxlan自动关联,无需用户手工配置,降低网络部署难度。以及分离控制平面与数据平面,控制平面负责发布路由信息,数据平面负责转发报文,分工明确,易于管理。
71.需要说明的是,本发明提供的虚拟机迁移方法可应用在一种sdn架构中,例如图1所示的sdn架构,该sdn架构可以包括sdn控制器、云管理平台、若干vtep和vm。其中,vtep设备可以为支持vxlan的硬件设备或集成有支持vxlan的软件的设备,vm上可以运行操作系统os以及各种应用。每个vtep设备可以看作是一个虚拟子网(简称:子网)的交换机,使得每个vtep设备对应子网内的所有vm可以通过该vtep设备与子网外的vm相互通信,而vtep设备之间可以通过建立vxlan隧道,从而通过该vxlan隧道传输虚拟网络的数据。vtep下可以挂载多个vm,示例性的,如图1所示,sdn架构中包括vtep设备,如vtep1和vtep2,包括虚拟机,如vm1、vm2、vm3、vm4,其中,vm1、vm2、vm3属于vtep1对应子网,并通过vtep1与子网外的vm相互通信,同理,vm4属于vtep2对应子网,并通过vtep2与子网外的vm相互通信。需要说明的是,vtep设备包括至少一个出接口,vtep设备通过该出接口与其对应子网内的vm相互通信,每个vm对应一个vtep设备出接口,当然,这些vm可以通过同一vtep设备出接口与vtep设备通信,这里不做限定。云管理平台连接在各个vm与sdn控制器之间,用于管理vm与sdn控制器之间的通信,在一些示例中,云管理平台还可以连接vtep设备。sdn控制器用于统一维护vtep设备的arp表项,该arp表项中包括vtep设备出接口信息与其对应子网内的每个vm的mac地址(物理地址)和ip地址间的映射关系。vm存储在物理主机中,物理主机挂载在vtep下,一个vtep的arp表项包含该vtep下的各个vm所在的物理主机的mac地址以及ip地址,虚拟机的迁移也就是将vm从一个物理主机迁移至另一物理主机。一般地,当vm上线时,vm会向sdn控制器发送注册请求,并将其对应的映射关系上传给sdn控制器,而sdn控制器从vm处获取到vm对应的映射关系后,sdn控制器会基于该映射关系为vm对应的vtep设备生成arp表项,然后,将每个vtep设备对应的arp表项下发给所有属于该sdn控制器管理的vtep设备。
72.实施例一、
73.参见图2,本发明提供一种虚拟机迁移方法,应用在sdn控制器侧,该方法包括:
74.s11、接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求。
75.当虚拟机(以下称为vm)需要迁移时,会向云管理平台发送第一迁移请求,云管理平台接收到第一迁移请求后,生成第二迁移请求发送至sdn控制器。在一些示例中,第一迁移请求与第二迁移请求可以为同一迁移请求,即云管理平台接收到第一迁移请求后将第一迁移请求转发给sdn控制器。其中,第一迁移请求和/或第二迁移请求可以包括vm的ip地址、mac地址、vlan。
76.需要说明的是,vm迁移即vm从现在所处的物理主机,转移到另一物理主机。
77.s12、获取地址解析协议arp表项警告信息表中存储的虚拟扩展局域网隧道端点vtep,并获取vtep对应的各物理主机标识,其中,arp表项警告信息表中的vtep为arp表项数量达到预设阈值的vtep。
78.具体地,arp表项警告信息表预存在sdn控制器中,arp表项警告信息表中存储有一个或多个vtep标识,这些vtep标识对应的vtep为arp表项数量达到预设阈值的vtep,再通过vtep标识查询到每个vtep对应的物理主机标识,并生成携带物理主机标识的迁移响应信息,以通告云管理平台arp表项余量不足的vtep下有哪些物理主机,避免云管理平台将虚拟机迁入这些物理主机中。需要说明的是,预设阈值可以为任意大于等于1的整数,例如200、300等,在此不做限制。
79.s13、向云管理平台发送携带物理主机标识的迁移响应信息,以使云管理平台将物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
80.具体地,sdn控制器向云管理平台发送携带上述物理主机标识的迁移响应信息,云平台管理接收迁移响应信息,并获取其中携带的物理主机标识,将这些物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除,即排除掉这些物理主机,以便在选择虚拟机迁移的目标主机时,能够避免选择arp表项余量不足的物理主机为目标主机进行迁移。
81.arp表项可以用于通过目标设备(例如vm)的ip地址,查询目标设备的mac地址,以保证通信的顺利进行。由于每个vtep的处理能力有限制,当一个vtep的arp表项达到最大规格时,无法针对请求网关mac地址的arp报文去学习arp表项并进行响应,也无法针对三层转发的以太网数据报文的目的ip地址发出arp请求报文以学习arp表项,导致了evpn网络的用户的数据报文的转发失败,因此,本发明提供的虚拟机迁移方法通过记录arp表项即将达到最大规格的vtep,在虚拟机迁移时通告虚拟机,从而能够避免虚拟机迁移至对应arp表项余量不足的vtep的物理主机下,而导致无法进行arp表项学习,进而能够避免迁移后无法正常进行数据报文的转发的问题。
82.在一些示例中,在进行虚拟机迁移前,首先需要进行对sdn控制器和云管理平台进行配置。在s11之前,该方式还包括:云管理平台与sdn控制器建立连接。
83.具体地,sdn控制器与云管理平台通过tcp协议(transmission control protocol,传输控制协议)对接,并选择一个未定义端口作为传输tcp数据包的端口,且sdn控制器与云管理平台之间通过心跳信息保存连接。
84.在一些示例中,在云管理平台与sdn控制器建立连接后,该方式还包括:定义sdn控制器与云管理平台之间通信的信息类型。
85.具体地,sdn控制器与云管理平台之间通信的信息类型包括:迁移请求信息(例如第一迁移请求和第二迁移请求)、迁移响应信息、迁移确认信息。其中,迁移请求信息可以包括虚拟机的ip地址、mac地址、vlan,迁移响应信息可以包括虚拟机的ip地址、mac地址、
vlan、arp表项警告信息表中的vtep对应的物理主机标识,迁移确认信息可以包括虚拟机的ip地址、mac地址、vlan、迁移后的物理主机标识。
86.在一些示例中,定义sdn控制器与云管理平台之间通信的信息类型后,该方法还包括:sdn控制器创建vtep与物理主机的映射表。该映射表存储在sdn控制器中,映射表中包括sdn控制器管理的各个vtep的标识,以及每个vtep对应的各个物理主机的标识,通过该映射表能够查询每个vtep下的物理主机。
87.在一些示例中,创建vtep与物理主机的映射表之后,该方法还包括:sdn控制器设置各个arp表项,arp表项内容可以包括vtep下的vm的mac地址、arp地址、归属的vtep标识、归属的物理主机标识。
88.实施例二、
89.图3示出了本发明另一个实施例提供的虚拟机迁移方法的流程图。参见图3,该方法包括以下步骤:
90.s01、接收vtep响应于arp表项数量达到预设阈值发送的arp表项警告信息。
91.具体地,在sdn控制器和云管理平台建立连接后,当一个vtep的arp表项余量不足时,即arp表项数量达到预设阈值时,vtep会向sdn控制器发送arp表项警告信息,arp表项警告信息携带该vtep的标识。其中,vtep可以通过北向接口,如openflow协议向sdn控制器发送arp表项警告信息。需要说明的是,预设阈值可以为任意大于等于1的整数,例如200、300等,在此不做限制。
92.s02、根据arp表项警告信息创建arp表项警告信息表。
93.具体地,sdn控制器接收arp表项警告信息,并获取其中携带的arp表项数量达到预设阈值的vtep的标识,创建一个arp表项警告信息表,并将该vtep标识记录在arp表项警告信息表中。需要说明的是,sdn控制器仅在接收到第一个arp表项警告信息时创建arp表项警告信息表,之后每接到一个arp表项警告信息,则只用将该arp表项警告信息中的vtep标识记录在创建好的arp表项警告信息表中。
94.其中,步骤s01和步骤s02为一个可选的步骤,在一些实施例中,也可以省略步骤s01和/或步骤s02。
95.s11、接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求。
96.s121、获取arp表项警告信息表中存储的vtep标识。
97.具体地,sdn控制器从预存的arp表项警告信息表中获取存储的各arp表项数量达到预设阈值的vtep的标识。
98.s122、从预设的vtep与物理主机的映射表中获取vtep标识对应的各物理主机标识。
99.具体地,sdn控制器在获取到arp表项警告信息表中存储的vtep标识后,再依据预存的vtep与物理主机的映射表,获取arp表项警告信息表的所有vtep对应的物理主机标识,并生成携带这些物理主机标识的迁移响应信息。
100.其中,步骤s121和步骤s122为步骤s12的一种实现方式,步骤s12还可以采用其他方式实现,例如的vtep与物理主机的映射关系可以直接存储在arp表项警告信息表中,从而可以通过arp表项警告信息表获取vtep标识及vtep标识对应的物理主机标识。
101.s13、向云管理平台发送携带物理主机标识的迁移响应信息,以使云管理平台将物
理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
102.s14、接收云管理平台响应于虚拟机触发的迁移成功信息发送的迁移确认信息,其中,迁移确认信息中包含虚拟机迁移后对应的vtep标识。
103.具体地,sdn控制器向云管理平台发送携带arp表项余量不足的vtep对应的物理主机标识的迁移响应信息,云平台管理接收迁移响应信息,并获取其中携带的物理主机标识,将这些物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除,再选择剩余的物理主机作为目标主机,进行vm迁移,在vm迁移成功后,vm向云管理平台发送迁移成功消息,云管理平台接收到迁移成功消息后,向sdn控制器发送迁移确认消息,迁移确认信息中包含虚拟机迁移后对应的vtep标识,以告知sdn控制器虚拟机迁移后的vtep。
104.s15、根据虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同确定目标vtep。
105.具体地,根据vm迁移后所属的物理主机归属的vtep与迁移前所属的物理主机归属的vtep是否相同,sdn控制器发送清除原流表请求和发送更新后的流表的对象(即目标vtep)不同。
106.其中,步骤s15为一个可选的步骤,在一些实施例中,也可以省略步骤s15。
107.在一些示例中,参见图4,图4包括s15的多个子步骤,s15可以包括:
108.s151、根据vtep标识确定虚拟机迁移后对应的vtep。
109.具体地,获取迁移确认信息中携带的虚拟机迁移后对应的vtep标识,确定虚拟机迁移后的vtep。
110.s152、比较虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同。
111.具体地,根据sdn控制器存储的arp表项中虚拟机迁移前对应的vtep的标识,与获取的虚拟机迁移后对应的vtep标识作比较,确定虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep是否相同。
112.s1531、若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep相同,则确定目标vtep为迁移后的vtep。
113.s1532、若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep不同,则确定目标vtep为迁移后对应的vtep所属的sdn控制器所管理的各个vtep(其中包括虚拟机迁移后的物理主机所属的vtep)。
114.s16、向目标vtep发送虚拟机对应的流表。
115.在交换机的运行过程中,其数据转发的依据就是流表。在传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层mac地址转发表或者三层ip地址路由表,而流表也是如此,只是流表的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。流表包含下联的以太网交换机的端口号,当虚拟机迁移后的物理主机对应的vtep改变后,由于下一跳的vtep地址可能发生改变,因此需要向各个vtep更新对应迁移后的vtep的流表,而若虚拟机迁移后的物理主机对应的vtep没有改变,则仅需更新当前虚拟机所在的vtep的流表,因此在两种情况下,发送流表是目标vtep不同。
116.其中,步骤s16为一个可选的步骤,在一些实施例中,也可以省略步骤s16。
117.在一些示例中,继续参见图4,图4包括s16的多个子步骤,s16包括:
118.s161、向目标vtep发送对应虚拟机的清除原流表请求。
119.若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep相同,则向虚拟机迁移后的物理主机对应的vtep发送清除原流表请求,使虚拟机迁移后的物理主机对应的vtep清除当前保存的流表,虚拟机迁移后的物理主机对应的vtep清除流表后会向sdn控制器反馈清除确认信息。
120.若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep不同,则向迁移后对应的vtep所属的sdn控制器所管理的各个vtep(其中包括虚拟机迁移后的物理主机所属的vtep)发送清除原流表请求,使迁移后对应的vtep所属的sdn控制器所管理的各个vtep清除当前保存的流表,迁移后对应的vtep所属的sdn控制器所管理的各个vtep清除流表后会向sdn控制器反馈清除确认信息。
121.s162、接收目标vtep响应于清除原流表请求返回的清除确认信息,并向迁移后对应的vtep发送对应虚拟机的arp请求,以使迁移后对应的vtep向虚拟机转发arp请求。
122.具体地,sdn控制器接收到目标vtep反馈的清除确认信息后,向迁移后对应的vtep发送对应虚拟机的arp请求,进行arp更新。其中,arp请求中携带迁移的虚拟机的标识和广播范围指示信息,广播范围指示信息用于指示arp请求仅在vtep下联的二层vni域内广播。vtep接收arp请求后,在下联的二层vni域内广播arp请求,vm1接收到arp请求后,向vtep返回arp响应信息,vtep再将arp响应信息发送给sdn控制器,完成arp更新。
123.s163、接收迁移后对应的vtep返回的arp响应信息,其中,arp响应信息为虚拟机响应于arp请求发送的。
124.具体地,arp响应信息中携带了vm上联的以太网交换机的端口号,从而保证vm能够正常进行通信。
125.s164、根据arp响应信息创建虚拟机对应的流表并发送给目标vtep。
126.具体地,sdn控制器根据arp响应信息进行端口信息的更新后,创建新的流表,若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep相同,则向虚拟机迁移后的物理主机对应的vtep发送新的流表。
127.若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep不同,则向迁移后对应的vtep所属的sdn控制器所管理的各个vtep(其中包括虚拟机迁移后的物理主机所属的vtep)发送新的流表。通过上述步骤,能够让迁移后的虚拟机和vtep、sdn控制器正常通信。
128.实施例三、
129.本发明提供一种虚拟机迁移方法,应用在云管理平台侧,参见图5,该方法包括:
130.s21、响应于虚拟机触发的第一迁移请求向sdn控制器发送第二迁移请求,使sdn控制器获取arp表项警告信息表中存储的vtep,并获取vtep对应的各物理主机标识,其中,arp表项警告信息表中的vtep为arp表项数量达到预设阈值的vtep。
131.具体地,当虚拟机需要迁移,会向云管理平台发送第一迁移请求,云管理平台接收到第一迁移请求后,生成第二迁移请求发送至sdn控制器。在一些示例中,第一迁移请求与第二迁移请求可以为同一迁移请求,即云管理平台接收到第一迁移请求后将第一迁移请求转发给sdn控制器。其中,第一迁移请求和/或第二迁移请求可以包括vm的ip地址、mac地址、vlan。sdn控制器接收到第二迁移请求后,获取预存的arp表项警告信息表中存储的vtep标识,这些vtep为arp表项数量达到预设阈值的vtep标识,再从预存的vtep与物理主机的映射
表,获取arp表项警告信息表的所有vtep标识对应的物理主机标识,并生成携带这些物理主机标识的迁移响应信息。
132.s22、接收sdn控制器发送的携带物理主机标识的迁移响应信息,并将物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
133.具体地,云管理平台接收到sdn控制器发送的迁移响应信息,并获取其中携带的物理主机标识,将这些物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除,即排除掉这些物理主机,以便在选择虚拟机迁移的目标主机时,能够避免选择arp表项余量不足的物理主机为目标主机进行迁移。
134.在一些示例中,参见图6,s22之后,方法还包括:
135.s23、响应于虚拟机触发的迁移成功信息向sdn控制器发送迁移确认信息,使sdn控制器根据虚拟机迁移前对应的vtep与迁移后对应的vtep是否相同确定目标vtep,并向目标vtep发送虚拟机对应的流表,其中,迁移确认信息中包含虚拟机迁移后对应的vtep标识。
136.具体地,sdn控制器向云管理平台发送携带arp表项余量不足的vtep对应的物理主机标识的迁移响应信息,云平台管理接收迁移响应信息,并获取其中携带的物理主机标识,将这些物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除,再选择剩余的物理主机作为目标主机,进行vm迁移,在vm迁移成功后,vm向云管理平台发送迁移成功消息,云管理平台接收到迁移成功消息后,向sdn控制器发送迁移确认消息,迁移确认信息中包含虚拟机迁移后对应的vtep标识,以告知sdn控制器虚拟机迁移后的vtep。sdn控制器接收迁移确认信息后,获取迁移确认信息中携带的虚拟机迁移后对应的vtep标识,确定虚拟机迁移后的vtep,再根据存储在自身的arp表项中虚拟机迁移前对应的vtep的标识,与获取的虚拟机迁移后对应的vtep标识作比较,确定虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep是否相同,若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep相同,则确定目标vtep为迁移后的vtep,若虚拟机迁移后的物理主机所属的vtep与迁移前的物理主机所属的vtep不同,则确定目标vtep为迁移后对应的vtep所属的sdn控制器所管理的各个vtep(其中包括虚拟机迁移后的物理主机所属的vtep),确定目标vtep后,sdn向目标vtep发送虚拟机对应的流表以进行数据转发。
137.本发明所提供的虚拟机迁移方法,通过在虚拟机迁移前,通过sdn(software defined network,软件定义网络)控制器获取arp表项余量不足的vtep下的各物理主机,从而能够避免虚拟机迁移至对应arp表项余量不足的vtep的物理主机,而导致无法进行arp表项学习,进而能够避免迁移后无法正常进行数据报文的转发的问题。
138.实施例四、
139.参见图7,本发明提供一种虚拟机迁移装置,包括:
140.第一接收模块101,其用于接收云管理平台响应于虚拟机触发的第一迁移请求发送的第二迁移请求。
141.获取模块102,其用于获取地址解析协议arp表项警告信息表中存储的虚拟扩展局域网隧道端点vtep,并获取vtep对应的各物理主机标识,其中,arp表项警告信息表中的vtep为arp表项数量达到预设阈值的vtep。
142.第一发送模块103,其用于向云管理平台发送携带物理主机标识的迁移响应信息,以使云管理平台将物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
143.实施例五、
144.参见图8,本发明提供一种虚拟机迁移装置,包括:
145.第二发送模块201,其用于响应于虚拟机触发的第一迁移请求向sdn控制器发送第二迁移请求,使sdn控制器获取arp表项警告信息表中存储的vtep,并获取vtep对应的各物理主机标识,其中,arp表项警告信息表中的vtep为arp表项数量达到预设阈值的vtep。
146.第二接收模块202,其用于接收sdn控制器发送的携带物理主机标识的迁移响应信息,并将物理主机标识对应的物理主机从虚拟机迁移目标主机选项表中删除。
147.本发明实施例所提供的虚拟机迁移装置,通过在虚拟机迁移前,通过sdn(software defined network,软件定义网络)控制器获取arp表项余量不足的vtep下的各物理主机,从而能够避免虚拟机迁移至对应arp表项余量不足的vtep的物理主机,而导致无法进行arp表项学习,进而能够避免迁移后无法正常进行数据报文的转发的问题。
148.实施例六、
149.本发明提供一种电子设备,包括:
150.至少一个处理器。以及
151.与至少一个处理器通信连接的存储器。其中,
152.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的虚拟机迁移方法。
153.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
154.参见图9,图9示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
155.如图9所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
156.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等。输出单元807,例如各种类型的显示器、扬声器等。存储单元808,例如磁盘、光盘等。以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
157.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如虚拟机迁移方法。例如,在一些实施例中,虚拟机迁移方法可被实现为计算机软件程
序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的虚拟机迁移方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行虚拟机迁移方法。
158.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
159.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
160.实施例七、
161.本发明提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据上述的方法。
162.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
163.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器)。以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈)。并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
164.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
165.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
166.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
167.本发明实施例所提供的虚拟机迁移方法,通过在虚拟机迁移前,通过sdn(software defined network,软件定义网络)控制器获取arp表项余量不足的vtep下的各物理主机,从而能够避免虚拟机迁移至对应arp表项余量不足的vtep的物理主机,而导致无法进行arp表项学习,进而能够避免迁移后无法正常进行数据报文的转发的问题。
168.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献