データベースの耐障害性を高めるクラスタソフト
現用系、待機系を確実に監視し、フェイルオーバーに備える
ミッションクリティカルなシステムとして高い信頼性を求められる基幹系サーバーの多くはデータベースと連動している。このため、止められないアプリケーションとしてデータベースを意識している情報システム担当者は多い。
国内で圧倒的なシェアを誇るNECのクラスタソフト「CLUSTERPRO」(クラスタープロ)の場合、Windows版ユーザーの半数以上がデータベースサーバーのクラスタリングのためにデータベースの監視機能を強化するオプション製品を同時に導入しているという数字がある。クラスタリングのターゲットとしてデータベースサーバーを重要視する比率は高い。
データベースを止めないためには、まずデータベースソフトがインストールされたサーバー自体が、障害時に確実かつ迅速にフェイルオーバーされる必要がある。そのためには、現用系のサーバーの監視とともに、障害時に切り替えが必要になったときに待機系のサーバーが正常稼動していなくてはならない。
CLUSTERPROでは、現用系、待機系のそれぞれのハードウェア層、OS層、アプリケーション層に加え、両サーバーをつなぐネットワークのリンクまでを監視し、障害時の確実なフェイルオーバーを実現する。
待機系で異常を検出した場合、アラートを送信できるため、未然の対応が可能で、いざ現用系で障害が起きたときに、切り替えがうまくいかず業務が停止して初めて待機系の異常に気づくという事態には陥らずにすむ。
ハードウェアに依存するSCSIリザーブを利用せずに、共有ディスクのアクセス所有権をスムーズに移行
クラスタソフトがハードウェアに依存しているとシステムへの適用範囲が狭められたり、逆にクラスタソフトが対応するハードウェアを用意する必要が生じ、導入のしきいが高くなる。
CLUSTERPROはできるだけハードウェアに依存しない設計を目指し、お客様/利用者様へのクラスタソフト導入のしきいを下げる取り組みをしている。
一般にクラスタソフトは高価な共有ディスクを用いた業務データの引継ぎを行うが、CLUSTERPROでは共有ディスクを使わないデータミラー型クラスタを実現している。また、共有ディスクを利用するクラスタ形態をとる場合でも、共有ディスクへの依存性が高くなるSCSIリザーブ/リセットというSCSIコマンドを使わないため、新規のシステム導入時にはサーバや共有ディスクの選択の幅が広がるし、共有ディスクが既に設置されたシステムの増強においても導入しやすい。
以下に、SCSIリザーブ/リセットを使わないことで得られるクラスタのメリットを説明する。
ハードウェアの切り替えで問題になるのは、サーバー本体ばかりではない。現在、データベースファイルの保存にはSAN接続やNAS接続のネットワークストレージなどの共有ディスクが使用されるケースが多いが、サーバーの切り替えに当たっては、こうした共有ディスクのアクセス所有権の移行も速やかに行われなくてはならない。
クラスタソフトの中には、SCSIコマンドによりSAN接続された共有ディスクのアクセス所有権の移行を行うものもあるが、この方法だと現用系がSCSIリザーブし続ける中途半端なハングアップや高負荷状態が発生する障害ケースがある。そうなると、待機系がSCSIリセットを出し、その後のSCSIリザーブによる共有ディスクのアクセス所有権を握れずにフェイルオーバーが失敗する危険性がある。
何らかの障害で業務アプリケーションやサービスプログラムのメモリ空間が動作できないような状態でも、SCSIリザーブコマンドを出す部分は一般的にOSのドライバモジュールとしてメモリに常駐しSCSIリザーブコマンドを出し続けることができる。そのため、他のサーバーからのSCSIリセットおよびSCSIリザーブコマンドを受け付けないという事態が発生しうるのだ。
そこで、例えばLinux版のCLUSTERPROではSCSIリザーブコマンドを利用せず、ブロックデバイスに対しI/Oコントロール命令(ioctl())を発行することで、共有ディスクのアクセス制御を可能にしている。共有ディスクのクラスタパーティションに、活性時は読み書き可能(Read/Write)を発行し、非活性時には読み込み専用(Read Only)を発行して、更新を他のサーバーが見にくることで健全性を確認、確実なフェイルオーバーを実現する。
また、共有ディスクが実装しているSCSIコマンドのバージョンに違いが生じると、SCSIリザーブ/リセットを使うクラスタソフトの場合、共有ディスクとの組み合わせによってはうまく動作しない可能性がある。しかし、SCSIリザーブ/リセットを使わなければハードウェアへの依存度がなくなり、どのような共有ストレージでも利用が可能で信頼性が高い。
では次に、CLUSTERPROによるデータベースのクラスタリングを説明しよう。
CLUSTERPRO製品の詳細はこちら
http://www.nec.co.jp/pfsoft/clusterpro/?pfid=104