目录
[一、LVS 与群集技术基础](#一、LVS 与群集技术基础)
[1.1 群集技术概述](#1.1 群集技术概述)
[1.2 负载均衡群集的分层结构](#1.2 负载均衡群集的分层结构)
[1.3 负载均衡工作模式](#1.3 负载均衡工作模式)
[二、LVS 虚拟服务器核心组件与配置](#二、LVS 虚拟服务器核心组件与配置)
[2.1 LVS 内核模块与管理工具](#2.1 LVS 内核模块与管理工具)
[2.2 负载调度算法解析](#2.2 负载调度算法解析)
[2.3 ipvsadm 管理工具实战](#2.3 ipvsadm 管理工具实战)
[三、NFS 共享存储服务配置](#三、NFS 共享存储服务配置)
[3.1 NFS 服务基础配置](#3.1 NFS 服务基础配置)
[3.2 客户端访问 NFS 共享](#3.2 客户端访问 NFS 共享)
[四、案例:LVS-NAT 负载均衡群集](#四、案例:LVS-NAT 负载均衡群集)
[4.1 案例环境准备](#4.1 案例环境准备)
[4.2 配置负载调度器](#4.2 配置负载调度器)
[4.3 配置真实服务器节点](#4.3 配置真实服务器节点)
[4.4 测试 LVS 群集效果](#4.4 测试 LVS 群集效果)
简介
在当今互联网应用场景中,单台服务器早已无法满足高并发、高可用的服务需求。LVS(Linux Virtual Server)作为 Linux 平台下的高性能负载均衡解决方案,通过整合多台服务器资源,以统一入口提供服务,成为企业构建高可用集群的核心技术之一。
一、LVS 与群集技术基础
1.1 群集技术概述
群集(Cluster)是一组服务器的集合体,对外表现为一个整体服务单元。根据目标不同,群集主要分为三类:
- 负载均衡群集:提升系统响应能力,处理高并发请求(如 DNS 轮询、反向代理)
- 高可用群集:确保服务连续性,减少中断时间(如双机热备、故障切换)
- 高性能运算群集:整合计算资源,实现分布式运算(如云计算、网格计算)
1.2 负载均衡群集的分层结构
典型的负载均衡群集包含三个层次:
- 负载调度器:唯一入口,使用群集 IP(VIP),支持主备热备
- 服务器池:真实服务器(RIP)组成,处理调度器分发的请求
- 共享存储:确保各节点数据一致性,常用 NFS 或 NAS
1.3 负载均衡工作模式
LVS 支持三种核心工作模式:
- NAT 模式(地址转换):调度器作为网关,服务器使用私有 IP,安全性高
- TUN 模式(IP 隧道):服务器分散在公网,通过隧道与调度器通信
- DR 模式(直接路由):服务器与调度器同网络,性能更高
二、LVS 虚拟服务器核心组件与配置
2.1 LVS 内核模块与管理工具
LVS 作为 Linux 内核模块(ip_vs),默认已编译。可通过以下命令加载并查看版本:
modprobe ip_vs # 手动加载ip_vs模块
cat /proc/net/ip_vs # 查看LVS模块版本信息
2.2 负载调度算法解析
LVS 提供多种调度算法,常用四种:
- 轮询(RR):顺序分配请求,不考虑服务器负载
- 加权轮询(WRR):按权重分配,性能高的节点承担更多请求
- 最少连接(LC):将请求分配给连接数最少的节点
- 加权最少连接(WLC):结合权重与连接数,动态调整分配
2.3 ipvsadm 管理工具实战
(1)安装 ipvsadm 工具
dnf install ipvsadm # 在OpenEuler系统中安装ipvsadm管理工具
ipvsadm -v # 查看ipvsadm版本信息
(2)创建虚拟服务器
ipvsadm -A -t 172.16.16.172:80 -s rr # -A添加虚拟服务器,-t指定VIP和端口,-s指定轮询算法
(3)添加真实服务器节点
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1 # -a添加真实服务器,-r指定RIP和端口,-m指定NAT模式,-w设置权重为1
(4)查看群集状态
ipvsadm -ln # -l列表显示,-n以数字形式显示IP和端口,避免DNS解析
(5)保存与恢复策略
ipvsadm-save > /etc/sysconfig/ipvsadm # 保存当前LVS策略到配置文件
systemctl start ipvsadm # 启动ipvsadm服务,应用保存的策略
三、NFS 共享存储服务配置
3.1 NFS 服务基础配置
NFS(网络文件系统)用于群集节点间数据共享,基于 RPC 机制实现:
(1)安装 NFS 服务组件
yum -y install nfs-utils rpcbind # 安装NFS服务和RPC支持组件
systemctl enable nfs-server rpcbind # 设置服务开机自启动
(2)配置共享目录
vi /etc/exports # 编辑NFS配置文件
# 添加以下内容(示例):
/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash) # 共享/opt/wwwroot目录给192.168.10.0/24网段,允许读写
(3)启动 NFS 服务
systemctl start rpcbind # 先启动RPC服务
systemctl start nfs-server # 再启动NFS服务
netstat -anpt | grep rpc # 检查RPC相关端口是否正常监听
(4)查看共享目录
showmount -e # 查看本机发布的NFS共享目录
3.2 客户端访问 NFS 共享
(1)客户端环境准备
yum -y install rpcbind nfs-utils # 安装客户端所需组件
systemctl enable rpcbind # 启用RPC服务并设置自启动
systemctl start rpcbind
(2)手动挂载 NFS 共享
mount 192.168.10.104:/opt/wwwroot /var/www/html # 挂载NFS共享目录到本地路径
tail -1 /etc/mtab # 确认挂载结果
(3)设置自动挂载
vi /etc/fstab # 编辑fstab文件
# 添加以下内容:
192.168.10.104:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0 # _netdev参数表示设备依赖网络
四、案例:LVS-NAT 负载均衡群集
4.1 案例环境准备
|------|-----------------|----------------|---------------|
| 主机 | 操作系统 | IP 地址 | 应用 |
| lvs | OpenEuler 24.03 | 192.168.10.101 | ipvsadm(调度器) |
| web1 | OpenEuler 24.03 | 192.168.10.102 | Apache(真实服务器) |
| web2 | OpenEuler 24.03 | 192.168.10.103 | Apache(真实服务器) |
| nfs | OpenEuler 24.03 | 192.168.10.104 | NFS(共享存储) |
4.2 配置负载调度器
(1)开启路由转发
vi /etc/sysctl.conf # 编辑系统参数配置文件
# 添加:
net.ipv4.ip_forward=1 # 启用IP转发功能
sysctl -p # 立即生效配置
(2)配置 VIP 地址
ifconfig ens36 inet 192.168.74.129 netmask 255.255.255.0 # 为ens36网卡配置VIP地址
# 若网卡配置文件不存在,创建并编辑:
vi /etc/sysconfig/network-scripts/ifcfg-ens36
# 内容示例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.74.129
NETMASK=255.255.255.0
(3)配置 LVS 负载策略
ipvsadm -C # 清除原有LVS策略
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 # 添加真实服务器1,NAT模式,权重1
ipvsadm -a -t 192.168.74.129:80 -r 192.168.10.103:80 -m -w 1 # 添加真实服务器2,NAT模式,权重1
ipvsadm --save # 保存LVS策略
systemctl enable ipvsadm # 设置ipvsadm服务开机自启动
4.3 配置真实服务器节点
(1)设置网关指向调度器
route del default gw 192.168.10.254 # 删除原有默认网关
route add default gw 192.168.10.101 # 设置LVS调度器为新网关
(2)安装 Web 服务并配置
yum -y install httpd # 安装Apache服务
mount 192.168.10.104:/opt/wwwroot /var/www/html # 挂载NFS共享目录
vi /var/www/html/index.html # 创建测试网页(不同节点可设置不同内容用于测试)
# 示例内容:
<h1>LVS负载均衡群集--节点1测试网页</h1>
systemctl start httpd # 启动Apache服务
systemctl enable httpd # 设置开机自启动
4.4 测试 LVS 群集效果
(1)查看 LVS 节点状态
ipvsadm -ln # 查看LVS群集配置和节点状态
# 输出示例:
TCP 192.168.74.129:80 rr
->192.168.10.102:80 Masq 1 0 0
->192.168.10.103:80 Masq 1 0 0
(2)查看连接记录
ipvsadm -lnc # 查看客户端连接详细信息
(3)浏览器访问测试
通过浏览器多次访问http://192.168.74.129
,观察网页内容是否在不同节点间切换,验证负载均衡效果。
五、总结
LVS-NAT 模式作为最基础的负载均衡方案,通过地址转换实现请求分发,具有配置简单、安全性高的特点,适合中小规模应用场景。在实际生产环境中,可根据需求进一步扩展:
- 性能优化:切换至 DR 模式或 TUN 模式,提升吞吐量
- 高可用增强:结合 Keepalived 实现调度器热备
- 复杂场景:与 Docker、Kubernetes 等容器技术结合,构建弹性集群
- 监控体系:集成 Prometheus、Grafana 等工具,实时监控集群状态
LVS 作为 Linux 内核级的负载均衡方案,凭借其高效性和稳定性,在金融、电商、云计算等领域广泛应用。掌握 LVS 核心原理与配置,是构建高可用、可扩展服务架构的重要基础。