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用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
做个文艺程序员1 小时前
Linux第12篇:性能监控与瓶颈分析——CPU/内存/IO/网络全维度
linux·运维·网络
HAPPY酷1 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda
hai3152475433 小时前
九章空间几何对照直译法:通用芯片 / 定制专用芯片 编译适配规则
linux·汇编·bash
ton_tom3 小时前
设备驱动程序编程-Linux2.6.10-kdb安装-32位
linux·运维·服务器
dddwjzx3 小时前
嵌入式Linux C应用编程入门——进程 ( 二 )
linux·嵌入式
jieyucx5 小时前
【系统安全铁律】解密 Linux 权限三色数字密码:chmod 最小化赋权与生产环境避坑指南
linux·安全·系统安全·权限·chmod·777
AOwhisky6 小时前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭6 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408
Mr.HeBoYan6 小时前
DPDK为什么越来越少使用rte_ring?——从Lock-Free到Run-to-Completion,重新理解现代DPDK架构演进(上)
linux·网络·算法·性能优化·架构·dpdk