LVS的工作原理认识
一、LVS 简介及工作模式
1. LVS:Linux Virtaul Server,该软件的功能是实现LB(load balance)
2. 三种工作模式的使用范围
1)NAT模式(NAT)
LVS 服务器同时充当一台NAT 网关,拥有公有IP ,同时负责将针对此公共IP 的请求依据算法将请求转发给LAN 中的某台真实服务器(node) ,node 处理完成请求后将结果返回至LVS Server, 在由LVS Server 将结果返回给用户。可以将内部网络隐藏
2)IP隧道模式(TUN)
可以实现让集群中的节点处于不同网络段
3)直连路由模式(DR)
当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此种方法。控制管理的计算机接收到请求包时直接送到参与集群的node上。当node 处理完请求后将直接把结果返还至用户而不通过LVS Server 返还。DR的优势在于速度快、开销少。
NAT 方式适用于在同一个LAN中实现小型LB
TUN 方式适用于node部分在Internet上
DR 方式使用与在同一个LAN中实现较为大型LB
二、LVS 的调度算法
1.算法:将客户端的请求按照不同的算法转发给web服务器
2.算法的种类
1)rr:轮询 rr 算法就是将外部请求顺序轮流分配到集群中的node 上,但不考虑每台node 的负载情况。
2)wrr:加权轮询 wrr 算法在rr 算法的基础上会考察每台node的负载情况,并尝试让负较轻的node 承担更多请求。
3)lc:最少连接 算法可以让LVS 尝试把新的请求交给当前连接数最少的node ,直到此node 连接数不再属于最少标准
4)wlc:加权最少连接 wlc 算法也由权重的干预。LVS 会根据每台node的权重并综合连接数控制转发行为
5)lblc:局部最少连接 算法会加上针对源请求IP地址的路由估算,并尝试把请求发送到与源请求IP路由最近的node 上。此种方法一般用于远程或者是大规模的集群组
6)lblcr:带有复制的局部最少连接算法 lblcr 算法是在lblc 算法的基础上增加了一个node 列表,先依据lblc 算法计算出与源请求IP地址最近的一组node ,然后在决定把请求发送到最近一组中的最近的一台node 。若此node没有超载则将请求转发给这台node, 如果超载则依据”最少连接”原则找到最少连接的node 并将此node 加入集群组中。并将请求转给此node
7)dh:目标地址散列算法 相当于随机
8)sh:原地址散列算法 相当于随机
三、ipvsadm语法规则、
ipvsadm -C:清空kernel中的lvs列表(清空虚拟主机及转发记录)
ipvsadm -A -t 虚拟主机IP:80 -s 算法 :声明一个虚拟主机
ipvsadm -a -t 虚拟主机IP:80 -r 接受连接的真实服务器IP:80 lvs的模式 -w 权重值2.三种模式
-i TUN模式 -g DR模式 -m NAT模式