一、群集基础
1. 群集定义
多台服务器整合为一个整体,对外提供同一 IP访问入口,实现高性能、高可用、负载均衡。
2. 群集三大类型
-
负载均衡群集(LB):提升并发处理能力,分流请求,如 LVS、Nginx 反向代理。
-
高可用群集(HA):减少服务中断,故障自动切换,如 Keepalived。
-
高性能运算群集(HPC):分布式并行计算,如云计算、网格计算。
3. 负载均衡三层结构
-
负载调度器(Director):唯一入口,使用 VIP,主备热备份。
-
服务器池(Server Pool):提供真实服务,使用 RIP,由调度器分发请求。
-
共享存储 :保证节点数据一致,Linux 下常用NFS。
4. LVS 三种工作模式
| 模式 | 全称 | 特点 | 适用场景 |
|---|---|---|---|
| NAT | 地址转换 | 调度器是网关,进出流量都经过它,仅需 1 个公网 IP,安全易配置 | 中小型网站 |
| TUN | IP 隧道 | 节点直接回客戶,跨公网部署 | 跨地域节点 |
| DR | 直接路由 | 节点与调度器同网段,性能最强 | 高并发内网场景 |
二、LVS 核心知识
1. LVS 简介
-
Linux Virtual Server,Linux 内核级负载均衡,由章文嵩博士开发。
-
内核模块:ip_vs ,管理工具:ipvsadm。
2. 四种常用调度算法
-
rr(轮询):轮流分配,不看负载。
-
wrr(加权轮询):按权重分配,性能高的节点权重更大。
-
lc(最少连接):优先分给连接数最少的节点。
-
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
五、实验关键要点
-
NAT 模式下,Web 节点网关必须指向 LVS 调度器。
-
LVS 调度器必须开启内核路由转发。
-
NFS 用于统一网页,保证所有节点内容一致。
-
ipvsadm 规则需保存,否则重启失效。