在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法

文档序号:7990649阅读:202来源:国知局
在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法
【专利摘要】一种系统与方法能够在中间件机器环境中利用多播组支持泛洪机制。该中间件机器环境可以包括网关实例,该网关实例包括用于从外部网络接收一个或多个数据分组的外部端口。该中间件机器环境还包括一个或多个主机服务器,每个主机服务器都与能够处理数据分组的一个或多个虚拟机关联。此外,所述主机服务器可以提供属于与该网关实例关联的虚拟集线器的虚拟接口。至少一个所述分组是当其在外部端口被接收时规定为具有未知目的地地址的泛洪分组。该网关实例操作成向多播组发送泛洪分组,该多播组操作成把泛洪分组转发到该多播组中的一个或多个所述主机服务器。一种系统与方法能够在中间件机器环境中利用分组处理代理支持泛洪机制。对于使用分组处理代理的系统与方法,网关实例能够把泛洪分组发送到主机服务器上的指定虚拟接口,而且该主机服务器上的分组处理代理可以把泛洪分组转发到另一个主机服务器上的虚拟机,用于处理这个分组。
【专利说明】在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法
[0001]版权声明
[0002]本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
【技术领域】
[0003]本发明总体上涉及计算机系统与诸如中间件的软件,而且更具体地说涉及支持中间件机器环境。
【背景技术】
[0004]互连的网络在下一代的超级计算机、集群与数据中心中扮演有益的角色。高性能网络技术,诸如InfiniBand (IB)技术,在高性能计算领域中正在代替专有或低性能的解决方案,在这些高性能计算领域中,高带宽和低等待时间是关键需求。例如,IB安装在诸如LosAlamos 国家实验室的 Roadrunner、Texas 高级计算中心的 Ranger 和 ForschungszcntrumJuelich的JuRoPa之类的超级计算机中使用。
[0005]在2000年10月IB首次作为被称为未来I/O (Future I/O)和下一代I/O (NextGeneration I/O)的两种较旧技术的融合被标准化。由于其低等待时间、高带宽和主机侧处理资源的有效利用,它已经在高性能计算(HPC)群体中作为建立大型可伸缩计算机集群的解决方案获得了接受。用于IB的事实软件系统是OpenFabrics企业发布(OpenFabricsEnterprise Distribution) (0FED),这是由专家们开发并且由OpenFabrics联盟维护的。OFED是开放源码的而且GNU/Linux和Microsoft Windows都可以使用。

【发明内容】

[0006]本文所述的是在中间件机器环境中使用多播组来支持泛洪机制的系统与方法。中间件机器环境可以包括一个网关实例,该网关实例包括用于从外部网络接收一个或多个数据分组的外部端口。该中间件机器环境还包括一个或多个主机服务器,每个主机服务器都与可以处理数据分组的一个或多个虚拟机关联。此外,所述主机服务器可以提供属于与这个网关实例关联的虚拟集线器的虚拟接口。至少一个所述分组是在外部端口接收到其时被规定为具有未知目的地地址的泛洪分组。网关实例操作成把泛洪分组发送到多播组,该多播组操作成把这个泛洪分组转发到该多播组中的一个或多个所述主机服务器。
[0007]本文还描述了在中间件机器环境中使用分组处理代理来支持泛洪机制的系统与方法。中间件机器环境可以包括一个网关实例,该网关实例包括用于从外部网络接收数据分组的外部端口。该中间件机器环境还包括一个或多个主机服务器,每个主机服务器都与一个或多个虚拟机关联。此外,所述主机服务器可以提供属于与这个网关实例关联的虚拟集线器的虚拟接口。至少一个所述分组是在外部端口接收到其时被规定为具有未知目的地地址的泛洪分组。网关实例可以把这个泛洪分组发送到一主机服务器上的指定虚拟接口,而且该主机服务器上的分组处理代理可以把该泛洪分组转发到另一个主机服务器上的虚拟机,以便处理这个分组。
【专利附图】

【附图说明】
[0008]图1根据本发明一种实施例示出了中间件机器环境的说明。
[0009]图2根据本发明一种实施例示出了在中间件机器环境中包括各种vNIC的虚拟集线器(vHUB)的说明。
[0010]图3根据本发明一种实施例示出了使用多播组支持泛洪机制的中间件机器环境的说明。
[0011]图4根据本发明一种实施例说明了在中间件机器环境中使用多播组支持泛洪机制的示例性流程图。
[0012]图5根据本发明一种实施例示出了在中间件机器环境中分配不同类型vNIC的说明。
[0013]图6根据本发明一种实施例示出了在中间件机器环境中使用分组处理代理支持泛洪机制的说明。
[0014]图7根据本发明一种实施例说明了在中间件机器环境中使用分组处理代理支持泛洪机制的示例性流程图。
具体实施例
[0015]本文所述的是用于提供中间件机器或类似平台的系统与方法。根据本发明的一种实施例,该系统包括例如64位处理器技术、高性能大存储器和冗余InfiniBand和以太网联网的高性能硬件与诸如WebLogic套件之类的应用服务器或中间件环境的组合,以便提供可以快速供应并且可以按需伸缩的完整Java EE应用服务器联合体,这种服务器联合体包括大量并行的存储器内网格。根据一种实施例,该系统可以部署成作为提供应用服务器网格、存储区域网络和InfiniBand (IB)网络的完全、一半或四分之一机架或者其它配置。中间件机器软件可以提供应用服务器、中间件和其它功能性,诸如WebLogic服务器、JRockit或Hotspot JVM>OracIe Linux或Solaris及Oracle VM。根据一种实施例,该系统可以包括经IB网络彼此通信的多个计算节点、IB交换机网关和存储节点或单位。当实现为机架配置时,机架未使用的部分可以空着或者被填充物占据。
[0016]根据本发明的一种实施例,在本文中被称为“Sun Oracle Exalogic”或者“Exalogic”,该系统是用于托管中间件或应用服务器软件诸如Oracle中间件软件套件或WebLogic的一种容易部署的解决方案。如本文所描述的,根据一种实施例,该系统是包括一个或多个服务器、存储单元和用于存储联网的IB架构及托管中间件应用所需的所有其它组件的“盒子中的网格”。通过充分利用使用例如真正应用集群(Real ApplicationClusters)和Exalogic开放式存储(Exalogic Open storage)的大量并行网络体系结构,可以对所有类型的中间件应用产生显著的性能。这种系统产生具有线性1/0可伸缩性的改进性能、使用和管理很简单而且产生任务关键的可用性和可靠性。
[0017]中间件机器环境[0018]图1根据本发明一种实施例示出了中间件机器环境的说明。如图1中所示,中间件机器环境100可以包括利用一个或多个网关实例102-103连接到外部网络110的IB架构101。该IB架构还包括多个主机服务器104-107 (每个主机服务器本身可以是硬件,或者是在物理主机服务器之上运行的软件),主机服务器包含多个虚拟机(VM) 131-140。各网关实例A-B102-103可以与外部端口 108-109关联,其中外部端口 108-109可以从外部网络110接收数据分组。如图1中所示,外部端口 A108与网关实例A102关联,而外部端口 B109与网关实例B103关联。
[0019]此外,主机服务器提供多个虚拟接口,诸如虚拟网络接口卡(vNIC) 121-128,用于经网关实例A-B102-103从外部网络接收数据分组。网关实例102-103可以定义并维护一个或多个虚拟集线器(vHUB) 111-113,每个vHUB都在IB架构侧上定义包含与相同网关实例关联的vNIC的逻辑层2 (L2)链路。此外,属于相同vHUB的vNIC和主机可以在不涉及关联的网关实例的情况下彼此通信。
[0020]如图1中所示,网关A上的vHUB Alll与主机服务器A上的vNIC al21和vNICcl23及主机服务器B上的vNIC el25关联。而且,网关A上的vHUB B112与主机服务器A上的vNIC bl22和主机服务器C上的vNIC f 126关联;而且网关B上的vHUB C113与主机服务器B上的vNIC dl24及主机服务器D上的vNIC gl27和vNIC hl28关联。
[0021]图2根据本发明一种实施例示出了包括各种vNIC的虚拟集线器(vHUB)的说明。如图2中所示,中间件机器环境200包括一个网关实例201和几个主机服务器204-205或虚拟机管理程序。包括外部端口 220的网关实例201可以维护一个虚拟集线器(vHUB),vHUBA211。vHUB A211可以被指定唯一的虚拟LAN ID (VLAN ID)210。此外,vHUB A211可以包括各种vNIC221、223-225,每个vNIC都被指定介质访问控制(MAC)地址211-214。每个逻辑vNIC221、223-225都可以由与一个具体主机通道适配器(HCA)端口关联的MAC/VLAN ID组合表示。
[0022]IB架构中的vNIC可以利用虚拟以太网接口(VIF)唯一识别,这包括VLAN ID与MAC地址的组合。而且,当VIF在一个网关实例中的同一个vHub中被并发地使用时,不同的MAC地址被用于不同的VIF。此外,该系统可以执行从以太网层2MAC地址到使用本地标识符(LID) /全局标识符(GID)和队列对号(QPN)的IB层2地址的地址转换。
[0023]此外,网关实例201还可以包括硬件vNIC上下文表232,该表包含各种条目或硬件vNIC上下文。硬件vNIC上下文表232可以存储在网关实例201的存储器中。当主机驱动器经IB架构与网关201向外部以太网发送分组时,这个硬件vNIC上下文表232可以用于验证正确的源地址信息被正确的主机使用。当网关从外部以太网接收到分组时,硬件vNIC上下文表232还可以用于查找IB架构上的正确主机HCA端口地址和那个HCA中的QPN。此夕卜,硬件vNIC上下文可以用于直接把用于一个具体逻辑vNIC的分组指引到指定主机上下文/存储器中的专用接收队列。
[0024]可以是硬件本身或者运行在硬件交换机之上的软件的网关实例201允许使用网络管理的vNIC分配。网关实例201上的管理接口 203,例如匪2-GW服务处理器,可以用于代表具体的主机(HCA)端口分配硬件vNIC上下文。
[0025]可以或者可以不为IB架构中的单个vNIC分配在硬件vNIC上下文表232中记录的硬件vNIC上下文。在如图2所示的例子中,可以为主机服务器A204上的vNIC a221、vNIC b222和vNIC c223及主机服务器B205上的vNIC d224提供硬件vNIC上下文(g卩,网关实例201可以为进入的数据分组获得IB架构上的正确主机HCA端口地址和那个HCA中的QPN)。此外,主机服务器B205上的vNIC e225不被分配硬件vNIC上下文232而且只能在桥接以太网上下文中使用。在一个例子中,如果硬件vNIC上下文表232中的完整网关硬件vNIC上下文被网络管理的vNIC例如vNIC a-d221_224消费,则所有基于桥的vNIC例如vNIC e225都可以是基于泛洪的(B卩,不具有任何专用的HW vNIC上下文)。
[0026]泛洪机制可以用于缩放超过网关HW vNIC上下文表的尺寸的逻辑vNIC的个数。利用基于泛洪的vNIC,该系统允许(一个或多个)主机上相同数量的接收队列为大量逻辑vNIC接收分组。此外,利用泛洪机制,该系统允许在从外部以太网接收到初始分组流量之后可以在硬件上下文表232中建立硬件vNIC上下文的方案。
[0027]利用多播组支持泛洪机制
[0028]根据本发明的一种实施例,当具有未知目的地的数据分组在中间件机器环境中的网络交换机上发布(post)时,多播组可以用于支持泛洪机制,以便确保数据分组可以被正确处理。
[0029]图3根据本发明一种实施例示出了使用多播组在中间件机器环境中支持泛洪机制的说明。如图3中所示,中间件机器环境300可以包括连接到外部网络310的网关实例301。
[0030]网关实例301可以包括适于从外部网络310接收一个或多个进入的数据分组311的外部端口 307。此外,中间件机器环境300还包括一个或多个主机服务器A-C304-306,每个主机服务器都可以支持或托管操作成处理从外部网络接收到的数据分组的一个或多个虚拟机(VM) 341-347。主机服务器A-C304-306可以提供多个虚拟接口 a_g321_327,其中虚拟接口 a321和c-f323-326属于一个虚拟集线器,例如网关实例301中的vHUB A303。虚拟集线器A303中的每个虚拟接口 a321和c_f323-326可以分别与不同的MAC地址例如MACa351 和 c_f353_356 关联。
[0031]网关实例301可以确定在外部端口接收到的进入的分组是否规定了与硬件上下文表302中的上下文关联的虚拟接口。如果在进入的分组中规定的虚拟接口不与硬件上下文表302中的任何上下文关联,则网关实例301可以认为在外部端口 307接收到的进入的分组具有未知的目的地地址,在这种情况下,网关实例301可以把这种数据分组作为泛洪分组312来处理并且依赖泛洪机制准确地处理泛洪分组312。
[0032]根据本发明的一种实施例,单个IB分区320中的专用多播(MC)组317可以用于确保数据分组312可以被正确处理。MC组317允许与虚拟集线器例如vHUB A303关联的各个主机A-C304-306和/或虚拟机管理程序向MC组317注册并且变成MC组317的一员。然后,当在网关实例301接收到泛洪分组312时,网关实例301可以把泛洪分组312的拷贝发送到MC组317的每个成员,MC组317的这些成员又可以把泛洪分组312分发到在其之上运行的各个虚拟机。因而,MC组317可以包括位于不同物理服务器上的一个或多个主机304-306和/或虚拟机管理程序。例如,MC组317可以包括共享网关实例301的所有主机和/或虚拟机管理程序,而且泛洪分组312被复制到所有合作的物理主机服务器304-306。
[0033]此外,主机服务器上的虚拟机可以与多个不同的虚拟接口关联。在如图3所示的例子中,VM D344与vNIC e325和vNIC d324关联。在这里,vNIC e325是基于泛洪的虚拟接口,而vNIC d324是基于硬件vNIC上下文的虚拟接口。利用基于MC组317的泛洪机制,泛洪分组312会两次交付到相同的物理主机即主机服务器B305,因为在每个具体的接口即vNIC d324和vNIC e325上都接收到一个拷贝。在这种情况下,VM D344可以过滤掉泛洪分组312的额外拷贝,而且,以类似于系统如何处理连接到相同逻辑以太网子网的多个物理NIC的方式,确保只有泛洪分组312的一个拷贝被接收并且相应地处理该泛洪分组312。
[0034]图4根据本发明一种实施例说明了在中间件机器环境中使用多播组支持泛洪机制的示例性流程图。如图4中所示,在步骤401,处于一个网关实例的外部端口可以从外部网络接收至少一个分组,其中这至少一个分组被规定为具有未知的目的地地址。然后,在步骤402,该网关实例可以把这至少一个分组发送到多播组。此外,在步骤403,该多播组可以把这至少一个分组转发到该多播组中的一个或多个所述主机服务器。
[0035]分配不同类型的vNIC
[0036]图5根据本发明一种实施例示出了在中间件机器环境中分配不同类型VlNC的说明。如图5中所示,中间件机器环境500包括一个网关实例501和各种主机服务器,和/或虚拟机管理程序,例如具有VM A-D541-544的主机服务器B505。包括外部端口 520的网关实例501可以维护一个虚拟集线器,vHUB A504。可以为vHUB A504指定唯一的虚拟LAN ID(VLAN ID) 510。此外,vHUB A504 可以包括各种 vNIC,例如 vNIC a-d521_524,给每个 vNIC指定一个MAC地址,例如a-d511-514。
[0037]为了优化性能并且减小处理共享队列的泛洪开销,可以经网关管理接口 503分配父vNIC,例如vNIC a521。此外,可以由指定的主机驱动器,例如主机服务器505上的桥接以太网驱动器506,经主机驱动器506与网关控制逻辑507之间的带内控制协议508来创建多个子 vNIC b-d522-524。
[0038]基于硬件vNIC上下文表502中的硬件上下文的父vNIC a521可以通过使用经网关管理接口 503规定的属性/元数据来分配。用于创建父vNIC a521的信息可以作为元数据存储在网关控制逻辑507中。此外,用于父vNIC a521的元数据可以定义对VLAN和MAC地址范围强加约束的不同策略,这些策略由子vNIC b-d522-524使用。
[0039]桥接的以太网驱动器506可以为子vNIC,例如vNIC d524,分配硬件NIC上下文表502中用于具体VIF (MAC/VLAN)例如MAC d514的专用硬件vNIC上下文。这种决定可以基于明确受控的高速缓存策略例如每VM SLA策略来作出。此外,当使用泛洪机制时,用于单AXvNIC a521的硬件上下文可以在不需要源地址验证的情况下由子vNIC b-d522_524用于发送分组。所有共享的物理主机/虚拟机管理程序可以彼此信任,而且外部以太网网络可以具有所要求的VLAN。
[0040]此外,以类似于处理常规物理NIC的方式,网关实例501可以处理不同类型vNIC,例如基于硬件内容的vNIC a521与d524和基于泛洪的vNIC b_c522_523,的连接性。在一个例子中,网关实例501可以处理包括每个物理服务器有大量半虚拟化的和/或时间共享的VM而且还每个VM有大量VLAN的组合的极端用例。此外,该系统的多租户供应的粒度可以设置成使得只有单个租户可以使用网关实例中的单个泛洪地址硬件资源。
[0041]根据本发明的一种实施例,至少一个虚拟接口例如网关实例501上的vNIC a521是与一个或多个子虚拟接口例如vNIC b-d522-524关联的父虚拟接口。XvNIC a521可以配置成具有限制相关子vNICb-d522-524可以与之关联的MAC地址和VLAN ID集合的不同策略信息。此外,可以为父vNIC a521提供硬件上下文表502中的一个上下文,而且至少一个子虚拟接口例如vNIC b-c522-523可以不与硬件上下文表中的任何上下文关联。
[0042]使用分组处理代理支持泛洪机制
[0043]根据本发明的一种实施例,当具有未知目的地的数据分组在中间件机器环境中的网络交换机上发布时,分组处理代理可以用于支持泛洪机制,以便确保数据分组可以被正确处理。
[0044]图6根据本发明一种实施例示出了在中间件机器环境中使用分组处理代理支持泛洪机制的说明。如图6中所示,中间件机器环境600可以包括连接到外部网络610的网关实例601。
[0045]网关实例601可以包括适于从外部网络610接收一个或多个进入的数据分组611的外部端口 607。此外,中间件机器环境600还包括一个或多个主机服务器A-C604-606,每个主机服务器都可以与操作成处理从外部网络接收到的数据分组的一个或多个虚拟机(VM) 641-647关联。主机服务器604-606可以提供多个虚拟接口 621-627,其中虚拟接口a621和c-g623-627属于网关实例中的虚拟集线器603。虚拟集线器603中虚拟接口 a621和c-g623-627中的每一个可以分别与不同的MAC地址例如MAC a651和c_g623_627关联。
[0046]网关实例601可以确定在外部端口接收到的进入的分组是否规定与硬件上下文表602中的上下文关联的虚拟接口。如果在进入的分组中规定的虚拟接口不与硬件上下文表602中的任何上下文关联,则网关实例601可以认为在外部端口 607接收到的进入的分组具有未知的目的地地址,在这种情况下,网关实例601可以把这种数据分组作为泛洪分组612来处理并且依赖泛洪机制准确地处理泛洪分组612。
[0047]根据本发明的一种实施例,分组处理代理609可以用于支持泛洪机制。分组处理代理609可以驻留在提供每个外部端口单个指定泛洪目的地的主机服务器例如主机服务器C606上。例如,分组处理代理609可以存储在主机服务器C606中的存储器中。如图6中所示,主机服务器C606上的vNIC g627专用于处理在外部端口 607接收到的、在虚拟集线器A603中具有未知目的地的数据分组。在这里,网关实例601可以经单播或单成员多播把泛洪分组612发送到vNIC g627。
[0048]基于分组处理代理609的泛洪机制可以在具有各种数量虚拟机(VM)和各种数量虚拟接口的IB分区620中使用。例如,分组处理代理609可以只把泛洪分组612转发到代表主机服务器606上与目标VM F646关联的基于泛洪的vNIC626或者不同主机服务器B605上与目标VM D644关联的基于泛洪的VNIC625的虚拟接口。在这里,目标VM D644可以与另一个虚拟接口 vNIC d624关联,该vNIC d624与硬件上下文表602中的一个上下文关联。因而,利用分组处理代理609,网关实例601可以避免有可能混淆不同主机服务器604-606上标准网络堆栈的不正确的分组复制。
[0049]根据本发明的一种实施例,分组处理代理609,一个特定于IB架构的代理功能,可以用于执行进入的分组611的中间处理,例如实现防火墙、负载平衡或者其它中间功能。分组处理代理609可以适于精确地处理它所接收到的分组,并且由此,提高HAC链路的效率。当使用每个外部端口专用的泛洪地址时,HAC链路的效率可以是100%。此外,通过利用专用硬件在架构中实现代理功能(即,HCA端口和处理能力),相对于网络交换机实例的共享来说,对信任任何特定的虚拟机管理程序集合没有依赖性,而且根据定义没有与其它I/O或处理任务的带宽/能力冲突。
[0050]图7根据本发明一种实施例说明了在中间件机器环境中使用分组处理代理支持泛洪机制的示例性流程图。如图7中所示,在步骤701,处于一个网关实例的外部端口从外部网络接收至少一个分组,其中这至少一个分组被规定为具有未知的目的地地址。然后,在步骤702,该网关实例可以把这至少一个分组发送到一主机服务器上的指定虚拟接口。此夕卜,在步骤703,该主机服务器上的分组处理代理可以把这至少一个分组转发到相同或另一个主机服务器上的虚拟机,用于处理这至少一个分组。
[0051]总的来说,本发明涉及用于在可以在一个或多个微处理器上操作的中间件机器环境中支持泛洪机制的系统,包括:
[0052]用于在网关实例经外部端口从外部网络接收至少一个分组的装置,其中这至少一个分组被规定为具有未知的目的地地址;及
[0053]用于经网关实例把所述至少一个分组发送到多播组的装置;及
[0054]用于经该多播组把所述至少一个分组转发到该多播组中的一个或多个所述主机服务器的装置。
[0055]所述系统还包括用于提供硬件上下文表的装置,该硬件上下文表包含可以与一个或多个所述虚拟接口关联的多个上下文。
[0056]所述系统还包括用于经网关实例确定在外部端口接收到的进入的分组是否规定了与硬件上下文表中的上下文关联的虚拟接口的装置。
[0057]所述系统还包括用于在外部端口接收进入的分组的装置,当进入的分组去往不与硬件上下文表中的任何上下文关联的虚拟接口时,该进入的分组被认为具有未知的目的地地址。
[0058]所述系统还包括用于允许多播组包括共享网关实例的所有主机和/或虚拟机管理程序的装置,而且所述至少一个分组被复制到所有合作的主机服务器。
[0059]所述系统还包括用于经网关实例允许一个或多个关联的主机和/或虚拟机管理程序向该多播组登记的装置。
[0060]所述系统还包括用于把一个主机服务器上的至少一个所述虚拟机与多个虚拟接口关联的装置,而且其中多播组操作成把所述至少一个分组的多个拷贝转发到至少一个所述虚拟机。
[0061]所述系统还包括用于允许至少一个所述虚拟机过滤掉所述至少一个分组的额外拷贝的装置。
[0062]所述系统还包括用于允许至少一个虚拟接口作为与一个或多个子虚拟接口关联的父虚拟接口的装置,其中父虚拟接口与硬件上下文表中的上下文关联,而且所述一个或多个子虚拟接口中的每一个都不与硬件上下文表中的任何上下文关联。
[0063]总的来说,本发明还涉及用于在可以在一个或多个微处理器上操作的中间件机器环境中支持泛洪机制的系统,包括:
[0064]用于在网关实例经外部端口从外部网络接收至少一个分组的装置,其中所述至少一个分组被规定为具有未知的目的地地址;
[0065]用于经该网关实例把所述至少一个分组发送到主机服务器上的指定虚拟接口的装置;及[0066]用于经该主机服务器上的分组处理代理把所述至少一个分组转发到目标虚拟机以便处理所述至少一个分组的装置。
[0067]所述系统还包括用于提供硬件上下文表的装置,该硬件上下文表包含可以与一个或多个所述虚拟接口关联的多个上下文。
[0068]所述系统还包括用于经该网关实例确定在外部端口接收到的进入的分组是否规定了与硬件上下文表中的上下文关联的虚拟接口的装置。
[0069]所述系统还包括用于当在外部端口接收到的进入的分组去往不与硬件上下文表中的任何上下文关联的虚拟接口时认为所述进入的分组具有未知的目的地地址的装置。
[0070]所述系统还包括在具有各种数量的虚拟机(VM)和各种数量的虚拟接口的网络分区中使用无不正确分组复制的分组处理代理的装置。
[0071]所述系统还包括允许目标虚拟机驻留在该主机服务器上的装置。
[0072]所述系统还包括允许目标虚拟机驻留在另一个主机服务器上的装置。
[0073]所述系统还包括经该网关实例把这至少一个分组经单播或单成员多播发送到指定虚拟接口的装置。
[0074]所述系统还包括允许至少一个虚拟接口作为与一个或多个子虚拟接口关联的父虚拟接口的装置,而且其中父虚拟接口与硬件上下文表中的一个上下文关联,而且一个或多个子虚拟接口中的每一个都不与硬件上下文表中的任何上下文关联。
[0075]本发明可以利用一种或多种常规的通用或专用数字计算机、计算设备、机器或微处理器,包括根据本公开内容的教义编程的一个或多个处理器、存储器和/或计算机可读存储介质,来常规地实现。如对软件领域的技术人员很显然的,适当的软件编码可以很容易地由熟练程序员基于本公开内容的教义来准备。
[0076]在有些实施例中,本发明包括作为其上/其中存储了指令的存储介质或计算机可读介质的计算机程序产品,其中指令可以用于编程计算机,以便执行本发明的任何处理。存储介质可以包括,但不限于,任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或设备。
[0077]本发明的以上描述是为了说明和描述的目的而给出的。它不是详尽的或者要把本发明限定到所公开的精确形式。对本领域的普通技术实践者来说,许多修改与变体都是显而易见的。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,由此使本领域的其他技术人员能够理解本发明具有各种实施例和适于预期特定用途的各种修改例。本发明的范围要由以下权利要求及其等效物来定义。
【权利要求】
1.一种用于在一个或多个微处理器上操作的中间件机器环境中支持泛洪机制的系统,包括: 网关实例,其中该网关实例与适于从外部网络接收一个或多个数据分组的外部端口关联; 一个或多个主机服务器,其上提供多个虚拟接口,其中每个所述主机服务器都与操作成处理所述一个或多个数据分组的一个或多个虚拟机关联, 其中,当至少一个分组在网关实例的外部端口被接收时,其被规定为具有未知的目的地地址,并且 其中网关实例操作成把所述至少一个分组发送到: (i)多播组,其中该多播组操作成把所述至少一个分组转发到该多播组中的一个或多个所述主机服务器;或者 (ii)主机服务器上的与分组处理代理关联的指定虚拟接口,其中该主机服务器上的分组处理代理操作成把所述至少一个分组转发到目标虚拟机器,以便处理所述至少一个分组。
2.如权利要求1所述的系统,还包括: 硬件上下文表,该硬件上 下文表包含能够与一个或多个所述虚拟接口关联的多个上下文。
3.如权利要求2所述的系统,其中: 网关实例操作成确定在外部端口接收到的进入的分组是否规定与硬件上下文表中的上下文关联的虚拟接口。
4.如权利要求3所述的系统,其中: 当在外部接口接收到的进入的分组去往不与硬件上下文表中的任何上下文关联的虚拟接口时,所述进入的分组被认为具有未知的目的地地址。
5.如之前任何一项权利要求所述的系统,其中: 至少一个虚拟接口是与一个或多个子虚拟接口关联的父虚拟接口,其中与网关上的父虚拟接口关联的策略信息限定所述一个或多个子虚拟接口能够与之关联的地址和/或标识。
6.如权利要求5所述的系统,其中: 父虚拟接口与硬件上下文表中的上下文关联,并且,所述一个或多个子虚拟接口中的每一个都不与硬件上下文表中的任何上下文关联。
7.如之前任何一项权利要求所述的系统,其中网关实例操作成把所述至少一个分组发送到多播组,其中该多播组操作成把所述至少一个分组转发到该多播组中的一个或多个所述主机服务器。
8.如权利要求7所述的系统,其中: 多播组包括共享网关实例的所有主机和/或虚拟机管理程序,并且,所述至少一个分组被复制到所有合作的主机服务器。
9.如权利要求7或8所述的系统,其中: 网关实例允许一个或多个关联的主机和/或虚拟机管理程序向多播组登记。
10.如权利要求7至9中任何一项所述的系统,其中:主机服务器上的至少一个所述虚拟机与多个虚拟接口关联,并且其中,多播组操作成把所述至少一个分组的多个拷贝转发到至少一个所述虚拟机。
11.如权利要求10所述的系统,其中: 至少一个所述虚拟机操作成接收所述至少一个分组的仅一个拷贝。
12.如权利要求1至6中任何一项所述的系统,其中网关实例操作成把所述至少一个分组发送到主机服务器上的与分组处理代理关联的指定虚拟接口,其中该主机服务器上的分组处理代理操作成把所述至少一个分组转发到目标虚拟机,以便处理所述至少一个分组。
13.如权利要求12所述的系统,其中: 在具有各种数量的虚拟机(VM)和各种数量的虚拟接口的网络分区中,使用无不正确分组复制的分组处理代理。
14.如权利要求12或13所述的系统,其中: 目标虚拟机驻留在所述主机服务器上。
15.如权利要求12或13所述的系统,其中: 目标虚拟机驻留在另一个主机服务器上。
16.如权利要求12至15中任何一项所述的系统,其中: 网关实例使用单播或单成员多播把所述至少一个分组发送到所述指定虚拟接口。
17.一种用于在一个或多个微处理器上操作的中间件机器环境中支持泛洪机制的方法,包括: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址;及 经该网关实例把所述至少一个分组发送到多播组;及 经该多播组把所述至少一个分组转发到该多播组中的一个或多个主机服务器。
18.如权利要求17所述的方法,还包括: 提供硬件上下文表,该硬件上下文表包含能够与一个或多个虚拟接口关联的多个上下文。
19.如权利要求18所述的方法,还包括: 经网关实例确定在外部端口接收到的进入的分组是否规定与硬件上下文表中的上下文关联的虚拟接口。
20.如权利要求19所述的方法,还包括: 在外部端口接收进入的分组,当所述进入的分组去往不与硬件上下文表中的任何上下文关联的虚拟接口时,所述进入的分组被认为具有未知的目的地地址。
21.如权利要求17至20中任何一项所述的方法,还包括: 允许多播组包括共享网关实例的所有主机和/或虚拟机管理程序,并且所述至少一个分组被复制到所有合作的主机服务器。
22.如权利要求17至21中任何一项所述的方法,还包括: 经网关实例,允许一个或多个关联的主机和/或虚拟机管理程序向多播组登记。
23.如权利要求17至22中任何一项所述的方法,还包括: 把主机服务器上的至少 一个虚拟机与多个虚拟接口关联,并且其中,多播组操作成把所述至少一个分组的多个拷贝转发到所述至少一个虚拟机。
24.如权利要求23所述的方法,还包括: 允许所述至少一个虚拟机过滤掉所述至少一个分组的额外拷贝。
25.如权利要求17至24中任何一项所述的方法,还包括: 允许至少一个虚拟接口作为与一个或多个子虚拟接口关联的父虚拟接口,其中与网关实例上的父虚拟接口关联的策略信息限定所述一个或多个子虚拟接口能够与之关联的地址和/或标识;并且其中,父虚拟接口与硬件上下文表中的上下文关联,并且,所述一个或多个子虚拟接口中的每一个都不与硬件上下文表中的任何上下文关联。
26.一种其上存储了用于在中间件机器环境中支持泛洪机制的指令的非暂时性机器可读存储介质,当所述指令被执行,使系统执行以下步骤: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址;及 经该网关实例把所述至少一个分组发送到多播组;及 经该多播组把所述至少一个分组转发到该多播组中的一个或多个主机服务器。
27.一种用于在一个或多个微处理器上操作的中间件机器环境中支持泛洪机制的方法,包括: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址; 经该网关实例把所述至少一个分组发送到主机服务器上的指定虚拟接口 ;及经该主机服务器上的分组处理代理把所述至少一个分组转发到目标虚拟机,以便处理所述至少一个分组。
28.如权利要求27所述的方法,还包括: 提供硬件上下文表,该硬件上下文表包含能够与一个或多个虚拟接口关联的多个上下文。
29.如权利要求28所述的方法,还包括: 经网关实例确定在外部端口接收到的进入的分组是否规定了与硬件上下文表中的上下文关联的虚拟接口。
30.如权利要求29所述的方法,还包括: 当在外部端口接收到的进入的分组去往不与硬件上下文表中的任何上下文关联的虚拟接口时,认为所述进入的分组具有未知的目的地地址。
31.如权利要求27至30中任何一项所述的方法,还包括: 在具有各种数量的虚拟机(VM)和各种数量的虚拟接口的网络分区中,使用无不正确分组复制的分组处理代理。
32.如权利要求27至31中任何一项所述的方法,还包括: 允许目标虚拟机驻留在所述主机服务器上。
33.如权利要求27至31中任何一项所述的方法,还包括: 允许目标虚拟机驻留在另一个主机服务器上。
34.如权利要求27至33中任何一项所述的方法,还包括: 经网关实例,经单播或单成员多播把所述至少一个分组发送到所述指定虚拟接口。
35.如权利要求27至34中任何一项所述的方法,还包括:允许至少一个虚拟接口作为与一个或多个子虚拟接口关联的父虚拟接口,其中与网关实例上的该父虚拟接口关联的策略信息限定所述一个或多个子虚拟接口能够与之关联的地址和/或标识;并且其中,父虚拟接口与硬件上下文表中的上下文关联,并且所述一个或多个子虚拟接口中的每一个都不与硬件上下文表中的任何上下文关联。
36.一种其上存储了用于在中间件机器环境中支持泛洪机制的指令的非暂时性机器可读存储介质,当所述指令被执行,使系统执行以下步骤: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址; 经该网关实例把所述至少一个分组发送到主机服务器上的指定虚拟接口 ;及经该主机服务器上的分组处理代理把所述至少一个分组转发到目标虚拟机,以便处理所述至少一个分组。
37.一种计算机程序,包括由一个或多个处理器运行以便执行如权利要求17至25或者27至35所述的方法的指令。
38.一种计算机程序产品,包括存储如权利要求37所述的计算机程序的计算机可读介质。
39.一种用于在中间件机器环境中支持泛洪机制的程序,该程序使系统执行以下步骤: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址;及 经该网关实例把所述至少一个分组发送到多播组;及 经该多播组把所述至少一个分组转发到该多播组中的一个或多个所述主机服务器。
40.一种用于在中间件机器环境中支持泛洪机制的程序,该程序使系统执行以下步骤: 在网关实例经外部端口从外部网络接收至少一个分组,其中所述至少一个分组被规定为具有未知的目的地地址;及 经该网关实例把所述至少一个分组发送到主机服务器上的指定虚拟接口 ;及经该主机服务器上的分组处理代理把所述至少一个分组转发到目标虚拟机,以便处理所述至少一个分组。
【文档编号】H04L29/08GK103621048SQ201280030335
【公开日】2014年3月5日 申请日期:2012年7月11日 优先权日:2011年7月11日
【发明者】B-D·约翰逊, M·P·梅赫阿德, O·托卢德巴肯 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1