HA高可用集群的相关术语

核心概念深度解析

1. 节点 (Node)

  • 定义: 集群中的物理服务器或虚拟机,是运行集群软件的载体。
  • 关键特性:
    • 身份与状态: 集群中的每个节点都有一个唯一的主机名。除了你提到的主备之分,节点通常还会有一个“状态”,如:
      • 在线/离线: 心跳检测的结果。
      • 主/备: 资源的当前归属。
    • 隔离性: 为了防止“脑裂”(Split-Brain),节点必须具备自我隔离或被强制隔离的能力(Fencing),确保故障节点在资源转移后不会继续干扰集群。

2. 资源 (Resource)

  • 定义: 为了提供特定服务所需的所有元素的抽象。
  • 关键特性:
    • 资源的依赖关系: 资源之间通常存在启动顺序的依赖。例如:
      1. 必须先挂载磁盘分区(资源A)。
      2. 才能启动IP地址(资源B)。
      3. 最后才能启动应用服务(资源C,如Nginx或MySQL)。
    • 资源组: 为了简化管理,通常将存在依赖关系的多个资源(如VIP+HTTP服务)绑定在一起作为一个整体(资源组/服务组),在节点间一同转移。

3. 事件 (Event)

  • 定义: 触发集群状态机发生变化的因素。
  • 补充说明:
    • 分层故障: 事件不仅仅是“节点故障”。现代HA软件会区分不同层次的事件:
      • 资源级故障: 应用进程挂了,但节点正常。
      • 节点级故障: 系统宕机、内核崩溃、心跳丢失。
      • 网络级故障: 网卡失效或交换机断开。
    • 脑裂: 这是最严重的“事件”结果,指集群中因为心跳中断导致节点间失去联系,各自认为对方已死,从而争抢资源运行,造成数据损坏。

4. 动作 (Action)

  • 定义: 策略引擎根据事件做出的最终决策。
  • 补充说明:
    • 不仅仅是Shell脚本: 虽然底层通常由Shell脚本执行具体操作(如systemctl start nginx),但集群软件本身有一套复杂的策略引擎来决定“动作”的流程。典型的动作包括:
      • 故障转移: 主节点故障,备用节点接管资源。
      • 故障回复: 原主节点恢复后,资源是否自动回切。
      • ** fencing(隔离):** 这是最重要的动作。确认节点故障后,集群必须通过STONITH(Shoot The Other Node In The Head)等手段强制关闭故障节点的电源或切断其磁盘访问,保证数据一致性。
    • 通知: 执行动作的同时,通常还会触发报警邮件或短信通知管理员。

总结流程图

将这些概念串联起来,一个典型的高可用集群工作流程如下:

  1. 节点状态检测 (Heartbeat) —— 涉及节点
  2. 事件发生 (如主节点网络中断) —— 涉及事件
  3. 策略决策 (集群软件判定节点失联) —— 涉及策略
  4. 执行隔离 (Fencing/STONITH,确保故障节点不再写入数据) —— 涉及动作
  5. 资源转移 (在备用节点上启动IP、挂载磁盘、启动服务) —— 涉及资源

发表回复

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