1.Keepalived高可用基本概述
1.什么是高可用
一般是指2台机器启动着相同的业务系统,当有一台机器down机了,另外一台服务器能快速的接管,对于访问的用户是无感知
2.高可用通常使用什么软件?
通常服务高可用我们们选择使用keepalived软件实现
- keepalived 传送门
- heartbeat
3.keepalived是如何实现高可用的?
keepalived软件是基于VRRP协议实现的。VRRP虚拟路由冗余协议,主要用于解决单点故障问题
4.那VRRP是如何诞生的,VRRP的原理又是什么?
比如公司的网络是通过网关转换进行上网的,那如果该路由器故障了,网关无法转发报文了,此时所有人都将无法上网,这么时候怎么办呢?
通常做法是给路由增加一台备节点,但问题来,了?如果我们的主网关ngster故障了,用户是需要手动修改网关指向Backup,如果用户过多修改起来会非常的麻烦。
第一个问题:假设用户将指向都修改至Backup路由器,那么Master路由器如果修复好了又该怎么办?
第二个问题:假设Master网关故障,我们将Backup网关配置为Master网关iP行不行?
其实上不行,因为PC第一次是通过ARP广播寻找型Master网关的Mac地址与iP地址,PC则会将Master网关的对应IP与MAC地址写入ARP缓存表中,那公PC第二次则会直接读取ARP缓存表中的MAC地址与iP地址,然后进行数据包的转发。此时PC转发的数据包还是会教给Master。(除非PC的ARP缓存表过期,在次发起ARP广播的时候才能正确获取Bakcup的Mac地址与对应的iP地址。)*
5.高可用核心概念,总结
2.Keepalived高可用安装配置
[roota1b01 ~]# yum install keepalived -y [roota1b02 ~# yum install keepalived -y /etc/keepalived/keepalived.conf/usr/share/doc/keepalived-1.3.5/keepalived.conf.SYNOPSIS#超详细配置文件及说明 [root@lb01 ~]# rpm -ql keepalived etc/keepalived /etc/keepalived/keepalived.conf etc/sysconfig/keepalived /usr/bin/genhash usr/libexec/keepalived /usr/lib/systemd/system/keepalived.service /etc/keepalived/keepalived.conf/usr/share/doc/
3,配置节点
\cp /etc/keepalived/keepalived.conf{,.bak}
vim /etc/keepalived/keepalived.conf
#启动
systemctl enable keepalived.service
systemctl start keepalived.service
4.通过windows查看arp缓存表,验证地址漂移后是否会自动更新MAC地址
抓包查看-keepalived漂移
wireshark-过滤器-输入 vrrp or arp
5.keepalived 监控nginx 高可用
[root@lb0l ~]# systemctl is-active nginx keepalived.service
active
active
root@lb01~]# pkill nginx
root@lb0l ~]# systemctl is-active nginx keepalived.service
failed
active
6.keepalived高可用故障脑裂
由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。
1.服务器网线松动等网络故障
2.服务器硬件故障发生损坏现象而崩溃
3.主备都开启firewalld防火墙
1.在备上编写检测脚本 测试如果能ping 通主并且备节点还有 VIP的话则认为产生了列脑
脑裂的时候是什么样子的:
有vip地址
ping通 master_ip
curl /wget
#脑裂检查脚本思路:
#1,检查备节点是否有vip
#2.检查备节点是否可以ping通 主节点
##1.和2.同时成立 脑裂
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/18522122