keepalived高可用

文章目录

          • 1.keepalived高可用介绍
          • 2.keepalived功能
          • 3.keepalived高可用故障转移原理
          • 4.keepalived工作原理
          • 5.keepalived配置文件
            • 5.2自定义keepalived主配置文件
            • 5.3自定义keepalived实例
          • 6.脑裂
          • 7.keepalived实现nginx负载均衡高可用
1.keepalived高可用介绍

keepalived官网
keepalived高可用指的是比如有俩台主机作为调度器,分别连接着n台服务器,当主调度器上发生问题,备用调度器的这台机器立马替换上去进行工作。(其中客户访问的vip是由keepalived生成的)
keepalived 最初是为LVS负载软件设计的,用来管理lvs集群的各个节点的状态,后加入实现高可用的VRRP协议功能,所以Keepalived既可以管理lvs软件,还可以作为其它服务(nginx,Haproxy,MYSQL等)高可用解决方案。

VRRP(virtual route redundancy)虚拟路由器冗余协议,主要解决静态路由单点故障问题,保障少许服务器出现宕机时,整个网络仍然正常运行。

2.keepalived功能
  • 管理LVS负载均衡软件
  • 管理检查LVS集群节点的状态
  • 保证系统网络服务的高可用性
3.keepalived高可用故障转移原理

keepalived高可用故障转移是通过VRRP协议实现的,主要解决静态路由故障,通过一种竞选机制将路由的任务交给某个vrrp路由器,保证网络正常运行。
keepalived工作时,主节点会不断的向备节点发送(多个广播信号方式)称心跳信息,告诉备节点自己还在工作,不要想我不要自己工作,如果突然主节点发送了故障后,就不能发送心跳信息,备节点就不能收到来着主节点的信息了,开始调用接管程序,接管ip资源以及服务,代替主节点的工作,而当主节点恢复正常后,备节点释放所有的ip资源和服务,恢复之前的备用节点状态。

4.keepalived工作原理

keepalived高可用
5.2自定义keepalived主配置文件
5.3自定义keepalived实例

6.脑裂

6.1HA脑裂
HA脑裂:在高可用(HA)系统中,心跳线正常的情况下,俩个节点会互相发送信息,感知对方是否还存在,如果一旦感知不到了对方的信息,就认为对方发生故障,从而抢占资源和应用服务,心跳线断开的情况下,如果俩边服务均正常或均异常,就会发生严重的后果,资源的抢夺,导致数据损坏日志出错。

针对HA脑裂的决策:

  • 添加心跳线,减少脑裂几率,一条坏了,还有多条
  • 启动磁盘锁,让正在服务的机器锁住共享磁盘,让对方不能进行抢占磁盘资源,当服务的一方发现心跳线全部断开则开启磁盘锁,一般情况下不上锁
  • 设置参考的ip(网关),当心跳线全部断开后,2个节点分别ping参考ip,一端ping不通则证明本端的网络链路出现问题,主动放弃争夺权,让能够ping通的一端去跑服务

6.2脑裂产生的原因
1.心跳线链路(网络)发生故障,导致无法通信
心跳线(断了,老化了)
网卡以及驱动坏了,ip配置冲突
设备故障,交换机,路由器
2.高可用服务器开启了iptable防火墙导致信息传输
3.高可用服务器心跳网卡地址配置不正确,(比如不在一个网段)
4.高可用服务器的配置不正确,心跳方式不同,软件bug,广播冲突等
5.keepalived配置的virtual_router_id同一集群配置的id不同,也会发生故障

6.3脑裂的常见解决方案
在实际生产环境中,我们可以从以下几个方面来防止裂脑问题的发生:

同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息
当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith、feyce)。相当于备节点接收不到心跳消患,通过单独的线路发送关机命令关闭主节点的电源
做好对裂脑的监控报警(如邮件及手机短信等或值班).在问题发生时人为第一时间介入仲裁,降低损失。例如,百度的监控报警短信就有上行和下行的区别。报警消息发送到管理员手机上,管理员可以通过手机回复对应数字或简单的字符串操作返回给服务器.让服务器根据指令自动处理相应故障,这样解决故障的时间更短.
  
当然,在实施高可用方案时,要根据业务实际需求确定是否能容忍这样的损失。对于一般的网站常规业务.这个损失是可容忍的

6.4脑裂的监控

脑裂的监控是针对于备用服务器,添加zabbix自定义监控
监控的主角是 VIP

VIP存在于备用服务器上的俩种情况:

  • 正常的主服务器和备用服务器之间的切换
  • 发生了脑裂

因此只要备用服务器上存在VIP,则证明主服务器挂掉了
利用zabbix监控脑裂见文章:


7.keepalived实现nginx负载均衡高可用

高可用虚拟VIP:192.168.136.250(公司内应为公网)

系统 ip 名称
centos8 192.168.136.232 master(主)
centos8 192.168.136.233 slave(备)

关闭防火墙

keepalived安装

master和slave服务器上分别安装nginx

master和slave服务器上配置nginx网页

[root@master ~]# cd /usr/share/nginx/html/[root@slave html]# ls404.html  50x.html  index.html  nginx-logo.png  poweredby.png[root@master html]# mv index.html{,.back}[root@master html]# echo 'SLAVE' > index.html[root@master html]# ls404.html  50x.html  index.html  index.html.back  nginx-logo.png  poweredby.png[root@master html]# systemctl enable --now nginxCreated symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.[root@master html]# ss -antlState       Recv-Q      Send-Q            Local Address:Port             Peer Address:Port      Process      LISTEN      0           128      0.0.0.0:80     0.0.0.0:*       LISTEN      0           128      0.0.0.0:22     0.0.0.0:*       LISTEN      0           128         [::]:80        [::]:*       LISTEN      0           128         [::]:22        [::]:*   [root@slave ~]# cd /usr/share/nginx/html/[root@slave html]# ls404.html  50x.html  index.html  nginx-logo.png  poweredby.png[root@slave html]# mv index.html{,.back}[root@slave html]# echo 'SLAVE' > index.html[root@slave html]# ls404.html  50x.html  index.html  index.html.back  nginx-logo.png  poweredby.png[root@slave html]# systemctl enable --now nginxCreated symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.[root@slave html]# ss -antlState       Recv-Q      Send-Q            Local Address:Port             Peer Address:Port      Process      LISTEN      0           128      0.0.0.0:80     0.0.0.0:*       LISTEN      0           128      0.0.0.0:22     0.0.0.0来源:神慕蔡蔡
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月26日
下一篇 2021年9月26日

相关推荐