Dateispeicher für ThingWorx HA
Für eine unabhängige ThingWorx Installation gibt es in der Regel drei festgelegte Dateispeicherorte: /ThingworxPlatform, /ThingworxStorage und /ThingworxBackupStorage. Und innerhalb des /ThingworxStorage-Speicherorts wird standardmäßig das erste Datei-Repository erstellt. Für die Bereitstellung von Hochverfügbarkeit (High Availability, HA) gibt es einige Regeln, und es müssen einige Änderungen vorgenommen werden.
Ordner "/ThingworxPlatform"
Der Ordner ThingworxPlatform enthält erforderliche Dateien, die beim Start einer ThingWorx Instanz gelesen werden. Diese Dateien sind:
platform-settings.json
keystore-password
license_capability_response.bin (oder Varianten dieses Dateinamens)
Für eine ThingWorx HA-Konfiguration sollte für jeden ThingWorx Server ein lokaler /ThingworxPlatform-Ordner beibehalten werden. Der Hauptgrund ist die Beibehaltung eines separaten Lizenzierungsinhalts.
Der folgende Inhalt muss stets auf allen ThingWorx HA-Servern synchronisiert sein. Sobald die Datei erstellt oder generiert wurde und auf einem ThingWorx Server geändert wird, muss der Inhalt auf alle anderen ThingWorx Server in der HA-Konfiguration übertragen werden.
platform-settings.json
keystore-password
Für den Lizenzierungsinhalt muss jeder ThingWorx Server sowohl seine eigene Lizenzdatei als auch die Vertrauensspeicher verwalten, die bei der ersten Aktivierung erstellt werden.
Sie können den folgenden Prozess verwenden, um diese Dateien in /ThingworxPlatform jedes ThingWorx Servers einzurichten:
1. Erstellen Sie /ThingworxPlatform auf allen ThingWorx Servern. Die Ordnerstruktur muss auf allen ThingWorx Servern in der HA-Konfiguration gleich sein.
2. Erstellen Sie platform-settings.json entsprechend der Systemumgebung, und speichern Sie sie in /ThingworxPlatform des ersten ThingWorx Servers (der erste ThingWorx Server, der in der HA-Konfiguration gestartet werden soll).
3. Starten Sie den ersten ThingWorx Server, und stellen Sie sicher, dass er voll funktionsfähig ist und alle erwarteten lizenzierten Funktionen verwenden kann. An diesem Punkt sollten drei Dateien in /ThingworxPlatform vorhanden sein:
platform-settings.json
keystore-password
successful_license_capability_response.bin
4. Beenden Sie den ersten ThingWorx Server.
5. Kopieren Sie die drei Dateien vom ersten Server in den Ordner /ThingworxPlatform des anderen Servers bzw. der anderen Server.
6. Benennen Sie auf den anderen Servern die Lizenzdatei von successful_license_capability_response.bin in license_capability_response.bin um.
7. Starten, testen und beenden Sie die anderen ThingWorx Server einzeln, um sicherzustellen, dass alle lizenzierten Funktionen verfügbar sind.
Der Standardspeicherort für den Ordner ThingworxPlatform ist /ThingworxPlatform. Sie können einen nicht standardmäßigen Speicherort über die Umgebungsvariable THINGWORX_PLATFORM_SETTINGS festlegen. Die Variable muss in der Benutzerumgebung des Tomcat-Betriebssystems eingerichtet werden, bevor Tomcat mit ThingWorx gestartet wird. Stellen Sie sicher, dass der Ordner, auf den von THINGWORX_PLATFORM_SETTINGS verwiesen wird, vorhanden ist und dass der Tomcat-Betriebssystembenutzer über Lese-/Schreibberechtigungen verfügt.
/ThingworxStorage
Der Ordner /ThingworxStorage sollte auf jedem ThingWorx Server separat verwaltet werden. Der Hauptgrund hierfür ist, separate Protokolle für jeden ThingWorx Server beizubehalten.
In diesem Fall muss die Datei keystore.jks an alle ThingWorx Server verteilt werden, um sicherzustellen, dass sie denselben Schlüssel verwenden. Dies wird folgendermaßen erreicht:
1. Erstellen Sie /ThingworxStorage auf allen ThingWorx Servern. Die Ordnerstruktur muss auf allen ThingWorx Servern in der HA-Konfiguration gleich sein.
2. ThingWorx muss auf dem Leader voll funktionsfähig sein.
3. Kopieren Sie die Datei /ThingworxStorage/keystore.jks vom Leader, und installieren Sie sie in /ThingworxStorage für den bzw. die Standby-Server.
Der Speicherort von /ThingworxStorage wird im Abschnitt BasicSettings von platform-settings.json verwaltet.
/ThingworxBackupStorage
Die primäre Verwendung von /ThingworxBackupStorage ist die Sicherung der H2-Datenbank. Da H2 für ThingWorx HA-Konfigurationen nicht unterstützt wird, wird dieser Speicherort nicht verwendet. Trotzdem wird zur Laufzeit erwartet, dass er vorhanden ist.
Es genügt, diesen Speicherort auf jedem ThingWorx Server zu erstellen, um protokollierte Fehler zu vermeiden.
Legen Sie "EnableBackup": false in der Datei platform-settings.json fest, um die unnötige Verarbeitung in einer HA-Umgebung zu vermeiden.
Der Speicherort von /ThingworxBackupStorage wird in platform-settings.json verwaltet. Die Ordnerstruktur muss auf allen ThingWorx Servern gleich sein.
Stammdatei-Repository
Das Stammdatei-Repository muss sich auf einem gemeinsam benutzten Dateisystem-Volume befinden, für das alle ThingWorx Server gleichwertigen Lese-/Schreibzugriff haben.
Überlegungen zur Dateifreigabe:
Network Attached Storage (NAS) oder das Cloud-Äquivalent ist eine häufige Lösung zur Bereitstellung eines gemeinsam genutzten Dateisystems.
Das NAS-Angebot sollte über eine eigene Hochverfügbarkeitslösung verfügen, um diese ThingWorx HA-Implementierung zu unterstützen.
Das Volume muss auf dem Server bereitgestellt werden, bevor eine ThingWorx Instanz gestartet wird.
Der Betriebssystembenutzer, der Tomcat-Dienste auf jedem ThingWorx Server ausführt, muss über Lese-/Schreibberechtigungen für den Dateifreigabe-Speicherort verfügen, an dem das Repository eingerichtet ist.
Der Bereitstellungsspeicherort muss auf jedem ThingWorx Server gleich sein.
Der Speicherort des Stammdatei-Repository-Ordners muss zur bereits besprochenen Dateiplatform-settings.json des Systems hinzugefügt werden. Der Parameter FileRepositoryRoot und ein gemeinsam genutzter Dateispeicherort müssen dem Abschnitt BasicSettings hinzugefügt werden. Der Wert sollte den Ordnerspeicherort enthalten, an dem das Repository eingerichtet werden soll. Wenn beispielsweise der anfängliche Repository-Ordner in /ThingworxFileRepository/repository erstellt werden soll, muss die Erweiterung zu platform-settings.json folgendermaßen lauten:

"FileRepositoryRoot":"/ThingworxFileRepository"
* 
Wenn der Parameter FileRepositoryRoot nicht in der Datei platform-settings.json angegeben ist, wird der Standard-Repository-Speicherort (/ThingworxStorage) verwendet.
* 
Wenn der in FileRepositoryRoot definierte Speicherort aus irgendeinem Grund nicht verfügbar ist, wird ThingWorx beim Start abgebrochen.