Skip to content

双机热备

适用版本:DASS5(当前版本,需 DASS 3.5.0 及以上)
前提:两台设备的 DASS 版本、型号、应用列表与操作系统一致;haidas 服务已部署并启动

功能概述

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

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

核心价值

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

工作原理

双机热备的切换过程分为三个阶段。

阶段一:状态预置

  • 把「交出服务的一方」标记为「准备休眠」;
  • 把「接管服务的一方」标记为「准备活跃」;
  • 此阶段只改标记,不动服务。

阶段二:服务接力

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

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

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

为什么要知道这个原理? 如果切换过程中出现问题,可以根据日志判断卡在哪个阶段:

  • 阶段一失败:检查网络连通性;
  • 阶段二失败:检查具体哪个服务启动 / 停止异常;
  • 阶段三失败:检查 VIP 配置(IP、网卡、掩码)。

关键状态说明

状态含义
Active活跃,对外提供服务(VIP 在本机)
Sleep休眠,不对外提供服务(VIP 不在本机)
StartActive准备活跃(切换进行中)
StartSleep准备休眠(切换进行中)
Unknown异常状态,需要排查

使用场景

  • 关键业务服务器(数据采集服务、历史数据存储服务);
  • 7×24 小时连续运行的监控工作站;
  • 需要避免计划外停机的控制系统。

下图是典型案例,下文均以此为例。

双机热备典型案例

前置条件

  • 设备 B 和设备 C 的 DASS 版本、型号、应用列表和操作系统需一致;
  • 设备 B 和设备 C 的 openPlant 版本、授权信息需保持一致;
  • 设备 B 和设备 C 网络通讯正常;
  • 设备 A 支持双路采集;
  • 设备 B 和 C 的操作系统如果是 Windows,系统版本需 Win10 及以上;
  • haidas 服务已在设备 B 和设备 C 上部署并启动;
  • 两台设备的 haidas 服务端口互通(默认端口 30001)。

操作步骤

【操作】:

步骤1. 在设备 B 和设备 C 上部署 DASS 系统,在设备 D 上部署 openPlant。

点页面上的【提示】按钮可随时打开《双机热备实现指南》,里面列了实现关键流程(基础环境配置、数据同步机制)与同步类型说明:

双机热备实现指南

参见:DASSERVER 部署openPlant Linux 系统部署

步骤2. 在设备 B 和设备 C 上进行基础配置、心跳配置和传输配置。

设备 B 的配置:

设备 B 配置

设备 C 的配置:

设备 C 配置

三块配置都在同一个【配置】弹窗里完成 —— 基础配置(本机角色 / 切换阈值)、心跳配置(对端 IP / 对端端口 / 心跳间隔)、传输配置(传输接口 / 虚拟 IP):

热备配置弹窗

步骤3. 检查设备 B、设备 C 与其 openPlant 的连接状态。

设备 B 的 openPlant 连接状态:

设备 B openPlant 连接状态

设备 C 的 openPlant 连接状态:

设备 C openPlant 连接状态

步骤4. 配置设备 B 到设备 D 的单向 openPlant 库到库镜像。

设备 B 镜像配置 1
设备 B 镜像配置 2
设备 B 镜像配置 3

步骤5. 配置设备 C 到设备 D 的单向 openPlant 库到库镜像。

设备 C 镜像配置 1
设备 C 镜像配置 2
设备 C 镜像配置 3

步骤6. 开启双机热备,系统会自动检测并创建设备 B 和设备 C 之间的双向 openPlant 库到库镜像。

开启双机热备
双向镜像

【注意】双机热备状态开关是双向同步的,只要在设备 B 和 C 任意一台上开启,两端都会同时开启。

开启成功判据

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

步骤7. 创建服务通道和测点。

点击【创建采集】,创建一个数据模拟服务,用来验证实时值在双机热备中的流向:

创建采集 1
创建采集 2
创建采集 3

创建通道:

创建通道 1
创建通道 2

创建测点:

创建测点 1
创建测点 2

设备 B 上已成功创建服务、通道和测点:

设备 B 创建结果

设备 C 上已同步存在这些服务、通道和测点;由于设备 C 处于休眠状态,其服务为停止状态:

设备 C 同步结果

在设备 C 上查看数据是否有值,验证实时值同步镜像是否成功:

设备 C 数据验证

通过实时库客户端软件连接设备 D 的 openPlant,检测中心侧数据是否完整:

中心侧数据验证 1
中心侧数据验证 2

步骤8. 手动切换(可选)。当需要把服务从当前活跃机切换到另一台时,可执行手动切换。

  1. 双机热备页面顶部工具栏为:刷新 / 提示 / 历史记录 / 手动切换 / 手动同步 / 配置

双机热备页面

  1. 在当前活跃机页面点击【手动切换】(与【手动同步】并排):

    手动切换

  2. 观察状态变化:原活跃机为「活跃 → 准备休眠 → 休眠」,原休眠机为「休眠 → 准备活跃 → 活跃」;

  3. 等待切换完成(通常几十秒内,取决于服务数量);

  4. 验证切换结果:VIP 已漂移到新的活跃机;新活跃机的关键采集服务处于运行状态;原活跃机的关键采集服务已停止;心跳稳定,无持续报错。

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

点【历史记录】可以查看到每一次切换的时间与操作记录:

历史记录

  • 模拟设备 B 采集服务运行异常;
  • 模拟设备 B 和设备 C 网络中断;
  • 模拟设备 B 的 openPlant 运行异常。

参数说明

说明
基础配置 / 心跳配置 / 传输配置组建热备时填写的三组参数(见「操作步骤」)
切换阈值触发主备切换的健康值差值阈值(V3.5.4 起支持设置)
健康值采集健康值、上传健康值、实时库健康值 —— 三者比较决定是否切换
两机一致性系统版本、设备型号、操作系统、实时库版本、授权信息必须一致

注意事项

禁止操作项

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

允许操作项

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

切换触发条件

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

【注意】双机热备开启后,请确认实时库已创建双向镜像,这是实现数据一致性的保证。

相关命令/接口

见**《DASS5 接口与二次开发手册》** → 双机热备接口未收录(其配置由设备端服务提供,见本章「工作原理」与「参数说明」)。

安全声明

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

示例

示例 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 镜像。

常见问题及解决方法

问题 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 服务已启动。