(57)【要約】      （修正有）【課題】複数のホスト・コンピュータと複数の記憶要素を含むコンピュータ・システムにおいて、ストレージ・システムを管理する。【解決手段】ホスト・コンピュータは、ホスト・ドメインに構成され、記憶要素は記憶ドメインに構成される。前記記憶ドメインは、複数の１次記憶装置と、２次記憶装置を含む。前記２次記憶装置は、ネットワークを介して前記複数の１次記憶装置に接続される。他の実施例においては、前記２次記憶装置は、異種のホスト・コンピュータのセットと情報を送受信できる。他の実施例においては、前記２次記憶装置上のデータ転送用の接続は自動的に生成される。【選択図】図８
2007048301.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムであって、
ホスト・コンピュータを含むホスト・ドメインと、
１つ以上の通信リンクを通して前記ホスト・ドメインに接続された記憶ドメインであって、
少なくとも１つが前記ホスト・コンピュータに対する記憶を提供する前記ホスト・ドメイン用の複数の１次記憶装置と、
前記ホスト・コンピュータに対するバックアップ記憶を提供する２次記憶装置と、
当該記憶ドメインを前記ホスト・ドメインに接続する前記１つ以上の通信リンクの各々から分離され、前記複数の１次記憶装置を前記２次記憶装置に接続するネットワークとを含む記憶ドメインと、
からなり、
前記１次記憶装置の１つが、前記記憶ドメインを前記ホスト・ドメインに接続する１つ以上の通信リンクの何れも使わずに、前記２次記憶装置に前記ネットワークを通してアクセスすることを可能にすることによって、前記ネットワークを介する前記複数の１次記憶装置と２次記憶装置との間の通信が、前記１つ以上の通信リンクを介する前記ホスト・ドメインと前記記憶ドメインとの間の通信と同時に生ずることが出来、
前記複数の１次記憶装置のうちの第１の１次記憶装置及び前記２次記憶装置は、論理オブジェクトを前記第１の１次記憶装置から前記２次記憶装置に転送可能な接続であって、前記複数の１次記憶装置のうちの少なくとも１つ及び前記２次記憶装置によって決定される接続を確立し、前記第１の１次記憶装置は、前記接続を介して論理オブジェクトを前記２次記憶装置に直接転送することを特徴とする、コンピュータ・システム。
【請求項２】
請求項１に記載のシステムにおいて、
更に、前記２次記憶装置に直接接続される付加的な１次記憶装置を含むことを特徴とする、コンピュータ・システム。
【請求項３】
請求項１に記載のシステムにおいて、
前記１次記憶装置の内の少なくとも１つが、キャッシュ付きディスク・アレイであることを特徴とする、コンピュータ・システム。
【請求項４】
請求項１に記載のシステムにおいて、
前記２次記憶装置が、前記ネットワーク上のデータを並列に送受信するために前記ネットワークに接続する複数のポートを含むことを特徴とする、コンピュータ・システム。
【請求項５】
請求項４に記載のシステムにおいて、
前記２次記憶装置が、それぞれ前記複数のポートの内の１つに接続する複数のデータ・ムーバーを含むことを特徴とする、コンピュータ・システム。
【請求項６】
請求項１に記載のシステムにおいて、
異種のものである前記複数のホスト・コンピュータを含むことを特徴とする、コンピュータ・システム。
【請求項７】
請求項１に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つから前記２次記憶装置へ第１の接続を介して直接第１の論理オブジェクトを転送する手段を含むことを特徴とする、コンピュータ・システム。
【請求項８】
請求項７に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つから前記２次記憶装置へ第２の接続を介して直接第２の論理オブジェクトを転送する手段を含むことを特徴とする、コンピュータ・システム。
【請求項９】
請求項１に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つに記憶されている論理オブジェクトから抽象ブロック・セットを形成する手段を含むことを特徴とする、コンピュータ・システム。
【請求項１０】
請求項１に記載のシステムにおいて、
前記２次記憶装置が、テープ・ライブラリ装置を含むことを特徴とする、コンピュータ・システム。
【請求項１１】
コンピュータ・システムであって、
第１のプラットフォームからなる少なくとも１つの第１のホスト・コンピュータと、前記第１のプラットフォームと異なる第２のプラットフォームからなる第２のホスト・コンピュータとを含む、異種の複数のホスト・コンピュータと、
それぞれ前記ホスト・コンピュータの内の少なくとも１つと関連する、データを受け取って記憶するための複数の１次記憶装置と、
前記複数の１次記憶装置の少なくともいくつかに接続され、前記第１及び第２のホスト・コンピュータのそれぞれからバックアップ・データを受け取って記憶するように構成されている２次記憶装置と、
前記第１及び第２のホスト・コンピュータ両方から前記複数の１次記憶装置に記憶されたデータを、２次記憶装置にバックアップすることの出来る単一のバックアップ・コントローラと、
からなり、
前記第１のホスト・コンピュータから前記複数の１次記憶装置に記憶されたデータは前記第１のプラットフォームによって規定された第１のフォーマットを有し、前記第２のホスト・コンピュータから前記複数の１次記憶装置に記憶されたデータは前記第２のプラットフォームによって規定された第２のフォーマットを有し、
前記バックアップ・コントローラは、論理オブジェクトを前記複数の１次記憶装置のうちの第１の１次記憶装置から前記２次記憶装置に転送可能な接続を前記第１の１次記憶装置と前記２次記憶装置との間で確立し、前記接続を介して論理オブジェクトを前記第１の１次記憶装置から前記２次記憶装置に直接転送することを特徴とする、コンピュータ・システム。
【請求項１２】
請求項１１に記載のシステムにおいて、
前記１次記憶装置の内の少なくとも１つが、キャッシュ付きディスク・アレイであることを特徴とする、コンピュータ・システム。
【請求項１３】
請求項１１に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つに記憶されている論理オブジェクトから抽象ブロック・セットを形成する手段を含むことを特徴とする、コンピュータ・システム。
【請求項１４】
請求項１１に記載のシステムにおいて、
前記２次記憶装置が、データを並列に送受信するために複数のポートを含むことを特徴とする、コンピュータ・システム。
【請求項１５】
請求項１４に記載のシステムにおいて、
前記２次記憶装置が、それぞれ前記複数のポートの内の１つに接続する複数のデータ・ムーバーを含むことを特徴とする、コンピュータ・システム。
【請求項１６】
請求項１１に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つから前記２次記憶装置へ第１の接続を介して直接第１の論理オブジェクトを転送する手段を含むことを特徴とする、コンピュータ・システム。
【請求項１７】
請求項１６に記載のシステムにおいて、
更に、前記１次記憶装置の内の１つから前記２次記憶装置へ第２の接続を介して直接第２の論理オブジェクトを転送する手段を含むことを特徴とする、コンピュータ・システム。
【請求項１８】
請求項１１に記載のシステムにおいて、
前記２次記憶装置が、テープ・ライブラリ装置を含むことを特徴とする、コンピュータ・システム。
【請求項１９】
請求項１に記載のコンピュータシステムにおいて、
前記１次記憶装置の内の１つが、ホスト・ドメインに関係せずに前記ネットワークを通して前記２次記憶装置にアクセスすることが許されるように、前記ネットワークが前記複数の１次記憶装置と前記２次記憶装置とに接続されることを特徴とするコンピュータ・システム。
【請求項２０】
請求項１１に記載のコンピュータシステムにおいて、
前記２次記憶装置が、前記１つ以上のホスト・コンピュータに関係せずに前記１次記憶装置の内の少なくとも１つからバックアップ・データを受け取るように構成されていることを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ用のデータ・ストレージに関係し、特に装置およびコンピュータ・ストレージ・システムを操作するための装置および方法に関係する。
【背景技術】
【０００２】
事実上、コンピュータのアプリケーション（あるいはプログラム）はすべてストレージ（記憶装置）に依存する。このストレージは、コンピュータ・コードを格納するためと、コードによって操作されるデータを格納するための両方に使用される。（「データ」という用語は、アプリケーション・プログラムによって操作されるフォーマット情報、実行コード、およびデータを含むすべての情報を指す。）
ストレージ技術はいろいろな異なった方向へ発展した。従って、種々様々なストレージ・システムが利用可能である。したがって、コンピュータ・アプリケーションを作成する人が、ストレージ・システム上にデータがどう格納されるかという詳細な管理に対しても責任を負うことは、実際的ではなくなった。
【０００３】
この（そして他の）理由のために、アプリケーション・プログラムは、一般的にオペレーティング・システム（例えば、Ｕｎｉｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、ＭＳ ＤＯＳ、Ｌｉｎｕｘ、およびそれぞれの多くのバリエーション）上で作動する。しかしながら、また、オペレーティング・システムがさまざまなストレージ・システムと共に使用されてもよい。
【０００４】
物理的なストレージ装置に変更がなされるたびに、オペレーティング・システムあるいはアプリケーション・プログラムの変更がなされなければならないことは非常に非効率的だろう。その結果、データが実際にどのようにストレージ・システムに格納されているかを見るために、いろいろな抽象化されたレイヤが発展した。
【０００５】
図１は、抽象化されたレイヤを見る１つの方法を示す。最上位の１０で、アプリケーション・プログラムは、データが物理的な装置上にどのように配置されているかということに、ほとんど関知しなくてもよいようなやり方でデータが格納されていると想定してもよい。例えば、アプリケーションはストレージ・システムを、多くのディレクトリと、そのディレクトリ内のデータ・ファイルを含むものとして見なしてもよい。したがって、Ｕｎｉｘオペレーティング・システム上で使用されるように作成されたアプリケーションでは、そのアプリケーションはＵｎｉｘのディレクトリ構造（階層的なディレクトリとそのディレクトリ内に置かれたファイルを含む）に従ってファイルが格納されているものと想定するだろう。このように想定される物理的なストレージ装置の機構は、そのデータが実際のストレージ装置上にどのように格納されているかということに関知すべきことはほとんどない。アプリケーションのレベルから見たデータの論理的な見え方（ビュー）が、データが物理的にどのように格納されているかといういかなる見え方からも切り離されているという分離があるために、この見え方を「論理ビュー」と呼んでもよい。ファイル、データベース、あるいはその他の論理構成といったような論理的なコンポーネントを、論理レベルで「論理オブジェクト」と呼んでもよい。
【０００６】
アプリケーション・レベル１０は、ファイルシステム・レベル１２と結合して作動する。ファイルシステム・レベルは、ファイルをディスク上に格納する方法、そしてすべてを効率的に確実に働かせる方法に関わる。したがって、ファイルシステム・レベルは、ディレクトリ構造の格納、および物理的なストレージ・システム上でストレージを構成するデータ・ブロックにファイルを細分化する役割を担う。例えば、Ｕｎｉｘのほとんどの実装では、各ファイルは関連するＩノードを持つ。このノードは、アカウンティングと保護情報、さらにデータ・ブロックへのポインタの一式を含んでもよい。
【０００７】
コンピュータ・システムの開発の比較的初期の段階では、ディスク・ドライブがストレージのための基本装置となった。従って、コンピュータのオペレーティング・システムは、メモリがディスク・ドライブへの入力／出力（「Ｉ／Ｏ」）に依存するだろうと想定して開発されてきた。そのために、ファイル・システム１２は、ディスクドライブ上のブロックに格納されるデータを備えた、ディスク・ドライブ（あるいは他のストレージ装置）のような物理ストレージ装置に相当する１つ以上の「ボリューム」を、想定してもよい。
【０００８】
アプリケーションによって使用される利用可能なストレージに対する需要が、急激に上昇した。その結果、多くの別個の物理装置がシステムに必要とされるストレージの総量を提供するために要求されてもよい。さらに、ストレージ・システムはたびたび変更されたり再構成されたりする。
【０００９】
物理ストレージ装置システム内のいかなる変化からも、オペレーティング・システムを隔離するために、実際の物理ストレージの標準（ボリューム）ビューを、物理ストレージ・システム上に弾力的にマッピングするためのあるメカニズムがしばしば使用される。図１の論理ボリューム・マネージャ（ＬＶＭ）１４は、データ・ストレージのファイル・システム・ビューをある中間層へマッピングすることによって、この機能の達成を支援することができる。
【００１０】
図１で示されるように、最終的な実際のストレージの読み出し、書き込み（そして、もしかすると物理ストレージ装置上への追加マッピング）が、物理ストレージ・システム・レベル１６でなされる。したがって、例えば、論理ボリューム・マネージャは、物理装置上のストレージ用の固定された物理ストレージ・セグメント・サイズ（例えば、ブロック・サイズ）に対応するボリューム・サイズに、データのファイルシステム・レベル・ビューをマッピングしてもよい。その後、物理ストレージ・システム・レベルは、物理ストレージ・セグメント（例えば、後で説明されるハイパー・ボリューム）上に論理ボリューム・マネージャ・レベルのボリュームをマッピングしてもよい。
【００１１】
論理ボリューム・マネージャは、例として、ヒューレット・パッカード社によるＨＰ−ＵＸや、ＶＥＲＩＴＡＳオペレーティング・システムで使用されるために導入された。マサチューセッツ州ホプキントンのＥＭＣ社から入手可能なストレージ・システムであるＳｙｍｍｅｔｒｉｘ製品ラインは、物理装置上にハイパー・ボリュームをマッピングする能力を持つ１つのシステムである。（統合されたキャッシュ・ディスク・アレイを持つＳｙｍｍｅｔｒｉｘ製品ラインは、Ｓｙｍｍｅｔｒｉｘモデル５５ｘｘ製品マニュアルｐ−ｎ２００−８１０−５５０の１９９６年２月改訂版ｆを含むＥＭＣ社からの多数の出版物に記述されている。）
上記の例で、実際の物理ストレージの中へアプリケーション・レベルのデータをマッピングする作業は、アプリケーション・レベルからファイルシステム・レベルへ、ファイルシステム・レベルからＬＶＭレベルへ、ＬＶＭレベルから物理ストレージ・システム・レベルへ、そして物理ストレージ・システム・レベルから実際の物理ストレージ装置へという４つのレベルで生じる。多かれ少なかれマッピングはいくつかのレベルで実施されることになる。あるシステムでは、１レベルのマッピングだけが実施され、例えばアプリケーション・レベルから直ちに実際の物理ストレージ装置上になされる。多くのシステムでは、ＬＶＭレベルでのマッピング段階が省略される。同様に、多くのシステムでは、物理ストレージ・レベルでのマッピングがなされない（例えば、データはその前のレベルのフォーマットに対応する実際の装置上に直接に格納され、物理ストレージ・コンポーネント上にそれ以上のいかなるマッピングもなされない）。
【００１２】
図２Ａは、実際の物理装置上にデータを格納するために、論理ボリューム・マネージャ１４および物理ストレージ・システム１６によって実行されてもよいマッピングの例を示す。そのアプリケーションあるいはファイルシステムのストレージ・システムの図は、ボリュームＡ２０、ボリュームＢ２１、ボリュームＣ２２という３つの別個のストレージ装置として表わされる。したがって、ファイルシステム・レベル１２が識別できる範囲では、システムは３つの別個のストレージ装置２０〜２２になる。それぞれ別個のストレージ装置は「仮想ボリューム」あるいは「仮想ディスク」と呼ばれてもよい。このことは、オペレーティング・システムのストレージ装置構造の図が、その構造を実現する実際の物理ストレージ・システムと一致していなくてもよいことを示す（以後、「仮想」と呼ぶ）。しかしながら、アプリケーション・レベル１０と異なり、ファイルシステム１２の全体像は、まるで生の物理装置あるいはボリュームに対処しているかのようである。
【００１３】
ファイルシステム・レベルに関する限りでは、仮想ボリュームは、ストレージの連続的なセグメントである「パーティション」に分割されてもよい。パーティションは実際にさまざまな物理ストレージ・セグメント（例えば、ハイパー・ボリューム）を横断して格納されてもよいので、これらのパーティションはまさに「仮想の」パーティションである。
【００１４】
図２Ａでは、データが物理ストレージ装置２４〜２６上に物理的に格納される。特にこの例において、３つの物理装置２４〜２６と３つのボリューム２０〜２２があるが、物理装置への仮想ボリュームのマッピングは１対１であるというわけではない。特にこの例において、２０ａ、２０ｂ、および２０ｃで示されるように、ボリュームＡ２０の中のデータは実際には物理装置２４〜２６上に格納される。この例において、２２ａ、２２ｂで示されるように、ボリュームＢはすべて物理装置２４上に格納される。最後に、２ｌａ、２１ｂで示されるように、ボリュームＣは物理装置２４および物理装置２６上に格納される。
【００１５】
特にこの例において、ボックス２０ａ〜２０ｃ、２１ａ〜２１ｂ、および２２ａ〜２２ｂはそれぞれ、物理装置２４〜２６内でストレージの隣接するセグメントを表わす。ストレージのこれらの隣接するセグメントは同じ大きさであってもよいが、同じである必要はない。ストレージのセグメントは「ハイパー・ボリューム」と呼ばれてもよく、ファイルシステムによって用いられる仮想ボリュームを構築する時のコンポーネントとして使用されることができる物理ストレージのセグメントに対応してもよい。ハイパー・ボリュームは多くの「データ・ブロック」で構成されてもよい。データ・ブロックは物理ストレージ装置から一度に書き込み、あるいは読み出しされるストレージの１単位（例えば、５１２バイトのブロック）である。
【００１６】
メインプロセッサ上で作動するアレイ管理ソフトウェア（あるいはカスタム・ハードウェア回路のようなまた別のメカニズム）２３は、ホスト・コンピュータ（示されていない）（論理ボリューム構造２０〜２２を想定してなされた）からのリクエストを、データが物理装置２４〜２６上に実際に格納される方法に相当するリクエストに翻訳する。実際上、アレイ管理ソフトウェア２３は、物理装置２４〜２６を含む一体のストレージ・システムの一部として導入されてもよいし、ホスト・コンピュータ上に導入されてもよいし、あるいは他のある方法でなされてもよい。
【００１７】
図２Ａでは、アレイ管理ソフトウェア２３が、物理装置２４〜２６上に格納されることができるセグメントに、ファイルシステムの仮想ボリューム２０〜２２をマッピングすることにより、論理ボリューム・マネージャ１４（現在の場合）および物理ストレージ・レベル１６の両方の機能を実行する。アレイ管理ソフトウェア２３は、さらに、ハイパー・ボリューム２０Ａ〜２０Ｃ、２１Ａ〜２１Ｂおよび２２Ａ〜２２Ｂをどこに格納すべきかを決定することにより、物理ストレージ・システム・レベル１６の機能も実行する。
【００１８】
図２Ａの例で示される物理ストレージ装置はディスクドライブである。ディスクドライブは、１枚以上の記録媒体ディスク（磁気記録媒体あるいは光記録媒体のような）を含んでもよい。情報は、記憶させる目的のために、このストレージ媒体から書き込まれ、そして読み出されることができる。記録媒体は、回転するディスクの形を一般的にしている。ディスクは一般的に、情報が記録され、そこから情報が読み出される多くのトラックを含む。各トラックは１つ以上の「データ・ブロック」を含んでもよい。データ・ブロックは１つのまとまりとして読み出されることができるデータの１単位である。データ・ブロックは、データのブロックか、３２ｋトラック上の８ｋセグメントか、あるいはまた別の構造に従って、５１２であってもよい。これらの例では、ブロックのサイズは固定されている。他のケースでは、そのブロックはＣＫＤレコードのような可変サイズであってもよい。複数のディスクを含むディスクドライブでは、各ディスクの対応するトラックが互いに重なるように、ディスクが規格どおりに積み重ねられる。この場合、その情報がディスクドライブ内に格納されるたった１つのトラックの明細が、ディスク上の個々のトラックの明細だけでなく、複数のディスクのどのディスクに情報が格納されているかということも含む。
【００１９】
個々のデータ・ブロックを認定するために、アドレスは、ディスク（いくつかの「プラッタ」で構成されていてもよい）の明細、ディスク（あるいは「シリンダ」）内のトラックの明細、ヘッドの明細（あるいはプラッタのどれがその「ディスク」からなっているか）、およびトラック内の特定のデータ・ブロックの明細を含んでもよい。トラック内のデータ・ブロックの位置の明細は、例えばトラック上に現われる３番目のデータ・ブロックである、オフセットとしてアドレスが指定されてもよい。したがって、ｄｄｃｃｃｃｈ：オフセットというアドレスは、ディスクｄｄ、シリンダｃｃｃｃ、ヘッドｈ、および明示されたオフセットといったように、ブロックを明示してもよい。しかしながら、本発明で用いられる物理ストレージ装置は、何等かの他のジオメトリで作成されてもよいし、何等かの他の方法でアドレス指定されてもよいし、異なるタイプのストレージ・メカニズムでさえ構成してもよい。
【００２０】
図２Ｂは、抽象化の最上位レベル（アプリケーション・レベル）と実際の物理ストレージ・レベル間のマッピングの一例を示す。アプリケーション・レベルのファイル２００は可視的な情報を含む。この情報は、従来のファイルの形をしており、一連のビットを含む。
【００２１】
アプリケーション・レベルのファイルが物理ストレージ上にマッピングされる場合、アプリケーション・レベルのファイルは、例えばセグメント２０３のような、個々のビットのセグメントに変換されてもよい。したがって、アプリケーション・レベルのファイル２０３のセグメントは実際の物理ストレージ装置２０４〜２０６上にマッピングされる（例えば図１を参照しながら上で記述された一般的なマッピング構造に従って）。この例において、アプリケーション・レベルのファイル２００中の２０３のビットの第１セグメントは、物理ストレージ装置２０４の一部２０８で、物理ストレージ装置２０４上にマッピングされる。図２Ｂで示されるように、アプリケーション・レベルのファイル２００中のビットからなる個々のセグメントは、複数の実際の物理ストレージ装置中のいかなる場所にマッピングされてもよい。ビットからなるセグメントの細分度（例えば、セグメント２０３）は、さまざまな異なるレベルのうちの１つに対応しているかもしれない。例えば、セグメントの細分度は５１２バイトのデータ・ブロックでもよい。別の実施例では、細分度が、物理ストレージ装置２０４〜２０６の１つのトラックに格納されるデータ量に対応してもよい（物理ストレージ装置がディスクドライブである場合）。
【００２２】
図２Ｃは、６つのデータ・ブロックあるいは論理ブロック・エレメント２７ａ〜２７ｆを含む論理オブジェクト２７の例を示す。論理オブジェクト自体は、いかなるデータ構造やデータの集まりでもよい。例えば、論理オブジェクトは、データベース・テーブル、ファイルシステムのファイルの一部、あるいは完全なファイルシステムのファイル、あるいはその他の何等かの識別可能な論理オブジェクトであってよい。データ・ブロック２７ａ〜２７ｆの各々は、固定サイズのデータ・ブロック、あるいはＣＫＤレコードのような可変サイズのデータ・ブロックでもよい。
【００２３】
図２Ｃの例で、論理オブジェクトが物理ストレージ装置２８上に格納される。この例において、ストレージ装置は多くの列を含み、その各々がディスクのトラックを表わしている。
【００２４】
物理ストレージ装置の各行は、適用可能な列／トラック内の物理的なデータか、あるいはブロック・エレメントを表わす。例えば、行２８ａの列２８ｂは、論理ブロック・エレメント２７ｂに対応するデータ・ブロックを格納している。トラック２８ｂは、論理ブロック・エレメント２７ａおよび２７ｂの内容を持つ物理的なデータ・ブロックを格納しているだろう。図２Ｃから見ることができるように、論理ブロック・エレメントは物理装置上のいかなる順からでも格納されることができる。
【００２５】
物理ストレージ装置２８が連続的なアレイとして示されているが、これはそうである必要はない。例えば、列２８ｂのようなトラックの各々は、異なるディスクドライブ上に格納されてもよいし、あるいは異なるハイパー・ボリュームの一部であってもよい。
【００２６】
図２Ａのディスク装置２４〜２６のような物理ディスク装置のアレイを含むシステムでは、各装置が、特定の物理装置上に格納されたデータのエラー検知および（または）データ修正を一般的に実行する。従って、それぞれの個々の物理ディスク装置は、提供すべき有効なデータをいつ持っていないかを検知し、可能ならばエラー修正を行う。しかしながら、物理装置上に格納されたデータに対して、エラー修正が許可される場合でさえ、装置の突発的な故障は、データの回復不能な損失という結果に終わるだろう。
【００２７】
従って、余分のストレージを含むストレージ・システムが設計された。回復を可能にするやり方でディスク上にデータを格納するさまざまな方法が発達した。多くのそのような方法が、ミネソタのＲＡＩＤ諮問委員会のセントピーターによって出版されたディスク・アレイ技術の原典であるＲＡＩＤブック（１９９６年２月の第５版）に記述されている。これらのシステムは「ＲＡＩＤ」ストレージ・システムを含む。ＲＡＩＤはＲｅｄｕｎｄａｎｔ Ａｒｒａｙ ｏｆ Ｉｎｄｅｐｅｎｄｅｎｔ Ｄｉｓｋｓの略語である。
【００２８】
図３Ａは、ＲＡＩＤシステムに余剰情報を格納するための１つの技術を示す。この技術の下では、複数の物理装置３１〜３３がデータの同じコピーを含む。したがって、データＭｌは物理装置３ｌの一部３１ａ、物理装置３２の一部３２ａ、および物理装置３３の一部３３ａ上に「ミラー」（正確に模倣）されることができる。この場合、複写されたデータ３１ａ、３２ａおよび３３ａを格納する、物理的なディスクの集まった部分は、「ミラー・グループ」と呼ばれてもよい。データＭ１がミラーされる場所の数は、一般的にデータの回復不可能な損失に対して防衛したいレベルに依存して選択される。
【００２９】
ミラー・グループでは、そのコピーが「リンク」されている。すなわち、１つのミラーへのいかなる更新もグループ内の他のそれぞれのミラーに更新をもたらす。
【００３０】
図３Ａは、例えば単一のストレージ・システム装置内に隣接して置かれているように見える３つの物理装置３１〜３３を示す。しかしながら、非常に敏感なデータについては、ミラーされたデータを保持する物理装置の１つ以上が遠隔の設備に置かれてもよい。
【００３１】
「ＲＡＩＤ１」は、データをミラーすることによってデータ余剰を行う一例である。ＲＡＩＤｌアーキテクチャでは、例えばストレージ・システムの性能を改善するために、いかにデータをアクセスしたり更新すべきかを決定するために、多くの異なるメカニズムが使用されてもよい。どんな場合も、ＲＡＩＤ１アーキテクチャは、失われたデータを回復する能力を確かに持っている。残念なことに、ＲＡＩＤｌアーキテクチャは、ミラー・グループに含まれる「ミラー」の数だけ、物理ストレージ装置のコストを増加させる。
【００３２】
図３Ｂは、加えられるストレージが少なくて済む解決法を示す。図３Ｂでは、データがストレージ箇所３４ａ〜３４ｄに格納される。特にこの例では、物理装置３３が３５ａ、３５ｂにパリティ情報Ｐ１を含む。パリティ情報は、データの対応するビットの単純な排他的論理和（ＸＯＲ）によって生成される。したがって、パリティ情報Ｐ１は、データＤ１およびデータＤ２の対応するビットを排他的に論理和することにより生成されるだろう。
【００３３】
物理装置上にそのパリティ情報を割り当てるための、さまざまなメカニズムが知られている。図３Ｂの中で示される例では、パリティ情報のすべてが単一の物理装置３３上に格納されている。他のケースでは、パリティ情報が物理装置を越えて割り当てられてもよい。
【００３４】
図４は、与えられたディスク・アレイ内で、データのすべてが同じ余剰規則に従う必要はないという概念を示す。図４で、物理装置４０〜４２上のストレージ・セグメントの第１グループが、ミラー・グループ４４を形成している。ミラー・グループ４４では、１つの論理ボリューム（ＨＶ−Ａ）の全内容が、異なる３つの物理装置４０〜４２上にミラーされている。
【００３５】
図４では、４６に示されるように、１つの仮想ボリュームがいかなる余剰情報も持たずに、第４物理装置４３上に格納されている。
最終的に、４つの物理装置４０〜４３のすべての上にあるデータ・セグメントの最後のグループ４５が、パリティ余剰スキームを実行している。特にこの例において、４７ａと４７ｂで示されるように、パリティ情報は、異なる２つの物理装置４２〜４３上のメモリ・セグメントに格納されている。
【００３６】
図４のストレージ・システムは、破局的な故障からの回復をも可能にする、遠隔の設備に置かれたデータのミラーの使用を含み、エラーからの回復を可能にする余剰情報を持つ。
【００３７】
図５は、本発明のある側面に従って使用され、あるいは適応されてもよい、さらなるバックアップ・システムの１つを示す。図５では、コンピュータまたはクライアント５０がストレージ・システム５２を使用して、その操作を行う。クライアント５０は、サン・マイクロシステムズから利用可能であるＳｏｌａｒｉｓオペレーティング・システム（Ｕｎｉｘの１つのバージョン）を実行するネットワーク・クライアント、ＨＰ−ＵＸを実行するＨＰクライアント（Ｕｎｉｘオペレーティング・システムのＨｅｗｌｅｔｔ−Ｐａｃｋａｒｄバージョンを実行するＨｅｗｌｅｔｔ−Ｐａｃｋａｒｄクライアント）、あるいはＡＩＸオペレーティング・システム（ＵｎｉｘのＩＢＭバージョン）やそれに関連するオペレーティング・システムを備えた他のシステムを実行するＩＢＭクライアントといったような、従来のいかなるコンピューティング・システムであってもよい。ストレージ・システム５２は、上で記述されたＳｙｍｍｅｔｒｉｘストレージ・システムを含む従来のいかなるストレージ・システムでもよい。クライアント５０は、ネットワーク５６を通して、他の多くの装置と接続されてもよい。
【００３８】
バックアップ・ストレージ・システム５４もまた、ネットワーク５６に取り付けられる。バックアップ・ストレージ・システム５４は、データをストレージにしまい、そのストレージからデータを回復させるためのシステムと共に、バックアップ・ストレージ装置（ディスクドライブ、テープ・ストレージ装置、あるいは他のいかなるストレージ・メカニズムであってもよい）を含む。
【００３９】
バックアップを実行するために、クライアント５０は、ネットワーク５６を介してストレージ・システム５２からのデータを、バックアップストレージ・システム５４にコピーする。この処理は図１を参照して、非常に詳しく説明されることができる。ストレージ・システム５２は図１の実際の物理ストレージ装置１６に相当するだろう。クライアント５０が、ネットワーク５６を介してバックアップ・データをバックアップ・ストレージ・システム５４に書き込むには、クライアント５０はまずバックアップ・データをファイル・データに変換する。つまり、物理ストレージ・システム・レベル１６からデータを得て、論理ボリューム・マネージャ・レベル１４、ファイルシステム・レベル１２、およびアプリケーション・レベル１０を通して、データをアプリケーション・レベルのフォーマット（例えば、ファイル）に変換する。したがって、実際のデータ・ファイルは、ネットワーク５６を介してバックアップ・ストレージ装置５４に伝えられてもよい。バックアップ・ストレージ装置５４がデータ・ファイルを受け取ると、バックアップ・ストレージ・システム５４はアプリケーション・レベル１０のデータ・ファイルを取得することになり、それがバックアップ・ストレージ・システムにとって適切なファイルシステム・レベル１２のフォーマットに変換され、その後、論理ボリューム・マネージャ・レベル１４を通して変換され、物理ストレージ装置１６に格納される。
【００４０】
データをバックアップするこの方式は、「論理−論理」バックアップと呼ばれてもよい。すなわち、論理データがバックアップ・ストレージ装置５４上にバックアップされる。バックアップされるデータは、物理ストレージ・システム・レベル１６でストレージ・システム５２上に物理的に格納される方法から独立して、またクライアント５０上のファイルシステム・レベルのメカニズムからも独立して、またバックアップ・ストレージ装置５４上にデータがどう格納されるかということからも独立して、提供される。
【００４１】
ＥＤＭユーザ・ガイド（ネットワーク）「基本ＥＤＭマニュアル（Ｂａｓｉｃ ＥＤＭ Ｍａｎｕａｌ）」を含む、ＥＭＣから利用可能な多数の出版物に記述されているように、ＥＤＭ（ＥＭＣデータ・マネージャ）製品ラインは、ネットワーク上で論理−論理バックアップを行う能力を持つ。
【００４２】
図６は、本発明に従ってさらに使用されてもよい、データをバックアップのための代案となる構造を表す１つの実施例を示す。図６の実施例で、直接接続６０はストレージ・システム５２とバックアップ・ストレージ・システム５４との間でなされる。この実施例でのバックアップ・ストレージ・システムは、一般的にＥＭＣデータ・マネージャに記述されるようなシステムでよく、その本はマサチューセッツ州ホプキントンのＥＭＣ社から利用可能である１９９７年１２月改訂版ＣのＰ／Ｎ２００−１１３−５９１のＳｙｍｍｅｔｒｉｘ接続ユーザ・ガイド（Ｓｙｍｍｅｔｒｉｘ Ｃｏｎｎｅｃｔ Ｕｓｅｒ Ｇｕｉｄｅ）である。直接接続６０はＳＣＳＩケーブル、あるいは１本以上のファイバ・チャンネル・ケーブルのような高速データ・チャンネルでよい。このシステムでは、ユーザは、ネットワーク５６を通してデータをバックアップしてもよいし、直接接続６０を通して行ってもよい。
【００４３】
本発明の方法および装置が、上記のシステムや概念を参照しながら、そして関連する技術を説明しながら記述されているが、これは制限するものではない。本発明はより広いアプリケーションを持つ。本発明のある側面は、いかなるストレージ・システムに適用されてもよい。従って、本発明は添付される特許請求の範囲によってのみ制限される。
【００４４】
復元処理およびバックアップ処理が論理レベルでなされようが、物理レベルでなされようが、従来技術でのバックアップはバックアップ用の完全なファイル（あるいはある場合には、全パーティションといったようなことすらある）をコピーすることを要求する。図６のシステム上のデータをバックアップしたり復元する方法は、係属中で、一般に所有された米国特許出願番号０９／０５２，５７９の発明者としてＪｏｈｎ ＤｅｓｈａｙｅｓおよびＭａｄｈａｖ Ｍｕｔａｌｉｋの名が付けられ１９９８年３月３１日にファイルされた題名「コンピュータ・ストレージ・システムにおける物理バックアップからの論理復元（Ｌｏｇｉｃａｌ Ｒｅｓｔｏｒｅ Ｆｒｏｍ Ｐｈｙｓｉｃａｌ Ｂａｃｋｕｐ Ｉｎ Ａ Ｃｏｍｐｕｔｅｒ Ｓｔｏｒａｇｅ Ｓｙｓｔｅｍ）」に記述されており、それは参考としてその全体がここに組み入れられる。
【００４５】
図７は、図６のストレージ・システム５２として使用されてもよいストレージ・システム７０を示す。クライアント５０はチャンネルまたはバス７１を使用して、ストレージ装置に接続されてもよい。クライアント５０との通信のためのチャンネルは、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）あるいはエンタープライズ・システム・コネクション・アーキテクチャ（ＥＳＣＯＮ）のような適切な接続であればいかなるものでもよい。図７のストレージ・システム７０の中には１つの通信チャンネル７１だけが示されているが、他のチャンネルが含まれてもよい。（本発明の方法および装置は、図６のストレージ・システム、および図７の物理ストレージ・システム（そしてそれに関連する機能や方法）に関して記述されているけれども、このことに制限されるものではない。本発明はより広いアプリケーションを持つ。本発明のある側面はいかなるストレージ・システムに適用されてもよい。）
ストレージ・システム７０内に、ホスト・アダプタ７２がある。特にこの実施例では、ホスト・アダプタ７２は、仮想ディスク構造（例えば、ファイルシステムや論理ボリューム・マネージャのレベルからの）に基づくホスト・コンピュータ（例えば、クライアント５２あるいはバックアップ・ストレージ・システム５４）からの読み出し書き込みリクエストを管理し、ストレージ・システム７０の実際の物理ストレージ装置７６ａ〜７６ｄ上にどのようにデータを格納させるかということに対応する１つ以上のリクエストに翻訳する役割を担っている。したがって、この実施例では、ホスト・アダプタ７２は、図２のアレイ管理ソフトウェア２３の機能のうちの少なくともいくつかを実行している。ホスト・アダプタ７２は、メインプロセッサやユーザ定義ハードウェアの使用を含め、たくさんある方法のうちのいずれのやり方で実装されてもよい。さらに、多数のホスト・アダプタが、ストレージ・システム７０に対して追加のＩ／Ｏチャンネルを持たせるために含まれてもよい。
【００４６】
ホスト・アダプタ７２は、バス７３を使用して、ストレージ・システム７０の他のコンポーネントと交信する。バス７３はＳＣＳＩ、ＥＳＣＯＮ、およびその他のバス・プロトコルの使用を含む適切ないかなる通信エレメントでもよい。
【００４７】
物理ストレージ装置７６ａ〜７６ｄへのアクセスは、ディスク・アダプタ７５ａ〜７５ｄの使用を通して制御される。さらにディスク・アダプタ７５ａ〜７５ｄは、メインプロセッサーあるいはユーザ定義ハードウェアを用いて、実装されることができる。図７に示された実施例では、ディスク・アダプタがそれぞれの物理ストレージ装置に対して用意されている。もちろんディスク・アダプタには、１つ以上のストレージ装置を取り付けることができる。さらに、ディスク・アダプタには、別のディスク・アダプタの物理ストレージ装置への第２の接続が含まれていてもよい。このことは、第２のディスク・アダプタへその機能を移すことにより、１つのディスク・アダプタの故障からの復帰を可能にする。
【００４８】
図７の実施例では、ディスク・アダプタ７５ａ〜７５ｄを通して物理ストレージ装置７６ａ〜７６ｄへ読み取り書き込む作業が、キャッシュ７４を使用することで促進される。キャッシュ７４は、ディスクドライブより大きな速度を持つランダム・アクセス・メモリでもよい。データを読み取る場合、データがキャッシュに一時的に格納されているなら、読み取り要求は、キャッシュ７４からデータをとることによって、より迅速に達成させることができる。同様に、データを書き込む場合、書き込まれるべきデータがキャッシュに格納されることが可能である。データが、キャッシュから適切な物理ストレージ装置に書き込まれている間も、システムの他のコンポーネントは続行することができる。
【００４９】
キャッシュを実装し管理するために、さまざまなメカニズムのうちのどれが使用されてもよい。そのようなメカニズムの例は、１９９６年７月１６日に発効された米国特許番号５，５３７，５６８の題名「キャッシュ・インデックスを維持し、連続データ・アクセスを制御するキャッシュ・マネージャをダイナミックに制御するためのシステム（Ｓｙｓｔｅｍ ｆｏｒ ｄｙｎａｍｉｃａｌｌｙ ｃｏｎｔｒｏｌｌｉｎｇ ｃａｃｈｅ ｍａｎａｇｅｒ ｍａｉｎｔａｉｎｉｎｇ ｃａｃｈｅ ｉｎｄｅｘ ａｎｄ ｃｏｎｔｒｏｌｌｉｎｇ ｓｅｑｕｅｎｔｉａｌ ｄａｔａ ａｃｃｅｓｓ）」という米国特許の中に含まれている。同様に、書き込みは、さまざまなメカニズムや方法のうちのどれを使用し、キャッシュを通して遂行されてもよい。キャッシュから書き込むための１つのメカニズムは、キャッシュに書き込まれるべきデータを格納し、「書き込み保留」ビットにマークを付けておくことである。書き込み保留ビットに出くわすと、適切なデータがディスクに書き込まれることができる。この技術は、１９９４年８月２３日に発効された米国特許番号５，３４１、４９３の題名「電源故障中の書き込み保護を備えたディスク・ストレージ・システム（Ｄｉｓｋ ｓｔｏｒａｇｅ ｓｙｓｔｅｍ ｗｉｔｈ ｗｒｉｔｅ ｐｒｅｓｅｒｖａｔｉｏｎ ｄｕｒｉｎｇ ｐｏｗｅｒ ｆａｉｌｕｒｅ）」に概ね記述されている。
【００５０】
キャッシュは１つ以上の領域に分割されてもよい。例えば、キャッシュは、物理ストレージ装置７６ａ〜７６ｄから読み取られ書き込まれるデータを格納するために、領域７４ａを含んでもよい。キャッシュはさらに「メールボックス」領域７４ｂを含んでもよい。メールボックス領域７４ｂは、ディスク・アダプタ７５ａ〜７５ｄ間とホスト・アダプタ７２との交信を促進するために使用されてもよい。例えば、各ディスク・アダプタが、メールボックス７４ｂ内にそれ自身の領域を持っていてもよい。ディスク・アダプタ７５ａ〜７５ｄの各々は、状態および他の情報を交信するために、適切なメールボックス領域７４ｂからの情報を供給するか読み取ることができる。
【００５１】
さらにリモート・アダプタ７８が、ストレージ・システム７０のバス７３に取り付けられてもよい。リモート・アダプタは、遠隔のデータ設備（ＲＤＦ）と交信するために、例えばミラー余剰グループを維持管理するための別のストレージ装置との接続のために使用されてもよい。ＲＤＦリンクの１つの方式および実装の方法は、ＥＭＣ社から利用可能である１９９５年６月改訂版ＢのＰ／Ｎ２００−９９９−５５４のＳＹＭＭＥＴＲＩＸ遠隔データ設備製品マニュアル（ＳＹＭＭＥＴＲＩＸ Ｒｅｍｏｔｅ Ｄａｔａ Ｆａｃｉｌｉｔｙ Ｐｒｏｄｕｃｔ Ｍａｎｕａｌ）を含む、さまざまな出版物に記述されている。さらにＲＤＦ実施例は、米国特許番号５，５４４，３４７（Ｙａｎａｉ）に記述されており、参考としてその全体がここに組み入れられる。しかしながら本発明が、ＲＤＦの使用あるいはＳＹＭＭＥＴＲＩＸディスク・アレイを使用するシステムに制限されるのではなく、多数の他のタイプのストレージ・システムのいかなるものでも使用されることができることが認識されるべきである。
【００５２】
サービス・プロセッサ７７は、ストレージ・システム７０のバス７３に連結されてもよい。サービス・プロセッサ７７は、サービス・プロセッサ７７を使用するオペレータが、ストレージ・システム７０のコンポーネントのコンフィギュレーションを行い、設備の診断と維持管理を行ったり開始できるように、ディスプレイ、キーボード、およびその他のＩ／Ｏ装置を含んでもよい。
【発明の開示】
【課題を解決するための手段】
【００５３】
本発明の１つの実施例に従って、あるコンピュータ・システムが開示される。この実施例に従って、そのコンピュータ・システムは、少なくとも１つのホスト・コンピュータを持つホスト・ドメインを含む。コンピュータ・システムはさらに、そのホスト・ドメインに連結されたストレージ・ドメインを含むが、それは複数の第１次ストレージ装置、第２次ストレージ装置、および第１次ストレージ・ノードと第２次ストレージ・ノードを連結するスイッチド・ネットワークからなる。
【００５４】
本発明の別の実施例に従って、ホスト・コンピュータの各々が異なるプラットフォームを構成する複数のホスト・コンピュータを含むコンピュータ・システムが開示される。さらにそのコンピュータ・システムは、複数の第１次ストレージ装置を含み、その各々がホスト・コンピュータの少なくとも１つと結び付く。システムはさらに複数の第１次ストレージ装置と連結された第２次ストレージ装置を含み、その第２次ストレージ装置はホスト・コンピュータのそれぞれからバックアップ・データを受け取るように構成される。
【００５５】
本発明の別の実施例に従って、第１次ストレージ・ノードから第２次ストレージ・ノードまでデータを転送する方法が開示される。この実施例に従って、第２次ストレージ・エレメントにデータを転送するために、第１次ストレージ・エレメントの１つから第２次ストレージ・エレメントへの接続が自動的に確立される。データは、第１接続を通して、第１次ストレージ・エレメントから第２次ストレージ・エレメントに直接転送される。
【００５６】
本発明の別の実施例に従って、コンピュータ・システムのストレージ・エレメントからデータのコピーを送る方法が開示される。この実施例に従って、データは、まず抽象ブロック・セットに定式化される。抽象ブロック・セットが伝達される。この実施例および他の実施例では、定式化するステップと伝達するステップが、順次あるいは同時に実行されてもよい。
【００５７】
本発明の別の実施例に従って、論理オブジェクトを格納する方法が開示される。この実施例に従って、論理オブジェクトは抽象ブロック・セットへ定式化され格納される。
【００５８】
本発明の別の実施例に従って、ストレージ装置が開示される。この実施例に従って、ストレージ装置は、メモリ、およびメモリから抽象ブロック・セットに伝達するための手段を含む。
【００５９】
本発明の別の実施例に従って、第２次ストレージ・システムが開示される。この実施例に従って、第２次ストレージ・システムは、第２次ストレージ媒体、および第２次ストレージ媒体上に抽象ブロック・セットを格納するための手段を含む。
【００６０】
本発明の別の実施例に従って、論理オブジェクトを格納する、コンピュータで読取り可能な媒体が開示される。この実施例に従って、その媒体は、その各々が論理オブジェクトからのデータの一部を読取り可能な媒体上に格納している複数のデータ・ブロックと、論理オブジェクト中のデータ・ブロックの順番を識別するために読取り可能な媒体上に格納されるメタデータ・セグメントとを含む。
【００６１】
本発明の別の実施例に従って、論理オブジェクト用のバックアップを生成する方法が開示される。この実施例に従って、以前以来、変化したことがある論理オブジェクトのデータ・ブロックが識別される。識別されたデータ・ブロックは、差分の抽象ブロック・セットとして格納される。
【００６２】
本発明の別の実施例に従って、ストレージ装置が開示される。この実施例に従って、ストレージ装置は、メモリと、以前以来、変化のあったデータ・ブロックを識別するための手段と、差分の抽象ブロック・セットをメモリから伝達するための手段を含む。
【００６３】
本発明の別の実施例に従って、更新された抽象ブロック・セットを作成する方法が開示される。この実施例に従って、全体の抽象ブロック・セットが提供される。差分の抽象ブロック・セットがさらに提供される。全体の抽象ブロック・セットと、差分の抽象ブロック・セットが、更新された抽象ブロック・セットを作成するために結合される。
【００６４】
本発明の別の実施例に従って、論理オブジェクトの更新されたバックアップを作成する方法が開示される。この実施例に従って、論理オブジェクトの第１バックアップが提供される。さらに論理オブジェクトの差分のバックアップが提供されるが、その差分のバックアップは第１バックアップが作成されて以来、変化のあった複数のバックアップ・データ・ブロックを含む。そのバックアップ・データ・ブロックが第１バックアップに加えられ、そして更新されたバックアップの中のデータ・ブロックの順番を識別するメタデータが、加えられる。
【００６５】
本発明の別の実施例に従って、第２次ストレージ装置が開示される。この実施例に従って、ストレージ装置は第２次ストレージ媒体、および全体の抽象ブロック・セットを作成するために第１バックアップと差分の抽象ブロック・セットを結合するようにプログラムされたコントローラを含む。
【００６６】
本発明の別の実施例に従って、論理オブジェクトをコピーする方法が開示される。この実施例に従って、コンピュータ・ストレージ装置のストレージ・セグメント一式から、論理オブジェクトの少なくとも１つの物理ブロックからのデータを含むセグメントが識別される。識別されたストレージ・セグメントがコピーされる。この実施例に従って、コピーされたストレージ・セグメントの少なくとも１つは、複数の物理データ・ブロックを含む。したがって、ストレージ・セグメントのサイズは、個々の物理データ・ブロックのサイズと必ずしも同じではない。
【００６７】
本発明の別の実施例に従って、論理オブジェクトのバックアップを作成する方法が開示される。この実施例に従って、バックアップ・セグメント一式が受け取られるが、その各々のバックアップ・セグメントは、論理オブジェクトの少なくとも１つの物理ブロックを含む。受け取られたストレージ・エレメントが格納されるが、ストレージ・セグメントの少なくとも１つは、複数の物理データ・ブロックを含む。
【００６８】
本発明の別の実施例に従って、論理オブジェクトのバックアップ・コピーを格納するコンピュータで読取り可能な媒体が開示される。この実施例に従って、複数のデータ・セグメントが読取り可能な媒体上に格納されるが、それぞれのデータ・セグメントは論理オブジェクトの少なくとも１つのデータ・ブロックを含み、データ・セグメントの少なくとも１つは、複数の論理データ・ブロックを含む。さらにこの実施例は、データ・セグメント中の論理オブジェクトのデータ・ブロックを識別するために、読取り可能な媒体上に格納されているメタデータ・セグメントを含む。この実施例では、データ・セグメントは、例えば複数の固定サイズのブロックを含むトラックであってもよい。
【００６９】
本発明の別の実施例に従って、コンピュータ・ストレージ・システムが開示される。この実施例に従って、システムは、それぞれが少なくとも１つのデータ・ブロックを格納する複数の物理ストレージ・セグメント（１つの実施例では、それは１つのトラックである）を含むコンピュータ・ストレージ装置を含む。さらにシステムは、ストレージ・エレメントの一式から、論理オブジェクトの少なくとも１つの物理ブロックを含むストレージ・セグメントを識別するための手段と、識別されたストレージ・セグメントを伝達するための手段とを含む。
【００７０】
本発明の別の実施例に従って、時間の固定されたある一点で論理オブジェクトをバックアップする方法が開示される。この実施例によって、論理オブジェクトの論理データ・ブロックを含むストレージ・セグメントの一式が識別される。これらのストレージ・セグメントは、論理オブジェクトに現われるストレージ・セグメントあるいは論理データ・ブロックの順序がバラバラのまま、バックアップ・ストレージ装置にコピーされる。コピーをしているステップの間に、論理オブジェクトの物理ブロックを含んでいるストレージ・セグメントが修正されようとしているなら、そのストレージ・セグメントが直ちにバックアップされる。この実施例および他の実施例で、ストレージ・セグメントはデータ・ブロックの大きさに一致していてもよい（しかし必要はない）。
【００７１】
本発明の別の実施例に従って、コンピュータ・ストレージ・システムが開示される。この実施例に従って、システムは、複数のストレージ・セグメントを持つコンピュータ・ストレージ装置を含む。さらにシステムは、論理オブジェクトあるいは論理データ・ブロックを含むストレージ・セグメントの一式を識別する手段と、論理データ・ブロックおよび論理オブジェクトの順序と無関係に、その識別されたストレージ・セグメントをコピーする手段と、ストレージ・セグメントの物理ブロックが修正されようとしている場合は、直ちにバックアップ・ストレージ装置にストレージ・セグメントをコピーする手段とを含む。
【００７２】
本発明の別の実施例に従って、第１次ストレージ装置に論理オブジェクトをコピーする方法が開示される。この実施例に従って、論理オブジェクトのコピーが提供される。第１次ストレージ装置中のメモリの物理ブロックが、論理オブジェクトを格納するために割り当てられる。第１次ストレージ装置の物理ブロックへ論理オブジェクトをコピーするためのデータ・ブロックのマップが作成される。データ・ブロックはマップに基づいて、物理ブロックにコピーされる。
【００７３】
本発明の別の実施例に従って、第１次ストレージ装置に論理オブジェクトをコピーする方法が開示される。この実施例に従って、論理オブジェクトの抽象ブロック・セット・コピーが提供される。メモリの物理ブロックが、論理オブジェクトを格納するために第１次ストレージ装置の中に割り当てられる。論理オブジェクトをコピーするためのデータ・ブロックが、第１次ストレージ装置の物理ブロックにマッピングされ、そしてそのデータ・ブロックがマッピングに基づいて物理ブロックにコピーされる。
【００７４】
本発明の別の実施例に従って、コンピュータ・ストレージ装置が開示される。この実施例に従って、装置は複数の物理データ・ブロックを含むメモリを含む。さらに装置は、一式の物理データ・ブロックに向けてなされるデータ・ブロックのマッピングに基づいて、抽象ブロック・セットのデータ・ブロックを物理データ・ブロックへ格納するための手段を含む。
【００７５】
本発明の別の実施例に従って、論理オブジェクトをコピーする方法が開示される。この実施例に従って、論理データ・ブロックを含むストレージ・セグメントの一式が識別される。ストレージ・セグメントは論理データ・ブロックに一致していてもよいし、あるいは異なるサイズでもよい。識別されたストレージ・セグメントは、論理オブジェクト中の論理データ・ブロックの順序とは無関係に、第２次ストレージ装置にコピーされる。
【００７６】
本発明の別の実施例に従って、論理オブジェクトをコピーする方法が開示される。この実施例によって、論理オブジェクトの論理データ・ブロックを含むストレージ・セグメントの一式が識別される。識別されたストレージ・セグメントは、並行して第２コンピュータ・ストレージ装置にコピーされる。メタデータは、論理オブジェクト中の識別されたストレージ・セグメントに格納されたデータの順序を識別するために提供される。
【００７７】
本発明の別の実施例に従って、複数の論理ブロックを含む論理オブジェクトをバックアップする方法が開示される。この実施例に従って、第１と第２のバックアップ媒体が提供される。１つの実施例では、各バックアップ媒体はデジタル・ストレージ・テープである。論理ブロックが、並行して第１と第２のバックアップ媒体に書き込まれる。
【００７８】
本発明の別の実施例に従って、第２次ストレージ装置が開示される。この実施例に従って、第２次ストレージ装置は、複数のストレージ・コンポーネントと、並行してそのストレージ・コンポーネントに抽象ブロック・セットの部分を書き込むための手段とを含む。
【００７９】
本発明の別の実施例に従って、論理オブジェクトを復元する方法が開示される。この実施例に従って、論理オブジェクトのコピーの第１と第２の部分が提供される。第１の部分に格納されたデータ・ブロック、および第２の部分に格納されたデータ・ブロックが、並行して読み取られる。論理オブジェクトは読み取られたデータ・ブロックから復元される。
【００８０】
本発明の別の実施例に従って、第２次ストレージ装置が開示される。この実施例に従って、第２次ストレージ装置は、複数のストレージ・コンポーネントから並行してデータを読み取るための手段と、読み取られたデータを抽象ブロック・セットとして別の装置に提供するための手段を含む。
【００８１】
上記の開示された発明および実施例の各々は、有益であり、別々に独立して適用されてもよいし、一緒に適用されてもよい。本発明の１つの側面の説明は、本発明の他の側面について制限するものではない。
【発明を実施するための最良の形態】
【００８２】
図５および図６に示されたアーキテクチャは、ストレージのためのネットワーク・モデルに焦点を合わせたもの、あるいは「ネットワーク中心の」システムとして眺められてもよい。そのようなシステムでは、データ・トランスファの焦点となるのは、ネットワークを介しての論理データの移動である。さらに、ストレージ・システム５２およびバックアップ・ストレージ・システム５４が、一般的に、単一のクライアントあるいはホスト５０のアーキテクチャと結び付けられる。
【００８３】
その代案となるモデルは、クライアントあるいはホスト・ドメインと、ストレージ・ドメインの分離に焦点を合わせたものである。
【００８４】
図８は、ストレージ・ドメインからホスト・ドメインを分離するシステムの一例を示す。図８では、多くのホスト・コンピュータ８０が、エンタープライズ・ホスト・ドメイン８０ａに含まれる。ホスト・コンピュータは、コンピュータ、オペレーティング・システム、データ管理アプリケーションからなるいかなるタイプのものでもよい。例えば、１つのホスト・コンピュータ８０は、ＨＰ−ＵＸオペレーティング・システムを実行するヒューレット・パッカード９０００コンピュータ・システムでもよい。別のホスト・コンピュータ８０はＳｏｌａｒｉｓオペレーティング・システムを実行するＳｕｎＳｐａｒｋステーションでもよい。ホストと、オペレーティング・システムと、適用されるデータ管理アプリケーションの組み合わせは、「プラットフォーム」と呼ばれる。ホスト・コンピュータ８０の各々は、ストレージ・ネットワーク８９と接続する異なるプラットフォームを構成してもよい。
【００８５】
エンタープライズ・ホスト・ドメイン８８のホスト・コンピュータ８０は、ネットワーク上に接続されてもよい。他のいかなる形式のネットワークが用いられてもよいけれども、このネットワークはスイッチング・ノード８１を含んでもよい。
【００８６】
図８の実施例では、ホスト・コンピュータ８０は、ネットワークを通してエンタープライズ・ストレージ８９に連結されるか、第１次ストレージ・ノード８２に直接連結される。第１次ストレージ・ノードは、ホスト８０によって使用される著しい量のデータを蓄えることができるメモリ装置である。例えば、図７に関連して上で記述されたようなＳｙｍｍｅｔｒｉｘシステムは、第１次ストレージ・ノードとして使用されてもよいが、これは制限するものではない。
【００８７】
図８の実施例では、各ホスト・コンピュータが、そのホスト・コンピュータ用の主ストレージ装置として使用するために、第１次ストレージ・ノード８２の小集合に連結される。例えば、ホスト・コンピュータ８０ａは、第１次ストレージ・ノード８２ａに直接つながれている。ホスト・コンピュータ８０ａは、非常に大きなデータベースへのアクセスといったような、ほとんどそのメモリ集約的な機能に対して、第１次ストレージ・ノード８２ａに依存してもよい。
【００８８】
第１次ストレージ・ノード８２は、さらにネットワークを通して共に連結されてもよい。図８の例では、ネットワークはリンク８５およびスイッチ・ネットワーク８４を含む。スイッチ・ネットワーク８４は、例えば、ファイバー・チャンネル・ネットワークでもよい。リンク８５はＥＳＣＯＮライン上のＲＤＦリンクでもよい。
【００８９】
第１次ストレージ・ノード間のネットワークは、２つの目的を果たしてもよい。ネットワークは、第１次ストレージ・ノード間のデータの伝送を許してもよい。例えばホスト８０ａによって操作され、第１次ストレージ・ノード８２ａに格納されるデータベースは、ホスト８０ｂによって使用されるように、第１次ストレージ・ノード８２ｂに伝送されてもよい。エンタープライズ・ストレージ・ネットワーク（リンク８５あるいはスイッチング・ネットワーク８４を使用して）を介してデータベースを伝送することによって、ホスト８０ａ、８０ｂおよびエンタープライズ・ホスト・ドメイン・ネットワーク中の利用可能な帯域幅を保存することができる。
【００９０】
エンタープライズ・ストレージ・ネットワーク８９は、さらに第２次ストレージ・ノード８７を含んでもよい。第２次ストレージ・ノードは、バックアップ機能、階層的ストレージ管理、仮想ディスク、およびその他の機能のために使用されてもよい。したがって、第２次ストレージ・ノード８７はテープ・ストレージ・ユニット８３につながれてもよい。第２次ストレージ・ノード８７は、第１次ストレージ・ノード８２からテープ・ストレージ・ユニット８３に格納されたテープへ、データの高度な伝送がなされるよう調整するだろう。（他の実施例は第２次ストレージ装置用に追加のあるいは代わりの媒体を使用するかもしれない）
図９は、本発明の１つの実施例の１つの側面によって構築されたコンピューター・ネットワークの１つの実施例を示す。この実施例では、エンタープライズ・ホスト・ドメイン９７が提供される。エンタープライズ・ホスト・ドメイン９７はさまざまなホスト・コンピュータ９０ａ〜９０ｅを含む。ホスト・コンピュータは、異なるプラットフォーム、およびメモリ中のデータにアクセスし格納することに対応する、異なるメカニズムを含んでもよい。例えば、ホスト・コンピュータ９０ａはヒューレット・パッカードＨＰ９０００コンピュータである。ホスト・コンピュータ９０ｃはＳｏｌａｒｉｓオペレーティング・システムを実行してもよいＳｕｎＳｐａｒｋステーションである。ホスト・コンピュータはネットワーク９６を介して互いに交信してもよい。そのようなネットワークは、コンピュータを接続するためによく知られ適用される、多くのコンピューター・ネットワークのうちの１つであればよい。
【００９１】
図９の実施例では、各ホスト・コンピュータ９０ａ〜９０ｅが第１次ストレージ・ノード９２ａ〜９２ｃに接続される。この実施例では、各々の第１次ストレージ・ノード９２ａ〜９２ｃは、図７に関連して上で記述されたようなＳｙｍｍｅｔｒｉｘメモリ・システムのような、反復キャッシュ・ディスク・アレイであるが、これは制限するものではない。したがって、例えば、ホスト・コンピュータ９０ａは、第１にストレージ・ノード９２ａと接続する。同様に、ホスト・コンピュータ９０ｂは、そのデータの第１資源として第１次ストレージ・ノード９２ａを使用する。
【００９２】
図９の実施例では、ホスト・コンピュータ９０ａが、高速ファイバー・チャンネル９ｌａを通して第１次ストレージ・ノード９２ａに接続される。しかしながら、ホスト９０ｂは、標準のＳＣＳＩ接続を通して第１次ストレージ・ノード９２ａに接続される。ホスト９０ａと９０ｂの各々は、同じ第１次ストレージ・ノード９２ａにつながれる。第１次ストレージ・ノード９２ａ〜９２ｃにホスト・コンピュータ９０ａ〜９０ｅを接続するために、他のメカニズムが使用されてもよい。例えば、どのホスト・コンピュータでも、第１次ストレージ・ノード９２ａ〜９２ｃのうちのどれに対してもアクセスできるように、完全なスイッチド・ネットワークが使用されることができるだろう。
【００９３】
さらに第１次ストレージ・ノード９２ａ〜９２ｃの各々は、ネットワークを使用して、共に連結されてもよい。図９の例では、第１次ストレージ・ノード中のただ一つのリンクが、ＥＳＣＯＮリモート・データ・ファシリティ（ＥＳＣＯＮ「ＲＤＦ」）リンク９３ｇである。そのようなリンクは、データを伝送するため、あるいはオン・ラインか周期的に更新されるミラーとしてデータのミラーを維持管理するために使用されてもよい。そのようなリンクが、参考としてその全体がここに組み入れられる米国特許番号５，５４４，３４７（Ｙａｎａｉ）で記述されるように、実装されてもよい。第１次ストレージ・ノード９２ａ〜９２ｃの各々は、他のメカニズムを使用して、共に連結されてもよい。例えば、第１次ストレージ・ノード９２ａ〜９２ｃの各々を完全に接続するために、ＲＤＦリンクが使用されることができるだろう。代案として、そのネットワークが、第１次ストレージ・ノード９２ａ〜９２ｃ間のデータ操作を支援するために十分に高速であることが当然であると想定すると、スイッチド・ネットワークが使用されることができるだろう。
【００９４】
さらに図９の実施例中のストレージ・ネットワーク９８は、第２次ストレージ・ノード９４を含む。第２次ストレージ・ノードは、バックアップ（そして他の）機能のために使用され、例えばテープ・ライブラリ９５へ情報を格納し、そしてそこから情報を復元するために使用される。
【００９５】
図９の実施例では、第１次ストレージ・ノードの各々が、第２次ストレージ・ノード９４に接続されるか、あるいは接続可能（ネットワークによって）である。この例において、第１次ストレージ・ノード９２ｂおよび９２ｃは、上で記述されるように実装されてもよいＲＤＦリンク（それぞれ９３ｃと９３ｄ）を各々が使用して、第２次ストレージ・ノード９４に連結される。
【００９６】
第１次ストレージ・ノード９２ａは、（示されていないが、他の第１次ストレージ・ノードと一緒に）スイッチド・ネットワークを通して第２次ストレージ・ノード９４に接続されるが、それはシステムの各々が第２次ストレージ・ノード９４にアクセスすることを可能にするだろう。
【００９７】
遠距離間のデータの高速転送を可能にするＲＤＦ（あるいは他のもの）リンクを使用するなら、第１次ストレージ・ノード９２ａ〜９２ｃ、および第２次ストレージ装置９４は、物理的に遠く離れて設置されていてもよい。
【００９８】
もちろん、他の形態および他のメカニズムが、本発明の範囲を逸脱せずに、使用されてもよい。
【００９９】
コンピュータのアプリケーションの多くは、今やシステムが計算を実行する能力よりも、メモリにより多く注目している。例えば、非常に大きなデータベースへのアクセスが、コンピュータにとって非常に重要で価値あるアプリケーションとなった。
【０１００】
過去において、コンピュータ・システムの焦点は、それぞれの関連するメモリを持つホスト・コンピュータを相互に連結させることや、あるいは、単一のメモリへのネットワーク・アクセスを提供することにあった。この焦点はホスト・コンピュータおよびネットワーク資源を要求する。
【０１０１】
しかしながら、ストレージ中心のモデルでは、コンピュータ・システムのストレージ・コンポーネントが等しく重要な地位に上げられる。そのようなモデルでは、システムのストレージ・コンポーネントが、ホスト・ドメインからのより少ない関与で、互いに作用し合うことができる。例えば、１つ以上の第１次ストレージ・ノードを横断したミラーリングを可能にすることが望ましいかもしれない。同様に、データ・オブジェクトが、１つの第１次ストレージ・ノードから別の第１次ストレージ・ノードにコピーされる必要があるかもしれない。さらなるレベルのバックアップが望まれるところでは、第１次ストレージ・ノードはさらにバックアップの目的のために第２次ストレージ・ノードにデータを転送してもよい。同様に、第１次ストレージ・ノードは、復元するために第２次ストレージ・ノードからデータを受け取ってもよい。ストレージ中心のモデルでは、そのようなシステムの中の資源集約的な機能のうちのいくつか、あるいはすべてが、ホスト・ドメインから取り除かれてもよい。このモデルに続くある実施例は、ホスト・ドメイン資源を保護し、メモリの拡張性を増大させ（ホスト・ドメイン資源への作用に大きな問題を与えずに、ストレージ・ドメインを増やすことによって）、そしてホスト・ドメインにおけるホストの特定プラットフォームへの依存を減少させることができる。
【０１０２】
図１０は、そのような１つのシステムの中で、データがどのようにして移動されるかを非常に基本的なレベルで示す。ステップ１００で、コピーか、バックアップか、復元される必要のある物理エレメント（例えば、データ・ブロック）が、識別される。ステップ１０２で、それらの物理的なエレメントが転送される。
【０１０３】
例えば、コピーについては、コピーされようとしている物理エレメントが、ステップ１００で識別される。さらに、そのエレメントがコピーされようとしているロケーションが、識別される。第１次ストレージ・ノード間のコピーに対しては、これにロケーションからのコピーと、ロケーションへのコピーとを識別することが含まれてもよい。バックアップについては、これにロケーションからのコピーを識別することが含まれるが、テープやその他のバックアップ・ストレージ・エレメントのどれが、バックアップ・データを受け取るかを決めることのように単純なことであるだろう。
【０１０４】
第１次ストレージ・ノード間のコピーについて、識別されたコピー元のロケーションから、識別されたコピー先のロケーションへ、物理エレメントが転送される。バックアップについては、物理エレメントがテープにコピーされる。（テープが第２次ストレージとして言及されているが、これは制限するものではない。他のいかなるストレージ媒体が使用されてもよい。）
しかしながら、ステップ１００は非常に複雑になることがある。多くの場合、第１次ストレージ・ノードの全内容をコピーすることは望ましくない。むしろ、第１次ストレージ・ノード中の物理エレメントの部分集合だけが、コピーされる必要があるかもしれない。一例として、図９の第１次ストレージ・ノード９２ａに格納されたデータベースをバックアップすることを考えてみる。このデータベースは、第１次ストレージ装置９２ａに格納された総データのうちの単に小さな部分を占めているだけかもしれず、また実際に、主としてホスト・コンピュータ９０ｂによってアクセス可能だが、ホスト９０ａが読み出すことすらできないかもしれない極めて大きなセグメントのデータがあるかもしれない（なぜならホスト・コンピュータ９０ｂが９０ａとは異なるプラットフォームなので）。
【０１０５】
要するに、第１次ストレージ・ノード内に格納された論理オブジェクトをバックアップすることが望ましいかもしれない。この場合、ステップ１００は、９２ａからコピーされる必要のある物理エレメントを識別するために、第１次ストレージ・ノード９２ａの中の物理エレメント上に論理オブジェクトをマッピングすることを要求する。図２Ｃに関して上で記述されるように、これらの物理エレメントは、第１次ストレージ装置内の異なるロケーションに置かれていてもよい。
【０１０６】
ステップ１０２は同様に複雑になるかもしれない。第１次ストレージ装置中の物理エレメントがすべて識別された後でさえ、単に物理エレメントを転送するだけでは不十分である。コピーかバックアップされた論理オブジェクトが、受入れ第１次ストレージ・ノードにつながれたホスト・コンピュータによって読み取られるよう、物理エレメント間の関係が保存されている必要があるかもしれない。物理エレメントに論理オブジェクトをマッピングし、それらの物理エレメント間の論理関係を保存するために使用する１つのメカニズムが、以下に説明される。これは本発明の他の側面に関して制限するものではない。
【０１０７】
どんな場合も、コンピュータ・ストレージ装置のストレージ中心のモデルでは、データ転送処理（例えば、図１０に示されるもの）の多くが、ストレージ・ネットワーク内で、つまりホスト・ドメインからの資源を要求せずに、実行されることが可能であることが望ましいかもしれない。従って、ネットワーク中の第１次ストレージ・ノードおよび第２次ストレージ・ノードはデータ転送処理の側面を取り扱えるだけの十分な知能を持っていてもよい。例えば、第１次ストレージ・ノードは、それらの物理エレメントが第１次ストレージ装置内の異なるロケーションに格納される場合でさえ、論理オブジェクト中の識別された物理エレメントの転送を、最低限、管理する能力があってもよい。コンピュータ・システムのストレージ中心のモデルでは、ストレージ・ドメイン内の第１および第２次ストレージ・ノードの中の資源を使用して、データ転送機能のうちのいくつか（あるいは、ある場合にはできるだけ多く）が実行されるようにすることが望ましいかもしれない。
【０１０８】
コンピュータ・システムは、ストレージ・ドメイン内のストレージの操作を管理するために、ストレージ管理アプリケーション（ＳＭＡＰＰ）を含んでもよい。図１１ＡおよびＢを参照して下に記述されるように、ＳＭＡＰＰは、ホスト・コンピュータ上か、第１次ストレージ・ノード上か、別個のストレージ・コントローラ上か、あるいはこれらのいくつかの組み合わせの中で、ソフトウェアを用いて実装されることができる。
【０１０９】
ストレージ管理アプリケーションは、３つの主要コンポーネント、つまり管理コンポーネント、サーバ・コンポーネント、およびクライアント・コンポーネントを使用して、実装されることができる。
【０１１０】
管理コンポーネントは、バックアップの環境設定、バックアップの制御と監視、およびストレージ・ドメインのコピー工程を制御する。さらに管理コンポーネントは、例えばどのテープまたは複数のテープが、特定の各々の論理オブジェクトのバックアップを含んでいるかということを含めて、ストレージ・システム内の論理オブジェクトのコピーのロケーションを追跡する。
【０１１１】
サーバ・コンポーネントは、テープのマウンティングとディスマウンティング、オープニングとクロージング、テープの読み取りと書き込み、および他のメモリ媒体の行為といったようなメモリ処理のハードウェア機能を制御する。
【０１１２】
ＳＭＡＰＰのクライアント・コンポーネントは、情報源のバックアップあるいはコピーの操作や識別を取り扱う。例えば、クライアント・コンポーネントは、適用可能な論理オブジェクト（例えば、ファイルシステム、ファイルあるいはデータベース）の識別と、どのようなオペレーティング・システム・レベル（あるいは論理ボリューム・マネージャ・レベル）の物理エレメントが含まれているかを判定する役割を担う。（上で記述されるように、マッピングの追加層がストレージ・ドメイン内の第１次ストレージ・エレメント１１１で実行されてもよい。例えば、第１次ストレージ・エレメント１１１が上で記述されるようなＳｙｍｍｅｔｒｉｘ製品である場合、識別された物理トラックが第１次ストレージ・エレメント１１１内に再度マッピングされてもよい。）
図１１Ａは、ホスト・ドメインおよびストレージ・ドメインを持つコンピュータ・システムの一部の一例を示す。その例では、一台のホスト１１０だけがホスト・ドメインの中に示される。さらに、３つのコンポーネントだけがストレージ・ドメインの中に示される。これらは第１次ストレージ・エレメント１１１（それは、例えばＳｙｍｍｅｔｒｉｘディスク・アレイでもよい）、第２次ストレージ・エレメント１１２、およびテープ・ライブラリ・ユニット１１３である。上で記述されるように、追加のストレージ・エレメントが、ネットワークによって連結されて、含まれてもよい。単純にするために、図１１Ａの例は、ホスト、第１次ストレージ・エレメント、第２次ストレージ・エレメントという３つの異なるストレージ・レベルを持つそれぞれの中から１つだけを示す。
【０１１３】
図１１Ａの例では、ストレージ管理アプリケーション（ＳＭＡＰＰ）１１４が、主としてホスト・コンピュータ１１０上に常駐している。したがって、ホスト・コンピュータは、コピー、バックアップ、復元（また他のもの）操作の管理を可能にするアプリケーション・プログラミング・インタフェース（ＡＰＩ）を含むだろう。さらに、ホスト１１０上のストレージ管理アプリケーションｌ１４は、サーバ・コンポーネント１１５ｂを含む。かさねて、ホストは、サーバ操作の管理を可能にするＡＰＩを含むだろう。最後に、ストレージ管理アプリケーション１１４は、この例において、クライアント・コンポーネント１１５ｃを含む。クライアント・コンポーネントは、論理オブジェクトを識別し操作する役割、および論理オブジェクトを包含する物理エレメントを識別する（オペレーティング・システムか論理ボリューム管理レベル・ビューから）役割を担うだろう。
【０１１４】
単純にするために、第１次ストレージ・エレメント１１１から第２次ストレージ・エレメント１１２にバックアップを実行する操作が、記述されるだろう。同様の工程が、ネットワーク中の第１次ストレージ・エレメント間でミラーリングあるいはコピーを行う機能を設定するために適用されるだろう。
【０１１５】
この例において、第１次ストレージ・エレメントはＳＭＡＰＰインターフェース１１６ａを含む。同様に、第２次ストレージ・エレメント１１２はＳＭＡＰＰインターフェース１１６ｂを含む。図１１Ａに示される実施例中の第１次ストレージ・エレメント１１１から第２次ストレージ・エレメント１１２への論理オブジェクトのコピーが、以下のように進行してもよい。最初に、「仮想回線」あるいは「接続」が、第１次ストレージ・エレメント１１１と第２次ストレージ・エレメント１１２の間で設定される。これは、第２次ストレージ・エレメント１１２に第１次ストレージ・エレメントをつなぐネットワーク（例えば第１次ストレージ・エレメント１１１と第２次ストレージ１１２間の単一のＲＤＦリンクを含めて）を通して確立される仮想回線でよい。ノード間の物理的な接続を確立することに加えて、仮想回線は、その確立された接続を通して、一連のデータ（例えば、論理オブジェクトからなる）をコピーするためのセッションを識別する。
【０１１６】
したがって、ホスト・コンピュータ１１０上のＳＭＡＰＰ１１４上の管理コンポーネント１１５ａは、第２次ストレージ・エレメント１１２との仮想回線を確立するよう第１次ストレージ・エレメントに命じることにより、バックアップ・セッションを開始してもよい。その後、仮想回線の実際の設立は、第２次ストレージ・エレメント１１２のＳＭＡＰＰインターフェース１１６ｂと共同して、第１次ストレージ・エレメント１１１のＳＭＡＰＰインターフェース１１６ａによって実行されてよい。
【０１１７】
ホスト・コンピュータ１１０のクライアント・コンポーネント１１５ｃは、バックアップ用の論理オブジェクトを識別する。その後、クライアント・コンポーネント１１５ｃは、物理エレメントのオペレーティング・システム（あるいは論理ボリューム・マネージャ・レベル）セットにその論理オブジェクトをマッピングする。このマッピングは１ステップで実行されてもよい。その後、ＳＭＡＰＰインターフェース１１６ａを通して交信されるように、ホスト１１０のクライアント・コンポーネント１１５ｃは、第１次ストレージ・エレメント１１１にコピーするためのエレメントを識別してもよい。
【０１１８】
ホスト１１０のサーバ・コンポーネント１１５ｂは、テープ・ライブラリー・ユニット１１３の適切なテープを識別しマウントするだろう。特にこの例では、サーバ・コンポーネント１１５ｂは、第１次ストレージ・エレメント１１１のＳＭＡＰＰインターフェース１１６ａを通して、第２次ストレージ・エレメント１１２のＳＭＡＰＰインターフェース１１６ｂにこれらのコマンドを渡すことで、そのコマンドを実行し、そうしてテープをマウントする。
【０１１９】
バックアップ処理の実際の実行は、ホスト・ドメインのホスト１１０によるそれ以上の制御無しで（いくつかの実施例における、工程のモニタリング、および、例えばテープ・ドライブにおけるテープの交換といったバックアップ媒体の管理を除いて）、進行してもよい。第１次ストレージ・エレメント１１１は、識別された物理セグメントを第２次ストレージ・エレメント１１２にコピーしてもよい。
【０１２０】
図１１Ｂは、本発明に従ったコンピュータ・システムのストレージ・ドメインを制御するための代案となる構造を示す。この例において、ストレージ・ネットワーク・コントローラ１１８ａは、ネットワーク１１９を通して、ホスト１１０、第１次ストレージ・エレメント１１１、および第２次ストレージ・エレメント１１２に接続される。このネットワークは、例えばＴＣＰ／ＩＰプロトコルに従ったものでよい。ストレージ・ネットワーク・コントローラ１１８ａは、必要な機能を遂行できるどのようなハードウェアでもよいし、あるいはハードウェアとソフトウェアの組み合わせでもよい。例えば、ストレージ・ネットワーク・コントローラ１１８ａは、ＳＭＡＰＰ機能を実行するための適切なアプリケーション・ソフトを備えた、ＷｉｎｄｏｗｓＮＴオペレーティング・システムを実行しているコンピュータでもよい。
【０１２１】
この例では、ＳＭＡＰＰソフトウェアの重要な部分が、ストレージ・ネットワーク・コントローラ１１８ａ上に常駐している。それで、ストレージ・ネットワーク・コントローラ１１８ａのＳＭＡＰＰ１１８ｂは、管理コンポーネントおよびサーバ・コンポーネントを含む。したがって、ストレージ・ネットワーク・コントローラ１１８ａは、ハードウェアおよび媒体の管理をホスト・コンピュータ１１０と無関係に、実行することができる。
【０１２２】
この例では、ホスト１１０はクライアント機能を実行するためにＳＭＡＰＰ１１７を含む。したがって、論理から物理へのマッピングが、ホスト・コンピュータ１１０によって、ホスト・ドメインの中でなお実行される。ＳＭＡＰＰ１１７のクライアント・コンポーネントは、論理オブジェクトを識別する役割と、論理から物理へのマッピングを実行する役割を担っているので、これは実用的な配置であると言える。論理から物理へのマッピングは、特定のホスト・プラットフォームに依存し、必然的にそのホストは必要なマッピングを実行することができるエレメントを持つ。
【０１２３】
しかしながら、他の実施例では、クライアント・コンポーネントはストレージ・ネットワーク・コントローラ１１８ａか、あるいは１つ以上のプラットフォームに対して論理から物理へのマッピングを遂行できる別個の装置内に含まれる。これが終わると、コピーとバックアップ目的のためのデータの識別と転送が、ホスト・ドメインから完全に分離して実行されることができる。しかしながら、多くのシステムでは、ホスト・コンピュータ上でのメモリ・マッピング・メカニズム（クライアント・コンポーネント）を使用することがより効率的だろう。
【０１２４】
ＳＭＡＰＰソフトウェアには、これ以外の配置が可能である。例えば、ＳＭＡＰＰソフトウェアのコンポーネントは、ストレージ・ドメインの第１次ストレージ・エレメント、ホスト・ドメインの第２次ストレージ・エレメントか複数のエレメント、あるいはそのいくつかの組み合わせを横断して割り当てられてもよい。
【０１２５】
図１２は、図１１Ａおよび１１Ｂで示されるようなシステムに従った論理オブジェクトを転送する方法の１つの実施例を示す。ステップ１２０で、仮想回線が確立される。上で記述されるように、これは、そこからコピーされるエレメント（例えば、第１次ストレージ・エレメント）と、そこへコピーされるストレージ・エレメント（例えば、第２次ストレージ・エレメント）間の物理的な接続を確立することに相当するだろう。さらに、このステップ１２０は、その接続を通してコピーを実行するためのセッションの確立に相当する。上で記述されるように、仮想回線の確立と管理は、ホスト・コンピュータ、ストレージ・ネットワーク・コントローラ、あるいは他の装置上に常駐するＳＭＡＰＰコンポーネントによって、実行されることができる。
【０１２６】
ステップ１２１で、そこからコピーされる物理エレメントを識別するために、論理オブジェクトがマッピングされる。バックアップを実行するために、これは、アプリケーション・レベルの識別された論理オブジェクトを、ストレージ・レベルの物理エレメント一式に、マッピングすることに相当するだろう。
【０１２７】
テープから復元するために、これはテープ上のメモリのセグメントの論理ロケーションを識別することに相当するだろう。テープが論理ビット・ファイルを含んでいる場合、このステップは簡単である。いかなる実際のマッピングもなされる必要がない。下に記述される抽象ブロック・セットのような他の環境では、テーブルあるいは他の構造が、物理エレメントの部分を論理オブジェクト中のそれらの順序にマッピングしたものを識別してもよい。論理レベルから物理レベルへの実際のマッピングは、バックアップの時に実行され、保存されてもよい。
【０１２８】
ステップ１２２で、物理エレメントへの更新が止められる。例えば、データベースが第１次ストレージ・エレメントからテープにバックアップされる場合、バックアップが時間のある一点に対応できるように、論理オブジェクトの更新が止められるべきである。もちろん、そのコピーがバックアップ・テープから第１次ストレージ・エレメントになされる場合は、物理エレメントの更新を止めるのはかなり単純である。というのは、復元中、物理エレメントが読み出されている間は、テープは書き込まれないはずであるからである。１つの実施例では、コピー処理中の物理エレメントの更新を止めるために、下に記述される同時コピーの方法が使用されてもよい。
【０１２９】
ステップ１２３で、コピー先のメモリが管理される。第１次ストレージ・エレメントからテープへのバックアップについて、これは適切なテープをマウンティングしたりディスマウンティングすること、さらにテープ・ライブラリやカタログ情報を管理すること、さらに適切なテープのヘッダとトレーラを書き込むことに相当するだろう。情報が別の第１次ストレージ・エレメントにコピーされている場合、これは、そこへコピー中である第１次ストレージ・エレメントの受入れ物理エレメントの管理に相当するだろう。さらに、それによって、情報を受け取るための適切なストレージ・ドメインを用意することが必要になるだろう。
【０１３０】
ステップ１２４で、実際の物理エレメントがコピーされる。通常のデータ・ファイルが２つのホスト・コンピュータ間のアプリケーション・レベルに送られる場合のように、そのコピーは論理オブジェクトに対して適切な順序で行われてもよい。バックアップのコンテクストでは、そのような１つのシステムが、米国特許出願番号０９／１０７，６７９に記述されており、その全体がここに組み入れられる。これに代わる実施例では、物理データ・ブロックが、論理オブジェクト中の物理エレメントの正確な順序を識別する、適切なメタデータと一緒に、順序に関係なくコピーされてもよい。この種のシステムの実施例は下に記述される。
【０１３１】
ステップ１２５で、メモリからのコピーにおいて、論理オブジェクトの物理エレメントの更新の中止が解除され、論理オブジェクトの更新が許可される。バックアップは完了し、物理エレメントは更新中止から解除されてよい。
【０１３２】
最後に、ステップ１２６で、仮想回線が閉じられてもよい。
論理オブジェクトを抽象ブロック・セットへ変換
上で記述されるように、論理オブジェクトのデータ・ブロックをストレージ・エレメントへ渡す少なくとも２つの異なる方法がある。１つの論理オブジェクトとして順番にブロックを転送する方法（ホスト・コンピュータ間のネットワークを通して行われるような）と、純粋に物理的にコピーする方法（データ間の論理的な関係を保存しなくてよい）である。これらの可能性の各々は長所と損失を持つ。例えば、順番に論理オブジェクトの各データ・ブロックをコピーすることは、データ・ブロックの関係を保存する。その反面、順番にブロックをコピーすることは、ストレージ・エレメントが連続してデータ・ブロックを取り出すか、さもなければ、書き込むためにコピー処理の一部として、データ・ブロックをソートすることになるので、遅延という結果になるかもしれない。他方、物理エレメントを純粋にコピーすることは、未使用の物理エレメントがコピーされるので、不必要に遅くなることがある。さらに、コピーされるデータ・ブロック間の論理的な関係が失われるかもしれない。
【０１３３】
もっと完全に下で記述されるように、代案は抽象ブロック・セット構造を使用することである。この種の構造は上で記述されるようなストレージ・ネットワーク・アーキテクチャにおいて有用なだけでなく、より大きな適用の可能性がある。例えば、抽象ブロック・セット概念は、論理オブジェクトが１つのストレージ・エレメントから別のストレージ・エレメントにコピーされる、すべてのシステム中で使用されるかもしれない。さらにテープ・ドライブのような第２次ストレージ装置にデータをバックアップし復元するために使用される時、抽象ブロック・セットは特に有利に使用されることができる。
【０１３４】
抽象ブロック・セットは、任意の順でデータ・ブロックをストレージ・保存することを可能にする。抽象ブロック・セットは、それらのエレメントの順序に関する情報を含む。
【０１３５】
図１３は、抽象ブロック・セットの一例を示す。そのアプリケーション透視図から、論理オブジェクト１３０は多くのデータ・ブロック１３０ａ〜１３０ｆを含む（図１３は図解だけの目的であり、通常、論理オブジェクトは本質的にもっと多くのデータ・ブロックを含んでいるかもしれない）。論理オブジェクト１３０中のラベルＡ〜Ｆによって示されるように、そのデータ・ブロックは論理的な関係あるいは順序を持つ。
【０１３６】
図２Ｃを参照して上で概要が記述されたように、論理オブジェクトは物理メモリ１３１に格納される。各列は、１つのトラックと見なされてもよく（これは制限されるものではないが）、各行はそのトラック内のブロックの１つの行として見なされてもよい。図２Ｃおよび１３の中で示されるように、論理データ・ブロックは物理メモリ１３１の全体にわたって散在してもよい。
【０１３７】
抽象ブロック・セット１３２は、データ・ブロック１３０ａ〜１３０ｆから構築されるだろう。抽象ブロック・セット１３２では、データ・ブロックが、論理オブジェクトに現われるのと同じ順序で必ずしも格納されない。この例では、それらはランダムか疑似ランダムの順である。（実際問題として、データ・ブロックの順序は、データ・ブロックが物理ストレージ１３１に格納される方法を反映するかもしれない。例えば、データ・ブロックＡおよびＢが１つのトラック上に格納される場合、それらは、その同じトラックに現われる順に抽象ブロック・セット１３２に恐らく読み取られ書き込まれるだろう。図１３に示される抽象ブロック・セット１３２は、図解のためだけのものである。）
論理データ・ブロックが抽象ブロック・セット１３２の中で順序通りになっていないので、データ・ブロック１３２ａ〜１３２ｆだけを与えられた論理オブジェクトを再構成することは不可能であるかもしれない。
【０１３８】
従って、抽象ブロック・セット１３２はメタデータ１３３を含む。メタデータは論理データ・ブロックが論理オブジェクト１３０に現われるように、論理データ・ブロックの順序を再構成するためのメカニズムを提供する、すべての記録情報である。
【０１３９】
図１３の例では、メタデータ１３３が、物理エレメント・ロケーションの付いた論理ブロック・エレメントの順番（ＬＢＥＬのラベルの付いた列）を含む。したがって、論理ブロック・エレメント１は、物理メモリ１３１の中のその論理データ・ブロックのアドレス（物理エレメント・アドレス）に対応するメタデータを持つ。１３３に示されたメタデータを使用して、格納された抽象ブロック・セット１３２の中に格納されたデータ・ブロック１３２ａ〜１３２ｆの各々は、対応する物理アドレスを備えたラベルを含む必要があるだろう。したがって、例えば、論理オブジェクト１３０の一番目の論理データ・ブロック１３０ａのロケーションを見つけるために、メタデータ１３３を調べれば、一番目の抽象ブロック・セット（メタデータ１３３の第１列に示されるように）が物理アドレスＡＤＤＲ−Ａを持つことが判るだろう。その後、適切なブロックが見つかるまで、データ・ブロック１３２ａ〜１３２ｆの物理アドレス（データ・ブロック１３２ａ〜ｆ内に現われる物理アドレス）を調べることによって、抽象ブロック・セット１３２の中にこのデータ・ブロックを見つけることができるだろう。
【０１４０】
もちろん、メタデータのために使用されることのできる、さまざまな他のフォーマットがある。一例として、物理アドレス以外のラベルが使用されることがあるだろう。別のフォーマットとして、メタデータ１３３は、抽象ブロック・セット１３２の中での論理ブロックエレメントの順番を単に記述することもできるだろう。この場合、メタデータ１３３の第１行の第２列は、一番目の論理データ・ブロック（Ａに対応する）が抽象ブロック・セット１３２の中では６番目のブロックとして格納されていることを指し示すことができるだろう。
【０１４１】
これらの代案の各々については、メタデータ１３３の第１列は要求されない。第２列のエレメントの順序が、論理オブジェクト１３０内でのそれらのロケーションに対応する。つまり第１論理ブロック・エレメントのためのアドレスが、テーブルの第一列に現われ、第２の論理データ・ブロックのアドレスが第２列の中に第２エントリとして現われる。
【０１４２】
メタデータ１３４は、論理ブロック１３２と結び付くメタデータを格納する別の方法を示す。メタデータのこのテーブルでは、第１列が抽象ブロック・セットに現れるデータ・ブロックの順序に相当する（上記のように、行が現われる順番がこの情報を意味するので不必要。第１行は抽象ブロック・セット中の第１ブロックである）。第２列は、論理オブジェクト１３０内のデータ・ブロックの位置を示す。したがって、メタデータ１３４の第１行の第１エントリは、抽象ブロック・セット１３２のデータ・ブロック１３２ａに相当する。これは論理オブジェクト１３０の第２データ・ブロック１３０ｂである。従って、第２列は、このデータ・ブロック１３２ａが論理オブジェクト１３０の第２データ・ブロックであることを示す「２」である。メタデータ１３４の最後の列は、物理メモリ１３１中の当データ・ブロックの物理アドレスを提供する。
【０１４３】
１３４に示されたメタデータを使用するなら、抽象ブロック・セット１３２で格納されるデータ・ブロックに付随させてデータ・ブロックの物理アドレス（あるいは他のタグ）を格納する必要はないだろう。
【０１４４】
上記のように、メタデータ１３４を使用するなら、当データ・ブロックの物理メモリ１３１内の物理アドレスを格納することは厳密には必要ない。しかしながら、これはメタデータ１３４の内に含めるべき有用な情報であるだろう。多くの場合、復元は、情報がそこからバックアップされたのと同じメモリ・ロケーションになされるだろう。この場合、その情報が利用できなかったので、物理メモリ１３１内のそれらのアドレスに復元することがより容易であるだろう。そうでなければ、復元されるデータ・ブロックにとってどれが適切なアドレスであるかを、再び決定するために、論理から物理へのマッピング・ステップが必要とされるかもしれない。
【０１４５】
メタデータの他のフォーマットが使用されてもよい。例えば、メタデータは、個々のブロックに対してよりも、むしろ広がり（一続きのブロック）に対して追跡されてもよい。
【０１４６】
図１４は、上で記述されるような抽象ブロック・セットを作成するために、論理オブジェクトをコピーする方法の１つの実施例を示す。ステップ１４０で、論理オブジェクトが識別される。上で記述されるように、論理オブジェクトはデータベース、データベースのセグメント、ファイル、あるいはファイル・システムのような任意の論理エンティティでありうる。
【０１４７】
ステップ１４１で、論理オブジェクトの論理ブロック・エレメント、あるいは論理データ・ブロックが識別される。上で概ね記述されたように、このステップが先行してもよい。
【０１４８】
ステップ１４２で、論理ブロック・エレメントが物理バックアップ・セグメントにマッピングされる。物理バックアップ・セグメントは、論理データ・ブロックを格納する物理エレメントに相当するかもしれない。抽象ブロック・セットがテーブル１３３で示された形式のメタデータを含むことである場合、マッピング・ステップ１４２は、メタデータがいかなるフォーマットで格納されていても、その情報を定式化するステップを含んでもよい。
【０１４９】
上で記述されるように、ステップ１４０〜１４２は、ストレージ管理アプリケーションのクライアント・コンポーネントによって実行されてもよい。いくつかのシステムで、これはホスト・コンピュータの資源を要求するかもしれない。
【０１５０】
コピー処理の残りは、ストレージ管理アプリケーションのクライアント・コンポーネントの大きな関与なしで進行してもよい。
ステップ１４４は、物理バックアップ・セグメントのすべてがコピーされたかどうかを判定するためのものである。もしされたならば、コピー処理は、ステップ１４５で完了する。
【０１５１】
物理バックアップ・セグメントのすべてがコピーされたのではないならば、用意された次のバックアップ・セグメントがステップ１４６にコピーされる。上で記述されるように、このコピーはステップ１４０で識別された論理オブジェクトに現われる順序に従って実行される必要はない。
【０１５２】
図１３のテーブル１３４で示されるようなメタデータが格納されている場合、当バックアップ・セグメントが、抽象ブロック・セットを保持している媒体にコピーされた後、メタデータは更新されてもよい。これはメタデータのこの形式に対して（であって、図１３の１３３に示された形式に対してではない）。当バックアップ・セグメントが、抽象ブロック・セットを格納している媒体にコピーされるまで、これは生じないかもしれない。なぜなら、その時まで、当物理バックアップ・セグメントの見かけの順序が知られていないからである。
【０１５３】
図１５は、上で記述された第１次ストレージ・ノードのようなメモリ・システムに抽象ブロック・セットを復元するための方法の１つの実施例を示す。
ステップ１５０で、抽象ブロック・セット用のメタデータが取り出される。これは、図１３の１３４で示されたメタデータのような抽象ブロック・セット用のマップの形をしていてもよいし、あるいは図１３のテーブル１３３のような、抽象ブロック・セットに格納された個々のデータ・ブロックと結び付けられた一式のラベルであってもよい。
【０１５４】
ステップ１５１で、論理オブジェクトを受け取るためのターゲットとなるストレージ装置に、メモリが割り当てられる。論理オブジェクトを受け取るために要求されるメモリの量およびコンフィギュレーションは、抽象ブロック・セット用のメタデータから決定されることができる。したがって、メタデータは要求されるストレージの特性を判定するための十分な情報を含むだろう。例えば、抽象ブロック・セットが固定サイズのブロックの使用を指し示す場合、論理オブジェクトを格納するために要求されるブロック（固定サイズ）の総数は、エントリ数、およびメタデータのテーブル数によって決定されることができるが、あるいは場合によれば、抽象ブロック・セット用のメタデータの一部として別個に格納されるかもしれない。
【０１５５】
ステップ１５２で、ダミーのメタデータが、論理オブジェクトが復元されるために、新しく割り付けられた物理メモリのために作成される。その結果は図１３の１３３に示されたような新しいテーブルであってもよい。
【０１５６】
ステップ１５３で、再マッピング・テーブルが作成される。再マッピング・テーブルは、抽象ブロック・セットのデータ・ブロックがデータの源であることと、物理メモリ中に割り付けられたデータ・ブロックとの関連を明示する。再マッピングテーブルの例は、図１６を参照して記述される。表の形式で示されるが、データは他の形式やフォーマットで格納されることができる。
【０１５７】
ステップ１５４で、物理バックアップ・セグメントのすべてが復元されたかどうかが判定される。すべてが復元されたならば、復元ステップ１５５は完了する。
【０１５８】
そうでなければ、ステップ１５６で、次の物理バックアップ・セグメントが取り出される。ステップ１５７で、論理オブジェクトを受け取るためのロケーション、および新しく割り付けられるメモリが決定される。これは、ステップ１５３で作成された再マッピング・テーブルを調べることにより、なされることができる。さらに、ステップ１５６でなされたセグメントの取り出しは、特定の順である必要は全くない。データ・ブロックがランダムな順序で提供される場合でさえ、再マッピングテーブルは、すべての論理オブジェクトの復元を可能にする。
【０１５９】
ステップ１５８で、物理バックアップ・セグメントからのデータが適切なロケーションに復元される。その後、データ・ブロックがすべて適切に復元されるまで、ステップ１５４〜１５８が継続する。
【０１６０】
図１６は、再マッピングテーブルの生成の例を示す。もちろん、メタデータが抽象ブロック・セットに対して、どのように定式化されて格納されるかによって、再マッピング・テーブルを生成する上での多くの変化が可能である。
【０１６１】
図１６では、メタデータ１６０が、復元のための情報源の役目を果たす抽象ブロック・セットに供給される。このテーブルは、図１３のメタデータ１３３に相当する
さらに図１６は、復元された論理オブジェクトの復元された論理ブロックを受け取る、割り付けられたメモリのためのダミーのメタデータ１６１を示す。この実施例では、そのフォーマットが、異なるアドレス（潜在的に完全に異なるストレージ・エレメント上の）が提供されること以外は、メタデータ１６０のフォーマットと同じである。したがってメタデータ１６１の第１行について、第１論理データ・ブロックが、ＡＤＤＲ−ＡＡに明示された物理ロケーションに格納されるべきである。
【０１６２】
これらの２つのテーブルを単純に融合（マージ）することによって、再マッピングテーブル１６２ができる。再マッピングテーブル１６２は、抽象ブロック・セットのデータから物理ロケーションを特定し、そしてその論理データ・ブロックの行き先を特定する。
【０１６３】
もちろん、他のフォーマットなら、結果として他のテーブルになるかもしれない。例えば、再マッピング・テーブル１６２の中でいかなる物理アドレスも明示しないことは可能だろう。再マッピング・テーブルは、そこから復元される抽象ブロック・セット中の連続するロケーションを、受信ストレージ・エレメント上の物理アドレスか連続するロケーションへ、単にマッピングすることができるだろう。
【０１６４】
他の実施例では、メタデータ再マッピング・テーブルにおける各エントリが、そこからそしてそこへ復元される物理メモリにおける範囲に対応してもよい。
物理バックアップ・セグメントの細分度
図１３〜１６に関しての説明では、バックアップ、コピー、そして復元がデータ・ブロック・レベルで実行されるものとして仮定された。したがって、物理バックアップ・セグメントは、データ・ブロックのサイズと大きさで一致していた。これらは論理オブジェクトの一部であるデータ・ブロックであり、これらのデータ・ブロックだけが、バックアップのためにコピーされ、そして復元された。
【０１６５】
しかしながら、物理バックアップ・セグメントの細分度が、データ・ブロックの細分度に一致している必要はない。例えば、１つのトラックが多くの物理データ・ブロックを格納してもよい。いくつかの実例では、１つのトラック内のデータ・ブロックのすべてが、必ず同じ論理オブジェクトの一部だとは限らない。したがって、４つのデータ・ブロックを格納する１つのトラックにおいて、それらのデータ・ブロックの２つだけが、論理オブジェクトの一部であって、他の２つのデータ・ブロックは使用されていないか、異なる論理オブジェクトの一部であるかもしれない。しかしながら、論理オブジェクト中のデータのバックアップは、物理データ・ブロック・レベルではなく、トラック・レベルで実行されてもよい。その結果、論理オブジェクトの一部ではない、いくつかのデータ・ブロックを含む抽象ブロック・セットができるだろう。
【０１６６】
したがって、前の例において、物理バックアップ・セグメントのサイズは、トラックのサイズと一致する。論理オブジェクトのデータを格納する、実際の物理データ・ブロックはもっと小さく、例えば、１つのトラックの物理バックアップ・セグメント当たり、４つのデータ・ブロックである。
【０１６７】
図１７は、物理データ・ブロックのサイズより大きい物理セグメント・サイズ（ここではトラック）の概念を示す。図１７の例では、論理オブジェクト１７０が、トラックを持つ物理装置上に格納されている。各トラックは３つまでのデータ・ブロックを保持する（この例では）。
【０１６８】
アプリケーション・レベルで、論理オブジェクト１７０は一個の連続したファイルとして見なされている。このファイルは、論理オブジェクト１７０内の垂直のバーとして図１７に示される多くの論理データ・ブロックに分割されてもよい。
【０１６９】
ファイルシステム・レベルでは、ファイルシステム・イメージ１７１が１７０の論理データ・ブロックの各々の中に、そのデータを保持する。ファイルシステム・イメージ１７１の中で示されるように、ファイルシステム・レベルでの論理データ・ブロックの順序は、論理オブジェクト１７０内でのそれらの見かけの順序に相当しなくてもよい。上で記述されるように、マッピング処理はファイル・システム・イメージ１７１内でのロケーションを充当するために、論理データ・ブロックをマッピングする。
【０１７０】
ファイルシステム・イメージ１７１は、ハイパー・ボリューム・レベルｌ７２ａ〜１７２ｂの論理ボリュームにマッピングされてもよい。
その後、論理ボリューム１７２ａ〜ｂは、ハイパー・ボリューム１７３ｎおよび１７３ｏで物理ストレージ装置上に格納される。図１７に示されるように、ハイパー・ボリュームは物理的に隣接していなくてもよい。（もちろん、上で記述されるように、物理ストレージ装置に論理オブジェクト１７０の論理データ・ブロックをマッピングするための他の技術が可能であり、そしてそれは本発明の範囲内にある。）
一番目のハイパー・ボリューム１７３ｎは、７つのトラック１７３ａ〜１７３ｇを横断してデータを格納する。これらのトラックは、メモリの隣接するセグメントであってもよいが、その必要はない。
【０１７１】
この例において、トラック１７３ｂ全体は、論理オブジェクト１７０の一部である物理データ・ブロックを含んでいる（１つのトラック当たりに、３つのデータ・ブロックだけが格納されるという仮定が与えられている）。しかしながら、トラック１７３ｄは、論理オブジェクト１７０の一部である１つのデータ・ブロックだけを含んでおり、トラック１７３ｄの中の他のデータ・ブロックは、未使用であるか、異なる論理オブジェクトに属するデータを保持しているかのいずれかである。さらに、ハイパー・ボリューム１７３ｎ内のトラックのいくつか、例えば、トラック１７３ａ、１７３ｃ、および１７３ｆは、論理オブジェクト１７０からのいかなるデータも保持していない。ハイパー・ボリュームｌ７３ｏは、同様に、論理オブジェクトからのデータを含むいくつかのトラックと、含まないいくつかのトラックを保持している。
【０１７２】
物理バックアップ・セグメントの細分度が、この例におけるトラック・サイズに選択されるなら、バックアップ処理に関わる物理セグメントは、トラック１７３ｂ、１７３ｄ、１７３ｅ、１７３ｇ、１７３ｉ、および１７３ｋを含むだろう。これらのトラックは、論理オブジェクトがバックアップされる場合にコピーされる物理バックアップ・セグメント・セット（ここでは、一個の「トラックセット」）を構築する。図１７の例では、物理バックアップ・セグメントの細分度がトラックによるので、これはトラック・セットと呼ばれてもよい。
【０１７３】
したがって、論理オブジェクト１７０のバックアップのためのトラック・セットは、トラック１７４ａ〜１７４ｇを含み、次いでそれは、論理オブジェクト１７０からのデータ・ブロックを含む物理トラック１７３ａ〜１７３ｍに相当するだろう。
【０１７４】
データ・ブロック・サイズと異なる物理バックアップ・セグメント・サイズを使用するバックアップ処理は、一般的に図１４を参照して記述されたように、進行することになる。しかしながら、ステップ１４２での物理バックアップ・セグメントの識別は、論理ブロック・エレメントの識別を含むだけでなく、例えば図１７のトラック・セット１７４ａ〜１７４ｇのような物理バックアップ・セグメント・セットを決定するために、その識別された論理ブロック・エレメントと、それらの物理データ・ブロック・ロケーションとを使用することも含む。
【０１７５】
さらに、ステップ１４６での使用可能なバックアップ・セグメントのコピーとは、より大きな細分度のセグメント（例えば、トラック上の単なる特定の物理データ・ブロックではなく、一個のトラック全体）のコピーを伴うだろう。図１４でのように、物理バックアップ・セグメント（例えば、トラック）は、任意の順でコピーされてもよい。
【０１７６】
図１７に戻って、抽象ブロック・セット・サイン（署名）・トラック１７５が格納されてもよい。このサイン・トラックは、抽象ブロック・セット用のメタデータを含む。この実施例では、抽象ブロック・セット用のメタデータの明細項目が、抽象ブロック・セット内の特定データ・ブロックの明細や、論理オブジェクト１７０内でのそれらのロケーションを含んでもよい。
【０１７７】
図１８は、物理データ・ブロックのサイズより大きな物理細分度を持つ抽象ブロック・セット用のメタデータの一例を示す。この例では、各データ・ブロックのロケーションが明示される。第１列は、例えば、１番、２番、３番、４番データ・ブロックといった論理オブジェクト内のデータ・ブロックの１つの明細項目である。
【０１７８】
メタデータ１８０の第２列は、その論理オブジェクトの物理アドレスを明示する。この例において、その物理アドレスは、物理バックアップ・セグメント内のどこに当データ・ブロックが位置しているかの明細を含む。例えば、この情報は物理バックアップ・セグメント内のオフセットとして含まれていてもよい。したがってｄｄ：ｃｃｃｃ：ｈ：オフセットというアドレスは、物理バックアップ・セグメントの明細（ｄｄ：ｃｃｃｃ：ｈ）を含み、この例において、それはその物理バックアップ・セグメント（トラック）内のトラックとロケーションおよびオフセットを特定する。例えば、メタデータ１８０の第１行は論理オブジェクト中の一番目の論理データ・ブロックに相当する。さらにそれは、特定された物理バックアップ・セグメント・アドレスの一番目のデータ・ブロックとして、例えば、ただ０という物理バックアップ・セグメント（ここではトラック）の始めからのオフセットとしてたまたま現われる。メタデータ１８０の第２行は同じアドレスを特定するが、１のオフセットを持つ。それは、論理オブジェクトの一番目の論理データ・ブロックに対応するデータ・ブロックのすぐ後に続くその物理バックアップ・セグメント（トラック）に現われるデータ・ブロックである。
【０１７９】
この例では、最初の２つの論理データ・ブロック（メタデータ１８０の最初の２行）を含むトラックが、トラック内に追加の場所を持つが、そのトラックのそれらの追加のデータ・ブロックは論理オブジェクトの一部でないということが仮定されてもよい。従って、トラックのその部分に対応する論理データ・ブロックを特定する、メタデータ・テーブル１８０の中にはいかなるエントリもない。（代案となる実施例では、もちろん、トラックのその部分がこの抽象ブロック・セットにおいて未使用であることを示すエントリがなされることができるだろう。）
図１３を参照して上で記述されたように、メタデータを格納するための他の多くの形式およびフォーマットが適用されてもよい。
【０１８０】
データ・ブロック・サイズより大きな物理バックアップ・セグメント細分度を持つ抽象ブロック・セットからの復元（あるいはコピー）は、図１５を参照して概ね上で記述されたように、進行してもよい。しかしながら、ステップ１５７で、バックアップ・セグメント内の論理データ・ブロックのロケーションが、そのバックアップ・セグメントのいくらかの部分が省略されてもよいかどうかを判定することを含めて、識別される。ステップ１５８で、論理オブジェクトの中で現実に使用されるデータ・ブロックだけが復元される。
【０１８１】
データ・ブロックのサイズより大きな物理バックアップ細分度の選択は、物理バックアップ・セグメント・サイズがデータ・ブロックと同じである場合より多くのメモリの転送を要求することになり、いくつかの未使用のデータ・ブロックが、コピーかバックアップ処理の一部として含まれる。
【０１８２】
しかしながら、物理細分度のサイズがより大きいと、ある利点をまねくことがある。例えば、コピー処理でのオーバーヘッドがより小さく押さえられるかもしれない。それはコピーに対して、より少数のセグメントを特定するだけでよいからである。さらに、他の資源が保護されるかもしれない。例えば、コピーされるべき物理バックアップ・セグメントを識別する情報の格納に、需要の高いメモリが使用される場合、そのようなメモリがより少ししか要求されなくて済む。コピーまたはバックアップ処理の間に、論理オブジェクトの物理データ・ブロックの更新が中止される場合、データ・ブロック・レベルではなく物理バックアップ・セグメント・レベルで更新を中止することができ、オーバーヘッドを再度減らすことになる。いくつかのシステムでは、このことが、更新回避の複雑さを軽減させることができる。データ・ブロック・サイズと異なる物理バックアップ細分度を使用する本発明のいくつかの実施例は、それが実行される状況およびシステムに依存して、これらの利点のうちのいくつかあるいはすべてが達成されるかもしれない。これらの利点のいずれも、添付される特許請求の範囲によって定義される本発明の範囲を制限するものではない。
同時コピーあるいはスナップショット・ファシリティ
図１２を参照して上で記述されたように、本発明の１つ以上の側面を具体化するあるシステムが、時間の特定された一点での論理オブジェクトのコピーまたはバックアップを可能にするだろう。これを行うために、論理オブジェクトへの更新が、コピーかバックアップ処理の間に中止される必要がある。バックアップ処理が完全になるまでオフ・ラインで論理オブジェクトを使用するアプリケーションを採用することを含めて、このことを実行するための多くの方法がある。本発明のある実施例があれやこれやの技術を使用する一方で、バックアップ中にプロセスを継続できることは都合がよいだろう。
【０１８３】
図１９は、バックアップ中の論理オブジェクトの一部である物理データ・ブロックへの更新を止めている間にバックアップを実行する方法の１つの実施例を示す。
【０１８４】
ステップ１９１で、論理オブジェクト（あるいは、論理オブジェクトを使用しているシステム）が静止される。システムを静止する少なくとも２つの方法がある。一つの方法は、アプリケーションをオフ・ラインにし、論理オブジェクトをオフ・ラインで更新することである。これは関連する論理オブジェクトへのそれ以上の更新（あるいは読み取り）を阻止する。アプリケーションをオフ・ラインにすることは、時間およびシステム有効性の損失をまねくことになるので、望ましいとは言えない。
【０１８５】
システムを静止させるもう一つの方法は、オン・ライン・バックアップ・モードにアプリケーションを置くことである。例えば、アプリケーションがＯｒａｃｌｅデータベースを使用している場合、データベースへの書き込みは、物理ストレージ・システムに実際にデータを書き込むのではなく、やり直しログに格納されることができる。アプリケーションがオン・ライン・モードに戻される時、やり直しログに格納されている論理オブジェクトへの更新が、論理オブジェクトのその時の最新コピーに適用されることになるだろう。
【０１８６】
ステップ１９２で、論理オブジェクトからのデータを保持している物理バックアップ・セグメントは、コピー用の印（マーク）が付けられる。これは多くの方法で行われてもよい。例えば、システム内の可能性のある各物理バックアップ・セグメントに、あるビットが結び付けられてもよい。対応する物理バックアップ・セグメントがコピーされる論理オブジェクトの一部であるなら、そのビットが「１」にセットされてもよい。もちろん、コピー中の抽象ブロック・セットの一部である物理バックアップ・セグメントを識別する方法が、使用されてもよい。単なる一例として、物理バックアップ・セグメントのリストが管理されてもよいだろう。
【０１８７】
図２０は、物理バックアップ・セグメントに結び付けられるビットを持つシステムの例を示す。図２０の例では、物理バックアップ・セグメントのサイズは、縦列２８ｂのような物理メモリ２８を持つ１つのトラックである。論理オブジェクト２７が物理メモリ２８を横断して格納される。一連のビット２９は、物理メモリ２８のトラックと結び付けられる。論理オブジェクトのトラック・セットの一部であるこれらのトラック（物理バックアップ・セグメント）に対して、１がセットされる。このようにして、ビット・セット２９の２番目のビットは、トラック２８ｂが論理オブジェクト２７のトラック・セットに含まれているという事実を反映して、１にセットされている。もし物理バックアップ・セグメント細分度が、１つのデータ・ブロックであったならば、ビットは、オバーヘッドが高くなるが、各データ・ブロックに結び付けられたであろう。
【０１８８】
図１９に戻って、その論理オブジェクトを使用中のアプリケーションが、アクティブな状態に戻されてもよい。例えばこれが、アプリケーションをオフ・ライン・モードからオンライン・モードへ戻すステップを引き起こしてもよい。アプリケーションがオンライン・バックアップ・モードに置かれたなら、やり直しログの内のいかなるエレメントも、論理オブジェクトの更新に適用されてよい。
【０１８９】
しかしながら、バックアップされるセグメントのこのセットに含まれていた物理バックアップ・セグメントに書き込もうとする試みは、瞬間的に止まるだろう。そのセグメントは、書き込みがなされる前に、例えば下に記述される例証となる実施例に従って、コピーされるかバックアップされる。
【０１９０】
ステップ１９４で、抽象ブロック・セット内に設定されているバックアップ・セグメントに含まれる物理バックアップ・セグメント上にヒットがあるかどうかが判定される。もしあるならば、そのセグメントは、順番を変えて、更新がなされる前にコピーがなされる。セグメントがコピーされた後、そのセグメントのマークが外されてよく、それ以降の更新がそのセグメントに対して許可されてよい。その後、抽象ブロック・セットに含まれる物理バックアップ・セグメントへのさらなる（書き込みの試み）ヒットがある場合、ステップ１９４での処理が継続するだろう。
【０１９１】
セグメントのコピーは、ターゲット（受入れ第１次ストレージ・エレメント、あるいはテープのような受入れ第２次ストレージ・エレメント）に対して直接なされてもよいし、抽象ブロック・セットのターゲットとなる目標に対して後でコピーを行うキャッシュに対して、コピーがなされてもよい。
【０１９２】
コピーのために留まっている論理オブジェクトの物理バックアップ・セグメント上に未処理のヒットがすべて無くなると、ステップ１９６での処理が継続してもよい。このステップで、物理バックアップ・セグメントがすべてコピーされたかどうかが判定される。すべてコピーされたなら、抽象ブロック・セットの構成が完了し、処理はステップ１９７で終了してよい。
【０１９３】
もし、なされるべきコピーがさらに残っているなら、使用可能な次の物理バックアップ・セグメントがステップ１９８でコピーされてよい。物理バックアップ・セグメントが任意の順に含まれることを可能にする、抽象ブロック・セットが使用される場合、次のセグメントの選択は、順序と無関係に、次に利用可能なセグメントがどれであるかに注目してよい。
【０１９４】
以前のように、セグメントがコピーされた後、それは印が付いていなくてもよい。従って、他の物理バックアップ・セグメントに関わるバックアップ処理が継続中であっても、セグメントがコピーされた後は、そのセグメントに生じるいかなる書き込みも実行されてよい。
【０１９５】
物理バックアップ・セグメント細分度が物理データ・ブロックサイズより大きい状況で、論理オブジェクトへの書き込みと一致しない、ある書き込みが、物理バックアップ・セグメントに生じるかもしれない。例えば、バックアップ中である論理オブジェクトの中にある１つの物理データ・ブロックと、他の論理オブジェクトに属する他の３つの物理データ・ブロックとを持つ、物理バックアップ・セグメントを考えてみる。たとえバックアップ中である論理オブジェクトが更新されていなくても、異なる論理オブジェクトに対応する物理データ・ブロックのうちの１つへの書き込みが、物理データ・セグメントのバックアップを誘因することになるだろう。
【０１９６】
そのような環境を取り扱うための１つの代案は、その書き込みが論理オブジェクトの一部である物理データ・ブロックへのものであるかどうかを判定するために、印のある物理バックアップ・セグメントへの各書き込みを検査することである。この方法が本発明のいくつかの実施例の中で使用されてもよいけれども、一方でそれは物理バックアップ・セグメントへの書き込み時に、重いオーバーヘッドというペナルティを負うことになる。
【０１９７】
その代案となる実施例では、ある書き込みが、コピー中である論理オブジェクト内の物理データ・ブロックに対して生じようが、あるいは異なる論理オブジェクト内の物理データ・ブロックに対して生じようが、その物理バックアップ・セグメントが同じように扱われる。この代案にかかるオーバーヘッドは、特に、物理バックアップ・セグメントが任意の順で転送されることを可能にする抽象ブロック・セット内に、コピーされる物理バックアップ・セグメントが格納されているシステム中で、その代案が実施されるならば、大きくないかもしれない。
【０１９８】
ほとんどの場合、物理バックアップ・セグメント細分度に基づいた物理メモリの部分への更新をマークし止めること、たとえば、物理バックアップ・セグメントのサイズとしてディスク上のトラックを使用し、さらに格納された論理オブジェクトへの時期尚早の更新をマークし止めることが最も容易だろう。他の代案が実装されてもよい。単なる一例として、ディスク・システムでは、物理バックアップ・セグメントとしてトラックを使用することができるだろうが、更新の予防はデータ・ブロック・レベル（トラック・レベルではなく）でマークされ追跡されるだろう。
差分バックアップ
図５および図６に似たシステムは、従来通り、ユーザによって指定される論理構成あるいはエレメント（論理オブジェクト）全体をバックアップする。例えば、ユーザは、バックアップされるパーティションを指定してもよい。これが実行されると、全パーティションがバックアップ・ストレージ・システムにコピーされる。同様に、ユーザはバックアップされるデータベースかファイルを指定してもよい。この場合、全データベースかファイルがバックアップ・ストレージ・システムにコピーされる。
【０１９９】
これには、究極的には不必要である重大な時間が必要となる。例えば、非常に大きなファイルが、一時点でバックアップされるかもしれない。それから、別のバックアップが後で実行されるかもしれない。ファイルのほとんどが、その２回のバックアップ間で変更されていなかったかもしれない。したがって、完全なファイルの新たなバックアップを生成することは、不経済であるかもしれない。
【０２００】
図２１は、差分バックアップを作成するための本発明の１つの実施例を示す。差分バックアップは、コンピュータ・システムの操作中に変更されたものに基づいて、論理オブジェクトの部分だけをバックアップすることである。
【０２０１】
ステップ４７０で、レベル０（ゼロ）バックアップが実行される。レベル０バックアップは、論理構成の完全なバックアップである。例えば、ファイルのレベル０バックアップは、ファイル全体をバックアップすることである。（仮想）パーティションのレベル０バックアップは、このパーティション全体をバックアップすることである。したがって、レベル０バックアップは、それ以上の情報のない論理オブジェクトを復元するために使用されることができる。
【０２０２】
ステップ４７２で、システムは、最後のレベル０バックアップからのデータの変化を追跡する。例えば、図２Ｂを参照して、１つでも変更されていればそのデータを含むセグメントが追跡されてもよい。セグメント１、３、および５が変更されたデータを含んでいる場合、対応するビットあるいは他のレコードが、これらのセグメントが変わった（かつ、他のものではない）ことを指し示すようにさせることができるだろう。下でもっと完全に記述されるが、セグメントは、論理レベルの情報に基づくのではなく、データがどう物理的に格納されているか（例えば、ストレージ・ブロックによって）によって、定義されてもよいし、また抽象ブロック・セットの物理バックアップ・セグメントの細分度、あるいは更新を防ぐためにマークされる物理セグメントの細分度に対応してもよい（しかし必要はない）。
【０２０３】
ステップ４７４で、変更されたデータ・セグメントはバックアップされる。ファイル全体ではなく、変更されたデータ・セグメントだけをバックアップすることによって、バックアップの生成が非常に迅速に実行されるかもしれない。ただ変更されたデータ・セグメントのレコードだけを使用して、ファイルを格納し復元する方法の１つの実施例が下に説明される。このバックアップは「差分バックアップ」と呼ばれてもよい、なぜなら、例えば、変更されなかったいくつかのデータ・セグメントはバックアップされないといったように、論理データ・ブロックのすべてより少ない部分がバックアップされるからである。
【０２０４】
ステップ４７６で、新しいレベル０バックアップが生成されるべきかどうかが判定される。生成されるべきでないならば、システムは、ステップ４７２で、最後のレベル０バックアップからの変更をトラッキングし続ける。したがってこの実施例の中で、ステップ４７４で生成される差分バックアップは、最後の差分バックアップからではなく、最後のレベル０バックアップから変更されたデータを常時記録する。代案となる実施例は、最後の差分バックアップからの変更をトラッキング（追跡）することである。
【０２０５】
ステップ４７８で、新しいレベル０バックアップが生成されようとする場合、変更されたデータのトラッキングがリセットされる。例えば、これは、下で記述されるように、データ・セグメントと結び付いた「変更ビット」のリセットにより実行されてもよい。これが実行される時、変更ビットがリセットされ（そしてレベル０バックアップが実行されている）ている間に、データが変更されないことを保証するために、システムはオフ・ラインか、バックアップ・モードに置かれてもよい。新しいレベル０バックアップが実行される時、将来の変更が、初期のものからではなく、そのレベル０バックアップからトラッキングされるだろう。
【０２０６】
別の実施例では、変更されたデータのトラッキングのリセットが、変更されたデータ・セグメントをバックアップするステップ４７４の後に実行されてもよい。この場合、それぞれの差分バックアップは、最後の差分バックアップからの変更だけをトラッキングする。これが終わると、下で説明されるように、データを復元するために、興味のある時に実行された単に１つの差分バックアップではなく、多数の差分バックアップ・ファイルが検査される必要があるかもしれない。
【０２０７】
上で記述されるように、完全かあるいはレベル０のバックアップが実行されてもよい。例えば、任意の順で格納された物理バックアップ・セグメントを使用して、抽象ブロック・セットが、バックアップのレベルとしてのメタデータと一緒に、作成されてもよい。
【０２０８】
ステップ４７２が、論理レベルか、物理レベルのどちらかで実行されてよい。論理レベルでは、クライアント５０が、変更されたデータを含んでいるセグメントをトラッキングしてもよい。物理レベルでは、ストレージ・システム５４が、データのどのセグメントが変更されたかをトラッキングしてもよい。いずれの場合も、データのセグメントは、論理レベルで決定され、論理構成と結び付いたデータのユニット（例えば、パーティション内のファイル）ではなく、ストレージ・システム上に格納されるデータの物理セグメントに対応するかもしれない。
【０２０９】
一度に物理ストレージ装置から書き込みあるいは読み出しされる物理セグメントは、５１２バイトのブロックであってもよい。別の実施例では、物理セグメントの細分度が、使用される物理ストレージ装置（特に物理ストレージ装置がディスクドライブである場合に）の１トラックに格納されるデータ量であってもよい。この大きさは、適用されているオペレーティング・システムにデータを格納するための特定のフォーマットに依存するかもしれない。例えば、固定ブロック・アーキテクチャ環境では、トラックは３２キロバイト（６４ＳＣＳＩブロック）かもしれない。ｃｏｕｎｔ−ｋｅｙ−ｄａｔａ（ＣＫＤ）システムを実装しているＩＢＭメインフレーム上では、セグメント・サイズは１つのＣＫＤトラックのサイズであるかもしれない。上記のように、変更が記録される物理セグメントの細分度は、物理バックアップ・セグメントのサイズ、あるいはコピーかバックアップ処理の間に更新が止められる細分度に一致してもよいが、必要ではない。しかしながら、多くの場合、例えばシステム全体の細分度としてディスク上の１物理トラックを使用するように、これらの機能の各々に対して同じ細分度を使用することが最も効率的だろう。
【０２１０】
ある実施例では、変更されるセグメントが、物理ストレージ・レベルで追跡されてもよい。したがって、物理セグメントが物理ストレージ装置に書き込まれる場合は常に、セグメントが変更されたという事実が記録されることができる。これは、各物理セグメントと結び付けられた単一ビットを用いて、実行されてもよい。システムが初期化される場合、ビットはすべて０（例えば）にセットされる。物理セグメントが変更される（あるいは書き込まれる）場合、結び付いたビットがセットされてもよい。
【０２１１】
したがって、図２Ｂを再び参照して、データの変更が、実際の物理ストレージ装置２０４〜２０６のレベルで追跡されてもよい。データがデータ・セグメントのうちの１つで変更される場合、ビットが、そのセグメントが変更されたトラックにセットされてもよい（あるいはいくつかの他のメカニズムが使用されてもよい）。データがアプリケーション・レベルでアプリケーション・ファイルの１番目のセグメント内、例えば２０３ａで変更される場合、実際の物理ストレージ装置内の２０８のデータが修正されるだろう。この書き込みが実行された場合、データ・セグメント２０８に結び付けられたビット（あるいは他のメカニズム）がセットされるだろう。
【０２１２】
図２は、物理ストレージ・セグメントに結び付けられたビットを含むシステムの一例を示す。例えば、物理ストレージ装置２０１ａは、６つの物理セグメントを含む。結び付けられた物理ビット・マスク４１２は、変更された各物理セグメントに対して１つのビットをセットする。この例では、セグメント４１１ａおよび４１１ｂが変更された。従って、物理ビット・マスク４１２の結び付けられたビット４１２ａと４１２ｂが、１にセットされた。問い合わせに対して、物理ビット・マスクが読み取られ、クライアント（例えば、図５に示されたシステムのクライアント５０）に出力されてもよい。
【０２１３】
実際の物理ストレージ装置２０４〜２０６は、アプリケーション・レベルで何がなされようとしているかについての任意の考えを持ってもよい、しかし必要はない。この実施例で、物理ストレージ装置は、適用されているデータのセグメント（例えば、２０８）が修正されていることにただ気づいていればよい。
【０２１４】
（ここに記述された実施例の多くが、データの変化を表わすために、例えば物理ビット・マスクや論理ビット・マスクといったビット・マスクを使用しているけれども、他のメカニズム（リストは単に一例である）が使用されてもよい。）
上で記述された実施例では、データ・セグメントへの変更が物理ストレージ・レベルで追跡される（代案となる実施例では、その変更が、他のいかなるレベルで追跡されてもよいだろう。例えば、図１を参照しながら示され説明された、アプリケーション・レベル、ファイルシステム・レベル、論理ボリューム、あるいは論理ボリューム・マネージャ・レベル）。
【０２１５】
「差分」バックアップを実行する１つの実施例では、物理レベルでの変更に関するデータが、論理（例えば、アプリケーション・ファイル）レベルでの変更に対応するよう変換される。その後、差分バックアップは論理レベルでデータを格納する。
【０２１６】
図２２は、物理レベルで変更を追跡し、それを論理レベルに変換する１つの方法を示す。この実施例では、ビット・マスク４１２、４１３および４１４が、それぞれ実際のストレージ装置２０４〜２０６と結び付けられる。
【０２１７】
データがデータ・セグメントに書き込まれる時、対応するビットおよび対応する物理ビット・マスクが０から１へ変更される。従って、いかなる時でも、物理ビット・マスクは、最後のバックアップ以来、変更されたデータのすべてを示す。上で記述されるように、実際の物理ストレージ装置２０４〜２０６は、アプリケーション・レベルでこれが論理オブジェクトにどう対応しているのか知らなくてもよい。本当に、実際の物理ストレージ装置は、どのデータ・セグメントが互いに結び付いているかを判断する方法を持たないかもしれない。図２２に示されるように、この実施例では、データ・セグメント４１１ａ〜４１１ｄが変更された。従って、ビット・マスク４１２、４１３および４１４中の対応するビット４１２ａ、４１２ｂ、４１２ｃ、４１２ｄが１にセットされた。（実際の物理ストレージ装置中の他のデータ・セグメントがさらに変更されたかもしれないが、図２２では示されていない）
論理ビット・マスク４１０が構築されてもよく、それはアプリケーション・レベル・ファイル内のどのデータ・セグメントが修正されたかを示す。したがって、論理ビット・マスク４１０は、対応するデータ・セグメント４１１ａ〜４１１ｄが変更されたことを示すエントリ４１０ａ〜４１０ｄを含んでよい。（代案となる実施例では、たとえセグメント・サイズが、ブロックかトラック・サイズのような物理ストレージ量と一致していても、セグメントの変更が論理レベルで追跡されてよい。）
論理ビット・マスク４１０は、マッピング２０２を使用して構築されることができる。特に、マッピング２０２は、アプリケーション・レベル・オブジェクトを実際の物理ストレージ中のデータ・ブロックのグループに変換してもよい（アプリケーション・レベルのファイルを物理ストレージに格納するために、まず第１にこのことがなされる必要があるため）。したがって、マッピング２０２が、アプリケーション・レベルのデータを物理ストレージ装置にマッピングするために、同じメカニズムを用いて実行されてもよい（例えば、図１のレベル１０、１２、１４および１６を通して）。そうして、実際の物理ストレージ上のこれらのデータ・セグメントと結び付けられた物理ビット・マスクが検査されてもよい。論理ビット・マスクは、そのデータ・セグメントが変更されたことを実際の物理ストレージ装置が単に指し示す、論理ビット・マスクの各エントリを１にセットすることにより構築されることができる。
【０２１８】
図２３は、抽象ブロック・セットの差分バックアップを実行する方法の１つの実施例を示す。この実施例では、実際の物理ストレージ装置中の影響を受けたメモリが、ステップ２３１で、まず静止される。メモリを静止させることによって、アプリケーション・レベルのファイル内のいかなる追加データも修正されないということが保証される。静止は、以前に一般的に説明したように、例えばアプリケーションをオフラインにし、又はアプリケーションをオンライン・バックアップ・モードにすることで実行される。
【０２１９】
ステップ２３２において、物理記憶装置内のどの物理データ・セグメントが対象であるかを決定するために、論理対物理マッピングが行われる。ステップ２３２は、以前に一般的に説明したように実行される。即ち、アプリケーション、ファイル・システム及び論理ボリューム・マネージャ（実在するものと、もし有れば付加的なマッピング・レベル）を用いて、アプリケーション・ファイル中の全データ・セグメントを物理記憶上へマップする。上述のように、これはオブジェクトを実物理記憶までマップする。他の実施例においては、付加的なレベルのマッピングが、データを記憶している実物理記憶に達する前に生ずる。例えば、上述のＳｙｍｍｅｔｒｉｘ製品では、３つのボリューム記憶装置において実施され得る。このＳｙｍｍｅｔｒｉｘ製品は、データベースをこの３つのボリューム・セット上で変更しなければならない。一方、Ｓｙｍｍｅｔｒｉｘ内にデータが実際に物理的に記憶される方法は、アプリケーション又はオペレーティング・システム・レベルに与えられた３つのボリューム・セットに対応しない。従って、データ・セグメント及びビット・マスクに対する付加的なレベルのマッピングが、記憶装置内で実行される。
【０２２０】
データへの変更の追跡の粒状性は、データ・ブロック又は物理バックアップ・セグメントのサイズのような異なる粒状性のサイズに基づいている。例えば、物理データ・ブロック・サイズが全トラックより小さいときは、変更データは物理トラックに対応して追跡され得る。
【０２２１】
ステップ２３３において、最終時間マーク以後に変更された物理データ・セグメントが識別される。これは、物理記憶装置に関連する物理ビット・マスクを検査することによってなされる。適切な論理オブジェクト内の物理データ・ブロックを含むアプリケーション内の物理バックアップ・セグメントに対応する、物理ビット・マスク内の変更されたデータをマークしている任意のエントリーは、変更されたかも知れないデータに対応している。ステップ２３２において、図２２の論理ビット・マスク４１０のような論理ビット・マスクが構成される。
【０２２２】
ステップ２３４において、差分抽象ブロック・セットが生成される。このステップは変更されたデータを含む物理バックアップ・セグメントのみのコピーを含む。１つの実施例では、上述の抽象ブロック・セットに関して、この抽象ブロック・セットは任意の順序で物理バックアップ・セグメントを記録していてよい。
【０２２３】
従って、ステップ２３４において、差分ちゅしょうブロック・セットに対するメタ・データも記憶される。このメタ・データは、バックアップ又はコピー中の論理オブジェクト内の差分抽象ブロック・セット内に記憶された物理データ・ブロックの適正な位置を識別するために十分な情報を記録する。
【０２２４】
最後にステップ２３６において、アプリケーションは活動モードに戻る。即ち、システムは実物理記憶装置上の物理データ・ブロックの更新を続けることを許される。
【０２２５】
上述のように、システムが活動モードに戻る前に、実物理記憶装置上のバックアップされたデータ・セグメントに対応するビットが、ゼロにリセットされる。これは、最後の差分バックアップに関して差分バックアップが行われる場合にのみ実行される。さもなければ、ビットは真の（又は後述のマージ）レベル・ゼロ・バックアップの構成後にのみリセットされる。
【０２２６】
図２４は、図２３の方法による差分抽象ブロック・セットの生成の例を示す。論理オブジェクト２４０は、５つの物理データ・ブロックを含む。（簡単のために、物理バックアップ・セグメントと物理データ・ブロック・サイズは図２４と同じとする。しかしながら、上述のように、物理バックアップ・セグメント・サイズは、物理データ・ブロックより大きくてもよい。）
時間的に以前において、抽象ブロック・セット２４２が形成されている。上述のように、抽象ブロック・セットは、論理オブジェクト２４０の論理データ・ブロックのそれぞれを記憶しているが、順序は任意である。抽象ブロック・セット２４２は、論理オブジェクト内のデータ・ブロックの位置を特定するメタ・データを含み得る。
【０２２７】
抽象ブロック・セット２４２が形成された後、論理オブジェクト２４０内のデータに追加の変更があった。この例においては、論理ビット・マスク２４１が、これらの変更を反映している。特に、論理ビット・マスク２４１は、論理オブジェクト２４０内の２番目と最後のデータ・ブロックが変更されたことを示している。
【０２２８】
差分抽象ブロック・セット２４３は、変更されたデータ・ブロック（２番目と５番目）を記憶している。上述のように、これらは任意の順序で記憶されている。差分抽象ブロック・セットは、その差分抽象ブロック・セットに対するメタ・データを記憶している。図２４の例では、このメタ・データは、完全な抽象ブロック・セット２４２に対するメタ・データと同じ一般的な形式である。しかしながら、このメタ・データは、最近のバックアップ以後どの論理ブロックが変更されたか（再度、この例では２番目と５番目）を特定する拡張カラムを含む。
【０２２９】
完全な抽象ブロック・セット・バックアップと差分抽象ブロック・セットから論理オブジェクトを復元するためには、これら２つが組合せ即ちマージされる。実際、１つの抽象ブロック・セットと１つ以上のサブ抽象ブロック・セットが任意の時刻にオフラインでマージされ得る。これは、サブの抽象ブロック・セットが形成された時点の論理オブジェクトの状態を反映した、合成された完全な抽象ブロック・セットの形成を許す。
【０２３０】
図２５は、図２４の例を用いたマージ・プロセスの例を示す。図示のように、全抽象ブロック・セット２４２の元のデータ・ブロック２４２ａ−ｂは、差分抽象ブロック・セット２４３において更新されている。従って、マージされた抽象ブロック・セット２５３において、これらのデータ・ブロックは更新された版で置き換えられている。
【０２３１】
図２６は、このマージ・プロセスの方法の１実施例を示す。図２６の実施例においては、１つ以上の差分抽象ブロック・セットがあり得る。１つ以上の差分抽象フロック・セットは、例えば（最後の完全バックアップ以後の全変更を反映する差分抽象ブロック・セットが生成されるのでなく）最近の差分抽象ブロック・セットの生成以後の変更を反映した差分抽象ブロック・セットが生成された場合に存在し得る。もちろん、この方法は単一の差分抽象ブロック・セットと共に動作することもできる。
【０２３２】
ステップ２６０において、最近の完全又は差分抽象ブロック・セットが選択される。もちろん、この選択は、目標時間より以前に記録された論理オブジェクトからなされる（目標時間より以後の差分抽象ブロック・セットは、復元すべきものより以後のデータを反映している）。ステップ２６１において、マージされた抽象ブロック・セット内に無い全ての論理データ・ブロックが、マージされた抽象ブロック・セットに追加される。
【０２３３】
図２５を参照すると、ステップ２６０で選択された最初の抽象ブロック・セットは、差分抽象ブロック・セット２４３である。マージされた抽象ブロック・セット内にはまだブロックが無いので、差分抽象ブロック・セット２４３内の２つのデータ・ブロックがマージされた抽象ブロック・セット２５３に追加される。これは最初の２つのデータ・ブロック２５３ａ−ｂに対応する。
【０２３４】
ステップ２６２において、差分及び完全抽象ブロック・セットの全てが検査されたか決定される。まだなら、プロセスはステップ２６０へ続く。
図２５の例に戻ると、選択される次の抽象ブロック・セットは、完全抽象ブロック・セット２４２である。ステップ２６１において、マージされたＬＢＯ内に既に有ったこれらの論理データ・ブロックが追加される。これは、２４２ａ及び２４２ｂを除くデータ・ブロックの各々に対応する。
【０２３５】
この時点で、再度抽象ブロック・セットの全てが検査され、プロセスはステップ２６３へ続く。ステップ２６３において、マージされた抽象ブロック・セットに対するメタ・データが生成される。図２５及び図２６の例を用いれば、メタ・データは同じ形式であり得る。即ち論理ブロック要素の物理アドレスは変更されない。従って、メタ・データは同一である。メタ・データを生成する他の実施例では、メタ・データ・テーブルが更新されその形式に対応される。
【０２３６】
マージされた抽象ブロック・セットは、元のレベル・ゼロ抽象ブロック・セットと同様にコピー及び復元に用いられ得る。
１次から２次記憶ノードへの転送、単一の２次記憶ノードの例
上述のように、図１１Ａ及び図１１Ｂに関して、記憶システムの１側面は、データの１次記憶要素又はノードから２次記憶要素又はノードへの転送を含む。
【０２３７】
図２７は、データをテープに記憶するために、１次記憶ノードから２次記憶ノードへ転送するのに特に有利な機構の例を示す。図２７の実施例及び構成要素の例は、（これらの発明に限定する意図では無いが）上述の他の発明の文脈においても、それらの発明と独立に実装されたシステムに対して有用であるのと同様に有用である。
【０２３８】
図２７は、１次記憶ノード２７０を含む。これは、例えば、上述のＳｙｍｍｅｔｒｉｘ記憶システムであってよい。このようなシステムにおいては、ホスト・アダプタ２７０ａがホストとの通信用に提供されている。ディスク・アダプタがディスクとのインターフェースように提供され得る。リモート・アダプタ２７０ｃが、ＳＣＳＩリンク、ＥＳＣＯＮリンク、ファイバー・チャンネル、交換ネットワーク又は他の通信チャンネルのいずれかを介する、リモート装置との通信を扱う。加えて、キャッシュ２７０ｂが送受信データのキャッシュ用に提供され得る。
【０２３９】
図２７はまた、２次記憶ノードも示す。この実施例においては、２次記憶ノードは複数のデータ移動要素２７１ａ、２７１ｂ、２７１ｅ及び２７１ｆを有する。この実施例において、データ移動要素は、フロント・エンド及びバック・エンドの対に構成されている。例えば、データ・ムーバー２７１ａは、フロント・エンド・データ・ムーバーであり、主として１次記憶ノードからのデータを受け取る責任がある。フロント・エンド・データ・ムーバー２７１ａは、バック・エンド・データ・ムーバー２７１ｅと対になる。バック・エンド・データ・ムーバーは、データを２次記憶ノードからバックアップ媒体に移動する責任がある。
【０２４０】
図２７に示すように、データの並列転送を提供するために、１つ以上のフロント・エンド・データ・ムーバーとバック・エンド・データ・ムーバーの対がある。この例では２７１ａ−２７１ｅと２７１ｂ−２７１ｆの２対が示されている。
【０２４１】
図２７の例における実際のバックアップ媒体はテープ・ライブラリ２７２である（他の実施例では他のバックアップ媒体を用い得る）。テープ・ライブラリは、複数のテープ・ドライブ２７２ａ−ｄを含み、それらの各々はテープからデータを読み書きできる（また、例えばＳＣＳＩアダプタのような適当な通信アダプタを含み得る）。テープ・ライブラリ２７２は、テープライブラリ２７２ｇからテープを選択しそれらのテープをドライバ２７２ａ−２７２ｄへ挿入し得るロボット２７１ｆを含むこともできる。ロボット・インターフェース２７２ｃが、選択プロセスを制御する。
【０２４２】
２次記憶ノード２７１へ戻って、この２次記憶ノードは、バックアップ中にフロント・エンド・データ・ムーバー（例えば２７１ａ）から受け取ったデータを、バック・エンド・データ・ムーバー（例えば２７１ｅ）によってテープに書き込む前にバッファしたり、逆に復元中にデータを（バック・エンド・データ・ムーバー２７１ｅによって）内部記憶装置２７１ｃに置き（フロント・エンド・データ・ムーバー２７１ａによって）１次記憶ノードへ送る事によってバッファするための、内部記憶装置２７１ｃを含み得る。
【０２４３】
データ・ムーバー２７１ａ、２７１ｂ、２７１ｅ、２７１ｆは、バックアップ中にはデータを１次記憶ノードからテープ・ライブラリへ転送し、復元中にはその逆に転送するようにデータ・ムーバーに実行させるソフトウエアが走っているインテル・ベースのパーソナル・コンピュータでよい。
【０２４４】
上述のように、データ・ムーバーは、例えばフロント・エンド・データ・ムーバー２７１ａとバック・エンド・データ・ムーバー２７１ｅのように対に構成されている。データ・ムーバーの各対は１つ以上の仮想回線又はストリームを定義するために用い得る。
【０２４５】
フロント・エンド・データ・ムーバー（例えば２７１ａ）は、種々の接続の任意のものを用いて１次記憶ノード２７０へ接続される。例えば、図２７の例では、２本のＥＳＣＯＮケーブルが用いて、各フロント・エンド・データ・ムーバーと単一の１次記憶ノード（例えばＳｙｍｍｅｔｒｉｘ記憶装置）のリモート・アダプタのポートが接続されている。
【０２４６】
図２７の例では、バック・エンド・データ・ムーバー２７１ｅ、２７１ｆは、ＳＣＳＩケーブルを用いてテープ・ライブラリ装置２７２に接続されている。この例においては、各ＳＣＳＩ接続は、テープ・ライブラリ２７２の単一の読み書きドライブ２７２ａ−２７２ｄに延びている。もちろんＳＣＳＩ接続は、デイジーチェインにでき、１つ以上のドライブを各バック・エンド・データ・ムーバーのポートへ接続することもできる。他のリンクや交換ネットワークを含む他の接続を用いることもできる。
【０２４７】
内部記憶メモリー２７１ｃそれ自体も、Ｓｙｍｍｅｔｒｉｘのような反復キャッシュ・ディスク・アレイであってよい。従って、Ｓｙｍｍｅｔｒｉｘ製品は、フロント・エンドからバック・エンドへのデータの移動のための内部キャッシュ・メモリーとして含まれ得る。内部メモリー装置２７１ｃは、内部記憶装置２７１ｃのローカル制御用のラップトップ・パーソナル・コンピュータのようなサービス・プロセッサを含む。内部記憶装置はまた、データ・ムーバー２７１ａ、２７１ｂ、２７１ｅ、２７１ｆや制御ステーション２７１ｇ上で走るアプリケーション・プログラムやオペレーティング・システムも記憶している。
【０２４８】
制御ステーション２７１ｇは、ＳＣＯ ＵＮＩＸのような多くのオペレーティング・システムの内の任意のものが走るインテル・マシンである。制御ステーション２７１ｇはまた、そのローカル操作用のキーボードと画面を含む。
【０２４９】
制御ステーション２７１ｇは、データ・ムーバー２７１ａ、２７１ｂ、２７１ｅ、２７１ｆの動作の制御を行う。制御ステーション２７１ｇは、この機能を実行する制御ソフトウエア２７１ｂを含む。コントローラ２７１ｂは、システム構成及びシステム動作の監視にも用いられる。制御ステーション２７１ｇは、データベース２７１ｉを含む（これは、代替として内部メモリー２７１ｃに記憶され得る）。データベース２７１ｉは、実行中の全バックアップ・ストリーム又はセッションに関する情報、テープ・ライブラリ装置内のテープの内容及びバックアップ・プロセスとバックアップ媒体を管理するための他の制御情報を記憶する。
【０２５０】
制御ステーション２７１ｇは、テープ・ライブラリ装置２７２のロボット２７２ｃ、２７２ｆを操縦し、制御するためのインターフェース２７１ｊも含む。
上述のように、１次記憶ノード２７０は、ホスト接続（例えば、ホスト・アダプタ２７０ａに接続されたホスト・コンピュータ）と２次記憶ノードとの間のインターフェースとして用いられる。これらの実施例において、そして記憶管理アプリケーションが主としてホスト・コンピュータにある場合には、１次記憶ノード２７０は、ホスト・コンピュータから２次記憶ノード２７１への命令の経路として用いられる。そのような命令は、テープのマウント及びマウント解除、テープ・ヘッダ及びトレーラーの読み書きを指示する命令や他の命令を含む。
【０２５１】
１次記憶ノード２７０は、適当な命令を２次記憶ノード２７１へ単にわたす。その代わりに１次記憶ノード２７０は、形式検査のような、これらの命令に基づくいくらかの機能を実行することもできる。
【０２５２】
上述のように、バックアップ復元プロセスは、２次記憶ノード２７１を介して１次記憶ノード２７０とテープ・ライブラリ２７２の間に仮想チャンネルを確立することによって実行できる。上述のように、これは１次記憶ノード２７０と２次記憶ノード２７１の間にネットワークを介する接続を形成することを含む。これは、テープ・ドライブ２７２ａ及び適切なテープ２７２ｇとの接続の確立も含む。
【０２５３】
図２８は、仮想チャンネルを確立し維持するノード２７１のような２次記憶ノードに対する状態遷移図の例を示す。状態２８０において、バックアップ・ストリーム・セッション（又は仮想チャンネル）が記憶管理アプリケーション（例えばホスト・コンピュータ上の）によって要求される。仮想チャンネルの確立には、適当なフロント・エンド及びバック・エンド・データ・ムーバー対、例えばフロント・エンド・データ・ムーバー２７１ａとバック・エンド・データ・ムーバー２７１ｅの選択を含む。
【０２５４】
記憶管理アプリケーションによって実行される機能には、テープのオープンがある。結果として、２次記憶ノード２７１はテープの仮想チャンネル開始状態２８１になる。この遷移は、当分野で知られたものと同様の技術を用いて、適当なテープをマウントする事を含む。テープ状態２８１のはじめに、テープ管理プロセスの一部として、テープ・ヘッダ及びトレーラーが読み書きされる。
【０２５５】
テープ上に情報を記録する時には、２次記憶ノード２７１（又は２次記憶ノード内の少なくとも適切なデータ・ムーバー）は、仮想チャンネル書込み状態２８２に入る。この状態において、テープへの１つ以上の抽象ブロック・セット又は抽象ブロック・セットの部分の書込みのような、バックアップの記録部分が実行される。
【０２５６】
テープの最後に至ると、２次記憶ノード２７１の適切なデータ・ムーバーは、仮想チャンネル・テープ終端状態２８４へ入る。この状態において、適切なカタログ情報が読み出され、適切なテープ・トレーラーが書き込まれる。テープの終端（又はデータの最後）に至ると、適切な仮想チャンネルはそのテープのクローズを必要とし、データ・ムーバーと２次記憶ノードを、そのチャンネルが形成された最初の状態２８０に戻す。
【０２５７】
状態２８２から書込み中にエラーに遭遇すると、仮想チャンネルはエラー状態２８３に入り得る。テープはクローズされ（状態２８０へ戻り）、エラー記録が作成され、システム・オペレータに知らされる。
【０２５８】
上述のように、記憶管理アプリケーションは２次記憶ノード２７１の状態を変更する適当な命令を発行する責任がある。記憶管理アプリケーションは、ホスト・コンピュータ、１次記憶ノード、別のネットワーク記憶制御装置又は２次ノード２７１に存在し得る。
【０２５９】
図２９は、テープから情報を復元するための２次記憶ノード２７１の状態遷移図を示す。状態遷移図は、仮想チャンネルのオープン要求を受け取った状態２９１から始まる。記憶管理アプリケーションは、例えばバックアップ・チャンネル・ストリームに対してテープ・オープンを要求することによって、テープのオープンを扱う。これは結果として、テープの仮想チャンネル開始状態２９２へ入る。以前と同様に、これはテープ・ヘッダ及びトレーラーの読み出しと、抽象ブロック・セットを用いるシステムに対して、抽象ブロック・セット・メタ・データの読み出しを含み得る。
【０２６０】
実際のデータの読み出しは、テープ読み出し命令を用いて２次記憶ノード２７１を仮想チャンネル読み出し状態２９３に入れることによって制御され得る。
実際のデータの読み出しは、２次記憶ノード２７１を仮想チャンネル読み出し状態２９３に入れる、テープ読み出し命令を用いることによって制御できる。テープン終わり（又はデータの終わり）又はログアウトにおいて、２次ノードは仮想チャンネル・テープ終端状態２９２に戻る。テープはそこでクローズされ、２次記憶ノード２７１は仮想チャンネル・オープン状態へ戻る。
【０２６１】
読み出し中にエラーに遭遇すると、ノード２７１は図２８を参照する上述のエラー状態と同様にエラー状態２９４に入る。エラーが生ずると、テープはクローズされ、エラーログが記録され、システム・オペレータに知らされる。
【０２６２】
バックアップ及び復元の両方において、テープのカタログ化及び識別は、記憶システムに記憶されたデータの形式化のための他の機構に対して行われるのと同様に、記憶管理アプリケーションによって扱われる。２次記憶ノード２７１の制御ステーション２７１ｇが、制御ステーション・データベース２７１ｉを用いて、適当なテープの識別、マウント及びマウント解除を補助する。
【０２６３】
図２８及び図２９のバックアップ及び復元状態遷移図は、システム（１次記憶ノード及び／又は２次記憶ノード）を非同期転送状態に置く実施例を構成する。特に、記憶ドメインのノードは、多くの記憶管理アプリケーション・プロセス（及びソフトウエア）がホスト・コンピュータ上で実行されていても、ホスト・コンピュータやホスト・ドメイン要素のどれからの制御からも独立にデータが転送される状態に入る。
【０２６４】
本発明のこの事実の種々の実施例は、コピー、バックアップ及び復元の独立の制御及び転送の利点を許す。本発明のいくつかの実施例においては、これは特定のホスト・プラットフォームの従属性を緩和し、ホスト資源を節約する。本発明のこの側面のいくつかの実施例は、拡張性の増大をもたらし、ホスト構成に対するより少ない依存関係でメモリーの増設を許す。
データ転送の1実施例
図３０は、２次記憶ノード又は他の１次記憶ノードへデータを転送する機能を有する１次記憶ノードのアーキテクチャの1実施例を示す。この実施例は（他のものと同様に）上記の１つ以上の発明を実現するために用いることが出来る。
【０２６５】
図３０は１次記憶ノードを示す。１次記憶ノード３００は、図７を参照して一般的に説明したように、リモート・アダプタ３０１を含む。１次記憶ノード３００は、これも図７を参照して一般的に説明したように構成されているディスク・アダプタ３０５も含む。
【０２６６】
データは１次記憶ノード３００内にある複数のディスクにわたって記憶されており、複数のディスクの内の１つがディスク３０６として図３０に示されている。
【０２６７】
ディスク３０６は、図２０を参照して説明したような保護ビットを含むことが出来る。これらの保護ビットは、コピーされるべきトラック即ちそれらがコピーされる前に更新されるべきでないトラックを示すために用いる事が出来る。保護ビット３０７は、１実施例においては、ディスク装置３０６に対するシリンダー、ヘッダに記憶できる。ディスク装置３０６は、図２２を参照して一般的に説明した物理ビット・マスク（図示せず）も含むことが出来る。どのトラックが保護されているかをマークし、記録するための他の機構を用いることも出来る。
【０２６８】
図３０の実施例において、ディスク・アダプタ３０５は、記憶管理アプリケーションから、どの物理バックアップ・エレメントが（ここではトラック３０８ａ−ｅのどれが）バックアップ・プロセスの部分であるかに関する命令を受け取る。ディスク・アダプタはそこで、バックアップが起動される時に保護ビットを書き込む。
【０２６９】
バックアップ・プロセスの部分として示された物理バックアップ・セグメント（例えばトラック３０８ａ、３０８ｂ及び３０８ｅ）は、そこで１次記憶ノード３００のキャッシュ３０２内のサイド・ファイル３０３へコピーされる。こうして、サイド・ファイル３０３は他の記憶ノードへコピーするために指示されたトラック３０８ａ、３０８ｂ及び３０８ｅを受け取る。従って、サイド・ファイルはこれらのトラックのコピー３０３ａ−ｃを含む。
【０２７０】
付加的に、ディスク・アダプタ３０５は、要求キューへ、サイド・ファイル３０３にコピーされた物理バックアップ・セグメントを他のノードへ転送する要求を入れる。こうして、要求３０４ａ−ｃが、サイド・ファイル３０３内の物理バックアップ・セグメントに対応して、要求キュー３０４に入れられる。
【０２７１】
リモート・アダプタ３０１は、キューから要求を取り出し、適切なトラックのコピーを受け取り記憶ノード、例えば２次記憶ノードへ転送する。
サイド・ファイル３０３に保持されている適切な記憶バックアップ・セグメントは、実行中のバックアップ・プロセスの１つ以上のコピーの部分であり得る。例えば、１つ以上の抽象ブロック・セットが、リモート・アダプタ３０１に接続された１つ以上の仮想チャンネルを介してバックアップされているプロセス内にあり得る。この場合、抽象ブロック・セットに対する適切なメタ・データが、特定の抽象ブロック・セット及び、コピー又はバックアップ・プロセス用の仮想チャンネルの識別に用い得る。
【０２７２】
代替実施例においては、受け取り記憶ノードは、それが属する抽象ブロック・セットに基づいて物理バックアップ・セグメントを分類する。例えば、上述のフロント・エンド・データ・ムーバーは、トラックに対応しそのトラックに対する物理アドレスを含む物理バックアップ・セグメントを受け取ることが出来る。フロント・エンド・データ・ムーバーは、（バックアップ中の適切な論理オブジェクトに対する物理アドレスの全てを識別している）記憶管理アプリケーションによって定式化された抽象ブロック・セットのメタ・データを知っていても良い。これは、フロント・エンド・データ・ムーバーが、その物理アドレスに基づいて物理バックアップ・セグメントを分類することを許す。
【０２７３】
もちろん、種々の代替構成及び方法がサイド・ファイルを介する転送に利用できる。単なる１例として、物理バックアップ・セグメントは別々のサイド・ファイル内に、コピー又はバックアップ中の各抽象ブロック・セット（又は他の構造）に対してソートされてもよい。加えて、サイド・ファイルを転送用にデータのセグメントを蓄積するために用いる事が出来る。例えば、サイド・ファイルは、リモート・アダプタ３０１を介して２次又は他の記憶ノードへ転送する前に、少なくとも１０メガビットのデータを含むように生成する事が出来る。
【０２７４】
図３１は、図３０に示された構造を用いる方法の１実施例を示す。ステップ３１０において、保護ビット（図３０の３０７）がコピー中の物理バックアップ・セグメントに対してマークされる。上述のように、これは１つ以上の論理バックアップ・オブジェクトに対するビットをマークする事を含む。
【０２７５】
加えて、適切な論理オブジェクトに対するメタ・データが受け取り記憶ノード、例えば２次記憶ノードへ転送される。こうして、もしメタ・データが図１３の１３３に示された形式なら、このメタ・データはバックアップ・プロセスを特定し進める。このメタ・データは、図１３の１３４に示す形式に再定式化するように、論理バックアップ・オブジェクトに合体するためにバックアップ中に再定式化されても良い（されなくても良い）。いずれにしても、このメタ・データは、コピー又はバックアップ中の論理オブジェクトに関する適切な物理セグメントを蓄積し組織化するために、ディスク・アダプタ３０５、リモート・アダプタ３０１及び／又は受け取り記憶ノードによって利用される。
【０２７６】
ステップ３１１において、保護されたセグメントをキャッシュ内のサイド・ファイルへ転送する。これが終了すると、物理バックアップ・セグメントの転送の要求が、供給キュー内に記録される。上述のように、これは１次記憶ノードのディスク・アダプタによって実行される。この時点で、ディスク・アダプタ３０５は、ディスク装置３０６の保護ビット３０７の適切な保護ビットをリセットしてデータの更なる更新を許しても良い。
【０２７７】
サイド・ファイル内にあるセグメントは、ここでリモート・アダプタ３０１によって、２次記憶ノードに転送するように、他の記憶ノードに転送出来る。これは要求キュー３０４から転送要求を読み出すことによってなされる。
【０２７８】
転送の後（例えば転送が確認された後）、サイド・ファイル中の要求キュー内のセグメントに対する適切なエントリーが削除される。もちろんこれは、単に記憶領域を未使用に割り当てる事で行っても良い。
【０２７９】
図３２は、２次記憶ノード３２０を介するバックアップ・プロセスに於けるデータ・フローの１例を示す。この実施例においては、データはまずフロント・エンド処理装置３２２によって受け取られる。このフロント・エンド処理装置は図２７を参照して一般的に説明したものである。フロント・エンド処理装置３２２は、受け取った物理バックアップ・セグメントを内部メモリー３２３にバックアップ中の適切な実体に関するファイルとして記憶する。例えば、もし抽象ブロック・セットＬＢＯ＃１がバックアップ中なら、物理セグメントはその抽象ブロック・セットに関するファイル３２４に記憶される。１つ以上の抽象ブロック・セットが仮想チャンネルを介して同時に転送中なら、フロント・エンド処理装置は適切な物理データ・セグメントを適当するファイル、例えば３２４及び３２５にソートする。
【０２８０】
ファイルがある限界量、例えば１０メガビットに達すると、フロント・エンド処理装置３２２は、抽象ブロック・セットのセグメントがテープにコピーする準備が出来た事をバック・エンド処理装置３２６に通知する。そこで、バック・エンド・データ・ムーバー３２６は抽象ブロック・セットのその部分を内部メモリー３２３からテープ・ライブラリ装置３２１へコピーする。
【０２８１】
内部メモリー３２２がＳｙｍｍｅｔｒｉｘのような反復キャッシュ化ディスク・アレーの場合には、物理バックアップ・セグメントは適切なファイル３２４、３２５からバック・エンド・データ・ムーバー３２６によって後入れ先出し（ＬＩＦＯ）順にコピーされる。これはデータが内部メモリー３２３内のディスクからでなく、内部メモリー３２３内のキャッシュからコピーされる機会を増やすために行われる。
【０２８２】
上述のように、１つ以上の抽象ブロック・セットが仮想チャンネルを介して同時にバックアップされ得る。加えて、抽象ブロック・セットのセグメントは、固定サイズの部分として書き込まれる。例えば、もし蓄積ファイル３２４、３２５が物理バックアップ・セグメントを限界量（例えば１０メガ）まで蓄積したなら、抽象ブロック・セットは、テープのインターリーブされたセグメントに記憶される。制御装置及び制御ステーション（２７１ｈ及び２７１ｇ）はこの情報のデータベースを維持する事が出来る。加えて、適切な情報がテープの適切なヘッダとトレーラーに書き込まれ得る。
【０２８３】
図３３は、本発明の１実施例による装置によって書き込まれたバックアップ情報を含むテープの１例を示す。
【０２８４】
図３３において、テープは先頭部分３３０と終端部分３３２を有する。先頭部分３３０は、通常のテープ・ヘッダ３３０ａ、及び場合によって２次記憶ノードのための特定のテープ・ヘッダ３３０ｂとを含む。テープ・ヘッダ３３０ａ、３３０ｂの後に、テープは、ファイル・マークで分離された、抽象ブロック・セットのインターリーブされたセグメント（メタ・データを含む）３３８を含む。例えば、インターリーブされたセグメントは、物理バックアップ・セグメントの一連のコピー３３１ｂを含むレコード３３１を含む。セグメント・ヘッダ３３１ａとセグメント・トレーラー３３１ｃが、テープの他の部分から抽象ブロック・セットのこの部分を識別し分離している。
【０２８５】
データ・ブロック３３１を含む抽象ブロック・セットの部分とのインターリーブは、これ及び他の抽象ブロック・セットに対する他の抽象ブロック・セットの物理バックアップ・セグメント・レコードであり得る。加えて、レコード３３３は、抽象ブロック・セット・メタ・データを含むように書き込まれ得る。このメタ・データ３３３ａは、上述の形式の内の任意の形式でよく、他の形式でも良い。セグメント・ヘッダ情報３３１ａ及び３３３ａの１部として、例えば各抽象ブロック・セットに一意に割り当てられた抽象ブロック・セット識別子を用いて、適切な抽象ブロック・セットが識別できる。これは適切なテープ３３０、３３２上のインターリーブされたレコードの識別と調整を可能にする。
【０２８６】
テープ３３２の終端には、テープ・ディレクトリ３３４が書き込まれ得る。同様に、サーバー・テープ・トレーラー情報３３５も書き込まれ得る。テープの終端には、テープ・カタログ３３６及びテープの終端をマークする２次記憶装置テープ・トレーラー３３７が書き込まれ得る。
【０２８７】
テープのデータベースを用いて、適切な情報がバックアップ・テープから取り出し得る。抽象ブロック・セットは、任意の順序で書き込まれたデータ・ブロックを含むので、復元プロセスは、復元中の抽象ブロック・セットの部分を、任意の順序で効果的に取り出し、書き込む事が出来る。これは、記憶管理アプリケーションが、抽象ブロック・セットの部分を含む各テープを識別し、それらのテープを１回だけマウントする（そして適切な部分を全て読み出す）ことを許す。もちろん、マウントされるべき最初のテープは、復元される抽象ブロック・セットに対するメタ・データ・レコードを含むテープであろう。このため、メタ・データをそのプロセスの最初に読み出す事を簡単にするために、メタ・データを、そのメタ・データを保持するテープ上に書き込まれた抽象ブロック・セットの全てのセグメントの一端に記録する事が望ましいであろう。これは、データ・ブロックが取り出される順序に独立に復元プロセスを進めるための、上述の適正なマッピング・テーブルを形成する事を許す。
【０２８８】
上述の理由のために、抽象ブロック・セット内のデータ・ブロックを読みだし、復元する事は任意の順序で出来る。その結果、２次記憶要素の構成部分としてテープが用いられる時、データの記憶及び取り出しの両方に対してテープを任意の順序でマウントし、マウント解除する事が出来る。その結果、上述の実施例に示したように、２次記憶要素の中に１つ以上のテープ・ドライブが有る場合、データ・ブロックはバックアップ中に書き込み、復元中に読みだし、複数の奴隷部を用いて並行して用いることが出来る。
【０２８９】
図１４を参照して、データの並列書き込みは以下のように実行される。この例においては、メタ・データの更新（ステップ１４７）は、完全に先行して行われる。この例においては、メタ・データは１次記憶要素内で読み出されているデータの物理アドレスであり得る。従って、全てのメタ・データは、実際のバックアップ・プロセスに先だって決定できる。この場合には、ステップ１４４、１４６及び１４７は、並行して実行できる。即ち、物理バックアップ・セグメントが全て識別されメタ・データが決定された（即ちステップ１４２）後で、データ・ブロックは全て並列に読み出され、複数のテープに並列に書き込まれる。１つの実施例においては、最後のテープ（ランダムに選択されたであろう）は、そのテープの上の抽象ブロック・セットの１部であるデータ・ブロックの全ての最後にメタ・データを記憶できる。
【０２９０】
並列復元操作の１例を図１５を参照して説明する。上述のように、ステップ１５０−１５３に於て、論理オブジェクトの復元用のマッピングが決定される。この復元がテープからのものである場合、抽象ブロック・セットのメタ・データは先行して取り出され得る。上述のように、これがなされた後、抽象ブロック・セットは任意の順序で復元できる。従って、抽象ブロック・セットも、復元用の複数のテープ・ドライブを用いて、並列に復元できる。この場合には、ステップ１５４−１５８は、復元中の抽象ブロック・セットのデータ・ブロックを復元するための複数のテープ（又は他の媒体）を用いて並列に実行できる。
【０２９１】
仮想チャンネルを用いる実施例においては、別々の仮想チャンネルがデータの転送用の並行経路のそれぞれとして確立されている。例えば、別々の仮想チャンネルは、各テープ・ドライブ用に確立される。他の実施例では、単一の仮想チャンネルが確立されているが、その仮想チャンネルに入るチャンネル・データに複数のテープ・ドライブを許す。これは、テープ・ドライブからデータを読み出す速度は、２次記憶ノードから１次記憶ノードへデータを転送する能力より遅いので、特に効果的である。テープ・ドライブの並列読み出しを許す事は、復元の速度をデータ転送の能力及びそのデータを受け取る１次記憶要素の能力に近づける事を許す。
【０２９２】
１次記憶要素と２次記憶要素との間のバックアップ及び復元操作に関連して上述の多くの実施例の説明をしてきたが、本願発明の多くの側面はより広い応用を有している。単なる１例であるが、抽象ブロック・セットは、任意のデータ転送に用い得る。他の例として、２次記憶ノードの応用は、単なるバックアップ及び復元操作より大きなものであり得る。このような記憶ノードは、階層的な記憶管理や仮想ディスクの操作及びその他の応用にも用いることができる。
【０２９３】
上述の種々の方法は、コンピュータをプログラムし、制御するために用いる、フロッピー（登録商標）・ディスク、コンパクト・ディスク又は他の記憶装置上のソフトウエアとして実現できる。コンピュータは、開示したプロセスのステップを実行し、又は開示したブロック図と等価な構成を実現する、ワークステーション、メインフレーム又はパーソナルコンピュータのような汎用コンピュータであり得る。ソフトウエアは、完全なシステム、又は現状のシステムの改良として、システムが開示した方法を実行するように、ディスケットに含まれ得る。
【０２９４】
本願発明の実施例を説明したが、種々の修正や改良が当業者には自明であり、これらは本願発明の範囲に含まれるものと解釈する。従って、上述の説明は単に例示のためであって、本願発明の限定を意図するものではない。本願発明の範囲は請求項の記載によってのみ規定されるものである。
【図面の簡単な説明】
【０２９５】
【図１】アプリケーション・レベルから物理システムの記憶へ、及びその逆のデータ変換の例を示す図。
【図２Ａ】論理ボリュームと物理記憶装置との間の関係の例を示す図。
【図２Ｂ】論理ファイルを物理記憶システムへマッピングする例を示す図。
【図２Ｃ】論理オブジェクトを物理記憶装置へマッピングする他の例を示す図。
【図３Ａ】異なる物理記憶装置上のミラーリングの例を示す図。
【図３Ｂ】物理記憶装置上の冗長パリティー情報の例を示す図。
【図４】記憶装置の単一アレイ内の複数の冗長グループの例を示す図。
【図５】バックアップ記憶システムの例を示す図。
【図６】１次記憶システム上のデータの直接バックアップ用の機構を含むバックアップ記憶システムの実施例を示す図。
【図７】記憶システムの例を示す図。
【図８】本発明の実施例による、エンタープライズ・ホスト・ドメインとエンタープライズ記憶ドメイン又はネットワークとを有するように構成された、コンピュータ記憶システムの例を示す図。
【図９】本発明の実施例による、エンタープライズ・ホスト・ドメインとエンタープライズ記憶ドメインとを含む、コンピュータ・システムの他の例を示す図。
【図１０】論理オブジェクトをコピー又はバックアップする方法の実施例を示す図。
【図１１Ａ】本発明の実施例による、ホスト・ドメイン及び記憶ドメインを含む、コンピュータ・システムの構成要素のいくつかの例を示す図。
【図１１Ｂ】本発明の実施例による、ホスト・ドメインと記憶ドメインに分割された、コンピュータ・システムの構成要素の他の実施例を示す図。
【図１２】コンピュータ記憶システム内のデータをコピー又はバックアップする方法の実施例を示す図。
【図１３】本発明の実施例による、論理オブジェクトを物理記憶装置上にマッピングし、コピー又はバックアップ用の抽象ブロック・セットを形成する例を示す図。
【図１４】抽象ブロック・セットを形成する方法の実施例を示す図。
【図１５】抽象ブロック・セットから論理オブジェクトをコピーし、又は復元する方法の実施例を示す図。
【図１６】論理オブジェクトをメモリーの新しい領域へ復元するために、論理オブジェクトのメタ・データの２つの形式を再マッピング・テーブルに組み合わせる例を示す図。
【図１７】本発明の実施例による、コンピュータ・システムにわたる論理オブジェクトの記憶と、トラック・サイズに対応する物理バックアップ・セグメントを用いる抽象ブロック・セットの形成の例を示す図。
【図１８】データ・ブロックのサイズより大きな物理バックアップ・セグメント粒状性を有する抽象ブロック・セットのメタ・データの実施例を示す図。
【図１９】バックアップ中の論理オブジェクトに対する更新を防止しながら、論理オブジェクトのバックアップをする方法の実施例を示す図。
【図２０】本発明の実施例による、バックアップ・プロセス中の論理オブジェクト内の情報の更新の回避を許す、物理バックアップ・セグメントのマーカーを含むシステムの例を示す図。
【図２１】差分バックアップを許す方法の実施例を示す図。
【図２２】システムの物理レベルの変更を追跡し、これらの変更を論理情報に変換する実施例を示す図。
【図２３】本発明の実施例による、論理オブジェクト上の差分バックアップ実行の例を示す図。
【図２４】本発明の実施例による、論理オブジェクトのバックアップ用の全及び差分論理バックアップ・オブジェクトの形成の例を示す図。
【図２５】本発明の実施例による、抽象ブロック・セットと差分抽象ブロック・セットを単一の全抽象ブロック・セットに組み合わせる例を示す図。
【図２６】新しい全抽象ブロック・セットを作るために、差分抽象ブロック・セットと全抽象ブロック・セットとを組み合わせる方法の実施例を示す図。
【図２７】本発明の実施例による、２次記憶ノードを用いて、１次記憶ノード上のデータをバックアップするためのシステムの例を示す図。
【図２８】コピー又はバックアップのためのデータの任意の同期転送の状態遷移の実施例を示す図。
【図２９】バックアップされた論理オブジェクトの非同期復元の状態遷移の実施例を示す図。
【図３０】システム及び、１次記憶ノードからバックアップ情報のコピーを送るためのシステム内でのデータフローの実施例を示す図。
【図３１】１次記憶ノードからデータを送る方法の実施例を示す図。
【図３２】バックアップ媒体への情報の書き込みの制御の為の構造とデータフローの実施例を示す図。
【図３３】バックアップ抽象ブロック・セットを書き込まれたテープ媒体の例を示す図。
【図１】
2007048301.tif 000003
【図２Ａ】
2007048301.tif 000004
【図２Ｂ】
2007048301.tif 000005
【図２Ｃ】
2007048301.tif 000006
【図３Ａ】
2007048301.tif 000007
【図３Ｂ】
2007048301.tif 000008
【図４】
2007048301.tif 000009
【図５】
2007048301.tif 000010
【図６】
2007048301.tif 000011
【図７】
2007048301.tif 000012
【図８】
2007048301.tif 000013
【図９】
2007048301.tif 000014
【図１０】
2007048301.tif 000015
【図１１Ａ】
2007048301.tif 000016
【図１１Ｂ】
2007048301.tif 000017
【図１２】
2007048301.tif 000018
【図１３】
2007048301.tif 000019
【図１４】
2007048301.tif 000020
【図１５】
2007048301.tif 000021
【図１６】
2007048301.tif 000022
【図１７】
2007048301.tif 000023
【図１８】
2007048301.tif 000024
【図１９】
2007048301.tif 000025
【図２０】
2007048301.tif 000026
【図２１】
2007048301.tif 000027
【図２２】
2007048301.tif 000028
【図２３】
2007048301.tif 000029
【図２４】
2007048301.tif 000030
【図２５】
2007048301.tif 000031
【図２６】
2007048301.tif 000032
【図２７】
2007048301.tif 000033
【図２８】
2007048301.tif 000034
【図２９】
2007048301.tif 000035
【図３０】
2007048301.tif 000036
【図３１】
2007048301.tif 000037
【図３２】
2007048301.tif 000038
【図３３】
2007048301.tif 000039