Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4119971B2 - グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法 - Google Patents
[go: Go Back, main page]

JP4119971B2 - グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法 - Google Patents

グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法 Download PDF

Info

Publication number
JP4119971B2
JP4119971B2 JP18533198A JP18533198A JP4119971B2 JP 4119971 B2 JP4119971 B2 JP 4119971B2 JP 18533198 A JP18533198 A JP 18533198A JP 18533198 A JP18533198 A JP 18533198A JP 4119971 B2 JP4119971 B2 JP 4119971B2
Authority
JP
Japan
Prior art keywords
dev
node
name
global
globally unique
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP18533198A
Other languages
English (en)
Other versions
JPH11120117A (ja
JPH11120117A5 (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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11120117A publication Critical patent/JPH11120117A/ja
Publication of JPH11120117A5 publication Critical patent/JPH11120117A5/ja
Application granted granted Critical
Publication of JP4119971B2 publication Critical patent/JP4119971B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は一般に、ファイル・システムを通じて装置アクセスを提供するシステムおよび方法に係り、特に、クラスタ上の装置をグローバルに可視的にするシステムおよび方式に関する。
【0002】
【従来の技術】
複数のコンピュータを含むクラスタ上でUnixベースのコンピュータ・アプリケーションを使用することがますます一般的になっている。クラスタ・オペレータのターゲットは、クラスタの動作を、単一のコンピュータの場合と同様にアプリケーション/ユーザに対して透過的なものにすることである。たとえば、クラスタは通常、ユーザが、ファイルがどこに存在するかにかかわらずクラスタ上のすべての従来型のファイルを見てそれにアクセスできるようにするグローバル・ファイル・システムを用意している。しかし、上記透過性はクラスタ上の装置アクセスには及ばない。
【0003】
通常、Unixベースのシステム上の装置アクセスは、装置をファイルとして扱う特殊ファイル・システム(たとえば、SpecFS)を通して行われる。この特殊ファイル・システムは、単一のノード上でのみ動作する。すなわち、このファイル・システムでは、特定のノード上の装置を見てそれにアクセスすることができるのはそのノード上のユーザだけであり、これは、クラスタ上のグローバル装置可視性のターゲットに反する。このような制限は、様々なノード上で動作する特殊ファイル・システムの間で調整が行われないことと、装置のグローバル可視性に対処する装置命名方式がないことによるものである。次に、従来技術の装置アクセス・システムのこのような点を図1ないし4を参照して説明する。
【0004】
図1には、中央演算処理装置(CPU)102と、高速メモリ104と、複数の物理的装置106と、CPU102がデータを制御しメモリ102および物理的装置106と交換できるようにする一群の物理的装置インタフェース108(たとえばバスまたは他の電子式インタフェース)とを含む従来型のコンピュータ・システムのブロック図が示されている。メモリ102は、ランダム・アクセス・メモリ(RAM)でも、あるいはキャッシュ・メモリでもよい。
【0005】
物理的装置106には、高可用性装置112や、プリンタ114や、カーネル・メモリ116や、通信装置118や、記憶装置120(たとえば、ディスク装置)を含めることができるが、これらに限らない。プリンタ114および記憶装置120は良く知られている。高可用性装置112には、関連する二次装置を有する記憶装置やプリンタが含まれる。そのような装置は、二次装置が、そのそれぞれの一次装置が故障したときに一次装置に代替することができるので可用性が高い。カーネル・メモリ116は、システム性能累計・報告統計メモリ102のプログラム済み領域である。通信装置118はモデムと、ISDNインタフェース・カードと、ネットワーク・インタフェース・カードと、その他の種類の通信装置とを含む。装置106は、擬似装置122、すなわち実際の物理的装置に関連付けられないソフトウェア装置を含むこともできる。
【0006】
コンピュータ100のメモリ104は、オペレーティング・システム130と、アプリケーション・プログラム150と、データ構造160を記憶することができる。オペレーティング・システム130は、コンピュータ100が動作可能であるかぎりCPU102内で実行され、プロセッサ102と、CPU102内で実行中のアプリケーション150とのためのシステム・サービスを行う。オペレーティング・システム130は、Sun ワークステーション上で使用されるSolarisTMオペレーティング・システムのv.2.6に基づいて構成され、カーネル132と、ファイル・システム134と、装置ドライバ140と、装置ドライブ・インタフェース(DDI)フレームワーク142とを含む。SolarisおよびSunはそれぞれ、サンマイクロシステムズ社(Sun Microsystems,Inc.)の商標および登録商標である。カーネル116は、メモリ104、ファイル・システム134、または装置106へのアクセスを求める要求など、アプリケーション150からのシステム呼出しを処理する。ファイル・システム134およびその装置106および装置ドライバ140との関係について図2Aおよび2Bを参照して説明する。
【0007】
図2Aを参照するとわかるように、Solarisオペレーティング・システムのv.26およびそれ以前のバージョンによって使用されるファイル・システム134の高レベル表現が示されている。Solarisでは、ファイル・システム134は、すべてのファイル、装置106、ネットワーク・インタフェース(コンピュータ100はネットワーク化されていると仮定する)がアクセスされる媒体である。この3つの異なる種類のアクセスはそれぞれ、ファイル・システム134の3つの構成要素、すなわちUnixファイル・システム138u(UFS)、特殊ファイル・システム138s(SpecFS)、ネットワーク・ファイル・システム138n(NFS)によって行われる。
【0008】
Solarisでは、アプリケーション150は最初、ファイル、装置、またはネットワーク・インタフェース(本明細書では「ターゲット」と呼ぶ)に対するオープン要求をカーネル132を介してファイル・システム134に発行することによってそのターゲットにアクセスする。ファイル・システム134は次いで、必要に応じてUFS138u、SpecFS138s、またはNFS138nへ要求を送る。ターゲットが首尾良くオープンされた場合、UFS、SpecFS、またはNFSは、要求されたファイル、装置、またはネットワーク・ノードにマップされているvノード・オブジェクト136をファイル・システム134に返す。ファイル・システム134は次いで、vノード・オブジェクト136をファイル記述子174にマップし、そのファイル記述子はカーネル132を介してアプリケーション150に返される。要求側アプリケーションはその後で、ファイル記述子174を使用して、返されたvノード・オブジェクト136に関連付けられた対応するファイル、装置、またはネットワーク・ノードにアクセスする。
【0009】
vノード・オブジェクト136は、カーネル132とファイル・システム134との間のインタフェースとして働くvノード/VFSインタフェースまたはレイヤ(VFS)172に従って一般的な1組のファイル・システム・サービスを行う。Solarisは、vノード・オブジェクト136から継承し、UFS、SpecFS、NFSに関連付けられた各ターゲットタイプについてカスタマイズされたメソッドとデータ構造も含むiノード・オブジェクト136i、sノード・オブジェクト136s、rノード・オブジェクト136rも備える。これらのクラス136i、136s、136rは、vノード136とそのそれぞれのターゲットとの間の低レベル・インタフェースを形成する。したがって、UFS、SpecFS、またはNFSがvノード・オブジェクトを返すとき、そのオブジェクトは、実際のターゲット動作を実行する対応するiノード、sノード、またはrノードに関連付けられる。Solarisファイル・システムの一般的な性質について論じたが、次に、Solarisで使用されるファイル・ベースの装置アクセス方法について論じる。
【0010】
図2Bを参照するとわかるように、Solarisアプリケーション150は通常、それがオープンする必要のある装置の論理名166を使用してファイル・システム134(カーネル132を介して)に装置アクセス要求を発行する。たとえば、アプリケーション150はコマンドopen(/dev/dsk/disk_logical_address)を用いてSCSI装置へのアクセスを要求することができる。論理名/dev/dsk/disk_logical_addressは、オープンする装置が特定の論理アドレスにあるディスクであることを示す。Solarisでは、SCSIディスクの論理アドレスは「c0t0d0sx」であってよく、この場合、「c0」はSCSIコントローラ0を表し、t0はターゲット0を表し、d0はディスク0を表し、sxは特定のディスクのx番目のスライスを表す(SCSIディスク・ドライバは最大で8つのスライスを有することができる)。
【0011】
論理名は、1つのリンク・ジェネレータ144、すなわちDDIフレームワーク142の1つのユーザ空間拡張子によって割り当てられ、装置の接続時に装置のドライバ140から供給される情報とDDIフレームワーク142によって生成される装置の対応する物理名とに基づくものである。特定の装置ドライバ140のインスタンスがノード100に接続されると、DDIフレームワーク142はそのドライバ140の接続ルーチンを呼び出す。ドライバ140は次いで、そのインスタンスに関連付けることのできる各装置についてDDIフレームワーク142のddi_create_minor_nodesメソッド146に固有のローカル識別子を割り当てそれを呼び出す。通常、この固有のローカル識別子はマイナー名(たとえば、「a」)およびマイナー番号(たとえば、「2」)を構成する。ddi_create_minor_nodesメソッド146は、呼び出されると、所与の装置を表すリーフ・ノードをDevInfoツリー162内に作成する。たとえば、SCSIドライブ(すなわち、インスタンス)は最大で8つのスライス(すなわち、デバイス)を有することができるので、ローカルSCSIドライバ140は8つのスライスのそれぞれに固有のローカル識別子を割り当て、ローカル識別子を用いてddi_create_minor_nodesメソッド146を最大で8回呼び出す。
【0012】
各装置106には、ターゲット装置106に関する構成情報を与えるUFSファイル170も関連付けられる。特定のUFSファイル170iの名前は、コンピュータ上の装置の物理的位置から導かれる物理名168iと同じである。たとえば、SCSI装置は物理名168/devices/iommu/sbus/esp1/sd@addr:minor_nameを有することができ、この場合、addrは装置ドライバのアドレスであり、minor_nameは装置インスタンスのマイナー名である。この名前は装置ドライバsdによって割り当てられる。物理名がどのように割り当てられるかについては以下で図3を参照して説明する。
【0013】
ファイル・システム134は、それ自体が、ターゲット装置の論理名が与えられた場合にターゲット装置をオープンできるようにするために、論理ファイル名166を物理ファイル名168にマップする論理名空間データ構造164を使用する。装置106の物理名は、コンピュータ・システム100に関連付けられた装置タイプ、バス接続、コントローラ、ドライバ、装置の階層を表す装置情報(DevInfo)ツリー140(図1に示されている)内の装置の位置から導かれる。物理名168によって識別される各ファイル170は、その属性として、ターゲット装置に固有に関連付けられた識別子またはdev_t(装置タイプの短縮形)を含む。このdev_t値は、SpecFS138sを介して正しいターゲット装置にアクセスするためにファイル・システム134によって使用される。次に、図3を参照して、dev_t値がどのように割り当てられ、DevInfoツリー140がどのようにDDIフレームワーク142によって維持されるかについて説明する。
【0014】
図3を参照すると、コンピュータ・システム100に関する仮説的なDevInfoツリー162の図が示されている。DevInfoツリー162の各ノードは、コンピュータ100に関連付けられた装置システムの物理的構成要素に対応する。それぞれの異なるレベルは、それぞれの異なるレベルの装置階層に対応する。上位のノードに直接接続されたノードは、上位のレベルのオブジェクトのインスタンスであるオブジェクトを表す。したがって、DevInfoツリーのルート・ノードは常に「I」ノードであり、この下に装置階層全体が存在する。中間ノード(すなわち、リーフ・ノードおよびリーフ親ノード以外のノード)は、ネクサス装置と呼ばれ、コントローラ、バス、ポートなどの中間構造に対応する。DevInfoツリーの最も低いレベルの次に装置ドライバがあり、それぞれ、1つまたは複数の装置をエクスポートまたは管理することができる。リーフ・レベルには、それぞれ、装置タイプに応じていくつかの装置インスタンスをエクスポートできる実際の装置がある。たとえば、SCSI装置は最大7個のインスタンスをもつことができる。
【0015】
図3に示した仮説的なDevInfoツリー162は、物理アドレスaddr0にあるメモリ・マップされた入出力装置(iommu)用の入出力コントローラを含むコンピュータ・システム100を表す。iommuは、アドレスaddr1にあるシステム・バス(sバス)およびアドレスaddr2にあるPCIバスなどの高速バスに接続された入出力装置とCPUの対話を管理する。それぞれのアドレスaddr3およびaddr4にある2つのSCSIコントローラ(esp1およびesp2)は、アドレスaddr5にある非同期転送モード(ATM)コントローラと共にsバスに結合される。第1のSCSIコントローラesp1は、4つのSCSI装置インスタンス(dev0、dev1、dev2、dev3)を管理するアドレス0(@0として表される)にあるSCSI装置ドライバ(sd)に関連付けられる。これらの装置インスタンスはそれぞれ、単一の物理装置106のそれぞれのスライスに対応する。第1のSCSIコントローラesp1は、他の物理装置106の複数のSCSI装置インスタンス(図示せず)を管理するアドレス1にあるSCSI装置ドライバ(sd)にも関連付けられる。
【0016】
コンピュータ・システム100と共に使用できる各装置ドライバ・タイプには所定の固有のメジャー番号が割り当てられる。たとえば、SCSI装置ドライバsdにはメジャー番号32が割り当てられる。各装置には、単一の装置ドライバによって管理される一群の装置内で固有のマイナー番号が割り当てられる。たとえば、アドレス0にあるドライバsdに関連付けられた装置dev0、dev1、dev2、dev3はそれぞれ、マイナー番号0、1、2、3とマイナー名a、b、c、dとを有する。同様に、アドレス1にあるドライバsdによって管理される装置は、装置dev0ないしdev3に関連付けられたマイナー番号とは異なるマイナー番号(たとえば、マイナー番号4ないし7を有する4つ)を有する。マイナー番号およびマイナー名は、新しい各装置インスタンスごとに親装置ドライバ140(図1)によって割り当てられる(SCSIインスタンスが、特定のSCSIドライブでよく、SCSI装置がそのドライブの特定のスライスでよいことを想起されたい)。これによって所与の装置ドライバによってエクスポートされる各装置は固有のマイナー番号とマイナー名とを有する。すなわち、ドライバはマイナー番号−名空間を管理する。
【0017】
各マイナー番号は、親ドライバのメジャー番号と組み合わされると、各装置を固有に識別するdev_t値を形成する。たとえばアドレス0にあるドライバsbによって管理される装置dev0、dev1、dev2、dev3は、それぞれのdev_t値(32,0)、(32,1)、(32,3)、(32,3)を有する。SpecFS138sはdev_t値の対応する装置へのマッピングを維持する。そのため、SpecFSへのすべての装置オープン要求は、固有のdev_t値を使用してオープンすべき装置を識別する。
【0018】
装置へのDevTreeパスはその装置の物理名を形成する。たとえば、装置dev0の物理名は文字列/devices/iommu@addr0/sbus@addr1/esp1@addr3/sd@0:aによって与えられ、この場合、sd@0:aは、アドレス0にあるsdドライバによって管理されマイナー名がa:である装置、すなわち装置dev0を指す。この物理名は、対応する装置にアクセスするのに必要なすべての情報を保持する(sノードに対応する)特殊ファイル170(図2に示されている)を識別する。特に、各特殊ファイル170の属性は、対応する装置に関連付けられたdev_t値を保持する。
【0019】
前述のように、リンク・ジェネレータ144は、リンク・ジェネレータによって管理される装置に適用できる1組の規則に従って装置の物理名から装置の論理名を生成する。たとえば、アドレス0にあるドライバsdによって管理される装置dev0の場合、SCSI装置のリンク・ジェネレータは論理名/dev/dsk/c0t0d0s0を生成することができる。この場合、c0はコントローラesp1@addr3を指し、t0はsd@0ドライバによって管理される物理ディスクのターゲットidを指し、d0はsd@0ドライバを指し、s0はマイナー名aとマイナー番号0とを有するスライスを指定する。sd@1ドライバに関連付けられた装置dev0には、同じリンク・ジェネレータ144によって論理名dev/dsk/c0t1d1s4が割り当てられる。2つのdev0装置が、ターゲット値、ディスク値、スライス値の差によって区別される論理名を有することに留意されたい。次に、図4を参照して、現在Solarisでこのインフラストラクチャをどのように使用して、コンピュータ100上に存在する特定の装置をオープンできるようにしているかを説明する。
【0020】
図4を参照すると、アプリケーション150の要求に応じて装置をオープンする際に様々なオペレーティング・システム構成要素によってコンピュータ100のメモリ104で実行される動作の流れ図が示されている。メモリ104は、アプリケーション150が実行されるユーザ空間104Uと、オペレーティング・システム構成要素が実行されるカーネル空間104Kに分割される。この図では、動作が行われる順序と、各動作の送信元およびターゲットである装置が1組のラベル付き矢印で示されている。必要に応じて、破線は、参照が渡されるオブジェクトを示す。メモリ104の図の隣に、ラベル付き矢印に関連する各動作が定義されている。動作はメッセージまたは関数呼出しとして定義され、その場合、メッセージ名の後に、処理すべきデータまたは受信側エンティティによって返されるデータが続く。たとえば、メッセージ(4−1)「open(logical_name)」は、「logical_name」によってユーザ空間104U内に表された装置をオープンすることをカーネル132に要求する、アプリケーション150から発行されるメッセージである。この特定の例では、アプリケーションは装置dev2をオープンすることを要求する。
【0021】
オープン・メッセージ(4−1)を受信した後、カーネル132はメッセージ(4−2)「get_vnode(logical_name)」をファイル・システム134に発行する。このメッセージは、カーネル132がオープン動作を完了するのに必要な装置dev2のvノードを返すようファイル・システム134に要求する。これに応答して、ファイル・システム134は、論理名空間164を使用して論理名166を対応する物理名168に変換する。ファイル・システム134は次いで、物理名によって指定されたファイルを見つけ、そのファイルの属性から対応する装置のdev_t値を判定する。ファイル・システム134は、dev_t値を得た後、メッセージ(4−3)「get_vnode(dev_t)」をSpecFS138sに発行する。このメッセージは、装置dev2にリンクされたvノードの参照を返すことをSpecFS138sに要求する。SpecFS138sは、メッセージ(4−3)を受信した後、要求されたvノード136と、vノード136を装置dev2にリンクするsノード136sとを作成し、vノード136の参照(4−4)をファイル・システム134に返す。ファイル・システム134は次いで、vノード参照をカーネルに返す(4−5)。
【0022】
カーネル132は、vノード参照を得た後、vノード136に関連付けられた装置dev2をオープンすることを求める要求(4−6)をSpecFS138sに発行する。SpecFS138sは、装置dev2を管理することが知られているドライバ2にオープン・コマンド(4−7)を発行することによってこの要求を満たそうとする。ドライバ2は、装置dev2をオープンできる場合、オープン動作が成功したことを示すopen_statusメッセージ(4−8)を返す。そうでない場合、ドライバ2は同じメッセージ(4−8)で失敗表示を返す。SpecFS138sは次いで、同様な状況メッセージ(4−9)をカーネル132に直接返す。メッセージ(4−9)で「成功」が返されたと仮定した場合、カーネル132は、ファイル記述子、すなわち装置dev2にリンクされたvノード136のユーザ空間表現をアプリケーション150に返す(4−10)。アプリケーション150は、ファイル記述子を得た後、ファイル・システム動作を使用してカーネル132およびファイル・システム134を介して装置dev2にアクセスすることができる。たとえば、アプリケーション150は、返されたファイル記述子に関する読取り要求を発行することによって装置dev2からの入力データを実行する。このようなファイル・システム・コマンドは次いで、SpecFS136sと、装置dev2を管理するvノード・オブジェクト136およびsノード・オブジェクト136sとによって実際の装置コマンドに変換される。
【0023】
したがって、Solarisでは、コンピュータ・システム100のユーザは、そのシステム100上の装置に比較的容易にアクセスすることができる。しかし、Solarisによって使用される方法では、いくつかの異なるコンピュータがクラスタの一部として構成されているときでも、ユーザがコンピュータを介して装置に透過的にアクセスすることはできない。すなわち、第1のコンピュータ上で実行されているアプリケーションが、Solarisを使用して第2のコンピュータ上の装置を透過的にオープンすることはできない。
【0024】
Solarisの現行のバージョンがマルチコンピュータの場合に透過的な装置アクセスを行うことができない理由は、dev_t番号およびマイナー番号が装置が接続されるときに割り当てられる現行の方法に関するものである。再び図3を参照するとわかるように、、コンピュータ100に装置が接続されるたびに、装置の関連するドライバによって制御される1組の装置内で固有であり、したがって、ドライバのメジャー番号と組み合わされたときにコンピュータ100の固有のdev_t値にマップすることのできるマイナー番号をドライバがその装置に割り当てる。しかし、同じ装置およびドライバが第2のコンピュータ上に設けられている場合、そのドライバおよび装置には、同一ではないにしても同様な1組のメジャー番号およびマイナー番号ならびにdev_t値が割り当てられる。たとえば、両方のコンピュータがSCSIドライバsd(メジャー番号=32)と、SCSIドライバsdによって管理される4つのSCSI装置インスタンスを有する場合、各ドライバsdはそのローカルな1組のSCSI装置に同じ1組のマイナー番号を割り振る(たとえば、両方の組が0ないし3のマイナー番号を有する)。したがって、装置はそのdev_t値に従ってアクセスされるので、第1のノード・アプリケーションが第2のノード上のSCSIディスクをオープンする必要がある場合、そのアプリケーションは、どちらのコンピュータ・システム上のSpecFSに対してもSCSIディスクを明確に識別することができない。
【0025】
【発明が解決しようとする課題】
したがって、アプリケーションが、どこで実行されているかにかかわらず、コンピュータ・クラスタのノード上に存在する装置に透過的にアクセスできるようにするファイル・ベースの装置アクセス・システムが必要である。
【0026】
【課題を解決するための手段】
要約すると、本発明は、クラスタ内で使用され、ローカル装置名を、クラスタ・ノードのいずれかでランしているアプリケーションから他のクラスタ・ノードに位置する装置にアクセスできる、グローバルで一意の論理名にマッピングするシステムおよび方法にある。
【0027】
特に、好ましい実施形態には、クラスタのグローバル・ファイル・システム、装置(デバイス)・ドライバ・インタフェース(DDI)および装置(デバイス)情報ツリーが含まれている。装置ドライブ・インタフェースは、少なくとも予め定められた装置クラスのサブセットに関連付けられたインスタンスに対して、ローカル装置名がグローバルに一意であるかどうか判断する。ローカル装置名がグローバルに一意ではない場合、DDIはそれぞれのローカル・インスタンスに対してグローバルに一意な識別子を決める。装置ドライバ・インタフェースによって維持される装置情報ツリーは、クラスタ内の装置の物理的関連を表す。装置情報ツリーのルート・ノードとリーフ・ノードの間の各パスは、装置インスタンスのそれぞれ1つを表すグローバル・ファイル・システムによって維持される装置ファイルの物理名に対応する。リンク・ジェネレータは、各インスタンスに対して、そのインスタンスの対応する物理名にマッピングされるグローバルに一意の識別子に基づいて論理名を生成し、特定のインスタンスのグローバルに一意の識別子を、その特定のインスタンスを表す装置ファイルに関連付ける。
【0028】
このフレームワークを与えられると、クラスタのユーザは、アクセスされる装置をその論理名で識別するアクセス要求をグローバル・ファイル・システムに出すことにより、任意の装置にアクセスできる。グローバル・ファイル・システムは、論理名を対応する物理名に変換し、物理名によって識別される装置ファイルを介して装置のグローバルに一意の識別子にアクセスし、そのグローバルに一意の識別子によって識別される装置にアクセスして、アクセス要求を解決する。
【0029】
好ましい実施形態においては、グローバル・ファイル・システムは、1つのネットワーク・ノード上でしか稼動しない可能性があり、各ノードが、装置ドライバ・インタフェースと装置情報ツリーのインスタンスにそれぞれ対応する。本発明の実施形態においては、グローバル・ファイル・システムとそれぞれの装置ドライバ・インタフェースとの間のリンクは、プロキシ・ファイル・システムによって提供される。好ましい実施形態はまた、各々がローカル装置名をインスタンスに割り当てることのできる装置を管理するための複数の装置ドライバを含むこともある。これらの装置ドライバは、各種の装置ドライバ・インタフェースと共設される。
【0030】
好ましい予め定められた装置クラスのセットは、次を含む。すたわち、
「dev_enumerate」・・特定のドライバによって管理される少なくとも1つのインスタンス(それぞれは、個別に列挙されている特定のノード上の特定のドライバによって管理される)で装置を指定。
「dev_nodespcific」・・ローカルにアクセスされ、各ノード上の管理ドライバと1対1の関係を有している、各ノード上で利用可能な装置を指定。
「dev_global」・・任意のノードのドライバからアクセスできる装置を指定。
「dev_nodebound」・・特定のノード上のドライバだけから通常アクセスされ、そのドライバと1対1の関係を有している装置を指定。
【0031】
本発明は、それぞれの装置クラスのインスタンスのローカル装置名を、対応するグローバルに一意の識別子および論理名に変換するための一連の規則(ルール)を定義するものである。特に、dev_enumerate装置のローカル装置名は、装置名およびローカルに一意のローカル・マイナー番号の組合せを含み、グローバルに一意の識別子は、グローバル・マイナー番号を含み、論理名は、装置名とグローバル・マイナー番号の組合せを含んでいる。同様に、dev_nodespecific装置のローカル装置名と論理名はそれぞれ、装置名から形成され、dev_global装置のローカル装置名と論理名はそれぞれ装置名から形成される。
【0032】
本発明はまた、クラスタ・ノードの1つのノードに装置構成システム(DCS)が組み込まれており、その1つのノードには、クラスタ内の各装置に対して、装置名、論理装置を管理する装置ドライバのメジャー番号と、グローバル・マイナー番号、および論理装置のホストとなるノードのホストidとを含んでいる永続的な装置構成システム(DCS)データベースが維持されている。DDIは、DCSデータベースを使用してDDIのために装置それぞれのグローバル・マイナー番号を生成するDCSの支援によって、各論理装置のグローバルに一意の識別子、論理名および物理名を生成する。
【0033】
本発明はまた、クラスタ上の装置をグローバルに可視的にするためのシステムでもあり、クラスタには装置が接続される複数のノードが含まれる。好ましいシステムは、少なくとも1つのグローバルに一意の識別子を各装置に設定して、その装置がどのノードからもアクセスできるようにする装置レジストラを含む。このシステムはクラスタ上でランするグローバル・ファイル・システムを含むことができ、少なくとも1つのグローバルに一意の識別子には、クラスタのユーザが装置を識別するグローバルに一意の論理名と、グローバル・ファイル・システムが装置を識別するグローバルに一意の物理名とが、備えられている。好ましい実施形態においては、装置レジストラによって設定される、各装置の論理名と物理名との間の1対1のマッピングがある。
【0034】
本発明はまた、クラスタ内の装置の物理的関連を表す装置レジストラによって維持される装置情報(dev_info)データ構造も含み、当該物理的関連のそれぞれは、装置のそれぞれを表しグローバル・ファイル・システムによって維持されている装置ファイルの物理名に対応している。このフレームワークを与えられると、装置レジストラは好ましい実施形態では、接続された装置に対してグローバルに一意の装置タイプ(dev_t)値を決定し、dev_infoデータ構造にエントリおよび対応する物理名を接続された装置に対して作成し、接続された装置に対してdev_t値に基づく論理名と、対応する物理名とを作成し、そして接続された装置のdev_t値を、接続された装置を表す装置ファイルに関連付ける。
【0035】
本発明の他の目的および特徴は、以下の詳細な説明および添付の特許請求の範囲を図面と共に検討したときにより容易に明らかになろう。
【0036】
【発明の実施の形態】
図5を参照すると、本発明を実施することのできるコンピュータ・クラスタ200のブロック図が示されている。クラスタ201は、関連する装置106とアプリケーション150とを有する複数のノード202を含む。図1と同様に、装置106は高可用性装置112と、プリンタ114と、カーネル・メモリ116と、通信装置118と、記憶装置120とを含むことができる。本発明の議論の都合上、グローバル・ファイル・システム206は、クラスタ201上に記憶されているすべてのファイル用の単一のグローバル・ファイル空間を維持し、1つのノード202上で実行される。グローバル・ファイル・システム206は装置106の少なくとも2つの表現をサポートする。物理名空間(PNS)表現305は、カーネル空間からアクセスできるものであり、それぞれのノード202上の装置106の物理的構成に対応する。論理名空間(LNS)表現304は物理名空間305のユーザ空間バージョンであり、すなわち論理名空間304内の各エントリは物理名空間305内の対応するエントリにマップされる。本発明は、このグローバル・ファイル・システム206の多数の点を修正し、アプリケーション150による装置106への透過的なグローバル・アクセスを可能にする。クラスタ201は、本発明の重要な構成要素である装置構成システム(DCS)208を備えるノード204も含む。
【0037】
他の実施形態には、それぞれ、それ自体の物理名空間および論理名空間を維持する、任意の数のグローバル・ファイル・システム206がある。そのような環境では、特定の装置は、グローバル・ファイル・システム206およびそれに関連付けられた物理名空間および論理名空間のみを通してアクセスされる。
【0038】
上記で図1ないし4を参照して説明したように、従来型のSolaris装置アクセス・システムでは、透過装置アクセスは単一のコンピュータ・システム内でしかできない。従来技術においてアクセスすべき装置のdev_t値にファイル・システムによってマップされた論理名を生成する方法のある態様は、現行の装置アクセス・システムのクラスタへの拡張には適合しない。たとえば、数組の装置106−1、106−2がそれぞれ、4つのSCSIディスク・ドライブを含むと仮定すると、現在使用されている論理命名システムでは、それぞれの異なるノード106−1、106−2上のそれぞれの異なるドライブが同じdev_t値を有する。この場合、アプリケーション150−1がノード202−2上の特定の1つのディスク・ドライブに透過的にアクセスすることは不可能である。次に、本発明がどのように、そのような透過的なグローバル装置アクセスを行うかについて説明する。
【0039】
図6を参照すると、1つのノード202と、DCS208を備えるノード204の他の詳細が示されている。この図では、ファイル・システム206は、1つの特定のノード202−2上に存在する場合と同様には示されていない。各ノード202は、内部にオペレーティング・システム(OS)ルーチン/オブジェクト240およびデータ構造300が定義されているメモリ230を含む。OSルーチン240は、オペレーティング・システム・カーネル242と、プロキシ・ファイル・システム(PxFS)244と、特殊ファイル・システム258と、装置ドライバ・フレームワーク(DDI)270と、1組のサーバ・オブジェクト(DSO)と、装置ドライバ280とを含む。
【0040】
前述のように、カーネル242は、メモリ230、ファイル・システム206、または装置106へのアクセスを求める要求など、アプリケーション150からのシステム呼出しを処理する。カーネル242は、グローバル装置アクセスをサポートするように本発明によって修正されているのでカーネル132(図1)とは異なる。プロキシ・ファイル・システム(PxFS)244は、SolarisPXFSファイル・システムに基づくものであるが、カーネル242と同様に、本明細書ではグローバル装置アクセスをサポートするように修正される。PxFS244は、ノード202−i内のアプリケーション150−iがいくつかの異なるノード202を介してファイル・システム206とシームレスに対話できるようにするオブジェクトの集合を含む。PxFSオブジェクトには、PxFSクラスタ246と、PxFSサーバ248と、f_objs(ファイル・オブジェクト)250と、vノード(仮想ファイル・ノード)252と、sノード(特殊ファイル・ノード)254と、px_vノード(プロキシvノード)256とが含まれる。これらのオブジェクトはそれぞれ、ファイル・システム206の動作に応答してPxFS244の必要に応じて作成されるので図6では任意選択(opt)と示されている。
【0041】
DDIフレームワーク270(以下では「DDI」と呼ぶ)も、従来技術(図1)を参照して説明したDDIフレームワーク142に類似している。しかし、DDIフレームワーク270は本発明では、DCS360と対話し、いくつかの異なるノード202上でそれらのノードからアクセスすることのできる装置106との互換性を有する物理名および論理名を生成する。DDI270は、ローカル・ノード202に新しい装置が接続されるたびに呼び出される接続メソッド272を含む。従来技術の接続メソッドとは異なり、接続メソッド272は、DCS360のサービスを使用して、接続された各装置ごとにグローバルに整合する物理名を作成するように構成される。DDIフレームワーク270は、対応する物理名から固有の論理名を生成するリンク・ジェネレータ274の集合も含む。それぞれの異なる種類の装置106ごとにそれぞれの異なる種類のリンク・ジェネレータがある。したがって、接続ルーチン272およびリンク・ジェネレータ274はそれぞれ、装置106をそれぞれ、カーネル・レベルおよびユーザ・レベルでグローバルに見えるようにする物理名空間及び論理名空間を構築する。
【0042】
本発明は、それぞれ、装置106の特定のクラス312を管理する、1組のDSO290をクラスタ200の各ノード上に含む。それぞれの装置クラスは、特定の装置106をオープンすることを求めるユーザの要求を一般的には透過的なグローバル装置アクセス・システムにより、具体的にはDCS372によって満たさなければならない場合の特殊性に対処する本発明の新しい形態である。好ましい実施形態には、dev_enumerate314、dev_node_specific316、dev_global318、dev_nodebound320の4つの装置クラスと、DSO_enum292、DSO_nodespec294、DSO_global296、DSO_nodebound298の4つの対応するDSO290がある。
【0043】
dev_enumerateクラス314は、各装置が接続されるときに関連するドライバ280によって列挙される特定のノード202で複数のインスタンスを有することのできる装置106(たとえば、複数の記憶装置120)に関連付けられる。dev_nodespecificクラス316は、ノード当たり1つのインスタンスしかなく、その結果ドライバ280によって列挙されることがない装置106(たとえば、カーネル・メモリ116)に関連付けられる。dev_globalクラス318は、各ノード上に存在するドライバを使用してローカルまたはリモートにアクセスできる装置106(たとえば、通信装置118)のクラスである。dev_nodeboundクラスは、特定のノード上のドライバを使用した場合にのみアクセスすることができる装置(たとえば、HA装置112)に使用される。
【0044】
ドライバ280は、接続中の各オブジェクトについての装置クラス情報312が得られるときにはそれを含む追加の構成情報を報告することを除いてドライバ140に類似している。
【0045】
データ構造300はDevInfoツリー302とddi_minor_nodesテーブル306とを含む。多数のOSルーチン240と同様に、データ構造300は、従来技術(図1)で使用される同様な名称のデータ構造160に類似している。しかし、各データ構造は、本発明の動作を有効にする、従来技術との重要な違いを具体化する。具体的には、DevInfoツリー302は、クラスタ200内の選択されたクラスの装置を見つけるために必要な追加の中間ノードを含む。DevInfoツリーで表される物理名空間305を変更したため、論理名空間304も従来技術の論理名空間164とは異なる。最後に、ddi_minor_nodesテーブル306は、従来技術で使用されるddi_minor_nodesテーブルとは異なり追加のフィールドを含む。たとえば、本発明のddi_minor nodesテーブルは、global_minor_numberフィールド308と、local_minor_numberフィールド310と、(device)classフィールド312(前述)を含む。従来技術のddi_minor_nodesテーブルには、フィールド308とフィールド312のどちらも含まれていない。
【0046】
ノード204は、OSルーチン/オブジェクト340およびデータ構造370が定義されているメモリ330を含む。OSルーチン/オブジェクト340は、装置構成システム(DCS)360と、DCS上のmap_minorメソッドと、前述のDSOと同一の1組のDSO290とを含む。データ構造370はDCSデータベース372を含む。
【0047】
DCS360は、従来技術とはまったく異なるものであり、少なくとも2つの重要な機能を果たす。第1に、DCS360はDDI270と共に働き、新たに接続された装置に、この装置にグローバルにかつ透過的にアクセスできるようにするグローバル・マイナー番号を割り当てる。第2に、DCS360はファイル・システム206と共に働き、PXFS244アプリケーション150が、接続された装置106に透過的にアクセスできるようにする。DCS_database372は、DCS372によって生成されたすべての重要な結果を常に保持する。DCS360のこの2つの態様について以下でそれぞれ、図7Aおよび7Bならびに図8Aおよび8Bを参照して説明する。
【0048】
図7Aを参照すると、ノード202内のDDIフレームワークおよびノード204内のDCS360が、ノード202に接続される装置380の適切なdev_t値、論理名、物理名を規定する動作を示す流れ図が示されている。DDI270、リンク・ジェネレータ274、DCS360、それらの拡張機能は全体として、クラスタ200用の装置レジストラとして働く。動作およびメッセージは図4Aの場合と同様に示されている。流れ図に表した動作を説明する前に、本発明によって管理されるいくつかの名前空間について図7Bを参照して説明する。
【0049】
図7Bを参照すると、2つのノード202−1、202−2を含む例示的なクラスタに本発明で使用されるマイナー名/番号空間307、物理名空間305、論理名空間304の概念図が示されている。後述のように、ノード202に装置106を接続するたびに、装置のドライバが装置にローカル・マイナー番号307_numおよびローカル・マイナー名307_nameを割り当てる。DDI270はこの情報を使用して、グローバルに一意のマイナー番号を生成し、装置106のグローバルに一意の物理名305_nameを形成する。物理名305_nameはクラスタの装置階層内の装置を特定する。次いで、リンク・ジェネレータ274は物理名305_nameをグローバルに一意の論理名304_nameにマップする。DDI270−1、270−2およびリンク・ジェネレータ274−1、274−2がそれぞれ、協働して共通のグローバル物理名空間305およびグローバル論理名空間304を生成することに留意されたい。これとは対照的に、各ドライバはそのノード202に対してマイナー名/番号空間しか生成しない。したがって、本発明はローカルのマイナー名/番号をグローバル物理名および論理名にマップする。これらのグローバル名前空間はファイル・システム206の一部である。したがって、任意のノード202上のアプリケーション150は、ファイル・システム206を使用して、クラスタ200上のすべての装置106を、それらが単一のコンピュータ上に配置されている場合と同様に見てそれらにアクセスすることができる。フレームワークを形成する名前空間について説明したが、次に、本発明について図7Bを参照して説明する。
【0050】
図7Aを参照するとわかるように、ノード220に装置106を接続すると、DDI270はドライバ280に接続メッセージ(7−1a)を発行する。これに対して、ドライバ280は、接続されたインスタンスに関連付けられた各装置のDDI270にcreate_ddi_minor_nodesメッセージ(7−1b)を発行する。create_ddi_minor_nodesメッセージ(7−1b)は、装置380の構成を示し、適切な装置ドライバ280によって割り当てられたローカル・マイナー番号(minor_num)382およびminor_name384と、1つのクラス312から選択されたdevice_class386とを含む。たとえば、装置がノード202に接続された第3のSCSIディスク・ドライブである場合、minor_num、minor_name、classはそれぞれ、「3」、「a」(それがその装置上の第1のスライスであることを示す)、「dev_enumerate」であってよい。
【0051】
create_minor_nodesメッセージ(7−1b)に応答して、DDI270は、local_minor_numフィールド310をminor_num値382(7ー2)に等しく設定することによってddi_minor_nodesテーブル380を更新する。DDI270は次いで、DCS360にdc_map_minorメッセージ(7−3)を発行し、装置380の適切なグローバル・マイナー番号388を返すことをDCS360に要求する。前の文の「適切な」の意味は装置クラスに依存する。すなわち、dev_enumerate装置およびdev_nodebound装置は固有のグローバル・マイナー番号388を必要とするが、dev_global装置およびdev_nodespecific装置は必要としない。dc_map_minorメッセージ(7−3)は、(1)「gminor」、すなわちDCS360によって生成されたグローバル・マイナー番号388のリターン・フィールドと、(2)装置ドライバ280によって生成されたローカル・マイナー番号384を保持する「Iminor」と、(3)装置ドライバ280によって生成された装置クラス386を保持する「class」の3つのフィールドを含む。map_minorメッセージ(7−3)に応答して、DCS360は、メッセージ(7−3)で識別されたクラスのローカルDSO290に同様なds_map_minorメッセージ(7−4)を発行する。
【0052】
DSO290は特に、接続中の装置に割り当てるべきグローバル・マイナー(gmin)番号388を判定する。gmin番号をどのように割り当てるかは装置のクラス386に依存する。たとえば、列挙される各装置は特定のノードでアクセスしなければならないので、dev_enumerateクラス314のDSO292は、各dev_enumerate装置にクラスタ全体にわたって一意のgmin番号388を割り当てる。これに対して、どのノードでdev_global装置にアクセスするかは重要ではないので、dev_globalクラス318のDSO296はこのような装置に同じgmin番号を割り当てる。他のクラスの場合、dev_nodespecificクラス316のDSO294は、そのクラスの各装置に同じ非ヌルgmin番号を割り当て、dev_nodeboundクラス320のDSO298は、そのクラスの各装置にクラスタ全体にわたって一意のgmin番号を割り当てる。
【0053】
DSO292、298は、まずDCSデータベース372に問い合わせ、グローバル・マイナー番号がまだあるかどうかを判定することによってグローバル・マイナー番号を割り当てる。
【0054】
DCSデータベース372は、常に保持され、クラスタ200内のすべての装置106について、メジャー番号に関するフィールド390と、グローバル・マイナー番号に関するフィールド388と、内部(またはローカル)マイナー番号に関するフィールド382と、(サーバ・クラス386と数値394とを含む)装置サーバidに関するフィールド392とを含む。マイナー名、メジャー番号、グローバル・マイナー番号、ローカル・マイナー番号についてはすでに説明した。数値394は、接続中の装置のサーバであるノード202を識別する。第1のクラスのサーバのIDは無関係であり、第2のクラスの場合には、装置にアクセスする必要があるノードの位置と同じであるので、数値394の情報は、dev_global装置およびdev_nodespecific装置については任意選択である。DCSデータベース272の例を表1に示す。
【表1】
Figure 0004119971
【0055】
表1の第1行は、tcpインタフェースに関するエントリを示す。tcpインタフェースは、クラスタ200内のあらゆるノード202からアクセスできるのでdev_global装置である。tcp装置のメジャー番号は42であり、この値はすべてのtcpドライバに関連付けられる。tcp装置のグローバル最小値388およびローカル最小値382ならびにサーバ数値394(すなわち、node_id)は0に設定されることに留意されたい。これは、どのノードからtcpインタフェースにアクセスするかは重要ではないからである。したがって、DCSデータベースにはクラスタ200全体に関するtcpエントリは1つしかない。表1内の第2のエントリは、省略時指定ではローカルにアクセスされるカーネル・メモリ装置に関するエントリである。このため、これはdev_nodespecificクラスの装置である。メジャー番号13は、kmem装置ドライバに関連付けられる。kmem装置は、特定のサーバでアクセスされるわけではないので、ヌル数値394を有し、かつ同一の非ヌルグローバル最小値および非ヌルローカル最小値(12)を有する。これは、dev_nodespecific装置では、DCS360がローカル・マイナー番号と同じグローバル・マイナー番号を割り当てるに過ぎないからである。この例では、それぞれのノード202上に配置されたkmem装置どうしを区別する必要がないのでDCSデータベース372にはdev_nodespecificクラスのkmemエントリは1つしかない。
【0056】
第3のエントリは、SCSIドライバがメジャー番号32を有するSCSIディスクc0t0d0t0に関するエントリである。DCS360は、SCSI装置にそのローカル・マイナー番号382(24)と同じグローバル・マイナー番号388を割り当てている。これは、DCSデータベース372には他のSCSI装置が表されていないからである。しかし、他のSCSI装置c0t0d0t0を同じローカル番号(24)で異なるノードに登録した場合、DCS360はそのSCSIに異なるグローバル番号、おそらく25を割り当てる。同じローカル番号を有するSCSI装置どうしを区別するために、DCSデータベース372は完全なサーバ情報を含む。この場合、数値394はサーバ202のホストidに設定される。
【0057】
エントリ4ないし7は、dev_enumerate装置として登録された4つのカーネル・メモリ装置に関するエントリである。好ましい実施形態では、dev_nodespecific装置を登録するたびに、カーネル内のすべてのノード202について、DCSデータベース372内に追加のエントリを作成することができ、これによって、ユーザはローカル・ノード以外のノード上のdev_nodespecific装置にアクセスすることができる。したがって、4つのノード202−1、202−2、202−3、202−4があると仮定すると、DCS260はこれらのノードのそれぞれごとにdev_enumerateクラスのカーネル・メモリ装置を登録することができる。他のdev_enumerate装置の場合と同様に、各kmem装置には固有のグローバル番号が割り当てられる。dev_enumerate情報は、カーネル・メモリ装置をオープンすることを求める一般的な要求(たとえば、open(/devices/kmem))をユーザが発行するときには使用されない。dev_enumerate情報は、カーネル・メモリ装置をオープンすることを求める特定の要求をユーザが発行するときに使用される。たとえば、要求open(/devices/kmem0)によって、ユーザはノード0上のkmem装置をオープンすることができる。
【0058】
最後のエントリは、一般的な高可用性(HA)装置がDCSデータベース372内でどのように表されるかを示す。メジャー番号390、グローバル・マイナー番号、ローカル・マイナー番号は、map_minor nodesメッセージに与えられる値M、X1、X1から取り出される。数値394は、特定のノードに結合された装置のidに設定される。この「id」はノードidではない。このidは、各HAサービスごとにクラスタ200に対して固有に作成される。
【0059】
装置380のグローバル・マイナー番号388が判定された後、適切なDSO290が、DCSデータベース372を新しい情報で更新し(7−5)、グローバル・マイナー番号388をDCS360に返す(7−6)。DCS372は次いで、グローバル・マイナー番号388をDDI270に返し(7−7)、DDI270がddi_minor_nodesテーブル306(7−9)、論理名空間304、物理名空間305、dev_infoツリー302(7−9)を更新する。DDI270は、新しいグローバル・マイナー番号388を書き込むことによってddi_minor nodesテーブル306を更新する。名前空間304/305の更新はこれよりも複雑であり、この更新について次に説明する。
【0060】
第1に、DDI270はDevInfoツリー302に新しいリーフ・ノードを追加し、DevInfoツリーの構造が、上記で図3を参照して説明した構造から、dev_enumerateが接続されたクラスタ・サイトを表す追加の「/hostid」ノード・レベルを「/devices」ノードのすぐ下に含めるように変更される。各ノード202が、そのノード上の装置を表すそれ自体のDevInfoツリー302を有することに留意されたい。しかし、物理名空間で表されるように、DevInfoツリーの集合は、この追加の/hostidノードを含む単一の表現として組み合わされる。(たとえば、典型的な物理名は文字列/devices/hostid/...から始まる)。各装置はまた、リーフ・レベルで、ローカル・マイナー番号382ではなくグローバル・マイナー番号388に関連付けられる。(dev_enumerate装置の)必要に応じて、DevInfoツリー302の各リーフ・ノードのdev_t値は、対応する装置のグローバル・マイナー番号388およびそのドライバのメジャー番号390から導かれる。たとえば、グローバル・マイナー番号GNと、マイナー名MNと、ドライバsd@addryとを有するノード202−x上のSCSIディスクへの物理パスは、本発明では以下のように表される。/devices/node_202−x/iommu@addr/sbus@addr/esp@addr/sd@addry:MN
【0061】
この物理名は、メジャー番号およびグローバル・マイナー番号から導かれたdev_t値を属性として含む、所与の装置に関する構成情報を含むUFSファイル170(図2B)の物理名に対応する。
【0062】
本発明のリンク・ジェネレータ274は、DevInfoパスの少なくとも一部と、DCSから返されたグローバル・マイナー番号に従って修正されたドライバから与えられたマイナー名とから装置(および対応するUFS)の論理名を導く。
【0063】
たとえば、ノード202−1が、最初にドライバ・マイナー名aないしdおよびドライバ・マイナー番号0ないし3で割り当てられた4つのスライスを含む1枚のSCSIディスクを有し、ノード202−2が、マイナー名aないしfおよびマイナー番号0ないし5で割り当てられた6つのスライスを含む1枚のSCSIディスクを有すると仮定する。これらの装置を接続したときに、DCS360が第1のSCSIディスクに関してはグローバル・マイナー番号0ないし3を返し、第2のSCSIディスクに関してはグローバル・マイナー番号4ないし9を返したと仮定する。DDI270は、これらのグローバル・マイナー番号を使用して物理名(後述)を作成し、リンク・ジェネレータ274はDDI270を使用して、以下のように物理名にマップされる論理名を作成する。
ドライバ280からのマイナー名 リンク・ジェネレータ274からの論理名
a(ノード202−1) /dev/dsk/c0t0d0s0
b 〃 /dev/dsk/c0t0d0s1
c 〃 /dev/dsk/c0t0d0s2
d 〃 /dev/dsk/c0t0d0s3
a(ノード202−2) /dev/dsk/c1t0d0s0
b 〃 /dev/dsk/c1t0d0s1
...
f 〃 /dev/dsk/c1t0d0s5
【0064】
ノード202−1および202−2に割り当てられた論理名はそれぞれの異なるクラスタ値(論理名文字列cxt0d0syのcx部分。この場合、「x」および「y」は変数である)を有する。これは、論理名が装置の物理名にマップされ、クラスタ内で、それぞれの異なるノード上の装置がそれぞれの異なるコントローラに関連付けられるからである。たとえば、ノード202−1コントローラはc0として表され、ノード202−2はc1として表される。
【0065】
DDI270は、同じgmin情報を使用して物理名空間305を生成し、対応する装置のdev_t値が属性として含まれるファイルを識別する論理名と物理名との間のマップを生成する。上記の例では、論理名空間304と、論理名空間と物理名空間とのマップは以下のように更新される(addrが任意のアドレスを代替することに留意されたい)。
Figure 0004119971
【0066】
この例は、DDI270が、dev_enumerate装置、たとえばSCSI装置がそのクラスのメンバである論理名および物理名を生成することを示している。簡単に言えば、dev_enumerate装置を命名する規則では、特定のドライバ(たとえば、sd)によって列挙される各インスタンスが固有のグローバル・マイナー番号を有し、そのグローバル・マイナー番号をドライバのメジャー番号と組み合わせたときに、対応する固有のdev_t値が形成される必要がある。このような規則は、各インスタンスに関連付けられた物理名が、そのインスタンスのホストidとグローバル・マイナー番号を、他の従来の物理パス情報と共に含まなければならないことも指定する。他のクラスの他の装置を命名する規則は、上記でdev_enumerateクラスに関して説明した規則に類似している。
【0067】
特に、DDI270は、dev_nodespecific装置に形式/dev/device_nameの論理名および以下の形式の物理名を割り当てる。/devices/pseudo/driver@gmin:device_name
この場合、device_nameは名前384であり、pseudoは、この種の装置が擬似装置であることを示し、driverは対応するドライバのidであり、@gmin:device_nameは、dev_nodespecific装置のグローバル番号388および装置名384を示す。たとえば、カーネル・メモリ装置の論理名および物理名はそれぞれ、/dev/kmemおよびdevices/pseudo/mm@12:kmemであってよい。前述のように、kmem装置には、それに特定のノード上でアクセスできるようにする論理名を与えることができる。たとえば、DDI270は、論理名/dev/kmem0を物理名/devices/hostid0/pseudo/mm@0:kmemにマップする。
【0068】
dev_globalクラスの場合、DDIによって生成される各論理名は、ファイル・システムによってクラスタ200内の任意の装置に関連付けられる共通の物理パスを識別する。このような装置の論理名は、/dev/device_nameの形式であり、以下の形式の物理名にマップされる。
/devices/pseudo/clone@gmin:device_name
この場合、device_nameはドライバに特有の名前384であり、pseudoは、この種の装置が擬似装置であることを示し、cloneはこの装置がクローン可能であることを示し、@gmin:device_nameは、dev_global装置のグローバル番号388および装置名384を示す。たとえば、表1のtcp装置の論理名は/dev/tcpであり、物理名は/devices/pseudo/clone@0:tcpである。前述のように、本発明では、kmem装置の場合とは異なり、dev_global装置どうしを区別することができないことに留意されたい。すなわち、すべてのdev_global装置が区別不能である。
【0069】
本発明のクラス・ベースの命名システムの利点は、それが、Solarisの従来のバージョン向けに設計された従来型のソフトウェアとの互換性を有することである。たとえば、従来型のプログラムはopen(/dev/kmem)要求を発行することができ、この場合、本発明を具体化するSolarisのバージョンは、ローカルkmem装置のハンドルを返す。本発明は、dev_global装置とdev_enumerate装置に対して同様な結果を与える。従来技術には、dev_nodebound装置に関する概念はなかった。
【0070】
それぞれの異なるクラスの装置がクラスタ200のそれぞれの異なるノード上でアクセスできる一貫したグローバル名空間を、DDI270およびDCS360がどのように形成するかについて説明したが、次に、他のノード上の装置に対するオープン要求に応答するために本発明によって使用されるステップについて図8Aおよび8Bを参照して説明する。
【0071】
図8Aおよび8Bを参照すると、ノード202−3上に存在する装置106−2(図8B)にアクセス(オープン)するためにノード202−1上で実行されているアプリケーション150からの要求(8−1)に応答して本発明によって実行されるステップの流れ図が示されている。この例では、ファイル・システム206およびDCS360はそれぞれ、ノード202−2および204上に存在する。アプリケーション150は装置の論理名上のカーネル242にオープン要求を発行する。カーネル242は次いで、ファイル・システム206に問い合わせ装置のdev_t値を判定する。ファイル・システムがカーネル242とは異なるノード上にあるので、これは、プロキシ・ファイル・システムPxFSを使用するマルチステップ・プロセスであり、プロキシ・ファイル・システムPxFSの大部分の態様はすでにSolarisの現行のバージョンによって定義されている。しかし、本発明は、Solarisの従来のバージョンとはまったく異なり、PxFSクライアント246やPxFSサーバ248などのプロキシ・ファイル・システム要素をDCS360との対話をサポートするように修正する。PxFSクライアント246とPxFSサーバ248とファイル・システム206との間の対話について簡単に説明する。
【0072】
まずファイル・システム206にアクセスする必要のあるカーネル242などのオブジェクトは、そのローカルPxFSクライアント246にアクセス要求を発行する。PxFSクライアントは、ファイル・システム206と共に配置されたPxFSサーバ248の参照を保持する。この参照によって、PxFSクライアント246はカーネルの要求をPxFSサーバ248を介してファイル・システム206に伝達することができる。ファイル・システム206は、要求されたアクセスを実行し、要求されたファイルを表すvノード・オブジェクト252を作成し、vノード・オブジェクト252の参照をPxFSサーバ248に返す。ノード202−1および202−2がそれぞれの異なるアドレス空間であるので、vノード252の参照は、ノード202−1内のPxFSクライアント246およびカーネル242には無用である。したがって、PxFSサーバ248は、vノード252にリンクされたファイル転送オブジェクト(f_obj)250を作成し、f_obj250の参照をPxFSクライアント246に返す。PxFSクライアント246は、f_obj参照を受信した後、f_obj250にリンクされたプロキシvノード(px_vnode)256を作成する。カーネル242は次いで、単にローカルpx_vノード256にアクセスすることによって、vノード252で表されたファイル情報にアクセスすることができる。
【0073】
カーネル242は、この機構を使用して、PxFSクライアント246に対してオープンされる装置の論理名に関する参照メッセージ(8−2)を発行し、PxFSクライアント246は同様な参照メッセージ(8−3)をPxFSサーバ248へ送る。PxFSサーバ248は、ファイル・システム206にlookup(logical_name),get_vnodeメッセージ(8−4)を発行し、論理シンボリック・リンクを介してlogical_nameを対応するphysical_nameにマップし、そのphysical_nameで識別されるUFSファイルを表すv_node252の参照を返すことを要求する。physical_nameがこの例と同様に装置を参照するものであるとき、装置の属性は装置の固有のdev_tを含む。前述のように、ファイル・システム206は次いで、PxFSサーバ248にvノードを返し(8−5)、PxFSサーバ248が対応するf_obj250を作成し、f_obj250の参照をPxFSクライアント246に返す(8−6)。PxFSクライアント246は次いで、要求された装置に関するdev_t情報が属性に含まれるpx_vnode256を作成し、そのpx_vnode256の参照をカーネル242に渡す(8−7)。この点で、カーネル242はpx_vnode256のPxFSクライアント246にオープン・メッセージ(8−8)を返す。PxFSクライアント246は、このメッセージを受信した後、dev_t値を含むpx_vnodeの属性から、対応するvノード252が装置を表し、従って、DCS360によってオープン・メッセージを処理しなければならないと判定する。px_vnode256がdev_t値を含まない場合、PxFSクライアント246は他のチャネルを通してオープン要求(8−8)を満たす。Solarisの従来のバージョンの場合と同様に、装置はローカルにしかアクセスできないので、PxFSクライアントはdev_t値に関する試験を実行しない。
【0074】
px_vnode256がdev_t値430を含むので、PxFSクライアント246は、dev_tに対応する装置のDCS360にresolveメッセージ(8−9)を発行する。次に、DCS360がこの要求をどう扱うかについて図8Bを参照して説明する。
【0075】
図8Bを参照するとわかるように、resolve(dev_t)メッセージ(8−9)に応答して、DCS360はDCSデータベース372を参照し、dev_t値に対応する装置の位置およびIDを判定する。装置クラス312に関する前述の議論と同様に、dev_enumerateクラスおよびdev_nodeboundクラスの装置は、DCSデータベース372の数値フィールド394にその位置が指定された特定のノード上でアクセスされる。これに対して、dev_globalクラスまたはdev_nodespecificクラスの装置は、要求側アプリケーションのローカル・ノード上でアクセスされる。DCS360は、オープンすべき装置の位置を判定した後、要求された装置が属する装置クラスを管理し、要求されたオブジェクトを備えるノードに対してローカルなDSO290の参照(DSO_ref)をPxFSクライアント246に返す(8−10)。この例では、要求された装置106−2がdev_enumerateクラスの装置であり、ノード202−3上に存在すると仮定した場合、DSO_refはノード202−3上のDSO_enumオブジェクト292に返される。
【0076】
PxFSクライアント246は、メッセージ(8−10)を受信した後、装置106−2に関するget_device_fobj要求を、参照されたDSO292(8−11)に発行する。これに応答して、DSO292はcreate_specvp()メッセージ(8−12)を発行し、ノード202−3上のSpecFS410に装置106−2のsノードを作成し返す(8−13)ように要求する。DSO292は次いで、PxFSサーバ248−2にsノードのf_obj参照を要求し(8−14a)、PxFSサーバ248−2は、要求されたf_objを返す(8−14b)。DSO292は次いで、sノードのfobj参照をPxFSクライアント246に返す(8−15)。クライアント246は次いで、このfobjに関するオープン要求(8−16)を発行し、この要求がPxFSサーバ248−2を介してSpecFS410へ送られる(8−17)。
【0077】
SpecFS410は次いで、装置106−2をオープンすることを試みる。オープン動作の結果に応じて、SpecFS410は成功と失敗のどちらかを示す状況メッセージ(8−18)を返す。オープンが成功した場合、状況メッセージ(8−18)が、オープンされたsノード432の参照も含む。PxFSサーバ248−2は、状況メッセージ(8−18)内の「成功」を受信した後、オープンされたv_node252−2に関するf_obj250−2を作成し、PxFSクライアント246に返す(8−19)。PxFSクライアント246は、ノードを介してf_obj250−2にリンクされたpx_vnode256−2を作成する。装置オープン動作の最後のステップとして、PxFSクライアントはpx_vnode256−2をカーネル242に返し(8−20)、カーネル242が、対応するユーザ空間ファイル記述子(fd)434を作成する。カーネル242はこのファイル記述子をアプリケーション150−1に返し(8−21)、次いでアプリケーション150−1は、ファイル記述子434を使用して装置106−2と直接(すなわち、カーネル242、PxFSクライアント246、px_nodeを介して)対話することができる。
【0078】
いくつかの特定の実施形態を参照して本発明について説明したが、この説明は本発明を例示するものであり、本発明を制限するものと解釈すべきではない。当業者には、添付の特許請求の範囲で定義される本発明の真の趣旨および範囲から逸脱せずに様々な修正が構想されよう。
【図面の簡単な説明】
【図1】単一のコンピュータ上の装置へのアクセスを可能にするために使用される構成要素を示す従来技術のコンピュータ・システムのブロック図である。
【図2】従来技術におけるアプリケーションとオペレーティング・システム・カーネルとファイル・システムと装置との間の関係を示すブロック図(A)と従来技術における装置論理名と物理名とファイル・システムと装置タイプ識別子(dev_t)と装置との間の関係を示すブロック図(B)である。
【図3】従来技術で使用される装置情報ツリー(DevInfo Tree)に整合する例示的な装置情報ツリーの図である。
【図4】アプリケーション150の要求に応じて装置をオープンする際に従来技術のコンピュータ・システム100のメモリ104で実行される動作の流れ図である。
【図5】本発明を実施することのできるコンピュータ・クラスタのブロック図である。
【図6】図5のクラスタの代表的なノード202および204で実施された本発明を構成するメモリ・プログラムおよびデータ構造のブロック図である。
【図7A】装置ドライバ・インタフェース(DDI)フレームワークおよび装置構成システム(DCS)が、ノード202に接続中の装置の適切なdev_t値、論理名、物理名を規定する動作を示す流れ図である。
【図7B】本発明によって規定されたローカル・マイナー名/番号と物理名と論理名との間の関係を示す図である。
【図8A】ノード202−3上に存在する装置にアクセス(オープン)するためにノード202−1上で実行されているアプリケーション150からの要求に応答して本発明によって実行される各ステップを示す流れ図である。
【図8B】ノード202−3上に存在する装置にアクセス(オープン)するためにノード202−1上で実行されているアプリケーション150からの要求に応答して本発明によって実行される各ステップを示す流れ図である。
【符号の説明】
150 アプリケーション
200 クラスタ
201 クラスタ
202 ノード
204 ノード
206 グローバル・ファイル・システム
208 装置構成システム
240 オペレーティング・システム(OS)ルーチン/オブジェクト
242 カーネル
244 プロキシ・ファイル・システム(PxFS)
250 ファイル・オブジェクト
252 仮想ファイル・ノード
254 特殊ファイル・ノード
256 プロキシvノード
258 特殊ファイル・システム
270 装置ドライバ・フレームワーク(DDI)
272 接続メソッド
274 リンク・ジェネレータ
280 装置ドライバ

Claims (19)

  1. 物理装置が接続されている複数のノードを含むクラスタ上の物理装置をグローバルに可視的にするシステムであって、
    クラスタ上で実行するグローバル・ファイル・システムと、
    それぞれが物理装置の対応するサブセットを管理するものであって、それぞれがグローバルに一意のメジャー番号に関連づけられている複数の装置ドライバと、
    各装置に対して、その装置がどのノードからもアクセスされるように、少なくとも1つのグローバルに一意の識別子を確立するよう構成された装置レジストラと
    を備え、
    そのグローバルに一意の識別子が、
    クラスタのユーザが装置を識別するグローバルに一意の論理名と、そして
    グローバル・ファイル・システムが装置を識別するグローバルに一意の物理名と
    を含み
    グローバルに一意の物理名が、
    装置を管理するために使用される装置ドライバに対応する第1の部分と、そして
    装置を管理するために使用される装置ドライバに関してグローバルに一意であるマイナー名に対応する第2の部分と
    を含み、
    それぞれの装置の論理名と物理名との間の1対1のマッピングが装置レジストラによって確立される、
    システム。
  2. さらに、
    前記装置レジストラによって維持され、クラスタ内の装置の物理的関連を表す装置情報(dev_info)データ構造であって、その各物理的関連は、前記グローバル・ファイル・システムによって維持されている装置ファイルの物理名に対応している、装置情報(dev_info)データ構造を備え、
    前記装置レジストラが、
    接続された装置に対してグローバルに一意の装置タイプ(dev_t)値を決定し、
    dev_infoデータ構造内にエントリを作成するとともに、接続された装置に対する対応する物理名を作成し、
    接続した装置に対して、dev_t値に基づく論理名と対応する物理名を作成し、
    接続された装置のdev_t値を、接続された装置を表す装置ファイルに関連付ける、
    ように構成されている請求項1に記載のシステム。
  3. 前記dev_infoデータ構造が、クラスタ内の装置の物理的関連を表すdev_infoツリーを含み、ルート・ノードとツリーのリーフ・ノードが、グローバル・ファイル・システムによって維持されている装置の一つを表す、装置のグローバルな一意の物理名に対応している請求項2記載のシステム。
  4. それぞれのノードが装置レジストラの少なくとも一部とdev_infoデータ構造とのホストとなる請求項2記載のシステム。
  5. 各前記装置ドライバが、ローカル・マイナー番号を管理する各接続されたローカル装置に割り当てられ、
    前記装置レジストラは、前記装置ドライバによって装置の特定の一つに割り当てられたローカル・マイナー番号がグローバルに一意であるかどうかを判定し、そのローカル・マイナー番号がグローバルに一意でないときそのローカル・マイナー番号をグローバル・マイナー番号に変換し、さらに、特定の装置に対応する装置ドライバに対してはメジャー番号を用い、特定の装置に対してはグローバル・マイナー番号を用いて特定の装置のためのグローバルに一意のdev_t値を生成するように構成された装置ドライバ・インタフェース(DDI)を備えている、
    請求項に記載のシステム。
  6. 前記装置レジストラは、
    グローバルに一意のdev_t値をグローバルに一意の物理名にマッピングするように構成された装置ドライバインターフェースと、
    グローバルに一意の物理名をグローバルに一意の論理名にマッピングするように構成されたリンク生成器と
    を備えている請求項2記載のシステム。
  7. 装置が所定の装置クラスに分類され、これらのクラスが次のうちの少なくとも1つ、すなわち、
    個別に列挙されているノード上の特定のドライバによって管理される、少なくとも1回のオカレンスを有する装置を指定する「dev_enumerate」と、
    ローカルにアクセスされ、各ノード上の管理側装置ドライバと1対1の関係を有する、各ノード上で使用できる装置を指定する「dev_nodespecific」と、
    そのようなノード上の装置ドライバによってアクセスできる装置を指定する「dev_global」と、
    特定のノード上のドライバからアクセスされ、装置ドライバと1対1の関係を有する、「dev_nodebound」と
    のうち少なくとも1つを含んでいる請求項に記載のシステム。
  8. クラスタ内の各装置に対して、装置を管理する装置ドライバのメジャー番号と、ローカル・マイナー番号と、グローバル・マイナー番号と、装置のホストとなるノードのidとを含んでいる永続的な装置構成システム(DCS)データベースを維持する、クラスタ・ノードの1つでホストとなる装置構成システム(DCS)をさらに備えており、
    DCSとDCSデータベースへの要求によって、DDIがグローバルに一意の識別子を生成する請求項に記載のシステム。
  9. DCSがdev_enumerateタイプの各装置に対して、同じドライバに関連する全ての装置インスタンスのための、それぞれのグローバルに一意のグローバル・マイナー番号を生成するように構成され、
    特定のノードと関係されていないそれぞれの一意のグローバル・マイナー番号に関連させられているdev_enumerateタイプの各装置に対して、DCSが、第1DCSデータベース記録と、ノードの番号のいくつかに対応する複数の第2DCSデータベース記録を生成するように構成されており、各第2DCSデータベース記録はそれぞれの一意のグローバル・マイナー番号に関連しており、第1DCSデータベース記録によってユーザがdev_enumerateタイプ装置にローカルにアクセスでき、第2DCSデータベース記録によってユーザがあらゆるノードのdev_enumerateタイプ装置にアクセスできるようになっている請求項記載のシステム。
  10. 装置クラスのそれぞれ用の1つのDSOをさらに備え、それぞれのDSOを用いて、それぞれの装置クラスの装置インスタンスにグローバル・マイナー番号を割当て、DCSがグルーバル・マイナー番号を割り当てるためにDSOを使用するように構成されている請求項記載のシステム。
  11. 関連づけられた物理装置を有する少なくとも1つのサブセットの複数のクラスタ・ノードの各ノードにおける使用のためのコンピュータ・プログラム製品であって、
    それぞれが物理装置の対応するサブセットを管理するものであって、それぞれがグローバルに一意のメジャー番号に関連づけられている複数の装置ドライバと、そして
    各装置に対して、その装置がどのノードからでもアクセスされるようにする、少なくとも一つのグローバルに一意の識別子を確立するように構成された装置レジストラと
    を備え、
    そのグローバルに一意の識別子が、
    クラスタのユーザが装置を識別するグローバルに一意の論理名と、そして
    グローバル・ファイル・システムが装置を識別するグローバルに一意の物理名と
    を含み、
    グローバルに一意の物理名が、
    装置を管理するために使用される装置ドライバに対応する第1の部分と、そして
    装置を管理するために使用される装置ドライバに関してグローバルに一意であるマイナー名に対応する第2の部分と
    を含み、
    それぞれの装置の論理名と物理名との間の1対1のマッピングが装置レジストラによって確立される、
    コンピュータ・プログラム製品。
  12. さらに、
    前記装置レジストラによって維持され、クラスタ内の装置の物理的関連を表す装置情報(dev_info)データ構造であって、その各物理的関連は、前記グルーバル・ファイル・システムによって維持されている装置ファイルの物理名に対応している、装置情報(dev_info)データ構造を備え、
    前記装置レジストラが、
    接続された装置に対してグローバルに一意の装置タイプ(dev_t)値を決定し、
    dev_infoデータ構造内にエントリを作成するとともに、接続された装置に対する対応する物理名を作成し、
    接続した装置に対して、dev_t値に基づく論理名と対応する物理名を作成し、
    接続された装置のdev_t値を、接続された装置を表す装置ファイルに関連付ける
    ように構成されている請求項11に記載のコンピュータ・プログラム製品。
  13. 前記dev_infoデータ構造が、クラスタ内の装置の物理的関連を表すdev_infoツリーを含み、ルート・ノードとツリーのリーフ・ノードが、グルーバル・ファイル・システムによって維持されている装置の一つを表す、装置のグローバルな一意の物理名に対応している請求項12記載のコンピュータ・プログラム製品。
  14. それぞれのノードが装置レジストラの少なくとも一部とdev_infoデータ構造とのホストとなる請求項12記載のコンピュータ・プログラム製品。
  15. 各前記装置ドライバが、ローカル・マイナー番号を管理する各接続されたローカル装置に割り当てられ、
    前記装置レジストラは、前記装置ドライバによって装置の特定の一つに割り当てられたローカル・マイナー番号がグローバルに一意であるかどうかを判定し、そのローカル・マイナー番号がグローバルに一意でないときそのローカル・マイナー番号をグローバル・マイナー番号に変換し、さらに、特定の装置に対応する装置ドライバに対してはメジャー番号を用い、特定の装置に対してはグローバルマイナー番号を用いて特定の装置のためのグローバルに一意のdev_t値を生成するように構成された装置ドライバ・インタフェース(DDI)を備えている請求項14に記載のコンピュータ・プログラム製品。
  16. 前記装置レジストラは、
    グローバルに一意のdev_t値をグローバルに一意の物理名にマッピングするように構成された装置ドライバインターフェースと、
    グローバルに一意の物理名をグローバルに一意の論理名にマッピングするように構成されたリンク生成器と備えている請求項12記載のコンピュータ・プログラム製品。
  17. 装置が所定の装置クラスに分類され、これらのクラスが次のうちの少なくとも1つ、すなわち、
    個別に列挙されているノード上の特定のドライバによって管理される、少なくとも1回のオカレンスを有する装置を指定する「dev_enumerate」と、
    ローカルにアクセスされ、各ノード上の管理側装置ドライバと1対1の関係を有する、各ノード上で使用できる装置を指定する「dev_nodespecific」と、
    そのようなノード上の装置ドライバによってアクセスできる装置を指定する「dev_global」と、
    特定のノード上のドライバからアクセスされ、装置ドライバと1対1の関係を有する、「dev_nodebound」と
    のうち少なくとも1つを含んでいる請求項16に記載のコンピュータ・プログラム製品。
  18. クラスタ内の各装置に対して、装置を管理する装置ドライバのメジャー番号と、ローカル・マイナー番号と、グローバル・マイナー番号と、装置のホストとなるノードのidとを含んでいる永続的な装置構成システム(DCS)データベースを維持する、クラスタ・ノードの1つでホストとなる装置構成システム(DCS)をさらに備えており、
    DCSとDCSデータベースへの要求によって、DDIがグローバルに一意の識別子を生成する請求項17に記載のコンピュータ・プログラム製品。
  19. DCSがdev_enumerateタイプの各装置に対して、同じドライバに関連する全ての装置インスタンスのための、それぞれのグローバルに一意のグローバル・マイナー番号を生成するように構成され、
    特定のノードと関係されていないそれぞれの一意のグローバル・マイナー番号に関連させられているdev_enumerateタイプの各装置に対して、DCSが、第1DCSデータベース記録と、ノードの番号のいくつかに対応する複数の第2DCSデータベース記録を生成するように構成されており、各第2DCSデータベース記録はそれぞれの一意のグローバル・マイナー番号に関連しており、第1DCSデータベース記録によってユーザがdev_enumerateタイプ装置にローカルにアクセスでき、第2DCSデータベース記録によってユーザがあらゆるノードのdev_enumerateタイプ装置にアクセスできるようになっている請求項18記載のコンピュータ・プログラム製品。
JP18533198A 1997-06-30 1998-06-30 グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法 Expired - Lifetime JP4119971B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/885,149 US6047332A (en) 1997-06-30 1997-06-30 Global file system-based system and method for rendering devices on a cluster globally visible
US08/885149 1997-06-30

Publications (3)

Publication Number Publication Date
JPH11120117A JPH11120117A (ja) 1999-04-30
JPH11120117A5 JPH11120117A5 (ja) 2005-10-20
JP4119971B2 true JP4119971B2 (ja) 2008-07-16

Family

ID=25386259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18533198A Expired - Lifetime JP4119971B2 (ja) 1997-06-30 1998-06-30 グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法

Country Status (4)

Country Link
US (1) US6047332A (ja)
EP (1) EP0889422A3 (ja)
JP (1) JP4119971B2 (ja)
CA (1) CA2242006A1 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SK102399A3 (en) * 1997-01-13 2000-01-18 John Overton Automated system for image archiving
US6128617A (en) * 1997-11-24 2000-10-03 Lowry Software, Incorporated Data display software with actions and links integrated with information
US6256031B1 (en) * 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US7103640B1 (en) * 1999-09-14 2006-09-05 Econnectix, Llc Network distributed tracking wire transfer protocol
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US7152116B1 (en) * 1998-08-24 2006-12-19 National Instruments Corporation System and method for automatically creating URLs for accessing data sources and data targets
US6553421B1 (en) * 1998-09-15 2003-04-22 International Business Machines Corporation Method and system for broadcast management in a data communication network that permits namesharing
US6526448B1 (en) * 1998-12-22 2003-02-25 At&T Corp. Pseudo proxy server providing instant overflow capacity to computer networks
US6327703B1 (en) * 1999-02-26 2001-12-04 Advanced Micro Devices, Inc. Variable symbolic links for a file in UNIX operating system
US6564252B1 (en) * 1999-03-11 2003-05-13 Microsoft Corporation Scalable storage system with unique client assignment to storage server partitions
US6832379B1 (en) * 1999-08-17 2004-12-14 Emc Corporation Computer architecture utilizing layered device drivers
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6567841B1 (en) * 1999-09-28 2003-05-20 International Business Machines Corporation Method and apparatus for creating and identifying logical partition clusters
US6598069B1 (en) * 1999-09-28 2003-07-22 International Business Machines Corporation Method and apparatus for assigning resources to logical partition clusters
US7016973B1 (en) * 1999-11-19 2006-03-21 At&T Corp. Apparatus and methods for providing translucent proxies in a communications network
GB0004010D0 (en) * 2000-02-22 2000-04-12 Ibm Naming convention fjor different types of device and apparatus and methods using the naming convention
US6973473B1 (en) 2000-05-31 2005-12-06 International Business Machines Corporation Method, system and program products for managing identifiers of components of a clustered environment
US20080005275A1 (en) * 2000-06-02 2008-01-03 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US6813686B1 (en) * 2000-06-27 2004-11-02 Emc Corporation Method and apparatus for identifying logical volumes in multiple element computer storage domains
US7106465B1 (en) * 2000-11-01 2006-09-12 Hewlett-Packard Development Company, L.P. Method and apparatus for providing print job status
US8010558B2 (en) 2001-06-05 2011-08-30 Silicon Graphics International Relocation of metadata server with outstanding DMAPI requests
US20040139125A1 (en) 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US7617292B2 (en) 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US6782464B2 (en) * 2001-07-17 2004-08-24 International Business Machines Corporation Mapping a logical address to a plurality on non-logical addresses
US6990602B1 (en) * 2001-08-23 2006-01-24 Unisys Corporation Method for diagnosing hardware configuration in a clustered system
US8108499B2 (en) * 2001-09-12 2012-01-31 Alcatel Societe Anonyme Name registrar system and method
EP1316898A3 (de) * 2001-11-28 2004-11-10 Siemens Aktiengesellschaft Einfache und sichere Methode zum Sperren von Datensätzen aus CGI-Scripten heraus
JP3862588B2 (ja) * 2002-04-11 2006-12-27 キヤノン株式会社 通信装置及びその制御方法
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7069354B2 (en) * 2002-10-01 2006-06-27 Hewlett-Packard Development Company, L.P. Method and apparatus for identifying multiple paths to a SCSI device using a calculated unique identifier
US6934711B2 (en) * 2002-10-01 2005-08-23 Hewlett-Packard Development Company, L.P. Method and arrangement for communicating with SCSI devices
US8041735B1 (en) * 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7689715B1 (en) * 2002-12-20 2010-03-30 Symantec Operating Corporation Method and system for implementing a global name space service
US7203774B1 (en) * 2003-05-29 2007-04-10 Sun Microsystems, Inc. Bus specific device enumeration system and method
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US20050033829A1 (en) * 2003-08-04 2005-02-10 Nokia Corporation System and method for wireless multicast downloading
US7103823B2 (en) 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US7552433B2 (en) * 2003-11-12 2009-06-23 Hewlett-Packard Development Company, L.P. Non-platform-specific unique indentifier generation
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7392295B2 (en) 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US20050234961A1 (en) * 2004-04-16 2005-10-20 Pinnacle Systems, Inc. Systems and Methods for providing a proxy for a shared file system
EP1691522A1 (en) * 2005-02-11 2006-08-16 Thomson Licensing Content distribution control on a per cluster of devices basis
JP4698316B2 (ja) * 2005-07-15 2011-06-08 株式会社日立製作所 アクセスパス管理方法及びプログラム
US7688794B2 (en) * 2005-12-13 2010-03-30 Xerox Corporation System and method for diverting a printing job to a proximal networked device
US7839523B2 (en) * 2005-12-13 2010-11-23 Xerox Corporation System and method for resolving a hardware identifier to a network address of networked device
US7584182B2 (en) * 2005-12-19 2009-09-01 Microsoft Corporation Determining cardinality of a parameter using hash values
FR2902954B1 (fr) * 2006-06-21 2008-10-17 Netasq Sa Systeme et procede de stockage d'un inventaire des systemes et/ou services presents sur un reseau de communication
US8280908B2 (en) * 2006-06-30 2012-10-02 Microsoft Corporation Merging file system directories
US8650342B2 (en) * 2006-10-23 2014-02-11 Dell Products L.P. System and method for distributed address translation in virtualized information handling systems
CN101803299B (zh) * 2007-09-20 2014-01-29 爱立信电话股份有限公司 通信网络中的策略路由
US8966465B2 (en) * 2008-02-12 2015-02-24 Oracle International Corporation Customization creation and update for multi-layer XML customization
US8799319B2 (en) 2008-09-19 2014-08-05 Oracle International Corporation System and method for meta-data driven, semi-automated generation of web services based on existing applications
US8996658B2 (en) * 2008-09-03 2015-03-31 Oracle International Corporation System and method for integration of browser-based thin client applications within desktop rich client architecture
US9122520B2 (en) 2008-09-17 2015-09-01 Oracle International Corporation Generic wait service: pausing a BPEL process
US8788465B2 (en) 2010-12-01 2014-07-22 International Business Machines Corporation Notification of configuration updates 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
US9069571B2 (en) 2010-12-01 2015-06-30 International Business Machines Corporation Propagation of unique device names in a cluster system
WO2012094330A1 (en) 2011-01-03 2012-07-12 Planetary Data LLC Community internet drive
US10108630B2 (en) 2011-04-07 2018-10-23 Microsoft Technology Licensing, Llc Cluster unique identifier
US8954942B2 (en) 2011-09-30 2015-02-10 Oracle International Corporation Optimizations using a BPEL compiler
US9621644B2 (en) 2013-09-16 2017-04-11 Axis Ab Joining a distributed database
US9183148B2 (en) 2013-12-12 2015-11-10 International Business Machines Corporation Efficient distributed cache consistency
CN116339634A (zh) * 2023-03-29 2023-06-27 联想(北京)有限公司 控制方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
EP0584909A1 (en) * 1992-08-26 1994-03-02 Sun Microsystems, Inc. Self configuring device system
EP0592080A2 (en) * 1992-09-24 1994-04-13 International Business Machines Corporation Method and apparatus for interprocess communication in a multicomputer system
US5557775A (en) * 1994-02-23 1996-09-17 International Business Machines Corporation Expert system for designing computer networks
US5642511A (en) * 1994-12-16 1997-06-24 International Business Machines Corporation System and method for providing a visual application builder framework

Also Published As

Publication number Publication date
EP0889422A3 (en) 2002-04-24
JPH11120117A (ja) 1999-04-30
CA2242006A1 (en) 1998-12-30
US6047332A (en) 2000-04-04
EP0889422A2 (en) 1999-01-07

Similar Documents

Publication Publication Date Title
JP4119971B2 (ja) グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法
US6163806A (en) System and method for transparent, global access to physical devices on a computer cluster
US6314460B1 (en) Method and apparatus for analyzing a storage network based on incomplete information from multiple respective controllers
JP2986075B2 (ja) ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム
US6253240B1 (en) Method for producing a coherent view of storage network by a storage network manager using data storage device configuration obtained from data storage devices
US6289375B1 (en) Method and apparatus for invoking network agent functions using a hash table
EP1039380B1 (en) Method for exchanging data between a Java System Database and a LDAP directory
US6757893B1 (en) Version control system for software code
US6732166B1 (en) Method of distributed resource management of I/O devices in a network cluster
US5465365A (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US5689701A (en) System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US7203774B1 (en) Bus specific device enumeration system and method
US6658461B1 (en) Method of, system for, and computer program product for providing a user interface for configuring connections between a local workstation file system and a remote host file system
JPH0683649A (ja) 共通エージェント・コンピュータ管理システムと方法
EP1460565A1 (en) Method and system for uniformly accessing multiple directory services
US7945751B2 (en) Disk image inheritance
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
JP2000067022A (ja) コンピュ―タ・ネットワ―ク内でコンフィギュレ―ション・デ―タを交換するためのプロトコル
US8412901B2 (en) Making automated use of data volume copy service targets
JP2004046661A (ja) 複数ネットワークストレージの仮送想一元化方法及び装置
CN112204544B (zh) 动态分布式数据聚类
JP2002182970A (ja) オブジェクト統合管理システム
US6275860B1 (en) Method and apparatus for synchronizing function values in a multiple protocol system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 19980929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080403

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

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080206

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

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120509

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130509

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130509

Year of fee payment: 5

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