JP2001526815A - リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ - Google Patents

リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ

Info

Publication number
JP2001526815A
JP2001526815A JP50281999A JP50281999A JP2001526815A JP 2001526815 A JP2001526815 A JP 2001526815A JP 50281999 A JP50281999 A JP 50281999A JP 50281999 A JP50281999 A JP 50281999A JP 2001526815 A JP2001526815 A JP 2001526815A
Authority
JP
Japan
Prior art keywords
driver
file
information
storage
request
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.)
Withdrawn
Application number
JP50281999A
Other languages
English (en)
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 JP2001526815A publication Critical patent/JP2001526815A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

(57)【要約】 大量のデータを格納する全体的なコストを削減するために、第1ローカル・ディスク(118)からアーカイブ・オフライン・ストレージ(122)までの記憶デバイスの階層を用いるシステムを開発した。このような記憶デバイス(118,122)は、階層状に管理することができ、稀にしかアクセスされないデータをアーカイブ・ストレージ(122)に移動させることができる。本発明は、階層ストレージ・マネージャ(110)のI/Oシステムへの緊密な統合化に基づき、リモート格納属性(112)を識別し、他のあらゆる属性と丁度同じようにI/Oシステム内部で追跡することを可能にする。本発明の実現例は、層状ドライバ・モデル上で中継することができ、下位ドライバ(104)がリモート格納属性(112)を有するファイルの存在を検出し、次いでリモート格納属性(112)を有するファイルを伴うI/O要求を処理する制御を、上位ドライバ(100)に移管する。次いで、上位ドライバ(100)は、I/O要求の処理を終了する制御を引き受ける。

Description

【発明の詳細な説明】 リモート・ストレージに対してファイル・システム にネーティブな支援を与える ファイル・システム・プリミティブ 発明の背景 1.発明の分野 本発明は、ファイル・システムにおいてリモート・ストレージに対する支援を 与えるシステムおよび方法に関する。更に特定すれば、本発明は、ファイル・シ ステムがリモート・ストレージに対してネーティブな支援(native support)を与 えられるようにすることにより、一部分をリモートに格納してあるファイルまた はその他のエンティティにおいて、当該ファイル・システムが、ファイルまたは その他のエンティティを伴うI/O要求を本質的に識別しかつ処理することを可 能とするものである。2.従来の技術的現状 コンピュータのハードウエアおよびソフトウエアにおいては多くの発展がなさ れたが、一般的原理の一部は不変のままである。メモリやデータ・ストレージの コストは減少し続け、所与のサイズのデバイスの記憶容量は増大し続けているが 、データを格納するために用いる媒体や、データのアクセス性(accessibility) というようないくつかの要因によって、引き続きデータ格納コストには差がある 。例えば、一般的に、1データ・ワードをキャッシュ・メモリに格納する方がシ ステムRAMに格納するよりも高価である。一方、システムRAMは、磁気ディ スク・ストレージよりも1ワード当たりの格納は高価である。磁気ディスク・ス トレージは、アーカイブ・ストレージよりも1ワード当たりの格納は高価である 。このように、用いないデータまたは使用頻度の低いデータ程安価なストレージ に移動させようという考えに進みつつある。加えて、これまで以上に増大しつつ あるデ ータ量にアクセスする要望が、データを価格効率的に格納しながらも、同時に所 望のデータに対する適度なアクセス速度を得ようとする動機付けになっている。 従来技術におけるデータのリモート・ストレージの開発および実施は、別個の 非統合階層型記憶システムを有するメインフレーム計算機モデルに基づくもので ある。階層型記憶システムは、データセットと呼ぶ記憶単位の、記憶デバイスの 階層における配置を管理する。記憶デバイスの階層は、ハイエンド高スループッ ト磁気ディスク、通常のディスク群、ジュータボックス型光ディスク(jukeboxes of optical disks)、テープ・サイロ(tape silo)、オフ・ラインで格納するテ ープ群のように、広範囲のデバイスを含むことができる。種々のデータセットを どこに格納すべきか決定する場合、階層型記憶システムは、典型的に、格納のコ スト、検索時間、アクセス頻度等のような種々の検討項目間のバランスを取る。 ファイルは、典型的に、ユーザまたはその他のソフトウエア・エンティティが データを格納可能なデータ部分、名称部分、およびファイルへのアクセス制御と いうようなことに用いることができる種々のフラグのような、種々のコンポーネ ントを有する。従来技術のシステムでは、主ストレージから除去しリモート・ス トレージに移動させるファイルは、多くの場合「スタブ・ファイル」で置換する 。スタブ・ファイルとは、階層型記憶システムが、当該ファイル内のデータがど こに格納されているか判断可能にする情報を含むファイルである。しかしながら 、このような手法には、いくつかの問題がある。 スタブ・ファイルは、ファイルのデータ部分においてリモート格納ファイルの 位置を記述する情報を格納する。旧来のファイル・システムは、通常、ファイル ・システムがファイルのデータ部分の内容を判定できるように構成されていない 。したがって、従来技術のシステムは、非統合的な階層ストレージ・マネージャ を頼りに、スタブ・ファイルのデータ部分を読み出し、リモート格納ファイルが どこに位置するのか判断している。このような非統合的な手法では、階層型記憶 システムは、スタブ・ファイルと同じ外観を有するファイルに向けて送られるあ らゆるI/O動作を傍受することが必要となる。言い換えると、ファイルを見た だけでは、それがスタブ・ファイルか、または単にスタブ・ファイルと同じ外観 を偶然有するに過ぎない非スタブ・ファイルか判断することは不可能である。例 え ば、スタブ・ファイルは多くの場合固定長を有する。しかしながら、固定長以外 には、スタブ・ファイルを、スタブ・ファイルと同じ長さを偶然有する通常のフ ァイルから区別するものは、外部には何もない。全てのスタブ・ファイルを識別 するためには、典型的に、スタブ・ファイルと同じ長さを有するファイルに向け られる全てのコールを傍受するように、階層ストレージ・マネージャを設定する 。一旦コールを傍受したなら、次にファイルを検査し、これが本当にスタブ・フ ァイルなのか、または偶然長さが同じなだけの通常のファイルなのか判定するこ とができる。 以上の検討から、階層ストレージ・マネージャによって非スタブ・ファイルを 検査する可能性が確かにあることは明白である。この結果は望ましいものではな い。何故なら、通常のファイルへのアクセスが遅れ、不要な処理オーバーヘッド が余分に生ずるからである。従来技術のシステムには、異なる方法を用いて、同 じデータ・バイト数を有するが通常のデータ・ファイルであるユーザ・ファイル からスタブ・ファイルを差別化することによって、このオーバーヘッドを解消し ようとしたものがある。これら種々の手法は、エラーの確率を低下させることが できるが、完全にそれを解消することはできない。したがって、通常のデータ・ ファイルと、リモート格納データを有するデータ・ファイルとの間で明確に差別 化することが可能な階層ストレージ・マネージャを提供することができれば、当 技術分野における発展となろう。また、このようなリモート格納ファイルが実際 にI/Oシステムが処理するI/O動作に関与する場合にのみ、リモート格納フ ァイルに伴う余分なオーバーヘッドが発生する階層ストレージ・マネージャを有 することができれば、当技術分野における発展となろう。 従来技術の階層ストレージ・マネージャには、当該階層ストレージ・マネージ ャの非統合的本質により、既存のファイル・システムに殆どまたは全く影響を与 えることなく、システム内に階層型記憶を実施することができるという1つの利 点がある。このような階層ストレージ・マネージャは、各コールを検査して、そ れがスタブ・ファイルを伴うか否かについて判定を行うことができる。コールが スタブ・ファイルを伴う場合、階層ストレージ・マネージャはこのコールを傍受 し、このコールを処理することができる。しかしながら、このコールがスタブ・ ファイルを伴わない場合、階層ストレージ・マネージャはこのコールを正規のフ ァイル・システムに渡すことができる。したがって、ファイル・システムは、階 層ストレージ・マネージャが存在することを知る必要がない。残念なことに、こ のような手法では、コールがスタブ・ファイルを伴わない場合でも、コールが行 われる毎に余分なオーバーヘッドが生じてしまう。これは、階層ストレージ・マ ネージャが各コールを検査しなければならないからである。システムが多数の階 層ストレージ・マネージャを使用する場合、オーバーヘッドは急速に増加する虞 れがある。したがって、既存のファイル・システムに殆どまたは全く変更が生じ ないという利点を維持しつつ、同時にリモート格納データのないファイルに対す るあらゆるオーバーヘッドを極力抑えるかあるいは解消するような階層ストレー ジ・マネージャを提供することが望ましい。言い換えると、リモート格納データ のないファイルに対しては既存のアクセス速度を維持し、リモート格納データの あるファイルについてのみ追加のオーバーヘッドを発生する、階層型記憶の手法 を有することができれば非常に有利であろう。また、単一のシステムに複数の階 層ストレージ・マネージャを用いる場合においてもこれらの特性全てを維持する ことができれば、非常に有利であろう。 従来技術の階層ストレージ管理方法には、これらの基準となるモデルが新たな 記憶要件への組み込みや適応化に容易に対応できないという別の欠点がある。例 えば、従来技術のリモート・データ格納方法は、通常のファイルをスタブ・ファ イルと置換することを必要とした。このようなスタブ・ファイルは、事実上通常 のファイルの全コンポーネントをスタブ・ファイルのコンポーネントと置換する 。したがって、何らかの動作が通常のファイルを伴う場合、典型的に、要求を満 たすためにリモート・ストレージからこれを検索しなければならない。特定のフ ァイルに関連する情報の内どれがリモートに格納されているのか判定する際に高 い自由度を可能とし、実行する頻度が高いと考えられる動作は、リモート・スト レージからファイル全体を呼び出すことなく処理可能とすることができれば、非 常に有利であろう。 発明の概要 本発明は、従東の技術的現状における前述の問題を効果的に克服するものであ り、ファイル・システムにおいてリモート・データ格納に対するネーティブな支 援を与えつつ、同時にこのようなネーティブな機能を組み込むために既存のファ イル・システムに必要ないかなる変更も最小に抑えるシステムおよび方法に関す る。 本発明は、複数のドライバまたはデータ・マネージャが協働してI/O要求を 満たすモデルを基本とすることができる。ドライバまたはデータ・マネージャは 、層状関係を有することができ、各ドライバまたはデータ・マネージャがI/O 要求の特定部分を処理する任務を負う。全ての層が協働してI/O要求を完全に 満たすように、層間で情報を互いに受け渡すことができる。 本発明では、ファイルおよびディレクトリは、典型的に、2つの広いカテゴリ のコンポーネント即ち「属性」を有することを認識する。属性のカテゴリの一方 は、典型的に、ユーザ制御情報を格納するために用いる。このユーザ属性カテゴ リは、ファイルのデータ部分を含み、ユーザまたはその他のクライアント・プロ セスが所望の情報を格納するところである。属性の他のグループは、典型的に、 I/Oシステムによる主な使用または排他的な使用のために除外しておく。これ らのシステム属性は、アクセス制御情報を含む。これは、どのユーザまたはクラ イアント・プロセスが当該ファイルを、そしてどのように(例えば、リード・オ ンリ・アクセス、リード・ライト・アクセス等)アクセスすることができるのか 確認する。I/Oシステムによる主なアクセスまたは排他的なアクセスのために 確保してある他の属性には、ローカル記憶媒体上のどこに主データ属性を格納し てあるかファイル・システムに確認させる情報を含むことも可能である。本発明 は、リモート・ストレージ属性(remote storage attribute)と呼ぶ、追加のシス テム属性を加える。このリモート・ストレージ属性は、I/Oシステムが、リモ ートに格納してあるファイルまたはディレクトリの属性をどこで見つけることが できるのか確認させるのに十分な情報を収容する。 本発明の最も一般的な観点では、ファイル属性のいずれでもまたは全てをリモ ートに格納することが可能である。この柔軟度により、使用頻度の高い情報をロ ーカルに保持しておき、使用頻度の低い情報をリモートに格納することが可能と なる。ローカル/リモート格納の判断は、属性毎に下すことができる。しかしな がら、I/Oシステムに、どの属性をリモートに格納し、リモートに格納した属 性がどこに位置するのかを確認させるには、十分な情報をローカル・ストレージ に残しておかなければならない。 本発明の一実施形態では、前述の層状ドライバ・モデルを利用して本発明を実 施する。このような実現例は、例えば、ローカル記憶媒体上に格納してある情報 にアクセスすることができる1つ以上のファイル・システム・ドライバを備える ことができる。ファイル・システム・ドライバの内少なくとも1つは、ファイル のリモート・ストレージ属性が存在する場合、それを識別するように適合化して ある。したがって、このファイル・システム・ドライバは、リモート・ストレー ジ属性に格納してあるあらゆる情報を抽出し、その情報を階層ストレージ・マネ ージャに渡すことができる。すると、階層ストレージ・マネージャは、I/O要 求を完了する責務を引き受けることができる。場合によっては、階層ストレージ ・マネージャは、それ自体でI/O要求を完全に処理することが可能なこともあ り、あるいはリモート・ストレージ属性またはローカル記憶媒体に格納してある 情報を用いてI/O要求を処理することができることもある。このような場合、 階層ストレージ・マネージャは、リモートに格納してある属性をリコールする必 要がない。 階層ストレージ・マネージャが、リモートに格納してある属性をリコールせず にはI/O要求を処理することができない場合、階層ストレージ・マネージャは リコール情報を発生し、これを適切なドライバまたはコンポーネントに渡すこと によって、必要な情報をリコールすることができる。人の介入なく検索できるよ うに情報を格納してある場合、このようなリコール手順は、I/O要求をドライ バまたはその他のデータ・マネージャに発行することを伴う場合がある。その際 、ドライバまたはその他のデータ・マネージャはリコール手順を起動し、一旦デ ータを検索したなら、適切な情報を階層ストレージ・マネージャに渡す。代替案 として、階層ストレージ・マネージャは、オペレータまたはその他の個人に適切 な媒体を検索しロードするように警告することによって、情報にアクセスするこ とができる。本発明の構造全体は、広範囲にわたる記憶モデルおよび記憶階層に 対 応する高い柔軟性を提供する。 以上の要約から、多種多様の階層ストレージ・マネージャを実施し、既存のシ ステムに組み込むことができ、しかもリモートに格納した属性を有さないファイ ルまたはディレクトリにアクセスするI/O要求には全くオーバーヘッドの追加 を招かないことが明白であろう。その理由は、このようなI/O要求は、階層ス トレージ・マネージャを必要とすることなく処理するからである。ファイル・シ ステム・ドライバは、ファイルがリモート格納属性(remotely stored attribute )を必要とせず、従来通りにI/O要求を満たす(fill)ように進めることを絶対 的に判断することができる。しかしながら、リモートに格納してある属性を有す るファイルに遭遇した場合、ファイル・システム・ドライバは適切な情報を階層 ストレージ・マネージャに渡し、階層ストレージ・マネージャはこのI/O要求 を処理する責務を引き受ける。この実現例では、リモートに格納してあるデータ に対する対応は、通常ではI/O処理に関与しないソフトウエア・コンポーネン トに介入させI/O要求を処理するための制御を引き受けさせる機構による、通 常の処理シーケンスの割込と見なすことができる。 一実施形態では、リモート・ストレージ属性は、タグおよびデータ値双方を有 する。タグは、リモート・ストレージ属性の「オーナ」である階層ストレージ・ マネージャを特定するために用いる。通常、リモート・ストレージ属性のオーナ は、関連するファイルを伴うI/O要求の全てまたは一部を処理する責務を負う 。データ値は、リモート・ストレージ属性のオーナがその中に格納したデータを 収容する。オーナは、リモート・ストレージ属性の値を用いて、関連するファイ ルを伴うI/O要求を適正に完了するために必要なまたは役立つあらゆる情報を 格納することができる。例えば、殆どではないにしても多くの階層ストレージ・ マネージャは、このようなデータ値を用いて、リモートに格納してある属性の位 置を格納することが予期される。加えて、データ値は、どの属性をローカルに格 納し、どの属性をリモートに格納するのかを格納するためにも用いることができ る。 複数の層状ドライバを用いる際、ファイル・システム・ドライバがリモート・ ストレージ属性を識別する場合、ドライバは、リモート・ストレージ属性のタグ および値を抽出することができる。次いで、階層ストレージ・マネージャがそれ 自体をリモート・ストレージ属性のオーナであると認識するまで、このタグおよ び値を他の情報と共に、他の層状ドライバに渡すことができる。次に、リモート ・ストレージ属性のオーナは、I/O要求を処理する制御を引き受けることがで き、このI/O要求を完全に処理することができる。あるいは、他のドライバま たはコンポーネントを利用してI/O要求を完全に処理することも可能である。 このような実現例は、非常に柔軟なフレームワークをもたらし、多数の階層ス トレージ・マネージャが単一システム内に共存することを可能にする。この場合 、各階層ストレージ・マネージャは、それ自体の個々のリモート格納属性に関係 するI/O要求を処理する。このような実現例は、高度のオーバーヘッド分離を 達成するので、特定の形式のファイルを処理するためにシステムに追加の階層ス トレージ・マネージャを加入しても、リモート格納属性を有するファイルまたは ディレクトリに関係するI/O要求に伴うオーバーヘッドが大幅に追加されるこ とはない。 本発明の更に別の利点は、以下の説明に明記してあり、部分的にその説明から 自明であり、あるいは本発明の実施によって習得することができよう。本発明の 利点は、添付の請求の範囲に特定して指摘してある手段(instrument)および組み 合わせによって、実現し獲得することができる。本発明のこれらおよびその他の 特徴は、以下の説明および添付の請求の範囲から一層明白となり、以下に明記す る本発明の実施によって習得することができよう。 図面の簡単な説明 本発明の前述の利点およびその他の利点を得る態様について、添付図面に図示 した具体的な実施形態を参照しながら先に端的に記載した本発明を更に特定して 説明する。これらの図面は本発明の典型的な実施形態を図示するに過ぎず、した がってその範囲の限定と見なすべきでないことを理解の上、添付図面の使用によ り、更に具体的かつ詳細に本発明の記載および説明を行う。 図1は、層状ドライバを用いたI/Oシステムを示す図である。 図2は、リモートに属性を格納するプロセスを示す図である。 図3は、リモートに格納してある属性を伴うI/O要求の処理を示す図である 。 図4は、本発明と共に用いるのに適したファイルの属性を示す図である。 図5は、リモート・ストレージ属性に遭遇した場合の、ある層状ドライバから 別の層状ドライバへの制御移管を示す図である。 図6は、2つの層状ドライバが提供するサービスを示し、本発明によるドライ バへの全体的な機能性の組み込みを示す図である。 図7は、リモートに格納してあるデータを伴うI/O要求を処理するために、 本発明をどのように利用することができるかについて示す一例である。 図8は、別のコンピュータを用いてI/O要求を完了する例を示す図である。 好適な実施形態の詳細な説明 以下、本発明のシステムおよび方法を実施するために用いる実施形態の構造ま たは処理を例示する図を用いて、本発明の説明を行う。このように図を用いて本 発明を提示することは、その範囲の限定と見なすべきではない。本発明は、デー タのリモート格納を実施する方法およびシステム双方を、ファイル・システムの ネーティブ・コンポーネントとして考える。本発明の実施形態は、1つ以上の中 央演算装置(CPU)またはコンピュータ実行可能命令を実行するその他の処理 手段、実行可能な命令を格納するコンピュータ読取可能媒体、ディスプレイある いは情報を表示または出力するその他の出力手段、キーボードあるいは情報を入 力するその他の入力手段等の標準的なコンピュータ・ハードウエアを備えた、特 殊目的用コンピュータまたは汎用コンピュータで構成することができる。 本発明は、記憶デバイスの階層がシステムに使用可能であることを想定する。 このような記憶デバイスの階層は、あらゆる数または形式の記憶媒体を備えるこ とができ、それらには、ハイエンド・高スループット磁気ディスク、1つ以上の 通常のディスク、光ディスク、光ディスクのジュークボックス、テープ・サイロ および/またはオフラインで格納するテープの集合体を含み、なおもこれらに限 定する訳ではない。一般的には、しかしながら、種々の記憶デバイスは2つの基 本的なカテゴリに分類することができる。第1のカテゴリは、コンピュータ・シ ステムにローカルに使用可能な情報を収容するローカル・ストレージ(local sto rage)である。第2のカテゴリは、コンピュータ・システムにローカルにアク セスすることができない情報を収容するあらゆる形式の記憶デバイスを含む、リ モート・ストレージ(remote storage)である。これら2つデバイス・カテゴリ間 の線は明確に定義することはできないが、一般的に、ローカル・ストレージは、 比較的アクセス時間が素早く、頻繁にアクセスするデータを格納するために用い る。一方リモート・ストレージは、アクセス時間がかなり長く、頻繁にはアクセ スしないデータを格納するために用いる。また、リモート・ストレージの容量は 、典型的に、ローカル・ストレージの容量よりも1桁大きい。 また、本発明の範囲内の実施形態は、実行可能な命令またはデータ・フィール ドを格納してある、コンピュータ読取可能媒体も含む。このようなコンピュータ 読取可能媒体は、汎用コンピュータまたは特殊目的用コンピュータによってアク セス可能なあらゆる入手可能な媒体とすることができる。限定ではない一例とし て、このようなコンピュータ読取可能媒体は、RAM、ROM、EEPROM、 CD−ROMまたはその他の光ディスク・ストレージ、磁気ディスク・ストレー ジまたはその他の磁気記憶デバイス、あるいは所望の実行可能命令またはデータ ・フィールドを格納するために使用することができ、かつ汎用コンピュータまた は特殊目的用コンピュータによってアクセス可能なその他のあらゆる媒体を含む ことができる。また、これらの組み合わせも、コンピュータ読取可能媒体の範囲 内に含まれて当然である。実行可能な命令は、例えば、汎用コンピュータ、特殊 目的用コンピュータ、または特殊目的処理装置にある種の機能または機能群を実 行させる命令およびデータから成る。 本発明の実施形態には、I/O処理を行うために複数のドライバ手段を用いる システムにおいて実施するとよいものがある。これらの実施形態の状況(context )を一層よく理解するために、図1を参照する。図1は、クライアント・プロセ スと、I/O処理を行うための複数のドライバ手段を用いるI/Oシステムを有 するオペレーティング・システムとの間の双方向処理の簡略化した図を示す。こ の 図1は、I/O処理を行うために複数のドライバ手段を用いるあらゆるオペレー ティング・システムを表わす図と考えることもできる。図1において、クライア ント・プロセス20は、オペレーティング・システム・サービス22を利用して I/O要求を行う。これを行うには、典型的に、オペレーティング・システムが 提供するアプリケーション・プログラム・インターフェース(API)機能に対 して、クライアント・プロセス20がコールする。適切なAPI機能をコールす ることにより、結果的にオペレーティング・システム・サービス22へのコール が得られる。このようなコールを矢印24で示す。 図1では、クライアント・プロセス20は、「ユーザ」モードで動作するよう に示してあり、オペレーティング・システム・サービスは、「カーネル」モード で動作するように示してある。最近のオペレーティング・システムは、典型的に 、種々のアプリケーション・プログラムや直感的ユーザ・インターフェースにロ バストな環境を提供する。このようなオペレーティング・システムは、通常、当 該オペレーティング・システムの精巧さのレベルや、オペレーティング・システ ムが実施するセキュリティ機能(security feature)に応じて、異なるオペレーテ ィング・レベルまたは「モード」を有する。通常のアプリケーション・プログラ ムは、典型的には最も低い優先度で走り、セキュリティ・デバイスの完全な補体 (full complement)を適所に有し、他のアプリケーションまたはオペレーティン グ・システムのその他の層との干渉を禁止する。オペレーティング・システムが 提供するハードウエアおよびその他のサービスは、インターフェースまたは機構 を制御することによってのみアクセスされ、ユーザ・アプリケーションまたはそ の他のユーザ・モードのプロセスがシステムを「クラッシュ」する可能性を抑制 する。典型的に、最低優先度モードをユーザ・モードと呼び、これは殆どのコン ピュータ・ユーザが精通しているモードである。ドライバとそれらに関連するハ ードウエアの緊密な統合化のため、および多くのドライバが実行するタスタの時 間厳格性(time critical nature)のため、ドライバは典型的にオペレーティング ・システム・モードで走る。これは、優先度がかなり高く、セキュリティ保護は かなり低い。このモードを一般に「カーネル」モードと呼ぶ。ドライバおよび他 のオペレーティング・システム・サービスをカーネル・モードに置くことにより 、オペレーティング・システムはより高い優先度で走り、ユーザ・モードからで は不可能な多くの機能を実行することが可能となる。 クライアント・プロセス20がオペレーティング・システム・サービス22を コールしてI/O要求を実行する場合、I/O要求を第1ドライバ手段に渡し、 I/O処理を実行する。図1では、ファイル・システム・ドライバ26およびデ バイス・ドライバ28が、I/O処理を実行するドライバ手段の例を表わす。I /O要求の第1ドライバ手段への受け渡しは、図1では、例えば矢印30で示し てある。すると、ファイル・システム・ドライバ26はI/O要求を取り込み、 次のドライバにI/O要求を渡す前に、このI/O要求の部分的処理を概略的に 実行する。 一例として、クライアント・プロセス20がハードウエア・デバイス36上で 特定のファイルを開いて、そのファイルから情報を検索または格納したいと仮定 する。I/O要求は、クライアント・プロセス20からオペレーティング・シス テム・サービス22に移り、次いでファイル・システム・ドライバ26に達する 。次に、ファイル・システム・ドライバ26は、I/O要求をファイル名からハ ードウエア・デバイス36上の特定位置に変換する。この変換プロセスは、その 特定位置においてハードウエア・デバイスから読み取るべきまたはハードウエア ・デバイスに書き込むべきデータ・ブロックの数を含むとよい。この情報は、次 に、次のドライバ、例えば、デバイス・ドライバ28に渡すことができる。デバ イス・ドライバ28が要求する情報を受け渡すプロセスは、図1では矢印32お よび34で示している。デバイス・ドライバ28は、読み出しまたは書き込みを 行う位置およびデータ・ブロック数を取り込み、これらを適切な制御信号に変換 し、所望の情報をハードウエア・デバイス36から検索するか、あるいは所望の 情報をハードウエア・デバイス36に格納する。検索したデータは、次に、デバ イス・ドライバ28からファイル・システム・ドライバ26に渡し、最終的には 、戻り矢印38で示すように、クライアント・プロセス20に戻すことができる 。ステータス情報も同様に戻すことができる。 図1において、I/O要求は、ファイル・システム・ドライバ26とデバイス・ ドライバ28との間で直接受け渡すことはしない。代わりに、I/O要求は、I /Oマネージャ40を介して、ドライバ間で受け渡しする。しかしながら、全て の実現例においてI/Oマネージャを有することが必要という訳ではない。I/ O要求を直接あるドライバから別のドライバに渡し、I/Oマネージャによって 転送を調整しなくてもよい実施形態も存在する。 次に図2を参照し、ファイルのある属性をリモートに格納し、ファイルの別の 属性をローカルに格納するプロセスを一般化した図を示す。図2に示すように、 全体的に42で示すファイルは、システム属性44およびユーザ属性46で構成 することができる。以下で更に詳細に論ずるが、システム属性とは、オペレーテ ィング・システムおよびI/Oシステムが主にまたは排他的に用いて、当該オペ レーティング・システムおよびI/Oシステムがそれらの種々のタスクを実行可 能とするのに必要または有用な情報を格納するための属性である。システム属性 の一例は、ファイルまたはディレクトリに対するセキュリティ情報またはアクセ ス制御情報である。ユーザ属性とは、ユーザまたはその他のクライアント・プロ セスがそれ自体の目的のために用いる属性である。ファイルのデータ属性が、ユ ーザ属性のよい例である。システム属性およびユーザ属性については、以下で更 に詳しく論ずる。 リモート格納処理ブロック48によってファイル42を検査する。リモート格 納処理ブロック48は、ファイル42のどの属性をリモートに格納し、リモート に格納する属性をどこに格納するのかを決定する責務を担う。これらの決定を下 す際に、リモート格納処理ブロック48は、多数のファクタを検討することがで きる。このようなファクタには、例えば、これまでに当該属性をアクセスした頻 度を含むことができる。一般に、長時間データがアクセスされないでいる場合、 近い将来においてそれにアクセスする可能性は低いという理論から、アクセス頻 度が非常に低いデータは、リモート・ストレージに移動させるとよい。リモート 格納処理ブロック48が考慮するとよい別のファクタにサイズがある。ある属性 が費やすローカル記憶空間が非常に少ない場合、この属性をリモート・ストレー ジに移動させても、得るものは多くない。一方、大量のローカル記憶空間を費や す属性の場合、この属性をリモート・ストレージに移動させると、大量のローカ ル・ストレージが空くので、ローカル・ストレージの空間が貴重な場合、このよ うな移動は有効である。 どの属性をリモートに格納し、どこにその属性を格納するのかについて決定す る際に、多数の他のファクタも影響する場合がある。このようなファクタには、 例えば、リモート記憶媒体にアクセスする時間が含まれる場合がある。例えば、 属性をローカル・ストレージから光ジュークボックスに移動させる場合、アクセ ス時間が大幅に増大しないと思われる。恐らく、適正な光ディスクを選択し装填 して、そこから情報を検索するために必要な時間はさほど多くないであろう。一 方、属性をオフライン・テープ・ストレージに移動させた場合、オペレータの手 作業によって検索しロードしなければならないので、検索時間が多大となる可能 性がある。一般に、どの属性をリモートに格納し、このような属性をどこに格納 すべきかについて決定する場合、リモート格納処理ブロック48は、ストレージ の総合的費用効率性や、異なるタラスのアプリケーションに対するI/Oの応答 時間のような異なるパラメータを最適化する。どの属性をリモートに格納し、こ のような属性をどこに格納すべきかについて選択するために利用する正確な方法 論は、本発明では規定しない。本発明を用いると、いかなるリモート格納の目標 を所望する場合でも、それを達成することができる。 本発明の範囲内の実施形態は、様々な方法で、リモート格納処理ブロック48 と関連付けて記載する総合的な処理を実施することができる。以下で更に詳しく 説明するが、リモート格納処理ブロック48の機能は、I/O処理を実行するド ライバ手段によって実施することができる。このようなドライバ手段は、I/O システム内の他のあらゆるドライバ手段からも分離することができる。代替案で は、リモート格納処理ブロック48の機能は、I/Oシステム内で用いられる多 目的ドライバ手段または単一目的ドライバ手段に組み込むことも可能である。以 下の説明で一層明白になるであろうが、本発明にとって重要なのは、リモート格 納処理ブロック48の機能をI/Oシステム内に組み込み、I/Oシステムがリ モート・ストレージに対するネーティブな支援に対処し、従来技術に記載したよ うな非統合コンポーネントに頼る必要性をなくすことが全てである。 リモート格納処理ブロック48が、ファイル42の属性のどれをリモートに格 納し、このような属性をどこに格納すべきか決定した後、リモート格納処理ブロ ック48は、適切なフォーマットに属性を組み立て、これらの属性をリモート・ ストレージに転送するステップを開始する。図2では、この手順は、概略的に、 リモート格納属性50、読み出し/書き込みデータ処理ブロック52、およびリ モート・ストレージ54によって示している。複数のリモート格納属性50、読 み出し/書き込みデータ処理ブロック52、およびリモート・ストレージ54を 示すのは、特定のファイルからのリモート格納属性は、同じ場所に格納したり、 同じ形式のリモート記憶デバイスに格納することさえも不要であることを強調す るためである。図2では、50で示す各ブロックが、リモートに格納する1つ以 上の属性を収容することができる。本発明の固有の柔軟性のために、リモート格 納処理ブロック49は、属性1つ毎に決定を下すことができるので、個々の属性 を最も適切な場所に格納することが可能となる。このような柔軟性は、特定のフ ァイルの属性全てを同じ場所に格納可能であることを当然含むものである。 リモート格納属性50、読み出し/書き込みデータ処理ブロック52、および リモート・ストレージ54は、特定のリモート記憶デバイスにアクセスするため に存在するいかなる機構を用いても、適切なデータを転送し、適切なリモート記 憶デバイス上に格納することを単に必要とする概念的なデータ・フロー経路を示 す。より詳細な例によって以下に例示するように、読み出し/書き込みデータ処 理ブロック52は、対応するリモート記憶デバイスが、リモート格納処理ブロッ ク48が位置するシステムによって直接アクセス可能である場合、I/O処理を 実行するためには単一のドライバ手段を用いて実施することができ、あるいはネ ットワークまたは多数のコンピュータ・システム間で通信するその他の手段を通 じた多数のコンピュータ上で走るI/O処理を実行するためには、数個のドライ バ手段とすることも可能である。必要なのは、適切なデータを適切なリモート記 憶デバイスに渡し、そこに格納するだけである。一般的に、読み出し/書き込み データ処理ブロック52を実施するために用いる機構は、本発明を実施するため に用いる具体的な動作環境、ならびにリモート記憶デバイス54とリモート格納 処理ブロック48が位置するシステムとの間のデータ・フロー経路を備えるのに 必要な特定のハードウエアおよび/またはソフトウエアによって、かなり左右さ れる。 リモート格納処理ブロック48が、どの属性をリモートに格納するか決定し、 リモート格納属性50のように、適切なデータ・フォーマットの属性を組み立て た後、ファイル42から属性を安全に除去することができる。実施形態によって は、リモート格納属性50をリモート・ストレージ上に安全に格納するまで、こ れらをファイル42から除去する前に待つ方が望ましい場合もある。リモート格 納属性50の除去は、図2では、破線エリア56および58で示す。これらのエ リアは、システム属性およびユーザ属性双方共、本発明にしたがってリモートに 格納できることを示す。加えて、リモート格納処理ブロック48は、リモート・ ストレージ属性60をファイル42のシステム属性に追加する。 リモート・ストレージ属性60については以下で更に詳しく論ずるが、リモー ト・ストレージ属性60は、通常、リモート格納処理ブロック48が、リモート 格納属性50がどこに位置するのか確認するために必要なあらゆる情報を格納す るために用いられる。加えて、リモート・ストレージ属性60は、リモート格納 処理ブロック48の個々の実施にしたがって、多種多様のその他の情報を収容す ることができる。例えば、リモート・ストレージ属性60内でどの属性をリモー トに格納してあるかを格納することが望ましい場合がある。別の場合には、ファ イル42は、どの属性をリモートに格納してあるかについてのアイデンティティ を、他の機構によって判定可能とするような構造である場合も恐らくあるであろ う。同様に、他の情報もリモート・ストレージ属性60に格納することも可能で ある。例えば、リモート格納処理ブロック48は、リモート・ストレージ54内 に格納してあるデータの保全性(integrity)を全面的に信頼してはいない場合も 恐らくあるであろう。このような場合、リモート格納処理ブロック48は、リモ ート格納属性上でディジタル指紋またはサインを計算し、この指紋またはサイン をリモート・ストレージ属性60にセーブすることができる。この場合、リモー ト属性を検索すると、リモート属性に対して第2サインを計算し、計算したサイ ンを、リモート・ストレージ属性60に格納してあるサインと比較することがで きる。このような手順により、リモート格納処理ブロック48は、リモート格納 属性をリモート・ストレージ54から検出する際に、それらに生じたあらゆる変 化を検出することが可能になる。 以上の説明から明らかなように、リモート格納処理ブロック48が必要とする または所望するあらゆる数または形式のデータでも、リモート・ストレージ属性 60に格納することができる。リモート・ストレージ属性60の重要な特徴は、 これがファイル42の状態の固有部分を形成するので、I/Oシステムはこれを 追跡しファイルの他の属性全てと同様に一元管理することにある。これが意味す るのは、ファイル・システムは、ファイル内の他のあらゆる属性と全く同様に、 リモート・ストレージ属性を検出し、操作し、またはその他の方法で処理可能で あるということである。したがって、ファイルを扱うユーティリテイは、リモー ト・ストレージ属性上で具体的に動作する機能性を組み込むことができる。例え ば、ディレクトリのリストは、リモート・ストレージ属性60を検査し、ローカ ル・ストレージ空間の割合、および使用可能なファイルが占めるリモート・スト レージ空間の割合を確認することができる。加えて、あるリモート格納データに アクセスするために必要な検索時間を推定するユーティリティを開発することも 可能である。このようなユーティリティによって、システム・マネージャは、変 化する状態またはその他の基準に基づいて、リモート格納処理ブロックの動作を 微調整(fine-tune)即ち修正することが可能となる。この情報全ては、単に、ロ ーカルに格納してある情報を検査するだけでコンパイル可能であることを注記し ておく。また、本発明は、従来技術のシステムでは得られない他の利点も広く提 供する。 図2では、ファイル42のシステム属性部分に追加するものとして、リモート ・ストレージ属性60を示している。以下で一層明らかとなる理由のために、リ モート・ストレージ属性60をユーザの変更から保護することが考えられる。リ モート・ストレージ属性60は、リモート格納処理ブロック48がその様々な機 能を実行するために必要な情報を格納するために用いるので、ユーザの変更や干 渉から保護して当然である。しかしながら、リモート・ストレージ属性60に格 納する情報の少なくとも一部は、場合によっては、ユーザやその他のクライアン ト・プロセスに関心があることも考えられる。適切な状況において、このような 情報をユーザまたはクライアント・プロセスに使用可能にしてもよい。また、シ ステム・マネージャが使用するために設計したユーティリティのような特殊化し たクライアント・プロセスに、リモート・ストレージ属性60内の情報を変更さ せることが必要となることも、稀にあり得る。このような特殊化ユーティリティ による特別な場合のアクセスは、リモート・ストレージ属性60をシステム属性 グル ープの外側に置くものとして解釈すべきでない。リモート・ストレージ属性60 の主な使用は、I/Oシステム自体が、そのリモート格納機能を実施するため、 および本発明のリモート格納機能性をファイル・システム自体に統合するためで ある。 一旦リモート・ストレージ属性60をファイルに追加し、リモート格納属性を ファイルから除去したなら、そのファイルをローカル・ストレージに格納するこ とができる。このプロセスは、図2において、読み出し/書き込みデータ処理ブ ロック62およびローカル・ストレージ64によって示してある。読み出し/書 き込み処理ブロック62およびローカル・ストレージ64は、リモート格納処理 ブロック48からローカル・ストレージ64までの概念的なデータ・フロー経路 を表わそうとしたものである。正確な実施の詳細は、本発明を実施するために選 択する個々の動作環境によって異なる。以下で更に詳しく説明するが、読み出し /書き込みデータ処理ブロック62は、I/O処理を実行するための別個のドラ イバ手段によって実施してもよく、あるいはリモート格納処理ブロック48と纏 めて、I/O処理を実行するためのより大きなモノリシック・ドライバ手段(mon olithic,driver means)を形成してもよい。 図2に提示する例は、リモート格納処理ブロック48が検査する特定のファイ ル、およびどの属性をローカルに格納し、どの属性をリモートに格納し、リモー トに格納する属性をどこに配置するかについて行う決定を示す。このような手順 は、システムに適切な機構であればいずれによっても行えることを注記しておく 。例えば、ローカル・ストレージ64において、リモート・ストレージに移動さ せるべき情報を検査するために周期的にユーティリティを走らせるようにスケジ ューリングを行うことも可能である。あるいは、アクセスする毎に各ファイルを 検査するように、システムを設定することも可能である。更に別の例として、恐 らくこのような手順は、ユーザまたはシステム・マネージャの要求によってのみ 起動する。本質的に、本発明は、このような手順をいつ利用するかについては定 義せず、単に情報をローカル・ストレージからリモート・ストレージに移動させ る機構について記載するに止まる。 これまでの説明は具体的に本発明がファイルに対してどのような処理を行うの かということを対象にしてきたが、本発明の概念は、排他的にまたは主にシステ ムが用いるために設計した属性の集合を有する、あらゆるローカルに格納したエ ンティティとでも使用可能である。したがって、ファイルの例は、あらゆる観点 においても例示として見なし、本発明の範囲をいずれの特定のエンティティにも 限定して捕らてはならない。 次に図3を参照し、リモート格納属性を有するファイルを伴うI/O要求の処 理を表わす上位ブロック図を示す。本発明の関連においては、I/O要求は、本 発明を実施するI/Oシステムが実行することができるあらゆる動作であるとす る。したがって、I/O要求の定義は、単なるファイル・データの読み書きを遥 かに越えるものである。状況によっては、特定のファイルをアクセスした場合に ある電話番号に通話するというように、I/O要求が、従来のI/O動作と関連 のない他のアクションをトリガする場合もある。本発明の状況においては、この 用語は広く解釈することを想定する。 I/O要求が、リモート格納属性を有するファイルまたはその他のエンティテ ィを伴う場合、読み出し/書き込みデータ処理ブロック62は、リモート格納属 性が関与することを確認することができる。これは、リモート・ストレージ属性 60の存在によるものである。このような属性を検出した場合、リモート・スト レージ属性60内の情報をリモート格納処理ブロック48に渡すことができる。 すると、リモート格納処理ブロック48は、I/O要求を処理するために何をす る必要があるかについて判定を行うことができる。種々の実施形態が、種々の形 式の情報をリモート格納処理ブロック48に渡すことができる。例えば、リモー ト・ストレージ属性60内の情報を単にリモート格納処理ブロック48に渡すこ とも可能である。次に、リモート格納処理ブロック48がローカル・ストレージ 64からの他の情報を必要とする場合、リモート格納処理ブロック48は、読み 出し/書き込みデータ処理ブロック62が所望の情報を検索することを要求する ことができる。あるいは、当初からより多くの情報をリモート格納処理ブロック 48に渡してもよい。このような詳細は、本発明にはさほど重要ではない設計上 の選択事項と見なす。図3では、ローカル・ストレージ64からリモート格納処 理ブロック48へ検索情報を渡す処理は、ファイル66によって示しており、こ のファイルをリモート格納処理ブロック48に渡す。 一旦リモート格納処理ブロック48がリモート・ストレージ属性60およびそ の他のあらゆる必要な情報を受け取ったならば、リモート格納処理ブロック48 は、I/O要求はローカルに格納してある情報を用いて処理することができるか 、またはI/O要求を処理するには、リモート・ストレージ54から情報を検索 することが必要であるかについて判定を行うことができる。リモート・ストレー ジ54から情報を検索することなくI/O要求を処理できるか否かに関する問題 は、個々のI/O要求およびリモートに格納してある属性によって異なる。 特定的な例として、システムにアクセス可能な情報のコンテンツ・インデック ス付け(content indexing)を実施するI/Oシステムについて検討する。このよ うなシステムでは、ユーザは、ローカルまたはリモート記憶デバイス上の個々の アドレスによってではなく、キー・ワードまたはその他のコンテンツ情報によっ て、情報を検索することができる。例えば、ユーザは、ある個人が著した文書全 て、特定のトピックに関する文書全て、または特定の単語または文章を有する文 書全てを要求することができる。このようなコンテンツ・インデックス付け方式 の場合、情報を検査し、種々のコンテンツ・キーを格納する必要がある。実現例 によっては、コンテンツ・キーを1つ以上のファイルの属性として格納すること が可能な場合もある。その際、ファイルのデータをリモートに格納する場合であ っても、コンテンツ・キーはローカルに保持するとよい。このような状況では、 ユーザが、あるコンテンツ・キーを収容する全ファイルのリストを要求する場合 、コンテンツ・キーをローカルに保持してあれば、単にローカル・ストレージ6 4から情報を読み出すことによって、この要求を満たすことができる。このよう な状況では、リモート格納処理ブロック48は、単にローカル・ストレージ64 上で適切な情報を検査し、応答68で例示するように、適切な応答を発生する。 しかしながら、リモートに格納してある情報にユーザがアクセスしたい場合、 このような情報はリモート・ストレージ54から検索する必要がある。このよう な状況では、リモート格納処理ブロック48は、要求された情報を検索するステ ップを起動すればよい。これを、図3において、属性リコール70で示す。図3 では、属性リコール70は、読み出し/書き込みデータ処理ブロック52が処理 するものとして示す。リモート・ストレージ54が、オペレータの介入なく、読 み出し/書き込みデータ処理ブロック52によるアクセスが可能な場合、読み出 し/書き込みデータ処理ブロック52は単にリモート・ストレージ54から、要 求された属性を検索し、リモート格納属性72で示すように、リモート格納処理 ブロック48にこれらを返せばよい。しかしながら、オペレータの介入が必要な 場合、恐らく読み出し/書き込みデータ処理ブロック52、またはその他の処理 ブロックは、要求された情報を検索するために必要な適切なリモート記憶媒体を ロードするか、またはその他の方法でアクセス可能にするように、オペレータに 警告する必要がある場合もあり得る。次に、一旦適切な媒体が使用可能になった なら、要求された情報を検索し、リモート格納処理ブロック48に返すことがで きる。いずれの場合でも、例えば、応答68のような適切な応答を戻すことがで きる。 次に図4を参照し、本発明と共に用いるのに適したファイルの属性を表わす図 ファイル・システムが用いる属性の修正リストを表わす。NTFSファイル・シ ステムについては、Microsoft Press(マイクロソフト・プレス社)が発行したH elen Custer(ヘレン・カスター)によるInside the Windows NT file System( Windows NTファイル・システムの内側)により詳細に記載されており、この言及 により本願にも含まれるものとする。図4では、ファイルを構成する属性は、2 つの基本的グループに分割することができる。第1グループはシステム属性を収 容し、第2グループはユーザ属性を収容する。一般的に、システム属性は、シス テムがその種々の機能を実行するために必要なまたは要求される情報を格納する ために用いられる。このようなシステム属性は、通常、ロバストなファイル・シ ステムの実施を可能にする。システム属性の正確な数および形式は、概して、個 々のオペレーティング・システムまたは利用する個々のファイル・システムに全 面的に依存する。一方、ユーザ属性は、ユーザが制御するデータを格納するため に用いられる。これは、ユーザがある状況の下では1つ以上のシステム属性への アクセスを得られないということではない。しかしながら、ユーザ属性は、ユー ザまたはクライアント・プログラムが対象のデータをプログラムに格納するこ とができる格納場所を定義する。図4では、システム属性は全体的に74で示し 、ユーザ属性は全体的に76で示している。 システム属性は、例えば、標準情報属性78、属性リスト80、名称属性82 、セキュリティ記述子属性84、およびリモート・ストレージ属性86で構成す ることができる。標準情報属性78は、読み出しのみ、読み出し/書き込み、隠 れ(hidden)等のような標準的な"MS-DOS"属性を表す。属性リスト80は、ファイ ルがマスタ・ファイル・テーブル内において2つ以上の記憶レコードを占有する 場合に、ファイルを構成する追加の属性の場所を識別するためにNTFSが使用 する属性である。マスタ・ファイル・テーブルは、ファイルまたはディレクトリ の常駐属性全てを格納する場所である。名称属性82は、ファイルの名称である 。NTFSでは、ファイルは多数の名称属性、例えば、長い名称、短いMS-DOS名 称等を有する場合がある。セキュリティ記述子属性84は、ファイルを所有する のが誰で、それにアクセスすることができるのは誰かを指定するために、 言及して本願にも含まれるものとした、Inside the Windows NT File Systemに 更に詳細に記載されている。 リモート・ストレージ属性86は、本発明が追加する新たな属性である。リモ ート・ストレージ属性86は、特定のファイルを、リモート格納属性を有するも のとして識別する。リモート・ストレージ属性は、リモート格納属性の場所を識 別できるのに十分な情報を収容することが好ましい。全ての属性は、全体として 捕らえた場合、特定のファイルのどの属性がリモート格納であり、どの属性がロ ーカル格納か識別可能でなければならない。このような情報は、リモート・スト レージ属性86に収容することができ、あるいはこのような情報は、ファイルの 他の属性を検査することによって得ることも可能である。例えば、各属性が特定 の長さである場合、または特定の属性の長さを属性と共に格納する場合、単純に 予測長を実際にローカル・ストレージ上に格納してある長さと比較することによ って、どの属性がリモート格納であるのか識別することが可能となる。例えば、 あるデータ属性が100Kバイト長であると予想し、実際に格納してある情報量 がかなり少ない場合、このデータ属性はリモート格納と推定することができる。 あるいは、このような情報は、単純にリモート・ストレージ属性86に組み込む ことも可能である。一実施形態では、リモート・ストレージ属性は、次のように 構成する。 以下で更に詳しく説明するように、本発明の実施形態のあるものは、I/O処 理を実行するために複数のドライバ手段を利用し、リモート・データ格納処理を 実施する場合がある。例えば、図2または図3のリモート格納処理ブロック48 は、I/O処理を実行するための1つのドライバ手段に実施することができ、読 み出し/書き込みデータ処理ブロック62は、I/O処理を実行するための他の ドライバ手段を用いて実施することができる。この場合、これら2つのドライバ 手段は、これらの間で情報をやりとりすることにより、本発明の目的を達成する ように調整することができる。実際には、リモート格納処理の機能を実施するI /O処理を実行するためのドライバ手段は、単純に、I/Oシステム内の種々の 目的のために用いる複数のドライバ手段の内の1つとしてもよい。このような実 施形態について、以下に論ずる。このような状況では、リモート格納属性を有す るファイルを伴うI/O要求を処理する責務を引き受けるのは、どのドライバで あるのか確認する必要がある場合もある。本発明の範囲内の実施形態は、I/O 要求の少なくとも一部を処理すべきドライバとして、特定のドライバ手段を特定 する手段を備えることができる。特定のドライバをリモート・ストレージ属性の オーナとして特定する機構であれば、いずれでもこのような手段に用いることが できる。リモート・ストレージ属性が、先のテーブルに示す構造を有する場合、 このような手段は、例えば、タグ値を備えることができる。この例では、タグは 、リモート・ストレージ属性のオーナのIDを収容するデータ・ワードである。 このような機構により、単一システム内に複数の階層ストレージ・マネージャが 存在することが可能となり、各階層ストレージ・マネージャは、異なる形式のフ ァイルまたは異なる形式のリモート記憶デバイスを伴うI/O要求を処理するよ う に適合化してある。 ドライバをどのシステム上にインストールするかには係わらず、同じタグを常 に同じオーナ・ドライバに関連付けるように、タグを割り当てることが好ましい 。言い換えると、タグ値を特定のドライバに割り当てる何らかの機構が存在する ことが好ましい。例えば、タグ値のブロックを種々のドライバ製造者に割り当て る中央レポジトリまたはクリアリング・ハウスがあるとよい。こうすると、ドラ イバ製造者は、タグを特定のドライバに割り当てることができる。タグ値を多く とも1つのドライバに関連付けさせる他のいずれの機構も、使用可能である。こ のようにタグ値を割り当てることにより、どのシステムにインストールしたかに は係わらず、同じオーナ・ドライバが同じリモート格納要求を処理することが可 能となる。あるいは、状況によっては、ローカル・タグ値を動的な方法で割り当 て、インストール中にシステムによってタグ値を割り当てるようにすることも可 能となる。しかしながら、このような方法ではいくつかの問題も存在する場合が あるので、一般的には好ましくない。 先のテーブルに示したリモート・ストレージ属性では、任意のリモート格納フ ラグを示した。先程リモート格納フラグを示したのは、リモート格納属性を有す るファイルの識別を可能にする機構が存在しなければならないことを示すためで ある。このような指示を与えるには、例えば、リモート格納属性を有するファイ ルを示すリモート格納フラグを用いることができる。あるいは、他の機構を用い ることも可能である。例えば、リモートに格納可能な各属性毎に、フラグを保持 することも可能である。属性をリモートに格納する場合、フラグをセットするこ とができる。このような機構は、リモート格納属性が存在するという事実の確認 だけでなく、どの属性をリモートに格納してあるかという確認も可能にする。更 に別の例として、各属性の予想長を、ローカルに格納してあるデータの実際の長 さと比較してもよい。更に別の例として、1つ以上のタグ値を、ファイルがリモ ート格納属性を全く有していないことを示すために確保することも可能である。 このような機構を用いることにより、例えば、ファイルがリモート格納属性を全 く有していないことを示すためにタグ0を確保することも可能となろう。ファイ ルが少なくとも1つのリモート格納属性を有する場合、他のいずれかのタグ値が これを示すことになる。 先に示したリモート・ストレージ属性によって、オーナが制御するデータの格 納が可能となる。したがって、本発明の実施形態は、ドライバ手段がリモート格 納属性を管理するために用いる情報を格納する手段を備える。一例として、限定 ではなく、このような手段はオーナ制御データ・フィールドを備えるとよい。オ ーナ制御データ・フィールドは、リモート・ストレージ属性のオーナが、リモー ト格納属性を適正に管理するために必要なあらゆる形式のデータでも置くことが できる場所を表わす。例えば、リモート格納属性の場所は、リモート・ストレー ジ属性のデータ・フィールドに格納することができる。他の例も既に示した。更 に他の例として、階層ストレージ・マネージャの一部が、オーナ制御データ・フ ィールド内に、リモート格納属性のアイデンティティを格納できるようにすると よい。これは、階層ストレージ・マネージャが、どの属性をローカルに格納し、 どの属性をリモートに格納したのかを素早く確認することを可能にする機構にも なる。このデータ・フィールドには、他のあらゆる形式のデータでも格納可能で ある。 先に示したリモート・ストレージ属性では、データ・フィールドの前にデータ 長指示子がある。この記憶フォーマットでは、データ・フィールドの長さを格納 し、データ・フィールドを完成するために読み出さなければならないデータ量を 確認する。あるいは、実施形態によっては、固定長のデータ・フィールド、ある いはポインタまたはリンクによって互いに連鎖した情報のブロックを利用するデ ータ・フィールドを格納する方が一層効率的な場合もあり得る。本質的に、デー タ・フィールドを完成するために読み出さなければならないデータ量を確認する あらゆる機構が利用可能である。オーナ・ドライバによって格納する必要があり 得るデータ量についても考慮すべきであろう。このような考慮は、データ・フィ ールドをどのように格納するか、およびデータ・フィールドの最大可能長に影響 を与える。 次に図4を参照し、ファイルのユーザ属性を表わすグループ76について検討 する。先に説明したように、ユーザ属性は、ユーザまたはクライアント・プロセ ス情報を格納するためにユーザまたはその他のクライアント・プロセスが用いる 属性を表わす。NTFSファイルは、典型的に、図4にデータ1属性88および データ2属性90として示す、1つ以上のデータ属性を有する。従来のファイル ・システムの殆どは、単一のデータ属性に対応するに過ぎない。データ属性は、 ユーザ制御データを格納可能な場所と基本的には全く同様である。例えば、ワー ド・プロセッシング文書では、典型的に、ファイルのデータ属性に文書を格納す る。NTFSファイル・システムでは、ファイルは多数のデータ属性を有するこ とができる。1つのデータ属性を「無名」属性(unnamed attribute)と呼び、他 の属性は各々関連する名称を有する名称付き属性である。データ属性の各々は、 異なる形式のユーザ制御データを格納できる格納場所を表わす。本発明と組み合 わせた場合、このようなファイル構造は、データ属性のいずれかまたは全てをロ ーカルまたはリモートのいずれにも格納することが可能となる。これは、従来技 術のシステムに対する有意義な利点を表わすことができる。従来技術のシステム では、ファイル内のデータは、全てローカルに格納するか、あるいは全てリモー トに格納するかのいずれかであった。データの一部分をローカルに、そしてデー タの一部分をリモートに格納するという概念はなかった。NTFSファイル・シ ステムの多数のデータ属性を用いることにより、あるデータをローカルに格納し 、他のデータをリモートに格納することが可能となる。したがって、あるファイ ルが、規則的にアクセスされるある種のデータ、および稀にしかアクセスされな かった他のデータを収容する場合、稀にしかアクセスされなかったデータをリモ ート・ストレージに移動させることができ、一方頻繁にアクセスされたデータを ローカル・ストレージに維持することができる。 1つ以上のデータ属性に加えて、ファイルは、他の属性92で示すように、他 のユーザ定義属性も有することができる。このような属性は、ユーザが定義し、 ファイルと共に格納するその他のあらゆる属性を表わす。このようなユーザ定義 属性は、ユーザが所望するあらゆる目的のために作成し用いることが可能である 。 これまでの説明は、特定のファイル形式に関して多少詳細に入り込んだもので あったが、これは例示に過ぎず、本発明の範囲を限定するものと解釈すべきでは ない。本発明は、既存のファイルの属性にリモート・ストレージ属性を追加した あらゆる形式のファイルまたはその他のエンティティとでも作用する。代替物で は、既存のシステム属性を共に選択(co-opt)即ち利用することにより、リモート 格納情報を格納し、したがって、ファイル内の既存のシステム属性数を増大させ ることなく、リモート・ストレージ属性を含ませる方法を同等に備えることも可 能な場合もあり得る。 次に図5に移り、本発明の一実施形態の全体的な構造を示す。図5は、I/O 処理を実行するためのドライバ手段を複数個利用するI/Oシステムを示す、上 位概念図を表わす。クライアント・プロセス94は、I/O要求を作成し、矢印 98で示すように、オペレーティング・システム・サービス96に最終的に送出 する。図5に示すI/Oシステムは、複数のI/O処理を実行するドライバ手段 を備えている。一例として、限定ではなく、図5では、このような手段は、層1 ドライバ100、層2ドライバ102、および層Nドライバ104で示してある 。 このようなI/O要求はドライバ間でやりとりされるので、本発明の範囲内の 実施形態は、ドライバ手段間でI/O要求を受け渡す手段を備えることができる 。一例として、図5では、1つのドライバから他のドライバに直接受け渡すI/ O要求を示す矢印106および108によって、このような手段を示している。 このような手段は、ドライバ間のI/O要求の転送を扱うI/Oマネージャを備 えることも可能である。このようなI/Oマネージャは、図5のI/Oマネージ ャ110とすることができる。 図5において、I/Oマネージャ110は、クライアント・プロセッサ94か ら受け取ったI/O要求を層1ドライバ100に送出する。このようなI/O要 求は、I/Oマネージャがコールした関数またはサービスの形態、あるいは、適 切な情報を適切なドライバに転送する他のあらゆる機構とすることができる。例 mechanism)を用いてI/Oシステムの種々のドライバ間で通信を行う。このシス テムでは、I/O要求の結果、I/OマネージャがI/O要求パケット(IRP :I/O Request Packet)を作成し、IRPを適切なドライバに送る。I/O要求 を処理し別のドライバに送出する際、IRPに情報を添付し、IRPを次のドラ イバに渡す。加えて、新たなIRPを作成し次のドライバに送ることも可能であ る。状況によっては、IRPを次のドライバに渡す前に、修正するまたは「変 /Oマネージャがドライバ間でIRPを転送する責務を負う。他のシステムでは 、他の機構を用いることができる。このような実施の詳細は、設計上の選択事項 であり、本発明には重要ではない。 ここで図5に戻り、I/O要求は、矢印106で示すように、種々のドライバ を通過し、各ドライバはあらゆる要求された処理を実行してから、I/O要求を 次のドライバに送出する。尚、図5は各ドライバがI/O要求を順番に受け取る ことを示すが、実施形態によっては、あるドライバを飛ばし、I/O要求を処理 する必要のあるドライバのみが実際にI/O要求を扱うようにすることが望まし い場合もあり得る。 本発明の一実施形態では、複数のドライバを用いてI/O処理を実行する場合 、リモート・ストレージ属性を有するファイルに遭遇した場合、通常の処理シー ケンスを中断する機構が存在する。この場合、制御を他のドライバに渡し、どの ようにI/O要求を処理すべきかについて判断を下す。したがって、本発明の範 囲内の実施形態は、I/O要求の処理を中断する手段を備えることができる。図 5では、このような手段は、例えば、層Nドライバ104に組み込むことができ る。本発明のこの実施形態では、リモート格納属性を有するファイルに遭遇した 場合、通常の処理シーケンスを中断する。このようなファイルは、例えば、リモ ート・ストレージ属性の存在によって、あるいはリモート・ストレージ属性およ び/または先に説明した他の属性の検査によって識別することができる。 リモート格納属性を有するファイルを認識した場合、I/O要求の通常の処理 シーケンスを保留とし、I/O要求の処理を完了するステップを行う。これらの ステップは、I/O要求を処理する制御を別のドライバに転送し、リモート格納 属性を有するファイルに対するI/O要求の処理にこのドライバを参加させるこ とを伴う。したがって、本発明の範囲内の実施形態は、I/O要求を処理する制 御をドライバ間で転送する手段を備えることができる。I/O要求の処理を途中 で中断する場合、I/O要求を処理するドライバから別のドライバに制御を移管 するいずれの機構でも利用可能である。例えば、図5では、このような機構は矢 印112で示している。これは、I/O要求の処理中にリモート格納属性を有す るファイルに遭遇した際に、層Nドライバ104から層1ドライバ100にI/ O要求を処理する制御を移管することを示す。以下で更に詳しく説明するが、制 御をドライバ間で移管する機構は、制御を引き受けるドライバが適正にI/O要 求を処理することができるように、ある情報を転送しなければならない場合もあ り得る。したがって、本発明の範囲内の実施形態は、リモート格納情報をドライ バに渡す手段も備えることができる。 一旦層Nドライバ104から層1ドライバ100に制御を移管したなら、層1 ドライバ100は適正にI/O要求を処理しなければならない。ある状況および 実施形態では、制御を引き受けたドライバは、制御を移管したときに供給した情 報によって、またはローカル・ストレージから追加情報を得ることによって、I /O要求を完全に処理できる場合もある。ドライバが追加情報を検索することな くI/O要求を処理することができる場合、矢印108および114で示すよう に、結果をクライアント・プロセッサに戻せばよい。 ローカル・ストレージからまたはリモート・ストレージからの追加情報の検索 なしではI/O要求を完全に処理することができない場合、ドライバは1つ以上 の追加I/O要求を作成し、適切な情報を検索することが必要になる場合もある 。したがって、本発明の範囲内の実施形態は、第2のI/O要求を作成する手段 を含むことができる。図5では、このような作成手段は、ドライバを介してI/ O要求を返送し、ローカル・ストレージ118から情報を得ることを表わす矢印 116、またはリモート・ストレージ122から情報を検索するために送る要求 を示す矢印120で表わしている。 第2のI/O要求を作成するためには、所望の情報を検索するために必要なあ このような手段は、新たなIRPを作成するか、または既存のIRPを変身させ 、このIRPを適切なドライバに渡すことによって、実施することができる。以 下で更に詳細に説明するが、ローカル・ストレージまたはリモート・ストレージ から情報を検索する場合、他のコンピュータ・システムが処理を要求する場合も あり得る。したがって、第2のI/O要求を作成するためのこのような手段は、 I/O要求を他のコンピュータにも転送する場合もある。しかしながら、いずれ の 場合でも、一旦適切な情報を検索すれば、矢印108および114で示すように 、適切な応答をクライアント・プロセス94に返送することができる。 要約すると、本発明のある実施形態は、I/O要求の通常処理シーケンスを中 断し、階層ストレージ管理の責務を負うドライバに、リモート格納属性を有する ファイルまたはその他のエンティティを伴うI/O要求の処理に介入および関与 させるシステムおよび方法を提供する。図5は複数の層状ドライバを示すが、複 数のドライバの機能性を1つ以上のモノリシック・ドライバに組み込んでもよい ことは明白であろう。このようなシステムでは、ドライバ間通信の必要性が軽減 する。しかしながら、層状ドライバを有するI/Oシステムの様々な利点は得ら れない。本発明を複数の層状ドライバに実施するかまたは数個の層状ドライバの 機能性を組み込んだ1つ以上のモノリシック・ドライバに実施するかの選択は、 設計上の選択事項であり、本発明には重要ではない。しかしながら、種々の機能 エレメントが本質的に図示した態様で協働することが好ましい。言い換えると、 1つ以上のリモート格納属性を有するファイルに遭遇した場合、このようなファ イルを伴うI/O要求を処理する責務を負う処理ブロックに制御を渡す。適切な 機能性については、既に説明した。 次に図6に移り、I/O処理を実行する複数のドライバ手段を備えたI/Oシ ステムの更に詳細な図を提示する。図6におけるI/Oシステムは、Microsoft る複数のドライバ手段を使用するその他のオペレーティング・システムも、同様 の構造を有する場合もあり得る。同様に、図6との関連で論ずる概念は、複数の ドライバまたは単一のモノリシック・ドライバを用いるあらゆるI/Oシステム を用いても、適切な機能性を適切なドライバに組み込むまたは組み合わせること によって実施することができる。したがって、図6に示す構造の使用は、あらゆ る観点においても本発明の限定と見なすべきではなく、可能な実現例の1つに過 ぎないと見なすべきである。 図6に示す実施形態は、I/O処理を実行する複数のドライバ手段を備えてい る。既に説明したように、I/O処理およびI/O要求という用語は、広く解釈 し、I/Oシステムが実行可能なあらゆる機能および動作を含むすることを意図 している。一例として、限定ではなく、図6では、このようなドライバ手段は、 全体的に124で示すドライバA、および全体的に126で示すドライバBによ って例示してある。また、本発明の範囲内の実施形態は、ドライバ手段間でI/ O要求を受け渡す手段も備えることができる。一例として、図6では、このよう な手段はI/Oマネージャ128によって示している。I/Oマネージャ128 は、例えば、I/Oシステムが用いる複数のドライバ間でI/O要求を移管する 責務を負うI/Oマネージャを表わす。先に論じたように、実施形態によっては 、I/Oマネージャを利用しない場合もあり、更に種々のドライバ間の直接通信 に頼る場合もある。このような実施形態では、ドライバ間でI/O処理要求を受 け渡す手段は、一方のドライバがI/O要求を直接別のドライバに渡すために用 いる機構となる。1つ以上のドライバの機能性をモノリシック・ドライバに組み 込んだ更に別の実施形態では、ドライバ間でI/O要求を受け渡しする手段を必 要としない場合もあり、あるいは単にモノリシック・ドライバ自体の内部に位置 する場合もある。 図6に示すように、ドライバA124およびドライバB126は、I/Oマネ ージャ128が種々の機能を行うためにアクセス可能な1組のサービスまたはル 動作するドライバが有することができる可能なルーチンの一部分を表わす。種々 のルーチンに関する詳細は、Microsoft Press(マイクロソフト・プレス社)が 発行したHelen Custer(ヘレン・カスター)によるInside the Windows NT file System(Windows NTファイル・システムの内側)の第8章に見ることができ、 この言及により本願にも含まれるものとする。 ある種のルーチンは、ドライバA124およびドライバB126双方に同様の 機能を実行する。ルーチンの正確な詳細は非常に異なる場合もあるが、ルーチン の総合的な目的は同一である。ドライバA124およびドライバB126双方に 同様の機能を実行するルーチンは、初期化ルーチン130、開始I/Oルーチン 132、割込サービス・ルーチン134、延期手順コール・ルーチン136、キ ャンセルI/Oルーチン138、およびアンロード・ルーチン140を含む。こ テムの下でのドライバの動作には重要であるが、これらは本発明の目的上は総じ て重要ではない。しかしながら、これらのルーチンの機能について以下に手短か に纏めておく。 ドライバA124およびドライバB126双方は、初期化ルーチン130を有 する。初期化ルーチンは各ドライバ毎に異なる場合もあるが、初期化ルーチンは 、I/Oマネージャがドライバをオペレーティング・システムにロードするとき に、I/Oマネージャが実行する。このルーチンは、I/Oマネージャにドライ バを使用させかつアクセスさせるために必要なあらゆる初期化を実行する。開始 I/Oルーチン132は、デバイスへのデータ転送またはデバイスからのデータ 転送を起動するために用いる。割込サービス・ルーチン134は、デバイスが特 定の ルーチンにおける処理は、絶対少数に維持し、下位の割込を不必要に阻害するこ とを回避している。延期手順コール・ルーチン136は、割込サービス・ルーチ ンを実行した後に、デバイスの割込を処理する際に必要な処理の殆どを実行する 。キャンセルI/Oルーチン138は、I/O動作を取り消す場合にコールする 。アンロード・ルーチン140は、I/Oマネージャがドライブをメモリから除 去することができるように、システム資源を解放する。 パッチ・ルーチン142やドライバB126のディスパッチ・ルーチン144の ような、1組のディスパッチ・ルーチンを含む。ディスパッチ・ルーチンは、デ バイス・ドライバが備える主要な機能である。その例には、読み出しまたは書き 込み機能およびその他のあらゆるデバイスの機能(capability)、ファイル・シス テム、またはドライバが対応するネットワークがある。ドライバA124を用い てリモート格納機能を実行する場合、ディスパッチ・ルーチン142は、適切な 機能性を発揮する(expose)ルーチンを含む。I/O動作をドライバによって処理 する場合、I/Oマネージャ128はI/O要求パケット(IRP)を発生し、 ドライバのディスパッチ・ルーチンの1つを通じて、ドライバをコールする。こ のように、図6では、I/O要求は、ドライバ間またはI/Oマネージャとドラ イバとの間で受け渡しされるIRPによって表わすことができる。 多数のドライバが協働して種々の機能を実行する場合、1つのドライバが、I /O要求を後続のドライバに受け渡す前に、このI/O要求の部分的な処理を実 行することも可能である。このような処理は、図6において、IRP146をド ライバA124に渡し、IRP処理ブロック148で示すようにドライバA12 4によって部分的に処理し、更にIRP150を介してドライバB126に渡す ことによって示している。IRP146およびIRP150は、同じIRPであ ることに注意されたい。しかしながら、IRPがどのようにドライバ間を流れる ことができるのかを明確に確認するために、図6ではこれらに別個の番号を付し てある。また、IRP146およびIRP150とは異なるように、新たなIR Pを作成する実施形態を有することも可能な場合もある。 I/O要求がリモート格納属性を有するファイルまたはその他のエンティティ を伴わない場合、ドライバは通常の方法でI/O要求を処理し、通常の方法でI /O要求に関連する情報を戻す。したがって、1つ以上の階層ストレージ・マネ ージャをインストールしているシステムは、リモート格納属性を有するファイル を伴うI/O要求に遭遇する前に、階層ストレージ・マネージャからは殆どまた は全く処理オーバーヘッドを受けることはない。例えば、図6では、ドライバB 126がIRP150を受け取った場合、IRP処理ブロック152がこれを通 常の方法で処理することができる。処理の結果は、IRP154に戻すことがで きる。図6には示さないが、IRP154は、ドライバB126による処理の後 、ドライバA124に戻すことができる。これは、通常のI/O処理の全部分で あり、先に言及によって本願にも含まれるものとした、Inside Windows NTに更 に詳細に説明されている。 図5との関連で既に説明したように、複数のドライバ手段を利用して本発明の 機能性を実施する実施形態では、リモート格納属性を有するファイルを伴うI/ O要求に遭遇した場合、I/O要求の正常な処理を中断し、リモート格納属性を 有するファイルを伴うI/O要求を扱うように特定して適合化したドライバに制 御を移管する。このプロセスを遂行するために、本発明の範囲内の実施形態は、 I/O要求の処理を中断する手段を備えている。このような手段は、I/O要求 がリモート格納属性を有するファイルを伴い、I/O要求の処理を途中で終了し 制御を他のドライバに移管できるようにすることをドライバが認識する機構であ れば、そのいずれでもよい。図6では、このような手段は、例えば、リモート格 納検出ブロック156で示している。 リモート格納属性を有するファイルの検出は、種々の方法で実施することがで きる。これらの殆どについては、リモート・ストレージ属性の可能な1実現例と の関連で既に論じてある。リモート・ストレージ属性の正確な内容および個々の 実現例によっては、リモート・ストレージ属性の内容を単に検査することによっ て、リモート格納属性を有するファイルを識別することが可能なこともあり得る 。既に論じたように、このようなリモート・ストレージ属性は、当該リモート・ ストレージ属性がリモート格納属性に関する情報を収容したときを特定する、フ ラグまたはその他の手段を備えることができる。あるいは、単にファイル自体の 中の情報を検査することによって、リモート格納属性を有するファイルを識別す ることが可能な場合もあり得る。例えば、1つ以上の属性の予想長を、ローカル ・ストレージ上に格納してある属性の実際の長さと比較することにより、リモー ト格納属性を有するファイルを識別することが可能な場合もある。更に第3の代 替物では、リモート格納属性を有するファイルの識別は、ある実施形態では、リ モート・ストレージ属性に格納してある情報およびファイルに格納してあるその 他の情報双方を検査することによって遂行することも可能である。一旦リモート ・ストレージ属性の正確な実現例およびファイル構造を識別したなら、リモート 格納属性を有するファイルを検出するために使用可能な種々の選択肢は明らかと なろう。 リモート格納検出ブロック156が、あるI/O要求がリモート格納属性を有 するファイルを伴うことを確認した場合、I/O要求の通常の処理を終了し、I /O要求を処理する責務を他のドライバに移管するためのステップを実行する。 図6では、これらのステップはリモート格納処理ブロック158によって実行す る。 リモート格納処理ブロック158は、現ドライバから、I/O要求を処理する 責務を引き受けるドライバに制御を移管するのに必要なあらゆる事前処理を実行 する。例えば、リモート・ストレージ属性が既に論じたようにタグおよびデータ ・ フィールドを収容する場合、リモート格納処理ブロック158は、リモート・ス トレージ属性からタグおよびデータ・フィールドを抽出し、リモート・ストレー ジ属性のオーナへの移管のためにこれらを準備する。このように、本発明の範囲 内の実施形態は、リモート格納情報をドライバに渡す手段を備えることができる 。一例として、限定ではなく、図6ではリモート格納データ160によってこの ような手段を示している。リモート格納データ160は、単に、リモート格納処 理ブロック158が抽出したリモート格納情報を表わす。実施形態によっては、 リモート・ストレージ属性からリモート格納情報を抽出し、図6に示すようにそ れをI/Oマネージャ128を介して渡すのではなく、これを直接リモート・ス トレージ属性のオーナに渡すことができる場合もある。本質的に、リモート格納 情報のオーナに、リモート・ストレージ属性内に格納してある情報にアクセスさ せる機構であれば、そのいずれでも、リモート格納情報をドライバに渡す手段と して利用することができる。これは、リモート格納情報を格納してある場所また はリモート・ストレージ属性自体にポインタを渡すことを含む。一実施形態では 、リモート格納データ160は、IRPに含まれており、別のドライバに渡され る。 リモート格納属性を有するファイルを伴うI/O要求を識別した場合、このI /O要求を処理する責務をドライバ間で移管する。したがって、本発明の範囲内 の実施形態は、I/O要求を処理する制御をドライバ間で移管する手段を備えて いる。図6に示す実施形態では、このような手段は、例えば、完了ルーチン16 書かれたドライバは、下位ドライバがIRPを処理し終えた後に、I/Oマネー ジャがコールする1つ以上の完了ルーチンを備えることができる。例えば、ファ イル・システム・ドライバおよびデバイス・ドライバを有する実施形態では、I /Oマネージャは、デバイス・ドライバがデータをファイルにまたはファイルか ら転送し終えた後に、ファイル・システム・ドライバの完了ルーチンをコールす ることができる。完了ルーチンは、動作の成功、失敗、または取消についてファ イル・システム・ドライバに通知することができ、ファイル・システムにクリー ンアップ動作(cleanup operation)を実行させる。このように、通常の処理の間 、ドライバB126がIRP150を受け取り、完全にこれを処理し、IRP1 5 4を戻した場合、I/Oマネージャ128はブロック162における完了ルーチ ンをコールすることができ、これがドライバA124にI/O動作の成功または 失敗を通知し、ドライバA124にあらゆるクリーンアップ処理を実行させる。 I/Oマネージャ128は、下位ドライバがその処理を完了したときに完了ル ーチンをコールするので、このような完了ルーチンは、リモート格納属性を有す るファイルを伴うI/O要求を処理する制御の移管を検出する機構を配置する理 想的な場所を形成する。したがって、完了ルーチン162は、リモート格納デー タ160を検査し、ドライバA124がリモート・ストレージ属性のオーナであ り、I/O要求を処理する責務を引き受けなければならないか否か確認すること ができる。 しかしながら、リモート格納属性を有するファイルを伴うI/O要求を処理す る責務をドライバが引き受ける前に、当該ドライバは、自分がリモート・ストレ ージ属性のオーナであるか否かについて確認しなければならない。これまでの説 明によって、複数の階層ストレージ・マネージャまたはその他の特殊化ドライバ を特定のシステム内に組み込み可能であることは明白であろう。したがって、ド ライバの各々は、何らかの形式の特殊化処理を実行するように適合化することが できる。前述のようなリモート・ストレージ属性を用いて、ドライバの各々に一 意のタグ値を割り当てる。下位ドライバがリモート・ストレージ属性を有するフ ァイルに遭遇した場合、下位ドライバは、タグおよびリモート・ストレージ属性 の値を抽出し、これを上位のドライバまで受け戻す。すると、上位のドライバの 各々は、タグ値を検査し、それ自体がリモート・ストレージ属性のオーナであり 、I/O要求を処理する責務を引き受けなければならないか否か確認する。この ように、個々のシステム内に異なるドライバ記憶マネージャが存在し、協働して 、記憶の階層的管理を達成することができる。リモート格納または他の形式の特 殊化処理のいずれかに使用可能な、これらの原理を採用し一般化した機構が、"F ILE SYSTEM PRIMITIVE ALLOWING REPROCESSING OF I/O REQUESTS BY MULTIPLE D RIVERS IN ALAYERED DRIVER I/O SYSTEM"(層状ドライバI/Oシステムにおけ る多数のドライバによってI/O要求の再処理を可能にするファイル・システム ・プリミティブ)と題する、同時係属中の米国特許出願番 号第08/862,025号に開示されており(以下「再解析点」出願)、この 言及により本願にも含まれるものとする。 多層環境では、本発明の範囲内の実施形態は、特定のドライバが受け取ったリ モート格納情報が、当該ドライバが所有するものであるか否かについて確認する 手段を備えることができる。一例として、限定ではなく、図6ではリモート格納 検出ブロック164によってこのような手段を示している。リモート格納検出ブ ロック164は、リモート格納データ160を検査し、ドライバA124がリモ ート格納情報のオーナであるか否かについて確認する。ドライバA124がリモ ート格納情報のオーナでない場合、ドライバA124は、完了処理ブロック16 6によって示す、必要な通常の完了処理を全て実行し、別のドライバに転送する ためにリモート格納データ160をI/Oマネージャ128に渡すことができる 。 一方、リモート格納検出ブロック164が、ドライバA124をリモート格納 情報のオーナとして特定した場合、制御はリモート格納処理ブロック168に移 り、I/O要求の処理を更に進める。I/O要求を処理する制御を引き受けるこ と以外に、ドライバがそれ自体をリモート格納情報のオーナとして特定した場合 に発生することは、本発明では定義しない。しかしながら、通常、ドライバはI /O要求を処理する責務を引き受け、更にI/O要求を完了するステップを実行 する。例えば、リモート格納処理ブロック168は、I/O要求の完了のために 更に図2または図3に関連して既に説明した機能のいずれでも実行することがで きる。これは、リモート格納処理ブロック168が、リモート格納データ160 内で受け取った情報を用いてI/O要求を完全に処理し終えることができるとい う状況を含む。このような状況では、ドライバがI/O要求を処理し終えた後に 、 必要なあらゆる情報をI/Oマネージャに返送し、更に転送することを含む。ま た、これは、いずれかの上位ドライバの完了ルーチンをコールし、必要なあらゆ るクリーンアップ処理をそれらに実行させるか、あるいはI/O要求のステータ スをそれらに知らせることも含む場合がある。 状況によっては、リモート格納情報のオーナであるドライバは、それ自体でI /O要求の残りを完全に処理できない場合もあり得る。このような状況では、リ モート格納処理ブロック169はIRPを発生し、これを他のドライバに渡すこ とによって、I/O要求を更に処理することを可能にする。あるいは、以下で図 8との関連で論ずるように、I/O要求を発生し、他のコンピュータに渡して、 更に処理を進めることも可能である。したがって、本発明の範囲以内の実施形態 は、第2のI/O要求を作成し、元のI/O要求の処理を継続する手段を備える ことができる。このような手段には、この特定の実施形態が利用して他のドライ バまたはシステムのヘルプをリストに纏めI/O要求を完了する機構であれば、 そのいずれでも利用することができる。例えば、図6では、第2のI/O要求を 作成する手段は、リモート格納処理ブロック168およびIRP170によって 示している。次いで、IRP170は、例えば、ドライバB126のような他の ドライバ、または図6に示すようなリモート・ストレージ・ドライバに渡すこと ができる。IRP170を受け取ったドライバは、次に、他のあらゆるIRPと 同様にこれを処理する。例えば、IRP170をドライバB126に送り、元の I/O要求を完全に処理するために必要な情報を更にローカル・ストレージから 検索することができる。あるいは、IRP170は、リモート格納属性のリコー ル要求を発行する機構とすることも可能である。したがって、起動してリモート ・ストレージから必要な情報をリコールするリモート・ストレージ・ドライバま たはその他のデバイスに、IRP170を渡すことができる。 リモート格納処理ブロック168がIRP170を作成するとき、当該IRP を最初から作成することも、既存のIRPを取り込み当該IRPを「変身させる 」ことも可能である。変身のプロセスは、既存のIRPを取り込み、IRP内の 情報を変更して修正IRP即ち新たなIRPを作成する。第2のI/O要求を作 成する手段は、異なるシステムにおいて別個に実施することも可能である。例え ば、1つのドライバが直接別のドライバをコールするシステムでは、第2のI/ O要求を作成する手段は、情報を組み立て、直接コール機構を介してその他のド ライバに渡す機構とすることができる。本質的に、第2のI/O要求を作成する 手段を実施するために必要な全ては、I/O要求を作成または修正し、次いで更 に処理するために他のドライバまたはエンティティに渡すことができる機能を有 することである。 これより図7を参照し、これを用いて、多数のドライバがいかに協働して階層 的記憶管理を実施することができるのかについて明確化するために、具体例を提 示する。図7では、クライアント・プロセス172がI/O要求をI/Oシステ ムに作成する。I/Oシステムは、I/O処理を実行する複数のドライバ手段を 備えている。クライアント・プロセス172は、矢印176で示すように、オペ レーティング・システム・サービス174にコールを行う。I/Oマネージャ1 78は、I/O要求を受け取り、I/Oシステムの種々のドライバ手段間で、I /O要求の転送を調整する。 図7では、I/O処理を実行する複数のドライバ手段を示す。このようなドラ イバ手段は、階層ストレージ・マネージャ180、ファイル・システム・ドライ バ182、ディスク・ドライバ184、およびリモート・ストレージ・ドライバ 186を備えている。階層ストレージ・マネージャ180は、ファイルまたはそ の他のエンティティのリモート格納属性を管理する責務を負う。階層ストレージ ・マネージャ180は、稀にしかアクセスされないファイルまたはその他のエン ティティから属性を除去し、リモート・ストレージ188のような、リモート位 置にこれらを格納する。また、階層ストレージ・マネージャ180は、必要に応 じて、適切な属性のリコールを調整する。本質的に、階層ストレージ・マネージ ャ180は、図2および図3との関連で先に論じた上位機能性を組み込む。ファ イル・システム・ドライバ182は、ファイルまたはディレクトリに対するアク セス要求を、ローカル・ストレージ190上の物理的な場所に変換する責務を負 う。ディスク・ドライバ184は、ローカル・ストレージ190から情報を検索 しかつローカル・ストレージ190に情報を入力する責務を負う。リモート・ス トレージ・ドライバ186は、リモート・ストレージ188との双方向情報転送 を調整および管理する責務を負う。リモート・ストレージ・ドライバ186は、 多くの中間ドライバまたはシステムを介して動作し、リモート・ストレージ18 8に情報を格納したり、あるいはリモート・ストレージ188から情報を検索し てもよいことを注記しておく。図7のI/Oシステムは、このように複数のドラ イバを用い、その各々が特定の機能または機能群を担当することにより、ロバス トなI/O環境を備えている。 矢印176で示すように、クライアント・プロセス172がI/O要求を行う と、I/Oマネージャ178はIRP192を作成し、I/Oシステム内の種々 のドライバ間でIRP192の転送を調整する。この例では、連続する各ドライ バを介してIRP192を受け渡す。各ドライバは、ディスク・ドライバ184 に到達するまで、下位ドライバの機能をイネーブルするために必要なあらゆる予 備処理を実行する。次に、ディスク・ドライバ184は、ローカル・ストレージ 190から所望の情報を検索し、このような情報をIRP194を介してファイ ル・システム・ドライバ182に戻す。I/O要求がリモート格納属性を有する ファイルを伴う場合、ファイル・システム・ドライバ182は、IRP194内 において情報が戻されたときに、これを認識する。ファイル・システム・ドライ バ182は、既に論じた種々の機構を用いて、個々のI/O動作が、リモート格 納属性を有するファイルを伴うか否かについて検出することができる。図7では 、リモート格納データ196のファイル・システム・ドライバ182への返送に よって、これを具体的に示す。しかしながら、リモート格納データ196は、例 えば、IRP194のようなIRP内で戻してもよいことを思い出されたい。同 様に、個々の実現例によっては、IRP194はIRP192と同じIRPとし てもよい場合もある。 ファイル・システム・ドライバ182が、I/O動作がリモート格納属性を有 するファイルを伴うことを認識した場合、ファイル・システム・ドライバ182 は、最小限、リモート・ストレージ属性内の情報を抽出し、その情報を上位ドラ イバに渡すことによって、上位ドライバの1つがそれ自体をリモート・ストレー ジ属性のオーナであることを認識し、I/O要求を処理する責務を引き受けるよ うにする。図7では、これは、ファイル・システム・ドライバ182がリモート 格納データ196を階層ストレージ・マネージャ180に渡すことによって示し ている。これは、図6との関連で既に説明したように、I/Oマネージャが階層 ストレージ・マネージャ180の完了ルーチンにコールすることによって遂行す ることができる。他の機構も適宜用いることができる。 階層ストレージ・マネージャ180がリモート格納データ196を受け取った 場合、階層ストレージ・マネージャ180はリモート・ストレージ属性において その情報を検査し、それがリモート・ストレージ属性を所有し、I/O要求を処 理する制御を引き受けるべきか否かについて確認する。この例では、階層ストレ ージ・マネージャ180は、それ自体をリモート・ストレージ属性のオーナとし て認識し、I/O要求を処理する責務を引き受ける。 一旦階層ストレージ・マネージャ180がそれ自体をオーナとして認識し、I /O要求を処理する責務を引き受けたなら、階層ストレージ・マネージャ180 は次にI/O要求の処理を更に進めるためにすべきことを確認する。一般に、3 つの潜在的に可能な状況設定の1つを想定することができる。階層ストレージ・ マネージャ180は、単にファイル・システム・ドライバ182から階層ストレ ージ・マネージャ180に渡された情報を用いることによって、I/O要求を完 全に処理できる場合もある。このような情報は、リモート・ストレージ属性内の 情報を含み得るだけでなく、他の属性からの他の情報も含み得ることを思い出さ れたい。ファイル・システム・ドライバ182から階層ストレージ・マネージャ 180に渡される正確な情報は、個々の実現例によって異なる。階層ストレージ ・マネージャ180が、それが有する情報によってI/O要求を完全に処理する ことができる場合、次にIRP198および矢印200によって、適切な結果を クライアント・プロセス182に戻すことができる。 しかしながら、階層ストレージ・マネージャ180が、それが使用可能な情報 のみを用いて、I/O要求を完全に処理することができない場合、階層ストレー ジ・マネージャ180は、I/O要求を処理するために必要な情報を検索するた めのステップを実行することができる。I/O要求および正確な状況にしたがっ て、必要な情報は、ローカル・ストレージ、またはリモート・ストレージ、ある いは双方から検索しなければならない場合もある。ローカル・ストレージ190 からの検索は、図7では、ファイル・システム・ドライバ182およびディスク ・ドライバ184に渡すIRP202、および要求された情報を戻すために用い るIRP204で示す。リモート・ストレージ188からの検索は、図7では、 リモート・ストレージ・ドライバ186に転送され、必要に応じてリモート・ス トレージ188への情報転送またはリモート・ストレージ188からの情報転送 を開始するIRP206、およびあらゆる適切な情報を階層ストレージ・マネー ジ ャ180に戻すIRP208で示す。階層ストレージ・マネージャ180がリモ ート・ストレージ190またはリモート・ストレージ188あるいは双方から適 切な情報を検索した後、階層ストレージ・マネージャ180はI/O要求の処理 を完了し、図示のように、IRP198および矢印200によって適切な応答を 返すことができる。I/O要求を完了するためにローカル・ストレージ190ま たはリモート・ストレージ188に情報を書き込む必要がある場合、多少変更し た形態で同じ状況設定を用いる。 次に図8を参照し、リモート格納属性を有するファイルに遭遇した場合に、特 定の形式の階層ストレージ・マネージャが別個の計算機システムを利用してI/ O要求を処理するという例を提示する。図8に示す実施形態では、クライアント ・プロセス210は、ローカル・コンピュータ212上で実行している。ローカ ル・コンピュータ212は、コンピュータを相互接続するネットワーク手段を通 じて、リモート・コンピュータ214に接続してある。図8では、このようなネ ットワーク手段は、ネットワーク・カード216および接続部218によって示 している。ローカル・コンピュータ212のI/Oシステム220は、I/O処 理を実行するための複数のドライバ手段を備えている。図8では、このようなド ライバ手段は、例えば、暗号化ファイル・マネージャ222、ファイル・システ ム・ドライバ224、およびディスク・ドライバ226によって示している。ま た、I/Oシステム220は、オペレーティグ・システム・サービス228およ びI/Oマネージャ230も備えている。図7におけると同様、クライアント・ プロセス210は、オペレーティング・システム・サービス228にコールを行 う。I/Oマネージャ230はI/O要求を受け取り、I/Oシステムの種々の ドライバ手段間でのI/O要求の転送を調整する。あるいは、I/Oシステムの 種々のドライバ手段は、I/Oマネージャや情報の転送を調整するその他のデバ イスを用いずに、互いに直接通信することも可能である。 このシステムでは、ある種のファイル属性を暗号化してリモート・コンピュー タ214に送り、アクセスを制限した安全な環境でこれらを格納する。したがっ て、暗号化しリモート・コンピュータ214に格納したファイルを伴うあらゆる I/O要求は、暗号化せずにローカルに格納した他のファイルとは別個に処理し なければならない。この例では、クライアント・プロセス210は、リモート・ コンピュータ214上に格納してある暗号化ファイルを伴うI/O要求を行うと 想定する。このような要求を行うには、例えば、矢印232で示すように、クラ イアント・プロセス210がオペレーティング・システム・サービス228をコ ールする。I/O要求をファイル・システム・ドライバ224に渡し、ディスタ ・ドライバ226を利用して適切な情報を検索する。ディスク・ドライバ226 は、ディスク・コントローラ234を利用し、ローカル・ストレージ236から 情報を検索する。暗号化ファイルにアクセスする試みが行われた場合、ファイル ・システム・ドライバ224は、そのファイルがリモート格納属性であることを 認める。次に、リモート・ストレージ属性内の情報を、暗号化ファイル・マネー ジャ222に渡し、暗号化ファイルを、リモート・コンピュータ214上に格納 してあるものとして確認する。次に、暗号化ファイル・マネージャ222は、適 切なファイルを検索するステップを実行する。 適切なファイルを検索するステップは、I/O要求をリモート・コンピュータ 214に送ることを伴う場合がある。I/O要求を暗号化ファイル・マネージャ 222からリモート・コンピュータ214に転送するあらゆる機構が利用可能で ある。図8では、このようなI/O要求は、リディレクタ(redirector)238お よびネットワーク・トランスポート・ドライバ240を介して送ることができる 。リディレクタ238は、ローカル・コンピュータ212がネットワークを通じ て他の機械にある資源にアクセスするために必要な利器(facility)を備える。ネ ットワーク・トランスポート・ドライバ240は、ネットワーク・カード216 および接続部218を通じてローカル・コンピュータ212からリモート・コン ピュータ214に情報を転送する機構を備える。他の機構も使用可能であり、図 8に示すコンポーネントは、あらゆる観点においても例示と見なして当然である 。このような機構は、一般に、専用リンク、ローカル・エリア・ネットワーク( LAN)、ワイド・エリア・ネットワーク(WAN)、電話回線、ワイヤレス接 続等のような、あらゆる形式の接続を2つのコンピュータ間に含むことができる 。これらの通信機構に対応するために、種々の形式のソフトウエア・ドライバま たはコンポーネントが必要となる場合もあり得る。 暗号化ファイル・マネージャ222からの要求は、リディレクタ238に送ら れ、リディレクタ238はネットワーク・トランスポート・ドライバ240を用 いて、ネットワーク・カード216および接続部218を通じてI/O要求をリ モート・コンピュータ214に転送する。この特定例では、I/O要求は、暗号 化しリモート・コンピュータ214上に格納してある属性を検索するためのもの とする。このようなI/O要求は、ネットワーク・カード216、ネットワーク ・トランスポート・ドライバ242、およびサーバ・ファイル・システム244 を通じて、リモート・コンピュータ214が受信する。サーバ・ファイル・シス テム244は、リディレクタ238と通信し、リモート・コンピュータ214に 送られて来たあらゆるI/O要求を処理しこれを満たす。暗号化属性を検索する I/O要求を満たすために、サーバ・ファイル・システム244は、ファイル・ システム・ドライバ246やディスク・コントローラ248のような、リモート ・コンピュータ214のドライバおよびハードウエアを利用することができる。 本例では、サーバ・ファイル・システム244は、ファイル・システム・ドライ バ246を利用して、ディスク250から適切な暗号化属性を検索する。次に、 暗号化ファイル・マネージャ222に暗号化属性を返す。暗号化ファイル・マネ ージャ222が暗号化属性を受け取ったなら、暗号化ファイル・マネージャ22 2は、情報を解読するステップを実行し、次いでその情報をクライアント・プロ セス210に戻すことができる。 図5ないし図8に与えた例は、複数の異なるドライバを層状ドライバ・モデル で使用して階層ストレージ管理を実施した実施形態について説明した。このよう な層状ドライバ・モデルを用いて本発明を実施した場合、階層ストレージ・マネ ージャを作成するために必要なステップは、以下に示すように纏めることができ る。 最初のステップは、具体的な階層ストレージ・マネージャを特定するタグを定 義することである。前述のように、このタグは、所与のシステム上において既存 のタグ全てと異なるようにする必要がある。先に言及して本願にも含まれるもの とした同時係属中の再解析点特許出願は、本出願に開示されている機構と同様の 一般的な機構を、あらゆる形式の特殊化したドライバ(階層ストレージ・マネー ジャを含む)が、どのようにしてI/O要求の処理に介入するために用いること ができるかについて説明している。そこに記載されている機構も、タグ値を有す る属性を用いていた。このようなシステムでは、多数のドライバが存在する場合 があるので、階層ストレージ・マネージャに割り当てるタグは、システム内の既 存のあらゆる他のタグとも異なるものでなければならない。既に説明したように 、何らかの集中割り当て機構を用いてタグを予め関連付けることも可能であり、 あるいはインストール時に動的に割り当てることも可能である。 次のステップは、リモート・ストレージを記述する情報を設計することである 。この情報は、リモート・ストレージ属性に置き、階層ストレージ・マネージャ が用いるものである。このような情報は、リモート・ストレージ内のデータの完 全な識別を可能にしなければならない。既に説明したように、このデータは、シ ステム内に存在する各階層ストレージ・マネージャ毎に専用(private)であるの で、あらゆる情報を収容することができ、あるいは階層ストレージ・マネージャ が所望するあらゆるフォーマットを有することができる。オペレーティング環境 を破壊する階層ストレージ・マネージャについては、リモート・ストレージ属性 は適切な痕跡を含み、階層ストレージ・マネージャが、データをローカル・スト レージまたはリモート・ストレージに保持していた間に、データに何らかの変更 があったか否かについて認識できるようにすることも可能である。 次のステップは、リモート・ストレージ属性内に格納するデータを処理し、リ モート格納属性を有するファイルを伴うI/O要求を処理するために、層状階層 ストレージ・マネージャを構築することである。一旦層状階層ストレージ・マネ ージャを作成しシステム内にインストールしたなら、階層ストレージ・マネージ ャは、図5ないし図8との関連で既に論じたように、リモート格納属性を有する ファイルを伴うI/O要求を処理する。既に論じたように、I/O要求を処理す る場合、階層ストレージ・マネージャは、元のI/O要求と共に到来した情報に アクセスし、当該I/O要求を処理するために取るべきアクションを決定するこ とができる。追加の情報にアクセスすることなく解決するアクションもあるが、 ローカル・ストレージから情報を読み出したり、ローカル・ストレージに情報を 書き込む必要のあるアクションもあり、更に、リモート・ストレージから情報を 読み出したり、リモート・ストレージに情報を書き込む必要のある更に別のアク ションもある。 図5ないし図8に与えた例は、複数の異なるドライバを用いて階層的記憶管理 を実施する実施形態を強調したが、これらのドライバのいずれの機能性も、組み 合わせることにより一層高度な機能性を有する更に別のモノリシック・ドライバ も得られることは明白であろう。このような事項は、設計上の選択事項であり、 本発明の実現例には重要ではない。本発明は、階層ストレージ管理の既存のI/ Oシステム内への密接な統合に関するものである。本発明の目標の1つは、I/ Oシステム内に、種々の属性をリモートに格納するためにネーティブな支援を与 えることである。これは、ファイル・システムに、リモート格納属性を有するフ ァイルを検出し確認させることを含む。ここに記載した発明は非常に柔軟性があ るので、ファイルまたはその他のエンティティの属性のいずれかまたは全てを、 ローカルまたはリモートに格納することを可能にする。ローカル・ストレージ上 に残す必要があるのは、どこにリモート格納属性が位置するかを階層ストレージ ・マネージャに確認させるために十分な情報だけでよい。その結果、リモート格 納情報の状態をファイル・システムの一体部分として追跡し保持することを可能 にするI/Oシステムが得られた。 本発明は、その精神または本質的な特徴から逸脱することなく、他の特定形態 にも具体化が可能である。記載した実施形態は、あらゆる観点においても、限定 的ではなく、例示として見なすべきである。したがって、本発明の範囲は、前述 の記載ではなく、添付の請求の範囲によって示すものとする。請求の範囲の均等 の意味および範囲に該当する全ての変更は、その範囲内に含まれるものとする。
【手続補正書】特許法第184条の8第1項 【提出日】平成11年10月14日(1999.10.14) 【補正内容】 請求の範囲 1.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステム の一体部分としてリモート・ファイル格納を実施する方法であって、前記I/O システムが、複数の層状ドライバを有し、かつ複数の属性から成るファイルを伴 うI/O要求を処理し、前記属性の第1部分がユーザ制御データを格納するため に適合化してあり、前記属性の第2部分が前記I/Oシステムによる使用のため に適合化してあり、前記方法が、 前記複数の層状ドライバの特定の1つによって、リモートに格納すべきファイ ルの前記第1部分または前記第2部分のいずれかに格納してある少なくとも1つ の属性を識別するステップと、 前記少なくとも1つの属性を前記リモート記憶媒体に格納するステップと、 前記ローカル記憶媒体内に前記第2部分の一部として、前記少なくとも1つの 属性が前記リモート記憶媒体に格納されていることを前記I/Oシステムに示す リモート・ストレージ属性を格納するステップと、 から成り、前記リモート・ストレージ属性が、 前記特定の層状ドライバを、前記ファイルを伴うI/O要求を処理する制御を 引き受けることができるドライバとして特定するタグと、 前記少なくとも1つの属性を格納してある、前記リモート記憶媒体内の場所を 表わす情報と、 を含むことを特徴とする方法。 2.請求項1記載のリモート・ファイル格納を実施する方法において、前記リモ ート・ストレージ属性が、更に、前記リモート記憶媒体内の場所を表わす前記情 報に加えて、前記少なくとも1つの属性を識別するために前記特定の層状ドライ バが望むあらゆる情報を含むことを特徴とする方法。 3.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記少なくとも1つの属性を格納する前記ステップを、 前記特定の層状ドライバによって実行することを特徴とする方法。 4.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、前記ファイルの属性をローカル・ストレージから 読み出し、前記少なくとも1つの属性をリモートに格納すべきと判定するために 、十分な情報を入手可能とするステップを含むことを特徴とする方法。 5.請求項1記載のリモート・ファイル記憶を実施する方法において、前記少な くとも1つの属性を格納する前記ステップを、前記特定の層状ドライバによって 実行し、(1)リモートに格納すべき情報を抽出するステップと、(2)前記抽 出した情報を、前記複数の層状ドライバ内に含まれる他の層状ドライバに送るス テップとを含むことを特徴とする方法。 6.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステム の一体部分としてリモート・ファイル格納を実施する方法であって、前記I/O システムが、複数の層状ドライバを有し、かつ複数の属性から成るファイルを伴 うI/O要求を処理し、前記属性の第1部分がユーザ制御データを格納するため に適合化してあり、前記属性の第2部分が前記I/Oシステムによる使用のため に適合化してあり、前記方法が、 ファイルへのアクセスを要求するI/O要求を受け取るステップであって、前 記ファイルの少なくとも1つの属性が前記リモート記憶媒体に格納してあり、前 記ファイルの複数の属性の前記第2部分が、前記ローカル記憶媒体上に格納して あるリモート・ストレージ属性を含む、ステップと、 前記ローカル記憶媒体から前記リモート・ストレージ属性を読み出し、前記フ ァイルが、前記リモート記憶媒体に格納してある少なくとも1つの属性を有する ことを確認するステップと、 から成り、前記読み出すステップが、 前記リモート・ストレージ属性内に含まれるタグを読み出すステップであって 、 該タグが前記I/O要求を処理する制御を引き受けることができる、前記複数の 層状ドライバの特定の1つを特定する、ステップと、 前記少なくとも1つの属性を格納してある、前記リモート記憶媒体内の場所を 表わす、前記リモート・ストレージ属性内に含まれる情報を読み出すステップと を含み、 前記特定の層状ドライバによって、前記リモート記憶媒体内に格納してある前 記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことができ るか否かについて判定を行うステップと、 前記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことが できる場合、前記ローカル記憶媒体から必要なあらゆる情報にアクセスすること によって、前記I/O要求を満たすステップと、 前記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことが できない場合、前記特定の層状ドライバによって、前記リモート記憶媒体から前 記少なくとも1つの属性にアクセスすることによって、前記I/O要求を満たす ステップと、 から成ることを特徴とする方法。 7.請求項6記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記ローカル記憶媒体から前記リモート・ストレージ属 性を読み出す前記ステップを、前記複数の層状ドライバに含まれ、前記特定の層 状ドライバとは異なる別の層状ドライバによって実行することを特徴とする方法 。 8.請求項7記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、 前記他の層状ドライバによって前記タグを抽出するステップと、 前記特定の層状ドライバに制御を移管し、該特定の層状ドライバが、前記I/ O要求を処理する制御を引き受けることができるようにするステップと、 を含むことを特徴とする方法。 9.請求項8記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、前記特定の層状ドライバが第1階層ストレージ・マネー ジャであり、前記複数の層状ドライバが第2階層ストレージ・マネージャを含み 、制御を移管する前記ステップが、 前記タグを前記第2階層ストレージ・マネージャに渡し、前記第2階層ストレ ージ・マネージャが前記タグに応答しないステップと、順番に、 前記タグを前記特定の層状ドライバに渡し、前記タグに基づいて、前記特定の 層状ドライバがそれ自体を、前記I/O要求を処理する責務を引き受けることが できる層状ドライバとして認識するステップと、 を含むことを特徴とする方法。 10.I/O処理を実行する複数の層状ドライバ手段を用いるI/Oシステムに おいて、I/Oシステム・プリミティブとしてリモート・ファイル格納を実施す る方法であって、 I/O処理を実行する第1層状ドライバ手段によって、I/O要求を受け取り 、少なくとも1つのファイルまたはディレクトリを伴う、指定されたI/O動作 を実行するステップと、 前記少なくとも1つのファイルまたはディレクトリのいずれかが、ローカルに かつ当該少なくとも1つのファイルまたはディレクトリのいずれのユーザ制御デ ータ属性からも離れて格納してあるリモート・ストレージ属性を収容することを 判定することによって、前記少なくとも1つのファイルまたはディレクトリが、 リモート格納属性を有することを前記第1ドライバ手段によって判定するステッ プであって、前記リモート・ストレージ属性が、 I/O処理を実行する第2層状ドライバ手段を、前記少なくとも1つのファイ ルおよびディレクトリを伴うI/O要求を処理する制御を引き受けることができ る層状ドライバ手段として特定するタグと、 前記リモート格納属性を格納する、リモート記憶媒体内の場所を表わすリモー ト格納情報と、 を含む、前記のステップと、 前記第1層状ドライバ手段によって、前記リモート・ストレージ属性から前記 タグおよび前記リモート格納情報を抽出するステップと、 前記タグおよび前記リモート格納情報を前記第2層状ドライバ手段に渡し、前 記第2層状ドライバ手段が、前記指定したI/O要求を処理する制御を引き受け るステップと、 から成ることを特徴とする方法。 11.請求項10記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法において、前記タグおよび前記リモート格納情報を前記第 2層状ドライバ手段に渡す前記ステップが、前記第2層状ドライバ手段が、前記 タグに基づいて、前記少なくとも1つのファイルおよびディレクトリを伴うI/ O要求を処理する制御を引き受けることができる層状ドライバ手段としてそれ自 体を認識するステップを含むことを特徴とする方法。 12.請求項11記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法において、前記第2ドライバ手段が、以下のステップ、即 ち、 リモート格納情報へのアクセスなく、前記指定のI/O要求を満たすことがで きるか否かについて判定を行うステップと、 前記リモート格納属性へのアクセスなく、前記指定のI/O要求を満たすこと ができる場合、ローカル記憶媒体から必要なあらゆる情報にアクセスすることに よって、前記I/O要求を満たすステップと、 前記リモート格納属性へのアクセスなく、前記指定のI/O要求を満たすこと ができない場合、前記リモート記憶媒体から前記リモート格納属性にアクセスす ることによって、前記I/O要求を満たすステップと、 を実行することにより前記I/O要求を処理することを特徴とする方法。 13.コンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、 I/OシステムにおいてI/O処理を実行する第1層状ドライバ手段であって 、 前記I/Oシステムが少なくとも1つのファイルまたはディレクトリを受け取っ たときに、リモート格納属性を有する前記少なくとも1つのファイルまたはディ レクトリに関連する、ローカルに格納してあるリモート・ストレージ属性を読み 込む手段を備え、前記リモート・ストレージ属性が、 前記I/OシステムにおいてI/O処理を実行する第2層状ドライバ手段を、 前記I/O要求の制御を引き受ける層状ドライバ手段として特定するタグと、 前記リモート格納属性を格納してあるリモート記憶媒体内の位置を表わすリモ ート格納情報と、 を含む第1層状ドライバ手段と、 前記第2層状ドライバ手段であって、前記I/O要求の制御を引き受けるよう に適合化してある、第2層状ドライバ手段と、 前記読取手段が前記リモート・ストレージ属性を読み取ったことに応答して、 前記第1層状ドライバ手段が実行しているI/O処理を中断する手段と、 前記I/O要求を処理する制御を、前記第1層状ドライバ手段から前記第2層 状ドライバ手段に移管し、前記タグに応答して前記I/O要求の処理の制御を前 記第2層状ドライバ手段が引き受けるようにする手段と、 を備えることを特徴とするコンピュータ読取可能媒体。 14.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第1層状ドライバ手段が、前記リモート格納情報を前記第 2層状ドライバ手段に渡す手段を備えることを特徴とするコンピュータ読取可能 媒体。 15.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第2層状ドライバ手段が、前記タグに応答して、前記第2 層状ドライバ手段自体が前記I/O要求を処理する制御を引き受けることができ ると判断する手段を備えることを特徴とするコンピュータ読取可能媒体。 16.請求項14記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、 前記第2層状ドライバ手段が、第1階層ストレージ・マネージャであり、前記 第1層状ドライバ手段が第1指定値を有するタグをリモート・ストレージ属性か ら読み出したときに、前記第2層状ドライバ手段がI/O要求を処理する制御を 引き受け、 前記コンピュータ実行可能命令が、更に、前記第1層状ドライバ手段が第2指 定値を有するタグをリモート・ストレージ属性から読み出したときに、I/O要 求を処理する制御を引き受ける第2階層ストレージ・マネージャを備える、 ことを特徴とするコンピュータ読取可能媒体。 17.複数のデータ・フィールドを格納してあり、データ構造を表わすコンピュ ータ読取可能媒体であって、 前記データ構造を格納するために割り当てた記憶アドレスの範囲の第1領域内 に格納してある第1データ・フィールド集合であって、該第1データ・フィール ド集合がユーザ属性を格納し、ユーザが前記ユーザ属性を検索するためにアクセ ス可能な、第1データ・フィールド集合と、 前記データ構造を格納するために割り当てた記憶アドレスの前記範囲の第2領 域内に格納してある第2データ・フィールド集合であって、前記第2データ・フ ィールド集合が、前記データ構造のI/Oシステム属性を格納し、前記I/Oシ ステム属性が、I/Oシステム内に含まれる複数の層状ドライバの1つ以上によ るアクセスに適合化してある、第2データ・フィールド集合と、 を備え、 前記第2データ・フィールド集合が、 リモート・ストレージ属性を格納可能なリモート・ストレージ属性データ・フ ィールドを備え、 前記リモート・ストレージ属性が、 前記複数の層状ドライバの1つを、他のリモート・コンピュータ読取可能媒体 上に格納すべき、前記データ構造の部分を選択可能な指定ドライバとして特定す るタグと、 前記部分を格納すべき、前記他のリモート・コンピュータ読取可能媒体内の位 置を表わす情報を格納する手段と、 を備えること、を特徴とするコンピュータ読取可能媒体。 18.請求項17記載のコンピュータ読取可能媒体において、前記情報が、前記 指定ドライバに、必要な場合に、前記データ構造の前記部分を突き止めかつ検索 することを可能にすることを特徴とするコンピュータ読取可能媒体。 19.請求項18記載のコンピュータ読取可能媒体において、情報を格納する前 記手段が、前記他のリモート記憶媒体上に格納してある前記データ構造の前記部 分を識別する情報を備えることを特徴とするコンピュータ読取可能媒体。 【手続補正書】 【提出日】平成12年11月2日(2000.11.2) 【補正内容】 (1)特許請求の範囲の記載を以下の通りに補正します。 『1.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステ ムの一体部分としてリモート・ファイル格納を実施する方法であって、前記I/ Oシステムが、複数の層状ドライバを有し、かつ複数の属性から成るファイルを 伴うI/O要求を処理し、前記属性の第1部分がユーザ制御データを格納するた めに適合化してあり、前記属性の第2部分が前記I/Oシステムによる使用のた めに適合化してあり、前記方法が、 前記複数の層状ドライバの特定の1つによって、リモートに格納すべきファイ ルの前記第1部分または前記第2部分のいずれかに格納してある少なくとも1つ の属性を識別するステップと、 前記少なくとも1つの属性を前記リモート記憶媒体に格納するステップと、 前記ローカル記憶媒体内に前記第2部分の一部として、前記少なくとも1つの 属性が前記リモート記憶媒体に格納されていることを前記I/Oシステムに示す リモート・ストレージ属性を格納するステップと、 から成り、前記リモート・ストレージ属性が、 前記特定の層状ドライバを、前記ファイルを伴うI/O要求を処理する制御を 引き受けることができるドライバとして特定するタグと、 前記少なくとも1つの属性を格納してある、前記リモート記憶媒体内の場所を 表わす情報と、 を含むことを特徴とする方法。 2.請求項1記載のリモート・ファイル格納を実施する方法において、前記リモ ート・ストレージ属性が、更に、前記リモート記憶媒体内の場所を表わす前記情 報に加えて、前記少なくとも1つの属性を識別するために前記特定の層状ドライ バが望むあらゆる情報を含むことを特徴とする方法。 3.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記少なくとも1つの属性を格納する前記ステップを、 前記特定の層状ドライバによって実行することを特徴とする方法。 4.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、前記ファイルの属性をローカル・ストレージから 読み出して、前記少なくとも1つの属性をリモートに格納すべきと判定するため に、十分な情報を入手可能とするステップを含むことを特徴とする方法。 5.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル記憶を 実施する方法において、前記少なくとも1つの属性を格納する前記ステップを、 前記特定の層状ドライバによって実行し、かつ(1)リモートに格納すべき情報 を抽出するステップと、(2)前記抽出した情報を、前記複数の層状ドライバ内 に含まれる他の層状ドライバに送るステップとを少なくとも含むことを特徴とす る方法。 6.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステム の一体部分としてリモート・ファイル格納を実施する方法であって、前記I/O システムが、複数の層状ドライバを有し、かつ複数の属性から成るファイルを伴 うI/O要求を処理し、前記属性の第1部分がユーザ制御データを格納するため に適合化してあり、前記属性の第2部分が前記I/Oシステムによる使用のため に適合化してあり、前記方法が、 ファイルへのアクセスを要求するI/O要求を受け取るステップであって、前 記ファイルの少なくとも1つの属性が前記リモート記憶媒体に格納してあり、前 記ファイルの複数の属性の前記第2部分が、前記ローカル記憶媒体上に格納して あるリモート・ストレージ属性を含む、ステップと、 前記ローカル記憶媒体から前記リモート・ストレージ属性を読み出して、前記 ファイルが、前記リモート記憶媒体に格納してある少なくとも1つの属性を有す ることを確認するステップと、 から成り、前記読み出すステップが、 前記リモート・ストレージ属性内に含まれるタグを読み出すステップであって 、 該タグが前記I/O要求を処理する制御を引き受けることができる、前記複数の 層状ドライバの特定の1つを特定する、ステップと、 前記少なくとも1つの属性を格納してある、前記リモート記憶媒体内の場所を 表わす、前記リモート・ストレージ属性内に含まれる情報を読み出すステップと を含み、 前記特定の層状ドライバによって、前記リモート記憶媒体内に格納してある前 記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことができ るか否かについて判定を行うステップと、 前記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことが できる場合、前記ローカル記憶媒体から必要なあらゆる情報にアクセスすること によって、前記I/O要求を満たすステップと、 前記少なくとも1つの属性へのアクセスなく、前記I/O要求を満たすことが できない場合、前記特定の層状ドライバによって、前記リモート記憶媒体から前 記少なくとも1つの属性にアクセスすることによって、前記I/O要求を満たす ステップと、 から成ることを特徴とする方法。 7.請求項6記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記ローカル記憶媒体から前記リモート・ストレージ属 性を読み出す前記ステップを、前記複数の層状ドライバに含まれ、前記特定の層 状ドライバとは異なる別の層状ドライバによって実行することを特徴とする方法 。 8.請求項7記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、 前記他の層状ドライバによって前記タグを抽出するステップと、 前記特定の層状ドライバに制御を移管して、該特定の層状ドライバが、前記I /O要求を処理する制御を引き受けることができるようにするステップと、 を含むことを特徴とする方法。 9.請求項8記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、前記特定の層状ドライバが第1階層ストレージ・マネー ジャであり、前記複数の層状ドライバが第2階層ストレージ・マネージャを含み 、制御を移管する前記ステップが、 前記タグを前記第2階層ストレージ・マネージャに渡し、前記第2階層ストレ ージ・マネージャが前記タグに応答しないステップと、順番に、 前記タグを前記特定の層状ドライバに渡し、前記タグに基づいて、前記特定の 層状ドライバがそれ自体を、前記I/O要求を処理する責務を引き受けることが できる層状ドライバとして認識するステップと、 を含むことを特徴とする方法。 10.I/O処理を実行する複数の層状ドライバ手段を用いるI/Oシステムに おいて、I/Oシステム・プリミティブとしてリモート・ファイル格納を実施す る方法であって、 I/O処理を実行する第1層状ドライバ手段によって、I/O要求を受け取っ て、1つのファイルまたは1つのディレクトリの内の少なくとも1つを伴う、指 定されたI/O動作を実行するステップと、 前記ファイルまたは前記ディレクトリのいずれかの前記少なくとも1つが、ロ ーカルにかつ前記ファイルまたは前記ディレクトリの内の前記少なくとも1つの ユーザ制御データ属性からも離れて格納してあるリモート・ストレージ属性を収 容することを判定することによって、前記ファイルおよび前記ディレクトリの内 の前記少なくとも1つが、リモート格納属性を有することを前記第1ドライバ手 段によって判定するステップであって、前記リモート・ストレージ属性が、 I/O処理を実行する第2層状ドライバ手段を、前記ファイルおよび前記ディ レクトリの内の前記少なくとも1つを伴うI/O要求を処理する制御を引き受け ることができる層状ドライバ手段として特定するタグと、 前記リモート格納属性を格納する、リモート記憶媒体内の場所を表わすリモー ト格納情報と、 を含む、前記のステップと、 前記第1層状ドライバ手段によって、前記リモート・ストレージ属性から前記 タグおよび前記リモート格納情報を抽出するステップと、 前記タグおよび前記リモート格納情報を前記第2層状ドライバ手段に渡し、前 記第2層状ドライバ手段が、前記指定したI/O要求を処理する制御を引き受け るステップと、 から成ることを特徴とする方法。 11.請求項10記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法において、前記タグおよび前記リモート格納情報を前記第 2層状ドライバ手段に渡す前記ステップが、前記第2層状ドライバ手段が、前記 タグに基づいて、前記ファイルおよび前記ディレクトリの内の少なくとも1つを 伴うI/O要求を処理する制御を引き受けることができる層状ドライバ手段とし てそれ自体を認識するステップを含むことを特徴とする方法。 12.請求項11記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法において、前記第2ドライバ手段が、少なくとも以下のス テップ、即ち、 リモート格納情報へのアクセスなく、前記指定のI/O要求を満たすことがで きるか否かについて判定を行うステップと、 前記リモート格納属性へのアクセスなく、前記指定のI/O要求を満たすこと ができる場合、ローカル記憶媒体からの必要なあらゆる情報にアクセスすること によって、前記指定のI/O要求を満たすステップと、 前記リモート格納属性へのアクセスなく、前記指定のI/O要求を満たすこと ができない場合、前記リモート記憶媒体から前記リモート格納属性にアクセスす ることによって、前記指定のI/O要求を満たすステップと、 を実行することにより前記I/O要求を処理することを特徴とする方法。 13.コンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、 I/OシステムにおいてI/O処理を実行する第1層状ドライバ手段であって 、 前記I/Oシステムが1つのファイルまたは1つのディレクトリの内の少なくと も1つを伴うI/O要求を受け取ったときに、リモート格納属性を有する前記フ ァイルまたは前記ディレクトリの内の前記少なくとも1つに関連する、ローカル に格納してあるリモート・ストレージ属性を読み込む手段を備え、前記リモート ・ストレージ属性が、 前記I/OシステムにおいてI/O処理を実行する第2層状ドライバ手段を、 前記I/O要求の制御を引き受ける層状ドライバ手段として特定するタグと、 前記リモート格納属性を格納してあるリモート記憶媒体内の位置を表わすリモ ート格納情報と、 を含む第1層状ドライバ手段と、 前記第2層状ドライバ手段であって、前記I/O要求の制御を引き受けるよう に適合化してある、第2層状ドライバ手段と、 前記読取手段が前記リモート・ストレージ属性を読み取ったことに応答して、 前記第1層状ドライバ手段が実行しているI/O処理を中断する手段と、 前記I/O要求を処理する制御を、前記第1層状ドライバ手段から前記第2層 状ドライバ手段に移管して、前記タグに応答して前記I/O要求の処理の制御を 前記第2層状ドライバ手段が引き受けるようにする手段と、 を備えることを特徴とするコンピュータ読取可能媒体。 14.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第1層状ドライバ手段が、前記リモート格納情報を前記第 2層状ドライバ手段に渡す手段を備えることを特徴とするコンピュータ読取可能 媒体。 15.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第2層状ドライバ手段が、前記タグに応答して、前記第2 層状ドライバ手段自体が前記I/O要求を処理する制御を引き受けることができ ると判定する手段を備えることを特徴とするコンピュータ読取可能媒体。 16.請求項14記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、 前記第2層状ドライバ手段が、第1階層ストレージ・マネージャであり、前記 第1層状ドライバ手段が第1指定値を有するタグをリモート・ストレージ属性か ら読み出したときに、前記第2層状ドライバ手段がI/O要求を処理する制御を 引き受け、 前記コンピュータ実行可能命令が、更に、前記第1層状ドライバ手段が第2指 定値を有するタグをリモート・ストレージ属性から読み出したときに、I/O要 求を処理する制御を引き受ける第2階層ストレージ・マネージャを備える、 ことを特徴とするコンピュータ読取可能媒体。 17.複数のデータ・フィールドを格納してあり、データ構造を表わすコンピュ ータ読取可能媒体であって、 前記データ構造を格納するために割り当てた記憶アドレスの範囲の第1領域内 に格納してある第1データ・フィールド集合であって、該第1データ・フィール ド集合がユーザ属性を格納し、ユーザが前記ユーザ属性を検索するためにアクセ ス可能な、第1データ・フィールド集合と、 前記データ構造を格納するために割り当てた記憶アドレスの前記範囲の第2領 域内に格納してある第2データ・フィールド集合であって、前記第2データ・フ ィールド集合が、前記データ構造のI/Oシステム属性を格納し、前記I/Oシ ステム属性が、I/Oシステム内に含まれる複数の層状ドライバの1つ以上によ るアクセスに適合化してある、第2データ・フィールド集合と、 を備え、 前記第2データ・フィールド集合が、 リモート・ストレージ属性を格納可能なリモート・ストレージ属性データ・フ ィールドを備え、 前記リモート・ストレージ属性が、 前記複数の層状ドライバの1つを、他のリモート・コンピュータ読取可能媒体 上に格納すべき、前記データ構造の部分を選択可能な指定ドライバとして特定す るタグと、 前記部分を格納すべき、前記他のリモート・コンピュータ読取可能媒体内の位 置を表わす情報を格納する手段と、 を備えること、を特徴とするコンピュータ読取可能媒体。 18.請求項17記載のコンピュータ読取可能媒体において、前記情報が、前記 指定ドライバに、必要な場合に、前記データ構造の前記部分を突き止めかつ検索 することを可能にすることを特徴とするコンピュータ読取可能媒体。 19.請求項18記載のコンピュータ読取可能媒体において、情報を格納する前 記手段が、前記他のリモート記憶媒体上に格納してある前記データ構造の前記部 分を識別する情報を備えることを特徴とするコンピュータ読取可能媒体。』
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,UZ,V N,YU,ZW (72)発明者 ミラー,トーマス・ジェイ アメリカ合衆国ワシントン州98004,ベル ビュー,ノース・イースト・フォーティセ ヴンス・ストリート 9015 (72)発明者 アンドリュー,ブライアン・ディー アメリカ合衆国ワシントン州98052,レッ ドモンド,ワンハンドレッドフォーティシ ックスス・アベニュー・ノース・イースト 7706

Claims (1)

  1. 【特許請求の範囲】 1.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステム の一体部分として、リモート・ファイル格納を実施する方法であって、前記I/ Oシステムが、複数の属性から成るファイルを伴うI/O要求を処理し、前記属 性の第1部分がユーザ制御データを格納するために適合化してあり、前記属性の 第2部分が前記I/Oシステムによる使用のために適合化してあり、前記方法が 、 リモートに格納すべきファイルの前記第1部分または前記第2部分のいずれか に格納してある少なくとも1つの属性を識別するステップと、 前記I/Oシステムにアクセス可能な前記リモート記憶媒体に、前記識別した 属性の少なくとも一部を格納するステップと、 前記I/Oシステムが前記リモート格納属性の位置を突き止めることを可能に する情報を前記第2部分に格納し、前記I/Oシステムが、前記第2部分を検査 することによって、リモート格納属性を直接識別し、その位置を突き止めること を可能にするステップと、 から成ることを特徴とする方法。 2.請求項1記載のリモート・ファイル格納を実施する方法において、前記I/ Oシステムが前記リモート格納属性の位置を突き止めることを可能にする情報を 前記第2部分に格納する前記ステップが、少なくとも、 前記第2部分に、リモートに格納すべき少なくとも1つの属性を識別する前記 ステップを実行する責務を負う、複数の層状ドライバの1つを特定する手段を格 納するステップと、 前記リモートに格納すべき少なくとも1つの属性と、該少なくとも1つの属性 を格納する前記リモート記憶媒体内の場所とを識別するために、前記第2部分に 、前記複数の層状ドライバの前記1つが所望するあらゆる情報を格納する手段を 格納するステップと、 を実行することによって、遂行することを特徴とする方法。 3.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、少なくとも1つの属性を識別する前記ステップと、前記 識別した属性の少なくとも一部を格納する前記ステップを、前記I/Oシステム の一体部分を形成する複数の層状ドライバの少なくとも1つによって実行するこ とを特徴とする方法。 4.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、ローカル・ストレージから前記ファイルの属性を 読み出し、1つ以上の属性をリモートに格納すべきか判定するために、十分な情 報を使用可能とするステップを含むことを特徴とする方法。 5.請求項1記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記識別した属性の少なくとも一部を格納する前記ステ ップは、I/O処理を実行する第1ドライバ手段によって実行し、該第1ドライ バ手段は、少なくとも(1)リモートに格納すべき情報を抽出するステップと、 (2)前記抽出した情報を、I/O処理を実行する第2ドライバ手段に送るステ ップとを実行することによって、前記識別した属性の少なくとも一部を格納する 前記ステップを実行することを特徴とする方法。 6.ローカルおよびリモート記憶媒体双方へのアクセスを有するI/Oシステム の一体部分として、リモート・ファイル格納を実施する方法であって、前記I/ Oシステムが、複数の属性から成るファイルを伴うI/O要求を処理し、前記属 性の第1部分が、ユーザ制御データを格納するために適合化してあり、前記属性 の第2部分が、前記I/Oシステムによる使用のために適合化してあり、前記方 法が、 前記ローカル記憶媒体上に少なくとも一部が格納されているファイルへのアク セスを要求するI/O要求を受け取るステップと、 前記ローカル記憶媒体から、前記ファイルの属性の前記第2部分から少なくと も1つの属性を読み出し、前記ファイルが、前記リモート記憶媒体に格納した属 性を有するか否か確認するステップと、 前記ファイルが、前記リモート記憶媒体に格納した属性を有する場合、少なく とも以下のステップ、即ち、 前記I/O要求は、前記リモート・ストレージ内に格納した属性へのアクセス なく、満たすことができるか否かについて判定を行うステップと、 前記リモート・ストレージ内に格納した属性へのアクセスなく、前記I/O要 求を満たすことができる場合、前記ローカル記憶媒体からあらゆる必要な情報を 読み出し、前記ローカル記憶媒体にあらゆる必要な情報を書き込むことによって 前記I/O要求を満たし、次いで前記方法を終了するステップと、 前記リモート・ストレージ内に格納した属性へのアクセスなく、前記I/O要 求を満たすことができない場合、前記リモート記憶媒体からあらゆる必要な情報 を読み出し、前記リモート記憶媒体にあらゆる必要な情報を書き込むことによっ て前記I/O要求を満たすステップと、 を実行するステップと、 から成ることを特徴とする方法。 7.請求項6記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、前記ローカル記憶媒体から少なくとも1つの属性を読み 出す前記ステップは、I/O処理を実行する第1ドライバ手段によって実行し、 前記I/O要求は、前記リモート・ストレージ内に格納した属性へのアクセスな く、満たすことができるか否かについて判定を行う前記ステップは、I/O処理 を実行する第2ドライバ手段によって実行することを特徴とする方法。 8.請求項7記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法であって、更に、 前記第2ドライバ手段を前記I/O要求を処理すべきドライバ手段として特定 する、前記ファイルの属性の前記第2部分に格納してある情報を、前記第1ドラ イバ手段によって抽出するステップと、 前記第2ドライバ手段が前記I/O要求の処理を続けることができるように、 前記第2ドライバ手段に制御を移管するステップと、 を含むことを特徴とする方法。 9.請求項8記載のI/Oシステムの一体部分としてリモート・ファイル格納を 実施する方法において、制御を移管する前記ステップが、前記第2ドライバ手段 がそれ自体を、前記I/O要求を処理する責務を引き受けるべきドライバ手段と して認識するまで、複数のドライバ手段の各々に、前記抽出した情報を順に受け 渡すステップから成ることを特徴とする方法。 10.I/O処理を実行する複数のドライバ手段を用いるI/Oシステムにおい て、I/Oシステム・プリミティブとして、リモート・ファイル格納を実施する 方法であって、 I/O処理を実行する第1ドライバ手段が、I/O要求を受け取り、少なくと も1つのファイルまたはディレクトリのいずれかを伴う、指定されたI/O動作 を実行するステップと、 前記第1ドライバ手段が、前記少なくとも1つのファイルまたはディレクトリ のいずれかが、あらゆるユーザ制御データとは別個に格納してあるリモート・ス トレージ属性を、前記少なくとも1つのファイルまたはディレクトリのいずれか に収容しているか否か確認することによって、前記少なくとも1つのファイルま たはディレクトリのいずれかが、リモート格納情報を有するか否か確認し、 前記少なくとも1つのファイルまたはディレクトリのいずれかが、リモート格 納情報を収容している場合、前記第1ドライバが、少なくとも以下のステップ、 即ち、 前記リモート格納属性からリモート格納情報を抽出するステップと、 前記抽出したリモート格納情報を、処理のために第2ドライバに渡すステップ と、 を実行すること、 を特徴とする方法。 11.請求項10記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法であって、更に、I/O処理を実行する第2ドライバ手段 が、抽出したリモート格納情報を受け取り、前記I/O要求を処理する責務を引 き受けるステップを含むことを特徴とする方法。 12.請求項11記載のI/Oシステム・プリミティブとしてリモート・ファイ ル格納を実施する方法において、前記第2ドライバ手段が、少なくとも以下のス テップ、即ち、 前記I/O要求は、リモート格納情報へのアクセスなく、満たすことができる か否かについて判定を行うステップと、 リモート格納情報へのアクセスなく、前記I/O要求を満たすことができる場 合、前記I/Oシステムにアクセス可能なローカル記憶媒体からあらゆる必要な 情報を読み出し、前記ローカル記憶媒体にあらゆる必要な情報を書き込むことに よって前記I/O要求を満たし、次いで前記方法を終了するステップと、 リモート格納情報へのアクセスなく、前記I/O要求を満たすことができない 場合、前記リモート格納情報が位置するリモート記憶媒体からあらゆる必要な情 報を読み出し、前記リモート記憶媒体にあらゆる必要な情報を書き込むことによ って前記I/O要求を満たすステップと、 を実行することにより、前記I/O要求を処理することを特徴とする方法。 13.コンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、 I/OシステムにおいてI/O処理を実行する第1ドライバ手段であって、リ モート格納属性を有する少なくとも1つのファイルまたはディレクトリのいずれ かを伴うI/O要求の少なくとも部分的な処理を実行するように適合化してある 、第1ドライバ手段と、 前記I/OシステムにおいてI/O処理を実行する第2ドライバ手段と、 前記第2ドライバ手段が備え、I/O要求が前記少なくとも1つのファイルま たはディレクトリを伴う場合、前記第2ドライバ手段が前記要求のI/O処理を 完全に完了する前に、前記第2ドライバ手段によって前記要求のI/O処理を中 断する手段と、 前記I/O要求を処理する制御を、前記第2ドライバ手段から前記第1ドライ バ手段に移管し、前記第1ドライバ手段に前記I/O要求を処理させ続ける手段 と、 を備えることを特徴とするコンピュータ読取可能媒体。 14.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体であって、更に、前記第1ドライバ手段と前記第2ドライバ手段との間で I/O処理要求を受け渡す手段を備えることを特徴とするコンピュータ読取可能 媒体。 15.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第2ドライバ手段が、前記少なくとも1つのファイルまた はディレクトリのいずれかに関連するリモート格納情報を前記第1ドライバ手段 に渡す手段を備えることを特徴とするコンピュータ読取可能媒体。 16.請求項15記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記リモート格納情報がタグと値とから成り、前記タグが前記 リモート格納情報を所有するドライバ手段のIDを示し、前記値がリモート格納 属性を突き止めるために前記オーナが必要とするデータから成ることを特徴とす るコンピュータ読取可能媒体。 17.請求項13記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第1ドライバ手段が、前記第1ドライバ手段が受信するリ モート格納情報は当該第1ドライバ手段が所有することを確認する手段を備える ことを特徴とするコンピュータ読取可能媒体。 18.請求項17記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記確認する手段が、前記リモート格納情報のタグを検査し、 前記第1ドライバ手段が前記リモート格納情報を所有するか否か確認することを 特徴とするコンピュータ読取可能媒体。 19.コンピュータ実行可能命令を有するコンピュータ読取可能媒体であって、 I/OシステムにおいてI/O処理を実行する第1ドライバ手段であって、リ モート格納属性を有する少なくとも1つのファイルまたはディレクトリのいずれ かを伴うI/O要求の少なくとも部分的な処理を実行するように適合化してある 、第1ドライバ手段と、 前記I/OシステムにおいてI/O処理を実行する第2ドライバ手段と、 前記第1ドライバ手段と前記第2ドライバ手段との間でI/O処理要求を受け 渡す手段と、 前記第2ドライバ手段が備え、I/O要求が前記少なくとも1つのファイルま たはディレクトリを伴う場合、前記第2ドライバ手段が前記要求のI/O処理を 完全に完了する前に、前記第2ドライバ手段によって前記要求のI/O処理を中 断する手段と、 前記I/O要求を処理する制御を、前記第2ドライバ手段から前記第1ドライ バ手段に移管し、前記第1ドライバ手段に前記I/O要求を処理させ続ける手段 と、 を備えることを特徴とするコンピュータ読取可能媒体。 20.請求項19記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第2ドライバ手段が、前記少なくとも1つのファイルまた はディレクトリに関連するリモート格納情報を、前記第1ドライバ手段に渡す手 段を備えることを特徴とするコンピュータ読取可能媒体。 21.請求項20記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記第1ドライバ手段が、前記第1ドライバ手段が受信するリ モート格納情報は当該第1ドライバ手段が所有することを確認する手段を備える ことを特徴とするコンピュータ読取可能媒体。 22.請求項21記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記リモート格納情報がタグと値とから成り、前記タグが前記 リモート格納情報を所有するドライバ手段のIDを示し、前記値がリモート格納 属性を突き止めるために前記オーナが必要とするデータから成ることを特徴とす るコンピュータ読取可能媒体。 23.請求項22記載のコンピュータ実行可能命令を有するコンピュータ読取可 能媒体において、前記確認する手段が、前記タグを検査し、前記第1ドライバ手 段が前記リモート格納情報を所有するか否か確認することを特徴とするコンピュ ータ読取可能媒体。 24.複数のデータ・フィールドを記憶し、データ構造を表わすコンピュータ読 取可能媒体であって、 前記データ構造を格納するために割り当てた記憶アドレスの範囲の第1領域内 に格納してある第1データ・フィールド集合であって、ユーザ・データを格納す るために使用可能であり、ユーが内部に格納してあるデータを検索するためにア クセス可能な第1データ・フィールド集合であって、 前記ユーザによって内部に格納したデータを収容する、前記第1領域内に格納 した第1データ・フィールド、 を備える、第1データ・フィールド集合と、 前記データ構造を格納するために割り当てた記憶アドレスの前記範囲の第2領 域内に格納してある第2データ・フィールド集合であって、前記データ構造の種 々の属性を格納するために使用可能であり、前記属性はドライバ手段が前記デー タ構造に関連するI/O要求を処理するためのアクセスに適合化してある、該第 2データ・フィールド集合であって、 リモート・ストレージ属性を表わすデータを収容する、前記第2領域内に格納 した第3データ・フィールド、 を備える第2データ・フィールド集合と、 を備え、 前記第3データ・フィールドが、 リモート格納データを管理するドライバ手段を特定する手段と、 前記ドライバ手段が前記データ構造のリモート格納データ・フィールドを管理 するために用いる情報を格納する手段と、 を備えること、を特徴とするコンピュータ読取可能媒体。 25.請求項24記載のコンピュータ読取可能媒体において、前記情報を格納す る手段が、各リモート格納データ・フィールドがどこに格納されているのか確認 し、前記ドライバ手段が、必要なときに、前記リモート格納データ・フィールド を突き止めかつこれを検索可能とする情報を備えることを特徴とするコンピュー タ読取可能媒体。 26.請求項25記載のコンピュータ読取可能媒体において、前記情報を格納す る手段が、前記データ構造の前記データ・フィールドの内どれをリモートに格納 してあるのかを確認する情報を備えることを特徴とするコンピュータ読取可能媒 体。
JP50281999A 1997-06-13 1998-06-03 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ Withdrawn JP2001526815A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/874,787 US5978815A (en) 1997-06-13 1997-06-13 File system primitive providing native file system support for remote storage
US08/874,787 1997-06-13
PCT/US1998/011431 WO1998057250A2 (en) 1997-06-13 1998-06-03 File system primitive providing native file system support for remote storage

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2006202829A Division JP4302723B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
JP2006202857A Division JP4395153B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ

Publications (1)

Publication Number Publication Date
JP2001526815A true JP2001526815A (ja) 2001-12-18

Family

ID=25364579

Family Applications (3)

Application Number Title Priority Date Filing Date
JP50281999A Withdrawn JP2001526815A (ja) 1997-06-13 1998-06-03 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
JP2006202857A Expired - Lifetime JP4395153B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
JP2006202829A Expired - Fee Related JP4302723B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2006202857A Expired - Lifetime JP4395153B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
JP2006202829A Expired - Fee Related JP4302723B2 (ja) 1997-06-13 2006-07-26 リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ

Country Status (8)

Country Link
US (1) US5978815A (ja)
EP (1) EP1034488B1 (ja)
JP (3) JP2001526815A (ja)
AT (1) ATE500558T1 (ja)
AU (1) AU7722198A (ja)
CA (1) CA2291000C (ja)
DE (1) DE69842153D1 (ja)
WO (1) WO1998057250A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338136A (ja) * 2005-05-31 2006-12-14 Mitsubishi Electric Information Systems Corp 機密保持コンピュータ及びプログラム

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19755129B4 (de) * 1997-12-11 2005-01-27 Telefonaktiebolaget Lm Ericsson (Publ) Lastregulierung für ein Echtzeit-Kommunikationssystem
US6654954B1 (en) * 1998-02-17 2003-11-25 International Business Machines Corporation Computer system, program product and method utilizing executable file with alternate program code attached as a file attribute
US6321249B1 (en) * 1998-04-28 2001-11-20 Xerox Corporation Dynamic system configuration using an object-based client-server system
US6378004B1 (en) * 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
US6357006B1 (en) * 1998-07-29 2002-03-12 Unisys Corporation Digital signaturing method and system for re-creating specialized native files from single wrapped files imported from an open network or residing on a CD-ROM
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392234B2 (en) 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US6434566B1 (en) * 1998-12-01 2002-08-13 Lucent Technologies Inc. Method and system for supporting multi-method dispatching in object-oriented programming
US6965911B1 (en) * 1998-12-21 2005-11-15 Intel Corporation Efficiently exporting local device access onto a system area network using a direct-call interface
US6549934B1 (en) * 1999-03-01 2003-04-15 Microsoft Corporation Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
SG104254A1 (en) * 1999-03-18 2004-06-21 Kent Ridge Digital Labs A computing system and method for migrating a mobile computing environment
US6857076B1 (en) 1999-03-26 2005-02-15 Micron Technology, Inc. Data security for digital data storage
US7096370B1 (en) * 1999-03-26 2006-08-22 Micron Technology, Inc. Data security for digital data storage
US7421711B2 (en) * 1999-07-26 2008-09-02 Microsoft Corporation System, method and apparatus for supporting a kernel mode driver
US7150018B2 (en) * 2000-02-16 2006-12-12 Microsoft Corporation Method and system for deterministic ordering of software modules
DE10101346B4 (de) * 2000-03-08 2009-12-24 International Business Machines Corp. Verfahren zum automatischen Umsetzen von Daten, die in einem bestimmten Laufzeitcodierungssystem erzeugt wurden, für die Verarbeitung in einem anderen Laufzeitcodierungssystem
US6654794B1 (en) * 2000-03-30 2003-11-25 International Business Machines Corporation Method, data processing system and program product that provide an internet-compatible network file system driver
AU2001293290A1 (en) 2000-09-21 2002-04-02 Integrity Pc Innovations, Inc. An automatic real-time file management method and apparatus
US7103783B1 (en) * 2000-09-29 2006-09-05 Pinion Software, Inc. Method and system for providing data security in a file system monitor with stack positioning
DE60128200T2 (de) * 2000-12-15 2008-01-24 International Business Machines Corp. Methode und System für skalierbare, hochperformante hierarchische Speicherverwaltung
JP2002244989A (ja) * 2001-02-20 2002-08-30 Nec Corp デバイスドライバ作動方法
US7526795B2 (en) * 2001-03-27 2009-04-28 Micron Technology, Inc. Data security for digital data storage
US7761449B2 (en) * 2001-08-09 2010-07-20 Hewlett-Packard Development Company, L.P. Self-disentangling data storage technique
US7092977B2 (en) * 2001-08-31 2006-08-15 Arkivio, Inc. Techniques for storing data based upon storage policies
US20040039891A1 (en) * 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
US7167982B2 (en) * 2001-09-14 2007-01-23 Lenovo (Singapore) Pte Ltd. Securing decrypted files in a shared environment
US20030115204A1 (en) * 2001-12-14 2003-06-19 Arkivio, Inc. Structure of policy information for storage, network and data management applications
DE10161979A1 (de) * 2001-12-17 2003-06-18 Bayer Ag Monodisperse Anionenaustauscher
US6877045B2 (en) 2001-12-18 2005-04-05 International Business Machines Corporation Systems, methods, and computer program products to schedule I/O access to take advantage of disk parallel access volumes
US6754734B2 (en) 2001-12-18 2004-06-22 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database
US7113937B2 (en) * 2001-12-18 2006-09-26 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US7269612B2 (en) * 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
US7065743B2 (en) * 2002-07-11 2006-06-20 International Business Machines Corporation Apparatus and method for caching analyzed program information
US20040049513A1 (en) * 2002-08-30 2004-03-11 Arkivio, Inc. Techniques for moving stub files without recalling data
US20040083202A1 (en) * 2002-08-30 2004-04-29 Arkivio, Inc. Techniques to control recalls in storage management applications
US20040163029A1 (en) * 2002-12-02 2004-08-19 Arkivio, Inc. Data recovery techniques in storage systems
WO2004109663A2 (en) * 2003-05-30 2004-12-16 Arkivio, Inc. Techniques for facilitating backup and restore of migrated files
US20050015409A1 (en) * 2003-05-30 2005-01-20 Arkivio, Inc. Techniques for performing operations on migrated files without recalling data
WO2005001646A2 (en) 2003-06-25 2005-01-06 Arkivio, Inc. Techniques for performing policy automated operations
US7647455B2 (en) * 2004-04-15 2010-01-12 Sony Corporation Information processing apparatus and method, program, and program recording medium
US7765243B2 (en) * 2004-07-26 2010-07-27 Sandisk Il Ltd. Unified local-remote logical volume
US8230068B2 (en) * 2004-12-02 2012-07-24 Netapp, Inc. Dynamic command capacity allocation across multiple sessions and transports
US8290901B2 (en) * 2005-03-07 2012-10-16 Novell, Inc. Techniques for remote resource mounting
JP2007148982A (ja) * 2005-11-30 2007-06-14 Hitachi Ltd ストレージシステム及びその管理方法
WO2008065740A1 (fr) * 2006-11-27 2008-06-05 Visionarts, Inc. Système d'interface de dispositifs de communication
US7908404B1 (en) * 2007-11-09 2011-03-15 Qlogic, Corporation Method and system for managing network and storage data
US20090150461A1 (en) * 2007-12-07 2009-06-11 Brocade Communications Systems, Inc. Simplified snapshots in a distributed file system
US9239762B1 (en) * 2009-08-11 2016-01-19 Symantec Corporation Method and apparatus for virtualizing file system placeholders at a computer
US9111305B2 (en) 2010-12-17 2015-08-18 Amazon Technologies, Inc. Personal remote storage for purchased electronic content items
US10552385B2 (en) * 2012-05-20 2020-02-04 Microsoft Technology Licensing, Llc System and methods for implementing a server-based hierarchical mass storage system
US8843676B2 (en) 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file
US9218350B2 (en) * 2013-04-30 2015-12-22 Microsoft Technology Licensing, Llc Searching and placeholders
US9405767B2 (en) 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
US10996897B2 (en) 2016-08-25 2021-05-04 Microsoft Technology Licensing, Llc Storage virtualization for directories

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04297934A (ja) * 1990-09-25 1992-10-21 Internatl Business Mach Corp <Ibm> データ処理システム
JPH09510806A (ja) * 1994-02-25 1997-10-28 アベイル システムズ コーポレーション ネットワーク相互接続プロセッサのためのデータ蓄積管理

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276867A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
US5499358A (en) * 1993-12-10 1996-03-12 Novell, Inc. Method for storing a database in extended attributes of a file system
US5689701A (en) * 1994-12-14 1997-11-18 International Business Machines Corporation System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US5617568A (en) * 1994-12-14 1997-04-01 International Business Machines Corporation System and method for supporting file attributes on a distributed file system without native support therefor
US5675781A (en) * 1995-07-06 1997-10-07 Sun Microsystems, Inc. Augmenting volume management of information storage devices to handle direct access to storage devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04297934A (ja) * 1990-09-25 1992-10-21 Internatl Business Mach Corp <Ibm> データ処理システム
JPH09510806A (ja) * 1994-02-25 1997-10-28 アベイル システムズ コーポレーション ネットワーク相互接続プロセッサのためのデータ蓄積管理

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338136A (ja) * 2005-05-31 2006-12-14 Mitsubishi Electric Information Systems Corp 機密保持コンピュータ及びプログラム

Also Published As

Publication number Publication date
WO1998057250A3 (en) 1999-03-11
DE69842153D1 (de) 2011-04-14
CA2291000A1 (en) 1998-12-17
ATE500558T1 (de) 2011-03-15
US5978815A (en) 1999-11-02
JP4302723B2 (ja) 2009-07-29
JP4395153B2 (ja) 2010-01-06
WO1998057250A2 (en) 1998-12-17
JP2006344234A (ja) 2006-12-21
AU7722198A (en) 1998-12-30
CA2291000C (en) 2005-08-02
EP1034488B1 (en) 2011-03-02
EP1034488A4 (en) 2000-09-13
EP1034488A2 (en) 2000-09-13
JP2006331448A (ja) 2006-12-07

Similar Documents

Publication Publication Date Title
JP2001526815A (ja) リモート・ストレージに対してファイル・システムにネーティブな支援を与えるファイル・システム・プリミティブ
US7765189B2 (en) Data migration apparatus, method, and program for data stored in a distributed manner
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US6119118A (en) Method and system for extending file system metadata
US6449607B1 (en) Disk storage with modifiable data management function
US7107323B2 (en) System and method of file distribution for a computer system in which partial files are arranged according to various allocation rules
US5931935A (en) File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US10642794B2 (en) Computer storage deduplication
US7783737B2 (en) System and method for managing supply of digital content
US6606651B1 (en) Apparatus and method for providing direct local access to file level data in client disk images within storage area networks
JP2001517836A (ja) 1つの記憶媒体の名称空間を別の記憶媒体の名称空間に移植する場合に既定のアクションを実行するシステムおよび方法
US20130091326A1 (en) System for providing user data storage environment using network-based file system in n-screen environment
JPH0622015B2 (ja) データ処理システムの制御方法
JP4060890B2 (ja) 階層化ドライバ入出力システム内の複数ドライバによる入出力要求の再処理を可能にするファイル・システム・プリミティブ
JP2001273279A (ja) 電子ファイリングシステムおよび文書作成方法
JP4492569B2 (ja) ファイル操作制御装置、ファイル操作制御システム、ファイル操作制御方法及びファイル操作制御プログラム
JPH10320340A (ja) クライアントサーバシステムにおける、メッセージ制御方法ならびに装置、及び同方法がプログラムされ記録、伝播する記録媒体もしくは通信媒体
JP2003241901A (ja) ディスク共用制御方法および装置
JPH08278905A (ja) データ処理装置
JPH10173709A (ja) ネットワークサーバ装置
JP2001306303A (ja) ソフトウェア資産管理システム
JPH04215167A (ja) データディクショナリ管理システム
JPH08179978A (ja) マスタデータ管理方式
JPH10171884A (ja) 文書処理装置
JPH04238552A (ja) 索引順編成ファイル検索処理のバッファ管理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060328

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20060626

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060731