LVS原理,工作模式和调度算法

什么是 Lvs

  • Lvs是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了高效的解决方法,现在 LVS 已经是 Linux 内核标准的一部分
    使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能

Lvs 的原理:

1)当用户向负载均衡调度器发起请求,调度器将请求发往内核空间
2)PREROUTING链收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链
3)IPVS工作在INPUT链上,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链。
4)POSTROUTING链接收数据包后发现目标IP地址刚好是自己的IP,就会给客户端返回信息


Lvs 的工作模式:

VS:virtual server,虚拟服务器,也叫Director
RS:real server,真正的服务器,集群中的节点
CIP:客户端IP
VIP:virtual IP,director向外部提供服务的IP
RIP:realserver集群节点的服务器网卡IP
DIP:director与RS通信的IP

  • lvs-nat 网络地址转换模式
    1)客户端发送请求到达director(虚拟服务器)
    2)director根据负载均衡算法改写目标地址为后端的RIP(集群节点的服务器网卡)并转发给该后端主机,和NAT一样
    3)当RS(真实服务器)处理完请求后,将响应数据交给director(虚拟服务器)
    4)Director(虚拟服务器)改写源地址为VIP(虚拟ip)后传给客户端
  • lvs-dr 直接路由模式
    1)客户端发送请求到达director(虚拟服务器)也就是CIP(客户端)访问VIP(虚拟ip)
    2)director(虚拟服务器)将请求报文重新封装一个mac地址首部dip-mac:rip-mac,所以DIP和RIP需要相同的物理网络实现arp通信,源IP地址和目标IP地址不变,只是修改源mac地址为DIP的mac地址,目标mac地址改为RIP的mac地址;然后发送给RS(真实服务器)
    3)RS(真实服务器)发现目标地址是自己的MAC地址处理报文,并且RS(真实服务器)本地会还接口Lo配置为VIP(虚拟ip),响应报文从Lo的VIP(虚拟ip)发送给eth0网卡,所以响应报文首部cip-mac:Lo-mac,最后响应报文直接发送给客户端,此时源ip地址为VIP(虚拟ip),目标地址为CIP(客户端IP)
  • lvs-tun IP隧道模式
    1)客户端将请求发送前端的负载均衡器,请求报文源地址是CIP(客户端),目标地址为VIP(虚拟ip)
    2)负载均衡器收到报文后,发现请求的在规则里面存在的地址,它将请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP(集群网卡ip),并将此包发送给RS(真实服务器);
    3)RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己Lo接口上的VIP,所以会再次处理请求报文(这种2次分装解封装的过程,就称为隧道模式)并将响应报文通过Lo接口送给eht0网卡然后直接发给客户端,这种模式也是需要设置Lo接口为VIP(虚拟ip),并且不能在公网上
  • lvs-fullnat
    1)客户端对VIP(虚拟ip)发起请求;
    2)director(虚拟服务器)接收请求,发现是请求后端集群,对请求报文做full nat,源IP改为DIP,目标IP转换为任意后端RS(真实服务器)的RIP(集群网卡ip),然后发往后端
    3)RS(真实服务器)收到请求后,进行响应,源IP为RIP(集群网卡ip),目标IP为DIP,内部路由到director(虚拟服务器)
    4)director(虚拟服务器)收到响应报文后,进行full nat,源地址改为VIP(虚拟ip),目标地址改为CIP(客户端)

Lvs 调度算法

轮询调度:客户端请求顺序分配,不管服务器真实负载
加权轮询调度:根据服务器处理能力分配请求
最小连接调度:根据服务器真实连接,将客户端请求分配给连接最少的服务器节点
加权最小连接调度:服务器性能差异较大建议使用,权重高节点承担大的负载
基于局部的最少连接
带复制的基于局部性的最少连接
目标地址散列调度
源地址散列调度U
最短的期望的延迟
最少队列调度


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3369_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值