负载均衡集群介绍
LVS介绍
lvs的NAT模式介绍
这种模式借助iptables的nat表来实现,用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的服务器上去,这些服务器接收到了请求之后处理请求,然后把处理请求结果在返给分发器,分发器在返回给用户,这样分发器就成为了一种瓶颈,当访问量非常大的时候分发器请求也非常的大,请求过来大,分发出去也大,最后还得把返回来的结果继续给用户,这样分发器就严重的影响了效率,所以说用NAT这种模式,请求量不能太大,一般的规模也就10台左右,除了说你的分发器的机器配置很高,网卡千兆网卡,用的网线千兆网线,甚至说万兆光纤,这样会大大提高效率
LVS IP Tunnel模式
分发器跟服务器建立了一个虚拟通道,叫做iptunnel,它实现原理更改了数据包的目的ip,比如说用户过来请求分发器,分发器和服务器他们有特殊的配置,叫做vip,这几个角色都需要配置一个公共的ip,这个公共ip的目的是为了个用户服务的,比如用户过来访问他得知道一个公网ip进行通信,通信的时候这个数据包里边就包含了目的ip,
LVS DR模式
LVS调度算法
轮询 Round-Robin 简称rr 最简单的也是最容易理解的,用户请求过来他均衡的把这些请求分发到服务器上他们没有任何的优劣之分。
加权轮询 Weight Round-Robin wrr,这个比第一种多个权重
最小连接 Least-Connection lc ,把请求量少的或者说这个服务器上连接数比较少的,那就会把新的请求分给连接数比较少的服务器上去
加权最小连接 Weight Least-Connection wlc ,跟上边的一样就是在加个权重
LVS NAT模式搭建
三台机器配置完ip后,把三台机器的防火墙关掉,在101和102机器上安装iptables
3台机器都停掉firewaad,
systemctl stop firewalld
systemc disable firewalld
rs1,rs2都安装 iptables.service
yum install iptables-services
安装 完后开启动服务
systemctl start iptables.service
systemctl enable iptables.service
分别执行以下命令
iptables -F
service iptables save
同时3台机器都要关闭selinux
昨关闭 setenforce 0
开机不再启动
vi /etc/selinux/config
开始配置
**在dir上安装ipvsadm是实现lvs的重要工具
[root@100xuni1 ~]# yum install -y ipvsadm
在dir上编写脚本,vim /usr/local/sbin/lvs_nat.sh//内容如下
[root@100xuni1 ~]# 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_redirectsecho 0 > /proc/sys/net/ipv4/conf/default/send_redirects# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirectsecho 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects# director 设置nat防火墙iptables -t nat -Fiptables -t nat -Xiptables -t nat -A POSTROUTING -s 192.168.63.0/24 -j MASQUERADE# director设置ipvsadmIPVSADM='/usr/sbin/ipvsadm'$IPVSADM -C$IPVSADM -A -t 192.168.109.109:80 -s lc -p 3$IPVSADM -a -t 192.168.109.109:80 -r 192.168.63.101:80 -m -w 1$IPVSADM -a -t 192.168.109.109:80 -r 192.168.63.102:80 -m -w 1
执行下
[root@100xuni1 ~]# sh /usr/local/sbin//lvs_nat.sh ##没有输出就是没有错误
两台rs上都安装nginx,编辑主页
编辑主页
[root@101xuni2 ~]# vim /share/nginx/html/index.html ##两台rs都编辑主页为hanshuo2,和hanshuo3 方便测试区分
测试
curl 192.168.142.147,测试可看到分发的不均衡
更改配置文件再测试
[root@100xuni1 ~]# vim /usr/local/sbin/lvs_nat.sh ##$IPVSADM -A -t 192.168.142.147:80 -s wlc -p 3更改为$IPVSADM -A -t 192.168.142.147:80 -s rr
再测试,可以看到分发的很均衡,测试成功
扩展
lvs 三种模式详解 /admin/html/01/2248.html
lvs几种算法 /bbs/thread-7407-1-1.html
关于arp_ignore和 arp_announce/lgfeng/archive//10/16/2726308.html
lvs原理相关的 /pi9nc/article/details/23380589