背景
架构图
LVS三种工作模式
-
NAT 地址转换
-
DR 直接路由
- 架构图 3台IP一样,但LVS ARP开启 其他的都关闭
-
TUN 隧道
- 架构图
- 原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而 应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装 一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还 原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由 于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持 IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选 项
- 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应 答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载 均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一 台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同 地域的分发。
- 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支 持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部 分Linux系统上。
调度算法
- 轮叫调度(Round Robin)
- 加权轮叫(Weighted Round Robin)
- 最少链接(Least Connections)
- 加权最少链接(Weighted Least Connections)
- 基于局部性的最少链接(Locality-Based Least Connections)
- 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
- 目标地址散列(Destination Hashing)
- 源地址散列(Source Hashing)
- 最短的期望的延迟(Shortest Expected Delay Scheduling SED)
- 最少队列调度(Never Queue Scheduling NQ)
实战
- yum -y install ipvsadm
- cat /proc/sys/net/ipv4/ip_forward
- ipvsadm -At
- sysctl -P 生效
- ipvsadm -Ln 查看
- ipvsadm -C 清空负载配置
- ipvsadm -L --timeout
- ipvsadm --set 1
NAT模式 -m
DR模式 -g
-
LVS 服务器
- route 路由
- ifconfig eth0:vip 192.168.199.100 netmask 255.255.255.0
-
echo 1 >/proc/sys/net/ipv4/ip_forward
-
ifconfig eth0:1 192.168.199.100 broadcast 192.168.199.100 netmask 255.255.255.255 up
-
route add -host 192.168.199.100 dev eth0:1
ipvsadm -C ipvsadm -At 192.168.199.100:80 -s rr ipvsadm -at 192.168.199.100:80 -r 192.168.199.102:80 -g -w 1 ipvsadm -at 192.168.199.100:80 -r 192.168.199.103:80 -g -w 1
- 两台真实的服务器
-
关闭ARP响应
1
2
3
4echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce -
ifconfig lo:0 192.168.199.100 broadcast 192.168.199.100 netmask 255.255.255.255 up route add -host 192.168.199.100 dev lo:0
-
删除默认网关 route del default
-
TUN模式 -i
- LVS服务器
- vi /etc/sysctl
- init 6