Skip to content

3.4.10 双机热备

3.4.10.1 功能概述

双机热备(High Availability)是DASS 3.5.0系统实现高可用性的核心架构,基于主用节点(Active Node)与备用节点(Standby Node)的冗余架构设计。本方案通过以下技术手段保障业务连续性:

  1. 单活模式:同一时间仅一台机器提供服务(活跃态),另一台待命(休眠态),VIP(虚拟IP)绑定在活跃机上
  2. 服务级切换:切换时按服务清单逐个停止/启动,减少业务中断窗口
  3. VIP漂移:对外统一入口IP跟随活跃机切换,保证访问连续性
  4. 数据同步:基于实时数据库双向镜像,保证数据一致性

核心价值

  • 消除故障对实时数据采集的影响
  • 确保控制指令的连续执行
  • 满足工业自动化系统高可用性要求
3.4.10.2 工作原理

双机热备的切换过程分为三个阶段:
阶段一:状态预置

  • 将"交出服务的一方"标记为"准备休眠"
  • 将"接管服务的一方"标记为"准备活跃"
  • 此阶段只改标记,不动服务

阶段二:服务接力

  • 按服务清单逐个切换:
    • 交出方停止服务 → 等待停稳
    • 接管方启动服务 → 等待起稳
  • 逐个完成,确保每一步都成功

阶段三:VIP漂移与状态收敛

  • 接管方挂载VIP(对外可访问)
  • 交出方卸载VIP(对外不可访问)
  • 双方状态落定为"活跃/休眠"

为什么要知道这个原理?

  • 如果切换过程中出现问题,可以根据日志判断卡在哪个阶段
  • 阶段一失败:检查网络连通性
  • 阶段二失败:检查具体哪个服务启动/停止异常
  • 阶段三失败:检查VIP配置(IP、网卡、掩码)

关键状态说明

状态含义
Active活跃,对外提供服务(VIP在本机)
Sleep休眠,不对外提供服务(VIP不在本机)
StartActive准备活跃(切换进行中)
StartSleep准备休眠(切换进行中)
Unknown异常状态,需要排查
3.4.10.3 使用场景
  • 关键业务服务器(数据采集服务、历史数据存储服务)
  • 7x24小时连续运行的监控工作站
  • 需要避免计划外停机的控制系统

双机热备案例图.png 典型案例,下面介绍会以此为为例。

3.4.10.4 前置条件
  • 设备B和设备C的DASS版本、型号、应用列表和操作系统需一致
  • 设备B和设备C的openPlant的版本、授权信息需保持一致
  • 设备B和设备C网络通讯正常
  • 设备A支持双路采集
  • 设备B和C的操作系统如果是windows,系统版本需win10+
  • HAIDAS服务已在设备B和设备C上部署并启动
  • 两台设备的HAIDAS服务端口互通(默认端口30001)
3.4.10.5 操作步骤

步骤1:在设备B和设备C上部署DASS系统,在设备D上部署openPlant
步骤2:在设备B和设备C上进行基础配置、心跳配置和传输配置 image.png 设备B的配置 image.png 设备C的配置
步骤3:检查设备B、设备C和设备C的openPlant连接状态 image.png 设备B的openPlant连接状态 image.png 设备CopenPlant的连接状态
步骤4:配置设备B到设备D的单向openPlant 库到库镜像 image.png image.png image.png
步骤5: 配置设备C到设备D的单向openPlant库到库镜像 image.png image.png image.png
步骤6: 开启双机热备,系统会自动检测并创建设备B和设备C双向openPlant库到库镜像 image.png image.png 双机热备状态开关是双向同步的, 所以只要在设备B和C任意一个设备上面开启都会同时开启
开启成功判据

  • 主机(Master):状态显示"活跃",VIP已挂载
  • 备机(Slave):状态显示"休眠",VIP已卸载
  • 两端心跳正常(无持续报错)

步骤7: 创建服务通道和测点 点击"创建采集" image.png 创建一个数据模拟服务, 用来验证实时值在双机热备中的流向 image.png image.png 创建通道 image.png image.png 创建测点 image.png image.png 设备B上已经成功创建了服务通道和测点 image.png 设备C上已经存在了在设备B上创建的服务通道和测点,只不过由于是设备C是休眠状态, 服务是停止状态 image.png 在设备C上查看数据是否有值,验证实时值同步镜像是否成功 image.png 通过实时库客户端软件连接设备D的openPlant,检测中心侧数据是否完整 image.png image.png
步骤8:手动切换(可选) 当需要将服务从当前活跃机切换到另一台时,可执行手动切换:

  1. 在当前活跃机页面点击"手动切换"
  2. 观察状态变化:
    • 原活跃机状态:活跃 → 准备休眠 → 休眠
    • 原休眠机状态:休眠 → 准备活跃 → 活跃
  3. 等待切换完成(通常几十秒内,取决于服务数量)
  4. 验证切换结果:
    • VIP已漂移到新的活跃机
    • 新活跃机的关键采集服务处于运行状态
    • 原活跃机的关键采集服务已停止
    • 心跳稳定,无持续报错

步骤9:故障模拟与恢复测试

  • 模拟设备B采集服务运行异常
  • 模拟设备B和设备C网络中断
  • 模拟设备B的openPlant运行异常
3.4.10.6 参数说明

无。

3.4.10.7 注意事项
  • 双机热备开启后实时库需确认创建了双向镜像,这是实现数据一致性的保证

禁止操作项:

  • ❌ 服务启停/重启
  • ❌ 通道启停/挂起
  • ❌ 直接修改实时库数据

允许操作项:

  • ✅ 服务、通道和测点的增删改(自动触发同步)
  • ✅ 只读类查询操作
  • ✅ 状态监控操作
  • ✅ 手动切换操作

切换触发条件:

  • 单活模式下仅支持手动切换
  • 手动切换指令:在当前活跃机页面点击"手动切换"按钮
  • 切换过程中会自动保护,防止并发操作导致状态冲突
3.4.10.8 示例

示例1:正常切换流程
场景:设备B(主机)为活跃状态,设备C(备机)为休眠状态,需要将服务切换到设备C
操作步骤:

  1. 在设备B页面点击"手动切换"
  2. 观察状态变化:
    • 设备B:活跃 → 准备休眠 → 休眠
    • 设备C:休眠 → 准备活跃 → 活跃
  3. 切换完成后验证:
    • VIP从设备B漂移到设备C
    • 设备C上采集服务运行正常
    • 设备B上采集服务已停止
  4. 如需切回设备B,在设备C页面再次点击"手动切换"即可

示例2:开启双机热备流程
场景:首次部署,需要开启双机热备功能
操作步骤:

  1. 在设备B和设备C上完成DASS部署和配置
  2. 在设备B或设备C上点击"开启双机热备"
  3. 系统自动执行:
    • 主机(Master):启动所有服务,挂载VIP,进入活跃状态
    • 备机(Slave):停止所有服务,卸载VIP,进入休眠状态
  4. 开启成功后,系统会自动创建双向openPlant镜像
3.4.10.9 常见问题及解决方法

问题1:开启双机热备后状态显示"Unknown"
现象:页面显示Unknown,或提示"部分服务启动失败"
可能原因:

  • 服务配置中存在服务名不匹配/不存在
  • 服务已在运行,但重复启动导致报错
  • DASS服务列表状态短暂抖动导致等待超时

解决方法:

  1. 查看日志,找到具体失败的服务名称
  2. 检查服务配置是否正确
  3. 重新执行"开启双机热备"触发重试

问题2:操作时提示"状态切换中,请稍后再试"
现象:点击开启/关闭/切换按钮时,提示"状态切换中,请稍后再试"
可能原因:

  • 当前有其他切换操作正在进行
  • 上一次切换操作还未完成

解决方法:

  1. 等待当前操作完成(通常几十秒内)
  2. 如果长时间未完成,刷新页面查看当前状态
  3. 如果持续报错,可重启活跃侧HAIDAS服务

问题3:手动切换后VIP未漂移
现象:切换完成后,VIP仍在原活跃机上
可能原因:

  • VIP配置错误(IP、网卡名、子网掩码)
  • 网卡不存在或不可用
  • 网络权限不足

解决方法:

  1. 检查VIP配置是否正确
  2. 确认网卡存在且可用
  3. 检查网络权限
  4. 如需紧急恢复,可手动操作VIP

问题4:备机启动服务后服务被停止
现象:切换过程中,备机日志显示服务启动成功但随即被停止
可能原因:

  • 切换流程未按正常顺序执行
  • 状态标记异常

解决方法:

  1. 检查日志,确认切换流程是否完整
  2. 重新执行"开启双机热备"触发状态收敛
  3. 如果问题持续,重启备机HAIDAS服务

问题5:心跳持续报错
现象:日志中持续出现心跳错误
可能原因:

  • 两台设备网络不通
  • HAIDAS服务端口被防火墙拦截
  • 对端HAIDAS服务未启动

解决方法:

  1. 检查两台设备之间的网络连通性
  2. 检查防火墙是否放行HAIDAS服务端口(默认30001)
  3. 确认对端HAIDAS服务已启动
3.4.10.10 相关命令/接口

无。

3.4.10.11 安全声明
  • 双机热备开启后,禁止手动启停服务、通道,禁止直接修改实时库数据
  • 切换过程中系统会自动保护,防止并发操作导致状态冲突
  • VIP漂移采用"先挂载后卸载"策略,避免出现双VIP情况
  • 首次上线建议先验证核心服务,确认流程稳定后再扩大服务范围