服务器测评网
我们一直在努力

虚拟机怎么安装LVS?LVS负载均衡怎么配置

在虚拟机环境中部署LVS(Linux Virtual Server)是掌握四层负载均衡技术的必经之路,也是构建高可用、可扩展网络架构的核心技能。核心上文归纳是:成功的LVS部署关键在于网络模式的选择、VIP(虚拟IP)的正确配置以及Real Server上的ARP抑制处理,通过在虚拟机中模拟生产环境,可以安全地测试NAT模式和DR模式的性能差异,验证调度算法的有效性,从而为后续的企业级集群架构打下坚实基础,以下将基于DR(Direct Routing)模式,详细阐述在虚拟机中从环境规划到服务验证的全过程。

虚拟机怎么安装LVS?LVS负载均衡怎么配置

虚拟机网络环境规划与准备

在开始安装之前,合理的网络规划是LVS成功运行的前提,LVS主要包含两个角色:Director(负载调度器)和Real Server(真实服务器),为了模拟真实的网络流量,建议在虚拟机软件(如VMware或VirtualBox)中创建至少三台虚拟机。

网络配置细节如下:

  1. Director(调度器): 需要配置两张网卡,一张网卡连接外网(NAT或桥接模式),用于接收用户请求;另一张网卡连接内网(仅主机模式),用于与后端Real Server通信,假设外网IP为168.100.10,内网IP为168.200.10
  2. Real Server(后端节点): 配置一张网卡,连接内网(仅主机模式),IP分别为168.200.20168.200.30
  3. VIP(虚拟IP): 这是用户访问的统一入口,IP为168.100.100,在DR模式下,VIP需要同时配置在Director和所有Real Server上。

操作系统与内核准备:
推荐使用CentOS 7或CentOS Stream 8/9作为基础系统,在安装系统时,确保选择“基础设施服务器”或“最小化安装”,部署前,必须关闭所有节点的防火墙(systemctl stop firewalld)并禁用SELinux(setenforce 0),以避免初学者因安全策略拦截导致连接失败,从而专注于LVS核心逻辑的调试。

安装LVS核心管理工具ipvsadm

LVS的功能实际上已经集成在Linux内核中,用户空间的管理工具是ipvsadm,它负责向内核的IPVS模块添加和删除虚拟服务规则。

在Director节点上执行安装:
使用yum install ipvsadm -y命令即可完成安装,安装完成后,可以使用ipvsadm -Ln查看当前规则,此时应该为空,为了确保内核模块已加载,可以执行modprobe ip_vs,如果该命令没有报错,说明内核支持LVS,为了管理方便,建议将ipvsadm的常用参数做成脚本,而不是每次手动输入长命令,这体现了运维自动化的专业思维。

配置Director(调度器)节点

Director是整个集群的入口,其核心任务是定义VIP以及分发策略。

虚拟机怎么安装LVS?LVS负载均衡怎么配置

配置VIP地址:
在Director的外网网卡上绑定VIP,为了防止IP冲突,建议使用ifconfigip addr add命令添加别名IP,而不是直接修改配置文件。ifconfig ens33:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up,这里将子网掩码设置为255.255.255是为了防止ARP请求,这是DR模式配置的关键细节。

定义LVS集群规则:
使用ipvsadm命令添加集群,首先添加一个虚拟服务,指定TCP协议、VIP端口80以及调度算法(如轮询rr或加权最小连接wlc):
ipvsadm -A -t 192.168.100.100:80 -s rr
向该虚拟服务添加后端真实服务器,注意,在DR模式下,转发模式参数为-g
ipvsadm -a -t 192.168.100.100:80 -r 192.168.200.20:80 -g
ipvsadm -a -t 192.168.100.100:80 -r 192.168.200.30:80 -g
Director已经具备了将流量分发给内网节点的能力。

配置Real Server(后端节点)的关键处理

在DR模式下,Real Server处理请求的难点在于ARP响应,如果Real Server和Director在同一网段,当客户端请求VIP时,Real Server可能会抢答ARP请求,导致流量被错误地直接接收,而不经过Director,从而破坏负载均衡架构。必须在Real Server上进行ARP抑制配置

配置VIP在Loopback接口:
在Real Server上,不要将VIP配置在物理网卡上,而是配置在本地回环接口lo上,并修改内核参数。
ifconfig lo:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up

修改内核参数抑制ARP:
编辑/etc/sysctl.conf文件,添加或修改以下参数:
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
执行sysctl -p使配置生效。
专业解释: arp_ignore=1意味着只回答目标IP是本地接口IP的ARP请求;arp_announce=2则禁止使用非本机IP进行ARP通告,这两项配置确保了Real Server拥有VIP但不“声张”,让Director独占对外ARP响应,保证流量必须经过Director进入。

部署Web服务与验证测试

为了验证效果,需要在Real Server上安装并启动Web服务(如Nginx或Apache),并编写不同的首页内容(如“Server 1”和“Server 2”),以便区分流量去向。

虚拟机怎么安装LVS?LVS负载均衡怎么配置

验证流程:

  1. 在Director上执行ipvsadm -Ln,确认规则存在且连接数在增加。
  2. 在客户端(可以是物理机)使用浏览器访问http://192.168.100.100
  3. 预期结果: 刷新页面,内容应该在“Server 1”和“Server 2”之间交替显示(如果使用的是轮询算法)。
  4. 排错思路: 如果无法访问,首先检查Director的转发规则是否正确;其次检查Real Server的Web服务是否监听在0.0.0:80;最后检查ARP抑制参数是否生效,这是DR模式最容易出现问题的地方。

相关问答

Q1:在虚拟机环境中,LVS的NAT模式和DR模式有什么本质区别,应该如何选择?
A: NAT模式要求Real Server的默认网关必须指向Director的DIP,因为回包流量必须经过Director进行地址转换,这会增加Director的负载,容易成为瓶颈,DR模式中,Real Server直接将回包发送给客户端,不经过Director,性能极高,但要求Real Server和Director必须在同一个物理网段(或二层网络互通),在虚拟机测试中,如果网络配置方便,优先推荐使用DR模式,因为它更接近生产环境的高性能架构;如果网络环境复杂(如跨网段),则可以使用NAT模式作为折中方案。

Q2:如何保证LVS调度器(Director)的高可用性,避免单点故障?
A: 单台Director存在单点故障风险,专业的解决方案是引入Keepalived,Keepalived通过VRRP(虚拟路由冗余协议)实现VIP的主备热备,部署两台Director,配置相同的LVS规则,利用Keepalived抢占VIP,当主节点宕机时,备节点会立即接管VIP,并使用ipvsadm同步规则,从而实现秒级故障切换,保障服务不中断。

通过以上步骤,您可以在虚拟机中成功构建一个基于DR模式的高性能LVS负载均衡集群,这不仅验证了Linux内核强大的网络转发能力,也为理解微服务架构中的流量入口治理提供了底层技术支撑,如果您在配置ARP抑制或规则编写过程中遇到问题,欢迎在评论区留言讨论,我们一起解决。

赞(0)
未经允许不得转载:好主机测评网 » 虚拟机怎么安装LVS?LVS负载均衡怎么配置