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。
二、网络规划:名称解析、端口与共享路径
Directory 冗余对网络环境非常敏感,规划不当会导致“服务正常但客户端连不上”的隐性故障。核心规划点如下:
- 名称解析:客户端通过 Directory 主机名访问服务,必须保证 DNS 或 hosts 文件能稳定解析主、辅节点名称,避免依赖 NetBIOS 广播。
- 固定 IP 与同网段:主辅节点建议部署在同一子网或低延迟链路内,使用固定 IP,避免 DHCP 续租导致注册信息失效。
- 端口放通:Directory 服务依赖 RPC 动态端口与特定监听端口,防火墙需按 Rockwell 官方端口清单放通,主辅节点之间、客户端到主辅节点之间都要验证。
- 共享存储路径:共享目录必须使用 UNC 路径(如
\\FTD-SHARE\FTDirectory),并授予主辅节点服务账户读写权限。 - 时间同步:主辅节点与域控保持时间同步,避免安全令牌与同步判断异常。
下面这张图展示了冗余 Directory 的典型拓扑:主节点、辅助节点、共享存储与客户端之间的连接关系,以及故障转移时服务角色与客户端连接方向的变化。
三、故障转移机制:客户端如何“无感”切换
当主节点服务停止、主机宕机或网络中断时,辅助节点检测到心跳丢失,会尝试接管 Directory 服务角色。客户端在连接失败后按重试策略重新解析 Directory 主机名,并连接到当前活动节点。整个过程能否“无感”,取决于三个条件:
- 共享存储始终可访问:辅助节点必须能读到同一份配置数据库,否则接管后数据不一致。
- 客户端重试参数合理:重试间隔过短会造成连接风暴,过长则切换感知时间被拉长。工程中通常将重试控制在数秒级,并配合画面缓存减少视觉中断。
- 名称解析指向活动节点:若使用固定主机名,需要 DNS 或客户端配置能跟随角色变化;若直接写死主节点 IP,则切换后客户端仍会连向失效节点。
四、工程实施要点与验证方法
实施阶段建议按“先存储、再服务、后客户端”的顺序推进,并在每一步留下可验证的证据。
| 阶段 | 关键动作 | 验证依据 |
|---|---|---|
| 共享存储 | 创建 UNC 共享目录,授予服务账户读写权限 | 主辅节点均可读写测试文件 |
| 主节点 | 安装并指定 Network Directory,指向共享路径 | Directory 服务启动,客户端可登录 |
| 辅助节点 | 加入同一 Network Directory,确认同步状态 | 辅助节点显示待命且数据一致 |
| 故障演练 | 停止主节点服务,观察辅助节点接管 | 客户端在预期时间内恢复标签解析 |
| 回切 | 恢复主节点,确认角色回归或保持 | 无重复注册、无权限丢失 |
故障演练是验收的核心环节。建议在计划停机窗口内,先停止主节点 Directory 服务而非直接断电,观察辅助节点接管时间、客户端报错日志与画面恢复情况;再模拟网络中断,验证心跳丢失后的行为。演练记录应包含切换耗时、客户端重连次数、是否有标签解析失败,以及回切后权限与区域结构是否完整。
最后需要强调:Directory 冗余解决的是“命名与安全中枢”的可用性,它不能替代 HMI 服务器冗余、历史库冗余或网络冗余。只有把 Directory 冗余放在整体高可用架构中统一定义角色、统一规划网络与存储,FactoryTalk 监控平台才能在单点故障下保持连续运行。