LVS-NAT 负载均衡与共享存储配置

本实验通过配置 LVS-NAT 负载均衡器和 NFS 共享存储,实现多台 Web 服务器(Real Servers)的负载均衡,并确保所有服务器能访问同一共享文件。

  • 实验步骤

LVS 虚拟服务器

root@localhost \~# modprobe ip_vs //加载 ip_vs 模块

root@localhost \~# cat /proc/net/ip_vs //查看 ip_vs 版本信息

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActCon

使用 ipvsadm 管理工具

yum -y install ipvsadm

ipvsadm -v

ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)

创建虚拟服务器

若群集的 VIP 地址为 172.16.16.172,针对 TCP 80 端口提供负载分流服务,使用的调

度算法为轮询,则对应的 ipvsadm 命令操作如下所示。对于负载均衡调度器来说,VIP 必须是本机实际已启用的 IP 地址

ipvsadm -A -t 172.16.16.172:80 -s rr

选项-A 表示添加虚拟服务器,-t 用来指定 VIP 地址及 TCP 端口,-s 用来

指定负载调度算法------轮询(rr)、加权轮询(wrr)、最少连接(lc)、加权最少连接(wlc)

添加服务器节点

为虚拟服务器 172.16.16.172 添加四个服务器节点,IP 地址依次为 192.168.7.21~24,

对应的 ipvsadm 命令操作如下所示。若希望使用保持连接,还应添加"-p 60"选项,其中

60 为保持时间(单位为 s)。

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.1:80 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.2:80 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.3:80 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.4:80 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.5:80 -m -w 1

查看群集节点状态

结合选项-l 可以列表查看 LVS 虚拟服务器,可以指定只查看某一个 VIP 地址(默认为

查看所有),结合选项-n 将以数字形式显示地址、端口等信息。

root@localhost \~# ipvsadm -ln

删除服务器节点

需要从服务器池中删除某一个节点时,使用选项-d。执行删除操作必须指定目标对象,

包括节点地址、虚拟 IP 地址。例如,以下操作将会删除 LVS 群集 172.16.16.172 中的节点

192.168.7.24。

root@localhost \~# ipvsadm -d -r 192.168.122.5 -t 10.1.1.3:80

保存负载分配策略

使用导出/导入工具 ipvsadm-save/ipvsadm-restore 可以保存、恢复 LVS 策略。当然也

可以快速清除、重建负载分配策略。

root@localhost \~# ipvsadm-save > /etc/sysconfig/ipvsadm //保存策略

root@localhost \~# cat /etc/sysconfig/ipvsadm //确认保存结果

root@localhost \~# systemctl stop ipvsadm //停止服务(清除策略)

root@localhost \~# systemctl start ipvsadm //启动服务(重建规则

安装 nfs-utils、rpcbind 软件包

yum -y install nfs-utils rpcbind

root@localhost \~# systemctl enable nfs

root@localhost \~# systemctl enable rpcbind

设置共享目录

mkdir -p /opt/wwwroot

root@localhost \~# vi /etc/exports

启动FNS服务

systemctl start rpcbind

Systemctl start nfs

Netstat -anpt |grep rpc

查看本机发布的 NFS 共享目录

root@localhost \~# showmount -e

安装 rpcbind 软件包,并启动 rpcbind 服务

yum -y install rpcbind nfs-utils

root@localhost \~# systemctl enable rpcbind

root@localhost \~# systemctl start rpcbind

查看共享目录

showmount -e 192.168.122.1

手动挂载 NFS 共享目录

mount 192.168.7.250:/opt/wwwroot /var/www/html

root@localhost \~# tail -1 /etc/mtab

vi /var/www/html/index.html //在客户机创建测试文

Fstab 自动挂载设置

root@localhost \~# vi /etc/fstab

...... //省略部分信息

192.168.122.1:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0

配置负载调度器

(1)开启路由转发规则。

root@localhost \~# vi /etc/sysctl.conf

...... //省略部分信息

net.ipv4.ip_forward = 1

root@localhost \~# sysctl -p

net.ipv4.ip_forward = 1

(2)配置负载分配策略。

root@localhost \~# ipvsadm -C //清除原有策略

root@localhost \~# ipvsadm -A -t 10.1.1.3:80 -s rr

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.1 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.2 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.3 -m -w 1

root@localhost \~# ipvsadm -a -t 10.1.1.3:80 -r 192.168.122.4 -m -w 1

root@localhost \~# ipvsadm --save //保存策略

root@localhost \~# systemctl enable ipvsadm

Created symlink from /etc/systemd/system/multi-user.target.wants/ipvsadm.service to

/usr/lib/systemd/system/ipvsadm.service.

3.配置节点服务器

所有的节点服务器均使用相同的配置,包括 httpd 服务端口、网站文档内容。实际上各

节点的网站文档可存放在共享存储设备中,从而免去同步的过程。但在案例调试阶段可以为

各节点采用不同的网页,以便测试负载均衡效果。

注意:节点服务器的网关必须指向 LVS 调度器。

(1)安装 httpd,创建测试网页。

root@localhost \~# yum -y install httpd

root@localhost \~# mount 192.168.122.1:/opt/wwwroot /var/www/html

//实验时可在不同节点配置不同网页内容测试 LVS,最后在使用 NFS 共享存储统一页面

root@localhost \~# vi /var/www/html/index.html

<h1>LVS 负载均衡群集------测试网页</h1>

(2)启用 httpd 服务程序。

root@localhost \~# systemctl start httpd

root@localhost \~# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service

to /usr/lib/systemd/system/httpd.service.

4.测试 LVS 群集

安排多台测试机,从 Internet 中直接访问 http://10.1.1.3/,将能够看到由真

实服务器提供的网页内容------如果各节点的网页不同,则不同客户机看到的网页可能也不

一样(可以多刷新几次)。

在 LVS 负载调度器中,通过查看节点状态可以观察当前的负载分配情况,对于轮询算法

来说,每个节点所获得的连接负载应大致相当。

root@localhost \~# ipvsadm -ln

root@localhost \~# ipvsadm -lnc //可以查看客户端访问详细信息及状态,便于排查问题

IPVS connection entries

pro expire state source virtual destination

相关推荐
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush49 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5209 小时前
Linux 11 动态监控指令top
linux
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈11 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
凡人叶枫12 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
2601_9618752412 小时前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj12 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei13 小时前
linux 系统目录详解
linux·运维·服务器
森G13 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt