Solaris Resource Manager 1.1 のシステム管理

フェイルオーバーの場合

Sun Cluster の場合、リミットデータベース (/var/srm/srmDB) に記述した資源割り当ての方法が、通常のクラスタ環境でも、あるいはスイッチオーバーやフェイルオーバーの場合でも同じになるように、Solaris Resource Manager を構成することができます。

次の例を考えてください。

2 つのアプリケーションがある 2 ノードクラスタ

2 つの物理ホストがそれぞれ特定のアプリケーションのデフォルトマスターとなるように、2 ノードクラスタで 2 つのアプリケーションを設定できます。どちらの物理ホストも、他方の物理ホストのバックアップノードとなります。両ノードの Solaris Resource Manager リミットデータベースファイルに、両方のアプリケーションを指定しなければなりません。クラスタが正常に動作している場合、各アプリケーションは自らのデフォルトマスターで実行され、このマスターですべての割当数が与えられます (Solaris Resource Manager は利用できる全資源を割り当てるからです)。フェイルオーバーやスイッチオーバーが発生した場合、両方のアプリケーションは 1 つのノードで実行されることになり、構成ファイルに指定した割当数で資源が与えられます。たとえば、この例の構成ファイルでは、同じノードで両方のアプリケーションを実行する場合、アプリケーション 1 には 80 の割当数、アプリケーション 2 には 20 の割当数を与えると指定しています。


# limadm set cpu.shares=80 app1
# limadm set cpu.shares=20 app2
... 

次の図では、この構成における正常な処理とフェイルオーバー処理を示します。

Graphic

3 つのアプリケーションがある 2 ノードクラスタ

3 つのアプリケーションがある 2 ノードクラスタの場合、第 1 の物理ホスト (phys-host1) を 1 つのアプリケーションのデフォルトマスターとし、第 2 の物理ホスト (phys-host2) を残る 2 つのアプリケーションのデフォルトマスターとするように構成できます。次の例のリミットデータベースファイルを各ノードで使用し、フェイルオーバーやスイッチオーバーが発生しても、リミットデータベースファイルは変わらないものとします。


# limadm set cpu.shares=50	 app1
# limadm set cpu.shares=30	 app2
# limadm set cpu.shares=20	 app3
...

クラスタが正常に動作している場合、アプリケーション 1 にはデフォルトマスター phys-host1 で利用できる割当数がすべて与えられます。アプリケーション 2 と 3 には、デフォルトマスター phys-host2 でそれぞれ 60 と 40 の割当数が与えられますが、これは利用できる全資源の中で適切な割合が各アプリケーションに適用されているからです。フェイルオーバーまたはスイッチオーバーが発生して、アプリケーション 1 が phys-host2 にスイッチオーバーした場合、3 つのアプリケーションの割当数はリミットデータベースファイルに従って再割り当てされ、アプリケーション 1 は 50、アプリケーション 2 は 30、アプリケーション 3 は 20 の割当数となります。

次の図では、この構成における正常な処理とフェイルオーバー処理を示します。

Graphic