在现代 IT 基础设施中,高可用性(High Availability)是保障服务连续性的关键。而 Ubuntu Corosync集群 正是实现这一目标的重要工具之一。本教程将从零开始,带领你一步步完成 Corosync 的安装、配置与测试,即使你是 Linux 新手,也能轻松上手。
什么是 Corosync?
Corosync 是一个开源的集群引擎,用于在多个节点之间提供可靠的组通信和成员管理服务。它常与 Pacemaker 配合使用,构建高可用集群系统。通过 Corosync,集群中的各个节点可以实时同步状态、检测故障并自动切换服务,从而确保应用持续在线。
准备工作
在开始之前,请确保满足以下条件:
至少两台运行 Ubuntu 20.04 或更高版本的服务器(例如 node1 和 node2) 各节点之间网络互通,且能通过主机名互相解析(建议配置 /etc/hosts) 拥有 sudo 权限的用户账户第1步:安装 Corosync
在所有节点上执行以下命令安装 Corosync:
sudo apt updatesudo apt install -y corosync
第2步:生成 Corosync 配置文件
使用 corosync-keygen 生成安全密钥(仅需在一台节点上执行):
sudo corosync-keygen
该命令会生成
/etc/corosync/authkey文件,用于节点间加密通信。
第3步:配置 Corosync
编辑主配置文件
/etc/corosync/corosync.conf。以下是一个适用于两节点集群的示例配置:
totem { version: 2 cluster_name: mycluster transport: udpu interface { ringnumber: 0 bindnetaddr: 192.168.1.0 # 替换为你的实际子网 mcastport: 5405 ttl: 1 }}nodelist { node { ring0_addr: node1 nodeid: 1 } node { ring0_addr: node2 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}
请根据你的实际环境修改
bindnetaddr(绑定的网络地址段)和节点主机名。
第4步:同步配置到所有节点
将生成的
authkey和
corosync.conf复制到其他节点:
scp /etc/corosync/authkey /etc/corosync/corosync.conf user@node2:/tmp/ssh node2 "sudo mv /tmp/authkey /tmp/corosync.conf /etc/corosync/"
第5步:启动 Corosync 服务
在所有节点上启动并启用 Corosync:
sudo systemctl enable corosyncsudo systemctl start corosync
第6步:验证集群通信
使用
corosync-cfgtool和
corosync-quorumtool检查集群状态:
sudo corosync-cfgtool -ssudo corosync-quorumtool -s
如果看到两个节点都在线,并且 quorum 状态为 “Quorate: Yes”,说明 Corosync通信配置 成功!
常见问题与优化建议
防火墙问题:确保 UDP 端口 5405 开放(使用 ufw 或 iptables) 主机名解析失败:在 /etc/hosts 中添加所有节点的 IP 与主机名映射 日志查看:日志位于 /var/log/corosync/corosync.log,可用于排错结语
通过本教程,你已经成功搭建了一个基于 Ubuntu Corosync集群 的基础通信框架。这是构建高可用服务的第一步。后续可结合 Pacemaker 实现资源管理,真正打造企业级容灾系统。希望这篇 Corosync教程 能帮助你掌握 高可用集群搭建 的核心技能!
关键词提示:Ubuntu Corosync集群、Corosync通信配置、高可用集群搭建、Corosync教程
