分布式计算系统中的负载平衡技术方案

技术编号:22269188 阅读:87 留言:0更新日期:2019-10-10 18:09
本文中公开了用于促进分布式计算系统中的负载平衡的技术。在一个实施例中,一种方法包括在目的地服务器处经由计算机网络从负载平衡器接收请求分组,该请求分组请求始发服务器与由负载平衡器可选择的一个或多个其他服务器之间的远程直接存储器访问(“RDMA”)连接。该方法还可以包括在目的地服务器处配置用于基于接收到的应答分组来处理经由RDMA连接可传输给始发服务器的附加分组的规则。该规则被配置为利用外部报头封装可传输给始发服务器的传出分组,该外部报头具有包含发起服务器的网络地址的目的地字段和包含目的地服务器的另一网络地址的源字段。

Load Balancing in Distributed Computing System

【技术实现步骤摘要】
【国外来华专利技术】分布式计算系统中的负载平衡
技术介绍
计算中的负载平衡涉及跨多个计算机、计算集群、网络链路、中央处理单元、磁盘驱动器或其他计算资源的工作负载的分布。实现负载平衡可以提高资源利用率,增加吞吐量,缩短响应时间,并且避免计算系统中的任何单个计算资源过载。使用具有负载平衡的多个组件而不是单个组件还可以经由冗余提高可靠性和可用性。
技术实现思路
提供本“
技术实现思路
”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“
技术实现思路
”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。远程直接存储器访问(“RDMA”)是一种允许计算机经由计算机网络直接访问远程计算机的存储器位置而不涉及任何一个的操作系统的技术。RDMA连接可以允许计算机之间的超低延迟(例如,小于约25μs)通信。RDMA还可以在单个连接上具有低处理器利用率和高带宽。RDMA可以按照各种方式而被实现。在一个示例中,RDMA可以使用硬件连接适配器(“HCA”)来实现,以使用队列对来处理RDMA业务。然而,除了以太网或处理现有计算机网络中的TCP/IP业务所需要的其他类型的适配器之外,这种实现还涉及安装HCA。已经开发了RDMA-over-Converged-Ethernet(“ROCE”)协议以在IP网络中传输RDMA业务。为了正确操作,合适的负载平衡器通常具有高可扩展性、高可用性、低处理延迟和低资本成本。例如,负载平衡器的容量可能需要向上或向下扩展,以便处理传入业务变化。还需要提供负载平衡器以降低连接中断和数据分组丢失的风险。在某些计算系统中,可以使用横向扩展设计(scale-outdesign)的服务器和交换机的组合来实现负载平衡器。在操作期间,当源(例如,服务器或虚拟机)开始连接时,计算机网络中的路由器或交换机可以将分组转发给负载平衡器。然后,负载平衡器随机选择端点(例如,虚拟机),使用虚拟机的IP地址封装分组,并且将封装的分组转发给托管虚拟机的服务器。在服务器处,主机代理(例如,管理程序)接收分组,解封装分组,执行网络地址转换,并且将分组转发给虚拟机。用于使用负载平衡器处理分组的前述技术可能不适合于处理RDMA业务。在一个方面,前述技术涉及高延迟和处理器使用,因为主机代理用软件处理所有分组。在另一方面,负载平衡器处的分组处理还可能使延迟膨胀或导致分组丢失和/或拥塞,因为当负载平衡器不能以适当的速率处理分组以跟上到达的分组时,可能在负载平衡器处建立队列。另外,用于连接的RDMA语义(例如,队列对)与TCP/IP语义(例如,5元组)明显不同。这样,将RDMA分组解析和转换成TCP/IP分组可能进一步加剧上述缺点。所公开的技术的若干实施例涉及RDMA负载平衡技术,该技术可以解决在使用负载平衡器处理RDMA业务时的至少一些前述挑战。根据某些方面,在一个实施例中,负载平衡器可以通告和接收去往某些或所有虚拟IP地址(“VIP”)的RDMA连接请求。负载平衡器可以使用多个商用服务器以横向扩展设计实现。然后,负载平衡器可以在分配给各个VIP的多个目的地服务器之间分配RDMA连接请求。这样,与对VIP的RDMA连接请求相关联的业务可以被发送到由负载平衡器选择的目的地服务器。在某些实施例中,路由器和交换机还可以在多个负载平衡器之间分割发送给VIP的连接。当具有始发者IP(“OIP”)的始发节点发起RDMA连接请求时,始发节点可以经由计算机网络传输去往VIP的连接请求分组。始发节点可以是例如服务器、操作系统、虚拟机或在服务器上执行的应用。在接收到连接请求分组时,与VIP相关联的负载平衡器可以被配置为确定具有被分配用于处理连接请求的直接IP地址(“DIP”)的目的地服务器。可以通过查询分发图来选择DIP,例如,基于具有源IP地址、源端口或其他合适的UDP、TCP/IP或连接请求分组的其他合适类型的特性的IP5元组。然后,负载平衡器可以使用DIP封装连接请求分组,并且经由计算机网络将封装的分组转发给目的地服务器。在转发封装的分组之后,负载平衡器可以在建立、保持或拆除所请求的RDMA连接时不执行其他操作。这样,在前述实现中,负载平衡器仅处理用于始发节点与目的地服务器之间的RDMA连接的第一分组。在某些实现中,计算系统中的服务器可以包含分组处理程序,该分组处理程序具有由在服务器上执行的主机(例如,操作系统、管理程序、虚拟机或应用)可配置的硬件电路。示例分组处理程序可以包括现场可编程门阵列(“FPGA”)、专用集成电路(“ASIC”)、网络协处理器、硬件加速器或其他合适的硬件组件。在某些实施例中,分组处理程序可以并入服务器中的网络接口卡(“NIC”)中。在其他实施例中,分组处理程序可以是独立组件或者并入包含主处理器、协处理器或其他合适组件的芯片组中。在其他实现中,分组处理程序可以实现为软件组件、混合硬件/软件组件,或者可以具有其他合适的配置。在接收到连接请求分组时,目的地服务器的分组处理程序可以将分组转发给服务器的主机代理(例如,管理程序)。然后,主机代理可以解封装接收到的分组,并且可选地执行其他合适的分组修改。使用接收到的连接请求分组,主机代理可以生成和配置具有一个或多个分组处理规则的分组处理程序,以便加速后续分组的处理。例如,第一规则可以被配置为从源解封装传入数据分组,并且然后当传入分组具有包含OIP作为源和连接请求分组的UDP源端口的报头时,将传入分组的源地址从VIP改变为DIP。第二规则可以被配置为当传出分组具有包含OIP作为目的地和连接请求分组的UDP源端口的报头时,在使用具有DIP作为源地址的外部报头封装传出分组之前,将源地址从DIP改变为传出分组的VIP。第三规则可以被配置为对接收/传输的分组执行循环冗余校验(“CRC”),以及在根据规则处理分组之后更新与分组相关联的相应CRC值。主机代理还可以将经处理的连接请求分组转发给目的地服务器的NIC以根据RDMA协议生成连接应答分组。在这种情况下,由于连接请求分组中的目的地地址是目的地服务器的目的地地址而不是VIP,因此NIC生成的应答分组包含设置给DIP的源地址。在生成之后,NIC将连接应答分组转发给主机代理(例如,管理程序),主机代理可以将源IP地址从DIP改变为VIP,更改RDMA报头中的IP地址,并且向分组处理程序发送更改后的连接应答分组,分组处理程序使用设置为OIP的目的地地址封装连接应答分组。随后,分组处理程序可以经由计算机网络将经处理的连接应答分组直接传输给始发节点,从而绕过负载平衡器。在从目的地服务器接收到连接应答分组之后,与始发节点相关联的分组处理程序可以将接收到的连接应答分组转发给主机代理以进行处理。然后,主机代理可以从接收到的连接应答分组移除外部报头,并且对连接应答分组执行其他合适的修改。然后,主机代理可以为始发节点的分组处理程序生成和配置用于与目的地服务器建立RDMA连接的一个或多个规则。例如,第一规则可以被配置为当包含目的地地址的传入报头的报头包含在连接应答分组中指定的OIP和UDP源端口时,解封装传入分组。第二规则可以被配置为当内部报头包含OIP作为源地址和UDP连接应答分组中指定的UDP源端口时,使用具有DIP作为目的地地址本文档来自技高网...

【技术保护点】
1.一种促进具有由计算机网络互连的多个服务器的分布式计算系统中的负载平衡的方法,所述方法包括:经由所述计算机网络从第一服务器向负载平衡器传输请求分组,所述请求分组请求与由所述负载平衡器可选择的一个或多个其他服务器的远程直接存储器访问(“RDMA”)连接;响应于所述请求分组,从第二服务器接收应答分组,所述第二服务器在所述计算机网络中具有网络地址;在所述第一服务器处配置用于基于接收到的所述应答分组来处理经由所述RDMA连接可传输的附加分组的规则,所述规则被配置为利用具有包含所述第二服务器的所述网络地址的目的地字段的外部报头来封装经由所述RDMA连接可传输的传出分组;在所述第一服务器处响应于接收到的所述应答分组生成确认分组,所述确认分组指示与所述第二服务器的所述RDMA连接准备好使用;以及在经由所述计算机网络向所述第二服务器传输经处理的所述确认分组之前,根据配置的所述规则处理生成的所述确认分组。

【技术特征摘要】
【国外来华专利技术】2017.02.21 US 15/438,5851.一种促进具有由计算机网络互连的多个服务器的分布式计算系统中的负载平衡的方法,所述方法包括:经由所述计算机网络从第一服务器向负载平衡器传输请求分组,所述请求分组请求与由所述负载平衡器可选择的一个或多个其他服务器的远程直接存储器访问(“RDMA”)连接;响应于所述请求分组,从第二服务器接收应答分组,所述第二服务器在所述计算机网络中具有网络地址;在所述第一服务器处配置用于基于接收到的所述应答分组来处理经由所述RDMA连接可传输的附加分组的规则,所述规则被配置为利用具有包含所述第二服务器的所述网络地址的目的地字段的外部报头来封装经由所述RDMA连接可传输的传出分组;在所述第一服务器处响应于接收到的所述应答分组生成确认分组,所述确认分组指示与所述第二服务器的所述RDMA连接准备好使用;以及在经由所述计算机网络向所述第二服务器传输经处理的所述确认分组之前,根据配置的所述规则处理生成的所述确认分组。2.根据权利要求1所述的方法,其中从所述第二服务器接收所述应答分组包括直接从所述第二服务器接收所述应答分组而不通过所述负载平衡器。3.根据权利要求1所述的方法,其中当所述传出分组的报头具有包含所述第一服务器的另一网络地址的源字段和包含在所述第一服务器处被分配给请求的所述RDMA连接的第一端口的端口字段时,配置的所述规则命令利用具有包含所述第二服务器的所述网络地址的目的地字段的外部报头对经由所述RDMA连接可传输的传出分组的封装。4.根据权利要求1所述的方法,其中:传输的所述请求分组具有带有包含虚拟网络地址的目的地字段的报头,所述虚拟网络地址对应于所述负载平衡器;并且从所述第二服务器接收所述应答分组包括接收具有带有包含所述第二服务器的所述网络地址的源字段和包含所述第一服务器的另一网络地址的目的地字段的报头的所述应答分组。5.根据权利要求1所述的方法,其中:传输的所述请求分组具有带有包含虚拟网络地址的目的地字段的报头,所述虚拟网络地址对应于所述负载平衡器;并且从所述第二服务器接收所述应答分组包括接收具有以下各项的所述应答分组:外部报头,...

【专利技术属性】
技术研发人员:R·甘迪希S·雷恩德尔D·菲利斯通J·帕迪耶袁利华
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1