JP2002514813A - 高可用性クラスタ仮想ディスク・システム - Google Patents

高可用性クラスタ仮想ディスク・システム

Info

Publication number
JP2002514813A
JP2002514813A JP2000548806A JP2000548806A JP2002514813A JP 2002514813 A JP2002514813 A JP 2002514813A JP 2000548806 A JP2000548806 A JP 2000548806A JP 2000548806 A JP2000548806 A JP 2000548806A JP 2002514813 A JP2002514813 A JP 2002514813A
Authority
JP
Japan
Prior art keywords
node
data
storage device
distributed computing
database
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
JP2000548806A
Other languages
English (en)
Other versions
JP4501096B2 (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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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
Priority claimed from US09/076,346 external-priority patent/US6161191A/en
Priority claimed from US09/076,388 external-priority patent/US5964886A/en
Priority claimed from US09/076,274 external-priority patent/US6421787B1/en
Priority claimed from US09/076,347 external-priority patent/US6173413B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2002514813A publication Critical patent/JP2002514813A/ja
Application granted granted Critical
Publication of JP4501096B2 publication Critical patent/JP4501096B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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/2035Error 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 without idle spare hardware
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media

Abstract

(57)【要約】 クラスタは、そのクラスタの各記憶装置へのアクセス権をそのクラスタの各ノードに与える仮想ディスク・システムを実現する。この仮想ディスク・システムは、障害が存在する状態で記憶装置にアクセスすることができ、データ・アクセス要求が確実に完了するような高い可用性を有する。ノード間で一貫したマッピングおよびファイル許可データを保証するために、データは高可用性クラスタ・データベースで記憶される。クラスタ・データベースは障害が存在する状態でもノードに一貫したデータを提供するので、各ノードは一貫したマッピングおよびファイル許可データを有することになる。ノード間のリンクを確立し、そのリンクを管理するクラスタ・トランスポート・インタフェースが提供される。クラスタ・トランスポート・インタフェースが受け取るメッセージは1つまたは複数のリンクを介して宛先ノードに運搬される。クラスタの構成は動作中に変更することができる。構成を変更する前に、再構成手順はデータ・アクセス要求を中断し、保留中のデータ・アクセス要求が完了するのを待つ。新しい構成を反映するために、再構成が実行され、マッピングが変更される。次にそのノードはマッピングの内部表現を更新し、データ・アクセス要求の発行を再開する。

Description

【発明の詳細な説明】
【0001】 (発明の背景) (1.発明の分野) 本発明は、分散コンピューティング・システムの分野に関し、より詳細には分
散仮想記憶装置に関する。
【0002】 (2.関連技術の説明) クラスタなどの分散コンピューティング・システムは2つまたはそれ以上のノ
ードを含むことがあり、それらのノードはコンピューティング・タスクを実行す
るために使用される。一般的に言えば、ノードとは、1つまたは複数のコンピュ
ーティング・タスクを実行するように設計された1つの回路グループである。1
つのノードは、1つまたは複数のプロセッサと、1つのメモリと、インタフェー
ス回路とを含むことができる。一般的に言えば、クラスタとは、ノード間でデー
タを交換する能力を有する2つまたはそれ以上のノードからなるグループである
。あるノードで特定のコンピューティング・タスクを実行することができるが、
他のノードは無関係のコンピューティング・タスクを実行する。あるいは、特定
のコンピューティング・タスクを全体として実行するのに必要な時間を削減する
ために、そのコンピューティング・タスクのコンポーネントをノード間に分散す
ることができる。一般的に言えば、プロセッサとは、1つまたは複数のオペラン
ドの演算を実行して結果を生成するように構成されたデバイスである。演算は、
プロセッサによって実行される命令に応答して実行することができる。
【0003】 1つのクラスタ内のノードは、そのノードに結合された1つまたは複数の記憶
装置を有することができる。一般的に言えば、記憶装置とは、大量のデータを格
納することができる持続性装置である。たとえば、記憶装置は、ディスク装置な
どの磁気記憶装置またはコンパクト・ディスク装置などの光学記憶装置にするこ
とができる。ディスク装置は記憶装置の一例に過ぎないが、「ディスク」という
用語は本明細書全体を通して「記憶装置」と交換して使用することができる。記
憶装置に物理的に接続されたノードは記憶装置に直接アクセスすることができる
。記憶装置はあるクラスタの1つまたは複数のノードに物理的に接続することが
できるが、その記憶装置はあるクラスタのすべてのノードに物理的に接続できる
わけではない。ある記憶装置に物理的に接続されていないノードはその記憶装置
に直接アクセスすることはできない。クラスタによっては、記憶装置に物理的に
接続されていないノードは、ノード同士を接続するデータ通信リンクを介してそ
の記憶装置に間接的にアクセスすることができる。
【0004】 あるノードがクラスタ内のどの記憶装置にもアクセスできる、すなわちそのノ
ードに記憶装置が物理的に接続されているかのようにすることは有利である。た
とえば、Oracle Parallel Serverなどの一部のアプリケ
ーションでは、UNIXデバイス・セマンティクスにより1つのクラスタ内のす
べての記憶装置にアクセスしなければならない場合がある。あるノードに物理的
に接続されていないが、あるノードに物理的に接続されているように見える記憶
装置は、仮想装置または仮想ディスクと呼ばれる。一般的に言えば、分散仮想デ
ィスク・システムとは、2つまたはそれ以上のノード上で動作するソフトウェア
・プログラムであり、クライアントと1つまたは複数の記憶装置とのインタフェ
ースとなり、その1つまたは複数の記憶装置がそのノードに直接接続されている
というように見えるソフトウェア・プログラムである。一般的に言えば、クライ
アントとは、あるアクションを開始するためにプログラムにアクセスするプログ
ラムまたはサブルーチンである。クライアントは、アプリケーション・プルグラ
ムである場合もあれば、オペレーティング・システム・サブルーチンである場合
もある。
【0005】 残念ながら、従来の仮想ディスク・システムは、一貫した仮想ディスク・マッ
ピングを保証していない。一般的に言えば、記憶装置マッピングは、ある記憶装
置がどのノードに物理的に接続されるか、ならびにこれらのノード上のどのディ
スク装置がその記憶装置に対応するかを識別するものである。ある仮想装置をあ
る記憶装置にマッピングするノードとディスク・デバイスは、ノード/ディスク
対と呼ぶ場合もある。仮想装置マッピングは、許可およびその他の情報を含むこ
ともある。ノード障害などの障害が発生した場合にマッピングが持続性のもので
あることが望ましい。あるノードが他のノードの支援なしにある装置と通信でき
る場合、そのノードはその装置に物理的に接続される。
【0006】 クラスタは、ボリューム・マネージャを実装することができる。ボリューム・
マネージャとは、そのクラスタの記憶資源を管理するツールである。たとえば、
ボリューム・マネージャは、2つの記憶装置をミラーして1つの高可用性ボリュ
ームを作成することができる。他の実施形態では、ボリューム・マネージャは、
複数の記憶装置にわたるファイルの部分を記憶するストライピングを実施するこ
とができる。従来の仮想ディスク・システムは、記憶装置の上下いずれかに層状
に重ねたボリューム・マネージャをサポートすることができない。
【0007】 他の望ましい特徴としては、ノード障害または記憶装置経路障害などの障害が
存在する状態でデータ・アクセス要求が確実に実行されるような高可用性のデー
タ・アクセス要求を含む。一般的に言えば、記憶装置経路とは、あるノードから
ある記憶装置への直接接続部である。一般的に言えば、データ・アクセス要求と
は、データを読み書きするための記憶装置への要求である。
【0008】 仮想ディスク・システムでは、複数のノードが1つの記憶装置の多くの表現を
持つことがある。残念ながら、従来のシステムは、各ノード上の表現が一貫した
許可データを有することを保証する確実な手段を提供しない。一般的に言えば、
許可データは、どのユーザが装置、ディレクトリ、またはファイルにアクセスす
るための許可を有するかを識別するものである。許可としては、読取り許可、書
込み許可、実行許可を含むことができる。
【0009】 さらに、あるクラスタのノードを追加または除去する能力を有するか、または
そのクラスタが動作している間に既存のノードと記憶装置との接続を変更するこ
とが望ましい。この能力は、そのクラスタを低下させることができないクリティ
カル・アプリケーションで使用するクラスタでは特に重要である。この能力によ
り、物理的資源(ノードと記憶装置など)をシステムに追加するか、あるいはク
ラスタ内のデータ・アクセス要求を損なわずに修理および交換を実施することが
できる。
【0010】 (発明の概要) 上記で概要を示した問題は、本発明による高可用性仮想ディスク・システムに
よって大部分が解決される。一実施態様における高可用性仮想ディスク・システ
ムは、各記憶装置とクラスタ内の各ノードとのインタフェースを提供する。ノー
ドの見地からすると、各記憶装置がそのノードに物理的に接続されているとみる
ことができる。あるノードがある記憶装置に物理的に接続されている場合、仮想
ディスク・システムはその記憶装置に直接アクセスできる。あるいは、そのノー
ドがある記憶装置に物理的に接続されていない場合、仮想ディスク・システムは
そのクラスタ内にあってその記憶装置に物理的に接続されている他のノードを通
ってその記憶装置にアクセスできる。一実施態様では、すべてのノードが1つの
データ通信リンクを介して通信する。ある記憶装置が直接アクセスされるかまた
は他のノードを介してアクセスされるかは、その記憶装置にアクセスするクライ
アントにとってトランスペアレントなものである。
【0011】 一実施態様では、ノードは仮想ディスクのマッピングを記憶装置に記憶する。
たとえば、各アクティブ・ノードは、各仮想装置用の一次ノード/ディスク対と
二次ノード/ディスク対を識別するマッピングを記憶することができる。各ノー
ド/ディスク対は、その記憶装置に物理的に結合されたノードと、その記憶装置
に対応するそのノード上のディスク装置を識別する。二次ノード/ディスク対は
、代替ノード/ディスク対ともいう場合がある。そのノードが一次ノード/ディ
スク対を介してある記憶装置にアクセスできない場合、そのノードは二次ノード
/ディスク対を介してデータ・アクセス要求を再試行することができる。障害が
存在する状態でノード間の一貫したマッピングを維持するために、そのマッピン
グを高可用性データベースに記憶することができる。高可用性データベースは障
害が存在する状態でも1つの一貫したデータ・コピーを維持するので、高可用性
データベースに照会する各ノードは、同じマッピングを取得することになる。ま
た、高可用性データベースを使用して、仮想装置へのアクセスを制御するための
許可データを記憶することもできる。高可用性データベースは障害が存在する状
態でも1つの一貫した許可データ・コピーを維持するので、そのデータベースに
照会する各ノードは、同じ許可データを取得することになる。
【0012】 本発明による仮想ディスク・システムの特徴の1つは、システムの高い可用性
である。一実施態様では、仮想ディスク・システムは、それが受け取ったすべて
のデータ・アクセス要求を記憶し、エラーが発生した場合にその要求を再試行す
る。たとえば、データ・アクセス要求を開始し、要求側ノードと呼ばれるノード
の仮想ディスク・システムは、すべての未処理のデータ要求を記憶することがで
きる。宛先ノード、すなわち、そのデータ・アクセス要求が向けられるノードが
そのデータ・アクセス要求を完了できない場合、要求側ノードに対してエラー表
示を返すことができ、要求側ノードはその記憶装置に接続されている代替ノード
にそのデータ・アクセス要求を再送することができる。このエラー検出および再
試行は自動的に実行され、クライアントにとってトランスペアレントなものであ
る。他の例では、ノード障害が発生した場合、仮想ディスク・システムは、アク
ティブ・ノードの変更済みリストを受け取り、その記憶装置に結合されたアクテ
ィブ・ノードに不完全なデータ・アクセス要求を再送することができる。この再
構成および再試行もクライアントにとってトランスペアレントなものである。
【0013】 本発明による仮想ディスク・システムの他の特徴は、クラスタが動作している
間にそのクラスタを再構成できる能力である。あるクラスタを再構成すると、記
憶装置に対する仮想ディスクのマッピングを更新することができる。エラーを防
止するため、マッピングを更新する前にそのクラスタのすべてのノードに対して
同期コマンドを実行または操作することができる。この同期コマンドにより、ノ
ードはデータ・アクセス要求の発行を停止する。マッピングを更新した後、他の
同期コマンドにより、そのノードはデータ・アクセス要求の発行を再開する。
【0014】 仮想ディスク・システムは、ボリューム・マネージャと記憶装置とのインタフ
ェースまたはクライアントとボリューム・マネージャとのインタフェースとして
機能するように設計することができる。前者の構成では、クライアントはボリュ
ーム・マネージャにインタフェースし、ボリューム・マネージャは仮想ディスク
・システムにインタフェースする。後者の構成では、クライアントは仮想ディス
ク・システムにインタフェースし、仮想ディスク・システムはボリューム・マネ
ージャにインタフェースする。
【0015】 本発明の他の目的および利点は、以下に示す詳細説明を読み、添付図面を参照
すると明らかになるだろう。
【0016】 本発明は様々な変更および代替形式が可能であるが、その具体的な実施形態を
例証として添付図面に示し、本明細書に詳細に説明する。しかし、図面およびそ
れに対する詳細な説明は開示した特定の形式に本発明を限定するためのものでは
なく、むしろ、その意図は特許請求の範囲によって定義した本発明の精神および
範囲に含まれるすべての変更態様、同等態様、代替態様を含むことである。
【0017】 (発明の詳細な説明) 次に図1に移行すると、本発明の一実施形態によるクラスタ構成のブロック図
が示されている。クラスタ100は、データ通信リンク102と、3つのノード
104A〜104Cと、3つの記憶装置108、110、112とを含む。デー
タ通信リンク102は、ノード間でデータを転送するためのデータ通信経路であ
る。データ通信リンク102は、マルチドロップ・リンクまたはポイントツーポ
イント・リンクを企図している。たとえば、データ通信リンク102は3つのポ
イントツーポイント・リンクを含むことができる。第1のリンクはノード104
Aと104Bとの間の通信経路で、第2のリンクはノード104Aと104Cと
の間の通信経路で、第3のリンクはノード104Bと104Cとの間の通信経路
である。一実施形態のデータ通信リンク102はスケーラブル・コヒーレント・
インタフェース(scalable coherent interface:SCI)を実装する。特定の一
実施形態のクラスタは、SCIによりデータを転送するためにTCP/IPプロ
トコルを実装している。例示のためにのみ3つのノードを示していることに留意
されたい。他の実施形態ではそれより多いかまたは少ないノードを使用すること
もできる。
【0018】 図示の実施形態では、記憶装置108がノード104Aに物理的に接続され、
記憶装置110がノード104Bに物理的に接続され、記憶装置112がノード
104Cに物理的に接続されている。記憶装置108〜112は一般に、それが
接続されているノードのメモリの記憶容量を上回る記憶容量を有する。データは
、ノードによって現在使用されていない記憶装置108〜112に記憶され、そ
の記憶装置からのデータがそのデータが必要になったときにそのノードのメモリ
に記憶またはキャッシュされる。図示の実施形態では、記憶装置が1つのノード
のみに物理的に接続されている。代替実施形態では、1つの記憶装置を複数のノ
ードに物理的に接続することができる。複数の物理接続により、ある記憶装置に
物理的に接続された1つのノードが故障した場合または記憶装置経路が故障した
場合でもその記憶装置にアクセスすることができる。
【0019】 同じ分散プログラムの複数のインスタンスが各ノード上で動作することができ
る。たとえば、ボリューム・マネージャ105Aとボリューム・マネージャ10
5Bは同じ分散ボリューム・マネージャ・プログラムの異なるインスタンスであ
る。これらのインスタンスは、データ通信リンク102を介して互いに通信する
ことができる。各インスタンスには、同じ参照番号とそれに続く固有に英字、た
とえば、105Aまたは105Bが付与される。簡潔にするため、分散プログラ
ムは、まとめて参照番号のみを使用する、たとえば、ボリューム・マネージャ1
05ということができる。
【0020】 ノード104Aは、ボリューム・マネージャ105Aと仮想ディスク・システ
ム106Aとを含む。図示の実施形態の仮想ディスク・システム106Aは、ボ
リューム・マネージャ105と記憶装置108〜112とのインタフェースとな
っている。ボリューム・マネージャ105Aの見地からすると、各記憶装置はノ
ード104Aに物理的に接続されているように見える。仮想ディスク・システム
106は複数のノード上で動作する分散プログラムである。図示の実施形態では
、仮想ディスク・システム106の1つのインスタンスが各ノードで動作してい
る。仮想ディスク・システム106Aは、ノード104Aで動作する仮想ディス
ク・システム106のインスタンスであり、記憶装置108〜112をそれぞれ
表す3つの仮想装置(VD1、VD2、VD3)を含む。ボリューム・マネージ
ャ105は、自身のノードに物理的に接続された記憶装置に伝達するのと同じよ
うに仮想装置に伝達する。一実施形態では、ボリューム・マネージャ105はU
NIXデバイス・ドライバ・セマンティクスを使用する。記憶装置108(すな
わち、VD1)へのデータ・アクセス要求は仮想ディスク・システム106Aか
ら記憶装置108に直接運搬される。記憶装置110および112(すなわち、
VD2およびVD3)へのデータ・アクセス要求はデータ通信リンク102によ
りこれらの装置に物理的に接続されたそれぞれのノードに運搬される。
【0021】 各ノードの仮想ディスクは別個の装置であることに留意されたい。たとえば、
ノード104A、104B、104CのVD1は、それぞれ固有のデバイス・ド
ライバによって管理される固有の装置である。装置は固有であるが、各VD1装
置は同じ物理記憶装置にマッピングする。換言すれば、ノード104AのVD1
にデータを書き込むことは、ノード104Bまたは104CのVD1にデータを
書き込むのと同様に、記憶装置108にデータを記憶する。各記憶装置が複数の
ノードに物理的に接続できることにさらに留意されたい。この場合、その装置に
物理的に接続された各ノードは、記憶装置にインタフェースする異なるデバイス
・ドライバを有する。
【0022】 図示の実施形態では、ボリューム・マネージャ105Aのボリューム1(V1
)がVD1およびVD2に結合されている。一実施形態では、ボリューム・マネ
ージャ105Aがこれらの装置をミラーすることもできる。代替実施形態では、
ボリューム・マネージャ105Aが他の仮想装置に結合された他のボリュームを
含むこともできる。たとえば、第2のボリューム・マネージャ105AはVD2
およびVD3に結合することができる。
【0023】 ノード104Bおよび104Cでは、ボリューム・マネージャ(105Bおよ
び105C)および仮想ディスク・システム(106Bおよび106C)がボリ
ューム・マネージャ105Aおよび仮想ディスク・システム106Aと実質的に
同じように動作する。図示の実施形態では、ボリューム・マネージャ105Bの
ボリューム2(V2)が仮想ディスク・システム106BのVD2およびVD3
に結合されている。仮想ディスク・システム106Bは、記憶装置110に直接
アクセスし、通信インタフェース102およびノード104Cを介して記憶装置
112にアクセスする。ボリューム・マネージャ105Cのボリューム3(V3
)は仮想ディスク・システム106CのVD2およびVD3に結合されている。
仮想ディスク・システム106Cは、記憶装置112に直接アクセスし、通信イ
ンタフェース102およびノード104Bを介して記憶装置110にアクセスす
る。
【0024】 次に図2に移行すると、本発明の一実施形態による代替クラスタ構成のブロッ
ク図が示されている。クラスタ200は、データ通信リンク102と、3つのノ
ード104A〜104Cと、3つの記憶装置108、110、112とを含む。
簡潔にするため、図1の構成要素と同様の構成要素には同じ参照番号が付与され
ている。図2においては、クライアントは、ボリューム・マネージャ105では
なく仮想ディスク・システム106にインタフェースする。仮想ディスク・シス
テムがボリューム・マネージャにインタフェースし、ボリューム・マネージャは
1つまたは複数の記憶装置にインタフェースする。この構成では、ボリューム・
マネージャ105は仮想ディスク・システム106の下に層状に重ねられている
。簡潔にするため、ノード104Aの動作についてのみ以下に説明する。ノード
104Bおよび104Cは実質的に同じように動作する。
【0025】 ノード104Aでは、クライアントは仮想ディスク・システム106Aにイン
タフェースする。クライアントの見地からすると、仮想ディスク・システム10
6Aは3つの別々の記憶装置として現れる。図2の3つの仮想装置は、ボリュー
ム・マネージャが仮想ディスク・システムの下に層状に重ねられていることを反
映するように仮想ボリューム(VV1、VV2、VV3)として表示されている
。クライアントの見地からすると、仮想ボリュームは記憶装置のように動作する
。たとえば、仮想ボリュームはUNIXデバイス・ドライバ・セマンティクスを
使用することができる。クライアントは、仮想ディスク・システム106Aから
クラスタの3つのボリュームのいずれにもアクセスすることができる。ボリュー
ム・マネージャ105Aは記憶装置にインタフェースする。図示の実施形態では
、ボリューム・マネージャ105Aのボリューム1(V1)が記憶装置108お
よび110に結合されている。一実施形態では、ボリューム1は記憶装置108
および110にデータをミラーすることができる。仮想ディスク・システム10
6Aの見地からすると、ボリューム・マネージャ105Aのボリューム1は記憶
装置のように動作する。たとえば、そのボリュームはUNIXデバイス・ドライ
バのように動作することができる。
【0026】 仮想ディスク・システム106Bの仮想ボリューム2(VV2)はボリューム
・マネージャ105Bのボリューム2(V2)に直接インタフェースする。仮想
ボリューム1および3は、データ通信リンク102を介してノード104Aのボ
リューム1およびノード105Cのボリューム3と通信する。同様に、仮想ディ
スク・システム106Cの仮想ボリューム3はボリューム・マネージャ105C
のボリューム3に直接インタフェースする。仮想ボリューム1および2は、デー
タ通信リンク102を介してノード104Aのボリューム1およびノード105
Bのボリューム2と通信する。図示の実施形態では、ボリューム・マネージャ1
05Bのボリューム2およびボリューム・マネージャ105Cのボリューム3は
どちらも記憶装置110および112に物理的に接続されている。
【0027】 ボリューム・マネージャと仮想ディスク・システムはどちらも記憶装置のよう
に動作するので、ボリューム・マネージャは仮想ディスク・システムの上または
下のいずれかに層状に重ねることができる。したがって、それがボリューム・マ
ネージャにインタフェースするかまたは仮想ディスク・システムにインタフェー
スするかはクライアントにとってトランスペアレントなものである。どちらの実
施形態でも、クライアントは3つの信頼できる記憶装置に直接アクセスすること
ができるように見える。ボリューム・マネージャと仮想ディスク・システムはど
ちらも記憶装置に直接インタフェースすることができる。ボリューム・マネージ
ャによっては、仮想ディスク装置の上に層状に重ねられたときにより良好に動作
できるものもある。たとえば、ベリタスCVMなどのクラスタ・ボリューム・マ
ネージャは仮想ディスク・システムの上に層状に重ねられたときに最も良好に動
作するが、ソルスティス・ディスク・スイート(SDS)などの非分散ボリュー
ム・マネージャは仮想ディスク・システムの下で動作しなければならない場合も
ある。ボリューム・マネージャは仮想ディスク・システムの下で動作するために
分散しなければならないことに留意されたい。仮想ディスク・システムがそれら
が1つの装置であるかのようにノードの仮想ディスクを管理するのと同様に、C
VMなどの分散ボリューム・マネージャは、それらが1つのボリュームであるか
のようにボリューム(V1、V2、V3)を管理できることにさらに留意された
い。
【0028】 次に図3に移行すると、本発明の一実施形態によるクラスタの2つのノードで
動作する仮想ディスク・システムのブロック図が示されている。図示の実施形態
では、各ノードはユーザ部分とカーネルとを含む。ノード104Aのユーザ部分
は、クラスタ・メンバシップ・モニタ(CMM)310Aと、クラスタ構成デー
タベース(CCD)311Aと、クライアント312Aと、ネットディスク・デ
ーモン(NDD)314Aと、クラスタ・トランスポート・インタフェース・デ
ーモン(CTID)316Aとを含む。ノード104Aのカーネルは、ネットデ
ィスク・ドライバ(ND)318Aと、ネットディスク・マスタ(NM)320
Aと、クラスタ・トランスポート・インタフェース(CTI)322A、クラス
タ接続性モニタ(CCM)324Aと、ディスク・ドライバ326Aと、ネット
ワーク・トランスポート328Aとを含む。ノード104Bのユーザ部分は、ク
ラスタ・メンバシップ・モニタ(CMM)310Bと、クラスタ構成データベー
ス(CCD)311Bと、ネットディスク・デーモン(NDD)314Bと、ク
ラスタ・トランスポート・インタフェース・デーモン(CTID)316Bとを
含む。ノード104Bのカーネルは、ネットディスク・ドライバ(ND)318
Bと、ネットディスク・マスタ(NM)320Bと、クラスタ・トランスポート
・インタフェース(CTI)322B、クラスタ接続性モニタ(CCM)324
Bと、ネットディスク・ドライバ326Bと、ネットワーク・トランスポート3
28Bとを含む。
【0029】 図示の実施形態ではボリューム・マネージャが含まれていない。図1および図
2に関連して前述したように、ボリューム・マネージャは仮想ディスク・システ
ムの上または下のいずれかに実装することができる。ボリューム・マネージャが
仮想ディスク・システムの上に実装される場合、クライアント312Aがボリュ
ーム・マネージャにインタフェースし、次にそのボリューム・マネージャがND
318Aにインタフェースする。反面、ボリューム・マネージャが仮想ディスク
・システムの下に実装される場合、NM320Aがボリューム・マネージャにイ
ンタフェースし、次にそのボリューム・マネージャがディスク・ドライバ326
Aにインタフェースする。
【0030】 CTID316Aという構成モジュールは、CTI322Aという接続モジュ
ールを初期設定するデーモンである。クラスタの構成が変更されると、ノード3
16Aは初期設定される。CTID316AはCCD311Aに照会して構成情
報を入手する。一実施形態の構成情報は、そのクラスタのノード間のリンクの数
と、リンクに関連するプロトコルとを示す。一実施形態では、CTID316A
がCMM310Aをさらに照会し、クラスタ内のアクティブ・ノードのリストな
どのメンバシップ情報を入手する。CTID316Aは、ノード間のリンクによ
り接続を確立し、メンバシップ情報とリンク情報をCTI322Aに送る。CT
ID316Aは、プライベート相互接続によりCTI322Aに連絡することが
でき、入出力制御要求を使用することができる。
【0031】 CCD311Aによって識別されるリンクは、物理リンクの場合もあれば、仮
想リンクの場合もある。たとえば、CCM324Aは、CTI322Aによって
アクセス可能な1つの仮想リンクとして一対の物理リンクを管理することができ
る。CCM324については図9に関連して以下に詳述する。
【0032】 CCD311Aは、分散高可用性クラスタ・データベースのインスタンスの1
つである。CCD311は障害が存在する状態でも一貫したデータを記憶する。
CCD311にマッピング・データを記憶することにより、各ノードは障害が存
在する状態でも同じマッピング情報を入手する。CCD311については、Sl
aughter他により1997年10月21日に出願され、「Highly
available Distributed Cluster Config
uration Database」という名称で本願譲受人に譲渡された同時
係属特許出願第08/954796号に詳述されている。
【0033】 CMM310は、クラスタ・メンバシップを監視する分散プログラムである。
メンバシップが変更されると、CMM310はその変更を検出し、CTID31
6AおよびNDD314Aなどクラスタ内の他の資源に新しいメンバシップ情報
を送る。メンバシップ変更の例としては、そのクラスタに加わるノードまたはそ
のクラスタを離れるノードを含む。一実施形態のCMM310は各構成に固有の
構成番号を出力する。
【0034】 NDD314Aは、新しい装置をオープンしたときまたは再構成中にND31
8Aを初期設定するデーモンである。再構成は、ノードがそのクラスタに加わっ
たときまたはそのクラスタを離れるとき、あるいはノードが故障したときに行わ
れる。一実施形態では、各仮想ディスク装置は個別に初期設定される。特定の一
実施形態の仮想ディスク装置は、そのクラスタがその装置をオープンしたときに
クラスタによって初期設定されるか、または再構成の前に仮想ディスク・ドライ
バをオープンした場合は再構成後にクラスタによって初期設定される。このため
、すべての仮想ディスク装置がそれぞれの再構成後に初期設定されるわけではな
い。
【0035】 一実施形態のND318Aは、オープンすべき装置のリストと、オープンした
装置のリストを記憶する。クライアントがある装置をオープンするよう要求する
と、ND318Aはオープンすべき装置のリストにその装置を追加する。NDD
314Aはオープンすべき装置のリストに照会する。そのリストがオープンすべ
き装置を含む場合、NDD314AはCCD311Aに照会し、識別した装置に
関するマッピング情報を入手する。NDD314Aは、CMM310Aにも照会
して、アクティブ・ノードのリストなどのメンバシップ情報を入手することもで
きる。NDD314Aは、マッピング情報とメンバシップ情報をND318Aに
送る。NDD314Aはプライベート相互接続によりND318Aに連絡するこ
とができ、入出力制御要求を使用することができる。
【0036】 一実施形態では、ある装置に関するマッピング情報は、ある記憶装置に物理的
に接続された一次および二次ノードと、その記憶装置に対応するこれらのノード
のディスク装置とを識別する。ノードとディスクの各対はノード/ディスク対と
もいう場合がある。一次および二次ノード/ディスク対とメンバシップ情報とに
基づいて、ND318Aは、ある装置に関するデータ・アクセス要求を経路指定
するためのノードを選択することができる。ND314AとCTI322Aが初
期設定されると、仮想ディスク・システムはクライアント312Aからデータ・
アクセス要求を受け入れる準備が整っている。
【0037】 クライアント312Aは、それが記憶装置にアクセスするのと同じように仮想
ディスク・システムの仮想装置にアクセスする。クライアントの見地からすると
、各記憶装置またはボリュームはそのノードに物理的に接続されているように見
える。図示の実施形態では、クライアント312Aがある記憶装置からのデータ
にアクセスする場合、クライアントはデータ・アクセス要求をND318Aに送
る。一実施形態では、クライアント312Aは、宛先記憶装置と、動作のタイプ
と、データを検索または記憶するための位置とをND312Aに対して指定する
。残りの動作はクライアント312Aにとってトランスペアレントなものになる
。ND318Aは、マッピングおよび現行メンバシップ情報に基づいて、どのノ
ードにデータ・アクセス要求を送るかを決定する。一実施形態では、CCD31
1Aから入手したマッピング情報は、その記憶装置に物理的に接続された一次お
よび二次ノードを含む。ND318Aは、一次ノードがアクティブである場合、
そのデータ・アクセス要求を一次ノードに経路指定することができる。あるいは
、一次ノードがアクティブではない場合、ND318Aはそのデータ・アクセス
要求を二次ノードに経路指定する。その記憶装置にアクセスするためにどのノー
ドを使用するかは、クライアント312Aにとってトランスペアレントなものに
なる。
【0038】 ND318Aは、CTI322Aにデータ・アクセス要求を送り、どのノード
にデータ・アクセス要求を送るかを指定する。CTI322Aがどのようにデー
タ・アクセス要求を宛先ノードに転送するかは、ND318Aおよびクライアン
ト312Aにとってトランスペアレントなものになる。一実施形態では、その記
憶装置がノード104Aに直接結合されている場合、ND318AはCTI32
2AではなくNM320Aにデータ・アクセス要求を送る。NM320Aはデー
タ・アクセス要求をディスク・ドライバ326Aに送り、次にそのディスク・ド
ライバはその記憶装置にアクセスする。一実施形態のNM320Aは、ND31
8Aのうち、ディスク・ドライバ326Aにインタフェースする部分である。デ
ィスク・ドライバ326Aは、ノード104Aに物理的に接続された1つまたは
複数の記憶装置にインタフェースする。
【0039】 CTI322Aは複数のリンクを管理する。CTI322Aは分散プログラム
CTI322のインスタンスの1つである。CTI322Aは、あるデータ・ア
クセス要求の宛先ノードへの1つまたは複数のリンクを管理することができる。
たとえば、そのデータ・アクセス要求の宛先ノードがノード104Bである場合
、CTI322Aはそのノードへの3つのリンクを管理することができる。CT
I322Aは、1つのリンクを介してノード104Bにすべてのデータを移送す
る場合もあれば、3つのリンクによりデータを分散する場合もある。CTI32
2Aは、宛先ノードで宛先クライアントを識別するためのフィールドをデータ・
アクセス要求に付加することができる。ノード104BのCTI322Bは複数
のクライアントに対応することができる。CTI322Aによってメッセージに
付加されたフィールドは、CTI322Bがどのクライアントにそのデータを経
路指定するべきかを識別するものである。たとえば、CTI322Aは、宛先ク
ライアントをND318Bとして指定するデータを、ND318Aが受け取るデ
ータ要求に付加することができる。
【0040】 一実施形態のCCM324Aは、2つまたはそれ以上の冗長物理リンクを管理
する。CTI322Aの見地からすると、冗長物理リンクは1つの論理リンクと
して現れる。CCM324Aは、物理リンクによりCCM324Bとメッセージ
を交換する。CCM324の2つのインスタンスは、冗長リンクのうちのどちら
が動作可能であるかに関して合意に達する。CMM324は、データを転送する
ために1つの動作可能な物理リンクを選ぶことができる。そのリンクが故障した
場合、CCM324は、その故障を検出し、代替リンク上でデータを転送するこ
とができる。CTI322の見地からすると、各論理リンクは1つの高可用性リ
ンクとして現れる。一実施形態のCCM324Aはそのクラスタ内の各ノードへ
のリンクを管理する。たとえば、CMM324Aはノード104Bおよび104
Cへのリンクを管理することができる。
【0041】 ネットワーク・トランスポート328Aは、データ通信リンク112のリンク
によりプロトコル機能を実行する。一実施形態では、データ通信リンク112に
よりTCP/IPプロトコルを使用する。他の実施形態では、他のプロトコルを
実装することができる。たとえば、低待ち時間接続性層(LLCL)、メッセー
ジ受渡しインタフェース(MPI)、低オーバヘッド通信(LOCO)などの高
速プロトコルを使用することができる。
【0042】 ノード104Bでは、ネットワーク・トランスポート328Bがデータ・アク
セス要求を受け取り、適切なプロトコルを使用してデータをCTI322Bに移
送する。CTI322Bは、データ・アクセス要求を部分的にデコードし、その
宛先クライアントを決定することができる。図示の実施形態では、データはND
318Bに経路指定される。ND318Bは、データ・アクセス要求を部分的に
デコードし、宛先記憶装置を決定することができる。その記憶装置がノード10
4Bに物理的に結合されている場合、ND318Bは要求をNM320Bに送り
、NM320Bはその要求をディスク・ドライバ326Bに送る。ディスク・ド
ライバ326Bはその記憶装置にアクセスする。データ・アクセス要求が読取り
トランザクションである場合、要求されたデータはND318、CTI322、
データ通信リンク112を介してクライアント312Aに戻される。
【0043】 本発明の一実施形態による仮想ディスク・システムの特徴の1つは高い可用性
である。この仮想ディスク・システムは、ノード障害などの障害が存在する状態
でデータ・アクセス要求が確実に実行されるように設計されている。この目的に
向かって、ND318Aは保留データ・アクセス要求のリストを記憶する。デー
タ・アクセス要求が正常に完了しない場合、仮想ディスク・システムは他のノー
ドへのデータ・アクセス要求を再試行する。要求側ノードは、否定応答信号を受
け取ることによって不完全なデータ・アクセス要求を検出する場合もあれば、宛
先ノードがアクティブではないことを示す再構成データを受け取る場合もある。
データ・アクセス要求が正常に完了した場合、それは保留データ・アクセス要求
のリストから除去される。
【0044】 たとえば、ノード104Bがある記憶装置の一次ノードであり、ノード104
Cがその記憶装置の二次ノードである場合が考えられる。ND318Aがその記
憶装置にデータ・アクセス要求を送ると、それはそのデータ・アクセス要求を一
次ノードに送ることができ、そのノードはノード104Bである。ノード104
Bがデータ・アクセス要求を正常に完了できない場合、たとえば、ディスク・ド
ライバ326Bと記憶装置との間の記憶装置経路が機能しない場合、ノード10
4Aは、そのデータ・アクセス要求が正常に完了しなかったことを示す否定応答
信号を受け取ることができる。次にノード104Aはデータ・アクセス要求を二
次ノードに再送することができる。そのノードはノード104Cである。ノード
104Aは、ノード104Bがその記憶装置と通信できないことを示す情報を記
憶し、その後、新しいデータ・アクセス要求を他のノードに送ることができる。
【0045】 代替例では、ノード104Bを動作不能にすることができる。一実施形態では
、ノード104AがCMM310Aから取得したクラスタ・メンバシップ・デー
タは、そのノードが動作不能であることを示す場合もある。したがって、ND3
18Aは、データ・アクセス要求を二次ノードに経路指定することができる。上
記のように、障害が存在する状態でもデータ・アクセス要求が正常に完了する。
【0046】 次に図4に移行すると、本発明の一実施形態によるネットディスク・ドライバ
の初期設定を示すブロック図が示されている。図4はノード104AにおけるN
D318Aの初期設定を示している。そのクラスタ内の他のネットディスク・ド
ライバの初期設定は実質的に同じように実行することができる。
【0047】 一実施形態では、記憶装置にアクセスする前にその記憶装置をオープンする。
たとえば、記憶装置を初期設定させるオープン・コマンドを実行することができ
る。同様に、各ノードの各仮想装置はそれにアクセスする前にオープンすること
ができる。クライアント312Aは、ND318Aにコマンドを出力して仮想装
置をオープンする。ND318Aはオープンすべき装置をリストに記憶する。一
実施形態のNDD314Aは、定期的にそのリストに照会して、どの装置を初期
設定するかを決定する。代替実施形態のND318Aは、装置を初期設定する必
要があることを示す信号をNDD314Aに出力することができる。NDD31
4Aは、オープンすべき装置に関するマッピング情報を入手するためにCCD3
11Aに照会し、現行メンバシップ情報についてはCMM310Aに照会する。
NDD314Aはマッピングおよびメンバシップ情報をND318Aに送る。N
D318Aはマッピングおよびメンバシップ情報を構成ファイルに記憶する。N
D318Aは、構成ファイルに記憶したマッピングおよびメンバシップ・データ
を使用して、ノードへのデータ・アクセス要求の経路指定を決定する。次にND
318Aは、その装置がオープンされたことをクライアント312Aに通知する
【0048】 一実施形態では、各仮想装置に関するマッピング情報としては、仮想装置の名
前と、一次ノードと、その一次ノードの記憶装置の名前(すなわち、その記憶装
置に対応する装置の名前)と、二次ノードと、その二次ノードの記憶装置の名前
とを含む。そのうえ、マッピング情報は、仮想装置の識別番号と、記憶装置のク
ラスタ特有の名前とを含むこともできる。
【0049】 そのうえ、ND318Aは、マッピングおよびメンバシップ・データに関連す
る再構成番号を記憶する。再構成番号はCCM310Aから入手される。ND3
18Aは再構成番号を使用して、その現行メンバシップ・データが最近の構成に
関して最新のものであるかどうかを判定する。
【0050】 一実施形態では、クラスタの構成が変更されると、CMM310Aは、新しい
メンバシップ情報をNDD314Aに通知する。たとえば、ノード障害が検出さ
れた場合、CMM314Aは、再構成が行われたことをNDD314Aに通知し
、新しいメンバシップ・データをNDD314Aに送る。NDD314Aは新し
いメンバシップ情報をND318Aに送り、そのND318Aはマッピング情報
とともに新しいメンバシップ情報を使用して将来のデータ・アクセス要求を経路
指定する。
【0051】 一実施形態では、ファイルシステムがノードの仮想ディスクを管理する。この
ファイルシステムはネットディスク・ファイルシステム(NDFS)と呼ぶこと
もできる。NDFSはあるノードが仮想ディスクをオープンしたときにその仮想
ディスク用の特殊装置ファイルを作成するように構成されている。この特殊装置
ファイルは、オペレーティング・システム内で仮想ディスクを表すものである。
【0052】 UNIXオペレーティング・システムなどのオペレーティング・システムでは
、装置をファイルとして扱うことができる。ある装置に関連するファイル(装置
ファイルまたは特殊装置ファイルという)は、通常、オペレーティング・システ
ムのブートアップ・フェーズ中に実行される初期設定プログラムによって作成さ
れる。初期設定プログラムは、コンピュータ・システムに接続された物理装置を
決定し、その物理装置に対応する装置ファイルを作成する。一実施形態では、ブ
ートアップ中ではなく、最初にアクセスされたときに仮想装置が初期設定される
。この状況ならびにその仮想ディスクをノードに物理的に接続できないことは、
初期設定中に仮想ディスク用の装置ファイルを作成できないことを意味する。好
ましくは仮想ディスクは他の装置のようにアクセス可能なので、NDFSは、最
初にオープンされたときに仮想装置の装置ファイルを作成するように構成されて
いる。一実施形態では、あるノードがある仮想装置を最初にオープンしたときに
のみ、装置ファイルが作成される。その後、その仮想装置をオープンしても、装
置ファイルは作成されない。
【0053】 一実施形態のNDFSは仮想装置をオープンするコマンドを検出する。これが
その仮想装置がオープンされた最初の場合であれば、NDFSは作成要求をND
318Aに送る。一実施形態のNDFSは、ND318Aへのプライベート・イ
ンタフェースを有する。ND318Aはリストとして作成するためにその仮想装
置を記憶する。このリストは、オープンすべき装置を記憶するために使用するの
と同じリストである場合もあれば、作成すべき装置用の個別のリストである場合
もある。NDD314Aが定期的にそのリストに照会してどの装置を作成すべき
かを決定する場合もあれば、ある装置を作成する必要があることを示す信号をN
D318AがNDD314Aに出力する場合もある。NDD314AはCCD3
11Aに照会し、オープンすべき装置に関する許可データを入手する。NDD3
14AはND318Aに許可データを送り、次にそのND318Aが許可データ
をNDFSに送る。NDFSは、CCD311Aから受け取った許可データによ
ってその装置に関する装置ファイルを作成することになる。一実施形態では、前
述のように通常の装置オープン手順を使用して装置ファイルが作成されたあとで
装置がオープンされる。その後、同じノードによって同じ装置をオープンすると
、NDFSがかかわる必要なしに通常のオープン動作が行われる。したがって、
性能上のハンディは装置を最初にオープンしたときにだけ発生する。その装置を
オープンするためのその後のコマンドは、他のどの装置のオープンとも同じよう
に実行される。
【0054】 次に図5に移行すると、本発明の一実施形態によるクラスタ・トランスポート
・インタフェースの初期設定を示すブロック図が示されている。図5はノード1
04AにおけるCTI316Aの初期設定を示している。そのクラスタ内の他の
クラスタ・トランスポート・インタフェースの初期設定は実質的に同じように実
行することができる。
【0055】 一実施形態では、データ通信リンク102によりデータを転送する前に、CT
ID316Aは使用可能なリンクにより接続を確立する。初期設定中にCTID
316Aは、現行クラスタ・メンバシップを識別するデータを求めてCMM31
0Aに照会し、どのリンクがどのノードに接続されるかを識別するデータを求め
てCCD311Aに照会する。一実施形態のCCD311Aは、リンクの転送プ
ロトコルなど、そのリンクに関する追加情報を記憶する。CTID316Aは、
使用可能なリンクにより接続を確立し、リンク情報およびメンバシップ・データ
をCTI322Aに渡す。一実施形態のCTID316Aは使用可能なリンクに
よりTCP/IP接続を確立する。
【0056】 CTI322Aはネットワーク・トランスポート328Aにインタフェースし
、CTI322の他のインスタンスへのデータを交換する。一実施形態のネット
ワーク・トランスポート328AはCCM324Aにインタフェースし、それが
1つまたは複数の冗長リンクを管理する。CTI322Aは、特定のノード宛て
のデータ・アクセス要求を受け取ると、どの接続が要求側ノードを宛先ノードに
接続するかを決定する。CTI322Aは、どの接続(複数も可)上で宛先ノー
ドにデータを移送するかを決定する。たとえば、CTI322Aがノード104
Bへの3つのリンクによる接続を管理し、それがそのノード宛てのデータ・アク
セス要求を受け取る場合、CTI322Aは1つの接続を介してすべてのデータ
を転送する場合もあれば、3つの接続のそれぞれによりデータの一部分を転送す
る場合もある。
【0057】 クラスタが再構成されると、CMM310Aはその事象をCTID316Aに
通知する。CTID316AはCCD311Aから新しいメンバシップ・データ
を入手し、その新しいメンバシップ・データと新しい構成番号をCTI322A
に送る。そのうえ、CTID316AはCCD311Aからリンク・データを入
手することができ、そのデータをCTI322Aに送る。CTID322Aは、
再構成が行われたときに接続を変更することができる。たとえば、CTID32
2Aは、クラスタ内の新しいノードに対してリンクにより接続を確立する場合も
あれば、そのクラスタを離れるノードへの接続を放棄する場合もある。
【0058】 次に図6に移行すると、本発明の一実施形態による仮想ディスク・システムの
動作を示す流れ図が示されている。ステップ612では、ネットディスク・ドラ
イバを初期設定する。ネットディスク・ドライバの初期設定については図7に関
連して詳述する。ステップ614では、クラスタ・トランスポート・ネットワー
クを初期設定する。クラスタ・トランスポート・インタフェースの初期設定につ
いては図8に関連して詳述する。ステップ616では、ネットディスク・ドライ
バがクライアントからデータ・アクセス要求を受け取る。ステップ617では、
ネットディスク・ドライバは、データ・アクセス要求と、それが正常に完了して
いない場合にデータ・アクセス要求を再発行するために必要な他のデータを記憶
する。
【0059】 ステップ618では、データ・アクセス要求を受け取るネットディスク・ドラ
イバは、宛先装置が要求側ノードに物理的に接続されているかどうかを判定する
。宛先装置が要求側ノードに物理的に接続されている場合、ネットディスク・ド
ライバはステップ620で記憶装置上でデータ・アクセス要求を実行する。ある
いは、記憶装置が要求側ノードに物理的に接続されていない場合、ネットディス
ク・ドライバはステップ620でデータ・アクセス要求を送るべきノードを検出
する。一実施形態のネットディスク・ドライバは、各記憶装置ごとに一次および
二次ノードを識別するマッピング情報を記憶する。特定の一実施形態では、ネッ
トディスク・ドライバは、メンバシップ・データおよび/または前の不成功に終
わったデータ・アクセス要求に基づいて、一次または二次ノードを選択する。ス
テップ624では、ネットディスク・ドライバは、クラスタ・トランスポート・
インタフェースを介して選択した宛先ノードにデータ・アクセス要求を送る。
【0060】 ステップ626では、クラスタ・トランスポート・インタフェースは、ネット
ディスク・ドライバにより宛先ノードにデータを転送するために1つまたは複数
の接続を選択する。ステップ628では、クラスタ・トランスポート・インタフ
ェースは、選択した接続(複数も可)を介して宛先ノードにデータ・アクセス要
求を送る。ステップ630では、宛先ノード側のクラスタ・トランスポート・イ
ンタフェースは、データ・アクセス要求を受け取って宛先クライアントを決定す
るが、その宛先クライアントはこの例ではネットディスク・ドライバ、またはよ
り詳細にはネットディスク・マスタである。ステップ632では、ネットディス
ク・マスタがデータ・アクセス要求を受け取り、宛先記憶装置にアクセスする。
ステップ634では、宛先ノードのクラスタ・トランスポート・インタフェース
が肯定応答または否定応答信号を要求側ノードに返す。データ・アクセス要求が
読取り要求である場合、要求されたデータも要求側ノードに返されるであろう。
【0061】 データ・アクセス要求の転送と並行して、ステップ638では、要求側ノード
が宛先ノードからの状況信号を待つ。この状況信号は肯定応答または否定応答信
号の形を取ることができる。ステップ640では、肯定応答が受け取られたかど
うかを判定する。肯定応答信号が受け取られた場合、動作はステップ616に継
続する。あるいは、否定応答信号が受け取られた場合、ステップ642では、デ
ータ・アクセス要求を送るための代替ノードを選択し、動作はステップ624に
継続する。
【0062】 次に図7に移行すると、本発明の一実施形態によるネットディスク・ドライバ
の初期設定を示す流れ図が示されている。ステップ712では、ネットディスク
・デーモンは、オープンすべき装置を求めてネットディスク・ドライバに照会す
る。判断ステップ714では、オープンする必要がある装置があるかどうかを判
定する。どの装置もオープンする必要がない場合、実行はステップ712に継続
する。あるいは、ネットディスク・デーモンがオープンすべき装置を検出した場
合、ステップ716でネットディスク・デーモンがマッピング・データを求めて
クラスタ構成データベースに照会する。このマッピング・データは仮想装置にマ
ッピングされたノード/ディスク対を識別することができる。ステップ718で
は、ネットディスク・デーモンはメンバシップ・データを求めてクラスタ・メン
バシップ・モニタに照会する。
【0063】 ステップ720では、ネットディスク・デーモンはマッピングおよびメンバシ
ップ・データをネットディスク・ドライバに送る。ステップ722では、ネット
ディスク・ドライバは、その装置に関するマッピング情報を更新し、そのメンバ
シップ情報を更新し、再構成番号を記録する。ステップ724では、ネットディ
スク・ドライバは、要求された装置がオープンされていることをクライアントに
通知する。
【0064】 次に図8に移行すると、本発明の一実施形態によるクラスタ・トランスポート
・インタフェースの初期設定を示す流れ図が示されている。ステップ812では
、クラスタ・トランスポート・インタフェース・デーモンは構成変更の表示を受
け取る。あるいは、クラスタ・トランスポート・デーモンは、システム初期設定
の表示を受け取る場合もある。ステップ814では、クラスタ・トランスポート
・インタフェース・デーモンは、リンク情報を求めてクラスタ構成データベース
に照会する。一実施形態では、リンク情報は、あるクラスタ内のノード間のリン
クの数と、どのリンクがどのノードに結合されているかということ、そのリンク
が使用するプロトコルなどの情報とを含むことができる。ステップ816では、
クラスタ・トランスポート・インタフェース・デーモンはメンバシップ情報を求
めてクラスタ・メンバシップ・モニタに照会する。
【0065】 ステップ818では、クラスタ・トランスポート・インタフェースがリンクに
より接続を確立する。ステップ820では、クラスタ・トランスポート・インタ
フェース・デーモンがクラスタ・トランスポート・インタフェースにリンクおよ
びメンバシップ情報を送る。その場合、クラスタ・トランスポート・インタフェ
ースはデータ・アクセス要求またはその他のメッセージを受け入れる準備が整っ
ている。
【0066】 次に図9に移行すると、本発明の一実施形態によるクラスタ・トランスポート
・インタフェースのブロック図が示されている。クラスタ・トランスポート・イ
ンタフェースはデータ・トランスポート・システムの一例である。図9は、クラ
スタ・トランスポート・インタフェースの3つのインスタンス(322A〜32
2C)と、3つのTCP/IPインタフェース(912A〜912C)と、8つ
のクラスタ接続モニタ(914A〜914H)とを含む。CTI322は、ノー
ド間でメッセージを受け渡すための機能を備えた分散ソフトウェア・プログラム
である。そのメッセージとしては、制御メッセージとデータ・ブロックを含むこ
とができる。
【0067】 クラスタ・トランスポート・インタフェース322のインスタンスは、クライ
アント・プログラム間でデータを受け渡す。たとえば、CTI322Aは、CT
I322Aにとってクライアントであるネットディスク・ドライバからメッセー
ジを受け取ることができる。一実施形態のメッセージは、その宛先ノードと、そ
のノードのディスク装置を指定するものである。CTI322Aは、どのリンク
が宛先ノードに接続されるかを決定し、そのリンクのうちの1つによりメッセー
ジを送る。宛先ノード側のクラスタ・トランスポート・インタフェースは、デー
タ・アクセス要求を受け取り、宛先クライアントを決定し、宛先クライアントに
データを送る。たとえば、CTI322Aは、ノード104A内のネットディス
ク・ドライバからノード104B内のネットディスク・ドライバにデータ・アク
セス要求を経路指定することができる。CTI322Bは、データ・アクセス要
求を受け取り、宛先クライアントを決定し、ノード104B内のネットディスク
・ドライバにデータ・アクセス要求を送る。クライアントの見地からすると、C
TI322Aは宛先ノードへの仮想リンクの1つとして現れる。
【0068】 図示の実施形態では、CTI322は、他のノードにデータを転送するために
TCP/IPを使用する。CTID316Aは、初期設定中に各リンクによりT
CP/IP接続を自動的に確立する。CTI322は、CCM914の適切なイ
ンスタンスにメッセージを転送するTCP/IP912Aにメッセージを送る。
しかし、CTI322Aは、特定のデータ転送プロトコルに依存していない。T
CP/IP912および/またはCCM914を変更することにより、CTI3
22はどのようなデータ・トランスポート・インタフェースまたは転送プロトコ
ルにもインタフェースすることができる。
【0069】 一実施形態のCTI322Aは、他のノードから受け取ったメッセージおよび
データを記憶するためのメモリを割り振り、クライアントがもはやそのデータを
必要としなくなったときにそのメモリの割振りを解除する。一実施形態のCTI
322は、コールバック機能を使用して、そのデータを受け取ったことをクライ
アントに示す。たとえば、CTI322Aはノード104Bに読取り要求を送る
ことができる。CTI322Aは、要求されたデータを受け取ると、要求側クラ
イアントへのコールバック機能を使用して、そのデータが使用可能であることを
示す。
【0070】 クラスタ接続モニタ(CCM)914は、2つまたはそれ以上の物理リンクを
1つの論理リンクとして管理する。図示の実施形態では、CCM914の一対の
インスタンスが2つのリンクを管理する。代替実施形態では、CCM914の一
対のインスタンスがそれ以上のリンクを管理することができる。複数対の物理リ
ンクはそのクラスタ内のあるノードを他のノードに接続する。たとえば、リンク
916Aはノード104Aをノード104Bに結合し、リンク916Bはノード
104Aをノード104Cに結合する。一実施形態では、CMM914によって
リンクが冗長リンクとして扱われる。データは一方のリンクの障害が検出される
までそのリンク上で転送され、その後、データはもう一方のリンク上で転送され
る。
【0071】 CCM914は、どのリンクが動作可能であるかを決定し、両方の物理リンク
により、ときにはハートビート・メッセージと呼ばれるメッセージを交換するこ
とで障害を検出する。たとえば、CCM914AとCCM914Eは、ハートビ
ート・メッセージを交換して、物理リンク916Aが動作可能であるかどうかを
判定する。CCM914の2つのインスタンスは物理リンクのうちの一方を一次
リンクとして選択する。一次リンクが故障した場合、CCM916はその障害を
検出し、もう一方の物理リンク上でデータの転送を開始する。特定の一実施形態
では、CCM916は、物理リンクを越えて不信頼データ・プロトコル(UDP
)メッセージを交換して、そのリンクが動作可能であるかどうかを判定する。
【0072】 CTI322の見地からすると、CCM914によって管理される各対の物理
リンクは1つの論理リンクとして現れる。したがって、CTI322Aによって
転送されるデータは、CTI322Aにとってトランスペアレントな2つの物理
リンクのうちの一方で転送することができる。
【0073】 図示の実施形態では、3つの論理リンク(916B〜916D)がノード10
4Aをノード104Cに接続する。CTI322Aは、3つのリンクのうちのど
のリンク上でデータを転送するかを決定する。一実施形態のCTI322Aは1
つの論理リンク上ですべてのデータを転送することができる。代替実施形態のC
TI322Aは各論理リンク上でデータの一部分を転送することができる。上記
のように、どの論理リンク上またはいくつの論理リンク上でデータを転送するか
はクライアントにとってトランスペアレントなものである。
【0074】 次に図10に移行すると、本発明の一実施形態による装置許可を示す図が示さ
れている。許可データはディレクトリのリストに関連して示されている。同様の
リストは、生の仮想ディスク装置をリストするディレクトリで「ls−l」コマ
ンドを実行することによって入手することができる。装置許可は装置そのものに
関するものであって、その装置上のファイルまたはディレクトリに関するもので
はないことに留意されたい。生の装置(すなわち、その上にファイルシステムま
たはファイルが一切置かれていない装置)は許可目的のためのファイルとして扱
われる。
【0075】 フィールド1012は10個の文字を含む。第1の文字は、ディレクトリを識
別する「d」または装置を識別する「−」のいずれかである。次の9つの文字は
、3文字ずつ3つのグループである。各グループは、所有者、グループ、その他
のための許可モードをそれぞれ表している。許可モードとしては、読取り(r)
、書込み(w)、実行(x)を含む。各グループ内の1つの文字は各許可モード
を表す。許可モードを表す英字が存在する場合、関連ユーザはその許可を得てい
る。あるいは、「−」が存在する場合、関連ユーザはその許可を得ていない。た
とえば、あるユーザが「rwx」という許可を得ている場合、そのユーザは、読
取り、書込み、実行の各許可を得ていることになる。あるいは、ユーザが「r−
−」という許可を得ている場合、そのユーザは読取り許可を得ているが、書込み
または実行の各許可を得ていないことになる。第1のグループの3つの文字はそ
の装置の所有者ための許可を表している。第2のグループの3つの文字はその装
置に関連するグループのための許可を表している。最後のグループの3つの文字
は他のユーザのための許可を表している。所有者とグループについては以下に詳
述する。たとえば、フィールド1012内の許可が「drwx−−x−x−」で
ある場合、そのフィールドはディレクトリを表し、所有者が読取り、書込み、実
行の各許可を得ており、グループとその他が実行許可のみを得ていることになる
【0076】 フィールド1016はその項目の所有者を識別する。所有者はその装置を作成
したユーザである。フィールド1018は関連ユーザのグループを識別する。グ
ループはオペレーティング・システム内で定義される。フィールド1018は定
義済みグループの1つを装置に関連付けるものである。他のユーザは所有者では
なく、選択したグループ内にも含まれない。前述のように、所有者、グループ、
その他のユーザのために、それぞれ異なる許可を定義することができる。
【0077】 フィールド1022はその装置の最後の変更の日付と時刻を識別する。最後の
変更が現行暦年の範囲内である場合、月、日、時刻が指定される。あるいは、最
後の変更が現行暦年の範囲内ではない場合、月、日、年が指定される。フィール
ド1024は装置の名前を識別する。
【0078】 クラスタのノード間で一貫した許可データを保証するため、許可データは高可
用性データベースに記憶することができる。一実施形態では、あるクラスタ内の
複数のノードがある装置の表現を有する。障害が存在する状態でもノード間で一
貫した許可データを維持するため、許可データはクラスタ構成データベース(C
CD)に記憶される。
【0079】 一実施形態では、あるノードが最初に仮想装置をオープンすると、その装置の
ための許可データがCCDから読み取られ、その許可データによって装置ファイ
ルが作成される。一実施形態の装置ファイルは、仮想装置があるノードによって
最初にオープンされたときにのみ作成される。一実施形態では、各ノード上で動
作するファイルシステムは、その装置の許可データを求めてCCDに照会するデ
ーモンを含む。このデーモンは許可データをファイルシステムに返し、そのファ
イルシステムがその許可によって特殊装置ファイルを作成する。CCDはそのク
ラスタのどのノードでも照会することができ、障害が存在する状態でも一貫した
情報を返すので、すべてのノードが一貫した許可データを有することになる。
【0080】 次に図11に移行すると、本発明の一実施形態による一貫した許可データの記
憶およびアクセスを示す流れ図が示されている。ステップ1112では、許可デ
ータを高可用性データベースに記憶する。一実施形態の許可データは、装置許可
と、装置の所有者と、装置に関連するグループとを含む。ステップ1114では
、第1のノードは第1のノードの装置をオープンし、高可用性データベースから
の許可データにアクセスする。ステップ1115では、そのノードは、許可デー
タを含む、その装置に関する特殊装置ファイルをオープンする。ステップ111
6では、第2のノードは、第2のノード上にあって同じ物理装置に対応する装置
をオープンし、許可データにアクセスする。ステップ1117では、そのノード
は、第2のノードの許可データを含む、その装置に関する特殊装置ファイルをオ
ープンする。高可用性データベースは一貫したデータを返すので、ノードは一貫
した許可データを受け取る。
【0081】 次に図12に移行すると、本発明の一実施形態による構成マッピングの更新を
示す流れ図が示されている。ステップ1212では、更新が保留中であるという
表示をノードに提供する。ステップ1214では、ノードは記憶装置へのデータ
・アクセス要求を中断する。ステップ1216では、ノードは未処理のデータ・
アクセス要求が完了するのを待つ。ステップ1218では、ノードは記憶装置に
対する仮想ディスクのマッピングの内部表現を無効にする。ステップ1220で
は、ノードは、内部マッピング表現が無効になり、データ・アクセス要求が中断
され、未処理のデータ・アクセス要求が完了したことを示す肯定応答信号を出力
する。ステップ1222では、システムはすべてのアクティブ・ノードからの肯
定応答信号を待つ。ステップ1224では、システムはそのマッピングを更新す
る。ステップ1226では、システムは、その更新が完了したという表示を出力
する。ステップ1228では、ノードはマッピングの更新済みバージョンを要求
する。ステップ1230では、ノードは、記憶装置へのデータ・アクセス要求の
送信を再開する。
【0082】 一実施形態での更新手順は、クラスタ構成データベース(CCD)によって調
整される。エラーを防止するため、マッピングはすべてのノード間で一貫して更
新しなければならない。CCDは、保留中の更新をノードに通知し、その更新が
完了したことを同期コマンドによりノードに通知する。一実施形態の同期コマン
ドは、CCD内の行が変更されるたびに必ず実行される。CCD内の行の変更中
に実行すべきコマンドは、CCDに記憶されたデータに関連するフォーマット行
で指定することができる。同期コマンドは、そのクラスタのすべてのノード上で
並行して実行することができる。一実施形態のネットディスク同期コマンドは、
ネットディスク・マッピングが変更されたときに実行される。ネットディスク同
期コマンドの異なる呼出しは、変更のタイプに応じて実行することができる。C
CDは、マッピングを変更する前に第1の同期コマンドを出力する。第2の同期
コマンドは、データベースを更新したあとで実行することができる。
【0083】 一実施形態では、すべてのノードから肯定応答信号を受け取ったわけではない
場合、クラスタはその更新を中断し、取消し信号を出力することになる。一実施
形態では、取消し信号によりノードが内部マッピング表現を再確認し、動作を続
行する。
【0084】 上記のように、クラスタの構成は、データを失わずにクラスタが動作している
間に変更することができる。システム内のデータ・アクセス要求は遅延する可能
性があるが、エラーなしで続行される。上記の再構成手順では、データを失わず
に接続を再構成することもできる。たとえば、記憶装置はあるノードから切断し
て、他のノードに再接続することができる。物理的な再構成はステップ1222
と1224の間で行うことができる。さらに、この再構成は、遅延を除き、クラ
イアントにとってトランスペアレントなものである。上記の再構成の他の応用例
としては、動作中にボリューム・マネージャのマッピング(または管理)を変更
することがある。
【0085】 上記の開示内容を完全に理解すると、当業者には多数の変形形態および修正形
態が明らかになるだろう。特許請求の範囲はこのような変形形態および修正形態
をすべて包含するものと解釈することを意図するものである。
【図面の簡単な説明】
【図1】 本発明の一実施形態によるクラスタ構成のブロック図である。
【図2】 本発明の一実施形態による代替クラスタ構成のブロック図である。
【図3】 本発明の一実施形態によるクラスタの2つのノード上で動作する仮想ディスク
・システムのブロック図である。
【図4】 本発明の一実施形態によるネットディスク・ドライバの初期設定を示すブロッ
ク図である。
【図5】 本発明の一実施形態によるクラスタ・トランスポート・インタフェースの初期
設定を示すブロック図である。
【図6a】 本発明の一実施形態による仮想ディスク・システムの動作を示す流れ図である
【図6b】 本発明の一実施形態による仮想ディスク・システムの動作を示す流れ図である
【図7】 本発明の一実施形態によるネットディスク・ドライバの開始を示す流れ図であ
る。
【図8】 本発明の一実施形態によるクラスタ・トランスポート・インタフェースの開始
を示す流れ図である。
【図9】 本発明の一実施形態によるクラスタ・トランスポート・インタフェースのブロ
ック図である。
【図10】 本発明の一実施形態による許可データを示す図である。
【図11】 本発明の一実施形態による一貫した許可データの記憶およびアクセスを示す流
れ図である。
【図12】 本発明の一実施形態による構成マッピングの更新を示す流れ図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年6月26日(2000.6.26)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 13/10 340 G06F 13/10 340B (31)優先権主張番号 09/076,346 (32)優先日 平成10年5月12日(1998.5.12) (33)優先権主張国 米国(US) (31)優先権主張番号 09/076,274 (32)優先日 平成10年5月12日(1998.5.12) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W (71)出願人 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 トラバーサット,ベルナルド・エイ アメリカ合衆国・94109・カリフォルニア 州・サン フランシスコ・カリフォルニア ストリート・2055・アパートメント 402 (72)発明者 ハーンドン,ロバート アメリカ合衆国・80906・コロラド州・コ ロラド スプリングス・サウス ネバダ アベニュ 137番・1837 (72)発明者 ジェン,シャオヤン アメリカ合衆国・94555・カリフォルニア 州・フレモント・ゴルービン コモン・ 5454 (72)発明者 ブロック,ロバート・ジェイ アメリカ合衆国・94043・カリフォルニア 州・マウンテン ビュー・ノース レング ストーフ 29番・265 Fターム(参考) 5B014 EA04 HC02 HC15 5B027 AA00 BB06 BB07 5B034 BB11 CC05 5B082 DA01 DE01 DE02 DE04 FA07 HA05 JA01 5B083 AA09 BB03 CD06 CE01 DD13 EE11 GG04 【要約の続き】 実行され、マッピングが変更される。次にそのノードは マッピングの内部表現を更新し、データ・アクセス要求 の発行を再開する。

Claims (107)

    【特許請求の範囲】
  1. 【請求項1】 第1のノードと、第2のノードと、前記第1のノードと前記
    第2のノードとの間に結合された通信リンクと、 前記第1のノードに結合された記憶装置であって、前記記憶装置が前記第2の
    ノードに結合されているように見えるように構成された仮想ディスク・システム
    を使用して前記記憶装置にアクセスするように前記第2のノードが構成される記
    憶装置とを含み、 前記仮想ディスク・システムが前記第2のノード上で動作するドライバと前記
    第1のノード上で動作するマスタとを含み、前記第2のノードが前記仮想ディス
    ク・システムの仮想ディスクにアクセスすると、前記ドライバは前記マスタにデ
    ータ要求を送るように構成され、前記マスタは前記記憶装置からのデータにアク
    セスするように構成され、前記マスタは前記通信リンクを介して前記ドライバに
    応答を送るように構成され、 前記ドライバは前記ドライバが前記応答を受け取るまで前記データ要求のコピ
    ーを記憶するように構成され、前記ドライバは前記ドライバが前記応答を受け取
    り損なった場合に前記要求を再送するように構成される、分散コンピューティン
    グ・システム。
  2. 【請求項2】 前記データ通信インタフェースおよび前記記憶装置に結合さ
    れた第3のノードをさらに含み、前記ドライバは前記ドライバが前記応答を受け
    取り損なった場合に前記第3のノード上の第2のマスタに前記データ要求を再送
    するように構成され、前記第2のマスタは前記記憶装置に関するデータにアクセ
    スするように構成される、請求項1に記載の分散コンピューティング・システム
  3. 【請求項3】 前記ドライバが前記第1のノードまたは通信リンクの障害の
    ために前記データを受け取り損なった場合、前記ドライバは前記分散コンピュー
    ティング・システムが再構成したあとで前記データ要求を再送するように構成さ
    れる、請求項1に記載の分散コンピューティング・システム。
  4. 【請求項4】 前記再送データ要求が、前記記憶装置に結合された第3のノ
    ードに送られる、請求項3に記載の分散コンピューティング・システム。
  5. 【請求項5】 前記仮想ディスク・システムが前記記憶装置と通信するため
    に一次ノードと代替ノードとを維持し、前記第2のノードは前記第2のノードが
    応答を受け取り損なった場合に前記一次ノードに前記データ要求を送り、前記代
    替ノードに前記データ要求を再送するように構成される、請求項4に記載の分散
    コンピューティング・システム。
  6. 【請求項6】 前記第1のノードが前記一次ノードであり、前記第3のノー
    ドが前記代替ノードである、請求項5に記載の分散コンピューティング・システ
    ム。
  7. 【請求項7】 第1のノードと、第2のノードと、前記第1のノードと前記
    第2のノードとの間に結合された通信リンクと、 前記第1のノードに結合された記憶装置であって、前記記憶装置が前記第2の
    ノードに結合されているように見えるように構成された仮想ディスク・システム
    を使用して前記記憶装置にアクセスするように前記第2のノードが構成される記
    憶装置とを含み、 前記仮想ディスク・システムは前記記憶装置に対する仮想ディスクのマッピン
    グを含むように構成され、前記第1のノードと前記第2のノードは一貫したマッ
    ピング・データを受け取るように構成される、分散コンピューティング・システ
    ム。
  8. 【請求項8】 前記マッピングが、前記記憶装置に結合されたノードと、前
    記記憶装置に対応する前記ノード上のディスク装置とを識別し、前記マッピング
    が前記第1のノードおよび前記第2のノードによってアクセスされる高可用性デ
    ータベースに記憶される、請求項7に記載の分散コンピューティング・システム
  9. 【請求項9】 前記高可用性データベースがクラスタ構成データベースであ
    る、請求項8に記載の分散コンピューティング・システム。
  10. 【請求項10】 前記マッピングが、前記記憶装置に結合された一次ノード
    と前記記憶装置に結合された代替ノードとを示すデータを含む、請求項7に記載
    の分散コンピューティング・システム。
  11. 【請求項11】 データ・アクセス要求は前記マッピングが更新されたとき
    に中断されるように構成される、請求項7に記載の分散コンピューティング・シ
    ステム。
  12. 【請求項12】 前記マッピングは、ノードがクラスタに加わるかまたはク
    ラスタを離れるときに更新されるように構成される、請求項11に記載の分散コ
    ンピューティング・システム。
  13. 【請求項13】 データ・アクセス要求が再開されたときにノードが新しい
    マッピングを求めてデータベースに照会する、請求項12に記載の分散コンピュ
    ーティング・システム。
  14. 【請求項14】 動作中に分散コンピューティング・システムの構成を更新
    することができる、請求項13に記載の分散コンピューティング・システム。
  15. 【請求項15】 第1のノードと、第2のノードと、前記第1のノードと前
    記第2のノードとの間に結合された通信リンクと、 前記第1のノードに結合された記憶装置であって、前記記憶装置が前記第2の
    ノードに結合されているように見えるように構成された仮想ディスク・システム
    を使用して前記記憶装置にアクセスするように前記第2のノードが構成される記
    憶装置とを含み、 前記記憶装置の許可データが前記第1のノードと前記第2のノードとの間で一
    貫している、分散コンピューティング・システム。
  16. 【請求項16】 前記許可データは、前記第1のノードおよび前記第2のノ
    ードによってアクセスされる高可用性データベースに記憶されるように構成され
    る、請求項15に記載の分散コンピューティング・システム。
  17. 【請求項17】 前記高可用性データベースがクラスタ構成データベースで
    ある、請求項16に記載の分散コンピューティング・システム。
  18. 【請求項18】 第1のノードと、第2のノードと、前記第1のノードと前
    記第2のノードとの間に結合された通信リンクと、 前記第1のノードに結合された第1の記憶装置であって、前記第1の記憶装置
    が前記第2のノードに結合されているように見えるように構成された仮想ディス
    ク・システムを使用して前記第1の記憶装置にアクセスするように前記第2のノ
    ードが構成される第1の記憶装置と、 前記第2のノードに結合された第2の記憶装置であって、前記第2の記憶装置
    が前記第1のノードに結合されているように見えるように構成された仮想ディス
    ク・システムを使用して前記第2の記憶装置にアクセスするように前記第1のノ
    ードが構成される第2の記憶装置と、 前記仮想ディスク・システムの上または前記仮想ディスク・システムの下に層
    状に重ねたボリューム・マネージャとを含む、分散コンピューティング・システ
    ム。
  19. 【請求項19】 前記ボリューム・マネージャが前記仮想ディスク・システ
    ムの下に層状に重ねられ、前記仮想ディスク・システムはボリュームにアクセス
    するように構成され、前記ボリュームは前記第1の記憶装置または前記第2の記
    憶装置にアクセスするように構成される、請求項18に記載の分散コンピューテ
    ィング・システム。
  20. 【請求項20】 前記ボリュームが前記仮想ディスク・システムにとって記
    憶システムとして現れる、請求項19に記載の分散コンピューティング・システ
    ム。
  21. 【請求項21】 前記ボリュームが高可用性記憶装置である、請求項20に
    記載の分散コンピューティング・システム。
  22. 【請求項22】 前記ボリューム・マネージャが前記仮想ディスク・システ
    ムの上に層状に重ねられ、クライアントが前記仮想ディスク・システムの仮想デ
    ィスクにアクセスするように構成されたボリュームにアクセスすることができる
    、請求項18に記載の分散コンピューティング・システム。
  23. 【請求項23】 前記ボリュームは2つまたはそれ以上の仮想ディスクにア
    クセスするように構成される、請求項22に記載の分散コンピューティング・シ
    ステム。
  24. 【請求項24】 第1のノードと、第2のノードと、前記第1のノードと前
    記第2のノードとの間に結合された通信リンクと、 前記第1のノードに結合された記憶装置であって、前記記憶装置が前記第2の
    ノードに結合されているように見えるように構成された仮想ディスク・システム
    を使用して前記記憶装置にアクセスするように前記第2のノードが構成される記
    憶装置とを含み、 前記仮想ディスク・システムが前記第2のノード上で動作するドライバと前記
    第1のノード上で動作するマスタとを含み、前記第2のノードが前記記憶装置に
    対応する仮想ディスクにアクセスすると、前記ドライバは前記マスタにデータ要
    求を送るように構成され、前記マスタは前記記憶装置からのデータにアクセスす
    るように構成され、前記マスタは前記通信インタフェースを介して前記ドライバ
    に前記データを送るように構成され、 前記ドライバは前記ドライバが前記データを受け取るまで前記データ要求のコ
    ピーを記憶するように構成され、前記ドライバは前記ドライバが前記データを受
    け取り損なった場合に前記データ要求を再送するように構成され、前記仮想ディ
    スク・システムは前記記憶装置に対する仮想ディスクのマッピングを含むように
    構成され、前記第1のノードと前記第2のノードはノード障害が発生した場合に
    一貫したマッピング・データを受け取るように構成され、前記記憶装置の許可デ
    ータが前記第1のノードと前記第2のノードとの間で一貫している、分散コンピ
    ューティング・システム。
  25. 【請求項25】 前記データ通信インタフェースおよび前記記憶装置に結合
    された第3のノードをさらに含み、前記ドライバは前記ドライバが前記データを
    受け取り損なった場合に前記第3のノードに前記データ要求を再送するように構
    成される、請求項24に記載の分散コンピューティング・システム。
  26. 【請求項26】 前記マッピングが、前記記憶装置に結合された一次ノード
    と前記記憶装置に結合された二次ノードとを示すデータを含む、請求項25に記
    載の分散コンピューティング・システム。
  27. 【請求項27】 前記マッピングおよび前記許可データは、前記第1のノー
    ドおよび前記第2のノードによってアクセス可能な高可用性データベースに記憶
    されるように構成される、請求項26に記載の分散コンピューティング・システ
    ム。
  28. 【請求項28】 第1のノードと、第2のノードと、前記第1のノードおよ
    び前記第2のノードに結合された通信リンクとを含み、前記第1のノードおよび
    前記第2のノードが前記記憶装置にアクセスし、 前記記憶装置が前記記憶装置に関連する許可データを有し、前記許可データが
    前記第1のノードおよび前記第2のノードによってアクセス可能な高可用性分散
    データベースに記憶され、特定のノードが前記記憶装置をオープンすると、前記
    特定のノードが前記記憶装置に関する前記許可データによって装置ファイルを作
    成し、それにより、ノード障害が存在する状態で前記第1のノードと前記第2の
    ノードが一貫した許可データを入手する、分散コンピューティング・システム。
  29. 【請求項29】 前記許可データが、所有者と、グループと、前記所有者お
    よび前記グループのための許可モードとを含む、請求項28に記載の分散コンピ
    ューティング・システム。
  30. 【請求項30】 前記許可モードが、読取りと、書込みと、実行とを含む、
    請求項29に記載の分散コンピューティング・システム。
  31. 【請求項31】 前記高可用性データベースがクラスタ構成データベースで
    ある、請求項28に記載の分散コンピューティング・システム。
  32. 【請求項32】 前記記憶装置がディスク装置である、請求項28に記載の
    分散コンピューティング・システム。
  33. 【請求項33】 前記第1のノードが前記記憶装置に直接アクセスし、前記
    第2のノードが前記通信リンクを介して前記記憶装置にアクセスする、請求項2
    8に記載の分散コンピューティング・システム。
  34. 【請求項34】 前記記憶装置が特定のノードによって最初にオープンされ
    たときに前記装置ファイルが作成される、請求項28に記載の分散コンピューテ
    ィング・システム。
  35. 【請求項35】 記憶装置を含む分散コンピューティング・システム内の複
    数のノード間で一貫した許可データを維持する方法であって、 高可用性分散データベースに前記許可データを記憶するステップと、 前記複数のノードのうちの第1のノードが装置をオープンし、前記高可用性デ
    ータベースにアクセスして前記装置に関する許可データを入手するステップと、 前記複数のノードのうちの第2のノードが前記装置をオープンし、前記高可用
    性データベースにアクセスして前記装置に関する前記許可データを入手するステ
    ップとを含み、 それにより、障害が存在する状態で前記第1のノードと前記第2のノードが一
    貫した許可データを入手する方法。
  36. 【請求項36】 前記装置をオープンする前記ノードが前記記憶装置に関す
    る装置ファイルを作成し、前記装置ファイルが前記許可データを含む、請求項3
    5に記載の方法。
  37. 【請求項37】 前記許可データが、所有者と、グループと、前記所有者お
    よび前記グループのための許可モードとを含む、請求項36に記載の方法。
  38. 【請求項38】 前記許可モードが、読取りと、書込みと、実行とを含む、
    請求項37に記載の方法。
  39. 【請求項39】 前記高可用性データベースがクラスタ構成データベースで
    ある、請求項35に記載の方法。
  40. 【請求項40】 前記記憶装置がディスク装置である、請求項35に記載の
    方法。
  41. 【請求項41】 前記第1のノードが前記記憶装置に直接アクセスし、前記
    第2のノードが前記データ通信リンクを介して前記記憶装置にアクセスする、請
    求項35に記載の方法。
  42. 【請求項42】 前記記憶装置が特定のノードによって最初にオープンされ
    たときに前記装置ファイルが作成される、請求項36に記載の方法。
  43. 【請求項43】 分散コンピューティング・システム内の複数のノード間で
    一貫した許可データを維持するためのプログラム命令を含むコンピュータ可読記
    憶媒体であって、前記プログラム命令が前記分散コンピューティング・システム
    の前記複数のノード上で実行され、前記プログラム命令が、 高可用性コヒーレント・データベースに前記許可データを記憶するステップと
    、 前記複数のノードのうちの第1のノードが装置をオープンし、前記高可用性デ
    ータベースにアクセスして前記装置に関する許可データを入手するステップと、 前記複数のノードのうちの第2のノードが前記装置をオープンし、前記高可用
    性データベースにアクセスして前記装置に関する前記許可データを入手するステ
    ップとを実施するように動作可能であり、 それにより、障害が存在する状態で前記第1のノードと前記第2のノードが一
    貫した許可データを入手する、コンピュータ可読記憶媒体。
  44. 【請求項44】 前記ファイルが前記記憶装置に関するものであり、前記装
    置ファイルが前記許可データを含む、請求項43に記載の媒体。
  45. 【請求項45】 前記許可データが、所有者と、グループと、前記所有者お
    よび前記グループのための許可モードとを含む、請求項44に記載の媒体。
  46. 【請求項46】 前記許可モードが、読取りと、書込みと、実行とを含む、
    請求項45に記載の媒体。
  47. 【請求項47】 前記高可用性データベースがクラスタ構成データベースで
    ある、請求項43に記載の媒体。
  48. 【請求項48】 前記記憶装置が特定のノードによって最初にオープンされ
    たときに前記装置ファイルが作成される、請求項44に記載の媒体。
  49. 【請求項49】 1つの通信リンクに結合された1つまたは複数のノードで
    あって、1つまたは複数の装置を含む1つまたは複数のノードと、前記1つまた
    は複数のノードに結合された1つまたは複数の記憶装置と、 前記1つまたは複数のノードによってアクセス可能な高可用性データベースで
    あって、障害が存在する状態で前記1つまたは複数のノードにコヒーレント・デ
    ータを提供する高可用性データベースとを含み、 前記1つまたは複数の記憶装置に対する前記1つまたは複数の装置のマッピン
    グが前記高可用性データベースに記憶され、 前記マッピングが更新されると、前記高可用性データベースが前記マッピング
    を更新する前に前記1つまたは複数のノードが前記1つまたは複数の記憶装置へ
    のデータ要求の発行を停止し、前記マッピングが更新されたときに前記1つまた
    は複数のノードがデータ要求の発行を再開する、分散コンピューティング・シス
    テム。
  50. 【請求項50】 前記ノードがデータ要求の発行を停止したときに前記ノー
    ドが前記高可用性データベースに肯定応答信号を送る、請求項49に記載の分散
    コンピューティング・システム。
  51. 【請求項51】 前記1つまたは複数のノードが、前記肯定応答信号を送る
    前に未処理のデータ要求が完了するのを待つ、請求項50に記載の分散コンピュ
    ーティング・システム。
  52. 【請求項52】 前記高可用性データベースが、前記肯定応答信号を受け取
    ったあとで前記マッピングを更新する、請求項51に記載の分散コンピューティ
    ング・システム。
  53. 【請求項53】 前記高可用性データベースが第1の同期信号を出力して、
    前記マッピングの保留中の更新を示す、請求項52に記載の分散コンピューティ
    ング・システム。
  54. 【請求項54】 前記高可用性データベースが第2の同期信号を出力して、
    前記マッピングが更新されることを示す、請求項53に記載の分散コンピューテ
    ィング・システム。
  55. 【請求項55】 前記第1の同期コマンドと前記第2の同期コマンドが前記
    1つまたは複数のノードに同時に発行される、請求項54に記載の分散コンピュ
    ーティング・システム。
  56. 【請求項56】 前記高可用性データベースが、前記マッピングを更新する
    前に各アクティブ・ノードからの肯定応答信号を待つ、請求項55に記載の分散
    コンピューティング・システム。
  57. 【請求項57】 前記コンピュータ・システムが、データを失うかまたは破
    損することなしに前記1つまたは複数のノードと前記1つまたは複数の記憶装置
    との間の前記接続を再構成する、請求項56に記載の分散コンピューティング・
    システム。
  58. 【請求項58】 記憶装置に対するノードのマッピングを更新する方法であ
    って、 前記マッピングを高可用性データベースに記憶するステップであって、前記デ
    ータベースが前記ノードによってアクセス可能であり、障害が存在する状態で前
    記ノードにコヒーレント・データを提供するステップと、 前記データベースが更新済みマッピングが保留中であるという表示を前記ノー
    ドに出力するステップと、 前記ノードが前記記憶装置へのデータ要求を中断するステップと、 前記ノードが未処理のデータ要求が完了するのを待つステップと、 前記ノードが前記マッピングの内部表現を無効にするステップと、 前記ノードが前記データベースに肯定応答信号を出力するステップと、 前記データベースがアクティブ・ノードからの前記肯定応答信号を待つステッ
    プと、 前記データベースが前記マッピングを更新するステップと、 前記データベースが前記更新が完了したという表示を前記ノードに出力するス
    テップと、 前記ノードが前記データベースから前記マッピングの更新済みバージョンを要
    求するステップと、 前記ノードが前記記憶装置への前記データ要求の送信を再開するステップとを
    含む方法。
  59. 【請求項59】 前記データベースがアクティブ・ノードから肯定応答信号
    を受け取らない場合、前記データベースが前記ノードに取消し表示を出力して、
    前記マッピングの前記内部表現を再活動化する、請求項58に記載の方法。
  60. 【請求項60】 前記ノードへの前記表示が前記データベースからの同期信
    号である、請求項58に記載の方法。
  61. 【請求項61】 前記同期信号が前記1つまたは複数のノードに同時に発行
    される、請求項60に記載の方法。
  62. 【請求項62】 データを失うかまたは破損することなしに前記マッピング
    が更新される、請求項61に記載の方法。
  63. 【請求項63】 記憶装置に対するノードのマッピングを更新する方法であ
    って、 前記マッピングを高可用性データベースに記憶するステップであって、前記デ
    ータベースが前記ノードによってアクセス可能であり、障害が存在する状態で前
    記ノードにコヒーレント・データを提供するステップと、 前記データベースが更新済みマッピングが保留中であるという表示を前記ノー
    ドに出力するステップと、 前記ノードが前記記憶装置へのデータ要求を中断するステップと 前記データベースが前記マッピングを更新するステップと、 前記データベースが前記更新が完了したという表示を前記ノードに出力するス
    テップと、 前記ノードが前記記憶装置への前記データ要求の送信を再開するステップとを
    含む方法。
  64. 【請求項64】 前記データベースが前記マッピングを更新する前に、 前記ノードが前記データベースに肯定応答信号を出力するステップと、 前記データベースが前記アクティブ・ノードからの前記肯定応答信号を待つス
    テップとをさらに含む、請求項63に記載の方法。
  65. 【請求項65】 前記ノードが前記データベースに肯定応答信号を出力する
    前に、 前記ノードが未処理のデータ要求が完了するのを待つステップと、 前記ノードが前記マッピングの内部表現を無効にするステップとをさらに含む
    、請求項64に記載の方法。
  66. 【請求項66】 前記ノードが前記記憶装置への前記データ要求の送信を再
    開する前に、前記ノードが前記データベースから前記マッピングの更新済みバー
    ジョンを要求するステップをさらに含む、請求項65に記載の方法。
  67. 【請求項67】 前記データベースがアクティブ・ノードから肯定応答信号
    を受け取らない場合、前記データベースが前記ノードに取消し表示を出力して、
    前記マッピングの前記内部表現を再活動化する、請求項63に記載の方法。
  68. 【請求項68】 前記ノードへの前記表示が前記データベースからの同期コ
    マンドである、請求項67に記載の方法。
  69. 【請求項69】 前記同期信号が前記1つまたは複数のノードに同時に発行
    される、請求項68に記載の方法。
  70. 【請求項70】 データを失うかまたは破損することなしに前記マッピング
    が更新される、請求項69に記載の方法。
  71. 【請求項71】 記憶装置に対するノードのマッピングを更新するためのプ
    ログラム命令を含むコンピュータ可読記憶媒体であって、前記プログラム命令が
    分散コンピューティング・システムの複数のノード上で実行され、前記プログラ
    ム命令が、 前記マッピングを高可用性データベースに記憶するステップであって、前記デ
    ータベースが前記ノードによってアクセス可能であり、障害が存在する状態で前
    記ノードにコヒーレント・データを提供するステップと、 前記データベースが更新済みマッピングが保留中であるという表示を前記ノー
    ドに出力するステップと、 前記ノードが前記記憶装置へのデータ要求を中断するステップと、 前記ノードが未処理のデータ要求が完了するのを待つステップと、 前記ノードが前記マッピングの内部表現を無効にするステップと、 前記ノードが前記データベースに肯定応答信号を出力するステップと、 前記データベースがアクティブ・ノードからの前記肯定応答信号を待つステッ
    プと、 前記データベースが前記マッピングを更新するステップと、 前記データベースが前記更新が完了したという表示を前記ノードに出力するス
    テップと、 前記ノードが前記データベースから前記マッピングの更新済みバージョンを要
    求するステップと、 前記ノードが前記記憶装置への前記データ要求の送信を再開するステップとを
    実施するように動作可能である、コンピュータ可読記憶媒体。
  72. 【請求項72】 第1のノードと、第2のノードと、第3のノードと、デー
    タ通信リンクとを含む分散コンピューティング・システムのデータ・トランスポ
    ート・システムであって、 前記分散コンピューティング・システムのアクティブ・ノードの数と、前記ア
    クティブ・ノード間のリンクの数を決定し、前記リンクにより接続を確立するよ
    うに構成された構成モジュールと、 前記構成モジュールから前記アクティブ・ノードの数と前記リンクの数を示す
    データを受け取り、第1のアクティブ・ノードにデータを転送するための要求を
    クライアントから受け取り、1つまたは複数の前記リンクを介して前記第1のア
    クティブ・ノードに前記データを送るように構成された接続モジュールとを含み
    、 前記アクティブ・ノードの数が変更されると、前記構成モジュールが前記変更
    を前記接続モジュールに通知し、前記接続モジュールは前記クライアントにとっ
    てトランスペアレントな前記アクティブノードへの前記接続を再確立するように
    構成される、データ・トランスポート・システム。
  73. 【請求項73】 前記構成モジュールが高可用性データベースから前記リン
    クの数を示すデータを受け取る、請求項72に記載のデータ・トランスポート・
    システム。
  74. 【請求項74】 前記高可用性データベースが前記ノードのすべてによって
    アクセス可能であり、各ノードが一貫したデータを受け取る、請求項73に記載
    のデータ・トランスポート・システム。
  75. 【請求項75】 ノード障害が存在する状態で前記高可用性データベースが
    一貫したデータを記憶する、請求項74に記載のデータ・トランスポート・シス
    テム。
  76. 【請求項76】 前記構成モジュールがデーモンである、請求項72に記載
    のデータ・トランスポート・システム。
  77. 【請求項77】 前記接続モジュールがカーネル・モジュールである、請求
    項76に記載のデータ・トランスポート・システム。
  78. 【請求項78】 前記構成モジュールと前記接続モジュールがプライベート
    ・インタフェースを介して通信する、請求項72に記載のデータ・トランスポー
    ト・システム。
  79. 【請求項79】 前記データ通信リンクが、前記第1のノード上で実行され
    る前記接続モジュールのインスタンスと前記第2のノード上で実行される前記接
    続モジュールのインスタンスとのインタフェースを提供する、請求項72に記載
    のデータ・トランスポート・システム。
  80. 【請求項80】 前記データ通信リンクが前記第1のノードと前記第2のノ
    ードとの間の複数の物理リンクを含み、前記構成モジュールが前記複数の物理リ
    ンクを1つの仮想リンクとして管理する、請求項79に記載のデータ・トランス
    ポート・システム。
  81. 【請求項81】 前記データ・トランスポート・システムが複数のクライア
    ントに対応する、請求項72に記載のデータ・トランスポート・システム。
  82. 【請求項82】 前記複数のクライアントが前記ノード間でメッセージを送
    受する、請求項81に記載のデータ・トランスポート・システム。
  83. 【請求項83】 前記構成モジュールがコールバック機能を介して他のアク
    ティブ・ノードから受け取ったメッセージをクライアントに通知する、請求項8
    2に記載のデータ・トランスポート・システム。
  84. 【請求項84】 前記データ・トランスポート・システムによって転送され
    たデータがメッセージを含む、請求項72に記載のデータ・トランスポート・シ
    ステム。
  85. 【請求項85】 1つのメッセージが制御メッセージとデータ部分の両方を
    含む、請求項84に記載のデータ・トランスポート・システム。
  86. 【請求項86】 前記接続モジュールがメッセージ用の記憶空間を割り振り
    、解放する、請求項72に記載のデータ・トランスポート・システム。
  87. 【請求項87】 あるメッセージからのデータがもはや不要になったときに
    クライアントが前記接続モジュールに通知し、前記接続モジュールが前記メッセ
    ージに関連する記憶空間を解放する、請求項86に記載のデータ・トランスポー
    ト・システム。
  88. 【請求項88】 複数のノードと1つのデータ通信バスとを含む分散コンピ
    ューティング・システム内でデータを移送する方法であって、 前記分散コンピューティング・システム内の物理資源を決定するステップであ
    って、前記物理資源が前記分散コンピューティング・システムのアクティブ・ノ
    ードと、前記アクティブ・ノード間のアクティブ・リンクとを含むステップと、 前記アクティブ・リンクにより接続を確立するステップと、 前記アクティブ・ノードのうちの第1のノードにデータを送るためのデータ・
    アクセス要求を受け取るステップと、 前記アクティブ・リンクのうちの1つまたは複数により前記第1のアクティブ
    ・ノードに前記データを送るステップと、 前記物理資源が変更されたことを決定するステップと、 前記変更済み物理資源への接続を再確立するステップとを含み、 前記変更済み資源の決定と前記リンクの再確立がクライアントにとってトラン
    スペアレントなものである方法。
  89. 【請求項89】 アクティブ・ノード間の複数のリンクが1つの論理リンク
    として扱われる、請求項88に記載の方法。
  90. 【請求項90】 前記物理資源の決定がデーモン・モジュールによって実行
    される、請求項88に記載の方法。
  91. 【請求項91】 前記アクティブ・リンクによる接続の確立がデーモン・モ
    ジュールによって実行される、請求項90に記載の方法。
  92. 【請求項92】 前記アクティブ・ノードへの前記データの運搬がカーネル
    ・モジュールによって実行される、請求項91に記載の方法。
  93. 【請求項93】 複数のクライアントがサポートされ、前記アクティブ・ノ
    ードに運搬される前記データが、データ・アクセス要求を要求したクライアント
    の識別を含む、請求項88に記載の方法。
  94. 【請求項94】 前記運搬されたデータが制御部分とデータ部分とを含む、
    請求項88に記載の方法。
  95. 【請求項95】 アクティブ・ノードに運搬される前記データを記憶するた
    めのメモリ空間を割り振るステップと、 前記メモリ空間を解放するステップとをさらに含む、請求項88に記載の方法
  96. 【請求項96】 前記クライアントに向けられるデータの受取りを宛先ノー
    ド側のクライアントに通知するステップをさらに含む、請求項89に記載の方法
  97. 【請求項97】 物理資源の決定が、物理資源のリストを記憶する高可用性
    データベースにアクセスすることを含む、請求項89に記載の方法。
  98. 【請求項98】 前記高可用性データベースが前記アクティブ・ノードによ
    ってアクセス可能であり、前記アクティブ・ノードが一貫した構成データを有す
    る、請求項97に記載の方法。
  99. 【請求項99】 複数のノードと1つのデータ通信リンクとを含む分散コン
    ピューティング・システム内でデータを移送するためのプログラム命令を含むコ
    ンピュータ可読記憶媒体であって、前記プログラム命令が前記分散コンピューテ
    ィング・システムの前記複数のノード上で実行され、前記プログラム命令が、 前記分散コンピューティング・システム内の物理資源を決定するステップであ
    って、前記物理資源が前記分散コンピューティング・システムのアクティブ・ノ
    ードと、前記アクティブ・ノード間のアクティブ・リンクとを含むステップと、 前記アクティブ・リンクにより接続を確立するステップと、 前記アクティブ・ノードのうちの第1のノードにデータを送るためのデータ・
    アクセス要求を受け取るステップと、 前記アクティブ・リンクのうちの1つまたは複数により前記第1のアクティブ
    ・ノードに前記データを送るステップと、 前記物理資源が変更されたことを決定するステップと、 前記変更済み物理資源への接続を再確立するステップとを実施するように動作
    可能であり、 前記変更済み資源の決定と前記接続の再確立がクライアントにとってトランス
    ペアレントなものである、コンピュータ可読記憶媒体。
  100. 【請求項100】 アクティブ・ノード間の複数のリンクが1つの論理リン
    クとして扱われる、請求項99に記載のコンピュータ可読記憶媒体。
  101. 【請求項101】 前記物理資源の決定がデーモン・モジュールによって実
    行される、請求項99に記載のコンピュータ可読記憶媒体。
  102. 【請求項102】 前記アクティブ・リンクによる接続の確立がデーモン・
    モジュールによって実行される、請求項101に記載のコンピュータ可読記憶媒
    体。
  103. 【請求項103】 前記アクティブ・ノードへの前記データの運搬がカーネ
    ル・モジュールによって実行される、請求項102に記載のコンピュータ可読記
    憶媒体。
  104. 【請求項104】 アクティブ・ノードに運搬される前記データを記憶する
    ためのメモリ空間を割り振るステップと、 前記メモリ空間を解放するステップとをさらに含む、請求項99に記載のコン
    ピュータ可読記憶媒体。
  105. 【請求項105】 前記クライアントに向けられるデータの受取りを宛先ノ
    ード側のクライアントに通知するステップをさらに含む、請求項99に記載のコ
    ンピュータ可読記憶媒体。
  106. 【請求項106】 物理資源の決定が、物理資源のリストを記憶する高可用
    性データベースにアクセスすることを含む、請求項100に記載のコンピュータ
    可読記憶媒体。
  107. 【請求項107】 前記高可用性データベースが前記アクティブ・ノードに
    よってアクセス可能であり、前記アクティブ・ノードが一貫した構成データを有
    する、請求項106に記載のコンピュータ可読記憶媒体。
JP2000548806A 1998-05-12 1999-05-07 高可用性クラスタ仮想ディスク・システム Expired - Lifetime JP4501096B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US09/076,346 1998-05-12
US09/076,346 US6161191A (en) 1998-05-12 1998-05-12 Mechanism for reliable update of virtual disk device mappings without corrupting data
US09/076,347 1998-05-12
US09/076,388 US5964886A (en) 1998-05-12 1998-05-12 Highly available cluster virtual disk system
US09/076,388 1998-05-12
US09/076,274 US6421787B1 (en) 1998-05-12 1998-05-12 Highly available cluster message passing facility
US09/076,347 US6173413B1 (en) 1998-05-12 1998-05-12 Mechanism for maintaining constant permissions for multiple instances of a device within a cluster
US09/076,274 1998-05-12
PCT/US1999/009903 WO1999059064A1 (en) 1998-05-12 1999-05-07 Highly available cluster virtual disk system

Publications (2)

Publication Number Publication Date
JP2002514813A true JP2002514813A (ja) 2002-05-21
JP4501096B2 JP4501096B2 (ja) 2010-07-14

Family

ID=27491257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000548806A Expired - Lifetime JP4501096B2 (ja) 1998-05-12 1999-05-07 高可用性クラスタ仮想ディスク・システム

Country Status (6)

Country Link
EP (3) EP1197863A1 (ja)
JP (1) JP4501096B2 (ja)
AU (1) AU765501B2 (ja)
CA (1) CA2331467A1 (ja)
DE (1) DE69902267T2 (ja)
WO (1) WO1999059064A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505071A (ja) * 2002-11-01 2006-02-09 ブルアーク ユーケー リミテッド 分散ファイル・システムおよび方法
JP2009539160A (ja) * 2006-06-02 2009-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション クラスタ回復のための機器および方法
US8762665B2 (en) 2008-08-29 2014-06-24 Fujitsu Limited Switch apparatus storing information indicating access of hosts to virtual storage areas

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535990B1 (en) 2000-01-10 2003-03-18 Sun Microsystems, Inc. Method and apparatus for providing fault-tolerant addresses for nodes in a clustered system
US6847993B1 (en) 2000-05-31 2005-01-25 International Business Machines Corporation Method, system and program products for managing cluster configurations
US7433957B2 (en) 2001-04-30 2008-10-07 International Business Machines Corporation Group access privatization in clustered computer system
JP2004264948A (ja) 2003-02-28 2004-09-24 Fujitsu Ltd ストレージ制御装置及びその制御方法
US7593996B2 (en) 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7716323B2 (en) 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
US8788465B2 (en) 2010-12-01 2014-07-22 International Business Machines Corporation Notification of configuration updates in a cluster system
US9069571B2 (en) 2010-12-01 2015-06-30 International Business Machines Corporation Propagation of unique device names in a cluster system
US8943082B2 (en) 2010-12-01 2015-01-27 International Business Machines Corporation Self-assignment of node identifier in a cluster system
US9183148B2 (en) 2013-12-12 2015-11-10 International Business Machines Corporation Efficient distributed cache consistency
CN106534328B (zh) * 2016-11-28 2020-01-31 网宿科技股份有限公司 节点连接方法及分布式计算系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475813A (en) * 1994-07-18 1995-12-12 International Business Machines Corporation Routing transactions in the presence of failing servers
DE69521101T2 (de) * 1994-10-31 2001-10-18 Ibm Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505071A (ja) * 2002-11-01 2006-02-09 ブルアーク ユーケー リミテッド 分散ファイル・システムおよび方法
JP2010108520A (ja) * 2002-11-01 2010-05-13 Bluearc Uk Ltd 分散ファイル・システムおよび方法
JP2009539160A (ja) * 2006-06-02 2009-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション クラスタ回復のための機器および方法
US8762665B2 (en) 2008-08-29 2014-06-24 Fujitsu Limited Switch apparatus storing information indicating access of hosts to virtual storage areas

Also Published As

Publication number Publication date
EP1084471A1 (en) 2001-03-21
DE69902267D1 (de) 2002-08-29
AU765501B2 (en) 2003-09-18
CA2331467A1 (en) 1999-11-18
DE69902267T2 (de) 2003-03-06
EP1197862A1 (en) 2002-04-17
WO1999059064A1 (en) 1999-11-18
AU4070999A (en) 1999-11-29
EP1084471B1 (en) 2002-07-24
EP1197863A1 (en) 2002-04-17
JP4501096B2 (ja) 2010-07-14

Similar Documents

Publication Publication Date Title
US6161191A (en) Mechanism for reliable update of virtual disk device mappings without corrupting data
US5964886A (en) Highly available cluster virtual disk system
US6421787B1 (en) Highly available cluster message passing facility
US6173413B1 (en) Mechanism for maintaining constant permissions for multiple instances of a device within a cluster
KR100232247B1 (ko) 클러스터화된 다중처리 시스템 및 시스템내 디스크 액세스 경로의 고장 회복 방법
JP3992427B2 (ja) ファイルシステム
US6112263A (en) Method for multiple independent processes controlling access to I/O devices in a computer system
US7383463B2 (en) Internet protocol based disaster recovery of a server
JP2002514813A (ja) 高可用性クラスタ仮想ディスク・システム
EP1019822B1 (en) Highly-available cluster configuration database
US6904477B2 (en) Virtual host controller interface with multipath input/output
US6449734B1 (en) Method and system for discarding locally committed transactions to ensure consistency in a server cluster
JP3268534B2 (ja) 保護された資源の同期点管理を行うコンピュータ・システム
US7028078B1 (en) System and method for performing virtual device I/O operations
US7260589B2 (en) High performance support for XA protocols in a clustered shared database
US7386598B2 (en) Computer system with virtualization function
US20040254984A1 (en) System and method for coordinating cluster serviceability updates over distributed consensus within a distributed data system cluster
US20030140210A1 (en) Dynamic and variable length extents
US20060112244A1 (en) Automatically managing the state of replicated data of a computing environment
US20070016754A1 (en) Fast path for performing data operations
US7734878B1 (en) System and method for performing virtual device I/O operations
JP2006505071A (ja) 分散ファイル・システムおよび方法
JPH11328139A (ja) 高度利用可能オブジェクト用トランスペアレントサ―バフェイルオ―バ―のための方法および装置
CN103620580A (zh) 用于数据副本的迁移的系统和方法
US7228352B1 (en) Data access management system in distributed processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090902

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090928

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100407

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term