ThingWorx HA 的文件存储
对于独立的 ThingWorx 安装,通常有三个已建立的文件位置:/ThingworxPlatform、/ThingworxStorage/ThingworxBackupStorage。在 /ThingworxStorage 位置中,默认情况下会创建初始文件信息库。对于 HA 部署,需要执行一些规则和更改。
/ThingworxPlatform 文件夹
ThingworxPlatform 文件夹包含 ThingWorx 实例启动时读取的必需文件。这些文件包括:
platform-settings.json
keystore-password
license_capability_response.bin (或此文件名的变型)
对于 ThingWorx HA 配置,每个 ThingWorx 服务器都应保留一个本地 /ThingworxPlatform 文件夹。主要原因是要保存单独的许可内容。
以下内容需要在所有 ThingWorx HA 服务器之间保持同步。文件构建或生成后,无论何时在一个 ThingWorx 服务器上对该文件进行修改,其中的内容都应传播到其 HA 配置中的所有其他 ThingWorx 服务器。
platform-settings.json
keystore-password
对于许可内容,每个 ThingWorx 服务器都必须同时保留其自有许可证文件以及初始激活时所创建的信任存储。
可以使用以下过程在每个 ThingWorx 服务器的 /ThingworxPlatform 文件位置建立这些文件:
1. 在所有 ThingWorx 服务器上创建 /ThingworxPlatform。HA 配置中所有 ThingWorx 服务器上的文件夹结构都必须相同。
2. 构建 platform-settings.json 以适应系统环境,并将其保存到初始 ThingWorx 服务器 (要在 HA 配置中启动的第一个 ThingWorx 服务器) 的 /ThingworxPlatform
3. 启动初始 ThingWorx 服务器并确保其完全可操作,且可以使用所有预期的许可功能。此时,/ThingworxPlatform 中应有三个文件:
platform-settings.json
keystore-password
successful_license_capability_response.bin
4. 关闭初始 ThingWorx 服务器。
5. 将这三个文件从初始服务器复制到其他服务器的 /ThingworxPlatform 文件夹中。
6. 在其他服务器中,将许可证文件从 successful_license_capability_response.bin 重命名为 license_capability_response.bin
7. 依次启动、测试和停止其他 ThingWorx 服务器,以确保所有许可功能均可用。
ThingworxPlatform 文件夹的默认位置为 /ThingworxPlatform。可以通过环境变量 THINGWORX_PLATFORM_SETTINGS 设置非默认位置。在启动 Tomcat with ThingWorx 之前,必须在 Tomcat 操作系统用户环境中建立变量。请确保 THINGWORX_PLATFORM_SETTINGS 所参考的文件夹存在,并且 Tomcat 操作系统用户对其具有读取/写入权限。
/ThingworxStorage
每个 ThingWorx 服务器上的 /ThingworxStorage 文件夹均应单独保留。此操作的主要原因是为每台 ThingWorx 服务器保留单独的日志。
在这种情况下,需要将 keystore.jks 文件分发给所有 ThingWorx 服务器,以确保它们使用的密钥相同。完成此操作的过程如下:
1. 在所有 ThingWorx 服务器上创建 /ThingworxStorage。HA 配置中所有 ThingWorx 服务器上的文件夹结构都必须相同。
2. 使得 ThingWorx 在主导节点上完全可操作。
3. 从主导节点复制 /ThingworxStorage/keystore.jks,然后将其安装到备用服务器的 /ThingworxStorage 中。
platform-settings.jsonBasicSettings 部分中管理 /ThingworxStorage 的位置。
/ThingworxBackupStorage
/ThingworxBackupStorage 的主要用途是备份 H2 数据库。由于 ThingWorx HA 配置不支持 H2,因此,不会使用此位置。但是,在运行时仍需要此位置存在。
在每个 ThingWorx 服务器上创建此位置足以避免任何记录的错误。
设置 platform-settings.json 文件中的 "EnableBackup": false,以避免在 HA 环境中进行不必要的处理。
/ThingworxBackupStorage 的位置将在 platform-settings.json 中进行管理。所有 ThingWorx 服务器上的文件夹结构都必须相同。
根文件信息库
根文件信息库必须位于共享文件系统卷上,其中所有 ThingWorx 服务器均对其具有相同的读取/写入权限。
文件共享注意事项:
网络连接存储 (NAS) 或云对等产品/服务是提供共享文件系统的常见解决方案。
NAS 产品/服务应拥有其自己的高可用性解决方案,以支持这一 ThingWorx HA 实现。
在启动 ThingWorx 实例之前,必须将此卷安装到服务器。
在每个 ThingWorx 服务器上运行 Tomcat 服务的操作系统用户都必须具有信息库所在文件共享位置的读取/写入权限。
每个 ThingWorx 服务器上的安装位置都必须相同。
必须将根文件信息库文件夹的位置添加到之前所讨论的系统 platform-settings.json 文件中。参数 FileRepositoryRoot 和共享文件位置应添加到 BasicSettings 部分。该值应列出要建立信息库的文件夹位置。例如,如果要在 /ThingworxFileRepository/repository 中建立初始信息库文件夹,则应将

"FileRepositoryRoot":"/ThingworxFileRepository"
添加到 platform-settings.json
* 
如果 FileRepositoryRoot 参数未在 platform-settings.json 文件中指定,则系统会使用默认的信息库位置 (/ThingworxStorage)。
* 
如果 FileRepositoryRoot 中定义的位置由于某些原因不可用,则 ThingWorx 将在启动时中止。