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

相关推荐

  • Linux系统安全,如何设置最强root密码?

    通过sudo命令(推荐日常使用)适用场景:当前用户拥有sudo权限(Ubuntu/Debian等默认禁用root,需此法)sudo passwd root终端输入命令,按提示输入当前用户密码(验证sudo权限)设置高强度新密码(建议12位以上,含大小写字母、数字、符号)确认新密码,显示passwd: passw……

    2025年7月17日
    15300
  • 如何快速解决Ubuntu apt依赖错误?

    在 Linux 系统中,在线安装软件是通过互联网直接从软件仓库获取并安装程序的核心方式,具有自动处理依赖、一键更新、安全可靠的优势,以下是针对不同发行版的详细操作指南:准备工作(必做步骤)更新软件源列表安装前需同步最新的软件仓库信息(避免安装旧版或缺失依赖):# Debian/Ubuntu 系sudo apt……

    2025年6月17日
    14400
  • eth0如何添加虚拟IP 192.168.1.100?

    在Linux系统中,虚拟IP(Virtual IP,简称VIP)是一种将多个IP地址绑定到同一张物理网卡的技术,它常用于高可用集群(如Keepalived)、负载均衡、服务冗余等场景,确保当主节点故障时,备用节点能无缝接管服务,以下将详细讲解配置方法,涵盖临时与永久两种方式,并针对不同发行版提供指导,虚拟IP的……

    2025年7月19日
    16300
  • Linux环境下如何彻底卸载已安装的JRE程序及残留文件?

    在Linux系统中卸载JRE(Java Runtime Environment)需要根据其安装方式选择不同的方法,常见的安装方式包括系统包管理器(如apt、yum/dnf)安装、手动解压安装以及通过SDKMAN!等工具安装,以下是详细的卸载步骤和注意事项,确认JRE的安装方式在卸载前,需先确定JRE是通过哪种方……

    2025年8月29日
    9400
  • 如何快速安装GPM?

    在Linux系统中,GPM(General Purpose Mouse)是一项关键服务,它允许用户在文本模式的控制台(TTY)中使用鼠标进行操作,例如选择文本、复制粘贴等,这对于服务器维护、系统修复或偏好命令行环境的用户尤为重要,下面详细介绍如何使能GPM,涵盖安装、配置、启动及故障排除,根据您的Linux发行……

    2025年7月28日
    15500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信