6.3 Online/Offline 処理と状態遷移
6.3.10 保守モード時の操作
以下の例では、保守モード時のコントローラの動作について説明します。
● ノードfuji2およびfuji3上にアプリケーションApp1、App2、およびApp3が構成されている とします。
● App2はFollowモードコントローラでApp1を制御します。
● App3はScalableモードコントローラでApp2を制御します。
図 128は、この例のRMS構成ツリーおよび対応グラフを示しています。
図128:保守モード時のコントローラの例
スケーラブルコントローラ
フォローコントローラ
スケーラブルコントローラ Online/Offline処理と状態遷移
6.3.10.1ノード間でのアプリケーションの切替え
グラフの観点から、これらを「横方向」の切替え操作として考えることができます。
スケーラブルコントローラに制御された子アプリケーションが保守モードに切替えられた場合、その親 は hvswitch コマンドを使用してノード間で手動または自動で切替えることができます ( 図 129)。
App2を保守モードに切替えると、フォローコントローラに制御された子アプリケーションであるApp1 も自動で保守モードに切り替わります。
図129:子が保守モードの場合にスケーラブルな親アプリケーションを切替える
同様に、スケーラブルコントローラの親アプリケーションが保守モードに切替えられた場合、その子は hvswitchコマンドを使用してノード間で切替えることができます (図 130)。ただし、保守モードでは 親は処理要求を発行しないため、実際は手動コマンドによってのみ実行できます。App2を異なるノード に切替えると、フォローコントローラに制御された子アプリケーションであるApp1も自動的にそのノー ドに切り替わります。
図130:親が保守モードの場合にスケーラブルな子アプリケーションを切替える
つまり、これらの「水平」のhvswitchコマンドは正しく処理されます。
Online/Offline処理と状態遷移 スケーラブルコントローラ
6.3.10.2 Online、Offline、およびFault処理の制約
グラフの観点から、これらを「縦方向」の切替え操作として考えることができます。
App2が保守モードのときにApp3をhvutilコマンドでOfflineにすることを考えます (図 131)。
図131:子が保守モードの場合に親をOfflineにするよう試行する
前述のhvswitchコマンドと異なり、この「hvutil -f」操作では、処理の続行に子アプリケーション からの応答を必要とします。保守モードで App2 が親からの通常の処理要求に応答できないため、
Offline要求は最終的にタイムアウトになります。「hvutil -c」でFault処理を試行する場合も同 じです。
親が保守モードの場合に子をOfflineにするよう試行しても (図 132)、やはり失敗しますが、前の場合 のような長い遅延がありません。Offline 処理を開始できるのは親だけであるため、RMS がすぐにエ ラーを生成します。
図132:親が保守モードの場合に子をOfflineにするよう試行する
親からの応答を必要としないため、Fault処理の「hvutil -c」要求を子に対して発行できます。
つまり、これらの「縦方向」のhvutilコマンド操作は、保守モードの子または親アプリケーションか らの応答がアプリケーションで必要とされる場合に失敗します。
スケーラブルコントローラ Online/Offline処理と状態遷移
6.3.10.3スケーラブルコントローラで推奨される操作
保守モードの要求は制御階層の最上位アプリケーションに対して発行することを強く推奨します。これ は、予期しない動作を回避するのに役立ちます。
● 子アプリケーションは他のノードへ切替えるための自動要求を親から受信しません。また、自動 のOnline、Offline、またはFault処理要求が親から伝播されることはありません。
● リソース故障の場合、下位レベルオブジェクトからの切替え要求はすぐに失敗します。RMSはタ イムアウト遅延を待機せずにFault処理を開始できます。
Online/Offline処理と状態遷移 スケーラブルコントローラ
7 RMS の詳細説明
本章では、RMS状態遷移機構について説明します。特に、各状態の判別はどのようにして行われるのか、
RMSはどのようにして状態変化を起こし、またどのようにして状態の変化に対応するのかについて説明 します。本章で説明する内容は以下のとおりです。