Amazon S3 へのボルトのマイグレーション
このセクションでは、既存のファイルベースボルトを Amazon S3 にマイグレーションする方法について説明します。Amazon S3 クラウドのコンフィギュレーションの設定方法については、
Amazon S3 を使用するための Windchill ファイルボルトの設定 のトピックを参照してください。以下のワークフローでは、ボルトを 1 つずつマイグレーションしています。このプロセスは、すべてのタイプのボルト (マスター、レプリカ、キャッシュボルト) およびマスターサイトにあるボルトとファイルサーバーサイトにあるボルトに適用されます。このプロセスは、フラグ
Automatic folder creation が
true に設定されているボルトでのみ機能します。
上の図に示すように、ボルトをマイグレーションするステップは 4 つのトップレベルステップに分かれています。このすべてのステップに例が用意されています。マイグレーションプロセスについて簡単に説明するため、以下の手順は
defaultuploadrootfolder が RootFolder 名とマウントパスから成るサンプルのシナリオに基づいています:
マイグレーションのためのシステムの準備
次のステップを実行して、再ボルト、同期化、非参照ファイルの除去、ルートフォルダを読み取り専用としてマークするなどの準備作業を行います。
1. ボルトがマスターボルトである場合、ボルトの再ボルトスケジュールを実行します。
2. ボルトがレプリカボルトである場合、ボルトのコンテンツレプリケーションスケジュールをキャンセルして無効にします。
3. JConsole などの JMX クライアントを使用して、CacheVaultSynchronizer MBean sysForceSync オペレーションを実行します。
4. ボルトに対して「非参照ファイルを除去」および > 操作を実行して、有効なコンテンツだけが Amazon S3 にマイグレーションされるようにします。
6. ボルトコンフィギュレーションのユーザーインタフェースから、マイグレーションするファイルベースの RootFolder を読み取り専用に設定します。これによって、ファイルベースの RootFolder のコンテンツがマイグレーションされている間に RootFolder に新しいコンテンツがアップロードされることがなくなります。
ソースシステムからコンテンツをコピーします。
次のステップを実行して、ソースシステムからターゲットシステムにコンテンツをコピーします。たとえば、ファイルシステムからターゲットの Amazon S3 システムにコンテンツをコピーします。
ファイルシステム上の RootFolder に対応するディレクトリ構造を Amazon S3 にコピーします。
• EC2 インスタンス上の RootFolder のコンテンツをコピーする場合、Amazon コマンドラインツール
(awscli) を使用します。この例を以下に示します。
aws s3 cp C:\PTC\Windchill\vaults\defaultuploadvault
s3://Testbucket/defaultuploadvault-–recursive
ディレクトリ構造をコピーする際には、以下から暗号オプションを指定します。
◦ オプション '--sse' では、AES256 を使用してコンテンツが暗号化されます。
◦ オプション '--sse amws:kms' では暗号にデフォルトの AWS KMS キー ID が使用されます。
◦ オプション '--sse aws:kms --sse-kms-key-id <キー ID>' では、指定したキー ID が暗号に使用されます。
コピーしたコンテンツの検証
このステップは、前のステップでコンテンツのコピーが正常に行われていてコンテンツが正確であることを確認するためのものです。
1. データ検証ユーティリティ DataMigrationVerificationTool を実行して、Amazon S3 上にコピーされたコンテンツをアサートします。このツールでは、既存のボルトのコンテンツを Amazon S3 上のファイル構造と比較できます。マスター Windchill およびリモートのインストールに対してこのツールを実行できます。Windchill シェルで以下を実行します。
windchill wt.fv.tools.datamigration.DataMigrationVerificationTool
validateMigratedData --userName USER --password PASSWORD --
rootFolderName ROOT_FOLDER_NAME --mountType MOUNT_TYPE--folderName FOLDER_NAME
--mountPath MOUNT_PATH –skipSizeValidation
2. このツールを実行すると、レポートが保存されている場所が返されます。このレポートで、欠落しているすべてのファイルのリストや、各フォルダのファイルサイズの不一致についての情報を確認できます。このレポートは必ずマスターインストール上に生成されます。-- rootFolderName または -- folderName を指定することによって、検証をルートフォルダ全体に対して実行するか、選択したサブフォルダに対してのみ実行するかを選択できます。–skipSizeValidation を追加することで、ファイルサイズ検証の実行をスキップすることもできます。
例:
◦ defaultuploadrootfolder という名前のルートフォルダ内のすべてのデータを検証するには、次のように指定します。
windchill wt.fv.tools.datamigration.DataMigrationVerificationTool validateMigratedData --userName wcadmin --password wcadmin --mountType amazonS3 --rootFolderName defaultuploadrootfolder--mountPath Testbucket/defaultuploadvault
◦ defaultuploadrootfolder という名前のフォルダ内のデータを検証し、ファイルサイズはチェックしない場合、次のように指定します。
windchill wt.fv.tools.datamigration.DataMigrationVerificationTool validateMigratedData --userName wcadmin --password wcadmin --mountType amazonS3 --folderName defaultuploadrootfolder --mountPath Testbucket/defaultuploadvault --skipSizeValidation
マウントの更新
マウントが更新されると、システムはターゲットシステム内のコンテンツを使用して起動します。マウントを更新するには、次のステップを実行します。
1. Windchill シェルから次のコマンドを実行して、すべての RootFolder のマウントタイプとマウントパスを変更します。
windchill wt.objectstorage.tools.MountMigrationTool migrate -u <username> -p <password> -r <RootFolder name> -m <mount path on Amazon S3> -t amazonS3
例:
windchill wt.fv.tools.datamigration.MountMigrationTool migrate -u <username> -p <password> -r defaultuploadfolder1 -m Testbucket/defaultuploadvault -t amazonS3
ボルトコンフィギュレーションのユーザーインタフェースからルートフォルダをアンマウントして Amazon S3 にマウントすることもできます。ただし、ユーザーインタフェースからこれらの操作を実行している間は、エンドユーザーは RootFolder 内のコンテンツにアクセスできません。
2. ボルトコンフィギュレーションのユーザーインタフェースから RootFolder の READ_ONLY フラグを除去します。「マイグレーションのためのシステムの準備」セクションで新規作成した RootFolder には、このボルトマイグレーションプロセスの一環として RootFolder から移動する必要がないファイルが含まれていることがあります。
3. ボルトマイグレーションプロセスの後で、再ボルトとコンテンツレプリケーションのスケジュールを再設定します。
コマンドのサマリー
windchill wt.fv.tools.FolderToRootFolderConverter
aws s3 cp C:\PTC\Windchill\vaults\defaultuploadvault s3://Testbucket/defaultuploadvault –recursive
snowball.bat start -i <ip address> -u <unlock code> -m <manifest file path>
snowball.bat ls
snowball.bat test -r <vault mount path on host machine>
snowball.bat mkdir s3://<bucketname>/<vaultname>
snowball.bat cp -r <path to vault> s3://<bucketname>/<vaultname>
snowball.bat validate <path on Amazon Snowball>
snowball.bat stop
windchill wt.fv.tools.datamigration.DataMigrationVerificationTool validateMigratedData --userName USER --password PASSWORD --rootFolderName ROOT_FOLDER_NAME --mountType MOUNT_TYPE --folderName FOLDER_NAME --mountPath MOUNT_PATH --skipSizeValidation
windchill wt.objectstorage.tools.MountMigrationTool migrate -u <username> -p <password> -r <RootFolder name> -m <mount path on Amazon S3> -t amazonS3