当前位置:首页 > 行业动态 > 正文

H3C负载均衡的方式

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

全局负载均衡与链路负载均衡

  1. 全局负载均衡(GSLB)

    • 场景:跨数据中心的流量分配(如北京、上海、深圳三地数据中心)。
    • 实现:基于地理位置、延迟、链路质量分配用户请求。
    • 配置示例
      geo-location:
        region "NorthChina" -> datacenter-beijing
        region "SouthChina" -> datacenter-shenzhen
  2. 链路负载均衡

    • 功能:将流量分配到多条物理链路(如电信、联通双上行),提升带宽利用率。
    • 策略:支持基于源/目的IP、端口、协议的分流规则。
    • 配置示例(SecPath)
      link-group 1
        member link1 weight 1
        member link2 weight 1

配置示例与最佳实践

场景:Web集群(2台服务器,性能差异显著)需会话保持。

  1. 选择负载均衡方式:加权最小连接 + Cookie会话保持。
  2. 配置步骤
    • 设置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:

  1. 启用健康检查,自动隔离故障服务器。
  2. 配置冗余VIP(虚拟IP),主备设备热备。
  3. 使用链路负载均衡
0