码迷,mamicode.com
首页 > 其他好文 > 详细

LVS

时间:2019-03-26 19:29:40      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:路由   mac   请求报文   color   vip   connect   director   wrr   端口映射   

一、LVS简介和工作原理
LVS由前端的负载均衡器(Load Balancer,LB)和后端的真实服务器(Real Server,RS)群组成。RS间可通过局域网或广域网连接。LVS的这种结构对用户是透明的,用户只能看见一台作为LB的虚拟服务器(Virtual Server),而看不到提供服务的RS群。当用户的请求发往虚拟服务器,LB根据设定的包转发策略和负载均衡调度算法将用户请求转发给RS。RS再将用户请求结果返回给用户。
工作原理:

技术图片
LVS术语:
vs:Virtual server,Director
rs:Real server
CIP:Client IP //客户端IP地址
VIP:Virtual Server IP //面向客户提供服务
DIP:Director IP //调度器、转发器
RIP:Real Server IP //内部服务器
1.当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
2.当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
3.LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间。
4.如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
5.最后经由POSTROUTING链发往后端服务器
二、LVS工作模式
lvs-nat
lvs-dr
lvs-tun
技术图片
通过为请求报文的重新封装一个MAC地址进行转发,源MAC是DIP所在接口的MAC,目标MAC是挑选出来的RS 的RIP所在接口的MAC地址,IP首部不会发生变化(CIP<--->VIP)
1、客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
2、负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
3、RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端
优点:
1、由于响应报文不经过DIP,因此提供了访问效率
缺点:
1、配置复杂、确保前端路由器将目标IP为VIP的请求报文发往Director
2、RS和Director必须在同一网络
3、不支持端口映射
技术图片
1.客户端将请求发往前端的DR设备,请求报文源IP是CIP,目标IP是VIP
2.负载均衡器收到报文后根据自身的规则将请求的源报文修改为DIP后发送给后端RS
3.后端RS收到报文之后发现报文是自己的,然后会重新响应一个报文次数源IP是RS自己,目前IP变成DIP
4.负载均衡器收到报文之后通过自身规则会将源IP修改自身的IP地址发送给客户端
缺点:
1、进出报文都必须经过负载均衡器,加重了负载均衡器负担,容易造成瓶颈
2、DR和RS必须在同一网段,且 RS网关必须是DR的DIP
优点:
1、支持端口映射
技术图片
1、客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
2、负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。
3、RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。
三、LVS调度方法
静态方法:仅根据算法本身进行调度
RR:Round Robin ,轮询
WRR:Weighted RR,加权轮询
SH:Soure Hashing,源地址哈希
DH:Destination Hashing,目标地址哈希
动态方法:根据算法及各RS当前的负载状态进行调度
LC:least connections,最少连接
Overhead=ACtive2+Inactive
WLC:Weighted LC:加权的最少连接:
Overhead=(Active
256+Inactive)/weight
SED:shorest Expectiong Delay
Overhead=(Active+1)*256/weight
NG:Never Querue:
LBLC:Locality-Based LC
动态DH算法
LBLCR:LBLC with Replication
带复制功能的LBLC
四、LVS工作方法
ipvs:内核中的协议栈实现:
ipvsadm一个主机可以同时定义多个 cluster service,一个ipvs服务至上应该有一个rs
ipvsadm命令用法
ipvsadmin -A|E -t|u|f service-address [-s scheduler]
ipvsadmin -D 删除
-A :增加
-E:修改
-t :tcp
-u:upd
-f:firewall mark
service-address:VIP地址
-s:权重,默认为wlc
ipvsadm管理群集RS命令
ipvsadm -a|e -t |u|f service-address -r server-address[-g|i|m][-w weight]
-a:增加
-e:修改
-r server-address
RS的地址
vip[:port]
-g,gateway,dr
-l.ipip,tun
-m ,nat
-w wgight,指定权重
查看:
ipvsadm -L | l [o[toptions]
-n,数字格式显示IP和PORT
-c,显示ipvs的连接
-stats:统计数据
--rate:速率

LVS

标签:路由   mac   请求报文   color   vip   connect   director   wrr   端口映射   

原文地址:https://blog.51cto.com/8950428/2369562

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!