JP4307673B2 - マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置 - Google Patents

マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置 Download PDF

Info

Publication number
JP4307673B2
JP4307673B2 JP2000015577A JP2000015577A JP4307673B2 JP 4307673 B2 JP4307673 B2 JP 4307673B2 JP 2000015577 A JP2000015577 A JP 2000015577A JP 2000015577 A JP2000015577 A JP 2000015577A JP 4307673 B2 JP4307673 B2 JP 4307673B2
Authority
JP
Japan
Prior art keywords
cluster
node
resource
service
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000015577A
Other languages
English (en)
Other versions
JP2000222373A (ja
Inventor
チン−ユン・チャオ
パトリック・エム・ゴール
リチャード・ジェームス・マッカーティ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000222373A publication Critical patent/JP2000222373A/ja
Application granted granted Critical
Publication of JP4307673B2 publication Critical patent/JP4307673B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は一般に分散データ処理システムに関し、特に分散データ処理システム内のサーバ・システムを管理する方法及び装置に関する。より詳細には、本発明はクラスタ化コンピュータ・システムを管理する方法及び装置に関する。
【0002】
【従来の技術】
クラスタ化コンピュータ・システムは、相互接続された全コンピュータの集合を含み、単一の統一化されたコンピュータ資源として使用される並列または分散システムのタイプである。前記定義内の用語"全コンピュータ"は、スタンドアロンの使用可能なコンピュータを構成する要素、すなわち1つ以上のプロセッサ、受け入れ可能な量のメモリ、入出力機構、及びオペレーティング・システムの通常の組み合わせを示すように意味される。クラスタと従来の分散システムとの間の別の違いはパーツ間の関係に関わる。最新の分散システムは、ピア・ツー・ピアの基礎となる通信層を使用する。真性の階層または他の構造は存在せず、単に通信エンティティの平坦なリストである。しかしながら、より高いレベルの抽象化では、それらはクライアント−サーバ・パラダイムに編成される。これはシステム複雑化の貴重な低減をもたらす。クラスタは一般にピア・ツー・ピア関係を有する。
【0003】
クラスタ化の普及を説明するための3つの技術的傾向が存在する。第1に、マイクロプロセッサが益々高速化しつつある。マイクロプロセッサが高速になるほど、大規模な並列システムの重要性は低減する。適度に高速な結果を達成するために、スーパ・コンピュータまたは数千個のマイクロプロセッサの集合体を使用することは、もはや必要でない。クラスタ化コンピュータ・システムの普及を増加させた第2の傾向は、コンピュータ間の高速通信の増加である。クラスタ・コンピュータ・システムは、"クラスタ"とも呼ばれる。ファイバ・チャネル規格(FCS)、非同期式伝送モード(ATM)、スケーラブル・コヒーレント相互接続(SCI)、及び交換ギガビット・イーサネットなどの標準化通信機構の導入は、コンピュータ間帯域幅を10Mビット/秒から数百Mバイト/秒に、更には数ギガバイト/秒にさえ向上させる。最後に、分散コンピュータのための標準ツールが開発された。分散コンピュータの要件は、マシンのクラスタの管理に適応化され得るソフトウェア・ツールの集合をもたらした。インターネット通信プロトコル組(TCP/IP及びUDP/IPと呼ばれる)などのあるものは、遍在する業界標準として一般的となった。イントラネット、インターネット及びワールド・ワイド・ウェブなどの基盤上で構築された高レベル機構も、同様に遍在的となりつつある。更に、マルチセンス管理のための他のツール・セットが一般的となった。一緒に、これらはクラスタ・ソフトウェアを作成するために活用するのに有効な基盤である。
【0004】
これらの3つの技術的傾向に加え、コンピュータ・クラスタのための成長しつつある市場が存在する。本質的に、市場は高信頼性のコンピュータを求めている。換言すると、コンピュータ・ネットワークは"高可用性(high availability)"を有さねばならない。例えば、コンピュータがウェブ・サイトを運営するために使用される場合、その利用は必ずしも正規の仕事時間に制限されない。換言すると、コンピュータは1年を通じて毎日24時間アクセスされ得る。修復のためにシャットダウンするための安全な時間は存在しない。代わりに、クラスタ化コンピュータ・システムが有用である。なぜなら、クラスタ内のあるコンピュータがシャットダウンしても、それが修復されるまで、クラスタ内の他のコンピュータがその責任を引き受けるからである。ユーザに示されるまたは検出されるダウン時間は存在しない。
【0005】
企業は同様に別の理由により、"高可用性"を必要とする。例えば、企業間イントラネットの利用は、企業と下請け会社またはベンダとを接続する。イントラネットのファイル・サーバがダウンすると、複数の会社による業務が強く影響を受ける。企業がモバイル労働力人口を有する場合、その労働力人口は情報及びメッセージをダウンロードするために、オフィスに接続できなければならない。オフィスのサーバがダウンすると、その労働力人口の有効性が減少する。
【0006】
コンピュータ・システムは、単ポイント故障(single point of failure)の置換可能部品が存在しなければ、高可用性であり、全体的に何か別の物が壊れる前に壊れた部品を修復できれば、十分に信頼性がある。高可用性を達成するためにクラスタ内で使用される基本技術は、フェールオーバである。その概念は十分に単純である。すなわち、あるコンピュータ(A)が別のコンピュータ(B)を監視し、Bが死ぬと、AはBの作業を引き継ぐ。従って、フェールオーバは、あるノードから別のノードへの"資源"の移動を含む。ノードはコンピュータのための別の用語である。多くの異なる種類の物事、すなわち物理ディスク所有権、論理ディスク・ボリューム、IPアドレス、アプリケーション・プロセス、サブシステム、プリント・キュー、共用データ・システムにおけるクラスタ全体に渡るロックの収集などが潜在的に関連する。
【0007】
資源は互いに依存し合う。この関係は問題となる。なぜなら、例えばあるノードが使用するデータが別のノードに移動されるとき、アプリケーションをあるノードに移動することを支援しないからである。実際、必要なディスク・ボリュームが実装される前に、アプリケーションが開始される場合、あるノードはそれらの両方を同一のノードに移動することさえ支援しない。
【0008】
IBM HACMP及びマイクロソフト"Wolfpack"(マイクロソフト社の商標)などの最新のクラスタ・システムでは、資源関係情報がクラスタ全体に渡るデータ・ファイル内に保持される。互いに依存し合う資源は資源グループとして編成され、階層としてそのデータ・ファイル内に記憶される。資源グループはフェールオーバの基本ユニットである。
【0009】
図1を参照すると、本発明が実装され得る分散データ処理システムの絵表現が示される。
【0010】
分散データ処理システム100は、本発明が実装され得るコンピュータのネットワークである。分散データ処理システム100は1つ以上の公衆網101を含み、これは分散データ処理システム100内で接続される様々な装置、クライアント・コンピュータ、及びサーバ・コンピュータ間の通信リンクを提供するために使用される媒体である。公衆網101は、トークン・リング、イーサネット、100Mbイーサネット、ギガビット・イーサネット、FDDIリング、ATM、及び高速交換機などの永久接続、或いは電話接続を通じ形成される一時接続を含み得る。クライアント・コンピュータ130及び131は、サーバ・コンピュータ110、111、112及び113と、公衆網101を介して通信する。
【0011】
分散データ処理システム100は任意的に、それ自身の専用通信ネットワーク102を有する。専用通信ネットワーク102上の通信は、多数の手段を通じて実行され、それらには公衆網101のような標準ネットワーク、共用メモリ、共用ディスクまたはその他の手段が含まれる。図示の例では、複数のサーバ110、111、112及び113が、公衆網101及び専用ネットワーク102の両方を通じて接続される。これらのサーバは専用ネットワーク102を利用し、通信オーバヘッドを低減する。こうしたオーバヘッドは、互いのハートビート(heartbeat)、メンバシップ及びnフェーズ・コミット・プロトコルに起因する。
【0012】
図示の例では、全てのサーバが、ユーザ・アプリケーション・データを記憶するために使用される共用ディスク記憶装置124、好適には高信頼性のRAID(Redundant Array of Independent Disks)装置に接続される。サーバが故障しても、共用ディスク区分及び論理ディスク・ボリュームが別のノードにフェールオーバされ、データが使用可能であり続ける点でデータは高可用性である。共用ディスク相互接続はSCSI(Small Computer System Interface)バス、ファイバ・チャネル、またはIBM SSA(Serial Storage Architecture)などである。或いは、各サーバ・マシンがローカル・データ記憶装置120、121、122及び123を有し得る。図1は1例に過ぎず、本発明のプロセスにおけるアーキテクチャ的な制限を意図するものではない。
【0013】
図2を参照すると、マイクロソフト・クラスタ・サービス(MSCS)を使用するクラスタ・コンピュータ・システム200が、NTサーバ・ベースのアプリケーションのために、高可用性を提供するために設計される。初期MSCSは2ノード202、204及び共用ディスク208のクラスタにおいて、フェールオーバ機能をサポートする。
【0014】
各MSCSクラスタは1つまたは2つのノードを含む。各ノードは、マイクロソフト・クラスタ・サービスのそれ自身のコピーを実行する。各ノードはまた、マイクロソフト・クラスタ・サービスと対話する1つ以上のリソース・モニタを有する。これらのモニタはマイクロソフト・クラスタ・サービスに、個々の資源の状態について"通知"する。必要に応じてリソース・モニタはリソースDLLを使用し、個々の資源を操作する。資源が故障すると、マイクロソフト・クラスタ・サービスは、資源再始動ポリシ、資源グループ・フェールオーバ・ポリシ及びクラスタ・ステータスに従い、故障した資源をローカル・ノード上で再始動するか、資源グループを他のノードに移動する。
【0015】
MSCSクラスタ内の2つのノードは、互いにハートビートする(206)。一方のノードが故障すると、すなわちハートビート信号を他のノードに送信できなくなると、全てのその資源グループが残りのノード上で再始動される。クラスタ・ノードがブートされるとき、事象プロセッサの制御の下で、クラスタ・サービスが自動的に開始される。事象プロセッサは、事象を他のコンポーネントにディスパッチするその正規の役割に加え、初期化を実行し、次にメンバシップ・マネージャとも呼ばれるノード・マネージャに、クラスタに加わるように、またはクラスタを生成するように告げる。
【0016】
ノード・マネージャの正規のジョブは、他のノード・マネージャとのハートビート交換を通じて、クラスタ・メンバシップの状態の一貫したビューを生成することである。ノード・マネージャは、クラスタ構成データベースの自身のコピー内に保持される情報から、それらが誰であるかを知る。このデータベースのコピーは、実際にはウィンドウズNTレジストリの一部であり、異なって更新される。ノード・マネージャは最初に、他のノードに連絡しようとし、それが成功すると、クラスタに加わろうとして、認証(パスワード、クラスタ名、自身の識別など)を提供する。既存のクラスタが存在し、何らかの理由で、新たなノードの加入の試みが拒絶される場合、そのノード及びそのノード上に配置されるクラスタ・サービスがシャットダウンされる。
【0017】
しかしながら、ノードの加入要求に誰も応答しない場合、ノード・マネージャは新たなクラスタを始動しようとする。そのために、ノード・マネージャは定数資源(quorum resource)と呼ばれる特殊な資源を使用し、これは構成データベース内の全ての資源のように指定される。あらゆるクラスタ内には、正に1つの定数が存在する。それは実際にはディスクであり、その場合、ディスクをミラー化するか、或いは故障許容にする以外に、冗長アダプタ接続によりマルチポート化することが非常に好ましい。なぜなら、そうでないとディスクはクラスタにとって単ポイント故障となるからである。定数資源として使用される装置は、次の3つの属性を有するどのようなものであってもよい。すなわち、データを(故障に渡り)永続的に記憶でき、他のクラスタ・ノードがそれに達することができ、他の全てのノードを除外して、あるノードにより捕らえられる。SCSI及び、SSA及びFC−ALなどの他のディスク・プロトコルは、正にこのオペレーションを可能にする。
【0018】
定数資源は実際上、クラスタの大域制御ロックである。定数資源を成功裡に捕らえたノードはクラスタを固有に定義する。他のノードはクラスタの一部になるために、そのノードと一緒にならなければならない。これは区分化されたクラスタの問題を阻む。内部クラスタ通信が故障し、クラスタを互いに通信できない2つの部分に分断する可能性がある。定数資源を制御するノードはクラスタであり、他のクラスタは存在しない。
【0019】
一旦ノードがクラスタに加入するか、クラスタを形成すると、ノードは次に、それが切り離されていた間のあらゆる変化を反映するように、その構成データベースを更新する。構成データベース・マネージャがこれを実行できる。なぜなら、勿論、そのデータベースの変化は全てのノードに渡り、一貫してトランザクションのセマンティックス(意味)に従わねばならいからであり、この場合、全ての変化のログが定数装置上に記憶される。定数装置のログを処理後、新たなノードが資源を獲得し始める。これらはディスク、IP名、ネットワーク名、アプリケーション、或いはオフラインまたはオンラインの何か他のものである。これらは全て、それらの実行に適したノード、それらが実行され得るノード(一部は適切なディスクまたはネットワークに接続できないかもしれない)、お互いの関係、及びそれらに関する別のあらゆることと一緒に構成データベース内にリストされる。資源は通常、資源グループに形成され、資源グループとして管理される。例えばIPアドレス、ファイル共有(ファイル・システムの共有可能単位)、及び論理ボリュームが、ネットワーク・ファイル・システムをクライアントに提供する資源グループの主要要素である。従属性が追跡され、いずれの資源も複数の資源グループの一部とはなり得ない。従って、2つのアプリケーションによる資源の共有は、これらの2つのアプリケーションが同一の資源グループ内にない限り、禁止される。
【0020】
新たなノードのフェールオーバ・マネージャは、新たなノードに移動(フェールオーバ)すべき資源を突き止めるために呼び出される。それは資源の好適なノードのような情報を使用し、他のノードのフェールオーバ・マネージャと折衝することによりこれを実行する。それらが共同決定に至ると、他のノードからこのノードに移動すべきあらゆる資源グループが、そのノード上でオフライン化され、それが終了すると、資源マネージャが新たなノード上でそれらをオンライン化する。
【0021】
データベース・ソフトウェアのあらゆる主要ベンダは、複数のNTサーバに渡り動作するそれらのデータベースのバージョンを有する。IBM DB2拡張企業版(Extended Enterprise Edition)は、32個のノード上で実行する。IBM PCカンパニは、オラクル(Oracle)並列サーバを実行する6ノードPCサーバ・システムを出荷した。これらの大規模なクラスタのための満足のいくシステム・クラスタ化ソフトウェアが存在しない。
【0022】
6ノード・オラクル並列サーバ・システムでは、これらの6ノードが共通のディスク記憶装置を共有する。オラクルはそれ自身のクラスタ化フィーチャを使用し、資源を管理し、ロード平衡化及び故障回復を実行する。それらのクラスタ上で自身のアプリケーション・ソフトウェアを実行する顧客は、彼らのアプリケーションを高可用性にするために、システム・クラスタ化フィーチャを必要とする。
【0023】
図3を参照すると、DB2は一般に非共用アーキテクチャ210を使用し、各ノード212はそれ自身のデータ記憶装置214を有する。データベースは区分化され、データベース要求は並列処理のために全てのノードに分散される。高可用性を実現するために、DB2はシステム・クラスタ化からフェールオーバ機能を使用する。MSCSは2つのノードだけしかサポートしないので、DB2は図示のように、各ノード212にスタンバイ・ノード216を割当てなければならないか、図4に示されるように、各MSCSノード対間で相互フェールオーバを可能にする。換言すると、2つのノード212、212aが2つのデータ記憶装置214、214aに相互に接続される。前者はシステムのコストを2倍にし、後者はノード故障の場合に性能劣化を被る。データベース・アクセスは全てのノードに分散され、並列に処理されるので、DB2インスタンス及びフェールオーバ化インスタンスの両方を実行するノードは性能障害となる。換言すると、ノード212aが故障すると、ノード212がその責任を引き受け、両方のデータ記憶装置上のデータをアクセスするが、そのタスクを並列に実行する。
【0024】
【発明が解決しようとする課題】
従って、クラスタ・コンピュータ・システムを管理する改善された方法及びシステムを有することが有利である。こうした改善は、多くのノードのグループから選択された、あるノードから別のノードへのフェールオーバをサポートすべきである。
【0025】
【課題を解決するための手段】
本発明は、クラスタ化コンピュータ・システムを管理する方法及び装置を提供するもので、"クラスタ"とも呼ばれる多数のクラスタ・コンピュータ・システムを管理する機構を提供することにより、クラスタ化を非常に大規模なクラスタに拡張する。特に、本発明は、多数のクラスタ・コンピュータ・システム内のあるクラスタ・コンピュータ・システムの再始動の開始を検出する。クラスタ・コンピュータ・システムの再始動の開始は、クラスタ・コンピュータ・システムを選択状態において再始動させる。更に、このクラスタ・コンピュータ・システムは1つ以上の資源を含む。再始動されるクラスタ・コンピュータ・システム内の1つ以上の資源が、現在クラスタ・コンピュータ・システム内の別のクラスタ・コンピュータ・システムにおいて動作中であるとの決定に応じて、これらの資源の再始動が阻止される。
【0026】
【発明の実施の形態】
本発明は大規模クラスタを管理するためのマイクロソフト・クラスタ・マネージャ機能を拡張するが、その他の点では使い易さの特性を保存する。本願では、"マルチクラスタ"は、2つ以上のクラスタ・コンピュータ・システムのクラスタを指す。
【0027】
更に、本クラスタ・システムは、2つ以上のノードの大規模クラスタ内の任意の2つのノード間の資源グループ・フェールオーバをサポートする。本システムはまた、故障事象に際してクラスタ全体に渡り、アプリケーション状態情報を保存する。また、本システムは現在使用可能なクラスタ・コンピュータ・システム製品の変更実装を要求しない。例えば、MSCSに関しては、本発明の機構は本システムの環境で実行するために、マイクロソフト及びアプリケーション・ベンダに、彼らの現クラスタリング・コードの変更を要求しない。代わりに、本システムは、MSCSクラスタAPI DLLとバイナリ互換のMSCSクラスタAPI DLLの実行を提供する。
【0028】
マルチクラスタは通常、2対以上のクラスタを含む。本発明は、複数のMSCSクラスタを内部に有するクラスタを構成できる、クラスタ・マネージャを提供する。マルチクラスタ内の資源は、クラスタ・サービスの監視下で、各個々のクラスタにより管理される。マイクロソフト資源API及びマイクロソフト・クラスタ・アドミニストレータ拡張APIを変更する必要はない。クラスタ・マネージャは、MSCSの変更無しに、MSCSのために開発される任意のクラスタ・アドミニストレータ拡張DLLを使用できる。
【0029】
アプリケーションは、それらがMSCSのために拡張されるか否かに関わらず、本発明のシステム・クラスタ化フィーチャを容易に利用できる。1対のノード間の相互フェールオーバの代わりに、本発明は大規模クラスタ内の任意の2つのノード間のアプリケーション・フェールオーバを可能にする。本発明は、クラスタが1対のノードまたは1つのノードを有するMSCSクラスタを追加することにより、そのサイズを成長させることを可能にする。本発明が3ノード・クラスタをサポートできる事実は、2ノード・クラスタ上の任務に厳格なアプリケーションの可用性を更に改善したい多くの顧客にとって、非常に魅力的である。
【0030】
MSCSを使用するDB2拡張企業版などのアプリケーションは、マルチクラスタ・システムのクラスタ化フィーチャを容易に利用できる。DB2/EEEは、図4に関連して前述したように、ノードを対に分割することにより、MSCSフィーチャを利用し、各ノード対の間の相互フェールオーバを可能にする。本発明はNウェイ・フェールオーバをサポートすることにより、DB2可用性を改善するか、1つのスタンバイ・ノードを有するN+1モデルをサポートすることによりDB2性能特性を改善する。単ノード故障のほとんどの一般的事象では、故障ノード上のDB2/EEEインスタンスがスタンバイ・ノード上で再始動され、N+1モードにおいて同一の性能を維持する。システム管理ポリシ及び回復サービスが高級言語により表現され、アプリケーション・ベンダからの特殊な要求に合うように容易に変更され得る。例えば、このことはDB2/EEEがMSCSクラスタとよりも、マルチクラスタと一緒に統合されることを可能にする。
【0031】
本発明は任意のクラスタ・サービス・プログラム上で使用され得ることが理解されなければならない。図示の例は、マルチクラスタ内のMSCSクラスタを示すが、本発明のプロセス、機構及び命令は、全てのタイプのクラスタの管理に適用され得る。本発明はその特定の製品上での使用に制限されるものではない。例えば、本発明は異種のマルチクラスタにも適用され得る。
【0032】
図5を参照すると、本発明が実装され得る分散データ処理システムの絵図が示される。図5、図7及び図8に示されるソフトウェア300は、図6に示されるハードウェア上で実装され得る。ここで示されるマルチクラスタ・ソフトウェアのプロセスは、より大きなサイズに容易に拡大され得る。例えば、図6は8ノード構成を示し、各ノード350はディスク制御装置360により、記憶要素340に接続される。図5のクラスタ・サービス304は、この8ノード・クラスタ内の任意の2つのノード間のフェールオーバを可能にする。用語"クラスタ・サービス"は、ここでは本発明により提供されるサービスを指すために使用される。クラスタ・サービス304などのクラスタ・サービスは、MSCSクラスタなどのクラスタを制御するために使用される。これは前述のオラクル・クラスタまたはDB2クラスタの両方において使用され得る。7つのノードのいずれかが故障した場合、DB2インスタンスが8ノード上で再始動され、システムの性能が変更無く維持される。これはN+1フェールオーバ・モデルと呼ばれる。他の構成もサポートされる。例えば、各ノードが活動DB2インスタンスを実行し、他の7つのノードのバックアップ用であることにより、信頼性を最大化する。MSCSは図示の例では、単ノードの資源管理を実行するために使用される。マイクロソフトは、ウィンドウズNT内のその資源管理APIを外部のベンダと共用しないので、他のベンダが資源管理を実行するための容易な方法が存在しない。一部のベンダは彼ら自身のデバイス・ドライバ及びTCP/IPプロトコル・スタックを実装した。その結果、MSCSクラスタAPI及び資源APIとの非互換性が生じる。本発明はMSCSを使用し、単ノード上で資源を管理するものであり、従って内部NT APIを知る必要がない。再度、マイクロソフト・クラスタ製品を参照すると、本発明は決してその製品上での使用に制限されるものではなく、任意のクラスタ・サービス・プログラム上で使用され得るものである。
【0033】
図5を参照すると、クラスタ・サービス304はMSCS306を制御し、資源及び資源グループをノード350上でオンラインまたはオフライン化する。クラスタ・サービス304は、異なるノード350及び350a上に配置されるそれぞれMSCS306及び306aを制御するように示される。クラスタ・サービス304はMSCS306に、アプリケーション370を含む資源グループをオフライン化するように指示し、次にMSCS306aにその資源グループをオンライン化するように指示する。クラスタ・サービス304はクラスタ・ノード・メンバシップ、ハートビート、ノード間通信を管理し、また全ての8ノードに対して、クラスタ構成データベースの一貫性を維持する責任がある。クラスタ・サービスはまた、事象通知及び処理の責任がある。クラスタ・マネージャ302はグラフィカル・ユーザ・インタフェース(GUI)を提供する。
【0034】
クラスタ・サービス304はこの例では、本来MSCSとバイナリ互換である。マルチクラスタ内で任意のアプリケーションを実行するために、そのアプリケーションがMSCSクラスタ内で実行可能であれば、変更は要求されない。クラスタ・サービスが全てのMSCSクラスタAPI、資源API、及びアドミニストレータ拡張APIをサポートする。
【0035】
図7及び図8を参照すると、マルチクラスタ内において、各ノードがクラスタ・サービスのコピーを実行する。ノード350がブートされるとき、クラスタ・サービス304が自動的に開始される。次に、MSCSクラスタ・サービス306が、クラスタ・サービス304により開始される。この文献では、マルチクラスタ内のこれらのMSCSクラスタをMSCSサブクラスタと呼ぶ。マルチクラスタ構成データベース内の構成情報は、各MSCSサブクラスタ内の情報のスーパセットである。全ての資源及び資源グループが、マルチクラスタ構成データベース内、及び適切なMSCSサブクラスタ内で定義される。MSCSサブクラスタ・サービスが開始されるとき、デフォルト指定のクラスタ・グループを除く全ての資源及び資源グループがオフライン状態にされる。新たなノード上のクラスタ・サービス304が、CSQLサービス・グループ315を通じて他の全てのノード上のクラスタ・サービス・インスタンスと共同して、そのノード上で開始されるべき資源グループを決定する。クラスタ・サービス304は次に、MSCSクラスタ・サービスAPIを呼び出し、それらの資源グループをオンライン状態にする。
【0036】
各MSCSサブクラスタは、1対のノードまたは単ノードを含む。単ノードMSCSサブクラスタの場合、MSCS定数資源はローカル定数資源として構成され、これは定数資源がそのノードのローカル・ディスクであることを意味する。これは1MSCSサブクラスタ当たりの共用ディスクを節約すると思われるので、好適な構成である。
【0037】
例えばMSCSなどの一部のクラスタ・サーバは、クラスタが最後に終了された時点の資源及び資源グループの状態を記憶する点で、固有のフィーチャを有する。ノードが再始動されるとき、MSCSクラスタ・サービスはそれらの資源及び資源グループを以前の状態にする。資源及び資源グループをオンラインまたはオフライン状態にするかの決定は、マルチクラスタ・サービスにより行われる。MSCSサブクラスタ(またはそのMSCSサブクラスタを実行するノード)が故障した場合、クラスタ・サービスが、そのノード上で実行されていたそれらの資源及び資源グループをいずれか他のMSCSサブクラスタ上で再始動する。故障ノード及び対応するMSCSサブクラスタが再始動され、マルチクラスタに再加入するとき、新たなノード及び新たなMSCSサブクラスタがそれらの資源及び資源グループをオンライン状態にしようとすると資源競合が発生する。この問題を解決するために、クラスタ・サービスは"隠れ"資源をあらゆる資源グループ内に追加し、この隠れ資源を、その資源グループ内の他の全ての資源の従属資源にする。隠れ資源は、マルチクラスタ構成データベース内のその資源グループの状態をチェックし、資源グループが既に別のMSCSサブクラスタ上で実行されている場合、始動を控える。
【0038】
クラスタ・サービスは、高可用性システムにおいて現在使用可能なクラスタ・サービスのクラスタ化フィーチャを、3ノード以上に拡張し、現在使用可能なクラスタ・サービスとのバイナリ互換性を保存する。図7及び図8を参照すると、本システムのクラスタ化ソフトウェア300は、2つの主要部分、すなわちクラスタ・マネージャ302及びクラスタ・サービス304から成る。クラスタ・マネージャ302は、クラスタ306のグループ内の全ての資源を管理し、単一クラスタのイメージをそのユーザに提供するように設計される。クラスタ・マネージャ302は、情報技術(IT)管理者が慣れている容易に使用可能なインタフェースを提供する。クラスタ・マネージャ302は、管理者がクラスタ内の高可用資源の大規模で複雑な集合を、効率的且つ効果的に管理することを可能にする。
【0039】
クラスタ・サービス304は、クラスタ内の各コンピュータ350上で実行されるミドルウェア層であり、図示の例では、常駐マイクロソフト・ウィンドウズNTサーバまたは他の好適なサーバ上で実行される、実行可能コード及びライブラリのセットを含む。クラスタ・サービス304は相互作用するサブシステムの集合を含む。これらのサブシステムはトポロジ・サービス308、グループ・サービス310、クラスタ・コーディネータ(図示せず)、CSQLサービス314、事象アダプタ310、回復サービス316、及びクラスタAPI318である。
【0040】
クラスタ・コーディネータは、クラスタ・サービス304の始動、停止及び再始動のための機構を提供する。クラスタ内の各コンピュータ上にクラスタ・コーディネータが存在するが、それらは互いに通信することはなく、それぞれの範囲はそれが実行されるコンピュータに制限される。クラスタ・コーディネータは最初に始動される必要があるコンポーネントである。クラスタ・コーディネータは次に、他のサービスを次の順序で開始する。すなわち、スタンドアロン・モードにおけるCSQLサービス314、トポロジ・サービス308、グループ・サービス308、クラスタ・モードにおけるCSQLサービス314、回復サービス316、マイクロソフト・クラスタ・サービス(MSCS)事象アダプタ、MSCS、及びグループ・サービス事象アダプタ(GSEA)の順である。更に、クラスタ・コーディネータは、他の各々のサービスをモニタし、故障の場合、他の全てのサービス及びユーザ・アプリケーションを終了し、マルチクラスタ・クラスタ・サービスを再始動する。
【0041】
トポロジ・サービス308は、活動状態であり適切に実行されているノードを判断するために使用される、ハートビートと呼ばれる特殊メッセージを送信する。各ノードはその隣接ノードのハートビートをチェックする。クラスタの構成及び代替経路の知識から、トポロジ・サービス308は、ハートビートの喪失がアダプタ故障またはノード故障を表すか否かを判断できる。マルチクラスタ全体に渡るトポロジ・サービス・ハートビートを支持することにより、MSCSのノード間ハートビートは無視される。トポロジ・サービスは、どのノードが他のどのノードから到達可能かに関する情報を保持し、この情報が確実なメッセージング機能を生成するために使用される。
【0042】
グループ・サービス310は、クラスタ内の同一のまたは異なるマシン上のプロセスを含むプロセス・グループの形成を可能にする。プロセスはプロバイダまたはサブスクライバとして、グループに加入できる。プロバイダは、後述するように、グループにおけるプロトコル・アクションに参加し、サブスクライバは、グループの状態またはメンバシップ(プロバイダのリスト)の変更を知らされる。グループ・サービス310は、プロセス・グループに対するプロセスの加入及び脱退の通知をサポートする。グループ・サービス310はまた、クラスタ内の全てのノードのステータスを獲得するために加入できるホスト・グループをサポートする。このステータスは、トポロジ・サービスにより保持されるノード・ステータス情報に一致するビューである。
【0043】
マルチクラスタ内の全てのMSCSサブクラスタは、好適には単ノード・クラスタとして構成される。グループ・サービスは、ノード・アップ及びノード・ダウン事象をモニタするために使用される。
【0044】
グループ・サービスはまた、次の機構、すなわちクラスタを認識するアプリケーションが故障状況及び再統合状況を取り扱う機構を提供する。これらの機構は確実なメッセージング機構、すなわちプロセス加入、(自発的及び非自発的な)プロセス脱退、プロセス追放、グループ状態変化、及びプロバイダ同報メッセージのための、アトミック同報及びnフレーズ・コミット・プロトコルの上に生成される。
【0045】
グループ・サービス310は、次のようにクラスタの区分化を処理する。すなわち、グループ・サービス310は、区分化されたクラスタが一緒に到来したことを認識すると、より少ない数のクラスタ・マシンを有する区分の一部である全てのグループに分解通知を生成する。両方の区分が等しい数のクラスタ・マシンを有する場合、それらの1つが分解されるように選択される。
【0046】
CSQLサービス314は、構成及びステータス情報を含むデータベースのためのサポートを提供する。これはスタンドアロン・モード及びクラスタ・モードの両方において機能できる。各データベースは持続分散資源であり、これはグループ・サービス310の使用を通じて、コヒーレントであり高可用性であることを保証される。各データベースは全てのノードに渡り複製され、ディスクにチェックポイントされるので変化がマルチクラスタ・クラスタ・サービスのリブートに渡って獲得される。CSQLサービス314は、各ノードがデータの同一のコピーを有することを保証する。CSQLサービスはまた、リブートに渡って持続しないが、全てのノード上で一貫するデータの一時タイプをサポートする。クラスタ・サービス304の再始動後、一時データはそれらのスタートアップ値に初期化される。CSQLサービス314は、データベースに対して成された変化の通知をサポートする。各データベースは3つ組により、すなわちデータベースが最後に変更された時を示すタイムスタンプ、変更を提案したノードのID、及びCRCチェックサムによりマークされる。タイムスタンプは、クラスタ全体に渡り単調に増加する論理時刻である。CSQLサービス314は、データベース競合解消プロトコル(DCRP)を実行し、クラスタ再始動に際して、最も最新のレプリカを決定する。ノードはクラスタに再加入するとき、各置換データベースの既存のバージョンのバックアップを形成後、そのレプリカをクラスタのバージョンにより置換する。クラスタ構成データベースの変更は、CSQLがスタンドアロン・モードからクラスタ・モードに遷移した後だけ許可される。クラスタ・モードに入る条件については、以下で詳述する。CSQLサービスは、ローカル及び遠隔クライアント接続の両方をサポートする。
【0047】
事象アダプタ312はサブシステムの状態をモニタし、故障状態が発生したとき、事象を生成する。事象は、クラスタ範囲CSQL構成データベース内に事象テーブルとして実装される分散事象キュー内に挿入される。クラスタ内には4つの事象アダプタ、すなわちMSCSサブシステムをモニタするMSCS事象アダプタ、ノード及びネットワーク・インタフェース故障をモニタするグループ・サービス事象アダプタ、ユーザ要求をマルチクラスタ事象に変換するクラスタAPI事象アダプタ、及びネットワーク区分をモニタする区分阻止事象アダプタが存在する。
【0048】
グループ・サービス事象アダプタ(GSEA)310は分散サブシステムである。各GSEAはGSEAグループ・サービス・グループ311にプロバイダとして加入する。GSEAはグループ・サービスから脱退(LEAVE)及び故障脱退(FAILURE LEAVE)通知を受信し、それらをマルチクラスタ事象に変換する。GSEAが自発的にまたは故障によりグループから脱退するとき、GSEAはグループとして、正に1つの事象を事象キューに挿入する。
【0049】
マイクロソフト・クラスタ・サービス事象アダプタ(MSCSEA)312は、MSCS通知を現クラスタ・マネージャにより認識可能な事象に変換する。各ノード上で実行されるMSCSEAの1つのインスタンスが存在する。各MSCSEAは、ローカル・ノード上でのみ実行されるMSCS資源グループ及びMSCS資源をモニタするために使用される。マルチクラスタ内のMSCSサブクラスタが単ノード・クラスタとして構成される場合、MSCSハートビート機構は実際上無効にされる。ネットワーク・インタフェース故障及びノード故障は、トポロジ及びグループ・サービス・サブシステム308により検出される。
【0050】
回復サービス316は、規則ベースのオブジェクト指向、且つトランザクション事象処理サブシステムである。事象処理は、新たな事象がクラスタ範囲CSQLデータベース内のクラスタ全体事象テーブル内に挿入されるとき、トリガされる。回復サービスはCSQL機能を拡張し、活動的なオブジェクト指向SQL文処理能力をCSQLサブシステムに追加する。メソッドは活動SQL言語により表現される。特に、次のSQL式活動SQL文、すなわちCREATE TRIGGER、EVALUATE、EXECUTE、CONTINUE、CREATE MACRO及びLOAD DLLが導入される。CREATE TRIGGER文は、指定テーブル上のトリガをCSQLに登録する。新たな行(事象)が指定テーブル内に挿入されるとき、CSQLは対応する事象処理規則を呼び出す。規則はSQL及び前述の活動SQL文により表現される。EVALUATE文はSELECT文に非常に類似する。データのセットを選択する代わりに、EVALUATE文は規則のセットを選択し、それらの規則を評価する。同一のEVALUATE文により選択され、処理されるSQL及び活動SQL文は、同一のトランザクションの一部である。EXECUTE文は、ユーザ定義ファンクション、外部プログラム、コマンド・ファイルまたはシェル・スクリプト・ファイルのいずれかを呼び出すことにより、物理システム状態を変更する。CONTINUE文は分散CSQLサーバの間で、事象処理を同期させる。特に、CONTINUE文はCONTINUE文のポイントまで、CSQLデータベースを同期させる。事象処理がトリガされる度に、複数のCONTINUE文が存在し得る。CREATE MACRO文は、任意のSQL文内で呼び出され得る指定マクロを定義する。マクロはSQL文内で使用され得るデータ値を返却する。LOAD DLLは、指定された動的リンク・ライブラリ(DLL)をSCQLに動的にロードする。DLL初期化コードの間、これはDLL内のそれらのユーザ定義ファンクションをCSQLに登録する。ユーザ定義ファンクションはEXECUTE文内で呼び出されるか、他のSQL文内に埋め込まれる。ユーザ定義ファンクションは、一般に使用される機能を提供することにより、またはCSQLサーバの外部の物理エンティティ上でアクションを開始することにより、SQL言語を拡張する。例えば、ユーザ定義ファンクションは、MSCS資源管理機能を制御するために使用される。
【0051】
マルチクラスタにおけるクラスタ・サービスの1実施例が示されるが、他の機構もクラスタ・サービスを提供するために使用され得る。例えば、CSQLプログラミング・インタフェースはSQL文を受け取る。他のタイプのプログラミング・インタフェースまたはデータ記憶装置、或いはデータ登録機構も使用され得る。こうした実施例では、機構がマルチクラスタ内のクラスタに渡り、データの一貫性を提供し、リブートの間に様々なノードに対してデータの一貫性を提供し、またクラスタに入る新たなノードに対してデータの同期を提供する。更に、図示の例で述べられる回復サービスはCSQLの拡張であるが、こうした拡張は本発明の好適な実施例に従えば、必要でない。
【0052】
マルチクラスタAPI318は、特定のMSCSクラスタへのアクセスではなしに、全体として、マルチクラスタへのアクセスを提供する。これは大規模ではあるが、その他の点では、マイクロソフト・クラスタAPIの機能と機能的に同一のクラスタを扱うことができる。マルチクラスタAPI318は、クラスタ・マネージャ302の他に、クラスタを認識する他のアプリケーションにより使用されるように意図される。マルチクラスタAPI内のファンクションと、マイクロソフト・クラスタAPIのファンクションとの間には、1対1の対応が存在する。2つのクラスタAPI間の類似性は、アプリケーション・ベンダがマルチクラスタ化フィーチャを利用することを支援し、将来的に2ノード・マイクロソフト・クラスタよりも大規模なものに移行することを可能にすることである。マルチクラスタAPI DLLは、MSCSクラスタAPI DLLすなわちclusapi.dllとバイナリ互換である。クラスタAPIファンクションの照会タイプは、直接マルチクラスタAPI DLLにより扱われる。状態変化を生じるクラスタAPIファンクションは、回復サービスにより扱われる事象に変換される。マルチクラスタAPI DLLはCSQL通知を使用し、事象処理の結果を待機した。マルチクラスタAPI DLLは、周知の仮想IPアドレスを介して、CSQLサービスと通信する。要するに、クラスタ・サービス304は、アプリケーション・プログラムによりNTクラスタ・レジストリに記憶される状態情報が、アプリケーションがクラスタ内の別のノードにフェールオーバするとき、使用可能となるように保証する。クラスタ・サービス304は、システム構成を調査し、システムが導入及びシステム・クラスタ化フィーチャのために、適切に構成されたことを確認するユーティリティを提供する。クラスタは最初に始動されるとき、それに従い構成される。クラスタ・サービス304に伴い、クラスタ・マネージャ302がクラスタ及びそこに含まれるMSCSクラスタを構成、管理及びモニタする。複数のMSCSサブクラスタ及びマルチクラスタ・クラスタ・サービスの導入プロセスを簡略化するための、他のユーティリティも開発され得る。
【0053】
クラスタ・サービス・サブシステムは、クラスタ・コーディネータ・サブシステムにより開始される。クラスタ・コーディネータは、NTサービスとして実装され、スタートアップ時に自動的に開始される。クラスタ・コーディネータは次に、他の全てのクラスタ・サービス・サブシステムを次の順序で開始する。すなわち、スタンドアロン・モードにおけるCSQLサービス、トポロジ・サービス、グループ・サービス、クラスタ・モードにおけるCSQLサービス、回復サービス、MSCS事象アダプタ、MSCS、及びグループ・サービス事象アダプタの順である。
【0054】
CSQLサービスは当初、スタンドアロン・モードで開始される。トポロジ・サービス及びグループ・サービスは、それらの構成情報をCSQLデータベースから検索する。グループ・サービスが発生後、CSQLサービスがCSQLサービス・グループ315を形成し、データベース競合解消プロトコル(DCRP)を実行し、クラスタ構成データベースの内容を同期させる。第1のCSQLサーバがグループを形成し、CSQLサービス・グループをビディング(BIDDING)状態にセットし、他のCSQLサーバがグループに加入するのを待機するためのタイマを始動する。ビディング状態のグループに加入するCSQLサーバもまた、他が加入するのを待機するためのタイマを始動する。タイマ値はクラスタ構成データベース内で定義され、ノード間で異なり得る。タイマ値の不一致は、当初異なるノードにより使用される異なるバージョンのクラスタ構成データベースに起因する。第1のタイマが満了すると、CSQLサーバがグループ・サービスnフェーズ・プロトコルを用いて、そのクラスタ構成データベースのタイムスタンプをグループに同報する。他のCSQLサーバは、それらのタイムスタンプが受信されたタイムスタンプよりも最近のものである場合、それらのタイムスタンプを同報する。複数のCSQLサーバがそれらのタイムスタンプを送出するとき、グループ・サービスにより1つが任意に選択され、次のフェーズでグループに同報される。CSQLサーバは、自身のタイムスタンプが受信タイムスタンプよりも好適である場合に限り、自身のタイム・スタンプを送出する。CSQLサーバは第1のフェーズにおいてだけ、たとえ自身のタイプスタンプが受信タイムスタンプよりも古くても、自身のタイムスタンプを送出し、他のCSQLサーバに自身が異なるバージョンを有することを知らせるべきである。最終的に、プロトコルは終了する。全てのCSQLサーバが同一のタイムスタンプを有するか、それらが全て最も最新のバージョンに同意する。全てのタイムスタンプが同一でない場合、最後にタイムスタンプを送出するCSQLサーバが、そのデータベースを他の全てのCSQLサーバに同報する。CSQLサーバは、最新のバージョンにより置換されるデータベースのバックアップ・コピーを形成すべきである。CSQLサーバはクラスタ構成データベースを同期させた後、CSQLサービス・グループの状態を実行(RUNNING)状態にセットする。レプリカが新たなバージョンにより置換されたCSQLサーバは、クラスタ・サービスの再始動を開始する。実行中のCSQLサービス・グループに加入するCSQLサーバは、そのレプリカを保管し、それをそのタイムスタンプ値に関係なしに、クラスタ・バージョンにより置換しなければならない。新たなバージョンが、現在他のサブシステムにより使用されている既存のタイムスタンプと異なるタイムスタンプを有する場合、CSQLサーバはクラスタ・サービスの再始動を開始する。
【0055】
CSQLタイムスタンプは3つ組、すなわちクラスタ全体に渡り単調増加する数、データベースを最後に変更したノードのノードID、及びCRCチェックサムである。
【0056】
一旦CSQLサービスが実行状態になると、事象キューを含むクラスタ構成データベースが、全てのノード上で一貫性を示す。CSQLサーバは、成功裡に実行中CSQLサービス・グループに加入するとき、クラスタ・モードにあると言われる。次に、回復サービス、MSCS、MSCS事象アダプタ(MSCSEA)、及びグループ・サービス事象アダプタ(GSEA)が開始される。グループ・サービス加入プロトコルの処理において、GSEAはGSEAグループ・サービス・グループに加入し、このノードに対するコンピュータ・アップ指示(BRING_COMPUTER_UP)事象を、クラスタ全体事象キューに追加する。マルチクラスタ資源グループが最初にオフライン状態となる。コンピュータ・アップ指示事象の処理の間、回復サービスが、任意の資源グループがオンライン状態にされるべきか否かを判断する。
【0057】
データベース競合解消プロトコル(DCRP)アルゴリズムは次のように要約される。すなわち、1)CSQLサーバが、データベースの名前及びタイムスタンプを含むデータベース・オープン要求を、CSQLサービス・グループに同報し、2)異なるタイムスタンプを有する各CSQLサーバは継続(CONTINUE)を採決し、そのタイムスタンプを第1フェーズにおいて同報し、データベース複製を強制しなければならず、3)自身の同報を受信するCSQLサーバは、第1フェーズにおいて承認(APPROVE)を採決しなければならず、4)受信タイムスタンプと同一のタイムスタンプを有するCSQLサーバは、承認を採決しなければならず、5)続く各フェーズにおいて、受信タイムスタンプよりも最近のタイムスタンプを有するCSQLサーバは、そのタイムスタンプを同報し、継続を採決しなければならず、6)自身のタイムスタンプを受信するCSQLサーバは、継続を採決しなければならず、7)同一のまたはより早期のタイムスタンプを有するCSQLサーバは、承認を採決しなければならず、8)フェーズ内にメッセージが送信されなかった場合、タイムスタンプを最後に送信したサーバが、そのデータベース・バージョンを他のサーバに複製しなければならない。サーバは常にそのレプリカを置換する前に、そのバックアップ・コピーを形成する。
【0058】
図7及び図8を参照すると、マルチクラスタ・システムのスタートアップ・シーケンスが示される。最初に、クラスタ・コーディネータがNTスタートアップの間に、NTサービスとして開始される。クラスタ・コーディネータは開始し、他のマルチクラスタ・サブシステムをモニタする。次に、CSQLサービス314がスタンドアロン・モードで開始される。次に、トポロジ・サービス308が開始される。次に、グループ・サービス310が開始される。次に、CSQLサービスがCSQLサービス・グループ315を形成または加入する。CSQLサービスはデータベース競合解消プロトコルを実行し、クラスタ・モードに入る。次に、全てのクラスタ範囲データベースが最新となる。特に、事象キューが最新となる。回復サービス316が開始され、回復サービス・デーモンが、MSCS事象アダプタ312及びグループ・サービス事象アダプタ310の両方をこの順序で開始する。グループ・サービス事象アダプタ(GSEA)310が開始される。GSEAはGSEAグループを形成または加入し、それがノード故障事象をモニタする。次に、回復サービス・デーモンが、ローカル・ノードのためにコンピュータ・アップ指示事象を挿入する。回復サービスはこのノードのために、コンピュータ・アップ指示事象を処理する。MSCSサブシステム306が開始され、次にMSCS事象アダプタ312によりモニタされる。資源割当てポリシ及びシステム・ステータスに応じて資源グループが開始されるか、この新たなノードに移動される。
【0059】
本発明の別の主要フィーチャは、クラスタ定数条件を含む。どの資源グループも次の定数条件の1つが満足されない限り、オンライン状態にされない。クラスタ・サービスは、HACMPで使用されるのと同一の過半数定数技法を採用する。クラスタ・サービスは、グループ・サービスにより提供される接続情報を用い、過半数定数条件を決定する。更に、ノードが接続情報を共用ディスク・パスまたは他のメソッドを介して受け渡し、スプリット・ブレイン問題を回避する。ネットワークがサービスされ、クラスタが複数の区分に分割されるとき、クラスタ・サービスは複数区分内で同時に、1つの資源グループを開始しないように保証しなければならない。これは共用ディスク上のアプリケーション・データに腐敗を生じ得る。ディスク・パス上で渡される接続情報は、各区分が他の区分のサイズに関して学習することを支援し、従ってデータ腐敗を阻止する。資源グループは、次の条件が満足される場合、オンライ状態にされるべきである。すなわち、1)区分が過半数定数を有する場合、すなわちクラスタ構成データベース内で定義される全てのノードの半分以上がクラスタに加入し、その区分内に存在する場合、2)区分がクラスタ構成データベース内で定義されるノードの正に半分を有し、同一サイズの他の区分が存在しない場合、或いは3)区分がクラスタ構成データベース内で定義されるノードの正に半分を有し、別の区分がノードの他の半分を含み、最小のノードIDが前者の区分内に存在する場合である。
【0060】
全てのクラスタ・サービス・サブシステムを始動後、クラスタ・コーディネータが各サブシステムのステータスをもニタする。任意のサブシステムが異常終了すると、クラスタ・コーディネータはノードをシャットダウンし、他のサブシステム同様、それ自身を再始動する。任意のサブシステムの故障に際して、ノードをシャットダウンすることは、クラスタ・サービスの故障に際して、ユーザ・アプリケーションが実行を継続しないように保証する。
【0061】
区分が回復するとき、グループ・サービスは、1つの区分を除き、全ての区分内のグループを解消する。それらの区分内のグループ・サービス・デーモンが終了される。結果的に、それらのノードがクラスタ・コーディネータによりシャットダウンされ、再始動される。回復サービスのシャットダウン・プロシージャは、全ての資源グループがオフラインであることを確認しなければならない。
【0062】
図8を参照すると、本発明のコンポーネント・サポートが示される。クラスタ・サービス304はMSCS306を使用し、ノード内のクラスタ資源を管理する。最初に、資源グループがクラスタ構成データベース内で定義され、必要に応じてMSCSサブクラスタ内で定義される。資源管理ポリシは、MSCS資源管理振舞いをまねるように設計される。資源グループがMSCSサブクラスタ内で定義されるとき、再始動フラグが常にディセーブルされ、再始動がMSCSによってではなしに、事象処理サブシステムにより決定される。MSCSサブクラスタ内で定義される資源グループは、それが単ノード・クラスタか否かに関わらず、好適なノード・リスト内に高々1つのノードを有する。従って、MSCS自動フェールオーバ機構がディセーブルされる。クラスタ・サービスは、オンラインのあらゆる資源グループのステータスをモニタする。資源または資源グループ故障が発生すると、MSCS事象アダプタ312が対応する事象を事象キュー内に挿入する。CSQLサービス314は、その事象のために事象処理をトリガする。1つだけのCSQLインスタンスが事象処理を開始する。各CSQLインスタンスが、ローカル・ノード上だけの単ノードMSCSサブクラスタを含む資源を管理する。事象処理は複数の故障を扱えるように設計される。
【0063】
図9乃至図11、図12及び図13を参照すると、本発明の別の態様は事象処理を含む。図12に関し、テーブル500は、2つのchルーチン、すなわちコンピュータ・アップ指示及びノード・アップを示す、2つのエンティティ502及び504を示す。エントリ502では、セクション506内のアクションが、図9のステップ404に対応する。エントリ504では、セクション508、510及び512が、それぞれステップ408、410及び414に対応するアクションを含む。クラスタ・サービス内で定義される事象は、コンピュータ・アップ指示(BRING_COMPUTER_UP)、コンピュータ・ダウン指示(BRING_COMPUTER_DOWN)、資源グループ・オンライン指示(BRING_RESOURCE_GROUP_ONLINE)、資源グループ・オフライン指示(BRING_RESOURCE_GROUP_OFFLINE)、及び資源グループ移動(MOVE_RESOURCE_GROUP)などを含む。コンピュータがクラスタに加入するとき、"コンピュータ・アップ指示"事象が事象キュー内に挿入される。コンピュータ・アップ指示事象を処理するために、クラスタ・サービスが次のことを実行する。すなわち、1)定数が存在するか否かをチェックし、2)存在する場合、任意の資源グループが新たなコンピュータ上に持ち込まれるべきか否かをチェックする。一部の資源グループはある他のコンピュータ上でオンラインかも知れない。それらの資源グループは、最初にオフライン状態にされるべきである。次に、クラスタ・サービスが、オフライン状態のそれらの資源グループを、新たなコンピュータ上でオンライン化すべきである。
【0064】
全ての構成情報、ステータス情報、資源管理ポリシ、及び規則が、クラスタ範囲データベースすなわちescluster.cfgに記憶される。コンピュータ"hilltop"がクラスタに加入するとしよう。hilltopに対するコンピュータ・ダウン指示事象が、事象キュー内に挿入され、これがCSQLをトリガして事象処理を実行し、事象に関する情報をカプセル化する実行時環境が生成され、CSQLが次の文、すなわちEVALUATE action from ch_routine where ch_routine="BRING_COMPUTER_UP"を処理する。
【0065】
前記文は、escluster.cfgデータベース内のch_routineテーブルのBRING_COMPUTER_UP行内の文が処理されるべきことを指定する。BRING_COMPUTER_UPと呼ばれるch_routine内で取られるアクションが、テーブル500のエントリ502に示される。
【0066】
ch_resource_groupテーブル600が図13で定義される。このテーブルはテーブルの1行を示す。各エントリは1カラムである。$_failback_node()は、指定された資源グループが指定フェールバック・ポリシにもとづき実行されているべきノードを返却するマクロであり、新たなノードがクラスタに再加入する事実を仮定する。$_resource_group_online()及び$_resource_group_offline()はユーザ定義ファンクションであり、MSCSクラスタAPIファンクション呼び出しを使用し、指定資源グループを指定コンピュータ・ノード上でオフライン化及びオンライン化する。"EVALUATE action from ch_routine where ch_routine="BRING_COMPUTER_UP""の処理の結果、次の文すなわち"evaluate markup_action from computers where computer+$_get_event_node();evaluate action from ch_routines where $_has_quorum90 and ch_routine=NODE_UP"が選択され、処理される。
【0067】
NODE_UPと呼ばれるch_routineに対して取られるアクションが、図12のテーブル500のエントリ504に示される。第2のEVALUATE文の処理の結果、次の3つの文が検索され、次に処理される。
evaluate failback_action from ch_resource_groups where current_node<>next_node;
evaluate release_action from ch_resource_groups where current_node<>next node;
evaluate acquire_action from ch_resource_groups where current_node=""and next_node=$_get_event_node();
【0068】
これらの3つのEVALUATE文は各々、ch_resource_groupテーブル内で、探索条件に合う全てのch_resource_group行(オブジェクト)を探索する。ch_resource_group行(オブジェクト)が見い出されると、指定アクションがそのオブジェクトに適用される。failback_actionは次の単一文を含む。
"update ch_resource_groups set next_node=$_failback_node() where ch_resource_group=this ch_resource_group";
【0069】
前記更新文では、マクロfailback_node()が処理され、これは新たなノードが丁度クラスタに加入したと仮定して、指定資源グループを実行するのに最も好適なノードを返却する。更新文は返却ノード名をnext_node列に記憶する。マクロ名は"$_"を接頭部とし、解析を単純化する。
【0070】
ch_resource_groupオブジェクトのcurrent_node列は、ch_resource_groupが実行されているカレント・ノードを示す。カレント・ノードが次のノードと異なる場合、release_actionはこのch_resource_groupに対して処理される。この場合、次の文が処理される。
execute $_resource_group_offline();
【0071】
resource_group_offline()はユーザ定義ファンクションであり、MSCS OfflineResourceGroup()ファンクションを呼び出し、示された資源グループをオフライン状態にする。ユーザ定義ファンクションは"$_"を接頭語とし、解析を単純化する。
【0072】
最後に、acqire_actionは、どこにおいても実行されておらず、新たなノード上で実行されるべき全てのch_resource_groupオブジェクトに対して、新たなノード上で検索され、処理される。acquire_actionは1文を含む。
execute $_resource_group_online();
【0073】
resource_group_online()もユーザ定義ファンクションであり、MSCS OnlineResourceGroup()ファンクションを呼び出し、示された資源グループをオンライン状態にする。
【0074】
クラスタ・サービスはまた事象シミュレーションをサポートする。回復サービスが呼び出され、事象をシミュレートするとき、それは最初にクラスタ構成データベースのクローンを生成する。事象シミュレーションは構成データベースの専用コピー上で実行され、従って、オリジナル構成データベースは影響されない。シミュレーションの間、EXECUTE文が物理資源の状態を実際に変更する。
【0075】
図9は、ノードがクラスタに加入したいときに、クラスタ・サービスにより実行されるメソッド400を示す。最初に、ノードがクラスタに加入する(ステップ402)。定数が存在するか否かが判断される(ステップ404)。存在しない場合、メソッドは復帰する(ステップ406)。定数が存在する場合、あらゆる資源グループに対して続くループが実行される(ステップ405)。最初に、任意の資源グループが新たなノードにフェールバックされるべきか否かが問い合わされる(ステップ408)。肯定の場合、各こうした資源グループに対して、システムは対応するMSCSサブクラスタを獲得し、指定資源グループのオフライン化を実行する(ステップ410)。全てのノードを同期するために、継続(CONTINUE)が実行される(ステップ418)。新たなノード上のMSCSサブクラスタが、指定資源グループをオンライン状態にする(ステップ414)。次に、更に資源グループが存在するか否かが確認される(ステップ412)。存在しない場合、システムは終了する(ステップ416)。それ以外では、メソッドがステップ405に戻る。
【0076】
図10は、資源グループをあるノードから別のノードに移動するメソッド430のフロー図を示す。あらゆるノードがノード・ステータス、資源グループに好適なノード・リスト、及びフェールオーバ・ポリシにもとづき、資源グループを実行するための次善のノードを計算する(ステップ434)。或いは、ユーザが単に次のノードを指定する。次に、システムは、カレント・ノードが次のノードに等しくないか否かを問い合わせる(ステップ436)。等しくない場合、システムは終了する(ステップ438)。等しい場合、システムはカレント・ノード上でMSCSサブクラスタを獲得し、指定資源グループをオフライン化する(ステップ440)。プロセスは次に継続する(ステップ442)。このステップの間、システムはその事象処理を同期させる。その後、システムは次のノード上のMSCSクラスタを獲得し、指定資源グループをオンライン状態にする(ステップ444)。最後に、システムは終了する(ステップ446)。
【0077】
図11は、ノード故障452が発生するとき、クラスタ・サービスにより実行される一般メソッドを示す。このメソッドは資源故障及び資源グループ故障事象にも当てはまる。グループ・サービス事象アダプタがひとまとめに、正に1つのノード・ダウン事象を事象キューに挿入する(ステップ454)。ノード・ダウン事象処理がトリガされる(ステップ456)。次に、故障ノード上で実行されていたあらゆる資源グループに対して次のステップが適用される(ステップ458)。最初に、回復サービスがフェールオーバのための次のノードを計算する(ステップ460)。次に、自身のノード(MY_NODE)が次のノード(NEXT_NODE)に等しいか否かが判断される(ステップ462)。等しくない場合、システムは更に資源グループが存在するか否かをチェックする(ステップ466)。等しい場合、システムはMSCSサブクラスタを獲得し、指定資源グループをオンライン化する(ステップ464)。もはや資源グループが使用可能でなくなると、システムは終了する(ステップ468)。更に使用可能な場合、システムはステップ458にループして戻る。
【0078】
本発明はMSCSサブクラスタを使用するように述べられてきたが、これは本発明の1実施例に過ぎないことを理解することが重要である。例えば、この同一のシステムが、IBMのHACMPまたはサンマイクロシステムズ社のUltra Enterprise Cluster HAサーバ上で構成され、これらのクラスタ・システムを管理できる。更に、本発明の装置、プロセス及び命令が、異種のクラスタ・システムにも適用され得る。例えば本発明は、MSCSを用いて管理されるクラスタ、及びUltra Enterprise Cluster HAサーバを使用するクラスタを含む、マルチクラスタ・システムを管理するように適用され得る。更に、本発明のプロセスは、SMPサーバなどの複数のプロセッサ・コンピュータの管理にも適用され得る。
【0079】
本発明は完全機能型データ処理システムの状況において述べられてきたが、当業者であれば、本発明のプロセスが、命令のコンピュータ読取り可能媒体の形態、及び様々な形態で配布可能であり、本発明が実際に配布を実施するために使用される特定タイプの信号担持媒体に関係なく、同様に当てはまることが理解できよう。コンピュータ読取り可能媒体の例には、フロッピー・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROMなどの記録式タイプの媒体、及びデジタル及びアナログ通信リンクなどの伝送タイプの媒体が含まれる。
【0080】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0081】
(1)少なくとも1つのノードを有するクラスタ化コンピュータ・システムを管理する方法であって、
a)前記少なくとも1つのノード及び少なくとも1つの共用資源を含むマルチクラスタを確立するステップと、
b)クラスタ・サービス・プログラムにより、前記少なくとも1つのノードを管理するステップと、
c)フェールオーバ事象後に、前記システムを初期状態に復帰させるステップと
を含む、方法。
(2)前記クラスタ・サービス・プログラムが、前記少なくとも1つのノード内の資源APIを用いて管理する、前記(1)記載の方法。
(3)ステップa)が、各々が少なくとも1つのノードを含む、少なくとも2つのクラスタのマルチクラスタを確立するステップを含む、前記(1)記載の方法。
(4)ステップa)が少なくとも3つのノードのマルククラスタを確立するステップを含む、前記(1)記載の方法。
(5)前記マルチクラスタ内の第1のノードと任意の他のノードとの間で、フェールオーバするステップを含む、前記(1)記載の方法。
(6)クラスタ全体に渡るデータ・ファイルを更新するステップを含む、前記(5)記載の方法。
(7)ステップb)が、前記少なくとも1つのノードがブートされるとき、第1のクラスタ・サービス・プログラムを自動的に開始するステップを含む、前記(1)記載の方法。
(8)前記第1のクラスタ・サービス・プログラムを開始後、前記少なくとも1つのノード上に常駐する第2のクラスタ・サービス・プログラムを開始するステップを含む、前記(7)記載の方法。
(9)前記第1及び第2のクラスタ・サービス・プログラムがバイナリ互換である、前記(8)記載の方法。
(10)ステップb)がクラスタ・ノード・メンバシップ・データベースを管理するステップを含む、前記(1)記載の方法。
(11)ステップb)が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間で送信されるハートビート信号を管理するステップを含む、前記(1)記載の方法。
(12)ステップb)が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間のノード間通信を管理するステップを含む、前記(1)記載の方法。
(13)単一クラスタのイメージをクラスタ・マネージャに提供するステップを含む、前記(1)記載の方法。
(14)ステップb)がマルチクラスタ定数資源をローカル定数資源として構成するステップを含む、前記(1)記載の方法。
(15)ステップc)がノードを再始動し、前記共用資源を初期状態にするステップを含む、前記(1)記載の方法。
(16)ステップc)が、前記共用資源の前記初期状態を記憶するステップを含む、前記(1)記載の方法。
(17)ステップb)が前記共用資源の制御の競合に応答して、前記共用資源を制御しようとする故障ノードを再始動しないステップを含む、前記(1)記載の方法。
(18)隠れ資源を各ノード上の資源グループに追加するステップを含む、前記(17)記載の方法。
(19)前記隠れ資源を前記資源グループ内の任意の他の資源に従属させる、前記(18)記載の方法。
(20)複数のパスを有するメソッドを実行するデータ処理システムであって、前記データ処理システムが固有マシン・コードを実行するものにおいて、
a)前記少なくとも1つのノード及び少なくとも1つの共用資源を含むマルチクラスタを確立する手段と、
b)クラスタ・サービス・プログラムにより、前記少なくとも1つのノードを管理する手段と、
c)フェールオーバ事象後に、前記システムを初期状態に復帰させる手段と
を含む、データ処理システム。
(21)前記クラスタ・サービス・プログラムが、前記少なくとも1つのノード内の資源APIを用いて管理する、前記(20)記載のデータ処理システム。
(22)手段a)が、各々が少なくとも1つのノードを含む、少なくとも2つのクラスタのマルチクラスタを確立する手段を含む、前記(20)記載のデータ処理システム。
(23)手段a)が少なくとも3つのノードのマルククラスタを確立する手段を含む、前記(20)記載のデータ処理システム。
(24)d)前記マルチクラスタ内の第1のノードと任意の他のノードとの間で、フェールオーバする手段を含む、前記(20)記載のデータ処理システム。
(25)手段c)がクラスタ全体に渡るデータ・ファイルを更新する手段を含む、前記(18)記載のデータ処理システム。
(26)手段b)が、前記少なくとも1つのノードがブートされるとき、第1のクラスタ・サービス・プログラムを自動的に開始する手段を含む、前記(20)記載のデータ処理システム。
(27)前記第1のクラスタ・サービス・プログラムを開始後、前記少なくとも1つのノード上に常駐する第2のクラスタ・サービス・プログラムを開始する手段を含む、前記(26)記載のデータ処理システム。
(28)手段b)が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間で送信されるハートビート信号を管理する手段を含む、前記(20)記載のデータ処理システム。
(29)手段b)が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間のノード間通信を管理する手段を含む、前記(20)記載のデータ処理システム。
(30)単一クラスタのイメージをクラスタ・マネージャに提供する手段を含む、前記(20)記載のデータ処理システム。
(31)手段c)が、前記共用資源の前記初期状態を記憶する手段を含む、前記(20)記載のデータ処理システム。
(32)手段b)が前記共用資源の制御の競合に応答して、前記共用資源を制御しようとする故障ノードを再始動しない手段を含む、前記(20)記載のデータ処理システム。
(33)隠れ資源を各ノード上の資源グループに追加する手段を含む、前記(20)記載のデータ処理システム。
(34)データ処理システムにおいてメソッドを実行するコンピュータ・プログラム製品であって、
a)前記少なくとも1つのノード及び少なくとも1つの共用資源を含むマルチクラスタを確立する第1の命令と、
b)クラスタ・サービス・プログラムにより、前記少なくとも1つのノードを管理する第2の命令と、
c)フェールオーバ事象後に、前記システムを初期状態に復帰させる第3の命令と
を含む、コンピュータ・プログラム製品。
(35)d)前記マルチクラスタ内の第1のノードと任意の他のノードとの間で、フェールオーバする第4の命令を含む、前記(34)記載のコンピュータ・プログラム製品。
(36)前記第2の命令がクラスタ・ノード・メンバシップ・データベースを管理する命令を含む、前記(34)記載のコンピュータ・プログラム製品。
(37)前記第2の命令が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間で送信されるハートビート信号を管理する命令を含む、前記(34)記載のコンピュータ・プログラム製品。
(38)前記第2の命令が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間のノード間通信を管理する命令を含む、前記(34)記載のコンピュータ・プログラム製品。
(39)少なくとも1つのノードを有するクラスタ化コンピュータ・システムを管理する方法であって、
a)前記少なくとも1つのノード及び少なくとも1つの共用資源を含むマルチクラスタを確立するステップと、
b)クラスタ・サービス・プログラムにより、前記少なくとも1つのノードを管理するステップであって、前記クラスタ・サービス・プログラムが、前記少なくとも1つのノード内の資源APIを用いて管理し、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間で送信されるハートビート信号を管理するステップを含み、
c)前記マルチクラスタ内の第1のノードと任意の他のノードとの間で、フェールオーバするステップと、
d)クラスタ全体に渡るデータ・ファイルを更新するステップと、
e)フェールオーバ事象後に、前記システムを初期状態に復帰させるステップと
を含む、方法。
(40)ステップa)が、各々が少なくとも1つのノードを含む、少なくとも2つのクラスタのマルチクラスタを確立するステップを含む、前記(39)記載の方法。
(41)ステップb)が、前記少なくとも1つのノードがブートされるとき、第1のクラスタ・サービス・プログラムを自動的に開始するステップを含む、前記(39)記載の方法。
(42)ステップb)が、前記マルチクラスタ内の前記少なくとも1つのノードと、任意の他のノード間のノード間通信を管理するステップを含む、前記(39)記載の方法。
(43)単一クラスタのイメージをクラスタ・マネージャに提供するステップを含む、前記(39)記載の方法。
(44)ステップc)が、前記共用資源の前記初期状態を記憶するステップを含む、前記(39)記載の方法。
(45)ステップb)が前記共用資源の制御の競合に応答して、前記共用資源を制御しようとする故障ノードを再始動しないステップを含む、前記(39)記載の方法。
(46)分散データ処理システムにおいて、複数のクラスタ・コンピュータ・システムを管理する方法であって、
前記複数のクラスタ・コンピュータ・システム内のあるクラスタ・コンピュータ・システムの再始動の開始を検出するステップであって、前記クラスタ・コンピュータ・システムが選択状態において再始動し、資源を含み、
前記資源が現在、前記複数のクラスタ・コンピュータ・システム内の別のクラスタ・コンピュータ・システム内で動作中であるとの判断に応答して、前記クラスタ・コンピュータ・システムにおける前記資源の再始動を阻止するステップと
を含む、方法。
(47)前記資源が共用ファイル・システムである、前記(46)記載の方法。
(48)複数のクラスタ・コンピュータ・システムを有する分散データ処理システムであって、
前記複数のクラスタ・コンピュータ・システム内のあるクラスタ・コンピュータ・システムの再始動の開始を検出する検出手段であって、前記クラスタ・コンピュータ・システムが選択状態において再始動し、資源を含み、
前記資源が現在、前記複数のクラスタ・コンピュータ・システム内の別のクラスタ・コンピュータ・システム内で動作中であるとの判断に応答して、前記クラスタ・コンピュータ・システムにおける前記資源の再始動を阻止する阻止手段と
を含む、分散データ処理システム。
【図面の簡単な説明】
【図1】本発明が実装され得る分散データ処理システムの絵図である。
【図2】マイクロソフト"Wolfpack"製品及びその制限を示す図である。
【図3】マイクロソフト"Wolfpack"製品及びその制限を示す図である。
【図4】マイクロソフト"Wolfpack"製品及びその制限を示す図である。
【図5】本発明及びMSCSクラスタなどの複数のクラスタに渡るその実装を示す図である。
【図6】本発明及びMSCSクラスタなどの複数のクラスタに渡るその実装を示す図である。
【図7】本発明及びMSCSクラスタなどの複数のクラスタに渡るその実装を示す図である。
【図8】本発明及びMSCSクラスタなどの複数のクラスタに渡るその実装を示す図である。
【図9】複数のクラスタを制御するために本発明により使用される基礎となる方法のフロー図である。
【図10】複数のクラスタを制御するために本発明により使用される基礎となる方法のフロー図である。
【図11】複数のクラスタを制御するために本発明により使用される基礎となる方法のフロー図である。
【図12】本発明と共に使用される構成、ステータス、及び事象処理規則を含むSQLテーブルを示す図である。
【図13】本発明と共に使用される構成、ステータス、及び事象処理規則を含むSQLテーブルを示す図である。
【符号の説明】
110、111、112、113 サーバ・コンピュータ
130、131 クライアント・コンピュータ
120、121、122、123 ローカル・データ記憶装置
124、208 共用ディスク記憶装置
202、204、212、350 ノード
214、340 データ記憶装置
216 スタンバイ・ノード
300 ソフトウェア
302 クラスタ・マネージャ
304 クラスタ・サービス
306、306a MSCS
308 トポロジ・サービス
310 グループ・サービス事象アダプタ(GSEA)
311 GSEAグループ・サービス・グループ
312 マイクロソフト・クラスタ・サービス事象アダプタ(MSCSEA)
314 CSQLサービス
315 CSQLサービス・グループ
316 回復サービス
318 クラスタAPI
360 ディスク制御装置
370 アプリケーション
452 ノード故障
500 テーブル
502、504 エンティティ
506、508、510、512 セクション
600 ch_resource_groupテーブル

Claims (4)

  1. 3以上のクラスタ・コンピュータ・システムを含むマルチクラスタ化コンピ
    ュータ・システムであって
    各クラスタコンピュータ・システムは単一のノードからなり、
    クラスタ・サービスによって管理されている各ノードが、
    当該ノード上でオンライン状態にされる資源であって、ミラー化され又はマルチポート化されたローカルディスク、共用ディスク及びアプリケーションの少なくとも1つを含む、前記資源と、
    予め定められた2つのノード間の自動フェールオーバ機能を有する第1の手段であって、前記自動フェールオーバ機能は、ノードが故障した場合において、該故障したノードに含まれる資源を故障したノード以外のノード上でオンライン状態にする機能を有し、前記自動フェールオーバ機能を第2の手段から呼び出すためのインターフェース手段を備える、前記第1の手段と、
    前記第1の手段を、前記インターフェース手段を介して制御する第2の手段であって、
    ノードの状態をモニタし、故障が発生すると、クラスタ・コンピュータ・システム上で回復処理を開始する事象アダプタと、
    ノードに含まれる各資源について、ノードの状態、資源に好適なノードのリスト、及びフェールオーバに関する所定の指針にもとづき、フェールオーバ先のノードを計算する回復サービス手段と
    をさらに含む、前記第2の手段と
    を含み、
    ここで、ノードが故障することに応じて、
    前記第2の手段は、
    前記故障したノードに含まれる各資源について、フェールオーバ先のノードを計算し、及び、
    前記計算によって特定されたノードに含まれる前記第2の手段は、
    前記インターフェース手段を介して、前記故障したノードに含まれる前記資源を自ノード上でオンライン状態にし、
    これにより、予め定められた2つのノード間の前記自動フェールオーバ機能が、前記3つ以上のノードから選択されたノードへの自動フェールオーバ機能へと拡張されていることを特徴とする、前記マルチクラスタ化コンピュータ・システム。
  2. 前記第2の手段が前記資源を管理するためのクラスタ・マネージャ手段をさらに含む、請求項1記載のマルチクラスタ化コンピュータ・システム。
  3. 前記第1の手段が、ハートビートを送信して、予め定められた2つの前記ノード間の通信を管理する手段をさらに含み、
    前記第2の手段が、ハートビートを送信してノード間の通信を管理するトポロジ・サービス手段をさらに含む場合には、前記第1の手段のハートビートは無視される、請求項1または2記載のマルチクラスタ化コンピュータ・システム。
  4. 前記第2の手段が、各資源の状態をチェックして、当該資源が既に或るノード上でオンライン状態である場合には、他のノードでオンライン状態にされるのを阻止する手段をさらに含み、これにより、故障したノードが再始動される際に、故障前の状態に戻そうとして発生する資源競合が防止される、請求項1〜3のいずれか1項記載のマルチクラスタ化コンピュータ・システム。
JP2000015577A 1999-01-29 2000-01-25 マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置 Expired - Fee Related JP4307673B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/240494 1999-01-29
US09/240,494 US6438705B1 (en) 1999-01-29 1999-01-29 Method and apparatus for building and managing multi-clustered computer systems

Publications (2)

Publication Number Publication Date
JP2000222373A JP2000222373A (ja) 2000-08-11
JP4307673B2 true JP4307673B2 (ja) 2009-08-05

Family

ID=22906751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000015577A Expired - Fee Related JP4307673B2 (ja) 1999-01-29 2000-01-25 マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置

Country Status (7)

Country Link
US (1) US6438705B1 (ja)
EP (1) EP1024428B1 (ja)
JP (1) JP4307673B2 (ja)
KR (1) KR100368078B1 (ja)
AT (1) ATE434218T1 (ja)
DE (1) DE60042379D1 (ja)
TW (1) TW523656B (ja)

Families Citing this family (246)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6427163B1 (en) * 1998-07-10 2002-07-30 International Business Machines Corporation Highly scalable and highly available cluster system management scheme
DE19835216B4 (de) * 1998-08-05 2005-10-27 Systemonic Ag Prozessor und Verfahren zur parallelen Datenverarbeitung
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6401120B1 (en) * 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US6871222B1 (en) 1999-05-28 2005-03-22 Oracle International Corporation Quorumless cluster using disk-based messaging
US7076783B1 (en) 1999-05-28 2006-07-11 Oracle International Corporation Providing figure of merit vote from application executing on a partitioned cluster
US7020695B1 (en) * 1999-05-28 2006-03-28 Oracle International Corporation Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem)
US6754661B1 (en) * 1999-07-13 2004-06-22 Microsoft Corporation Hierarchical storage systems for holding evidentiary objects and methods of creating and operating upon hierarchical storage systems
US6745240B1 (en) * 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6862613B1 (en) * 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
US6789213B2 (en) 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6658587B1 (en) 2000-01-10 2003-12-02 Sun Microsystems, Inc. Emulation of persistent group reservations
US6757836B1 (en) * 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6594786B1 (en) * 2000-01-31 2003-07-15 Hewlett-Packard Development Company, Lp Fault tolerant high availability meter
US20020198996A1 (en) 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US7158926B2 (en) * 2000-05-05 2007-01-02 Sun Microsystems, Inc. Cluster availability model
US7325046B1 (en) * 2000-05-31 2008-01-29 International Business Machines Corporation Method, system and program products for managing processing groups of a distributed computing environment
US7103664B1 (en) * 2000-05-31 2006-09-05 International Business Machines Corporation Method, system and program products for ordering lists of service addresses to provide load balancing of a clustered environment
US6823356B1 (en) * 2000-05-31 2004-11-23 International Business Machines Corporation Method, system and program products for serializing replicated transactions of a distributed computing environment
US6807557B1 (en) * 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment
US6732186B1 (en) 2000-06-02 2004-05-04 Sun Microsystems, Inc. High availability networking with quad trunking failover
US6763479B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. High availability networking with alternate pathing failover
US6718383B1 (en) * 2000-06-02 2004-04-06 Sun Microsystems, Inc. High availability networking with virtual IP address failover
US6728780B1 (en) 2000-06-02 2004-04-27 Sun Microsystems, Inc. High availability networking with warm standby interface failover
US6804712B1 (en) * 2000-06-30 2004-10-12 Cisco Technology, Inc. Identifying link failures in a network
US6763372B1 (en) * 2000-07-06 2004-07-13 Nishant V. Dani Load balancing of chat servers based on gradients
US6675217B1 (en) * 2000-07-06 2004-01-06 Microsoft Corporation Recovery of cluster consistency following failover
US6701332B1 (en) * 2000-07-31 2004-03-02 Hewlett-Packard Development Company, L.P. Cluster file system multi-volume root support
AU2000266395A1 (en) * 2000-08-11 2002-02-25 George Mount Server-side session management
US7228453B2 (en) * 2000-10-16 2007-06-05 Goahead Software, Inc. Techniques for maintaining high availability of networked systems
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US6857082B1 (en) * 2000-11-21 2005-02-15 Unisys Corporation Method for providing a transition from one server to another server clustered together
US7657450B2 (en) * 2000-12-08 2010-02-02 Microsoft Corporation Reliable, secure and scalable infrastructure for event registration and propagation in a distributed enterprise
US6785678B2 (en) * 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US6782416B2 (en) * 2001-01-12 2004-08-24 Hewlett-Packard Development Company, L.P. Distributed and geographically dispersed quorum resource disks
US7275100B2 (en) * 2001-01-12 2007-09-25 Hitachi, Ltd. Failure notification method and system using remote mirroring for clustering systems
JP2002230312A (ja) * 2001-02-06 2002-08-16 Nippon Telegr & Teleph Corp <Ntt> 商品生産計画販売統合システム
US7099948B2 (en) 2001-02-16 2006-08-29 Swsoft Holdings, Ltd. Virtual computing environment
US7792977B1 (en) * 2001-02-28 2010-09-07 Oracle International Corporation Method for fencing shared resources from cluster nodes
US6952766B2 (en) 2001-03-15 2005-10-04 International Business Machines Corporation Automated node restart in clustered computer system
US20060162639A1 (en) * 2001-03-23 2006-07-27 Costello James M Touch tunnel
US7076633B2 (en) 2001-03-28 2006-07-11 Swsoft Holdings, Ltd. Hosting service providing platform system and method
US6918051B2 (en) * 2001-04-06 2005-07-12 International Business Machines Corporation Node shutdown in clustered computer system
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US6708175B2 (en) * 2001-06-06 2004-03-16 International Business Machines Corporation Program support for disk fencing in a shared disk parallel file system across storage area network
US6931441B1 (en) 2001-06-29 2005-08-16 Cisco Technology, Inc. Method and apparatus for managing a network using link state information
US20030005350A1 (en) * 2001-06-29 2003-01-02 Maarten Koning Failover management system
US7016946B2 (en) * 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6925582B2 (en) * 2001-08-01 2005-08-02 International Business Machines Corporation Forwarding of diagnostic messages in a group
US6922791B2 (en) 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7047299B1 (en) * 2001-08-31 2006-05-16 Hewlett-Packard Development Company, L.P. Generic cluster aware lock broker with user defined locking modes
US7069321B1 (en) * 2001-08-31 2006-06-27 Hewlett-Packard Development Company, L.P. Mechanism for nested expansion of data collection from one computer to multiple computers
US6826601B2 (en) * 2001-09-06 2004-11-30 Bea Systems, Inc. Exactly one cache framework
US7113980B2 (en) 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US20030056206A1 (en) * 2001-09-17 2003-03-20 Engo Frank Joseph Cross-barrier programming language
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US7130897B2 (en) * 2001-10-11 2006-10-31 International Business Machines Corporation Dynamic cluster versioning for a group
US20030084219A1 (en) * 2001-10-26 2003-05-01 Maxxan Systems, Inc. System, apparatus and method for address forwarding for a computer network
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7552135B2 (en) * 2001-11-15 2009-06-23 Siebel Systems, Inc. SQL adapter business service
US7548973B2 (en) * 2001-11-30 2009-06-16 Oracle International Corporation Managing a high availability framework by enabling and disabling individual nodes
US7145914B2 (en) 2001-12-31 2006-12-05 Maxxan Systems, Incorporated System and method for controlling data paths of a network processor subsystem
US7085846B2 (en) * 2001-12-31 2006-08-01 Maxxan Systems, Incorporated Buffer to buffer credit flow control for computer network
US7930704B2 (en) * 2002-02-06 2011-04-19 Oracle International Corporation J2EE component extension architecture
WO2003073311A1 (en) * 2002-02-21 2003-09-04 Bea Systems, Inc. System and method for message driven bean service migration
US7392302B2 (en) * 2002-02-21 2008-06-24 Bea Systems, Inc. Systems and methods for automated service migration
WO2003073278A2 (en) * 2002-02-22 2003-09-04 Mission Critical Linux, Inc. Clustering infrastructure system and method
WO2003073206A2 (en) * 2002-02-22 2003-09-04 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
US7152181B2 (en) * 2002-02-22 2006-12-19 Bea Systems, Inc. Method for highly available transaction recovery for transaction processing systems
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US7392421B1 (en) * 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
US7307995B1 (en) 2002-04-05 2007-12-11 Ciphermax, Inc. System and method for linking a plurality of network switches
US7379970B1 (en) * 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US7302692B2 (en) * 2002-05-31 2007-11-27 International Business Machines Corporation Locally providing globally consistent information to communications layers
US6925541B2 (en) * 2002-06-12 2005-08-02 Hitachi, Ltd. Method and apparatus for managing replication volumes
EP1372075B1 (en) * 2002-06-13 2004-08-25 Fujitsu Siemens Computers, LLC Method for eliminating a computer from a cluster
WO2004001598A2 (en) * 2002-06-20 2003-12-31 British Telecommunications Public Limited Company Distributed computer
US7506342B2 (en) * 2002-07-23 2009-03-17 Bea Systems, Inc. System and method for implementing J2EE connector architecture
FR2843209B1 (fr) * 2002-08-02 2006-01-06 Cimai Technology Procede de replication d'une application logicielle dans une architecture multi-ordinateurs, procede pour realiser une continuite de fonctionnement mettant en oeuvre ce procede de replication, et systeme multi-ordinateurs ainsi equipe.
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
CA2504170C (en) * 2002-11-27 2016-06-21 Oracle International Corporation Clustering system and method having interconnect
US7430747B2 (en) * 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
GB0230331D0 (en) * 2002-12-31 2003-02-05 British Telecomm Method and apparatus for operating a computer network
US7137040B2 (en) * 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
US20040181707A1 (en) 2003-03-11 2004-09-16 Hitachi, Ltd. Method and apparatus for seamless management for disaster recovery
US7313619B2 (en) * 2003-03-21 2007-12-25 Intel Corporation System and method for managing distributed objects as a single representation
JP2004302512A (ja) * 2003-03-28 2004-10-28 Hitachi Ltd クラスタコンピューティングシステム、および、そのフェールオーバー方法
JP4155399B2 (ja) * 2003-03-28 2008-09-24 株式会社日立製作所 コンピュータ処理方法及びその実施システム並びにその処理プログラム
US7299229B2 (en) * 2003-04-25 2007-11-20 International Business Machines Corporation Grid quorum
WO2004114143A2 (de) * 2003-06-18 2004-12-29 Fujitsu Siemens Computers Gmbh Clusteranordnung
US7562154B2 (en) * 2003-06-30 2009-07-14 International Business Machines Corporation System and method for filtering stale messages resulting from membership changes in a distributed computing environment
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US7747717B2 (en) * 2003-08-14 2010-06-29 Oracle International Corporation Fast application notification in a clustered computing system
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US20050256971A1 (en) * 2003-08-14 2005-11-17 Oracle International Corporation Runtime load balancing of work across a clustered computing system using current service performance levels
US20060064400A1 (en) 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7937493B2 (en) * 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US7302607B2 (en) * 2003-08-29 2007-11-27 International Business Machines Corporation Two node virtual shared disk cluster recovery
US7689685B2 (en) * 2003-09-26 2010-03-30 International Business Machines Corporation Autonomic monitoring for web high availability
US7451201B2 (en) * 2003-09-30 2008-11-11 International Business Machines Corporation Policy driven autonomic computing-specifying relationships
US8892702B2 (en) * 2003-09-30 2014-11-18 International Business Machines Corporation Policy driven autonomic computing-programmatic policy definitions
US7533173B2 (en) * 2003-09-30 2009-05-12 International Business Machines Corporation Policy driven automation - specifying equivalent resources
US7475134B2 (en) * 2003-10-14 2009-01-06 International Business Machines Corporation Remote activity monitoring
US7383313B2 (en) * 2003-11-05 2008-06-03 Hitachi, Ltd. Apparatus and method of heartbeat mechanism using remote mirroring link for multiple storage system
US20050125557A1 (en) * 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
US7228458B1 (en) * 2003-12-19 2007-06-05 Sun Microsystems, Inc. Storage device pre-qualification for clustered systems
US8190780B2 (en) * 2003-12-30 2012-05-29 Sap Ag Cluster architecture having a star topology with centralized services
US20050188068A1 (en) * 2003-12-30 2005-08-25 Frank Kilian System and method for monitoring and controlling server nodes contained within a clustered environment
JP2005242981A (ja) * 2004-01-28 2005-09-08 Seiko Epson Corp サービス提供システム、アプリケーション管理システム、サービス提供装置、サービス提供プログラム、アプリケーション管理プログラムおよび記憶媒体、並びにサービス提供方法およびアプリケーション管理方法
JP4315016B2 (ja) * 2004-02-24 2009-08-19 株式会社日立製作所 コンピュータシステムの系切替方法
US7900206B1 (en) * 2004-03-31 2011-03-01 Symantec Operating Corporation Information technology process workflow for data centers
US7814064B2 (en) * 2004-05-12 2010-10-12 Oracle International Corporation Dynamic distributed consensus algorithm
US7991753B2 (en) * 2004-05-21 2011-08-02 International Business Machines Corporation Lock acquisition among nodes of divided cluster
US7735085B2 (en) * 2004-05-26 2010-06-08 Qualcomm Incorporated System for application priority based on device operating mode
GB0412655D0 (en) * 2004-06-07 2004-07-07 British Telecomm Distributed storage network
US7334154B2 (en) * 2004-06-18 2008-02-19 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US20060015764A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Transparent service provider
US7363366B2 (en) 2004-07-13 2008-04-22 Teneros Inc. Network traffic routing
US20060015584A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Autonomous service appliance
US8825832B2 (en) * 2004-07-21 2014-09-02 Hewlett-Packard Development Company, L.P. Method and system for managing connections
US7383430B1 (en) * 2004-07-29 2008-06-03 Emc Corporation System and method for validating resource groups
US8185776B1 (en) * 2004-09-30 2012-05-22 Symantec Operating Corporation System and method for monitoring an application or service group within a cluster as a resource of another cluster
US20060074940A1 (en) * 2004-10-05 2006-04-06 International Business Machines Corporation Dynamic management of node clusters to enable data sharing
US7451347B2 (en) * 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US20060168274A1 (en) * 2004-11-08 2006-07-27 Eliezer Aloni Method and system for high availability when utilizing a multi-stream tunneled marker-based protocol data unit aligned protocol
WO2006053093A2 (en) * 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US7475204B2 (en) * 2004-11-24 2009-01-06 International Business Machines Corporation Automatically managing the state of replicated data of a computing environment
US7721152B1 (en) * 2004-12-21 2010-05-18 Symantec Operating Corporation Integration of cluster information with root cause analysis tool
JP4627491B2 (ja) * 2005-01-19 2011-02-09 株式会社イマジオム クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法
US20060179342A1 (en) * 2005-02-07 2006-08-10 International Business Machines Corporation Service aggregation in cluster monitoring system with content-based event routing
US20060179059A1 (en) * 2005-02-07 2006-08-10 International Business Machines Corporation Cluster monitoring system with content-based event routing
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US20060248371A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for a common cluster model for configuring, managing, and operating different clustering technologies in a data center
US7730057B2 (en) * 2005-06-06 2010-06-01 International Business Machines Corporation Computer data systems implemented using a virtual solution architecture
US7624405B1 (en) * 2005-06-17 2009-11-24 Unisys Corporation Maintaining availability during change of resource dynamic link library in a clustered system
US8326990B1 (en) 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems
US20070028229A1 (en) * 2005-07-28 2007-02-01 International Business Machines Corporation Method and system for dynamic generation of computer system installation instructions
US20070050681A1 (en) * 2005-08-25 2007-03-01 Derobertis Christopher V Global user services management for system cluster
US7937617B1 (en) * 2005-10-28 2011-05-03 Symantec Operating Corporation Automatic clusterwide fail-back
US20070168507A1 (en) * 2005-11-15 2007-07-19 Microsoft Corporation Resource arbitration via persistent reservation
JP4920391B2 (ja) * 2006-01-06 2012-04-18 株式会社日立製作所 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US20070174655A1 (en) * 2006-01-18 2007-07-26 Brown Kyle G System and method of implementing automatic resource outage handling
US8078907B2 (en) * 2006-01-19 2011-12-13 Silicon Graphics, Inc. Failsoft system for multiple CPU system
US20070174484A1 (en) * 2006-01-23 2007-07-26 Stratus Technologies Bermuda Ltd. Apparatus and method for high performance checkpointing and rollback of network operations
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US8458725B2 (en) * 2006-04-10 2013-06-04 Oracle International Corporation Computer implemented method for removing an event registration within an event notification infrastructure
US9390118B2 (en) * 2006-04-19 2016-07-12 Oracle International Corporation Computer implemented method for transforming an event notification within a database notification infrastructure
US8745503B2 (en) * 2006-04-20 2014-06-03 Hewlett-Packard Development Company, L.P. Graphical interface for managing server environment
US7870248B2 (en) * 2006-05-01 2011-01-11 Microsoft Corporation Exploiting service heartbeats to monitor file share
US8464275B2 (en) * 2006-05-10 2013-06-11 Oracle International Corporation Method of using a plurality of subscriber types in managing a message queue of a database management system
US7761413B2 (en) * 2006-05-10 2010-07-20 Oracle International Corporation Method of ensuring availability of event notification registrations of a database management system
US7895600B2 (en) 2006-05-10 2011-02-22 Oracle International Corporation Method of optimizing propagation of non-persistent messages from a source database management system to a destination database management system
US20070276945A1 (en) * 2006-05-23 2007-11-29 Microsoft Corporation Fault-Tolerant Resource Committal
WO2007140475A2 (en) * 2006-05-31 2007-12-06 Teneros, Inc. Extracting shared state information from message traffic
US7624118B2 (en) * 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US7770063B2 (en) * 2006-08-26 2010-08-03 International Business Machines Corporation Simulation of failure recovery within clustered systems
US7913105B1 (en) 2006-09-29 2011-03-22 Symantec Operating Corporation High availability cluster with notification of resource state changes
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US8713186B2 (en) * 2007-03-13 2014-04-29 Oracle International Corporation Server-side connection resource pooling
US7757116B2 (en) * 2007-04-04 2010-07-13 Vision Solutions, Inc. Method and system for coordinated multiple cluster failover
US8984108B2 (en) * 2007-05-03 2015-03-17 Telefonaktiebolaget L M Ericsson (Publ) Dynamic CLI mapping for clustered software entities
US8060775B1 (en) 2007-06-14 2011-11-15 Symantec Corporation Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system
US7984150B2 (en) * 2007-07-31 2011-07-19 Hewlett-Packard Development Company, L.P. Cell compatibilty in multiprocessor systems
US20090063501A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Systems, methods and computer products for generating policy based fail over configuration for darabase clusters
US7730091B2 (en) * 2007-08-31 2010-06-01 International Business Machines Corporation Systems, methods and computer products for database cluster modeling
US20090070425A1 (en) * 2007-09-12 2009-03-12 Hewlett-Packard Development Company, L.P. Data processing system, method of updating a configuration file and computer program product
US7822841B2 (en) * 2007-10-30 2010-10-26 Modern Grids, Inc. Method and system for hosting multiple, customized computing clusters
US20090158298A1 (en) * 2007-12-12 2009-06-18 Abhishek Saxena Database system and eventing infrastructure
US9112886B2 (en) * 2007-12-27 2015-08-18 Verizon Patent And Licensing Inc. Method and system for providing centralized data field encryption, and distributed storage and retrieval
US20090293053A1 (en) * 2008-05-21 2009-11-26 Jim Leroy Knatcher Method and system for dynamic generation of computer system installation instructions
FR2931970B1 (fr) * 2008-05-27 2010-06-11 Bull Sas Procede de generation de requetes de manipulation d'une base de donnees d'initialisation et d'administration d'une grappe de serveurs , support de donnees et grappe de serveurs correspondants
US8719473B2 (en) * 2008-09-19 2014-05-06 Microsoft Corporation Resource arbitration for shared-write access via persistent reservation
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8370679B1 (en) * 2008-06-30 2013-02-05 Symantec Corporation Method, apparatus and system for improving failover within a high availability disaster recovery environment
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US20100114826A1 (en) * 2008-10-24 2010-05-06 Microsoft Corporation Configuration management in distributed data systems
US8239395B2 (en) * 2008-12-26 2012-08-07 Sandisk Il Ltd. Storage device presenting to hosts only files compatible with a defined host capability
US8943409B2 (en) * 2008-12-26 2015-01-27 Sandisk Il Ltd. Storage device managing playable content
US20100169395A1 (en) * 2008-12-26 2010-07-01 Sandisk Il Ltd. Device and method for filtering a file system
US8166067B2 (en) * 2008-12-26 2012-04-24 Sandisk Il Ltd. Method and apparatus for providing access to files based on user identity
US20100211637A1 (en) * 2009-02-17 2010-08-19 Nokia Corporation Method and apparatus for providing shared services
US9454444B1 (en) 2009-03-19 2016-09-27 Veritas Technologies Llc Using location tracking of cluster nodes to avoid single points of failure
US8307085B2 (en) * 2010-03-16 2012-11-06 Microsoft Corporation Storing state of distributed architecture in external store
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US8055933B2 (en) * 2009-07-21 2011-11-08 International Business Machines Corporation Dynamic updating of failover policies for increased application availability
US8458515B1 (en) 2009-11-16 2013-06-04 Symantec Corporation Raid5 recovery in a high availability object based file system
US8812799B2 (en) 2009-12-11 2014-08-19 International Business Machines Corporation Cluster families for cluster selection and cooperative replication
US8060773B1 (en) * 2009-12-16 2011-11-15 Symantec Corporation Systems and methods for managing sub-clusters within a multi-cluster computing system subsequent to a network-partition event
US8630980B2 (en) 2010-04-06 2014-01-14 Microsoft Corporation Synchronization framework that restores a node from backup
US8671074B2 (en) 2010-04-12 2014-03-11 Microsoft Corporation Logical replication in clustered database system with adaptive cloning
US8738961B2 (en) * 2010-08-17 2014-05-27 International Business Machines Corporation High-availability computer cluster with failover support based on a resource map
US8392368B1 (en) * 2010-08-27 2013-03-05 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US8290919B1 (en) 2010-08-27 2012-10-16 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US8768981B1 (en) 2010-08-27 2014-07-01 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
US20120102201A1 (en) * 2010-10-25 2012-04-26 Hitachi, Ltd. Storage apparatus and management method thereof
US8495323B1 (en) 2010-12-07 2013-07-23 Symantec Corporation Method and system of providing exclusive and secure access to virtual storage objects in a virtual machine cluster
US20120151163A1 (en) 2010-12-09 2012-06-14 International Business Machines Corporation Management of host passthrough and session commands using resource groups
US8577885B2 (en) 2010-12-09 2013-11-05 International Business Machines Corporation Partitioning management of system resources across multiple users
US8484655B2 (en) 2010-12-09 2013-07-09 International Business Machines Corporation Management of copy services relationships via policies specified on resource groups
US8793286B2 (en) 2010-12-09 2014-07-29 International Business Machines Corporation Hierarchical multi-tenancy management of system resources in resource groups
JP5943430B2 (ja) * 2011-03-16 2016-07-05 日本電気株式会社 分散記憶システムおよび分散記憶方法
US9002480B2 (en) * 2011-10-13 2015-04-07 Siemens Aktiengesellschaft Method for operation of a control network, and a control network
DE102012108117A1 (de) 2012-08-03 2014-02-06 Fujitsu Technology Solutions Intellectual Property Gmbh Hochverfügbares Rechnersystem, Arbeitsverfahren und dessen Verwendung
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
JP5959733B2 (ja) * 2013-04-23 2016-08-02 株式会社日立製作所 ストレージシステムおよびストレージシステムの障害管理方法
US9535973B2 (en) * 2013-04-29 2017-01-03 Moogsoft, Inc. Methods for decomposing events from managed infrastructures
US10803133B2 (en) 2013-04-29 2020-10-13 Moogsoft Inc. System for decomposing events from managed infrastructures that includes a reference tool signalizer
US10700920B2 (en) 2013-04-29 2020-06-30 Moogsoft, Inc. System and methods for decomposing events from managed infrastructures that includes a floating point unit
US11010220B2 (en) 2013-04-29 2021-05-18 Moogsoft, Inc. System and methods for decomposing events from managed infrastructures that includes a feedback signalizer functor
EP3090345B1 (en) 2013-12-30 2017-11-08 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
EP3090336A1 (en) 2013-12-30 2016-11-09 Paul A. Leveille Checkpointing systems and methods of using data forwarding
US9652338B2 (en) 2013-12-30 2017-05-16 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
IN2014DE00404A (ja) * 2014-02-13 2015-08-14 Netapp Inc
US10270735B2 (en) * 2014-10-10 2019-04-23 Microsoft Technology Licensing, Llc Distributed components in computing clusters
US9584996B2 (en) * 2014-10-22 2017-02-28 Qualcomm Incorporated Selectively triggering a communicative action based on whether a quorum condition for a peer-to-peer group is satisfied
US11817993B2 (en) 2015-01-27 2023-11-14 Dell Products L.P. System for decomposing events and unstructured data
US10425291B2 (en) 2015-01-27 2019-09-24 Moogsoft Inc. System for decomposing events from managed infrastructures with prediction of a networks topology
US11924018B2 (en) 2015-01-27 2024-03-05 Dell Products L.P. System for decomposing events and unstructured data
US10979304B2 (en) 2015-01-27 2021-04-13 Moogsoft Inc. Agent technology system with monitoring policy
US10873508B2 (en) 2015-01-27 2020-12-22 Moogsoft Inc. Modularity and similarity graphics system with monitoring policy
US10387415B2 (en) * 2016-06-28 2019-08-20 International Business Machines Corporation Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US10764144B2 (en) * 2016-10-13 2020-09-01 International Business Machines Corporation Handling a split within a clustered environment
CN109257195B (zh) * 2017-07-12 2021-01-15 华为技术有限公司 集群中节点的故障处理方法及设备
US10742724B2 (en) * 2017-08-17 2020-08-11 Hewlett Packard Enterprise Development Lp Cluster computer system with failover handling
CN108052620B (zh) * 2017-12-15 2021-02-12 泰康保险集团股份有限公司 数据状态的存储系统、区块链的节点数据处理系统和方法
KR20190109795A (ko) 2018-03-19 2019-09-27 고려대학교 산학협력단 유휴 컴퓨팅 자원을 이용한 클러스터 구축 장치 및 방법, 상기 방법을 수행하기 위한 저장 매체
US11216441B1 (en) 2020-11-25 2022-01-04 Coupang Corp. Systems and methods for managing a highly available and scalable distributed database in a cloud computing environment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666486A (en) * 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US5787249A (en) * 1996-04-30 1998-07-28 International Business Machines Coporation Method for managing membership of a group of processors in a distributed computing environment
US6003075A (en) * 1997-07-07 1999-12-14 International Business Machines Corporation Enqueuing a configuration change in a network cluster and restore a prior configuration in a back up storage in reverse sequence ordered
US5964838A (en) * 1997-09-30 1999-10-12 Tandem Computers Incorporated Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster
US6249879B1 (en) * 1997-11-11 2001-06-19 Compaq Computer Corp. Root filesystem failover in a single system image environment
US6154765A (en) * 1998-03-18 2000-11-28 Pasocs Llc Distributed digital rule processor for single system image on a clustered network and method
US6311217B1 (en) * 1998-06-04 2001-10-30 Compaq Computer Corporation Method and apparatus for improved cluster administration

Also Published As

Publication number Publication date
EP1024428A3 (en) 2007-01-10
KR20000076513A (ko) 2000-12-26
JP2000222373A (ja) 2000-08-11
TW523656B (en) 2003-03-11
US6438705B1 (en) 2002-08-20
EP1024428A2 (en) 2000-08-02
KR100368078B1 (ko) 2003-01-15
EP1024428B1 (en) 2009-06-17
ATE434218T1 (de) 2009-07-15
DE60042379D1 (de) 2009-07-30

Similar Documents

Publication Publication Date Title
JP4307673B2 (ja) マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置
CA2284376C (en) Method and apparatus for managing clustered computer systems
US6360331B2 (en) Method and system for transparently failing over application configuration information in a server cluster
JP4204769B2 (ja) フェールオーバを処理するシステムおよび方法
US6279032B1 (en) Method and system for quorum resource arbitration in a server cluster
US6243825B1 (en) Method and system for transparently failing over a computer name in a server cluster
US6014669A (en) Highly-available distributed cluster configuration database
US5129080A (en) Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers
US7392421B1 (en) Framework for managing clustering and replication
EP1171817B1 (en) Data distribution in a server cluster
US7260818B1 (en) System and method for managing software version upgrades in a networked computer system
US7743036B2 (en) High performance support for XA protocols in a clustered shared database
US7130897B2 (en) Dynamic cluster versioning for a group
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US20030065760A1 (en) System and method for management of a storage area network
US8316110B1 (en) System and method for clustering standalone server applications and extending cluster functionality
US7953890B1 (en) System and method for switching to a new coordinator resource
US20020152423A1 (en) Persistent session and data in transparently distributed objects
WO2007028248A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
JP2008059583A (ja) クラスタ・システムならびにクラスタ・システム内でレプリカをバックアップする方法およびプログラム製品
US8020034B1 (en) Dependency filter object
US7120821B1 (en) Method to revive and reconstitute majority node set clusters
WO2003054711A1 (en) A system and method for management of a storage area network
Bouteiller et al. Fault tolerance management for a hierarchical GridRPC middleware
Youn et al. The approaches for high available and fault-tolerant cluster systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040122

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040122

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20040122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041222

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051124

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060110

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080212

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090126

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090225

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090420

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090430

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees