目录
四、配置文件简单说明(/etc/keepalived/keepalived.conf)
(一)脑裂现象指的是在双机热备架构中,主服务器和备份服务器之间的通信出现故障,导致同一个虚拟IP地址(VIP)分配给了两个节点,这种情况下就会出现脑裂现象。
(二)当出现脑裂现象时,主服务器和备份服务器都认为自己是主服务器,此时出现了双方同时管理同一个VIP的情况,就会导致网络服务异常、数据不一致等问题。
一、概述
Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。
二、原理
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
三、功能模块
core 主进程启动
vrrp vrrp协议:热备份路由协议
check 健康状态检测
四、配置文件简单说明(/etc/keepalived/keepalived.conf)
global_defs {
notification_email { #故障发生时给谁发邮件通知
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc ##通知邮件从哪个地址发出
smtp_server 192.168.200.1 ##通知邮件的smtp地址。
smtp_connect_timeout 30 ##连接smtp服务器的超时时间
router_id LVS_DEVEL #标识这台机器ID,默认情况下是主机名,可以配置成主机名
vrrp_skip_check_adv_addr #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址
vrrp_strict #严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址
vrrp_garp_interval 0 #ARP报文发送延迟
vrrp_gna_interval 0 #消息发送延迟
#vrrp_mcast_group4 224.0.0.18 #指定组播IP地址,默认值:224.0.0.18 范围:224.0.0.0到239.255.255.255
#vrrp_iptables #避免生成iptables input链 规则,sip any 拒绝 dip any
vrrp_script chk_nginx_server {
script "/etc/keepalived/chk_nginx.sh "
interval 1
weight -2
}
vrrp_instance VI_1 { #虚拟路由器名称,在一个keepalived可以启多个虚拟路由器,每个虚拟路由器的名字都不一样
state MASTER #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP,一般都是配置backup,该值无法决定身份,最终还是通过比较priority
interface eth0 #绑定为当前虚拟路由器使用的物理接口,如:ens32,eth0,bond0,br0
virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,同一组虚拟路由器的vrid必须一致
priority 100 #当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此值不同
advert_int 1 #vrrp通告的时间间隔,默认1s
nopreempt #当master宕机恢复之后不抢占master
authentication { #认证机制
auth_type PASS #AH(不推荐)或PASS
auth_pass 1111 #预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样
}
virtual_ipaddress { #虚拟IP
10.0.0.100 #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认为/32
10.0.0.101/24 dev eth1 #指定VIP的网卡
10.0.0.102/24 dev eth2 label eth2:1 #指定VIP的网卡label
}
track_script {
chk_nginx_server
}
}
五、配置双机热备
(一)安装
yum install -y keepalived
(二)配置master
global_defs {
router_id master
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.115.200
}
}
注意:配置完上面内容要把其他内容删掉或注释掉
(三)配置backup
global_defs {
router_id backup
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.115.200
}
}
注意:配置完上面内容要把其他内容删掉或注释掉
(四)启动服务
systemctl start keepalived
(五)验证
ping验证 ping 192.168.115.200
服务验证 分别在两台主机中安装httpd
六、双机热备的脑裂现象
(一)脑裂现象指的是在双机热备架构中,主服务器和备份服务器之间的通信出现故障,导致同一个虚拟IP地址(VIP)分配给了两个节点,这种情况下就会出现脑裂现象。
(二)当出现脑裂现象时,主服务器和备份服务器都认为自己是主服务器,此时出现了双方同时管理同一个VIP的情况,就会导致网络服务异常、数据不一致等问题。
(三)导致脑裂现象的原因
①Keepalived配置里同一 VRRP实例
如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
②vrrp实例名字不一致、优先级一致
③防火墙打开,导致心跳无法正常通信
④网卡故障 #网卡进行多路复用