(57)【要約】【課題】ホスト計算機が少なくとも２台あれば多数決方式が適用できるようにする。【解決手段】ホスト計算機２０-1，２０-2により共有されるディスクアレイ２１を制御する２重化されたディスクアレイコントローラ２２-1，２２-2に多数決制御部２２２-1，２２２-2を設け、システム内のホスト計算機の障害が検出された場合に、ホスト計算機２０-1，２０-2の多数決制御部２０２-1，２０２-2に加えて、ディスクアレイコントローラ２２-1，２２-2の多数決制御部２２２-1，２２２-2も多数決制御に参加させる。【選択図】図１
2005085170.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２台のホスト計算機から構成されるクラスタシステムにおいて、
前記各ホスト計算機にそれぞれ設けられて、多数決制御を行う第１の多数決制御手段と、
前記各ホスト計算機により共有されるストレージ装置と、
前記各ホスト計算機からの要求をうけて前記ストレージ装置を制御する、２重化されたコントローラであって、前記各ホスト計算機の前記第１の多数決制御手段と連携して多数決制御を行う第２の多数決制御手段を含む２重化されたコントローラと、
前記少なくとも２台のホスト計算機のうち障害が発生した計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御を行うクラスタ制御機構であって、前記少なくとも２台のホスト計算機のいずれかの計算機に障害が発生した場合に、前記各ホスト計算機の前記第１の多数決制御手段と前記２重化されたコントローラの前記第２の多数決制御手段に対して多数決制御を要求して障害が発生したホスト計算機を特定させ、特定された計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御機構と
を具備することを特徴とするクラスタシステム。
【請求項２】
Ｎ台（Ｎは２以上の整数）のホスト計算機から構成されるクラスタシステムにおいて、
前記各ホスト計算機にそれぞれ設けられて、多数決制御を行う第１の多数決制御手段と、
前記各ホスト計算機により共有されるストレージ装置と、
前記各ホスト計算機からの要求をうけて前記ストレージ装置を制御する、Ｍ重化（Ｍは２以上の整数）されたコントローラであって、前記各ホスト計算機の前記第１の多数決制御手段と連携して多数決制御を行う第２の多数決制御手段を含むＭ重化されたコントローラと、
前記Ｎ台のホスト計算機のうち障害が発生した計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御を行うクラスタ制御機構であって、前記Ｎ台のホスト計算機のいずれかの計算機に障害が発生した場合に、前記各ホスト計算機の前記第１の多数決制御手段と前記Ｍ重化されたコントローラの前記第２の多数決制御手段に対して多数決制御を要求して障害が発生したホスト計算機を特定させ、特定された計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御機構と
を具備することを特徴とするクラスタシステム。
【請求項３】
少なくとも３台のホスト計算機から構成されるクラスタシステムにおいて、
前記各ホスト計算機にそれぞれ設けられて、多数決制御を行う第１の多数決制御手段と、
前記各ホスト計算機により共有されるストレージ装置と、
前記各ホスト計算機からの要求をうけて前記ストレージ装置を制御するコントローラであって、前記各ホスト計算機の前記第１の多数決制御手段と連携して多数決制御を行う第２の多数決制御手段を含むコントローラと、
前記少なくとも３台のホスト計算機のうち障害が発生した計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御を行うクラスタ制御機構であって、前記少なくとも３台のホスト計算機のいずれかの計算機に障害が発生した場合に、前記各ホスト計算機の前記第１の多数決制御手段と前記コントローラの前記第２の多数決制御手段に対して多数決制御を要求して障害が発生したホスト計算機を特定させ、特定された計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御機構と
を具備することを特徴とするクラスタシステム。
【請求項４】
少なくとも２台のホスト計算機と、前記各ホスト計算機により共有されるストレージ装置と、前記各ホスト計算機からの要求をうけて前記ストレージ装置を制御する２重化されたコントローラとを備え、前記少なくとも２台のホスト計算機のうち障害が発生した計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御が行われるクラスタシステムにおいて、障害が発生したホスト計算機を多数決で特定するための多数決制御方法であって、
前記少なくとも２台のホスト計算機のいずれかの計算機に障害が発生したことを検出するステップと、
ホスト計算機の障害の検出に応じて、前記少なくとも２台のホスト計算機及び前記２重化されたコントローラの全てで互いに連携して多数決制御を行うステップと、
前記多数決制御により障害が発生したホスト計算機を特定するステップと
を具備することを特徴とする多数決制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２台のホスト計算機から構成されるクラスタシステムに係り、特に各ホスト計算機により共有されるストレージ装置のコントローラを障害が発生したホストコンピュータを特定するための多数決制御に利用するクラスタシステム及び多数決制御方法に関する。
【背景技術】
【０００２】
ストレージ装置を含む計算機システムを如何に安全に、安定して稼動させるかを検討して、システムを運用することは重要な課題である。計算機システムを安定稼動させるための１つの手段としてクラスタ技術を適用したクラスタシステム化が挙げられる（例えば、非特許文献１参照）。クラスタ技術とは、複数の計算機が連携することにより、その中の１台が故障しても、その故障した計算機で実行されていたサービス（アプリケーション）を、別の計算機に引き継がせることを可能とした技術である。このクラスタ技術を適用した計算機システム、つまりクラスタシステムでは、サービス（業務）を実行している計算機（ホスト計算機）の可用性（業務稼働率）を高めることができる。
【０００３】
クラスタシステムは、通常ホスト計算機を２台用いて構成されることが多い。また２台のホスト計算機でのデータの管理方法の違いにより、「共有ディスク型」のデータ引き継ぎ方式と、「非共有型」のデータ引き継ぎ方式がある。「共有ディスク型」とは、２台のホスト計算機でデータを共有することにより、ホスト計算機で故障が発生した際のデータ引き継ぎを高速に行う方式を指す。「非共有型」とは、２台のホスト計算機でデータを共有せずに、お互いにデータのレプリケーション（複製）を生成する方式を指す。
【０００４】
２台のホスト計算機から構成されるクラスタシステムでは、その２台のホスト計算機のいずれかに何らかの故障が発生した場合、正常と判断されたホスト計算機に処理を引き継ぎ、アプリケーションの稼動を継続させる。ここでの判断は、ホスト計算機間で定期的に健全性を確認しあうハートビートと呼ばれる処理により行われるのが一般的である。
【０００５】
さて、システムにおける障害の状況によっては、スプリットブレイン（SplitBrain）と呼ばれる状況に陥る場合がある。このスプリットブレインは、何らかの理由（一般的にはホスト計算機間を接続するネットワーク障害等）により、ホスト計算機の障害検出が誤って行われたときに発生する。例えばクラスタシステム内の２台のホスト計算機間で互いに通信できない状態となった場合、各ホスト計算機は互いに相手がいないと判断して、互いに障害を検出し、独立して動作を継続する。これがスプリットブレインと呼ばれる状況であり、このスプリットブレインが発生すると、アプリケーションやデータが破壊される虞がある。
【０００６】
一方、スプリットブレインの発生を防止するために、多数決方式を適用した分散システムが提案されている（例えば、特許文献１参照）。この特許文献１に記載された多数決方式によれば、ｎ台（ｎは４以上の整数）のホスト計算機で分散システムを構成し、そのうちのｆ台（ｆは３ｆ＜ｎを満足する最大の整数）の計算機が故障しても、残りのｎ−ｆ台の計算機が互いに通信しあうことにより、スプリットブレインに陥ることを回避できる。ｎの最小値は４であり、そのときのｆの値は１である。つまり、４台のホスト計算機で分散システムを構成すれば、１台の計算機が故障しても、残りの３台で多数決により正しい処理結果を決定でき、スプリットブレインに陥ることを防止できる。
【特許文献１】特開２００３−６７２１５（段落００５６乃至００６４、図４）
【非特許文献１】金子哲夫、森良哉、「クラスタソフトウェア」、東芝レビュー、Vol.54 No.12(1999)、p.18-21
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記したように、特許文献１に記載された多数決方式によれば、ｎ台のホスト計算機で分散システムを構成し、そのうちのｆ台（ｆは３ｆ＜ｎを満足する最大の整数）の計算機が故障しても、残りのｎ−ｆ台の計算機が互いに通信しあうことにより、スプリットブレインに陥ることを回避できる。したがって、この特許文献１に記載された多数決方式をクラスタシステムに適用して、当該システムがスプリットブレインに陥るのを防止することが考えられる。しかし、多数決方式を適用するクラスタシステムを実現するためには、当該システムを構成するホスト計算機の台数を最低でも４台必要とする。このため、ホスト計算機の台数が元々４台以上のクラスタシステムでは問題ないが、背景技術で挙げた代表的なクラスタシステムのように、ホスト計算機の台数が２台のクラスタシステムでは、新たにホスト計算機を２台追加しなければならず、初期導入コストが大きいという問題がある。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、ホスト計算機が少なくとも２台あれば多数決方式が適用できるクラスタシステム及び多数決制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の１つの観点によれば、少なくとも２台のホスト計算機から構成されるクラスタシステムが提供される。このクラスタシステムは、上記各ホスト計算機にそれぞれ設けられて、多数決制御を行う第１の多数決制御手段と、上記各ホスト計算機により共有されるストレージ装置と、上記各ホスト計算機からの要求をうけて上記ストレージ装置を制御する、２重化されたコントローラであって、上記各ホスト計算機の上記第１の多数決制御手段と連携して多数決制御を行う第２の多数決制御手段を含む２重化されたコントローラと、上記少なくとも２台のホスト計算機のうち障害が発生した計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御を行うクラスタ制御機構であって、上記少なくとも２台のホスト計算機のいずれかの計算機に障害が発生した場合に、上記各ホスト計算機の上記第１の多数決制御手段と上記２重化されたコントローラの上記第２の多数決制御手段に対して多数決制御を要求して障害が発生したホスト計算機を特定させ、特定された計算機で実行されていたサービスを他のホスト計算機に引き継がせるクラスタ制御機構とを備えたことを特徴とする。
【００１０】
このような構成のクラスタシステムにおいては、当該クラスタシステムを構成する少なくとも２台のホスト計算機の多数決制御手段（第１の多数決制御手段）に加えて、ストレージ装置を制御する２重化されたコントローラに設けられた多数決制御手段（第２の多数決制御手段）も多数決制御に参加させられる。これにより、例えばホスト計算機の台数が２台でも、当該２台のホスト計算機と、２重化されたコントローラ、つまり２台のコントローラとを合わせた４台のノードで多数決制御を行うことができるため、コントローラに障害がないならば、２台のホスト計算機のいずれか一方に障害が発生しても、その障害が発生した計算機を正しく確定でき、スプリットブレインに陥るのを回避できる。
【００１１】
また、Ｎ台（Ｎは２以上の整数）のホスト計算機から構成され、且つストレージ装置を制御するコントローラがＭ重化（Ｍは２以上の整数）されたクラスタシステムにおいて、Ｍ重化されたコントローラ、つまりＭ台のコントローラのそれぞれに多数決制御手段（第２の多数決制御手段）を設け、Ｎ台のホスト計算機の多数決制御手段に加えて、当該Ｍ台のコントローラの多数決制御手段も多数決制御に参加させる構成とすると良い。
【００１２】
このような構成のクラスタシステムにおいては、Ｍ台のコントローラに障害がないならば、ｆ台（ｆは３ｆ＜ｎを満足する最大の整数、但しｎ＝Ｎ＋Ｍ）のホスト計算機が故障しても、正しい多数決制御が可能となり、スプリットブレインに陥ることを防止できる。
【発明の効果】
【００１３】
本発明によれば、少なくとも２台のホスト計算機により共有されるストレージ装置を制御する２重化されたコントローラ、つまりホスト計算機とは全く制御方式が異なる２重化コントローラを多数決制御に参加させることにより、少なくとも２台のホスト計算機を含めて、少なくとも４台のノードで多数決制御行うことができ、ホスト計算機の台数が少なくても、信頼性の高い低コストのクラスタシステムを構築できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るクラスタシステムの構成を示すブロック図である。図１のクラスタシステムは、ディスクアレイ装置１０と、当該ディスクアレイ装置１０を共有使用するＮ台のホスト計算機、例えば２台（Ｎ＝２）のホスト計算機２０-1，２０-2とから構成される。ディスクアレイ装置１０及びホスト計算機２０-1，２０-2は、ネットワーク３０により相互接続されている。ネットワーク３０は、例えばストレージエリアネットワーク（ＳＡＮ）、或いはイーサネット（登録商標）である。ネットワーク３０に代えて、ＳＣＳＩ（Small Computer System Interface）バス、ＦＣ（Fibre Channel）等のチャネル網を用いることも可能である。
【００１５】
ディスクアレイ装置１０は、ディスクアレイ２１と、当該ディスクアレイ２１を制御する多重化されたディスクアレイコントローラ、例えば２重化されたディスクアレイコントローラ２２-1，２２-2とから構成される。ディスクアレイ２１は、ＳＣＳＩバス、ＦＣ等のチャネル網２３によってディスクアレイコントローラ２２-1，２２-2と接続されている。ディスクアレイ２１は、ｍ台のディスクドライブ、例えばハードディスクドライブ（ＨＤＤ）２１０-1〜２１０-mから構成される論理ユニットＬＵを備えている。
【００１６】
ホスト計算機２０-1，２０-2は、クラスタ制御部２０１-1，２０１-2及び多数決制御部２０２-1，２０２-2を備えている。クラスタ制御部２０１-1，２０１-2は相互に通信を行いながら同期して一体となって動作することにより周知のクラスタ制御を実行する。クラスタ制御は、ハートビートを用いたタイムアウト監視等のホスト計算機２０-1，２０-2上での障害監視、及び計算機障害（アプリケーション障害）発生時のホスト計算機での引き継ぎ（フェールオーバ）の制御を含む。この一体となって動作するクラスタ制御部２０１-1，２０１-2は、ホスト計算機２０-1，２０-2にまたがって存在する仮想的なクラスタ制御機構２０１を実現する。クラスタ制御部２０１-1，２０１-2は、クラスタ制御用のプログラム（クラスタソフトウェア）をホスト計算機２０-1，２０-2が読み取り実行することにより実現される。多数決制御部２０２-1，２０２-2は、クラスタ制御機構２０１（内のクラスタ制御部２０１-1または２０１-2）からの要求に応じて、ディスクアレイコントローラ２２-1，２２-2内の後述する多数決制御部２２２-1，２２２-2と連携して周知の多数決制御を実行する。多数決制御部２０２-1，２０２-2は、多数決制御部２２２-1，２２２-2との間で連携することで、多数決制御に必要なデータを常に一致化させる。
【００１７】
ディスクアレイコントローラ２２-1，２２-2は、主制御部２２１-1，２２１-2及び多数決制御部２２２-1，２２２-2を備えている。主制御部２２１-1，２２１-2は、ホスト計算機２０-1または２０-2からの読み出し要求、或いは書き込み要求に応じてディスクアレイ２１へのアクセスを制御し、その結果をホスト計算機２０-1または２０-2に返す。多数決制御部２２２-1，２２２-2は、クラスタ制御機構２０１内のクラスタ制御部２０１-1または２０１-2からの要求を主制御部２２１-1，２２１-2を介して受け付けて、ホスト計算機２０-1，２０-2内の多数決制御部２０２-1，２０２-2と連携して周知の多数決制御を実行する。
【００１８】
次に、図１のシステムにおける動作を図２のシーケンスチャートを参照して説明する。今、ホスト計算機２０-1，２０-2上で動作するクラスタ制御機構２０１で、システムの何らかの障害、例えばホスト計算機２０-1または２０-2の障害（ここでは、ホスト計算機２０-1または２０-2で実行されるアプリケーションの障害）を検出したものとする。すると、クラスタ制御機構２０１は、ホスト計算機２０-1，２０-2内の多数決制御部２０２-1，２０２-2とディスクアレイ装置１０に含まれている２重化されたディスクアレイコントローラ２２-1，２２-2内の多数決制御部２２２-1，２２２-2とに多数決制御を要求する（ステップＳ１）。ディスクアレイコントローラ２２-1，２２-2内の多数決制御部２２２-1，２２２-2は、クラスタ制御機構２０１からの多数決制御要求を、主制御部２２１-1，２２１-2を介して受け付ける。
【００１９】
ホスト計算機２０-1，２０-2内の多数決制御部２０２-1，２０２-2とディスクアレイコントローラ２２-1，２２-2内の多数決制御部２２２-1，２２２-2とは、ネットワーク３０を介して互いに連携して多数決制御を行う仮想的な多数決制御機構２０２を構成する。この多数決制御機構２０２を構成する４つの多数決制御部２０２-1，２０２-2，２２２-1，２２２-2は、当該多数決制御部がそれぞれ保持する一致化されているべきデータをネットワーク３０を介して突き合わせることにより、前記特許文献１に記載された多数決制御を行う（ステップＳ２）。なお、他の多数決制御を適用することも可能である。
【００２０】
本実施形態のように多数決制御部が４台の場合、つまりｎ＝４，ｆ＝１（ｆは３ｆ＜ｎを満足する最大の整数）の場合、２台のホスト計算機２０-1，２０-2のうちのいずれか一方に障害が発生していても、ディスクアレイコントローラ２２-1及び２２-2が正常であれば、４つの多数決制御部２０２-1，２０２-2，２２２-1，２２２-2が保持しているデータのうち正しいデータを多数決により特定できる。これにより多数決制御機構２０２は、ホスト計算機２０-1及び２０-2のうち障害が発生したホスト計算機を特定する（ステップＳ３）。そして多数決制御機構２０２は、障害が発生した計算機として特定されたホスト計算機をクラスタ制御機構２０１に通知する（ステップＳ４）。
【００２１】
クラスタ制御機構２０１は、多数決制御機構２０２から通知されたホスト計算機をクラスタシステムから切り離して、ホスト計算機２０-1及び２０-2のうちの残りのホスト計算機に、多数決制御機構２０２から通知されたホスト計算機で実行されていたサービス（アプリケーション）を引き継がせる（ステップＳ５）。
【００２２】
このように本実施形態においては、２重化されたディスクアレイコントローラ２２-1，２２-2に多数決制御部２２２-1，２２２-2を設け、当該多数決制御部２２２-1，２２２-2を、ホスト計算機２０-1，２０-2に設けられている多数決制御部２０２-1，２０２-2と共に多数決制御に参加させることにより、クラスタシステムを構成するホスト計算機が２台であるにも拘わらず、ホスト計算機が４台である場合と同等の信頼性のある多数決制御を実現できる。これにより、クラスタシステムを構成する２台のホスト計算機２０-1及び２０-2の一方に障害が発生しても、ディスクアレイコントローラ２２-1，２２-2に障害が発生していなければ、障害が発生したホスト計算機を正しく特定して、サービスの引き継ぎを行うことができ、スプリットブレインに陥るのを回避できる。
【００２３】
上記実施形態では、クラスタシステムを構成するホスト計算機の台数が２で、ディスクアレイコントローラが２重化されている場合を想定している。しかし本発明は、ホスト計算機の台数がＮ（Ｎは２以上の整数）で、ディスクアレイコントローラがＭ重化（Ｍは２以上の整数）されているクラスタシステム全般に適用可能である。ここで、Ｎ＝２，Ｍ＝２の場合が上記実施形態に相当する。もし、Ｎ＝５，Ｍ＝２である場合（つまりｎ＝Ｎ＋Ｍ＝７、ｆ＝２の場合）、Ｍ重化（２重化）されたディスクアレイコントローラに障害が発生していなければ、Ｎ台（５台）のホスト計算機のうちの２台に障害が発生しても、残りの３台のホスト計算機と２重化されたディスクアレイコントローラとで信頼性の高い多数決制御が行え、スプリットブレインに陥ることを防止できる。また、Ｎ＝３であれば、つまりホスト計算機の台数が３であれば、ディスクアレイコントローラが多重化（２重化）されていなくても、ｎ＝４となるため、ディスクアレイコントローラに障害が発生していなければ、３台のホスト計算機のうちの１台に障害が発生しても、信頼性の高い多数決制御が行える。
【００２４】
また上記実施形態では、クラスタシステムを構成する各ホスト計算機によって共有される外部記憶装置（共有ストレージ装置）がディスクアレイである場合を想定している。しかし、ディスクアレイ以外のストレージ装置であっても構わない。
【００２５】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係るクラスタシステムの構成を示すブロック図。
【図２】同実施形態においてホスト計算機の障害が検出された場合の動作手順を示すシーケンスチャート。
【符号の説明】
【００２７】
１０…ディスクアレイ装置、２０-1，２０-2…ホスト計算機、２１…ディスクアレイ（ストレージ装置）、２２-1，２２-2…ディスクアレイコントローラ（コントローラ）、２０１…クラスタ制御機構、２０１-1，２０１-2…クラスタ制御部、２０２…多数決制御機構、２０２-1，２０２-2，２２２-1，２２２-2…多数決制御部、
【図１】
2005085170.tif 000003
【図２】
2005085170.tif 000004