LVS的理论知识

集群设计的原则

  • 可扩展性—集群的横向扩展能力
  • 可用性—无故障时间 (SLA service level agreement)
  • 性能—访问响应时间
  • 容量—单位时间内的最大并发吞吐量(C10K 并发问题)

LVS工作原理

LVS(虚拟服务)根据报文的目标IP和目标协议及端口将其调度转发至某RS(真正参与工作的服务器),根据调度算法来挑选RS。LVS是内核级的功能,工作在INPUT链的位置,将发往INPUT的流量进行处理

LVS功能及组织架构

  • 功能:负载均衡的应用场景为高访问量的业务,提高应用程序的可用性和可靠性

  • 组织架构:(1) 应用于高访问量的业务

    ​ (2) 扩展应用程序

    ​ (3) 消除单点故障

    ​ (4) 同城容灾

    ​ (5) 跨地域容灾

LVS集群类型中的术语

在这里插入图片描述

  • VS:Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer
  • RS:Real Server(lvs), upstream server(nginx), backend server(haproxy)
  • CIP:Client IP
  • VIP:Virtual serve IP VS外网的IP
  • DIP:Director IP VS内网的IP
  • RIP:Real server IP
访问流程:CIP<---------->VIP======DIP<----------->RIP

LVS集群的工作模式

  • NAT:请求修改报文的目标IP,多个IP的DNAT
  • DR:操纵封装新的MAC地址(常用)
  • TUN:在原请求的IP报文之外新加一个IP首部

NAT模式

NAT:本质是多目标的DNAT,通过请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和port实现转发

特点:

  1. RIP和DIP在同一个IP网络,且使用私网地址;RS的网关要指向DIP
  2. 请求报文和响应报文都必须经由DIP端口转发,DIP易称为系统瓶颈
  3. 支持端口映射,可修改请求报文的目标port
  4. VS 必须是Linux系统,RS可以是任意OS系统

实现过程

在这里插入图片描述

在内核的处理过程

在这里插入图片描述

地址的转换过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vb3u8Tck-1639487392350)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1639483043920.png)]

192.168.0.6源地址目的地址
1192.168.10.6/xxxx-----mac:client192.168.10.100/80-----mac:router-eth1
2192.168.10.6/xxx----mac:router-eth0192.168.10.100/80—mac:lvs
3192.168.10.6/xxx----mac:lvs192.168.10.100/80—mac:rs
410.0.0.7/80—mac:rs192.168.10.6/xxx----mac:lvs
5192.168.10.100/80—mac:lvs192.168.10.6/xxx----mac:router–eth0
6192.168.10.100/80—mac:router–eth1192.168.10.6/xxx----mac:client

DR 模式

定义:LVS默认模式,应用最广乏,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/port,以及目标的IP/PORT 均保持不变

特点

  1. Director和各RS都配置有VIP
  2. 确保前端路由器将目标IP为VIP的请求报文发往Director
  3. RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director
  4. RS和Director要在同一个物理网络
  5. 请求报文要经由DIP,但响应报文不经由DIP,而由RS直接发往Client
  6. 不支持端口映射(端口不能修改)
  7. 无需开启 ip_forward
  8. RS可使用大多数OS系统

在这里插入图片描述

内核的执行过程:

在这里插入图片描述

地址的转换过程:

在这里插入图片描述

192.168.10.6原地址目的地址
1192.168.10.6-----Mac:client192.168.10.100----mac:router–eth1
2192.168.10.6----mac:router–eth0192.168.10.100----mac:lvs
3192.168.10.6-----Mac:lvs192.168.10.100----mac:rs–eth0
410.0.0.7—mac:rs–eth0192.168.10.6—mac:router–eth0
5192.168.10.100–mac:router–eth1192.168.10.6—mac:client

TUN模式

转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外在封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)

TUN模式的特点:

  1. RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址

  2. RealServer的tun接口上需要配置VIP地址,以便接收director转发过来的数据包,以及作为响应的报文源IP

  3. Director转发给RealServer时需要借助隧道,隧道外层的IP头部的源IP是DIP,目标IP是RIP,而RealServer响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP

  4. 请求报文要经由Director,但响应不经由Director,响应由RealServer自己完成

  5. 不支持端口映射

  6. RS的OS须支持隧道功能

应用场景:
一般来说,TUN模式常会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近
折返给客户端。在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结
果取回,最后将结果返回给用户。
LAN环境一般多采用DR模式,WAN环境虽然可以用TUN模式,但是一般在WAN环境下,请求转发更多的被
haproxy/nginx/DNS等实现。因此,TUN模式实际应用的很少,跨机房的应用一般专线光纤连接或DNS调度

LVS工作模式总结和比较

LVS-DR与LVS-tun:
  • 请求报文要经由DIP,但响应报文由RS直接发往client
  • LVS-DR:通过封装新的MAC首部实现,通过MAC网络转发
  • LVS-tun:通过在原IP报文外封装新的IP头实现转发,支持远距离通信

LVS的调度算法

静态算法:

  1. RR:轮询,较常用
  2. WRR: 加权轮询,较常用
  3. SH:source hashing,实现session Sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
  4. DH: Destination Hashing; 目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS。(类似于DNS的缓存)

动态算法:

主要根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度

  1. LC:适用于长连接应用

    Overhead=activeconns*256+inactiveconns
    
  2. WLC:weighted LC,默认的调度算法,较常用

    Overhead=(activeconns*256+inactiveconns)/weight 
    

3.SED :初始连接高权重优先,只检查活动连接,而不考虑非活动连接

Overhead=(activeconns+1)*256/weight

4.NQ :第一轮均匀分配,后续SED

5.LBLC:动态的DH算法,使用场景:根据负载状态实现正向代理,实现web cache等

6.LBLCR:带复制功能的LBLC,解决LBLC负载不均衡的问题 ,从负载重的复制到负载轻的RS、

内核版本 4.15 版本后新增调度算法:FO和OVF

FO(Weighted Fail Over)调度算法,在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未
过载(未设置IP_VS_DEST_F_OVERLOAD标志)的且权重最高的真实服务器,进行调度,属于静态算法
OVF(Overflow-connection)调度算法,基于真实服务器的活动连接数量和权重值实现。将新连接调度
到权重值最高的真实服务器,直到其活动连接数量超过权重值,之后调度到下一个权重值最高的真实服
务器,在此OVF算法中,遍历虚拟服务相关联的真实服务器链表,找到权重值最高的可用真实服务器。,属
于动态算法
一个可用的真实服务器需要同时满足以下条件:

  • 未过载(未设置IP_VS_DEST_F_OVERLOAD标志)
  • 真实服务器当前的活动连接数量小于其权重值
  • 其权重值不为零
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值