当前位置:首页 > Ubuntu > 正文

Ubuntu高可用故障转移实战指南(手把手教你搭建Keepalived实现主备自动切换)

在现代IT基础设施中,Ubuntu高可用架构是保障服务连续性的关键。当主服务器发生故障时,系统能自动将流量切换到备用服务器,这就是故障转移(Failover)。本教程将使用开源工具 Keepalived 在两台 Ubuntu 服务器上搭建一个简单但高效的高可用集群,适合初学者快速上手。

一、准备工作

你需要准备以下环境:

  • 两台运行 Ubuntu 20.04 或 22.04 的服务器(分别称为主节点和备节点)
  • 两台服务器处于同一局域网,可互相通信
  • 拥有 sudo 权限的用户
  • 一个虚拟 IP 地址(VIP),例如:192.168.1.100(该 IP 将用于对外提供服务)
Ubuntu高可用故障转移实战指南(手把手教你搭建Keepalived实现主备自动切换) Ubuntu高可用 故障转移 Keepalived配置 主备切换 第1张

二、安装 Keepalived

在主节点和备节点上分别执行以下命令安装 Keepalived:

sudo apt updatesudo apt install -y keepalived

三、配置 Keepalived(主节点)

编辑主节点的配置文件 /etc/keepalived/keepalived.conf

sudo nano /etc/keepalived/keepalived.conf

填入以下内容(请根据你的实际 IP 修改):

global_defs {    router_id ubuntu_master}vrrp_instance VI_1 {    state MASTER    interface eth0    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass yourpassword    }    virtual_ipaddress {        192.168.1.100/24    }}

四、配置 Keepalived(备节点)

在备节点上创建相同的配置文件,但需修改几处关键参数:

global_defs {    router_id ubuntu_backup}vrrp_instance VI_1 {    state BACKUP    interface eth0    virtual_router_id 51    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass yourpassword    }    virtual_ipaddress {        192.168.1.100/24    }}

注意:priority 值主节点应高于备节点;auth_pass 必须一致;interface 请替换为你服务器的实际网卡名(如 ens33)。

五、启动并启用 Keepalived 服务

在两台服务器上分别执行:

sudo systemctl start keepalivedsudo systemctl enable keepalived

六、验证高可用与故障转移

1. 在主节点上执行 ip addr show,应能看到虚拟 IP 192.168.1.100 已绑定。

2. 从客户端 ping 或访问该 VIP,确认服务正常。

3. 手动停止主节点的 Keepalived 服务:

sudo systemctl stop keepalived

此时备节点应在几秒内接管 VIP,实现无缝主备切换。重新启动主节点后,由于其优先级更高,VIP 会自动切回(前提是配置了 preempt,默认开启)。

七、常见问题排查

  • 确保防火墙允许 VRRP 协议(协议号 112)通信
  • 检查网卡名称是否正确(使用 ip a 查看)
  • 查看日志:sudo journalctl -u keepalived -f
  • 确认两台服务器时间同步(建议配置 NTP)

通过以上步骤,你已成功搭建了一个基于 Ubuntu 的高可用故障转移系统。这种架构广泛应用于 Web 服务器、数据库代理、API 网关等场景,是提升系统稳定性的基础手段。掌握 Keepalived配置主备切换 原理,将为你的运维技能打下坚实基础。

© 2023 高可用技术指南 | 关键词:Ubuntu高可用、故障转移、Keepalived配置、主备切换