Linux系统HA如何启动?关键操作步骤是什么?

Linux系统HA(高可用)集群的启动是保障业务连续性的关键环节,其核心是通过冗余节点和故障转移机制确保服务在节点故障时能快速切换,本文以主流的Pacemaker+Corosync架构为例,详细说明HA集群的完整启动流程,包括环境准备、配置文件解析、服务启动步骤、状态验证及常见问题处理。

linux系统ha如何启动

HA系统基础准备

在启动HA集群前,需完成以下基础配置,确保集群环境符合高可用要求:

  1. 硬件与网络准备:至少两台配置相同(或相近)的Linux服务器(如CentOS 7+/Ubuntu 20.04+),通过独立心跳网络(如交叉线或专用交换机)实现节点间通信,避免与业务网络冲突;同时配置业务网络IP,并规划虚拟IP(VIP)用于服务访问。
  2. 时间同步:集群节点时间必须一致,避免因时间偏差导致决策异常,可通过chronyntpd同步时间,
    systemctl enable --now chronyd
    chronyc tracking  # 验证同步状态
  3. 软件安装:安装Pacemaker(资源管理器)、Corosync(通信与消息层)、pcs(集群管理工具)等核心组件,以CentOS为例:
    yum install -y pacemaker corosync pcs fence-agents-all
    systemctl enable pcsd  # 设置开机自启

核心配置文件解析

HA集群的启动依赖于正确的配置文件,主要包括Corosync的通信配置和Pacemaker的资源定义。

Corosync配置文件(/etc/corosync/corosync.conf

Corosync负责节点间心跳传递和一致性协商,其核心配置如下(示例为两节点集群):

totem {
    version: 2
    secauth: on  # 启用安全认证,需生成共享密钥
    cluster_name: ha_cluster  # 集群名称
    transport: udpu  # 使用UDP协议,适用于无共享存储场景
    interface {
        ringnumber: 0
        bindnetaddr: 192.168.1.0  # 心跳网络网段
        mcastport: 5405  # 多播端口
    }
}
quorum {
    provider: corosync_votequorum  # 投票算法
    two_node: 1  # 两节点集群需启用,允许1节点存活
    votes: 1  # 每节点1票
}
nodelist {
    node {
        ring0_addr: node1.example.com  # 节点1主机名/IP
        nodeid: 1
    }
    node {
        ring0_addr: node2.example.com  # 节点2主机名/IP
        nodeid: 2
    }
}
logging {
    to_logfile: yes
    logfile: /var/log/corosync.log  # 日志路径
    to_syslog: yes
}

关键参数说明(通过表格整理):

参数 作用
secauth: on 启用安全认证,避免非法节点加入,需执行corosync-keygen生成密钥
transport: udpu 使用UDP单播模式,比多播更稳定,适用于大多数场景
two_node: 1 两节点集群必需,允许单节点达到仲裁(quorum),避免“脑裂”
ring0_addr 节点心跳网络IP,需与业务网络隔离

配置完成后,需生成Corosync认证密钥并同步至所有节点:

corosync-keygen  # 生成/etc/corosync/authkey(权限需为600)
scp /etc/corosync/{corosync.conf,authkey} node2:/etc/corosync/  # 同步至节点2

Pacemaker资源配置(通过pcs命令管理)

Pacemaker负责资源的启动、停止和故障转移,资源定义可通过pcs命令行或图形化工具完成,定义虚拟IP(VIP)资源:

pcs cluster auth node1 node2 -u hacluster -p password  # 认证节点(用户hacluster需提前创建)
pcs property set stonith-enabled=false  # 测试环境禁用 fencing(避免配置复杂)
pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s  # 定义VIP资源
pcs resource group add WebGroup VIP  # 将VIP加入资源组

HA服务启动流程

完成配置后,按以下步骤启动HA集群:

linux系统ha如何启动

启动pcsd服务并启用集群

pcsd是Pacemaker的集群管理守护进程,需先启动并设置为开机自启:

systemctl enable --now pcsd  # 所有节点执行

初始化集群(在任一节点执行)

使用pcs cluster setup命令初始化集群,指定节点名称和集群名称:

pcs cluster setup ha_cluster node1.example.com node2.example.com --start --enable
  • --start:初始化后自动启动集群服务;
  • --enable:设置集群开机自启。

验证Corosync通信状态

Corosync启动后,可通过以下命令检查节点间通信是否正常:

corosync-cfgtool -s  # 查看成员节点状态
# 输出示例:
Nodeid  Address        Status
--------------------------------------
1       192.168.1.10  Online
2       192.168.1.11  Online

若显示“Online”则通信正常,否则需检查防火墙(需放行5405/5404端口)和心跳网络配置。

启动Pacemaker并验证资源状态

Pacemaker会随Corosync自动启动,可通过crm_mon查看集群资源状态:

crm_mon -1r  # 实时显示资源状态(-1:仅显示一次;-r:持续显示)
# 输出示例:
Online: [ node1.example.com node2.example.com ]
Group: WebGroup
    VIP    (ocf::heartbeat:IPaddr2):       Started node1.example.com

若资源状态为“Started”且运行在节点1上,说明集群启动成功。

集群状态监控与维护

日志监控

HA集群的核心日志文件包括:

linux系统ha如何启动

  • /var/log/corosync.log:Corosync通信日志,排查节点掉线问题;
  • /var/log/pacemaker.log:Pacemaker资源决策日志,查看资源切换原因;
  • /var/log/pcsd/pcsd.logpcs命令操作日志,验证配置是否生效。

可通过tail -f实时监控日志:

tail -f /var/log/pacemaker.log

节点维护

若需停止某节点集群服务(如维护),需先迁移资源再关闭集群:

pcs cluster standby node1.example.com  # 将节点设为备用(资源自动迁移)
pcs cluster stop --all  # 停止所有节点集群服务

常见问题排查

启动时报错“corosync: Cannot find configuration file”

原因corosync.conf文件路径错误或权限不正确(需为640,属主为root:root)。
解决

ls -l /etc/corosync/corosync.conf  # 检查权限
chmod 640 /etc/corosync/corosync.conf
chown root:root /etc/corosync/corosync.conf

资源始终处于“Stopped”状态

原因:资源定义依赖缺失(如OCF脚本未安装)或节点资源不足(如内存、CPU)。
解决

pcs resource show VIP  # 查看资源详情
yum install -y heartbeat  # 安装OCF脚本(若缺少)

FAQs

Q1:启动HA集群时提示“pcs cluster setup: Cannot authenticate”怎么办?
A:通常因节点未认证或用户名/密码错误,需先执行pcs cluster auth node1 node2 -u hacluster -p password(确保hacluster用户存在且密码正确),并检查防火墙是否允许TCP端口(如2224、3121)。

Q2:Pacemaker集群启动后资源一直处于“Started”状态但VIP未生效,如何排查?
A:可通过以下步骤定位问题:

  1. 检查资源是否绑定正确节点:crm_mon -1r查看资源运行节点;
  2. 查看资源日志:grep "VIP" /var/log/pacemaker.log
  3. 手动触发资源监控:pcs resource VIP monitor interval=10s,观察是否报错(如IP冲突、网卡不存在)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36391.html

(0)
酷番叔酷番叔
上一篇 2025年10月5日 14:22
下一篇 2025年10月5日 14:35

相关推荐

  • 如何快速安装Ubuntu/Debian?

    使用 ip 命令(推荐)ip 是现代Linux系统的标准网络工具,取代了传统的 ifconfig,步骤:查询所有网卡信息:ip addr show输出关键字段解释:eth0、enp0s3:网卡名称(物理网卡或虚拟网卡),inet 192.168.1.100/24:IPv4地址及子网掩码,inet6 fe80……

    2025年6月20日
    16600
  • Linux服务如何重启?命令行操作步骤详解

    在Linux系统中,服务(Service)是后台运行的关键程序,负责提供特定功能(如Web服务、数据库服务等),当服务出现异常、配置更新或需要维护时,重启服务是最常见的操作之一,本文将详细介绍Linux服务重启的多种方法、适用场景及注意事项,帮助用户高效管理服务,Linux服务重启的核心方法Linux服务的管理……

    2025年9月17日
    15100
  • 为什么电脑竟禁止开机激活?

    使用 ip 命令(推荐现代方法)ip 命令是 ifconfig 的替代工具,支持所有主流发行版(Ubuntu/CentOS/Debian等),操作步骤:查看网卡名称:ip link show输出示例:enp0s3: <BROADCAST,MULTICAST,UP>…(网卡名如 enp0s3),禁……

    2025年8月5日
    13300
  • Linux系统中安装.run文件的具体步骤与命令方法是什么?

    在Linux系统中,.run文件通常是自解压的可执行安装包,常见于官方软件的安装程序(如NVIDIA驱动、某些IDE或工具),这类文件通过打包安装脚本和依赖库,简化了安装流程,但需要用户手动执行和配置,本文将详细介绍Linux系统中安装.run文件的完整步骤、注意事项及常见问题解决方法,安装.run文件前的准备……

    2025年8月24日
    17000
  • Linux休眠失效?如何解决

    在 Linux 系统中,休眠(Hibernation) 是一种将内存数据完整保存到磁盘(通常是 Swap 分区或文件)后彻底关闭电源的状态,唤醒时,系统从磁盘恢复内存数据,精确还原到休眠前的状态,与挂起(Suspend) 不同,休眠不依赖电源维持内存数据,适合长时间离开电脑的场景(如夜间休眠),能显著节省电力……

    2025年6月18日
    18600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信