数据中心网关间虚拟机位置信息同步的方法、网关及系统的制作方法

文档序号:9923781阅读:398来源:国知局
数据中心网关间虚拟机位置信息同步的方法、网关及系统的制作方法
【技术领域】
[0001]本申请涉及通信领域,特别是涉及数据中心网关间虚拟机位置信息同步的方法、网关及系统。
【背景技术】
[0002]目前,在互联的数据中心之间可实现虚拟机的迀移。而在虚拟机进行跨数据中心迀移后,虚拟机的位置信息会发生改变,故互联的数据中心均需要更新本地MAC路由表中的该虚拟机的出接口,以同步该虚拟机的位置信息,使得所有数据中心均能正确转发访问此虚拟机的数据流。
[0003]现有同步虚拟机迀移后的位置信息的方法具体是:
[0004]如图1,第一虚拟机(英文:virtual machine,简称:VM) 112从第二数据中心120迀移到第一数据中心110后,在第一数据中心110中广播发送免费(英文-gratuitous)地址解析协议(英文 -Address Resolut1n Protocol,简称:ARP)报文;
[0005]第一数据中心110的第一网关111接收到该免费ARP报文后,发现第一网关111已经保存了第一虚拟机112的MAC路由表项,并且第一虚拟机112的MAC地址和IP地址属于第一数据中心110,则将该第一虚拟机112的MAC路由表项中的出接口更新为本地的出接口,并将保存的对应第一虚拟机112的序列号加一后,通过边界网关协议(英文=BorderGateway Protocol,简称:BGP)消息将第一虚拟机112的加一后的新序列号发送给其他数据中心的网关,图1中,所述BGP消息到达第二数据中心120的第二网关121、第三数据中心130的第三网关131 ;
[0006]第二网关121、第三网关131在接收到第一虚拟机112的新序列号之后,与保存的第一虚拟机112的原序列号对比,如发现新序列号大于本地保存的原序列号,则将本地保存的第一虚拟机112的序列号更新为接收到的新序列号,并将本地的MAC路由表中该第一虚拟机112的出接口更新为网络侧的第一数据中心110对应的出接口,实现第一虚拟机112的位置信息的更新。
[0007]然而,上述现有方式存在以下问题:
[0008]如果第一虚拟机112迀移前所在的第二数据中心120是第二网关121故障后恢复正常通信的,则第二网关121在恢复正常时会通过BGP消息重新向其他数据中心的网关发布第一虚拟机112在第二数据中心120的MAC路由,所述BGP消息中的序列号为保存的序列号加一得到的。然而,实际上第一虚拟机112已迀移到第一数据中心110并已完成注册,故第一网关111也会通过BGP消息发布该虚拟机第一虚拟机112在第一数据中心110的MAC路由,如前所述,第一网关111发布的BGP消息中的序列号也是根据MAC地址和IP地址生成的序列号加一得到的。由于第一网关111和第二网关121发布的两个BGP消息中的序列号相同,从而导致其他数据中心的第三网关131收到该两个BGP消息时,无法确定第一虚拟机112当前实际所在的数据中心为哪一个,可能会将第一虚拟机112的位置错误更新到第二数据中心120上。
[0009]故,现有技术可能会将虚拟机的位置信息错误更新到迀移前的数据中心。在此情况下,当迀移前的数据中心将旧的虚拟机信息删除后,则会导致访问所述虚拟机的流量长时间中断。

【发明内容】

[0010]本申请提供一种数据中心网关间虚拟机位置信息同步的方法、网关及系统,能够实现数据中心网关间对虚拟机位置信息的准确同步,减少流量中断的可能性。
[0011]本申请第一方面提供一种数据中心网关间虚拟机位置信息同步的方法,包括:第二数据中心的第二网关接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;当所述第二网关接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,所述第二网关向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
[0012]结合第一方面,在第一方面的第一实施方式中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迀移次数的序列号;所述第二网关根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由,具体包括:如果所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同,则确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
[0013]结合第一方面的第一实施方式,在第一方面的第二实施方式中,还包括:如果所述第二网关检测到第二虚拟机从第三数据中心迀移到所述第二数据中心,则更新所述第二网关保存的所述第二虚拟机的序列号;所述第二网关向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的第二虚拟机的MAC路由。
[0014]结合第一方面的第二实施方式,在第一方面的第三实施方式中,所述如果所述第二网关检测到第二虚拟机从第三数据中心迀移到所述第二数据中心之后,还包括:所述第二网关将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口 ;所述更新所述第二网关保存的所述第二虚拟机的序列号具体包括:所述第二网关更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
[0015]结合第一方面的第三实施方式,在第一方面的第四实施方式中,所述第二网关将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口,具体包括:当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,所述第二网关删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或当所述第二网关仅存储有一个MAC路由表时,则将所述MAC路由表中第二虚拟机的出接口由网络侧出接口改为所述第二网关的接口。
[0016]本申请第二方面提供一种网关,所述网关具体为第二数据中心的第二网关,包括接收模块、删除模块和学习模块;所述接收模块用于接收第一数据中心的第一网关发送的第一位置更新消息,其中,所述第一位置更新消息是由所述第一网关在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时所发送的,用于通知所述第一虚拟机的位置信息发生改变;所述删除模块用于在所述接收模块接收到所述第一位置更新消息时,根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;所述学习模块用于当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
[0017]结合第二方面,在第二方面的第一实施方式中,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迀移次数的序列号;所述删除模块具体用于在所述第一虚拟机的位置信息与所述第二网关的MAC路由表中的第一虚拟机的位置信息不同,且所述第一位置更新消息的序列号与所述第二网关保存的所述第一虚拟机的序列号相同时,确定第一虚拟机的位置信息存在冲突,删除所述第二网关中保存的所述第一虚拟机的MAC路由。
[0018]结合第二方面的第一实施方式,在第二方面的第二实施方式中,还包括更新模块和发送模块;所述更新模块用于在检测到第二虚拟机从第三数据中心迀移到所在的第二数据中心时,更新所述第二网关保存的所述第二虚拟机的序列号;所述发送模块用于在所述更新模块更新完成所述第二虚拟机的序列号后,向除所述第二数据中心之外的其他数据中心的网关发送包括所述第二虚拟机的序列号的第二位置更新消息,以使除所述第二数据中心之外的其他数据中心的网关在接收到所述第二位置更新消息后,得知所述第二虚拟机的位置信息发生改变,并在确定所述第二虚拟机的位置信息存在冲突时,删除所述其他数据中心的网关保存的第二虚拟机的MAC路由。
[0019]结合第二方面的第二实施方式,在第二方面的第三实施方式中,所述更新模块包括第一更新单元和第二更新单元;所述第一更新单元用于将所述第二网关保存的MAC路由表中的第二虚拟机的出接口更新为所述第二网关的接口 ;所述第二更新单元用于更新所述第二网关保存的所述第二虚拟机的BGP表项,所述第二虚拟机的BGP表项包括所述第二虚拟机的序列号。
[0020]结合第二方面的第三实施方式,在第二方面的第四实施方式中,所述第一更新单元具体用于:当所述第二网关存储有网络侧MAC路由表和接入侧MAC路由表时,删除所述网络侧MAC路由表中所述第二虚拟机对应的表项,并在所述接入侧MAC路由表中添加所述第二虚拟机的出接口为所述第二网关的接口的表项;或当所述第二网关仅存储有一个MAC路由表时,将所述MAC路由表中第二虚拟机的出接口由网络侧出接口改为所述第二网关的接
□ O
[0021]本申请第三方面提供一种数据中心组成的网络系统,包括第一数据中心和第二数据中心,所述第一数据中心包括第一网关和至少一个虚拟机,所述第二数据中心包括第二网关和至少一个虚拟机;所述第一网关用于在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时,向所述网络系统中的其他数据中心的网关发送用于通知所述第一虚拟机的位置信息发生改变的第一位置更新消息;所述第二网关用于接收所述第一网关发送的第一位置更新消息;根据所述第一位置更新消息删除所述第二网关保存的所述第一虚拟机的MAC路由;当接收到发往所述第一虚拟机的报文,且所述第二网关没有保存所述第一虚拟机的MAC路由时,向所述第一虚拟机学习,得到所述第一虚拟机的当前位置信息。
[0022]结合第三方面,在第三方面的第一实施方式中,所述第一网关具体用于在检测到第一虚拟机跨数据中心迀移到所述第一数据中心时,更新所述第一网关保存的所述第一虚拟机的序列号,并向除所述第一数据中心外的其他数据中心的网关发送第一位置更新消息,所述第一位置更新消息包括第一虚拟机的位置信息和代表所述第一虚拟机迀移次数的序列号;所述第二网关执行所
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1