一种虚拟机迁移方法和装置与流程

文档序号:11628660阅读:214来源:国知局
一种虚拟机迁移方法和装置与流程
本发明涉及通信
技术领域
,尤其涉及一种虚拟机迁移方法和装置。
背景技术
:vxlan(virtualextensiblelocalareanetwork,可扩展虚拟局域网络)是基于ip网络、采用“mac(mediaaccesscontrol,媒体访问控制)inudp(userdatagramprotocol,用户数据报协议)”封装形式的二层vpn(virtualprivatenetwork,虚拟专用网络)技术。vxlan可以基于已有的服务提供商或者企业ip网络,为分散的站点提供二层互联,并能够为不同的租户提供业务隔离。vxlan主要应用于数据中心网络,如图1所示,为采用vxlan的数据中心网络示意图,可以在服务器创建多个vm(virtualmachine,虚拟机),不同vm可以属于不同vxlan或者相同vxlan,属于相同vxlan的vm处于同一逻辑二层网络,彼此之间二层互通,属于不同vxlan的vm之间二层隔离。如图1所示,vm1可以从服务器1迁移到服务器2,则vtep(vxlantunnelendpoint,vxlan隧道端点)2在接收到来自vm1的arp(addressresolutionprotocol,地址解析协议)报文后,通过vxlan隧道向vtep1/vtep3通告vm1路由,当vtep1/vtep3接收到vtep2通告的vm1路由时,将接收vm1通告路由的接收接口作为出接口(即出接口指向vtep1/vtep3与vtep2的vxlan隧道),当发送针对vm1的报文时,通过vxlan隧道发送给vtep2。但是,若vm1没有从服务器1迁移到服务器2,而且攻击者伪造vm1的arp报文,并发送给vtep2,这样,就会导致vtep1/vtep3错误的将vm1的出接口学习到vxlan隧道,并导致报文无法真正的传输给vm1,导致vm1的业务会发生中断,影响用户的使用感受,而且还会带来安全隐患。技术实现要素:本公开提供一种虚拟机迁移方法,应用于第一设备,该方法包括:接收第二设备发送的路由通告消息,并从所述路由通告消息中解析出迁移属性、虚拟机对应的地址信息,所述迁移属性表示所述虚拟机发生迁移;通过所述地址信息查询转发表,若得到与所述地址信息匹配的转发表项,则通过所述转发表项记录的出接口发送针对所述虚拟机的arp请求消息;若接收到针对所述arp请求消息的arp应答消息,则拒绝根据所述路由通告消息更新所述转发表项。本公开提供一种虚拟机迁移方法,应用于第二设备,该方法包括:在接收到来自虚拟机的arp消息时,若转发表中已经存在与所述虚拟机匹配的第一转发表项,则在所述转发表中添加与所述虚拟机匹配的第二转发表项;其中,所述第一转发表项记录的出接口是所述第二设备与第一设备之间的隧道口,所述第二转发表项记录的出接口是所述第二设备上与虚拟机对应的接口;根据所述第一转发表项的出接口,向第一设备发送路由通告消息,所述路由通告消息携带迁移属性和所述虚拟机的地址信息,所述迁移属性表示所述虚拟机发生迁移;以使第一设备根据所述路由通告消息确定所述虚拟机是否迁移。本公开提供一种虚拟机迁移装置,应用于第一设备,该装置包括:接收模块,用于接收第二设备发送的路由通告消息;获得模块,用于从所述路由通告消息中解析出迁移属性、虚拟机对应的地址信息,其中,所述迁移属性表示所述虚拟机发生迁移;发送模块,用于通过所述地址信息查询转发表,若得到与所述地址信息匹配的转发表项,则通过所述转发表项记录的出接口发送针对所述虚拟机的arp请求消息;更新模块,用于当接收到针对所述arp请求消息的arp应答消息时,则拒绝根据所述路由通告消息更新所述转发表项。本公开提供一种虚拟机迁移装置,应用于第二设备,包括:处理模块,用于在接收到来自虚拟机的arp消息时,若转发表中已经存在与所述虚拟机匹配的第一转发表项,在所述转发表中添加与所述虚拟机匹配的第二转发表项;所述第一转发表项记录的出接口是第二设备与第一设备之间的隧道口,所述第二转发表项记录的出接口是第二设备上与虚拟机对应的接口;发送模块,用于根据所述第一转发表项的出接口,向所述第一设备发送路由通告消息,其中,所述路由通告消息携带迁移属性和所述虚拟机的地址信息,所述迁移属性表示所述虚拟机发生迁移;以使所述第一设备根据所述路由通告消息确定所述虚拟机是否迁移。基于上述技术方案,本公开实施例中,在接收到第二设备发送的路由通告消息后,并不是直接根据路由通告消息更新转发表项,而是当路由通告消息携带迁移属性时,确定虚拟机是否迁移到与第二设备连接的服务器,如果否,就拒绝更新转发表项,这样,当攻击者伪造虚拟机的arp报文时,第一设备不会错误的将虚拟机的出接口学习到隧道口,可以将报文真正传输给虚拟机,虚拟机的业务不会发生中断,提高用户使用感受,提高安全性,保证稳定性。附图说明为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。图1是采用vxlan的数据中心网络示意图;图2是本公开一种实施方式中的虚拟机迁移方法的流程图;图3是本公开一种实施方式中的第一设备的硬件结构图;图4是本公开一种实施方式中的虚拟机迁移装置的结构图;图5是本公开一种实施方式中的第二设备的硬件结构图;图6是本公开一种实施方式中的虚拟机迁移装置的结构图。具体实施方式在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或者,“当……时”,或者,“响应于确定”。本公开实施例中提出一种虚拟机迁移方法,该方法可以应用于包括第一设备和第二设备的系统,该系统还可以包括虚拟机,且虚拟机可以在第一设备和第二设备间迁移。在实际应用中,第一设备和第二设备可以是相对的,如第一设备还可以为第二设备,且第二设备也可以为第一设备,对此不做限制。参见图2所示,为虚拟机迁移方法的流程图,该方法可以包括:步骤201,第二设备在接收到来自虚拟机的arp消息(如arp请求消息或者免费arp消息等)时,若转发表中已经存在与该虚拟机匹配的第一转发表项,则在转发表中添加与该虚拟机匹配的第二转发表项,并根据该第一转发表项的出接口(第二设备与第一设备之间的隧道口),向第一设备发送路由通告消息。其中,第一转发表项记录的出接口是第二设备与第一设备之间的隧道口(如vxlan隧道),而第二转发表项记录的出接口是第二设备上与虚拟机对应的接口(例如,第二设备连接虚拟机所在服务器的接口)。在一个例子中,第二设备在接收到来自虚拟机的arp消息时,若转发表中已经存在与该虚拟机匹配的第一转发表项,则说明这个虚拟机可能是迁移到该第二设备的,因此,根据接收到的arp消息,在转发表中添加与该虚拟机匹配的第二转发表项,并执行后续步骤;在此情况下,转发表中会共存与该虚拟机匹配的第一转发表项和第二转发表项。若转发表中没有与该虚拟机匹配的第一转发表项,则说明这个虚拟机是在第二设备上线的,而不是迁移的,因此,根据接收到的arp消息,在转发表中添加与该虚拟机匹配的第二转发表项,但是不再执行后续步骤,而是采用传统流程进行处理,对此处理不再赘述。在一个例子中,上述路由通告消息可以携带迁移属性和虚拟机的地址信息,该迁移属性表示该虚拟机发生迁移。其中,该地址信息可以包括但不限于mac(mediaaccesscontrol,媒体访问控制)地址和/或ip(internetprotocol,网络之间互连的协议)地址。该迁移属性为根据实际情况任意配置的标记,如123等,通过该迁移属性,可以使接收到该路由通告消息的设备获知,该路由通告消息是因虚拟机迁移而发出的。在一个例子中,针对“根据该第一转发表项的出接口向第一设备发送路由通告消息”的过程,可以包括但不限于如下方式:方式一、第二设备在接收到来自虚拟机的arp消息后,可以先在转发表中添加第二转发表项,然后向第一设备发送路由通告消息;在此情况下,由于转发表中存在与虚拟机匹配的第一转发表项和第二转发表项,则第二设备可以先从第一转发表项和第二转发表项中选取出接口为隧道口的转发表项,即第一转发表项,然后根据第一转发表项的出接口向第一设备发送路由通告消息。方式二、第二设备在接收到来自虚拟机的arp消息后,可以先向第一设备发送路由通告消息,然后在转发表中添加第二转发表项;在此情况下,由于转发表中只存在与虚拟机匹配的第一转发表项,因此可以直接根据第一转发表项的出接口向第一设备发送路由通告消息,然后再在转发表中添加第二转发表项。其中,路由通告消息携带迁移属性的作用可以是:使第一设备根据路由通告消息确定虚拟机是否迁移到第二设备,第一设备的处理参见步骤202-204。具体的,若路由通告消息携带迁移属性,则第一设备需要确定虚拟机是否迁移到第二设备。若路由通告消息未携带迁移属性,则采用传统方式,根据路由通告消息携带的地址信息更新转发表项,而不用确定虚拟机是否迁移到第二设备。步骤202,第一设备接收第二设备发送的路由通告消息,并从该路由通告消息中解析出迁移属性、虚拟机的地址信息,该迁移属性表示虚拟机发生迁移。步骤203,第一设备通过该地址信息查询转发表,若得到与该地址信息匹配的转发表项,则通过该转发表项记录的出接口(即与该路由通告消息携带的地址信息对应的出接口)发送针对该虚拟机的arp请求消息。若未得到与该地址信息匹配的转发表项,则直接在转发表中建立与该地址信息匹配的转发表项。在一个例子中,第一设备可以在本地维护转发表,该转发表中的每个表项称为一个转发表项,该转发表项用于记录地址信息与出接口的映射关系,因此,在通过路由通告消息携带的地址信息查询转发表时,就可以得到与该地址信息匹配的转发表项,继而可以从该转发表项中得到与该地址信息对应的出接口。在一个例子中,该arp请求消息的源地址为第一设备的地址信息,目的地址为该虚拟机的地址信息,也就是路由通告消息携带的地址信息。在一个例子中,第一设备通过该地址信息查询转发表,得到与该地址信息匹配的转发表项之后,还可以查询该转发表项记录的出接口。若该出接口是隧道口,则说明虚拟机不是从第一设备迁移的,不用查询虚拟机是否从第一设备迁移到其它设备,因此,直接利用接收到该路由通告消息的接收接口(即第一设备与第二设备之间的隧道口)更新该转发表项记录的出接口。若该出接口是第一设备上与服务器连接的接口,则说明虚拟机可能从第一设备迁移到其它设备,需要查询虚拟机是否从第一设备迁移到其它设备,因此,第一设备执行“通过该转发表项记录的出接口发送针对虚拟机的arp请求消息”的步骤。步骤204,若接收到针对arp请求消息的arp应答消息,则第一设备拒绝根据该路由通告消息更新转发表项,即不使用接收到该路由通告消息的接收接口更新转发表项的出接口。若预设时间内没有接收到针对arp请求消息的arp应答消息,则第一设备利用接收到该路由通告消息的接收接口更新转发表项记录的出接口,该接收接口为第一设备与第二设备之间的隧道口。在一个例子中,若虚拟机未从第一设备迁移到第二设备,则虚拟机可接收到针对该虚拟机的arp请求消息,向第一设备发送针对该arp请求消息的arp应答消息。若虚拟机已经从第一设备迁移到第二设备,则虚拟机无法接收到针对该虚拟机的arp请求消息,无法发送针对该arp请求消息的arp应答消息。在一个例子中,若第一设备接收到针对该arp请求消息的arp应答消息,则说明虚拟机未迁移,第一设备可以向第二设备发送第一通告应答消息,该第一通告应答消息用于表示虚拟机未迁移;或者,若第一设备没有接收到针对该arp请求消息的arp应答消息,则说明虚拟机已迁移,第一设备可以向第二设备发送第二通告应答消息,该第二通告应答消息用于表示虚拟机已迁移。进一步的,若第二设备接收到第一设备发送的第一通告应答消息,则可以确定虚拟机未迁移,并删除第二转发表项;若第二设备接收到第一设备发送的第二通告应答消息,则可以确定虚拟机已迁移,并删除第一转发表项。在实际应用中,除了第一设备和第二设备,系统中还可以包括一个或者多个第三设备,第三设备通过隧道(如vxlan隧道)与第一设备连接,并通过隧道与第二设备连接。针对第三设备的转发表项的更新过程,可以有如下方式:方式一、第二设备在接收到来自虚拟机的arp消息后,只根据第一转发表项的出接口向第一设备发送路由通告消息,而不向第三设备发送路由通告消息。在此基础上,第二设备在接收到第一设备发送的第一通告应答消息之后,不向第三设备发送路由通告消息,即第三设备不会接收到路由通告消息,也就不会更新相关的转发表项。第二设备在接收到第一设备发送的第二通告应答消息之后,向第三设备发送路由通告消息,该路由通告消息携带迁移属性和虚拟机的地址信息,该迁移属性表示虚拟机发生迁移。第三设备通过该地址信息查询转发表,若得到与该地址信息匹配的转发表项,则可以查询该转发表项记录的出接口。若该转发表项记录的出接口是隧道口,则利用接收到路由通告消息的接收接口(即第三设备与第二设备之间的隧道口)更新该转发表项记录的出接口。方式二、第二设备在接收到来自虚拟机的arp消息后,除了根据第一转发表项的出接口向第一设备发送路由通告消息,还向第三设备发送路由通告消息,该路由通告消息携带迁移属性和虚拟机的地址信息,该迁移属性表示虚拟机发生迁移。第三设备通过该地址信息查询转发表,若得到与该地址信息匹配的转发表项,则查询该转发表项记录的出接口。若该转发表项记录的出接口是隧道口,则直接利用接收到该路由通告消息的接收接口(即第三设备与第二设备之间的隧道口)更新该转发表项记录的出接口。在此基础上,若第二设备接收到第一设备发送的第一通告应答消息,则还可以向第三设备发送针对该路由通告消息的路由撤销消息,该路由撤销消息携带该虚拟机的地址信息,以使第三设备撤销与该地址信息匹配的转发表项。此外,若第二设备接收到第一设备发送的第二通告应答消息,则结束流程。基于上述技术方案,本公开实施例中,在接收到第二设备发送的路由通告消息后,并不是直接根据路由通告消息更新转发表项,而是当路由通告消息携带迁移属性时,确定虚拟机是否迁移到与第二设备连接的服务器,如果否,就拒绝更新转发表项,这样,当攻击者伪造虚拟机的arp报文时,第一设备不会错误的将虚拟机的出接口学习到隧道口,可以将报文真正传输给虚拟机,虚拟机的业务不会发生中断,提高用户使用感受,提高安全性,保证稳定性。以下结合图1所示的应用场景,对上述技术方案进行详细说明。在图1中,vtep1通过接口1与服务器1连接,vtep2通过接口2与服务器2连接,vtep1通过vxlan隧道1与vtep2连接,vtep1通过vxlan隧道2与vtep3连接,vtep2通过vxlan隧道3与vtep3连接,vm1部署在服务器1。vtep1可以为第一设备,vtep2可以为第二设备,vtep3可以为第三设备。在上述应用场景下,则本公开实施例中的虚拟机迁移方法可以包括:步骤1、当vm1在vtep1上线时,vtep1生成vm1的转发表项,假设vm1的ip地址为10.1.1.2/24,mac地址为1-1-1,转发表项的示例如表1所示。表1ip地址mac地址出接口10.1.1.2/241-1-1接口1步骤2、vtep1通过vxlan隧道1向vtep2发送路由通告消息,通过vxlan隧道2向vtep3发送路由通告消息。其中,该路由通告消息携带vm1的ip地址10.1.1.2/24和mac地址1-1-1,且路由通告消息并未携带迁移属性。步骤3、vtep2在通过vxlan隧道1接收到该路由通告消息之后,可以生成vm1的转发表项,如表2所示。此外,vtep3在通过vxlan隧道2接收到该路由通告消息之后,可以生成vm1的转发表项,如表3所示。表2ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道1表3ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道2步骤4、当vm1从服务器1迁移到服务器2,并在vtep2上线时,则vtep2可以接收到来自vm1的arp报文,并从该arp报文中解析出vm1的ip地址10.1.1.2/24和mac地址1-1-1。由于表2中已经记录vm1的ip地址10.1.1.2/24和mac地址1-1-1,因此,可以确定vm1是从其它服务器迁移到服务器2。步骤5、vtep2为vm1生成一个新转发表项,在生成新转发表项后,不删除之前已经存在的转发表项,即两个转发表项共存,一个转发表项的出接口为vxlan隧道1,另一个转发表项的出接口为接口2,即将表2更新为表4。表4ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道110.1.1.2/241-1-1接口2步骤6、vtep2从vm1对应的两个转发表项中选取出接口为vxlan隧道的转发表项,即表4中出接口为vxlan隧道1的转发表项,然后通过vxlan隧道1向vtep1发送路由通告消息,其中,该路由通告消息携带vm1的ip地址10.1.1.2/24和mac地址1-1-1,且路由通告消息携带迁移属性。步骤7、vtep1在通过vxlan隧道1接收到路由通告消息后,通过ip地址10.1.1.2/24和mac地址1-1-1查询转发表,得到匹配的转发表项,如表1所示,该转发表项记录的出接口是接口1(与服务器1连接的接口),执行步骤8。步骤8、vtep1通过表1所示的转发表项的出接口(接口1)发送arp请求消息,该arp请求消息的目的ip地址为10.1.1.2/24,目的mac地址为1-1-1。步骤9、假设vm1已经从服务器1迁移到服务器2,则vtep1在预设时间内将无法接收到arp应答消息,因此,vtep1利用路由通告消息的接收接口(即vxlan隧道1)更新表1所示的转发表项的出接口,将表1更新为表5。表5ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道1步骤10、vtep1通过vxlan隧道1发送第二通告应答消息,第二通告应答消息携带vm1的ip地址10.1.1.2/24和mac地址1-1-1,表示vm1已迁移。步骤11、vtep2通过vxlan隧道1接收到表示vm1已迁移的第二通告应答消息后,删除出接口为vxlan隧道1的转发表项,并将表4更新为表6。表6ip地址mac地址出接口10.1.1.2/241-1-1接口2步骤12、vtep2通过vxlan隧道3向vtep3发送路由通告消息。步骤13、vtep3在通过vxlan隧道3接收到路由通告消息后,通过ip地址10.1.1.2/24和mac地址1-1-1查询转发表,得到匹配的转发表项,即表3,该转发表项记录的出接口是vxlan隧道2,vtep3利用路由通告消息的接收接口(即vxlan隧道3)更新该转发表项记录的出接口,将表3更新为表7。表7ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道3至此成功更新vtep1、vtep2、vtep3的转发表项,vtep1的转发表项如表5所示,vtep2的转发表项如表6所示,vtep3的转发表项如表7所示。本公开实施例中提出的另一种虚拟机迁移方法可以包括如下步骤:步骤21-步骤28,与步骤1-步骤8类似,在此不再重复赘述。步骤29、假设vm1没有从服务器1迁移到服务器2,则vtep1在预设时间内可以接收到arp应答消息,因此,vtep1保持表1所示的转发表项不变。步骤30、vtep1通过vxlan隧道1发送第一通告应答消息,第一通告应答消息携带vm1的ip地址10.1.1.2/24和mac地址1-1-1,表示vm1未迁移。步骤31、vtep2通过vxlan隧道1接收到表示vm1未迁移的第一通告应答消息后,删除出接口为接口2的转发表项,并将表4更新为表8。表8ip地址mac地址出接口10.1.1.2/241-1-1vxlan隧道1在一个例子中,vtep2不再通过vxlan隧道3向vtep3发送路由通告消息,也就是说,vtep3上的转发表项保持不变,仍然如表3所示。在另一个例子中,在步骤26中,vtep2还可以通过vxlan隧道3向vtep3发送路由通告消息。vtep3在通过vxlan隧道3接收到路由通告消息后,通过ip地址10.1.1.2/24和mac地址1-1-1查询转发表,得到匹配的转发表项,即表3,该转发表项记录的出接口是vxlan隧道2,vtep3利用路由通告消息的接收接口(即vxlan隧道3)更新该转发表项记录的出接口,将表3更新为表7。在此情况下,步骤31之后,该虚拟机迁移方法还可以包括以下步骤:步骤32、vtep2通过vxlan隧道3向vtep3发送路由撤销消息,携带vm1的ip地址10.1.1.2/24和mac地址1-1-1,且路由撤销消息用于撤销路由。步骤33、vtep3在通过vxlan隧道3接收到路由撤销消息后,查询本地是否存在ip地址为10.1.1.2/24,mac地址为1-1-1,且出接口为vxlan隧道3的转发表项,由于存在,如表7所示,因此,根据路由撤销消息执行撤销路由的操作,即删除ip地址10.1.1.2/24、mac地址1-1-1、vxlan隧道3的对应关系。然后,vtep3不再包含针对vm1的转发表项,可以重新学习vm1的转发表项,如发送目的ip地址为10.1.1.2/24、目的mac地址为1-1-1的arp请求消息,对此学习过程不再赘述,vtep3维护的vm1的转发表项如表3所示。至此成功更新vtep1、vtep2、vtep3的转发表项,vtep1的转发表项如表1所示,vtep2的转发表项如表8所示,vtep3的转发表项如表3所示。基于与上述方法同样的公开构思,本公开实施例还提供一种虚拟机迁移装置,该虚拟机迁移装置可以应用在第一设备。其中,该虚拟机迁移装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的第一设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为该虚拟机迁移装置所在的第一设备的一种硬件结构图,除了图3所示的处理器、非易失性存储器外,第一设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,第一设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。如图4所示,为虚拟机迁移装置的结构图,所述装置包括:接收模块11,用于接收第二设备发送的路由通告消息;获得模块12,用于从所述路由通告消息中解析出迁移属性、虚拟机对应的地址信息,其中,所述迁移属性表示所述虚拟机发生迁移;发送模块13,用于通过所述地址信息查询转发表,若得到与所述地址信息匹配的转发表项,则通过所述转发表项记录的出接口发送针对所述虚拟机的arp请求消息;更新模块14,用于当接收到针对所述arp请求消息的arp应答消息时,则拒绝根据所述路由通告消息更新所述转发表项。所述更新模块14,还用于当没有接收到针对所述arp请求消息的arp应答消息时,则利用接收到所述路由通告消息的接收接口更新所述转发表项记录的出接口;其中,所述接收接口为所述第一设备与所述第二设备之间的隧道口。在一个例子中,所述发送模块13,还用于当接收到针对所述arp请求消息的arp应答消息时,则向所述第二设备发送第一通告应答消息,所述第一通告应答消息用于表示所述虚拟机未迁移;或者,当没有接收到针对所述arp请求消息的arp应答消息时,则向所述第二设备发送第二通告应答消息,所述第二通告应答消息用于表示所述虚拟机已迁移。基于与上述方法同样的公开构思,本公开实施例还提供一种虚拟机迁移装置,该虚拟机迁移装置可以应用在第二设备。其中,该虚拟机迁移装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的第二设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图5所示,为该虚拟机迁移装置所在的第二设备的一种硬件结构图,除了图5所示的处理器、非易失性存储器外,第二设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,第二设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。如图6所示,为虚拟机迁移装置的结构图,所述装置包括:处理模块21,用于在接收到来自虚拟机的arp消息时,若转发表中已经存在与所述虚拟机匹配的第一转发表项,在所述转发表中添加与所述虚拟机匹配的第二转发表项;第一转发表项记录的出接口是第二设备与第一设备之间的隧道口,第二转发表项记录的出接口是第二设备上与虚拟机对应的接口;发送模块22,用于根据所述第一转发表项的出接口,向所述第一设备发送路由通告消息,其中,所述路由通告消息携带迁移属性和所述虚拟机的地址信息,所述迁移属性表示所述虚拟机发生迁移;以使所述第一设备根据所述路由通告消息确定所述虚拟机是否迁移。所述处理模块21,还用于当接收到所述第一设备发送的第一通告应答消息时,确定所述虚拟机未迁移,并删除所述第二转发表项,所述第一通告应答消息用于表示所述虚拟机未迁移;当接收到所述第一设备发送的第二通告应答消息时,确定所述虚拟机已迁移,删除所述第一转发表项,所述第二通告应答消息用于表示所述虚拟机已迁移。所述发送模块22,还用于在接收到所述第一设备发送的第二通告应答消息后,向第三设备发送路由通告消息,所述路由通告消息携带迁移属性和所述虚拟机的地址信息,所述迁移属性表示所述虚拟机发生迁移;以使第三设备将与所述地址信息匹配的转发表项的出接口更新为接收到所述路由通告消息的接收接口。所述发送模块22,还用于在接收到所述第一设备发送的第一通告应答消息或者第二通告应答消息之前,向第三设备发送路由通告消息,所述路由通告消息携带迁移属性和所述虚拟机的地址信息,所述迁移属性表示所述虚拟机发生迁移;以使所述第三设备将与所述地址信息匹配的转发表项的出接口更新为接收到所述路由通告消息的接收接口;在接收到所述第一设备发送的第一通告应答消息之后,则向所述第三设备发送针对所述路由通告消息的路由撤销消息,所述路由撤销消息携带所述虚拟机的地址信息,以使所述第三设备撤销与所述地址信息匹配的转发表项。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1