在使用 Keepalived 实现高可用性时,Keepalived 通过 VRRP(Virtual Router Redundancy Protocol)协议来监控主节点和备节点的状态。以下是如何感知到对端 Keepalived 机器关机的基本原理:
心跳检测:Keepalived 会定期发送心跳包(即 VRRP 广播消息)。主节点会定期广播自己的状态。
超时机制:如果备节点在预设的时间内没有接收到来自主节点的心跳包,它会认为主节点已失效。这段时间称为 “master down” 超时时间,可以通过
nopreempt
、advert_int
等参数进行配置。切换到备份模式:当备节点检测到主节点不可用后,会触发选举过程,提升自身为新的主节点,接管虚拟 IP 地址。
日志与通知:你可以配置 Keepalived 的日志记录功能,以便在状态变更时能够及时获取相关信息。此外,也可以使用脚本或其他监控工具来进一步处理这些事件。
配置示例
下面是一个简单的 Keepalived 配置示例:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass your_password
}
virtual_ipaddress {
192.168.1.100
}
}
注意事项
- 确保网络连接良好,如果存在网络问题可能导致误判。
- 可以根据实际需求调整
advert_int
和其他参数,以优化故障切换的速度和稳定性。 - 如果有其他依赖服务,也要考虑它们对 failover 的影响。
通过以上方式,当对端 Keepalived 节点关闭或发生故障时,另一台机器能够快速感知并做出相应反应。
内容由零声教学AI助手提供,问题来源于学员提问