今回から,前回までの作業で構築したHeartbeatによるWebサーバー1+1クラスタ構成を拡張することで,サーバーのクラスタリングについて,さらに理解を深めていきたいと思います。

 前回までに構築した1+1クラスタ構成では,現用系でサービスが提供されている間,故障が発生しない限り,待機系側は特に何のサービスも提供していない状態となっています(図1)。

図1●これまでのクラスタ構成
図1●これまでのクラスタ構成
[画像のクリックで拡大表示]

 今回,「1+1Crossクラスタ構成」に拡張していきます。1+1Crossクラスタ構成にすると,待機系のサーバーでもサービスを提供しているため,有効活用できます。もし一方のノードが故障した場合は,他方のノードにフェイルオーバーして,サービスを継続提供することになります(図2)。

図2●拡張した1+1Crossクラスタ構成
図2●拡張した1+1Crossクラスタ構成
[画像のクリックで拡大表示]

 1+1Crossクラスタ構成は,待機系ノードを有効活用できる一方で,図2 のように,故障に伴いフェイルオーバーが発生した後,いずれかのノード1台で,2つのサービスを提供することになります。そのため,平常時と比較して,パフォーマンスが低下するというデメリットがあります。

 この1+1Cross構成は「双方向スタンバイ構成」「現用/待機 双方向構成」「現用/待機 たすき掛け構成」などとも呼ばれます。

1+1Crossのリソース・イメージ

 前回までは,Webサーバーを冗長化させましたが,1+1Crossクラスタ構成に拡張するにあたり,もう1つ別のサービスを冗長化させることになります。今回は,Heartbeat自体の動作に対する理解を深めるため,アプリケーションではなく,Dummyリソースを想定することとします。

 最終的には,現状の図3の構成から,図4の構成に拡張していきます。この構成で,フェイルオーバーが発生したときの動作イメージは,図5のようになります。

図3●これまでの構成
図3●これまでの構成
[画像のクリックで拡大表示]
図4●拡張した構成
図4●拡張した構成
[画像のクリックで拡大表示]
図5●フェイルオーバーが起こった場合
図5●フェイルオーバーが起こった場合
[画像のクリックで拡大表示]