CN104407911B - 虚拟机迁移方法及装置 - Google Patents

虚拟机迁移方法及装置 Download PDF

Info

Publication number
CN104407911B
CN104407911B CN201410605909.XA CN201410605909A CN104407911B CN 104407911 B CN104407911 B CN 104407911B CN 201410605909 A CN201410605909 A CN 201410605909A CN 104407911 B CN104407911 B CN 104407911B
Authority
CN
China
Prior art keywords
vport
port
list
ovs
list items
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
Application number
CN201410605909.XA
Other languages
English (en)
Other versions
CN104407911A (zh
Inventor
张祥辉
张连雷
温涛
林涛
张寅飞
任维春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201410605909.XA priority Critical patent/CN104407911B/zh
Publication of CN104407911A publication Critical patent/CN104407911A/zh
Application granted granted Critical
Publication of CN104407911B publication Critical patent/CN104407911B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提出虚拟机迁移方法及装置。方法包括:SDN控制器集群中的SDN控制器维护本集群下挂的所有OVS的vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态;接收本集群的Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”。本申请保证了SDN控制器能够准确得知VM发生迁移。

Description

虚拟机迁移方法及装置
技术领域
本申请涉及虚拟化技术领域,尤其涉及VM(Virtual Machine,虚拟机)迁移方法及装置。
背景技术
SDN(Software Defined Network,软件定义网络)是一种新型的网络通信架构。SDN技术实现了对网络设备的集中控制、分布转发。在SDN技术概念中,将网络功能分为控制器和数据通道两个部分,这两部分之间通过一个安全通道进行交互。在控制器上,可以对其控制的网络设备进行集中管理,对网络行为进行统一编排,然后规定数据通路的转发行为。SDN技术大大增加了网络管理的可控性、灵活性。目前,SDN的具体实现有各种不同的技术,其中最主流的是OpenFlow技术。
为了提升SDN的稳定性,引入了控制器集群的概念,在该网络中多个控制器组成一个控制器集群,控制器集群的每个成员共同控制网络中的交换机。每个成员连接若干数量的交换机,并将这些交换机的属性信息同步到集群内的所有控制器上,交换机上接入的主机信息也在集群内同步,与转发相关的流表信息则根据需要在某些成员上同步,集群内的数据同步策略可以根据需要进行调整以确保效率和数据一致性。
OVS(Open Vswitch,开放虚拟交换机)是一种运行在类Linux下的软件,实现了虚拟交换机的大部分功能,同时还支持二三层协议,还支持标准的管理接口和协议。
VM迁移指的是,出于某些原因如:主机硬件维护、虚拟机系统资源规划调整等,将VM从一台物理主机迁移到另一台物理主机。在迁移过程中,源主机上的VM的内存、磁盘以及其它配置都会被拷贝到目的主机,形成迁移后的VM。迁移成功结束后,源主机上的VM将会被移除。
发明内容
本申请提供VM迁移方法及装置。
本申请的技术方案是这样实现的:
一种VM迁移方法,该方法包括:
SDN控制器集群中的SDN控制器维护本集群下挂的所有OVS的vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态;
接收本集群的Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”。
一种VM迁移方法,该方法包括:
SDN控制器集群的leader接收VMM发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,leader向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”;
Leader接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
一种VM迁移方法,该方法包括:
当VMM要发起VM迁移时,向SDN控制器集群的Leader发送VM迁移通知消息,该消息携带:迁出OVS的地址、迁入OVS的地址和该要迁移的VM的地址;
VMM接收所述Leader返回的携带vPort同步完成指示的VM迁移通知响应消息,开始将该VM从迁出OVS迁移到迁入OVS。
一种VM迁移装置,位于SDN控制器集群中的SDN控制器上,该装置主要包括:
vPort列表维护模块:维护本SDN控制器集群下挂的所有开放虚拟交换机OVS的vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态;
vPort同步模块:接收本集群的Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将vPort列表维护模块中的对应vPort表项中的迁移状态更新为“迁移”、端口状态为“up”。
一种VM迁移装置,位于SDN控制器集群的leader上,该装置主要包括:
迁移通知处理模块:接收VMM发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”;
迁移通知响应模块:接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
一种VM迁移装置,位于VMM上,该装置主要包括:
迁移通知模块:要发起VM迁移时,向SDN控制器集群的Leader发送VM迁移通知消息,该消息携带:迁出OVS的地址、迁入OVS的地址和该要迁移的VM的地址;
迁移触发模块:接收所述Leader返回的携带vPort同步完成指示的VM迁移通知响应消息,开始将该VM从迁出OVS迁移到迁入OVS。
可见,本申请中,通过在集群内的每个SDN控制器上维护全局vPort列表,使得vPort的状态在集群内同步;当要发起对VM的迁移时,通过leader通知迁出控制器和迁入控制器更改vPort的迁移状态为“迁移”,从而:保证了迁出、迁入控制器能够准确得知VM发生迁移。
附图说明
图1为SDN控制器集群组网下的VM迁移示例图;
图2为本申请一实施例提供的VM迁移方法流程图;
图3为本申请另一实施例提供的VM迁移方法流程图
图4为本申请另一实施例提供的VM迁移方法流程图;
图5为本申请另一实施例提供的VM迁移方法流程图;
图6为本申请一实施例提供的VM迁移装置的组成示意图;
图7为本申请实施例提供的SDN控制器的硬件结构示意图;
图8本申请另一实施例提供的VM迁移装置的组成示意图;
图9为本申请实施例提供的SDN控制器集群中的Leader的硬件结构示意图;
图10为本申请另一实施例提供的VM迁移装置的组成示意图;
图11为本申请实施例提供的VMM的硬件结构示意图。
具体实施方式
申请人对现有的VM迁移过程进行分析发现:
当VM连接的OVS下挂在SDN控制器集群下时,VM可能会从集群内的SDN控制器A下挂的OVS1迁移到集群内的SDN控制器B下挂的OVS2,如图1所示,关于这种情形,现有技术并未给出具体的迁移方案。
图2为本申请一实施例提供的VM迁移方法流程图,其具体步骤如下:
步骤201:SDN控制器集群中的SDN控制器维护本集群下挂的所有OVS的vPort(虚拟端口)列表,每个vPort表项包含:VM的地址、迁移状态和端口状态。
vPort表项中的迁移状态初始化为“未迁移”。
优选地,SDN控制器接收自身下挂的OVS发来的端口add事件,根据该事件携带的VM的地址在自身查找对应的vPort表项,若未查找到,则生成新的vPort表项,该表项包含:该VM的地址、迁移状态:未迁移、端口状态:down,同时,将该端口add事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器生成相同的vPort表项;
SDN控制器接收自身下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址在自身查找到对应的vPort表项,发现表项中的迁移状态为“未迁移”,则将表项中的端口状态更改为“up”,同时,将该端口modify事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器将自身的该vPort表项中的端口状态更改为“up”。
端口add事件携带对应的VM的地址和端口状态:down;端口modify事件携带对应的VM的地址和端口状态:up。
步骤202:SDN控制器接收本集群的Leader(领导者)发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”。
优选地,SDN控制器接收本控制器下挂的OVS发来的端口delete(删除)事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变,删除自身保存的该VM的地址对应的流表项,将该vPort表项中的迁移状态更改为“未迁移”,向集群内的其它SDN控制器转发该端口delete事件,其中该事件的原因选项中携带VM发生迁移指示,以使得:其它SDN控制器删除该VM的地址对应的流表项,并将该VM的地址对应的vPort表项中的迁移状态更改为“未迁移”。
端口delete事件携带对应的VM的地址及端口状态:down。
优选地,SDN控制器接收其它SDN控制器发来的端口delete事件,发现该事件的原因选项中携带VM发生迁移指示,则根据该事件携带的VM的地址,在自身查找到对应的流表项,删除查找到的流表项,且,若该VM的地址对应的vPort表项中的迁移状态为“迁移”,则将其更改为“未迁移”。
优选地,SDN控制器接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则不作进一步处理,即保持该表项中的端口状态为“up”不变;接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则不作进一步处理,即保持该表项中的端口状态为“up”不变。
图3为本申请另一实施例提供的VM迁移方法流程图,其具体步骤如下:
步骤301:SDN控制器集群的leader接收VMM(Virtual Machine Manager,虚拟机管理者)发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,leader向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”。
优选地,vPort同步消息采用REST调用方式。
步骤302:Leader接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
图4为本申请另一实施例提供的VM迁移方法流程图,其具体步骤如下:
步骤401:当VMM要发起VM迁移时,向SDN控制器集群的Leader发送VM迁移通知消息,该消息携带:迁出OVS的地址、迁入OVS的地址和该要迁移的VM的地址。
优选地,VM迁移通知消息采用REST调用方式。
步骤402:VMM接收所述Leader返回的携带vPort同步完成指示的VM迁移通知响应消息,开始将该VM从迁出OVS迁移到迁入OVS。
图5为本申请另一实施例提供的VM迁移方法流程图,本实施例应用的网络环境中具有一个SDN控制器集群,该SDN控制器集群内的每个SDN控制器支持下挂运行SDN协议的OVS,VM下挂在OVS上,VMM与SDN控制器集群连接,VMM上配置了SDN控制器集群的集群IP地址,同时VMM与所有VM连接,其具体步骤如下:
步骤501:当OVS感知到有VM创建时,向本OVS连接的SDN控制器上报端口add事件,该事件携带该VM的地址及端口状态:down。
步骤502:SDN控制器接收该端口add事件,根据事件携带的VM的地址在自身查找对应的vPort表项,未查找到,则生成新的vPort表项,该表项包含:该VM的地址、迁移状态:未迁移、端口状态:down,同时,将该端口add事件同步到本SDN控制器集群内的其它SDN控制器,以便其它SDN控制器生成相同的vPort表项。
步骤503:之后,当OVS感知到该VM上线时,向本OVS连接的SDN控制器上报端口modify事件,该事件携带该VM的地址及端口状态:up。
步骤504:SDN控制器接收该端口modify事件,根据事件携带的VM的地址在自身查找到对应的vPort表项,发现表项中的迁移状态为“未迁移“,则将表项中的端口状态更改为“up”,同时,将该端口modify事件同步到本SDN控制器集群内的其它SDN控制器,以便其它SDN控制器更新自身的该vPort表项。
可见,通过上述步骤501~504,SDN控制器集群内的每个SDN控制器分别维护本集群内所有SDN控制器下挂的OVS上的vPort列表,vPort列表中的每条vPort表项包含:vPort连接的VM的地址、该VM的迁移状态、该vPort的端口状态。其中,迁移状态分为:迁移和未迁移两种;端口状态分为:up和down两种。
SDN控制器集群中的一个控制器为Leader,Leader可以预先指定,也可以根据预设规则选举,只有Leader上使能了SDN控制器集群的集群IP地址。
SDN控制器集群具有集群IP地址,集群IP地址只在集群中担任Leader角色的控制器上生效,同时每个控制器具有自己的生效的独立IP地址,即非Leader上只有自己的独立IP地址生效,而Leader上生效的IP地址则有两个:集群IP地址和自己的独立IP地址。
步骤505:当VMM要发起VM迁移时,向SDN控制器集群发送VM迁移通知消息,该消息的目的IP地址为该SDN控制器集群的集群IP地址,该消息包括:迁出OVS的地址、迁入OVS的地址和该要迁移的VM的地址。
迁出OVS即VM当前所连接的OVS,迁入OVS即VM要迁移到的OVS。
VM迁移通知消息采用REST调用方式,即要求对方收到该消息后必须返回响应。
步骤506:SDN控制器集群的Leader接收该VM迁移通知消息,根据该消息中的迁出OVS的地址,查找到迁出OVS连接的迁出SDN控制器的独立IP地址,根据该消息中的迁入OVS的地址,查找到迁入OVS连接的迁入SDN控制器的独立IP地址,根据该消息中的VM的地址查找到对应的vPort表项,将表项中的迁移状态更改为“迁移”,向迁出SDN控制器和迁入SDN控制器分别发送vPort同步消息,该消息携带该vPort表项。
可见,vPort同步消息中的vPort表项中的迁移状态为“迁移”、端口状态为“up”。
SDN控制器集群内的每个SDN控制器会将自身连接的OVS信息(包括:地址等)同步到Leader上,这样Leader上就保存了集群内每个控制器的独立IP地址与该控制器连接的OVS的地址对应关系。
vPort同步消息采用Rest调用方式。
步骤507:迁出SDN控制器和迁入SDN控制器接收该vPort同步消息,根据该消息中的vPort表项,同步自身维护的对应vPort表项,同步完毕,向Leader返回vPort同步完成消息。
具体地,迁出SDN控制器和迁入SDN控制器会根据vPort同步消息携带的vPort表项中的VM的地址,在自身维护的vPort列表中查找到并同步对应的vPort表项。
步骤508:Leader收到迁出SDN控制器和迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知响应消息,该消息携带迁移通知完成指示。
步骤509:VMM接收到Leader返回的该VM迁移通知响应消息,开始将该VM从迁出OVS迁移到迁入OVS。
步骤510:迁入OVS感知到该VM在自身创建时,向本OVS连接的迁入SDN控制器发送端口add事件,该事件携带该VM的地址和端口状态:down;接着迁入OVS向迁入SDN控制器发送端口modify事件,该事件携带该VM的地址和端口状态:up。
步骤511:迁入SDN控制器接收该端口add事件,根据该事件携带的该VM的地址,在自身维护的vPort列表中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则不作进一步处理,即保持该表项中的端口状态为“up”不变;
迁入SDN控制器接收该端口modify事件,根据该事件携带的该VM的地址,在自身维护的vPort列表中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则不作进一步处理,即保持该表项中的端口状态为“up”不变。
端口add事件的产生有两种情况:一、有新的VM创建;二、已有的VM迁入而导致在迁入OVS上创建该VM。本步骤中,当迁入SDN控制器接收到端口add事件,根据该事件携带的该VM的地址,在自身维护的vPort列表中未查找到对应的vPort表项,则认为该VM是新的VM,而不是迁移的VM,此时,迁入SDN控制器生成新的vPort表项,表项中的迁移状态为“未迁移”、端口状态与端口add事件一致为“down”,同时,要将该端口add事件同步到集群内的其它SDN控制器,以便其它SDN控制器根据该端口add事件生成新的vPort表项。
本步骤中,当迁入SDN控制器接收到端口modify事件,根据该事件携带的该VM的地址查找到对应的vPort表项后,若发现表项中的迁移状态为“未迁移”,则认为该VM为新的VM而不是迁移的VM,则将该表项中的端口状态更改为与端口modify事件一致为“up”,同时,要将该端口modify事件同步到集群内的其它SDN控制器,以便其它SDN控制器将对应vPort表项中的端口状态也更改为“up”。
步骤512:迁出OVS感知到该VM迁出时,向本OVS连接的迁出SDN控制器发出端口delete事件,该事件携带该VM的地址和端口状态:down。
步骤513:迁出SDN控制器接收该端口delete事件,根据该事件携带的该VM的地址,在自身维护的vPort列表中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变,删除自身保存的该VM的地址对应的流表项,并将该vPort表项中的迁移状态更改为“未迁移”,同时,将该端口delete事件同步到集群内的其它SDN控制器,其中,delete事件的原因选项中携带VM发生迁移的指示,以便其它SDN控制器删除该VM的地址对应的流表项,且若该VM的地址对应的vPort表项中的迁移状态为“迁移”,则更改为“未迁移”。
实际应用中,若SDN控制器收到端口delete事件后,根据事件携带的VM的地址查找到对应的vPort表项,发现该vPort表项中的迁移状态为“未迁移”,则认为该VM为正常下线,删除该VM的地址对应的流表项,并删除该vPort表项,同时,将该端口delete事件同步到集群内的其它SDN控制器,以便其它SDN控制器删除该VM的地址对应的流表项及对应的vPort表项。
本申请实施例具有以下有益技术效果:
通过在集群内的每个SDN控制器上维护全局vPort列表,使得vPort的状态在集群内同步;当要发起对VM的迁移时,通过leader通知迁出控制器和迁入控制器更改vPort的迁移状态为“迁移”,从而:迁出、迁入控制器都能够准确得知VM发生了迁移。
另外,当迁入控制器收到端口add事件后以及当迁出控制器收到端口delete事件后,都不更改vPort表项的端口状态“up”,这样,不仅保证了vPort表项的内容全局同步,同时,也使得迁入、迁出控制器上的流量都不中断;另外,当迁出控制器收到端口delete事件后,才将vPort表项的迁移状态更改为“未迁移”,并将端口delete事件同步到其它控制器,不仅保证了vPort表项内容的全局同步,同时也保证了整个集群上的流量不中断。
图6为本申请一实施例提供的VM迁移装置的组成示意图,该装置位于SDN控制器集群中的SDN控制器上,该装置主要包括:vPort列表维护模块和vPort同步模块,其中:
vPort列表维护模块:维护本SDN控制器集群下挂的所有OVS的vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态。
vPort同步模块:接收本集群的Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,则根据该消息中的vPort表项将vPort列表维护模块中的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”。
优选地,本实施例提供的VM迁移装置进一步包括端口事件处理模块:接收本控制器下挂的OVS发来的端口delete事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变,删除自身保存的该VM的地址对应的流表项,将vPort列表维护模块中的该vPort表项中的迁移状态更改为“未迁移”,向集群内的其它SDN控制器转发该端口delete事件,其中该事件的原因选项中携带VM发生迁移指示。
优选地,端口事件处理模块进一步用于,接收其它SDN控制器发来的端口delete事件,发现该事件的原因选项中携带VM发生迁移指示,则根据该事件携带的VM的地址,在自身查找到对应的流表项,删除查找到的流表项,且,若vPort列表维护模块中该VM的地址对应的vPort表项中的迁移状态为“迁移”,则将其更改为“未迁移”。
优选地,端口事件处理模块进一步用于,接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变;接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变。
优选地,端口事件处理模块进一步用于,接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址在vPort列表维护模块中查找对应的vPort表项,若未查找到,则在vPort列表维护模块中生成新的vPort表项,该表项包含:该VM的地址、迁移状态:未迁移、端口状态:down,同时,将该端口add事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器生成相同的vPort表项;
接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址在vPort列表维护模块查找到对应的vPort表项,发现表项中的迁移状态为“未迁移“,则将表项中的端口状态更改为“up”,同时,将该端口modify事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器将自身的该vPort表项中的端口状态更改为“up”。
本申请实施例提供的SDN控制器集群中的SDN控制器可以是软硬件结合的可编程设备,从硬件层面而言,SDN控制器的硬件架构示意图具体可以参见图7。图7为本申请实施例提供的包含VM迁移装置的SDN控制器的硬件结构示意图。该SDN控制器中包括:机器可读存储介质、CPU和其它硬件,其中:
机器可读存储介质:存储指令代码;所述指令代码被CPU执行时完成的操作主要为VM迁移装置完成的功能。
CPU:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,完成上述VM迁移装置完成的功能。
当上述VM迁移装置作为一个逻辑意义上的装置时,其是通过CPU运行机器可读存储介质中对应的计算机程序指令形成的。当对应的计算机程序指令被执行时,形成的VM迁移装置用于按照上述实施例中的VM迁移方法执行相应操作。
图8为本申请另一实施例提供的VM迁移装置的组成示意图,该装置位于SDN控制器集群的leader上,该装置主要包括:迁移通知处理模块和迁移通知响应模块,其中:
迁移通知处理模块:接收VMM发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”。
迁移通知响应模块:接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
优选地,迁移通知处理模块发送vPort同步消息时采用REST调用方式。
本申请实施例提供的SDN控制器集群中的Leader可以是软硬件结合的可编程设备,从硬件层面而言,Leader的硬件架构示意图具体可以参见图9。图9为本申请实施例提供的包含VM迁移装置的Leader的硬件结构示意图。该Leader中包括:机器可读存储介质、CPU和其它硬件,其中:
机器可读存储介质:存储指令代码;所述指令代码被CPU执行时完成的操作主要为VM迁移装置完成的功能。
CPU:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,完成上述VM迁移装置完成的功能。
当上述VM迁移装置作为一个逻辑意义上的装置时,其是通过CPU运行机器可读存储介质中对应的计算机程序指令形成的。当对应的计算机程序指令被执行时,形成的VM迁移装置用于按照上述实施例中的VM迁移方法执行相应操作。
图10为本申请另一实施例提供的VM迁移装置的组成示意图,该装置位于VMM上,该装置主要包括:迁移通知模块和迁移触发模块,其中:
迁移通知模块:要发起VM迁移时,向SDN控制器集群的Leader发送VM迁移通知消息,该消息携带:迁出OVS的地址、迁入OVS的地址和该要迁移的VM的地址。
迁移触发模块:接收所述Leader返回的携带vPort同步完成指示的VM迁移通知响应消息,开始将该VM从迁出OVS迁移到迁入OVS。
优选地,迁移通知模块发送VM迁移通知消息时采用REST调用方式。
本申请实施例提供的VMM可以是软硬件结合的可编程设备,从硬件层面而言,VMM的硬件架构示意图具体可以参见图11。图11为本申请实施例提供的包含VM迁移装置的VMM的硬件结构示意图。该VMM中包括:机器可读存储介质、CPU和其它硬件,其中:
机器可读存储介质:存储指令代码;所述指令代码被CPU执行时完成的操作主要为VM迁移装置完成的功能。
CPU:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,完成上述VM迁移装置完成的功能。
当上述VM迁移装置作为一个逻辑意义上的装置时,其是通过CPU运行机器可读存储介质中对应的计算机程序指令形成的。当对应的计算机程序指令被执行时,形成的VM迁移装置用于按照上述实施例中的VM迁移方法执行相应操作。
机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请所描述的任一机器可读存储介质都可以被认为是非暂时性的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (14)

1.一种虚拟机VM迁移方法,其特征在于,该方法包括:
软件定义网络SDN控制器集群中的SDN控制器维护本集群下挂的所有开放虚拟交换机OVS的虚拟端口vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态;
接收本集群的领导者Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”。
2.根据权利要求1所述的方法,其特征在于,所述根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”之后进一步包括:
SDN控制器接收本控制器下挂的OVS发来的端口delete事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变,删除自身保存的该VM的地址对应的流表项,将该vPort表项中的迁移状态更改为“未迁移”,向集群内的其它SDN控制器转发该端口delete事件,其中该事件的原因选项中携带VM发生迁移指示。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
SDN控制器接收其它SDN控制器发来的端口delete事件,发现该事件的原因选项中携带VM发生迁移指示,则根据该事件携带的VM的地址,在自身查找到对应的流表项,删除查找到的流表项,且,若该VM的地址对应的vPort表项中的迁移状态为“迁移”,则将其更改为“未迁移”。
4.根据权利要求1所述的方法,其特征在于,所述根据该消息中的vPort表项将自身的对应vPort表项中的迁移状态更新为“迁移”、端口状态更新为“up”之后进一步包括:
SDN控制器接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变;
接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址,在自身查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变。
5.根据权利要求1所述的方法,其特征在于,所述SDN控制器维护本集群下挂的所有OVS的vPort列表包括:
SDN控制器接收自身下挂的OVS发来的端口add事件,根据该事件携带的VM的地址在自身查找对应的vPort表项,若未查找到,则生成新的vPort表项,该表项包含:该VM的地址、迁移状态:未迁移、端口状态:down,同时,将该端口add事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器生成相同的vPort表项;
SDN控制器接收自身下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址在自身查找到对应的vPort表项,发现表项中的迁移状态为“未迁移”,则将表项中的端口状态更改为“up”,同时,将该端口modify事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器将自身的该vPort表项中的端口状态更改为“up”。
6.一种虚拟机VM迁移方法,其特征在于,该方法包括:
SDN控制器集群的领导者leader接收虚拟机管理者VMM发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,leader向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”;
Leader接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
7.根据权利要求6所述的方法,其特征在于,所述vPort同步消息采用REST调用方式。
8.一种虚拟机VM迁移装置,位于软件定义网络SDN控制器集群中的SDN控制器上,其特征在于,该装置主要包括:
虚拟端口vPort列表维护模块:维护本SDN控制器集群下挂的所有开放虚拟交换机OVS的vPort列表,每个vPort表项包含:VM的地址、迁移状态和端口状态;
vPort同步模块:接收本集群的Leader发来的vPort同步消息,确定该消息中的vPort表项对应的VM要发生迁移,根据该消息中的vPort表项将vPort列表维护模块中的对应vPort表项中的迁移状态更新为“迁移”、端口状态为“up”。
9.根据权利要求8所述的装置,其特征在于,所述装置进一步包括:
端口事件处理模块:接收本控制器下挂的OVS发来的端口delete事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变,删除自身保存的该VM的地址对应的流表项,将该vPort表项中的迁移状态更改为“未迁移”,向集群内的其它SDN控制器转发该端口delete事件,其中该事件的原因选项中携带VM发生迁移指示。
10.根据权利要求9所述的装置,其特征在于,所述端口事件处理模块进一步用于,
接收其它SDN控制器发来的端口delete事件,发现该事件的原因选项中携带VM发生迁移指示,则根据该事件携带的VM的地址,在自身查找到对应的流表项,删除查找到的流表项,且,若vPort列表维护模块中该VM的地址对应的vPort表项中的迁移状态为“迁移”,则将其更改为“未迁移”。
11.根据权利要求9所述的装置,其特征在于,
所述端口事件处理模块进一步用于,接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变;接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址,在vPort列表维护模块中查找到对应的vPort表项,发现该表项中的迁移状态为“迁移”,则保持该表项中的端口状态为“up”不变。
12.根据权利要求9所述的装置,其特征在于,所述端口事件处理模块进一步用于,
接收本控制器下挂的OVS发来的端口add事件,根据该事件携带的VM的地址在vPort列表维护模块中查找对应的vPort表项,若未查找到,则生成新的vPort表项,该表项包含:该VM的地址、迁移状态:未迁移、端口状态:down,同时,将该端口add事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器生成相同的vPort表项;
接收本控制器下挂的OVS发来的端口modify事件,根据该事件携带的VM的地址在vPort列表维护模块中查找到对应的vPort表项,发现表项中的迁移状态为“未迁移”,则将表项中的端口状态更改为“up”,同时,将该端口modify事件同步到本集群内的其它SDN控制器,以使得其它SDN控制器将自身的该vPort表项中的端口状态更改为“up”。
13.一种虚拟机VM迁移装置,位于SDN控制器集群的领导者leader上,其特征在于,该装置主要包括:
迁移通知处理模块:接收虚拟机管理者VMM发来的VM迁移通知消息,该消息携带VM的迁出OVS和迁入OVS的地址,向迁出OVS连接的迁出SDN控制器、迁入OVS连接的迁入SDN控制器发送vPort同步消息,同步消息携带该VM对应的vPort表项,表项中的迁移状态为“迁移”,端口状态为“up”;
迁移通知响应模块:接收迁出SDN控制器、迁入SDN控制器返回的vPort同步完成消息,向VMM返回VM迁移通知完成消息,以使得:VMM开始迁移该VM。
14.根据权利要求13所述的装置,其特征在于,所述迁移通知处理模块发送vPort同步消息时采用REST调用方式。
CN201410605909.XA 2014-10-31 2014-10-31 虚拟机迁移方法及装置 Active CN104407911B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410605909.XA CN104407911B (zh) 2014-10-31 2014-10-31 虚拟机迁移方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410605909.XA CN104407911B (zh) 2014-10-31 2014-10-31 虚拟机迁移方法及装置

Publications (2)

Publication Number Publication Date
CN104407911A CN104407911A (zh) 2015-03-11
CN104407911B true CN104407911B (zh) 2018-03-20

Family

ID=52645544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410605909.XA Active CN104407911B (zh) 2014-10-31 2014-10-31 虚拟机迁移方法及装置

Country Status (1)

Country Link
CN (1) CN104407911B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780071B (zh) * 2015-04-21 2018-12-25 新华三技术有限公司 虚拟交换机的升级方法及装置
US9916174B2 (en) 2015-05-27 2018-03-13 International Business Machines Corporation Updating networks having virtual machines with migration information
CN105227357B (zh) * 2015-09-15 2018-10-16 清华大学 虚拟机策略迁移配置方法及装置
CN105591805B (zh) * 2015-09-28 2018-10-26 新华三技术有限公司 一种修改服务链配置的方法和装置
CN106936609B (zh) * 2015-12-29 2020-10-16 南京中兴新软件有限责任公司 一种软件定义网络中控制转发设备集群的方法及控制器
US11271870B2 (en) 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
JP6902527B2 (ja) * 2016-01-27 2021-07-14 オラクル・インターナショナル・コーポレイション 高性能コンピューティング環境においてスイッチポートステータスのスケーラブルな表現をサポートするためのシステムおよび方法
US10594627B2 (en) 2016-01-27 2020-03-17 Oracle International Corporation System and method for supporting scalable representation of switch port status in a high performance computing environment
CN106998297B (zh) * 2017-03-22 2019-11-08 新华三技术有限公司 一种虚拟机迁移方法和装置
CN108964949A (zh) * 2017-05-19 2018-12-07 中兴通讯股份有限公司 虚拟机迁移方法、sdn控制器及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970204A (zh) * 2012-10-24 2013-03-13 曙光信息产业(北京)有限公司 一种基于xen虚拟化平台的分布式交换机系统及其实现方法
CN103475722A (zh) * 2013-09-13 2013-12-25 中国联合网络通信集团有限公司 一种业务协同平台实现系统
CN103685250A (zh) * 2013-12-04 2014-03-26 蓝盾信息安全技术股份有限公司 一种基于sdn的虚拟机安全策略迁移的系统及方法
CN103763121A (zh) * 2013-12-24 2014-04-30 杭州华三通信技术有限公司 一种网络配置信息快速下发的方法及装置
CN103763309A (zh) * 2013-12-31 2014-04-30 曙光云计算技术有限公司 基于虚拟网络的安全域控制方法和系统
CN103973481A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算数据中心的审计系统及方法
CN103973676A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算安全保护系统及方法
CN104115453A (zh) * 2013-12-31 2014-10-22 华为技术有限公司 一种实现虚拟机通信的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185124B2 (en) * 2013-02-27 2015-11-10 Sayan Chakraborty Cyber defense systems and methods
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970204A (zh) * 2012-10-24 2013-03-13 曙光信息产业(北京)有限公司 一种基于xen虚拟化平台的分布式交换机系统及其实现方法
CN103475722A (zh) * 2013-09-13 2013-12-25 中国联合网络通信集团有限公司 一种业务协同平台实现系统
CN103685250A (zh) * 2013-12-04 2014-03-26 蓝盾信息安全技术股份有限公司 一种基于sdn的虚拟机安全策略迁移的系统及方法
CN103763121A (zh) * 2013-12-24 2014-04-30 杭州华三通信技术有限公司 一种网络配置信息快速下发的方法及装置
CN103763309A (zh) * 2013-12-31 2014-04-30 曙光云计算技术有限公司 基于虚拟网络的安全域控制方法和系统
CN104115453A (zh) * 2013-12-31 2014-10-22 华为技术有限公司 一种实现虚拟机通信的方法和装置
CN103973481A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算数据中心的审计系统及方法
CN103973676A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算安全保护系统及方法

Also Published As

Publication number Publication date
CN104407911A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104407911B (zh) 虚拟机迁移方法及装置
US9513970B2 (en) Optimizing handling of virtual machine mobility in data center environments
CN103631633B (zh) 虚拟机全系统在线迁移方法、装置与系统
KR101242908B1 (ko) 가상화된 컴퓨터 시스템들에 대한 분배된 가상 스위치
US9830181B2 (en) Method and system for gracefully shutdown virtual system
CN106528327B (zh) 一种数据处理方法以及备份服务器
CN106301876B (zh) 物理机升级方法、业务迁移方法及装置
WO2018028594A1 (zh) 一种混合云平台的组网方法及混合云平台系统
EP3200393A1 (en) Method and device for virtual network function management
CN105407117B (zh) 分布式备份数据的方法、装置和系统
CN107070705A (zh) 一种云资源的编排方法
GB2509463A (en) Live logical partition migration with stateful offload connections using context extraction and insertion
CN106250228B (zh) 虚拟机实体热迁移网路平滑切换的方法及装置
CN105589744B (zh) 一种虚拟机迁移方法及装置
CN105635311A (zh) 一种云管理平台中资源池信息同步的方法
CN105791175A (zh) 软件定义网络中控制传输资源的方法及设备
CN106302607A (zh) 应用于云计算的块存储系统及方法
CN105740052A (zh) 非共享存储的虚拟机在线迁移的方法、装置及系统
CN107357522B (zh) 数据处理方法和装置
WO2016124105A1 (zh) 一种媒体接入控制地址学习方法、设备和系统
CN111026510A (zh) 一种云环境下虚拟机跨存储热迁移方法
CN105704045A (zh) 数据中心网关间虚拟机位置信息同步的方法、网关及系统
CN108427728A (zh) 元数据的管理方法、设备及计算机可读介质
US20200162368A1 (en) Creating an aggregation group
CN113703912A (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
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant