次の 3 つの環境変数は、シャドウマスターのテイクオーバー時間に影響します。
SGE_DELAY_TIME - この変数は、テイクオーバーの実行が失敗した場合に sge_shadowd が一時停止する間隔を制御します。この値は、複数の sge_shadowd インスタンスが存在し、それらがマスターになろうと競合している場合にのみ使用されます。デフォルトは 600 秒です。
SGE_CHECK_INTERVAL - この変数は、sge_shadowd がハートビートファイルを確認する間隔を制御します。デフォルトでは 60 秒です。
SGE_GET_ACTIVE_INTERVAL - この変数は、ハートビートファイルが変更されていない場合に sge_shadowd インスタンスがテイクオーバーを試みる間隔を制御します。
これらの変数は、次のように相互に作用します。
マスターホストはハートビートファイルを 30 秒ごとに更新します。
sge_shadowd デーモンは、 SGE_CHECK_INTERVAL 変数で定義されている秒数ごとにハートビートファイルの変更を確認します。このため、この値は 30 秒より大きくします。
sge_shadowd デーモンは、ハートビートファイルが更新されていることを検出すると、そのデーモンは再び待ち状態になり、もう一度ハートビートファイルを確認するタイミングになるまで待ちます。
sge_shadowd デーモンは、ハートビートファイルが更新されていないことを検出すると、SGE_CHECK_INTERVAL 変数で定義されている秒数が経過するまで待機します。この手順によって、sge_shadowd デーモンのテイクオーバーが頻繁に行われすぎないようにし、マスターホストが余裕を持ってハートビートファイルを更新できるようにします。
SGE_GET_ACTIVE_INTERVAL の期限が切れると、ハートビートファイルがまだ更新されていない場合は、sge_shadowd デーモンのテイクオーバーが行われます。
推奨する設定は、SGE_CHECK_INTERVAL が 45 秒、SGE_GET_ACTIVE_INTERVAL が 90 秒です。この設定にすると、約 2 分後にテイクオーバーが発生します。これらの環境変数の設定後にシャドウホストの動作を確認する場合は、マスターホストのネットワークケーブルを引き抜いて、障害のシミュレーションを行う必要があります。