上一篇
H3C负载均衡的方式
- 行业动态
- 2025-05-17
- 2
H3C负载均衡支持轮询、加权轮询、最小连接数及动态权重等方式,基于流量分配与健康检查
H3C负载均衡技术详解
负载均衡基础概念
负载均衡(Load Balancing)是通过某种技术将网络流量分配到多台服务器或链路上,以实现资源的最优利用、提升系统处理能力并保障服务可靠性,H3C设备(如SecPath系列防火墙、LSWM系列网关、应用交付控制器ADC)支持多种负载均衡方式,适用于不同场景需求。
H3C负载均衡的核心方式
H3C设备主要支持以下7类负载均衡方式,具体分类及原理如下:
负载均衡方式 | 原理 | 适用场景 |
---|---|---|
轮询(Round Robin) | 按顺序循环分配请求到后端服务器 | 服务器性能相近、流量均匀的场景 |
加权轮询(Weighted RR) | 根据预设权重比例分配请求(如Server1:60%,Server2:40%) | 服务器性能差异显著的场景 |
最小连接数(Least Conn) | 优先将请求分配给当前连接数最少的服务器 | 长连接场景(如数据库、Web服务) |
加权最小连接(Weighted Least Conn) | 结合权重与连接数分配请求(权重高的服务器允许更多连接) | 混合性能服务器集群 |
源地址哈希(Source IP Hash) | 根据客户端IP的哈希值分配服务器,相同IP始终分配到同一服务器 | 需要会话保持且无需Cookie的场景(如静态资源) |
URI哈希(URI Hash) | 根据请求URL的哈希值分配服务器,相同URI分配到同一服务器 | 缓存服务器或静态内容分发 |
基于Cookie的会话保持 | 通过匹配HTTP Cookie实现会话粘性,确保同一用户请求始终分配到同一服务器 | 需要严格会话保持的Web应用 |
轮询(Round Robin)
- 原理:按顺序循环将请求分配到后端服务器,例如Server1→Server2→Server3→Server1…。
- 优点:算法简单,无需监控服务器状态。
- 缺点:无法感知服务器压力差异,可能导致性能不均衡。
- 配置示例(SecPath防火墙):
lb policy 1 virtual-ip 192.168.1.100 real-server 10.1.1.10 weight 1 real-server 10.1.1.11 weight 1
加权轮询(Weighted Round Robin)
- 原理:为每台服务器设置权重,按比例分配流量,例如Server1:weight=3,Server2:weight=1,则分配比例为3:1。
- 适用场景:服务器性能差异较大时(如旧服务器与新服务器混用)。
- 配置示例(LSWM网关):
vip 10.1.1.1 protocol tcp real 10.1.1.10 weight 3 real 10.1.1.11 weight 1
最小连接数(Least Connection)
- 原理:动态统计每台服务器的当前连接数,优先分配给连接数最少的服务器。
- 优点:适应实时负载变化,适合长连接场景。
- 缺点:需持续监控连接状态,对设备性能有一定要求。
- 配置示例(ADC设备):
persistence-profile least-conn lb-method least-connection monitor tcp-check
加权最小连接(Weighted Least Connection)
- 原理:结合权重与连接数,公式为:(服务器权重)/(当前连接数+1),权重高的服务器可承载更多连接。
- 适用场景:混合性能服务器组(如刀片服务器与普通服务器混合)。
- 配置示例(SecPath):
real-server 10.1.1.10 weight 5 real-server 10.1.1.11 weight 1
源地址哈希(Source IP Hash)
- 原理:对客户端IP地址进行哈希运算,结果映射到固定服务器,同一IP始终分配到同一服务器。
- 优点:无需额外会话表,适合静态资源分发。
- 缺点:若服务器故障,对应IP的用户会被中断。
- 配置示例(LSWM):
persistence source-ip lb-method source-hash
URI哈希(URI Hash)
- 原理:根据请求URL的哈希值分配服务器,相同URI始终指向同一服务器。
- 适用场景:缓存服务器群或CDN节点,确保相同资源被定向存储。
- 配置示例(ADC):
persistence-profile uri-hash match-rule url-path
基于Cookie的会话保持
- 原理:通过匹配HTTP请求中的Set-Cookie字段,将同一用户的请求绑定到特定服务器。
- 配置要点:
- 需开启Cookie捕获功能。
- 支持自定义Cookie字段名称。
- 可设置会话超时时间(如30分钟)。
- 配置示例(SecPath):
persistence-profile cookie-based cookie-name SESSIONID timeout 1800
高级功能:健康检查与动态调度
H3C负载均衡设备支持多种健康检查机制,确保流量仅分配到健康服务器:
健康检查类型 | 说明 |
---|---|
PING检查 | 发送ICMP Echo报文,验证服务器网络连通性 |
TCP检查 | 尝试建立TCP连接(如端口80),验证服务可用性 |
HTTP检查 | 发送HTTP请求(如GET /health.html),验证返回状态码(如200 OK) |
自定义脚本检查 | 通过脚本执行复杂检测(如数据库查询、API调用) |
动态调度示例:
当某服务器连续3次健康检查失败时,自动将其标记为不可用,并触发流量切换。
monitor tcp-port 80 interval 5 fail-threshold 3
全局负载均衡与链路负载均衡
全局负载均衡(GSLB):
- 场景:跨数据中心的流量分配(如北京、上海、深圳三地数据中心)。
- 实现:基于地理位置、延迟、链路质量分配用户请求。
- 配置示例:
geo-location: region "NorthChina" -> datacenter-beijing region "SouthChina" -> datacenter-shenzhen
链路负载均衡:
- 功能:将流量分配到多条物理链路(如电信、联通双上行),提升带宽利用率。
- 策略:支持基于源/目的IP、端口、协议的分流规则。
- 配置示例(SecPath):
link-group 1 member link1 weight 1 member link2 weight 1
配置示例与最佳实践
场景:Web集群(2台服务器,性能差异显著)需会话保持。
- 选择负载均衡方式:加权最小连接 + Cookie会话保持。
- 配置步骤:
- 设置Server1权重为3,Server2权重为1。
- 启用Cookie持久化,超时时间1800秒。
- 配置HTTP健康检查,路径为
/health
.lb-policy web-cluster method weighted-least-conn real-server 10.1.1.10 weight 3 real-server 10.1.1.11 weight 1 persistence cookie SESSIONID timeout 1800 monitor http-get /health
FAQs
Q1:如何选择负载均衡方式?
A1:根据业务需求选择:
- 服务器性能相近 → 轮询/加权轮询。
- 长连接场景 → 最小连接数。
- 严格会话保持 → Cookie或源地址哈希。
- 静态资源分发 → URI哈希。
Q2:如何避免单点故障?
A2:
- 启用健康检查,自动隔离故障服务器。
- 配置冗余VIP(虚拟IP),主备设备热备。
- 使用链路负载均衡