LVS负载均衡群集 ---- NAT模式

LVS负载均衡群集 ---- NAT模式

一:群集的含义

1、由多台主机构成,但对外只表现为一个整体

2、在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心

  • 解决方法:

  • 使用价格昂贵的小型机、大型机

  • 使用普通服务器构建服务群集

二:群集的分类

  • #### 根据群集所针对的目标差异,分为三类:

  • 负载均衡群集

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

  • 高可用群集

以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果;
HA的工作方式包括双工和主从两种模式 。

  • 高性能运算群集

以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC) 能力 ;
高性能运算群集的高性能依赖于"分布式运算”、"并行计算” ,通过
专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力 。

三:负载均衡群集工作模式

  • 负载均衡群集是目前企业用的最多的群集类型

  • 群集的负载调度技术的三种模式

  • 地址转换 ( NAT 模式)

  • IP隧道 (TUN 模式)

  • 直接路由 (DR 模式)

四:负载均衡群集结构

第一层:负载调度器

  • 只负责响应客户端的请求,并将请求通过负载调度算法分发给服务器池中的服务器,是访问整个群集的唯一入口,对外使用公有的vip (Virtual IP,虚拟IP) 地址,也称为群集IP地址

第二层:服务器池

  • 用于为客户端提供实际的应用服务,每个真实服务器(服务器池中的服务器称为真实服务器或节点服务器)具有独立的RIP (真实IP) ,只处理调度器分发过来的客户请求

第三层:共享存储

  • 为服务器池中的所有节点提供稳定、一致的文件存取服务,用于保证群集文件的一致性(就是使即使访问的不是同一个节点服务器但看到的内容是一样的

LVS负载均衡群集 ---- NAT模式

五:LVS的负载调度算法

  • ##### 轮询 (Round Robin )

  • 将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载

  • ##### 加权轮询(Weighted Round Robin)

  • 根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重

  • 保证处理能力强的服务器承担更多的访问流量

  • ##### 最少连接 (Least Connections)

  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分
    配给连接数最少的节点

  • ##### 加权最少连接(Weighted Least Connections)

  • 在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重

  • 权重较高的节点将承担更大比例的活动连接负载

六:LVS负载均衡机制

  • LVS 是四层负载均衡,即建立在 OSI 模型的第四层(传输层之上),传输层上有TCP/UDP,LVS 支持 TCP/UDP 的负载均衡。
  • 因为 LVS 是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如 DNS 域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。

七:实验案例

1、实验拓扑图

LVS负载均衡群集 ---- NAT模式

2、实验环境

1台centos7作为LVS 网关 (添加一块网卡)

2台centos7作为web服务器 (web1 、web2)

1台centos7作为NFS 共享存储服务 (添加2块硬盘)

1台win7作为客户端

LVS负载均衡群集 ---- NAT模式

3、实验目的

win7 客户机访问12.0.0.1 网址,通过nat地址转换,轮询的访问web1 和web2 主机 ;

搭建出NFS网络文件存储服务 。

4、实验过程

  • (在NFS存储服务器上配置)

(1)在 NFS存储服务器中需加入两块硬盘,添加好后需重启 。 可输入命令 ls /dev/ 查看是否添加成功

对两块硬盘进行分区 、格式化 :
[root@nfs ~]# fdisk /dev/sdb     ‘对磁盘sdb的分区’
[root@nfs ~]# mkfs.xfs /dev/sdb1     ‘格式化’
[root@nfs ~]# fdisk /dev/sdc     ‘对磁盘sdc的分区’
[root@nfs ~]# mkfs.xfs /dev/sdc1

LVS负载均衡群集 ---- NAT模式

(2)创建目录作为挂载点 ,并挂载
[root@nfs ~]# mkdir /opt/kg /opt/ac
[root@nfs ~]# vim /etc/fstab     ‘添加自动挂载的设置’
‘添加2行内容’
/dev/sdb1       /opt/kg         xfs     defaults        0 0
/dev/sdc1       /opt/ac         xfs     defaults        0 0

[root@nfs ~]# mount -a
[root@nfs ~]# df -hT

LVS负载均衡群集 ---- NAT模式

(3)关闭防火墙,查看NFS相关软件是否存在
[root@nfs ~]# systemctl stop firewalld.service 
[root@nfs ~]# setenforce 0
[root@nfs ~]# rpm -q nfs-utils     ‘已安装nfs组件’
nfs-utils-1.3.0-0.48.el7.x86_64
[root@nfs ~]# rpm -q rpcbind 
rpcbind-0.2.0-42.el7.x86_64      ‘已安装远端过程调用组件’
(4)设置规则,编辑共享配置文件
[root@nfs ~]# vim /etc/exports
‘192.168.100.0 共享可访问的地址’
/opt/kg         192.168.100.0/24(rw,sync,no_root_squash)
/opt/ac         192.168.100.0/24(rw,sync,no_root_squash)
(5)开启服务,并查看nfs共享配置文件
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/ac 192.168.100.0/24
/opt/kg 192.168.100.0/24
(6)把网卡改为仅主机模式,修改IP地址

LVS负载均衡群集 ---- NAT模式

[root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33     ‘修改IP地址’

LVS负载均衡群集 ---- NAT模式

[root@nfs ~]# service network restart      ‘重启网络服务’
Restarting network (via systemctl):                        [  确定  ]
[root@nfs ~]# ifconfig     ‘查看IP地址’

LVS负载均衡群集 ---- NAT模式

  • (在 web1 、web2 服务器上配置)

(两台服务器配置相同)

(1)安装apache服务 ,关闭防火墙
[root@web1 ~]# yum install httpd -y
[root@web1 ~]# systemctl stop firewalld.service 
[root@web1 ~]# setenforce 0
(2)设置网卡为仅主机模式,并修改IP地址
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@web1 ~]# service network restart 

LVS负载均衡群集 ---- NAT模式

[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

[root@web2 ~]# service network restart 

LVS负载均衡群集 ---- NAT模式

(3)验证NFS服务没有问题
[root@web1 ~]# showmount -e 192.168.100.120
Export list for 192.168.100.120:
/opt/ac 192.168.100.0/24
/opt/kg 192.168.100.0/24          ‘两台服务器都需验证’

(4)自动挂载NFS共享目录到本地
[root@web1 ~]# vim /etc/fstab
‘末尾添加挂载设置’
192.168.100.120:/opt/kg         /var/www/html   nfs     defaults,_netdev        0 0

[root@web2 ~]# vim /etc/fstab 
192.168.100.120:/opt/ac         /var/www/html   nfs     defaults,_netdev        0 0
 
[root@web1 ~]# mount -a        '使挂载文件生效'
[root@web1 ~]# df -hT      ‘查看挂载’

LVS负载均衡群集 ---- NAT模式

(5)进首页,分别给两个web服务器 写首页文件
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# vim index.html
‘添加web1首页内容’
<h1>this is kg web</h1>

[root@web1 html]# systemctl start httpd       ‘开启服务’
[root@web1 html]# netstat -ntap | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      6765/httpd 

[root@web2 ~]# cd /var/www/html/
[root@web2 html]# vim index.html
‘添加web2首页内容’
<h1>this is ac web</h1>

[root@web2 html]# systemctl start httpd       ‘开启服务’
[root@web2 html]# netstat -ntap | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      4815/httpd 
  • (在LVS 服务器上配置)

配置LVS负载均衡

(1)安装ipvsadm 服务
[root@lvs ~]# yum install ipvsadm -y
(2)添加1块网卡,都设置成主机模式

LVS负载均衡群集 ---- NAT模式

(3)修改IP地址
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36     ‘复制一份作为另一个网卡ens36’
[root@lvs network-scripts]# ls
ifcfg-ens33   ifdown-post       ifup-eth     ifup-sit
ifcfg-ens36    ......
[root@lvs network-scripts]# vim ifcfg-ens33

LVS负载均衡群集 ---- NAT模式

[root@lvs network-scripts]# vim ifcfg-ens36

LVS负载均衡群集 ---- NAT模式

[root@lvs network-scripts]# service network restart

LVS负载均衡群集 ---- NAT模式

(4)在web服务器中验证

LVS负载均衡群集 ---- NAT模式

(5)开启路由转发功能,设置防火墙规则
[root@lvs network-scripts]# vim /etc/sysctl.conf
‘添加到末尾’
net.ipv4.ip_forward=1      ‘启动路由转化功能’
[root@lvs ~]# sysctl -p     ‘启动’

[root@lvs network-scripts]# iptables -F    ‘情况转发表’
[root@lvs network-scripts]# iptables -t nat -F     ‘清空nat地址转换表’
[root@lvs network-scripts]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1       ‘添加地址转换规则’

(6)加载模块,开启ipvsadm 服务
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# modprobe ip_vs     ‘加载’
[root@lvs network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm
[root@lvs network-scripts]# systemctl start ipvsadm
(7)添加脚本设置LVS规则,加权限执行
[root@lvs network-scripts]# cd /opt/
[root@lvs opt]# vim nat.sh
‘添加脚本 ,采用轮询算法访问两个网站’
#! /bin/bash
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr     ‘轮询’
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.111:80 -m   ‘映射web两台服务器’
ipvsadm

[root@lvs opt]# chmod +x nat.sh      ‘给nat.sh脚本权限’
[root@lvs opt]# ./nat.sh     ‘执行脚本’
(8)在win10 中验证

外网客户机通过访问外网的网关直接映射到内网的web界面,内网的web采用轮询的方式显示出来,即一次显示web1界面,一次显示web2界面,可以有效的缓解web服务器的压力 。(访问期间若没有变动,可清空缓存)
LVS负载均衡群集 ---- NAT模式

LVS负载均衡群集 ---- NAT模式LVS负载均衡群集 ---- NAT模式 Sunny~~~ 发布了62 篇原创文章 · 获赞 11 · 访问量 2333 私信 关注
上一篇:Squid代理服务器——传统代理,透明代理(实践!)


下一篇:lzugis——Arcgis Server for JavaScript API之POI