当前位置:首页 > 虚拟主机 > 正文

新手LVS四层负载均衡器安装配置全攻略,遇到常见问题如何解决?

LVS安装配置详解

LVS(Linux Virtual Server)是Linux环境下实现负载均衡的经典方案,通过内核模块IPVS实现四层(TCP/UDP)负载均衡,结合Keepalived实现高可用,广泛应用于Web服务器、应用服务器等场景,本文将详细介绍LVS的安装、配置及常见问题,帮助读者快速部署负载均衡环境。

LVS

LVS通过主控节点(Master)和后端节点(Backend)协同工作实现负载均衡:主控节点负责分发请求至后端节点,后端节点提供实际服务,其核心组件包括:

  • IPVS:内核模块,负责请求分发和会话保持;
  • Keepalived:实现主控节点高可用,当主控节点故障时,备节点接管虚拟IP(VIP);
  • 后端服务器:接收分发请求并提供服务。

环境准备

  1. 硬件要求

    • 主控节点:至少1台,配置双网卡(用于内网通信和虚拟IP);
    • 后端节点:至少2台,配置与主控节点内网互通的网络接口。
  2. 软件要求

    • 操作系统:CentOS 7/8(或Ubuntu 18.04+),需安装EPEL源(CentOS)或 Universe源(Ubuntu);
    • 核心组件:ipvsadm(负载均衡工具)、keepalived(高可用工具)、net-tools(网络工具)。
  3. 网络规划

    | 组件 | 内网IP | 虚拟IP(NAT/DR模式) |

    |——|——–|————————|

    | 主控节点1 | 192.168.1.100 | 192.168.1.200(NAT) / 192.168.1.200(DR) |

    | 后端节点1 | 192.168.1.10 | – |

    | 后端节点2 | 192.168.1.11 | – |

LVS安装

  1. 安装依赖包

    • CentOS 7/8: sudo yum install -y epel-release net-tools ipvsadm keepalived
    • Ubuntu 18.04+: sudo apt update && sudo apt install -y net-tools ipvsadm keepalived
  2. 启用内核参数

    编辑 /etc/sysctl.conf 文件,确保以下参数生效(需重启后生效):

    net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.arp_ignore = 2 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.route_localnet = 1

    重启内核参数:

    sudo sysctl -p

LVS配置

LVS支持三种负载均衡模式,根据业务需求选择:

  • NAT模式:四层负载均衡,适合HTTP/HTTPS等无状态服务,后端服务器使用私有IP;
  • DR模式:四层负载均衡,后端服务器需配置共享IP,数据包不经过主控节点转发;
  • TUN模式:四层负载均衡,通过隧道连接后端服务器,适合跨网段场景。

NAT模式配置(以WRR调度为例)

  • 主控节点配置

    # 创建虚拟服务(虚拟IP:80,WRR调度) ipvsadm -A -t 192.168.1.200:80 -s wrr # 添加后端服务器(NAT模式,端口80) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -m # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -m
  • 后端节点配置

    新手LVS四层负载均衡器安装配置全攻略,遇到常见问题如何解决? 第1张

    • 确保后端节点网络可达主控节点;
    • 防火墙允许80端口(如CentOS): sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --reload

DR模式配置(以RR调度为例)

  • 主控节点配置

    # 创建虚拟服务(虚拟IP:80,RR调度) ipvsadm -A -t 192.168.1.200:80 -s rr # 添加后端服务器(DR模式,权重1) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -d 192.168.1.10 -w 1 # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -d 192.168.1.11 -w 1
  • 后端节点配置

    • 在后端节点配置网络接口(如eth0)使用虚拟IP(192.168.1.200),并设置网关为虚拟IP: sudo ifconfig eth0:0 192.168.1.200 netmask 255.255.255.255 up sudo route add -host 192.168.1.200 dev eth0:0
    • 防火墙允许80端口。

TUN模式配置(以RR调度为例)

  • 主控节点配置

    # 创建虚拟服务(虚拟IP:80,RR调度) ipvsadm -A -t 192.168.1.200:80 -s rr # 添加后端服务器(TUN模式,隧道接口为eth0) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.10:80 -i eth0 -w 1 # 添加第二个后端服务器 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.11:80 -i eth0 -w 1
  • 后端节点配置

    • 在后端节点安装iproute2并配置隧道接口: sudo apt install -y iproute2 sudo ip tunnel add sit0 mode sit remote 192.168.1.100 local 192.168.1.10 sudo ip link set sit0 up sudo ip addr add 192.168.1.200/32 dev sit0
    • 防火墙允许80端口。

测试与验证

  1. 访问虚拟IP

    在客户端执行:

    若配置正确,请求会随机分配至后端节点(可通过后端服务器的访问日志验证)。

    新手LVS四层负载均衡器安装配置全攻略,遇到常见问题如何解决? 第2张

    新手LVS四层负载均衡器安装配置全攻略,遇到常见问题如何解决? 第3张

  2. 会话保持

    使用curl多次访问,检查后端节点的访问日志(如/var/log/httpd/access_log),若会话ID一致,说明LVS会话保持生效。

    常见问题与优化

    1. 无法访问虚拟IP

      • 检查内核参数是否启用IP转发(net.ipv4.ip_forward=1);
      • 验证ipvsadm配置是否正确(使用ipvsadm -L查看规则);
      • 确保后端节点网络可达主控节点。
    2. 负载均衡效果不明显

      • 调整调度算法(如从RR改为WRR),根据业务需求优化权重分配;
      • 监控后端节点的CPU/内存使用率,避免过载。

    FAQs

    1. Q:LVS NAT模式和DR模式的主要区别是什么?

      • NAT模式:主控节点通过NAT将请求转发至后端服务器,后端服务器使用私有IP,适合无状态服务;
      • DR模式:后端服务器配置与主控节点相同的虚拟IP,数据包直接发送至后端,无需主控节点转发,性能更高,但后端需配置共享IP。
    2. Q:如何实现LVS的高可用?

      使用Keepalived实现主控节点虚拟IP漂移:

      • 在主控节点配置keepalived,设置虚拟IP(如192.168.1.200)漂移至备节点;
      • 当主节点故障时,备节点自动接管虚拟IP,客户端无需修改配置即可访问服务。

    通过以上步骤,可快速部署LVS负载均衡环境,实现高并发下的服务扩展和高可用保障。

0