Helix Coreサーバ管理者ガイド (2020.1)

外部ファイル転送のためのトリガ

Helix Coreサーバマルチサーバアーキテクチャを使用すると、Helix Coreサーバをサードパーティ製のWANアクセラレーションソフトウェアと統合して、待機時間が長いネットワークでアーカイブファイルを非常に高速で転送できるようになります。 この機能は、次の2つのアプローチで外部アーカイブ転送をサポートします。

レプリカアーカイブプルスレッド

外部転送でレプリカアーカイブプルスレッドを使用するには、次の手順に従います。

1. 次のサーバ構成可能変数を設定します。

p4 configure set replica#pull.trigger.dir=/tmp/trigger
p4 configure set replica#lbr.replica.notransfer=1
p4 configure set lbr.autocompress=1

pull.trigger.dir構成可能変数は、プルスレッドがプルアーカイブトリガに%archiveList%としてパスする一時ファイルの書き込み場所を指定します。

注意

レプリカサーバのlbr.replication構成可能変数が「cache」に設定されている状態で、そのレプリカサーバ上に存在しないファイルに対してp4 syncコマンドまたはp4 printコマンドを実行すると、そのファイルが同期的に直接フェッチされます。 この機能は、「インラインアーカイブ転送」と呼ばれます。 代わりに、プルアーカイブトリガを使用して「外部アーカイブ転送」を強制的に実行する場合は、lbr.replica.notransferの値を「1」に設定します。

新しいファイルのタイプを「text」(外部アーカイブ転送を行うためのファイルタイプ)にする場合は、lbr.autocompressの値を「1」に設定します。 この変更は、lbr.autocompressの値を「1」に変更しない限り適用されません

2. アーカイブ転送を実行するトリガスクリプトを指定するために、トリガテーブルでプルアーカイブトリガを定義します。

externalPull pull-archive pull "pull.sh %archiveList%"

ここで%archiveList%は転送するファイル一覧が格納されている一時ファイルの名前を表します。

3. --triggerオプションを使用してレプリカアーカイブプルスレッドを構成します。

p4 configure set replica#startup.2="pull -u -i 1 --trigger --batch=10"

注意

任意の--min-sizeおよび--max-sizeオプションを使用すると、異なるサイズのファイルごとにアーカイブプルスレッドを分けることができます。 例えば、

p4 configure set replica#startup.3="pull -u -i 1 --trigger --batch=5 --min-size=8192"

はトリガでサイズの小さなファイルを無視するよう指定します。

サイズ単位はバイトですが、K、M、G、T修飾子も使用できます。

重要

サイズの小さなファイルを標準アーカイブプルスレッドで扱い、よりサイズの大きいファイルを外部ファイル転送で扱うには、外部転送を使用するアーカイブプルスレッドと一緒に標準アーカイブプルスレッドを構成します。 例えば、

p4 configure set replica#startup.4="pull -u -i 1 --batch=1000 --min-size=1 --max-size=8K"

はサイズの小さなファイルの転送を外部ソフトウェアを仕様せず行うよう指定します。

ヒント

長い遅延が発生する構成の場合は、このフラグに大きな--batch値を設定すると、サイズの小さなファイルを大量に処理する際に、アーカイブの転送速度が上がる可能性があります。

エッジサーバのサブミット

エッジサーバからコミットサーバのサブミットで外部転送を使用するには、次の手順に従います。

  1. rpl.submit.nocopy=1を設定してデフォルトのサブミットアーカイブのコピーを無効にします。

    p4 configure set rpl.submit.nocopy=1
  2. edge-contentトリガを定義します。

    edgeTransfer edge-content //... "submit.sh %changelist% %serverroot%"
  3. edge-contentトリガが一時ファイルに書き込む必要がある場合は、エッジサーバのpull.trigger.dir構成可能変数を設定します。

    p4 configure set edge#pull.trigger.dir=/tmp/edge-trigger

    次に、edge-contentトリガのトリガテーブルのエントリを%triggerdir%でアップデートして、構成済みの一時的な格納場所をトリガにパスします。

    edgeTransfer edge-content //... "submit.sh %changelist% %serverroot% %triggerdir%"
ヒント

トリガサンプルと詳細については、サポートナレッジベースの記事「pull-archiveおよびedge-contentトリガを使用した外部アーカイブ転送」を参照してください。