4. FactoryTalk Directory高可用部署

在 FactoryTalk View SE 单机或分布式应用中,FactoryTalk Directory(FTD)承担着“全局命名与安全中枢”的角色:所有参与系统的节点、区域、画面、标签别名、安全账户与权限都注册在 Directory 中。一旦 Directory 服务不可用,客户端将无法解析标签、无法登录、无法打开画面,整个监控系统在逻辑上等同于瘫痪。因此,Directory 的高可用部署不是可选项,而是分布式架构的基础工程要求。

一、Directory 冗余的本质:主备服务与共享数据存储

FactoryTalk Directory 的冗余由两部分共同构成:一是运行 Directory 服务的主节点与辅助节点,二是两者共同访问的共享数据存储。主节点持有活动 Directory 服务,辅助节点处于待命状态并持续同步。共享存储通常位于网络共享路径或专用服务器上,保存 Network Directory 的配置数据库。只有当“服务角色”和“数据存储”同时具备冗余能力时,故障转移才真正成立。

需要特别区分两类 Directory:Network Directory(网络目录)面向整个分布式系统,支持冗余;Local Directory(本地目录)仅服务于本机应用,不具备跨节点冗余意义。工程中讨论高可用,默认指 Network Directory。

冗余部署前必须确认:所有客户端、服务器、工程站都指向同一个 Network Directory 名称,而不是各自使用本地目录,否则冗余配置形同虚设。

二、网络规划:名称解析、端口与共享路径

Directory 冗余对网络环境非常敏感,规划不当会导致“服务正常但客户端连不上”的隐性故障。核心规划点如下:

  • 名称解析:客户端通过 Directory 主机名访问服务,必须保证 DNS 或 hosts 文件能稳定解析主、辅节点名称,避免依赖 NetBIOS 广播。
  • 固定 IP 与同网段:主辅节点建议部署在同一子网或低延迟链路内,使用固定 IP,避免 DHCP 续租导致注册信息失效。
  • 端口放通:Directory 服务依赖 RPC 动态端口与特定监听端口,防火墙需按 Rockwell 官方端口清单放通,主辅节点之间、客户端到主辅节点之间都要验证。
  • 共享存储路径:共享目录必须使用 UNC 路径(如 \\FTD-SHARE\FTDirectory),并授予主辅节点服务账户读写权限。
  • 时间同步:主辅节点与域控保持时间同步,避免安全令牌与同步判断异常。

下面这张图展示了冗余 Directory 的典型拓扑:主节点、辅助节点、共享存储与客户端之间的连接关系,以及故障转移时服务角色与客户端连接方向的变化。

FactoryTalk Directory 冗余拓扑与故障转移 共享数据存储 \\FTD-SHARE\FTDirectory 主节点 FTD-PRIMARY 活动 Directory 服务 10.10.1.11 辅助节点 FTD-SECONDARY 待命 / 同步中 10.10.1.12 状态同步 / 心跳 读写 读写 View SE 客户端 指向 Network Directory 工程站 / HMI 服务器 解析标签与安全 历史 / 报表节点 依赖 Directory 登录 活动连接 故障后切换 主节点失效 → 辅助节点接管服务角色

三、故障转移机制:客户端如何“无感”切换

当主节点服务停止、主机宕机或网络中断时,辅助节点检测到心跳丢失,会尝试接管 Directory 服务角色。客户端在连接失败后按重试策略重新解析 Directory 主机名,并连接到当前活动节点。整个过程能否“无感”,取决于三个条件:

  1. 共享存储始终可访问:辅助节点必须能读到同一份配置数据库,否则接管后数据不一致。
  2. 客户端重试参数合理:重试间隔过短会造成连接风暴,过长则切换感知时间被拉长。工程中通常将重试控制在数秒级,并配合画面缓存减少视觉中断。
  3. 名称解析指向活动节点:若使用固定主机名,需要 DNS 或客户端配置能跟随角色变化;若直接写死主节点 IP,则切换后客户端仍会连向失效节点。
故障转移不是“数据自动双向合并”。主辅节点共享同一存储,切换后由新活动节点继续读写;若共享存储本身单点失效,冗余服务也无法挽救 Directory 可用性。

四、工程实施要点与验证方法

实施阶段建议按“先存储、再服务、后客户端”的顺序推进,并在每一步留下可验证的证据。

阶段关键动作验证依据
共享存储 创建 UNC 共享目录,授予服务账户读写权限 主辅节点均可读写测试文件
主节点 安装并指定 Network Directory,指向共享路径 Directory 服务启动,客户端可登录
辅助节点 加入同一 Network Directory,确认同步状态 辅助节点显示待命且数据一致
故障演练 停止主节点服务,观察辅助节点接管 客户端在预期时间内恢复标签解析
回切 恢复主节点,确认角色回归或保持 无重复注册、无权限丢失

故障演练是验收的核心环节。建议在计划停机窗口内,先停止主节点 Directory 服务而非直接断电,观察辅助节点接管时间、客户端报错日志与画面恢复情况;再模拟网络中断,验证心跳丢失后的行为。演练记录应包含切换耗时、客户端重连次数、是否有标签解析失败,以及回切后权限与区域结构是否完整。

最后需要强调:Directory 冗余解决的是“命名与安全中枢”的可用性,它不能替代 HMI 服务器冗余、历史库冗余或网络冗余。只有把 Directory 冗余放在整体高可用架构中统一定义角色、统一规划网络与存储,FactoryTalk 监控平台才能在单点故障下保持连续运行。