Hitachi Protection Manager Software Console ユーザーズガイド

[目次][索引][前へ][次へ]


4.4 クラスタ構成でバックアップジョブを利用するための設定

ここでは,クラスタ構成でバックアップジョブを利用するための設定について説明します。

Protection Manager Consoleでは,バックアップジョブを実行する対象ノードを切り替えるための専用コマンド(drmjobsch.exe)を提供しています。フェールオーバー発生時にこのコマンドを自動実行するように,クラスタソフトウェアに設定してください。

次のことを確認してから,使用するクラスタソフトウェアに応じた手順を実行してください。

MSCSを使用している場合

仮想サーバを構成する各サーバで,次の手順を実行してください。

  1. VBScriptファイルを作成します。
    ファイル名:RecoverJob.vbs
    ファイルの格納場所:<Protection Managerのインストールディレクトリ>\schedule

    注意事項
    Protection Managerのインストールディレクトリについては,マニュアル「Hitachi Protection Manager Software ユーザーズガイド」を参照してください。
    作成するVBScriptファイルの名称と格納場所は任意で変更できます。保守のために,上記のファイル名および格納場所の使用をお勧めします。
  2. VBScriptファイルを編集して,drmjobsch.exeによる回復処理を記述します。
    エントリーポイント「Function Online( )」に,オンラインにする<仮想サーバ名>を指定して,次のコマンドラインを実行するように記述します。
    "<Protection Managerのインストールディレクトリ>\bin\drmjobsch.exe" -recover -hostname <仮想サーバ名>
    VBScriptファイルの記述例を次に示します。例では,<Protection Managerのインストールディレクトリ>を"C:\Program Files\HITACHI\DRM"としています。
    'Script-Level Global Variables
    Resource.LogInformation("Script-wide code begins execution")
    Dim WshShell, oExec
    Set WshShell = CreateObject("WScript.Shell")
    Function Online( )
        Online = 0
        Resource.LogInformation "Entering Online"
        Set oExec = WshShell.Exec (CHR(34) & "C:\Program Files\Hitachi\drm\bin\drmjobsch.exe" & CHR(34) & " -recover -hostname <仮想サーバ名>")
        Do While oExec.Status = 0
          Set oWait = WshShell.Exec("timeout /t 1")
        Loop
        Resource.LogInformation "Exiting Online"
    End Function
    Function Offline( )
        Offline = 0
    End Function
    Function LooksAlive( )
        LooksAlive = 0
    End Function
    Function IsAlive( )
        IsAlive = 0
    End Function
    Function Open( )
        Open = 0
    End Function
    Function Close( )
        Close = 0
    End Function
    Function Terminate( )
        Terminate = 0
    End Function

    注意事項
    CHR(34)」は「"(引用符)」を示します。<Protection Managerのインストールディレクトリ>に空白(スペース)を含まない場合には不要です。その場合は,次のとおりに記述してください。
    "C:\drm\bin\drmjobsch.exe" & " -recover -hostname <仮想サーバ名>"
    記述方法の詳細については,VBScriptに関するドキュメントを参照してください。
  3. クラスタ アドミニストレータのウィザードを使用して,<仮想サーバ名>と同じ名称を持ったクラスタリソースグループ(SQL Server,Exchange Serverなどのクラスタリソースグループ)に新しいリソースを追加します。
    リソースの種類:汎用スクリプト
    スクリプトのファイルパス:作成したVBScriptファイルのパス
    VBScriptファイルをノード間の共有ディスクに格納している場合は,依存関係ダイアログで,[リソースの依存関係]にこの共有ディスクを物理ディスクリソースとして登録しておいてください。

VCSを使用している場合

仮想サーバを構成する各サーバで,次の手順を実行してください。

  1. バッチファイル(.bat)を作成します。
    ファイル名:postonline.bat
    ファイルの格納場所:%VCS_HOME%\bin\triggers
    VCS_HOMEは,VCSがインストールされている場所を示すシステム環境変数です。postonline.batが上記の格納場所にすでに作成されている場合には,手順2で示すdrmjobsch.exeによる回復処理を追加してください。

    補足説明
    PostOnlineイベントトリガーに設定するスクリプトは,実行形式ファイル(.exe)またはPerlスクリプト(.pl)でも作成できます。スクリプトの記述方法およびイベントトリガーの設定方法については,VCSのマニュアルを参照してください。
  2. postonline.batを編集して,drmjobsch.exeによる回復処理を記述します。
    Protection Managerのバックアップ対象を管理するサービスグループがオンライン状態に遷移したときに,次のコマンドラインが実行されるように記述します。
    "<Protection Managerのインストールディレクトリ>\bin\drmjobsch.exe" -recover -hostname <仮想サーバ名>
    <仮想サーバ名>には,VCSのサービスグループの名前が指定されます。Protection Managerのバックアップ対象を管理する仮想サーバの名前は,VCSのサービスグループの名前と一致させておいてください。
    postonline.batの記述例を次に示します。例では,<Protection Managerのインストールディレクトリ>を"C:\Program Files\HITACHI\DRM"としています。
    @echo off
    set SERVICE_GROUP=%2 (1)
    REM Only for virtual servers of Protection Manager’s target 
    set DRM_HOSTNAME1=<仮想サーバ名> (2)
    IF "%SERVICE_GROUP%"=="%DRM_HOSTNAME1%" (3)
    set SCH_MAP_PATH=<スケジュール情報ファイルの格納先> (4)
    set LOOP_MAX=<リトライ回数> (5)
    set LOOP_INTERVAL=<リトライ間隔> (6)
    goto SUB_JOBRECOVER
    )
    exit /B
    REM recovery processing of Protection Manager job scheduler
    :SUB_JOBRECOVER
    set LOOP_COUNT=0
    :LOOP
    if EXIST %SCH_MAP_PATH%\NUL goto EXEC_JOB_RECOVER (7)
    set /A LOOP_COUNT=LOOP_COUNT+1
    if "%LOOP_MAX%"=="%LOOP_COUNT%" goto ERR_TIMEOUT (8)
    timeout /t %LOOP_INTERVAL%
    goto LOOP
    :EXEC_JOB_RECOVER
    "C:\Program Files\HITACHI\DRM\bin\drmjobsch.exe" -recover -hostname %SERVICE_GROUP% (9)
    exit /B %errorlevel%
    :ERR_TIMEOUT
    echo Timeout for waiting online of scheduler map directory.
    exit /B 1
    定数に指定する値,および処理の内容について次の表に示します。表の番号は,記述例中の番号と対応しています。

    表4-3 定数に指定する値と処理の内容の説明

    番号 説明
    (1)※1 %2」にオンライン状態に遷移したサービスグループの名前が,VCSからバッチファイルの引数として与えられます。
    (2)※1 Protection Managerのバックアップ対象を管理する仮想サーバの名前を指定します。バックアップジョブ管理用の設定ファイル(schd.conf※2SCH_MAP_PATHに設定した値を指定してください。
    (3) オンライン状態に遷移したサービスグループの名前と,(2)で指定した仮想サーバの名前が一致するかどうかを判定します。
    VCSは,どのサービスグループがオンライン状態に遷移した際にもバッチファイルを実行します。このため,(2)で指定した仮想サーバがオンライン状態に遷移したときにだけ,drmjobsch.exeを実行するように処理を記述してください。
    (4)※1 (2)で指定した仮想サーバに対応する,スケジュール情報ファイルの格納先を指定します。バックアップジョブ管理用の設定ファイル(schd.conf※2SCH_MAP_PATHに設定した値を指定してください。
    (5)※1 クラスタリソースの状態を確認する処理のリトライ回数を指定します。Protection Managerの構成定義ファイル(init.conf※3CLU_RETRY_TIMEに設定した値を指定してください。
    (6)※1 クラスタリソースの状態を確認する処理のリトライ間隔の秒数を指定します。Protection Managerの構成定義ファイル(init.conf※3CLU_RETRY_WAITに設定した値を指定してください。
    (7),(8) クラスタリソースの状態を確認します。指定した時間内((5)で指定したリトライ回数×(6)で指定したリトライ間隔の秒数)にすべてのクラスタリソースがオンラインに遷移しなかった場合には,バッチファイルを終了します。
    スケジュール情報ファイルの格納先にアクセスできるようになる前にdrmjobsch.exeが実行されると,コマンドがエラー終了します。エラーを回避するため,すべてのクラスタリソースがオンラインに遷移するまで,drmjobsch.exeの実行を待たせる処理を記述してください。
    (9) drmjobsch.exeを実行します。

    注※1
    postonline.batに記載する定数の名前は,任意で指定できます。

    注※2
    バックアップジョブ管理用の設定ファイル(schd.conf)については,「4.3.4 schd.confファイルの設定項目」を参照してください。

    注※3
    Protection Managerの構成定義ファイル(init.conf)については,マニュアル「Hitachi Protection Manager Software ユーザーズガイド」を参照してください。

[目次] [前へ] [次へ]