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 ![](https://i-blog.csdnimg.cn/direct/355c96a47b3945ca9e1860023a56add0.png) 删除服务器节点 需要从服务器池中删除某一个节点时,使用选项-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 //确认保存结果 ![](https://i-blog.csdnimg.cn/direct/95a00407d0584c5a9c1fc31247487498.png) \[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 ![](https://i-blog.csdnimg.cn/direct/6660eea9690f4a2298461a6afdb87c30.png) 启动FNS服务 systemctl start rpcbind Systemctl start nfs Netstat -anpt \|grep rpc ![](https://i-blog.csdnimg.cn/direct/cf49af89179c45769fa567e1d92c30dd.png) 查看本机发布的 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 ![](https://i-blog.csdnimg.cn/direct/a6dcef1c7cb048f1ac88b7494a8abcfd.png) 手动挂载 NFS 共享目录 mount 192.168.7.250:/opt/wwwroot /var/www/html \[root@localhost \~\]# tail -1 /etc/mtab ![](https://i-blog.csdnimg.cn/direct/33d9334d60e9419ab978d87fe1ef29c6.png) 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 ![](https://i-blog.csdnimg.cn/direct/95f77460ffc04246a82a03ebb10fb063.png) (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 //保存策略 ![](https://i-blog.csdnimg.cn/direct/a3c54db9cf03458fb7921d96cd329c85.png) \[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 \LVS 负载均衡群集------测试网页\ (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/,将能够看到由真 实服务器提供的网页内容------如果各节点的网页不同,则不同客户机看到的网页可能也不 一样(可以多刷新几次)。 ![](https://i-blog.csdnimg.cn/direct/0be7964cd7cd4d8bb1ffe3256b5878ac.png) ![](https://i-blog.csdnimg.cn/direct/4686b8f48afb43f3a1b9010d6b96be58.png) 在 LVS 负载调度器中,通过查看节点状态可以观察当前的负载分配情况,对于轮询算法 来说,每个节点所获得的连接负载应大致相当。 \[root@localhost \~\]# ipvsadm -ln ![](https://i-blog.csdnimg.cn/direct/a36049202bfa4d588d2c6263c5fd0cbf.png) \[root@localhost \~\]# ipvsadm -lnc //可以查看客户端访问详细信息及状态,便于排查问题 IPVS connection entries pro expire state source virtual destination

相关推荐
想躺在地上晒成地瓜干23 分钟前
树莓派超全系列文档--(14)无需交互使用raspi-config工具其一
linux·树莓派·raspberrypi·树莓派教程
Shier833_Ww32 分钟前
目标识别与双目测距(1)环境搭建:Ubuntu+yolov5+pcl库
linux·yolo·ubuntu
Kendra9191 小时前
Keepalive+LVS+Nginx+NFS高可用架构
nginx·架构·lvs
唐青枫1 小时前
Linux 历史命令操作教程
linux
愚润求学2 小时前
Linux基础指令(一)
linux·服务器·语法
IEVEl2 小时前
CentOS 7 安装 EMQX (MQTT)
linux·运维·centos
好多知识都想学2 小时前
Centos 7 搭建 jumpserver 堡垒机
linux
vortex53 小时前
深入理解 Linux 文件权限:从 ACL 到扩展属性,解剖底层技术细节与命令应用
linux·运维·服务器
Cyber4K3 小时前
《零基础实战:手把手教你用LNMP环境搭建Discuz论坛》
linux
BTU_YC3 小时前
Cannot find a valid baseurl for repo: centos-sclo-sclo/x86_64
linux·运维·centos·php