5. ストア同期機能について

5.1. 概要

CO-Store におけるストア同期機能は、あるストアで系列を更新し、別のストアにある同名系列に変更を反映する機能を指します。

このストア同期機能を利用すると、異なるファーム間で指定した系列を同期させることができます。

5.1.1. 用語

マスター ストア
更新作業を行うストア。操作については通常のストアと同様です。
スレーブ ストア
マスター ストアに同期した系列を利用するストア。
共用系列
複数のストアで共用する系列。マスター ストアで更新されます。
転送用フォルダ
複数のストア間でファイルを転送するためのフォルダです。
共用系列同期タスク
スレーブ ストア上で、指定した系列を最新の状態に同期するためのタスクです。

5.1.2. 環境の例

以下、複数のファーム間で同期する場合の例で手順を説明します。簡単のため、それぞれのファームではサイト 1 つの環境としていますが、複数サイトの環境でも手順に変化はありません。

ファーム A (マスター)

  • サイト

    • サーバー

      • ServerA1 (ファーム A のマスター サーバー)
      • ServerA2
  • ストア

    • STORE (マスター ストア)

      • ストアパス: E:vDiskSTORE
      • 転送用フォルダ: E:vDiskSTORESync (ストアパスの下の Sync というフォルダ)

ファーム B (スレーブ)

  • サイト

    • サーバー

      • ServerB1 (ファーム B のマスター サーバー)
      • ServerB2
  • ストア

    • STORE (スレーブ ストア)

      • ストアパス: E:vDiskSTORE (マスター ストアのストアパスと同一である必要があります。)
      • 転送用フォルダ: E:vDiskSTORESync (ストアパスの下の Sync というフォルダ)

5.1.3. ストア同期処理の概要

CO-Store におけるストア同期機能は、以下の 3 段階の処理で構成されています。

  1. マスター系列のコピー
  • 書き換え終了タスクの中で実行されます。
  • ストアパスからマスターストアの転送用フォルダに .(a)vhd, .pvp をコピーします。
  1. 転送用フォルダー同期
  • サーバー間の robocopy などによるコピーを想定しています。
  • マスターストアからスレーブストアにコピー (転送用フォルダ同士) します。
  1. スレーブ系列反映
  • スレーブストアの転送用フォルダから .(a)vhd, .pvp をストアパスにコピーして PVS に登録します。
  • スレーブ側に存在しない系列の場合は系列の登録も行います。
  • スレーブ側に存在する系列の場合は、追加されたバージョンを登録します。

5.2. ストア同期環境の準備

  1. 同期するストアの指定
  1. マスター ストア設定コマンドを実行します。
  • ServerA1 (ファーム A のマスター サーバー) に接続、管理者権限で cmd.exe を起動し、以下のコマンドを実行してください。:

    > cd "C:\Program Files\CO-CONV\CO-Store\Server"
    > CO-StoreApi.exe register_master_store --store=STORE
    
  1. スレーブ ストア設定コマンドを実行します。
  • ServerB1 (ファーム B のマスター サーバー) に接続、管理者権限で cmd.exe を起動し、以下のコマンドを実行してください。:

    > cd "C:\Program Files\CO-CONV\CO-Store\Server"
    > CO-StoreApi.exe register_slave_store --store=STORE
    
  1. 共用系列の指定

共用系列としたい各系列につき、マスターストア上で 1 回実行してください。

  • ServerA1 (ファーム A のマスター サーバー) に接続、管理者権限で cmd.exe を起動し、以下のコマンドを実行してください。:

    > cd "C:\Program Files\CO-CONV\CO-Store\Server"
    > CO-StoreApi.exe register_sync_title --store=STORE --title=TITLE
    
  • 上記例では系列 TITLE を登録しています。

  1. 転送用フォルダの作成
  • マスター・スレーブ両ストアのメインストアのストアパスの下に Sync というフォルダを作成してください。
  • ServerA1 から ServerB1 の Sync フォルダ、およびその逆についても共有でアクセスできるように設定してください。

5.3. 同期処理

5.3.1. 転送用フォルダの同期

  • 転送用フォルダ内のファイルが同期されるように設定してください。

    • 例えば、以下の robocopy 実行を ServerB1 もしくは ServerA1 のタスクスケジューラーに定期的に実行するように設定するなど。:

      robocopy \\FARM_A_MASTER\vDisk\STORE\Sync \\FARM_B_MASTER\vDisk\STORE\Sync /COPYALL /PURGE /ETA /R:10 /W:3
      
      • FARMA_MASTER, FARM_B_MASTER はファーム A, B のマスターサーバーである ServerA1, ServerB1 それぞれの IP アドレス。
      • ストアパス E:vDiskSTORE に、\FARM_A(B)_MASTERvDiskSTORE でアクセスできることを前提としています。

5.3.2. 共用系列の同期

最初に同期するときも、マスターストアで行った更新作業をスレーブストアに反映するときも、手順は同じです。

  1. ServerA1 上で共用系列 TITLE を更新します。
  • TITLE の書き換え終了タスクの完了を待ちます。
  • 書き換え終了タスクの中で .(a)vhd, .pvp が ServerA1 の同期用フォルダにコピーされます。
  1. ServerA1 の同期用フォルダから ServerB1 の同期用フォルダにファイルがコピーされるのを待ちます。
  • 通常のファイルコピーを行っても構いません。
  1. ServerB1 上で以下のコマンドを実行します。:

    > cd "C:\Program Files\CO-CONV\CO-Store\Server"
    > CO-StoreApi.exe register_sync_slave_title_task --store=STORE --title=TITLE --store-type=Main(Diff)
    
  • スレーブストア側で毎回実行する必要があります。
    • 1-2 時間に 1 回といった形で定期的に実行するようにタスクスケジューラーなどに登録しておくことを想定しています。
  • ストア種類は Main か Diff を指定してください。
    • 指定したストアに登録されます。
  • 共用系列同期タスクの完了を待ちます。
    • 状況は ServerB1 側の CO-Store コンソールで確認できます。
    • 共用系列同期タスクが完了したら、スレーブ ストア側でも系列 TITLE が同期され、利用が開始できます。
    • 初回であれば、系列の登録、次回以降であれば最新バージョンの追加が行われます。
  • 共用系列同期タスクの完了時に、共用系列 TITLE の書き換え終了タスクが自動的に登録・実行されます。
    • この書き換え終了タスクが完了すると、スレーブストア側でも系列 TITLE の冗長化が完了します。

5.4. 制限

  • マスター ストアでは、共用系列に対して以下の操作をしないでください。

    • 「基本のマージ (系列の依存を解消するタスク)」
  • スレーブ ストアでは、以下の操作ができません。

    • 書き換え開始
    • 書き換え終了
    • 再書き換え開始
    • コピーによる新系列の作成
  • スレーブ ストアでは、系列・バージョンの削除に以下の制限があります。

    • マスター ストアで削除済みの系列、もしくは共用系列でない系列のみ削除できます。

      • つまり、共用系列の指定を解除 (CO-StoreApi unregister_sync_title) した系列は削除できます。
    • マスター ストアで削除済みのバージョンのみ削除できます。

      • ただし、最新バージョンの削除だけはできます。
  • スレーブ ストアでも系列・バージョンのコメント編集は可能ですが、同期した時点でマスターの内容に上書きされます。