18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建
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角色,从而节省公网资源。
LVS IP Tunnel模式:
1.这种模式分发器只需要担任一名转发请求和更改数据包的角色。
2.服务器(rs)直接返回数据给用户不需要经过分发器
3.需要一个公共的IP配置在分发器和所有RS服务器上
4.原理:用户发送数据包----数据包中有来源IP---分发器接收到数据包后把来源IP作为一个更改为RS的IP-----RS接收到后数据包处理返回给用户
LVS DR模式:
1.这种模式分发器只需要担任一名转发请求和更改数据包的角色。
2.服务器(rs)直接返回数据给用户不需要经过分发器
3.他跟ip tunnel不同的是:IP tunnel是修改来源IP,他是修改来源mac并修改为rs服务器的mac进行传输,最后返回给用户
LVS调度算法
常用:
轮询 round-Robin (rr) ---平均分发请求
加权轮询 weight Round-Robin (wrr) ---看服务器(rs)权重分配,那个权重大就多分一点
最小连接 least-Connection (lc) --那台服务器处理请求量少的分发给它
加权最小连接 weight Least-Connection (wlc)--加权重分发,那个最小分发那个
不常用:
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
脚本:
#! /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
ipvsadm -ln ---可以看到指向2个服务器
测试;
分别对2台服务器的nginx页面进行修改测试
直接访问公网IP:图下是132机器
图下是131机器