用于协调分布式虚拟网络交换环境中的多播消息传送的中央控制器的制作方法

文档序号:7736500阅读:114来源:国知局
专利名称:用于协调分布式虚拟网络交换环境中的多播消息传送的中央控制器的制作方法
技术领域
本发明一般涉及协调分布式虚拟网络交换环境中的多播组消息传送。
背景技术
多播组使得例如若干无线计算机(俗称为“主机”)的用户可以彼此同时访问同一互联网视频。用户必须发送加入多播组的消息以便接收期望组的数据包,并且,必须进行规定以便消除去往离开多播群组的用户的某些消息。一个用于管理这些琐事的示例协议称为互联网群组管理协议(IGMP)。以上处理依赖于对多播数据包的服务器以及这些服务器和用户之间的网络交换机的识别。这里可以理解,当虚拟机被用作服务器时并且当服务器连接到使用虚拟交换机的网络时,这样的识别不一定发生,导致消息洪泛(flood)至不需要它们的节点并且可能无法将消息递送至应当接收它们的节点。


本发明的结构和操作的细节可以参考附图最好地理解,附图中,类似标号表示类似部分,并且附图中图1是根据本原理的示例系统的框图,以及图2是一般示例逻辑的流程图。
具体实施例方式鍵一种系统,至少包括第一计算机服务器和第二计算机服务器。至少第一虚拟机 (VM)和第二虚拟机是由第一服务器实现的,并且至少第三VM是由第二服务器实现的。在第一服务器上的第一虚拟交换机与第一 VM和第二 VM通信并与网络通信。同样,在第二服务器上的第二虚拟交换机与第三VM和该网络通信。中央控制处理器与这两个服务器通信来协调至少在服务器内的多播消息传送。在一些实施例中,中央控制处理器提供虚拟交换机和VM的统一视图。在示例实施例中,如果在将第一 VM迁移到第三服务器之前,第三服务器还不是第一 VM所属于的多播组的成员,则中央控制处理器使得第一 VM将被迁移到的第三服务器发送加入报告以便加入该多播组。在第三VM是第一多播组的成员并且第一 VM和第二 VM不是第一多播组的成员的示例情况中,第一虚拟交换机接收不到寻址到所述第一多播组的多播消息。在一些实现方式中,中央控制处理器使得来自第一服务器和第二服务器的加入和退出报告只被路由到已知是路由器或交换机的组件,并且不被路由到如下服务器上的VM, 所述服务器上的VM不是作为报告对象的多播组的成员。如果需要,多播消息可以只沿着通往如下VM的链路被转发从而减少不必要的报告洪泛,所述VM是作为多播消息对象的多播组的成员。在服务器不具有与特定多播组相关联的VM的情况中,服务器的虚拟交换机不接收任何寻址到此特定多播组的多播数据包。在另一些实施例中,一种方法包括提供多个本地交换机和提供与所述本地交换机通信的中央控制处理器。该方法还包括使用中央控制处理器来防止至少第一本地交换机接收并非寻址到在所述第一本地交换机后面的任意实体的多播消息。在另一实施例中,一种装置包括与多个服务器通信的中央控制处理器。每个服务器能够运行至少一个虚拟机和将所述VM连接到网络的相应交换机。该中央控制处理器协调服务器和所述网络之间的多播消息传送。

示例实施例首先参考图1,诸如服务器或虚拟机10之类的组件根据以下描述运行管理器模块,在一种示例实现方式中,管理器模块可以是中央控制处理器12,其通常被存储在诸如基于盘的存储装置或固态存储装置之类的有形计算机可读介质14上。除了图1中所示出的那些以外,还可以包括另外的交换机、主机和服务器,可以理解,图1只是用于图解的简化示图。一些实施例可以包括更多网络设备(和不同类型的网络设备,例如路由器)。被中央控制处理器12所协调的数据被逻辑地分组到一个或多个消息中。术语“消息”是指在传输介质上作为数据单元发送的逻辑信息组。消息可以包括围绕数据单元中所包含的用户数据的头和/或尾信息。“消息”可以包括信元、数据报、帧、数据包、片段、或任意其它逻辑信息组。示例非限制性交换机、服务器、计算机和主机可以包括各种接口,这各种接口可以包括物理接口(例如,在交换机内部的线路卡上)和/或逻辑接口(也称为虚拟接口)。例如,物理接口例如但不限于是接收用于若干虚拟局域网(VLAN)的消息的干线接口,可以包括若干逻辑接口,每一个逻辑接口用于一个VLAN。可替换地,逻辑接口可以是位于物理上分离的中间网络设备上的接口,中间网络设备耦接在交换机和一组主机之间,在不进行转发判决的情况下将由主机发送的消息传递至交换机。此外,这些接口可以以不同方式组织。 例如,在一些实施例中,接口可被分层次地组织。在一个这样的实施例中,交换机内的物理接口驻留在此层次结构的顶层。到若干不同VLAN的设备的物理接口可以包括在交换机的接口层次结构中的物理接口之下被组织的若干VLAN专用逻辑接口。中央控制处理器12通常在局域网上与多个计算机实现的服务器16通信。尽管只示出两个服务器,但是可以提供更多(例如,32个、64个等)的服务器。每个服务器16可被俗称为“线路卡”的计算机实现,并且每个服务器16可以运行用于协调服务器16上的一个或多个虚拟机(VM) 18的操作的超级监管器(hypervisor)。例如,图1左面的服务器16 实现两个VM(标记为“VM-a”和“VM-b”),而图1右面的服务器实现单个VM( “VM_c”)。每个VM 18是一个虚拟机,这是因为,当VM是以软件实现的时,VM在相关联的服务器16上就如同VM是硬件实现的机器一样地运作。如图所示,每个服务器16可以包括相应的虚拟交换机20,其中服务器16的各个 VM 18在相应的虚拟上游链路22 (例如虚拟以太网)上与服务器16的相应虚拟交换机20 通信。因此,如图1中所示,“VM-a”在标记为“A”的虚拟上游链路上与左手边的服务器16 的虚拟机20通信,而“VM-b”在标记为“B”的虚拟上游链路上与左手边的服务器16的虚拟机20通信。虚拟交换机20是虚拟交换机,这是因为它们在相关联的服务器16中是通过软件来实现的,尽管也可以使用网络接口卡(NIC)中的硬件特征。中央控制处理器12之下的虚拟交换机20 —起建立分布式虚拟交换机。应当理解,本原理也适用于在一组本地物理交换机的情况中管理多播消息转发,也适用于所示出的本地交换机是虚拟交换机20的情况。
图1示出每个虚拟交换机20在相应的服务器至交换机上游链路沈上与诸如互联网之类的网络25中的硬件实现的交换机M通信。因此,图1中左手边的服务器16的虚拟交换机20在标记为“X”的上游链路上与硬件实现的交换机M通信,而图1中右手边的服务器16的虚拟交换机20在标记为“Y”的上游链路上与硬件实现的交换机M通信。硬件实现的交换机M可以但不限于是网络路由器,但是其也可以是以软件的形式实现的。
硬件执行的交换机M进而在相应的交换机至主机上游链路30上与一个或多个主机计算机28(为了清楚仅示出一个主机)通信。图1中的交换机至主机上游链路30被标记为“Z”。主机观可以但不限于是诸如无线用户计算机之类的运行Linux的计算机,其中所述无线用户计算机的用户希望从一个或多个服务器VM 18接收诸如多播音频视频数据包之类的多播数据包。主机观还可包括发起多播消息的服务器或其他计算机。根据IGMP,当主机加入多播组时,它们沿上游链路向潜在的多播服务器发送加入消息,同样,当主机退出多播组时,它们可以发送退出消息,或者上游组件(称为“查询者”) 可以周期性地发送查询以便确定哪些主机可能已经退出多播组。根据本原理,图1的体系架构和图2的逻辑可以用于减少来自或去往多播组所没有涉及的主机和组件的消息洪泛。在一些实施例中,主机观和服务器16各自包括具有相关联的诸如固态存储装置或基于盘的存储装置之类的计算机可读介质的各种计算设备中的一种或多种。例如,主机和/或服务器各自可以是个人计算机、工作站、互联网服务器、网络设备、诸如蜂窝电话或 PDA(个人数字助理)之类的手持计算设备,或任意其它类型的计算设备。主机和服务器还可以用在这种计算设备上运行的软件处理来实现。主机和服务器各自可以直接地或通过诸如路由器(以及一个或多个其它交换机或其它网络设备)之类的一个或多个中间网络设备间接地连接到交换机对。现在参考图2,在框30处,与虚拟交换机20协作的中央控制处理器12执行对包括虚拟交换机20在内的所有上游交换机的中央探听(snoop)。中央控制处理器12还监视被服务器16的VM 18接收到的来自各个主机的加入消息。在框34处,对于每个服务器16,中央控制处理器12移动到框36以便建立仅包含服务器本地的接口的多播接口分布清单(其可以用将地址与多播组ID相关联的查找表实现)。例如,用于图1中左手边的服务器16的清单将指示VM-a在虚拟以太网“A”上与关联的虚拟交换机20通信,并且VM-b在虚拟以太网“B”上与关联的虚拟交换机20通信。此外,用于左手边的服务器16的清单还指示关联的虚拟交换机20在服务器至交换机上游链路“X”上与物理交换机M通信。如果需要,在框38处,中央控制处理器12可以例如在计算机监视器上向用户呈现在中央控制处理器12之下的所有链路和VM在内的组合交换视图,使得即便用于每个服务器的清单是针对该服务器来个性化的,用户也可以看到组合交换视图。IGMP加入/退出报告根据IGMP原理被用来将包括上述服务器和VM在内的组件登记(enroll)到多播组中和从多播组除名(disenroll)。根据IGMP原理,加入报告和退
6出(或“离开”)报告被沿上游链路发送至已知是路由器/交换机(例如交换机的上游组件。例如,如果VM-a发起加入报告,则中央控制处理器12截取虚拟链路“A”上的VM-a 加入报告并且沿服务器至交换机链路而不再沿其它链路“X”送出加入报告,例如没有加入报告在虚拟链路“B”上被发送,这是因为中央控制处理器12知道VM-b不是路由器或交换机。当物理交换机M接收到加入报告时,其随后将沿交换机至主机链路“Z”转发报告。因此,在图1的系统的情况中,中央控制处理器12监视并且知道由VM 18发出的加入和退出报告,所以处理器12知道哪些VM属于哪些多播组。此外,在VM-C发出加入报告的情况中,加入报告被沿右手边的服务器至交换机链路“Y”发送,物理交换机M随后沿链路“X”(至VM-a)和“Ζ”(至主机28)转发该加入,从而确立图1中右手边的服务器应当代表VM-c接收寻址到如下多播组的消息,所述多播组是来自VM-c的加入报告的对象。此外,图1中左手边的虚拟交换机20不沿服务器至交换机链路“X”重新发回加入,这是因为这种加入报告不被沿起点的链路或从一个PNIC至另一 PNIC的链路发回。如以下将进一步讨论的,有时希望将VM 18从一个服务器16 “迁移”至另一服务器16。在这样的情况中,如果VM被迁移到的服务器16未被登记到此VM所属于的多播组中,则中央处理器12 (因为其具有在其能力范围内的所有服务器16的统一中央视图)可以令服务器16沿上游链路发出必须加入报告,以使得当VM 18到达新的服务器16时,其将立即能够接收寻址到其所属于的多播组的数据包。随后,在框40处,使用以上清单并且如以下利用示例更全面地阐述的,多播消息只沿着通往作为特定组(特定组是这些消息的对象)的成员的VM的链路被转发,从而限制了多播数据包向服务器上的所有VM的不必要的洪泛。在服务器16没有与特定多播组相关联的VM的情况中,服务器16的虚拟交换机20不接收任何寻址到该特定多播组的多播数据包。作为示例,假定VM-a和VM-c和主机观一起加入多播组。由于中央控制处理器12 监视这样的加入,所以中央控制处理器12知道这些加入。相应地,当图1中左手边的服务器16接收VM-a的多播消息时,其在虚拟链路“Α”上发送那些消息,同时避免了多播数据包在虚拟链路“B”上向其它未登记的VM-b的不必要的发送。此外,由于中央控制处理器12具有在其能力范围内的所有服务器的中央视图,所以其可以将VM 18从一个服务器迁移至另一服务器,以使得例如同一多播组中的VM被集中到单个服务器16上并且因此,对于诸如加入和退出报告目的之类的多播流量目的,只消耗单个服务器至交换机链路26。如以上所提及的,VM将被迁移到的服务器可以在VM迁移之前被登记到VM所属于的多播组中,以使得VM — “到达”新的服务器,其就立即开始接收合适的多播数据包。尽管在这里详细地示出和描述了具体的用于协调分布式虚拟网络交换环境中的多播消息传送的中央控制器,但是应当理解,本发明所包括的主题只由权利要求限定。
权利要求
1.一种系统,包括至少第一计算机服务器和第二计算机服务器;由至少所述第一服务器实现的至少第一虚拟机VM和第二虚拟机VM以及由所述第二服务器实现的至少第三VM;第一虚拟交换机,所述第一虚拟交换机在所述第一服务器上,并且与所述第一 VM和所述第二 VM通信并与网络通信;第二虚拟交换机,所述第二虚拟交换机在所述第二服务器上并且与所述第三VM和所述网络通信;以及中央控制处理器,所述中央控制处理器与这两个服务器通信来协调至少在所述服务器内的多播消息传送。
2.根据权利要求1所述的系统,其中所述中央控制处理器提供虚拟交换机和VM的统一视图。
3.根据权利要求1所述的系统,其中,如果在将所述第一VM迁移到第三服务器之前,所述第三服务器还不是所述第一 VM所属于的多播组的成员,则所述中央控制处理器使得所述第一 VM将被迁移到的所述第三服务器发送加入报告以便加入所述多播组。
4.根据权利要求1所述的系统,其中,如果所述第三VM是第一多播组的成员并且所述第一 VM和所述第二 VM不是所述第一多播组的成员,则所述第一虚拟交换机接收不到寻址到所述第一多播组的多播消息。
5.根据权利要求1所述的系统,其中,所述中央控制处理器使得来自所述第一服务器和第二服务器的加入和退出报告只被路由到已知是路由器或交换机的组件,并且不被路由到如下服务器上的VM,所述服务器上的VM不是作为所述报告的对象的多播组的成员。
6.根据权利要求1所述的系统,其中,多播消息只沿着通往如下VM的链路被转发从而减少不必要的数据包洪泛,所述VM是作为所述多播消息的对象的多播组的成员。
7.根据权利要求6所述的系统,其中,在服务器不具有与特定多播组相关联的VM的情况中,所述服务器的虚拟交换机不接收任何寻址到所述特定多播组的多播数据包。
8.一种方法,包括提供复数个本地交换机;提供与所述本地交换机通信的中央控制处理器;以及使用所述中央控制处理器来防止至少第一本地交换机接收并非寻址到在所述第一本地交换机后面的任意实体的多播消息。
9.根据权利要求8所述的方法,其中所述交换机是虚拟交换机。
10.根据权利要求9所述的方法,其中每个交换机与相应的服务器相关联,由至少第一服务器实现至少第一虚拟机VM和第二虚拟机VM,由第二服务器实现至少第三VM,第一虚拟交换机与所述第一服务器相关联并且第二虚拟交换机与所述第二服务器相关联。
11.根据权利要求10所述的方法,其中所述中央控制处理器提供虚拟交换机和VM的统一视图。
12.根据权利要求10所述的方法,其中,如果在将所述第一VM迁移到第三服务器之前, 所述第三服务器还不是所述第一 VM所属于的多播组的成员,则所述中央控制处理器使得所述第一 VM将被迁移到的所述第三服务器发送加入报告以便加入所述多播组。
13.根据权利要求10所述的方法,其中,如果所述第三VM是第一多播组的成员并且所述第一 VM和所述第二 VM不是所述第一多播组的成员,则所述第一虚拟交换机接收不到寻址到所述第一多播组的多播消息。
14.根据权利要求10所述的方法,其中,所述中央控制处理器使得来自所述第一服务器和第二服务器的加入和退出报告只被路由到已知是路由器或交换机的组件,并且不被路由到如下服务器上的VM,所述服务器上的VM不是作为所述报告的对象的多播组的成员。
15.根据权利要求10所述的方法,其中,多播消息只沿着通往如下VM的链路被转发从而减少不必要的数据包洪泛,所述VM是作为所述多播消息的对象的多播组的成员。
16.根据权利要求15所述的方法,其中,在服务器不具有与特定多播组相关联的VM的情况中,所述服务器的虚拟交换机不接收任何寻址到所述特定多播组的多播数据包。
17.一种装置,包括中央控制处理器,所述中央控制处理器与多个服务器通信,每个服务器运行至少一个虚拟机和将所述VM连接到网络的相应的交换机,所述中央控制处理器协调服务器和所述网络之间的多播消息传送。
18.根据权利要求17所述的装置,其中所述交换机是虚拟交换机。
19.根据权利要求18所述的装置,其中每个交换机与相应的服务器相关联,至少第一和第二虚拟机VM是由至少第一服务器实现的,至少第三VM是由第二服务器实现的,第一虚拟交换机与所述第一服务器相关联并且第二虚拟交换机与所述第二服务器相关联。
20.根据权利要求19所述的装置,其中,多播消息只沿着通往如下VM的链路被转发从而减少不必要的数据包洪泛,所述VM是作为所述多播消息的对象的多播组的成员。
全文摘要
一种中央控制处理器提供了用于多个多播交换机或服务器的能够基于报告的子集发送查询消息的统一管理机制。
文档编号H04L12/08GK102160328SQ200980137026
公开日2011年8月17日 申请日期2009年12月7日 优先权日2008年12月10日
发明者蒂莫西·J·库伊克 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1