在一个广泛的计算系统中,单个服务器不能总是处理网络流量的负载或需求。这就是负载平衡发挥作用的地方。负载平衡通过将网络或应用程序流量分布在一组服务器上来确保网络平稳运行。负载平衡器通常存在于客户端设备和后端服务器之间,并将传入的请求分发到能够处理请求的可用服务器。
负载均衡器如何工作?
负载均衡器可以是:
- 在硬件或软件进程上运行的物理设备或虚拟化实例
- 并入应用程序交付控制器 (ADC)
- 能够使用负载均衡算法
负载均衡器通过以下方式工作:
- 将流量分配到资源池中的不同 Web 服务器
- 确保没有单个服务器在请求溢出时过度工作并随后变得不可靠
- 跨服务器传播网络流量(通常称为服务器场或服务器池)
- 最小化服务器响应时间
- 最大化吞吐量
- 在给定时刻将请求路由到正确的位置
- 防止瓶颈和事件
- 通过提供性能和必要的安全性来维持复杂的 IT 环境
什么是负载均衡——L4、L7 和 GSLB 负载均衡器
服务器资源必须易于使用并在开放系统互连 (OSI) 架构的第 4 层和/或第 7 层进行负载平衡,以鼓励提高一致性并跟上不断变化的用户需求。
第 4 层 (L4) 的负载平衡器在传输级别运行。这意味着他们可以根据他们使用的 TCP 或 UDP 端口以及源和目标 IP 地址来决定如何路由数据包。网络地址转换 (NAT) 由 L4 负载平衡器执行,但它们不会检查每个数据包内的数据。
OSI 模型中的最高级别,第 7 层 (L7) 负载平衡器在应用程序级别运行。在确定如何在服务器场的服务器之间分发请求时,他们可以访问比 L4 对应方更多种类的数据,例如 HTTP 标头和 SSL 会话 ID。
与 L4 相比,L7 的负载平衡需要更多的工作,但它也可以更有效,因为 L7 服务器有更多的上下文来理解和执行客户端请求。全局服务器负载平衡 (GSLB),除了基本的 L4 和 L7 负载平衡之外,还可以扩展任何类型跨众多数据中心的能力,以有效地分配大量流量,而不会降低最终用户服务。
基于功能的负载均衡器类型
负载均衡器通常分为三种类型:网络负载均衡器、HTTP(S) 负载均衡器和经典负载均衡器。
1. 网络负载均衡器
网络负载平衡器 (NLB),也称为第四层负载平衡,利用传输层来决定哪个服务器接收来自客户端的传入请求。当 NLB 收到客户端连接请求时,它使用流散列路由算法从池中选择目标服务器,该算法使用 IP 地址和端口号来确定合适的服务器。
然后,NLB 在流哈希算法指定的端口上打开到目标服务器的传输控制协议 (TCP) 连接。在此过程中,连接请求在不修改其标头的情况下被传输。与其他负载平衡器相比,NLB 速度更快。但是,它们在不同服务器之间分配流量时速度很慢。
2. HTTP(S) 负载均衡器
HTTP(S) 负载平衡器 (HLB),也称为第 7 层负载平衡器,根据 HTTP/HTTPS 标头做出路由决策。HLB 还可以跟踪客户端和服务器之间的响应,从而提供有关特定服务器相对于处理的繁忙或空闲程度的信息。与推测性的 NLB 不同,HLB 是数据驱动的,并且在路由决策方面非常灵活。
3.经典负载均衡器
经典负载均衡器 (CLB) 在第 4 层和第 7 层运行。为了无缝运行,CLB 需要端口之间的固定关系。例如,您可以将负载均衡器端口 80 映射到容器实例端口 3030。但是,您不能将负载均衡器 80 映射到一个实例上的端口 3030 和另一个实例上的端口 4040。
基于配置的负载均衡器类型
除了上述分类之外,您还可以将负载均衡器分组为硬件、软件或虚拟负载均衡器
硬件负载平衡器
硬件负载平衡器依靠物理的本地硬件在客户端和服务器之间路由流量。它们具有以下属性:
- 他们需要高性能的设备
- 他们可以处理来自不同类型应用程序的多个千兆流量
- 他们具有虚拟化能力
- 虚拟负载平衡器实例出现在同一硬件中
- 它们具有灵活的多租户架构和租户的完全隔离
软件负载平衡器 (SLB)
SLB 是您安装用作负载平衡器的商业或开源软件。软件负载均衡器具有以下特点:
- 它们可以替代负载平衡硬件,以更高的灵活性提供类似的功能
- 它们运行在通用的管理程序上,在裸机服务器上的开销最小
- 根据用例,它们是高度可配置的
- 它们节省空间并减少硬件支出
虚拟负载平衡器 (VLB)
另一方面,VLB 通过在虚拟机 (VM) 上运行负载平衡软件来提供软件负载平衡功能。您可以使用 VLB 来提供短期负载平衡功能。然而,VLB 无法解决固有的硬件挑战,例如有限的可扩展性和自动化。此外,数据中心缺乏集中管理会阻碍 VLB 的潜力。
什么是负载平衡 – 硬件与基于软件的负载平衡器
负载平衡器可以是基于硬件的,也可以是基于软件的。基于硬件的负载平衡器(也称为硬件负载平衡设备 (HLD))需要具有专用固件的专有机架和堆栈设备。
但是,HLD 是从专用集成控制器 (ASIC) 构建的,用于在客户端和服务器之间分配流量。另一方面,基于软件的负载均衡器作为应用程序交付控制器 (ADC) 在标准 x86 服务器或虚拟机 (VM) 上运行。
HLD 使用专门的 ASIC 构建,管理客户端和服务器之间的流量,对处理器的影响最小。在高峰时段,组织必须提供足够的 HLD 以满足不断增长的需求。然而,这样的规定可能意味着大多数 HLD 可能会在淡季闲置。
相比之下,基于软件的负载均衡器在集群虚拟机上运行它们的服务。典型的基于软件的负载平衡器通常指定一个主集群服务器来将客户端工作负载分配给其他辅助服务器。这有助于在一台服务器出现故障时最大限度地减少停机时间。在这方面,基于软件的负载均衡器可以弹性扩展以满足比其 HLD 对应物不断增长的需求。
常见的负载均衡算法
负载平衡算法根据两个因素选择哪个后端服务器处理客户端流量:服务器的健康状况和预定义规则。负载平衡算法首先确定哪个服务器池可以正确响应客户端的请求。接下来,它使用预先配置的规则在池中选择合适的服务器来处理流量。
典型的负载均衡算法包括:
循环赛
负载平衡器按顺序为服务器提供请求。将请求传输到最后一个服务器后,该过程从第一个服务器重新启动。有两类循环算法:加权循环和动态循环。加权循环算法根据服务器的效率和结构为服务器分配单独的权重。加权循环法在您拥有不同服务器池的情况下很有用。相比之下,动态循环算法实时计算服务器的权重,以确定将请求转发到哪个服务器。
最少连接法
顾名思义,最少连接数算法会选择连接数最少的服务器。它适用于客户端工作负载导致较长会话的情况。
最短响应时间法
负载平衡器选择具有最少活动连接和最短响应时间的服务器。此方法适用于客户端要求服务器迅速响应的情况。
最小带宽法
负载平衡器计算将客户端工作负载发送到各种服务器所需的带宽(以 Mbps 为单位)。然后它将请求发送到消耗最小带宽的服务器。
散列法
负载平衡器根据客户端的数据包计算哈希值。哈希值决定了服务器转发客户端的工作量。换句话说,工作负载的 IP 地址决定了接收请求的服务器。
自定义加载方式
负载平衡器使用简单网络管理协议 (SNMP) 查询各个服务器的负载,例如 CPU 和内存消耗。然后它根据服务器的工作负载将传入的请求转发到服务器。
基于资源的方法
负载平衡器根据现有会话、CPU 和内存消耗以及计数器来确定哪些服务器处于空闲状态。然后它将客户端工作负载分配给消耗最少资源的服务器。
什么是负载平衡——好处
除了控制网络流量外,负载均衡还有其他功能。软件负载平衡器提供的预测分析功能有助于在流量瓶颈发生之前识别它们。结果,软件负载平衡器为组织提供了有用的信息。这些对于自动化至关重要,并且会影响公司的选择。
简而言之,负载平衡有助于:
- 减少停机时间
- 冗余
- 效率
- 可扩展性
- 灵活性
并行 RAS 如何帮助负载平衡?
RAS使您能够对广泛的 IT 基础架构进行负载平衡,而无需复杂的配置或昂贵的附加组件。它平衡了 RDSH 服务器和内部组件。Parallels RAS 提供高可用性负载平衡 (HALB),减少停机和中断的可能性。HALB 通过基于资源的分配(用户会话、内存和 CPU)在远程桌面服务器和网关之间分配数据流量。还支持第三方负载均衡器,例如 AWS 弹性负载均衡器 (ELB) 和 Azure 负载均衡器。
管理员还可以为隔离访问配置多个 HALB 虚拟服务器。例如,当使用不同的安全客户端网关进行内部和外部访问或不同的分支机构时。
各种 HALB 配置设置启用高级管理,包括:
- 连接设置(每秒连接数、最大连接数)
- 超时设置(网关连接、客户端队列和不活动)
- 虚拟路由器冗余协议 (VRRP) 设置
组织可以增强其原有的负载平衡基础设施并提供增强的用户体验,尤其是在广域网 (WAN) 场景中。