(57)【要約】【課題】転送され、バックアップされるデータの量が低減されることが実現されるシステム及び方法を提供する。【解決手段】仮想化の管理についての情報（すなわち、物理領域／データ／オブジェクトと論理領域／データ／オブジェクトとの間のマッピング）が、ストレージシステムによって、データのバックアップおよび復元を実行するバックアップ機器（または一般的なコンピュータ）に提供される。バックアップ機器は、その情報を使用して、マッピングを認識し、マッピングに基づいてバックアッププロセスおよび復元プロセスを実行する。したがって、バックアップ機器は、仮想の領域／データ／オブジェクトではなく、物理（現実に存在する）領域／データ／オブジェクトだけを扱って、バックアップおよび復元を実行する。これにより、転送され、バックアップされるデータの量が低減されることが実現され、そのため、前述した諸問題が、解決される。【選択図】図１
2008282382.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストコンピュータと通信するストレージシステムに接続されたバックアップシステムを管理するための方法であって、
シンプロビジョニング型ボリューム（ＴＰＶ）を前記ホストコンピュータに提供するように前記ストレージシステムを動作させること、
前記シンプロビジョニング型ボリュームに割り当てられた物理ボリュームのマッピング情報を管理すること、
前記マッピング情報を前記バックアップシステムに提供すること、
前記マッピング情報に従って、前記シンプロビジョニング型ボリュームに割り当てられた物理ボリュームだけのバックアップを実行するように前記バックアップシステムを動作させることを含む方法。
【請求項２】
前記マッピング情報は、物理領域、物理データ、および物理オブジェクトのそれぞれの対応する論理領域、論理データ、および論理オブジェクトへのマッピングを含む請求項１に記載の方法。
【請求項３】
前記マッピング情報を前記バックアップシステムの中に格納し、復元動作が開始されると、前記マッピング情報に従って前記物理ボリュームを復元することをさらに含む請求項２に記載の方法。
【請求項４】
復元動作が開始されると、前記バックアップシステムから前記ストレージシステムに前記マッピング情報を送信して、前記バックアップシステムからの前記マッピング情報を、前記ストレージシステムからの前記マッピング情報と比較すること、および
不一致が全く見つからない場合、前記復元プロセスにとりかかること、
不一致が見つかった場合、それらの不一致が、前記バックアップシステムからの前記マッピング情報への新たなチャンクの追加だけであるかどうかを判定し、そうである場合、前記復元プロセスにとりかかること、
さもなければ、前記復元プロセスを中止することをさらに含む請求項３に記載の方法。
【請求項５】
前記バックアップシステムから前記ストレージシステムにバックアップ通知を送信して、バックアッププロセスを開始すること、
前記ストレージシステムにおいて前記バックアップ通知が受信されると、前記マッピング情報を前記バックアップシステムに送信すること、および
前記マッピング情報が受信されると、前記マッピング情報を前記バックアップシステムの中に格納することをさらに含む請求項１に記載の方法。
【請求項６】
前記ホストコンピュータの１つからターゲットＴＰＶに書き込み要求が受信されると、前記マッピング情報を照会して、前記ターゲットＴＰＶに対応する物理ボリュームの中で割り当てられたチャンクを識別すること、
前記ターゲットＴＰＶが、バックアッププロセス中であるかを検査し、そうである場合、前記ターゲットＴＰＶに新たなチャンクを割り当てて、前記新たなチャンクに対して前記書き込み要求を実行し、さもなければ、前記割り当てられたチャンクに対して前記書き込み要求を実行することをさらに含む請求項１に記載の方法。
【請求項７】
データ転送ボリュームを介して実行される場合、前記バックアップシステムと前記ストレージシステムの間でバックアップ動作および復元動作のためのデータの転送、請求項１に記載の方法。
【請求項８】
前記データ転送ボリュームが、仮想ボリュームを含む請求項１に記載の方法。
【請求項９】
デデュプリケーション手続きに従って複数の同一のアイテムへのリンクを含むリンクテーブルを保持すること、
前記リンクテーブルを前記バックアップシステムに提供すること、
前記リンクテーブルの中で識別される複数の同一のアイテムの単一のインスタンスだけのバックアップを実行するように前記バックアップシステムを動作させることをさらに含む請求項１に記載の方法。
【請求項１０】
前記リンクテーブルを前記バックアップシステムの中に格納すること、
復元動作が開始されると、前記バックアップシステムから前記ストレージシステムに前記リンクテーブルを送信すること、および
前記リンクテーブルの中で識別される複数の同一のアイテムの単一のインスタンスだけを復元することをさらに含む請求項９に記載の方法。
【請求項１１】
ベースデータとして格納されたデータ、および旧データとして格納されたデータのログを保持して、所与の時点におけるデータのスナップショットを構築することができるようにするスナップショット情報を、前記ストレージシステムの中に保持すること、
ベースデータとして物理ボリュームの中に格納されたベースデータのログを保持するベースデータ情報を前記ストレージシステムの中に保持すること、
ベースデータとして物理ボリュームの中に格納された旧データのログを保持する旧データ情報を前記ストレージシステムの中に保持すること、
前記バックアップシステムによってバックアップが開始されると、前記スナップショット情報、前記ベースデータ情報、および前記旧データ情報を前記バックアップシステムに送信すること、
前記スナップショット情報、前記ベースデータ情報、および前記旧データ情報に従って、前記ベースデータおよび前記旧データをバックアップするように前記バックアップシステムを動作させることをさらに含む請求項１に記載の方法。
【請求項１２】
復元動作が開始されると、
前記バックアップシステムが、前記スナップショット情報、前記ベースデータ情報、および前記旧データ情報を転送ボリュームに書き込むこと、
前記ストレージシステムが、前記スナップショット情報、前記ベースデータ情報、および前記旧データ情報に従ってストレージ空間を準備すること、
前記バックアップシステムが、前記ベースデータおよび前記旧データを前記転送ボリューム上に順次にコピーすること、
前記ストレージシステムが、前記転送ボリュームから前記ベースデータおよび前記旧データを読み取り、前記ベースデータおよび前記旧データを、前記準備されたストレージ空間上に順次に書き込むことをさらに含む請求項１に記載の方法。
【請求項１３】
バックアップシステム、および少なくとも１つのホストコンピュータに接続され、物理ストレージファシリティを有するストレージシステムを管理するための方法であって、
前記物理ストレージファシリティを複数のチャンクに分割すること、
複数の仮想ストレージボリュームを定義すること、
仮想ストレージボリュームを、前記ホストコンピュータにおいて動作するアプリケーションに割り当てること、
選択されたチャンクを各仮想ストレージボリュームに割り振ること、
仮想ストレージボリュームへの選択されたチャンクの前記割り振りのマッピングを保持すること、
前記割り振られたチャンクが、空であるか、または書き込まれているかを示す、割り振られた各チャンクに関するインデックスを保持すること、
バックアップ要求が行われると、データが書き込まれていることを前記インデックスが示すチャンクに関してだけ、バックアップを実行することを含む方法。
【請求項１４】
前記バックアップシステムによって復元動作が開始されると、前記インデックスを前記ストレージシステムに伝送することをさらに含む請求項１３に記載の方法。
【請求項１５】
前記バックアップシステムによって復元動作が開始されると、前記マッピングを前記ストレージシステムに伝送することをさらに含む請求項１４に記載の方法。
【請求項１６】
前記バックアップシステムからの前記マッピング情報を、前記ストレージシステムからの前記マッピング情報と比較すること、および
不一致が全く見つからない場合、前記復元プロセスにとりかかること、
不一致が見つかった場合、それらの不一致が、前記バックアップシステムからの前記マッピング情報への新たなチャンクの追加だけであるかどうかを判定し、そうである場合、前記復元プロセスにとりかかること、
さもなければ、前記復元プロセスを中止することをさらに含む請求項１５に記載の方法。
【請求項１７】
転送ボリュームを確立することをさらに含み、
バックアップを実行することは、データが書き込まれていることを前記インデックスが示すチャンクを、前記転送ボリューム上に書き込むように前記ストレージシステムを動作させ、その後、データが書き込まれていることを前記インデックスが示す前記チャンクを、前記転送ボリュームからバックアップボリューム上にコピーするように前記バックアップシステムを動作させることを含む請求項１３に記載の方法。
【請求項１８】
復元動作が開始されると、
バックアップシステムが、前記マッピング情報を前記転送ボリュームの中に格納すること、
ストレージシステムが、前記転送ボリュームから前記マッピング情報を読み取り、前記マッピング情報に従ってストレージチャンクを準備すること、
バックアップシステムが、復元するためのバックアップされたデータを前記転送ボリューム上に書き込むこと、および
ストレージシステムが、前記バックアップされたデータを、前記転送ボリュームから前記ストレージチャンク上にコピーすることをさらに含む請求項１７に記載の方法。
【請求項１９】
少なくとも１つのホストコンピュータに接続されたストレージシステムであって、
複数の物理チャンクをそれぞれが定義する複数のストレージディスクと、
割り当てられたストレージディスクを制御するように動作する少なくとも１つのディスクコントローラと、
前記ホストコンピュータにおいて動作するアプリケーションに仮想ボリュームを割り当て、必要に応じて、前記仮想ボリュームに物理チャンクを割り当てるシンプロビジョニングモジュールと、
前記仮想ボリュームに割り当てられた物理チャンクのマッピング情報を保持し、前記チャンクが、空であるか、または書き込まれているかを示す、各物理チャンクに関するインデックスを保持するマッピングモジュールと、を含むストレージシステム。
【請求項２０】
バックアップシステムからバックアップ開始通知を受信すると、前記バックアップシステムに前記マッピング情報を伝送するように応答するバックアップモジュールをさらに含む請求項１９に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化されたストレージ領域に関するデータのバックアップおよび復元を可能にする方法および装置に関する。詳細には、本発明は、ストレージリソースおよび伝送帯域幅を節約する方法および装置を提供する。
【背景技術】
【０００２】
様々なシステムおよび方法が、データストレージ、データバックアップ、およびデータ復元のための技術において使用されている。最近、仮想技術の使用が、ストレージシステムに関して普及している。それらの技術は、ストレージ領域および管理費用を低減することができる。それらの技術は、以下を含む。すなわち、
シンプロビジョニング  ストレージシステムが、仮想ボリュームを、コンピュータのためのデータを格納するストレージ領域として提供する。ストレージシステムは、コンピュータの書き込みアクセスを有するロケーションだけに物理領域を割り振り、割り当てる。その結果、プールの中の使用される物理領域の総量は、コンピュータに示される仮想領域の総量より小さくなる可能性がある。
デデュプリケーション  ストレージシステムが、コンピュータから、格納されるべきオブジェクト（データ、ファイルなど）を受信すると、ストレージシステムは、そのオブジェクトを、ストレージシステムの中に既に格納されているオブジェクトと比較する。同一の内容を有するオブジェクトが、検出された場合、ストレージシステムは、その新たなオブジェクトを格納する代わりに、検出されたオブジェクトへのリンクを作成する。つまり、ストレージシステムは、新たな（同一の）オブジェクトを仮想的に格納するが、そのオブジェクトを物理的に格納することはしない。
コピーオンライトによるスナップショット  ストレージ領域のスナップショットがとられる時点で、ストレージシステムは、データをコピーしない。その領域に書き込みアクセスが実行される際、ストレージシステムは、書き込み動作より前に、そのデータ（すなわち、そのアクセスのための旧データ）を、スナップショットデータのための別の領域にコピーする。次に、ストレージシステムは、新たなデータを元の領域に書き込む。旧データを保持して、管理することにより、ストレージシステムは、元の領域のスナップショットをコンピュータに仮想的に提供する。
【０００３】
これらの技術で、ストレージシステムにおける使用される物理領域の量は、コンピュータによって使用される論理領域の量より小さくなることが可能である。つまり、物理領域は、これらの技術を使用することによって効率的に使用される。
【０００４】
しかし、データのバックアップおよび復元に関して、特に、ボリュームに関するバックアップおよび復元の際、バックアップサーバが、ストレージシステムによって提供される論理（仮想）領域を扱うため、論理領域全体の中のデータが、バックアップされ、復元される。これにより、バックアッププロセスおよび復元プロセスのパフォーマンス問題が生じる。というのは、これらのプロセスにおける転送されるデータの量は、極めて大きいからである。また、これにより、転送回線に対して大きな費用も必要とされる。というのは、これらのプロセスにおいて、大きい帯域幅が、用意されなければならないからである。さらに、大容量および多数のバックアップメディアが、必要とされる。つまり、データのバックアップおよび復元に関して、前述した効率が失われる。
【０００５】
これらの先行技術に関するさらなる情報は、以下において見ることができる。すなわち、
Ｋａｎｏに発行された米国特許出願公開第２００４／０１６２９５８Ａ１号が、シンプロビジョニングを開示する。
Ｚｈｕに発行された米国特許第７，０６５，６１９号が、デデュプリケーション動作の下におけるＩＯ動作を開示する。
ＤａｔａＤｏｍａｉｎ（ｈｔｔｐ：／／ｗｗｗ．ｄａｔａｄｏｍａｉｎ．ｃｏｍ／ｐｒｏｄｕｃｔｓ／ａｒｒａｙｓ．ｈｔｍｌ）が、デデュプリケーションハードウェアおよびデデュプリケーションソフトウェアを既にリリースしている。
マイクロソフトのＷｉｎｄｏｗｓ（登録商標）  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ  ２００３  Ｒ２が、シングルインスタンス能力を有する（ｈｔｔｐ：／／ｄｏｗｎｌｏａｄ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｄｏｗｎｌｏａｄ／８／３／ｂ／８３ｂｆ２６ｆ３−４０ｂｄ−４３４ａ−ａ３８９−ｆｂｅ３９ｆ９ｄ７２６ｆ／ＩＮＦ３２３．ｐｐｔ）。
Ｏｈｒａｎに発行された米国特許第５，６４９，１５２号が、コピーオンライトによるスナップショットファシリティを開示する。
以上の文献の内容全体は、参照により本明細書に組み込まれている。
【０００６】
本発明の以下の要約は、本発明のいくつかの態様および特徴の基本的な理解をもたらすために提供される。この要約は、本発明の幅広い概要ではなく、このため、この要約は、本発明の重要な要素、または不可欠な要素を詳細に明らかにすること、または本発明の範囲を画定することを意図していない。この要約の唯一の目的は、後段で提示されるより詳細な説明の前置きとして、本発明のいくつかの概念を簡略化された形態で提示することである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の様々な態様は、バックアップおよび復元プロセスにおける前述の問題を、仮想化技術を使用して解決する方法を提供する。本発明の諸態様によれば、仮想化の管理についての情報（すなわち、物理領域／データ／オブジェクトと論理領域／データ／オブジェクトとの間のマッピング）が、ストレージシステムによって、データのバックアップおよび復元を実行するバックアップ機器（または一般的なコンピュータ）に提供される。バックアップ機器は、その情報を使用して、マッピングを認識し、マッピングに基づいてバックアッププロセスおよび復元プロセスを実行する。したがって、バックアップ機器は、仮想の領域／データ／オブジェクトではなく、物理（現実に存在する）領域／データ／オブジェクトだけを扱って、バックアップおよび復元を実行する。これにより、転送され、バックアップされるデータの量が低減されることが実現され、そのため、前述した諸問題が、解決される。
【課題を解決するための手段】
【０００８】
本発明の諸実施形態によれば、ストレージシステムがシンプロビジョニング型ボリューム（ＴＰＶ）をホストコンピュータに提供し、シンプロビジョニングについてのマッピング情報をバックアップ機器に提供する。バックアップ機器は、そのマッピング情報に従って、ＴＰＶの中に格納されたデータのバックアップおよび復元を実行する。また、これを行うため、バックアップ機器は、ストレージシステムとの通信も行う。
【０００９】
他の実施形態によれば、ストレージシステムは、デデュプリケーション能力を有し、仮想的に格納されたデータについてのリンク情報をバックアップ機器に提供する。バックアップ機器は、ストレージシステムとの通信でリンク情報を使用することにより、データのバックアップおよび復元を実行する。
【００１０】
さらに別の実施形態によれば、ストレージシステムは、コピーオンライトによるスナップショットを提供する。つまり、ストレージシステムは、各スナップショット（すなわち、旧データと他のデータの）間の差分データを保持することにより、複数生成（時点）のスナップショットイメージを提供する。ストレージシステムは、各スナップショット間のマッピング情報、およびそれらのデータをバックアップ機器に提供する。バックアップ機器は、ストレージシステムとの通信で、そのマッピング情報を使用することにより、データのバックアップおよび格納を実行する。このため、スナップショットセットのバックアップおよび格納は、スナップショットの仮想ボリュームの中のデータ全体を転送することなしに、実現されることが可能である。つまり、スナップショットセットのバックアップおよび格納は、差分データだけを転送することにより、実現されることが可能である。
【００１１】
本明細書に組み込まれ、本明細書の一部を成す添付の図面は、本発明の諸実施形態を例示し、説明とともに、本発明の原理を説明し、例示する役割をする。図面は、例示的な諸実施形態の主要な特徴を概略的に図示することを意図している。図面は、実際の実施形態のすべての特徴を示すことも、示される要素の相対的なサイズを示すことも意図しておらず、一律の縮尺に従って描かれていない。
【発明を実施するための最良の形態】
【００１２】
以下は、本発明によるいくつかの実施形態の詳細な説明である。これらの実施形態に一貫しているのは、これらの実施形態が、バックアップのためのストレージ空間の節約を可能にすることである。さらに、これらの実施形態は、バックアップ動作および復元動作のための通信チャネルの帯域幅の要件を緩和する。これは、バックアップされるデータ、およびバックアップ動作のタイミングを管理することによって達せられる。その結果、ストレージシステムと通信回線の両方の費用が、低減されることが可能である。
【００１３】
（Ａ．第１の実施形態）
（Ａ．１．システム構成−図１の説明）
図１は、第１の実施形態のシステム構成を概略で示す。本発明に関連するストレージシステムは、以下の構成要素から成る。
１００：ストレージシステム
１１０：アレイコントローラ
１１１：メインプロセッサ
１１２：スイッチ
１１３：ホストインタフェース
２００：メモリ
３００：キャッシュ
４００：ディスクコントローラ
６００：ディスク（例えば、ＨＤＤ）
６０１：バックエンドパス（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ＳＡＴＡ、ＳＡＳ、ｉＳＣＳＩ（ＩＰ））
【００１４】
これらの要素、およびこれらの要素の相互接続性は、当技術分野において従来どおりであり、したがって、それらの詳細な説明は、省略する。しかし、本発明の様々な実施形態による、これらの要素の動作、機能、および対話は、後段で説明するとおり、改良される。メインプロセッサ１０１は、アレイコントローラ１００に関する様々なプロセスを実行する。メインプロセッサ１０１、およびその他の構成要素は、メモリ２００の中に格納された以下の情報を使用する。すなわち、
２０１：マッピング情報
２０２：プール情報
２０３：バックアップステータス情報
である。
【００１５】
メインプロセッサ１０１は、メモリ２００の中に格納された以下のプログラムを実行することにより、プロセスを実行する。これらのプロセスの詳細は、後段で説明する。
２１１：読み取り／書き込みプロセスプログラム
２１２：シンプロビジョニングプログラム
２１３：バックアッププロセスプログラム
２１４：復元プロセスプログラム
２１５：データ転送ボリューム管理プログラム
【００１６】
ホストコンピュータ５００、管理端末装置５２０、およびバックアップ機器７００が、ＳＡＮ９０１（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ｉＳＣＳＩ（ＩＰ））を介してホストインタフェース１１３に接続される。ホスト５００、管理端末装置５２０、バックアップ機器７００、およびアレイコントローラ１１０が、帯域外ネットワーク９０２（例えば、ＩＰ）を介して互いに接続される。ストレージシステム１００によって提供されるボリューム（論理ユニット）は、ＨＤＤの中の領域の集合から生成される。ボリュームは、パリティコードを格納することにより（すなわち、ＲＡＩＤ構成により）、保護されることが可能である。
【００１７】
管理端末装置５２０は、コンピュータ、例えば、特別プログラム多目的ＰＣであり、管理ソフトウェア５２１を実行することにより、いくつかの管理タスクを実行するリソース（例えば、プロセッサ、メモリ、ストレージデバイスなど）を有する。管理端末装置は、ＳＡＮ９０１またはネットワーク９０２を介して、ボリューム（論理ユニット）、および他のリソースについての構成を設定するように命令することができる。また、バックアップ機器７００も、コンピュータ、例えば、特別プログラム多目的ＰＣであり、バックアップソフトウェア７０１を実行することによってバックアッププロセスおよび復元プロセスを実行するリソース（例えば、プロセッサ、メモリ、ストレージデバイスなど）を有する。これらのプロセスの詳細は、後段で説明する。バックアップ機器７００は、バックアップメディア８０１（例えば、テープ）およびバックアップメディア８０２（例えば、ＨＤＤ）を有する。
【００１８】
（Ａ．２．ボリュームの用法の概要）
図２は、ストレージシステム１００におけるボリュームの用法の概要を示す。ストレージシステム１００は、シンプロビジョニング型ボリューム（ＴＰＶ）６１０を、ホスト５００のためのストレージ領域として提供する。ホスト５００は、ＳＡＮ９０１を介して読み取りアクセスおよび書き込みアクセスを実行して、ＴＰＶ６１０の中にデータを格納し、使用する。
【００１９】
図３は、本発明の実施形態によるＴＰＶを提供する構造および方法を示す。ストレージシステム１００が、プールボリューム６２０を有し、プールボリューム６２０をいくつかの固定長の領域（すなわち、チャンク６９０）に分割する。ストレージシステム１００は、チャンク６９０を、書き込みアクセス時に仮想ボリューム（ＴＰＶ）の或るセグメントに割り当てる。つまり、物理ストレージ領域が、オンデマンドで割り当てられる。図３では、ＴＰＶ６２０は、複数のセグメントによって仮想的に構成され、チャンク６９０が、プールボリューム６２０から割り振られて、或るセグメント（すなわち、ＴＰＶの固定長の領域）に割り当てられる。例えば、チャンク４は、この図においてセグメント６に割り当てられる。これを実現するのに、アレイコントローラ１１０が、マッピング情報２０１およびプール情報２０２を使用する。図４は、本発明の実施形態によるマッピング情報２０１の例である。この情報は、チャンクと、各ボリュームのセグメントとの間のマッピングを保持する。割り当てステータスは、セグメントにチャンクが全く割り当てられていない場合、「いいえ」である。この情報は、より迅速な検索のために、各要素のリストまたはディレクトリとして構築されることが可能である。
【００２０】
図５は、本発明の実施形態によるプール情報２０２の例を示す。この情報は、チャンクが使用されるか否かを管理する。この情報を使用することにより、アレイコントローラ１１０は、後段で説明する書き込みプロセスにおいて空いた（未使用の）チャンクを見つけることができる。この情報もまた、空いたチャンクを迅速に検索するように、各要素のリストまたはディレクトリとして構築されることが可能である。
【００２１】
図２に示されるとおり、バックアップ機器７００は、ＳＡＮ９１０を介してプールボリュームにアクセスして、後段で説明するとおり、バックアッププロセスおよび復元プロセスを実行することができる。
【００２２】
（Ａ．３．バックアッププロセス）
図８は、本発明の実施形態によるバックアッププロセスを示す。
ステップ１００１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、バックアッププロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ＴＰＶ６１０のＩＤをバックアップターゲットとして示す。この通知に応答して、アレイコントローラ１１０は、図６に示されるバックアップステータス情報２０３を更新する（すなわち、「バックアップ中フラグ」が、「はい」に変更される）。
ステップ１００２で、アレイコントローラ１１０が、ネットワーク９０２を介して、ターゲットＴＰＶ６１０についてのマッピング情報をバックアップ機器７００に送信する。送信されるべき、このマッピング情報は、図７に示される形態を有することが可能である。図７に示される情報２０４は、割り当てられていない部分を省くことにより、元のマッピング情報２０１から生成される。
ステップ１００３で、バックアップ機器７００が、マッピング情報２０４を含むバックアップ情報をバックアップメディア８０１または８０２に記録する。
ステップ１００４で、バックアップ機器７００が、マッピング情報２０４に従って、プールボリューム６２０からのチャンク６９０の中のデータを読み取る。
ステップ１００５で、バックアップ機器７００が、マッピング情報２０４の中の順序で、データをバックアップメディア８０１または８０２に書き込む。
ステップ１００６で、バックアップ機器７００が、バックアッププロセスの完了をアレイコントローラ１１０に通知する。その通知に応答して、アレイコントローラ１１０は、バックアップステータス情報２０３を更新する（すなわち、「バックアップ中フラグ」が、「いいえ」に変更される）。
ステップ１００７およびステップ１００８で、アレイコントローラ１１０が、プール情報２０２の中で「遅延解放フラグ」を検査する。このフラグの初期値は、「いいえ」であり、後段で説明する書き込みプロセスにおいて「はい」に変更されることが可能である。「はい」になっている、このフラグを有するチャンクが存在する場合、プロセスは、ステップ１００９に進む。存在しない場合、プロセスは、終了する。
ステップ１００９で、アレイコントローラ１１０が、「はい」になっている、このフラグを有するチャンクを解放する。チャンクのこの解放により、それらのチャンクについてのプール情報２０２およびマッピング情報２０１が、更新される（初期化される）。
【００２３】
以上のバックアッププロセスでは、現実に（仮想ではなく）存在するデータだけが、バックアップデータとして処理され、転送され、記録される。
【００２４】
（Ａ．４．ＴＰＶに関する書き込みプロセス）
図９は、本発明の実施形態によるＴＰＶ６１０に関する書き込みプロセスを示す。
ステップ１１０１で、ホスト５００が、アレイコントローラ１１０に書き込み要求を発行し、書き込みデータを転送する。
ステップ１１０２で、アレイコントローラ１１０が、その書き込み要求を参照することにより、書き込みアクセスのターゲットＴＰＶ６１０およびターゲット領域を検査する。
ステップ１１０３で、アレイコントローラ１１０が、ターゲット領域の中の或るセグメントに関するマッピング情報２０１を検査する。チャンクが、そのセグメントに既に割り当てられている場合、プロセスは、ステップ１１０４に進む。割り当てられていない場合、プロセスは、ステップ１１０６に進む。
ステップ１１０４で、アレイコントローラ１１０が、バックアップステータス情報２０３を検査する。ターゲットＴＰＶ６１０が、バックアップ中である場合、プロセスは、ステップ１１０５に進む。バックアップ中ではない場合、プロセスは、ステップ１１０８に進む。
ステップ１１０５で、アレイコントローラ１１０が、既存の（古い）チャンクの「遅延解放フラグ」を「はい」に設定する。このフラグは、プール情報２０２の中で保持される。
ステップ１１０６で、アレイコントローラ１１０が、書き込みデータを格納する新たなチャンクを割り当てる。これを行うのに、アレイコントローラ１１０は、マッピング情報２０１およびプール情報２０２を更新する。
ステップ１１０７で、アレイコントローラ１１０が、書き込みデータを新たなチャンクに格納する。
ステップ１１０８で、アレイコントローラ１１０が、書き込みデータを既存のチャンクに格納する。
ステップ１１０９で、アレイコントローラ１１０が、ターゲット領域のすべてのセグメントを検査済みである場合、プロセスは、終了する。検査済みではない場合、アレイコントローラ１１０は、検査を次のセグメントに進める（ステップ１１１０）。
【００２５】
以上の書き込みプロセスにより、バックアッププロセス中に書き込みアクセスが行われた場合でさえ、バックアッププロセス中に旧データが保持されるため、旧データ（すなわち、書き込みアクセス前のデータ）が、バックアップされることが可能である。
【００２６】
（Ａ．５．ＴＰＶに関する読み取りプロセス）
ホスト５００からの読み取り要求に応答する際、マッピング情報２０１およびプール情報２０２を参照することにより、アレイコントローラ１１０は、読み取られるべき（新たな）データを有するチャンクを見つけ、そのデータをホスト５００に送信する。「いいえ」になっている遅延解放フラグを有する（すなわち、新たなデータを有する）チャンクが、読み取り要求によって指定された領域に割り当てられていない場合、アレイコントローラ１１０は、０のデータをホスト５００に送信する。
【００２７】
（Ａ．６．復元プロセス）
図１０は、本発明の実施形態による復元プロセスを示す。
ステップ１２０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、復元プロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ＴＰＶ６１０のＩＤを復元ターゲットとして示す。
ステップ１２０２で、アレイコントローラ１１０が、ターゲットＴＰＶ６１０への書き込みアクセスを禁止する。つまり、アレイコントローラ１１０は、ターゲットＴＰＶ６１０への書き込みアクセスを拒否することを始める。
ステップ１２０３で、バックアップ機器７００が、バックアップメディア８０１または８０２からマッピング情報２０４を得る。
ステップ１２０４で、バックアップ機器７００が、ネットワーク９０２を介して、マッピング情報２０４をアレイコントローラ１１０に送信する。
ステップ１２０５およびステップ１２０６で、アレイコントローラ１１０が、コントローラ１１０自らのマッピング情報２０１を参照することにより、受信されたマッピング情報２０４を検査する。コントローラ１１０自らのマッピング情報２０１が、変更を有さない、または受信されたマッピング情報２０４へのチャンクの追加だけを有する場合、プロセスは、ステップ１２０９に進む。そうではない場合、プロセスは、ステップ１２０７に進む。
ステップ１２０７で、アレイコントローラ１１０が、検査の結果をバックアップ機器７００に報告し、復元プロセスを拒否する。
ステップ１２０８で、バックアップ機器７００が、復元プロセスを中止する。
ステップ１２０９で、アレイコントローラ１１０が、検査の結果をバックアップ機器７００に報告する。
ステップ１２１０で、バックアップ機器７００が、受信されたマッピング情報２０４に従って、バックアップデータをプールボリューム６２０の中のチャンクに書き込む。
ステップ１２１１で、バックアップ機器７００が、復元プロセスの完了をアレイコントローラ１１０に通知する。
ステップ１２１２で、アレイコントローラ１１０が、ターゲットＴＰＶ６１０への書き込みアクセスを許可する。
【００２８】
以上の復元プロセスでは、現実に（仮想ではなく）存在するデータだけが、処理され、転送される。
【００２９】
（Ｂ．第２の実施形態）
図１１は、この実施形態のストレージシステム１００におけるボリュームの用法の概要を示す。第１の実施形態との違いとして、ストレージシステム１００は、データ転送ボリューム６３０を有する。データ転送ボリューム６３０は、バックアップ機器７００に／からデータを転送する特別なボリュームである。バックアップ機器７００は、データ転送ボリューム６３０にアクセスすることができ、データをデータ転送ボリューム６３０に書き込むことにより、いくらかのデータを送信することができる。また、バックアップ機器７００は、データ転送ボリューム６３０からデータを読み取ることにより、準備をすることもできる。データ転送ボリューム６３０は、仮想ボリュームであることが可能である。  システム構成は、図１に示される第１の実施形態の構成と同一である。ＴＰＶ６１０に関する書き込みアクセスおよび読み取りアクセスのためのプロセスは、第１の実施形態で説明されるプロセスと同一である。
【００３０】
（Ｂ．１．バックアッププロセス）
図１５は、この実施形態におけるバックアッププロセスを示す。
ステップ１３０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、バックアッププロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ＴＰＶ６１０のＩＤをバックアップターゲットとして示す。この通知に応答する際、アレイコントローラ１１０は、バックアップステータス情報２０３を更新する。
ステップ１３０２で、アレイコントローラ１１０は、データ転送ボリューム６３０上でターゲットＴＰＶ６１０についてのマッピング情報を設定する。送信されるべき、このマッピング情報は、図１２に示される形態を有することが可能である。図１２に示される情報２０５は、プールボリューム６２０の中の絶対ロケーションに関する割り当てられていない部分およびカラムを省くことにより、元のマッピング情報２０１から生成される。
図１３は、データ転送ボリューム６３０上でマッピング情報２０５を準備するためのフォーマットの例を示す。論理ブロックアドレス（ＬＢＡ）＝０からの最初の固定長の部分は、マッピング情報２０５の長さを含む。マッピング情報２０５が、その後に続く。
ステップ１３０３で、バックアップ機器７００が、データ転送ボリューム６３０からマッピング情報２０５を読み取る。前述のフォーマットを使用することにより、バックアップ機器７００は、マッピング情報２０５の長さを読み取り、知ることができ、したがって、バックアップ機器７００は、データ転送ボリューム６３０を読み取ることにより、マッピング情報を得ることができる。
ステップ１３０４で、バックアップ機器７００が、マッピング情報２０５を含むバックアップ情報をバックアップメディア８０１または８０２に記録する。
ステップ１３０５で、バックアップ機器７００が、バックアップデータの取得をアレイコントローラ１１０に通知する。
ステップ１３０６で、その通知に応答する際、アレイコントローラ１１０は、データ転送ボリューム６３０を介してチャンクの中のデータを提供するように準備する。図１４は、データ転送ボリューム６３０上でデータを準備するためのフォーマットの例を示す。  このフォーマットでは、データは、マッピング情報２０５の中の順序で配置される。
ステップ１３０７で、バックアップ機器７００が、マッピング情報２０５に従ってデータ転送ボリューム６３０からデータを読み取る。
ステップ１３０８で、バックアップ機器７００が、マッピング情報２０５の中の順序でバックアップメディア８０１または８０２の中にデータを書き込む。
ステップ１３０９で、バックアップ機器７００が、バックアッププロセスの完了をアレイコントローラ１１０に通知する。その通知に応答する際、アレイコントローラ１１０は、バックアップステータス情報２０３を更新する。
ステップ１３１０およびステップ１３１１で、アレイコントローラ１１０が、プール情報２０２の中で「遅延解放フラグ」を検査する。「はい」になっている、このフラグを有するチャンクが存在する場合、プロセスは、ステップ１３１２に進む。存在しない場合、プロセスは、終了する。
ステップ１３１２で、アレイコントローラ１１０は、「はい」になっている、このフラグを有するチャンクを解放する。チャンクのこの解放により、それらのチャンクについてのプール情報２０２およびマッピング情報２０１が、更新される（初期化される）。
【００３１】
以上のバックアッププロセスでは、現実に（仮想ではなく）存在するデータだけが、バックアップデータとして処理され、転送され、記録される。以上のバックアッププロセスにより、１つのＴＰＶの中のデータが、任意の（他の）ＴＰＶに復元されることが可能である。というのは、マッピング情報２０１が、再現されるからである。
【００３２】
（Ｂ．２．復元プロセス）
図１６は、この実施形態における復元プロセスを示す。
ステップ１４０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、復元プロセスを開始することをアレイコントローラ１１０に通知する。  この通知の中で、アレイコントローラ１１０は、ＴＰＶ６１０のＩＤを復元ターゲットとして示す。
ステップ１４０２で、アレイコントローラ１１０が、ターゲットＴＰＶ６１０への書き込みアクセスを禁止する。つまり、アレイコントローラ１１０は、ターゲットＴＰＶ６１０への書き込みアクセスを拒否することを始める。
ステップ１４０３で、バックアップ機器７００が、バックアップメディア８０１または８０２からマッピング情報２０５を獲得する。
ステップ１４０４で、バックアップ機器が、図１３に示されるフォーマットを使用して、マッピング情報２０５をデータ転送ボリューム６３０に書き込む。
ステップ１４０５で、バックアップ機器が、マッピング情報２０５の送信の完了をアレイコントローラ１１０に通知する。
ステップ１４０６で、アレイコントローラ１１０が、マッピング情報２０５に従ってチャンクを準備する。この準備の際、アレイコントローラ１１０は、マッピング情報２０１およびプール情報２０２を更新する。
ステップ１４０７で、アレイコントローラ１１０が、チャンクの準備の完了をバックアップ機器７００に報告する。
ステップ１４０８で、バックアップ機器７００が、復元されるべきデータをバックアップメディア８０１または８０２から獲得し、そのデータを、図１４に示されるフォーマットで、マッピング情報２０５の中の順序でデータ転送ボリューム６３０に書き込む。
ステップ１４０９で、アレイコントローラ１１０が、受信されたマッピング情報２０５に従って、受信されたデータを準備されたチャンクの中に格納する。
ステップ１４１０で、バックアップ機器７００が、復元プロセスの完了をアレイコントローラ１１０に通知する。
ステップ１４１１で、アレイコントローラ１１０が、ターゲットＴＰＶ６１０への書き込みアクセスを許す。
【００３３】
以上の復元プロセスでは、現実に（仮想ではなく）存在するデータだけが、処理され、転送される。
【００３４】
（Ｃ．第３の実施形態）
（Ｃ．１．システム構成）
図１７は、第３の実施形態のシステム構成を示す。メモリ２００の内容を除けば、システム構成は、第１の実施形態で説明した構成と同一である。この実施形態では、以下の情報およびプログラムが、メモリ２００の中に格納される。メインプロセッサ１０１、およびその他の構成要素が、それらの情報およびプログラムを使用して、後段で説明する様々なプロセスを実行する。
２２１：ハッシュテーブル
２２２：リンク情報
２３１：読み取り／書き込みプロセスプログラム
２３２：デデュプリケーションプログラム
２３３：バックアッププロセスプログラム
２３４：復元プロセスプログラム
２３５：データ転送ボリューム管理プログラム
【００３５】
（Ｃ．２．ボリュームの用法の概要）
図１８は、ストレージシステム１００におけるボリュームの用法の概要を示す。ストレージシステム１００は、ホスト５００のためのボリューム６４０（すなわち、ストレージ領域）を提供する。ホスト５００は、ホストパス（例えば、ＳＡＮ９０１）を介して、読み取りアクセスおよび書き込みアクセスを行い、ボリューム６４０の中にデータ（またはオブジェクト様のファイル）を格納し、使用する。データまたはオブジェクトが、ボリューム６４０の中に格納される際、ストレージシステム１００は、ボリューム６４０の内容に関してデデュプリケーションを実行する。図１９は、デデュプリケーションの概念を示す。ストレージシステム１００は、格納されるべきオブジェクト（ファイルまたはデータ）をホストコンピュータ５００から受信すると、そのオブジェクトを、ストレージシステム１００の中に既に格納されているオブジェクトと比較する。同一のコンテンツを有するオブジェクトが、検出されると、ストレージシステム１００は、その新たなオブジェクトを格納する代わりに、検出されたオブジェクトへのリンクを作成する。つまり、ストレージシステム１００は、その新たな同一のオブジェクトを仮想的に格納するが、そのオブジェクトを物理的に格納することはしない。例えば、図１９において、オブジェクト４は、オブジェクト０と同一であるため、物理的には格納されないが、オブジェクト４自体の代わりに、オブジェクト０へのリンクが、格納される。詳細なプロセスは、後段で説明する。
【００３６】
同一のオブジェクトを検出するのに、各オブジェクトのハッシュ値が、使用される。ハッシュ値は、各オブジェクトに関して準固有の値であり、その値のサイズは、オブジェクト自体のサイズよりも小さい。したがって、ハッシュ値は、比較するのが容易であり、同一のオブジェクトを検出するために使用するのに適している。ハッシュ値は、ＳＨＡ−１やＭＤ５などのハッシュ関数によって生成される。デデュプリケーションを実現するのに、アレイコントローラは、ハッシュテーブル２２１およびリンク情報２２２を使用する。ハッシュテーブル２２１は、ボリューム６４０の中の各オブジェクトのハッシュ値を保持する。また、この情報は、同一の値を検索する各要素のリストまたはディレクトリとして構築されることも可能である。
【００３７】
図２０は、リンク情報２２２の例を示す。この情報は、オブジェクト間のリンクを保持する。リンク済みのステータスは、オブジェクトが、オリジナルであり、他のオブジェクトへのリンクを有さない場合、「いいえ」である。この情報は、より迅速な検索のために、各要素のリストまたはディレクトリとして構築されることが可能である。図１８に示されるとおり、バックアップ機器７００は、前の実施形態と同様にデータ転送ボリューム６３０にアクセスすることができる。
【００３８】
（Ｃ．３．書き込みプロセスおよび読み取りプロセス）
図２１は、デデュプリケーションを伴う書き込みプロセスを示す。
ステップ１５０１で、ホスト５００が、アレイコントローラ１１０に書き込み要求を発行し、書き込みデータ（オブジェクト）を転送する。
ステップ１５０２で、アレイコントローラ１１０が、書き込まれるべきオブジェクトに関するハッシュ値を生成する。
ステップ１５０３で、アレイコントローラ１１０が、そのハッシュ値をハッシュテーブル２２１の中の値と比較する。ハッシュテーブル２２１の中に同一のハッシュ値が存在する場合、プロセスは、ステップ１５０４に進む。存在しない場合、プロセスは、ステップ１５０５に進む。
ステップ１５０４で、アレイコントローラ１１０が、書き込まれるオブジェクトを、同一のハッシュ値を有するオブジェクトと比較する。同一の内容を有するオブジェクトが存在する場合、プロセスは、ステップ１５０６に進む。存在しない場合、プロセスは、ステップ１５０５に進む。
ステップ１５０５で、アレイコントローラ１１０が、リンク情報２２２を更新して、書き込まれるべきオブジェクトを格納する代わりに、同一のオブジェクトへのリンクを作成する（追加する）。
ステップ１５０６で、アレイコントローラ１１０が、オブジェクトを格納し、リンク情報２２２を更新する。
ステップ１５０７で、アレイコントローラ１１０が、ハッシュテーブル２２１を更新して、新たなハッシュ値を追加する。
【００３９】
ホスト５００からの読み取り要求に応答する際、アレイコントローラ１１０は、リンク情報２０１を参照することにより、同一のコンテンツを有するオブジェクト、またはオリジナルのオブジェクトを見つける。次に、アレイコントローラ１１０は、そのオブジェクトをホスト５００に送信する。
【００４０】
（Ｃ．４．バックアッププロセス）
図２２は、バックアッププロセスを示す。
ステップ１６０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、バックアッププロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ボリューム６４０のＩＤをバックアップターゲットとして示す。
ステップ１６０２で、アレイコントローラ１１０が、ネットワーク９０２を介して、リンク情報２２２をバックアップ機器７００に送信する。
ステップ１６０３で、バックアップ機器７００が、リンク情報２２２を含むバックアップ情報をバックアップメディア８０１または８０２に記録する。
ステップ１６０４で、バックアップ機器７００が、リンク情報２２２に従ってボリューム６４０から既存のデータ（オブジェクト）を読み取る。バックアップ機器７００は、オリジナルのオブジェクトだけを獲得し、他のオブジェクトへのリンクによって置き換えられたオブジェクトを獲得することはしない。
ステップ１６０５で、バックアップ機器７００が、リンク情報２２２に従ってバックアップメディア８０１または８０２にデータ（オブジェクト）を書き込む。
ステップ１６０６で、バックアップ機器７００が、バックアッププロセスの完了をアレイコントローラ１１０に通知する。
【００４１】
以上のバックアッププロセスでは、現実に（仮想ではなく）存在するデータ（オブジェクト）だけが、バックアップデータとして処理され、転送され、記録される。バックアッププロセスの別の例として、前の実施形態と同様に、リンク情報２２２は、ネットワーク９２０の代わりにデータ転送ボリューム６３０を介して転送されてもよい。また、オブジェクトも、データ転送ボリューム６３０を介して転送されることが可能である。
【００４２】
（Ｃ．５．復元プロセス）
図２３は、復元プロセスを示す。
ステップ１７０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、復元プロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ＴＰＶのＩＤを復元ターゲットとして示す。
ステップ１７０２で、バックアップ機器７００が、バックアップメディア８０１または８０２からリンク情報２２２を獲得する。
ステップ１７０３で、バックアップ機器７００が、ネットワーク９０２を介して、リンク情報２０４をアレイコントローラ１１０に送信する。
ステップ１７０４で、アレイコントローラ１１０が、受信されたリンク情報２２２でリンク情報２２２を更新する。
ステップ１７０５で、バックアップ機器７００が、リンク情報２２２に従ってターゲットボリューム６４０にデータ（オブジェクト）を書き込む。アレイコントローラ１１０が、ハッシュテーブル２２１を再現する。
ステップ１７０６で、バックアップ機器が、復元プロセスの完了をアレイコントローラ１１０に通知する。
【００４３】
以上の復元プロセスでは、現実に（仮想ではなく）存在するデータだけが、処理され、転送される。復元プロセスの別の例として、前の実施形態と同様に、リンク情報２２２は、ネットワーク９２０の代わりにデータ転送ボリューム６３０を介して転送されてもよい。また、オブジェクトも、データ転送ボリューム６３０を介して転送されることが可能である。
【００４４】
（Ｄ．第４の実施形態）
（Ｄ．１．システム構成）
図２４は、第４の実施形態のシステム構成を示す。メモリ２００の内容を除けば、システム構成は、第１の実施形態で説明した構成と同一である。この実施形態では、以下の情報およびプログラムが、メモリ２００の中に格納される。メインプロセッサ１１１、およびその他の構成要素が、それらの情報およびプログラムを使用して、後段で説明する様々なプロセスを実行する。
２４１：スナップショット情報
２４２：旧データ情報
２４３：プール情報
２３１：読み取り／書き込みプロセスプログラム
２３２：スナップショット管理プログラム
２３３：バックアッププロセスプログラム
２３４：復元プロセスプログラム
２３５：データ転送ボリューム管理プログラム
【００４５】
（Ｄ．２．コピーオンライトによるスナップショットの概要）
図２５は、コピーオンライトによるスナップショットの概要を示す。ストレージシステム１００は、ホスト５００のためのボリューム６５０（すなわち、ストレージ領域）を提供する。さらに、ストレージシステム１００は、コピーオンライトによって複数の生成（時点）に関するスナップショットをとり、提供する。この方法では、ストレージ領域のスナップショットがとられる時点で、ストレージシステム１００が、データをコピーすることはしない。その領域に書き込みアクセスが実行される際、ストレージシステム１００は、その書き込み前のデータ（すなわち、そのアクセスのための旧データ）をプールボリューム６２０の中のチャンクにコピーする。次に、ストレージシステム１００は、その新たなデータをターゲット領域に書き込む。旧データを保持して、管理することにより、ストレージシステム１００は、元の領域のスナップショットをホスト５００に仮想的に提供することができる。
【００４６】
例えば、図２５では、データＥが書き込まれる際に、旧データＡが、プールボリューム６２０の中のチャンク０の中にコピーされ、保持されている。現時点で、データＡ、データＢ、およびデータＤが、プールボリューム６２０の中に保持されており、各スナップショット（スナップショット１、２、または３）は、プールボリューム６２０の中のそれらの旧データと、ボリューム６５０（この図の右端のボリューム）の中の現在の内容とを使用することにより、回収されることが可能である。以上を実現するのに、アレイコントローラ１１０は、スナップショット情報２４１、旧データ情報２４２、プール情報２４３、およびベースデータ情報２４４を使用する。
【００４７】
図２７は、日付と時刻などの、各スナップショットについての情報を有するスナップショット情報２４１の例を示す。管理端末装置５２０が、新たなスナップショットをとるよう、ストレージシステム１００に命令する。図２８は、旧データ情報２４２の例を示す。この情報は、スナップショット、元のロケーション（セグメント）、およびプールボリューム６２０の中の旧データのロケーションの間の関係を保持する。この図では、元のロケーションは、セグメントＩＤによって指定され、旧データの現在のロケーションは、プールボリュームＩＤおよびチャンクＩＤによって指定される。つまり、この情報は、セグメントとチャンクの間のマッピングを保持する。図２９は、プール情報２４３の例を示す。この情報の内容および用法は、第１の実施形態において説明した内容および用法とほぼ同一である。図３０は、ベースデータ情報２４４の例を示す。この情報は、各セグメントに、旧データがコピーされるか（すなわち、書き込みが行われるか）否かを示す。この情報の用法は、後段で説明する。図２６に示されるとおり、バックアップ機器７００が、ＳＡＮ９０１を介してプールボリューム６２０およびデータ転送ボリューム６３０にアクセスする。また、ホスト５００も、ＳＡＮ９０１を介してボリューム６５０にアクセスする。
【００４８】
（Ｄ．３．書き込みプロセス）
図３１は、書き込みプロセスを説明する。
ステップ１８０１で、ホスト５００が、アレイコントローラ１１０に書き込み要求を発行し、書き込みデータを転送する。
ステップ１８０２で、アレイコントローラ１１０が、その書き込み要求を参照することにより、書き込みアクセスのターゲットボリュームおよびターゲット領域を検査する。
ステップ１８０３で、アレイコントローラ１１０が、旧データ情報２４２を検査する。最新のスナップショット（時点）後に、ターゲットセグメントにおいて他の書き込みアクセスが行われた場合、プロセスは、１８０７に進む。行われなかった場合、プロセスは、ステップ１８０４に進む。
ステップ１８０４で、アレイコントローラ１１０が、旧データを格納する新たなチャンクを割り当てる。これを行うのに、アレイコントローラ１１０は、旧データ情報２４２およびプール情報２４３を更新する。
ステップ１８０５で、アレイコントローラ１１０が、ターゲットセグメントの中のデータを、その新たなチャンクにコピーする。
ステップ１８０６で、アレイコントローラ１１０が、ターゲットセグメントの「ベースデータフラグ」を「いいえ」に設定する。このフラグの初期値は、「はい」である。
ステップ１８０７で、アレイコントローラ１１０が、書き込みデータをセグメント（すなわち、ボリューム６５０の中の領域）に格納する。
ステップ１８０８で、アレイコントローラ１１０が、ターゲット領域のすべてのセグメントを検査済みである場合、プロセスは、終了する。検査済みではない場合、アレイコントローラ１１０は、検査を次のセグメントに進める（ステップ１８０９）。
【００４９】
（Ｄ．４．スナップショットに関する読み取りプロセス）
ホスト５００からの１つのスナップショットに関する読み取り要求に応答する際、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を参照することにより、アレイコントローラ１１０は、指定されたスナップショットを回収するのに必要とされる旧データを有するチャンク、および指定されたスナップショットを回収するのに必要とされるデータを格納するセグメントを見つける。次に、アレイコントローラ１１０は、要求されたデータをホスト５００に送信する。
【００５０】
（Ｄ．５．スナップショットの複数の生成に関するバックアッププロセス）
図３２は、スナップショットの複数の生成に関するバックアッププロセスを示す。
ステップ１９０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、バックアッププロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ボリューム６５０のＩＤをバックアップターゲットとして示す。
ステップ１９０２で、アレイコントローラ１１０が、ネットワーク９０２を介して、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４をバックアップ機器７００に送信する。
ステップ１９０３で、バックアップ機器７００が、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を含むバックアップ情報をバックアップメディア８０１または８０２に記録する。
ステップ１９０４で、バックアップ機器７００が、ベースデータ情報２４４に従ってボリューム６５０からデータを読み取る。
ステップ１９０５で、バックアップ機器７００が、ベースデータ情報２４４の中の順序で、バックアップメディア８０１または８０２にデータを書き込む。
ステップ１９０６で、バックアップ機器７００が、旧データ情報２４２に従ってプールボリューム６２０からデータを読み取る。
ステップ１９０７で、バックアップ機器７００が、旧データ情報２４２の中の順序で、バックアップメディア８０１または８０２にデータを書き込む。
ステップ１９０８で、バックアップ機器７００が、バックアッププロセスの完了をアレイコントローラ１１０に通知する。
【００５１】
前述のバックアッププロセスにおいて、スナップショット間の差分データが、バックアップデータとして処理され、転送され、記録される。仮想ボリュームの中の複数のスナップショットのデータ全体が、処理され、転送され、記録される必要はない。バックアッププロセスの別の例として、前の実施形態と同様に、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４は、ネットワーク９２０の代わりにデータ転送ボリューム６３０を介して転送されてもよい。また、バックアップデータも、データ転送ボリューム６３０を介して転送されることが可能である。
【００５２】
（Ｄ．６．１つのスナップショットに関する復元プロセス）
図３３は、１つのスナップショットに関する復元プロセスを示す。
ステップ２００１で、バックアップ機器７００が、バックアップメディア８０１または８０２からスナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を獲得する。
ステップ２００２で、バックアップ機器７００が、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を参照することにより、バックアップメディア８０１または８０２の中に格納されたデータから、指定されたスナップショットに関するデータを選択する。
ステップ２００３で、バックアップ機器７００が、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４に従ってターゲットボリュームに、選択されたデータを書き込む。
【００５３】
（Ｄ．７．スナップショットの複数の生成に関する復元プロセス）
図３４は、スナップショットの複数の生成に関する復元プロセスを示す。
ステップ２１０１で、バックアップ機器７００が、ネットワーク９０２またはＳＡＮ９０１を介して、復元プロセスを開始することをアレイコントローラ１１０に通知する。この通知の中で、アレイコントローラ１１０は、ボリューム６５０のＩＤを復元ターゲットとして示す。
ステップ２１０２で、アレイコントローラ１１０が、ターゲットボリューム６５０への書き込みアクセスを禁止する。つまり、アレイコントローラ１１０は、ターゲットボリューム６５０への書き込みアクセスを拒否することを始める。
ステップ２１０３で、バックアップ機器７００が、バックアップメディア８０１または８０２からスナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を獲得する。
ステップ２１０４で、バックアップ機器が、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を、図３５に示されるフォーマットでデータ転送ボリューム６３０に書き込む。このフォーマットでは、情報の長さを格納する各部分は、図１３に示されるフォーマットと同様の固定長の部分である。このステップでは、書き込まれるべき旧データ情報は、ボリュームＩＤ、スナップショットＩＤ、およびコピーセグメントＩＤだけを有することが可能である。
ステップ２１０５で、バックアップ機器が、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４を送信することを完了したことを、アレイコントローラ１１０に通知する。
ステップ２１０６で、アレイコントローラ１１０が、受信された情報に従ってチャンクを準備する。この準備において、アレイコントローラ１１０が、メモリ２００の中のスナップショット情報２４１、旧データ情報２４２、プール情報２４３、およびベースデータ情報２４４を更新する。
ステップ２１０７で、アレイコントローラ１１０が、チャンクを準備することが完了したことをバックアップ機器７００に報告する。
ステップ２１０８で、バックアップ機器７００が、バックアップメディア８０１または８０２からベースデータおよび旧データを獲得する。次に、バックアップ機器７００は、ベースデータ情報２４４の中の順序で、データ転送ボリューム６３０にベースデータを書き込み、旧データ情報２４２の中の順序で逐次に、データ転送ボリューム６３０に旧データを書き込む。
ステップ２１０９で、アレイコントローラ１１０が、受信されたベースデータ情報２４４に従ってターゲットボリューム６５０の中に、受信されたベースデータを格納する。
ステップ２１１０で、アレイコントローラ１１０が、スナップショット情報２４１および旧データ情報２４２を参照することにより、受信された旧データを分類する。最新のスナップショットに関するものである旧データに関して、ステップ２１１１が、実行される。最新のスナップショットに関するものではない旧データに関して、ステップ２１１２が、実行される。
ステップ２１１１で、アレイコントローラ１１０が、受信された旧データ情報２４２に従ってターゲットボリューム６５０の中の元のセグメントの中に、その旧データを格納する。
ステップ２１１２で、アレイコントローラ１１０が、受信された旧データ情報２４２に従ってプールボリューム６２０の中のチャンクの中に、その旧データを格納する。
ステップ２１１３で、バックアップ機器が、復元プロセスの完了をアレイコントローラ１１０に通知する。
ステップ２１１４で、アレイコントローラが、以上のステップで述べた旧データの格納の後、ターゲットボリューム６５０への書き込みアクセスを許す。
【００５４】
前述の復元プロセスでは、スナップショット間の差分データが、処理され、転送される。復元プロセスの別の例として、スナップショット情報２４１、旧データ情報２４２、およびベースデータ情報２４４は、ネットワーク９２０を介して転送されてもよい。また、旧データおよびベースデータも、ネットワーク９２０を介して転送されることが可能である。
【００５５】
本明細書で提供する開示から理解することができるとおり、本発明の諸実施形態によれば、仮想化の管理についての情報（すなわち、物理と論理の間のマッピング）が、ストレージシステムによってバックアップ機器（または一般的なコンピュータ）に提供される。バックアップ機器は、その情報を使用して、マッピングを認識し、マッピングに基づいてバックアッププロセスおよび復元プロセスを実行する。したがって、バックアップ機器は、仮想領域ではなく、物理（現実に存在する）領域だけを扱って、バックアップおよび復元を実行する。本発明は、転送され、バックアップされるデータの量を低減することを実現する。
【００５６】
最後に、本明細書で説明したプロセスおよび技術は、いずれの特定の装置にも本来的に関連しておらず、構成要素の任意の適切な組み合わせによって実施されることが可能であることを理解されたい。さらに、様々なタイプの汎用デバイスが、本明細書で説明する教示に従って使用されることが可能である。また、本明細書で説明する方法ステップを実行する専用の装置を構築することが有利であることが、判明する可能性もある。本発明は、すべての点で、限定的ではなく、例示的であるものとされる特定の実施例に関連して説明してきた。ハードウェア、ソフトウェア、およびファームウェアの多くの異なる組み合わせが、本発明を実施するのに適することが、当業者には認識されよう。例えば、説明される方法およびシステムは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）などの多種多様なプログラミング言語またはスクリプト言語で実施されることが可能である。
【００５７】
本発明は、すべての点で、限定的ではなく、例示的であるものとされる特定の実施例に関連して説明してきた。ハードウェア、ソフトウェア、およびファームウェアの多くの異なる組み合わせが、本発明を実施するのに適することが、当業者には認識されよう。さらに、本発明の他の実施形態が、本明細書を考慮し、本明細書で開示される本発明を実施することで、当業者には明らかとなろう。説明される実施形態の様々な態様および／または構成要素は、プラズマチャンバ技術において単独で、または任意の組み合わせで使用されることが可能である。本明細書および実施例は、単に例示的であると考えられ、本発明の趣旨および範囲は、添付の特許請求の範囲によって示されるものとする。
【図面の簡単な説明】
【００５８】
【図１】第１の実施形態のシステム構成を示す概略図である。
【図２】ストレージシステム１００におけるボリュームの用法の概要を示す図である。
【図３】本発明の実施形態によるＴＰＶを提供する構造および方法を示す図である。
【図４】本発明の実施形態によるマッピング情報２０１の例を示す図である。
【図５】本発明の実施形態によるプール情報２０２の例を示す図である。
【図６】本発明の実施形態によるバックアップステータス情報を示す図である。
【図７】本発明の実施形態による或る形態の送信されるべきマッピング情報を示す図である。
【図８】本発明の実施形態によるバックアッププロセスを示す図である。
【図９】本発明の実施形態によるＴＰＶ６１０に関する書き込みプロセスを示す図である。
【図１０】本発明の実施形態による復元プロセスを示す図である。
【図１１】本発明の実施形態によるストレージシステムにおけるボリュームの用法の概要を示す図である。
【図１２】本発明の実施形態による或る形態の送信されるべきマッピング情報を示す図である。
【図１３】本発明の実施形態によるデータ転送ボリューム上でマッピング情報を準備するためのフォーマットの例を示す図である。
【図１４】本発明の実施形態によるデータ転送ボリューム上でデータを準備するためのフォーマットの例を示す図である。
【図１５】本発明の実施形態によるバックアッププロセスを示す図である。
【図１６】本発明の実施形態による復元プロセスを示す図である。
【図１７】本発明の別の実施形態によるシステム構成を示す図である。
【図１８】本発明の別の実施形態によるストレージシステムにおけるボリュームの用法の概要を示す図である。
【図１９】本発明の別の実施形態によるデデュプリケーションの概念を示す図である。
【図２０】本発明の実施形態によるリンク情報の例を示す図である。
【図２１】本発明の実施形態によるデデュプリケーションを伴う書き込みプロセスを説明する図である。
【図２２】本発明の実施形態によるバックアッププロセスを示す図である。
【図２３】本発明の実施形態による復元プロセスを示す図である。
【図２４】本発明のさらに別の実施形態によるシステム構成を示す図である。
【図２５】本発明の実施形態によるコピーオンライトによるスナップショットの概要を示す図である。
【図２６】ＳＡＮを介するプールボリュームおよびデータボリュームへのバックアップ機器のアクセスの例を示す図である。
【図２７】本発明の実施形態によるスナップショット情報の例を示す図である。
【図２８】本発明の実施形態による旧データ情報の例を示す図である。
【図２９】本発明の実施形態によるプール情報の例を示す図である。
【図３０】本発明の実施形態によるベースデータ情報の例を示す図である。
【図３１】本発明の実施形態による書き込みプロセスを説明する図である。
【図３２】本発明の実施形態によるスナップショットの複数の生成に関するバックアッププロセスを示す図である。
【図３３】本発明の実施形態による１つのスナップショットに関する復元プロセスを示す図である。
【図３４】本発明の実施形態によるスナップショットの複数の生成に関する復元プロセスを示す図である。
【図３５】本発明の実施形態によるスナップショット情報、旧データ情報、およびベースデータ情報を書き込むためのフォーマットを示す図である。
【図１】
2008282382.tif 000003
【図２】
2008282382.tif 000004
【図３】
2008282382.tif 000005
【図４】
2008282382.tif 000006
【図５】
2008282382.tif 000007
【図６】
2008282382.tif 000008
【図７】
2008282382.tif 000009
【図８】
2008282382.tif 000010
【図９】
2008282382.tif 000011
【図１０】
2008282382.tif 000012
【図１１】
2008282382.tif 000013
【図１２】
2008282382.tif 000014
【図１３】
2008282382.tif 000015
【図１４】
2008282382.tif 000016
【図１５】
2008282382.tif 000017
【図１６】
2008282382.tif 000018
【図１７】
2008282382.tif 000019
【図１８】
2008282382.tif 000020
【図１９】
2008282382.tif 000021
【図２０】
2008282382.tif 000022
【図２１】
2008282382.tif 000023
【図２２】
2008282382.tif 000024
【図２３】
2008282382.tif 000025
【図２４】
2008282382.tif 000026
【図２５】
2008282382.tif 000027
【図２６】
2008282382.tif 000028
【図２７】
2008282382.tif 000029
【図２８】
2008282382.tif 000030
【図２９】
2008282382.tif 000031
【図３０】
2008282382.tif 000032
【図３１】
2008282382.tif 000033
【図３２】
2008282382.tif 000034
【図３３】
2008282382.tif 000035
【図３４】
2008282382.tif 000036
【図３５】
2008282382.tif 000037
【外国語明細書】
2008282382000001.pdf