在现代IT基础设施中,Ubuntu高可用架构是保障服务连续性的关键。当主服务器发生故障时,系统能自动将流量切换到备用服务器,这就是故障转移(Failover)。本教程将使用开源工具 Keepalived 在两台 Ubuntu 服务器上搭建一个简单但高效的高可用集群,适合初学者快速上手。
一、准备工作
你需要准备以下环境:
两台运行 Ubuntu 20.04 或 22.04 的服务器(分别称为主节点和备节点) 两台服务器处于同一局域网,可互相通信 拥有 sudo 权限的用户 一个虚拟 IP 地址(VIP),例如:192.168.1.100(该 IP 将用于对外提供服务)
二、安装 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配置、主备切换
