keepalibed
简介
1.1 什么是keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
1.2 keepalived 实现主备过程
两台主机共用一个vip 当主服务挂掉之后keepalived 会将vip 根据优先级转移到备用服务器实现高可用机制,但是要考虑一个问题是,如果主机服务死掉了,keepalived 服务正常是不会进行转换的,这种情况就做脑裂,需要解决这个问题,可以用脚本进行监控,当服务宕机只有将keepalibed 停掉,完成转换
1.3keepalived 安装
[root@VM-24-13-centos ~]# yum -y install -y keepalived
#两台都需要安装
1.4配置node1 为主 node2 为备
node 1 | node 2 |
---|---|
192.168.1.2 | 192.168.1.3 |
1.4.1 配置node1
[root@VM-24-13-centos ~]#vi /etc/keepalived/keepalived.conf
#!/binbash
# ! Configuration File for keepalived
global_defs {
router_id NodeA #起一个唯一的名字,不能与备机相同
}
vrrp_instance VI_1 {
state MASTER # 这里标记为主
interface eth0 # 这里的必须和你的网卡一致
virtual_router_id 1 # 这里表示路由的唯一标识与备机一致
priority 100 # 配置优先级
advert_int 1
authentication {
auth_type PASS
auth_pass root # 配置认证密码
}
virtual_ipaddress { # 配置虚拟ip地址,就是开放的地址,与本机ip不同
192.168.1.254
}
}
1.4.2配置node2
# ! /bin/bash
# ! Configuration File for keepalived
global_defs {
router_id NodeB
}
vrrp_instance VI_1 {
state BACKUP # 通过BACKUP表示该机器为备机
interface eth0 # 与网卡一致
virtual_router_id 1 #与主机一致
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass root
}
virtual_ipaddress { # 看房的虚拟机地址
192.168.1.254
}
}
1.5此时配置完成,启动keepalved
[root@VM-24-13-centos ~]#systemctl start keepalived
[root@VM-24-13-centos ~]#systemctl status keepalvied
keepalived
脑裂问题
master 主机会向 backup 发送请求,告诉backup 还活着,这样备机不会接管主机,如果网络延迟导致备机没有接收到主机的请求,这样,备机会接管vip,此时主机还没有死,通常的解决方案为,添加物理心跳线,
或者添加监控脚本,
可以根据所运行的服务进行监控,服务宕机,关停keepalived,