CentOS 7部署LVS时如何配置DR模式实现高可用负载均衡?

CentOS 7 系统下 LVS 集群部署指南

LVS 基础概念

LVS(Linux Virtual Server)是 Linux 内核实现的负载均衡集群系统,通过 IP 负载均衡技术将网络请求分发至后端多台真实服务器(Real Server),提升服务可用性与处理能力,其核心组件包括 调度器(Director)真实服务器(RS),支持多种调度算法(如轮询 RR、加权轮询 WRR 等)。

CentOS 7部署LVS时如何配置DR模式实现高可用负载均衡?

环境准备与规划

在部署前需明确以下配置:

  • 节点角色:1 台 Director(192.168.1.100)、2 台 RS(192.168.1.101/102),所有节点运行 CentOS 7 系统。
  • 网络拓扑:Director 配置双网卡,内网网卡(eth1)用于连接 RS,外网网卡(eth0)对外提供服务;RS 仅需单网卡(eth0)连接内网。
  • 软件依赖:确保所有节点内核版本 ≥ 3.10(CentOS 7 默认满足),并关闭防火墙 systemctl stop firewalld 及 SELinux setenforce 0

安装与配置 LVS 调度器(Director)

  1. 安装 ipvsadm 工具

    yum install -y ipvsadm  
  2. 配置 Director 双网卡
    编辑 /etc/sysconfig/network-scripts/ifcfg-eth0(外网):

    DEVICE=eth0  
    TYPE=Ethernet  
    ONBOOT=yes  
    BOOTPROTO=static  
    IPADDR=192.168.1.100  
    NETMASK=255.255.255.0  
    GATEWAY=192.168.1.1  
    DNS1=8.8.8.8  

    编辑 /etc/sysconfig/network-scripts/ifcfg-eth1(内网):

    DEVICE=eth1  
    TYPE=Ethernet  
    ONBOOT=yes  
    BOOTPROTO=static  
    IPADDR=192.168.2.100  
    NETMASK=255.255.255.0  
  3. 启用 IP 转发
    修改 /etc/sysctl.conf,添加:

    net.ipv4.ip_forward = 1  

    执行 sysctl -p 生效。

    CentOS 7部署LVS时如何配置DR模式实现高可用负载均衡?

  4. 配置虚拟服务
    使用 ipvsadm 创建虚拟 IP(VIP)与服务规则:

    # 清空现有规则  
    ipvsadm -C  
    # 添加虚拟服务(以 HTTP 为例,端口 80)  
    ipvsadm -A -t 192.168.1.100:80 -s wrr  # 虚拟服务地址 + 端口,调度算法为加权轮询  
    # 添加真实服务器(权重均为 1)  
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.101:80 -g  # 直接路由模式(DR)  
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.102:80 -g  
    # 保存规则  
    service ipvsadm save  

配置真实服务器(RS)

  1. 设置回环接口 VIP
    在每台 RS 上创建虚拟 IP(与 Director 的 VIP 一致),编辑 /etc/sysconfig/network-scripts/ifcfg-lo:0

    DEVICE=lo:0  
    IPADDR=192.168.1.100  
    NETMASK=255.255.255.255  
    ONBOOT=yes  

    启动接口:ifup lo:0,验证 ip addr show lo:0

  2. 调整 ARP 抑制
    防止 RS 响应 ARP 广播(避免与 Director 冲突),编辑 /etc/sysctl.conf

    net.ipv4.conf.all.arp_ignore = 1  
    net.ipv4.conf.all.arp_announce = 2  

    执行 sysctl -p 生效。

  3. 启动 Web 服务(示例):
    安装 Nginx 并启动:

    CentOS 7部署LVS时如何配置DR模式实现高可用负载均衡?

    yum install -y nginx  
    systemctl start nginx  
    echo "RS1" > /usr/share/nginx/html/index.html  # 区分 RS  

测试与验证

  1. 访问 VIP 测试
    从客户端浏览器访问 http://192.168.1.100,观察是否交替显示 RS1/RS2 内容(若使用 RR 算法)。

  2. 查看连接状态
    在 Director 上执行 ipvsadm -L -n,确认 RS 列表及连接状态:

    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.1.100:80 wrr 
    -> 192.168.2.101:80             Route   1      5          0         
    -> 192.168.2.102:80             Route   1      5          0         

常见问题与解决方案

问题现象 可能原因 解决方法
客户端无法访问 VIP 防火墙未关闭 所有节点执行 systemctl stop firewalld
RS 无流量分配 调度器规则错误 检查 ipvsadm -L -n 规则是否正确
RS 响应 ARP 广播冲突 未配置 ARP 抑制 确保 net.ipv4.conf.all.arp_ignore=1

FAQs

Q1:为什么选择 DR 模式而非 NAT?
A:DR 模式(直接路由)性能更高,因数据包无需经过 Director 转发,仅修改 MAC 地址,适合高并发场景;NAT 模式虽配置简单,但易成为瓶颈。

Q2:如何动态添加/删除 RS?
A:使用 ipvsadm 命令动态操作:

  • 添加 RS:ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.103:80 -g
  • 删除 RS:ipvsadm -d -t 192.168.1.100:80 -r 192.168.2.103:80
    操作后无需重启服务,即时生效。

通过以上步骤,即可在 CentOS 7 环境下完成 LVS 集群的稳定部署,实现服务的高可用与负载均衡。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-22 05:51
下一篇 2024-09-28 15:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信