(57)【要約】【課題】第１ストレージ・ロケーションに位置するデータを移動監督のために登録し、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームを移動させ、システムのストレージ効率を最大限高める技法を提供する。【解決手段】ファイル・システムは、移動監督のために登録されているファイル／ストリーム、または既定の基準にしたがってポールすることができるファイル／ストリームの監視を可能にするファシリティを使用することができる。データ・ストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、階層記憶管理（ＨＳＭ）システムはそのデータを、長期またはオフライン・ストレージのような、別のストレージ・ロケーションに移動させ（４２０）、メタデータによってストリームのデータ関係を保存する（４３０）。【選択図】図７
2012069161.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムにおいて、データ・ストリームの一部を第１ストレージ・ロケーションから第２ストレージ・ロケーションに移動する方法であって、
前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップと、
前記少なくとも一部分を前記第２ストレージ・ロケーションに動かすステップと、
前記ストリームのデータ関係を保存するステップと、
から成ることを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記第１ストレージ・ロケーションおよび前記第２ストレージ・ロケーションは、異なるボリューム上に位置することを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、既定の基準にしたがって前記少なくとも一部分を識別するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、アーカイブ単位のサイズを指定するステップを含むことを特徴とする方法。
【請求項５】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、更新領域のサイズを指定するステップを含むことを特徴とする方法。
【請求項６】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、前記第１ストレージ・ロケーションに適用可能なデータ・ストリームのメモリ割り当て制限を指定するステップを含むことを特徴とする方法。
【請求項７】
請求項６記載の方法において、前記少なくとも一部分を動かす前記ステップは、前記メモリ割り当て制限を超過することなく実行することを特徴とする方法。
【請求項８】
請求項１記載の方法において、前記データ・ストリームは、少なくとも１つの識別可能な更新領域を有することを特徴とする方法。
【請求項９】
請求項１記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、データ・ストリームのタイプを識別するステップを含むことを特徴とする方法。
【請求項１０】
請求項９記載の方法において、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とする方法。
【請求項１１】
請求項９記載の方法において、前記データ・ストリームのタイプは、第１ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とする方法。
【請求項１２】
請求項１記載の方法において、前記第２ストレージ・ロケーションは、シーケンシャル・アクセス・メディア（ＳＡＭ）であることを特徴とする方法。
【請求項１３】
請求項１記載の方法において、前記第１ストレージ・ロケーションはローカル・ロケーションであり、前記第２ストレージ・ロケーションはリモート・ロケーションであることを特徴とする方法。
【請求項１４】
請求項１記載の方法において、前記第１ストレージ・ロケーションは非安全ストレージ・ロケーションであり、前記第２ストレージ・ロケーションは安全ストレージ・ロケーションであることを特徴とする方法。
【請求項１５】
請求項１記載の方法において、前記第１ストレージ・ロケーションはオンライン・ロケーションであり、前記第２ストレージ・ロケーションはオフライン・ロケーションであることを特徴とする方法。
【請求項１６】
請求項１記載の方法において、前記ストリームのデータ関係を保存する前記ステップは、前記関係の記述のためにメタデータを発生するステップを含むことを特徴とする方法。
【請求項１７】
請求項１６記載の方法において、前記関係の記述のための前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込み可能なスクリプト可能インターフェースにしたがってフォーマットすることを特徴とする方法。
【請求項１８】
請求項１６記載の方法において、前記関係の記述のための前記メタデータは、拡張可能マークアップ言語（ＸＭＬ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）、およびＪａｖａの内少なくとも１つのしたがってフォーマットすることを特徴とする方法。
【請求項１９】
請求項１記載の方法において、前記第１ストレージ・ロケーションにおける前記少なくとも一部分に対するストレージは、前記少なくとも一部分を前記第２ストレージ・ロケーションに動かした後、前記システムによる使用のために解放することを特徴とする方法。
【請求項２０】
請求項１記載の方法において、前記データ・ストリームは散在ファイルであることを特徴とする方法。
【請求項２１】
請求項１記載の方法を実行するようにコンピュータに命令するコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体。
【請求項２２】
少なくとも一部分を第１ストレージ・ロケーションから第２ストレージ・ロケーションに移動させるデータ・ストリームの移動特性に関するメタデータを格納するためにコンピュータ読み取り可能媒体上に格納したデータ構造であって、
少なくとも一部分を移動させる前記データ・ストリームを識別する識別子と、
前記少なくとも一部分の移動と共に用いられるストレージ・サービスを表すデータと、
前記少なくとも一部の移動部分のメモリ・マッピングを表すデータと、
から成ることを特徴とするデータ構造。
【請求項２３】
請求項２２記載のコンピュータ読み取り可能媒体上に格納したデータ構造であって、更に、前記データ・ストリームの前記少なくとも一部分の移動時刻に関する時間的データを備えることを特徴とするデータ構造。
【請求項２４】
請求項２２記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、該データ構造は、ワールド・ワイド・ウェブ・コンポーネントに組み込むことが可能なスクリプト可能インターフェースのフォーマットにしたがって格納することを特徴とするデータ構造。
【請求項２５】
請求項２２記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、拡張マークアップ言語（ＸＭＬ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）、およびＪａｖａフォーマットの内少なくとも１つで、前記データ構造を格納することを特徴とするデータ構造。
【請求項２６】
請求項２２記載のコンピュータ読み取り可能媒体上に格納したデータ構造において、該データ構造をジェット・データベースに格納することを特徴とするデータ構造。
【請求項２７】
請求項２２記載のデータ構造をエンコードする情報を搬送する変調データ信号。
【請求項２８】
コンピュータ・システムにおいて用い、請求項１記載の方法にしたがって部分的移動技法の監督のためにデータ・ストリームを登録可能なアプリケーション・プログラミング・インターフェース（ＡＰＩ）。
【請求項２９】
請求項２８記載のＡＰＩにおいて、前記インターフェースは、データ・ストリームの二次ストレージへの部分的移動に関するメタデータを発生し、格納する共通方法を提供することを特徴とするＡＰＩ。
【請求項３０】
コンピュータ・システムであって、
部分的移動のためにデータ・ストリームを監督する階層記憶管理（ＨＳＭ）システムと、
前記ＨＳＭシステムがサービスするデータ・ストリームを格納したソース・ストレージ・ロケーションと、
を備え、前記ＨＳＭシステムは、既定の基準にしたがって、前記データ・ストリームの少なくとも一部分を識別してターゲット・ストレージ・ロケーションに移動し、前記少なくとも一部の移動部分のデータ関係の記述のためにメタデータを発生することを特徴とするコンピュータ・システム。
【請求項３１】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、アーカイブ単位のサイズを指定することを特徴とするコンピュータ・システム。
【請求項３２】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、更新領域のサイズを指定することを特徴とするコンピュータ・システム。
【請求項３３】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、前記ソース・ストレージ・ロケーションに適用可能なデータ・ストリームに対するメモリ割り当て制限を指定することを特徴とするコンピュータ・システム。
【請求項３４】
請求項３３記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、前記データ・ストリームの少なくとも一部分を移動し、前記メモリ・ロケーション制限を超過しないようにすることを特徴とするコンピュータ・システム。
【請求項３５】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、少なくとも１つの識別可能な更新領域を有するデータ・ストリームを識別することを特徴とするコンピュータ・システム。
【請求項３６】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムによる前記少なくとも一部分の識別は、データ・ストリームのタイプを識別することを含むことを特徴とするコンピュータ・システム。
【請求項３７】
請求項３６記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項３８】
請求項３６記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、第１ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項３９】
請求項３０記載のコンピュータ・システムにおいて、前記ターゲット・ストレージ・ロケーションは、シーケンシャル・アクセス・メディア（ＳＡＭ）であることを特徴とするコンピュータ・システム。
【請求項４０】
請求項３０記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、オンライン・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、オフライン・ロケーションであることを特徴とするコンピュータ・システム。
【請求項４１】
請求項３０記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、非安全ストレージ・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、安全ストレージ・ロケーションであることを特徴とするコンピュータ・システム。
【請求項４２】
請求項３０記載のコンピュータ・システムにおいて、前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込むことが可能なスクリプト可能インターフェースのフォーマットにしたがってフォーマットすることを特徴とするコンピュータ・システム。
【請求項４３】
請求項３０記載のコンピュータ・システムにおいて、前記関係の記述のための前記メタデータは、拡張マークアップ言語（ＸＭＬ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）、およびＪａｖａフォーマットの内少なくとも１つで、フォーマットすることを特徴とするコンピュータ・システム。
【請求項４４】
請求項３０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、前記少なくとも一部分を前記ターゲット・ストレージ・ロケーションに動かした後、前記ソース・ストレージ・ロケーションにおける前記少なくとも一部分のためのストレージを、使用のために解放することを特徴とするコンピュータ・システム。
【請求項４５】
請求項３０記載のコンピュータ・システムにおいて、前記データ・ストリームは散在ファイルであることを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムにおける格納動作および管理に関する。更に特定すれば、本発明は、オブジェクトのデータ関係を維持しつつ、オブジェクトの一部を基本ロケーション即ちルート・ロケーションからリモート・ロケーションに移動（migrate）させる方法およびシステムに関する。
【背景技術】
【０００２】
リムーバブル・ストレージ媒体を備えたスタンドアロン・パーソナル・コンピュータ・モデルは、その出現以来、コンピュータ業界に大きな影響を及ぼし、コンピュータ・システムのアーキテクチャおよびインフラストラクチャの設計に影響を与えた。しかしながら、最初のスタンドアロン・コンピュータの時点以来、ストレージの解決手段および複雑なコンピュータ・システムは、急速に進歩しつつある。以下に、ネットワーク・コンピュータ環境が発展し有するに至った機能性向上の例を全て示す。格納可能なデータ量が増大しつつ一段と小型化されていく集積回路および半導体チップの絶え間ない発見、今日のコンピュータ・ネットワークで可能な帯域幅およびデータ転送レートの増大、ならびに他のコンピュータ、データベース、アプリケーションおよびあらゆるタイプのストレージ・コンポーネントとの関連におけるネットワークでのサーバ・コンピュータの利用度の向上である。
【０００３】
結果的に、従来の計算および記憶技法およびモデルは促されたのであった。例えば、リムーバブル・ストレージ媒体の普及は、効率的かつ安価にリモートにファイルを格納する能力によってもたらされた。更に、コンピュータ・システムが発展するに連れて、磁気ディスクまたは光ディスクのようなデータ記憶装置の可用性および構成も発展した。例えば、これらの記憶装置は、バスを通じてコンピュータ・システムに接続することができ、あるいは有線または無線ネットワークを通じてコンピュータ・システムに接続することができる。加えて、記憶装置は、別体とすることも、単一のキャビネット内に共存することも可能である。
【０００４】
背景として、ストレージ・ボリュームとは、基礎となる記憶装置のソフトウエア・アブストラクションであり、オペレーティング・システムによって実装されファイル・システムによって管理されるストレージの最も小さい自己充足単位である。ストレージ・ボリュームは、それらの関連する記憶装置の物理的トポロジを抽象化し、ディスクの断片、ディスク全体、または仮想的に連続する論理ブロックの範囲に纏めた多数のディスクとすることも可能である。この結束によって、基礎デバイスのフォールト・トレランス、性能、または容量特性を向上させることができる。今日の複雑なコンピュータ・システム環境では、ストレージ・ボリュームは様々なエレメントの集合である可能性があり、これに対する効率的かつ効果的な管理が望まれている。様々な格納動作が可能なコンピュータ・システム用ファイル・サーバは、データ関係および格納されているオブジェクトのロケーションを把握し、追跡しているので、データ格納および転送に共通の技術を用いることができる。
【０００５】
ボリュームは、基礎の記憶装置によって提示される連続格納アドレス空間である１つ以上のエクステント（extent）から構成される。エクステントは、典型的に、アドレス空間のサイズ、および媒体のベースからのアドレス空間の開始オフセットによって特徴付けられる。ボリューム・マッピングとは、ボリュームによって提示される連続アドレス空間を、基礎のエクステントの非連続格納アドレス空間にマップするプロセスのことである。ボリューム・マッピングは、ハードウエア・ボリューム・プロバイダと呼ばれる、特殊化したハードウエア・コントローラ上で実現するか、あるいはソフトウエア・ボリューム・プロバイダによってソフトウエアで実現する。更に別の背景として、ボリューム・プロバイダの共通監督（administration）および管理技法が、本願と同一譲受人に譲渡された、”Administration of RAID Storage Volumes”（ＲＡＩＤストレージ・ボリュームの監督）と題する同時係属中の特許出願第０９／４４９，５７７号に示されている。
【０００６】
記憶技術の進歩は、したがって、データを格納し転送する方法を変化させつつあり、このためボリューム内およびボリューム間において従来のファイル管理に歪みが生じている。例えば、任意の成長基準があるファイル、メモリ割り当て制限があるボリューム、分散格納およびデータ転送等は、スタンドアロン・コンピュータの固定ディスク・メモリ上における割り当ておよび管理の観念を打破しつつある。データの高速揮発性メモリからリモート・ロバスト・ストレージへのシフトは、ある目的のためには非常に有効である。したがって、ネットワークおよびコンピュータ・システムにおける進歩は、単に利用されるストレージ・コンポーネントの形式や、ストレージ・コンポーネント間で用いられる接続において変化が生ずる以上に、大きな波及効果がある。
【０００７】
以前に実施された固定した、即ち、柔軟性のないボリュームのメモリ割り当ては、ネットワーク・コンピュータ環境における複数のボリューム間でデータを転送し格納するロバストな機構から得られる効率に近づき始めていない。ファイル転送を管理するために従来から用いられてきた技法は、元々今日の複雑なネットワーク環境の高い機能性全てに対応するように設計された訳ではなかった。したがって、多くのコンピュータが動作する際に用いているオペレーティング・システム、システム・インフラストラクチャ、およびコア・ファイル管理機能は、影響を受けている。その結果、現行のファイル・システムは、非効率性を引きずっており、最大効率で異なる全てのタイプの格納およびデータ転送動作を処理するような装備とはなっていない。
【０００８】
このような非効率性の１つが、オブジェクトまたはファイルの一部を当該オブジェクトのルート・ロケーションから、例えば、リモート・ストレージに格納することに関連して存在する。前述のような種々の記憶エレメントおよび技術の増殖によって、ファイルの一部をリモート・ロケーションに格納し、一部をローカル・ストレージに保持しておくことが望ましい場合も出てきた。例えば、ファイルの一部が変化しないことがわかっている場合、貴重なローカル・ストレージをより多く解放したり、あるいは頻繁に利用されないある種のデータを片づけることが望ましい場合がある。別の例では、アペンド・オンリ・ファイルは、データの書き込みはファイルの終端においてのみ発生するという特性を有する。したがって、ローカル・ストレージを効率的に使用するには、新たな書き込みが添付されるファイルの不変部分をリモート・ストレージに移動させるべきであろう。更に別の例では、リモート・ストレージへのデータ移動は、予め設定したオンライン・ディスク／メモリ割り当ての制限を保存するために実行する場合もある。このように、ファイルのデータの一部をリモート・ストレージに移動させることには、種々の理由がある。しかしながら、現在のファイル・サーブ技法では、ファイルの一部を移動させるべきときを指定する場合にも、ファイルのデータ関係を維持しつつデータをリモート・ロケーションに続いて移動させる場合にも、適切に対応していない。
【０００９】
したがって、一般的な規則として、部分的移動技法はこれまで用いられていなかった。しかしながら、今日では、パーシャル・リコールのように、限られた部分的ファイル動作を実行可能な、階層記憶管理（ＨＳＭ）システムがあることを注記しておく。従来のＨＳＭシステムでは、例えば、パーシャル・リコール動作を用いてリモート・ストレージからデータを全くリコールすることなく、オンディスク・ボリューム全体を更新することができる。その他の従来の技法は、限られた場合に対応し、ファイルの最初の数キロバイト、例えば、４Ｋｂをオンライン、即ち、「非移動（unmigrated）」で残しておいたり、またはファイルの最後の数キロバイトをオンライン、即ち、「非移動」で残しておく場合には対応していた。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、ファイルの階層的記憶管理における技術的現状では、殆どのコンテクストにおいてファイルの部分的移動に対処しておらず、ファイルの所定部分を一方のロケーションから他方のロケーションに移動しつつファイルのその他の部分を保持するという要望に取り組んでいない。更に、本技術分野では、書き込みや更新に適したデータ・ストリームの領域や、オフライン即ちリモート・ストレージに適したデータ・ストリームの領域を指定する機構に対する要望にも取り組んでいない。端的に言うと、ファイルの所定部分をリモート・ストレージに移動させ、その他の部分をローカル・ストレージに保持することが望ましい場合があるが、現行のファイル・サーバは、どのデータを保持し、どのデータを他の場所にエクスポートするか指定しない。
【００１１】
加えて、ファイル管理における技術的現状では、あるデータ・ストリームに対してオンライン・ディスク／メモリ割り当てに制限を加えつつ、ストリーム全体を任意に成長させることが望ましい、特定の場合に取り組んでいない。例えば、アペンド・オンリ・データ構造の場合に当てはまる。例示すると、オンライン・ボリュームでは、１メガバイトまでのストリームを維持しつつ、全ストリームが１メガバイトよりも大きいサイズを有することを許すことが望ましい場合がある。この場合は、今日の階層記憶管理システムでは対応できない。
【００１２】
以上のように、現行のファイル・サーバ／ＨＳＭシステムに伴う不十分を考慮すると、コンピュータ・システムにおいて、ファイルまたはオブジェクトのある部分を別のメモリ・ロケーションに部分的に移動し、ファイルの残りの部分を保持する柔軟性のあるアーキテクチャを提供することができれば望ましいであろう。予め設定した基準にしたがって、オブジェクトのどの部分が移動に適しており、どの部分がそれらの現ストレージ・ロケーションに適しているか指定することができれば有効であろう。ファイルまたはオブジェクトの第１ストレージ・ロケーションから第２ストレージ・ロケーションに、例えば、オンライン・ストレージからリモート・ストレージへの部分的移動が可能であれば有効であろう。更に、構造および特性がわかっているファイルや、例えば、アペンド・オンリ・タイプのファイルの場合のように、指定可能なファイルの効率的な部分的移動が行なえれば有効であろう。このように、ファイルまたはオブジェクトの一部をルート・ボリュームからリモート・ボリュームに移動させつつ、当該ファイルまたはオブジェクトの種々のデータ関係を維持する共通の手法が存在しない。本発明は、当技術分野におけるこれらの要望を考慮して開発されたのである。
【課題を解決するための手段】
【００１３】
本発明は、コンピュータ・システムと共に用いられる階層記憶管理（ＨＳＭ）システムに関する。第１ストレージ・ロケーションに位置するデータを移動監督のために登録し、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームを移動させ、システムのストレージ効率を最大限高める技法を提供する。ファイル・システムは、移動監督のために登録されているファイル／ストリーム、または既定の基準にしたがってポールすることができるファイル／ストリームの監視を可能にするファシリティを使用することができる。データのストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、ＨＳＭシステムはそのデータを、長期またはオフライン・ストレージのような、別のストレージ・ロケーションに移動させ、メタデータによってストリームのデータ関係を保存する。この技法では、移動ターゲット・ロケーションによって多数のボリュームを補う（span）ことができ、更に、ＨＳＭシステムおよびメタデータによって、移動したファイル／ストリームのソースおよびターゲット部分にアクセスすることができる。例示の実施形態では、データをシーケンシャル・アクセス・メディアに移動させる。
【００１４】
本発明のその他の特徴について、以下に説明する。
【図面の簡単な説明】
【００１５】
【図１】本発明の態様を組み込むことができる汎用コンピュータを表すブロック図である。
【図２】本発明の方法および装置を実現可能なネットワーク環境の一例を示すブロック図である。
【図３】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図４】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図５】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図６】本発明による、更新のストリームの領域に基づくアーカイブ単位の一例の移動を示す図である。
【図７】本発明にしたがって、データ・ストリームの一部を二次ストレージ・ロケーションに移動させる場合のフロー図の一例を示す図である。
【図８】本発明にしたがって、メタデータによってＨＳＭシステムが移動データをリコールするプロセスの一例を示すブロック図である。
【図９】本発明にしたがって、メタデータによって移動データをリコールするプロセスの一例を示すフロー図である。
【発明を実施するための形態】
【００１６】
オブジェクトの一部を部分的にリモート・ストレージに移動（migrate）させるシステムおよび方法について、添付図面を参照しながら更に説明する。
一般的に、本発明は、一方のロケーションから他方のロケーションへのファイルの部分的な移動が望ましいシステムに関する。本発明は、システムの既存のファイル・サーバと共に利用することができる。本発明は、ファイルの一部の移動において用いるオンディスク割り当てに制限を与える即ち指定するために用いることができるという利点がある。したがて、本発明は、シーケンシャル・アクセス・メディア（ＳＡＭ）のようなオフディスク・ストレージに、オンディスク制限を超過したデータの部分を移動させるために利用することができる。即ち、本発明は、データ・ストリームが、割り当てられたディスク割り当て量（quota）即ち制限を超えて増大した場合に、リモート・ストレージへの部分的移動を可能にする。このように、本発明は、ファイルに関連する種々のデータ・ストリームのために特殊化階層記憶管理を行い、データ・ストリームを移動監督（migration administration）のために登録することができる。移動させたデータ・ストリームの一部は、従来のＨＳＭシステムの部分的リコール動作と同様に、リコールし読み出すことができる。例示の一実施形態では、本発明は、ターゲット・ロケーションに対してＳＡＭの使用を含む。
【００１７】
一部を別の記憶ロケーションに移動させることが好ましいデータ・ストリーム、オブジェクト、またはファイルの例には、書き込みが最後のストレージ・ブロックのみに行われるファイルのような、アペンド・オンリ・ファイル、書き込みが最初のストレージ・ブロックのみで行われるファイルのように、「更新領域」が規定されているファイル、または一部のアクセスまたは読み取りが頻繁に行われないファイル、一部をロバストおよび／またはリモート・ストレージに不変に格納することが望ましいデータ・ストリーム、オンディスク・メモリ割り当て制限を実施することによる等によってファイルの増大に制約が設けられているストレージ・ロケーションに位置するファイル、増大が任意または予測不可能なデータ・ストリーム等が含まれる。
【００１８】
移動ソース・ロケーションおよび移動ターゲット・ロケーション対の例には、ストリーム・データ、オブジェクトまたはファイルの一部の、オンライン・ストレージからオフライン・ストレージへ、ローカル・ストレージからリモート・ストレージへ、揮発性ストレージから不揮発性ストレージへ、非安全メモリから安全メモリへ、等の移動が含まれる。
【００１９】
したがって、本発明は、コンピュータ・システムと共に用いる階層記憶管理（ＨＳＭ）システムに関する。第１ストレージ・ロケーションに位置するデータ・ストリームを、既定の基準にしたがって分析し、データ・ストリームが別のストレージ・ロケーションに適した部分を有するか否か判定を行い、システムの格納効率を最大限高めることができる。既定の基準は、移動アーカイブ単位のサイズおよび更新領域のロケーションのように、システムの特性にしたがって予め指定することができ、あるいはユーザが入力することもできる。ファイル・システムは、移動監督のために登録したファイルの監視を可能にするファシリティを使用することができる。ファイル・システムがストリーム／ファイルを監視する方法を備えていない場合、移動に登録したストリーム／ファイルを既定の間隔でポールし、更に別の移動の必要性に関する情報を取得する方法を実装することもできる。先の間隔は、システムの移動特性に一致するように動的に変更可能である。データ・ストリームが、別のストレージ・ロケーションに移動させる部分を有する場合、ファイル・サーバＨＳＭシステムは、このデータを別のストレージ・ロケーションに移動させ、移動したデータと第１ストレージ・ロケーション内のデータ・ストリームとの間の関係を保存する。これらの関係は、その部分の移動に伴って発生したメタデータによって保存することができる。後に、このメタデータをＨＳＭシステムと共に利用し、移動したデータにアクセスすることができる。移動データ・ターゲット・ロケーションによって多数のボリュームを分散することができ、多数のファイル・システムを、そうすることに巻き込むことができる。
【００２０】
前述のように、本発明は、既定の基準にしたがって、別のストレージ・ロケーションに適したデータ・ストリームまたはオブジェクトの一部を移動させる方法を提供する。既定の基準は、種々の方法で設定することができる。実施の一例では、本発明は、オンディスク割り当てに制限を加える方法を含む。割り当て制限は、例えば、ストリーム毎またはファイル毎に指定し、データ・ストリームに対して制限が実施されるようにすることができる。例えば、アーカイブ単位のサイズを指定することができ、するとユーザ・アカウントの割り当てを、更新のファイル領域のサイズに関して指定することができる。移動監督のためのその他のファイルは、アペンド・オンリ・モードでアクセスされるファイル、または別の識別可能な「更新領域」を有するファイルとすることができる。
【００２１】
したがって、本発明は、識別可能な更新の領域を有するファイルの一部を、リモート・ストレージに移動させる方法を提供する。本発明は、オンディスク制限を超過したファイルの部分をＳＡＭに部分的に移動させることによって、オンディスク割り当て制限を行なうために用いることができるという利点がある。即ち、本発明は、データ・ストリームが割り当てられたディスク割り当て量即ち制限を超えて増大した際に、第１ストレージ・ロケーションから第２ストレージ・ロケーションに、そのリモート・ストレージへの部分的移動を可能にする。例示の実施形態では、本発明は、この割り当ての制約に対応する際、オンライン・ストレージ制限を超過したデータをリモート・ストレージに移動させる。これは、ＳＡＭにそれを移動させることによって行なう。
【００２２】
このように、本発明は、部分的移動機能および現行のＨＳＭシステムの効率的な統合を勘案して開発されたのである。即ち、本発明は、第１ストレージ・ロケーションから別のストレージ・ロケーションにファイル移動動作を効率的に実行するために開発されたのである。
【００２３】
図１および以下の論述は、本発明を実現するのに適した計算機環境の端的な一般的な説明を行なうことを意図している。必ずしもその必要はないが、本発明の説明は、少なくとも部分的には、プログラム・モジュールのような、パーソナル・コンピュータが実行する一般的なコンピュータ実行可能命令に関連して行なう。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的データ・タイプを実装する。更に、本発明は、別のコンピュータ・システム構成でも実施可能であることを当業者は認めよう。別のコンピュータ・システム構成には、ハンド・ヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのまたはプログラマブルの消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ等が含まれる。また、本発明は、分散型計算機環境においても実施可能であり、この場合、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクを実行する。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモートのメモリ記憶装置双方に配置することができる。
【００２４】
図１に示したように、１つの例示的な汎用計算システムは、従来のパーソナル・コンピュータ２０等を含む。このパーソナル・コンピュータ２０は、処理ユニット２１、システム・メモリ２２、およびシステム・メモリ２２から処理ユニット２１までを含む種々のシステム・コンポーネントを結合するシステム・バス２３を含む。システム・バス２３は、数種類のバス構造のいずれでもよく、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを用いたローカル・バスが含まれる。システム・メモリ２２は、リード・オンリ・メモリ（ＲＯＭ）２４およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。基本入出力システム２６（ＢＩＯＳ）は、起動中のように、パーソナル・コンピュータ２０内のエレメント間におけるデータ転送を補助する基本的なルーティンを含み、ＲＯＭ２４内に格納されている。更に、パーソナル・コンピュータ２０は、図示しないハード・ディスクの読み書きを行なうハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９の読み書きを行なう磁気ディスク・ドライブ２８、ＣＤ−ＲＯＭまたはその他の光媒体のようなリムーバブル光ディスク３１の読み書きを行なう光ディスク・ドライブ３０のような種々の周辺ハードウエア・デバイスも含む。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、それぞれ、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ドライブ・インターフェース３４を介して、システム・バス２３に接続されている。ドライブおよびそれに関連するコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュールおよびパーソナル・コンピュータ２０のその他のデータの不揮発性格納を行なう。ここに記載する環境の一例は、ハード・ディスク、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）等のように、コンピュータによるアクセスが可能なデータを格納することができる、別の形式のコンピュータ読取可能媒体も、動作環境例では使用可能であることは、当業者には認められよう。
【００２５】
ハード・ディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５上には、多数のプログラム・モジュールを格納可能であり、オペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６、その他のプログラム・モジュール３７、およびプログラム・データ３８を含む。ユーザは、キーボード４０およびポインティング・デバイス４２のような入力デバイスによって、コマンドおよび情報をパーソナル・コンピュータ２０に入力することができる。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス２３に結合するシリアル・ポート・インターフェース４６のような周辺ハードウエア・デバイスを介して、処理ユニット２１に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ）のようなその他のインターフェースによって接続することも可能である。また、ビデオ・アダプタ４８のような周辺ハードウエア・インターフェース・デバイスを介して、モニタ４７またはその他の種類のディスプレイ装置もシステム・バス２３に接続してある。モニタ４７に加えて、パーソナル・コンピュータは、典型的に、スピーカおよびプリンタのような、その他の周辺出力デバイス（図示せず）を含む。
【００２６】
パーソナル・コンピュータ２０は、リモート・コンピュータ４９のような１つ以上のリモート・コンピュータへの論理接続を用いれば、ネットワーク環境においても動作可能である。リモート・コンピュータ４９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、典型的に、パーソナル・コンピュータ２０に関して先に述べたエレメントの多くまたは全てを含むが、図１にはメモリ記憶装置５０のみを図示している。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００２７】
ＬＡＮネットワーキング環境で用いる場合、パーソナル・コンピュータ２０は、ネットワーク・インターフェースまたはアダプタ５３を介してＬＡＮ５１に接続する。ＷＡＮネットワーキング環境で用いる場合、パーソナル・コンピュータ２０は、典型的に、モデム５４、またはインターネットのようなワイド・エリア・ネットワーク５２を通じて通信を確立する、その他の手段を含む。モデム５４は、内蔵でも外付けでもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続する。ネットワーク環境では、パーソナル・コンピュータ２０に関して図示したプログラム・モジュールまたはその一部は、ローカルまたはリモート・メモリ記憶装置に格納することができる。尚、図示のネットワーク接続は一例であり、コンピュータ間に通信リンクを確立する別の手段も使用可能であることは認められよう。
【００２８】
尚、前述のコンピュータは、コンピュータ・ネットワークの一部として展開可能であり、本発明は、あらゆる数のメモリまたは記憶装置、あらゆる数のボリュームにわたって実行するあらゆる数のアプリケーションおよびプロセスを有するあらゆるコンピュータ・システムにも関係することを注記しておく。このように、本発明は、ネットワーク環境において展開され、リモート・ストレージまたはローカル・ストレージを有するサーバ・コンピュータおよびクライアント・コンピュータ双方に適用可能である。図２は、ネットワーク環境の一例を示し、サーバがネットワークを通じてクライアント・コンピュータと通信し、この中に本発明を用いることができる。図示のように、多数のサーバ１０ａ，１０ｂ等が通信ネットワーク１４（ＬＡＮ、ＷＡＮ、イントラネットまたはインターネットとすることができる）を通じて、多数のクライアント・コンピュータ２０ａ，２０ｂ，２０ｃ等と相互接続されている。例えば、通信ネットワーク１４がインターネットであるネットワーク環境では、サーバ１０はウェブ・サーバとすることができ、クライアント２０は、ハイパーテキスト・トランスファ・プロトコル（ＨＴＴＰ）のような多数の公知のプロトコルのいずれかによって、ウェブ・サーバと通信する。
【００２９】
各クライアント・コンピュータ２０およびサーバ・コンピュータ１０には、種々のアプリケーション・プログラム・モジュール３６、その他のプログラム・モジュール３７およびプログラム・データ３８、ならびに種々のタイプのストレージ・エレメントまたはオブジェクトに対する接続またはアクセスを装備することができ、これらを通じてファイルを格納し、ファイルの一部を移動させることができる。
【００３０】
このように、本発明は、ネットワークにアクセスし相互作用するクライアント・コンピュータと、クライアント・コンピュータと相互作用するサーバ・コンピュータとを有するコンピュータ・ネットワーク環境において利用することができる。本発明によれば、改良したＨＳＭシステム技法を用いて、データ・ストリームの一部を移動し、移動の記述のためにメタデータを発生する。これらの技術およびそれに伴う通信は、種々のネットワーク・システム・アーキテクチャを用いて実現可能であり、したがってあらゆる特定のフォーマットにも限定されないことは当然である。
【００３１】
このように、本発明は、コンピュータ・システムにおいて柔軟性のあるアーキテクチャを効率的に実現し、データ・ストリーム、ファイルまたはオブジェクトの一部を部分的に移動させ、ファイルのその他の部分を保持する。移動に適したオブジェクトの部分およびローカル・ストレージ、ベース・ストレージまたはルート・ストレージに適した部分を、既定の基準にしたがって指定する方法を提供する。ファイルまたはオブジェクトの第１ストレージ・ロケーションから第２ストレージ・ロケーションへ、例えば、オンライン・ストレージからリモート・ストレージへ、部分的移動を行なう方法を提供する。部分的移動に対する基準の一例は、例えば、アペンド・オンリ・タイプ・ファイルのように、構造および特性がわかっているファイル、それ以外の方法で更新の領域が識別可能なファイル、メモリ割り当てが制限されているファイル等を含む。ＨＳＭシステムによって、ファイルまたはオブジェクトの一部をルート・ボリュームからリモートまたはその他のボリュームへ移動しつつ、ファイルまたはオブジェクトに対する種々のデータ関係を維持する共通の手法を提供する。本発明は、ファイルの部分的移動から得られる効率や、オンディスク割り当て量の提供に適切に取り組んでいない従来技術のファイル・システムに対する改良である。
【００３２】
本発明の方法は、例えば、本発明の部分的移動技法のいずれもが可能なように、システム・ファイル・サーバと共に実現することができる。ストレージ割り当て量機構を利用することによって、ＨＳＭシステムは、データをリモート・ストレージに移動することが望ましいときを判定することができる。既定の基準は、データ・アクセスからの時間、ソース・ファイルおよび／またはファイル・データ構造、システム状態等に関する予備知識のように、その他の所定の規則に基づくことも可能である。どのデータを移動させるかに関するこの選択は、したがってＨＳＭシステムに委ねられ、ユーザは、アーカイブ単位のサイズおよびオンディスク割り当て量を含む、選択のための基準を指定すればよい。したがって、ストリーム・サイズの制約を指定することができ、あるいは、ストレージ・ロケーション自体の特性によって、制約は既に課されている場合もある。本発明は、割り当て単位のサイズの方により大きな制約を課する。この点に関して、本発明にしたがって指定されたオンディスク割り当て制限よりも小さなファイル・システム量がストレージ・ロケーションに課されている場合、本発明はこれらの制約を保存する。ファイル・システムの割り当て量が、本発明にしたがって指定されたオンディスク割り当て量よりも大きい場合、本発明の割り当て量は、ファイル・システムの割り当て量を先取りする（preempt）。移動監督のためのファイルを指定する別の方法は、ファイルがアペンド・オンリ・モードでアクセスされるか否か、またはいつファイルが別の識別可能な「更新領域」を有するか判定を行なうことである。ファイルの部分的移動のために維持する理念は、ファイル使用履歴およびその他の動的なシステム特性に基づいて、再度評価することもできる。例えば、あるオンディスク・メモリ割り当て制限が、種々の理由のいずれか１つのために、厳しすぎる場合、制限を緩和することができ、代わりに一層効率的なデータ量を移動することも可能である。
【００３３】
このように、本発明の部分的移動技法は、ある種のファイル・タイプを想定している。このようなファイル・タイプの一例は、識別可能な更新領域を有するデータのストリームである。図３は、識別可能な更新領域を有するファイルの一例を示す。ファイル・ストリーム１は、横に繋がった種々のストレージ・ブロックまたはオンディスク割り当て単位Ｍ１，Ｍ２，．．．，Ｍ６として描かれているが、ストレージ・ブロックは、どこに位置してもよく、あらゆる数およびタイプのストレージ・エレメントおよびデータ・ストリームでも、本発明にしたがって移動させることができる部分を有することは認められよう。データ・ストリーム１では、ファイルの使用履歴の分析および／またはファイルに関してわかっている特性から、破線の更新領域ＲＯＵ１，ＲＯＵ２として示す、２つの領域が、更新または書き込みが行われることが識別される。第３の不変領域Ｉｍｍ１も、頻繁に更新や書き込みが行われないと識別されるが、全く更新されない訳ではない。アーカイブ単位のサイズ、ならびに更新領域のサイズおよびロケーションは、既定のまたは入力した基準にもしたがって、指定することができる。
【００３４】
不変データＩｍｍ１は、移動可能であり、したがってリモート・ストレージまたはＳＡＭのような第２ストレージ・ロケーションへの移動対象とする。現時点における好適な実施態様によれば、ストリーム１が増大し、データがＲＯＵ１を超過すると、ＲＯＵ２の開始まで、長期ストレージに移動させる。ＲＯＵ２は、引き続きストリーム１の終端に位置し、ＲＯＵ２は、ストリーム１が増大するに連れて前方に移動し、ＲＯＵ２を超過したデータを移動させないようにする。また、メタデータを発生し、ファイルの非移動部分に対して、リモート・ストレージに移動させたファイルの部分を記述する。このメタデータは、ストレージ関係を記述するのに適したいずれのフォーマット、および／または種々のワールド・ワイド・ウェブ・コンポーネントへの組み込みに適したいずれのフォーマットにしたがって実施することも可能である。例示の実施形態では、メタデータは、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）記述にしたがってフォーマットされているが、Ｊａｖａ（登録商標）、拡張可能マークアップ言語（ＸＭＬ）、およびその他の適切なフォーマットであればいずれでも利用可能である。
【００３５】
図４および図５は、例えば、ファイルの先頭または終端にデータを追加した、識別可能な更新領域を有するデータ・ストリームの更に特定した例、または共通の例を示す。図４は、ファイル・ストリーム２の先頭においてデータを更新する場合を示す。時間がｔ１からｔ２に、そしてｔ３に進むに連れて、ファイルは長くなるが、データおよびそのストレージ・ブロックは、ファイルが増大するに連れて更新領域から外れるので、ＳＡＭのような他のストレージに移動させることができる。時点ｔ１において、ストレージ・ブロックまたは部分Ｍ３，Ｍ４をリモート・ストレージに移動させることができ、ｔ２においてＭ５をリモート・ストレージに移動させることができ、そしてｔ３においてＭ６をリモート・ストレージに移動させることができる、等となる。図５は、アペンド・オンリの場合を示し、更新領域は、ファイルの終端にある部分である。図４と同様に、データ・ストリーム３の、更新領域ＲＯＵの範囲内にない部分を、リモート・ストレージに移動させることができる。ｔ１からｔ２まで、そしてｔ３まで等でファイルが増大するに連れて、新たなストレージ・ブロックをＳＡＭのようなリモート・ストレージに移動させることができる。移動監督のための登録後、ｔ１において、Ｍ１，Ｍ２を移動させることができ、ｔ２においてＭ３を移動させることができ、ｔ３においてＭ４を移動させることができる。
【００３６】
移動したデータにアクセスするために、利用したリモート・ストレージ・サービスを記述したメタデータを発生し、移動させたストレージ・ブロックの範囲を記述し、最後の移動の日時のようなその他の情報を記述する（以下の例を参照）。尚、図３の移動したブロックについてオフセット・マッピングを記述するメタデータは、「後方に」（backwards）発生することができ、ストリーム２の終端をメタデータにおけるオフセット０と指定し、したがってそれ以降のブロックを０オフセットのアーカイブ単位のサイズおよびファイル・サイズに対して記述すればよいことを注記しておく。
【００３７】
このように、アペンド・オンリ・モードでファイルをアクセスする場合、あるいは関連するファイルまたはシステム特性に基づいて識別可能な「更新領域」がある場合、システムは、更新されないファイルのエリア、即ち、不変部分または頻繁にアクセスされない部分を効率的に移動させる。このようなファイルの一例は、新たな追加レコードをファイルの終端に追加するレコード保持ファイルであろう。つまり、一旦レコードを入力すると、これは恐らく頻繁にアクセスや更新が行われないファイルの領域と見なされ、したがって、ローカル・メモリ限度を保存するためまたはその他の効率上の理由のために、リモート・ストレージに移動させられる。このように、特殊化階層記憶管理技法を採用することによって、リモート・ストレージに格納したデータ・ストリームの断片を、ファイル・サーバのユーザに対してシームレスにリコール、コピーおよび／または読み出しを行なうことができる。好適な実施形態では、移動したデータはシーケンシャル・アクセス・メディア（ＳＡＭ）に書き込まれ、データは一旦ＳＡＭに書き込まれると、不変で安全であるので、有効である。
【００３８】
また、本発明は、確定した更新領域を有するファイルのデータ・ストリームにも適用可能である。例えば、更新は、単にバイトをストリームに添付するだけで行なうことができる（アペンド・オンリの場合）。第２の場合は、書き込みがストリームの最後のバイト・ブロックを対象にするときである（最終ブロックの場合）。アペンド・オンリの場合、アペンドされたバイトを除いてストリーム内のバイト全てを不変と見なし、したがって、どのバイトを部分的に移動可能かを識別するのは、簡単である。移動可能なのは、既に書き込まれたバイトである。最終ブロックの場合、例えば、最後のバイト・ブロック以外の全てのバイトを不変と見なし、したがって移動可能と見なす。
【００３９】
アペンド・オンリおよび最終ブロック双方の場合において、階層記憶管理システムは、こうしてストリームの不変領域をリモート・ストレージに移動することができる。不変のサブストリームの部分的移動は、ストリーム自体を更新している最中であっても行なうことができるという利点がある。その際、不変部分を、ファイル・サーバの観点から別個に扱う。現在では、これら部分的移動の特殊化技法は、従来のＨＳＭシステムには用いられていない。
【００４０】
また、本発明は、オンディスク・ファイル・メモリ割り当て制限を設け、ファイル／ストリームのサイズを制限する能力も含む。本発明は、このような制約に対して移動を支援する。また、アーカイブ単位のサイズおよび更新領域のサイズを指定可能であるので、ファイル・サイズもストレージ割り当て制限によって制限される場合、本発明はストレージ割り当て制限を実施する機構となる。図６は、ファイルの増大が、破線で示すストレージ割り当て制限によって制限される状況の一例を示す。アーカイブ単位のサイズが指定され、更新領域のサイズも指定されている。ｔ１において、ファイルは制約の範囲内にあり許される。ｔ２において、ファイルは、制約によって許される最大サイズに達した。ｔ３において、その増大が制約を超過したが、ファイルの一部は、本発明にしたがって、ＳＡＭのようなリモート・ストレージに移動させることができ、これによって割当量違反を防止する。
【００４１】
図７は、本発明による部分移動方法のフロー図の一例を示す。４００において、本発明にしたがってファイルを移動監督のために登録することができる。例えば、更新領域のサイズ、アーカイブ単位のサイズ（移動する部分のサイズ）、および移動したデータの移動宛先を指定し、オンディスク・メモリ割り当て制限を指定することができる。４１０において、ＨＳＭシステムは、ファイル特性に応じてファイルを監視し、使用特性および／または部分移動の所望性を調べるファシリティを利用する。４２０において、移動のタグが付けられた部分を二次ロケーションに移動させる。４３０において、ファイル移動を記述するメタデータを発生し、このメタデータを、データベース、好ましくはジェット・データベースのような記憶装置内に格納する。このメタデータは、後に、リモート・ストレージに格納されているデータにアクセスする際に用いることができる。４４０において、ファイル・サーバは、移動データをそれまで格納していたストレージ・ブロックまたはロケーションを解放する。ステップ４５０において、部分移動動作を受けたファイルにとって適当であれば、更新領域をシフトする。
【００４２】
別の利点として、本発明は、いずれの時点においてもリモート・ストレージ内のストリームの断片全てを再組み立てすることができ、それによって表されるデータが未だ有効か否かについて検証する必要はない。何故なら、リモート・ストレージに移動したストリームの断片は全て不変であるからである。更に、ストリームのある領域を削除した場合、ＨＳＭシステムは、それ自体の内部システム・データにおいて削除した領域に対応するバイトのギャップを表すことができる。その結果、ＨＳＭシステムは、都合がよいときに、残りのバイト範囲を再組み立てすることができ、削除された領域が以前に用いていた領域を効率的に再生することができる。
【００４３】
加えて、ＨＳＭシステムは、移動のためにあらゆる適切な記憶装置および伝送媒体を選択することができる。選択は、通常、リモート・ストレージへの転送動作の瞬時的および／または高総合データ・レートを最適化するように行われる。
【００４４】
先に示唆したように、あるファイルをリモート・ストレージへの部分的移動の対象とする場合、各データ・ストリーム毎にそしていずれの所与の時点においても、既定の規則にしたがって順守すべきストレージ割り当て量がある。したがって、本発明を用いて移動によってディスク割り当て制限を保存する場合、ストリームに対するボリューム・オンライン割り当ては制限したままで、ストリーム・サイズの任意の増大を許すという利点がある。ファイル・システムのコール元が現ファイル終点を超えてデータを書き込むと、ストリーム・サイズは対応して増大し、ストリームのデータを格納するために必要なディスク割り当て数も増大する。一旦ローカル割り当て量を超過すると、本発明のＨＳＭシステムはファイル・データの一部をリモート・ストレージに移動させ、必要なオンディスク・メモリ割り当て量を削減することができる。ＨＳＭシステムは、ファイルから移動するバイト範囲を選択することができ、この選択は、１組の所定の規則に従えばよい。
【００４５】
このように、移動するバイト・グループを選択する場合、広い範囲の基準を用いることができる。例えば、元のデータ・ストリームをシーケンシャル・アクセスのために開いている場合、移動を開始する論理領域は、現在のオンディスク割り当てを反映して、オフセットが最も小さいバイトを含む領域となる。別の例では、ランダム・アクセスのためにファイルを開いている場合、いずれのバイト領域でも等しく移動に相応しい選択となる。ファイルの統計的分析でも、移動に適した部分を解明することができる。別の代替案では、本発明によるＨＳＭシステムは、追加のランタイム情報を追跡し、ファイルのどのエリアが、直ぐにアクセスされる可能性が少ないか判定することができる。次いで、識別したエリアを移動のために指定すればよい。
【００４６】
好ましくは、移動の最少単位は、ローカル・ファイル・システムにおけるストレージ割り当ての最少単位と等しくする。何故なら、移動サイズが小さい程、ローカル・ストレージの割り当て解除効果が低いからである。好ましくは、本発明は、データ・ストリーム内で０範囲を割り当て解除する、散在ファイル（sparse file）に対応するファイル・システムと共に用いる。現時点において好適な実施態様では、移動の最少単位は６４Ｋとなっている。また、移動目的のための最少単位は、ファイル・システムに関連する最少割り当て単位によって限定される必要はない。最少単位のサイズは、いくつかの割り当て単位、例えば、１６単位にしたがって計算し、これらのメモリ割り当てを追跡するために必要なシステム・データ量を最少化し、ファイル・システムが利用する元の圧縮単位の一致というような、付加的な最適化を可能にするようにする。システム・パラメータに適したサイズを選択したなら、ＨＳＭシステムは、これによってある種のアドレス変換動作を最適化または能率化することができる。例えば、転送単位のサイズとして、２の累乗が用いられていると仮定すると、アクセス動作に関連して１バイトのオフセットが与えられた場合、ＨＳＭシステムは、単位サイズの対数基底２に等しいビット数だけ与えられたオフセットを右にビットシフトすることに基づいて、内部アドレスを素早く決定することができる。他の種類のシステム・パラメータに関しても同様に、他の最適化を利用することができる。
【００４７】
また、本発明は、ファイル・サーバのユーザに対して透過的である。ファイルが部分的に移動したか否かには関わらず、アクセスはシームレスである。何故なら、ＨＳＭアーキテクチャは本技法の機能性を統合しているからである。したがって、ＳＡＭにデータを保管する方法は、ストリームの移動部分、およびオンディスク割り当てに格納されているデータを含む、ストリームのデータ全てに対するアクセスを許す。本発明の現時点において好適な実施態様では、基礎のファイル・システムは散在ファイルに対応する。移動した全てのバイト領域または多数の領域は、したがって、ローカル・ファイル内において、バイトの「分散孔」として表すことができる。また、基礎のファイルおよびファイル・システムは、データの暗号化および解読だけでなく、データ圧縮および解凍にも対応することができる。
【００４８】
一旦部分的移動技法によってファイルを部分的にリモートに格納したなら、クライアントは、ファイルをその現ボリューム内において一方のボリュームから他方に動かす（move）ことを選択することもできる。ムーブ動作は、一般的に、ファイルの名称を変更するアクションのことを意味し、その結果ファイルは異なるディレクトリおよび／または異なるボリュームのメンバとなるか、またはこれと関連付けられる。加えて、ボリューム内ムーブ動作は、ソースおよびターゲット・ボリュームを伴う。これらは、別個のサーバまたはマシン上に位置する可能性がある別個のファイル・マネージャによって管理されている場合がある。また、ムーブ動作は、２つの別個のプロセス、即ち、データの宛先ボリュームへのコピー、およびデータのソース・ボリュームからの削除を伴う場合もある。したがって、一旦ファイルの一部を本発明にしたがって移動したなら、ファイル・システムを作成し、典型的な移動ファイルのリロケーション、ムーブ、コピー、名称変更、およびその他の典型的なファイル動作の処理を可能にする。これは、例えば、ファイル移動情報、またはファイルに対する移動情報を指定する移動ファイル動作と共に用いるメタデータを与えることによって、行なうことができる。
【００４９】
したがって、本発明は、部分移動ファイルのためにメタデータを定義し、これによってメタデータが部分移動ファイルについての格納関係を指定するような機構を提供する。このメタデータは、ＨＳＭシステムが部分移動ファイルの存在および性質を認識するため、そして部分移動ファイルに伴う動作を効率的に実行するために用いられる。このメタデータは、例えば、ＤＣＯＭ、Ｊａｖａ、拡張可能ヘッダ、ＸＭＬフォーマット等でエンコードすることができる。このように、本発明は、ファイルの部分移動を勘案して開発されたのである。何故なら、現在のＨＳＭシステムは部分移動技法に適切に対処していないからである。
【００５０】
限定のつもりではないが、メタデータ記述の一例は、移動データに利用されるリモート・ストレージ・サービスの識別、移動したストレージ・ブロックの範囲の記述、および最後の移動の時刻のような、関連があるその他のあらゆる情報を含むことができる。例えば、図５のストリーム３のメタデータは、時点ｔ３において、データの移動に用いられるリモート・ストレージ・サービスのＩＤを含むことができる。また、時点ｔ３におけるストリーム３のメタデータは、移動したストレージ・ブロックの範囲の記述も含むことができる。範囲記述に用いられる単位は、割り当て単位とすることができる。図５の例では、範囲リストを次のようにすることができる。
【００５１】
Ｍ１：＜０，ｍ１＞
Ｍ２：＜ｍ１＋１，ｍ２＞
Ｍ３：＜ｍ２＋１，ｍ３＞
Ｍ４：＜ｍ３＋１，ｍ４＞
更に、メタデータは、例えば、最後の移動が行われたとき、または現在の移動が行われているときを記述する時間的情報を含むこともできる。
【００５２】
図８および図９、ならびに時点ｔ３におけるストリーム３の前述のメタデータ記述を参照し、コール元５４０に応答したＨＳＭ５００の、メタデータ５２０による、移動ストレージ５３０内のバイト範囲ｎないしｍに対する検索プロセスを示す。メタデータ５２０は、ジェット・データベースのように、あらゆるタイプのストレージ・エレメントにも格納可能である。コール元５４０は、アプリケーション、サービス等のように、ＨＳＭ５００にデータを要求するいずれのタイプのオブジェクトでもよい。移動ストレージ５３０は、データを移動したあらゆる種類の多数の記憶装置を表すことができる。６００において、ＨＳＭ５００は、バッファ５１０の調達を確保し、ここにコールしたバイトｎないしｍの全てを戻すことができる。６１０において、ＨＳＭ５００は、どのブロックＭｉ（Ｍｉは、一般的に、Ｍ１，Ｍ２，Ｍ３等のようないずれかのストレージ・ブロックを示す）が範囲ｎないしｍからのデータを含むのかを、前述の範囲リストから読み出すことによって判定を行なう。メタデータ記述によるこのような判定によって、例えば、ｎないしｎ１がＭ２にあり、（ｎ１＋１）ないしｍがＭ３内にあることがわかった場合、６２０において、Ｍ２内のデータを移動ストレージ５３０から検索する。６３０において、ｎないしｎ１をＭ２から読み出し、リターン・バッファ５１０内に置く。６４０において、Ｍ３内のデータを移動ストレージ５３０から検索する。６５０において、（ｎ１＋１）ないしｍをＭ３から読み出し、リターン・ファイル５１０内に置く。６６０において、バッファ５１０が要求されたバイト範囲ｎないしｍで満杯となり、ＨＳＭ５００は要求された範囲のバイトをバッファ５１０からコール元５４０に送る。
【００５３】
部分的移動ファイルに関する移動情報を維持する方法は、ファイル・システム・メタデータ（ファイルの属性およびボリューム内におけるそのロケーションを記述するために用いる）と、ファイルのリモート・データ・エクステントのロケーションとの間の関係を定義することを含むとよい。例えば、バック・エンド・リモート・ストレージに対するインターフェースを、ＤＣＯＭイネーブル・インターフェース・アプリケーション・プログラミング・インターフェース（ＡＰＩ）によって実現する場合、ファイルのディスク割り当てに関する情報を維持するＮＴファイル・サーバの一部は、ＳＡＭのハードウエアを管理するＮＴファイル・サーバの一部から離れて位置してもよい。
【００５４】
したがって、本発明は、一方のストレージ・ロケーションから他方のストレージ・ロケーションへの部分ファイルの移動の際に用いられる方法および技法を記載し、これらの方法および技法を柔軟かつ効率的なＨＳＭシステムに組み込む。
【００５５】
ここに記載した種々の技法は、ハードウエアまたはソフトウエア、または適切であれば、双方の組み合わせでも実現可能である。したがって、本発明の方法および装置、またはその内のある態様または部分は、フロッピ・ディスケット、ＣＤ−ＲＯＭ、ハード・ドライブ、またはその他の機械読み取り可能記憶媒体のような、有形媒体内に具体化したプログラム・コード（即ち、命令）の形態を取ることができる。この場合、プログラム・コードをコンピュータのような機械にロードして実行すると、この機械は本発明を実施する装置となる。プログラム可能なコンピュータ上におけるプログラム・コードの実行の場合、コンピュータは、一般的に、プロセッサ、プロセッサが読み取り可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶エレメントを含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含む。好ましくは、１つ以上のプログラムを上位手順またはオブジェクト指向プログラミング言語で実施し、コンピュータ・システムと通信する。しかしながら、プログラムは、望ましければ、アセンブリまたは機械語で実施することも可能である。いずれの場合でも、言語はコンパイルまたはインタープリト言語であり、ハードウエア実施態様と組み合わせることができる。
【００５６】
また、本発明の方法および装置は、電気ワイヤまたはケーブル、光ファイバ、またはその他のいずれかの伝送形態のように、伝送媒体を通じて送信されるプログラム・コードの形態で具体化することも可能である。この場合、機械がプログラム・コードを受信し、ロードし、実行すると、ＥＰＲＯＭ、ゲート・アレイ、プログラマブル・ロジック・デバイス（ＰＬＤ）、クライアント・コンピュータ、ビデオ・レコーダ等のように、機械は本発明を実施する装置となる。汎用プロセッサ上で実現する場合、プログラム・コードはプロセッサと結合し、本発明のインデックス化機能性を実行するように動作する一意の装置を提供する。例えば、本発明と共に用いる記憶技法は、一定不変にハードウエアおよびソフトウエアの組み合わせとすることができる。
【００５７】
以上種々の図の好適な実施形態と関連付けて本発明について説明したが、他の同様の実施形態も使用可能であり、本発明から逸脱することなく、記載した実施形態に対して変更や追加を行い、その同一機能を実行することも可能であることは理解されよう。例えば、散在ファイルを本発明によるファイル移動と共に用いたが、更新または変更が生ずるあらゆるタイプのデータのあらゆるファイルまたはストリームでも、部分的移動技法に適している場合もあり得る。また、多くの異なる通信およびネットワーク・プロトコルが、本発明によるファイル移動情報（メタデータ）の発生および格納に適している場合もあることも理解されよう。更に、ハンドヘルド・デバイス・オペレーティング・システムや、その他のアプリケーション特定オペレーティング・システムを含む種々のコンピュータ・プラットフォームも想定していることを強調しておく。したがって、本発明は、いずれの単一実施形態にも限定されることはなく、添付した特許請求の範囲にしたがって、その広さおよび範囲を解釈すべきである。
【図１】
2012069161.tif 000003
【図２】
2012069161.tif 000004
【図３】
2012069161.tif 000005
【図４】
2012069161.tif 000006
【図５】
2012069161.tif 000007
【図６】
2012069161.tif 000008
【図７】
2012069161.tif 000009
【図８】
2012069161.tif 000010
【図９】
2012069161.tif 000011
【手続補正書】
【提出日】平成24年1月12日(2012.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ・システムにおいて、データ・ストリームの一部を第１ストレージ・ロケーションから第２ストレージ・ロケーションに移動させる方法であって、
前記データ・ストリームを、該データ・ストリームの移動監督のために登録するステップと、
前記データ・ストリームの一部の移動のための基準にしたがって前記データ・ストリームを監視するステップであって、前記基準が、前記データ・ストリームに対する前記第１ストレージ・ロケーションのメモリ割り当て制限を含む、ステップと、
前記データ・ストリームが、該データ・ストリームに対し指定された前記第１ストレージ・ロケーションの前記メモリ割り当て制限を超過するとき、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップと、
前記少なくとも一部分を前記第２ストレージ・ロケーションに移動させるステップと、
前記データ・ストリームに関連したメタデータを発生するステップであって、前記メタデータが、前記データ・ストリームの移動させた前記少なくとも一部分を格納した前記第２ストレージ・ロケーションに関する情報を少なくとも含む、ステップと、
を含む、方法。
【請求項２】
請求項１記載の方法において、前記第１ストレージ・ロケーションおよび前記第２ストレージ・ロケーションは、異なるボリューム上に位置することを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、既定の基準にしたがって前記少なくとも一部分を識別するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、アーカイブ単位のサイズを指定するステップを含むことを特徴とする方法。
【請求項５】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、更新領域のサイズを指定するステップを含むことを特徴とする方法。
【請求項６】
請求項３記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、前記データ・ストリームに対する前記メモリ割り当て制限を指定するステップを含むことを特徴とする方法。
【請求項７】
請求項１記載の方法において、前記データ・ストリームは、少なくとも１つの識別可能な更新領域を有することを特徴とする方法。
【請求項８】
請求項１記載の方法において、前記第２ストレージ・ロケーションへの移動のために、前記データ・ストリームの少なくとも一部分を識別するステップは、データ・ストリームのタイプを識別するステップを含むことを特徴とする方法。
【請求項９】
請求項８記載の方法において、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とする方法。
【請求項１０】
請求項８記載の方法において、前記データ・ストリームのタイプは、第１ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とする方法。
【請求項１１】
請求項１記載の方法において、前記第２ストレージ・ロケーションは、シーケンシャル・アクセス・メディア（ＳＡＭ）であることを特徴とする方法。
【請求項１２】
請求項１記載の方法において、前記第１ストレージ・ロケーションはローカル・ロケーションであり、前記第２ストレージ・ロケーションはリモート・ロケーションであることを特徴とする方法。
【請求項１３】
請求項１記載の方法において、前記第１ストレージ・ロケーションは非安全ストレージ・ロケーションであり、前記第２ストレージ・ロケーションは安全ストレージ・ロケーションであることを特徴とする方法。
【請求項１４】
請求項１記載の方法において、前記第１ストレージ・ロケーションはオンライン・ロケーションであり、前記第２ストレージ・ロケーションはオフライン・ロケーションであることを特徴とする方法。
【請求項１５】
請求項１記載の方法において、前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込み可能なスクリプト可能インターフェースにしたがってフォーマットされることを特徴とする方法。
【請求項１６】
請求項１記載の方法において、前記メタデータは、拡張可能マークアップ言語（ＸＭＬ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）、およびＪａｖａの内少なくとも１つのしたがってフォーマットされることを特徴とする方法。
【請求項１７】
請求項１記載の方法において、前記第１ストレージ・ロケーションにおける前記少なくとも一部分に対するストレージは、前記少なくとも一部分を前記第２ストレージ・ロケーションに動かされた後、前記システムによる使用のために解放されることを特徴とする方法。
【請求項１８】
請求項１記載の方法において、前記データ・ストリームは散在ファイルであることを特徴とする方法。
【請求項１９】
請求項１記載の方法を実行するようにコンピュータに命令するコンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体。
【請求項２０】
コンピュータ・システムであって、
部分的移動のためにデータ・ストリームを監督する階層記憶管理（ＨＳＭ）システムと、
前記ＨＳＭシステムがサービスするデータ・ストリームを格納したソース・ストレージ・ロケーションと、
を備え、前記ＨＳＭシステムは、
前記データ・ストリームの移動監督のために該データ・ストリームの登録を受け、
前記データ・ストリームの一部の移動のための基準にしたがって前記データ・ストリームを監視し、前記基準が、前記データ・ストリームに対する前記第１ストレージ・ロケーションのメモリ割り当て制限を含み、
前記データ・ストリームが、該データ・ストリームに対し指定された前記ソース・ストレージ・ロケーションの前記メモリ割り当て制限を超過するとき、前記データ・ストリームの少なくとも一部分を識別してターゲット・ストレージ・ロケーションに移動させ、
前記データ・ストリームに関連したメタデータを発生し、該メタデータが、前記データ・ストリームの移動させた前記少なくとも一部分を格納した前記ターゲット・ストレージ・ロケーションに関する情報を少なくとも含む、
コンピュータ・システム。
【請求項２１】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、アーカイブ単位のサイズを指定することを特徴とするコンピュータ・システム。
【請求項２２】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、更新領域のサイズを指定することを特徴とするコンピュータ・システム。
【請求項２３】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、前記データ・ストリームに対する前記メモリ割り当て制限を指定することを特徴とするコンピュータ・システム。
【請求項２４】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、少なくとも１つの識別可能な更新領域を有するデータ・ストリームを識別することを特徴とするコンピュータ・システム。
【請求項２５】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムによる前記少なくとも一部分の識別は、データ・ストリームのタイプを識別することを含むことを特徴とするコンピュータ・システム。
【請求項２６】
請求項２５記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、アペンド・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項２７】
請求項２５記載のコンピュータ・システムにおいて、前記データ・ストリームのタイプは、第１ストレージ・ブロック・ライト・オンリ・ファイルであることを特徴とするコンピュータ・システム。
【請求項２８】
請求項２０記載のコンピュータ・システムにおいて、前記ターゲット・ストレージ・ロケーションは、シーケンシャル・アクセス・メディア（ＳＡＭ）であることを特徴とするコンピュータ・システム。
【請求項２９】
請求項２０記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、オンライン・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、オフライン・ロケーションであることを特徴とするコンピュータ・システム。
【請求項３０】
請求項２０記載のコンピュータ・システムにおいて、前記ソース・ストレージ・ロケーションは、非安全ストレージ・ロケーションであり、前記ターゲット・ストレージ・ロケーションは、安全ストレージ・ロケーションであることを特徴とするコンピュータ・システム。
【請求項３１】
請求項２０記載のコンピュータ・システムにおいて、前記メタデータは、ワールド・ワイド・ウェブ・コンポーネントに組み込むことが可能なスクリプト可能インターフェースにしたがってフォーマットされることを特徴とするコンピュータ・システム。
【請求項３２】
請求項２０記載のコンピュータ・システムにおいて、前記メタデータは、拡張マークアップ言語（ＸＭＬ）、分散コンポーネント・オブジェクト・モデル（ＤＣＯＭ）、およびＪａｖａの内少なくとも１つにしたがって、フォーマットされることを特徴とするコンピュータ・システム。
【請求項３３】
請求項２０記載のコンピュータ・システムにおいて、前記ＨＳＭシステムは、前記少なくとも一部分が前記ターゲット・ストレージ・ロケーションに動かされた後、前記ソース・ストレージ・ロケーションにおける前記少なくとも一部分のためのストレージを、使用のために解放することを特徴とするコンピュータ・システム。
【請求項３４】
請求項２０記載のコンピュータ・システムにおいて、前記データ・ストリームは散在ファイルであることを特徴とするコンピュータ・システム。