在现代 IT 基础设施中,服务的高可用性(High Availability, HA)至关重要。通过使用 Ubuntu Pacemaker集群管理 技术,我们可以确保关键服务即使在单节点故障时也能持续运行。本文将带你从零开始,一步步搭建一个基于 Ubuntu 的 Pacemaker + Corosync 高可用集群,适合初学者学习和实践。
什么是 Pacemaker 和 Corosync?
Pacemaker 是一个开源的高可用集群资源管理器,负责监控和管理集群中的服务(如 Web 服务器、数据库等)。Corosync 则是一个集群通信层,用于节点之间的消息传递和成员关系管理。两者结合,构成了 Linux 下最流行的 HA 解决方案之一。
准备工作
你需要至少两台运行 Ubuntu 20.04 或 22.04 的服务器(虚拟机也可),并满足以下条件:
每台服务器有静态 IP 地址 主机名已正确设置且可互相解析(可通过 /etc/hosts 实现) 防火墙允许 Corosync(端口 5403-5405 UDP)和 Pacemaker(端口 2224 TCP)通信 root 权限或 sudo 权限第1步:安装 Pacemaker 和 Corosync
在所有节点上执行以下命令:
sudo apt updatesudo apt install -y pacemaker corosync resource-agents
第2步:配置 Corosync
首先生成 Corosync 配置模板:
sudo corosync-keygen -l
然后编辑主配置文件
/etc/corosync/corosync.conf(在第一个节点上操作即可):
totem { version: 2 cluster_name: my-ha-cluster transport: udpu}nodelist { node { ring0_addr: node1 # 替换为你的第一个节点主机名或IP nodeid: 1 } node { ring0_addr: node2 # 替换为你的第二个节点主机名或IP nodeid: 2 }}quorum { provider: corosync_votequorum expected_votes: 2 two_node: 1}logging { to_logfile: yes logfile: /var/log/corosync/corosync.log to_syslog: yes}
将此配置文件复制到其他所有节点:
scp /etc/corosync/corosync.conf user@node2:/etc/corosync/
第3步:启动集群服务
在所有节点上启动 Corosync 和 Pacemaker:
sudo systemctl start corosyncsudo systemctl start pacemakersudo systemctl enable corosync pacemaker
第4步:验证集群状态
使用
crm_mon命令查看集群状态(推荐加
-1参数只显示一次):
sudo crm_mon -1
如果看到两个在线节点,说明你的 Linux HA集群搭建 已成功!
第5步:添加一个高可用资源(例如虚拟IP)
我们以虚拟 IP(VIP)为例,创建一个浮动 IP 资源:
sudo pcs resource create virtual_ip ocf:heartbeat:IPaddr2 \ ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s
现在,这个 IP 会在两个节点之间自动漂移。当主节点宕机,备用节点会立即接管。
常见问题与调试
- 如果节点无法加入集群,请检查防火墙设置
- 使用
journalctl -u corosync查看 Corosync 日志
- 确保所有节点时间同步(建议配置 NTP)
总结
通过本教程,你已经掌握了 Ubuntu Pacemaker集群管理 的基本流程,完成了 高可用集群配置 的核心步骤。无论是部署 Web 服务、数据库还是其他关键应用,这套 Pacemaker Corosync教程 提供的方法都能为你构建稳定可靠的基础设施打下坚实基础。继续深入学习资源代理(Resource Agents)、约束(Constraints)和 STONITH 等高级功能,你将能构建更复杂的生产级 HA 系统。
