JP3965052B2 - 記憶ユニットへのアクセスを管理するシステム及びその方法 - Google Patents

記憶ユニットへのアクセスを管理するシステム及びその方法 Download PDF

Info

Publication number
JP3965052B2
JP3965052B2 JP2001579114A JP2001579114A JP3965052B2 JP 3965052 B2 JP3965052 B2 JP 3965052B2 JP 2001579114 A JP2001579114 A JP 2001579114A JP 2001579114 A JP2001579114 A JP 2001579114A JP 3965052 B2 JP3965052 B2 JP 3965052B2
Authority
JP
Japan
Prior art keywords
node
programmable
data structure
computer
storage units
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
JP2001579114A
Other languages
English (en)
Other versions
JP2003532193A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003532193A publication Critical patent/JP2003532193A/ja
Application granted granted Critical
Publication of JP3965052B2 publication Critical patent/JP3965052B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mechanical Pencils And Projecting And Retracting Systems Therefor, And Multi-System Writing Instruments (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Image Generation (AREA)

Description

【0001】
(技術分野)
本発明は、一般に、装置へのアクセスを制御することに関し、より詳細には、ホストシステムに動作可能に接続された1または複数の装置へのホストシステムによるアクセスをプログラムで管理するシステムおよび方法に関する。
【0002】
(背景技術)
競争力を維持し、技術的な変更に対処するために、コンピュータシステムは、益々強力に、さらに複雑化している。この主な誘因は、大規模なデータベースの応用、およびよりデータ集約的な応用である。システムが複雑さを増すにつれて、改良されたデータ記憶と通信機能に対する需要も高まってきた。コンピュータのアーキテクチャは、従来、記憶装置が取り付けられているホストコンピュータまたはノードによって、記憶装置が「所有される」という原則に基づいていた。最近では、コンピュータのアーキテクチャのモデルは、より多くの知能をデータ記憶装置およびチャネルに移動して、データ伝送および記憶を容易にする。
【0003】
チャネルとネットワークは、典型的には、プロセッサ間およびプロセッサと周辺装置との間で使用されるデータ通信トポロジの2つの基本的な種類である。「チャネル」は、通信装置間に直接またはスイッチされたポイント・ポイント接続を実現する。このチャネルの主なタスクは、最も遅延を少なくして可能な限り最高のデータ転送率でデータを転送することである。チャネルは、典型的には、ハードウェアで簡単なエラー訂正を実行する。「ネットワーク」は、対照的に、ノード間の対話をサポートする固有のプロトコルを有する分散したノード(例えば、ワークステーション、大容量記憶装置など)の集合体である。典型的には、各ノードは、伝送媒体を争奪し、ネットワーク上のエラー状態を認知することができなければならず、そのエラー状態から復帰するために必要とされるエラー管理を提供する必要がある。
【0004】
通信相互接続の複合タイプは、ファイバチャネルであり、チャネルとネットワーク技術の両方の利点を結合することを試みる。ファイバチャネルプロトコルは、American National Standard for Information Systems(ANSI)の下で開発され、採用されている。換言すれば、ファイバチャネルは、ワークステーション、スーパーコンピュータ、および様々な周辺装置間での並行した通信を可能にする交換プロトコルである。ファイバチャネルによって提供される全体的なネットワーク帯域幅は、およそ秒速1テラビットになる場合がある。ファイバチャネルは、双方向同時に秒速1ギガビット超の速度でフレームを伝送することができる。光ファイバおよび銅ケーブルの両方を介して、IP(Internet Protocol)、SCSI(Small Computer System Interface)、HIPPI(High Performance Parallel Interface)、およびIPI(Intelligent Peripheral Interface)などの既存のプロトコルに従って、コマンドおよびデータを転送することもできる。
【0005】
ファイバチャネルの発展および標準化は、データ記憶に関して重大な影響を有している。ファイバチャネルは、他の従来型データ記憶トポロジよりも、より高速のアクセスと、さらに遠距離(例えば、10km超)のアクセスとを可能にする。ファイバチャネルによって装置間の距離をさらに延長することができるので、記憶装置を遠隔に配置することによって、災害復帰状況において利点を有する。ファイバチャネルが重大な関心をよせるある特定のデータ記憶のアリーナ(arena)は、共有記憶システムであり、複数のホストが関連付けられた記憶装置のネットワークに対するアクセスを共有することができる記憶領域ネットワーク(SAN:Storage Area Network)などである。
【0006】
典型的なSANアーキテクチャは、複数の記憶システムと論理的に分離されたネットワークから構成されている。記憶システムは、ディスク、テープなどの事実上いかなるタイプの記憶装置も含むことができる。ネットワーク部分は、アダプタ、配線、ブリッジ、ハブ、スイッチ、およびディレクタ(directors)を含む。換言すれば、アダプタは、サーバおよび周辺装置をネットワークの配線(例えば、光ファイバまたは他の配線)に取り付ける。ブリッジは、例えば、SCSIからファイバチャネルへ、一方のプロトコルから他方のプロトコルに変換する。ハブ、スイッチ、およびディレクタは、典型的なSANデータバスに中央接続点とルーティング機能を提供する。SAN環境によって、複数の記憶装置は、複数のホストマシンによってアクセスすることができる共有記憶プールとみなすことができる。複数の装置が、同時に所与の記憶装置に対するアクセスを要求する場合があるので、SANの記憶装置に対するアクセスを管理する際に問題が発生する場合がある。
【0007】
ハードウェアベースのスイッチングアーキテクチャは、SANに接続された記憶装置に対するアクセスを選択的に制御することを提案してきた。例えば、ファイバチャネルスイッチを、SANにおける個々のファイバチャネルノードの機能を制限するゾーンを生成し、相互に、および関連付けられた記憶装置と通信するのに使用する。複数の記憶装置が論理ユニットのアレイ(例えば、キャビネット内)として構成されている記憶装置のアーキテクチャでは、別の手法でハードウェアベースのLUNマスキングを実施する。LUNマスキングでは、スイッチが使用され、通常SANにおいて、ホストマシンと関連付けられた記憶装置に対応する選択された論理ユニットとの間のアクセスを制御する。例えば、ファイバチャネルスイッチは、特定のコマンドがどのファイバチャネルノードおよびどの論理ユニット番号を対象とするかを決定し、論理ユニット番号レベルでマスキングを実行する。
【0008】
しかしながら、ハードウェアのスイッチを制御するために使用するインタフェースに関して不十分な標準しか開発されていないので、大部分のシステムではLUNマスキングを有効に実施することは困難な場合がある。具体的には、各記憶装置およびホストマシンの管理インタフェースは、通常、製造業者によって異なる。従って、システムが異なる製造業者による記憶装置および/またはホストマシンを備えているとき、異なるインタフェースが、要求される。さらに、ハードウェア自体(例えば、スイッチおよびキャビネット)は、それらを共有記憶用に使用することを要求する、小規模な組織にとっては、法外に高価な場合がしばしばある。同様に、SANシステムに接続されている様々なホストマシンが、様々なオペレーティングシステムを使用する場合には、様々なマシンが同じ記憶装置(または論理ユニット)に同時にアクセスを試みると問題が発生する場合がある。加えて、複数のホストが同じ記憶装置に接続されている場合、各ホストによる装置の定期的な監視によるなど、ファイルシステムが破損する確率が高まる。
【0009】
(発明の開示)
本発明は、ノードと、記憶ユニットなどの1または複数の関連付けられた装置との間のアクセスを、プログラムで管理するシステムおよび方法に関する。ノードに1または複数のデータ構造をプログラムして、関連付けられた装置がノードの範囲内にあるか否かを示すことができる。ノードの範囲は、ノードのデータ構造に基づいて決定されるが、これはデータ構造をプログラムで修正することによって動的に変更することができる。
【0010】
本発明の一態様によれば、ノードに取り付けられた装置を特定するためにインタフェースが使用される。例えばノードは、ノードに取り付けられた装置を示す第1のデータ構造を有する。ノードは、関連付けられた装置がノードに関係して隠蔽されるか露出されるかを示す第2のデータ構造も有する。例えば、第2のデータ構造は、どの装置がノードの範囲内にあるかを示す包含リストの形式であっても、および/またはどの特定された装置がノードの範囲内にないかを示す排他リストであってもよい。プログラムされたインタフェースを使用して、選択された方法で第2のデータ構造を修正することができる。従って、選択され取り付けられた装置は、動的にノードの範囲に入れ、および/または出すことができる。共有記憶システムでは、インタフェースは、共有記憶装置の管理を単純化し、装置の競合を軽減する。本発明によって構成されているノードのブートタイムを低減することができる。オペレーティングシステムは、ノードの第2のデータ構造に基づいて関連付けられた装置へのアクセスと実装とを必要とするからである。
【0011】
本発明の別の態様によれば、ノード上の1または複数のコントローラを、複数のターゲット記憶ユニットを有する共有記憶システムに動作可能に結合することができる。各コントローラは、プログラム可能なデータ構造を使用し、これは、コントローラに対して機能的に露出または隠蔽されるべきノードに動作可能に取り付けられた、関連付けられた装置を規定する。データ構造は、永続的および/または一時的な構成要素を含むことができる。一時的および/または永続的構成要素を、所定の方法で使用されるインタフェースによって修正することができる。装置オブジェクトは、コントローラのデータ構造によって規定されるように、関連付けられた装置ごとにコントローラで生成される。各装置オブジェクトは、クラスドライバなどの高レベルのオブジェクトにリンクされ、コントローラからのコマンドに応じて関連付けられた装置の動作を制御する。
【0012】
本発明の別の態様によれば、関連付けられた装置に対する装置オブジェクトは、ノードのデータ構造に対する変更に基づいて、動的に削除(または追加)される。例えば、装置オブジェクトが削除されると、高レベルの装置オブジェクト(例えば、クラスドライバ)は、各々の装置オブジェクトに対してロードされず、対応する装置は、最早ノードの範囲内にはない。従って、従来型の通信機構(例えば、読み取りおよび/または書き込みコマンド)は、装置と通信することが禁止される。しかしながら、第2のノードに対する装置オブジェクトを、関連付けられた装置に対して生成し(例えば、第2のノードのデータ構造をプログラムで修正することによって)、第2のノードと関連付けられた装置との間に通信チャネルを確立することができる。この方法で、本発明の一態様を使用して、1組の相互接続されたノード間で装置をプログラムでスワップすることを容易にすることができる。
【0013】
本発明のさらに別の態様によれば、装置オブジェクトと関連付けられた装置の高レベルの装置オブジェクトとの間のリンクは、関連付けられた装置がノードのデータ構造によって特定されるか否かによって動的に切断または追加することができる。装置オブジェクトと高レベルの装置オブジェクトとの間のリンクが切断されるとき、関連付けられた装置は、最早ノードの範囲内にはなく、関連付けられた装置へのノードによるアクセスはブロックされる。新しい高レベルの装置オブジェクトを生成し、装置オブジェクトにリンクして、ノードのデータ構造のプログラムによる変更に応じるなどして、ノードに対して関連付けられた装置を露出することができる。
【0014】
(本発明を実行するためのモード)
本発明は、ノードと、記憶の機能単位などの1または複数の関連付けられた装置との間のアクセスをプログラムで管理するシステムおよび方法に関する。1または複数のデータ構造を、ノードにプログラムして、関連付けられた装置がノードの範囲内にあるか否かを特定することができる。ノードの範囲は、各関連付けられた装置がノードに関連して機能的に露出されているか隠蔽されているかを規定する。ノードの範囲を、本発明の一態様にかかるデータ構造をプログラムで修正することによって動的に変更することができる。
【0015】
図1は、本発明にかかるマスキングを実施するようにプログラムすることができるシステム10の簡略化されたブロック図である。システムは、バス14を介して複数の装置16、18、20および22に動作可能に結合されるノード12を含む。ノードは、クライアントマシン、ワークステーション、サーバ、または他のマシンなどのコンピュータである。装置16、18、20、および22は、ノード12と関連して使用することのできる記憶の機能単位(例えば、ハードディスクドライブ、CD−ROM、DVD、テープ)、または他の周辺装置の形態とすることができる。バス14は、ノード12と記憶装置16、18、20、および22との間でデータ通信を可能にするネットワーク、チャネルまたは他の接続手段の形態とすることができる。
【0016】
本発明の一態様によると、ノード12は、関連付けられたデータ構造を有するコントローラ24を含み、これは、1または複数のプログラム可能なリストなど、ノードによって使用されるマスキングパラメータを決定するための範囲基準を規定する。特に別の方法で記され、または文脈によって異なる解釈が要求されない限り、本明細書および頭記の特許請求の範囲で使用する「マスキング」という用語は、最も広義に解釈されるべきであり、この用語のこのような解釈は、頭記の特許請求の範囲に含まれる点を意図することを理解し認識されたい。例えば、ノードに関する装置を「マスクする」ということは、その装置をノードの範囲内に入れること、およびその装置をノードの範囲から出すことの両方を含むことができる。装置がノード12の範囲内にない場合、装置がノードのソフトウェアの上層に対して隠蔽されているので、ノードと装置との間の通信はブロックされる。対照的に、装置がノード12の範囲内にある場合、ノードは、適切な通信プロトコルを使用して装置にアクセスすることができる。
【0017】
図2a〜2cは、ノード12のオペレーティングシステム(例えば、ドライバスタック)の特徴を表す機能ブロック図であり、これを、ノードとノードに動作可能に結合されている装置(図示せず)との間の通信経路をマスクするようにプログラムし、および/または構成することができる。図2aを参照すると、ノード12は、例えば、SCSIバスアダプタであるホストバスアダプタ28を含む。ホストバスアダプタ28は、関連付けられたバスを介してノード12とノードに動作可能に接続された装置との間の通信経路またはチャネルを管理するように構成されおよび/またはプログラムされたコントローラ30を含む。具体的には、コントローラ30は、バスに接続された装置の装置オブジェクト32a、32b、32c(「装置オブジェクト32」という)を生成する。各装置オブジェクト32は、例えば装置の位置(例えば、論理ユニット番号)と装置の動作特性とを含めて、装置を特定する機能的な装置オブジェクトである。本明細書で使用される装置という用語は、例えば、ハードウェア装置または記憶装置に関連付けられたデータ記憶の論理ユニットなどの装置の機能単位に相当するように、広義に解釈されるよう意図されることを理解されたい。
【0018】
別の高レベルの装置オブジェクト34a、34b、34c(「高レベルの装置オブジェクト34」という)は、各々の装置オブジェクト32a、32b、32cに対してロードされる。各高レベルの装置オブジェクト34a、34b、34cは、36a、36b、36cで示された動作可能なリンクを介して、各々の装置オブジェクトに関連付けられる。高レベルの装置オブジェクト34は、例えば、クラスドライバなどの物理的装置オブジェクトであり、これは、ノード12のコントローラ30の要求に応じて、対応する装置に適切なコマンドを提供しまたは提供されることによって、関連付けられた装置の動作を制御する。高レベルの装置オブジェクト34が関連付けられた装置オブジェクト32にロードされリンクされると、対応する装置は、ノードの範囲内にある(例えば、ノードは、対応する装置にアクセスすることができる)。
【0019】
ノード12、またはより具体的にコントローラ30は、装置とノードとの機能上の関係を示す情報を記憶するデータ構造40を含む。一例として、データ構造40の一態様は、コントローラのバスに動作可能に接続されているすべての装置を特定するデータベースまたはリスト42(以下、「ワールドリスト42」という)に相当する。ワールドリスト42は、本発明に関して、ノード12に関連して機能的に露出および隠蔽される装置を含む。データ構造40の別の一態様は、インスタンス生成される装置オブジェクトを有するすべての装置を特定するデータベースまたはリスト44である。すなわち、オブジェクトのインスタンス生成されたリスト44は、装置オブジェクト32が存在するコントローラ30(または、ノード12)に動作可能に接続されている装置を特定する。
【0020】
データ構造40の第3の態様は、範囲制御データ構造46であり、適切にはノード12に対するマスキング基準の作業マップを記憶しているリスト(以下、「範囲制御リスト46」という)の形式をとる。範囲制御リスト46は、プログラム可能であり、マスキング基準を修正して、システムのブートを必要とせずに、選択された装置を動的にノード12の範囲内に入れおよび/または範囲外に出すようにすることができる。マスキング基準は、例えば、排他リスト、包含リスト、またはその両方を含むことができる。リスト(包含または排他)を、いかなる形式のデータ構造により構成することができる。包含リストは、ノードの範囲内にある装置を規定する(その論理ユニット番号または他の識別特性に従うことにより)。対照的に排他リストは、ノードの範囲内にない装置を特定する。すなわち、排他リストにないすべての装置は、ノードの範囲内にある。従って、排他リストが使用される場合、新しい装置がノード12に動作可能に結合されると、その装置を、例えばPNP(Plug-n-Play)制御を使用して、ノードに対して露出する。マスキング規準を包含リストと排他リストのどちらの形式で提供するかは、一般的に言って設計の選択の問題である。システム構成およびマスキングが実施されているという理由に応じて、それぞれに利点を有するからである。
【0021】
簡約化のため、以下の例は、包含リストの装置がノードの範囲内である包含リストとして範囲制御リスト46を記述する。しかしながら、本明細書に記載の原理は、包含リストと排他リストの両方に同等に適用可能であることを理解されたい。さらに、範囲制御リスト46は、ノードのコントローラ30に動作可能に関連付けられているように記載されているが、他のデータ記憶構成を使用することもできることを理解されたい。例えば、共通の範囲制御データ構造を、ノード12に対して維持し、ノード12に関連してどの装置がマスクされるかを広くグロ示すことができる。別法として、範囲制御リストは、バスごとに別個に維持することもできる。
【0022】
本発明の一態様によれば、2つの種類の包含(および/または排他)リストを、範囲制御リスト46、すなわち永続的包含リスト48と一時的包含リスト50とに動作可能に関連付けることができる。「永続的」および「一時的」という用語は、各々のリストの記憶特性に関する。例えば、一時的包含リストは、システムのリブートまたは対応するコントローラのディスエーブルでは存続しない。例えば、一時的リスト50は、RAMなどのノードの一時的メモリ(例えば、揮発性記憶装置)に記憶され、システムが実行中でありコントローラ30がイネーブルされている限り維持される。永続的包含リスト48は、システムのリブートまたはクラッシュ、並びに電力損失やコントローラ30またはノード12がディスエーブルされたときなど、類似の状況で存続できることが好ましい。例えば、永続的リストは、システムレジストリなどの永続的メモリ(例えば、不揮発性記憶装置)に記憶される。永続的および一時的包含リスト48、50は、各々プログラム可能であり、例えば、管理者または高レベルのサービスが選択されたリストを修正し、その結果ノード12の範囲を動的に変更することができる。いくつかのインタフェース(例えば、API(Application Program Interface))が提供されて、例えば、選択された複数のリストの内容を閲覧し、または選択されたリストの内容をプログラムで変更することができる。
【0023】
一例として、本発明に関して、SET_INCLUSION_LISTインタフェース(またはAPI)などのインタフェース60が提供されて、ノード12に関連する装置のプログラムによるマスキングをイネーブルする。高レベルのアプリケーション(またはサービス)または管理者などのエージェントは、インタフェース60を使用して、包含(および/または排他)リストを修正する。インタフェース60によって、1または複数の装置の対応する識別データが、適切な包含リスト(永続的または一時的)から削除(または追加)される。高レベルのアプリケーションまたはシステム管理者によってインタフェース60に提供された命令は、リストに対する変更の種類および範囲を決定する。
【0024】
特定の装置がノード12の範囲内にあるか否かを制御することに加え、範囲制御リストを完全に削除することが望ましい場合もあり、範囲制御リストに関連付けられたマスキング特性が、システムの動作に影響を与えないようにする(例えば、マスキングがまったく試みられないように)。このような操作を、例えば包含リストに対して実施するためには、CLEAR_INCLUSION_LISTインタフェース70などの適切なインタフェースまたはAPIを提供することができる。管理者(手動で)または高レベルのアプリケーション(開始された操作)は、どの包含リスト(または複数の包含リスト)が削除されるべきかを示すことによってインタフェース70を使用することができる。このインタフェース70の効果は、範囲制御リストの種類に従って決定される。例えば、1つのリストだけが存在し、そのリストがCLEAR_INCLUSION_LISTインタフェースを使用して削除される場合、システムは、例えばシステムで見えるすべての装置を露出することができるデフォルトの動作に戻る。別法として、混合している範囲制御リストがある場合(例えば、包含リストと排他リストの両方がある場合)、システムの動作は、どちらのリストが削除されているかに従って変わる。例えば、包含リストがインタフェースを介して削除される場合、排他リストで特定されたすべての装置は、排除される。排他リストが混合リストから削除される場合、包含リストで特定されるすべてが包含される。ノードの範囲を修正する操作は、例えば、以下に記載の手法の1つによって行われる。すなわち、装置オブジェクト自体を削除または追加することもでき(例えば、図2Bを参照)、または装置オブジェクトと各々のクラスドライバとの間のリンクを切断または作成することができる(例えば、図2Cを参照)。
【0025】
包含(または排他)リストの現在の状態を決定するために、ノード、管理者またはアプリケーションは、GET_INCLUSION_LISTインタフェース80などの別のインタフェースを使用して、現在の包含リスト(一時的および/または永続的)を示す情報を戻すこともできる。GET_INCLUSION_LISTインタフェース80は、あらゆるアプリケーションまたはユーザによって、ノードにおいてアクセスすることができる。
【0026】
別のインタフェースQUERY_ATTACHED_DEVICES90を使用して、コントローラに取り付けられた装置のリストを、各々の装置の識別特性と共に戻すことができる。例えば、SCSI照会に応じた照会データの取り出しに基づくことができ、ノードに関連付けられたあらゆるユーザまたはアプリケーションによって、これにアクセスすることができる。
【0027】
図2bは、本発明の特定の一態様によって、装置がノード12の範囲内にあるか否かを制御するために使用することができる手法の機能図を示す。プライムシンボル(’)を付した類似の参照番号は、図2aに関して既に特定された対応する構成要素を示す。具体的には、この手法は、関連付けられた装置オブジェクト32c’を操作すること(例えば、追加することまたは削除すること)に関し、関連付けられた装置に関連するノードでマスキングを実施する。一例として、現在露出されている装置をノード12’の範囲から削除するために、特定の装置に関連付けられた装置オブジェクト(例えば32c’)が削除される。これは、装置オブジェクト32c(図2a)の欠損を示す参照文字32Xによって図2bに示される。装置オブジェクトの削除を、例えば、SET_INCLUSION_LISTインタフェース60’を使用することによって開始して、選択された装置を包含リストから削除することができる。範囲制御リスト46’は、包含リストに変更を組み込む。インタフェース60’は、PNPモジュールまたは専用インタフェース(図示せず)に指示して、各々の装置オブジェクトを削除する。装置オブジェクト32cの削除によって、対応するクラスドライバ34c(図2a)を削除またはアンロードする。装置は、インスタンス生成されたオブジェクト44’のリストからも削除される。装置には装置オブジェクトもクラスドライバも関連付けられていないので、ノード12に関連付けられたあらゆる高レベルオブジェクトまたはドライバを通して装置と通信することのできる有用なチャネルはなく、従って、装置へのノードによるアクセスは完全にブロックされる。
【0028】
現在露出されていない装置をノード12の範囲内に入れるために、装置オブジェクト32は、その装置のノードでプログラムにより生成される。図2bを参照すると、これは、例えば、SET_INCLUSION_LISTインタフェース60’を使用する高レベルアプリケーションまたは管理者によって実施され、その装置の適切な識別データを包含リストに追加することができる。インタフェース60’は、PNP制御または他のインタフェースに指示し、その装置の装置オブジェクトを追加する。その装置のクラスドライバ34cは、ロードされ、装置オブジェクト32cに動作可能にリンクされる(図2a参照)。その装置を、例えば、ノードと装置との間に通信チャネルを確立中であるという理由に基づいて、永続的または一時的包含リスト48’、50’に追加することができる。装置オブジェクト32cが作成されると、その装置を、インスタンス生成されたオブジェクト44のリストに追加する。追加中の装置がシステムにとって新しい装置である場合、これをワールドリスト42にも追加することができる。
【0029】
管理者または高レベルアプリケーションまたはモジュールは、CLEAR_INCLUSION_LISTインタフェース70’を使用して、範囲制御リストを削除することができる。上記のように、装置がノード12の範囲内に入れられるか、この範囲から出されるかは、そのリストが包含リストか排他リストかによって異なる。
【0030】
図2cは、本発明によって、装置がノード12”の範囲内にあるか否かをプログラムで制御するために、ノード12”で使用することができる別の手法の機能図である。ダブルプライムシンボル(”)を付した類似の参照番号は、図2aに関して既に特定された対応する構成要素を示す。この手法では、ノードと装置との間の通信チャネルを、装置オブジェクト32”と、その装置の対応する高レベルの装置オブジェクト34”との間の動作可能なリンク36”を制御することによってマスクすることができる。再度図2aを参照すると、例えば、装置に対して装置オブジェクト32cと対応するクラスドライバ34cとが存在する場合、その装置を、装置オブジェクトとクラスドライバとの間のリンク36cを動的に切断する(または削除する)ことによって、ノード12の範囲から出すことができる。これは、リンク36c(図2a)の欠損を示す参照番号36Xによって図2cに示される。ノードの範囲内にはないが既にワールド42”の一部である装置を、例えば、図2aに示すように装置オブジェクト32cと装置のクラスドライバ34cとの間にリンク36cを追加することによって、ノード12”の範囲に入れることができる。
【0031】
マスキングは、図2bに関して記載した手法と類似の方法で実施することができる。すなわち管理者または高レベルのアプリケーションは、SET_INCLUSION_LISTインタフェース60”などの適切なインタフェースを使用して、包含リスト(一時的50”または永続的48”)を修正する。範囲制御リスト46”は、各々の包含リストに変更を組み込む。インタフェース60”は、専用インタフェースまたはPNP制御に指示して、装置がノードに関連して機能的に隠蔽され、または露出されているかによってリンク36”を追加または切断する。ノード12”に関連して露出されるべき装置(例えばシステムに接続されている新しい装置)に対して、装置オブジェクトもクラスドライバも作成されていない場合、既に図2aに関して示し、記載したように、対応する装置オブジェクト32cとクラスドライバ34cとが作成され、リンクされる。各装置オブジェクト32に関連付けられたフラグを、論理値(TRUEまたはFALSE)にセットして、装置オブジェクトがノードの範囲内にある可視の装置に相当するか否かを示すことができる。
【0032】
図3は、ノード110が複数のバス130および140を介して複数のターゲット装置120に動作可能に結合されるシステム環境100の一例を示す。ノード110は、ノードと各ターゲット装置の間に通信経路(チャネル)を確立し、制御するために、各々のバス130、140と動作可能に関連付けられたコントローラ150、160を含む。各ターゲット装置120は、それに関連付けられたターゲットアドレスを有し、1または複数の論理ユニット170を含む。論理ユニット170は、例えば、各々のターゲット装置120の機能的記憶ユニットにインタフェースを提供する。各論理ユニット170は、関連付けられた論理ユニット番号(または他の識別特性)を有する。ノード110およびコントローラ150と160は、図2A〜2Cに関して示し、記載したノードおよびコントローラと同様に機能するように構成される。具体的には、ノード110は、ノードの範囲内にある1または複数の論理ユニットを特定するシステムレジストリに記憶されている永続的包含リストを含むことができる。
【0033】
システムブートまたは初期化中に、永続的包含リストが使用され、ノード100と、リストによって示される各装置120または論理ユニット170との間に通信経路またはチャネルを確立する。一例として、初期化中にノード110またはコントローラ150および160は、システムレジストリに記憶されている永続的包含リストに基づいて範囲制御リストをセットする。永続的リストが提供されていない場合、ノードは、既定値により、ノードに動作可能に接続されているすべての装置を機能的に露出するか、または装置を露出しないように構成することができる。以下の例では、初期の永続的包含リストが提供されていると想定している。
【0034】
各コントローラ150、160は、バスをスキャンし、各ターゲット装置に関連付けられた論理ユニット番号を決定するために、各々のバス130、140上の各ターゲット120に照会を送る。コントローラ150および160は、追加の照会を実行して、各論理ユニットに関連付けられた装置の種類を決定し、例えばシリアル番号などの各論理ユニットの特定の識別データを取得することができる。各コントローラ150、160は、さらに、その範囲制御リストをチェックして、識別データに基づいて、装置または論理ユニットがリストの範囲内にあるか否かを判定する。論理ユニットがコントローラの範囲内にある場合、その論理ユニットの装置オブジェクトが生成され、装置オブジェクトに関連付けられた適切なフラグをセットすることによって、その論理ユニットを可視であるとしてマーク付けすることができる。各装置オブジェクトに関連付けられた論理ユニット特性も、インスタンス生成されたオブジェクトのリストに追加される。しかしながら、論理ユニットがノード110の範囲内にない場合、対応する装置オブジェクトは生成されない。しかしながら、どちらの場合でも、各論理ユニットの識別特性は、ノード110のワールドリストに追加される。このプロセスは、各バス130、140の各ターゲット装置120の各論理ユニット170がそれに応じて処理されるまで反復される。
【0035】
システムのブートなどのある種の環境下では、範囲制御リストからすべての項目が削除されるヌル範囲制御リストをプログラムでセットすることが望ましい場合がある。例えば、ヌル包含リストによって、すべての装置120または論理ユニット170は、ノード110の範囲から削除される。対照的に、ヌル排他リストによって、バスに取り付けられているすべての装置が範囲に含まれる。このような状況では、ノード110は、包含リスト(永続的または一時的)で特定されたいかなる装置をも有さず、従って、範囲制御リストによって特定される装置はない。コントローラが包含リストを有しない場合、バススキャン中にバスに動作可能に接続されている装置のチェックは実行されない。これは大幅にブートタイムを軽減する。固有の装置の動作を検証し、または装置に関連付けられたファイルシステムをチェックするために手順を実施することは必須ではないからである。ブートタイムを、ノードの包含リストを最初にプログラムすることによって低減することができ、比較的少数の装置だけを特定して、ノードの範囲内に装置がほとんどないようにする(例えば、システムがSAN環境などの大量のデータ記憶に取り付けられている場合)。経路過負荷と装置競合とが軽減される。
【0036】
図4は、複数のノード202と204とがそれぞれに接続206と208を介して共有記憶システム210に接続されている本発明にかかるシステム構成の一例200の機能図である。共有記憶システム210は、例えば、複数の記憶ユニット220a、220b、220c、220dおよび220e(「記憶ユニット220」という)に動作可能に結合されているSAN212を含む。各記憶ユニット220は、例えばディスク、テープ、またはいかなる他の形態の記憶媒体(光または電子)であってもよい。
【0037】
SAN212は、例えば、アダプタ、ブリッジ、ハブ、スイッチおよびディレクタの構成を含み、記憶ユニット220とノード202および204との間のルーティングおよび接続を制御する。すなわちアダプタは、ノードまたはサーバと周辺装置をSAN212の配線(例えば、光ファイバまたは他の配線)に取り付ける。ブリッジは、ファイバチャネルからIP、またはSCSIからファイバチャネルのように、1のプロトコルから別のプロトコルに変換する。ハブ、スイッチおよびディレクタは、SANデータバスに中央接続点とルーティング機能とを提供する。システムの帯域幅とデータ転送率を高めるために、SAN212は、ファイバチャネル構造を使用して、記憶ユニット220とノード202および204とを含めてクロスポイントスイッチ構成で装置を接続することができる。
【0038】
任意選択の通信リンク230をノード202と204の間に提供して、ノード間の通信を可能にすることができる。通信リンク230は、ネットワーク(LAN、WAN)、遠隔通信リンク、またはノード202と204および/またはそのユーザがそれによって通信することができる他の機構の形態であってよい。通信リンクは、プロセス間通信プロトコル(例えばIP、HIPPI、VI)をいくつでも使用してSAN上で実行することもできる。
【0039】
一例として、ノード202および204は、記憶ユニット220に対してファイバチャネルを使用するSAN212に対する通信リンク206および208を介してSCSIプロトコル使用する。各ノード202、204は、包含リストおよび/または排他リストなどのデータ構造を含むようにプログラムされ、どの記憶ユニット220が各々のノードの範囲内にあるかを規定する。データ構造は、永続的および/または一時的リストを含むことができる。高レベルのアプリケーションまたはエージェントは、どの記憶ユニットが各ノードの範囲内にあり、または各ノードの範囲内にないかに関して管理を実行する。上記のように、各ノードの包含リストをプログラムで修正して、ノードの各々と選択された記憶ユニットとの間のアクセスを動的にマスクすることができる。
【0040】
例えば、ノード202は、記憶ユニット220aを含んでいる包含リストを有することができ、ノード204は、記憶ユニット220bと220cを含んでいる包含リストを有することができる。ノード202が記憶ユニット220bにアクセスする前に、ノード204は、所有権を放棄するよう指示される。これは、インタフェース(SET_INCLUSION_LIST)を使用する高レベルのアプリケーションまたは管理者によって実施され、記憶ユニット220bをノード204の包含リストから削除することができる。この方法で包含リストを修正することによって、範囲制御リスト内に対応する変更が生じる。インタフェースまたはPNP制御を使用して、図2a〜2cに関して示し記載した実施態様の1つに従うなどして、装置オブジェクトレベルでノード204による記憶ユニット220bへのアクセスをブロックすることができる。記憶ユニット220bがノード204の範囲内にない場合、ノード204(またはそのユーザ)は、記憶ユニットの所有権が解放されていることを示す通信リンク230を介してノード202と通信することができる。管理者または高レベルのアプリケーションは(通信リンク230を介してノード202またはノード204で)、インタフェース(例えば、SET_INCLUSION_LIST)を使用して、ノード202の包含リストに記憶ユニット220bを追加することができる。範囲制御リストは、それに従って修正される。インタフェースは、別のインタフェースまたはPNP制御手段に指示し、記憶ユニット220bに対応する装置オブジェクトを追加する適切なコマンドを発行することにより、装置220bをノード202の範囲に入れ、および/または、装置オブジェクトを記憶ユニット220bの対応するクラスドライバにリンクする。ノード202の装置オブジェクトが適切なクラスドライバにリンクされているので、各々の記憶ユニット220bへのアクセスがイネーブルされる(例えば、装置がノード202の範囲内にある)。ノード202と204による他の記憶ユニット220に関連するアクセスを、同様の方法でプログラムによりマスクすることができる。
【0041】
管理者は、例えば、各ノードの要求に見合った適切な記憶のレベルを、各ノード202、204に提供することができる。加えて、各ノード202、204は、同じ記憶ユニット220にアクセスするようにプログラムされて、システム200全体による記憶の要求を低減することができる。その結果、複数のノードに対する複製データを記憶する必要はない。この方法でアクセスをマスキングすることは、複数のノードが1つの記憶ユニットに対して同時にアクセスを試みることができる経路過負荷と装置競合とを軽減する。
【0042】
図5は、複数のクライアントノード302および304が、LANまたはWANなどの従来型ネットワーク・インフラストラクチャ310を介して、複数のサーバノード306および308にリンクされている本発明にかかる別のシステム構成300の一例である。サーバノード306および308は、共有記憶システム318に動作可能に結合されている。具体的には、サーバノード306および308は、SAN330を介して複数の記憶ユニット320a、320b、320c、320dおよび320e(「記憶ユニット320」という)に結合され、SAN330は、ファイバチャネル構造のトポロジを含むことができる。
【0043】
本発明の一態様によれば、クライアントノード302および304のそれぞれは、包含および/または排他リストの形式により、1または複数のプログラム可能なデータ構造を含み、どの記憶ユニット320がクライアントノードの各々の範囲内にあるかを規定する。上記のように、データ構造は、一時的および/または永続的包含リストの形式であってよい。データ構造は、各々のクライアントノードの範囲内に記憶ユニットがないことを示すヌル包含リストに対応することもできる。サーバノード306、308のそれぞれは、選択された記憶ユニットへのアクセスをさらに制御するために包含(または排他)リストを含むようにプログラムすることもできることを理解されたい。本発明によれば、1または複数の記憶ユニットを、適切なインタフェースを使用することによって、各ノード302、304、306、308に関連して動的にマスクし、各々のノードの包含リストから1または複数の記憶ユニットをプログラムで追加または削除することができる。
【0044】
一例として、クライアントノード302は、記憶ユニット320aと320cを示す包含リストを有し、ノード304は、ヌル包含リスト(例えば、バス上のすべての装置がその範囲から排除される)を有する。ノード304が装置ユニット320cにアクセスするために、装置ユニットは、その包含リストに追加される(またはその排他リストから削除される)。これは、例えば、インタフェース(SET_INCLUSIOTN_LIST)を使用する高レベルアプリケーションまたは管理者によって実施され、記憶ユニット320cをノード304の包含リストに追加することができる。追加は、記憶ユニットがどの包含リスト(一時的または永続的)に追加されるかによって永続的である場合と一時的である場合とがある。この方法で包含リストを修正することによって、ノード304の範囲制御リストに対応する変更がもたらされる。PNP制御は、例えば、記憶ユニットに対する装置オブジェクトを生成するように指示される(まだ1つも存在しないと仮定すると)。装置オブジェクトは、コマンド命令を記憶ユニット320cに伝達する(例えばねI/O要求に応じて読み込みまたは書き込みコマンドを提供する)ために通信経路を介してクラスドライバにリンクされる。
【0045】
ユニットを他のノード304に露出する前に、ノード302の範囲から記憶ユニット320cを出すことが望ましい場合もある。従って、サーバノード306または308またはクライアントノード304の1つが、ネットワーク・インフラストラクチャ310を介してクライアントノード302と通信することができ、ノード302による記憶ユニットへのクセスをプログラムでマスクすることによって、ノード302が、記憶ユニット320cの所有権を放棄することを要求することができる。インタフェース(SET_INCLUSION_LIST)を使用して、本明細書に記載の実施態様のどれかに従うことにより、クライアントノード302でマスキングを開始することができる。記憶ユニット320cが、クライアントノード302に対して機能的に隠蔽されているので、複数のノードが装置に同時にアクセスする場合に発生する可能性のある経路過負荷と起こりうる競合とが軽減される。
【0046】
図6は、共有記憶システム420の複数の記憶ユニット410a、410b、410c、410d、および410e(「記憶ユニット410」という)へのアクセスを動的に管理するための、本発明にかかるマスキングを使用することができるインターネットベースのシステム400の一例を示す。複数のインターネットサーバ430および440は、インターネット450に動作可能に結合されている。各サーバ430、440は、各サーバに物理的に関連付けられた各々の記憶装置460、462を含む。サーバ430および440は、例えば、電子商取引のインターネットサーバに相当し、これは、注文を受け取り、業務の特定領域について取引処理の予め選択された態様を実行するする。別のサーバ470は、追加の取引処理またはデータ管理(例えば、データマイニングなど)を実行するためのマスタサーバであり、インターネットサーバ430、440の各々から取得した取引データに基づく。マスタサーバ470は、サーバによって排他的に所有される記憶装置472を含む。すべてのサーバ430、440および470は、共有記憶システム420のSAN474を介して、記憶ユニット410に動作可能に結合されている。
【0047】
本発明によれば、各サーバ430、440、470は、データ構造を含むようにプログラムされており、各々のサーバのマスキング規準を特定する包含および/または排他リストの形式などである。上記のように、リストは、特定の記憶装置が、各々のサーバの範囲に含まれるべきか否かを特定する永続的および/または一時的リストを含むことができる。記憶ユニット410を、本発明の一態様によって、サーバ430、440、470の1つのデータ構造にプログラムで追加すること、またはそこから削除することができ、各々のサーバに関連して記憶ユニットを動的にマスクする。
【0048】
一例として、インターネットサーバ430は、インターネットビジネスの第1の領域に関連して、インターネット450から注文を受け取って処理するためのサーバに相当する。サーバ430は、記憶装置460に関連付けられたそれに取引データを記憶することができるが、そのデータをさらに処理するために追加のドライブ空間を要求する。共有記憶システム420は、記憶ユニット410bなどの十分な記憶領域を提供して、アプリケーション集約型データ処理を実行する。記憶ユニット410bにアクセスするために、サーバは、プログラムにより記憶ユニットをサーバ430の範囲内に入れる。
【0049】
本発明によれば、管理者または高レベルアプリケーションによるインタフェース(SET_INCLUSION_LIST)を使用して、記憶ユニット410bをサーバ430の選択された包含リスト(例えば、一時的または永続的)に追加することができる。サーバ430の範囲制御リストは、一時的包含リストへの変更に従って修正される。さらに、専用インタフェースまたはPNP制御は、記憶ユニット410bをサーバ430の範囲内に入れるために活動化され、例えば、図2a〜2cに関して示し記載された例示の実施態様の1つに従う。記憶ユニット410bがインターネットサーバ430の範囲内にある場合、サーバは、サーバによって装置が所有される際には、記憶ユニットを使用して取引データを処理して記憶することができる。処理が完了すると、サーバ430は、記憶ユニット410bの所有権を放棄することができ、例えば、インタフェース(SET_INCLUSION_LIST)を使用して記憶ユニットを一時的包含リストから削除することによる。
【0050】
上記の例では、記憶ユニット410bは、特定の目的すなわちデータの処理または他のマシンへの転送などのためにアクセスされているので、この記憶ユニットを、一時的包含リストに追加することができる。従って、サーバ430またはその関連付けられたコントローラが、処理中にクラッシュした場合、その一時的包含リスト上の記憶ユニットは、サーバ430の範囲内にはあり続けない。代わりに、サーバは、そのような記憶ユニットの所有権を再調整し、その取引データの処理を続行する必要がある。
【0051】
サーバ430(そのユーザ)は、通信リンク480を介してマスタサーバ470(またはそのユーザ)と通信することができ、サーバ430が、記憶ユニット410bへのアクセス権を放棄したこと、およびマスタサーバ470が、記憶ユニットをその包含リストに追加するなどによって、記憶ユニット410bの所有権を取得することができることを教える。プログラムされた命令は、マスタサーバ470でSET_INCLUSITON_LISTインタフェースを開始するために通信に付随して、記憶ユニット410bをマスタサーバの包含リストに追加することができる。あらゆる通信モードを使用して、インターネットサーバ430に関する情報および記憶ユニット410bで提供されるデータを、マニュアルまたは自動化された機構、配線または無線などを含み、伝達することができることが理解されよう。マスタサーバ470は、プログラムによりその範囲内に記憶ユニット410bを入れた後、データを処理して、マスタサーバ470が排他的に所有する追加メモリ472にそのデータを記憶し、そのデータを記憶ユニット410bに保持することができ、またはそのデータの所有権を調整した後で、記憶ユニット410の異なる1つに転送することができる。サーバ440は、通信リンク482を介してマスタサーバ470と通信して、サーバ440に関する状況情報を提供し、関連する記憶ユニット410に関する状況情報および/または命令を提供することができる。
【0052】
有利には、大量のデータを、個々のインターネットサーバマシン430および440によって構築し、マスタサーバ470による処理のために、共有記憶システム420の記憶ユニット410に転送することができる。マスタサーバ470は、例えば、システム400全体のファイルサーバとして使用することができる。さらにこの方法は、選択されたデータのバックアップコピーを効率的に作成するために使用することができ、このデータは、SANのロジスティックな制約に基づいて遠隔に配置された記憶ユニット410で維持することができる。例えば、ファイバチャネルは、記憶装置とそのような装置にアクセスすることができるホストコンピュータとの間が少なくとも10キロメートルまで可能である。
【0053】
本発明の様々な態様にある状況を提供するために、図7および以下の記述は、本発明の様々な態様を実施することができる適切なコンピューティング環境の簡単で一般的な説明を提供することを意図している。本発明は、上記で様々なシステム構成のホストコンピュータまたはノードで実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的文脈によって記載したが、当業者ならば、本発明は、他のプログラムモジュールと共に実施することもできることを理解するだろう。一般に、プログラムモジュールには、特定タスクを実行し、または特定の抽象データ型を実施するルーチン、プログラム、構成要素、データ構造などが含まれる。さらに当業者ならば、本発明の方法を、1または複数の関連付けられた装置に動作可能に結合することができる単一プロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、並びにパーソナルコンピュータ、ハンドヘルドコンピュータ装置、マイクロプロセッサベースの、またはプログラム可能な家庭電化製品などを含めて他のコンピュータシステム構成によって実行することができるということを理解するだろう。本発明の例示の態様は、ある種のタスクが通信ネットワークを介してリンクされた遠隔処理装置によって実行される分散型コンピューティング環境で実行することもできる。しかしながら、本発明の態様のすべてではないにしろ一部は、複数のプロセッサが複数の共有記憶ユニット(例えば、セグメント化されたディスク記憶領域)に動作可能に関連付けられている場合などに、スタンドアロンコンピュータで実行することができる。分散型コンピューティング環境では、プログラムモジュールは、ローカルおよび遠隔記憶装置に配置することができる。しかしながら、本発明にかかるマスキングは、本明細書に記載のマスキング機能を提供するために、各コンピュータまたはノードの低レベル(例えば、ドライバスタック)で実施されることを理解されたい。
【0054】
図7を参照すると、本発明の様々な態様を実施するシステム500の一例は、処理ユニット504と、システムメモリ506と、システムメモリを含む様々なシステム構成要素を処理ユニット504に結合するシステムバス508とを含む従来型サーバコンピュータ502を含む。処理ユニット504は、これに限定はしないが、Intel x86、Intel社製またはCyrix、AMDおよびNexgenを含めた他社製のPentium(登録商標)および互換のマイクロプロセッサ、Digital社製のAlpha、MIPS Technology社、NEC社、IDT社、Siemens社および他社製のMIPS、IBMおよびMotorola社製のPowerPCを含む様々な市販のプロセッサのどれであってもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサのアーキテクチャを、処理ユニット504として使用することができる。
【0055】
システムバス508は、メモリバスまたはメモリコントローラ、周辺バス、およびいくつか例を挙げるとPCI、VESA、Microchannel、ISAおよびEISAなどの様々な従来型バスアーキテクチャのいずれかを使用するローカルバスを含む様々な種類のバス構造のいずれであってもよい。システムメモリ500は、読み取り専用メモリ(ROM)510およびランダアクセスメモリ(RAM)512を含む。起動中などにサーバコンピュータ502内の素子間で情報を転送することを支援する基本ルーチンを含んでいる基本入出力システム(BIOS)は、ROM510に記憶される。
【0056】
サーバコンピュータ502は、ハードディスクドライブ514、例えば取り外し可能ディスク518から読み取りまたはそこに書き込む磁気ディスクドライブ516、例えばCD−ROMディスク522を読み取るため、または他の光媒体から読み取り、またはそこに書き込みをする光ディスクドライブ520をさらに含む。ハードディスクドライブ514、磁気ディスクドライブ516、および光ディスクドライブ520は、各々ハードディスクドライブインタフェース524、磁気ディスクドライブインタフェース526、および光ドライブインタフェース528によってシステムバス508に接続される。ドライブおよびそれらに関連付けられたコンピュータ可読媒体は、サーバコンピュータ502にデータ、データ構造、コンピュータ実行可能命令などの不揮発性記憶領域を提供する。上記のコンピュータ可読媒体の説明は、ハードディスク、取り外し可能な磁気ディスク、およびCDを示しているが、当業者には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、Bernoulliカートリッジなどのコンピュータによって読み取り可能な他のタイプの媒体を、例示の操作環境で使用することができ、さらにそのような媒体のいずれもが、本発明の方法を実施するためのコンピュータ実行可能命令を含むことができるということを理解されたい。さらにサーバコンピュータ502の一部を形成する装置514〜522の各々は、サーバコンピュータによって「所有される」とみなされる。しかしながら、そのような装置は別法として、サーバコンピュータと他のコンピュータを本発明によるマスキングを使用するようにプログラムして、サーバコンピュータ502から遠隔に配置し、1または複数の他のコンピュータによって共有することができることを理解されたい。
【0057】
複数のプログラムモジュールは、オペレーティングシステム530、1または複数のアプリケーションプログラム532、他のプログラムモジュール534、およびプログラムデータ536を含むドライブおよびRAM512に記憶することができる。例示のコンピュータのオペレーティングシステム530は、例えば「Microsoft Windows(登録商標) 2000」サーバオペレーティングシステムだが、本発明は他のオペレーティングシステムまたは他のオペレーティングシステムの組合せによって実施することができることを理解されたい。
【0058】
ユーザは、キーボード538およびマウス540などのポインティングデバイスによって、サーバコンピュータ502にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバス508に結合されているシリアルポートインタフェース542を介して処理ユニット504に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)などの他のインタフェースによって接続することもできる。モニタ544または他のタイプの表示装置を、ビデオアダプタ546などのインタフェースを介してシステムバス508に接続される。モニタの他に、コンピュータは、通常、スピーカ、プリンタなどの他の周辺出力装置(図示せず)も含む。
【0059】
サーバコンピュータ502は、SAN552を介して、共有記憶システム550に動作可能に結合することができる。例えば、サーバコンピュータ502は、記憶インタフェースまたはアダプタ554を介してSAN552に接続される。サーバコンピュータ502が適切な記憶アダプタを介して共有記憶システム550に直接的に結合することができるので、SANはそれが任意選択であることを示すために破線で示してある。
【0060】
サーバコンピュータ502は、遠隔クライアントコンピュータまたはノード560などの1または複数の遠隔コンピュータへの論理接続を使用してネットワーク接続した環境で動作することができる。遠隔コンピュータ560は、ワークステーション、サーバコンピュータ、ルータ、ピアデバイスまたは他の共通ネットワークノードであってよく、典型的には、サーバコンピュータ502に関して記載された要素の多くまたはすべてを含むが、簡約化の目的から図7には記憶装置562しか示さない。さらに遠隔コンピュータ562は、その遠隔コンピュータ562に動作可能に関連付けられた1または複数の装置に対して、本発明にかかるマスキングを使用するようにプログラムされ、サーバコンピュータ502の一部またはSAN552を介してサーバコンピュータに接続された共有記憶システム550を含むことができる。図7に示す論理接続は、ローカルエリアネットワーク(LAN)564とワイドエリアネットワーク(WAN)566とを含む。このようなネットワーク接続環境は、オフィス、企業規模のコンピュータネットワーク、インターネットおよびイントラネットではよくあることである。
【0061】
LANネットワーク接続環境で使用される場合、サーバコンピュータ502は、ネットワークインタフェースまたはアダプタ568を介してローカルネットワーク564に接続される。WANネットワーク接続環境で使用される場合、サーバコンピュータ502は、典型的には、モデム566を含むか、またはLAN上の通信サーバに接続されるか、またはインターネットなどのWAN566を介して通信を確立するための他の手段を有する。内蔵であっても外付けであってもよいモデム570は、シリアルポートインタフェース542を介してシステムバス508に接続される。ネットワーク接続した環境では、サーバコンピュータ502に対して記述されたプログラムモジュールまたはその一部は、遠隔記憶装置562および/または共有記憶装置550に記憶することができる。図示したネットワーク接続は一例であり、コンピュータ間に通信を確立する他の手段も使用することができることが理解されよう。
【0062】
コンピュータプログラミングの当業者の慣例によって、本発明は、特記しない限りサーバコンピュータ502または遠隔コンピュータ560などのコンピュータによって実行することができる作用および動作の記号表記を参照して記載した。このような作用および動作は、コンピュータで実行中のものとして示す場合がある。作用と記号によって表された動作は、電子信号の表現の結果として変換または低減をもたらすデータビットを表す電子信号の処理ユニット504による操作と、メモリでのデータビットの維持が、メモリシステム(システムメモリ506、ハードドライブ514、フロッピー(登録商標)ディスク518、CD−ROM522、および共有記憶システム550を含めて)に位置づけられて、コンピュータシステムの動作並びに信号の他の処理をそれによって再構成または変更することを含むと理解されよう。そのようなデータビットが維持されるメモリ位置は、そのデータビットに対応する特定の電子的、磁気的、または光学特性を有する物理的位置である。
【0063】
上記の操作環境例とシステム構成例とに鑑みて、本発明にかかるマスキング方法は、図8〜9cに示す流れ図を参照するとさらによく理解されるだろう。これらの図面に示した例示的な方法は、図3に示したシステム構成と類似のシステム構成に関して記載されている。すなわち、各ターゲットが1または複数の論理ユニット(LU)をさらに含んだ状態で、各ターゲット装置は、関連付けられたバスアドレス(ファイバチャネルノードに相当する)を有する。各LUは、ターゲット装置の一部(例えば、セグメントまたはディスク)などの関連付けられた装置の対応する態様にインタフェースを提供する。各LUは、関連付けられた論理ユニット番号(LUN)、または各々のターゲット装置の論理ユニットを特定する他の識別特性を有する。この例では、ノードは、システムレジストリに記憶することができる永続的包含リストを含むようにプログラムされていると想定している。この永続的包含リストは、ノードの範囲内に最初にどの装置があるべきかを特定する。簡約化の目的から、以下の記述では、包含リストのみを使用しているようにマスキング方法を記載するが、本発明では排他リストを別法として、または追加として実施することもできる。各ノードを、本発明によって図8−9cに示す方法を実施するようにプログラムすることができることを理解されたい。
【0064】
図8を参照すると、ノードに動作可能に接続されている複数のターゲット装置のそれぞれに対してノードに関するマスキング規準を最初に確立するための方法が示されている。プロセスは、システムまたはノードが例えばシステムブートで初期化されるステップ700から開始する。ブート直前にはノードの範囲内に装置はない。プロセスは、永続的包含リストがメモリからロードされるステップ710に進む。次にステップ720において、範囲制御リストは、この永続的包含リストに基づいて規定される。プロセスは、ステップ720から、ノードが、この状況では第1のバスであるノードに関連付けられた次のバスにアクセスするステップ724に進む。プロセスは次いで、そのバスに動作可能に結合された各ターゲット装置に関する照会を実行する。
【0065】
ステップ730において、ノードは、スキャンされているバスに関連付けられた次のターゲットのアドレスを取得またはロードする。次に、そのノードに動作可能に接続されたターゲット装置(ステップ740)に関する照会がなされる。具体的には、SCSIコマンドプロトコルを使用することのできる照会コマンドが、スキャンされているバスの現在のターゲットの論理ユニット0にアドレス指定される。各ターゲット装置は、ターゲット装置に関連付けられた他のLUに関する照会などの、基本コマンドに応答することができる少なくとも1つの論理ユニット0を含む。次にステップ750において、リポートLUNコマンドが、スキャンされている現在のバスの現在のターゲット装置の論理ユニット0に送られる。これによって論理ユニット0は、そのターゲットに関連付けられたすべてのLUのリストを提供することによって応答する。何らかの理由で、LUを特定するリポートがステップ750での照会に応答して提供されなかった場合、ノードは、ターゲット装置に関連付けることができるすべての潜在的なLUのスキャンを実行することができる。プロセスは次いで、各々のターゲット装置のLUに関連する追加の照会を実行するために、ノードが第1の論理ユニット番号をキャッシュするステップ760に進む。
【0066】
ステップ770において、一般照会が、現在のターゲットに関連付けられたキャッシュ済みのLUに対してなされる。この照会は、例えば、LUによって表される装置の種類または構成に関する情報(例えば、その装置が何であるか)の要求を含むことができる。次にステップ780において、別の照会がなされ、その装置のシリアル番号などの、LUによって表される装置に関連付けられた識別特性またはデータを取得する。装置を特定するために十分な情報が収集されると、プロセスはステップ790に進むことができる。
【0067】
ステップ790において、特定されたLUがノードの範囲内(データ構造)にあるか否かに関して判定がなされる。この例では、ステップ720に従って、永続的包含リストによって特定された装置によって範囲が規定される。LUがノードの範囲内にない場合、プロセスは、ワールドリストにそのターゲット装置の識別特性を記憶することによって、ターゲット装置のLUがワールドに追加されるステップ800に進む。範囲内にない装置に関連付けられたフラグを、任意選択で論理FALSEにセットすることができる(例えば、visible=FALSE)。この例では、FALSEがデフォルト状態なので、フラグを明示的にセットする必要はない。
【0068】
しかしながら、ステップ790で特定されたLUがノードの範囲内にある場合、プロセスは、フラグが論理TRUE(例えば、visible=TRUE)にセットされるステップ810に進む。プロセスは、ステップ810から、対応する装置オブジェクトが作成されるステップ820に進む。装置オブジェクトの作成は、例えば、専用インタフェースまたはPNP制御を使用して実施することができる。装置オブジェクトは、現在のターゲットの現在のLUに動作可能に関連付けられている。ステップ840で装置に対して装置オブジェクトが作成されたので、装置に対応する識別データが、インスタンス生成されたオブジェクトのリストに追加される(図2a〜2c参照のこと)。プロセスは次いで、装置に対する識別特性がワールドリストに追加されるステップ800に進む。プロセスは次いで、ステップ850に進む。
【0069】
ステップ850では、現在のターゲット装置が照会を行うことができる追加のLUを含むか否かについて判定がなされる。追加のLUが存在する場合、プロセスは、次のLUNがキャッシュされるステップ860に進む。プロセスは次いで、次のLUNに対して上記ステップを反復するためにステップ770に戻る。ステップ850で追加のLUが1つも存在しないという判定に達すると(例えば、現在のターゲットのすべてのLUNが処理済みである)、プロセスは、ステップ870に進む。ステップ870において、スキャンされているバスに関連付けられた追加のターゲット装置が1つでもあるか否かについて判定がなされる。この判定が追加のターゲットがバスに接続されていることを示す肯定的な判定である場合、プロセスは、ノードが現在のバスに接続されている次のターゲット装置のアドレスを取得するステップ730に戻る。プロセスは次いで、ターゲット装置の各LUに対して反復される。
【0070】
ステップ870での判定が、追加のターゲット装置がバスに関連付けられていないことを示す否定的な判定である場合、プロセスはステップ880に進む。ステップ880において、追加のバスがノードに動作可能に関連付けられているか否かに関して判定がなされる。バスがまだスキャンされ処理されていない場合、プロセスは、アクセスされる次のバスが上記プロセスに従ってスキャンされるステップ724に戻る。ステップ880での判定がノードに接続されたすべてのバスが既に処理済みであることを示す否定的な判定である場合、プロセスはステップ884に進む。ステップ884において、各装置オブジェクトに対するクラスドライバに対応する高レベルの装置オブジェクトが、ステップ820で生成された各装置オブジェクトにロードされ、動作可能にリンクされる。これは、例えば、バススキャンの結果(例えば、どの装置がマスクされるべきかを含む)をPNP制御に通知することによって実施することができる。PNP制御は、高レベルのデバイスドライバにコマンドを発行して、ノードの範囲内にあるよう既に選択されている各々の新しい装置オブジェクトに取り付ける。ステップ884から、プロセスはステップ890で終了する。このような方法を実施することによって、永続的包含リストは、各装置が初期ノードの範囲内にあるか否かを規定する。残りの装置はノードの範囲内にはなく、従って、これらはノードに対して機能的に隠蔽されている。しかしながら、すべての動作可能に取り付けられている装置は、ワールドに含まれる。排他リストを使用することができ、リスト上で特定された装置はノードの範囲外にあり、他の装置のすべてはノードの範囲内にあるということを理解されたい。
【0071】
図9a〜9cは、ノードに関連付けられたマスキング規準をプログラムで修正するための方法を一例として示す流れ図である。これは、図2a〜2cに関して開示されたようなSET_INCLUSION_LISTインタフェースを使用に応答することができる。図9aを参照すると、プロセスは、本明細書に記載のSET_INCLUSION_LISTインタフェースなどのインタフェースを活動化することによって、ステップ950から開始される。このインタフェースは、例えば、入出力制御などのSCSIコマンドであってよい。適切な構成データが、インタフェースを使用するときに提供され、ノードに関連してマスクされるべき装置、並びに永続的および/または一時的リストに対して変更がなされているか否かを特定する。上記のように、このインタフェースは、システム管理者などにより手動で活動化することができ、または高レベルのアプリケーションまたはインテリジェントエージェントなどにより開始された動作であってもよい。
【0072】
ステップ950から、プロセスは、提供されたインタフェース特性に基づいて適切な包含リスト(一時的および/または永続的)が修正されるステップ960に進む。次にステップ970において、新しい包含リストが、ステップ960で提供された変更を含む適切なメモリに記憶される。一例として、永続的包含リストに変更がなされた場合、改定されたリストは、システムレジストリなどの適切な不揮発性メモリに記憶される。一時的包含リストになされた変更は、例えば、システムが実行中である限り、またはコントローラがイネーブルされたままである限り所定の場所に存続する揮発性メモリに記憶される。プロセスは次いで、範囲制御リストが包含リストに対してなされた変更に対応するように更新されるステップ980に進む。範囲制御リストは、一時的または永続的リストに対応するオブジェクトを含むことができ、または揮発性メモリに記憶された両方のリストの作業コピーを含むこともできることを理解されたい。ステップ980から、プロセスは、範囲制御リストになされた改定に応じて1または複数の装置のマスキングを実施するためにステップ990に進む。図9bおよび9cは、マスキング方法の2つの可能な実施態様を対象としている(ステップ990)。
【0073】
図9bは、図2bとそれに伴う記載に対応しているマスキング方法を記載している。マスキングは、ノードに関連する選択された装置の露出または隠蔽に対応することができるので、マスキングプロセスを開始するステップ990の後の第1ステップ1000は、装置がノードの範囲内にあるべきか否かを判定することに相当する。これは例えば、修正されたリストが包含リスト(ノードの範囲内にある装置を示す)か排他リスト(ノードの範囲から除外されるべき装置を示す)かに基づいている。この判定は、リストが追加の装置を含めるかまたは既存の装置を削除するように改定されているかに基づいている。装置がノードの範囲内にあることを示すマスキングデータを仮定すると、プロセスは、ステップ1010に進む。
【0074】
ステップ1010において、装置オブジェクトが上記のように装置のノードで作成される。次にステップ1020において、装置オブジェクトに関連付けられたフラグが、論理TRUEにセットされる(例えば、visible=TRUE)。プロセスは次いで、インスタンス生成されたオブジェクトのリストが、作成されたばかりの装置オブジェクト(ステップ1010)に対応する装置の識別データを含むように改定されるステップ1030に進む。ステップ1030から、プロセスは、追加の装置がマスクされるべきか否かを判定するためにステップ1050に進む。判定が、追加装置がマスキングを必要としていることを示す肯定的な判定の場合、プロセスは、マスクされるべき次の装置のLUおよび/または他の識別データを取得するためにステップ1060に進む。ステップ1060から、プロセスはステップ1000に戻る。
【0075】
ステップ1000において、装置がノードの範囲から排除されるべきであることをマスキングデータが示している場合、プロセスはステップ1070に進む。ステップ1070において、マスクされている装置に対応する装置オブジェクトは除去される。これは、例えば、装置オブジェクトの除去を実現する専用インタフェースまたはPNP制御によって実施することができる。次にステップ1080において、装置オブジェクトに関連付けられたフラグを、論理FALSE(例えば、visible=FALSE)にセットすることができる。プロセスは次いで、装置オブジェクトがインスタンス生成されたオブジェクトのリストから除去されるステップ1090に進む。その結果、装置は、ノードに対して機能的に隠蔽される。プロセスは次いで、追加のマスキングがまだ必要とされているか否かを判定するためにステップ1050に進む。ステップ1050での判定が否定的な判定である場合、プロセスは、ノードの範囲内にあるべき各々の装置オブジェクトにクラスドライバがロードされ、動作可能にリンクされるステップ1100に進む。上記のように、これは、PNP制御からさらに高いレベルのドライバに対するコマンドに応じて実施され、VISIBLEフラグ状態に基づいて、適切な装置オブジェクトに取り付けることができる。クラスドライバが装置オブジェクトにロードされ、リンクされると、その装置はノードの範囲内にある。ステップ1100から、マスキングプロセスはステップ1110で終了する。
【0076】
図9cは、本発明によって実施することができる別のマスキング方法を示す。このマスキングの態様は、図2cに対して示し、記載した手法に全般的に対応している。プロセスは、所定のマスキングプロセスの開始に応答してステップ990で開始される。プロセスは次いで、マスクされている装置がノードの範囲内にあることを示すマスキングデータか否かについて判定がなされるステップ1200に進む。分析によって、装置がノードの範囲内にあることが判明すると、プロセスはステップ1210に進む。
【0077】
ステップ1210で、ノードの範囲に入れられた装置が新しい装置か否か(まだワールドの一部でないか否か)に関して判定がなされる。これは、装置に対応する識別データのノードによって維持されるワールドリストをチェックすることによって、またはインスタンス生成されたオブジェクトのリストをチェックすることによって判定することができる。本発明のこの態様によって、装置オブジェクトとそれが対応するクラスドライバとの間のリンクが切断またはブロックされ、たとえ装置オブジェクトがノードの範囲内になくても、装置オブジェクトは存続するということを想起されたい。従って装置オブジェクトは、ワールドの装置ごとに作成される。ステップ1210での判定が、装置が新たに追加された装置であることを示す肯定的な判定である場合、プロセスはステップ1220に進む。
【0078】
ステップ1220−1250は、図8bのステップ1010〜1040とほぼ同一である。すなわちステップ1220で、装置オブジェクトは、PNPまたは専用インタフェースを使用して、装置のノードで作成される。プロセスは次いで、装置オブジェクトに関連付けられたフラグが、論理TRUE(例えば、visible=TRUE)にセットされるステップ1230に進む。次にステップ1240において、インスタンス生成されたオブジェクトのリストが、追加中の装置に対する識別データを含めるように改定される。ステップ1240から、プロセスは、追加の装置がマスキングを必要としているか否かを判定するためにステップ1260に進む。追加の装置がマスキングを必要としている場合、プロセスは、装置に関連付けられた次のLUまたは他の識別データがロードされるステップ1270に進む。
【0079】
先のステップ1210での判定が、ノードの範囲に入れられている装置がシステムに新たに追加されるものではないことを示す否定的な判定である場合、プロセスはステップ1280に進む。ステップ1280において、装置に関連付けられた既存の装置オブジェクトが配置され、対応するフラグ状態が論理TRUEにセットされる(例えば、visible=TRUE)。プロセスは次いで、装置オブジェクトが対応するクラスドライバにリンクされるステップ1290に進む。装置オブジェクトを対応するクラスドライバにリンクするこの機能的な態様を、PNP制御によって、または各々の装置オブジェクトにリンクするためにより高いレベルのクラスドライバに適切なコマンドを発行する専用インタフェースによって処理することができる。ステップ1290から、プロセスは、追加の装置がマスクされるべきか否かを判定するためにステップ1260に進む。
【0080】
先のステップ1200で、装置がノードの範囲から削除されるべきであることを示すマスキングデータであると判定された場合、プロセスはステップ1300に進む。ステップ1300において、装置オブジェクトに関連付けられたフラグは、論理FALSEにセットされる(例えば、visible=FALSE)。プロセスは次いで、装置オブジェクトとそれに対応するクラスドライバの間のリンクが切断されるステップ1310に進む。削除を、例えば、適切なインタフェースまたはPNP制御によって要求される削除として処理することができる。リンクを切断した結果、装置は、ノードの範囲から完全に削除され、ノードのコントローラによるアクセスはブロックされる。クラスドライバへ直接行く通信経路を保護するために追加のステップを取ることができ、ノードと装置との間の通信経路がブロックされる。ステップ1310から、プロセスは、上記のように図9cの方法に従って、追加の装置がマスキングを必要としているか否かを判定するためにステップ1260に進む。追加のマスキングが必要とされない場合、プロセスは、ノードの範囲内にあるべき各装置オブジェクトにクラスドライバがロードされ、動作可能にリンクされるステップ1320に進む(例えば、visible=TRUEに従って)。ステップ1320から、プロセスは、プロセスが終了するステップ1330に進む。
【0081】
図9bおよび9cの方法を別個のマスキング手法として記載したが、マスキングの一方の種類は、他方よりも望ましい場合があるので、所与のノードを、両方のタイプのマスキングを実施するようにプログラムし、および/または構成することができることを理解されたい。さらに、1または複数のノードに動作可能に接続されたSAN環境など、本明細書に記載のプログラムによるマスキングに伴ってハードウェアベースのLUNマスキングを使用することもできる。本発明によるLUNマスキングに対するプログラムによる手法によって、ハードウェア構成が可能でない場合でも、所与のノードは1または複数の関連付けられた装置に対するアクセスを有効かつ動的にマスクすることができる。さらに、このプログラムによるマスキングの手法は、リブートを必要とせずにノード内で構成の変更を動的に行うことを可能にする。その結果、複数の相互接続されたホストは、記憶ユニットまたは他の共有記憶装置をプログラムでスワップすることができる。
【0082】
上記に記載したものは本発明の一例である。当然ながら、本発明を説明する目的で構成要素または方法のすべての想定可能な組合せを記載することは不可能であるが、当業者ならば本発明の多くのさらなる組合せおよび並べ替えが可能であることを理解するだろう。従って本発明は、頭記の特許請求の趣旨および範囲内に包含されるすべてのそのような代替形態、修正形態および変形形態を包含することを対象としている。
【0083】
(産業上の応用範囲)
本発明は、コンピュータサイエンスの分野に産業上の応用範囲を有する。
【図面の簡単な説明】
【図1】 本発明にかかるシステムの概略ブロック図である。
【図2a】 第1のシステム状態を示す本発明にかかるプログラムされたシステムの機能ブロック図である。
【図2b】 本発明の一態様にかかる第2のシステム状態を示す図2aのシステムの機能ブロック図である。
【図2c】 本発明の別の一態様による装置の第3のシステム状態を示す図2aのシステムの機能ブロック図である。
【図3】 本発明に従って構成することができる、複数のバスを介して複数のターゲットに結合されるノードを示すシステムの機能ブロック図である。
【図4】 本発明にかかる共有記憶システムに結合されている複数のノードを有するシステムのブロック図である。
【図5】 本発明にかかるネットワークを介して共有記憶システムに結合されている複数のノードを有するシステムのブロック図である。
【図6】 本発明にかかる共有システムに結合されている複数のノードを有するインターネットベースシステムのブロック図である。
【図7】 本発明に従って構成されているシステムの操作環境の一例である。
【図8】 本発明にかかるノードのマスキング基準を初期化する方法を示す流れ図である。
【図9a】 本発明にかかる装置に関連するノードによるアクセスをマスクする方法を示す流れ図である。
【図9b】 本発明の一態様にかかる図9aのプロセスの部分をさらに詳細に示す流れ図である。
【図9c】 本発明の別の一態様にかかる図9aのプロセスの部分をさらに詳細に示す流れ図である。

Claims (44)

  1. 複数の記憶ユニットを含む共有記憶システムと、
    前記共有システムに動作可能に接続されたノードであって、該ノードに動作可能に接続されている各記憶ユニットを特定し、前記ノードによる前記記憶ユニットの少なくとも1つに対するアクセスをマスクするようにプログラムされ、前記複数の記憶ユニットを特定する1または複数のワールドリストを用いたプログラム可能なデータ構造を含むノードであって、前記データ構造に含まれる排他リストの少なくとも一部に基づいて決定された前記ノードによる前記記憶ユニットの少なくとも1つに対するアクセスをマスクし、前記排他リストからの削除により、前記記憶ユニットの少なくとも1つが前記ノードによってアクセスできるように構成された前記ノードと
    を備えたことを特徴とするシステム。
  2. 前記1または複数のワールドリストは、前記共有記憶システムの前記記憶ユニットが前記ノードの範囲内にあるか否かを特定し、前記ノードは、前記1または複数のワールドリストに基づいて記憶ユニットへのアクセスをマスクすることを特徴とする請求項1に記載のシステム。
  3. 前記1または複数のワールドリストは、プログラム可能な永続的データに対応する少なくとも一部分を含むことを特徴とする請求項2に記載のシステム。
  4. 前記1または複数のワールドリストは、プログラム可能な一時的データに対応する別の部分をさらに含むことを特徴とする請求項3に記載のシステム。
  5. 前記ノードは、前記1または複数のワールドリストに基づいて前記ノードと記憶ユニットとの間に通信チャネルを提供する前記ノード内のプログラム可能なリンクの生成および削除の少なくとも1つをさらにプログラムされていることを特徴とする請求項2に記載のシステム。
  6. 前記プログラム可能なリンクは、前記ノードに関連付けられた装置オブジェクトと対応する記憶ユニットとを含み、前記装置オブジェクトは、前記1または複数のワールドリストに基づいてインスタンス生成されることを特徴とする請求項5に記載のシステム。
  7. 前記プログラム可能なリンクは、前記ノードに動作可能に関連付けられた装置オブジェクトと、前記記憶ユニットの1つに動作可能に関連付けられた高レベルの装置オブジェクトとの間に通信経路を提供するプログラム可能な接続を含み、前記通信経路は、前記1または複数のワールドリストに従ってマスクされることを特徴とする請求項5に記載のシステム。
  8. 前記ノードは、前記ノードのマスキング基準を特定するプログラム可能な一時的データ構造とプログラム可能な永続的データ構造の少なくとも1つをさらに含むことを特徴とする請求項1に記載のシステム。
  9. 前記共有記憶システムは、前記ノードを前記複数の記憶ユニットに動作可能に接続する記憶領域ネットワークをさらに含むことを特徴とする請求項1に記載のシステム。
  10. 複数の装置と、
    前記複数の装置の各々を、複数のノードの各々に接続する少なくとも1つのバスとを備え、
    前記複数のノードの各々は、前記複数の装置の各々を特定するようにプログラムされ、前記複数のノードの各々は、オブジェクトのインスタンス生成されたリストを含むプログラム可能なデータ構造を有し、該プログラム可能なデータ構造に従って前記複数の装置の少なくとも1つへの前記ノードによるアクセスをマスクすることであって、前記データ構造に含まれる排他リストに基づいて前記ノードによる前記複数の装置の少なくとも1つに対するアクセスをマスクし、前記排他リストからの削除により、前記複数の装置の少なくとも1つを、前記ノードにアクセスできるようにプログラム可能であることを特徴とするシステム。
  11. 対応するノードの前記プログラム可能なデータ構造は、前記複数の装置の各々が、前記対応するノードの範囲内にあるか否かを特定し、前記対応するノードは、それに関連付けられた前記プログラム可能なデータ構造に基づいて装置へのアクセスをマスクすることを特徴とする請求項10に記載のシステム。
  12. 前記対応するノードの前記プログラム可能なデータ構造は、前記対応するノードに関連してマスクされるべき少なくとも1つの装置を特定するプログラム可能な永続的データを含むことを特徴とする請求項11に記載のシステム。
  13. 前記対応するノードの前記プログラム可能なデータ構造は、前記対応するノードに関連してマスクされるべき少なくとも1つの装置を特定するプログラム可能な一時的データを含むことを特徴とする請求項11に記載のシステム。
  14. 前記対応するノードの前記プログラム可能なデータ構造は、前記対応するノードに関連してマスクされるべき装置を特定するプログラム可能な永続的データとプログラム可能な一時的データとを含むことを特徴とする請求項11に記載のシステム。
  15. 前記複数のノードの各々は、前記プログラム可能なデータ構造に基づいて前記対応するノード内のプログラム可能なリンクの追加および削除の少なくとも1つをさらにプログラムされ、前記プログラム可能なリンクは、前記対応するノードと前記複数の装置の1つとの間に通信チャネルを提供することを特徴とする請求項11に記載のシステム。
  16. 前記プログラム可能なリンクは、前記対応するノードと前記複数の装置のうちの対応する1つとに関連付けられた装置オブジェクトを含み、該装置オブジェクトは、前記プログラム可能なデータ構造に基づいてインスタンス生成されることを特徴とする請求項15に記載のシステム。
  17. 前記プログラム可能なリンクは、前記対応するノードに動作可能に関連付けられている装置オブジェクトと、前記複数の装置の1つに動作可能に関連付けられている高レベルの装置オブジェクトとの間のプログラム可能な通信経路を含み、該通信経路は、前記対応するノードの前記プログラム可能なデータ構造に従ってマスクされることを特徴とする請求項15に記載のシステム。
  18. 前記ノードは、前記ノードに対するマスキング基準を特定するプログラム可能な一時的データ構造とプログラム可能な永続的データ構造の少なくとも1つをさらに含むことを特徴とする請求項10に記載のシステム。
  19. 前記複数の装置の少なくともいくつかは、記憶域ネットワークを介して前記ノードと動作可能に接続されている共有記憶システムの記憶ユニットであることを特徴とする請求項10に記載のシステム。
  20. 共有記憶システムの複数の記憶ユニットへのアクセスを管理するシステムであって、
    前記複数の記憶ユニットに動作可能に接続することができるノードであって、前記複数の記憶ユニットの各々が前記ノードに関連してマスクされるか否かを示すプログラム可能なデータ構造を有し、該プログラム可能なデータ構造は、少なくとも1つのワールドリストおよび範囲制御リストを含み、該範囲制御リストは、前記複数の記憶ユニットの各々を特定する排他リストを含み、該排他リストに特定された前記記憶ユニットの少なくとも1つの削除により、前記ノードに関連して前記記憶ユニットの少なくとも1つをマスクしないように構成されたノードと、
    前記複数の記憶ユニットの少なくとも1つに関連して前記ノードによるアクセスをマスクするために、プログラム命令に応じて前記プログラム可能なデータ構造を選択的に修正するインタフェースと
    を備えたことを特徴とするシステム。
  21. 前記ノードの前記プログラム可能なデータ構造は、前記ノードに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するプログラム可能な永続的データを含むことを特徴とする請求項20に記載のシステム。
  22. 前記ノードの前記プログラム可能なデータ構造は、前記ノードに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するプログラム可能な一時的データを含むことを特徴とする請求項20に記載のシステム。
  23. 前記ノードの前記プログラム可能なデータ構造は、前記ノードに関連してマスクされる記憶ユニットを特定するプログラム可能な永続的データとプログラム可能な一時的データとを含むことを特徴とする請求項20に記載のシステム。
  24. 前記ノードは、前記プログラム可能なデータ構造の変更に応じて前記ノードと対応する記憶ユニットとの間に通信チャネルを提供するプログラム可能なリンクの追加および削除の少なくとも1つをさらにプログラムされていることを特徴とする請求項20に記載のシステム。
  25. 前記プログラム可能なリンクは、前記ノードと前記対応する記憶ユニットとに関連付けられた装置オブジェクトを含み、該装置オブジェクトは、前記プログラム可能なデータ構造に基づいてインスタンス生成されることを特徴とする請求項24に記載のシステム。
  26. 前記プログラム可能なリンクは、前記ノードに動作可能に関連付けられている装置オブジェクトと、前記対応する記憶ユニットに動作可能に関連付けられている高レベルのオブジェクトとの間のプログラム可能な通信経路を含み、該通信経路は、前記プログラム可能なデータ構造に応じて変わることを特徴とする請求項24に記載のシステム。
  27. 1または複数のオブジェクトのインスタンス生成されたリストを含むプログラム可能なデータ構造の少なくとも一部に基づいて、ノードに動作可能に接続されている記憶ユニットを特定するステップと、
    少なくとも1つの選択された記憶ユニットに関連して前記ノードによるアクセスをマスクするステップであって、前記データ構造に含まれる排他リストを用いて、該排他リストに特定された少なくとも1つの選択された記憶ユニットの削除により、前記ノードに関連してマスクしないステップ
    を実行するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能な記憶媒体。
  28. ノードに動作可能に接続されている記憶ユニットを特定するステップと、
    選択された記憶ユニットを示す前記ノードにおいてプログラム可能なデータ構造を生成するステップであって、該プログラム可能なデータ構造は、1または複数のオブジェクトのインスタンス生成されたリスト、ワールドリストおよび範囲制御リストを含むステップと、
    前記プログラム可能なデータ構造に基づいて前記記憶ユニットの少なくとも1つに関連して前記ノードによるアクセスをマスクするステップと
    前記範囲制御リストに含まれる排他リストに特定された前記記憶ユニットの少なくとも1つの削除に基づいて、前記記憶ユニットの少なくとも1つをマスクしないステップと
    を実行するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能な記憶媒体。
  29. 前記ノードに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するデータを、前記ノードの永続的メモリに記憶するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  30. 前記ノードに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するデータを、前記ノードの一時的メモリに記憶するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項29に記載のコンピュータ読み取り可能な記憶媒体。
  31. 前記永続的メモリと前記一時的メモリの少なくとも1つに記憶されている前記データに基づいて前記プログラム可能なデータ構造を規定するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項30に記載のコンピュータ読み取り可能な記憶媒体。
  32. 前記ノードに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するデータを前記ノードの永続的メモリに記憶するステップと、前記永続的メモリに記憶されている前記データに基づいて前記プログラム可能なデータ構造を規定するステップとを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  33. 前記プログラム可能なデータ構造の変更に応じて、前記ノードと前記記憶ユニットの対応する1つとの間のプログラム可能なリンクを追加または削除するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  34. 前記プログラム可能なリンクは、前記ノードと前記複数の記憶ユニットの前記対応する1つとに関連付けられた装置オブジェクトを含み、前記プログラム可能なデータ構造に基づいて前記装置オブジェクトをインスタンス生成するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項33に記載のコンピュータ読み取り可能な記憶媒体。
  35. 前記プログラム可能なリンクは、前記ノードに動作可能に関連付けられている装置オブジェクトと、前記記憶ユニットの1つに動作可能に関連付けられている高レベルの装置オブジェクトとの間のプログラム可能な通信経路を含み、前記プログラム可能なデータ構造の変更に応じて、前記通信経路を追加または削除するステップを実行するためのコンピュータ実行可能命令を有することを特徴とする請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  36. 複数のコンピュータによる複数の共有記憶ユニットへのアクセスを管理する方法であって、
    少なくとも1つのワールドリストを含む1または複数のプログラム可能なデータ構造を利用して、前記複数の記憶ユニットを特定するステップと、
    前記複数のコンピュータの少なくとも1つによる前記複数の記憶ユニットの少なくとも1つへのアクセスをマスクするステップと
    前記1または複数のプログラム可能なデータ構造に含まれる排他リストに特定された前記複数の記憶ユニットの少なくとも1つの削除に基づいて、前記複数のコンピュータの少なくとも1つによるアクセスを提供するステップと
    を備えたことを特徴とする方法。
  37. 記憶ユニットが前記少なくとも1つのコンピュータに関連してマスクされるべきか否かのマスキング基準を示すプログラム可能なデータ構造を、前記少なくとも1つのコンピュータで記憶するステップをさらに含み、前記マスクするステップは、前記プログラム可能なデータ構造に基づいて実行されることを特徴とする請求項36に記載の方法。
  38. 前記少なくとも1つのコンピュータに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するデータを、前記少なくとも1つのコンピュータの永続的メモリに記憶するステップをさらに含むことを特徴とする請求項に37記載の方法。
  39. 前記少なくとも1つのコンピュータに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定するデータを、前記少なくとも1つのコンピュータの一時的メモリに記憶するステップをさらに含むことを特徴とする請求項に38記載の方法。
  40. 前記永続的メモリと前記一時的メモリの少なくとも1つに記憶されている前記データに基づいて前記プログラム可能なデータ構造を規定するステップをさらに含むことを特徴とする請求項39に記載の方法。
  41. 前記少なくとも1つのコンピュータに関連してマスクされる前記複数の記憶ユニットの少なくとも1つを特定する永続的および一時的データの少なくとも1つを、前記少なくとも1つのコンピュータに記憶するステップと、永続的および一時的データの前記少なくとも1つに基づいて前記プログラム可能なデータ構造を規定するステップとをさらに含むことを特徴とする請求項37に記載の方法。
  42. 前記少なくとも1つのコンピュータにおいて、前記プログラム可能なデータ構造の変更に応じて、前記少なくとも1つのコンピュータと対応する記憶ユニットとの間に通信チャネルを提供するプログラム可能なリンクを追加または削除するステップをさらに含むことを特徴とする請求項37に記載の方法。
  43. 前記プログラム可能なリンクは、前記少なくとも1つのコンピュータと前記複数の記憶ユニットの対応する1つとに関連付けられた装置オブジェクトを含み、前記プログラム可能なデータ構造に基づいて前記少なくとも1つのコンピュータにおいて前記装置オブジェクトをインスタンス生成するステップをさらに含むことを特徴とする請求項42に記載の方法。
  44. 前記プログラム可能なリンクは、前記少なくとも1つのコンピュータに動作可能に関連付けられた装置オブジェクトと、前記記憶ユニットの1つに動作可能に関連付けられた高レベルの装置オブジェクトとの間のプログラム可能な通信経路を含み、前記プログラム可能なデータ構造の変更に応じて前記通信経路を追加または削除するステップをさらに含むことを特徴とする請求項42に記載の方法。
JP2001579114A 2000-04-20 2001-02-02 記憶ユニットへのアクセスを管理するシステム及びその方法 Expired - Lifetime JP3965052B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/553,114 2000-04-20
US09/553,114 US6643748B1 (en) 2000-04-20 2000-04-20 Programmatic masking of storage units
PCT/US2001/003632 WO2001082091A1 (en) 2000-04-20 2001-02-02 Programmatic masking of storage units

Publications (2)

Publication Number Publication Date
JP2003532193A JP2003532193A (ja) 2003-10-28
JP3965052B2 true JP3965052B2 (ja) 2007-08-22

Family

ID=24208188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001579114A Expired - Lifetime JP3965052B2 (ja) 2000-04-20 2001-02-02 記憶ユニットへのアクセスを管理するシステム及びその方法

Country Status (13)

Country Link
US (1) US6643748B1 (ja)
EP (1) EP1275050B1 (ja)
JP (1) JP3965052B2 (ja)
CN (1) CN100485647C (ja)
AT (1) ATE423353T1 (ja)
AU (1) AU2001233312A1 (ja)
BR (1) BR0110222A (ja)
CA (1) CA2406902C (ja)
DE (1) DE60137685D1 (ja)
HK (1) HK1053176B (ja)
MX (1) MXPA02010378A (ja)
RU (1) RU2265882C2 (ja)
WO (1) WO2001082091A1 (ja)

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657727B2 (en) * 2000-01-14 2010-02-02 Hitachi, Ltd. Security for logical unit in storage subsystem
US6684209B1 (en) * 2000-01-14 2004-01-27 Hitachi, Ltd. Security method and system for storage subsystem
JP4651230B2 (ja) * 2001-07-13 2011-03-16 株式会社日立製作所 記憶システム及び論理ユニットへのアクセス制御方法
JP4719957B2 (ja) * 2000-05-24 2011-07-06 株式会社日立製作所 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法
US7269631B2 (en) * 2000-06-02 2007-09-11 Hewlett-Packard Development Company, L.P. Architecture for parallel distributed table driven I/O mapping
US7401139B1 (en) * 2000-09-07 2008-07-15 International Business Machines Corporation Storage area network management and configuration method and apparatus via enabling in-band communications
US7051101B1 (en) * 2000-09-13 2006-05-23 Emc Corporation Methods and apparatus for controlling devices within storage network
US7200646B2 (en) * 2001-04-25 2007-04-03 Sun Microsystems, Inc. System and method for on-demand node creation for fabric devices
US6920491B2 (en) * 2001-04-25 2005-07-19 Sun Microsystems, Inc. Fabric device configuration interface for onlining fabric devices for use from a host system
US20020194407A1 (en) * 2001-04-25 2002-12-19 Kim Hyon T. Maintaining fabric device configuration through dynamic reconfiguration
US7171474B2 (en) * 2001-04-25 2007-01-30 Sun Microsystems, Inc. Persistent repository for on-demand node creation for fabric devices
WO2003027853A1 (en) * 2001-09-21 2003-04-03 Polyserve, Inc. A system and method for synchronisation for enforcing mutual exclusion among multiple negotiators
US20030154271A1 (en) * 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US6965951B2 (en) * 2002-05-17 2005-11-15 Sun Microsystems, Inc. Device centric discovery and configuration for fabric devices
US20040015611A1 (en) * 2002-06-25 2004-01-22 Kim Hyon T. Interfaces to multiple layers of device properties in a storage network
US7290045B2 (en) * 2002-07-01 2007-10-30 Sun Microsystems, Inc. Method and apparatus for managing a storage area network including a self-contained storage system
JP2004118250A (ja) * 2002-09-24 2004-04-15 Hitachi Ltd 計算機管理システム、管理プログラム
US7222348B1 (en) * 2002-12-16 2007-05-22 Unisys Corporation Universal multi-path driver for storage systems
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7577772B2 (en) 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US20060090196A1 (en) * 2004-10-21 2006-04-27 Van Bemmel Jeroen Method, apparatus and system for enforcing security policies
US7392437B2 (en) * 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
WO2007030595A2 (en) * 2005-09-06 2007-03-15 Home Xperience, Inc. Extensible universal home automation integration framework and user interface
US7917712B2 (en) * 2005-09-30 2011-03-29 Hewlett-Packard Development Company, L.P. Method and system for governing access to storage device on SAN
US8438319B1 (en) * 2010-06-24 2013-05-07 Atmel Wi-Fi Solutions, Inc. Method and apparatus for virtualizing hardware dongle over a wireless connection
US20080077638A1 (en) * 2006-09-21 2008-03-27 Microsoft Corporation Distributed storage in a computing environment
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070172A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for remote direct memory access to a solid-state storage device
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US7765433B1 (en) * 2007-03-14 2010-07-27 Symantec Corporation Technique for performing disaster rehearsal for a storage area network utilizing a replication appliance
RU2450349C2 (ru) * 2009-11-26 2012-05-10 Хун-Чиэнь ЧОУ Способ и вычислительное устройство защиты данных
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9483201B2 (en) * 2012-07-31 2016-11-01 Commvault Systems, Inc. Administering a shared, on-line pool of data storage resources for performing data storage operations
US9864606B2 (en) * 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
JP6291966B2 (ja) 2014-03-31 2018-03-14 日本電気株式会社 初期化処理高速化システム、初期化処理高速化装置、初期化処理高速化方法及び初期化処理高速化プログラム
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN107408074B (zh) * 2015-02-10 2021-07-27 净睿存储股份有限公司 存储系统架构
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
CN105095013B (zh) * 2015-06-04 2017-11-21 华为技术有限公司 数据存储方法、恢复方法、相关装置以及系统
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11227065B2 (en) * 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5837585B2 (ja) * 1975-09-30 1983-08-17 株式会社東芝 ケイサンキソウチ
DE2712575C2 (de) * 1977-03-22 1985-12-19 Walter Dipl.-Ing. 8011 Putzbrunn Motsch Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
US5253328A (en) * 1989-11-17 1993-10-12 Microelectronics & Computer Technology Corp. Neural-network content-addressable memory
US5357621A (en) * 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5423044A (en) * 1992-06-16 1995-06-06 International Business Machines Corporation Shared, distributed lock manager for loosely coupled processing systems
JPH06236325A (ja) * 1993-02-08 1994-08-23 Sansei Denshi Japan Kk データ記憶装置
US5592641A (en) * 1993-06-30 1997-01-07 Intel Corporation Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status
US5673317A (en) * 1995-03-22 1997-09-30 Ora Electronics, Inc. System and method for preventing unauthorized programming of wireless network access devices
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US5794244A (en) * 1996-06-04 1998-08-11 International Business Machines Corporation Data storage system with table-driven device selector
US6031842A (en) 1996-09-11 2000-02-29 Mcdata Corporation Low latency shared memory switch architecture
EP0858036A3 (en) * 1997-02-10 1999-12-22 Compaq Computer Corporation Fibre channel attached storage architecture
US6005849A (en) 1997-09-24 1999-12-21 Emulex Corporation Full-duplex communication processor which can be used for fibre channel frames
US6094699A (en) * 1998-02-13 2000-07-25 Mylex Corporation Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller

Also Published As

Publication number Publication date
CA2406902C (en) 2009-11-03
HK1053176B (zh) 2009-07-17
BR0110222A (pt) 2004-02-25
EP1275050A1 (en) 2003-01-15
AU2001233312A1 (en) 2001-11-07
ATE423353T1 (de) 2009-03-15
MXPA02010378A (es) 2003-05-23
JP2003532193A (ja) 2003-10-28
US6643748B1 (en) 2003-11-04
EP1275050B1 (en) 2009-02-18
CN1430747A (zh) 2003-07-16
HK1053176A1 (en) 2003-10-10
RU2265882C2 (ru) 2005-12-10
RU2002131156A (ru) 2004-03-10
CA2406902A1 (en) 2001-11-01
DE60137685D1 (de) 2009-04-02
CN100485647C (zh) 2009-05-06
WO2001082091A1 (en) 2001-11-01

Similar Documents

Publication Publication Date Title
JP3965052B2 (ja) 記憶ユニットへのアクセスを管理するシステム及びその方法
US7840723B1 (en) System and method for maintaining and accessing information regarding virtual storage devices
CN101080694B (zh) 将操作系统从源计算机迁移到目的计算机的方法和装置
US6209023B1 (en) Supporting a SCSI device on a non-SCSI transport medium of a network
US7272674B1 (en) System and method for storage device active path coordination among hosts
US6073209A (en) Data storage controller providing multiple hosts with access to multiple storage subsystems
US6892316B2 (en) Switchable resource management in clustered computer system
JP4575028B2 (ja) ディスクアレイ装置およびその制御方法
US20030208581A1 (en) Discovery of fabric devices using information from devices and switches
US20020161596A1 (en) System and method for validation of storage device addresses
JPH09502035A (ja) 信頼性がありかつ効率的なリムーバブルメディアサービスを備えたコンピュータネットワーク
CN101799743A (zh) 用于逻辑卷管理的方法和装置
JP2004192105A (ja) 記憶装置の接続装置およびそれを含むコンピュータシステム
US20040199680A1 (en) Centralized technique for assigning I/O controllers to hosts in a cluster
US20040148329A1 (en) Storage device system and storage device system activating method
US7136907B1 (en) Method and system for informing an operating system in a system area network when a new device is connected
JP2002229837A (ja) 共有ディスク・パラレル・データ・ファイル内のデータに対するアクセスを制御する方法
US7200646B2 (en) System and method for on-demand node creation for fabric devices
US20020161934A1 (en) System and method for communication of data between a host and an administration system
US20050172005A1 (en) Forestalling use of duplicate volume identifiers
JP2003204327A (ja) コンピュータシステムの管理方法、管理プログラム、記憶装置および表示装置
US20050283531A1 (en) Method and apparatus for combining resource properties and device operations using stateful Web services
JP4485875B2 (ja) ストレージ接続変更方法、ストレージ管理システム及びプログラム
US20050172094A1 (en) Selectively establishing read-only access to volume
US20050177539A1 (en) Blocking access by preventing completion of volume mount request

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050926

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050926

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060710

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20060710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060711

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070525

R150 Certificate of patent or registration of utility model

Ref document number: 3965052

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110601

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120601

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120601

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130601

Year of fee payment: 6

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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