ウイルススキャナや Windows サービスなど、バックグラウンドで動作するプロセスは、共有ボリュームに書き込み権限を要求します。こうしたプロセスはアプリケーションの実行に不可欠であり、長期的に停止させられません。
バックグラウンドで動作するアプリケーションは通常、SIOS Protection Suite ボリュームの手動切り替えに影響しません。しかし、手動切り替え時に次のエラーメッセージが表示される場合、実際のフェイルオーバには影響が出ませんが、後述するボリューム削除時の停止と再起動機能で修正します。
*ERROR* [No. 12035] Unable to lock volume <volume ID> on <system name> machine at this time as it may be in use by some application. Please free this volume and try again.
書き込み権限のないユーザがボリュームにアクセスし、リモートリンクやローカルオープンを実行している場合、ボリュームの削除は、他のシステムへのボリュームのリストアと同様に成功します。既存ユーザのオープン操作は、当然ながら、無効となります。ただし、元のシステムにボリュームをリストアする操作は、手動切り替えでも、自動的なフェイルオーバでも失敗します。こうした操作を実行すると、次のエラーメッセージが表示されます。
*ERROR* [No. 12046] LifeKeeper RESTORE VOLUME <volume ID> FAILED.
ローカルユーザ (またはリモートユーザ) がボリュームにアクセスすると、ボリュームの削除とリストア、バックアップサーバへのボリュームの切り替え、ボリュームリソースを含む階層の切り替えは失敗します。
また、システムの PATH 変数には、SIOS Protection Suite で保護するボリュームにファイル共有を指定できません。PATH 変数にファイル共有を指定すると、ボリューム操作が失敗することがあります。SIOS Protection Suite でボリュームリソースを作成する前に、ファイル共有を削除してください。PATH 変数を変更するには、 [コントロール パネル] を開き、 [システム] - [環境] を選択します。
ボリューム削除時のプログラムとサービスの停止と再起動
SIOS Protection Suite では、レジストリキーを編集すると、ボリューム削除時に停止して再起動するプログラムとサービスを指定できます。SIOS Protection Suite は、ユーザがボリュームを削除してサービスを停止した場合、そのボリュームにオープンハンドルがあれば、指定されたプログラムとサービスを停止します。しかしサービスから削除されるボリュームのオープンハンドルを SIOS Protection Suite が検知しないと、プログラムとサービスを停止しません。ボリュームを削除するときに、プログラムとサービスを停止するには、次の手順に従います。
- 削除するボリュームにアクセスし、フェイルオーバをブロックしているプログラムとサービスを探します。
- 以下の各プログラムのサブキーを追加し、停止して再起動するプログラムを指定します。
- 64ビット: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SIOS\LifeKeeper\VolumeRemoveStopPrograms\*
例えば、「myapp.exe」というプログラムを停止するには、次のサブキーを追加します。
HKEY_LOCAL_MACHINE\SOFTWARE\SIOS\LifeKeeper\VolumeRemoveStopPrograms\myapp.exe\
- 各プログラムのサブキーに次の値 (REG_SZ) を追加します。
ProgramName | プログラム名のみ (注記: 手順 2 で指定したサブキー名を使用します。) |
ProgramPath | プログラム名 (絶対パス) |
Restart | プログラムを再起動しない場合は、0 を指定します。再起動する場合は、1 を指定します。 |
StartCmdLine | プログラム起動時に渡すコマンドラインオプションを指定します。 |
WasRunning | SIOS Protection Suite によって、プログラム停止前に稼働していたインスタンス数を記憶します。0 に初期化します。 |
例えば、myapp.exe /a /t /p を停止して再起動する場合は、次のようにレジストリを編集します。
ProgramName | myapp.exe |
ProgramPath | C:\mydir\myapp.exe |
Restart | 1 |
StartCmdLine | /a /t /p |
WasRunning | 0 |
注記: SIOS Protection Suite はデフォルトで perfmon.exe を停止するサブキーをレジストリに書き込むため、再起動オプションは無効になります。
- 以下の各サービスにサブキーを追加し、停止して再起動するサービスを指定します。
- 64 ビット:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SIOS\LifeKeeper\VolumeRemoveStopServices\
例えば、「mysvc」というサービスを停止するには、次のサブキーを追加します。
HKEY_LOCAL_MACHINE\SOFTWARE\SIOS\LifeKeeper\VolumeRemoveStopServices\mysvc\
- 各サービスのサブキーに次の値 (REG_SZ) を追加します。
ServiceName | サービス表示名 (注記: 手順 4 のサブキー名と一致する必要があります。) |
Restart | プログラムを再起動しない場合は、0 を指定します。再起動する場合は、1 を指定します。 |
WasRunning | SIOS Protection Suite によって、プログラム停止前に稼働していたインスタンス数を記憶します。0 に初期化します。 |
StopWait | サービスが STOPPED 状態になるまで待機する秒数。StopWait に負数を指定すると、サービスとフェイルオーバは、STOPPED 状態に達するまで無制限に待機します。 |
StartWait | サービスが RUNNING 状態になるまで待機する秒数。サービスが指定した時間内に RUNNING 状態に達しないと、エラーがイベントログに記録されます。StartWait に負数を指定すると、フェイルオーバはサービスが起動するまで無制限に待機します。0 を設定すると、サービスは起動しますが、RUNNING 状態になるまで待機しません。そのため、サービスが再起動しなくても、イベントログメッセージは生成されません。 |
例えば、mysvc を停止して起動するには、次のように設定します。
ServiceName | mysvc |
Restart | 1 |
WasRunning | 0 |
StopWait | 120 |
StartWait | 120 |
ボリューム復元時のプログラムとサービスの停止と再起動
SIOS Protection Suite では、レジストリキーを編集すると、ボリュームを復元するときにシステム上で停止して再起動するプログラムとサービスを指定できます。この機能は、前述したボリューム削除時のプログラムとサービスの停止と再起動と基本的に同じですが、次の点が異なります。
- 停止して再起動するプログラムは、以下のサブキーに指定します。
- 64ビット: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SIOS\LifeKeeper\VolumeStopPrograms\
- 停止して再起動するサービスは、以下のサブキーに指定します。
- 64ビット: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SIOS\LifeKeeper\VolumeStopServices\
このトピックへフィードバック