LifeKeeperのすべて 12

コミュニケーションパス(ハートビート)冗長化

コミュニケーションパス(ハートビート)冗長化

   コミュニケーションパスは各クラスタノード間での情報のやり取りを行うための経路であり、ハートビートはコミュニケーションパスを通じて行われるクラスタノード同士の死活監視機能を指している。

   HAクラスタにおいては複数台のノード同士が連携してサービスの冗長性を維持するため、クラスタノード同士の通信および死活監視が不可欠となる。こ のコミュニケーションパスが障害などで失われた場合には、ノードが停止しているものと判断され不要なフェイルオーバーを招いてしまう。このようなノード停 止の誤検知を回避するためには、コミュニケーションパスの冗長化が必要不可欠である。

   LifeKeeperでコミュニケーションパスの冗長化を行うためには、特別な操作やアプリケーションの追加は必要ない。LifeKeeperはも ともと複数のコミュニケーションパスを定義できるため、クラスタ構築時に少なくともTCPコミュニケーションパスを2経路以上定義し、さらに可能であれば TTYコミュニケーションパスも作成しておいたほうが望ましい。

ネットワーク冗長化のまとめ

   先にあげた図1では、「チーミングデバイスとLifeKeeperのバックアップインターフェースを併用する」という実に豪華な構成となっているが、現実にはサーバのポート数の問題もあるため、ここまでの構成をとることはまずないだろう。

   OS(もしくはドライバ)の機能を用いた、Bondingに代表される冗長化と、上述のLifeKeeperの機能を用いたバックアップインター フェースのどちらを用いるべきかについては、システムの求める機能によって分かれるところとなる。しかし、もしもネットワークの冗長性を確保することだけ が目的であるならば、LifeKeeperのバックアップインターフェースを使用することをお奨めする。

ストレージパスの冗長化

   ストレージパスとは、クラスタを構成する各ノードと共有ストレージの間を結ぶ経路を指す。

   共有ストレージを使用する上でのもっともシンプルな形状は、シングルパス、シングルコントローラの構成である。これはノード-ストレージ間を1本の ケーブルで接続し、また共有ストレージにはコントローラを1つだけ搭載する。このような構成において、ノード-ストレージの経路に障害が生じた場合は、 LifeKeeperによるフェイルオーバーの対象となる。またコントローラが1つしか搭載されていない場合は、コントローラが単一障害点となる事に注意 して欲しい。

コントローラの冗長化

   ストレージパスに関連するの冗長化の手法として、マルチコントローラ(リダンダントコントローラ、デュアルコントローラと同義)構成がある。これは 1つの共有ストレージに複数のコントローラが搭載されている構成で、片方のコントローラに異常が生じても、もう片方のコントローラを使用してアクセスを継 続する仕組みである。次に述べるマルチパス構成の場合も、ストレージがコントローラを複数内蔵しているためマルチコントローラ構成を含んでいるといえる。

マルチパス構成

   先にあげた図1の2で示された項目はFibre Channel(以下、FC)ストレージのパスの冗長化をあらわしている。この部分を抜き出して、HAクラスタシステムにおけるストレージとFCパスの構成をより詳細に図式化したものが図3となる。

FCストレージのマルチパス構成
図3:FCストレージのマルチパス構成

   図3は一般的なFCストレージのマルチパス構成となっている。青で示された線は、ストレージにアクセスするための有効なパスをあらわしており、破線は有効な経路の予備として待機しているパスをあらわしている。このように、サーバとストレージ間のFC経路が失われても、予備の経路を使用してディスクへのアクセスを継続させる仕組みをマルチパス構成と呼ぶ。

   図3の左側は障害が起こっていない平時の状態であるのに対して、右側はサーバ1のHBA(ホストバスアダプタ)0からFCスイッチへのパスに障害が 発生している。この場合、サーバ1の内部でHBA0からHBA1へ経路の切り替えが行われ、以降はHBA1を使用してディスクへのアクセスは継続して行わ れる。この経路の切り替えは、LifeKeeperが障害を検知して行っているのではなく、マルチパスを実現するためのマルチパスドライバによって行われ ることに注意してほしい。

   図3の例では、LifeKeeperはHBA0の経路で発生した障害を検知することなく(もしくは検知したとしてもフェイルオーバーに至る前に回復 して)、通常通りディスクのチェックを続行していなければならない。パスが切り替わる前に、LifeKeeperによって障害として検知されてしまった場 合は、LifeKeeperは自身のリカバリシナリオにそってサーバ2へのフェイルオーバーを行うが、これではマルチパスを構成している意味がない。

   また図3の例では、有効なパスと予備のパスを作成し障害時にはパスの切り替えを行うよう設定されているが、これはあくまで一例であり、マルチパスドライバの種類や設定によっては、同時に複数のパスを使用してパフォーマンスの向上をはかることも可能だ。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る