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 规则需保存,否则重启失效。

相关推荐
IMPYLH2 小时前
Linux 的 nl 命令
linux·运维·服务器·bash
卤炖阑尾炎2 小时前
从原理到实战:LVS 负载均衡集群全解析(OpenEuler 环境)
运维·负载均衡·lvs
南境十里·墨染春水2 小时前
linux学习进展 主函数的参数
linux·运维·学习
ZGi.ai2 小时前
用Agent编排实现合同审查自动化:完整实现过程
运维·人工智能·自动化
魔都吴所谓2 小时前
【Ubuntu】22.04安装 CMake 3.24
linux·运维·ubuntu
守城小轩2 小时前
基于Chrome140的INS账号自动化——需求分析&环境搭建(一)
运维·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
w6100104663 小时前
CKA-2026-resources
运维·docker·容器·cka
程序员老邢3 小时前
【技术底稿 11】内网私有 Docker 镜像仓库 Registry2 全流程部署(多机共享,告别离线拷贝)
运维·docker·容器·架构·devops
SPC的存折3 小时前
6、MySQL设置TLS加密访问
linux·运维·服务器·数据库·mysql