Hitachi Protection Manager Software Console ユーザーズガイド
ここでは,クラスタ構成でバックアップジョブを利用するための設定について説明します。
Protection Manager Consoleでは,バックアップジョブを実行する対象ノードを切り替えるための専用コマンド(drmjobsch.exe)を提供しています。フェールオーバー発生時にこのコマンドを自動実行するように,クラスタソフトウェアに設定してください。
次のことを確認してから,使用するクラスタソフトウェアに応じた手順を実行してください。
- Protection Managerおよびクラスタソフトウェアのインストールが正常に完了していること。
- Administrator権限でログインしていること。
仮想サーバを構成する各サーバで,次の手順を実行してください。
- VBScriptファイルを作成します。
ファイル名:RecoverJob.vbs
ファイルの格納場所:<Protection Managerのインストールディレクトリ>\schedule
- 注意事項
- Protection Managerのインストールディレクトリについては,マニュアル「Hitachi Protection Manager Software ユーザーズガイド」を参照してください。
- 作成するVBScriptファイルの名称と格納場所は任意で変更できます。保守のために,上記のファイル名および格納場所の使用をお勧めします。
- VBScriptファイルを編集して,drmjobsch.exeによる回復処理を記述します。
エントリーポイント「Function Online( )」に,オンラインにする<仮想サーバ名>を指定して,次のコマンドラインを実行するように記述します。"<Protection Managerのインストールディレクトリ>\bin\drmjobsch.exe" -recover -hostname <仮想サーバ名>VBScriptファイルの記述例を次に示します。例では,<Protection Managerのインストールディレクトリ>を"C:\Program Files\HITACHI\DRM"としています。
'Script-Level Global VariablesResource.LogInformation("Script-wide code begins execution")Dim WshShell, oExecSet WshShell = CreateObject("WScript.Shell")Function Online( )Online = 0Resource.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 = 0Set oWait = WshShell.Exec("timeout /t 1")LoopResource.LogInformation "Exiting Online"End FunctionFunction Offline( )Offline = 0End FunctionFunction LooksAlive( )LooksAlive = 0End FunctionFunction IsAlive( )IsAlive = 0End FunctionFunction Open( )Open = 0End FunctionFunction Close( )Close = 0End FunctionFunction Terminate( )Terminate = 0End Function
- 注意事項
- 「CHR(34)」は「"(引用符)」を示します。<Protection Managerのインストールディレクトリ>に空白(スペース)を含まない場合には不要です。その場合は,次のとおりに記述してください。
- "C:\drm\bin\drmjobsch.exe" & " -recover -hostname <仮想サーバ名>"
- 記述方法の詳細については,VBScriptに関するドキュメントを参照してください。
- クラスタ アドミニストレータのウィザードを使用して,<仮想サーバ名>と同じ名称を持ったクラスタリソースグループ(SQL Server,Exchange Serverなどのクラスタリソースグループ)に新しいリソースを追加します。
リソースの種類:汎用スクリプト
スクリプトのファイルパス:作成したVBScriptファイルのパス
VBScriptファイルをノード間の共有ディスクに格納している場合は,依存関係ダイアログで,[リソースの依存関係]にこの共有ディスクを物理ディスクリソースとして登録しておいてください。仮想サーバを構成する各サーバで,次の手順を実行してください。
- バッチファイル(.bat)を作成します。
ファイル名:postonline.bat
ファイルの格納場所:%VCS_HOME%\bin\triggers
VCS_HOMEは,VCSがインストールされている場所を示すシステム環境変数です。postonline.batが上記の格納場所にすでに作成されている場合には,手順2で示すdrmjobsch.exeによる回復処理を追加してください。
- 補足説明
- PostOnlineイベントトリガーに設定するスクリプトは,実行形式ファイル(.exe)またはPerlスクリプト(.pl)でも作成できます。スクリプトの記述方法およびイベントトリガーの設定方法については,VCSのマニュアルを参照してください。
- 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 offset SERVICE_GROUP=%2 …(1)REM Only for virtual servers of Protection Manager’s targetset 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 /BREM recovery processing of Protection Manager job scheduler:SUB_JOBRECOVERset LOOP_COUNT=0:LOOPif EXIST %SCH_MAP_PATH%\NUL goto EXEC_JOB_RECOVER …(7)set /A LOOP_COUNT=LOOP_COUNT+1if "%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_TIMEOUTecho Timeout for waiting online of scheduler map directory.exit /B 1
番号 説明 (1)※1 「%2」にオンライン状態に遷移したサービスグループの名前が,VCSからバッチファイルの引数として与えられます。 (2)※1 Protection Managerのバックアップ対象を管理する仮想サーバの名前を指定します。バックアップジョブ管理用の設定ファイル(schd.conf)※2のSCH_MAP_PATHに設定した値を指定してください。 (3) オンライン状態に遷移したサービスグループの名前と,(2)で指定した仮想サーバの名前が一致するかどうかを判定します。
VCSは,どのサービスグループがオンライン状態に遷移した際にもバッチファイルを実行します。このため,(2)で指定した仮想サーバがオンライン状態に遷移したときにだけ,drmjobsch.exeを実行するように処理を記述してください。(4)※1 (2)で指定した仮想サーバに対応する,スケジュール情報ファイルの格納先を指定します。バックアップジョブ管理用の設定ファイル(schd.conf)※2のSCH_MAP_PATHに設定した値を指定してください。 (5)※1 クラスタリソースの状態を確認する処理のリトライ回数を指定します。Protection Managerの構成定義ファイル(init.conf)※3のCLU_RETRY_TIMEに設定した値を指定してください。 (6)※1 クラスタリソースの状態を確認する処理のリトライ間隔の秒数を指定します。Protection Managerの構成定義ファイル(init.conf)※3のCLU_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 ユーザーズガイド」を参照してください。