TOP比較データ> スプリットブレイン時の動作
徹底比較!!クラスタソフトウェア
徹底比較!!クラスタソフトウェア

第3回:GUI操作だけでHAクラスタが構成できる「LifeKeeper」

著者:サイオステクノロジー  小野寺 章   2005/11/30
前のページ  1  2  3  4
スプリットブレイン時の動作

   さてこれまでの説明で、LifeKeeperが実装するクラスタ技術の大まかな仕組みと特長はご理解いただけたと思う。次に、OracleをLifeKeeperでクラスタ化した場合のスプリットブレイン時のLifeKeeperの動作について説明する。

   図6はOracleリソースの階層構造である。構成要素はIPリソース、ファイルシステムリソース、Oracleリソースである。
Oracleリソース階層
図6:Oracleリソース階層

   この構成は、「IPリソース(親) → Oracleリソース(子) → ファイルシステムリソース」というように従属しており、親リソースであるIPリソースがActiveとなるためには、子リソースであるOracleリソースがActiveでなければならない。さらに、OracleリソースがActiveとなるためには、ファイルシステムリソースがActiveにならなければならないという順序関係を持っている。

   サーバhp1でリソース階層全体がActiveとなっており、サーバhp2がStandbyである状態で、すべてのハートビートが障害となると、サーバhp1とサーバhp2の両方でリソースの引き継ぎ処理が実行される。

   しかし、すでにすべてのリソースがActiveとなっているサーバhp1はサーバhp2から引き継ぐべきリソースがないため、数秒で処理は終了し運転を継続する。一方、サーバhp2ではOracleリソースがStandby状態となっているので、LifeKeeperはこれらのリソースの引き継ぎ処理を実行する。引き継ぐ順番は一番下の階層にあるリソースつまりDiskリソースの引き継ぎから開始される。

   先に述べたようにLifeKeeperはアクセス制御をSCSI Reservationによって行っているので、リソースをActiveにするにはこのDiskリソース(LUN)にロックをかけなければならない。しかし、サーバhp1では引き続きOracleサービスは稼動中でLUNはロックされたままなので、サーバhp2がSCSI Reservationを発行するとReservation Conflictというエラーとなってしまう。ここでLifeKeeperはハートビートが途絶えている状態であることを認識しているため、強制的にロックを奪取する動作に移る。

   具体的にはTarget ResetをLUNに対して発行しLUNロックを強制的に解除した後、再度SCSI Reservationを発行するのである。強制的にLUNロックの奪取に成功したサーバhp2は順次上位のリソースの起動処理に入る。そして、ファイルシステムの起動処理が完了したら、次にOracleリソース起動が実行される。最後に最上位のリソースであるIPリソースの起動が行われて、Oracleリソース全体の引き継ぎが完了する。

   一方、ロックを奪取されてしまったサーバhp1は、ロックの確認を実行してReservation Conflictエラーを検出する。そして、スプリットブレインが発生しサーバhp2がロックを奪取したと判断し、自らサービスを開放すべく OSのリブートを実行するという動作に入る。 ファイルシステムリソースが存在する場合はこのようにActive側がロックを奪取されることをトリガーとしてリブートし共有データを保護する。

   もしファイルシステムリソースが存在しない場合にはこのようなリブートは起こらない。例えばIPリソースしかないクラスタ環境の場合、ハートビート障害が起きると、IPリソースはサーバhp1とサーバhp2の両方でActiveになってしまいそうである。しかし、LifeKeeperのIP ARKはIPリソースをActiveにする時点で、ネットワーク上に同一のIPアドレスが存在していないかどうかのチェックを行なうため、もしIPリソースがサーバhp1でActiveであればサーバhp2でのIPリソースの起動は失敗するシナリオとなっている。

   LifeKeeperはこのように様々な状況に的確に対応できるシナリオによって、データの保護およびサービスの保護を実現している。


まとめ

   LifeKeeperの実装するクラスタ技術の実装について簡単に説明をしたが、実際の構築方法や操作などについては紙面の都合で触れることができなかった。

   それらに関しては連載「LifeKeeperのすべて」を是非ご参照いただきたい。今後、LifeKeeperのインストールから設定、操作方法などについて解説をしていく予定である。

製品情報
サポートしているOSはRed Hat Enterprise Linux、SUSE SLES、Asianux(Miracle Linux)などがあり、それぞれ32ビット、64ビットに対応している。
サーバはOSがサポートするCPUとしてx86以外にItanium2、Opteron、Xeon EM64T、IBM Powerに対応している。
さらに詳しい内容に関しては弊社のWebサイト
http://www.10art-ni.co.jp/product/lifekeeper/index.htmlを参照いただきたい。
前のページ  1  2  3  4


サイオステクノロジー株式会社 小野寺 章
著者プロフィール
サイオステクノロジー株式会社  小野寺 章
インフラストラクチャービジネスユニット
エンタープライズソリューション部 部長
国産汎用機メーカに入社し、汎用機のSEを10数年担当、1994年頃からオープン・ダウンサイジングブームの到来とともにUNIX系OSを担当し、Solaris、HP/UXでSun Cluster、Veritas Cluster、MC/ServiceGuardなどを使用した、多数のミッションクリティカルシステムのHAシステム構築に従事。2001年ノーザンライツコンピュータ(現サイオステクノロジー)へ入社後、SteelEye LifeKeeperの総責任者としての国内での販売・サポート業務に従事。


INDEX
第3回:GUI操作だけでHAクラスタが構成できる「LifeKeeper」
  LifeKeeper for Linuxの概要
  LifeKeeperのアーキテクチャ
  LifeKeeperにおける障害監視と検知
スプリットブレイン時の動作