LVS负载均衡群集之NAT模式配置

一、概述

1.1、负载均衡群集

  • 能提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能
  • LB的负载分配依赖于主节点的分流算法

1.2、负载均衡群集的NAT模式

在这里插入图片描述

  • 地址转换(Network Address Translation)
  • 简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
  • 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

二、负载均衡群集架构

  • 第一层:负载调度器(Load Balancer或Director)
  • 第二层:服务器池
  • 第三层:共享存储

三、LVS-NAT部署

3.1、实验环境

在vmware虚拟机中开5台虚拟机

  1. 一台外网客户机,IP为12.0.0.0/24网段
  2. 一台LVS调度器,外网接口为12.0.0.1/24,内网接口192.168.5.1/24
  3. 二台web服务器
    模拟高并发来临时,LVS采用轮询的方式调度后面的服务器;
    IP为192.168.5.10/24和192.168.5.20/24
  4. 一台NFS服务器,为web池子提供存储空间;
    IP为192.168.5.30/24

3.2、实验拓扑

在这里插入图片描述

3.3、NFS服务器配置

  • 添加2块磁盘sdb和sdc为web池子提供存储,生产环境中直接用raid磁盘阵列

在这里插入图片描述

  • 划分磁盘并挂载
[root@nfs ~]# fdisk /dev/sdb    ###创建磁盘分区
##按n,一直回车即可
[root@nfs ~]# fdisk /dev/sdc
[root@nfs ~]# mkfs.xfs /dev/sdb1       ##格式化
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=2621376 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10485504, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5119, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@nfs ~]# mkfs.xfs /dev/sdc1
###省略格式化信息   
[root@nfs ~]# mkdir /aaa   ##创建挂载点
[root@nfs ~]# mkdir /bbb
[root@nfs ~]# vim /etc/fstab        ####磁盘挂载
/dev/sdb1  /aaa  xfs  defaults  0 0
/dev/sdc1  /bbb  xfs  defaults  0 0
[root@nfs ~]# mount -a  ##加载
[root@nfs ~]# df -hT    ###验证挂载

在这里插入图片描述

  • 安装nfs和远程调用包
[root@nfs ~]# rpm -q nfs-utils
[root@nfs ~]# rpm -q rpcbind 
  • 修改配置文件,允许web服务器使用NFS磁盘空间
[root@nfs ~]# vim /etc/exports

/aaa    192.168.5.0/24(rw,sync,no_root_squash)
/bbb    192.168.5.0/24(rw,sync,no_root_squash)
  • 关闭防火墙,启动nfs和远程调用服务
[root@nfs ~]# systemctl stop firewalld.service  ###关闭防火墙
[root@nfs ~]# setenforce 0
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs opt]# showmount -e    ##查看共享出去的磁盘
Export list for nfs:
/bbb 192.168.5.0/24
/aaa 192.168.5.0/24

3.4、两个web服务器配置

  • web1配置
[root@web1 ~]# yum install httpd -y   ###安装apache服务
[root@web1 ~]# systemctl stop firewalld.service  ###关闭防火墙
[root@web1 ~]# setenforce 0
[root@web1 ~]# vim /etc/fstab  ###将nfs共享的空间挂载到本地
192.168.5.30:/aaa  /var/www/html   nfs    defaults,_netdev  0 0 
[root@web1 ~]# df -hT  ##查看挂载

在这里插入图片描述

  • 在web首页中写入相关数据
[root@web1 ~]# cd /var/www/html
[root@web1 html]# vim index.html
<h1>this is aaa web </h1>
  • 启动httpd服务
[root@web1 html]# systemctl start httpd
[root@web1 html]# netstat -ntap|grep httpd
tcp        0      0 192.168.5.10:80         0.0.0.0:*               LISTEN      106928/httpd        
  • 同理配置web2
[root@web2~]# yum install httpd -y   ###安装apache服务
[root@web2~]# systemctl stop firewalld.service  ###关闭防火墙
[root@web2~]# setenforce 0
[root@web2]# vim /etc/fstab  ###将nfs共享的空间挂载到本地
192.168.5.30:/bbb  /var/www/html   nfs    defaults,_netdev  0 0 
[root@web2 ~]# df -hT  ##查看挂载

在这里插入图片描述

  • 在web首页中写入相关数据
[root@web2 ~]# cd /var/www/html
[root@web2 html]# vim index.html
<h1>this is bbb web </h1>
  • 启动httpd服务
[root@web2 html]# systemctl start httpd
[root@web2 html]# netstat -ntap|grep httpd
tcp        0      0 192.168.5.20:80         0.0.0.0:*               LISTEN      106928/httpd        

3.5、LVS服务器配置

  • 安装管理工具
yum  install ipvsadm -y
  • 配置内网卡和外网卡

在这里插入图片描述
在这里插入图片描述

  • 开启路由转发
[root@lvs ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@lvs etc]# sysctl -p           ##加载
net.ipv4.ip_forward = 1
  • 设置防火墙规则
[root@lvs etc]# iptables -F
[root@lvs etc]# iptables -t  nat -F
[root@lvs etc]# iptables -t nat -I POSTROUTING  -s 192.168.5.10/24 -o ens37 -j SNAT --to-source 12.0.0.1
[root@lvs etc]# iptables -t nat -I POSTROUTING  -s 192.168.5.20/24 -o ens37 -j SNAT --to-source 12.0.0.1
  • 加载lvs模块并开启
[root@lvs etc]# modprobe ip_vs
[root@lvs etc]# ipvsadm --save > /etc/sysconfig/ipvsadm 
[root@lvs etc]# systemctl start ipvsadm.service
  • 配置端口映射和轮询算法,可以直接编写个sh脚本然后执行
[root@lvs etc]#  vim aaa.sh
ipvsadm -A -t 12.0.0.1:80 -s rr ##rr轮询算法        
ipvsadm -a -t 12.0.0.1:80 -r 192.168.5.10:80 -m  ##采用轮训机制
ipvsadm -a -t 12.0.0.1:80 -r 192.168.5.20:80 -m
[root@lvs etc]#  bash aaa.sh   ###执行

3.6、外网客户端配置

  • 设置外网客户端ip为12.0.0.10/24

在这里插入图片描述

四、验证LVS_NAT

外网客户机通过访问外网的网关直接映射到内网的web界面,内网的web采用轮询的方式显示出来,即一次显示web1界面,一次显示web2界面,可以有效的缓解web服务器的压力。

在这里插入图片描述
在这里插入图片描述

发布了59 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/103971851