説明

コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動

【課題】第1ストレージ・ロケーションに位置するデータを移動監督のために登録し、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームを移動させ、システムのストレージ効率を最大限高める技法を提供する。
【解決手段】ファイル・システムは、移動監督のために登録されているファイル/ストリーム、または既定の基準にしたがってポールすることができるファイル/ストリームの監視を可能にするファシリティを使用することができる。データ・ストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、階層記憶管理(HSM)システムはそのデータを、長期またはオフライン・ストレージのような、別のストレージ・ロケーションに移動させ(420)、メタデータによってストリームのデータ関係を保存する(430)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・システムにおける格納動作および管理に関する。更に特定すれば、本発明は、オブジェクトのデータ関係を維持しつつ、オブジェクトの一部を基本ロケーション即ちルート・ロケーションからリモート・ロケーションに移動(migrate)させる方法およびシステムに関する。
【背景技術】
【0002】
リムーバブル・ストレージ媒体を備えたスタンドアロン・パーソナル・コンピュータ・モデルは、その出現以来、コンピュータ業界に大きな影響を及ぼし、コンピュータ・システムのアーキテクチャおよびインフラストラクチャの設計に影響を与えた。しかしながら、最初のスタンドアロン・コンピュータの時点以来、ストレージの解決手段および複雑なコンピュータ・システムは、急速に進歩しつつある。以下に、ネットワーク・コンピュータ環境が発展し有するに至った機能性向上の例を全て示す。格納可能なデータ量が増大しつつ一段と小型化されていく集積回路および半導体チップの絶え間ない発見、今日のコンピュータ・ネットワークで可能な帯域幅およびデータ転送レートの増大、ならびに他のコンピュータ、データベース、アプリケーションおよびあらゆるタイプのストレージ・コンポーネントとの関連におけるネットワークでのサーバ・コンピュータの利用度の向上である。
【0003】
結果的に、従来の計算および記憶技法およびモデルは促されたのであった。例えば、リムーバブル・ストレージ媒体の普及は、効率的かつ安価にリモートにファイルを格納する能力によってもたらされた。更に、コンピュータ・システムが発展するに連れて、磁気ディスクまたは光ディスクのようなデータ記憶装置の可用性および構成も発展した。例えば、これらの記憶装置は、バスを通じてコンピュータ・システムに接続することができ、あるいは有線または無線ネットワークを通じてコンピュータ・システムに接続することができる。加えて、記憶装置は、別体とすることも、単一のキャビネット内に共存することも可能である。
【0004】
背景として、ストレージ・ボリュームとは、基礎となる記憶装置のソフトウエア・アブストラクションであり、オペレーティング・システムによって実装されファイル・システムによって管理されるストレージの最も小さい自己充足単位である。ストレージ・ボリュームは、それらの関連する記憶装置の物理的トポロジを抽象化し、ディスクの断片、ディスク全体、または仮想的に連続する論理ブロックの範囲に纏めた多数のディスクとすることも可能である。この結束によって、基礎デバイスのフォールト・トレランス、性能、または容量特性を向上させることができる。今日の複雑なコンピュータ・システム環境では、ストレージ・ボリュームは様々なエレメントの集合である可能性があり、これに対する効率的かつ効果的な管理が望まれている。様々な格納動作が可能なコンピュータ・システム用ファイル・サーバは、データ関係および格納されているオブジェクトのロケーションを把握し、追跡しているので、データ格納および転送に共通の技術を用いることができる。
【0005】
ボリュームは、基礎の記憶装置によって提示される連続格納アドレス空間である1つ以上のエクステント(extent)から構成される。エクステントは、典型的に、アドレス空間のサイズ、および媒体のベースからのアドレス空間の開始オフセットによって特徴付けられる。ボリューム・マッピングとは、ボリュームによって提示される連続アドレス空間を、基礎のエクステントの非連続格納アドレス空間にマップするプロセスのことである。ボリューム・マッピングは、ハードウエア・ボリューム・プロバイダと呼ばれる、特殊化したハードウエア・コントローラ上で実現するか、あるいはソフトウエア・ボリューム・プロバイダによってソフトウエアで実現する。更に別の背景として、ボリューム・プロバイダの共通監督(administration)および管理技法が、本願と同一譲受人に譲渡された、”Administration of RAID Storage Volumes”(RAIDストレージ・ボリュームの監督)と題する同時係属中の特許出願第09/449,577号に示されている。
【0006】
記憶技術の進歩は、したがって、データを格納し転送する方法を変化させつつあり、このためボリューム内およびボリューム間において従来のファイル管理に歪みが生じている。例えば、任意の成長基準があるファイル、メモリ割り当て制限があるボリューム、分散格納およびデータ転送等は、スタンドアロン・コンピュータの固定ディスク・メモリ上における割り当ておよび管理の観念を打破しつつある。データの高速揮発性メモリからリモート・ロバスト・ストレージへのシフトは、ある目的のためには非常に有効である。したがって、ネットワークおよびコンピュータ・システムにおける進歩は、単に利用されるストレージ・コンポーネントの形式や、ストレージ・コンポーネント間で用いられる接続において変化が生ずる以上に、大きな波及効果がある。
【0007】
以前に実施された固定した、即ち、柔軟性のないボリュームのメモリ割り当ては、ネットワーク・コンピュータ環境における複数のボリューム間でデータを転送し格納するロバストな機構から得られる効率に近づき始めていない。ファイル転送を管理するために従来から用いられてきた技法は、元々今日の複雑なネットワーク環境の高い機能性全てに対応するように設計された訳ではなかった。したがって、多くのコンピュータが動作する際に用いているオペレーティング・システム、システム・インフラストラクチャ、およびコア・ファイル管理機能は、影響を受けている。その結果、現行のファイル・システムは、非効率性を引きずっており、最大効率で異なる全てのタイプの格納およびデータ転送動作を処理するような装備とはなっていない。
【0008】
このような非効率性の1つが、オブジェクトまたはファイルの一部を当該オブジェクトのルート・ロケーションから、例えば、リモート・ストレージに格納することに関連して存在する。前述のような種々の記憶エレメントおよび技術の増殖によって、ファイルの一部をリモート・ロケーションに格納し、一部をローカル・ストレージに保持しておくことが望ましい場合も出てきた。例えば、ファイルの一部が変化しないことがわかっている場合、貴重なローカル・ストレージをより多く解放したり、あるいは頻繁に利用されないある種のデータを片づけることが望ましい場合がある。別の例では、アペンド・オンリ・ファイルは、データの書き込みはファイルの終端においてのみ発生するという特性を有する。したがって、ローカル・ストレージを効率的に使用するには、新たな書き込みが添付されるファイルの不変部分をリモート・ストレージに移動させるべきであろう。更に別の例では、リモート・ストレージへのデータ移動は、予め設定したオンライン・ディスク/メモリ割り当ての制限を保存するために実行する場合もある。このように、ファイルのデータの一部をリモート・ストレージに移動させることには、種々の理由がある。しかしながら、現在のファイル・サーブ技法では、ファイルの一部を移動させるべきときを指定する場合にも、ファイルのデータ関係を維持しつつデータをリモート・ロケーションに続いて移動させる場合にも、適切に対応していない。
【0009】
したがって、一般的な規則として、部分的移動技法はこれまで用いられていなかった。しかしながら、今日では、パーシャル・リコールのように、限られた部分的ファイル動作を実行可能な、階層記憶管理(HSM)システムがあることを注記しておく。従来のHSMシステムでは、例えば、パーシャル・リコール動作を用いてリモート・ストレージからデータを全くリコールすることなく、オンディスク・ボリューム全体を更新することができる。その他の従来の技法は、限られた場合に対応し、ファイルの最初の数キロバイト、例えば、4Kbをオンライン、即ち、「非移動(unmigrated)」で残しておいたり、またはファイルの最後の数キロバイトをオンライン、即ち、「非移動」で残しておく場合には対応していた。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、ファイルの階層的記憶管理における技術的現状では、殆どのコンテクストにおいてファイルの部分的移動に対処しておらず、ファイルの所定部分を一方のロケーションから他方のロケーションに移動しつつファイルのその他の部分を保持するという要望に取り組んでいない。更に、本技術分野では、書き込みや更新に適したデータ・ストリームの領域や、オフライン即ちリモート・ストレージに適したデータ・ストリームの領域を指定する機構に対する要望にも取り組んでいない。端的に言うと、ファイルの所定部分をリモート・ストレージに移動させ、その他の部分をローカル・ストレージに保持することが望ましい場合があるが、現行のファイル・サーバは、どのデータを保持し、どのデータを他の場所にエクスポートするか指定しない。
【0011】
加えて、ファイル管理における技術的現状では、あるデータ・ストリームに対してオンライン・ディスク/メモリ割り当てに制限を加えつつ、ストリーム全体を任意に成長させることが望ましい、特定の場合に取り組んでいない。例えば、アペンド・オンリ・データ構造の場合に当てはまる。例示すると、オンライン・ボリュームでは、1メガバイトまでのストリームを維持しつつ、全ストリームが1メガバイトよりも大きいサイズを有することを許すことが望ましい場合がある。この場合は、今日の階層記憶管理システムでは対応できない。
【0012】
以上のように、現行のファイル・サーバ/HSMシステムに伴う不十分を考慮すると、コンピュータ・システムにおいて、ファイルまたはオブジェクトのある部分を別のメモリ・ロケーションに部分的に移動し、ファイルの残りの部分を保持する柔軟性のあるアーキテクチャを提供することができれば望ましいであろう。予め設定した基準にしたがって、オブジェクトのどの部分が移動に適しており、どの部分がそれらの現ストレージ・ロケーションに適しているか指定することができれば有効であろう。ファイルまたはオブジェクトの第1ストレージ・ロケーションから第2ストレージ・ロケーションに、例えば、オンライン・ストレージからリモート・ストレージへの部分的移動が可能であれば有効であろう。更に、構造および特性がわかっているファイルや、例えば、アペンド・オンリ・タイプのファイルの場合のように、指定可能なファイルの効率的な部分的移動が行なえれば有効であろう。このように、ファイルまたはオブジェクトの一部をルート・ボリュームからリモート・ボリュームに移動させつつ、当該ファイルまたはオブジェクトの種々のデータ関係を維持する共通の手法が存在しない。本発明は、当技術分野におけるこれらの要望を考慮して開発されたのである。
【課題を解決するための手段】
【0013】
本発明は、コンピュータ・システムと共に用いられる階層記憶管理(HSM)システムに関する。第1ストレージ・ロケーションに位置するデータを移動監督のために登録し、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームを移動させ、システムのストレージ効率を最大限高める技法を提供する。ファイル・システムは、移動監督のために登録されているファイル/ストリーム、または既定の基準にしたがってポールすることができるファイル/ストリームの監視を可能にするファシリティを使用することができる。データのストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、HSMシステムはそのデータを、長期またはオフライン・ストレージのような、別のストレージ・ロケーションに移動させ、メタデータによってストリームのデータ関係を保存する。この技法では、移動ターゲット・ロケーションによって多数のボリュームを補う(span)ことができ、更に、HSMシステムおよびメタデータによって、移動したファイル/ストリームのソースおよびターゲット部分にアクセスすることができる。例示の実施形態では、データをシーケンシャル・アクセス・メディアに移動させる。
【0014】
本発明のその他の特徴について、以下に説明する。
【図面の簡単な説明】
【0015】
【図1】本発明の態様を組み込むことができる汎用コンピュータを表すブロック図である。
【図2】本発明の方法および装置を実現可能なネットワーク環境の一例を示すブロック図である。
【図3】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図4】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図5】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図6】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図7】本発明にしたがって、データ・ストリームの一部を二次ストレージ・ロケーションに移動させる場合のフロー図の一例を示す図である。
【図8】本発明にしたがって、メタデータによってHSMシステムが移動データをリコールするプロセスの一例を示すブロック図である。
【図9】本発明にしたがって、メタデータによって移動データをリコールするプロセスの一例を示すフロー図である。
【発明を実施するための形態】
【0016】
オブジェクトの一部を部分的にリモート・ストレージに移動(migrate)させるシステムおよび方法について、添付図面を参照しながら更に説明する。
一般的に、本発明は、一方のロケーションから他方のロケーションへのファイルの部分的な移動が望ましいシステムに関する。本発明は、システムの既存のファイル・サーバと共に利用することができる。本発明は、ファイルの一部の移動において用いるオンディスク割り当てに制限を与える即ち指定するために用いることができるという利点がある。したがて、本発明は、シーケンシャル・アクセス・メディア(SAM)のようなオフディスク・ストレージに、オンディスク制限を超過したデータの部分を移動させるために利用することができる。即ち、本発明は、データ・ストリームが、割り当てられたディスク割り当て量(quota)即ち制限を超えて増大した場合に、リモート・ストレージへの部分的移動を可能にする。このように、本発明は、ファイルに関連する種々のデータ・ストリームのために特殊化階層記憶管理を行い、データ・ストリームを移動監督(migration administration)のために登録することができる。移動させたデータ・ストリームの一部は、従来のHSMシステムの部分的リコール動作と同様に、リコールし読み出すことができる。例示の一実施形態では、本発明は、ターゲット・ロケーションに対してSAMの使用を含む。
【0017】
一部を別の記憶ロケーションに移動させることが好ましいデータ・ストリーム、オブジェクト、またはファイルの例には、書き込みが最後のストレージ・ブロックのみに行われるファイルのような、アペンド・オンリ・ファイル、書き込みが最初のストレージ・ブロックのみで行われるファイルのように、「更新領域」が規定されているファイル、または一部のアクセスまたは読み取りが頻繁に行われないファイル、一部をロバストおよび/またはリモート・ストレージに不変に格納することが望ましいデータ・ストリーム、オンディスク・メモリ割り当て制限を実施することによる等によってファイルの増大に制約が設けられているストレージ・ロケーションに位置するファイル、増大が任意または予測不可能なデータ・ストリーム等が含まれる。
【0018】
移動ソース・ロケーションおよび移動ターゲット・ロケーション対の例には、ストリーム・データ、オブジェクトまたはファイルの一部の、オンライン・ストレージからオフライン・ストレージへ、ローカル・ストレージからリモート・ストレージへ、揮発性ストレージから不揮発性ストレージへ、非安全メモリから安全メモリへ、等の移動が含まれる。
【0019】
したがって、本発明は、コンピュータ・システムと共に用いる階層記憶管理(HSM)システムに関する。第1ストレージ・ロケーションに位置するデータ・ストリームを、既定の基準にしたがって分析し、データ・ストリームが別のストレージ・ロケーションに適した部分を有するか否か判定を行い、システムの格納効率を最大限高めることができる。既定の基準は、移動アーカイブ単位のサイズおよび更新領域のロケーションのように、システムの特性にしたがって予め指定することができ、あるいはユーザが入力することもできる。ファイル・システムは、移動監督のために登録したファイルの監視を可能にするファシリティを使用することができる。ファイル・システムがストリーム/ファイルを監視する方法を備えていない場合、移動に登録したストリーム/ファイルを既定の間隔でポールし、更に別の移動の必要性に関する情報を取得する方法を実装することもできる。先の間隔は、システムの移動特性に一致するように動的に変更可能である。データ・ストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、ファイル・サーバHSMシステムは、このデータを別のストレージ・ロケーションに移動させ、移動したデータと第1ストレージ・ロケーション内のデータ・ストリームとの間の関係を保存する。これらの関係は、その部分の移動に伴って発生したメタデータによって保存することができる。後に、このメタデータをHSMシステムと共に利用し、移動したデータにアクセスすることができる。移動データ・ターゲット・ロケーションによって多数のボリュームを分散することができ、多数のファイル・システムを、そうすることに巻き込むことができる。
【0020】
前述のように、本発明は、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームまたはオブジェクトの一部を移動させる方法を提供する。既定の基準は、種々の方法で設定することができる。実施の一例では、本発明は、オンディスク割り当てに制限を加える方法を含む。割り当て制限は、例えば、ストリーム毎またはファイル毎に指定し、データ・ストリームに対して制限が実施されるようにすることができる。例えば、アーカイブ単位のサイズを指定することができ、するとユーザ・アカウントの割り当てを、更新のファイル領域のサイズに関して指定することができる。移動監督のためのその他のファイルは、アペンド・オンリ・モードでアクセスされるファイル、または別の識別可能な「更新領域」を有するファイルとすることができる。
【0021】
したがって、本発明は、識別可能な更新の領域を有するファイルの一部を、リモート・ストレージに移動させる方法を提供する。本発明は、オンディスク制限を超過したファイルの部分をSAMに部分的に移動させることによって、オンディスク割り当て制限を行なうために用いることができるという利点がある。即ち、本発明は、データ・ストリームが割り当てられたディスク割り当て量即ち制限を超えて増大した際に、第1ストレージ・ロケーションから第2ストレージ・ロケーションに、そのリモート・ストレージへの部分的移動を可能にする。例示の実施形態では、本発明は、この割り当ての制約に対応する際、オンライン・ストレージ制限を超過したデータをリモート・ストレージに移動させる。これは、SAMにそれを移動させることによって行なう。
【0022】
このように、本発明は、部分的移動機能および現行のHSMシステムの効率的な統合を勘案して開発されたのである。即ち、本発明は、第1ストレージ・ロケーションから別のストレージ・ロケーションにファイル移動動作を効率的に実行するために開発されたのである。
【0023】
図1および以下の論述は、本発明を実現するのに適した計算機環境の端的な一般的な説明を行なうことを意図している。必ずしもその必要はないが、本発明の説明は、少なくとも部分的には、プログラム・モジュールのような、パーソナル・コンピュータが実行する一般的なコンピュータ実行可能命令に関連して行なう。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的データ・タイプを実装する。更に、本発明は、別のコンピュータ・システム構成でも実施可能であることを当業者は認めよう。別のコンピュータ・システム構成には、ハンド・ヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのまたはプログラマブルの消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ等が含まれる。また、本発明は、分散型計算機環境においても実施可能であり、この場合、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクを実行する。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモートのメモリ記憶装置双方に配置することができる。
【0024】
図1に示したように、1つの例示的な汎用計算システムは、従来のパーソナル・コンピュータ20等を含む。このパーソナル・コンピュータ20は、処理ユニット21、システム・メモリ22、およびシステム・メモリ22から処理ユニット21までを含む種々のシステム・コンポーネントを結合するシステム・バス23を含む。システム・バス23は、数種類のバス構造のいずれでもよく、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いたローカル・バスが含まれる。システム・メモリ22は、リード・オンリ・メモリ(ROM)24およびランダム・アクセス・メモリ(RAM)25を含む。基本入出力システム26(BIOS)は、起動中のように、パーソナル・コンピュータ20内のエレメント間におけるデータ転送を補助する基本的なルーティンを含み、ROM24内に格納されている。更に、パーソナル・コンピュータ20は、図示しないハード・ディスクの読み書きを行なうハード・ディスク・ドライブ27、リムーバブル磁気ディスク29の読み書きを行なう磁気ディスク・ドライブ28、CD−ROMまたはその他の光媒体のようなリムーバブル光ディスク31の読み書きを行なう光ディスク・ドライブ30のような種々の周辺ハードウエア・デバイスも含む。ハード・ディスク・ドライブ27、磁気ディスク・ドライブ28、および光ディスク・ドライブ30は、それぞれ、ハード・ディスク・ドライブ・インターフェース32、磁気ディスク・ドライブ・インターフェース33、および光ドライブ・インターフェース34を介して、システム・バス23に接続されている。ドライブおよびそれに関連するコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュールおよびパーソナル・コンピュータ20のその他のデータの不揮発性格納を行なう。ここに記載する環境の一例は、ハード・ディスク、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク(DVD)、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)等のように、コンピュータによるアクセスが可能なデータを格納することができる、別の形式のコンピュータ読取可能媒体も、動作環境例では使用可能であることは、当業者には認められよう。
【0025】
ハード・ディスク、磁気ディスク29、光ディスク31、ROM24またはRAM25上には、多数のプログラム・モジュールを格納可能であり、オペレーティング・システム35、1つ以上のアプリケーション・プログラム36、その他のプログラム・モジュール37、およびプログラム・データ38を含む。ユーザは、キーボード40およびポインティング・デバイス42のような入力デバイスによって、コマンドおよび情報をパーソナル・コンピュータ20に入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス23に結合するシリアル・ポート・インターフェース46のような周辺ハードウエア・デバイスを介して、処理ユニット21に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス(USB)のようなその他のインターフェースによって接続することも可能である。また、ビデオ・アダプタ48のような周辺ハードウエア・インターフェース・デバイスを介して、モニタ47またはその他の種類のディスプレイ装置もシステム・バス23に接続してある。モニタ47に加えて、パーソナル・コンピュータは、典型的に、スピーカおよびプリンタのような、その他の周辺出力デバイス(図示せず)を含む。
【0026】
パーソナル・コンピュータ20は、リモート・コンピュータ49のような1つ以上のリモート・コンピュータへの論理接続を用いれば、ネットワーク環境においても動作可能である。リモート・コンピュータ49は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、典型的に、パーソナル・コンピュータ20に関して先に述べたエレメントの多くまたは全てを含むが、図1にはメモリ記憶装置50のみを図示している。図1に示す論理接続は、ローカル・エリア・ネットワーク(LAN)51およびワイド・エリア・ネットワーク(WAN)52を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【0027】
LANネットワーキング環境で用いる場合、パーソナル・コンピュータ20は、ネットワーク・インターフェースまたはアダプタ53を介してLAN51に接続する。WANネットワーキング環境で用いる場合、パーソナル・コンピュータ20は、典型的に、モデム54、またはインターネットのようなワイド・エリア・ネットワーク52を通じて通信を確立する、その他の手段を含む。モデム54は、内蔵でも外付けでもよく、シリアル・ポート・インターフェース46を介してシステム・バス23に接続する。ネットワーク環境では、パーソナル・コンピュータ20に関して図示したプログラム・モジュールまたはその一部は、ローカルまたはリモート・メモリ記憶装置に格納することができる。尚、図示のネットワーク接続は一例であり、コンピュータ間に通信リンクを確立する別の手段も使用可能であることは認められよう。
【0028】
尚、前述のコンピュータは、コンピュータ・ネットワークの一部として展開可能であり、本発明は、あらゆる数のメモリまたは記憶装置、あらゆる数のボリュームにわたって実行するあらゆる数のアプリケーションおよびプロセスを有するあらゆるコンピュータ・システムにも関係することを注記しておく。このように、本発明は、ネットワーク環境において展開され、リモート・ストレージまたはローカル・ストレージを有するサーバ・コンピュータおよびクライアント・コンピュータ双方に適用可能である。図2は、ネットワーク環境の一例を示し、サーバがネットワークを通じてクライアント・コンピュータと通信し、この中に本発明を用いることができる。図示のように、多数のサーバ10a,10b等が通信ネットワーク14(LAN、WAN、イントラネットまたはインターネットとすることができる)を通じて、多数のクライアント・コンピュータ20a,20b,20c等と相互接続されている。例えば、通信ネットワーク14がインターネットであるネットワーク環境では、サーバ10はウェブ・サーバとすることができ、クライアント20は、ハイパーテキスト・トランスファ・プロトコル(HTTP)のような多数の公知のプロトコルのいずれかによって、ウェブ・サーバと通信する。
【0029】
各クライアント・コンピュータ20およびサーバ・コンピュータ10には、種々のアプリケーション・プログラム・モジュール36、その他のプログラム・モジュール37およびプログラム・データ38、ならびに種々のタイプのストレージ・エレメントまたはオブジェクトに対する接続またはアクセスを装備することができ、これらを通じてファイルを格納し、ファイルの一部を移動させることができる。
【0030】
このように、本発明は、ネットワークにアクセスし相互作用するクライアント・コンピュータと、クライアント・コンピュータと相互作用するサーバ・コンピュータとを有するコンピュータ・ネットワーク環境において利用することができる。本発明によれば、改良したHSMシステム技法を用いて、データ・ストリームの一部を移動し、移動の記述のためにメタデータを発生する。これらの技術およびそれに伴う通信は、種々のネットワーク・システム・アーキテクチャを用いて実現可能であり、したがってあらゆる特定のフォーマットにも限定されないことは当然である。
【0031】
このように、本発明は、コンピュータ・システムにおいて柔軟性のあるアーキテクチャを効率的に実現し、データ・ストリーム、ファイルまたはオブジェクトの一部を部分的に移動させ、ファイルのその他の部分を保持する。移動に適したオブジェクトの部分およびローカル・ストレージ、ベース・ストレージまたはルート・ストレージに適した部分を、既定の基準にしたがって指定する方法を提供する。ファイルまたはオブジェクトの第1ストレージ・ロケーションから第2ストレージ・ロケーションへ、例えば、オンライン・ストレージからリモート・ストレージへ、部分的移動を行なう方法を提供する。部分的移動に対する基準の一例は、例えば、アペンド・オンリ・タイプ・ファイルのように、構造および特性がわかっているファイル、それ以外の方法で更新の領域が識別可能なファイル、メモリ割り当てが制限されているファイル等を含む。HSMシステムによって、ファイルまたはオブジェクトの一部をルート・ボリュームからリモートまたはその他のボリュームへ移動しつつ、ファイルまたはオブジェクトに対する種々のデータ関係を維持する共通の手法を提供する。本発明は、ファイルの部分的移動から得られる効率や、オンディスク割り当て量の提供に適切に取り組んでいない従来技術のファイル・システムに対する改良である。
【0032】
本発明の方法は、例えば、本発明の部分的移動技法のいずれもが可能なように、システム・ファイル・サーバと共に実現することができる。ストレージ割り当て量機構を利用することによって、HSMシステムは、データをリモート・ストレージに移動することが望ましいときを判定することができる。既定の基準は、データ・アクセスからの時間、ソース・ファイルおよび/またはファイル・データ構造、システム状態等に関する予備知識のように、その他の所定の規則に基づくことも可能である。どのデータを移動させるかに関するこの選択は、したがってHSMシステムに委ねられ、ユーザは、アーカイブ単位のサイズおよびオンディスク割り当て量を含む、選択のための基準を指定すればよい。したがって、ストリーム・サイズの制約を指定することができ、あるいは、ストレージ・ロケーション自体の特性によって、制約は既に課されている場合もある。本発明は、割り当て単位のサイズの方により大きな制約を課する。この点に関して、本発明にしたがって指定されたオンディスク割り当て制限よりも小さなファイル・システム量がストレージ・ロケーションに課されている場合、本発明はこれらの制約を保存する。ファイル・システムの割り当て量が、本発明にしたがって指定されたオンディスク割り当て量よりも大きい場合、本発明の割り当て量は、ファイル・システムの割り当て量を先取りする(preempt)。移動監督のためのファイルを指定する別の方法は、ファイルがアペンド・オンリ・モードでアクセスされるか否か、またはいつファイルが別の識別可能な「更新領域」を有するか判定を行なうことである。ファイルの部分的移動のために維持する理念は、ファイル使用履歴およびその他の動的なシステム特性に基づいて、再度評価することもできる。例えば、あるオンディスク・メモリ割り当て制限が、種々の理由のいずれか1つのために、厳しすぎる場合、制限を緩和することができ、代わりに一層効率的なデータ量を移動することも可能である。
【0033】
このように、本発明の部分的移動技法は、ある種のファイル・タイプを想定している。このようなファイル・タイプの一例は、識別可能な更新領域を有するデータのストリームである。図3は、識別可能な更新領域を有するファイルの一例を示す。ファイル・ストリーム1は、横に繋がった種々のストレージ・ブロックまたはオンディスク割り当て単位M1,M2,...,M6として描かれているが、ストレージ・ブロックは、どこに位置してもよく、あらゆる数およびタイプのストレージ・エレメントおよびデータ・ストリームでも、本発明にしたがって移動させることができる部分を有することは認められよう。データ・ストリーム1では、ファイルの使用履歴の分析および/またはファイルに関してわかっている特性から、破線の更新領域ROU1,ROU2として示す、2つの領域が、更新または書き込みが行われることが識別される。第3の不変領域Imm1も、頻繁に更新や書き込みが行われないと識別されるが、全く更新されない訳ではない。アーカイブ単位のサイズ、ならびに更新領域のサイズおよびロケーションは、既定のまたは入力した基準にもしたがって、指定することができる。
【0034】
不変データImm1は、移動可能であり、したがってリモート・ストレージまたはSAMのような第2ストレージ・ロケーションへの移動対象とする。現時点における好適な実施態様によれば、ストリーム1が増大し、データがROU1を超過すると、ROU2の開始まで、長期ストレージに移動させる。ROU2は、引き続きストリーム1の終端に位置し、ROU2は、ストリーム1が増大するに連れて前方に移動し、ROU2を超過したデータを移動させないようにする。また、メタデータを発生し、ファイルの非移動部分に対して、リモート・ストレージに移動させたファイルの部分を記述する。このメタデータは、ストレージ関係を記述するのに適したいずれのフォーマット、および/または種々のワールド・ワイド・ウェブ・コンポーネントへの組み込みに適したいずれのフォーマットにしたがって実施することも可能である。例示の実施形態では、メタデータは、分散コンポーネント・オブジェクト・モデル(DCOM)記述にしたがってフォーマットされているが、Java(登録商標)、拡張可能マークアップ言語(XML)、およびその他の適切なフォーマットであればいずれでも利用可能である。
【0035】
図4および図5は、例えば、ファイルの先頭または終端にデータを追加した、識別可能な更新領域を有するデータ・ストリームの更に特定した例、または共通の例を示す。図4は、ファイル・ストリーム2の先頭においてデータを更新する場合を示す。時間がt1からt2に、そしてt3に進むに連れて、ファイルは長くなるが、データおよびそのストレージ・ブロックは、ファイルが増大するに連れて更新領域から外れるので、SAMのような他のストレージに移動させることができる。時点t1において、ストレージ・ブロックまたは部分M3,M4をリモート・ストレージに移動させることができ、t2においてM5をリモート・ストレージに移動させることができ、そしてt3においてM6をリモート・ストレージに移動させることができる、等となる。図5は、アペンド・オンリの場合を示し、更新領域は、ファイルの終端にある部分である。図4と同様に、データ・ストリーム3の、更新領域ROUの範囲内にない部分を、リモート・ストレージに移動させることができる。t1からt2まで、そしてt3まで等でファイルが増大するに連れて、新たなストレージ・ブロックをSAMのようなリモート・ストレージに移動させることができる。移動監督のための登録後、t1において、M1,M2を移動させることができ、t2においてM3を移動させることができ、t3においてM4を移動させることができる。
【0036】
移動したデータにアクセスするために、利用したリモート・ストレージ・サービスを記述したメタデータを発生し、移動させたストレージ・ブロックの範囲を記述し、最後の移動の日時のようなその他の情報を記述する(以下の例を参照)。尚、図3の移動したブロックについてオフセット・マッピングを記述するメタデータは、「後方に」(backwards)発生することができ、ストリーム2の終端をメタデータにおけるオフセット0と指定し、したがってそれ以降のブロックを0オフセットのアーカイブ単位のサイズおよびファイル・サイズに対して記述すればよいことを注記しておく。
【0037】
このように、アペンド・オンリ・モードでファイルをアクセスする場合、あるいは関連するファイルまたはシステム特性に基づいて識別可能な「更新領域」がある場合、システムは、更新されないファイルのエリア、即ち、不変部分または頻繁にアクセスされない部分を効率的に移動させる。このようなファイルの一例は、新たな追加レコードをファイルの終端に追加するレコード保持ファイルであろう。つまり、一旦レコードを入力すると、これは恐らく頻繁にアクセスや更新が行われないファイルの領域と見なされ、したがって、ローカル・メモリ限度を保存するためまたはその他の効率上の理由のために、リモート・ストレージに移動させられる。このように、特殊化階層記憶管理技法を採用することによって、リモート・ストレージに格納したデータ・ストリームの断片を、ファイル・サーバのユーザに対してシームレスにリコール、コピーおよび/または読み出しを行なうことができる。好適な実施形態では、移動したデータはシーケンシャル・アクセス・メディア(SAM)に書き込まれ、データは一旦SAMに書き込まれると、不変で安全であるので、有効である。
【0038】
また、本発明は、確定した更新領域を有するファイルのデータ・ストリームにも適用可能である。例えば、更新は、単にバイトをストリームに添付するだけで行なうことができる(アペンド・オンリの場合)。第2の場合は、書き込みがストリームの最後のバイト・ブロックを対象にするときである(最終ブロックの場合)。アペンド・オンリの場合、アペンドされたバイトを除いてストリーム内のバイト全てを不変と見なし、したがって、どのバイトを部分的に移動可能かを識別するのは、簡単である。移動可能なのは、既に書き込まれたバイトである。最終ブロックの場合、例えば、最後のバイト・ブロック以外の全てのバイトを不変と見なし、したがって移動可能と見なす。
【0039】
アペンド・オンリおよび最終ブロック双方の場合において、階層記憶管理システムは、こうしてストリームの不変領域をリモート・ストレージに移動することができる。不変のサブストリームの部分的移動は、ストリーム自体を更新している最中であっても行なうことができるという利点がある。その際、不変部分を、ファイル・サーバの観点から別個に扱う。現在では、これら部分的移動の特殊化技法は、従来のHSMシステムには用いられていない。
【0040】
また、本発明は、オンディスク・ファイル・メモリ割り当て制限を設け、ファイル/ストリームのサイズを制限する能力も含む。本発明は、このような制約に対して移動を支援する。また、アーカイブ単位のサイズおよび更新領域のサイズを指定可能であるので、ファイル・サイズもストレージ割り当て制限によって制限される場合、本発明はストレージ割り当て制限を実施する機構となる。図6は、ファイルの増大が、破線で示すストレージ割り当て制限によって制限される状況の一例を示す。アーカイブ単位のサイズが指定され、更新領域のサイズも指定されている。t1において、ファイルは制約の範囲内にあり許される。t2において、ファイルは、制約によって許される最大サイズに達した。t3において、その増大が制約を超過したが、ファイルの一部は、本発明にしたがって、SAMのようなリモート・ストレージに移動させることができ、これによって割当量違反を防止する。
【0041】
図7は、本発明による部分移動方法のフロー図の一例を示す。400において、本発明にしたがってファイルを移動監督のために登録することができる。例えば、更新領域のサイズ、アーカイブ単位のサイズ(移動する部分のサイズ)、および移動したデータの移動宛先を指定し、オンディスク・メモリ割り当て制限を指定することができる。410において、HSMシステムは、ファイル特性に応じてファイルを監視し、使用特性および/または部分移動の所望性を調べるファシリティを利用する。420において、移動のタグが付けられた部分を二次ロケーションに移動させる。430において、ファイル移動を記述するメタデータを発生し、このメタデータを、データベース、好ましくはジェット・データベースのような記憶装置内に格納する。このメタデータは、後に、リモート・ストレージに格納されているデータにアクセスする際に用いることができる。440において、ファイル・サーバは、移動データをそれまで格納していたストレージ・ブロックまたはロケーションを解放する。ステップ450において、部分移動動作を受けたファイルにとって適当であれば、更新領域をシフトする。
【0042】
別の利点として、本発明は、いずれの時点においてもリモート・ストレージ内のストリームの断片全てを再組み立てすることができ、それによって表されるデータが未だ有効か否かについて検証する必要はない。何故なら、リモート・ストレージに移動したストリームの断片は全て不変であるからである。更に、ストリームのある領域を削除した場合、HSMシステムは、それ自体の内部システム・データにおいて削除した領域に対応するバイトのギャップを表すことができる。その結果、HSMシステムは、都合がよいときに、残りのバイト範囲を再組み立てすることができ、削除された領域が以前に用いていた領域を効率的に再生することができる。
【0043】
加えて、HSMシステムは、移動のためにあらゆる適切な記憶装置および伝送媒体を選択することができる。選択は、通常、リモート・ストレージへの転送動作の瞬時的および/または高総合データ・レートを最適化するように行われる。
【0044】
先に示唆したように、あるファイルをリモート・ストレージへの部分的移動の対象とする場合、各データ・ストリーム毎にそしていずれの所与の時点においても、既定の規則にしたがって順守すべきストレージ割り当て量がある。したがって、本発明を用いて移動によってディスク割り当て制限を保存する場合、ストリームに対するボリューム・オンライン割り当ては制限したままで、ストリーム・サイズの任意の増大を許すという利点がある。ファイル・システムのコール元が現ファイル終点を超えてデータを書き込むと、ストリーム・サイズは対応して増大し、ストリームのデータを格納するために必要なディスク割り当て数も増大する。一旦ローカル割り当て量を超過すると、本発明のHSMシステムはファイル・データの一部をリモート・ストレージに移動させ、必要なオンディスク・メモリ割り当て量を削減することができる。HSMシステムは、ファイルから移動するバイト範囲を選択することができ、この選択は、1組の所定の規則に従えばよい。
【0045】
このように、移動するバイト・グループを選択する場合、広い範囲の基準を用いることができる。例えば、元のデータ・ストリームをシーケンシャル・アクセスのために開いている場合、移動を開始する論理領域は、現在のオンディスク割り当てを反映して、オフセットが最も小さいバイトを含む領域となる。別の例では、ランダム・アクセスのためにファイルを開いている場合、いずれのバイト領域でも等しく移動に相応しい選択となる。ファイルの統計的分析でも、移動に適した部分を解明することができる。別の代替案では、本発明によるHSMシステムは、追加のランタイム情報を追跡し、ファイルのどのエリアが、直ぐにアクセスされる可能性が少ないか判定することができる。次いで、識別したエリアを移動のために指定すればよい。
【0046】
好ましくは、移動の最少単位は、ローカル・ファイル・システムにおけるストレージ割り当ての最少単位と等しくする。何故なら、移動サイズが小さい程、ローカル・ストレージの割り当て解除効果が低いからである。好ましくは、本発明は、データ・ストリーム内で0範囲を割り当て解除する、散在ファイル(sparse file)に対応するファイル・システムと共に用いる。現時点において好適な実施態様では、移動の最少単位は64Kとなっている。また、移動目的のための最少単位は、ファイル・システムに関連する最少割り当て単位によって限定される必要はない。最少単位のサイズは、いくつかの割り当て単位、例えば、16単位にしたがって計算し、これらのメモリ割り当てを追跡するために必要なシステム・データ量を最少化し、ファイル・システムが利用する元の圧縮単位の一致というような、付加的な最適化を可能にするようにする。システム・パラメータに適したサイズを選択したなら、HSMシステムは、これによってある種のアドレス変換動作を最適化または能率化することができる。例えば、転送単位のサイズとして、2の累乗が用いられていると仮定すると、アクセス動作に関連して1バイトのオフセットが与えられた場合、HSMシステムは、単位サイズの対数基底2に等しいビット数だけ与えられたオフセットを右にビットシフトすることに基づいて、内部アドレスを素早く決定することができる。他の種類のシステム・パラメータに関しても同様に、他の最適化を利用することができる。
【0047】
また、本発明は、ファイル・サーバのユーザに対して透過的である。ファイルが部分的に移動したか否かには関わらず、アクセスはシームレスである。何故なら、HSMアーキテクチャは本技法の機能性を統合しているからである。したがって、SAMにデータを保管する方法は、ストリームの移動部分、およびオンディスク割り当てに格納されているデータを含む、ストリームのデータ全てに対するアクセスを許す。本発明の現時点において好適な実施態様では、基礎のファイル・システムは散在ファイルに対応する。移動した全てのバイト領域または多数の領域は、したがって、ローカル・ファイル内において、バイトの「分散孔」として表すことができる。また、基礎のファイルおよびファイル・システムは、データの暗号化および解読だけでなく、データ圧縮および解凍にも対応することができる。
【0048】
一旦部分的移動技法によってファイルを部分的にリモートに格納したなら、クライアントは、ファイルをその現ボリューム内において一方のボリュームから他方に動かす(move)ことを選択することもできる。ムーブ動作は、一般的に、ファイルの名称を変更するアクションのことを意味し、その結果ファイルは異なるディレクトリおよび/または異なるボリュームのメンバとなるか、またはこれと関連付けられる。加えて、ボリューム内ムーブ動作は、ソースおよびターゲット・ボリュームを伴う。これらは、別個のサーバまたはマシン上に位置する可能性がある別個のファイル・マネージャによって管理されている場合がある。また、ムーブ動作は、2つの別個のプロセス、即ち、データの宛先ボリュームへのコピー、およびデータのソース・ボリュームからの削除を伴う場合もある。したがって、一旦ファイルの一部を本発明にしたがって移動したなら、ファイル・システムを作成し、典型的な移動ファイルのリロケーション、ムーブ、コピー、名称変更、およびその他の典型的なファイル動作の処理を可能にする。これは、例えば、ファイル移動情報、またはファイルに対する移動情報を指定する移動ファイル動作と共に用いるメタデータを与えることによって、行なうことができる。
【0049】
したがって、本発明は、部分移動ファイルのためにメタデータを定義し、これによってメタデータが部分移動ファイルについての格納関係を指定するような機構を提供する。このメタデータは、HSMシステムが部分移動ファイルの存在および性質を認識するため、そして部分移動ファイルに伴う動作を効率的に実行するために用いられる。このメタデータは、例えば、DCOM、Java、拡張可能ヘッダ、XMLフォーマット等でエンコードすることができる。このように、本発明は、ファイルの部分移動を勘案して開発されたのである。何故なら、現在のHSMシステムは部分移動技法に適切に対処していないからである。
【0050】
限定のつもりではないが、メタデータ記述の一例は、移動データに利用されるリモート・ストレージ・サービスの識別、移動したストレージ・ブロックの範囲の記述、および最後の移動の時刻のような、関連があるその他のあらゆる情報を含むことができる。例えば、図5のストリーム3のメタデータは、時点t3において、データの移動に用いられるリモート・ストレージ・サービスのIDを含むことができる。また、時点t3におけるストリーム3のメタデータは、移動したストレージ・ブロックの範囲の記述も含むことができる。範囲記述に用いられる単位は、割り当て単位とすることができる。図5の例では、範囲リストを次のようにすることができる。
【0051】
M1:<0,m
M2:<m+1,m
M3:<m+1,m
M4:<m+1,m
更に、メタデータは、例えば、最後の移動が行われたとき、または現在の移動が行われているときを記述する時間的情報を含むこともできる。
【0052】
図8および図9、ならびに時点t3におけるストリーム3の前述のメタデータ記述を参照し、コール元540に応答したHSM500の、メタデータ520による、移動ストレージ530内のバイト範囲nないしmに対する検索プロセスを示す。メタデータ520は、ジェット・データベースのように、あらゆるタイプのストレージ・エレメントにも格納可能である。コール元540は、アプリケーション、サービス等のように、HSM500にデータを要求するいずれのタイプのオブジェクトでもよい。移動ストレージ530は、データを移動したあらゆる種類の多数の記憶装置を表すことができる。600において、HSM500は、バッファ510の調達を確保し、ここにコールしたバイトnないしmの全てを戻すことができる。610において、HSM500は、どのブロックMi(Miは、一般的に、M1,M2,M3等のようないずれかのストレージ・ブロックを示す)が範囲nないしmからのデータを含むのかを、前述の範囲リストから読み出すことによって判定を行なう。メタデータ記述によるこのような判定によって、例えば、nないしnがM2にあり、(n+1)ないしmがM3内にあることがわかった場合、620において、M2内のデータを移動ストレージ530から検索する。630において、nないしnをM2から読み出し、リターン・バッファ510内に置く。640において、M3内のデータを移動ストレージ530から検索する。650において、(n+1)ないしmをM3から読み出し、リターン・ファイル510内に置く。660において、バッファ510が要求されたバイト範囲nないしmで満杯となり、HSM500は要求された範囲のバイトをバッファ510からコール元540に送る。
【0053】
部分的移動ファイルに関する移動情報を維持する方法は、ファイル・システム・メタデータ(ファイルの属性およびボリューム内におけるそのロケーションを記述するために用いる)と、ファイルのリモート・データ・エクステントのロケーションとの間の関係を定義することを含むとよい。例えば、バック・エンド・リモート・ストレージに対するインターフェースを、DCOMイネーブル・インターフェース・アプリケーション・プログラミング・インターフェース(API)によって実現する場合、ファイルのディスク割り当てに関する情報を維持するNTファイル・サーバの一部は、SAMのハードウエアを管理するNTファイル・サーバの一部から離れて位置してもよい。
【0054】
したがって、本発明は、一方のストレージ・ロケーションから他方のストレージ・ロケーションへの部分ファイルの移動の際に用いられる方法および技法を記載し、これらの方法および技法を柔軟かつ効率的なHSMシステムに組み込む。
【0055】
ここに記載した種々の技法は、ハードウエアまたはソフトウエア、または適切であれば、双方の組み合わせでも実現可能である。したがって、本発明の方法および装置、またはその内のある態様または部分は、フロッピ・ディスケット、CD−ROM、ハード・ドライブ、またはその他の機械読み取り可能記憶媒体のような、有形媒体内に具体化したプログラム・コード(即ち、命令)の形態を取ることができる。この場合、プログラム・コードをコンピュータのような機械にロードして実行すると、この機械は本発明を実施する装置となる。プログラム可能なコンピュータ上におけるプログラム・コードの実行の場合、コンピュータは、一般的に、プロセッサ、プロセッサが読み取り可能な記憶媒体(揮発性および不揮発性メモリおよび/または記憶エレメントを含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含む。好ましくは、1つ以上のプログラムを上位手順またはオブジェクト指向プログラミング言語で実施し、コンピュータ・システムと通信する。しかしながら、プログラムは、望ましければ、アセンブリまたは機械語で実施することも可能である。いずれの場合でも、言語はコンパイルまたはインタープリト言語であり、ハードウエア実施態様と組み合わせることができる。
【0056】
また、本発明の方法および装置は、電気ワイヤまたはケーブル、光ファイバ、またはその他のいずれかの伝送形態のように、伝送媒体を通じて送信されるプログラム・コードの形態で具体化することも可能である。この場合、機械がプログラム・コードを受信し、ロードし、実行すると、EPROM、ゲート・アレイ、プログラマブル・ロジック・デバイス(PLD)、クライアント・コンピュータ、ビデオ・レコーダ等のように、機械は本発明を実施する装置となる。汎用プロセッサ上で実現する場合、プログラム・コードはプロセッサと結合し、本発明のインデックス化機能性を実行するように動作する一意の装置を提供する。例えば、本発明と共に用いる記憶技法は、一定不変にハードウエアおよびソフトウエアの組み合わせとすることができる。
【0057】
以上種々の図の好適な実施形態と関連付けて本発明について説明したが、他の同様の実施形態も使用可能であり、本発明から逸脱することなく、記載した実施形態に対して変更や追加を行い、その同一機能を実行することも可能であることは理解されよう。例えば、散在ファイルを本発明によるファイル移動と共に用いたが、更新または変更が生ずるあらゆるタイプのデータのあらゆるファイルまたはストリームでも、部分的移動技法に適している場合もあり得る。また、多くの異なる通信およびネットワーク・プロトコルが、本発明によるファイル移動情報(メタデータ)の発生および格納に適している場合もあることも理解されよう。更に、ハンドヘルド・デバイス・オペレーティング・システムや、その他のアプリケーション特定オペレーティング・システムを含む種々のコンピュータ・プラットフォームも想定していることを強調しておく。したがって、本発明は、いずれの単一実施形態にも限定されることはなく、添付した特許請求の範囲にしたがって、その広さおよび範囲を解釈すべきである。

【特許請求の範囲】
【請求項1】
コンピュータ・システムにおいて、データ・ストリームの一部を第1ストレージ・ロケーションから第2ストレージ・ロケーションに移動する方法であって、
前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップと、
前記少なくとも一部分を前記第2ストレージ・ロケーションに動かすステップと、
前記ストリームのデータ関係を保存するステップと、
から成ることを特徴とする方法。
【請求項2】
請求項1記載の方法において、前記第1ストレージ・ロケーションおよび前記第2ストレージ・ロケーションは、異なるボリューム上に位置することを特徴とする方法。
【請求項3】
請求項1記載の方法において、前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、既定の基準にしたがって前記少なくとも一部分を識別するステップを含むことを特徴とする方法。
【請求項4】
請求項3記載の方法において、前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、アーカイブ単位のサイズを指定するステップを含むことを特徴とする方法。
【請求項5】
請求項3記載の方法において、前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、更新領域のサイズを指定するステップを含むことを特徴とする方法。
【請求項6】
請求項3記載の方法において、前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、前記第1ストレージ・ロケーションに適用可能なデータ・ストリームのメモリ割り当て制限を指定するステップを含むことを特徴とする方法。
【請求項7】
請求項6記載の方法において、前記少なくとも一部分を動かす前記ステップは、前記メモリ割り当て制限を超過することなく実行することを特徴とする方法。
【請求項8】
請求項1記載の方法において、前記データ・ストリームは、少なくとも1つの識別可能な更新領域を有することを特徴とする方法。
【請求項9】
請求項1記載の方法において、前記第2ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、データ・ストリームのタイプを識別するステップを含むことを特徴とする方法。
【請求項10】
請求項9記載の方法において、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とする方法。
【請求項11】
請求項9記載の方法において、前記データ・ストリームのタイプは、第1ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とする方法。
【請求項12】
請求項1記載の方法において、前記第2ストレージ・ロケーションは、シーケンシャル・アクセス・メディア(SAM)であることを特徴とする方法。
【請求項13】
請求項1記載の方法において、前記第1ストレージ・ロケーションはローカル・ロケーションであり、前記第2ストレージ・ロケーションはリモート・ロケーションであることを特徴とする方法。
【請求項14】
請求項1記載の方法において、前記第1ストレージ・ロケーションは非安全ストレージ・ロケーションであり、前記第2ストレージ・ロケーションは安全ストレージ・ロケーションであることを特徴とする方法。
【請求項15】
請求項1記載の方法において、前記第1ストレージ・ロケーションはオンライン・ロケーションであり、前記第2ストレージ・ロケーションはオフライン・ロケーションであることを特徴とする方法。
【請求項16】
請求項1記載の方法において、前記ストリームのデータ関係を保存する前記ステップは、前記関係の記述のためにメタデータを発生するステップを含むことを特徴とする方法。
【請求項17】
請求項16記載の方法において、前記関係の記述のための前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込み可能なスクリプト可能インターフェースにしたがってフォーマットすることを特徴とする方法。
【請求項18】
請求項16記載の方法において、前記関係の記述のための前記メタデータは、拡張可能マークアップ言語(XML)、分散コンポーネント・オブジェクト・モデル(DCOM)、およびJavaの内少なくとも1つのしたがってフォーマットすることを特徴とする方法。
【請求項19】
請求項1記載の方法において、前記第1ストレージ・ロケーションにおける前記少なくとも一部分に対するストレージは、前記少なくとも一部分を前記第2ストレージ・ロケーションに動かした後、前記システムによる使用のために解放することを特徴とする方法。
【請求項20】
請求項1記載の方法において、前記データ・ストリームは散在ファイルであることを特徴とする方法。
【請求項21】
請求項1記載の方法を実行するようにコンピュータに命令するコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体。
【請求項22】
少なくとも一部分を第1ストレージ・ロケーションから第2ストレージ・ロケーションに移動させるデータ・ストリームの移動特性に関するメタデータを格納するためにコンピュータ読み取り可能媒体上に格納したデータ構造であって、
少なくとも一部分を移動させる前記データ・ストリームを識別する識別子と、
前記少なくとも一部分の移動と共に用いられるストレージ・サービスを表すデータと、
前記少なくとも一部の移動部分のメモリ・マッピングを表すデータと、
から成ることを特徴とするデータ構造。
【請求項23】
請求項22記載のコンピュータ読み取り可能媒体上に格納したデータ構造であって、更に、前記データ・ストリームの前記少なくとも一部分の移動時刻に関する時間的データを備えることを特徴とするデータ構造。
【請求項24】
請求項22記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、該データ構造は、ワールド・ワイド・ウェブ・コンポーネントに組み込むことが可能なスクリプト可能インターフェースのフォーマットにしたがって格納することを特徴とするデータ構造。
【請求項25】
請求項22記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、拡張マークアップ言語(XML)、分散コンポーネント・オブジェクト・モデル(DCOM)、およびJavaフォーマットの内少なくとも1つで、前記データ構造を格納することを特徴とするデータ構造。
【請求項26】
請求項22記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、該データ構造をジェット・データベースに格納することを特徴とするデータ構造。
【請求項27】
請求項22記載のデータ構造をエンコードする情報を搬送する変調データ信号。
【請求項28】
コンピュータ・システムにおいて用い、請求項1記載の方法にしたがって部分的移動技法の監督のためにデータ・ストリームを登録可能なアプリケーション・プログラミング・インターフェース(API)。
【請求項29】
請求項28記載のAPIにおいて、前記インターフェースは、データ・ストリームの二次ストレージへの部分的移動に関するメタデータを発生し、格納する共通方法を提供することを特徴とするAPI。
【請求項30】
コンピュータ・システムであって、
部分的移動のためにデータ・ストリームを監督する階層記憶管理(HSM)システムと、
前記HSMシステムがサービスするデータ・ストリームを格納したソース・ストレージ・ロケーションと、
を備え、前記HSMシステムは、既定の基準にしたがって、前記データ・ストリームの少なくとも一部分を識別してターゲット・ストレージ・ロケーションに移動し、前記少なくとも一部の移動部分のデータ関係の記述のためにメタデータを発生することを特徴とするコンピュータ・システム。
【請求項31】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムは、アーカイブ単位のサイズを指定することを特徴とするコンピュータ・システム。
【請求項32】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムは、更新領域のサイズを指定することを特徴とするコンピュータ・システム。
【請求項33】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムは、前記ソース・ストレージ・ロケーションに適用可能なデータ・ストリームに対するメモリ割り当て制限を指定することを特徴とするコンピュータ・システム。
【請求項34】
請求項33記載のコンピュータ・システムにおいて、前記HSMシステムは、前記データ・ストリームの少なくとも一部分を移動し、前記メモリ・ロケーション制限を超過しないようにすることを特徴とするコンピュータ・システム。
【請求項35】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムは、少なくとも1つの識別可能な更新領域を有するデータ・ストリームを識別することを特徴とするコンピュータ・システム。
【請求項36】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムによる前記少なくとも一部分の識別は、データ・ストリームのタイプを識別することを含むことを特徴とするコンピュータ・システム。
【請求項37】
請求項36記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項38】
請求項36記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、第1ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項39】
請求項30記載のコンピュータ・システムにおいて、前記ターゲット・ストレージ・ロケーションは、シーケンシャル・アクセス・メディア(SAM)であることを特徴とするコンピュータ・システム。
【請求項40】
請求項30記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、オンライン・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、オフライン・ロケーションであることを特徴とするコンピュータ・システム。
【請求項41】
請求項30記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、非安全ストレージ・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、安全ストレージ・ロケーションであることを特徴とするコンピュータ・システム。
【請求項42】
請求項30記載のコンピュータ・システムにおいて、前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込むことが可能なスクリプト可能インターフェースのフォーマットにしたがってフォーマットすることを特徴とするコンピュータ・システム。
【請求項43】
請求項30記載のコンピュータ・システムにおいて、前記関係の記述のための前記メタデータは、拡張マークアップ言語(XML)、分散コンポーネント・オブジェクト・モデル(DCOM)、およびJavaフォーマットの内少なくとも1つで、フォーマットすることを特徴とするコンピュータ・システム。
【請求項44】
請求項30記載のコンピュータ・システムにおいて、前記HSMシステムは、前記少なくとも一部分を前記ターゲット・ストレージ・ロケーションに動かした後、前記ソース・ストレージ・ロケーションにおける前記少なくとも一部分のためのストレージを、使用のために解放することを特徴とするコンピュータ・システム。
【請求項45】
請求項30記載のコンピュータ・システムにおいて、前記データ・ストリームは散在ファイルであることを特徴とするコンピュータ・システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−69161(P2012−69161A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2011−281430(P2011−281430)
【出願日】平成23年12月22日(2011.12.22)
【分割の表示】特願2001−250383(P2001−250383)の分割
【原出願日】平成13年8月21日(2001.8.21)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】