一、负载均衡介绍
1、简单说就是让多台服务器均衡的去承载压力。实现负载均衡的开源软件有LVS,keepalived,haproxy,Nginx等,商业的有F5,NetScaler.
二、LVS介绍
1、LVS是一款四层的负载均衡软件,是针对TCP/IP做的转发和路由,所以稳定性和效率相当高。核心角色是调度器,用来分发用户的请求,还有处理用户服务的服务器
2、LVS根据实现方式不同:有NAT模式,IP Tunnel 模式 ,DR模式。
3、NAT模式:调度器把用户的请求通过预设的iptables规则转发给后端真实服务器。调度器会有一个公网IP,一个内网IP,真实服务器只有内网IP,用户访问的时候请求的是调度器的公网IP,会把用户的请求转到真实服务器的内网IP上,该模式节省公网IP,但是调度会成为一个瓶颈。
4、IP Tunnel 模式:需要一个公共的IP配置在分发器和所有realserver上,称之为vip.,客户请求数据包,目标地址VIP发送到LB上。LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址.
5、DR模式:和IP Tunnel 模式方法相同,用户的请求被调度器动态的分配到真实服务器上,真实服务器响应请求把结果直接返回给用户,在这种模式下不会封装IP,而是将数据帧的MAC地址改为真实服务器的MAC地址。
三、LVS的调度算法
1、轮询调度(Round Robin)
2、带权重的轮询调度(Weighted Round Robin)
3、最小连接调度(Least Connections)
4、带权重最小连接(Weighted Least Connections)
5、基于局部性的最小链接(Locality-Based Least Connections)
6、带复制的基于局部性最小链接(Locality-Based Least Connections with Replication)
7、目标地址散列调度(Destination Hashing)
8、源地址散列调度(Source Hashing)
四、LVS NAT 模式搭建
1、设置调度器(dir) 192.168.134.130(内网IP) 192.168.150.128(公网IP),需要设置为仅主机模式。
RS1:192.168.134.150 RS2:192.168.134.131
2、三台机器上都关闭防火墙 首先安装 iptables-service
systemctl stop firewalld
systemctl disable firewalld
iptables -F
service iptables save
3、设置RS1 和RS2 的网关 192.168.134.130 编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改 :GATEWAY=192.168.134.130
然后: service network restart
4、在dir上安装 ipvsadm
yum install -y ipvsadm
5、在dir编写配置脚本 vim /usr/local/sbin/lvs_nat.sh
![](https://images2018.cnblogs.com/blog/1293519/201804/1293519-20180410225952878-305249184.png)
![](https://images2018.cnblogs.com/blog/1293519/201804/1293519-20180410230245182-1322817362.png)
![](https://images2018.cnblogs.com/blog/1293519/201804/1293519-20180410230818758-588091839.png)
$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300 修改为 $IPVSADM -A -t 192.168.150.128:80 -s wlc
![](https://images2018.cnblogs.com/blog/1293519/201804/1293519-20180410231535716-546318257.png)
可以发现在rs1 和 rs2 之间来回访问,做到了负载均衡。