负载平衡器绕过.pdf

上传人:t**** 文档编号:20276 上传时间:2018-01-12 格式:PDF 页数:19 大小:956.91KB
返回 下载 相关 举报
摘要
申请专利号:

CN201380054147.2

申请日:

2013.10.16

公开号:

CN104756466A

公开日:

2015.07.01

当前法律状态:

实审

有效性:

审中

法律详情:

专利申请权的转移IPC(主分类):H04L 29/08登记生效日:20171026变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州|||实质审查的生效IPC(主分类):H04L 29/08申请日:20131016|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

微软公司

发明人:

H·库马; P·K·帕特尔; D·班塞尔

地址:

美国华盛顿州

优先权:

13/652,718 2012.10.16 US

专利代理机构:

上海专利商标事务所有限公司31100

代理人:

陈小刚

PDF下载: PDF下载
内容摘要

绕过最初出现在来自由源中介服务的源机器和由目标中介服务的目标机器的多消息流中的负载平衡器。该流的一个或多个原始网络消息(以及可能只是第一网络消息)从源中介到达负载平衡器,负载平衡器选择哪一机器作为目的地机器,并且它进而选择由目的地中介服务的该目的地机器。响应于接收到这一消息,目的地中介指令源中介将该流中的后续消息以绕过负载平衡器的方式进行传送。为了促进这一点,源中介可以修改来自源机器的后续流消息的寻址,使得它们在无需对负载平衡器进行寻址的情况下被重新路由到目的地机器。

权利要求书

1.  一种包括其中具有计算机可执行指令的一个或多个计算机可读存储介质的计算机程序产品,所述计算机可执行指令被结构化成使得在由服务参与来自由源中介服务的源机器的多消息流的目的地机器的目的地中介的一个或多个处理器执行时,使得所述目的地中介执行一种用于重定向所述多消息流以绕过在与所述多消息流相关联的一个或多个先前网络消息中使用的负载平衡器的方法,所述方法是响应于所述目的地中介从所述负载平衡器接收到属于所述多消息流的网络消息来执行的,所述方法包括:
确定所述源中介要将源自所述源机器的且与同一多消息流相关联的后续网络消息以绕过所述负载平衡器的方式寻址到所述目的地机器的动作;
指令所述源中介将来自所述源机器的且与同一多消息流相关联的后续网络消息以绕过所述负载平衡器的方式寻址到所述目的地机器的动作。

2.
  一种由源中介上的源机器将多消息流传递给目的地中介上的目的地机器的方法,所述方法包括:
所述源机器分派具有包括经由负载平衡器路由的目的地虚拟网络地址的目的地地址的源侧网络消息的动作,所述负载平衡器将寻址到所述虚拟网络地址的网络消息分发给与所述虚拟网络地址相关联的多个机器中的一个,其中所述目的地机器是与所述虚拟网络地址相关联的所述多个机器中的一个,所述源侧网络消息具有包括对所述源机器进行寻址的可路由设备标识符的源地址;以及
所述源中介接收后续目的地侧网络消息的动作,所述后续目的地侧网络消息能由所述源中介解释为指令所述源中介将与所述源侧网络消息相同的流相关的后续网络消息分派给对所述目的地机器进行寻址的可路由设备标识符。

3.
  如权利要求2所述的方法,其特征在于,所述后续目的地侧网络消息具有包括对所述目的地机器进行寻址的可路由设备标识符的源地址以及包括对所述源机器进行寻址的可路由设备标识符的目的地地址。

4.
  如权利要求3所述的方法,其特征在于,接收所述后续目的地侧网络消息 的动作包括:
创建用封装地址信息对所述后续目的地侧网络消息进行封装的经封装的目的地侧网络消息的动作,所述经封装的地址信息包括包含对所述负载平衡器进行寻址的虚拟网络地址的源地址;以及
所述源中介解除所述经封装的目的地侧网络消息的封装并将所述经封装的信息解释成修改与同一流相关的后续源侧网络消息的指令的动作。

5.
  如权利要求2所述的方法,其特征在于,进一步包括:
所述源中介修改所述后续目的地侧网络消息以使得所述源地址包括所述负载平衡器的目的地虚拟网络地址的动作。

6.
  如权利要求2所述的方法,其特征在于,所述源侧网络消息是第一源侧网络消息,所述方法还包括:
所述源机器分派第二源侧网络消息的动作,所述第二源侧网络消息具有包括对所述负载平衡器进行寻址的目的地虚拟网络地址的目的地地址且具有包括对所述源机器进行寻址的可路由设备标识符的源地址。

7.
  如权利要求6所述的方法,其特征在于,进一步包括:
所述源中介截取所述第二源侧网络消息的动作;
所述源中介修改所述第二源侧网络消息以使用对所述目的地机器进行寻址的所述可路由设备标识符作为目的地地址的动作;以及
所述源中介以绕过所述负载平衡器的方式将经修改的第二源侧网络消息分发到所述目的地机器的动作。

8.
  如权利要求7所述的方法,其特征在于,在所述源中介处对所述第二网络消息的修改包括消息封装。

9.
  如权利要求8所述的方法,其特征在于,源中介接受所述经封装的消息的动作包括验证消息发送者的身份并在所述身份不能被验证的情况下拒绝所述消息。

10.
  如权利要求9所述的方法,其特征在于,验证所述发送者的身份的动作包括验证所述消息包含来自所述第一源侧消息的数据。

说明书

负载平衡器绕过
背景
负载平衡器允许多个机器与单个虚拟网络地址相关联。被寻址到该虚拟网络地址的网络消息由负载平衡器接收,它决定多个机器中的哪些要处理该网络消息。负载平衡器随后将该网络消息转发给目的地中介。目的地中介随后将该网络消息递送给指定机器。
简要概述
本文描述的至少一个实施例涉及从由源中介服务的源机器和由目的地中介服务的目的地机器绕过最初出现在多消息流中的负载平衡器。该流的一个或多个原始网络消息(以及可能只是第一个消息)从源中介到达负载平衡器处。负载平衡器选择要将该消息发送到哪一机器,并且它进而选择该目的地机器。负载平衡器随后将该网络消息分派给服务该目的地机器的目的地中介。响应于接收到这一消息,目的地中介指令源中介将该流中的后续消息以绕过负载平衡器的方式传送给该目的地机器。为了促进这一点,源中介可以修改来自源机器的后续流消息的寻址,使得它们在无需对负载平衡器进行寻址的情况下被重新路由到目的地机器。
发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1抽象地示出可在其中采用本文描述的一些实施例的计算系统;
图2抽象地示出主存多个虚拟机并通过管理程序提供对物理资源的访问的主机计算系统;
图3抽象地示出其中三个主机在通信并且其中负载平衡器跨可与不同主机上的虚拟机相对应的虚拟网络地址进行负载平衡的分布式环境;
图4示出分开指令实施例中的、源机器与目的地机器在多消息流中传递第一交换的方法的流程图;
图5A示出集成响应实施例中的、源机器与目的地机器在多消息流中传递第一交换的方法的流程图的第一半;
图5B示出图5A的流程图的第二半;
图6A到6G示出处理的各阶段中网络消息的各示例数据结构;以及
图7示出用于从源机器到目的地机器递送与同一流相关联的后续网络消息的方法的流程图。
详细描述
根据本文描述的各实施例,描述了对负载平衡器的绕过。负载平衡器最初出现在来自由源中介服务的源机器和由目的地中介服务的目的地机器的多消息流中。
该流的一个或多个原始网络消息(以及可能只是第一个消息)从源中介到达负载平衡器处。负载平衡器选择哪个机器要处理该消息,并且它进而选择该目的地机器。负载平衡器随后将该网络消息分派给服务该目的地机器的目的地中介。响应于接收到这一消息,目的地中介指令源中介将该流中的后续消息以绕过负载平衡器的方式进行传送。为了促进这一点,源中介可以修改来自源机器的后续流消息的寻址,使得它们在无需对负载平衡器进行寻址的情况下被重新路由到目的地机器。
尽管本文描述的网络消息可以是因特网协议(IP)层网络消息,但网络消息可发生在协议栈中的比这一层更高的层处,且甚至可以是应用层网络消息。源机器可以在云计算环境、公共因特网、或任何其他环境中操作。同样,目的地机器也可以在云计算环境、公共因特网、或任何其他环境中操作。此外,可存在源和目的地虚拟机的任何排列,包括1)源和目的地机器两者都是虚拟机,2)源和目的地机器两者都是物理机,3)源机器是虚拟机而目的地机器是物理机,以及4)源机器是物理机而目的地机器是虚拟机。
将参考图1来描述计算系统的一些介绍性讨论。随后,将参考图2描述虚拟机的操作原理。接着,将参考图3以及后续附图来描述绕过负载平衡器的原 理。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可被实现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。 由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统 环境中,程序模块可以位于本地和远程存储器存储设备二者中。
已经参考图1描述了物理计算系统(或物理机),现在将描述虚拟计算系统(或虚拟机)的概念。一种类型的物理计算系统被称为主机计算系统(或简称为“主机”)。每个主机能够运行一个或更多个且潜在地许多个虚拟机。例如,图2更详细地抽象地解说了主机200。在图2的示例中,主机200被解说为运行包括虚拟机210A、210B和210C在内的三个虚拟机210。然而,省略号210D再次表示本文描述的原理不受到运行在主机200上的虚拟机的数目的限制。可以由少至零个虚拟机运行在主机上,而且唯一的上限是受到主机200的物理能力的限定。
在操作期间,虚拟机模拟完全可操作的计算系统,包括至少一个操作系统并且也许还包括一个或多个其他应用。每个虚拟机被分派一个特定的客户端,并且负责支持该客户端的桌面环境。
虚拟机生成桌面镜像或其他表示桌面的当前状态的呈现指令,并接着将该镜像或指令传送到客户端以供桌面的呈现。在用户与客户端处的桌面进行交互时,用户输入从客户端被传送到虚拟机。虚拟机处理用户输入,并且如果合适,则改变桌面状态。如果桌面状态中这样的改变将导致在所呈现的桌面中的改变,则虚拟机更镜像或呈现指令(如果合适的话),并将经更改的图像或呈现的指令传送到客户端计算系统以供合适的呈现。从用户的角度而言,就好像客户端计算系统本身在执行桌面处理。
主机200包括管理程序220,其使用从虚拟机210的视角抽象出的物理资源221来模拟虚拟机210的虚拟资源。管理程序221还提供虚拟机210之间的适当的隔离。因此,从任何给定的虚拟机的角度来看,管理程序220提供该虚拟机正与物理资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对接,而不是直接与物理资源对接。在图2中,物理资源221被抽象地表示为包括资源221A到221F。物理资源221的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器等等。
图3示出包括三个中介的分布式系统300。在图3的情况下,通信机器是虚拟机,并且因此,这三个中介被示为主机计算系统310、320以及330(此后简称为“主机”)内的管理程序。每一主机310、320以及330可如以上针对图2的主机200所描述的那样被构造和操作。每一主机具有管理程序,如同主机200具有管理程序220一样。例如,主机310、320以及330具有相应的管 理程序311、321以及331。
或者,如果虚拟机312改为是物理机,则管理程序311可由适用于物理机的另一中介替代,如虚拟机开关(vmswitch)。同样,如果虚拟机322改为是物理机,则管理程序321可由虚拟机开关来替代。此外,如果虚拟机332改为是物理机,则管理程序331也可由虚拟机开关来替代。因此,贯穿本说明书的其余部分,在引用术语“源虚拟机”和“源主机”时,这些术语可由相应术语“源物理机”和“源虚拟机开关”来替代。同样,在引用术语“目的地虚拟机”和“目的地主机”时,这些术语可由相应术语“目的地物理机”和“目的地虚拟机开关”来替代。然而,图4到7的示例将使用对虚拟机的具体示例中的交换的讨论来进行。
每一主机具有在其上运行的虚拟机,如同主机200具有在其上运行的虚拟机210一样。例如,主机310具有在其上运行的虚拟机312,包括虚拟机312A、312B以及312C,但省略号312D表示在主机310上运行的虚拟机的数量的灵活性。主机320具有在其上运行的虚拟机322,包括虚拟机322A、322B以及322C,但省略号322D表示在主机320上运行的虚拟机的数量的灵活性。主机330具有在其上运行的虚拟机332,包括虚拟机332A、332B以及332C,但省略号332D表示在主机330上运行的虚拟机的数量的灵活性。每一虚拟机能由可路由的设备标识符来寻址。例如,虚拟机312A、312B、312C、322A、322B、322C、332A、332B以及332C能由相应的可路由设备标识符313A、313B、313C、323A、323B、323C、333A、333B以及332C来寻址。
分布式系统300还包括获得针对虚拟网络地址341的话务的负载平衡器340。负载平衡器340被配置成使得负载平衡器342接收到的以及使用虚拟网络地址341寻址的消息被分发给与虚拟网络地址相关联的虚拟机群中的一个虚拟机。例如,存在与虚拟网络地址341相关联的三个虚拟机,包括虚拟机322B(由关联351来表示)、虚拟机322A(由关联352来表示)、以及虚拟机332C(由关联353来表示)。
负载平衡器340通过选择虚拟机332B、332A或332C中的一个以接收寻址到虚拟网络的消息来执行负载平衡,并将该网络消息分派给所选虚拟机。省略号342表示负载平衡器340也可以针对其他虚拟网络地址执行这一负载平衡功能,该其他虚拟网络地址可以与不同的一组一个或多个虚拟机相关联。虚拟网络地址包括虚拟因特网协议(IP)地址。在以下阐述的示例中,虚拟机312A 将是特定消息流的源虚拟机,源主机310将是该消息流的源主机,虚拟机322A将是该消息流的目的地虚拟机,并且主机320将是该消息流的目的地主机。
存在指令源主机绕过负载平衡器的两个实施例。一个实施例将被称为“分开指令”实施例,其中目的地主机提供与对关联于该流的第一源侧网络消息的响应分开且分离的绕过指令。这一第一实施例在其中例如可能不存在对源侧网络消息的响应的情况下是有用的。第二实施例将被称为“集成响应”实施例,其中目的地主机在对源侧网络消息的响应内提供绕过指令。
图4示出源主机上的源虚拟机与由目的地主机主存的目的地虚拟机在多消息流中传递“第一”交换的方法400的流程图。图4具体阐述了分开指令实施例。图5示出了与图4的方法相类似的方法的流程图,除了它阐述集成响应实施例之外。在本说明书和权利要求书中,术语“第一”、“第二”等不旨在暗示实际时间次序,而仅仅将一个项与另一个项区分开。例如,图4中所示的“第一”交换不必是源虚拟机与目的地虚拟机之间的实际第一交换,甚至不必是特定消息流中的实际第一交换。然而,图4和5A及5B的交换发生在图7的后续消息之前。
在图4和图5A及5B中,由源虚拟机(例如,源虚拟机312A)执行的那些操作在图4和5的左栏中的标题“源虚拟机”下方。由源主机或管理程序(例如,主机310或管理程序311)执行的那些动作在左侧第二栏中的标题“源主机”下方。由负载平衡器(例如,负载平衡器340)执行的那些动作在中间栏中的标题“负载平衡器”下方。由目的地主机或管理程序(例如,主机320或管理程序321)执行的那些动作在右侧第二栏中的标题“目的地主机”下方。由目的地虚拟机(例如,目的地虚拟机322A)执行的那些动作在右栏中标题“目的地虚拟机”下方。方法400和500将被并发地描述到“分开指令”和“集成响应”实施例分叉的地方。
方法400和500以源虚拟机生成源侧网络消息开始(动作401和501)。在本说明书和权利要求书中,“源侧”网络消息指的是由源虚拟机、管理程序或主机生成的网络消息,而“目的地侧”网络消息指的是由目的地虚拟机、管理程序或主机生成的网络消息。
目的地地址具有通过负载平衡器路由的目的地虚拟网络地址以及包括对源虚拟机进行寻址的可路由设备标识符的源地址。在本文描述的实施例中,虚拟网络地址和可路由设备标识符是网络级地址。然而,本文描述的原理也适用 于在协议栈的其他层(如应用层)处的地址。在下文进一步描述的实施例中,虚拟网络地址是虚拟因特网协议(IP)或(VIP)地址,且可路由设备标识符是设备IP(或DIP)地址。
图6A示出由源虚拟机在动作401和501中生成的源侧网络消息的示例数据结构。除了数据和TCP/IP头部之外,该网络消息包括负载平衡器的虚拟IP地址(VIPD)作为目的地地址,以及源虚拟机的可路由设备标识符(DIPS)作为源地址。
源主机(例如,源管理程序311)截取源侧网络消息(动作402和502)。源主机随后分派源侧网络消息(动作403和503),而不更改源或目的地地址。这可涉及一些配置以确保源地址不经历网络地址转换(NAT)并且因而保持不变。
源侧网络消息通过该网络被路由,并且因为目的地地址是由负载平衡器服务的虚拟网络地址,所以负载平衡器接收到该源侧网络消息(动作404和504)。例如,参考图3,负载平衡器340可以接收包括虚拟网络地址341作为目的地地址的网络消息。
负载平衡器随后选择与虚拟网络地址相关联的虚拟机群中的一个虚拟机作为目的地虚拟机(动作405和505)。例如,在图3中,虚拟机322B、322A和322C与虚拟网络地址341相关联。在该示例中,假定负载平衡器340选择虚拟机322A作为目的地虚拟机(并且因此主机320将是目的地主机)。
负载平衡器随后扩充源侧网络消息,以使其从负载平衡器到所选目的地虚拟机(动作406和506)。这一扩充可以通过例如用附加操作寻址头部来封装原始消息来完成。例如,图6B示出了与图6A相同的源侧网络消息,除了封装寻址层(它将用来路由该消息)包括包含寻址目的地虚拟机(例如,虚拟机322A)的可路由设备标识符(例如,DIPD)的目的地地址以及包含寻址负载平衡器(例如,MUX)的源地址。
负载平衡器随后将经扩充的源侧网络消息分派给所选目的地虚拟机(动作407和507)。例如,负载平衡器340可将图6B中所示的经扩充的源侧网络消息分派给目的地虚拟机322A。
目的地主机随后接收经扩充的源侧网络消息(动作408和508),并访问源侧网络消息的扩充前版本(动作409和509)。例如,在图6B的网络消息的上下文中,该消息可被解除封装以再次达到图6A的消息。
目的地主机随后确定源主机要将源自源虚拟机的且与同一多消息流相关联的后续网络消息以绕过负载平衡器的方式寻址到该目的地虚拟机(动作410和510)。例如,目的地管理程序321可能先前已被指令使得对经由负载平衡器到达的、来自任何源虚拟机的任何流发生重定向。
主机随后向源主机提供重定向指令。然而,如上所述,存在本文描述的用于提供这一指令的两个不同的实施例。在图4的实施例中,它描述了分开指令方法,该指令是在对源侧网络消息的任何响应的带外提供的。
在该分开指令方法中,源侧网络消息被传递给目的地虚拟机(动作411)。另外,指令消息从目的地主机分派给源主机(动作412),源主机接收该指令(动作413)。虽然指令消息被示为在源侧网络消息被传递(动作411)之后被分派(动作412)给目的地虚拟机,但这两个动作之间没有时间依赖性。目的地虚拟机接收源侧网络消息(动作414),并且如果要生成响应,则生成该响应(动作415),且将目的地侧网络消息(即,响应)分派给源虚拟机(动作416)。源虚拟机随后接收该响应(动作417)。
返回图5,并且在动作510,目的地主机确定该流要被重定向以绕过负载平衡器。目的地主机或管理程序随后修改源侧网络消息,使得目的地地址包括对源虚拟机进行寻址的可路由设备标识符(动作511)。例如,图6A示出了从接收自负载平衡器的经扩充的源侧网络消息提取的源侧网络消息。图6C示出了源侧网络消息,但在其中目的地地址从负载平衡器的虚拟网络地址(VIPD)改变为源虚拟机的可路由设备标识符(DIPD)。
参考图5B,源主机随后将经修改的源侧网络消息传递给目的地虚拟机(动作512),该目的地虚拟机接收经修改的源侧网络消息(动作513)。目的地虚拟机随后生成目的地侧网络消息(动作514),它此后将被简称为“响应”。图6D示出了对图6C的源侧网络消息的示例响应。源和目的地地址被反转,如任何响应中典型的那样。目的地地址包括对源虚拟机进行寻址的可路由设备标识符(DIPD),且源地址是对目的地虚拟机进行寻址的可路由设备标识符(DIPD)。
目的地主机访问(动作515)并修改该响应(动作516),使得源地址包括对负载平衡器进行寻址的虚拟网络地址。图6E示出了这样的经修改的响应。在这种情况下,虽然并非必需,但原始响应被由再次指定可路由设备标识符(DIPS)作为目的地地址的寻址头部进行封装,但负载平衡器的虚拟网络地址 (VIPD)作为源地址。目的地主机随后将经扩充的响应分派给源虚拟机(动作517)。
源主机接收经扩充的响应(动作518),并从该响应中提取原始响应(动作519)。例如,在图6E的经封装的响应的情况下,源主机可解除该响应的封装,以获得由图6D中表示的原始生成的响应。源主机随后修改原始响应,使得源地址包括负载平衡器的目的地虚拟网络地址(动作520)。源主机还注意到目的地虚拟机的可路由设备标识符(例如,DIPD),以供用于此后描述的与后续源侧网络消息相关联的修改。作为示例,图6F示出了经修改的响应。源主机随后分派该响应(动作521),该响应由源虚拟机接收(动作522)。
从源虚拟机的观点来看,源虚拟机向虚拟网络地址发出消息,并接收到来自该虚拟网络地址的响应。在后台,源主机已被配置成将该流的来自源主机的后续消息重定向,以绕过负载平衡器。
在一些实施例中,为了促进源主机不能对重定向后续流消息的指令作出响应的情况,目的地主机也可返回对原始源侧网络消息的不包括指令的正常响应。例如,图6F再次示出了这样的响应的示例。与图6A的原始源侧网络消息相比,这样的,源和目的地地址被反转。因而,作为响应,甚至不能够对图6E中表示的指令作出响应的源主机也将识别出图6F的响应。因而,本文描述的原理可被以受控的方式展开。
图7示出用于从源虚拟机到目的地虚拟机递送与同一流相关联的后续网络消息的方法700的流程图。可针每一后续网络消息来执行方法700。从源和目的地虚拟机的观点来看,重定向是不明显的。源虚拟机仅仅分派第二(或第三,等等)源侧网络消息(动作701),该第二(或第三,等等)源侧网络消息具有包括对负载平衡器进行寻址的目的地虚拟网络地址的目的地地址且具有包括对源虚拟机进行寻址的可路由设备标识符的源地址。例如,这样的后续网络消息可如图6A所示地被结构化,并且因而动作701可以分别与图4和5的动作401和501相同。
源主机随后截取后续源侧网络消息(动作702),并修改网络消息的目的地地址以使用对目的地虚拟机进行寻址的可路由设备标识符作为目的地地址。例如,图6G示出了其中存在附加寻址结构的封装的网络消息。在这种情况下,目的地地址保持目的地虚拟机的可路由设备标识符(DIPD),但源地址被修改成源虚拟机的可路由设备标识符(DIPS)。这一经修改的消息被分派(动作703), 且没有到达负载平衡器(因为虚拟网络地址VIPD没有在控制目的地地址字段中)。而是相反,该消息到达目的地主机(动作704)。目的地主机解除该消息的封装以提取源虚拟机发出的原始消息(动作705),并将该原始消息传递给目的地虚拟机(动作706)。负载平衡器没有参与这一递送。
本文描述的原理允许与一流相关联的大多数流消息被直接路由到目的地虚拟机,从而使得递送更加高效。此外,这是在允许由负载平衡器早期在该流中决定负载平衡的情况下完成的。因而,负载平衡一般仍然可被应用于该流。另外,如果负载平衡器出现故障,则该流可继续。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

负载平衡器绕过.pdf_第1页
第1页 / 共19页
负载平衡器绕过.pdf_第2页
第2页 / 共19页
负载平衡器绕过.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《负载平衡器绕过.pdf》由会员分享,可在线阅读,更多相关《负载平衡器绕过.pdf(19页珍藏版)》请在专利查询网上搜索。

绕过最初出现在来自由源中介服务的源机器和由目标中介服务的目标机器的多消息流中的负载平衡器。该流的一个或多个原始网络消息(以及可能只是第一网络消息)从源中介到达负载平衡器,负载平衡器选择哪一机器作为目的地机器,并且它进而选择由目的地中介服务的该目的地机器。响应于接收到这一消息,目的地中介指令源中介将该流中的后续消息以绕过负载平衡器的方式进行传送。为了促进这一点,源中介可以修改来自源机器的后续流消息的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1