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如何解压.lzma文件?

    在Linux系统中,使用unxz或xz -d命令解压.lzma或.xz文件,需先安装xz-utils包,使用-k保留原压缩文件,xzcat可直接查看内容。

    2025年8月7日
    11600
  • Linux系统如何快速返回桌面?操作步骤与方法有哪些?

    在Linux系统中,“返回桌面”的操作因桌面环境的不同而存在差异,常见的桌面环境包括GNOME、KDE Plasma、XFCE、MATE、Cinnamon等,每种环境都有其独特的交互逻辑和快捷方式,下面将详细介绍主流桌面环境下返回桌面的方法,并辅以通用技巧和特殊情况处理,主流桌面环境的具体操作方法GNOME(U……

    2025年9月10日
    11000
  • Linux系统如何找到命令行的具体方法?

    在Linux系统中,命令行(也称为终端、Shell或控制台)是系统管理的核心工具,通过它可以高效执行系统操作、管理文件、运行程序等,找到并使用命令行是Linux用户的基本技能,本文将详细介绍在不同场景下访问Linux命令行的方法,包括本地图形界面、纯文本界面、远程连接以及进阶技巧,本地图形界面下打开命令行大多数……

    2025年10月6日
    10600
  • Linux如何查看解压密码?

    在Linux系统中,查看加密压缩包的密码并没有直接的“一键查看”命令,因为压缩包的密码是通过加密算法保护的,无法直接读取明文,可以通过多种工具和方法尝试破解或找回密码,具体取决于压缩包的格式(如zip、7z、rar等)和已知信息,以下是详细的操作方法和工具介绍,常见压缩格式及密码破解工具不同格式的压缩包需使用对……

    2025年10月6日
    8700
  • Linux如何查看端口使用情况?

    在Linux系统中,端口是网络通信的入口,查看端口使用情况是排查网络问题、安全监控和服务的日常运维的重要操作,本文将详细介绍几种常用的查看端口使用情况的命令,包括它们的用法、参数和适用场景,并通过表格对比不同工具的特点,最后附上常见问题解答,使用netstat命令查看端口netstat是Linux中经典的网络工……

    2025年8月29日
    11100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信