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를 통해 기본 위치가 아닌 위치를 설정할 수 있습니다. ThingWorx와 함께 Tomcat을 시작하기 전에 Tomcat 운영 체제 사용자 환경에서 변수를 설정해야 합니다. THINGWORX_PLATFORM_SETTINGS로 참조되는 폴더가 있고 Tomcat 운영 체제 사용자에게 이 폴더에 대한 읽기/쓰기 권한이 있는지 확인합니다.
/ThingworxStorage
/ThingworxStorage 폴더는 각 ThingWorx 서버에서 별개로 유지되어야 합니다. 주된 이유는 각 ThingWorx 서버에 대해 별도의 로그를 유지해야 하기 때문입니다.
이 경우 keystore.jks 파일을 모든 ThingWorx 서버에 배포하여 모든 서버가 동일한 키를 사용하도록 해야 합니다. 이 작업을 수행하는 프로세스는 다음과 같습니다.
1. 모든 ThingWorx 서버에서 /ThingworxStorage을 만듭니다. 폴더 구조는 HA 구성에 포함된 모든 ThingWorx 서버에서 동일해야 합니다.
2. ThingWorx가 리더에서 완전하게 작동하도록 합니다.
3. 리더에서 /ThingworxStorage/keystore.jks를 복사하고 대기 서버가 사용할 수 있도록 /ThingworxStorage에 설치합니다.
/ThingworxStorage의 위치는 platform-settings.jsonBasicSettings 섹션에서 관리합니다.
/ThingworxBackupStorage
/ThingworxBackupStorage의 주요 용도는 H2 데이터베이스를 백업하는 것입니다. H2는 ThingWorx HA 구성에 대해서는 지원되지 않으므로 이 위치는 사용되지 않지만, 런타임에는 존재해야 합니다.
각 ThingWorx 서버에 이 위치를 만드는 것만으로도 오류가 로깅되는 것을 방지하기에 충분합니다.
HA 환경에서 불필요한 처리를 방지하려면 platform-settings.json 파일에서 "EnableBackup": false를 설정합니다.
/ThingworxBackupStorage의 위치는 platform-settings.json에서 관리됩니다. 폴더 구조는 모든 ThingWorx 서버에서 동일해야 합니다.
루트 파일 저장소
루트 파일 저장소는 모든 ThingWorx 서버가 동일한 읽기/쓰기 권한을 가지는 공유 파일 시스템 볼륨에 있어야 합니다.
파일 공유 고려 사항:
NAS(Network Attached Storage)나 이에 해당하는 클라우드 저장소는 공유 파일 시스템을 제공하기 위한 일반적인 솔루션입니다.
NAS에는 이 ThingWorx HA 구현을 지원하기 위한 자체 고가용성 솔루션이 있어야 합니다.
ThingWorx 인스턴스가 시작되기 전에 서버에 볼륨이 마운트되어야 합니다.
각 ThingWorx 서버에서 Tomcat을 실행하는 운영 체제 사용자에게는 저장소가 설정된 파일 공유 위치에 대한 읽기/쓰기 권한이 있어야 합니다.
마운트 위치는 각 ThingWorx 서버에서 동일해야 합니다.
루트 파일 저장소 폴더의 위치를 앞에서 설명한 시스템의 platform-settings.json에 추가해야 합니다. 매개 변수 FileRepositoryRoot와 공유 파일 위치를 BasicSettings 섹션에 추가해야 합니다. 값에 저장소가 설정될 폴더 위치가 나열되어야 합니다. 예를 들어, 초기 저장소 폴더가 /ThingworxFileRepository/repository에 설정될 경우 platform-settings.json에 추가될 항목은 다음과 같아야 합니다.

"FileRepositoryRoot":"/ThingworxFileRepository"
* 
platform-settings.json 파일에 FileRepositoryRoot 매개 변수가 지정되지 않은 경우 기본 저장소 위치(/ThingworxStorage)가 사용됩니다.
* 
FileRepositoryRoot에 정의된 위치를 어떤 이유로든 사용할 수 없는 경우 시작 시 ThingWorx가 중단됩니다.