JP2002049601A - コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品 - Google Patents

コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品

Info

Publication number
JP2002049601A
JP2002049601A JP2001160384A JP2001160384A JP2002049601A JP 2002049601 A JP2002049601 A JP 2002049601A JP 2001160384 A JP2001160384 A JP 2001160384A JP 2001160384 A JP2001160384 A JP 2001160384A JP 2002049601 A JP2002049601 A JP 2002049601A
Authority
JP
Japan
Prior art keywords
cluster
node
component
registry
configuration
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.)
Granted
Application number
JP2001160384A
Other languages
English (en)
Other versions
JP3707728B2 (ja
Inventor
N Novaes Markos
マルコス・エヌ・ノヴァエス
Gregory D Laib
グレゴリー・ディー・レイブ
Jeffrey S Lucash
ジェフリー・エス・ルカシュ
T Gering Ronald
ロナルド・ティー・ゲーリング
Sohosu George
ジョージ・ソホス
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 JP2002049601A publication Critical patent/JP2002049601A/ja
Application granted granted Critical
Publication of JP3707728B2 publication Critical patent/JP3707728B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test

Abstract

(57)【要約】 (修正有) 【課題】 コンピューティング環境のクラスタを自動的
に構成する。 【解決手段】 グローバル・データ記憶域を提供するシ
ステム・レジストリと、クラスタ化環境のノード上にロ
ーカルにデータを記憶し、システム・レジストリ内でグ
ローバルにデータを記憶する構成マネージャと、クラス
タの通信経路の状況を提供するための活性コンポーネン
トと、クラスタ化環境の1つまたは複数の他のコンポー
ネントにサービスを提供するグループ・サービス・コン
ポーネントと、クラスタ化環境の1つまたは複数のリソ
ース・コントローラと通信するリソース管理コンポーネ
ントとを含む。各コンポーネントは、その環境の1つま
たは複数の他のコンポーネントに対する1つまたは複数
のデータ依存関係または機能依存関係あるいはその両方
を有する。コンポーネント間の関係は、データ依存関係
および機能依存関係が非周期グラフを形成する(依存関
係の循環が回避される)ように作成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に分散コンピ
ューティング環境に関し、特に、分散コンピューティン
グ環境の複数ノードからなる1つまたは複数のクラスタ
を管理することに関する。
【0002】
【従来の技術】分散システムは、システムに対して高ス
ループットの作業あるいは連続的またはほぼ連続的な可
用性を必要とする状況を含む、様々な状況で使用する高
可用性のスケーラブル・システムである。
【0003】リソースを共用する能力を有する分散シス
テムはクラスタと呼ばれる。1つのクラスタは、リソー
スを共用し、互いに共同してシステム・タスクを実行す
る複数のオペレーティング・システム・インスタンスを
含む。現在、様々なクラスタ・システム(IBMが提供
するRS/6000SPシステムなど)が存在するが、
依然として既存のクラスタ・システムに対してさらに機
能強化を図ることが望ましい。たとえば、クラスタ・シ
ステムの管理を容易にするための機能強化が望ましい。
【0004】
【発明が解決しようとする課題】コンピューティング環
境のクラスタを自動的に構成するための方法、システム
およびプログラムを提供することにある。
【0005】
【課題を解決するための手段】コンピューティング環境
のクラスタを自動的に構成する方法を提供することによ
り、従来技術の欠点が克服され、追加の利点が得られ
る。この方法は、たとえば、コンピューティング環境の
クラスタに追加すべきノードにより、そのクラスタの1
つまたは複数のリソースの構成データの取得を開始する
ことと、そのクラスタのシステム・レジストリ・コンポ
ーネントにその構成データを記憶することと、その構成
データが更新されたことをそのシステム・レジストリ・
コンポーネントにより1つまたは複数の他のクラスタ・
コンポーネントに通知することを含む。
【0006】上記で要約した方法に対応するシステムお
よびコンピュータ・プログラムについても本明細書に記
載し、本明細書で請求する。
【0007】本発明の技法により、追加の特徴および利
点が実現される。本発明のその他の実施形態および態様
については、本明細書で詳述し、請求する本発明の一部
と見なす。
【0008】
【発明の実施の形態】本発明の1つまたは複数の態様に
よれば、オペレーティング・システムの1つまたは複数
のコピーを使用する分散コンピューティング環境が管理
される。オペレーティング・システムの各コピーは、そ
れが1組のリソース(たとえば、プロセッサ、ネットワ
ーク・インタフェース、ファイル、ファイル・システ
ム、記憶装置、周辺装置など)にアクセスできるように
構成される。このアクセスは、排他的なものにするか、
またはオペレーティング・システムの他のコピーと共用
することができる。リソースを共用する場合、オペレー
ティング・システムの個別コピーは共同し、それが管理
するシステム・リソースを共用する。リソースを共用す
るために、オペレーティング・システムのコピーは、リ
ソースの保全性が保持されるように、そのアクセスにつ
いて折衝する。たとえば、記憶装置の所与のセグメント
に複数のデータ・ブロックを書き込む必要があるオペレ
ーティング・システムの2つのコピーはそのセグメント
へのアクセスについて折衝するが、さもなければ、書込
み動作の順序により書込み中のデータの保全性が損なわ
れる恐れがある。
【0009】本発明の諸態様を組み込み使用する分散コ
ンピューティング環境の一例を図1に示し、本明細書で
説明する。分散コンピューティング環境100は、たと
えば、複数のLANゲート104により互いに結合され
た複数のフレーム102を含む。フレーム102および
LANゲート104については以下に詳述する。
【0010】一例の分散コンピューティング環境100
は8個のフレームを含み、そのそれぞれは複数の処理ノ
ード106を含む。ある事例では、各フレームは16個
の処理ノード(それぞれが1つまたは複数のプロセッサ
を有する)を含む。各処理ノードはたとえば、UNIX
(登録商標)ベースのオペレーティング・システムであ
るAIXを実行するRISC/6000コンピュータで
ある。1つのフレーム内の各処理ノードは、たとえば内
部LAN接続により、そのフレームの他の処理ノードに
結合される。その上、各フレームはLANゲート104
により他のフレームに結合される。
【0011】例として、各LANゲート104は、RI
SC/6000コンピュータ、LANへのコンピュータ
・ネットワーク接続、またはネットワーク・ルータのい
ずれかを含む。しかし、これらは例にすぎない。他のタ
イプのLANゲートが存在すること、ならびに他のメカ
ニズムを使用してフレームを互いに結合できることは、
当業者にとって明らかになるだろう。
【0012】図1の分散コンピューティング環境は一例
にすぎない。9個以上または7個以下のフレームあるい
はフレームあたり17個以上または15個以下のノード
を備えることは可能である。さらに、処理ノードはAI
Xを実行するRISC/6000コンピュータである必
要はない。処理ノードの一部または全部は、異なるタイ
プのコンピュータまたは異なるオペレーティング・シス
テムあるいはその両方を含むことができる。さらに、そ
の環境のノードまたはオペレーティング・システムのう
ちの1つまたは複数がその環境の他のノードまたはオペ
レーティング・システムとは異なる異種環境が本発明の
諸態様を含み使用することもできる。このような異種環
境のノードは、本明細書に記載するように、互いに共同
し、リソースを共用するという点で相互動作する。さら
に、本発明の諸態様は単一コンピュータ・システム内で
使用することもできる。これらの変形形態はいずれも、
ここで請求する本発明の一部と見なされる。
【0013】リソースを共用する能力を有する分散コン
ピューティング環境をクラスタと呼ぶ。特に、1つのコ
ンピューティング環境は1つまたは複数のクラスタを含
むことができる。たとえば、図2に示すように、コンピ
ューティング環境200は、クラスタA 202とクラ
スタB 204という2つのクラスタを含む。各クラス
タは1つまたは複数のノード206を含み、そのノード
はリソースを共用し、互いに共同してシステム・タスク
を実行する。各ノードはオペレーティング・システムの
個別コピーを含む。
【0014】特定のクラスタに対するノードのメンバシ
ップを検討する際に2通りの態様が存在する。一方の態
様は、そのクラスタの静的構成に関するものである。こ
の態様はノード定義と呼ばれる(図3を参照)。あるノ
ードをクラスタに対して定義すると、そのクラスタ内の
他のノードはこのノードを認識する。ノードは、正常な
ノード定義動作(以下に詳述する)後にクラスタに対し
て定義される。逆に、ノード削除動作後に、ノードはク
ラスタに対して定義解除される。
【0015】ノードの静的態様は、クラスタ・メンバシ
ップと呼ばれる動的(またはランタイム)属性とは異な
る。クラスタ・メンバシップとは、ノードが定義され、
作動可能(すなわち、オンライン)であるときにそのノ
ードがクラスタのメンバであると見なされることを意味
する。ここで、作動可能という用語は、そのノードがそ
のクラスタの他のメンバによって機能ノード、すなわ
ち、活性タスクと呼ばれる基本機能を実行可能なノード
として知覚されることをほのめかす。一例として、1つ
のノードは1組の活性タスクを連続的に実行し、一定の
間隔でクラスタの他メンバにハートビート・メッセージ
を送信することにより、そのノードがこのようなタスク
を実行できることを他のノードに報告する。
【0016】クラスタ・メンバシップは、任意の時点で
そのクラスタの一体部分として機能しているノードのリ
ストと見なすことができる。このリストはすべてのノー
ドにとって使用可能なものであり、本発明の一態様で
は、クラスタ・アーキテクチャにより、無共用分散シス
テムでも任意の時点ですべてのノードが同じメンバシッ
プ・リストにアクセスできることが保証される。(無共
用分散システムとは、そのノードがディスクまたはメモ
リなどの共用物理リソースを一切持たないシステムであ
る。)このようなシステムで特定のデータの同一ビュー
を維持するために、高度な同期プロトコルを使用する。
というのは、アトミック・トランザクションですべての
ノードにそのデータを分散しなければならないからであ
る。
【0017】メンバシップ・リストに対してノードを追
加するかまたはノードを削除するために、特定のプロト
コルを使用する。たとえば、メンバシップ・リストにノ
ードを追加するプロセスはノード加入プロセスと呼ばれ
る。逆に、ノード離脱プロセスにより、メンバシップ・
リストからノードを削除する。あるノードがクラスタ・
メンバシップにリストされない場合、そのノードはすで
にクラスタを離脱している。
【0018】各クラスタは、複数のコンポーネントを含
むクラスタ・アーキテクチャによって管理される。各コ
ンポーネントは、本明細書で詳述するように、そのクラ
スタの1つまたは複数のノード上で1つまたは複数の対
応プロセスを実行する。そのコンポーネントが複数のノ
ード上で複数のプロセスを実行する場合、そのアーキテ
クチャはこれらのノード間に分散される。しかし、分散
アーキテクチャは一例にすぎない。本発明の1つまたは
複数の態様を単一または非分散システムで使用すること
ができる。
【0019】一例では、クラスタ・アーキテクチャのコ
ンポーネントは、クラスタ・システムを構成し、ノード
がクラスタに加入するかまたはクラスタを離脱するとき
に発生するクラスタ構成データベース(後述する)の同
期を調整するために使用する分散構成マネージャ(DC
M)400(図4)と、クラスタ構成データベース内に
記憶されたデータを供給する1つまたは複数のプロセス
を含むシステム・レジストリ・サーバ・サブシステム4
02と、クラスタのメンバ間の通信経路の可用性に関す
る情報を提供するクラスタ・メンバシップ・リストを維
持する活性サブシステム404と、他のクラスタ・プロ
セスが論理グループを形成し、整合性のあるグループ状
態およびプロセス・メンバシップを維持できる機構を提
供するグループ・サービス・サブシステム406と、ク
ラスタ・リソースのアクセスおよび制御を管理する機構
であり、それによりクラスタ・クライアントがクラスタ
・リソースの状態および構成を監視できる機構も提供す
るリソース・マネージャ・サブシステム408とを含
む。
【0020】一実施形態では、図4に示すように、各コ
ンポーネントが複数のノード410間に分散される。す
なわち、各コンポーネントは、複数のノード上で1つの
プロセスを実行している。たとえば、DCM400は図
示した3つのノード上で1つのDCMプロセス412を
実行している。他のコンポーネントについても同じこと
が当てはまり、それぞれについては以下に詳述する。
【0021】分散構成マネージャ(DCM)サブシステ
ム400は、そのクラスタの一部として構成すべき各ノ
ード上で、分散構成マネージャ・デーモン(DCMD)
412と呼ばれるコンピュータ・プログラムのコピーを
提供する。DCMDは、クラスタのブートストラップ・
エージェントである。このため、DCMDプロセスは、
適切なクラスタ構成により他のクラスタ・コンポーネン
トを始動することを担当する。また、DCMDは、1つ
のノードをあるクラスタから他のクラスタに移動する場
合など、適切なときに他のクラスタ・コンポーネントを
停止するプロセスでもある。DCMD自体は、そのノー
ドのベース・オペレーティング・システムによってブー
トストラッピングされ、この例ではオペレーティング・
システムによって直接ブートストラッピングすべき唯一
のクラスタ・コンポーネントである。
【0022】DCMDは、各ノードのローカル記憶域内
にあって、1つまたは複数のクラスタ構成に関連するフ
ァイルの集合を維持する。このローカル構成データに加
え、DCMDは、グローバル構成データもサーバ・リポ
ジトリに記憶する。このクラスタ構成データについては
以下に詳述する。
【0023】システム・レジストリ・コンポーネント4
02は、グローバル・データ記憶の機能を提供する。こ
れは、可用性が高く、一例では、システム・レジストリ
・プロセス414(図4)として複数のノード間で複製
される。しかし、一実施形態では、図5に示すように、
あるクラスタのすべてのノード上にシステム・レジスト
リが複製されるわけではない。図5に示すように、ノー
ド(すなわち、オペレーティング・システム・インスタ
ンス)1、2、3はシステム・レジストリ・プロセス5
00を含むが、ノード4〜8は含まない。しかし、この
特定の例のノードはいずれも他のコア・クラスタ・プロ
セス(たとえば、DCMプロセス、活性プロセス、グル
ープ・サービス・プロセス、リソース・マネージャ・プ
ロセス)を含む。ノード4〜8はレジストリ・クライア
ント・ノードと見なされ、ノード1〜3はレジストリ・
サーバ・ノードと見なされる。というのは、レジストリ
機能がこれらのノード上で実行されるからである。
【0024】活性コンポーネント404(図4)は、通
信アダプタの状況と、そのクラスタ内のノード間の通信
経路の可用性を提供する。各ノードは、1つまたは複数
の通信アダプタを介して通信ネットワーク502(図5
に示すもの)に接続される。このようなアダプタのいず
れかが故障し、クラスタ・ノードを相互接続するネット
ワーク内の1つまたは複数の通信経路に影響する可能性
もある。活性コンポーネントはそのクラスタの1つまた
は複数のノード内でプロセスを実行するが、そのプロセ
スは各ノード内の各通信アダプタからハートビートとい
う定期検証メッセージを送信する。ノード内の活性プロ
セスの集合は各アダプタの可用性に関する部分的な知識
に関するメッセージを交換し、これらのメッセージによ
り活性システムは、クラスタ・システム内の各通信アダ
プタの状態と、任意の2つのアダプタ間の通信経路の可
用性についても論理的に推論することができる。
【0025】グループ・サービス・コンポーネント40
6は、他のコンポーネントに対して総称メンバシップ・
サービスを提供する。このようなサービスとしては、ア
トミック・ブロードキャストとも呼ばれる2フェーズ・
コミット・プロトコルを実行するための機構を含む。こ
れは、あるグループのメンバがそのグループのメンバシ
ップを制御し、グループ状態を維持できるようにする機
構も含む。
【0026】リソース管理コンポーネント408は、コ
ア・クラスタ・サービス(たとえば、DCM、システム
・レジストリ、活性、グループ・サービスおよびリソー
ス・マネージャ)の一部ではない他のクラスタ・サービ
スへの基本通信層を提供する。これらのサービスは、後
述するように追加のリソース・コントローラのカテゴリ
に分類される。一例では、この通信プロトコルはオブジ
ェクト指向のものである。したがって、リソース管理コ
ンポーネントによって制御すべきリソース・コントロー
ラは、それが制御するリソース・オブジェクトを定義す
るリソース記述ファイルをリソース管理コンポーネント
に提供する。この定義は、1組の属性またはデータ・フ
ィールドならびに各リソース・コントローラがサポート
する1組の機能によって行われる。
【0027】クラスタ・アーキテクチャの各コンポーネ
ントは、そのアーキテクチャの1つまたは複数の他のコ
ンポーネントに対する1つまたは複数のデータ依存関係
または機能依存関係あるいはその両方を有し、それは様
々なコンポーネント間の関係(すなわち、コンポーネン
ト間関係)を定義するものである。このような関係は、
本発明の一態様により、データ依存関係および機能依存
関係が非周期グラフを形成する(すなわち、依存関係の
循環が回避される)ように設計されている。
【0028】各コンポーネントのデータ依存関係の一例
を図6に図示し、以下に詳述する。 (A)システム・レジストリ: システム・レジストリ
は、クラスタの他のコンポーネントに対していかなるデ
ータ依存関係600も持っておらず、これはシステム・
レジストリの固有の特性である。システム・レジストリ
自体は、その構成データをすべて記憶することができ
る。システム・レジストリ・コンポーネントは、依存関
係グラフ内のリーフとして使用でき、その結果、いかな
る循環関係も回避できるように設計されている。システ
ム・レジストリは、可用性が高くなるようにそれ自体の
構成データを記憶する能力を有する。また、システム・
レジストリは、トランザクション論理を使用して要求が
伝播される複製データ・リポジトリとして設計されてい
る。 (B)分散構成マネージャ(DCM): DCMコンポ
ーネントは、すべてのノード上でローカルにコア・クラ
スタ構成データのローカル・バージョンを記憶する能力
ならびにシステム・レジストリにグローバル・データを
記憶する能力を有する。一例では、ローカル構成データ
の少なくとも一部分はグローバル・データと整合性のあ
るものでなければならない。しかし、場合によっては、
DCMサブシステムによって記憶されたローカル構成デ
ータがシステム・レジストリ・サブシステムにグローバ
ルに記憶されたデータにより順序が乱れる可能性も考え
られる。これは、たとえば、そのノードが一例としてメ
ンテナンスのためにクラスタから切断されている間に更
新を逸した場合に発生することになる。 たとえば、ノードは誤動作し、修理のために送られる場
合がある。その間、クラスタ化システムのシステム管理
者は、損傷したノードを定義解除し、したがって、ノー
ド定義解除動作によりその定義をグローバル・レジスト
リから削除することを決定することができる。損傷した
ノードが修理され、クラスタに再接続されると、それは
クラスタに対して定義解除されているので、もはやクラ
スタ・リソースを共用できなくなるはずである。それに
もかかわらず、最近修理したノード内のローカル・クラ
スタ構成は時代遅れになっており、依然としてそのノー
ドをクラスタに対して定義済みのものとして示す。この
ような場合を削除するため、他のすべてのクラスタ・コ
ンポーネント用のブートストラップ・エージェントであ
るDCMDデーモンは、ノード加入プロセスを開始する
前にローカル・クラスタ定義の妥当性をチェックする。
これにより、システム・レジストリ・コンポーネントに
対するDCMDデーモンのデータ依存関係602が作成
される。 (C)残りのコア・クラスタ・コンポーネント(活性、
グループ・サービス、およびリソース管理)は、DCM
によって記憶されたローカル・クラスタ構成を使用する
ので、分散構成マネージャ・コンポーネントに対して共
通のデータ依存関係604を有する。たとえば、ローカ
ル・クラスタ構成は、このアーキテクチャ内のクラスタ
・コンポーネントが使用する、レジスタ・サーバ・プロ
セスを実行するノードのリストならびにノード名および
番号などのブートストラップ情報を含む。システム・レ
ジストリ・コンポーネント自体を除き、他のコンポーネ
ントは、レジストリ・サーバに接続し、後述するグロー
バル・クラスタ構成を検索するために、そのノード・リ
ストを使用する。 (D)システム・レジストリ自体を除き、すべてのコン
ポーネントは、グローバル・クラスタ構成に対するデー
タ依存関係を有する。
【0029】各コンポーネントの機能依存関係の一例を
図7に図示し、以下に詳述する。 (A)分散構成マネージャ(DCM): DCMは、シ
ステム・レジストリ・コンポーネントによって提供され
るグローバル記憶機能の可用性に依存する(参照番号7
00を参照)。 (B)システム・レジストリ: システム・レジストリ
は、グループ・サービス・コンポーネントに対する機能
依存関係702を有する。この依存関係は、書込み動作
を伝播するために、システム・レジストリがグループ・
サービス・コンポーネントのメンバシップ・サービスを
使用することによって発生する。グローバル・クラスタ
構成データはレジストリ・サーバ・ノードとして機能す
る各ノード内で複製されるので、それに対する修正は複
製書込み動作を必要とする。このような書込み動作中に
は、複製の1つが故障し、複製動作の分散回復のための
論理を実現することが望ましくなる恐れがある。グルー
プ・サービス・コンポーネントによって提供されるメン
バシップ・サービスは、このような分散回復論理の一例
を含む。しかし、グループ・サービス・コンポーネント
に対する機能依存関係は書込み動作のみに影響する。シ
ステム・レジストリ・コンポーネントは、読取りタイプ
の動作の場合にグループ・サービス・コンポーネントに
対する依存関係を一切持たない。したがって、システム
・レジストリ・コンポーネントは、DCMDコンポーネ
ントによってブートストラッピングした後、その初期設
定の第1のフェーズ(以下に詳述する)を完了すること
ができる。このフェーズが完了した後、システム・レジ
ストリは、クラスタ構成データベースの最も最近更新し
たコピーをすでに検索しており、他のコンポーネントが
クラスタ構成データを読み取れるようにすることができ
る。次に、これにより、グループ・サービス・コンポー
ネントはそれ自体の初期設定を完了することができ、そ
れにより、後述するようにシステム・レジストリ・コン
ポーネントがその初期設定の第2のフェーズを続行する
ことを可能にする。 (C)活性コンポーネント: 活性コンポーネントは、
DCMDによってブートストラッピングされ(参照番号
704を参照)、活性サブシステムの構成をレジストリ
に記憶する(参照番号705を参照)。これは、他のコ
ンポーネントに対する他の機能依存関係を一切持ってい
ない。 (D)グループ・サービス・コンポーネント: グルー
プ・サービス・コンポーネントはDCMDによってブー
トストラッピングされる(706)。これは、クラスタ
内のノード間の通信経路の可用性を知る必要があるの
で、活性コンポーネントに対する機能依存関係(70
8)も有する。 (E)リソース・マネージャ・コンポーネント: リソ
ース・マネージャ・コンポーネントはDCMDによって
ブートストラッピングされる(710)。これは、グル
ープ・サービス・コンポーネントによってエクスポート
されるグループ・メンバシップ機能に対する依存関係
(712)も有する。これは、その構成データベースの
バージョン番号を決定するためにメンバシップ機能を使
用する。 また、追加のリソース・マネージャも、DCMに対する
機能依存関係(714)ならびにリソース・マネージャ
・コンポーネントに対する機能依存関係(716)を有
する。
【0030】コンポーネントのデータ依存関係または機
能依存関係あるいはその両方は、クラスタ化技法のブー
トストラップ・プロセス中に満足される。一例では、ク
ラスタ・ブートストラップ・プロセス中に依存関係を満
足するために、特定のシーケンスのイベントおよびメッ
セージを使用する。このシーケンスの一例については図
8に示し、本明細書で説明する。
【0031】ステップ0でブートストラップ・シーケン
スを開始する。クラスタ・アーキテクチャは、たとえ
ば、オペレーティング・システムによって開始されるソ
フトウェアの層として設計されている。基本オペレーテ
ィング・システム・ブートストラップ・プロセス後に、
オペレーティング・システムは、分散構成マネージャ・
プロセスを始動することによりクラスタ・ソフトウェア
をブートストラッピングする。次に、DCMDデーモン
を始動し、オペレーティング・システム・インスタンス
の存続期間にわたってそれを実行する。
【0032】前述したように、DCMは、(一例とし
て)各ノードのローカル記憶域に記憶された1組のデー
タ構造を維持する。このデータ構造としては、たとえ
ば、クラスタ・データ構造900(図9)、ノード定義
データ構造902(図10)、レジストリ・サーバ・ノ
ード・データ構造904(図11)を含み、そのそれぞ
れについては後述する。
【0033】クラスタ・データ構造900は、たとえ
ば、クラスタ名906と固有クラスタ識別子908を含
む。一例では、固有識別子をキー・フィールド(固有フ
ィールド)として使用する。クラスタ・データ構造内の
キー・フィールドは、同じクラスタ名でラベルを付け替
えられないようにオペレーティング・システムの個別イ
ンスタンスを保護する。クラスタは、人間の管理者によ
って作成される場合が多く、多数のプロセッサの構成プ
ロセス中に同一名で容易にラベルを付けられる可能性が
ある。さらに、本明細書に記載するクラスタ構成インフ
ラストラクチャは、非常に動的なものであり、したがっ
て、クラスタの作成および削除を可能にするものであ
る。クラスタは、分散システムのニーズに応じて動的に
作成し破壊することができる。固有識別子は、後述する
クラスタ定義動作によってクラスタが作成されたときに
生成される。この特徴により、クラスタ名の再利用の検
出が可能になる。たとえば、Aというラベルが付いたク
ラスタを作成し、削除し、もう一度作成した場合、固有
識別子フィールドが別個のものになるので、Aに関する
この2通りの定義のデータ構造は異なるものになるだろ
う。
【0034】さらに、クラスタ定義データ構造内の固有
識別子は他のクラスタ・リソースのマッピングのルート
にある。このシステムでは、クラスタ・データ構造用の
固有識別子はクラスタ・リソース内のラベルの接頭部に
ある。固有識別子マッピングと本明細書に記載するアー
キテクチャの使用により、クラスタ構成の間違った想定
のもとにクラスタ・リソースがクライアントによってア
クセスされるのを防止する。
【0035】ノード定義データ構造902は、たとえ
ば、ノード番号910と、人間の管理者にとってノード
識別をより容易にするために便利なものとして使用する
が、いずれのクラスタ・リソース・マネージャもノード
の構成にアクセスする手段として使用しないノード名9
12と、ノードの定義を識別する固有ノード識別子91
4とを含む。固有識別子は、特定のオペレーティング・
システム・インスタンスに関連する。この識別子は、あ
るノードがクラスタに対して定義されるたびに生成され
る。この固有識別子により、同じ名前を持つ2つのノー
ド間の区別、ならびにすでにクラスタに対して定義さ
れ、定義解除され、その後、同じ名前でもう一度定義さ
れた(再定義された)ノードとの区別が可能になる。
【0036】レジストリ・サーバ・ノード・データ構造
904は、クラスタに対して定義されるレジストリ・サ
ーバ・ノードのリストを含む。一例では、このデータ構
造は、レジストリ・サーバの順序付きリスト916と、
1次レジストリ・サーバの表示918とを含む。このリ
ストは、後述するように、システムのグローバル構成デ
ータを読み取るためにシステム・レジストリ・プロセス
へのアクセスを希望する他のクラスタ・コンポーネント
によって検索される。
【0037】上記のローカル・データ構造に加え、各ク
ラスタ・コンポーネントはローカル記憶域データ構造を
維持し、各コンポーネントはローカル・ノードに関連す
る情報を記憶するための予約空間である。ローカル・デ
ータ構成の一例を図12に示し、以下に説明する。
【0038】ただし、図12に示すデータ構造はUNI
X(登録商標)オペレーティング・システムにおける本
発明の具体的な実施例から導出されたものであるが、他
のオペレーティング・システムにおける同様の実施例も
可能であり、本発明の精神から逸脱するものではないこ
とに留意されたい。
【0039】ローカル記憶域データ・フィールドの一例
について以下に説明する。 1.「/」(1000)は、オペレーティング・システ
ム内のルート・ファイル・システムを示す。 2.「/var」(1002)は、オペレーティング・シス
テム拡張機能に関連するデータが記憶されるファイル・
システムである。 3.クラスタ論理は、「/var/ct」(1004)にロー
カル構成情報を記憶する。 4.「/var/ct/dcm」ディレクトリ(1006)は分散
構成マネージャ・コンポーネントによって所有される。
この例では、DCMコンポーネントは、他のクラスタ・
コンポーネントとしてクラスタID以下のディレクトリ
にそれを記憶するのとは対照的に、それ自体のデータを
記憶するためにより上位レベルのディレクトリを有する
唯一のコンポーネントである。これは、この特定の例で
は、DCMが、1つのノードを複数のクラスタに定義で
きることを認識している唯一のクラスタ・コンポーネン
トであるからである。 5.「/var/ct/dcm/configuration」ディレクトリ(1
008)には、DCMはそのノードを定義する対象とな
るクラスタのリストを記憶する。また、DCMは、その
ノードが現在属しているクラスタのIDもこのディレク
トリに記憶する。このIDは、ローカル構成データをど
こから読み取るべきかを決定するために他のクラスタ・
コンポーネントが使用する。 6.「/var/ct/dcm/logs」ディレクトリ(1010)に
は、DCMコンポーネントは、監査機構として使用す
る、そのランタイム・ログを記憶する。 7.ノードを定義する対象となるクラスタごとに、DC
Mは、「/var/ct」の下に「/var/ct/cluster_ID」とい
うラベルが付いたディレクトリ(1012)を作成する
が、「cluster_ID」というリテラルは以下に説明するよ
うに固有クラスタ識別子によって置換される。このディ
レクトリの下にDCMは他に4つのディレクトリも作成
し、そこには他のクラスタ・コンポーネントがそれぞれ
のランタイム・ロック1014、ランタイム・ログ10
16、ランタイム・コア情報1018、構成データ10
20を記憶することができる。
【0040】ローカル構成データに加え、DCMは、グ
ローバル構成データも記憶する。サーバ・リポジトリに
記憶されるグローバル構成データとしては、たとえば、
クラスタ定義データ構造のコピーならびにノード定義デ
ータ構造のコピーを含む。クラスタ・データ構造および
ノード定義データ構造のフィールドの値は、あるノード
がそのクラスタに対して定義されたときに設定され、依
然として整合性のあるものでなければならない。処理中
にローカル・データ構造のデータ・フィールドはグロー
バル・データ構造のデータ・フィールドと比較される。
この比較により何らかの差が得られた場合、これは、ノ
ード定義がそのクラスタではもはや有効ではないことを
示す可能性がある。
【0041】図8に戻ると、DCMDプロセスを開始し
た後、DCMDプロセスはシステム・レジストリ・プロ
セスを開始し、レジストリ・サーバ・ノードとして構成
されたノードを始動する(ステップ1)。このステップ
は、システム・レジストリ・コンポーネントのブートス
トラップ要件を満足するものである。
【0042】ステップ2〜4でDCMDデーモンは、た
とえば、そのクラスタのすべてのノード内の活性コンポ
ーネント、グループ・サービス・コンポーネント、リソ
ース・マネージャ・コンポーネントを始動する。
【0043】次にステップ5でシステム・レジストリ・
サブシステムはその初期設定の第1のフェーズを実行す
る。特にこのサブシステムは、最も最近使用可能になっ
たグローバル構成データベースのコピーを検索する手順
を実行する。このフェーズ中、DCMDによってブート
ストラッピングされたシステム・レジストリ・プロセス
は、グローバル構成データベースの実現番号を含むメッ
セージを交換する。次にシステム・レジストリ・コンポ
ーネントは、最高の実現番号を有する構成データベース
のコピーを選択する。このようなコピーは、後述するよ
うにコンポーネントの初期設定の第2のフェーズを続行
することができる。
【0044】初期設定の第1のフェーズの完了後、シス
テム・レジストリ・コンポーネントにより他のコンポー
ネントは読取りタイプの動作を発行することができ、そ
れにより他のコア・クラスタ・コンポーネントはそれぞ
れの初期設定を完了することができる。すなわち、第1
の初期設定フェーズが完了した後、システム・レジスト
リ・サブシステムは、他のクラスタ・コンポーネントに
グローバル・クラスタ構成データを供給できるようにな
る。システム・レジストリ・コンポーネントにより、他
のコンポーネントはグローバル構成データを読み取るこ
とができるが、グローバル構成に修正を加えることはで
きない。これは、グローバル構成データに対する修正が
書込み動作によって行われるからであり、システム・レ
ジストリ・コンポーネントが書込み動作を実行するため
にグループ・メンバシップ機能に対する依存関係を有す
るからである。このため、グローバル・クラスタ構成デ
ータを修正する動作は、後述するようにシステム・レジ
ストリ初期設定の第2のフェーズが完了するのを待つ必
要がある。
【0045】ステップ6でDCMDは、システム・レジ
ストリからグローバル・クラスタ構成データを読み取る
ことができる。したがって、ステップ7でDCMDは、
それが各ノードに記憶するローカル構成がシステム・レ
ジストリに記憶されたグローバル・クラスタ構成と整合
性のあるものであるかどうかを検証することができる。
DCMDコンポーネントはこの時点でもグローバル・ク
ラスタ構成に変更を加えることができない。というの
は、システム・レジストリはまだ動作を書き込むことが
できないからである。それにもかかわらず、DCMD
は、ローカル構成がグローバル・クラスタ構成と整合性
のあるものであるかどうかを判定し、次にクラスタ・ブ
ートストラップ・プロセスを続行し、最終的に他の依存
関係を満足することになる他のコンポーネントを始動す
ることができ、次にシステム・レジストリはその初期設
定の第2のフェーズを完了することができ、書込み可能
状態になる。
【0046】ステップ8で活性コンポーネントはグロー
バル構成データを読み取るはずである。しかし、そのコ
ンポーネントはまず、システム・レジストリ・サーバの
位置を把握し、情報がローカル・クラスタ構成内にある
ことを把握する必要がある。したがって、活性コンポー
ネントは、この情報を検索するためにDCMDへの呼出
しを行う。
【0047】ステップ9では、前のステップと同様の手
順でグループ・サービス・コンポーネントがDCMDコ
ンポーネントからローカル・クラスタ構成データも検索
する。
【0048】ステップ10で活性サブシステムは、シス
テム・レジストリ・サーバからグローバル構成データを
読み取ることにより、グローバル構成データに対するそ
の依存関係を満足する。さらにステップ11で活性コン
ポーネントは、すでにその依存関係をすべて履行してい
るので、その初期設定を終結し、他のクラスタ・コンポ
ーネントがその活性機能を使用できるようにすることが
できる。
【0049】ステップ12でグループ・サービス・コン
ポーネントはシステム・レジストリからグローバル構成
データを読み取ることもできる。次にグループ・サービ
ス・コンポーネントは、ステップ13に示すように、活
性コンポーネントからの活性機能を使用することができ
る。
【0050】ステップ14でグループ・サービス・コン
ポーネントは、その初期設定を完了し、他のクラスタ・
コンポーネントがグループ・メンバシップ機能を使用で
きるようにすることができる。
【0051】ステップ15でシステム・レジストリ・コ
ンポーネントはそのメンバシップ・サービスの要件を満
足し、それによりシステム・レジストリは初期設定手順
の第2のフェーズを実行できるようになる。このフェー
ズでは、第1のフェーズで決定したようにより低い実現
番号を有するグローバル構成データベースのコピーが、
グループ・サービス・コンポーネントによって提供され
るメンバシップ・サービスを使用して更新される。これ
により、システム・レジストリ・コンポーネントは、そ
の初期設定の第2のフェーズを終了することができ、グ
ローバル・クラスタ構成に照らし合わせて書込み動作を
発行することができる。
【0052】ステップ16でシステム・レジストリ・コ
ンポーネントは、その初期設定の第2のフェーズを終結
する。このフェーズが完了した後、システム・レジスト
リ・コンポーネントは、複製書込み動作を実行するため
にメンバシップ・サービスを使用することができ、した
がって、他のクラスタ・コンポーネントがそれぞれのグ
ローバル・クラスタ構成データベースに修正を加えるこ
とができるようになる。
【0053】ステップ17でリソース・マネージャ・コ
ンポーネントは、DCMDコンポーネントからローカル
構成データを検索する。リソース・マネージャ・コンポ
ーネントは、システム・レジストリからグローバル構成
データを読み取り、それに対して所望の修正を加える
(ステップ18)。
【0054】さらに、ステップ19でリソース・マネー
ジャ・コンポーネントは、グループ・サービス・コンポ
ーネントのメンバ・サービスを使用して、その公正デー
タベースのバージョン番号を決定する。その時点でリソ
ース・マネージャ・コンポーネントは、そのデータおよ
び機能要件がすべて履行されており、その初期設定を完
了している(ステップ20)。したがって、リソース・
マネージャ・コンポーネントは、他の構成済みリソース
・コントローラをブートストラッピングすることができ
る(ステップ21)。
【0055】追加のリソース・コントローラは、DCM
Dコンポーネントからローカル・クラスタ構成を読み取
り(ステップ22)、システム・レジストリからグロー
バル・クラスタ構成を読み取る(ステップ23)。さら
に、これらのコントローラは所望の修正を実行する。ス
テップ24で追加のリソース・コントローラはそれぞれ
の初期設定を終結する。
【0056】上記のブートストラップ・プロセスの実行
後、すべてのクラスタ・コンポーネントは完全に使用可
能になり、コンポーネントのデータおよび機能要件はす
べて履行される。
【0057】クラスタを管理するため、本発明の少なく
とも一態様により様々な定義動作を使用する。このよう
な動作としてはたとえば以下のものを含む。 (A)新しいクラスタ定義を作成するクラスタ定義動
作。特に、この動作が発行されるノードにローカル・ク
ラスタ構成を記憶するために新しいクラスタ識別子と新
しいローカル記憶域が作成される。この新しいローカル
記憶域は、ディレクトリ・パス内の新しいクラスタ識別
子を有するディレクトリに置かれる。また、この動作
は、新しいグローバル記憶域も作成する。DCMコンポ
ーネントは、この動作が発行されるノードをレジストリ
・サーバ・ノードとする。また、このプロセスでDCM
コンポーネントは、システム・レジストリ・プロセスを
ブートストラッピングし、前述のように本明細書で定義
するグローバル・クラスタ・データ構造を作成する。 (B)クラスタ定義解除動作は、クラスタ定義を消去す
るために使用する。この動作は、クラスタの一部になる
よう定義されたすべてのノード内のローカル・クラスタ
定義を消去する。また、これは、システム・レジストリ
・コンポーネントによって管理されるグローバル・クラ
スタ記憶域のすべてのコピーも消去する。 (C)クラスタ修正動作は、クラスタ定義の属性を修正
するために使用する。修正可能な属性の1つはクラスタ
名である。この属性は、クラスタ・コンポーネントが内
部で使用しないので修正することができる。むしろ、ク
ラスタの識別に内部で使用するのはクラスタIDであ
る。 (D)ノード定義動作は、クラスタに対してノードを定
義するために使用する。クラスタはクラスタ定義動作に
よってすでに確立されている。新しいローカル記憶域は
新たに定義したノード内に作成される。また、グローバ
ル記憶域に記憶されるクラスタ定義も新しいノード定義
によって更新される。 (E)ノード定義解除動作は、ノードの定義をグローバ
ル・クラスタ構成およびグローバル記憶域から消去する
ために使用する。また、この動作は、特定のクラスタの
ノードの定義に関連する、そのノード内のローカル記憶
域も消去する。 (F)レジストリ・サーバ・ノード定義動作は、クラス
タ内の特定のノードをレジストリ・サーバ・ノードとし
て定義する。この動作後、DCMコンポーネントはその
ノードをレジストリ・サーバ・ノードとして識別し、必
要であるかまたは望ましいかあるいはその両方の場合に
ノード内でレジストリ・サーバ・プロセスをブートスト
ラッピングする。 (G)レジストリ・サーバ・ノード定義解除は、レジス
トリ・サーバ・ノードとしてのノード定義を除去する動
作である。この動作後、システム・レジストリ・プロセ
スはもはやそのノード上でブートストラッピングされな
くなる。 (H)ノード修正動作は、グローバル・クラスタ構成な
らびにローカル記憶域内の両方でノード定義の属性を変
更する。変更可能なノード構成の属性の1つは、ノード
の名前である。
【0058】様々な定義動作に加え、様々な制御動作を
使用して、クラスタ、ノード、レジストリ・サーバを管
理する。このような動作としてはたとえば以下のものを
含む。 (A)オンライン・クラスタ動作は、クラスタに対して
定義されることが分かっている他のすべてのノードへの
接触を試みるためにノード内でプロセスを開始し、それ
らのノードがオンラインに移行することを要求する。 (B)オフライン・クラスタ動作は、クラスタに対して
定義されることが分かっている他のすべてのノードに接
触し、それらのノードがオフラインに移行することを要
求する。 (C)オンライン・ノード(加入)動作は、ノードをオ
ンラインで特定のクラスタに移動するようDCMプロセ
スに要求する。この要求により、DCMコンポーネント
はクラスタ・ブートストラップ手順で前述したアクショ
ン・シーケンスを開始することになる。 (D)オフライン・ノード動作は、オフラインになるよ
う特定のノードに要求する。この動作は、ノード上で動
作している他のすべてのクラスタ・コンポーネントを停
止するようDCMコンポーネントに要求する。 (E)オンライン・レジストリ・サーバ動作は、特定の
ノードでシステム・レジストリ・プロセスをブートスト
ラッピングするようDCMコンポーネントに要求する。 (F)オフライン・レジストリ・サーバ動作は、特定の
ノードでシステム・レジストリ・プロセスを停止するよ
うDCMコンポーネントに要求する。
【0059】クラスタを管理するために、上記の定義お
よび制御動作のそれぞれを使用することができる。これ
らの動作の1つまたは複数については以下に詳述する。
【0060】本明細書に記載するように、本発明の一態
様のクラスタ・アーキテクチャは、オペレーティング・
システム・インスタンス(すなわち、ノード)がクラス
タに対して定義されたときに生成される固有識別子を使
用する。固有識別子は、クラスタ・システムの実施例に
とって意味のあるものになるように生成される(図13
を参照)。たとえば、単一オペレーティング・システム
・コンピュータ1100の場合、ある事例では、システ
ムのマザー・ボード内の読取り専用メモリ(ROM)に
記憶された番号から固有識別子が導出される。
【0061】複数オペレーティング・システム・コンピ
ュータ1102の場合、オペレーティング・システム・
インスタンスは、既知の固有識別子生成技法を使用し
て、そのノードが定義されたときに固有識別子を生成す
るだけの可能性がある。
【0062】さらに、区別された1つのハードウェアを
有するコンピューティング装置1104の場合、オペレ
ーティング・システムのアイデンティティはその単一ハ
ードウェアから導出される。このような実施例は、許可
ユーザの識別にスマート・カードを使用する装置内な
ど、様々な応用例では意味のあるものである。
【0063】この識別子は、ローカル構成記憶域ならび
にグローバル構成データベースの両方に記憶される。両
方のタイプの記憶域を使用するので、いずれかに理由
(たとえば、メンテナンス手順)によりデータの順序が
乱れる場合にデータを調整するために、本発明の一態様
により1組の規則が提供される。たとえば、順序が乱れ
たデータがノードの識別子である場合、その識別子を調
整するために1組の規則が提供される。この特定の例に
ついては以下に詳述する。しかし、他の不整合データを
調整するために同様の規則を使用することを理解された
い。
【0064】分散クラスタ・システムは1組のマシンで
あり、そのそれぞれは別々の時期に通信ネットワークか
ら切断することができるので、オペレーティング・シス
テムの1つのインスタンスは、それが所与のクラスタの
1つのノードとして定義されたときに識別される。しか
し、オペレーティング・システムのそのインスタンスは
電源異常またはメンテナンス動作のために停止する可能
性があり、それが所与のクラスタのメンバとして定義さ
れている場合にそれ自体をそうであると理解することが
できるはずである。したがって、ノードがクラスタに加
入するたびに、それは、ローカル記憶域内の固有識別子
がそのノード用のグローバル識別子と一致するかどうか
をチェックする。
【0065】特に、一実施形態では、基本オペレーティ
ング・システムの基本ブートストラップ・プロセス中に
オペレーティング・システムによって固有識別子が読み
取られる。次に基本オペレーティング・システムは、ク
ラスタ・ブートストラップ・シーケンスの開始時に分散
構成マネージャに固有識別子を渡す。次に分散構成マネ
ージャは、クラスタに対してそれが定義されたときにグ
ローバル記憶域1106とローカル記憶域1108の両
方にこの固有識別子を記憶する。分散構成マネージャ
は、クラスタにノードを加入する動作を実行するたび
に、固有識別子の3通りのインスタンス(すなわち、ブ
ートストラップ・シーケンスの際にオペレーティング・
システムが渡す識別子であって、ここでオリジナル・コ
ピーと呼ぶ識別子(UID)1110、ローカルで記憶
した(キャッシュした)コピー1108、グローバルで
記憶したコピー1106)の妥当性をチェックする。
【0066】ノードがクラスタに加入するプロセス中
に、この3つの識別子を以下のように比較する。 1)オリジナル識別子をローカル識別子と比較する。 2)ローカル識別子をグローバル識別子と比較する。
【0067】この比較により、以下に示す4通りの結果
が得られる可能性がある。
【0068】
【表1】
【0069】次に分散構成マネージャは、たとえば、上
記のシナリオのそれぞれに応じて以下のアクションを採
用する。 シナリオ1: この場合、3つの識別子はすべて同じで
あり、したがって、ノード定義は正しいものである。こ
れは通常ケースである。他の3通りのケースは、メンテ
ナンス動作など、ノード定義に影響する動作の結果とし
て存在するだけである。 シナリオ2: この場合、オリジナル識別子はローカル
識別子と等しいが、ローカル識別子はグローバル識別子
と同じではない。これは、ノードがクラスタに接続され
ていない間にノード定義を削除したときに発生する。ノ
ードはクラスタに接続されていないので、ノード削除プ
ロセスに関与することができない。したがって、ノード
が削除されたという趣旨で、ローカル・データ構造の更
新は行われない。ノード上でのメンテナンスが終了し、
ノードが再加入しようと試みると、そのノードはそれ自
体の削除を通知し、したがって、そのノードが特定のク
ラスタから削除されたという趣旨で、ローカル・データ
定義をクリーンアップできるようになる。 シナリオ3: この場合、オリジナル識別子はローカル
識別子と一致せず、ローカル識別子はグローバル識別子
と一致する。したがって、オリジナル識別子は、たとえ
ば、メンテナンス動作時に置き換えられている。これ
は、置き換えなければならないハードウェア・リソース
からオリジナル識別子が得られたときに発生する。この
ようなリソースの例は、それぞれの固有識別子が読取り
専用メモリ(ROM)に記憶されているマザー・ボード
およびスマート・カードである。オリジナル識別子が記
憶されているハードウェアを置換することが必要になる
かまたは望ましくなる場合、クラスタ論理は、このケー
スをシナリオ2および4のような間違った定義とは区別
しなければならない。この場合、ローカル識別子とグロ
ーバル識別子は一致しており、ノード定義が依然として
クラスタ内で有効であることを示す。したがって、実行
するアクションは、オリジナル識別子が置き換えられた
という趣旨で、ノード定義を訂正することになる。した
がって、分散構成マネージャは、新しいオリジナル識別
子と一致するようにローカル識別子とグローバル識別子
を両方とも変更する。 シナリオ4: この場合、オリジナル・ノード識別子は
ローカル識別子と一致せず、ローカル識別子はグローバ
ル識別子と一致しない。したがって、このノードには2
回のメンテナンス動作が行われている。これは、ノード
がクラスタから切断されている間にグローバル構成から
削除されており、オリジナル識別子も置き換えられてい
る。このケースは上記のシナリオ2に類似している。と
いうのは、グローバル構成がローカル記憶域に最後にキ
ャッシュされた値と一致しないことが決定要因になるか
らである。したがって、実行するアクションは、ノード
がクラスタから削除されたという趣旨で、ローカル・デ
ータ定義をクリーンアップすることになる。
【0070】一実施形態では、シナリオ3などの所与の
シナリオで分散クラスタ・マネージャはオリジナル識別
子の自動訂正を実行することができるが、これはそのク
ラスタを識別する固有ハードウェアがメンテナンス動作
で置き換えられた場合に所望の効果である。この特徴に
より、たとえば、前のカードを紛失した場合に他のスマ
ート・カードを使用できるようになるだろう。分散構成
マネージャは、グローバル・データベースで値を調べる
ことにより、クラスタに対して前に定義されたマシンを
識別することができる。しかし、シナリオ4に例示する
ように、事前にクラスタに対して定義されていないマシ
ンで新しいカードを使用することはできないだろう。こ
の特徴も所望のものである。というのは、クラスタ定義
動作は、クラスタに対して定義すべきマシンが実行しな
ければならない明示動作であるからである。
【0071】クラスタ・システムのメンバとしてノード
を確実に定義し、クラスタを加入するためのデータ整合
性の維持に関する詳細について、以下に説明する。
【0072】ローカル構成とグローバル・クラスタ構成
データベースの両方に変更が加えられ、両方のリポジト
リのデータが整合性を維持しなければならないので、ノ
ード定義動作などの動作はアトミック方式で実行される
(すなわち、その動作は完了まで実行されるかまたは打
ち切られる)。動作が打ち切られる場合、両方のリポジ
トリのデータは、クラスタ化アーキテクチャと整合性の
ある状態に復帰される。これは、1つのノードを何回も
定義し定義解除できることと、定義解除動作が行われた
ときにそのノードをクラスタから切断できることを考慮
に入れたものである。
【0073】クラスタに対するノード定義の整合性を執
行するために、ノード定義動作は、そのノード自体をノ
ード定義プロトコルに関与させる。この動作中にそのノ
ードの固有識別子はノード番号に関連付けられるが、こ
のノード番号もそのノードが定義される特定のクラスタ
に固有のものである。しかし、ノード番号はすべてのク
ラスタにわたって固有であるわけではない。したがっ
て、複数ノードのプールを複数クラスタ配置(後述す
る)に使用する場合、各クラスタで同じ番号または異な
る番号を付けて1つのノードを定義する場合も考えられ
る。しかし、この実施形態では、1つのノードは任意の
特定の時点で1つのクラスタのみでオンライン(アクテ
ィブ)になることができる。
【0074】ノード番号識別子は、それによってクラス
タに対してノードを把握させる内部識別子である。ノー
ド定義プロセスは、一例では、所与のノード番号が、当
初は特定の固有識別子で定義されたオペレーティング・
システムの1つのインスタンスに関連するように保証す
るものである。ノード定義プロセスの詳細については、
図14および図15に示す例に関連して説明する。
【0075】図14を参照すると、ノード定義プロセス
に関与するプロセス(たとえば、コンピュータ・プログ
ラム)として、レジストリ・サーバとして定義されるク
ラスタ1204の1つまたは複数のノード1202内に
位置するシステム・レジストリ・サーバ・プロセス12
00(図14)と、ノード定義要求1208が発行され
るノードまたはその動作の経路指定先になるノードで動
作する分散構成マネージャ1206(すなわち、メンバ
DCMプロセス)と、クラスタに追加されるノードで動
作する分散構成マネージャ1210(すなわち、非メン
バDCM)という3つのプロセスが存在する。図15に
関連して後述するように、この3つのプロセスは定義プ
ロトコルに関与する。
【0076】ステップ1では、ノード定義要求がメンバ
DCMプロセスに渡される。一例では、定義すべきノー
ドのノード(たとえば、IP)アドレスが要求とともに
渡される。任意選択のパラメータとして、固有ノード識
別子、ノード番号、ノード名も渡すことができる。明示
的に設定されていない場合、固有識別子、ノード番号、
ノード名の値はメンバDCMプロセスによって生成され
る。
【0077】ステップ1で得られたノード・アドレス
は、非メンバDCMプロセスに接触するためにメンバD
CMが使用する(ステップ2)。このメッセージでメン
バDCMプロセスは非メンバDCMプロセスにクラスタ
識別子を渡す。
【0078】ステップ3で非メンバDCMプロセスは、
その要求を受け取り、受け取ったクラスタ識別子で識別
されるクラスタのメンバとして定義される。非メンバD
CMは、それが固有クラスタ識別子によってすでに識別
されたローカル構成を一切持っていないことをチェック
する。(前述のシナリオの中には、そのノードが古い定
義を有する可能性があるものもある。)非メンバDCM
は、ホスト・オペレーティング・システムによって渡さ
れたそれ自体の固有識別子でこの要求に応答する。ま
た、これは、そのクラスタIDに関する前の定義がロー
カル記憶域で見つかったかどうかを示す状況コードもこ
の応答に含める。
【0079】メンバDCMは、非メンバDCMノードの
固有識別子を含む応答を非メンバDCMから受け取る
(ステップ4)。メンバDCMは、この値を保管し、ノ
ード識別子がグローバル記憶域で報告されたかどうかを
チェックする(ステップ5)。たとえば、メンバDCM
は、システム・レジストリ・プロセスに対してルックア
ップ要求を行って、その特定の固有識別子で定義された
ノードをクラスタ内で見つける。システム・レジストリ
は、ステップ4で渡された固有ノード識別子に対応する
可能なノード定義を含むメッセージまたはこのような定
義がまったく存在しないことを示す戻りコードで応答す
る(ステップ6)。
【0080】ステップ7でメンバDCMは前述のメッセ
ージを受け取る。このような定義が見つかった場合、メ
ンバDCMは、この定義が非メンバDCMによって報告
されたものと同じであるかどうかをチェックする。これ
らの定義が同一である場合、非メンバ・ノードがそのク
ラスタに対してすでに定義されている(このノード定義
要求は誤って発行されたものであり、この場合の「非メ
ンバ」というラベルは適切ではない)という趣旨のメッ
セージがノード定義要求側に返送される。これらの定義
が同一ではない場合、ローカル定義とグローバル定義が
ともに削除され、ノード定義プロセスが続行される。残
る可能性として、非メンバ・ノードはグローバル・クラ
スタ構成で見つけることができないローカル定義を報告
する。この場合、定義が一致しない場合と同様に、非メ
ンバDCMは前の定義を消去するよう要求される。
【0081】ステップ8でメンバDCMは、当初はステ
ップ1で与えられるノード・アドレスと、固有ノード識
別子、ノード番号、ノード名をシステム・レジストリに
渡し、新しいノード用の項目を作成するようシステム・
レジストリに要求する。システム・レジストリは、グロ
ーバル・クラスタ構成に対して前述の項目をコミット
し、動作の成功を通知するメッセージをメンバDCMに
返送する(ステップ9)。
【0082】ステップ10でメンバDCMは上記のメッ
セージを受け取る。動作が成功しなかった場合、ノード
定義プロセスは打ち切られ、プロセスが失敗したという
メッセージがノード定義の要求側に返送される。成功し
た場合、プロセスは続行される。次にメンバDCMは、
ローカル記憶域に対して新しいノード定義をコミット
し、適切であれば前の定義を消去するよう非メンバDC
Mに要求する(ステップ11)。
【0083】ステップ12で非メンバDCMは、前述の
要求を実行し、要求された動作の成功を通知するメッセ
ージをメンバDCMに返送する。メンバDCMはこのメ
ッセージを受け取る(ステップ13)。非メンバDCM
によって報告される結果が失敗である場合、メンバDC
Mは定義動作を打ち切り、ノード定義動作の要求側に失
敗を報告する。メンバDCMは、ステップ8で作成され
たグローバル記憶域内の定義を消去する試みも行う。失
敗ではない場合、プロセスは続行される。
【0084】メンバDCMプロセスはノード定義動作を
正常に完了しており、次に、動作の成功を示すメッセー
ジを要求側に返す(ステップ14)。
【0085】クラスタに対してノードを定義した後、た
とえば、本発明の自動クラスタ構成技法を使用すること
により、システム管理者の側で追加のアクションを行う
必要なしに、そのノードをクラスタに挿入(加入)する
ことができる。この技法は、たとえば、ノード定義の直
後またはオンライン・ノード要求を発行したときに開始
することができる。
【0086】自動クラスタ構成技法の一実施形態につい
て図16および図17に関連して説明する。具体的に
は、図16はこの技法で使用する様々なプロセスの一例
を示し、図17はプロセス間のメッセージ・フローの一
例を示す。
【0087】図16を参照すると、たとえば、オンライ
ン・ノード要求1400によりクラスタに対して新しい
ノードを構成するアクションは、新しいノード1404
上のDCMプロセス1402によって調整される。これ
は、それが初めてクラスタに加入するまで、クラスタ内
の他のプロセスはそのノードの構成に関する知識がない
からである。
【0088】ノード定義の時点では、新しいノードとク
ラスタとの間で最小量のデータしか交換されない(図1
7、ステップ1)。交換されるデータは、新しいノード
の固有識別子の保証に関するものであり、レジストリ・
サーバのリスト1406をシードするためのものでもあ
る。ローカル識別子/ノード番号の対は、グローバル・
リポジトリの識別子/ノードの対と比較される。この比
較が成功すると、加入を続行することができる。
【0089】クラスタに加入するよう新しいノードに要
求すると(図17、ステップ2)、新しいノード上のD
CMプロセスは、新しいノード内のリソース・マネージ
ャ1408に対して(図17、ステップ3)、リソース
・コントローラ1410にメッセージを送り(図17、
ステップ4)それぞれの構成をシステム・レジストリ1
412に書き込むよう要求する。このプロセスはノード
がクラスタに加入するたびに繰り返され、このプロセス
によりノード構成の自動更新も可能になる。
【0090】したがって、リソース・コントローラはそ
れらが制御するリソース(たとえば、ハードウェア)用
の構成によりシステム・レジストリを更新し(図17、
ステップ5)、更新が完了したことを新しいノード上の
リソース・マネージャに通知する(図17、ステップ
6)。次にリソース・マネージャ・プロセスは、それに
登録されたリソース・コントローラに関するこの動作の
完了状況を受け取ったときにDCMに通知する(図1
7、ステップ8)。
【0091】新しいノード上のDCMプロセスは、更新
が完了したという通知をリソース・マネージャから受け
取り(図17、ステップ9)、加入プロセスを続行す
る。
【0092】並列アクションで、クラスタ1416上の
システム・レジストリ・プロセス1414は、構成が更
新されたという趣旨でイベント加入者が受け取ることが
できるイベントを送る(図17、ステップ7)。初めて
クラスタにノードを追加する場合、このイベントによ
り、他のクラスタ・コンポーネントが新しいノードをク
ラスタ・メンバとして理解することが可能になる。
【0093】上記の手順により、システム管理者からの
情報を必要とせずに、ノードはそれ自体をクラスタのメ
ンバとして構成することができる。管理者は、一例で
は、ノード定義手順用のノード・アドレスのみを供給す
る。ノード定義手順中にレジストリ・サーバのリストが
新しいノードにシードされる。クラスタに加入するよう
新しいノードに要求すると、そのノードはレジストリ・
サーバのリストを使用して作業システム・レジストリ・
プロセスを見つける。次に、新しいノード上のリソース
・コントローラは、それが制御するリソースの構成を発
見し、この情報をグローバル・クラスタ構成データベー
スに書き込むよう要求される。(リソース・コントロー
ラは、特定のリソースに関して書き込まれ、それぞれの
構成を発見する方法を把握しているプロセスである。)
有利なことに、この動作は新しいノードによって開始さ
れ、この情報を手動で提供することをシステム管理者に
要求しない。
【0094】一例では、そのノードの構成がグローバル
・リポジトリと整合性のあるものであることを保証する
ために、ノードがクラスタに加入するたびに上記の手順
が繰り返される。たとえば、この手順により、システム
管理者はクラスタからノードを切断し、新しい通信アダ
プタなどの何らかのハードウェアを追加し、ノード構成
に変更を加え、ノードがクラスタからオフラインになっ
ていた間に行われたいずれの変更もクラスタに通知する
必要なしにそれをクラスタに再接続することができる。
【0095】本発明の少なくとも一態様によれば、コン
ピューティング環境はそこに定義された1つまたは複数
のクラスタを有することができる。たとえば、コンピュ
ーティング環境1600(図18)は、クラスタA 1
602とクラスタB 1604とを含む。それぞれのク
ラスタはそれに対して定義された1つまたは複数のノー
ド1606を有する。さらに、図18に示すように、1
つまたは複数のノードを両方のクラスタに対して定義す
ることもできる。
【0096】各クラスタは、それに関連する1つまたは
複数のレジストリ・サーバを有する。たとえば、クラス
タAはレジストリ・サーバ1608を有し、クラスタB
はレジストリ・サーバ1610を有する。レジストリ・
サーバ1608は1つまたは複数のサーバ・ノード16
12を含む。同様に、レジストリ・サーバ1610は1
つまたは複数のサーバ・ノード1614を含む。1組の
レジストリ・サーバのサーバ・ノードのうちの1つまた
は複数は、他の1組のレジストリ・サーバの1つまたは
複数のノードとオーバラップすることができる。
【0097】本発明の他の態様では、あるクラスタから
他のクラスタへノードを迅速に移動することができる。
この能力により、あるクラスタが所与の瞬間に経験する
作業負荷間でノードをシフトすることが可能になる。た
とえば、ウェブ・サービングおよびデータベース・サー
ビスなど、2通りのアプリケーションに使用するノード
のプールを有する企業について検討する。この企業は、
本発明のクラスタ化技法を使用すれば、それぞれが1つ
のアプリケーション専用である2つのクラスタ、すなわ
ちクラスタAとクラスタBを定義することができるだろ
う。次に、このようなアプリケーションでの作業負荷は
時刻に応じて変動し、日中はウェブ・サービングの方が
アクティブであり、夜間はデータベース・サービスの方
がアクティブであると想定する。この企業は、クラスタ
Bの負荷の方が大きいときにクラスタAからいくつかの
ノードをクラスタBに移動し、逆も同様に行いたいと希
望するだろう。
【0098】従来のクラスタ化システムでは、システム
管理者は、まず、クラスタAでノードをオフラインに移
行し、次にそのノードをクラスタAで定義解除し、次に
それをクラスタBに対して定義し(通常、多大な手動構
成を必要とする)、その後、クラスタBでそのノードを
オンラインに移行しなければならないだろう。従来のシ
ステムは、手動介入を必要とし、非常に時間のかかるも
のである。作業負荷平衡アプリケーションについて検討
する場合、ノードを移動するプロセスに費やす時間は非
常に重要なものである。というのは、通常、作業負荷
は、この例のように夜間と日中だけでなく、ものの数分
で変化する非常に動的な尺度だからである。したがっ
て、作業負荷平衡アプリケーションで価値を有するため
に、あるクラスタから他のクラスタへノードを移動する
動作は非常に高速になる。
【0099】したがって、本発明の一態様によれば、ク
ラスタ定義のオーバラップを可能にすることにより、あ
るクラスタから他のクラスタへノードを急速に移動す
る。すなわち、1つのノードは、複数のクラスタに対し
て定義することができるが、一実施形態では特定の時点
で単一クラスタ内のみでアクティブになる。
【0100】1つのノードがクラスタに対して定義され
ると、DCMは、そのノードが定義されたクラスタに関
するローカル構成を保持するための特殊記憶域を作成す
る。DCMコンポーネントはローカル・クラスタ構成を
このローカル記憶域に記憶する。ローカル・クラスタ構
成に記憶される値の中には、たとえば、特定のクラスタ
のクラスタ名、クラスタID、ノード名、ノードID、
レジストリ・サーバのリストがある。他の例としては、
DCMは、ローカル記憶域内に以下の2つのフィールド
も保持する。すなわち、そのノードが現在オンラインに
なっているクラスタの識別子(ID)を含む現行クラス
タ・ポインタと、ノードの移動先であるクラスタのID
を含むターゲット・クラスタ・ポインタである。
【0101】これらのポインタの値は、ノードをあるク
ラスタから他のクラスタへ移動する動作中のみ異なるも
のになる。ノードを所与のクラスタ内へ移動できるよう
にするために、そのクラスタ用の少なくとも1つのレジ
ストリ・サーバ・ノードはオンラインでなければならな
い。ノードを移動するために、DCMは、ノードの加入
先として想定されたクラスタを指し示すためにターゲッ
ト・クラスタ・ポインタを移動し、次に移動中のノード
内で動作する他のクラスタ・コンポーネントにリフレッ
シュ信号を送る。あるコンポーネントは、このリフレッ
シュ信号を受け取ると、その構成をリフレッシュし、す
なわち、その構成をグローバル・クラスタ・リポジトリ
から読み取る。そのリポジトリに到達するために、その
コンポーネントは、特定のクラスタに対して定義された
レジストリ・サーバのリストを検索する。移動中のノー
ド内のレジストリ・サーバのリストを検索するプロセス
では、以下に詳述するように、どのリストを使用するか
を決定するために、ターゲット・クラスタ・ポインタを
使用する。
【0102】あるクラスタから他のクラスタへ移動する
ノードに関連する論理の一実施形態について、図19お
よび図20に関連して以下に説明する。図19の点線矢
印は、クラスタAの構成に対するシステム・コンポーネ
ントの事前接続を示す(ローカルとグローバルの両
方)。移動プロセス中、これらの矢印は、クラスタBの
構成を指し示す実線矢印で置き換えられる。
【0103】ステップ1(図20)で、他のクラスタへ
ノードを移動するための要求1700(図19)は、移
動すべきノード上のDCMプロセス1702に送られ
る。DCMプロセスは、ノードを移動するための要求を
受け取り(図20、ステップ2)、それがノードの移動
先であるクラスタのクラスタIDを含むようにターゲッ
ト・クラスタ・ポインタ1704の値を変更する。移動
中のノード上のDCMプロセスは、そのノード上で動作
する他のクラスタ・コンポーネント1706にリフレッ
シュ・メッセージを送る(図20、ステップ3)。
【0104】他のクラスタ・コンポーネントは、グロー
バル・クラスタ構成1710を読み取れるようにレジス
トリ・サーバのリスト1708を検索する(図20、ス
テップ4)。このリストは、ターゲット・クラスタ・ポ
インタに記憶されたクラスタIDを特定のクラスタ用の
レジストリ・サーバのリストに関連付けるマッピングを
使用して検索される。次に、他のクラスタ・コンポーネ
ントは、前のステップで受け取ったレジストリ・サーバ
のリストにリストされたレジストリ・サーバを使用し
て、グローバル・レジストリに記憶されたそれぞれの具
体的な構成を要求する(図20、ステップ5)。
【0105】このレジストリ・サーバは、移動中のノー
ド内の他のクラスタ・コンポーネントに対してターゲッ
ト・クラスタ内のそれぞれの役割に関するそれぞれの適
切な構成を提供する(図20、ステップ6)。移動中の
ノード上の他のクラスタ・コンポーネントは、それらが
移動動作を完了し、ターゲット・クラスタ内でオンライ
ンになっていることをDCMプロセスに通知する(図2
0、ステップ7)。
【0106】次にDCMは、そのノードが他のクラスタ
へ正常に移動されたことを反映するために現行クラスタ
の値を変更する(図20、ステップ8)。そうではな
く、いずれかのクラスタ・コンポーネントがリフレッシ
ュ動作の実行に失敗した場合、DCMは、そのノードを
現行クラスタ・ポインタの前の値に戻し、ターゲット・
クラスタ・ポインタの値も復旧し、リフレッシュ・メッ
セージを再発行し、移動の効果を効果的に取り消す。そ
の後、DCMプロセスは、動作の結果を移動動作の要求
側に通知する(図20、ステップ9)。
【0107】すべてのコンポーネントがリフレッシュ動
作を終了し、クラスタBで正常にオンラインになってい
ることをDCMに報告すると、現行クラスタ・ポインタ
はクラスタBを指し示すように移動する。そのノードが
何らかの理由でクラスタBに加入できない場合、そのノ
ードは現行クラスタ・ポインタに指名されたクラスタに
復帰する。
【0108】上記の手順により、あるクラスタから他の
クラスタへノードを非常に迅速に移動することが可能に
なる。このような高速移動が可能になる理由は、このア
ーキテクチャにより1つのノードを複数のクラスタに定
義できることによる。
【0109】クラスタ・アーキテクチャの様々なコンポ
ーネントは、メッセージを送受信し、いたるところでシ
ステム通信トラフィックを引き起こす。「システム通
信」という用語は、クラスタ化システム内で動作するア
プリケーションによって生成されるトラフィックである
サービス・トラフィックとは対照的に、クラスタ化論理
自体によって生成されるネットワーク・トラフィックを
参照するために本明細書で使用する。たとえば、システ
ム・トラフィックは、すべてのノード上の対等機能に定
期検証メッセージを送る活性サブシステムによって生成
されるネットワーク・トラフィックを含む。他の例とし
ては、他のコンポーネントにそのクラスタのグローバル
構成を送るシステム・レジストリ・コンポーネントによ
って生成されるネットワーク・トラフィックを含む。ク
ラスタ・システムの典型的な配置では、複数の相互接続
ネットワークを使用し、その結果、ノード間に複数の通
信経路が作成される。したがって、システム内で動作す
る他のアプリケーションに干渉しないように、システム
・トラフィックを特定の通信経路に制限できる機構をシ
ステム管理者に提供することが望ましい。
【0110】本発明の一態様によれば、クラスタ化論理
によって生成されるネットワーク・トラフィックを制御
するために、クラスタ・アーキテクチャはネットワーク
・オブジェクトを定義する。システム・トラフィックを
生成する各クラスタ・コンポーネントは、このようなト
ラフィックに使用すべきネットワーク・オブジェクトに
関するプリファレンスを指定する。たとえば、1つのク
ラスタは1つまたは複数のネットワークを含むことがで
き、各ネットワークは1つまたは複数のサブネットワー
クを含み、各サブネットワークは1つまたは複数のノー
ドを含む。
【0111】前述のように、ノードはノード定義動作に
よってクラスタに対して定義される。同様に、サブネッ
トワーク・オブジェクトはサブネットワーク定義動作に
よって定義される。サブネットワークは、そのノード・
アドレスが既存のサブネットワーク・オブジェクトにマ
ッピングされていないクラスタ内で新しい通信アダプタ
が発見されたという通知を受け取った場合に、DCMプ
ロセスによって暗黙のうちに定義することができる。さ
らに、サブネットワーク定義解除動作はグローバル・ク
ラスタ構成からサブネットワーク定義を削除し、サブネ
ットワーク修正動作はサブネットワーク定義の属性を修
正する。修正可能な属性としては、たとえば、サブネッ
トワーク名ならびにサブネットワークがマッピングされ
るネットワーク定義を含む。
【0112】同様に、ネットワーク定義動作は1つまた
は複数のサブネットワーク定義にマッピングされるネッ
トワーク定義を作成し、ネットワーク定義解除動作はグ
ローバル・クラスタ・データベースからネットワーク定
義を消去する。さらに、ネットワーク修正動作は、ネッ
トワーク定義の属性を修正するために使用する。変更可
能な属性の1つは、たとえば、ネットワーク名である。
【0113】各ノード、サブネットワーク、ネットワー
クは、後述するように、少なくとも1つの対応データ構
造によって定義される。これらのデータ構造は、たとえ
ば、グローバル・リポジトリに記憶される。
【0114】一実施形態では、各ノードは1つまたは複
数のノード・アドレス定義データ構造によって表され
る。一例のノード・アドレス定義データ構造1900
(図21)は、ノード・アドレス・データ定義の1次キ
ー・フィールドとして使用し、本明細書で説明するよう
にノード・アドレス・オブジェクトが作成されたときに
生成される固有識別子1902と、そのノードに到達す
るために使用するノード・インタフェースのノード・ア
ドレスを含むノード・アドレス1904(以下に詳述す
る)と、クラスタ・システムの特定のサブネットワーク
にノード・アドレスをマッピングするために使用するサ
ブネットワーク・マスク1906と、フィールド190
4内のノード・アドレスに関連するノードの番号を含む
ノード番号1908とを含む。
【0115】ノード・アドレスは、やはり固有のもので
ある2次キー・フィールドである。分散構成マネージャ
・コンポーネントでは同じノード・アドレスを有する2
つのノード・アドレスの定義は不可能なので、ノード・
アドレスは固有のものになる。本発明の諸態様の特定の
一実施例でノード間の通信手段としてインターネット・
プロトコルを使用するので、本明細書に記載する例で
は、アドレスはインターネット・プロトコル(IP)ア
ドレスである。しかし、他のどの通信プロトコルでも使
用できることは当業者には分かることである。どのイベ
ントでも、選択したプロトコルを使用して各ノードに到
達できるように、そのノードについて識別されたアドレ
スが少なくとも1つ存在するはずである。複数の通信プ
ロトコルを使用する場合、プロトコル・タイプがノード
・アドレス定義の追加フィールドになる場合もある。
【0116】本発明の一態様によれば、各ノード・アド
レス定義はサブネットワーク定義にマッピングされる。
サブネットワーク定義データ構造の一例について図22
に関連して説明する。
【0117】一例として、サブネットワーク定義データ
構造2000は、たとえば、サブネットワーク定義の固
有性を示す固有識別子2002と、この特定の実施例で
はサブネットワークの接頭部を識別するノード・アドレ
スを含むサブネットワーク接頭部2004と、サブネッ
トワーク接頭部内のいくつのビットが関連するかを示す
ビット・マスクであるサブネットワーク・マスク200
6と、サブネットワーク定義を既存のネットワーク定義
にマッピングするネットワーク名2008とを含む。
【0118】本明細書に記載する例では、サブネットワ
ーク・オブジェクトは、IPプロトコルに規定されてい
る、そのコンピュータの相互接続の方法から導出され
る。たとえば、IPネットワークでは、IPアドレスと
サブネットワーク・マスクによってノードが構成され
る。同じサブネットワークに接続されたすべてのノード
は同じ接頭部を備えたアドレスを有するはずであり、接
頭部の長さはサブネットワーク・マスクによって決定さ
れる。ここに示す実施例では、IPネットワークのこの
態様を使用してノード・アドレスをグループ単位にグル
ープ化するが、この場合、各グループは同じサブネット
ワーク内にあるすべてのノードを含む。サブネットワー
クはネットワーク定義にマッピングされており、クラス
タ・トラフィックの経路指定は、後述するように、ネッ
トワーク・オブジェクトのパラメータを修正することに
よって制御される。
【0119】ネットワーク定義データ構造の一例を図2
3に示す。ネットワーク定義データ構造2100は、た
とえば、ネットワーク定義の固有性を示す固有識別子2
102と、サブネットワーク・オブジェクトをネットワ
ーク・オブジェクトにマッピングするために使用するネ
ットワーク名2104と、様々なクラスタ・サービスを
求める要求の伝送時にどのネットワークを使用するかを
決定する際に使用する値のテーブルであるサービス経路
指定テーブル2106とを含む。サービス経路指定テー
ブルは、たとえば、システム・トラフィックを生成する
クラスタ・コンポーネントの名前と、このようなサービ
スにそのネットワークを使用する場合の優先順位とを含
む。
【0120】たとえば、1つのクラスタをA、B、Cと
いう3つのネットワーク・オブジェクトによって定義す
ることができる。あるクラスタ・コンポーネントがシス
テム・レジストリからグローバル構成を読み取ることを
必要としていると仮定する。そのコンポーネントはまず
特定のクラスタに関するレジストリ・サーバのリストを
検索する。この例では、このリストは1、2、3という
ラベルが付いた3つのアドレスを含む。次にそのコンポ
ーネントは、システム管理者が設定した優先順位に応じ
てどれを使用するかを選択する。このコンポーネント
は、後述するマッピングに従い、サービス・ノード・ア
ドレス(レジストリ・サーバのリストにリストされてい
るもの)をネットワーク・オブジェクトにマッピングす
る。
【0121】この例では、アドレス1はネットワークA
にマッピングされ、アドレス2はネットワークBにマッ
ピングされ、アドレス3はネットワークCにマッピング
される。次に、このコンポーネントは、各ネットワーク
・オブジェクトのサービス経路指定テーブルに記憶さ
れ、それが使用する必要があるサービス(たとえば、シ
ステム・レジストリ)を参照する優先順位値を読み取
る。この値は、そのシステムに関してシステム管理者の
プリファレンスに応じてシステム管理者が設定したもの
である。この例では、システム・レジストリ優先順位の
値がネットワークAでは3、ネットワークBでは2、ネ
ットワークCでは1であると想定する。最高の優先順位
番号はネットワークAで見つかり、したがって、このコ
ンポーネントは、ネットワークAにマッピングされるア
ドレス(上記の1)をまず使用して、システム・レジス
トリ・コンポーネントに到達しようと試みる。次に、そ
れが失敗した場合、このコンポーネントは、ネットワー
クBにマッピングされるアドレスを使用し、最後にネッ
トワークCにマッピングされるアドレスを使用しようと
試みる。
【0122】クラスタ・サービスのクライアントがある
サービス用の特定アドレスを選択する方法に関する詳細
について、図24に示す例に関連して説明する。
【0123】一実施形態では、最初にクライアントは、
ステップ2200(図24)でサービスが存在する可能
性のあるアドレスのリストを検索する。アドレスのリス
トを検索する方法は各サービスごとに異なる。システム
・レジストリの場合、ローカル構成ファイルからレジス
トリ・サーバ・ノードのリストを検索する。他のサービ
スは、たとえばグローバル・クラスタ構成でノード・ア
ドレスのリストを公表する場合もある。
【0124】ノード・アドレスのリストの取得後、クラ
イアントは、グローバル・クラスタ構成に記憶されたノ
ード・アドレス定義データ構造内の各ノード・アドレス
を調べる。各アドレスごとに、クライアントは、ステッ
プ2202(図24)でノード・アドレスとサブネット
ワーク・マスクの論理AND演算を実行し(図25を参
照)、その結果として各アドレスごとにサブネットワー
クIDを取得する。
【0125】その後、クライアントは、ステップ220
4で各アドレスごとにサブネットワーク・オブジェクト
を検索し、各サブネットワーク・オブジェクトごとにス
テップ2206でそのサブネットワークに関連するネッ
トワーク名を検索する。
【0126】その後、クライアントは、ステップ220
8でサービス・アドレスがマッピングされる各ネットワ
ークを検索する。次にクライアントはステップ2210
で、各ネットワーク・オブジェクトに記憶されたサービ
ス経路指定テーブルからサービス優先順位番号を読み取
る。次にクライアントはステップ2212で、ネットワ
ーク・オブジェクトにシステム管理者によって設定され
た優先順位に応じてノード・アドレスのリストを順序付
ける。
【0127】その後、クライアントはステップ2214
で、優先順位の順にサービスに接触しようと試みる。
【0128】上記の技法は、特定のネットワークへの特
定の種類のサービスに関連するトラフィックを含むメカ
ニズムをクラスタの管理者に提供するものである。この
技法は、管理者にとって意味のあるようにネットワーク
・トラフィック制御を提供する。クライアントがこのサ
ービス用のノード・アドレスのリストを検索することに
留意されたい。このリストはサービス自体によって公表
されるので、最初は順序付けられていない。上記の例で
は、DCMコンポーネントによりそのノード・アドレス
のリストを公表するのはシステム・レジストリである。
しかし、システム・レジストリは、ネットワーク構造ま
たはシステム管理者のプリファレンスに関する知識をま
ったく持っておらず、したがって、順序付きリストを提
供することができない。したがって、システム管理者
は、上記のマッピングが示すように、サブネットワーク
・オブジェクトをネットワーク・オブジェクトに割り当
てることができる。
【0129】システム・マネージャが行った変更は、移
動したサブネットワークにマッピングされるすべてのア
ドレスのサービス優先順位割当てに影響する。この動作
は、他のコンポーネントによって理解されるサブネット
ワーク・テーブル内の変更に局所化される。この機構
は、それによってシステム管理者がクラスタ・システム
のすべてのコンポーネントのシステム・トラフィックを
制御できる中央制御点を提供する。
【0130】前述したものは、システム管理者によって
設定された優先順位に応じてサービス・アドレスのリス
トに順序付けるための一技法である。しかし、場合によ
ってはシステム管理者は、それに関する優先順位プリフ
ァレンスが存在しない、複数の同等ネットワークを使用
する場合もある。この場合、たとえば、経路指定ステッ
プまたはホップによって、クライアントへの近接順にサ
ービス・アドレスのリストを順序付けることが望まし
い。標準のIPプロトコルでは、特定のサブネットワー
クから送られるデータグラムは、それが経路指定されて
いない場合、その特定のサブネットワーク内のノードの
みに到達することになる。そのデータグラムが他のノー
ドに到達するためには、それは経路指定される(すなわ
ち、それは、そのデータグラムが発信されたサブネット
ワークとターゲット・ネットワークの両方あるいは他の
ルータまたはそのうちの1つがターゲット・ネットワー
クにアクセス可能な一連のルータに接続されたルータま
たはパッケージ・スイッチング・ノードを通過する)。
パッケージ・スイッチング・ノードによりパッケージを
経路指定するステップはホップと呼ぶ。パッケージ・ス
イッチング動作はターゲット・サブネットワークでのパ
ケットの受信を遅らせるので、ホップに関連してパフォ
ーマンスの損害が発生する。
【0131】したがって、システム管理者が特定サービ
スへのクラスタ・ネットワークの使用に関して優先順位
プリファレンスを設定しない場合、サーバからクライア
ントに経路指定する際にデータグラムが被る最小数のホ
ップに応じてリストを順序付けることが有益である。さ
らに、複数のサーバがクライアントと同等である場合
(すなわち、正確に同じ数のホップを使用して複数のサ
ーバに到達できる場合)、サービス負荷が等距離サーバ
間に等しく広がるように、各クライアントごとに異なる
ようにリストを順序付けることが有益になる。
【0132】以下の技法は、低距離および負荷平衡の基
準に応じてサービス・アドレスのリストを順序付ける機
構を提供するものである。この技法は、DCMが各ノー
ドにレジストリ・サーバのリストを記憶するときに(シ
ステム管理者がクラスタ・ネットワークの使用に関する
優先順位を設定していない場合)DCMが使用する。後
述するように、この技法では、クライアントからサーバ
までの距離と、作業負荷をサーバ間に等しく分散するマ
ッピングを使用する。この作業負荷分散は、各サブネッ
トワーク内のノードの総数と、各ノードの個別ノード番
号と、等距離サーバの数から導出される公式に基づくも
のである。
【0133】特定サービスに到達するためにクラスタ内
の特定のノードが使用すべきアドレスの順序付きリスト
を生成するために使用する論理の一実施形態について、
図26に関連して説明する。一例では、この技法のため
の入力パラメータとして、特定サービス用のアドレスの
リストと、特定サービスのクライアントになるノードの
ノード番号と、そのノード上に存在する通信インタフェ
ース用のアドレス(ノード・アドレス)と、ホップ数に
よる他の各サーバからそのノードまでの距離とを含む。
このパラメータは標準のIPトレース・ルート機構を使
用して推定できることに留意されたい。
【0134】出力は、固有ノード番号によって識別され
る特定ノード用に調整されたサービス・アドレスの順序
付きリストになる。このリストは、最小コストに応じて
順序付けられ、等距離サーバに負荷平衡を使用する。
【0135】図26を参照すると、最初にステップ24
00で、入力リスト内のいずれかのアドレスがそのノー
ド自体に存在するノード・インタフェースに対応する場
合、これらのアドレスは結果として得られる順序付きリ
スト上にまず置かれる。この結果、同一ノード上に共存
する複数サーバを使用するプリファレンスをローカル・
クライアントが有し、その結果、可能な限り最善のパフ
ォーマンスが得られる。次にステップ2402で、最低
距離(ホップ数による)を備えたサーバのアドレスがリ
ストされる。
【0136】複数の等距離サーバ(すなわち、同じ数の
ホップを使用して到達可能なサーバ)が存在する場合、
順序付けをさらに最適化することが可能である。2つの
等距離サーバが存在する場合、クライアントの半分に一
方のサーバを最初にリストし、残り半分にもう一方のサ
ーバを最初にリストすることが有益である。これにより
クライアントの半分は一方のサーバに関するプリファレ
ンスを有し、残り半分はもう一方のサーバに関するプリ
ファレンスを有し、理想的な負荷平衡方式を達成する。
サーバが3つ存在する場合、第1の位置は3通りに分割
することができる。
【0137】どのサーバを最初にリストするかを決定す
るための一技法については、ステップ2404で説明す
る。特に、最初はステップ2406で、1組の等距離サ
ーバ(すなわち、同じ数のホップを有する1組のサー
バ)に対して、それぞれのノード・アドレスに応じて最
低から最高の順に0、1、2などのインデックスを付け
る。ノード・アドレスは固有のものなので、このマッピ
ングも固有のものになる。
【0138】次にステップ2408で、事前定義された
式を使用して等距離サーバの1つのマッピング・インデ
ックスを計算する。特に、kが0から等距離サーバの数
までの場合、マッピング・インデックスは[(node_numbe
r)mod(number_of_equidistant_servers)+k]mod(number_
of_equidistant_servers)]に等しくなり、式中、mod
は、除算演算の整数剰余として定義されるモジュロ演算
を意味する。
【0139】マッピング・インデックスの計算後、ステ
ップ2410でマッピング・インデックスの対応アドレ
スをリストに追加する。
【0140】その後、照会2412で、その組内により
多くの等距離サーバが存在するかどうかの判定を行う。
その組内により多くの等距離サーバが存在する場合、ス
テップ2408で処理が続行される。存在しない場合、
処理は照会2414に継続し、そこで、より多くの処理
すべきサーバが入力リストに存在するかどうかの判定を
行う。より多くのサーバが存在する場合、プロセスはス
テップ2402に継続する。存在しない場合、サービス
・アドレスの最終順序付きリストが提供され、ステップ
2416で手順が完了する。
【0141】上記の手順を実証する一例について以下に
説明する。以下の入力を想定する。 ノード番号=5 サービス・リスト(括弧内に距離を示した象徴的なノー
ド・アドレスを使用する)は{1(0)、3(1)、7
(1)、9(1)、12(2)、2(2)}を含む。
【0142】順序付けを取得するために、以下のように
上記の規則に従う。 1)この技法では、ノード5に関して定義されたノード
・アドレス定義テーブルのいずれかを調べ、入力アドレ
スのいずれかがこれらのテーブルのノード・アドレス・
フィールド内にあるかどうかを判定する。距離が0のア
ドレス1がこのノードにとってローカルであり、したが
って、上記の規則1により最初にリストされることを発
見する。 2)3つの等距離サーバはノード・アドレスによって順
序付けられ、0→3、1→7、2→9というマッピング
になる。これらのノードは規則3〜7を使用して再順序
付けされる。この場合の等距離サーバの数は3であり、
ノード番号は5であり、その結果、以下のようになる。 a)第1のサーバを選択するために、k=0として規則
5を適用し、以下の結果が得られる。 [(5mod3+0)mod3]=2 この結果は上記のステップで得られたリストに対するマ
ッピング・インデックスである。この場合、マッピング
・インデックス2はサーバ・アドレス9にマッピングさ
れる。 b)第2のサーバの場合、kを1にして規則5を反復
し、以下の結果が得られる。 [(5mod3+1)mod3] これは[(2+1)mod3]=Oになり、サーバ3にマッピングさ
れる。 c)同様に、k=2として規則5の次の反復を行い、以
下の結果が得られる。 [(5mod3+2)mod3] これは[(2+2)mod3]=1になり、サーバ7にマッピングさ
れる。 3)同じ手順(規則2〜5)を第2の組の等距離サーバ
に使用する。まず、マッピング・インデックスは0→1
2、1→2というように割り当てる。この場合、等距離
サーバの数は2である。 a)規則5の第1の反復により以下の結果が得られる。 [(5mod2+O)mod2]=1 これはサーバ2にマッピングされる。 b)k=1とした第2の反復により以下の結果が得られ
る。 [(5mod2+1)mod2]=O これはサーバ12にマッピングされる。 4)最終結果は以下のようなリストになる。 {1、9、3、7、2、12}
【0143】出力リストは各クライアント・ノード番号
ごとに異なり、その結果、各クライアントごとに平衡リ
ストが得られることが認められる。
【0144】上記に加え、DCMは順序付きリストを維
持する。一例では、DCMは、新しいサービス・ノード
が追加または削除されたという通知を受け取ると必ずロ
ーカル・リストをリフレッシュする。
【0145】前述したものは、クラスタ化環境を管理す
る場合の様々な態様である。クラスタ化アーキテクチャ
ならびにクラスタを管理するための技法も提供される。
本発明の様々な技法は、単一システム、同種システム、
ならびに異種システムにも適用可能である。一例とし
て、異種環境のシステムの相互運用性を容易にするため
の機能が提供される。
【0146】本明細書に記載した実施形態では、グロー
バル・データはノードから1つまたは複数のリポジトリ
(グローバル記憶域)にリモートで記憶される。しか
し、他の例では、各リポジトリは1つまたは複数のノー
ドに対してローカルなものにすることができる。さら
に、各リポジトリはそのリポジトリのユーザにとってリ
モートまたはローカルなものにすることができる。
【0147】本発明は、たとえば、コンピュータで使用
可能な媒体を有する製品(たとえば、1つまたは複数の
コンピュータ・プログラム)に含めることができる。こ
の媒体では、たとえば、本発明の諸機能を提供し容易に
するためのコンピュータ可読プログラム・コード手段が
そこで実施されている。この製品は、コンピュータ・シ
ステムの一部として含めるか、別々に販売することがで
きる。
【0148】その上、本発明の諸機能を実行するために
マシンによって実行可能な複数命令からなる少なくとも
1つのプログラムを具体的に実施し、マシンによって読
取り可能な少なくとも1つのプログラム記憶装置を提供
することができる。
【0149】ここに示した流れ図は例にすぎない。本発
明の精神を逸脱せずに、これらの図またはそこに記載さ
れたステップ(または動作)の変形形態は多数存在する
可能性がある。たとえば、そのステップは異なる順序で
実行することができ、ステップの追加、削除、または修
正も可能である。これらの変形形態はいずれも、ここで
請求する本発明の一部と見なす。
【0150】好ましい実施形態について本明細書で詳し
く描写し説明してきたが、本発明の精神を逸脱せずに、
様々な修正、追加、置換などが可能であり、したがっ
て、それらは特許請求の範囲に定義した本発明の範囲内
であると見なされることは、当業者にとって明らかにな
るだろう。
【0151】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0152】(1)コンピューティング環境のクラスタ
を自動的に構成する方法であって、前記方法が、前記コ
ンピューティング環境のクラスタに追加すべきノードに
より、前記クラスタの1つまたは複数のリソースの構成
データの取得を開始することと、前記クラスタのシステ
ム・レジストリ・コンポーネントに前記構成データを記
憶することと、前記構成データが更新されたことを前記
システム・レジストリ・コンポーネントにより1つまた
は複数の他のクラスタ・コンポーネントに通知すること
を含む方法。 (2)少なくとも前記通知の開始後に、前記クラスタに
前記ノードを挿入することをさらに含む、上記(1)に
記載の方法。 (3)コンピューティング環境のクラスタを自動的に構
成するシステムであって、前記システムが、前記コンピ
ューティング環境のクラスタに追加すべきノードによ
り、前記クラスタの1つまたは複数のリソースの構成デ
ータの取得を開始するための手段と、前記クラスタのシ
ステム・レジストリ・コンポーネントに前記構成データ
を記憶するための手段と、前記構成データが更新された
ことを前記システム・レジストリ・コンポーネントによ
り1つまたは複数の他のクラスタ・コンポーネントに通
知するための手段とを含むシステム。 (4)少なくとも前記通知の開始後に、前記クラスタに
前記ノードを挿入するための手段をさらに含む、上記
(3)に記載のシステム。 (5)コンピューティング環境のクラスタを自動的に構
成する方法を実行するためのプログラムであって、前記
プログラムがコンピュータに前記コンピューティング環
境のクラスタに追加すべきノードにより、前記クラスタ
の1つまたは複数のリソースの構成データの取得を開始
する機能と、前記クラスタのシステム・レジストリ・コ
ンポーネントに前記構成データを記憶する機能と、前記
構成データが更新されたことを前記システム・レジスト
リ・コンポーネントにより1つまたは複数の他のクラス
タ・コンポーネントに通知する機能とを実現させるプロ
グラム。 (6)少なくとも前記通知の開始後に、前記クラスタに
前記ノードを挿入する機能をさらに含む、上記(5)に
記載のプログラム。
【図面の簡単な説明】
【図1】本発明の諸態様を組み込み使用するコンピュー
ティング環境の一例を示す図である。
【図2】本発明の一態様により、複数のクラスタを有す
るコンピューティング環境の一実施形態を示す図であ
る。
【図3】本発明の一態様により、クラスタのノードの状
態の一実施形態を示す図である。
【図4】本発明の一態様により使用するクラスタ・アー
キテクチャのコンポーネントの一実施形態を示す図であ
る。
【図5】本発明の一態様により、その環境の全ノードの
一部分にのみ図4のシステム・レジストリ・コンポーネ
ントが位置する、クラスタ化環境の一実施形態を示す図
である。
【図6】本発明の一態様により、クラスタ化アーキテク
チャの様々なコンポーネントのデータ依存関係の一例を
示す図である。
【図7】本発明の一態様により、クラスタ化アーキテク
チャの様々なコンポーネントの機能依存関係の一例を示
す図である。
【図8】本発明の一態様により、ブートストラップ・プ
ロセスのイベントおよびメッセージ・フローのシーケン
スの一実施形態を示す図である。
【図9】本発明の一態様により、クラスタ定義データ構
造の一実施形態を示す図である。
【図10】本発明の一態様により、ノード定義データ構
造の一実施形態を示す図である。
【図11】本発明の一態様により、レジストリ・サーバ
・ノードのリストの一実施形態を示す図である。
【図12】本発明の一態様により、ローカル記憶域デー
タ・フィールドの一例を示す図である。
【図13】本発明の一態様により、クラスタ化システム
の固有ノード識別子の一実施形態を示す図である。
【図14】本発明のノード定義プロセスに関与するプロ
セスの一実施形態を示す図である。
【図15】本発明の一態様により、ノード定義プロセス
のイベントおよびメッセージ・フローのシーケンスの一
実施形態を示す図である。
【図16】本発明の自動クラスタ構成技法が使用する様
々なプロセスの一例を示す図である。
【図17】本発明の自動クラスタ構成を可能にするため
の図16のプロセス間のメッセージ・フローの一例を示
す図である。
【図18】本発明の一態様により、複数のクラスタに対
して定義中のノードの一例を示す図である。
【図19】本発明の一態様により、あるクラスタから他
のクラスタへ移動するノードの一例を示す図である。
【図20】本発明の一態様により、あるクラスタから他
のクラスタ内へ移動するためのプロセスのイベントおよ
びメッセージ・フローのシーケンスの一実施形態を示す
図である。
【図21】本発明の一態様により、ノード・アドレス定
義データ構造の一例を示す図である。
【図22】本発明の一態様により、サブネットワーク定
義データ構造の一例を示す図である。
【図23】本発明の一態様により、ネットワーク定義デ
ータ構造の一態様を示す図である。
【図24】本発明の一態様により、サービスを位置指定
するための特定アドレスを選択するためにクラスタ化環
境のクライアントが使用する論理の一実施形態を示す図
である。
【図25】本発明の一態様により、ノード・アドレス定
義をサブネットワーク定義およびネットワーク定義にマ
ッピングする場合の一例を示す図である。
【図26】本発明の一態様により、特定サービスに到達
するためにクラスタ内の特定のノードが使用すべきアド
レスの順序付きリストを生成するために使用する論理の
他の実施形態を示す図である。
【符号の説明】
400 分散構成マネージャ・サブシステム 402 システム・レジストリ・サブシステム 404 活性サブシステム 406 グループ・サービス・サブシステム 408 リソース・マネージャ・サブシステム 410 オペレーティング・システム・インスタンス1
プロセス空間、オペレーティング・システム・インスタ
ンス2プロセス空間、オペレーティング・システム・イ
ンスタンス3プロセス空間 412 DCMプロセス 414 システム・レジストリ・プロセス
フロントページの続き (72)発明者 マルコス・エヌ・ノヴァエス アメリカ合衆国12533 ニューヨーク州ホ ープウェル・ジャンクション リッジ・ビ ュー・ロード 10 (72)発明者 グレゴリー・ディー・レイブ アメリカ合衆国12401 ニューヨーク州キ ングストン オークウッド・ドライブ ア ール・ディー3 (72)発明者 ジェフリー・エス・ルカシュ アメリカ合衆国12443 ニューヨーク州ハ ーリー アルタモント・ドライブ 129 (72)発明者 ロナルド・ティー・ゲーリング アメリカ合衆国78703 テキサス州オース チン エルトン・アベニュー 1907 (72)発明者 ジョージ・ソホス アメリカ合衆国07041 ニュージャージー 州ミルバーン スプリング・ストリート 25ビー Fターム(参考) 5B045 GG01

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】コンピューティング環境のクラスタを自動
    的に構成する方法であって、前記方法が、 前記コンピューティング環境のクラスタに追加すべきノ
    ードにより、前記クラスタの1つまたは複数のリソース
    の構成データの取得を開始することと、 前記クラスタのシステム・レジストリ・コンポーネント
    に前記構成データを記憶することと、 前記構成データが更新されたことを前記システム・レジ
    ストリ・コンポーネントにより1つまたは複数の他のク
    ラスタ・コンポーネントに通知することを含む方法。
  2. 【請求項2】少なくとも前記通知の開始後に、前記クラ
    スタに前記ノードを挿入することをさらに含む、請求項
    1に記載の方法。
  3. 【請求項3】コンピューティング環境のクラスタを自動
    的に構成するシステムであって、前記システムが、 前記コンピューティング環境のクラスタに追加すべきノ
    ードにより、前記クラスタの1つまたは複数のリソース
    の構成データの取得を開始するための手段と、 前記クラスタのシステム・レジストリ・コンポーネント
    に前記構成データを記憶するための手段と、 前記構成データが更新されたことを前記システム・レジ
    ストリ・コンポーネントにより1つまたは複数の他のク
    ラスタ・コンポーネントに通知するための手段とを含む
    システム。
  4. 【請求項4】少なくとも前記通知の開始後に、前記クラ
    スタに前記ノードを挿入するための手段をさらに含む、
    請求項3に記載のシステム。
  5. 【請求項5】コンピューティング環境のクラスタを自動
    的に構成する方法を実行するためのプログラムであっ
    て、前記プログラムがコンピュータに前記コンピューテ
    ィング環境のクラスタに追加すべきノードにより、前記
    クラスタの1つまたは複数のリソースの構成データの取
    得を開始する機能と、 前記クラスタのシステム・レジストリ・コンポーネント
    に前記構成データを記憶する機能と、 前記構成データが更新されたことを前記システム・レジ
    ストリ・コンポーネントにより1つまたは複数の他のク
    ラスタ・コンポーネントに通知する機能とを実現させる
    プログラム。
  6. 【請求項6】少なくとも前記通知の開始後に、前記クラ
    スタに前記ノードを挿入する機能をさらに含む、請求項
    5に記載のプログラム。
JP2001160384A 2000-05-31 2001-05-29 コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品 Expired - Fee Related JP3707728B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/584,528 US6725261B1 (en) 2000-05-31 2000-05-31 Method, system and program products for automatically configuring clusters of a computing environment
US09/584528 2000-05-31

Publications (2)

Publication Number Publication Date
JP2002049601A true JP2002049601A (ja) 2002-02-15
JP3707728B2 JP3707728B2 (ja) 2005-10-19

Family

ID=24337685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001160384A Expired - Fee Related JP3707728B2 (ja) 2000-05-31 2001-05-29 コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品

Country Status (4)

Country Link
US (1) US6725261B1 (ja)
JP (1) JP3707728B2 (ja)
KR (1) KR100450727B1 (ja)
GB (1) GB2368682B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
WO2006040810A1 (ja) * 2004-10-12 2006-04-20 Fujitsu Limited ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
JP2008192139A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp ノードクラスタの管理
JP2011108014A (ja) * 2009-11-18 2011-06-02 Nec Corp 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
JP2012500442A (ja) * 2008-08-18 2012-01-05 エフ5 ネットワークス、インコーポレイテッド 可用性を維持しながらネットワークトラフィック管理装置をアップグレードする方法
JP4898440B2 (ja) * 2003-09-26 2012-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ高可用性の自律型監視
JP5707409B2 (ja) * 2010-09-08 2015-04-30 株式会社日立製作所 計算機

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3440881B2 (ja) * 1999-06-08 2003-08-25 日本電気株式会社 トポロジ情報自動構築方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
US20020198961A1 (en) * 1999-08-27 2002-12-26 Balachander Krishnamurthy Method for improving web performance by client characterization-driven server adaptation
US7219160B1 (en) 1999-08-27 2007-05-15 At&T Corp. Method for fast network-aware clustering
US7191168B1 (en) 1999-08-27 2007-03-13 At&T Corp. Fast prefix matching of bounded strings
US6928485B1 (en) * 1999-08-27 2005-08-09 At&T Corp. Method for network-aware clustering of clients in a network
US7296089B2 (en) * 1999-08-27 2007-11-13 At&T Corp. Method for improving web performance by adapting servers based on client cluster characterization
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US6961761B2 (en) * 2001-05-17 2005-11-01 Fujitsu Limited System and method for partitioning a computer system into domains
US7380001B2 (en) * 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
TW523667B (en) * 2001-05-31 2003-03-11 Taiwan Semiconductor Mfg Shared directory management system and method of the same
US6925492B2 (en) * 2001-06-25 2005-08-02 Sun Microsystems, Inc Method and apparatus for automatic configuration of a cluster of computers
US7240102B1 (en) * 2001-08-03 2007-07-03 Mcafee, Inc. System and method for providing web browser-based secure remote network appliance configuration in a distributed computing environment
US6990602B1 (en) * 2001-08-23 2006-01-24 Unisys Corporation Method for diagnosing hardware configuration in a clustered system
US20030061382A1 (en) * 2001-09-21 2003-03-27 Dell Products L.P. System and method for naming hosts in a distributed data processing system
DE60106467T2 (de) * 2001-12-14 2006-02-23 Hewlett-Packard Development Co., L.P., Houston Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
US7650397B2 (en) * 2002-05-02 2010-01-19 Bea Systems, Inc. Plug-in configuration manager
US20040158605A1 (en) * 2003-02-10 2004-08-12 International Business Machines Corporation Domain-wide reset agents
US7234072B2 (en) * 2003-04-17 2007-06-19 Computer Associates Think, Inc. Method and system for making an application highly available
FI20030866A0 (fi) * 2003-06-10 2003-06-10 Nokia Corp Menetelmä, ohjain, järjestely ja tietokoneohjelma tietokoneryväksen konfiguraation hallintaan
US8103772B2 (en) * 2003-12-24 2012-01-24 Sap Aktiengesellschaft Cluster extension in distributed systems using tree method
US8499078B2 (en) 2003-12-24 2013-07-30 Sap Aktiengesellschaft Address generation in distributed systems using tree method
JP2005242981A (ja) * 2004-01-28 2005-09-08 Seiko Epson Corp サービス提供システム、アプリケーション管理システム、サービス提供装置、サービス提供プログラム、アプリケーション管理プログラムおよび記憶媒体、並びにサービス提供方法およびアプリケーション管理方法
KR100604593B1 (ko) * 2004-02-03 2006-07-25 엘지엔시스(주) 구성정보 공유를 통한 클러스터 시스템 동적 재구성 방법
US7293039B1 (en) 2004-03-12 2007-11-06 Network Appliance, Inc. Storage resource management across multiple paths
US7539702B2 (en) * 2004-03-12 2009-05-26 Netapp, Inc. Pre-summarization and analysis of results generated by an agent
US7630994B1 (en) 2004-03-12 2009-12-08 Netapp, Inc. On the fly summarization of file walk data
US7844646B1 (en) * 2004-03-12 2010-11-30 Netapp, Inc. Method and apparatus for representing file system metadata within a database for efficient queries
JP4855655B2 (ja) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
US7536599B2 (en) 2004-07-28 2009-05-19 Oracle International Corporation Methods and systems for validating a system environment
US7937455B2 (en) 2004-07-28 2011-05-03 Oracle International Corporation Methods and systems for modifying nodes in a cluster environment
US7962788B2 (en) 2004-07-28 2011-06-14 Oracle International Corporation Automated treatment of system and application validation failures
US7600006B2 (en) * 2004-08-31 2009-10-06 Inter-Tel, Inc Peer-to-peer distribution of firmware
US20060074940A1 (en) * 2004-10-05 2006-04-06 International Business Machines Corporation Dynamic management of node clusters to enable data sharing
US7450498B2 (en) * 2004-10-27 2008-11-11 Morgan Stanley Fault tolerant network architecture
US20060167886A1 (en) * 2004-11-22 2006-07-27 International Business Machines Corporation System and method for transmitting data from a storage medium to a user-defined cluster of local and remote server blades
US7606802B2 (en) * 2004-12-22 2009-10-20 Sap Ag Preserving log files in a distributed computing environment
US7546582B2 (en) * 2005-03-30 2009-06-09 International Business Machines Corporation Managing dynamic configuration data for producer components in a computer infrastructure
US8032650B2 (en) * 2006-03-15 2011-10-04 Arris Group, Inc. Media stream distribution system
JP4755548B2 (ja) * 2006-08-01 2011-08-24 株式会社日立製作所 運用管理方法、運用管理プログラム、運用管理システムおよび運用管理装置
US7757116B2 (en) * 2007-04-04 2010-07-13 Vision Solutions, Inc. Method and system for coordinated multiple cluster failover
US8918490B1 (en) * 2007-07-12 2014-12-23 Oracle America Inc. Locality and time based dependency relationships in clusters
US20090265699A1 (en) * 2008-04-18 2009-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for embedding upgrade steps for layered architectures
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
EP2731300B1 (en) * 2011-07-21 2019-02-13 Huawei Technologies Co., Ltd. Interface register method and device for network device to join cluster system
US9270583B2 (en) * 2013-03-15 2016-02-23 Cisco Technology, Inc. Controlling distribution and routing from messaging protocol
US10257026B1 (en) * 2013-12-19 2019-04-09 VCE IP Holding Company LLC System and method to manage interrelated devices in a computing infrastructure
US9838477B2 (en) 2014-10-30 2017-12-05 Netapp, Inc. Techniques for storing and distributing metadata among nodes in a storage cluster system
KR101580096B1 (ko) 2014-11-14 2015-12-29 충북대학교 산학협력단 모바일 p2p 네트워크에서 그룹 기반의 캐시 공유 시스템 및 방법
US10001981B2 (en) 2016-05-26 2018-06-19 At&T Intellectual Property I, L.P. Autonomous server installation
CN111782341B (zh) * 2020-06-30 2024-04-05 北京百度网讯科技有限公司 用于管理集群的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09109414A (ja) * 1995-10-13 1997-04-28 Canon Inc インクタンクおよびその製造方法
JPH1040222A (ja) * 1996-04-30 1998-02-13 Internatl Business Mach Corp <Ibm> 分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するための方法
JPH1078944A (ja) * 1996-07-23 1998-03-24 Internatl Business Mach Corp <Ibm> 分散コンピュータ環境におけるプロセッサ・ドメインのメンバー管理方法及び装置
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
JP2001511278A (ja) * 1997-01-28 2001-08-07 タンデム コンピューターズ インコーポレイテッド 回復中に最大限の全接続に対しマルチプロセッサシステムをノード剪定する方法及び装置
JP2001521222A (ja) * 1997-10-21 2001-11-06 サン・マイクロシステムズ・インコーポレーテッド 分散型コンピュータ・システムにおいてクラスタ・メンバーシップを決定する方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109486A (en) 1989-01-06 1992-04-28 Motorola, Inc. Distributed computer system with network and resource status monitoring
US5276789A (en) 1990-05-14 1994-01-04 Hewlett-Packard Co. Graphic display of network topology
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5542047A (en) 1991-04-23 1996-07-30 Texas Instruments Incorporated Distributed network monitoring system for monitoring node and link status
JPH06164583A (ja) 1992-11-19 1994-06-10 Fujitsu Ltd 構成情報分散保有方式
DE4321458A1 (de) 1993-06-29 1995-01-12 Alcatel Network Services Verfahren zur Unterstützung des Netzwerkmanagements sowie Netzwerkmanagementeinrichtung dafür
US5838918A (en) 1993-12-13 1998-11-17 International Business Machines Corporation Distributing system configuration information from a manager machine to subscribed endpoint machines in a distrubuted computing environment
US5805819A (en) 1995-04-24 1998-09-08 Bay Networks, Inc. Method and apparatus for generating a display based on logical groupings of network entities
US5878420A (en) 1995-08-31 1999-03-02 Compuware Corporation Network monitoring and management system
US5748958A (en) 1996-04-30 1998-05-05 International Business Machines Corporation System for utilizing batch requests to present membership changes to process groups
US5930476A (en) 1996-05-29 1999-07-27 Sun Microsystems, Inc. Apparatus and method for generating automatic customized event requests
US5822534A (en) 1996-06-04 1998-10-13 Sun Microsystems, Inc. Method and apparatus for selectively unmanaging elements on a network
US5758071A (en) 1996-07-12 1998-05-26 Electronic Data Systems Corporation Method and system for tracking the configuration of a computer coupled to a computer network
US5822531A (en) 1996-07-22 1998-10-13 International Business Machines Corporation Method and system for dynamically reconfiguring a cluster of computer systems
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
JP3042606B2 (ja) 1997-05-29 2000-05-15 日本電気株式会社 ネットワーク管理方式
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
US6092213A (en) * 1997-09-30 2000-07-18 Tandem Computers Incorporated Fault tolerant method of maintaining and distributing configuration information in a distributed processing system
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6192401B1 (en) * 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US6279032B1 (en) * 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6360331B2 (en) * 1998-04-17 2002-03-19 Microsoft Corporation Method and system for transparently failing over application configuration information in a server cluster
US6161191A (en) * 1998-05-12 2000-12-12 Sun Microsystems, Inc. Mechanism for reliable update of virtual disk device mappings without corrupting data
US5964886A (en) 1998-05-12 1999-10-12 Sun Microsystems, Inc. Highly available cluster virtual disk system
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
AU2001255795A1 (en) 2000-05-02 2001-11-12 Sun Microsystems, Inc. Cluster configuration repository

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09109414A (ja) * 1995-10-13 1997-04-28 Canon Inc インクタンクおよびその製造方法
JPH1040222A (ja) * 1996-04-30 1998-02-13 Internatl Business Mach Corp <Ibm> 分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するための方法
JPH1078944A (ja) * 1996-07-23 1998-03-24 Internatl Business Mach Corp <Ibm> 分散コンピュータ環境におけるプロセッサ・ドメインのメンバー管理方法及び装置
JP2001511278A (ja) * 1997-01-28 2001-08-07 タンデム コンピューターズ インコーポレイテッド 回復中に最大限の全接続に対しマルチプロセッサシステムをノード剪定する方法及び装置
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
JP2001521222A (ja) * 1997-10-21 2001-11-06 サン・マイクロシステムズ・インコーポレーテッド 分散型コンピュータ・システムにおいてクラスタ・メンバーシップを決定する方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4898440B2 (ja) * 2003-09-26 2012-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ高可用性の自律型監視
JP2005266917A (ja) * 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
US8024740B2 (en) 2004-03-16 2011-09-20 Nec Corporation Acquisition system for distributed computing resources
WO2006040810A1 (ja) * 2004-10-12 2006-04-20 Fujitsu Limited ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法
US7716373B2 (en) 2004-10-12 2010-05-11 Fujitsu Limited Method, apparatus, and computer product for updating software
JP2008192139A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp ノードクラスタの管理
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
JP2012500442A (ja) * 2008-08-18 2012-01-05 エフ5 ネットワークス、インコーポレイテッド 可用性を維持しながらネットワークトラフィック管理装置をアップグレードする方法
JP2011108014A (ja) * 2009-11-18 2011-06-02 Nec Corp 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
JP5707409B2 (ja) * 2010-09-08 2015-04-30 株式会社日立製作所 計算機

Also Published As

Publication number Publication date
KR20010110093A (ko) 2001-12-12
JP3707728B2 (ja) 2005-10-19
US6725261B1 (en) 2004-04-20
GB2368682B (en) 2004-12-22
GB2368682A (en) 2002-05-08
GB0112038D0 (en) 2001-07-11
KR100450727B1 (ko) 2004-10-01

Similar Documents

Publication Publication Date Title
JP3707728B2 (ja) コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品
US6847993B1 (en) Method, system and program products for managing cluster configurations
US6925490B1 (en) Method, system and program products for controlling system traffic of a clustered computing environment
US6801937B1 (en) Method, system and program products for defining nodes to a cluster
JP2002041488A (ja) クラスタ化コンピューティング環境を管理するための方法、システム、およびプログラム製品
US7103664B1 (en) Method, system and program products for ordering lists of service addresses to provide load balancing of a clustered environment
US6973473B1 (en) Method, system and program products for managing identifiers of components of a clustered environment
US11687555B2 (en) Conditional master election in distributed databases
US6807557B1 (en) Method, system and program products for providing clusters of a computing environment
US10891267B2 (en) Versioning of database partition maps
US8386540B1 (en) Scalable relational database service
US9460185B2 (en) Storage device selection for database partition replicas
Wei et al. CloudTPS: Scalable transactions for Web applications in the cloud
US9489443B1 (en) Scheduling of splits and moves of database partitions
US20120102506A1 (en) Web service patterns for globally distributed service fabric
US20090055348A1 (en) Dynamic cluster database architecture
JPH04230567A (ja) 計算システムのための分散型構成プロフィル
US11263270B1 (en) Heat balancing in a distributed time-series database
US10747739B1 (en) Implicit checkpoint for generating a secondary index of a table
US11409771B1 (en) Splitting partitions across clusters in a time-series database
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
US11366598B1 (en) Dynamic lease assignments in a time-series database
Jiménez-Peris et al. Enterprise grids: Challenges ahead
Sarr et al. Transpeer: Adaptive distributed transaction monitoring for web2. 0 applications
van Renesse et al. Autonomic computing: A system-wide perspective

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041101

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050128

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050128

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050720

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050729

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: 20080812

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees