LVS 负载均衡群集

一、群集基础

1. 群集定义

多台服务器整合为一个整体,对外提供同一 IP访问入口,实现高性能、高可用、负载均衡。

2. 群集三大类型

  • 负载均衡群集(LB):提升并发处理能力,分流请求,如 LVS、Nginx 反向代理。

  • 高可用群集(HA):减少服务中断,故障自动切换,如 Keepalived。

  • 高性能运算群集(HPC):分布式并行计算,如云计算、网格计算。

3. 负载均衡三层结构

  1. 负载调度器(Director):唯一入口,使用 VIP,主备热备份。

  2. 服务器池(Server Pool):提供真实服务,使用 RIP,由调度器分发请求。

  3. 共享存储 :保证节点数据一致,Linux 下常用NFS

4. LVS 三种工作模式

模式 全称 特点 适用场景
NAT 地址转换 调度器是网关,进出流量都经过它,仅需 1 个公网 IP,安全易配置 中小型网站
TUN IP 隧道 节点直接回客戶,跨公网部署 跨地域节点
DR 直接路由 节点与调度器同网段,性能最强 高并发内网场景

二、LVS 核心知识

1. LVS 简介

  • Linux Virtual Server,Linux 内核级负载均衡,由章文嵩博士开发。

  • 内核模块:ip_vs ,管理工具:ipvsadm

2. 四种常用调度算法

  1. rr(轮询):轮流分配,不看负载。

  2. wrr(加权轮询):按权重分配,性能高的节点权重更大。

  3. lc(最少连接):优先分给连接数最少的节点。

  4. wlc(加权最少连接):结合权重与连接数,企业最常用。

3. ipvsadm 常用命令

复制代码
# 加载内核模块
modprobe ip_vs
​
# 清除原有策略
ipvsadm -C
​
# 创建虚拟服务器(VIP:192.168.74.129:80,算法rr)
ipvsadm -A -t 192.168.74.129:80 -s rr
​
# 添加真实服务器(-m NAT模式,-w 权重)
ipvsadm -a -t 192.168.74.129:80 -r 192.168.10.102:80 -m -w 1
ipvsadm -a -t 192.168.74.129:80 -r 192.168.10.103:80 -m -w 1
​
# 查看规则
ipvsadm -ln
​
# 查看连接状态
ipvsadm -lnc
​
# 保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl enable ipvsadm

三、NFS 共享存储(群集统一数据)

1. NFS 服务端配置

复制代码
# 安装依赖
yum install -y nfs-utils rpcbind
systemctl enable --now rpcbind nfs-server
​
# 创建共享目录
mkdir -p /opt/wwwroot
​
# 配置共享(允许192.168.10.0/24读写)
echo "/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)" >> /etc/exports
​
# 生效配置
exportfs -rv
showmount -e  # 查看共享

2. NFS 客户端挂载

复制代码
yum install -y nfs-utils rpcbind
systemctl enable --now rpcbind
​
# 临时挂载
mount 192.168.10.104:/opt/wwwroot /var/www/html
​
# 开机自动挂载
echo "192.168.10.104:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0" >> /etc/fstab
mount -a

四、LVS-NAT 模式实验(完整步骤)

1. 实验环境

角色 系统 IP 地址 作用
LVS 调度器 openEuler 内网:192.168.10.101外网 VIP:192.168.74.129 负载分发
Web 节点 1 openEuler 192.168.10.102 提供 HTTP 服务
Web 节点 2 openEuler 192.168.10.103 提供 HTTP 服务
NFS 存储 openEuler 192.168.10.104 共享网页数据

2. LVS 调度器配置

1)开启路由转发

复制代码
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

2)配置双网卡(外网 VIP:192.168.74.129)

复制代码
ifconfig ens37 192.168.74.129 netmask 255.255.255.0 up

3)配置 LVS 规则

bash 复制代码
yum install -y ipvsadm
ipvsadm -C
ipvsadm -A -t 192.168.74.129:80 -s rr
ipvsadm -a -t 192.168.74.129:80 -r 192.168.10.102:80 -m -w 1
ipvsadm -a -t 192.168.74.129:80 -r 192.168.10.103:80 -m -w 1
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl enable --now ipvsadm

3. Web 节点服务器配置(两台相同操作)

1)修改网关指向 LVS 内网 IP

bash 复制代码
route del default gw 原网关
route add default gw 192.168.10.101

2)安装 HTTP 服务并挂载 NFS

bash 复制代码
yum install -y httpd
systemctl enable --now httpd
​
# 挂载NFS共享目录
mount 192.168.10.104:/opt/wwwroot /var/www/html
​
# 测试页面
echo "<h1>LVS-NAT 测试 Web1</h1>" > /var/www/html/index.html

4. 测试验证

1)浏览器访问 VIP:http://192.168.74.129

2)多次刷新,页面在 Web1、Web2 之间切换,说明负载均衡生效。

3)调度器查看状态

复制代码
ipvsadm -ln
ipvsadm -lnc

五、实验关键要点

  1. NAT 模式下,Web 节点网关必须指向 LVS 调度器

  2. LVS 调度器必须开启内核路由转发

  3. NFS 用于统一网页,保证所有节点内容一致。

  4. ipvsadm 规则需保存,否则重启失效。

相关推荐
SkyWalking中文站11 小时前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站1 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ1 天前
Kubeneters HA Cluster部署
运维
江华森2 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森2 天前
Matplotlib 数据绘图基础入门
运维
江华森2 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF6 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--8 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森8 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜8 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https