keepalived 主备故障切换
时间: 2024-01-14 13:20:44 浏览: 177
keepalived是一个用于实现高可用性的软件,可以在主备服务器之间进行故障切换。下面是keepalived主备故障切换的步骤:
1. 在主机上启动keepalived:
```shell
keepalived -f /usr/local/etc/keepalived/keepalived.conf
```
2. 当主机故障时,keepalived会自动切换到备机。可以通过以下命令查看虚拟IP是否生效:
```shell
ip addr
```
3. 如果需要手动切换回主机,可以在备机上执行以下命令:
```shell
killall keepalived
```
这样,备机就会立即切换回主机,恢复正常的服务。
相关问题
Keepalived 如何实现故障切换
Keepalived 通过 VRRP 协议实现故障切换。VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种协议,用于在多台路由器之间共享虚拟 IP 地址。在 Keepalived 中,多台服务器运行 Keepalived 进程,其中一台为 MASTER,其他为 BACKUP。MASTER 服务器负责提供服务,BACKUP 服务器处于备份状态,等待 MASTER 服务器出现故障时接管服务。
当 MASTER 服务器出现故障时,BACKUP 服务器检测到 MASTER 服务器不可用,立即启动自己的服务,并将自己的状态切换为 MASTER。这样,故障切换完成,服务不会中断。同时,Keepalived 持续监控 MASTER 服务器是否恢复正常,一旦 MASTER 服务器恢复,BACKUP 服务器会将自己的状态切换为 BACKUP,继续等待下一次故障切换。
若想实现keepalived主备在获取到VIP后至少5min内不允许转移VIP,即便是备服务器收到主发来的心跳,以防止频繁切换,该如何修改源码或修改配置
要实现keepalived主备在获取到虚拟IP(VIP)后至少5分钟内不允许转移VIP,即使备服务器收到主服务器发来的心跳,可以采用以下两种方法之一:
1. 修改keepalived的配置文件:
在keepalived的配置文件`keepalived.conf`中,可以设置`preempt_delay`参数,该参数定义了高优先级备份服务器在抢占虚拟IP之前等待的时间,单位是秒。将其设置为300秒(即5分钟),可以在一定程度上防止频繁切换。修改配置文件中的`vrrp_instance`部分,添加或修改`preempt_delay`参数,如下所示:
```
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.100
}
preempt_delay 300
}
```
修改后,需要重新加载或重启keepalived服务来使配置生效。
2. 修改keepalived源码:
如果默认的keepalived版本不支持`preempt_delay`参数或者需要更精确的控制,可以考虑修改keepalived的源码。修改`keepalived/src/vrrp/vrrp_vip.c`文件中的相关代码,以确保在主服务器故障恢复后5分钟内不允许VIP的转移。具体的修改方法会涉及到对VIP抢占逻辑的调整,这需要较深入的了解keepalived的工作机制和源码结构。由于修改源码会直接影响程序的稳定性和安全性,建议只有在完全理解可能的后果并有足够经验的情况下才进行尝试。
阅读全文