LVS服务器

LVS 深度解析:定义、核心功能与实操实验(含生产级配置)

LVS(Linux Virtual Server,Linux 虚拟服务器)是由章文嵩博士主导开发的 内核级负载均衡器,集成于 Linux 内核(2.4.x 及以上版本),核心定位是为后端集群提供高性能、高可用的流量分发能力,是企业级高并发架构(如电商、金融系统)的核心组件之一。

一、LVS 是什么?(负载均衡器的内核级实现)

1. 核心本质

  • 内核态工作:LVS 直接在 Linux 内核的 TCP/IP 协议栈中处理请求转发,无需用户态与内核态切换(区别于 Nginx、HAProxy 等应用层负载均衡),性能损耗极低,支持 10 万 + 并发连接。
  • 负载均衡器(LB)角色:作为前端入口,接收客户端请求,通过预设算法分发到后端多台 Real Server(真实应用服务器),实现 "请求分流、压力均衡"。
  • 无应用依赖:仅转发 TCP/UDP 层请求,不解析应用层数据(如 HTTP、MySQL 协议),兼容性极强,可适配任意应用服务(Web、数据库、缓存等)。

2. 核心组件

二、LVS 干什么用?(核心价值与应用场景)

1. 核心功能

  • 流量分流与负载均衡:将高并发请求均匀分发到多台 RS,避免单台服务器过载,提升系统吞吐量(如双 11 电商流量峰值分流)。
  • 高可用(HA)保障:通过健康检查机制实时监测 RS 状态,若某台 RS 故障,自动将请求转发到其他正常节点,避免单点故障。
  • 隐藏后端节点:客户端仅能看到 DS 的外网 IP(VIP),无法直接访问 RS,提升后端集群的安全性。
  • 扩展性支持:无需修改前端配置,新增 / 下线 RS 即可扩展 / 缩减集群容量,实现弹性伸缩。

2. 适用场景

  • 高并发、高性能需求:如日均 PV 千万级的 Web 网站、高并发 API 接口(优于 Nginx 的性能,适合底层流量分发)。
  • 多服务统一入口:为后端异构服务(Web、数据库、缓存)提供统一负载均衡入口,简化架构。
  • 生产环境高可用架构:搭配 Keepalived 实现 DS 双机热备(避免 LVS 本身单点故障),构建 "LVS+Keepalived+RS 集群" 的高可用架构。

三、LVS 怎么用?(实操实验:NAT 模式部署)

实验目标

搭建 "LVS(DS)+ 2 台 Tomcat(RS)" 的负载均衡架构,实现客户端请求通过 LVS 分发到后端两台 Tomcat,验证分流效果。

实验环境(推荐 VMware 虚拟机,3 台 CentOS 7 主机)

实验步骤(分角色配置,全程命令行实操)

阶段 1:环境准备(所有主机)
  1. 关闭防火墙和 SELinux(实验环境简化,生产环境需按需开放端口):
  1. 保证所有主机可以互通:
  • 客户端能 ping 通 DS 外网 IP(192.168.1.100)。
  • DS 能 ping 通两台 RS 的内网 IP(10.0.0.10、10.0.0.11)。
  • RS 能 ping 通 DS 内网 IP(10.0.0.1)。
阶段 2:配置后端 RS(两台 RS 操作一致)

目标:在 RS 上部署 Tomcat 服务,并配置网关指向 DS(确保响应能通过 DS 返回客户端)。

1.安装 JDK 和 Tomcat(参考之前 Tomcat 部署步骤):

2.修改 Tomcat 默认页面(便于区分两台 RS):

3.启动 Tomcat 并验证:

4.配置 RS 网关指向 DS 内网 IP(关键!确保响应路由正确):

阶段 3:配置 LVS 服务器(DS)

目标:安装 IPVS 工具,配置 LVS-NAT 模式,设置调度算法和后端 RS。

1.安装 IPVS 管理工具(ipvsadm):

2.开启 DS 的 IP 转发功能(NAT 模式必需,实现数据包转发):

3.配置 LVS 规则(NAT 模式,轮询算法):

4.查看 LVS 规则(验证配置):

阶段 4:测试验证(客户端)

目标:访问 DS 外网 IP,验证请求是否被 LVS 分发到两台 RS。

1.客户端打开浏览器或使用 curl 命令访问:

2.预期结果:

  • 第一次返回:<h1>RS1 - 10.0.0.10</h1>
  • 第二次返回:<h1>RS2 - 10.0.0.11</h1>
  • 交替出现(轮询算法),说明 LVS 负载均衡生效!

3.查看 LVS 连接状态(DS 上执行):

四、关键配置解释(实验核心参数)

1. LVS 规则参数详解

2. 调度算法选择(实验用 rr,生产按需调整)

3. LVS 三种模式对比(实验用 NAT,生产按需选择)

五、生产环境优化建议

  1. DS 高可用(避免单点故障):搭配 Keepalived 实现 DS 双机热备,配置虚拟 VIP(如 192.168.1.200),客户端访问 VIP,若主 DS 故障,备 DS 自动接管。
  2. 健康检查:LVS 默认无健康检查(仅转发请求,不检测 RS 状态),需结合 Keepalived 或脚本实现 RS 健康检查,故障 RS 自动下线,恢复后自动上线。
  3. 调度算法选择 :生产环境优先使用wlc(加权最少连接),根据 RS 性能配置权重(如高配 RS 权重设为 2,低配设为 1)。
  4. 日志监控:开启 LVS 日志(需配置内核参数),结合 Zabbix、Prometheus 监控 DS 负载、RS 连接数,及时排查问题。
  5. 安全加固:DS 仅开放必要端口(如 80、443),RS 仅允许 DS 内网 IP 访问,避免直接暴露在公网。
相关推荐
姚不倒5 分钟前
负载均衡的概念、策略以及两个核心组件 Nginx 和 Kube-proxy 的对比。
运维·nginx·云原生·kubernetes
wubba lubba dub dub75023 分钟前
第二十八周 学习周报
学习
思成不止于此31 分钟前
MySQL 查询实战(三):排序与综合练习
数据库·笔记·学习·mysql
列逍40 分钟前
Linux进程(三)
linux·运维·服务器·环境变量·命令行参数
QiZhang | UESTC1 小时前
学习日记day42
学习
深海潜水员1 小时前
OpenGL 学习笔记 第一章:绘制一个窗口
c++·笔记·学习·图形渲染·opengl
水天需0101 小时前
VS Code Ctrl+Shift+V 预览 Markdown 无效的解决方案
linux
摇滚侠2 小时前
ElasticSearch 教程入门到精通,文档创建查询修改删除,笔记10、11、12
笔记·elasticsearch
大、男人2 小时前
DeepAgent学习
人工智能·学习
测试人社区—66793 小时前
提升测试覆盖率的有效手段剖析
人工智能·学习·flutter·ui·自动化·测试覆盖率