Keepalive和lvs
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keepalive和lvs相关的知识,希望对你有一定的参考价值。
参考技术A keepalive起初是为LVS设计的,专门用来监控lvs各个服务节点的状态,后来加入了vrrp的功能,因此除了lvs,也可以作为其他服务(nginx,haproxy)的高可用软件。VRRP是virtual router redundancy protocal(虚拟路由器冗余协议)的缩写。VRRP的出现就是为了解决静态路由出现的单点故障,它能够保证网络可以不间断的稳定的运行。所以keepalive一方面具有LVS cluster node healthcheck功能,另一方面也具有LVS director failover。
keepalive的两大功能:
healthcheck和failover
LVS cluster node healthcheck
keepalive高可用服务原理介绍:
keepalive director高可用之间的故障切换转移,是通过VRRP协议实现的。
在keepalive director工作时,主节点会不断的向备节点发送心跳消息,告知自己还活着,当主节点故障时,备节点无法接收主节点的心跳消息,此时就会启用自身的服务接管程序将主节点的IP和服务资源接管过来。当主节点恢复工作之后,又会释放IP资源和服务,恢复至备节点的角色。
VRRP协议原理简单介绍:
VRRP是通过一种竞选协议协议机制来将路由的任务交给VRRP的路由器。在一VRRP的虚拟路由中,有多台物理的VRRP路由器,但是这多台路由器不同时工作,而是由一台Master负责路由工作,其他的都是backup,master是由backup竞争而来的,当master失去响应时,会从余下的backup中选出master来接管IP地址和服务资源。
VRRP协议的所有报文都是通过IP多播的形式传递消息,在一个虚拟路由器中,只有作为Master的VRRP路由器会一直发送VRRP广播包,当其他backup没有收到广播包时候,会迅速抢占master(谁的有限级高,谁就会抢占成功),处于安全性考虑VRRP协议传输数据时候进行了加密。
VRRP是virtual router redundancy protocal(虚拟路由器冗余协议)的缩写。
小结:
1,VRRP是virtual router redundancy protocal(虚拟路由器冗余协议)的缩写。
2,VRRP是通过一种竞选协议协议机制来将路由的任务交给VRRP的路由器。
3,VRRP协议的所有报文都是通过IP多播的形式传递消息
4,处于安全性考虑VRRP协议传输数据时候进行了加密。
官方网站: http://www.keepalived.org/
编译安装yum安装都可
全局配置:
VRRPD 配置:
virtual_server
VRRP同步组
两个vrrp_instance同属于一个vrrp_rsync_group,那么其中一个vrrp_instance发生故障切换时,另一个vrrp_instance也会跟着切换(即使这个instance没有发生故障)。
VRRP实例
1,Round-robin(RR)轮询:当新请求到达时候,从服务列表中选择一个Real Server,将请求重定向给这台Real Server。
2,Weighted round-robin(WRR)加权轮询:给每台Real Server分配一个权重/位列,权重越大,分到的请求数越多。
3,Destination hashing (DH)目标散列:来自于同一个IP地址的请求都被重定向到同一台Real Server上(保证目标地址不变)。
4,Source hashing(SH)源地址散列:Director必须确保响应的数据包必须通过请求数据包所经过的路由器或者防火墙(保证原地址不变)。
动态调度算法:通过检查服务器上当前连接的活动状态来重新决定下一步调度方式该如何实现。
5,Lease Connection (LC) 最少连接 哪一个Real Server上的连接数少就将下一个连接请求定向到那台Real Server上去。
【算法:连接数=活动连接数 256+非活动连接数】
6,Weight Least-Connection(WLC) 加权最少连接 在最少连接的基础上给每台Real Server分配一个权重。
【算法:连接数=(活动连接数 256+非活动连接数)÷权重】 一种比较理想的算法。
7,Shortest Expected Delay (SED) 最短期望延迟 不再考虑非活动连接数
【算法:连接数=(活动连接数+1) *256 ÷权重】
8,Never Queue (NQ) 永不排队算法,对SED的改进,当新请求过来的时候不仅要取决于SED算法所得到的值,还要取决于Real Server上是否有活动连接。
9,Locality-Based Least-Connection (LBLC) 基于本地状态的最少连接,在DH算法的基础上还要考虑服务器上的活动连接数。
10,Locality-Based Least-Connection with Replication Scheduling (LBLCR) 带复制的基于本地的最少连接 LBLC算法的改进
TCP
UDP
ESP (Encapsulation Security Payload)
IPsec 封装安全负载
AH (Authentication Header)
keepalived是实现服务器级别的接管,服务不可用无法切换keepalive,所以需要做好应用层的监控
参考链接:
https://www.cnblogs.com/qq78292959/archive/2012/05/31/2528524.html
http://www.keepalived.org/
以上是关于Keepalive和lvs的主要内容,如果未能解决你的问题,请参考以下文章