在现代 IT 架构中,服务的高可用性(High Availability, HA)至关重要。本文将详细讲解如何在 Debian 系统上使用 Keepalived 搭建一个简单而高效的高可用集群,实现双机热备,确保关键服务(如 Web 服务器、数据库等)在单点故障时仍能持续运行。
什么是 Keepalived?
Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol)协议的开源软件,用于实现高可用性和负载均衡。它通过在多台服务器之间共享一个虚拟 IP(VIP),当主服务器宕机时,备用服务器会自动接管 VIP,从而实现无缝切换。
环境准备
本教程假设你有两台 Debian 服务器(版本建议为 Debian 11 或 12),并具备以下条件:
两台服务器网络互通,且能访问外网(用于安装软件) 拥有 root 权限或可使用 sudo 的用户 确定一个虚拟 IP(VIP),例如:192.168.1.100(该 IP 尚未被使用)第 1 步:在两台服务器上安装 Keepalived
在 Debian 上安装 Keepalived 非常简单,只需执行以下命令:
sudo apt updatesudo apt install -y keepalived
第 2 步:配置 Keepalived(主服务器)
我们以 server1 作为主节点(MASTER),编辑其配置文件:
sudo nano /etc/keepalived/keepalived.conf
填入以下内容(请根据你的实际网络环境修改 interface 和 virtual_ipaddress):
global_defs { router_id debian_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 }} 第 3 步:配置 Keepalived(备用服务器)
在 server2 上,创建类似的配置文件,但需调整为 BACKUP 角色:
global_defs { router_id debian_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 }} 注意: 主备服务器的virtual_router_id必须相同,priority值主服务器应高于备用服务器,auth_pass密码也必须一致。
第 4 步:启动并启用 Keepalived 服务
在两台服务器上分别执行:
sudo systemctl start keepalivedsudo systemctl enable keepalived
第 5 步:验证高可用是否生效
1. 在主服务器上查看 VIP 是否已绑定:
ip addr show eth0
你应该能看到
192.168.1.100出现在输出中。
2. 关闭主服务器的 Keepalived 服务,观察备用服务器是否接管 VIP:
# 在主服务器执行sudo systemctl stop keepalived# 在备用服务器执行ip addr show eth0
如果一切正常,备用服务器将自动获得虚拟 IP,实现无缝切换。
常见问题与优化建议
防火墙设置:确保两台服务器之间的 VRRP 通信(协议号 112)未被防火墙阻止。 日志查看:可通过journalctl -u keepalived -f实时查看 Keepalived 日志。 健康检查:可结合脚本对后端服务(如 Nginx)进行健康检查,实现更智能的故障转移。
结语
通过本教程,你已经成功在 Debian 系统上部署了 Keepalived 高可用集群,实现了双机热备。无论是用于 Web 服务、数据库还是其他关键应用,这种架构都能显著提升系统的可靠性和连续性。希望这篇 Keepalived配置教程 对你有所帮助!
© 2024 高可用技术实践 | 专注 Debian Keepalived高可用 解决方案
