目录
1.LVS的简介:
2.LVS的体系结构:
3.LVS的工作原理:
4.LVS概念:
5.LVS的工作模式:
6.nat模式:
7.nat模式数据逻辑:
8.DR模式:
9.DR模式数据逻辑:
10.lvs的调度算法:
11.lvs软件相关信息
12.lvs集群中的增删改
1.LVS的简介:
LVS的全称为Linux Virtual Server,也叫Linux虚拟服务器
2.LVS的体系结构:
使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示
中间的服务器群组层,用Server Array表示,最低端的数据共享存储层,用Storage表示
3.LVS的工作原理:
VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS
4.LVS概念:
VS:Virtual Server
RS:Real Server
CIP:Client IP
VIP:Virtual server IP (VS外网的IP)
DIP:Director IP (VS内网的IP)
RIP:Real server IP
访问流程:CIP <--> VIP == DIP <--> RIP
5.LVS的工作模式:
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
lvs-dr:操纵封装新的MAC地址
lvs-tun:在原请求IP报文之外新加一个IP首都
lvs-fullnat:修改请求报文的源和目标IP
6.nat模式:
1.本质是多目标
IP
的
DNAT
,通过将请求报文中的目标地址和目标端口修改为某挑出的
RS
的
RIP
和
PORT
实现转发;
2.RIP
和
DIP
应在同一个
IP
网络,且应使用私网地址
;RS
的网关要指向
DIP;
3.请求报文和响应报文都必须经由
Director
转发,
Director
易于成为系统瓶颈;
4.支持端口映射,可修改请求报文的目标
PORT;
5.VS
必须是
Linux
系统,
RS
可以是任意
OS
系统;
7.nat模式数据逻辑:
1.
客户端发送访问请求,请求数据包中含有请求来源(
cip
),访问目标地址(
VIP
)访问目标端口
(80
port
)
2.VS
服务器接收到访问请求做
DNAT
把请求数据包中的目的地由
VIP
换成
RS
的
RIP
和响应端口
3.RS1响应
请求,发送响应数据包,包中的响应报文为数据来源(
RIP1
)响应目标(
CIP
)响应端口 (9000port
)
4.VS
服务器接收到响应数据包,改变包中的数据来源(
RIP1-->VIP
)
,
响应目标端口(
9000-->80
)
5.VS
服务器把修改过报文的响应数据包回传给客户端
6.lvs
的
NAT
模式接收和返回客户端数据包时都要经过
lvs
的调度机,所以lvs的调度机容易阻塞
8.DR模式:
Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行 转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源 IP/PORT,以及目标IP/PORT均保持不变。
9.DR模式数据逻辑:
1.
客户端发送数据帧给
vs
调度主机帧中内容为客户端
IP+
客户端的
MAC+VIP+VIP
的
MAC
2.VS
调度主机接收到数据帧后把帧中的
VIP
的
MAC
该为
RS1
的
MAC
,此时帧中的数据为客户端
IP+
客户端
的
MAC+VIP+RS1
的
MAC
3.RS1
得到
2
中的数据包做出响应回传数据包,数据包中的内容为
VIP+RS1
的
MAC+
客户端
IP+
客户端
IP
的
MAC
![](https://i-blog.csdnimg.cn/direct/89247812f5b54874a10cec193c90dff7.png)
10.lvs的调度算法:
算法类型:静态方法、动态方法
lvs静态调度算法:RR、WRR、SH、DH
1
、
RR
:
roundrobin
轮询
RS
分别被调度,当
RS
配置有差别时不推荐
2
、
WRR
:
Weighted RR
,加权轮询根据
RS
的配置进行加权调度,性能差的
RS
被调度的次数少
3
、
SH
:
Source Hashing
,实现
session sticky
,源
IP
地址
hash
;将来自于同一个
IP
地址的请求始终发往第一次挑中的RS
,从而实现会话绑定
4
、
DH
:
Destination Hashing
;目标地址哈希,第一次轮询调度至
RS
,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS
,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商
lvs动态调度算法:LC、WLC、SED、NQ、LBLC、LBLCR
1
、
LC
:
least connections
(最少链接发)
适用于长连接应用
Overhead
(负载值)
=activeconns
(活动链接数)
x 256+inactiveconns
(非活
动链接数)
2
、
WLC
:
Weighted LC
(权重最少链接)
默认调度方法
Overhead=(activeconns x 256+inactiveconns)/weight
3
、
SED
:
Shortest Expection Delay,
初始连接高权重优先
Overhead=(activeconns+1+inactiveconns) x 256/weight
但是,当
node1
的权重为
1
,
node2
的权重为
10
,经过运算前几次的调度都会被
node2
承接
4
、
NQ
:
Never Queue
,第一轮均匀分配,后续
SED
5
、
LBLC
:
Locality-Based LC
,动态的
DH
算法,使用场景:根据负载状态实现正向代理
6
、
LBLCR
:
LBLC with Replication
,带复制功能的
LBLC
,解决
LBLC
负载不均衡问题,从负载重的复制到负载轻的RS
11.lvs软件相关信息
程序包:ipvsadm
Unit File:ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs调度规则文件:/etc/sysconfig/ipvsadm
12.lvs集群中的增删改
1.
管理集群服务中的增删改
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
-A #
添加
-E #
修改
-t #tcp服务
-u #udp
服务
-s #
指定调度算法,默认为
WLC
-p #
设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一
Realserver
-f #firewall mask
火墙标记,是一个数字
2.
管理集群中
RealServer
的增删改
ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]
-a #
添加
realserver
-e #
更改
realserver
-t #tcp
协议
-u #udp
协议
-f #
火墙 标签
-r #realserver
地址
-g #
直连路由模式
-i #ipip
隧道模式
-m #nat
模式
-w #
设定权重
-Z #
清空计数器
-C #
清空
lvs
策略
-L #
查看
lvs
策略
-n #
不做解析
--rate
:输出速率信息