深入理解Keepalived+LVS(2)

)DR和RS必须在同一个网络中。
2)RS网关指向DIP,因为DR要修改目的地址由VIP->RIP
3)RIP为私有地址,仅用于集群通信。
4)DR位于client和real server之间,负责处理所有通信,亚历山大,成为瓶颈。
5)DR支持端口映射。
6)RS可以使用任意系统
7) NAT模式可以防DDOS

2.dr 直接路由

原理:DS在数据链路层直接修改mac地址,源IP和目标IP都没有改变

深入理解Keepalived+LVS

只有进入的连接经过DS,能负载均衡100个rs左右。
DS:dip,vip
RS:rip,vip
vip是隐藏的,仅仅作为源地址不通信。可以配置在lo上,或者设置arp防火墙,
通信还是靠rip所在的网络设备

rule:

1)DR和RS必须在同一个物理网络中(同一网段)
2)RS一定网关不能指向DIP。
3)RIP不一定是私有地址,可以ssh上来管理,但有危险。
4)DR仅处理入栈请求,响应报文由RS发往client。
5)DR不支持端口映射,因为请求端口的时候,RS直接响应。
6)RS可以使用大多数操作系统,因为RS要隐藏vip。。

3.tun 隧道

基本同DR,但转发的时候,要封装隧道,再添加一个ip首部。

rule:

1)DR和RS必须可以跨越互联网
2)RIP必须是公网地址
3)DR仅处理入栈请求,响应报文由RS发往client。
4)响应报文一定不能通过DR
5)不支持端口映射 6)RS必须支持隧道协议OS4.fullnat

调度算法(schedule method)

分为静态和动态:动态则考虑服务器的负载。

静态调度算法(4个)

1.rr(轮叫调度)

2.wrr(加权轮叫)

3.sh(源地址哈希):基于session的会话绑定。一个用户访问过某个RS,下次访问就由这个RS给他提供服务。

4.dh(目的地址哈希):不同用户,相同的访问需求,就访问同一个RS。

活动链接(active):客户与服务器建立连接并且有数据传送

非活动链接(inactive):只是建立连接,没有数据传送,没有断开连接

动态调度算法(6个)

1.lc(最少链接):

算法:active*256 + inactive

因为在实际生产环境中,inactive的数量是巨大的,所以不能忽略

2.wlc(加权最少链接)    LVS的默认算法   

算法:active*256+inactive)/weight        比lc多考虑了权重

3.sed(最短期望延迟)

基于wlc算法,避免wlc出现的问题。

算法:(active+1)*256/weight (活动的连接数+1)*256/除以权重  谁小发给谁

4.nq(用不排队)

谁的链接数为0,直接将请求发送给他,一般和sed结合使用,因为有些机器即使空着也调度不到他。

5.LBLC(基于本地的最少连接)类似于dh,目标地址hash

这个算法主要用于Cache集群系统,因为Cache集群的中客户请求报文的目标IP地址的变化,将相同的目标URL地址请求调度到同一台服务器,来提高服务器的访问的局部性和Cache命中率。从而调整整个集群的系统处理能力。但是,如果realserver的负载处于一半负载,就用最少链接算法,将请求发送给活动链接少的主机。

6.LBLCR(带复制的基于本地的最少链接)

该算法首先是基于最少链接的,当一个新请求收到后,一定会将请求发给最少连接的那台主机的。但这样又破坏了cache命中率。但这个算法中,集群服务是cache共享的,假设A的PHP跑了一遍,得到缓存。但其他realserver可以去A那里拿缓存,这是种缓存复制机制。

各种术语

DS:Director Server。前端负载均衡调度器。

RS:Real Server。后端真实工作的服务器。

VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。

DIP:Director Server IP,主要用于和服务器内部通讯的IP。

RIP:Real Server IP,后端真实服务器的IP地址。

CIP:Client IP,客户端的IP地址。

端口映射:如用户访问80,可在RS上服务实际工作在8080。(只有dnat支持) 

一些关于Keepalived相关教程集合

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5b481335b0c28c60da843115cb2cd3ce.html