Keepalive介绍及工作原理
1.两台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将中国称之为高可用。 2.系统可用率算法例: -1个9:(1-90%)*365=36.5天 ----> 表示该系统1年时间里最多可能的业务中断时间是36.5天 -2个9:(1-99%)*365=3.65天 ----> 表示该系统1年时间里最多可能的业务中断时间是3.65天 保证系统可实时不间断的使用。 软件:keepalive keepalive是通过vrrp(虚拟路由冗余协议)实现高可用。 通常业务系统需要保证7X24小时不down机。比如公司内部OA系统,每天公司人员都需要使用,则不允许down机。作为业务系统来说随时随地地都要求可用。 1.安装 2.配置[root@lb01 ~]# 3.启动 4.测试:keepalive高可用地址漂移 (1)keepalive提供一个VIP(虚拟IP)和vmac(虚拟Mac地址) (2)抓包测试 (1)默认配置为抢占式: master挂掉,backup上台,master重新启动则讲IP抢占过去。 (2)非抢占式配置: 两台均为backup,在优先级上做区分,如master挂掉,backup上台,则backup变成master,master变为backup。 a.两个节点的state均为backup(官方建议) b.两个节点都在vrrp_instance中添加nopreempt c.其中一个节点的优先级要高于另外一个节点 两台服务器角色都启用了nopreempt后,必须修改角色状态统一为backup,唯一的区别就是优先级不同。 keepalive高可用故障脑裂 由于某些原因,导致两台keepalive高可用服务器在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。 a.服务器网线松动等网络故障 b.服务器硬件故障发生损坏现象而奔溃 c.主备服务器都开启了firewalld防火墙 解决方法: 配置keepalived使用
keepalived工作原理是什么?怎么保证高可用
原理:keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的
Keepalive和lvs
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/
LVS+keepalived配置
Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。 Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。 注意 1.配置时不要把主从IP弄混淆。(我做的蠢事是,明明是配置两个机器,结果在xshell中把一个IP设置为两个登录名,结果就很尴尬,好似见鬼了) 2.做高可用时应注意几台机器必须有一台是MASTER,否则会出现虚拟IP获取不到的现象。 3.配置启动时,应先启动master,如果先启动backup,backup不会有虚拟IP,只有master获取到虚拟IP后vrrp的通讯才会开始,之后再关闭master,backup 就会获取到虚拟IP了。 负载均衡的配置主从配置是一样的,本次事例配置lvs的DR模式,DR模式是互联网使用最多的形式。 特点 配置脚本 配置时的注意事项 1.lsof无法检测配置是否成功,因为director不会开启响应端口。 2.director要直接能转发到(直连)real-server,不要经过路由器或其他服务器跳转。