搭建LVS-NAT模式实现负载均衡

一、集群的概述

1.什么是集群?
集群(cluster)就是一组计算机,它们作为一个整体向用户提供网络资源,这些单个的计算机系统就是集群的节点(node)。


扩展:
PV ( page view )即页面浏览量,通常是衡量一个网络新问频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为 PV 。
UV ( unique visitor ),指访问某个站点或点击某条新闻的不同 IP 地址的人数。
在同一天内, uv 只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。独立IP访问者提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。

2.集群的种类.集群系统主要分为
LB 负载均衡( Load Balance )集群。
HA 高可用( High Availability )集群
HPC 高性能计算( High Perfermance Computing )集群

LB 实现手段.
硬件:F5负载均衡器
软件: LVS (4层)- Nginx (7层)

3、 LVS ( Linux Virtual Server )
LVS 是 Linux Virtual Server 的简写,即 Linux虚拟服务器,是一个虚拟的服务器集群系统。
本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
LVS分为3种模式:DR、NAT、TUN
第四种:FULLNAT 扩展: 淘宝 ospf+lvs
4、LVS集群采用三层结构,其主要组成部分为:

第一层:负载调度器(load balancer)
它是整个集群对外服务的前端机,负责将客户的请求发送到后端的一组服务器上执行,而客户认为服务器是来自同一个IP地址(我们可以称之为VIP 虚拟IP地址)上的。
第二层:服务器池(server pool)
它是一组真正执行客户请求的服务器,执行服务有WEB、MAIL、FTP、DNS等。
第三层:共享存储(share storage)
它为服务器池提供一个共享的存储区,这样很容易使服务器池拥有相同的内容,提供相同的服务

二、实战搭建LVS-NAT模式集群实现负载均衡

1、NAT(网络地址映射)把私有地址转换成为公网地址
LVS NAT优点:NAT方式可支持任何操作系统及私有网络并且只需要一个公网IP
LVS NAT缺点:整个系统的性能受到限制,因为执行NAT每次需要重写包,有一定的延迟;另外,大部份应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。
真实环境中的拓图

本次实验拓扑图如下

2、在分发器snowy201增加一块网卡eh1并将这块网卡的网络连接方式设为vmnet4(如VM无vmnet,可以选择LAN区段)如下图所示

snowy201: eth0 桥接 IP:192.168.1.201 网关:192.168.1.1
snowy201: eth1 vmnet4/LAN区段 IP:192.168.1.202

3、开启snwoy201分发器的路由转发功能

[root@snowy201~]#vi /etc/sysctl.conf
net.ipv4.ip_forward=1  #添加此行内容,开启路由转发功能
[root@snowy201~]#sysctl -p  #让配置立刻生效
[root@snowy201~]#iptables -F

4、配置snowy201为LVS NAT模式集群:
安装:LVS管理工具:ipvsadm

[root@snowy201~]#rpm -ivh /mnt/Packages/ipvsadm-1.25-9.el6.x86_64.rpm

snowy201配置LVS:
添加一个虚拟服务,VIP地址192.168.1.63,服务端口:80

[root@snowy201~]#ipvsadm - A -t 192.168.1.201:80 -s rr

-A 添加一个虚拟服务
-t 表示 TCP 的服务 VIP:PORT .
-s 指定调度算法
rr 表示 round-robin 代表轮循

添加虚拟服务器后端的real server:

[root@snowy201~]#ipvsadm -a -t 192.168.1.201 -r 192.168.1.202 -m
[root@snowy201~]#ipvsadm -a -t 192.168.1.201 -r 192.168.1.203 -m

-a 表示添加一个real server
-r 指定real sever的IP地址
-m 表示masquerade也就是NAT方式的LVS
查看:

[root@snowy201 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.201:80 rr
  -> 192.168.2.202:80             Masq    1      0          0         
  -> 192.168.2.203:80             Masq    1      0          0   

三、RealServer:snowy202和snowy203上面的配置:

1、配置2台real server的IP及网络连接方式
snowy202: ens33 vmnet4/LAN区段 IP:192.168.2.202 网关:192.168.2.201
snowy203: ens33 vmnet4/LAN区段 IP:192.168.2.203 网关:192.168.2.201
两台real server网络连接设置如下图,如VM无vmnet4,可以选择LAN区段:

2、两台real server机器上都安装httpd并启动:
snowy202:

[root@snowy202 ~]#yum install -y httpd
[root@snowy202 ~]#echo "192.168.2.202" > /var/www/html/index.html
[root@snowy202 ~]#systemctl enable httpd --now
[root@snowy202 ~]#iptables -F
[root@snowy202 ~]#netstat -tulnp|grep 80  #查看服务是否启动成功  
[root@snowy202 ~]#curl http://192.168.2.202  #查看站点能否访问 
192.168.2.202

snowy203:

[root@snowy203 ~]#yum install -y httpd
[root@snowy203 ~]#echo "192.168.2.203" > /var/www/html/index.html
[root@snowy203 ~]#systemctl enable httpd --now
[root@snowy203 ~]#iptables -F
[root@snowy203 ~]#netstat -tulnp|grep 80  
[root@snowy203 ~]#curl http://192.168.2.203  
192.168.2.203

3、测试LVS NAT模式
通过一台centos客户机来测试,也可以通过浏览器来测试(浏览器因为缓存的原因,测试会慢一点)

[root@client ~]# curl http://192.168.1.201
192.168.2.202
[root@client ~]# curl http://192.168.1.201
192.168.2.203
[root@client ~]# curl http://192.168.1.201
192.168.2.202
[root@client ~]# curl http://192.168.1.201
192.168.2.203
posted @ 2021-09-17 18:31  乘风破浪的蜗牛  阅读(242)  评论(0)    收藏  举报