博客
关于我
LVS负载均衡
阅读量:790 次
发布时间:2023-02-06

本文共 2100 字,大约阅读时间需要 7 分钟。

LVS负载均衡器技术深入解析

1. LVS基础及介绍

LVS(Linux Virtual Server),即Linux虚拟服务器,是一个虚拟的服务器集群系统。该技术由中国国内最早的自由软件项目之一的成员章文嵩博士于1998年5月成立。LVS支持三种IP负载均衡技术:VS/NAT、VS/TUN和VS/DR,其中DR(Direct Routing)和TUN(Tunnel)方式更为常用。

LVS的调度单元是“连接”,支持十种调度算法,包括轮叫(rrr)、加权轮叫(wrr)、最小连接(lc)、加权最小连接(wlc)等。这些算法可以根据具体应用需求进行选择。

2. LVS负载均衡技术对比

三种负载均衡技术的优缺点如下:

技术 特性 适用场景
VS/NAT 基于NAT协议,修改请求报文的源和目标地址 适用于服务器分布在不同子网的情况
VS/TUN 基于IP隧道协议,封装请求报文 适用于需要跨区域或网络的场景
VS/DR 不修改报文,仅改写MAC地址 适用于服务器位于同一物理网络的场景

3. LVS调度算法选择

在一般网络服务(如HTTP、邮件等)中,推荐使用加权最小连接调度(wlc)或加权轮叫调度(wrr)算法。基于局部性最少链接的调度算法(lblc、lblcr)主要适用于Web缓存集群,而目标地址散列调度和源地址散列调度适用于防火墙场景。最短预期延时调度(sed)和不排队调度(nq)则适用于处理时间较长的网络服务。

4. LVS配置与管理

4.1 Ldirectord配置选项

  • -g:启用DR模式
  • -i:启用TUN模式
  • -m:启用NAT模式

4.2 ipvsadm命令

ipvsadm -L -n --stats

该命令可显示LVS的状态信息,包括本地地址、端口、连接数、输入输出包量及字节数。

4.3 LVS转发方法

  • NAT模式:调度器修改请求报文的源和目标地址,报文经过调度器后发送至目标服务器。
  • TUN模式:调度器封装请求报文,形成新的IP报文,直接发送至目标服务器。
  • DR模式:调度器仅修改数据帧的MAC地址,报文通过物理网络直接发送至目标服务器。

5. LVS性能调优

5.1 LVS自我调优

  • 调整ipvsadm超时参数:
    ipvsadm --set tcp tcpfin udp

    默认超时值为:TCP(900秒)、TCPFIN(120秒)、UDP(300秒)。

5.2 提高TCP/IP性能

  • 调整相关内核参数:
    net.ipv4.tcp_tw_recyle=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_max_syn_backlog=8192net.ipv4.tcp_keepalive_time=1800net.ipv4.tcp_fin_timeout=30net.core.rmem_max=16777216net.core.wmem_max=16777216net.ipv4.tcp_rmem=4096 87380 16777216net.ipv4.tcp_wmem=4096 65536 16777216net.core.netdev_max_backlog=3000

6. LVS常见经验总结

  • 连接单位:LVS的调度单元是“连接”,仅在非持久化协议(如HTTP)中有效。
  • KeepAlive设置:Apache的KeepAlive设置为Off时,LVS才能以连接为单位进行均衡调度。
  • 超时管理:通过ipvsadm调整TCP和UDP的超时,确保连接及时剥离。
  • 服务器数目:在NAT模式下,服务器的PORT参数才具有意义。
  • DR模式特性:InActConn在DR和TUN模式下无意义,实际值由系统计算。

7. LVS的ARP问题

在2.6.x内核中,需要关闭arp查询响应请求:

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce

8. LVS集群架构建议

在实际应用中,推荐结合业务需求选择调度算法:

  • HTTP服务:优先选择加权最小连接调度(wlc)。
  • Web Cache:基于局部性最少链接调度(lblc、lblcr)。
  • 静态防火墙:目标地址散列调度(dh)或源地址散列调度(sh)。
  • 长延迟服务:最短预期延时调度(sed)或不排队调度(nq)。

9. VS/DR模式的优势

  • 无需修改请求报文,直接将数据帧的MAC地址改写为目标服务器的MAC地址。
  • 适用于服务器位于同一物理网络的场景,且无需额外支持IP隧道协议。

10. LVS未来发展方向

随着网络环境的复杂化,LVS在云计算、容器化和边缘计算中的应用前景广阔。如何在高并发场景下优化LVS性能,如何支持新型网络协议(如QUIC),将是未来研究的重点方向。

转载地址:http://uxufk.baihongyu.com/

你可能感兴趣的文章
Linux系统报错NMI watchdog: BUG: soft lockup - CPU#5 stuck for 24s
查看>>
Linux系统搭建轻量级个人博客VanBlog并一键发布公网远程访问
查看>>
Linux系统数据实时备份工具
查看>>
Linux系统日志管理
查看>>
Linux系统服务器上安装Apache
查看>>
Linux系统查看JDK的安装路径
查看>>
Linux系统用户和权限管理
查看>>
linux系统监控与硬盘分区/格式化/文件系统管理
查看>>
Linux系统突然所有命令都失效了,显示bash: xxxxx: command not found...
查看>>
Linux系统管理期末考试小结
查看>>
Linux系统调用分析
查看>>
linux线程同步的含义,Linux线程同步——条件变量
查看>>
Linux经常使用命令(十一) - more
查看>>
Linux给/根目录直接扩容_Linux直接给系统盘扩容_Mysql数据盘满了_不用外挂数据盘_迁移mysql数据_直接扩容---Linux工作笔记073
查看>>
linux给用户改变组,Linux用户及用户组的建立,修改和删除
查看>>
linux缓存nscd
查看>>
LINUX编程实战指发送UDP消息
查看>>
linux编程:getenv,putenv,setenv
查看>>
Linux编译FFmpeg支持x265(HEVC) 【failed on redhat 6.5】(updated)
查看>>
linux编译升级应用,Linux如何升级软件版本
查看>>