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

Ubuntu集群故障转移配置(手把手教你搭建高可用Ubuntu HA集群实现自动故障切换)

在现代 IT 基础设施中,系统的高可用性(High Availability, HA)至关重要。当一台服务器出现故障时,服务能自动切换到备用服务器上,从而保障业务连续性。本文将详细讲解如何在 Ubuntu 系统上配置一个简单的 Ubuntu集群故障转移 环境,即使你是 Linux 新手也能轻松上手。

Ubuntu集群故障转移配置(手把手教你搭建高可用Ubuntu HA集群实现自动故障切换) Ubuntu集群故障转移 高可用集群配置 Ubuntu HA集群 自动故障切换 第1张

什么是 Ubuntu 集群故障转移?

Ubuntu 集群故障转移是指在由多台 Ubuntu 服务器组成的集群中,当主节点(Primary Node)发生故障时,备用节点(Standby Node)能够自动接管其服务,确保对外服务不中断。这种机制通常通过 高可用集群配置 实现,核心组件包括 Pacemaker 和 Corosync。

准备工作

本教程使用两台 Ubuntu 22.04 LTS 服务器:

  • node1:IP 地址 192.168.1.10(主节点)
  • node2:IP 地址 192.168.1.11(备用节点)

确保以下条件已满足:

  • 两台服务器网络互通
  • 已配置静态 IP
  • 已禁用防火墙或开放所需端口(如 5403-5405)
  • root 权限或可使用 sudo

步骤 1:安装 Pacemaker 和 Corosync

在两台服务器上执行以下命令安装高可用套件:

sudo apt updatesudo apt install -y pacemaker corosync resource-agents

步骤 2:配置主机名和 hosts 文件

在 node1 上执行:

sudo hostnamectl set-hostname node1

在 node2 上执行:

sudo hostnamectl set-hostname node2

然后在两台机器的 /etc/hosts 文件末尾添加以下内容:

192.168.1.10 node1192.168.1.11 node2

步骤 3:生成并配置 Corosync

在任意一台节点(例如 node1)上生成 Corosync 配置:

sudo corosync-keygen

然后编辑配置文件 /etc/corosync/corosync.conf,内容如下:

totem {    version: 2    cluster_name: ubuntu-ha-cluster    transport: udpu}nodelist {    node {        ring0_addr: node1        nodeid: 1    }    node {        ring0_addr: node2        nodeid: 2    }}quorum {    provider: corosync_votequorum    expected_votes: 2}logging {    to_logfile: yes    logfile: /var/log/corosync/corosync.log    to_syslog: yes}

将此配置文件复制到 node2:

scp /etc/corosync/corosync.conf node2:/etc/corosync/

同时将密钥文件也复制过去:

scp /etc/corosync/authkey node2:/etc/corosync/

步骤 4:启动集群服务

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

sudo systemctl enable --now corosyncsudo systemctl enable --now pacemaker

验证集群状态:

sudo crm status

正常输出应显示两个在线节点,例如:

Online: [ node1 node2 ]

步骤 5:配置虚拟 IP 资源(实现自动故障切换)

假设我们希望对外提供一个虚拟 IP(VIP)192.168.1.100,当主节点宕机时,该 IP 自动漂移到备用节点。

在任意节点执行以下命令创建 VIP 资源:

sudo crm configure primitive vip ocf:heartbeat:IPaddr2 \    params ip=192.168.1.100 cidr_netmask=24 \    op monitor interval=30s

设置资源为“仅运行一个实例”(避免重复分配):

sudo crm configure commit

现在,你可以通过 ping 192.168.1.100 测试 VIP 是否生效。尝试关闭当前持有 VIP 的节点,观察是否自动切换到另一台——这就是 自动故障切换 的核心功能!

总结

通过以上步骤,你已经成功搭建了一个基于 Ubuntu 的高可用集群,实现了基础的 Ubuntu HA集群 功能。这种 Ubuntu集群故障转移 架构适用于 Web 服务、数据库等关键业务场景,有效提升系统可靠性。

后续你可以扩展更多资源(如 Apache、MySQL),配置 STONITH(防止脑裂)等高级功能。希望这篇教程对你有所帮助!