18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

18.6 负载均衡集群介绍
18.7 LVS介绍
18.8 LVS调度算法

18.9/18.10 LVS NAT模式搭建


负载均衡集群介绍:

负载均衡集群:简单地说就是让多台服务器均衡地去承载压力。

主流开源软件LVS、keepalivd、haproxy、nginx

其中LVS只支持TCP4层模型、nginx只支持7层tcp模型(网络osi7层)

haproxy即可以4层也可以7层。

keepalived的负载均衡功能其实就是lvs

lvs这种4层的负载均衡是可以分发除80外的其他端口通信,比如mysql,而nginx仅仅支持http、https、mail,haproxy也支持mysql这种

相对较来说lvs这种4层的更稳定,能承受更多的请求

nginx这7层模型更加灵活,能实现更多的个性化需求

LVS介绍:

LVS架构中有一个核心角色叫做分开器,它用来分发用户的请求(load Balancer)。还有诸多处理用户请求的服务器(Read Server简称rs)

LVS有三种常见的模式:NAT、DR、IP Tunnel


LVS NAT 模式:

用户访问-----分发器接收请求(load balancer)----然后转发给内网的服务器处理(RS)---再返回给分开器---分发器返回给用户。

缺点:当用户请求量大的时候,分发器就成了主要角色,接收和返回数据都是要经过分发器,导致分开器处理请求缓慢。

优点:服务器不需要公网IP,只需要内网即可,分发器担任公网IP角色,从而节省公网资源。

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

LVS IP Tunnel模式:

1.这种模式分发器只需要担任一名转发请求和更改数据包的角色。

2.服务器(rs)直接返回数据给用户不需要经过分发器

3.需要一个公共的IP配置在分发器和所有RS服务器上

4.原理:用户发送数据包----数据包中有来源IP---分发器接收到数据包后把来源IP作为一个更改为RS的IP-----RS接收到后数据包处理返回给用户

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建


LVS DR模式:


1.这种模式分发器只需要担任一名转发请求和更改数据包的角色。

2.服务器(rs)直接返回数据给用户不需要经过分发器

3.他跟ip tunnel不同的是:IP tunnel是修改来源IP,他是修改来源mac并修改为rs服务器的mac进行传输,最后返回给用户

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

LVS调度算法

常用:

轮询 round-Robin (rr)   ---平均分发请求

加权轮询 weight Round-Robin (wrr) ---看服务器(rs)权重分配,那个权重大就多分一点

最小连接 least-Connection (lc)  --那台服务器处理请求量少的分发给它

加权最小连接 weight Least-Connection (wlc)--加权重分发,那个最小分发那个

不常用:

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建


LVS NAT模式搭建:

1.首先准备三台机器,

分发器:内网IP(192.168.142.130) 外网(192.168.214.133)

R1服务器内网(192.168.142.131) 把他们的网卡设置为分发器内网IP

R2服务器内网(192.168.142.132)把他们的网卡设置为分发器内网IP

2.分发器下载

            yum install -y ipvsadm

3.编写一个脚本

vim /usr/local/sbin/lvs_nat.sh 

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

脚本:

#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.142.0/24  -j MASQUERADE    
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'     //设置变量
$IPVSADM -C
$IPVSADM -A -t 192.168.214.133:80 -s wlc -p 3    
$IPVSADM -a -t 192.168.214.133:80 -r 192.168.142.131:80 -m -w 1    //转发服务器

$IPVSADM -a -t 192.168.214.133:80 -r 192.168.142.132:80 -m -w 1       //转发服务器

4.运行脚本

       sh  usr/local/sbin/lvs_nat.sh  如果没报错证明已启用

5.检查规则

iptables -t nat -nvL

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建


ipvsadm -ln  ---可以看到指向2个服务器

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

测试;

分别对2台服务器的nginx页面进行修改测试

直接访问公网IP:图下是132机器

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建


图下是131机器

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建