LVS-NAT 负载均衡群集

发布于:2025-05-31 ⋅ 阅读:(26) ⋅ 点赞:(0)

目录

简介

一、LVS 与群集技术基础

1.1 群集技术概述

1.2 负载均衡群集的分层结构

1.3 负载均衡工作模式

二、LVS 虚拟服务器核心组件与配置

2.1 LVS 内核模块与管理工具

2.2 负载调度算法解析

2.3 ipvsadm 管理工具实战

三、NFS 共享存储服务配置

3.1 NFS 服务基础配置

3.2 客户端访问 NFS 共享

四、案例:LVS-NAT 负载均衡群集

4.1 案例环境准备

4.2 配置负载调度器

4.3 配置真实服务器节点

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 核心原理与配置,是构建高可用、可扩展服务架构的重要基础。