CN109644204A - 用于基于云的网络电器的负载均衡系统和方法 - Google Patents

用于基于云的网络电器的负载均衡系统和方法 Download PDF

Info

Publication number
CN109644204A
CN109644204A CN201780050313.XA CN201780050313A CN109644204A CN 109644204 A CN109644204 A CN 109644204A CN 201780050313 A CN201780050313 A CN 201780050313A CN 109644204 A CN109644204 A CN 109644204A
Authority
CN
China
Prior art keywords
network
grouping
appliance
load balancing
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201780050313.XA
Other languages
English (en)
Inventor
S·亚加瓦尔
M·库玛
N·安纳玛莱
D·班萨尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109644204A publication Critical patent/CN109644204A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供了一种负载均衡系统,其包括:在基于云的网络中被实现并且包括处理器的一个或多个虚拟机;以及在虚拟机中被实现并且由处理器执行的负载均衡应用。负载均衡应用被配置为使得处理器:接收指示在基于云的网络的电器层中被实现的网络电器的健康状况的一个或多个健康消息;从网络设备接收针对应用服务器的转发分组;基于健康消息,确定是执行故障转移过程还是选择网络电器;执行对称转换的第一次迭代以经由选择的网络电器将转发分组路由给应用服务器;基于转发分组从应用服务器接收返回分组;以及执行对称转换的第二次迭代以将返回分组路由给网络设备。

Description

用于基于云的网络电器的负载均衡系统和方法
技术领域
本公开涉及基于云的网络电器(appliance),并且更具体地涉及基于云的电器的可用性和负载均衡。
背景技术
本文中提供的背景描述是为了总体上呈现本公开的上下文。在本背景技术部分中描述的工作的范围内以及在提交时可能不具备其他资格作为现有技术的描述的方面,当前具名的发明人的工作既不明示也不暗示地被承认是本公开的现有技术。
基于云的网络(本文中称为“云”)可以包括网络电器和应用服务器。网络电器的示例是防火墙、代理服务器、万维网(或Web)服务器、广域网(WAN)加速器、入侵检测系统(IDS)设备和入侵防御系统(IPS)设备。网络电器在应用服务器与云外部的客户端站之间提供中间服务。应用服务器终止与用户站的连接并且托管特定订户应用。网络电器和应用服务器可以被实现为一个或多个虚拟机(VM)。基于云的网络允许计算机处理和存储需求从传统的私有网络移动到公共共享网络,同时满足数据安全访问要求。
发明内容
提供了一种负载均衡系统,其包括:在基于云的网络中被实现并且包括处理器的一个或多个虚拟机;以及在一个或多个虚拟机中被实现并且由处理器执行的负载均衡应用。负载均衡应用被配置为使得处理器:接收指示多个网络电器的健康状况的一个或多个健康消息,其中网络电器在基于云的网络的电器层中被实现;从网络设备接收针对应用服务器的转发分组;并且基于一个或多个健康消息,确定是执行故障转移过程中的至少一个故障转移过程还是选择网络电器。负载均衡应用还被配置为使得处理器:执行对称转换的第一次迭代以经由选择的网络电器将转发分组路由给应用服务器;基于转发分组从应用服务器接收返回分组;并且执行对称转换的第二次迭代以经由网络电器将返回分组路由给网络设备。在故障转移过程期间,负载均衡应用被配置为使得处理器将通过网络电器的第一实例在网络设备与应用服务器之间的业务的路由切换到通过网络电器的第二实例在网络设备与应用服务器之间路由业务。
在其他特征中,提供了一种负载均衡系统,其包括:在基于公共云的网络中被实现并且包括第一处理器和第二处理器的一个或多个虚拟机;探测应用,其在一个或多个虚拟机中被实现并且被配置为使得第一处理器(i)向网络电器传输探测请求消息,(ii)基于探测请求消息,从网络电器接收响应消息,以及(iii)基于响应消息,生成指示网络电器的健康状况的健康报告消息,其中网络电器在基于公共云的网络的电器层中被实现;以及在一个或多个虚拟机中被实现的第一负载均衡应用。第一负载均衡应用被配置为使得第二处理器:从网络设备接收针对第一应用服务器的转发分组;基于健康报告,确定是执行故障转移过程中的至少一个还是选择网络电器的第一网络电器;并且执行对称转换的第一次迭代以经由选择的第一网络电器将转发分组路由给第一应用服务器;基于转发分组从第一应用服务器接收返回分组;并且执行对称转换的第二次迭代以经由第一网络电器将返回分组路由给网络设备。在故障转移过程期间,第一负载均衡应用经由第二处理器将通过第一网络电器的第一实例在网络设备与第一应用服务器之间的业务的路由切换到通过第一网络电器的第二实例在网络设备与第一应用服务器之间路由业务。
在其他特征中,提供了一种用于操作在基于云的网络的一个或多个虚拟机中被实现的负载均衡系统的负载均衡方法。一个或多个虚拟机包括第一处理器和第二处理器。该方法包括:在第一处理器上执行探测应用以向网络电器传输探测请求消息,其中探测应用在一个或多个虚拟机中被实现;基于探测请求消息,在第一处理器处从网络电器接收响应消息;并且基于响应消息并且经由第一处理器,生成指示网络电器的健康状况的健康报告消息,其中网络电器在基于云的网络的电器层中被实现。该方法还包括:在第二处理器处从网络设备接收针对第一应用服务器的转发分组;执行第一负载均衡应用并且基于健康报告,经由第二处理器确定是执行故障转移过程中的至少一个还是选择网络电器中的第一网络电器。第一负载均衡应用在一个或多个虚拟机中被实现。该方法还包括:经由第二处理器执行对称转换的第一次迭代以经由选择的第一网络电器将转发分组路由给第一应用服务器;在第二处理器处基于转发分组从第一应用服务器接收返回分组;经由第二处理器执行对称转换的第二次迭代以经由第一网络电器将返回分组路由给网络设备;并且在执行故障转移过程的同时并且经由第二处理器,将通过第一网络电器的第一实例在网络设备与第一应用服务器之间的业务的路由切换到通过第一网络电器的第二实例在网络设备与第一应用服务器之间路由业务。
根据具体实施方式、权利要求和附图,本公开的其他应用领域将变得很清楚。详细描述和具体示例仅用于说明的目的,并不旨在限制本公开的范围。
附图说明
图1是根据本公开的实施例的包括负载均衡系统的基于云的网络的示例的功能框图。
图2是根据本公开的实施例的客户端站的示例的功能框图。
图3是根据本公开的实施例的包含应用的服务器的示例的功能框图。
图4是根据本公开的实施例的示例服务器存储器的功能框图。
图5示出了根据本公开的实施例的公共云服务方法的示例概述。
图6示出了根据本公开的实施例的示例服务设置方法。
图7示出了根据本公开的实施例的示例健康监测方法。
图8A至图8B示出了根据本公开的实施例的示例负载均衡方法。
在附图中,可以重复使用附图标记来标识相似和/或相同的元素。
具体实施方式
云可以包括网络电器,网络电器包括一个或多个负载均衡器。负载均衡器均衡从客户端站到网络电器的业务流。在应用服务器处接收之前,将分组从客户端站路由给网络电器以进行中间处理。大量客户端站可以在同一时段访问网络电器。至少出于这个原因,需要网络电器的高可用性。高可用性包括在同一时段期间为用户站提供对网络电器的访问,同时通过网络电器以高数据速率提供高水平的数据吞吐量。
传统上,已经利用第2层(L2)协议和定制网络设置来确保网络电器的高可用性。作为第一L2示例,云可以包括网络电器,诸如彼此通信并且共享媒体访问控制(MAC)地址的两个负载均衡器。两个设备之间的MAC地址的共享被称为“MAC地址伪装”。负载均衡器彼此传输状态信号,称为“心跳信号”。心跳信号指示负载均衡器的健康状况。当负载均衡器能够可靠地传输和接收分组时,负载均衡器是健康的。在操作中,两个负载均衡器中健康的一个将向例如云中的路由器传输网络协议信号。然后,路由器将分组从用户站路由给健康的负载均衡器。网络协议信号的示例包括免费地址解析协议(ARP)信号和用于因特网控制消息协议(ICMP)或ECMP的以太网帧。MAC地址伪装和IP地址宣布可以由任何网络电器(诸如防火墙或负载均衡器)执行以实现高可用性。
作为另一L2示例,两个负载均衡器可以共享相同的因特网协议(IP)地址。负载均衡器是健康的,或者如果两个负载均衡器都是健康的,则负载均衡器中的主负载均衡器传输指示相应负载均衡器的健康状况的路由协议信号。路由协议的示例是最佳选择性解码方案(OSDS)协议。然后将业务路由给已经宣布为健康的负载均衡器。
在某些应用中,诸如在公共云应用(例如,云计算平台 )中,L2协议和定制网络设置不可用,难以实现和/或不可扩展。例如,由于无法宣布健康网络电器的MAC地址,无法更改网络电器的IP地址以及负载均衡的虚拟化,因此,难以在公共云环境中实现MAC地址伪装。结果,网络电器的可用性可能受到限制。此外,网络电器通常在相应的VM中被实现。VM可能会失败,这可能会进一步降低网络电器的可用性。单个VM也在功能上受限,使得VM可能无法提供一个或多个网络电器的当前负载所需要的足够吞吐量。
以下阐述的示例包括提供公共云中的网络电器的高可用性的负载均衡系统和方法。负载均衡系统执行网络电器的远程健康监测、到网络电器的分组的负载均衡以及网络电器的故障转移处理。负载均衡确保反向流量业务通过与相应前向业务相同的网络电器返回。前向业务(或前向分组)是指从用户(或客户端)站传输到应用服务器的分组。反向业务(或返回分组)是指基于前向分组从应用服务器传输到用户站的分组。
图1示出了在公共云中被实现并且由客户端站12访问的负载均衡系统12。公共云是指包括由包括客户端站12在内的客户端站共享的资源的基于云的网络。服务提供商提供资源,诸如具有相应可执行代码的软件应用、服务器处理时间、以及通过因特网经由基于云的网络可用于公众的存储器。客户端站可以由不同的个人和/或实体私有。客户端站的示例包括个人计算机、平板计算机、移动设备、蜂窝电话、可穿戴设备和/或工作站。
公共云包括在一个或多个服务器16A-16D、16E1-m和16F1-p(统称为服务器16)上实现的一个或多个虚拟机(VM)14A-D、14E11-mn和14F1-p(统称为VM14),其中m、n和p是大于或等于1的整数。每个服务器16包括和/或可以访问存储器。尽管示出了单个客户端站,但是可以包括任何数目的客户端站并且任何数目的客户端站可以访问公共云,如本文关于客户端站12所描述的。此外,可以包括网络(例如,因特网)的分布式通信系统20可以连接在客户端站与公共云之间。
负载均衡系统10在公共云中被实现,并且包括控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40。尽管控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和应用应用40被示出为在相应的VM和服务器中被实现,但是控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38、服务器应用40可以共同地在一个或多个VM中和/或在一个或多个服务器中被实现。在一个实施例中,控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的实例以任何组合进行分组,其中每个组合在相应的VM和一个或多个服务器中被实现。“实例”是指同一项目的副本和/或另一实现。例如,探测应用32可以在公共云中多次实现,其中每个实现被称为探测应用的实例。通过提供多个实例,相同的服务可以由不同的VM和/或不同的服务器实现。在另一实施例中,控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的实例以任何组合进行分组,其中每个组合在相应的服务器中被实现。其他示例实现在图3至图4中示出。
此外,尽管图1中示出了控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40中的每个的一定数目的实例,但是控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40中的每个的任何数目的实例可以被包括在公共云中并且与客户端站12和/或任何数目的其他客户端站相关联。
在以下描述中,由控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40执行的任务由与控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40相关联的处理器执行,和/或由执行控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的处理器执行。控制器30可以被实现为应用和/或模块,并且与客户端站12、探测应用32和负载均衡应用34通信并且用于针对客户端站12和/或客户端站12的用户建立帐户。控制器30控制客户端站12的所请求的服务的设置。服务由探测应用32、负载均衡应用34、网络电器38和服务器应用40执行。
探测应用32监测和跟踪网络电器38的健康状况,并且向负载均衡应用34报告健康状况。健康状况指示网络电器38是否可操作以可靠地接收、处理和/或传输分组。在一个实施例中,可靠操作是指在不超过预定数目的错误的情况下接收、处理和传输分组。探测应用32可以传输探测请求,并且网络电器可以用指示健康状况的探测响应进行响应,如下面关于图7A、图7B的方法进一步描述的。探测应用32和网络电器均可以以待机设置模式和活动设置模式操作。在备用设置模式期间,只有网络电器的主网络电器实例响应于探测请求。在活动设置模式期间,能够响应于探测请求的网络电器实例进行响应。不健康的网络电器可能以不健康的状态信号、故障信号进行响应,或者可能在活动设置模式期间不响应于探测请求。网络电器的任何数目的网络电器实例可以是活动的,并且在该时段期间以活动设置模式操作。
负载均衡应用34基于健康状况执行负载均衡,执行对称转换,并且控制通过网络电器的前向业务和反向业务的路由。对称转换包括通过向所接收的分组添加报头,基于所接收的分组的一个或多个字段将所接收的分组转换为结果分组。添加的报头可以是服务链报头(SCH)。添加的报头包括一个或多个网络电器的一个或多个IP地址。IP地址的数目取决于网络电器的配置以及所接收的分组将穿过的网络电器的数目。作为示例,添加的报头可以包括所接收的分组在服务器应用40之一处被接收之前将穿过的每个网络电器的IP地址。
负载均衡应用34对前向业务的转发分组执行对称转换并且返回反向业务的分组以确保返回分组通过与转发分组相同的网络电器发送。如果反向流量业务没有穿过与相应的前向业务相同的网络电器,则网络电器可能错误地指示网络电器不健康和/或不可靠。负载均衡应用34通过将反向流量业务路由通过相同的网络电器来防止发生该错误指示和/或其他相关的潜在问题。当两个或更多个网络电器实例处于活动状态并且传输分组时,通过相同网络电器的反向流量变得很重要。
由负载均衡应用34执行的负载均衡可以被称为内部负载均衡,其提供内部负载均衡虚拟IP(VIP)地址。VIP地址(以下称为网络电器实例的IP地址)不是公共可访问的IP地址,并且由负载均衡应用34创建和使用以将分组路由给网络电器38。
路由器36基于分组的添加报头中的IP地址将分组从负载均衡应用34路由给网络电器38。路由器36还将经由负载均衡应用34从服务器应用40接收的返回分组路由给客户端站12。
网络电器38是在公共云的电器服务层中被实现的中间服务模块和/或应用,并且执行可以由客户端站12请求的中间服务。网络电器38可以被实现为和/或包括软件和/或硬件。网络电器38的示例是负载均衡器、防火墙、代理服务器、万维网(或Web)服务器、广域网(WAN)加速器、IDS设备和IPS设备。一种或多种类型的网络电器38可以由用户(或订户)请求并且与客户端站12相关联。当针对客户端站设置帐户时,控制器30可以关联所请求的每种类型的网络电器的多个实例。作为示例,网络电器38以行和列示出,其中每行可以包括相同类型的网络电器的实例和/或相同网络电器的实现。例如,如果客户端站请求应用负载均衡服务和防火墙服务,则网络电器11-1n可以是负载均衡器的实例,并且网络电器21-2n可以是防火墙模块的实例,其中n是大于或等于2的整数。防火墙模块实例可以包括和/或被实现为防火墙。多个客户端站可以共享任何一个或多个网络电器38中的相同实例。
服务器应用40包括特定订户应用。服务器应用40在公共云的应用服务层中被实现,并且在终止与客户端站的一个或多个连接的设备、VM和/或服务器中被实现。连接的终止是指被实现为终端设备并且执行客户端站的结束过程的设备、VM和/或服务器。没有附加的处理和/或订户应用位于服务器应用40的下游。服务器应用40处理经由网络电器38从客户端站12接收的转发分组并且生成被发送回客户端站12的返回分组。服务器应用40在其中被实现的服务器可以称为应用服务器。
在图2中,示出了客户端站100的简化示例。图1的客户端站12可以被实现为客户端站100。客户端站100包括中央处理单元(CPU)或处理器104和诸如小键盘、触摸板、鼠标等输入设备108。客户端站100还包括存储器112,诸如易失性或非易失性存储器、高速缓存或其他类型的存储器。客户端设备还包括大容量存储设备120,诸如闪存、硬盘驱动器(HDD)或其他大容量存储设备。
客户端站100的处理器104执行操作系统114和一个或多个客户端应用118。客户端站100还包括在分布式通信系统和/或网络20上建立通信信道的有线接口(诸如以太网接口)和/或无线接口(诸如Wi-Fi、Bluetooth、近场通信(NFC)或其他无线接口(在120处共同标识))。分布式系统和/或网络可以包括因特网。客户端站100还包括显示子系统124,显示子系统124包括显示器126。
在图3中,示出了服务器150的简化示例。图1的任何服务器16可以被实现为服务器150并且包括相应的VM和应用。服务器150包括一个或多个CPU或处理器(图3中示出了一个处理器152)和诸如小键盘、触摸板、鼠标等输入设备154。服务器150还包括存储器156,诸如易失性或非易失性存储器、高速缓存或其他类型的存储器。
处理器152执行服务器操作系统158以及一个或多个服务器应用160和VM应用。服务器应用的示例是在虚拟化层中被实现并且与服务器操作系统(OS)158一起执行的虚拟服务器服务应用162。虚拟服务器服务应用162创建VM(或访客)OS(例如,VM1OS和VM2OS)在其中运行的虚拟环境。示例VM应用App 1A、App 1B、App 3、App 4被示出为在VM 168、170的VM存储器164、166中被实现。VM应用可以包括图1的探测应用32、负载均衡应用34、服务器应用40和/或控制器30和网络电器38的应用的实例。VM应用App1A和App 1B是同一VM应用的实例。其他示例实现在图4中示出。服务器150还包括在分布式通信系统20上建立通信信道的有线或无线接口172。服务器150还包括显示子系统173,显示子系统173包括显示器174。服务器150还包括大容量存储设备175,诸如闪存、硬盘驱动器(HDD)或其他本地或远程存储设备。
图4示出了示例服务器存储器176、177。图1的服务器16和/或图3的服务器150中的每个存储器可以被实现为存储器176、177之一。在图4所示的示例中,第一服务器存储器176包括第一服务器OS178、一个或多个第一服务器应用179和VM 1801-N,其中N是大于或等于2的整数。服务器应用179可以包括虚拟服务器服务应用181。VM 1801包括第一VM存储器187,第一VM存储器187存储第一VM OS(VM1OS)、第一网络电器的第一实例和第二实例、第二网络电器的第一实例、以及第三网络电器的第一实例。VM 1802包括第二VM存储器188,第二VM存储器188存储第二VM OS(VM2OS)、第一网络电器的第三实例、第二网络电器的第二实例和第三实例、以及第四网络电器的第一实例。尽管每个VM 1801-N被示出为具有某些网络电器中的每个的特定数目的实例,但是每个VM 1801-N可以具有每个网络电器的任何数目的实例。
在图4所示的示例中,第二服务器存储器178包括第二服务器OS182、一个或多个第一服务器应用183和VM 184、185。服务器应用183可以包括虚拟服务器服务应用186。VM 184包括第一VM存储器189,第一VM存储器189存储第一VM OS(VM1OS)、第二网络电器的第三实例和第三网络电器的第二实例。VM 185包括第二VM存储器190,第二VM存储器190存储第二VM OS(VM2OS)、第四网络电器的第二实例、以及第五网络电器的第一实例、第二实例和第三实例。
VM 1801-N和184、185的任何实例以及服务器存储器176、177的任何其他实例可以被实现为图1的客户端站12、控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的实例。图1的客户端站12、控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的一个或多个实例可以被实现为服务器应用的实例,并且可以不被实现为VM的一部分。
与服务器存储器176、178相关联的服务器的处理器可以彼此通信,和/或经由相应接口在彼此之间传输数据。处理器和接口的示例由图3的处理器152和接口172示出。
图1的客户端站12、控制器30、探测应用32、负载均衡应用34、路由器36、网络电器38和服务器应用40的操作在下面参考图5至图8B的方法进一步描述。对于图1至图4的应用的设备、模块、电器、虚拟机和/或服务器的进一步定义的结构,参见下面提供的图5至图8B的方法以及下面提供的术语“控制器”、“处理器”和“模块”的定义。本文中公开的系统可以使用多种方法来操作。图4中示出了示例公共云服务方法的概述。图5的任务可以由一个或多个服务器、一个或多个处理器和/或一个或多个虚拟机执行。图5的某些任务可以被实现为下面将进一步描述的相应方法。例如:任务202可以包括图6的方法;任务204可以包括图7的方法;任务206可以包括图8A中描述的任务;并且任务214可以包括图8B中描述的任务。尽管图5至图8的以下方法被示出为单独的方法,但是一个或多个方法和/或来自单独的方法的任务可以组合并且作为单个方法来执行。
尽管以下任务主要关于图1至图4的实现来描述,但是可以容易地修改任务以应用于本公开的其他实现。任务可以迭代地执行。
该方法可以在200处开始。在202处,针对客户端站12设置服务,诸如探测服务、用于网络电器(例如,一些网络电器38)的负载均衡服务、网络电器服务、虚拟机服务、服务器应用服务等。控制器30被配置为引起执行控制器30的处理器设置服务。客户端站12从服务提供商请求某些服务,并且服务提供商经由公共云和控制器30设置所请求的服务和/或其他相应服务。服务的设置包括将网络电器的选择的和/或预定数目的选择的类型的实例与客户端站12相关联。服务的设置在下面参考图6的方法进一步描述。
在204处,如果在202处针对客户端站启用了健康监测服务,则探测应用32被配置为引起执行探测应用32的处理器监测相关联的网络电器的健康状况并且将健康状况报告给负载平衡应用34。除此之外或作为替代,相关联的网络电器可以分别确定健康状况并且将健康状况报告给负载均衡应用34。可以在204处执行的健康监测方法在下面关于图7进行描述。
在206处,执行转发过程。转发过程包括(i)从客户端站12接收并且向服务器应用40之一转发分组,(ii)网络电器的负载均衡实例,以及(iii)针对实例之一执行故障转移过程。网络电器的负载均衡包括确定要向哪些网络电器发送转发分组。如上所述,每个转发分组包括第一报头。如上所述,负载均衡可以包括将第二报头封装和/或添加到每个转发分组。故障转移过程包括确定是否要改变转发分组的业务流并且将分组从网络电器的当前使用的实例返回到当前使用的网络电器的另一实例。这是基于当前使用的实例的健康状况中的变化。如果当前使用的实例的健康状况降级到不再允许提供服务的级别,则负载均衡应用34被配置为引起相应处理器改变实例。转发过程在下面结合图8A所示的负载均衡方法的步骤300-310进一步描述。
尽管以下任务主要关于单个转发分组和单个返回分组的处理来描述,但是多个转发和返回分组可以由健康的相关联的网络电器的所分配的实例来处理和操纵。转发和返回分组可以串行或并行处理。在208处,接收转发分组的网络电器之一的健康实例执行相应的网络电器服务。在执行任务210之前,健康实例可以移除在任务206期间提供的第二报头和封装。
在210处,从网络电器的健康实例向服务器应用40之一发送转发分组以执行服务器应用服务。这可以基于健康实例的第一报头中的目的地IP地址和/或目的地IP端口号。
在212处,接收转发分组的服务器应用被配置为引起服务器应用的处理器执行服务器应用服务,包括生成与转发分组相关联的返回分组。
在214处,执行反向过程。反向过程包括(i)生成反向分组并且将其从接收转发分组的服务器应用路由给客户端站12,(ii)网络电器的负载均衡实例,以及(iii)针对实例之一执行故障转移过程。网络电器的负载均衡包括确定要向哪些网络电器发送返回分组。如上所述,每个返回分组包括第一报头。如上所述,负载均衡可以包括将第二报头封装和/或添加到每个返回分组。在一个实施例中,第二报头是SCH。故障转移过程包括确定是否要改变转发分组的业务流并且将分组从网络电器的当前使用的实例返回到当前正在使用的网络电器的另一实例。这是基于当前使用的实例的健康状况中的变化。如果当前使用的实例的健康状况降级到不再允许提供服务的级别,则负载均衡应用34被配置为引起负载均衡应用34的处理器改变实例。相反过程在下面参考图8B所示的负载均衡方法的步骤312-326进一步描述。该方法可以在216处结束。
图6示出了由控制器30执行的示例服务设置方法。尽管以下任务主要关于图1至图5的实现来描述,但是可以容易地修改任务以应用于本公开的其他实现。任务可以迭代地执行。
该方法可以在230处开始。在232处,公共云中的控制器30的处理器从客户端站12接收请求服务的建立的服务请求消息。客户端站12访问公共云并且向控制器30发送服务请求消息。服务请求消息指示用户请求的服务。服务可以包括网络电器的探测(或健康监测)服务、网络电器的负载均衡服务、服务器应用的负载均衡服务、一个或多个网络电器的故障转移服务、和/或与不同类型的网络电器相关联的其他服务。其他服务可以包括公共云中的并且与客户端站12相关联的一个或多个设备、电器、模块、虚拟机和/或服务器的故障转移服务。其他服务还可以包括防火墙服务、代理服务器服务、万维网(或Web)服务器服务、WAN加速器服务、IDS设备服务和/或IPS设备服务。与客户端站12相关联的客户可以将与工作负载相关联的处理移动到公共云并且请求某些能力。这些能力包括选择的服务。
在234处,控制器30针对客户端站12设置服务。如果探测服务和网络电器的负载均衡服务被选择,则控制器30通知与探测应用32和负载均衡应用34相对应的一个或多个处理器以执行客户端站12的相应服务。这可以包括向探测应用32和负载均衡应用34的一个或多个处理器通知公共云中的每个网络电器和/或模块的选择的和/或预定数目的实例以向客户端站12提供服务。实例的数目可以经由以下各项来指示:(i)从控制器30向探测应用32传输的第一设置信号,如任务236所表示的,以及(ii)从控制器30向负载均衡应用34传输的第二设置信号,如任务238所表示的。实例的数目可以由客户端站12选择并且在服务请求信号中指示。在一个实施例中,不提供实例的数目,并且创建预定数目的实例和/或将预定数目的实例与客户端站12相关联。网络电器的实例的数目向应用32、34的一个或多个处理器指示用于探测健康状况检查并且在负载均衡期间提供分组的网络电器的数目。该方法可以在240处结束。
描述图7和8的方法的以下任务,就好像客户端站12在图6的方法期间请求探测服务、网络电器的负载均衡服务、网络电器的故障转移服务、网络电器服务和服务器应用服务。探测服务在下面关于至少任务262-274进行描述。网络电器的负载均衡服务在下面关于至少任务302-324进行描述。网络电器的故障转移服务在下面关于至少任务308和318进行描述。
图7示出了由探测应用32执行的示例健康监测方法。尽管以下任务主要关于图1至图5的实现来描述,但是可以容易地修改任务以应用于本公开的其他实现。任务可以迭代地执行。
该方法可以在260处开始。在262处,探测应用32被配置为引起探测应用32的相应处理器执行健康监测。这包括基于由控制器30生成的第一设置信号来确定要监测网络电器38的哪些实例。在所描述的示例中,探测应用32以活动设置模式进行操作。
在264处,探测应用32被配置为引起探测应用32的处理器向网络电器的实例(例如,与客户端站12相关联的网络电器38中的一些)传输探测请求消息。探测请求消息请求网络电器的健康状况。
在266处,探测应用32被配置为引起探测应用32的处理器响应于探测请求消息而从网络电器38的实例接收探测响应消息。每个探测响应消息指示相应网络电器的健康状况。健康状况可以包括指示网络电器是否能够可靠地接收、处理和/或传输分组的值。健康状况还可以指示是否已经接收到针对相应转发分组的返回分组。基于转发分组,网络电器可以基于转发分组来确定期望从服务器应用提供返回分组。如果网络电器没有接收到返回分组,则网络电器可以指示未接收到返回分组,和/或可以减少网络电器的健康状况等级。在一个实施例中,探测响应消息被提供给探测应用32的处理器。在另一实施例中,网络电器38将探测响应消息和/或健康状况直接发送到负载均衡应用34的处理器。负载均衡应用34的处理器可以是与探测应用32的处理器相同或不同的处理器。
在268处,探测应用32被配置为引起探测应用32的处理器将正被监测的网络电器的健康状况存储在与探测应用32相关联的存储器(例如,服务器的存储器和/或VM存储器)中。例如,健康状况可以存储为健康状况表,健康状况表将健康状况和/或健康状况等级与正被监测的网络电器的实例相关联。健康状况和/或健康状况等级的实例数多于分组所穿过的实例数。这实现了本文中公开的故障转移过程。
在270处,探测应用32被配置为引起探测应用32的处理器生成健康报告消息,健康报告消息包括网络电器38和/或与客户端站12相关联的网络电器的健康状况。健康报告消息是基于探测响应消息中的内容而生成的。健康状况可以以表格形式提供,包括网络电器相对于网络电器38的IP地址和/或其他标识符(例如,端口号、设备号等)的健康状况等级。
在272处,向负载均衡模块34的处理器传输健康报告消息。在274处,探测应用32确定是否要更新网络电器38的一个或多个实例的健康状况。如果要更新健康状况,则可以执行任务262,否则该方法可以在276处结束。
图8A至图8B示出了由负载均衡应用34执行的示例负载均衡方法。尽管以下任务主要关于图1至图5的实现来描述,但是可以容易地修改任务以应用于本公开的其他实现。任务可以迭代地执行。
该方法可以在300处开始。在302处,负载均衡应用34被配置为引起负载均衡应用34的处理器从客户端站12接收转发分组。在一个实施例中,转发分组包括:第一报头和数据有效载荷。第一报头包括报头信息,诸如转发分组的源IP地址、转发分组的目的IP地址、源端口号、目的端口号、协议字段等。源端口号和目的端口号可以是传输控制协议(TCP)端口号、用户数据报协议(UDP)端口号或第四层(L4)端口号。
在304处,负载均衡应用34被配置为引起负载均衡应用34的处理器确定转发分组是否是从客户端站12接收的将被传输到服务器应用的处理器的第一分组。如果转发分组是接收到的第一转发分组,则执行任务310,否则执行任务306。
在306处,负载均衡应用34被配置为引起负载均衡应用34的处理器确定网络电器的实例的健康状况是否已经改变和/或是否要针对网络电器执行故障转移过程。如果网络电器的实例的健康状况等级降级到预定水平,则负载均衡应用34通过执行任务308来发起故障转移过程以从网络电器的降级实例切换到网络电器的健康实例。如果健康状况等级没有降级,则可以执行任务310。在一个实施例中,当实例的健康状况等级大于预定水平时,该实例是健康的。
在308处,负载均衡应用34被配置为引起负载均衡应用34的处理器执行故障转移过程以改变具有降级的健康状况等级的网络电器的实例。作为示例,如果实例是负载均衡器(或负载均衡模块),则执行负载均衡器的故障转移。来自客户端站12的未来的前向业务和到客户端站12的反向业务都从降级实例变为健康实例。在一个实施例中,这通过将健康实例的IP地址并入被添加到转发和返回分组的第二报头中来完成。作为示例,第二报头可以在任务310a和320a期间在下面添加。
针对网络电器执行的故障转移过程不同于针对服务器和/或虚拟机执行的故障转移过程。网络电器的实例可以在不同或相同的服务器和/或虚拟机上。作为示例,实例可以在相同的服务器中和/或在相同的虚拟机中被实现。因此,当执行网络电器的故障转移过程时,负载均衡应用34可以不在服务器和/或虚拟机之间切换。作为另一示例,网络电器的两个或更多个实例可以在相同的服务器和/或虚拟机上,而网络电器的一个或多个其他实例可以在其他服务器和/或虚拟机上实现。
在310处,负载均衡应用34被配置为引起负载均衡应用34的处理器执行网络电器的负载均衡。如果网络电器是负载均衡器,则针对负载均衡器执行负载均衡。在310A处,基于健康报告消息、探测响应消息和/或网络电器的健康状况,负载均衡应用34被配置为引起负载均衡应用34的处理器执行转发分组的对称转换(或第一对称转换),包括确定要向哪个网络电器(或网络电器实例)发送转发分组。在一个实施例中,向转发分组添加第二报头,该第二报头包括选择的网络电器实例的IP地址。负载均衡应用34可以被配置为引起负载均衡应用34的处理器在添加第二报头时封装转发分组以生成第一结果分组。
在一个实施例中,评估散列函数以确定网络电器实例和/或网络电器实例的IP地址。散列函数可以被实现为和/或可以基于对称函数。例如,对称函数是异或(XOR)。在一个实施例中,对转发分组的第一报头的两个字段进行XOR。XOR函数是对称的,因为字段(a,b)的XOR与字段(b,a)的XOR相同。作为示例,字段a、b是转发分组的源IP地址和目的地IP地址。作为另一示例,字段a、b是转发分组的源端口号和目的地端口号。作为示例,等式1可以用于确定网络电器实例的IP地址,其中H(X,XOR)是键X和XOR值的散列函数,n是大于或等于2的整数并且表示与客户端站相关联的和/或是健康的网络电器的实例的总数,IP是表示选择的网络电器实例的IP地址的值,并且mod是模运算。键X可以是在0到n之间的整数。散列函数可以基于i)XOR值,或ii)X和XOR值。散列函数用于将键值X和/或XOR值映射到IP地址代表值。
IP=H(X,XOR)mod n (1)
在一个实施例中,对2元组、3元组、4元组或5元组第一报头执行散列函数。散列函数可以基于通过对第一报头和/或转发分组的各个字段对执行XOR运算而生成的一个或多个XOR值。第一报头可以包括任何数目的字段。2元组第一报头可以包括源IP地址和目的地IP地址,其中对两个字段执行XOR函数。3元组第一报头可以包括源IP地址、目的地IP地址和协议字段,其中XOR函数被执行一次或多次;每次包括两个字段。4元组第一报头可以包括源IP地址、目的地IP地址、源端口号和目的地端口号,其中XOR函数被执行一次或多次;每次包括两个字段。5元组第一报头可以包括源IP地址、目的地IP地址、源端口号、目的地端口号和协议字段,其中XOR函数被执行一次或多次;每次包括两个字段。
可以执行替代的对称散列函数和/或对称转换。作为示例,可以使用对称表来查找基于转发分组的一个或多个字段而寻址的IP。对称转换确保为转发分组和与转发分组相关联的返回分组提供相同的IP地址。例如,源IP地址和目的地IP地址的XOR与目的地IP地址和源IP地址的XOR相同。
负载均衡应用34还可以被配置为引起负载均衡应用34的处理器基于其他参数(诸如网络电器实例的健康状况等级)来确定网络电器实例。可以在具有最高健康状况等级的网络电器实例和/或健康状况等级高于预定健康状况等级的网络电器实例之间进行选择。
作为另一示例,网络电器实例的选择还可以基于提供给网络电器的每个实例的业务量。在一个实施例中,负载均衡应用34被配置为引起负载均衡应用34的处理器均衡跨越健康的网络电器的业务流的量。在一个实施例中,通过相同的网络电器来发送彼此相关联的转发分组和/或返回分组。在310B处,负载均衡应用34被配置为引起负载均衡应用34的处理器将转发分组(或第一结果分组)发送到选择的网络电器实例的IP地址。在一个实施例中,图5的任务208-212在任务310之后并且在任务312之前执行。
在312处,负载均衡应用34被配置为引起负载均衡应用34的处理器从服务器应用接收返回分组。返回分组是基于转发分组而生成的。服务器应用被配置为引起服务器应用的处理器将返回分组发送到负载均衡应用34。
在314处,负载均衡应用34被配置为引起负载均衡应用34的处理器确定返回分组是否是从服务器应用的处理器接收的将被传输到客户端站的第一返回分组。如果返回分组是接收到的第一返回分组,则执行任务320,否则执行任务316。
在316处,负载均衡应用34被配置为引起负载均衡应用34的处理器确定(i)接收到转发分组的网络电器的实例的健康状况是否已经改变,和/或(ii)是否要针对网络电器执行故障转移过程。如果网络电器的实例的健康状况等级降级到预定水平,则负载均衡应用34通过执行任务318来发起故障转移过程以从网络电器的降级实例切换到网络电器的健康实例。如果健康状况等级没有降级,则可以执行任务320。在一个实施例中,当实例的健康状况等级大于预定水平时,该实例是健康的。
在318处,负载均衡应用34被配置为引起负载均衡应用34的处理器执行故障转移过程以改变具有降级的健康状况等级的网络电器的实例。作为示例,如果实例是负载均衡器(或负载均衡模块),则执行负载均衡器的故障转移。来自客户端站12的未来的前向业务和到客户端站12的反向业务都从降级实例变为健康实例。在一个实施例中,这通过将健康实例的IP地址并入被添加到转发和返回分组的第二报头中来完成。作为示例,第二报头可以在320A期间在下面添加。
针对网络电器执行的故障转移过程不同于针对服务器和/或虚拟机执行的故障转移过程。网络电器的实例可以在不同或相同的服务器和/或虚拟机上。作为示例,实例可以在相同的服务器中和/或在相同的虚拟机中被实现。因此,当执行网络电器的故障转移过程时,负载均衡应用34可以不在服务器和/或虚拟机之间切换。作为另一示例,网络电器的两个或更多个实例可以在相同的服务器和/或虚拟机上,而网络电器的一个或多个其他实例可以在其他服务器和/或虚拟机上实现。
在320处,负载均衡应用34被配置为引起负载均衡应用34的处理器与上面关于任务310描述的负载均衡类似地执行网络电器的负载均衡,不同之处在于,针对返回分组而不是转发分组来执行负载均衡。在320A处,基于健康报告消息,负载均衡应用34被配置为引起负载均衡应用34的处理器执行返回分组的对称转换(或第二对称转换),包括确定要向哪个网络电器(或网络电器实例)发送返回分组。用于返回分组的转换过程与用于转发分组的转换过程相同,以确保返回分组通过与转发分组相同的网络电器被发送回。在一个实施例中,向返回分组添加第二报头,该第二报头包括选择的网络电器实例的IP地址。负载均衡应用34可以被配置为引起负载均衡应用34的处理器在添加第二报头时封装返回分组以生成第二结果分组。
在一个实施例中,评估在310处使用的散列函数以确定网络电器实例和/或网络电器实例的IP地址。散列函数可以被实现为和/或可以基于对称函数,并且可以用于提供与在210处确定的相同的IP地址。可以使用XOR函数。在一个实施例中,对返回分组的第一报头的两个字段进行XOR。作为示例,这些字段是返回分组的源IP地址和目的地IP地址。作为另一示例,这些字段是返回分组的源端口号和目的地端口号。作为示例,等式1可以用于确定网络电器实例的IP地址。
在一个实施例中,对返回分组的2元组、3元组、4元组或5元组第一报头执行散列函数。散列函数可以基于通过对返回分组的各个字段对和/或返回分组的第一报头执行XOR运算而生成的一个或多个XOR值。第一报头可以包括任何数目的字段。2元组第一报头可以包括源IP地址和目的地IP地址,其中对两个字段执行XOR函数。3元组第一报头可以包括源IP地址、目的地IP地址和协议字段,其中XOR函数被执行一次或多次;每次包括两个字段。4元组第一报头可以包括源IP地址、目的地IP地址、源端口号和目的地端口号,其中XOR函数被执行一次或多次;每次包括两个字段。5元组第一报头可以包括源IP地址、目的地IP地址、源端口号、目的地端口号和协议字段,其中XOR函数被执行一次或多次;每次包括两个字段。
可以在任务320A期间执行替代的对称散列函数和/或对称转换。作为示例,可以使用对称表来查找基于返回分组的一个或多个字段而寻址的IP。
负载均衡应用34可以被配置为引起负载均衡应用34的处理器基于其他参数(诸如网络电器实例的健康状况等级)来确定网络电器实例。可以在具有最高健康状况等级的网络电器实例和/或健康状况等级高于预定健康状况等级的网络电器实例之间进行选择。作为另一示例,网络电器实例的选择还可以基于提供给网络电器的每个实例的业务量。在一个实施例中,负载均衡应用34被配置为引起负载均衡应用34的处理器均衡跨越健康的网络电器的业务流的量。在320B处,负载均衡应用34被配置为引起负载均衡应用34的处理器将返回分组(或第二结果分组)发送到选择的网络电器实例的IP地址。
在322处,网络电器实例经由路由器36将返回分组发送到客户端站。在将返回分组发送到路由器36之前,网络电器实例可以移除在任务320A期间提供的第二报头和封装。
在324处,负载均衡应用34被配置为引起负载均衡应用34的处理器确定客户端站12是否已经接收到另一分组。如果已经接收到另一分组,则执行任务304;否则该方法可以在326处结束。任务302-324可以以重叠方式执行,和/或任务302-324的多个版本可以并行执行。例如,在一个实施例中,在完成先前分组的任务302-324之前,针对后续分组执行任务302-324。这提高了传输速率。
图5至图8B的上述任务旨在是说明性的示例;取决于应用,任务可以顺序地、同步地、同时地、连续地、在重叠时间段期间或以不同顺序执行。而且,取决于事件的实现和/或顺序,可以不执行或跳过任何任务。
上述方法是网络服务报头(NSH)兼容的。所描述的对称转换可以包括执行分组的NSH的一个或多个字段的对称转换。所描述的故障转移过程、网络电器的负载均衡以及健康状况监测和报告与具有NSH的分组兼容。
上述方法提供了一种负载均衡系统和方法,其提供网络电器的高可用性并且确保反向业务流穿过与相应转发分组相同的网络电器实例。提供了一种负载均衡器,其以备用设置模式或活动设置模式操作并且在活动设置模式下的同时提供n活动故障转移解决方案,其中n是大于或等于2的整数并且表示网络电器的实例的数目。如果提供n个实例,则提供网络电器的多达n-1个备份实例。在一个实施例中,执行包括5元组的XOR的对称函数,以确保反向业务与相应前向业务相关联到同一网络电器实例。
前面的描述本质上仅是说明性的,决不是要限制本公开、其应用或用途。本公开的广泛教导可以以各种形式实现。因此,尽管本公开包括特定示例,但是本公开的真实范围不应当受此限制,因为在研究附图、说明书和所附权利要求时,其他修改将变得很清楚。应当理解,方法内的一个或多个步骤可以以不同的顺序(或同时)执行,而不改变本公开的原理。此外,尽管上面将每个实施例描述为具有某些特征,但是关于本公开的任何实施例描述的那些特征中的任何一个或多个可以在任何其他实施例的特征中被实现和/或与其组合,即使该组合未明确描述。换言之,所描述的实施例不是相互排斥的,并且一个或多个实施例彼此的排列仍然在本公开的范围内。
元件之间的空间和功能关系(例如,模块、电路元件、半导体层等之间)使用各种术语来描述,包括“连接”、“接合”、“耦合”、“相邻”、“下一个”、“之上”、“上方”、“下方”和“设置”。除非明确地描述为“直接”,否则当在上面的公开中描述第一和第二元素之间的关系时,该关系可以是其中在第一和第二元素之间不存在其他中间元素的直接关系,但也可以是其中在第一和第二元素之间存在(空间或功能上)一个或多个中间元素的间接关系。如本文中使用的,短语A、B和C中的至少一个应当被解释为表示使用非排他性逻辑OR的逻辑(AOR B OR C),并且不应当被解释为表示“A中的至少一个、B中的至少一个、和C中的至少一个”。
在附图中,箭头所指示的箭头方向通常表示图示中感兴趣的信息流(诸如数据或指令)。例如,当元素A和元素B交换各种信息但是从元素A传输到元素B的信息与图示相关时,箭头可以从元素A指向元素B。这个单向箭头并不表示没有其他信息从元素B传输到元素A。此外,对于从元素A发送到元素B的信息,元素B可以向元素A发送对信息的请求或接收对信息的确认。
在本申请中,包括下面的定义,术语“模块”、“处理器”和/或“控制器”可以替换为术语“电路”。术语“模块”、“处理器”和/或“控制器”可以指代以下各项,是以下各项的一部分或者包括以下各项:专用集成电路(ASIC);数字、模拟或混合模拟/数字分立电路;数字、模拟或混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器电路(共享、专用或组);存储由处理器电路执行的代码的存储器电路(共享、专用或组);提供所述功能的其他合适的硬件组件;或者上述各项中的一些或全部的组合,诸如在片上系统中。
模块、处理器和/或控制器可以包括一个或多个接口电路。在一些示例中,接口电路可以包括连接到局域网(LAN)、因特网、广域网(WAN)或其组合的有线或无线接口。本公开的任何给定模块、处理器和/或控制器的功能可以分布在经由接口电路连接的多个模块、处理器和/或控制器之间。例如,多个模块可以提供负载均衡。在另一示例中,服务器(也称为远程或云)模块可以代表客户端模块和/或客户端站完成某些功能。
如上所使用的术语代码可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类、数据结构和/或对象。术语共享处理器电路包括执行来自多个模块的一些或所有代码的单个处理器电路。术语组处理器电路包括与附加处理器电路相结合地执行来自一个或多个模块的一些或所有代码的处理器电路。对多个处理器电路的引用包括分立管芯上的多个处理器电路、单个管芯上的多个处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程、或上述各项的组合。术语共享存储器电路包括存储来自多个模块的一些或所有代码的单个存储器电路。术语组存储器电路包括与附加存储器相结合地存储来自一个或多个模块的一些或所有代码的存储器电路。
术语存储器电路是术语计算机可读介质的子集。本文中使用的术语计算机可读介质不包括传播通过介质的暂态电信号或电磁信号(诸如在载波上);因此,术语计算机可读介质可以被认为是有形的和非暂态的。非暂态有形计算机可读介质的非限制性示例是非易失性存储器电路(诸如闪存电路、可擦除可编程只读存储器电路或掩模只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁存储介质(诸如模拟或数字磁带或硬盘驱动器)和光存储介质(诸如CD、DVD或蓝光光盘)。
在本申请中,被描述为具有特定属性或执行特定操作的装置元件被具体配置为具有那些特定属性并且执行那些特定操作。具体地,对用于执行动作装置的元素的描述表示该元素被配置为执行动作。元素的配置可以包括对元素的编程,诸如通过在与元素相关联的非暂态有形计算机可读介质上编码指令。
本申请中描述的装置和方法可以部分或全部由专用计算机来实现,该专用计算机是通过配置通用计算机以执行计算机程序中包含的一个或多个特定功能而创建的。上述功能块、流程图组件和其他元件用作软件规范,这些软件规范可以通过熟练技术人员或程序员的例行工作而转换成计算机程序。
计算机程序包括存储在至少一个非暂态有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于所存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(BIOS)、与专用计算机的特定设备交互的设备驱动程序、一个或多个操作系统、用户应用、后台服务、背景应用等。
计算机程序可以包括:(i)要解析的描述性文本,诸如HTML(超文本标记语言)或XML(可扩展标记语言),(ii)汇编代码,(iii)由编译器从源代码生成的目的地代码,(iv)用于由解释器执行的源代码,(v)用于由即时编译器编译和执行的源代码等。仅作为示例,源代码可以使用各种语言的语法来编写,包括C、C++、C#、Objective C、Haskell、Go、SQL、R、Lisp、Fortran、Perl、Pascal、Curl、OCaml、HTML5、Ada、ASP(活动服务器页面)、PHP、Scala、Eiffel、Smalltalk、Erlang、Ruby、 Lua和
权利要求中所述的元素中没有一个旨在是在35U.S.C§112(f)的意义上的手段加功能元件,除非使用短语“用于……的装置(for means)”明确地叙述元素,或者在使用短语“用于……的操作(operation for)”或“用于……的步骤(step for)”的方法权利要求的情况下明确地叙述元素。

Claims (15)

1.一种负载均衡系统,包括:
一个或多个虚拟机,所述一个或多个虚拟机在基于云的网络中被实现并且包括处理器;以及
第一负载均衡应用,所述第一负载均衡应用在所述一个或多个虚拟机中被实现并且由所述处理器执行,其中所述第一负载均衡应用被配置为使得所述处理器:
接收指示多个网络电器的健康状况的一个或多个健康消息,其中所述多个网络电器在所述基于云的网络的电器层中被实现,
从网络设备接收针对第一应用服务器的转发分组,
基于所述一个或多个健康消息,确定是执行故障转移过程中的至少一个故障转移过程还是选择所述多个网络电器中的第一网络电器,
执行对称转换的第一次迭代以经由选择的所述第一网络电器将所述转发分组路由给所述第一应用服务器,
基于所述转发分组从所述第一应用服务器接收返回分组,以及
执行所述对称转换的第二次迭代以经由所述第一网络电器将所述返回分组路由给所述网络设备,
其中在所述故障转移过程期间,所述第一负载均衡应用被配置为使得所述处理器将通过所述第一网络电器的第一实例在所述网络设备与所述第一应用服务器之间的业务的路由切换到通过所述第一网络电器的第二实例在所述网络设备与所述第一应用服务器之间路由所述业务。
2.根据权利要求1所述的负载均衡系统,其中:
所述一个或多个健康消息包括从探测应用的处理器接收的单个健康报告消息;并且
所述单个健康报告消息指示所述多个网络电器的所述健康状况。
3.根据权利要求1所述的负载均衡系统,其中:
所述一个或多个健康消息包括分别由所述多个网络电器生成的多个健康消息;并且
所述多个健康消息中的每个健康消息指示所述多个网络电器中的相应网络电器的健康状况。
4.根据权利要求1所述的负载均衡系统,
用于路由所述转发分组的所述对称转换的所述第一次迭代的所述执行包括散列函数在所述转发分组的一个或多个字段上的实现,其中所述散列函数是XOR函数,并且
用于路由所述返回分组的所述对称转换的所述第二次迭代的所述执行包括所述散列函数在所述返回分组的一个或多个字段上的实现;并且
所述散列函数针对所述转发分组提供与针对所述返回分组相同的散列值。
5.根据权利要求1所述的负载均衡系统,其中:
所述第一网络电器实现第二负载均衡应用;并且
所述多个网络电器中的其他网络电器是所述第二负载均衡应用的实例。
6.一种负载均衡系统,包括:
一个或多个虚拟机,所述一个或多个虚拟机在基于公共云的网络中被实现并且包括第一处理器和第二处理器;
探测应用,所述探测应用在所述一个或多个虚拟机中被实现并且被配置为使得所述第一处理器(i)向多个网络电器传输多个探测请求消息,(ii)基于所述探测请求消息,从所述多个网络电器接收多个响应消息,以及(iii)基于所述响应消息,生成指示所述多个网络电器的健康状况的健康报告消息,其中所述多个网络电器在所述基于公共云的网络的电器层中被实现;以及
第一负载均衡应用,所述第一负载均衡应用在所述一个或多个虚拟机中被实现并且被配置为使得所述第二处理器:
从网络设备接收针对第一应用服务器的转发分组,
基于所述健康报告,确定是执行故障转移过程中的至少一个故障转移过程还是选择所述多个网络电器中的第一网络电器,
执行对称转换的第一次迭代以经由选择的所述第一网络电器将所述转发分组路由给所述第一应用服务器,
基于所述转发分组从所述第一应用服务器接收返回分组,以及
执行所述对称转换的第二次迭代以经由所述第一网络电器将所述返回分组路由给所述网络设备,
其中在所述故障转移过程期间,所述第一负载均衡应用经由所述第二处理器将通过所述第一网络电器的第一实例在所述网络设备与所述第一应用服务器之间的业务的路由切换到通过所述第一网络电器的第二实例在所述网络设备与所述第一应用服务器之间路由所述业务。
7.根据权利要求6所述的负载均衡系统,其中:
用于路由所述转发分组的所述对称转换的所述第一次迭代的所述执行包括散列函数在所述转发分组的一个或多个字段上的实现,并且
用于路由所述返回分组的所述对称转换的所述第二次迭代的所述执行包括所述散列函数在所述返回分组的一个或多个字段上的实现;
所述散列函数针对所述转发分组提供与针对所述返回分组相同的散列值;并且
所述散列函数是XOR函数。
8.根据权利要求6所述的负载均衡系统,其中所述对称转换基于对称表使得所述转发分组的至少一部分的所述对称转换提供与所述返回分组的至少一部分的所述对称转换相同的结果。
9.根据权利要求6所述的负载均衡系统,还包括在所述一个或多个虚拟机中被实现的控制器,其中:
所述网络设备是在所述基于公共云的网络之外的客户端站;
所述网络设备请求多个服务;并且
所述控制器基于针对所述多个服务的请求(i)发信号通知执行所述探测应用的所述第一处理器以启用健康监测并且生成所述多个探测请求消息以监测所述多个网络电器的所述健康状况,以及(ii)发信号通知执行所述第一负载均衡应用的所述第二处理器以针对所述网络设备执行负载均衡。
10.根据权利要求6所述的负载均衡系统,其中:
所述转发分组包括第一报头;
所述第一负载均衡应用被配置为使得所述第二处理器基于所述健康报告消息向所述转发分组添加第二报头并且将具有所述第二报头的所述转发分组转发给所述第一实例或所述第二实例;
所述返回分组包括第三报头;并且
所述第一负载均衡应用被配置为使得所述第二处理器基于所述健康报告消息向所述返回分组添加第四报头并且将具有所述第四报头的所述返回分组转发给所述第一实例或所述第二实例。
11.根据权利要求10所述的负载均衡系统,其中:
所述转发分组的所述第一报头包括第一源因特网协议地址和第一目的地因特网协议地址;
所述转发分组的所述第二报头标识所述第一网络电器或所述第一网络电器的因特网协议地址;
所述返回分组的所述第三报头包括第二源因特网协议地址和第二目的地因特网协议地址;并且
所述返回分组的所述第四报头标识所述第一网络电器或所述第一网络电器的因特网协议地址。
12.根据权利要求6所述的负载均衡系统,其中所述探测应用、所述第一负载均衡应用、所述多个网络电器和所述第一应用服务器在所述基于公共云的网络中被实现。
13.根据权利要求6所述的负载均衡系统,其中:
所述多个网络电器是在所述转发分组被转发给所述第一应用服务器之前对所述转发分组执行中间服务的中间模块;并且
所述第一应用服务器终止与所述网络设备的连接。
14.根据权利要求6所述的负载均衡系统,其中:
所述多个网络电器中的两个或更多个网络电器串联地被实现,从而使得所述转发分组当在所述第一应用服务器处被接收之前经过所述多个网络电器中的所述两个或更多个网络电器;并且
所述多个网络电器中的所述两个或更多个网络电器包括所述第一网络电器。
15.根据权利要求6所述的负载均衡系统,其中:
所述多个网络电器中的每个网络电器被连接到并且被配置为将分组路由给相同的多个应用服务器中的所有应用服务器;并且
所述多个应用服务器包括所述第一应用服务器。
CN201780050313.XA 2016-08-16 2017-08-11 用于基于云的网络电器的负载均衡系统和方法 Withdrawn CN109644204A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/238,173 2016-08-16
US15/238,173 US20180054475A1 (en) 2016-08-16 2016-08-16 Load balancing system and method for cloud-based network appliances
PCT/US2017/046466 WO2018034971A1 (en) 2016-08-16 2017-08-11 Load balancing system and method for cloud-based network appliances

Publications (1)

Publication Number Publication Date
CN109644204A true CN109644204A (zh) 2019-04-16

Family

ID=59700208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780050313.XA Withdrawn CN109644204A (zh) 2016-08-16 2017-08-11 用于基于云的网络电器的负载均衡系统和方法

Country Status (4)

Country Link
US (1) US20180054475A1 (zh)
EP (1) EP3501159A1 (zh)
CN (1) CN109644204A (zh)
WO (1) WO2018034971A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3496716B1 (en) * 2016-08-15 2021-11-03 Merck Sharp & Dohme Corp. Compounds useful for altering the levels of bile acids for the treatment of diabetes and cardiometabolic disease
US10664364B2 (en) * 2016-10-18 2020-05-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Transferring a server configuration parameter along with a workload
US11089105B1 (en) * 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10715378B2 (en) * 2017-06-19 2020-07-14 Keysight Technologies Singapore (Sales) Pte. Ltd. Hash-based selection of network packets for packet flow sampling in network communication systems
US10868828B2 (en) * 2018-03-19 2020-12-15 Fortinet, Inc. Mitigation of NTP amplification and reflection based DDoS attacks
US10747705B2 (en) * 2018-06-13 2020-08-18 International Business Machines Corporation On-chip accelerator management
US11032190B2 (en) * 2018-09-12 2021-06-08 Corsa Technology Inc. Methods and systems for network security universal control point
US11334453B2 (en) 2020-05-07 2022-05-17 Oracle International Corporation System and method for providing fault tolerance and resiliency in a cloud network
US11516087B2 (en) * 2020-11-30 2022-11-29 Google Llc Connecting processors using twisted torus configurations
US11558452B2 (en) * 2021-05-20 2023-01-17 Sap Se Transparent multiple availability zones in a cloud platform

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704278B1 (en) * 1999-07-02 2004-03-09 Cisco Technology, Inc. Stateful failover of service managers
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US8243589B1 (en) * 2008-08-14 2012-08-14 United Services Automobile Association (Usaa) Systems and methods for data center load balancing
US8103906B1 (en) * 2010-10-01 2012-01-24 Massoud Alibakhsh System and method for providing total real-time redundancy for a plurality of client-server systems
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US8805990B2 (en) * 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
US9246998B2 (en) * 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
US10038626B2 (en) * 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10061664B2 (en) * 2015-01-15 2018-08-28 Cisco Technology, Inc. High availability and failover
US10075377B1 (en) * 2015-04-23 2018-09-11 Cisco Technology, Inc. Statistical collection in a network switch natively configured as a load balancer

Also Published As

Publication number Publication date
EP3501159A1 (en) 2019-06-26
US20180054475A1 (en) 2018-02-22
WO2018034971A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
CN109644204A (zh) 用于基于云的网络电器的负载均衡系统和方法
CN107026890B (zh) 一种基于服务器集群的报文生成方法和负载均衡器
CN105122772B (zh) 一种通过头部交换服务器状态和客户端信息的方法及设备
US9705800B2 (en) Load distribution in data networks
JP7113840B2 (ja) 計算ノード管理プロトコルのためのシステムおよび方法
US20160042014A1 (en) Distributed database in software driven networks
US20110060821A1 (en) System and method for determining affinity groups and co-locating the affinity groups in a distributing network
CN107086966A (zh) 一种网络的负载均衡、控制及网络交互方法和装置
CN102792264A (zh) 路由针对双工应用的请求
US10230683B1 (en) Routing for large server deployments
CN108418884A (zh) 一种传输业务数据的方法、装置及电子设备
US11005925B2 (en) Load balancing with power of random choices
US20220261275A1 (en) Self-evolving microservices
CN109818997A (zh) 一种负载均衡方法、系统及存储介质
US20190158584A1 (en) Load balancing method and related apparatus
US20220210053A1 (en) Methods, apparatuses and computer program products for generating transmission path objects based on data object transmissions in a network service cloud
Ma et al. Mobility-based sinknode-aided routing in disaster network under the background of big data
Dang et al. On evaluating iotivity cloud platform
Kalimulina Rate of convergence to stationary distribution for unreliable Jackson-type queueing network with dynamic routing
Park et al. An efficient dynamic integration middleware for cyber-physical systems in mobile environments
Gowri et al. An energy efficient and secure model using chaotic levy flight deep Q-learning in healthcare system
Ali et al. Wireless Fog-Mesh: A communication and computation infrastructure for IoT based smart environments
Lee et al. A study on the fast system recovery: Selecting the number of surrogate nodes for fast recovery in industrial IoT environment
Huang et al. Hierarchical optimization of network resource for heterogeneous service in cloud scenarios
CN107493239A (zh) Udp报文转发方法、设备和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20190416