LVS-NAT 负载均衡群集

目录

简介

[一、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 负载均衡群集的分层结构

典型的负载均衡群集包含三个层次:

  1. 负载调度器:唯一入口,使用群集 IP(VIP),支持主备热备
  2. 服务器池:真实服务器(RIP)组成,处理调度器分发的请求
  3. 共享存储:确保各节点数据一致性,常用 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 模式作为最基础的负载均衡方案,通过地址转换实现请求分发,具有配置简单、安全性高的特点,适合中小规模应用场景。在实际生产环境中,可根据需求进一步扩展:

  1. 性能优化:切换至 DR 模式或 TUN 模式,提升吞吐量
  2. 高可用增强:结合 Keepalived 实现调度器热备
  3. 复杂场景:与 Docker、Kubernetes 等容器技术结合,构建弹性集群
  4. 监控体系:集成 Prometheus、Grafana 等工具,实时监控集群状态

LVS 作为 Linux 内核级的负载均衡方案,凭借其高效性和稳定性,在金融、电商、云计算等领域广泛应用。掌握 LVS 核心原理与配置,是构建高可用、可扩展服务架构的重要基础。

相关推荐
zhcong_2 小时前
LVS+Keepalived高可用群集
linux·运维·lvs
EutoCool8 小时前
【项目】在线OJ(负载均衡式)
运维·c++·stl·负载均衡
别骂我h10 小时前
LVS +Keepalived高可用群集
linux·运维·lvs
2401_8368365912 小时前
LVS-DR群集
服务器·网络·lvs
5283012 小时前
LVS+Keepalived高可用群集
linux·服务器·lvs
YUNYINGXIA12 小时前
部署LVS-DR群集
lvs
澜兮子12 小时前
LVS-DR高可用-Keepalived
服务器·网络·lvs
伤不起bb1 天前
LVS 负载均衡群集
linux·运维·负载均衡·lvs
伤不起bb1 天前
LVS+Keepalived 高可用群集
linux·服务器·lvs
付出不多1 天前
LVS+keepalived高可用群集
网络·智能路由器·lvs