ページの先頭行へ戻る
PRIMECLUSTER  RMS 導入運用手引書 4.7

2.1.7 特殊な状態

2.1.7.1 保守モードの制限

保守モードのアプリケーションが存在すると、同一グラフ内の他のオブジェクトは処理上の制限を受けます。この制限により、本章で前述したすべての処理が停止され、以下のオブジェクトに影響が生じます。

処理要求の種類によっては、制限があるためにエラーまたはタイムアウトのいずれかが発生する場合があります。

制限がどのように適用されるかを理解するため、2つのアプリケーション (app1およびapp2) が、それぞれ1つずつ依存資源 (Res1およびRes2) を持ち、2つのノード (NodeAおよびNodeB) のいずれでも実行されるような構成を使って説明します。以下の図は、app1が保守モードになった場合の、オブジェクトの状態を示しています。

図2.4 保守モード時の制限の例

この例は以下の機能について説明しています。

上記の内容は「hvutil -m on」または、各アプリケーションを右クリックしてから、GUIを使ってアプリケーションの保守モードを開始した場合の制限です。これとは別に、「hvutil -M on」が使用された場合や、ノードを右クリックしてGUIを使って処理を開始した場合は、保守モードがクラスタ全体に適用され、すべてのノードで処理が停止します。

2.1.7.2 Inconsistent状態

あるuserApplicationとそのグラフ内の1つ以上のリソースがOffline状態またはFaulted状態にあり、同時にグラフ内の他のリソースがOnline状態またはFaulted状態にあるという状況が発生する場合があります。これは、管理者の手動操作による介入があった場合や、Faultクリア処理の失敗により、オブジェクトのいくつかがOnline状態またはFaulted状態で残った場合に起こります。

そしてこの場合、これらのOnline状態またはFaulted状態のリソースオブジェクトにClusterExclusive属性が設定されていると、複数のノードで同時にOnline状態になることはできません。userApplicationが単にOfflineまたはFaultedとマークされている場合であれば、そのuserApplicationはリソースとともに他のノードに切替えられてOnline状態になることができます。しかしこれはClusterExclusive属性の意図する動作とは矛盾し、その結果生じるリソースの競合によりデータの破損が生じる可能性があります。このような問題を回避するため、RMSは、userApplicationにOfflineやFaultedではなく、Inconsistentとマークを付けることによってuserApplicationの切替えをすべて禁止しています。正確な定義は以下のとおりです。

userApplicationは、Inconsistentの状態にあると表示または報告されますが、実際の状態は、Offline、StandbyまたはFaultedです。ほとんどの処理においては、Inconsistent状態にあるuserApplicationの動作は、実際の状態に基づいて決定されます。たとえば、実際の状態がOfflineの場合には、Offline要求が発行されてもOfflineスクリプトは起動されません ("2.1.4.5 グラフノードがすでにOffline状態である場合"を参照してください)。

例外は不整合のuserApplicationをリモートノードに切替える要求が発行された場合で、この要求は拒否されます。これによって、ClusterExclusiveリソースが、一度に1つのノードでのみOnlineになることが確保され、障害が発生する可能性が回避されます。

あるuserApplicationが、1つのノードでのみInconsistent状態にある場合は、そのノード上でOnline状態にすることは可能です。ただし、複数のノードでInconsistent状態が生じていると切替えはできません。この場合、たとえば、hvutil -fまたはhvutil -cによって、すべてのリソースをOffline状態にするなどして、まずInconsistent状態を解決する必要があります。

userApplicationが複数のノードでInconsistent状態にある場合、ClusterExclusiveリソースのいずれかが、複数のノードでOnline状態にある可能性があります。この場合には、userApplicationに対してhvutilコマンドを実行する前に、各ノードでリソースを正常終了させるための適切な処理を行ってください。リソースのタイプによっては、データの破損が生じていないかを確認する必要があります。