lvs负载均衡
- 一、集群技术概述
- 1、集群技术类型
- 2、负载均衡技术
- 3、高可用技术
- 二、负载均衡 LVS
- 1、LVS介绍
- 2、负载均衡策略/算法
- 3、LVS设计模式
- 3.1 NAT模式的注意事项
- 三、LVS nat模式的实现
- 1、确认后端服务器网关正确
- 2、安装ipvsadm软件
- 3、开启路由转发
- 4、创建虚拟服务
- 5、添加后端real server
- 6、测试访问
一、集群技术概述
1、集群技术类型
负载均衡集群, Load Balance LB
高可用集群, High Avalibility HA
2、负载均衡技术
3、高可用技术
避免关键业务的单点故障
通过优先级选择主备角色,主负责转发客户端流量 ,同时会向备发送心跳信息,备一段时间内接收不到心跳,会认为主宕机故障,自动会接替主的工作继续转发流量
二、负载均衡 LVS
1、LVS介绍
LVS Linux Virtual Service Linux虚拟服务
集成在内核中负载均衡模块
国内章文嵩博士研发
2、负载均衡策略/算法
1、rr 轮询, 解决会话持久的问题
2、wrr 加权轮询,为后端服务器设置不同的权重值
3、lc 最少连接
4、wlc 加权最少连接, 【默认】
5、sh 源hash,一段时间内, 同一个客户端的访问请求会转发到同一个后端服务器
3、LVS设计模式
- NAT模式
请求、响应都是要经过调度器
- DR直接路由模式
请求经过调度器,响应由后端服务器直接响应给客户端
- TUN隧道模式
3.1 NAT模式的注意事项
1、VIP、DIP要属于两个不同的网络
2、负载均衡器要开启路由转发功能
3、所有real server的网关要指向DIP
三、LVS nat模式的实现
1、确认后端服务器网关正确
[root@web01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.171.100 0.0.0.0 UG 100 0 0 ens33
192.168.171.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
网关指向DIP
2、安装ipvsadm软件
[root@lvs ~]# yum install -y ipvsadm
3、开启路由转发
[root@lvs ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@lvs ~]# sysctl -p
4、创建虚拟服务
[root@lvs ~]# ipvsadm -A -t 192.168.146.100:80 -s rr
5、添加后端real server
[root@lvs ~]# ipvsadm -a -t 192.168.146.100:80 -r 192.168.171.10:80 -m
[root@lvs ~]# ipvsadm -a -t 192.168.146.100:80 -r 192.168.171.20:80 -m
查看虚拟服务
[root@lvs ~]# 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.146.100:80 rr
-> 192.168.171.10:80 Masq 1 0 0
-> 192.168.171.20:80 Masq 1 0 0
6、测试访问
C:\Users\admin>curl 192.168.146.100
web02
C:\Users\admin>curl 192.168.146.100
web01
C:\Users\admin>curl 192.168.146.100
web02
C:\Users\admin>curl 192.168.146.100
web01
查看连接
[root@lvs ~]# ipvsadm -L -n -c
IPVS connection entries
pro expire state source virtual destination
TCP 01:24 TIME_WAIT 192.168.146.1:57818 192.168.146.100:80 192.168.171.10:80
TCP 01:25 TIME_WAIT 192.168.146.1:57820 192.168.146.100:80 192.168.171.10:80
TCP 01:22 TIME_WAIT 192.168.146.1:57813 192.168.146.100:80 192.168.171.20:80
TCP 01:24 TIME_WAIT 192.168.146.1:57816 192.168.146.100:80 192.168.171.10:80
TCP 01:22 TIME_WAIT 192.168.146.1:57812 192.168.146.100:80 192.168.171.10:80
TCP 00:47 TIME_WAIT 192.168.146.1:57796 192.168.146.100:80 192.168.171.20:80
TCP 01:20 TIME_WAIT 192.168.146.1:57808 192.168.146.100:80 192.168.171.20:80
TCP 00:46 TIME_WAIT 192.168.146.1:57795 192.168.146.100:80 192.168.171.10:80
TCP 01:21 TIME_WAIT 192.168.146.1:57811 192.168.146.100:80 192.168.171.20:80