(57)【要約】      （修正有）【課題】スケールアウトタイプのストレージシステムを使用するデータセンター全体の中のゴールドイメージの総容量を最適化／最小化するためのソリューションを提供する。【解決手段】実ゴールドイメージ又は仮想ゴールドイメージのうちのいずれか一方であるゴールドイメージが第１ストレージシステムに存在するか否かをチェックし、ゴールドイメージが第１ストレージシステムに存在しない場合は、実ゴールドイメージが第２ストレージシステムに見つかるまで、ストレージシステムの残りを検索する。第２ストレージシステムに実ゴールドイメージを見つけた後で、第１ストレージシステムに、第２ストレージシステムの実ゴールドイメージに関連付けられた仮想ゴールドイメージを作成する。仮想ゴールドイメージに基づいて第１ストレージシステムにスナップショットボリュームを作成する。【選択図】図３
2011086274.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージシステムと、複数のホストシステムと、ネットワークとを含むシステムにおけるサーバイメージプロビジョニングの方法であり、前記複数のストレージシステムのそれぞれは、前記ネットワークを介して前記複数のホストシステムの１つにそれぞれ接続され、前記複数のストレージシステムは、前記ネットワークを介して互いに接続されるものであり、
実ゴールドイメージ又は仮想ゴールドイメージのいずれか一方であるゴールドイメージが、前記複数のストレージシステムのうちの第１ストレージシステムに存在するか否かをチェックすることと、
前記第１ストレージシステムにゴールドイメージが存在しない場合は、実ゴールドイメージが前記複数のストレージシステムのうちの第２ストレージシステム内に見つかるまで、前記複数のストレージシステムの残りを検索することと、
前記第２ストレージシステムに前記実ゴールドイメージを見つけた後、前記第１ストレージシステムに仮想ゴールドイメージを作成し、前記第１ストレージシステムの前記仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられることと、
前記仮想ゴールドイメージに基づいて前記第１ストレージシステムにスナップショットボリュームを作成することと
を備えるサーバイメージプロビジョニングの方法。
【請求項２】
１つ以上のゴールドイメージの実際の位置を含むゴールドイメージテーブルを維持することをさらに備える方法であって、実ゴールドイメージの前記実際の位置は、前記実ゴールドイメージの位置であり、仮想ゴールドイメージの前記実際の位置は、前記仮想ゴールドイメージに関連付けられた実ゴールドイメージの位置である、請求項１に記載の方法。
【請求項３】
各ゴールドイメージは、前記ゴールドイメージテーブルにおけるゴールドイメージＩＤによって識別され、
前記第１ストレージシステムにゴールドイメージが存在するか否かをチェックすることは、前記第１ストレージシステムに前記ゴールドイメージが存在する場合には、前記ゴールドイメージテーブルでゴールドイメージのゴールドイメージＩＤを選択することを備える、請求項２に記載の方法。
【請求項４】
前記第１ストレージシステムにおいて前記作成された仮想ゴールドイメージのレコードを挿入することによって、前記ゴールドイメージテーブルを更新することをさらに備える方法であって、前記レコードは、前記仮想ゴールドイメージのゴールドイメージＩＤ、前記仮想ゴールドイメージのストレージボリュームレベルのストレージボリュームＩＤ、前記仮想ゴールドイメージの仮想の存在エントリ、前記仮想ゴールドイメージの実際の位置、及び前記仮想ゴールドイメージに関連付けられえた前記実ゴールドイメージのストレージボリュームの外部ストレージボリュームＩＤを含む、請求項２に記載の方法。
【請求項５】
前記複数のストレージシステムのうちの第３ストレージシステムに第２仮想ゴールドイメージを作成することをさらに備え、前記第３ストレージシステムの前記第２仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられる、請求項１に記載の方法。
【請求項６】
各スナップショットボリュームは、スナップショットボリュームＩＤを有し、
前記スナップショットボリュームの前記スナップショットボリュームＩＤ、及び前記スナップショットボリュームを作成する元となった前記ゴールドイメージのゴールドイメージＩＤを含むスナップショットボリュームテーブルを維持することをさらに備える、請求項１に記載の方法。
【請求項７】
前記作成されたスナップショットボリュームの前記スナップショットボリュームＩＤ、及び前記スナップショットボリュームを作成する元となった前記仮想ゴールドイメージの前記ゴールドイメージＩＤのレコードを挿入することによって、前記スナップショットボリュームテーブルを更新することをさらに備える、請求項６に記載の方法。
【請求項８】
前記第１ストレージシステムの前記ゴールドイメージの作業負荷を監視することと、
前記仮想ゴールドイメージの前記作業負荷が事前設定された閾値を超えたことを検出した場合、前記第２ストレージシステムと前記第１ストレージシステムとの間の前記仮想ゴールドイメージに関連付けられた前記実ゴールドイメージの複製を構成することと、
前記第１ストレージシステム内の複製ゴールドイメージとして、前記第２ストレージシステムから前記第１ストレージシステムに、前記実ゴールドイメージを複製することと
をさらに備える、請求項１に記載の方法。
【請求項９】
１つ以上のゴールドイメージの実際の位置を含むゴールドイメージテーブルを維持することをさらに備える方法であって、実ゴールドイメージの前記実際の位置は、前記実ゴールドイメージの位置であり、仮想ゴールドイメージの前記実際の位置は、前記仮想ゴールドイメージに関連付けられた実ゴールドイメージの位置であり、
前記ゴールドイメージテーブルは、前記ゴールドイメージの前記作業負荷であるＩ／Ｏ使用率と、前記ゴールドイメージが複製ゴールドイメージであるか否かを示す複製情報とをさらに含む、請求項８に記載の方法。
【請求項１０】
前記仮想ゴールドイメージに関連付けられた前記実ゴールドイメージの複製を構成することは、前記実ゴールドイメージを複製正ボリュームとして設定し、かつ前記仮想ゴールドイメージを複製副ボリュームとして設定することを備える、請求項８に記載の方法。
【請求項１１】
前記作業負荷は、Ｉ／Ｏ使用率によって測定される、請求項８に記載の方法。
【請求項１２】
前記第２ストレージシステムにおける前記実ゴールドイメージの作業負荷を監視することと、
前記実ゴールドイメージの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムと前記第１ストレージシステムとの間で前記実ゴールドイメージの複製を構成することと、
前記第１ストレージシステム内の複製ゴールドイメージとして、前記第２ストレージシステムから前記第１ストレージシステムに、前記実ゴールドイメージを複製することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記第１ストレージシステムにおける前記仮想ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視することと、
前記仮想ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成することと、
前記仮想ゴールドイメージで検出された前記ブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーすることと
をさらに備える、請求項１に記載の方法。
【請求項１４】
前記チャンクのチャンクＩＤ、前記チャンクが属する前記仮想ゴールドイメージのゴールドイメージＩＤ、前記チャンクの開始ブロックアドレス、及び前記チャンク内のブロック数を含む複製チャンクテーブルを維持することをさらに備える、請求項１３に記載の方法。
【請求項１５】
前記作成されたチャンクのチャンクＩＤ、前記作成されたチャンクが属する前記仮想ゴールドイメージのゴールドイメージＩＤ、前記作成されたチャンクの開始ブロックアドレス、及び前記作成されたチャンク内のブロック数のレコードを挿入することによって、前記チャンクテーブルを更新することをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記第２ストレージシステムの前記実ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視することと、
前記実ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成することと、
前記検出されたブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーすることと
をさらに備える、請求項１に記載の方法。
【請求項１７】
複数のストレージシステムと、複数のホストシステムと、ネットワークとを含むシステムにおけるサーバイメージプロビジョニングの方法であって、前記複数のストレージシステムのそれぞれは、前記ネットワークを介して前記複数のホストシステムのうちの１つにそれぞれ接続され、前記複数のストレージシステムは、前記ネットワークを介して互いに接続され、前記複数のストレージシステムは、実ゴールドイメージと、前記実ゴールドイメージに基づいて作成されたスナップショットボリュームとを有する、第１ストレージシステムを含み、
前記第１ストレージシステムの前記スナップショットボリュームの複数のブロックの各ブロックの作業負荷を監視することと、
前記スナップショットボリュームのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記実ゴールドイメージからコピーされるデータを割り当てるために、前記スナップショットボリュームにチャンクを作成することと、
前記スナップショットボリュームの前記検出されたブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記スナップショットボリューム内の前記作成されたチャンクに、データをコピーすることと
を備えるサーバイメージプロビジョニングの方法。
【請求項１８】
前記チャンクのチャンクＩＤ、前記チャンクが属する前記スナップショットボリュームのスナップショットボリュームＩＤ、前記チャンクの開始ブロックアドレス、前記チャンク内のブロック数、及びデータが前記チャンク内で書込み可能なスナップショットとして上書きされるか又は前記チャンク内の複製データとして割り当てられるかを示す使用情報を含む、スナップショットボリュームチャンクテーブルを維持することをさらに備える、請求項１７に記載の方法。
【請求項１９】
複数のストレージシステムと、
複数のホストシステムと、
前記複数のストレージシステムのそれぞれが、ネットワークを介して前記複数のホストシステムのうちの１つにそれぞれ接続され、前記複数のストレージシステムが、前記ネットワークを介して互いに接続される、ネットワークと、
前記ネットワークに接続された管理コンピュータと
を備えるサーバイメージプロビジョニングシステムであって、
前記管理コンピュータが、実ゴールドイメージ又は仮想ゴールドイメージのいずれか一方であるゴールドイメージが、前記複数のストレージシステムのうちの第１ストレージシステムに存在するか否かをチェックし、
ゴールドイメージが前記第１ストレージシステムに存在しない場合、前記管理コンピュータは、実ゴールドイメージが前記複数のストレージシステムのうちの第２ストレージシステム内で見つかるまで、前記複数のストレージシステムの残りを検索し、
前記第２ストレージシステムの前記実ゴールドイメージが見つかった後、前記第１ストレージシステムは、前記第１ストレージシステムの仮想ゴールドイメージを作成し、前記第１ストレージシステムの前記仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられ、かつ
前記第１ストレージシステムは、前記仮想ゴールドイメージに基づいて前記第１ストレージシステムにスナップショットボリュームを作成する、
サーバイメージプロビジョニングシステム。
【請求項２０】
前記第１ストレージシステムは、前記第１ストレージシステムにおける前記仮想ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視し、
前記仮想ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第１ストレージシステムは、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成し、
前記第１ストレージシステムは、前記仮想ゴールドイメージで検出された前記ブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーする、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は一般にストレージシステムに関し、特にサーバイメージ容量の最適化に関する。
【背景技術】
【０００２】
０００２    データセンターのデジタルデータのサイズの急速な増加に対処するために、ストレージ不足を避けるために大きいモノリシックストレージデバイスを使用するのではなく、スケールアウトタイプのストレージソリューションが出現してきた。多様なストレージ仮想化技術によって、複数のデバイスが、追加の物理ストレージデバイス又はＨＤＤなどの媒体に従って、論理的に統合された大きいサイズのストレージ容量をホストサーバ又はユーザに提供することが可能になった。ストレージデバイスは、データを相互に参照、共有、書込み、又はコピーするために相互接続される。ボリューム位置仮想化技術の例は、米国特許第６，０９８，１２９号及び第７，０５１，１２１号で見つけることができる。
【０００３】
０００３    エンタープライズデータセンターにおける仮想サーバの配備の急速な普及は、今日のＩＴ世界のもう一つの大きなトレンドである。ＯＳ（オペレーティングシステム）自体のみならず、仮想アプライアンス（ＯＳと、ミドルウェアと、いずれかの目的専用アプリケーションとで構成されるハイパーバイザ上に配備できる接続されたプログラムイメージである）が、仮想サーバイメージプロビジョニングの主要な選択肢になっている。仮想アプライアンス市場（例えば1268124620171_0）が存在し、かつ管理者がプログラムをダウンロードするだけでアプライアンスとしてこれを使用する準備ができるので、仮想サーバイメージプロビジョニングを行うことは非常に簡単である。
【０００４】
０００４    より多くの仮想サーバの配備がより容易になるにつれて、近年、より多くの仮想サーバのスプロールが見受けられてきている。さらに、各仮想サーバイメージ（必要なミドルウェア及びアプリケーションを含むことを意味する）のサイズが、豊富な機能のために急速に大きくなっている。この組み合わせの結果、データセンターは、仮想サーバイメージを保持するために非常に大きなサイズのストレージシステムを有する必要がある。
【０００５】
０００５    データセンターに配備される仮想サーバイメージ全体のサイズを最適化するためには、書込み可能スナップショット技術が問題に対処する可能性を有している。仮想サーバイメージ容量を小さくするための書込み可能スナップショット技術の使用については、例えば、http://www.3par.com/SiteObjects/A7B11BEED3AC16DF15CA5A82011BF265/3PAR-sp-ds-08.1.pdfを参照すること。さらに、フィッツジェラルドは、米国特許出願公開第２００８／０１３４１７５（Ａ１）号明細書で仮想サーバインスタンスの管理技術を開示している。ここでは、システムにスナップショットのような構成を有することについて記載している。また、リポジトリからホストへの仮想サーバイメージ分布動作について記載している。しかし、フィッツジェラルドは、本発明で開示されるような、プロビジョニングの間にイメージのデータコピー量を減らす方法は教示していない。
【０００６】
０００６    複数の仮想サーバイメージが、同じＯＳ、ミドルウェア、及びアプリケーション、並びにカスタマイズ領域のほんの小さい部分を保持するという事実により、このような複数の仮想サーバイメージの配備は冗長データの非常に大きい部分を有するため、スナップショット機構は、複数の仮想サーバイメージの提示を（仮想的に）保持しながら、冗長部分を除去するようにうまく機能する。オリジナルのイメージは、「ゴールドイメージ」と呼ばれる。新しい仮想サーバインスタンスが必要な場合、ゴールドイメージのスナップショットボリュームが作成され、仮想サーバに関連付けられる。スナップショットボリュームは、単なる論理ボリュームにすぎないが、ゴールドイメージ上のデータの対応する部分を実際に読み込むことによってデータ読取アクセスを実行することができる。書込みアクセスがなされると、小さい容量のチャンクをスナップショットボリュームに割り当て、書き込まれた特定のデータを保持することとなり、これがゴールドイメージのオリジナルデータからの「カスタマイズされた部分」である。この仮想化技術を使用すると、カスタマイズされたデータのみが新たに割り当てられ、オリジナルのデータ部分は、それぞれの仮想サーバイメージボリュームには割り当てられない。よって、ストレージ全体のサイズが最適化される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
０００７    しかし、書込み可能なスナップショットは１つのストレージデバイス内の冗長データを除去するが、離れたデバイスとデバイスの間では最適化は適用できない。上述のように、デジタルデータの急速な増加に対処するために、各データセンターで巨大容量のストレージを提供するソリューションとして、スケールアウトタイプのストレージシステムが現れてきた。従って、同じゴールドイメージの多くのコピーが、それぞれのデバイスでスナップショットのルートとして実際に存在する必要があり、このことはまた、データセンター全体の観点から多量の冗長データをもたらす結果となる。
【０００８】
０００８    本発明の例示的な実施形態は、スケールアウトタイプのストレージシステムを利用するデータセンター全体内のゴールドイメージの総容量を最適化／最小化するソリューションを提供する。
【課題を解決するための手段】
【０００９】
０００９    複数のストレージシステムが相互接続されて、巨大な論理容量を形成する。他のシステムのデータは、相互に読み取り、書込み、コピーすることができる。本発明では、システムとシステムとの間のデータの相互アクセスの一例は、ネットワークを介してデータセンター内の異なる第２ストレージシステム上の実ストレージボリュームに関連付けられた第１システム上の仮想ストレージボリュームを表すための技術である外付けストレージ技術であり、所定の容量を有する実ストレージボリュームが第１ストレージシステムに存在するかのように、仮想ストレージボリュームがホスト又はユーザに晒される。各ストレージシステムは、新しい仮想サーバインスタンスの作成／プロビジョニングの間にスナップボリュームの基礎として使用されるゴールドイメージを保持するために、オンサイトゴールドイメージリポジトリを有する。管理サーバの管理クライアントモジュールが、特定のストレージシステム上に新しい仮想サーバイメージを作成するように要求された（又は何らかのイベントによってトリガされた）場合、選択されたゴールドイメージのデータ全体をコピーするのではなく、特定のゴールドイメージ識別子に基づいてスナップショットボリュームを新しいサーバイメージとして作成するだけである。スナップショットボリュームを対象として書込みアクセス要求がなされ、かつ容量がまだ特定のアドレスに割り当てられていない場合は、比較的小さいサイズの新しい容量チャンクがスナップショットボリュームに割り当てられ、要求されたデータが格納される。チャンクが既にアドレスに割り当てられている場合は、内容が上書きされる。よって、各スナップショットボリュームについて、カスタマイズされたいかなる情報及びそのデータ内容も、ストレージシステムによって管理される。スナップショットボリュームを対象として読取アクセス要求がなされ、かつスナップショットボリュームがアドレスについてカスタマイズされたデータを有する場合は、特定のデータ内容で応答する。しかし、スナップショットが特定のアドレスに更新されたデータを有していない場合は、ゴールドイメージ上のデータが返送される。
【００１０】
００１０    新しいサーバイメージプロビジョニング要求が特定のゴールドイメージＩＤを有する第１システムに発行されたが、管理クライアントモジュールが、第１システムにそのシステムのゴールドイメージリポジトリ内に望ましいゴールドイメージが保持されていないことを発見すると、管理クライアントモジュールは、データセンター内の他のシステムにおいて望ましいゴールドイメージの検索を開始する。第２ストレージシステム上に望ましいゴールドイメージを見つけた後で、管理クライアントモジュールは、第１ストレージシステム上に仮想ゴールドイメージの仮想ストレージボリュームを作成し、これを第２ストレージシステム上の見つかったゴールドイメージに関連付ける。次に、スナップショットボリュームは、仮想ゴールドイメージに基づいて第１ストレージシステム上でプロビジョンされる。他のストレージシステムからの望ましいゴールドイメージの自動検索及び見つかった実ゴールドイメージに関連付けられた仮想ボリュームを作成する自動構成のための機構を提供することによって、本発明の実施形態は、データセンター内に同一のゴールドイメージの冗長データを格納する必要性を取り除くことができる。
【００１１】
００１１    本発明の一態様は、複数のストレージシステムと、複数のホストシステムと、ネットワークとを含むシステムにおけるサーバイメージプロビジョニングの方法を対象とし、前記複数のストレージシステムのそれぞれは、前記ネットワークを介して前記複数のホストシステムの１つにそれぞれ接続され、前記複数のストレージシステムは、前記ネットワークを介して互いに接続されるものである。前記方法は、実ゴールドイメージ又は仮想ゴールドイメージのいずれか一方であるゴールドイメージが、前記複数のストレージシステムのうちの第１ストレージシステムに存在するか否かをチェックすることと、前記第１ストレージシステムにゴールドイメージが存在しない場合は、実ゴールドイメージが前記複数のストレージシステムのうちの第２ストレージシステム内に見つかるまで、前記複数のストレージシステムの残りを検索することと、前記第２ストレージシステムに前記実ゴールドイメージを見つけた後、前記第１ストレージシステムに仮想ゴールドイメージを作成し、前記第１ストレージシステムの前記仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられることと、前記仮想ゴールドイメージに基づいて前記第１ストレージシステムにスナップショットボリュームを作成することとを備える。
【００１２】
００１２    いくつかの実施形態において、前記方法は、１つ以上のゴールドイメージの実際の位置を含むゴールドイメージテーブルを維持することをさらに備え、実ゴールドイメージの前記実際の位置は、前記実ゴールドイメージの位置であり、仮想ゴールドイメージの前記実際の位置は、前記仮想ゴールドイメージに関連付けられた実ゴールドイメージの位置である。各ゴールドイメージは、前記ゴールドイメージテーブルにおけるゴールドイメージＩＤによって識別される。前記第１ストレージシステムにゴールドイメージが存在するか否かをチェックすることは、前記第１ストレージシステムに前記ゴールドイメージが存在する場合には、前記ゴールドイメージテーブルでゴールドイメージのゴールドイメージＩＤを選択することを備える。前記方法は、前記第１ストレージシステムにおいて前記作成された仮想ゴールドイメージのレコードを挿入することによって、前記ゴールドイメージテーブルを更新することをさらに備え、前記レコードは、前記仮想ゴールドイメージのゴールドイメージＩＤ、前記仮想ゴールドイメージのストレージボリュームレベルのストレージボリュームＩＤ、前記仮想ゴールドイメージの仮想の存在エントリ、前記仮想ゴールドイメージの実際の位置、及び前記仮想ゴールドイメージに関連付けられえた前記実ゴールドイメージのストレージボリュームの外部ストレージボリュームＩＤを含む。前記方法は、前記複数のストレージシステムのうちの第３ストレージシステムに第２仮想ゴールドイメージを作成することをさらに備え、前記第３ストレージシステムの前記第２仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられる。各スナップショットボリュームは、スナップショットボリュームＩＤを有し、前記方法は、前記スナップショットボリュームの前記スナップショットボリュームＩＤ、及び前記スナップショットボリュームを作成する元となった前記ゴールドイメージのゴールドイメージＩＤを含むスナップショットボリュームテーブルを維持することをさらに備える。前記方法は、前記作成されたスナップショットボリュームの前記スナップショットボリュームＩＤ、及び前記スナップショットボリュームを作成する元となった前記仮想ゴールドイメージの前記ゴールドイメージＩＤのレコードを挿入することによって、前記スナップショットボリュームテーブルを更新することをさらに備える。
【００１３】
００１３    特定の実施形態において、前記方法は、前記第１ストレージシステムの前記ゴールドイメージの作業負荷を監視することと、前記仮想ゴールドイメージの前記作業負荷が事前設定された閾値を超えたことを検出した場合、前記第２ストレージシステムと前記第１ストレージシステムとの間の前記仮想ゴールドイメージに関連付けられた前記実ゴールドイメージの複製を構成することと、前記第１ストレージシステム内の複製ゴールドイメージとして、前記第２ストレージシステムから前記第１ストレージシステムに、前記実ゴールドイメージを複製することとをさらに備える。前記方法は、１つ以上のゴールドイメージの実際の位置を含むゴールドイメージテーブルを維持することをさらに備える方法であって、実ゴールドイメージの前記実際の位置は、前記実ゴールドイメージの位置であり、仮想ゴールドイメージの前記実際の位置は、前記仮想ゴールドイメージに関連付けられた実ゴールドイメージの位置である。前記ゴールドイメージテーブルは、前記ゴールドイメージの前記作業負荷であるＩ／Ｏ使用率と、前記ゴールドイメージが複製ゴールドイメージであるか否かを示す複製情報とをさらに含む。前記仮想ゴールドイメージに関連付けられた前記実ゴールドイメージの複製を構成することは、前記実ゴールドイメージを複製正ボリュームとして設定し、かつ前記仮想ゴールドイメージを複製副ボリュームとして設定することを備える。前記作業負荷は、Ｉ／Ｏ使用率によって測定される。前記方法は、前記第２ストレージシステムにおける前記実ゴールドイメージの作業負荷を監視することと、前記実ゴールドイメージの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムと前記第１ストレージシステムとの間で前記実ゴールドイメージの複製を構成することと、前記第１ストレージシステム内の複製ゴールドイメージとして、前記第２ストレージシステムから前記第１ストレージシステムに、前記実ゴールドイメージを複製することとをさらに備える。
【００１４】
００１４    いくつかの実施形態において、前記方法は、前記第１ストレージシステムにおける前記仮想ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視することと、前記仮想ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成することと、前記仮想ゴールドイメージで検出された前記ブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーすることとをさらに備える。前記方法は、前記チャンクのチャンクＩＤ、前記チャンクが属する前記仮想ゴールドイメージのゴールドイメージＩＤ、前記チャンクの開始ブロックアドレス、及び前記チャンク内のブロック数を含む複製チャンクテーブルを維持することをさらに備える。前記方法は、前記作成されたチャンクのチャンクＩＤ、前記作成されたチャンクが属する前記仮想ゴールドイメージのゴールドイメージＩＤ、前記作成されたチャンクの開始ブロックアドレス、及び前記作成されたチャンク内のブロック数のレコードを挿入することによって、前記チャンクテーブルを更新することをさらに備える。前記方法は、前記第２ストレージシステムの前記実ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視することと、前記実ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成することと、前記検出されたブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーすることとをさらに備える。
【００１５】
００１５    本発明の他の態様は、複数のストレージシステムと、複数のホストシステムと、ネットワークとを含むシステムにおけるサーバイメージプロビジョニングの方法を対象とし、前記複数のストレージシステムのそれぞれは、前記ネットワークを介して前記複数のホストシステムのうちの１つにそれぞれ接続され、前記複数のストレージシステムは、前記ネットワークを介して互いに接続され、前記複数のストレージシステムは、実ゴールドイメージと、前記実ゴールドイメージに基づいて作成されたスナップショットボリュームとを有する、第１ストレージシステムを含む。前記方法は、前記第１ストレージシステムの前記スナップショットボリュームの複数のブロックの各ブロックの作業負荷を監視することと、前記スナップショットボリュームのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記実ゴールドイメージからコピーされるデータを割り当てるために、前記スナップショットボリュームにチャンクを作成することと、前記スナップショットボリュームの前記検出されたブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記スナップショットボリューム内の前記作成されたチャンクに、データをコピーすることとを備える。
【００１６】
００１６    特定の実施形態では、前記方法は、前記チャンクのチャンクＩＤ、前記チャンクが属する前記スナップショットボリュームのスナップショットボリュームＩＤ、前記チャンクの開始ブロックアドレス、前記チャンク内のブロック数、及びデータが前記チャンク内で書込み可能なスナップショットとして上書きされるか又は前記チャンク内の複製データとして割り当てられるかを示す使用情報を含む、スナップショットボリュームチャンクテーブルを維持することをさらに備える。
【００１７】
００１７    本発明の他の態様に従って、サーバイメージプロビジョニングシステムは、複数のストレージシステムと、複数のホストシステムと、前記複数のストレージシステムのそれぞれが、ネットワークを介して前記複数のホストシステムのうちの１つにそれぞれ接続され、前記複数のストレージシステムが、前記ネットワークを介して互いに接続される、ネットワークと、前記ネットワークに接続された管理コンピュータとを備える。前記管理コンピュータは、実ゴールドイメージ又は仮想ゴールドイメージのいずれか一方であるゴールドイメージが、前記複数のストレージシステムのうちの第１ストレージシステムに存在するか否かをチェックする。ゴールドイメージが前記第１ストレージシステムに存在しない場合、前記管理コンピュータは、実ゴールドイメージが前記複数のストレージシステムのうちの第２ストレージシステム内で見つかるまで、前記複数のストレージシステムの残りを検索する。前記第２ストレージシステムの前記実ゴールドイメージが見つかった後、前記第１ストレージシステムは、前記第１ストレージシステムの仮想ゴールドイメージを作成し、前記第１ストレージシステムの前記仮想ゴールドイメージは、前記第２ストレージシステムの前記実ゴールドイメージに関連付けられる。前記第１ストレージシステムは、前記仮想ゴールドイメージに基づいて前記第１ストレージシステムにスナップショットボリュームを作成する。
【００１８】
００１８    いくつかの実施形態において、前記第１ストレージシステムは、前記第１ストレージシステムにおける前記仮想ゴールドイメージの複数のブロックの各ブロックの作業負荷を監視する。前記仮想ゴールドイメージのブロックの前記作業負荷が事前設定された閾値を超えたことを検出した場合に、前記第１ストレージシステムは、前記第２ストレージシステムの前記実ゴールドイメージから前記第１ストレージシステムの前記仮想ゴールドイメージにコピーされるデータを割り当てるために、前記第１ストレージシステムにチャンクを作成する。前記第１ストレージシステムは、前記仮想ゴールドイメージで検出された前記ブロックに対応するブロックを含む前記実ゴールドイメージのチャンクから、複製チャンクとしての前記第１ストレージシステム内の前記作成されたチャンクに、データをコピーする。
【００１９】
００１９    本発明の上記及びその他の特徴及び効果は、以下における特定の実施形態の詳細な説明を考慮して、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００２０】
【図１】００２０    図１は、本発明の方法及び装置が適用され得るシステムのハードウェア構成の一例を示す。
【図２】００２１    図２は、ストレージボリューム位置仮想化の論理エレメント構造の一例を示す。
【図３】００２２    図３は、スナップショットボリューム構成及びソフトウェアの論理エレメント構造の一例を示す。
【図４】００２３    図４は、異なるストレージシステム上でゴールドイメージを共有する論理エレメント構造の一例を示す。
【図５】００２４    図５は、ゴールドイメージテーブルの例示的データ構造を示す。
【図６】００２５    図６は、スナップショットボリュームテーブルの例示的データ構造を示す。
【図７】００２６    図７は、第１の実施形態に従ったゴールドイメージからスナップショットボリュームを作成することによって新しい仮想サーバイメージをプロビジョンするプロセスのフロー図の一例を示す。
【図８】図８は、第１の実施形態に従ったゴールドイメージからスナップショットボリュームを作成することによって新しい仮想サーバイメージをプロビジョンするプロセスのフロー図の一例を示す。
【図９】００２７    図９は、第２の実施形態のゴールドイメージ複製の論理エレメント構造の一例を示す。
【図１０】００２８    図１０は、第２の実施形態に従ったゴールドイメージテーブルの例示的なデータ構造を示す。
【図１１】００２９    図１１は、ゴールドイメージ複製のプロセスのフロー図の一例を示す。
【図１２】００３０    図１２は、第３の実施形態に従ったゴールドイメージチャンク複製の論理エレメント構造の一例を示す。
【図１３】００３１    図１３は、複製チャンクテーブルの例示的なデータ構造を示す。
【図１４】００３２    図１４は、ゴールドイメージチャンク複製のプロセスのフロー図の一例を示す。
【図１５】００３３    図１５は、第４の実施形態に従ったゴールドイメージからスナップショットボリュームへのチャンク複製の論理エレメント構造の一例を示す。
【図１６】００３４    図１６は、スナップショットボリュームチャンクテーブルの例示的なデータ構造を示す。
【図１７】００３５    図１７は、スナップショットボリュームチャンク複製のプロセスのフロー図の一例を示す。
【発明を実施するための形態】
【００２１】
００３６    本発明についての以下の詳細な説明では、添付の図面を参照する。当該添付の図面は、開示の一部を形成するとともに、それによって本発明が実施され得るところの例示的実施形態が制限ではなく実例として示される。これらの図面において、同様の符号は複数の図面を通してほぼ同様の構成要素を示す。さらに、注記すべきこととして、以下に説明する通り、また図面で示される通り、詳細な説明では様々な例示的実施形態を提供するが、本発明は本明細書で説明されかつ示される実施形態に限定されるものではなく、当業者にとって周知であろう又は周知のものとなるであろうその他の実施形態にも及び得る。本明細書における「一実施形態」「本実施形態」又は「これらの実施形態」への言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書中においてこれらの文言が様々な場所で使われていても、必ずしもすべてが同一の実施形態に言及するものとは限らない。さらに、以下の詳細な説明では、本発明を十分に理解するために多くの具体的な詳細を記載している。但し、これらの具体的な詳細のすべてが本発明の実施のために必要なわけではないということは、当業者にとっては明らかであろう。その他の状況において、不必要に本発明を曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースについては詳細に説明されておらず、かつ／又はブロック図で示されていないかもしれない。
【００２２】
００３７    さらに、以下の詳細の説明のいくつかの部分は、コンピュータ内の動作のアルゴリズム及び記号表現に関して示されている。これらのアルゴリズムの記述及び記号表現は、データ処理分野の技術に精通した者が、彼らの新しい技法のエッセンスをその他の当業者らに最も効果的に伝えるために用いる手段である。アルゴリズムは、望ましい最終状態又は結果をもたらすための一連の定義されたステップである。本発明において、実施されるステップは、有形の結果を達成するための有形の数量を物理的に操作することを必要とする。通常は（必ずしもそうとは限らないが）、上記の数量は、記憶され、転送され、組み合わせられ、比較され、かつその他の態様で操作されることが可能な電気又は磁気の信号又は命令の形態をとる。主に一般的使用の理由のために、ビット、価値、要素、シンボル、文字、項、数、命令等として上記の信号を参照することが、時には都合が良いということが証明されている。但し、上記の用語及び類似の用語は、適切な物理的数量に関連付けられることとなり、かつ単にこれらの数量に適用される都合の良いラベルにすぎないということを留意すべきである。特に別段の記載がない限り、以下の考察から明らかな通り、説明全体に亘って「処理」「演算」「計算」「判定」「表示」等の用語を用いた考察は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを操作し、かつ当該データを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置内の物理数量として同様に表わされるその他のデータに変換させる、コンピュータ装置又はその他の情報処理装置の動作及びプロセスを含み得るものと理解される。
【００２３】
００３８    本発明は、本明細書に記載の動作を実施するための装置にも関する。この装置は特に、必要とされる目的のために特別に構築されてもよく、又は１つ以上のコンピュータプログラムによって選択的に起動され又は再構築される１台以上の汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ読取可能記憶媒体（例えば、光ディスク、磁気ディスク、ＲＯＭ（読取専用記憶装置）、ＲＡＭ（読取書込み記憶装置）、ソリッドステートデバイス及びソリッドステートドライブ、又は電子情報を記憶するためのその他あらゆる種類の媒体を含むが、これらに限定されない）に記憶され得る。本明細書において提示されているアルゴリズム及び表示は、本質的に特定のコンピュータ又はその他の装置に関連するものではない。多様な汎用システムが、本明細書の教示に従ってプログラム及びモジュールと共に使用され得るか、又は望ましい方法ステップを実行するためのより特化された装置を構築することが都合が良いということが証明され得る。さらに、本発明は、特定のプログラミング言語に言及して説明されてはいない。本明細書で説明されている通り本発明の教示を実施するために、多様なプログラミング言語を使用し得ることが理解されるだろう。当該プログラミング言語の命令は、例えば、中央処理装置（ＣＰＵ）、プロセッサ又はコントローラ等の１つ以上の処理装置によって実行され得る。
【００２４】
００３９    以下により詳細に説明する本発明の例示的な実施形態は、サーバイメージ容量最適化のための装置、方法、及びコンピュータプログラムを提供する。
【００２５】
００４０    第１の実施形態
【００２６】
００４１    １.  ハードウェアアーキテクチャ
【００２７】
００４２    図１は、本発明の方法及び装置が適用され得るシステムのハードウェア構成の一例を示す。本実施例のＩＴシステムは、ネットワーク１３０に接続された複数の複数のサーバ１１０（１１０−１から１１０−Ｎまで）と、複数のストレージシステム１００（１００−１から１００−Ｎまで）とを含む。サーバは巨大な計算リソースプールを論理的に提供し、同様に、ストレージシステムは巨大な論理ストレージリソースプールを提供する。２つのリソースのいずれも、各物理デバイスの境界から独立して必要とされるサイズによって配備することができる。管理サーバ１２０は、ＩＴリソース管理全体を制御する。
【００２８】
００４３    各ストレージシステム１００は、コントローラ１０１と、複数の記憶媒体１０５とを含む。コントローラ１０１は、ＣＰＵ１０２と、メモリ１０３と、ネットワークインタフェース１０４とを含む。記憶媒体１０５は、コントローラ１０１に接続され、ハードディスク、フラッシュメモリ、光ディスク等の多様なタイプのデバイスであり得る。サーバ１１０は、それぞれＣＰＵ１１１と、メモリ１１２と、ネットワークインタフェース１１３とを含む汎用コンピュータである。管理サーバ１２０は、ＣＰＵ１２１と、メモリ１２２と、ネットワークインタフェース１２３とを含む汎用コンピュータである。これは、エンドユーザがＩＴリソース管理を操作するための端末である。
【００２９】
００４４    ２.  論理エレメント構造
【００３０】
００４５      １)    ボリューム位置の仮想化
【００３１】
００４６    図２は、本実施形態のストレージボリューム位置仮想化の論理エレメント構造の一例を示す。図２（ａ）は、２つのストレージシステム１００−１及び１００−２が、ネットワークを介して（直接又はスイッチデバイスを介して）ポート２１０−１、２１０−２を通して相互接続される一方向構成を示す。ストレージシステム１００−２上のストレージボリューム２００は、ストレージの実容量を有する通常のストレージボリュームである。ストレージシステム１００−１上の仮想ボリューム２２０は、コンテンツデータの実ビットを保持しない仮想ストレージボリュームであるが、実ストレージボリュームがそのシステム上に存在するかのようにストレージシステム１００−１上に存在する。各仮想ボリュームは、特定の実ストレージボリュームに関連付けられ（例えば、実ボリューム２００−１に関連付けられた仮想ボリューム２２０−１）、データ読取／書込みサービスを、関連付けられた実ストレージボリュームのデータ内容に提供する。従って、この技術によって実際のデータ位置が仮想化される。
【００３２】
００４７    図２（ｂ）は、２つのストレージシステム１００−３及び１００−４が相互接続される双方向構成を示す。この例において、仮想ボリュームとストレージボリュームの関連付けは、２つのシステムを横断して相互に構成されている。言い換えると、関連付けの方向は、２つのシステムの間で双方向に構成されている。例えば、ストレージシステム１００−４上の仮想ボリューム２２０−３は、ストレージシステム１００−３上のストレージボリューム２００−３に関連付けられ、また同時に、ストレージボリューム２００−３と同じシステム上の仮想ボリューム２２０−４は、ストレージシステム１００−４上のストレージボリューム２００−４に関連付けられている。この双方向の関連付けは、図１のデータセンターの任意の２つのストレージシステム（１００−１〜１００−Ｎ）に適用できると理解される。さらに、この相互接続は、スイッチデバイスを介して物理的に接続することによって論理的に設定することができる。
【００３３】
００４８    ２）スナップショットボリュームの構成
【００３４】
００４９    図３は、本実施形態のスナップショットボリューム構成及びソフトウェアの論理エレメント構造の一例を示す。
【００３５】
００５０    ２ａ）サーバ上の仮想サーバ
【００３６】
００５１    物理サーバ１１０はそれぞれ、仮想サーバ３４０に対して仮想化サーバインスタンスを論理的に生み出し、かつこれを実行することができるハーパーバイザ３５０を有する。そのサーバ上の１つの物理サーバ１１０又はハイパーバイザ３５０は、一度に複数の仮想サーバ（３４０−１、３４０−２等）を生成かつ制御することができる。ＣＰＵ、メモリ、及びネットワークインタフェース等の物理リソースは、複数の仮想サーバ３４０の間で共有（又はパーティション）される。各仮想サーバ３４０は、あたかも各仮想サーバ２４０がスタンドアロンで実行しているかのように、それぞれ独立してアプリケーションを実行することができる。
【００３７】
００５２    ２ｂ）  ストレージボリューム構成
【００３８】
００５３    アレイグループ３００は、ＲＡＩＤグループを形成するために複数の記憶媒体１０５で構成される論理容量である。例えば、アレイグループ３００は、３つのデータディスク及び１つのパリティディスクを備えたＲＡＩＤ５として構成されてもよい。ゴールドイメージ３１２又はチャンクプール３３０は、アレイグループ３００から切り離された別の論理容量であるストレージボリュームである。
【００３９】
００５４    ２ｃ）  ゴールドイメージリポジトリ
【００４０】
００５５    オンサイトゴールドイメージリポジトリ３１０は、ゴールドイメージ２１１のコンテナである。各ゴールドイメージは、ＯＳと、ミドルウェアと、アプリケーションとを有するオブジェクト専用パッケージである。ハイパーバイザ３５０上で新しい仮想サーバインスタンスをプロビジョンする場合、ゴールドイメージ３１２は、仮想サーバイメージのテンプレートとして使用される。オンサイトゴールドイメージリポジトリ３１０は、ストレージシステム１００が使用する複数のゴールドイメージ３１１を保持する（例えば、Ｗｉｎｄｏｗｓ（登録商標）２００８及びＥｘｃｈａｎｇｅ Ｓｅｒｖｅｒを有する電子メール・ゴールドイメージ等）。新しいゴールドイメージは、携帯媒体３１３からインストールすることができる。図３において、ゴールドイメージ３１１の１つは、ストレージボリューム構成を説明する目的でゴールドイメージ３１２として別個のアイコンのゴールドイメージリポジトリ３１０の上に引き寄せられるが、これは、リポジトリ内のゴールドイメージと同じである。
【００４１】
００５６      ２ｄ）ゴールドイメージ及びスナップショットボリューム
【００４２】
００５７    上述のように、各仮想サーバ３４０がそれぞれ使用する仮想サーバイメージは、ゴールドイメージ３１２に基づいて作成される。図３において、すべてのスナップショットボリューム３２０（３２０−１、３２０−２等）は、ゴールドイメージ３１２のスナップショットを作ることによって作成される仮想サーバイメージである。スナップショットボリューム３２０は元々、最初は容量がゼロであるが、それぞれ単に特定のゴールドイメージ２１１に関連する論理ストレージボリュームである。各スナップショットボリューム３２０（３２０−１、３２０−２等）は、物理サーバ１１０上のそれぞれの仮想サーバ３４０（３４０−１、３４０−２等）に関連付けられる。例えば、読取アクセスがスナップショットボリューム３２０−１に達すると、ゴールドイメージ２１２の対応する部分からデータを読み取る。同じようにして、すべてのスナップショットボリュームへの各読取アクセスは、ゴールドイメージ３１２からデータを読み取ることによって処理される。従って、ゴールドイメージデータは、複数のスナップショットボリュームによって共有されるため、総容量が減少する。
【００４３】
００５６    ２ｄ）  スナップショットボリュームへのデータ書込み
【００４４】
００５７    本発明において、スナップショットボリューム３４０は、読取専用ボリュームではなく、独立してカスタマイズできる。よって、本明細書で使用されるスナップショット機能は、書込み可能スナップショットと呼ばれる。書込み要求がスナップショットボリューム３２０に達すると、チャンクプール３３０から新しいチャンク３３１を切り離し、要求されたデータを書き込むために新しいチャンク３３１をスナップショットボリューム３２０に割り当てる。チャンクプール容量は、複数のスナップショットボリューム３２０によって共有される。読取要求が、スナップショットボリューム３２０がその特定のデータを保持するためのチャンク３３１を有するところのアドレスに達した場合、ゴールドイメージ３１２からではなくチャンク３３１から読み取られる。書込み可能スナップショット機能を利用することによって、ストレージシステム１００は、各仮想サーバイメージのためにそれぞれカスタマイズされたデータを保持することができるが、一方、ゴールドイメージ３１２を使用することによって共通のデータの大部分を共有することができる。よって、ストレージシステム１００は容量使用の高い効率を維持する。
【００４５】
００６０      ２ｆ）管理クライアントモジュール
【００４６】
００６１    管理クライアント１２０は、仮想サーバイメージプロビジョニングを含むＩＴリソース操作全体を制御するためのユーザインタフェースである管理クライアントモジュール３７０を有する。これは、本発明の容量が最適化されたサーバイメージプロビジョニングを実行するために、ストレージシステム１００上のストレージサービスプロバイダモジュール３６０を組織化する。
【００４７】
００６２      ２ｇ）ストレージシステムコントローラ上のソフトウェア
【００４８】
００６３    ストレージシステムコントローラ１０１は、ストレージサービスプロバイダモジュール３６０と、ゴールドイメージテーブル５００と、スナップショットボリュームテーブル６００と、複製チャンクテーブル１４００と、スナップショットボリュームチャンクテーブル１７００とを含む。ストレージサービスプロバイダモジュール３６０は、ストレージシステム１００において仮想サーバイメージプロビジョニング（ゴールドイメージからのスナップショット）を実行する。ゴールドイメージテーブル５００は、オンサイトゴールドイメージリポジトリ３１０に格納されたゴールドイメージ３１１のレコード情報を保持する。スナップショットボリュームテーブル６００は、スナップショットボリューム３２０のレコード情報（どのゴールドイメージがスナップショットの親であるか等）を保持し、各スナップショットは、仮想ＷＷＮ（ワールドワイドネーム）を割り当てられる。複製チャンクテーブル１４００は、後述の実施形態で説明されるように、仮想ゴールドイメージと、異なるストレージシステム上で関連付けられた実ゴールドイメージとの間で複製されたチャンクについてのレコード情報を保持する。スナップショットボリュームチャンクテーブル１７００は、これも後述の実施形態で記述されるように、上書き（カスタマイズされた部分の）データを含むチャンク３３１、及びゴールドイメージとスナップショットボリュームとの間で複製されたチャンク３３１についてのレコード情報を保持する。
【００４９】
００６４      ３）   ゴールドイメージの共有
【００５０】
００６５    図４は、本実施形態の異なるストレージシステム上でゴールドイメージを共有する論理エレメント構造の一例を示す。図２でわかるように、仮想ボリュームを作成し、かつ仮想ボリュームが作成されたストレージシステムとは異なるストレージシステム上に存在する実ストレージボリュームに関連付けることができる。本発明の実施形態において、ボリューム位置仮想化技術は、複数のストレージシステムのゴールドイメージ間で使用される。
【００５１】
００６６    図４において、ストレージシステム１００−１はゴールドイメージ３１２−１を保持し、スナップショットボリューム３２０−１が、ゴールドイメージに基づいたスナップショットされている。スナップショットボリューム３２０−１へのホスト読取アクセスは、チャンクがスナップショットボリューム上で割り当てられていないアドレスのゴールドイメージ３１２−１に転送される。ストレージシステム１００−２上の仮想ゴールドイメージ４００−１は、図２と関連して説明した通りの仮想ボリュームであり、ストレージシステム１００−１上のゴールドイメージ３１２−１に関連付けられる。この構成を有することによって、ストレージシステム１００−２からゴールドイメージの内容を読み出すことができる。従って、仮想ゴールドイメージ４００−１は、ストレージシステム１００−２のゴールドイメージの１つとして使用することができ、よって、スナップショットボリューム３２０−２は、その仮想ゴールドイメージ４００−１に基づいたスナップショットである。スナップショットボリューム３２０−２へのホスト読取アクセスは、ストレージシステム１００−１上のゴールドイメージ３１２−１に転送される。同様に、ストレージシステム１００−３上の仮想ゴールドイメージ４００−２も、ストレージシステム１００−１上のゴールドイメージ３１２−１に関連付けられた仮想ボリュームであり、スナップショットボリューム３２０−３は、同じ態様で、仮想ゴールドイメージ４００−２に基づいたスナップショットである。
【００５２】
００６７    図４は、本発明の本実施形態に従った方法を使用することによって、ゴールドイメージがデータセンターの複数のストレージシステムの間で共有されることを示す。従って、データセンター全体の観点から、ゴールドイメージコンテンツデータを格納するための総容量が最適化される。新しいサーバイメージプロビジョニングの要求に従ってこの構成を構築するプロセスが、下記で説明される。
【００５３】
００６８    ４.  データ構造
【００５４】
００６９      １)    ゴールドイメージテーブル
【００５５】
００７０    図５は、第１の実施形態に従ったゴールドイメージテーブル５００の例示的なデータ構造を示す。ゴールドイメージテーブル５００は、オンサイトゴールドイメージリポジトリ３１０に格納された各ゴールドイメージの情報（ゴールドイメージＩＤ５１０、ストレージボリュームＩＤ５２０、存在５３０、実際の位置５４０、及び外部ストレージボリュームＩＤ５５０を含む）を保持する。ゴールドイメージＩＤ５１０は、ゴールドイメージ２１１の識別子である。ストレージボリュームＩＤ５２０は、ストレージボリューム（ＬＵＮなど）を識別する。これは、仮想ゴールドイメージボリュームからの実ゴールドイメージボリュームを参照するときに使用される。存在５３０は、該当するゴールドイメージが、実際のデータ内容がこのストレージシステムに格納されている実ゴールドイメージであるか、又は実際のデータ内容が別のどこかに格納されている仮想ゴールドイメージであるかを示す。実際の位置５４０は、実際のコンテンツデータが格納されているストレージシステムを識別する。よって、仮想である場合は、外部ストレージシステムのＩＤが記録される。外部ストレージボリュームＩＤは、ゴールドイメージが仮想である場合に、実ゴールドイメージボリュームのストレージボリュームを識別する。
【００５６】
００７１    例えば、ゴールドイメージテーブル５００の列５９１は、ゴールドイメージＩＤ「Ｇ１００」を有するゴールドイメージが、ストレージボリュームＩＤとして「ＳＶ０１０」を有し、それがボリュームにデータ内容を有する「実」ボリュームであり、よって、実際の位置「ＳＹＳ２００」がそのデバイス自体のストレージシステムＩＤである（外部ストレージボリュームＩＤは、実ゴールドイメージボリュームの場合は「ｎｕｌｌ」である）ことを示す。他方、列５９２は、存在欄５３０の「仮想」エントリによって示される仮想ゴールドイメージの一例を示す。実際の位置５４０は、関連付けられた実ゴールドイメージが格納されているストレージシステムＩＤであり、外部ストレージボリュームＩＤ「ＳＶ０５０」は、外部ストレージシステムにおけるゴールドイメージのストレージボリュームＩＤを示す。ストレージシステムが携帯媒体３１３からゴールドイメージデータをインポートする場合、ゴールドイメージデータをゴールドイメージリポジトリに格納するのに従って、このテーブルの新しいレコードを作成する。本発明においてより重要なことは、異なるストレージシステム上の実ゴールドイメージに関連付けることによって仮想ゴールドイメージが作成される場合に、仮想ゴールドイメージが作成されたストレージシステムのストレージサービスプロバイダモジュールによって、このテーブルの新しいレコードが追加されるということである。
【００５７】
００７２      ２)    スナップショットボリュームテーブル
【００５８】
００７３    図６は、第１の実施形態に従ったスナップショットボリュームテーブル６００の例示的なデータ構造を示す。スナップショットボリュームテーブル６００は、ゴールドイメージ３１１に基づいて作成された各スナップショットボリューム３２０の情報（スナップショットボリュームＩＤ６１０及び親ゴールドイメージＩＤ６２０を含む）を保持する。スナップショットボリュームＩＤ６１０は、スナップショットボリューム３２０の識別子である。親ゴールドイメージＩＤ６２０は、スナップショットボリューム３２０に関連付けられたゴールドイメージの識別子である。例えば、行６９１は、スナップショットボリューム「ＳＶ１０１」がゴールドイメージ「Ｇ１００」からのスナップショットであることを示し、かつ行６９２は、スナップショットボリューム「ＳＶ１０２」が、同じゴールドイメージ「Ｇ１００」からのスナップショットであったことを示し、その一方で、行６９３は、スナップショットボリューム「ＳＶ２０１」が、異なるゴールドイメージ「Ｇ２００」から生成されたスナップショットであったことを示す。ストレージサービスプロバイダモジュール３６０が新しいスナップショットの動作（すなわち、新しい仮想サーバイメージのプロビジョン）を実行する場合、レコードが作成される。
【００５９】
００７４    ４.  仮想サーバイメージプロビジョニングのプロセスフロー
【００６０】
００７５    図７及び図８は、第１の実施形態に従ってゴールドイメージ３１２からスナップショットボリューム３２０を作成することによって、新しい仮想サーバイメージをプロビジョンするプロセスのフロー図の一例を示す。望ましいゴールドイメージが既にプロビジョニングの特定のストレージシステムに存在する場合は、単にゴールドイメージ３１２からの新しいスナップショットボリューム３２０が作成される。望ましいゴールドイメージが存在しない場合は、プログラムは、最初に望ましいゴールドイメージを検索し、プロビジョニングターゲットストレージシステムと、実ゴールドイメージ３１２が見つかるストレージシステムとの間の、仮想ボリュームから実ゴールドイメージボリュームへの関連付けを構築し、次に、新しいスナップショットボリューム３２０が、作成された仮想ゴールドイメージ４００に基づいて作成される。このプロセスは、関与する各ストレージシステム上のストレージサービスプロバイダモジュール３６０と組み合わせて、管理クライアントモジュール３７０によって実行される。プロセスが開始する前に、新しいサーバイメージ及びターゲットゴールドイメージＩＤをプロビジョンするためのターゲットストレージシステムが与えられると想定されている。
【００６１】
００７６    ステップ１１００において、管理クライアントモジュール３７０は、ターゲットストレージシステムにおいて特定のゴールドイメージが存在するか否かをチェックする。ステップ１１１０において、ステップ１１００の要求に応じて、プロビジョニングターゲットストレージシステム上のストレージサービスプロバイダモジュール３６０は、ゴールドイメージＩＤが指定されたＩＤであるそのゴールドイメージテーブル５００からレコードを選択し、かつチェック結果を戻すことによって、ゴールドイメージが存在するか否かをチェックする。実ゴールドイメージ又は仮想ゴールドイメージのいずれもプロビジョニングのために使用することができる。ステップ１１２０において、プロビジョニングターゲットストレージシステムが望ましいゴールドイメージを有する場合は、プログラムは、スナップショットボリュームのプロビジョニングのためにステップ１２３０に進む。望ましいゴールドイメージを有していない場合は、プログラムはステップ１１３０に進んで、望ましいゴールドイメージを他のストレージシステムから検索する。ステップ１１３０において、管理クライアントモジュール３７０は、要求されたストレージシステムに実ゴールドイメージボリュームを見つけるまで、データセンター内の各ストレージシステムを１つずつチェックする。ステップ１１４０において、要求されたストレージシステムは、ゴールドイメージＩＤ５１０が指定されたＩＤであり、かつ存在５３０が「実」であるレコードがあるか否かを調べるためにそのゴールドイメージテーブル５００をチェックし、結果を返信する。ステップ１１５０において、望ましいゴールドイメージが見つかった場合は、プログラムは、ステップ１２００に進む。見つからなかった場合は、プログラムは、ステップ１１３０に戻って、データセンター内の次のストレージシステムをチェックする。
【００６２】
００７７    ステップ１２００において、望ましいゴールドイメージを見つけた後で、管理クライアントモジュール３７０は、プロビジョニングターゲットストレージシステムに対して、見つかったストレージシステム上で発見された実ゴールドイメージのストレージシステムＩＤ及びストレージボリュームＩＤを指定することによって、新しい仮想ゴールドイメージを作成することを要求する。次にステップ１２１０において、プロビジョニングターゲットストレージシステム上のストレージサービスプロバイダモジュール３６０は、他のストレージシステム（外付けのストレージシステム）上の指定された実ゴールドイメージに関連付けられた仮想ゴールドイメージを作成する。ステップ１２２０において、プロビジョニングターゲットストレージシステム上のストレージサービスプロバイダモジュール３６０は、そのゴールドイメージテーブル５００に、ゴールドイメージＩＤ５１０、作成された仮想ゴールドイメージのストレージボリュームＩＤ５２０、「仮想」としての存在５３０、実際の位置５４０として指定された外付けストレージシステムＩＤ、及び外部ストレージボリュームＩＤ５５０として実ゴールドイメージの指定されたストレージボリュームＩＤを有する新しいレコードを挿入する。
【００６３】
００７８    ステップ１２３０において、プロビジョニングターゲットストレージシステムは、望ましいゴールドイメージ（仮想又は実の）又は新たに作成された仮想ゴールドイメージを有し、次に、管理クライアントモジュール３７０は、ストレージシステムに対して、ゴールドイメージに基づいてスナップショットボリューム３２０を作成することを要求する。ステップ１２４０において、プロビジョニングターゲットストレージシステム上のストレージサービスプロバイダモジュール３６０は、特定のゴールドイメージに基づいて新しいスナップショットボリュームを作成する。ステップ１２５０において、プロビジョニングターゲットストレージシステム上のストレージサービスプロバイダモジュール３６０は、そのスナップショットボリュームテーブルに、ゴールドイメージのＩＤを親として使用したスナップショットボリュームの新しいＩＤを有する新しいレコードを挿入する。
【００６４】
００７９    第２の実施形態
【００６５】
００８０    第１の実施形態の方法を適用することによって、多くのスケールアウトタイプのストレージシステムを有するデータセンターの中のゴールドイメージの総量は、劇的に減少する。しかし、実ゴールドイメージへのアクセスの統合が原因で、新しい問題が起こり得る。複数のストレージシステム上の各仮想ゴールドイメージが外付けのストレージシステム上の１つの実ゴールドイメージを参照すると、各ストレージシステムに存在するその１つのゴールドイメージに関連するスナップショットボリュームへの各アクセスは、当該外部ストレージシステムに転送され始め、性能のボトルネックになる可能性がある。第２の実施形態は、この問題に対処するものである。第２の実施形態は、仮想ゴールドイメージの作業負荷を監視し、高い作業負荷を検出した場合は、実ゴールドイメージの複製を作り、ストレージシステムがそれ以上仮想ゴールドイメージを使用しないように、仮想ゴールドイメージをストレージシステムの実ゴールドイメージと置き換える。複製があると、オリジナルの実ゴールドイメージを格納するストレージシステムに対するアクセス作業負荷が軽減される。しかし、このプロセスは、大きすぎる作業負荷が検出された部分についてのみ実行され、ゴールドイメージの残りは統合されたままである。従って、ゴールドイメージの全容量は、総システム容量並びに必要とされる性能の観点から最適化される。構成要素及び特徴の大部分は、第１の実施形態と同じである。以下の説明では、主に両者の差異に焦点を当てる。
【００６６】
００８１    １.  論理エレメント構造
【００６７】
００８２    図９は、第２の実施形態のゴールドイメージ複製の論理エレメント構造の一例を示す。ゴールドイメージ３１２−１は、図４で示されるように、元々はストレージシステム１００−２上の仮想ゴールドイメージ４００−１と、ストレージシステム１００−３上の仮想ゴールドイメージ４００−２とによって共有されていたと想定されている。しかし、ストレージシステム１００−３上のスナップショットボリューム３２０−３へのホストアクセスが多くなると、後述のようにその状況が検出され、実ゴールドイメージ３１２−１のデータ内容は、ストレージシステム１００−３上のゴールドイメージ複製７００にコピー又は複製される。複製が完了した後で、スナップショットボリューム３２０−３へのホストアクセスは、ゴールドイメージ複製７００にのみ転送され、さらにゴールドイメージ３１２−１に転送されることはなく、それによって、ゴールドイメージ３１２−１の作業負荷を軽減する。
【００６８】
００８３    ２.  データ構造― ゴールドイメージテーブル
【００６９】
００８４    図１０は、第２の実施形態に従ったゴールドイメージテーブル８００の例示的なデータ構造を示す。このテーブル８００は、第１の実施形態の図５のゴールドイメージテーブル５００と比べて、Ｉ／Ｏ使用率８６０及び複製済み８７０の２つの追加の欄を含む。Ｉ／Ｏ使用率８６０は、実又は仮想ゴールドイメージがどれくらい使用中であるかを示すアクセス性能統計データである。複製済み欄８７０は、仮想ゴールドイメージが複製済みであるか否かを示す。例えば、列８９２は、仮想ゴールドイメージ「Ｇ２００」が、以前閾値を超える作業負荷を有していて、複製済み欄８７０上の「Ｙｅｓ」エントリによって示されるように複製済みであり、かつ現在はそのＩ／Ｏ使用率８６０はわずか「２４%」であることを示す。この例において、該当するゴールドイメージは、関連付けられたオリジナルのゴールドイメージの「複製」であるので、存在５３０欄は、複製された後も「仮想」のままである。これは、複数のストレージシステムに同じＩＤを有する複数の実ゴールドイメージを有する混乱を避ける。存在欄５３０に「仮想」エントリを保持することによって、オリジナルのゴールドイメージとの関係を保持する。注記すべき点として、列８９３は、別の仮想ゴールドイメージ「Ｇ３００」が、高いＩ／Ｏ使用率８６０「７２%」を有しており、まもなく複製プロセスの候補として検出され得ることを示す。
【００７０】
００８５    ３.  プロセスフロー― ゴールドイメージ複製
【００７１】
００８６    図１１は、特定の仮想ゴールドイメージのＩ／Ｏ使用率が所定の閾値よりはるかに高いことが検出された場合のゴールドイメージ複製のプロセスのフロー図の一例を示す。各ストレージシステム１００のストレージサービスプロバイダモジュール３６０は、それぞれの仮想ゴールドイメージＩ／Ｏ使用率８６０を監視し、高くなり過ぎた場合には、モジュール３６０は、その結果を管理クライアントモジュール３７０に報告する。管理クライアントモジュール３７０は、次に、オリジナルの実ゴールドイメージと仮想ゴールドイメージとの間の複製設定を構築する。
【００７２】
００８７    ステップ１３００において、ストレージシステムのストレージサービスプロバイダモジュール３６０は、仮想ゴールドイメージの高い作業負荷を検出し、管理クライアントモジュール３７０に対して、関連付けられたオリジナルのゴールドイメージ情報（そのストレージシステムＩＤ又はストレージボリュームＩＤ５２０等）と共に上記結果を報告する。ステップ１３１０において、管理クライアントモジュール３７０は、高い作業負荷が検出された仮想ゴールドイメージに関連付けられた複製主（ソース）ボリュームとしてオリジナルのゴールドイメージを設定するために、オリジナルのゴールドイメージが存在するストレージシステムのストレージサービスプロバイダモジュールに対して命令を送信する。ステップ１３２０において、オリジナルのゴールドイメージを有するストレージシステムのストレージサービスプロバイダモジュールは、上記ボリュームを複製正ボリュームとして設定する。ステップ１３３０において、管理クライアントモジュール３７０は、オリジナルのゴールドイメージ（複製正ボリューム）の複製副（デスティネーション）ボリュームとして検出された仮想ゴールドイメージを設定するために、検出された仮想ゴールドイメージを保持するストレージシステムのストレージサービスプロバイダモジュールに対して命令を送信する。ステップ１３４０において、コマンドを受信するストレージサービスプロバイダモジュールは、仮想ゴールドイメージを複製副ボリュームとして設定する。ステップ１３５０において、同じストレージサービスプロバイダモジュールは、そのゴールドイメージテーブル８００の仮想ゴールドイメージについてのレコードの複製済み欄８７０を「Ｙｅｓ」に更新する。
【００７３】
００８８    上述のプロセスと同様に、複製の設定は、代替の方法で共有されたゴールドイメージのＩ／Ｏ使用率によってトリガされ得る。ゴールドイメージを他のストレージシステムと共有するストレージシステムのストレージサービスプロバイダモジュールが、ゴールドイメージへのアクセスが高すぎることを検出すると、管理クライアントモジュール３７０は、ゴールドイメージを共有する他のストレージシステム上のすべての又は一部の仮想ゴールドイメージに対して、ストレージシステムからの複製設定を設定することができる。この代替のプロセスは、上述のプロセスの繰り返しである（すなわち、実ゴールドイメージと各複製ボリューム（仮想ゴールドイメージ）との間で上述の複製構成プロセスを繰り返す）。
【００７４】
００８９    第３の実施形態
【００７５】
００９０    第２の実施形態と類似しているが、ボリュームレベルの複製ではなくチャンクレベルの操作を用いることによって、仮想ゴールドイメージのホットスポット部分に対してのみ、より細分性の細かい複製を適用することができるため、第２の実施形態の方法よりもさらに容量最適化することができる。構成要素及び動作の大部分は、上述の実施形態と同じである。以下の説明では、主に差異に焦点を当てる。
【００７６】
００９１    １.  論理エレメント構造
【００７７】
００９２    図１２は、第３の実施形態に従ったゴールドイメージチャンク重複の論理エレメント構造の一例を示す。この実施形態において、仮想ゴールドイメージ内の特定のホットスポットを見つけるために、作業負荷がストレージボリュームレベルだけではなく、ブロックレベルで監視される。例えば、ストレージシステム１００−２上のストレージサービスプロバイダモジュール３６０が仮想ゴールドイメージ９１０のホットスポットブロックを検出すると、管理クライアントモジュール３７０に報告する。次に、ストレージサービスプロバイダモジュール３６０は、検出されたホットスポットブロックに対応するチャンクプール３３０から新しいチャンクを切り離すことによって、オリジナルのゴールドイメージ９００から仮想ゴールドイメージ９１０へのホットスポット部分だけのデータコピーを操作する。
【００７８】
００９３    ２.  データ構造― 複製チャンクテーブル
【００７９】
００９４    図１３は、複製チャンクテーブル１４００の例示的なデータ構造を示す。複製チャンクテーブル１４００は、オリジナルのゴールドイメージを仮想ゴールドイメージに複製するために割り当てられる各チャンクの情報を保持する。チャンクＩＤ１４１０は、チャンクを識別する。ゴールドイメージＩＤ１４２０は、チャンクが属する仮想ゴールドイメージの識別子である。開始ＬＢＡ１４３０は、チャンクの開始アドレスを示す、仮想ゴールドボリューム上のＬＢＡである。ブロック数１４４０は、チャンク内の有効ブロックの数である。例えば、行１４９１は、ＩＤとして「ＣＫ００１」を有し、仮想ゴールドイメージ「Ｇ１００」に属し、最初から有効な「３２」ブロックを有するＬＢＡ「０」から格納されるチャンクのレコードを示す。特定のサイズのデータにチャンクを割り当てる間に、その最大サイズのブロック（例えば３２ブロック）のチャンクに分割される。終端部分は、この境界と一致しないかもしれないので、チャンクの最大ブロックよりも長さが短いことが多い。例えば、列１４９２のブロック数１４４０は、チャンク内に２５ブロックの有効データのみ有していることを示す。
【００８０】
００９５    ３.  プロセスフロー― ゴールドイメージチャンク複製
【００８１】
００９６    図１４は、仮想ゴールドイメージの特定のブロックの高すぎるＩ／Ｏ使用率が検出された場合のゴールドイメージチャンク複製のプロセスのフローチャートの一例を示す。各ストレージシステムのストレージサービスプロバイダモジュール３６０は、ブロック細分度によって、それぞれの仮想ゴールドイメージＩ／Ｏ使用率を監視し、使用率が高くなり過ぎた場合には、管理クライアントモジュール３７０に報告し、次に、管理クライアントモジュール３７０は、境界のチャンクサイズによって、オリジナルのゴールドイメージから仮想ゴールドイメージに、対応するデータ部分をコピーする。
【００８２】
００９７    ステップ１５００において、ストレージシステムのストレージサービスプロバイダモジュール３６０は、仮想ゴールドイメージの高い作業負荷ブロックを検出し、関連付けられたオリジナルのゴールドイメージ情報（そのストレージシステムＩＤ又はストレージボリュームＩＤ５２０及びホットスポットアドレス等）と共に上記検出結果を管理クライアントモジュール３７０に報告する。ステップ１５１０において、管理クライアントモジュール３７０は、特定のオリジナルのゴールドイメージを有するストレージシステム上のストレージサービスプロバイダモジュール３６０に対して、チャンクサイズの境界によって指定アドレスのコンテンツデータを検索することを要求する。ステップ１５２０において、オリジナルのゴールドイメージを有するストレージサービスプロバイダモジュールは、指定された部分のデータ内容を返信する。ステップ１５３０において、管理クライアントモジュール３７０は、次に、検出された仮想ゴールドイメージを保持するストレージシステムのストレージサービスプロバイダモジュールに対して、検出された仮想ゴールドイメージの部分に取得されたデータ内容を格納するように、命令を送信する。
【００８３】
００９８    ステップ１５４０において、ストレージサービスプロバイダモジュールは、検出された高い作業負荷ブロックが存在する場所に新しいチャンクを割り当てる。ステップ１５５０において、ストレージサービスプロバイダモジュールは、取得したデータを管理クライアントモジュールからチャンクにコピーする。ステップ１５６０において、ストレージサービスプロバイダモジュールは、その複製チャンクテーブル１４００に、新しいチャンクＩＤ１４１０、属する仮想ゴールドイメージのゴールドイメージＩＤ１４２０、開始ＬＢＡ１４３０、及び割り当てられたチャンクのブロック数１４４０を有する新しいレコードを挿入する。
【００８４】
００９９    第４の実施形態
【００８５】
０１００    第２及び第３の実施形態で説明されたボリューム及びチャンクの複製方法はそれぞれ、ゴールドイメージと、関連付けられた仮想ゴールドイメージとの間の複製に関するものであった。第４の実施形態においては、性能のボトルネックを取り除くためのスナップショットボリュームとそのゴールドイメージとの間の、第３の実施形態に類似の技術を説明する。構成要素及び動作の大部分は、上記の実施形態と同じである。以下の説明は、主に差異に焦点を当てている。
【００８６】
０１０１    １.  論理エレメント構造
【００８７】
０１０２    図１５は、第４の実施形態に従ったゴールドイメージからスナップショットボリュームへのチャンク複製の論理エレメント構造の一例を示す。この実施形態において、ストレージサービスプロバイダモジュール３６０は、各スナップショットボリュームの作業負荷を監視する。例えば、ストレージシステム１００上のストレージサービスプロバイダモジュール３６０がスナップショットボリューム１６００−１のホットスポットブロックを検出した場合に、検出されたホットスポットブロックに対応するチャンクプール３３０から新しいチャンク１６２０を切り離すことによって、ゴールドイメージ３１２からスナップショットボリューム１６００−１へのホットスポット部分だけのデータコピーを操作する。その結果として、スナップショットボリュームは、以下の両方のタイプのチャンクを有し得る。１つは、共有されているゴールドイメージからのスナップショットボリュームに対して一意に上書き（カスタマイズされた）データを保持する書込みチャンク１６０であり、もう１つは、上述のコピーチャンク１６２０である。
【００８８】
０１０３    ２.  データ構造― スナップショットボリュームチャンクテーブル
【００８９】
０１０４    図１６は、スナップショットボリュームチャンクテーブル１７００の例示的なデータ構造を示す。スナップショットボリュームチャンクテーブル１７００は、該当するチャンクがゴールドイメージ部分の複製であるか否かについての情報と共に、スナップショットボリュームに割り当てられた各チャンクの情報を保持する。チャンクＩＤ１７１０は、チャンクを識別する。スナップショットボリュームＩＤ１７２０は、チャンクが属するスナップショットボリュームの識別子である。開始ＬＢＡ１７３０は、（仮想）ゴールドイメージ上のＬＢＡであり、チャンクの開始アドレスを示す。ブロック数１７４０は、チャンク内の有効ブロックの数である。使用１７５０は、チャンクが、上書き又は複製されたデータを格納するために使用されるか否かを示す。例えば、列１７９１及び１７９２に示されるチャンクＣＫ００１及びＣＫ００２は、ホストがスナップショットボリューム「ＳＶ１０１」に書き込みを行った際の使用欄１７５０に示される「上書き」データを格納するために使用されるチャンクである。他方では、列１７９３及び１７９４に示されるチャンクＣＫ００３及びＣＫ００４は、スナップショットボリューム「ＳＶ１０２」のゴールドイメージからデータがコピーされた際の、使用欄１７５０に示される「レプリカ」データを格納するために使用されるチャンクである。
【００９０】
０１０５    ３.  プロセスフロー― スナップショットボリュームチャンク複製
【００９１】
０１０６    図１７は、スナップショットボリュームの特定のブロックの高すぎるＩ／Ｏ使用率が検出された場合のスナップショットボリュームチャンク複製のプロセスのフロー図の一例を示す。ストレージサービスプロバイダモジュール３６０は、ブロック細分度によってそれぞれのスナップショットボリュームのＩ／Ｏ使用率を監視し、使用率が高くなり過ぎた場合には、境界のチャンクサイズによって、データの対応する部分を、関連付けられたゴールドイメージからスナップショットボリュームにコピーする。このプロセスは、デバイスとデバイスの間ではなく、デバイス内で実行される。
【００９２】
０１０７    ステップ１８００において、ストレージサービスプロバイダモジュール３６０は、スナップショットボリュームの高い作業負荷ブロックを検出する。ステップ１８１０において、ストレージサービスプロバイダモジュール３６０は、検出されたスナップショットボリュームについてスナップショットボリュームからレコードを選択し、そのゴールドイメージＩＤを取得する。ステップ１８２０において、ストレージサービスプロバイダモジュール３６０は、ゴールドイメージボリュームから、ステップ１８００で検出されたブロックを含むチャンクのデータ内容を取得する。ステップ１８３０において、ストレージサービスプロバイダモジュール３６０は、スナップショットボリューム内の検出された高い作業負荷ブロックが存在する場所に、新しいチャンクを割り当てる。ステップ１８４０において、ストレージサービスプロバイダモジュール３６０は、ステップ１８２０で取得されたデータを、割り当てられたチャンクにコピーする。ステップ１８５０において、ストレージサービスプロバイダモジュール３６０は、スナップショットボリュームチャンクテーブル１７００に、新しいチャンクＩＤ１７１０、属するスナップショットボリュームＩＤ１７２０、開始ＬＢＡ１７３０、割り当てられたチャンクのブロック数１７４０、「レプリカ」となっている使用１７５０を有する新しいレコードを挿入する。
【００９３】
０１０８    当然ながら、図１で示されたシステム構成は、本発明が実装され得る情報システムを純粋に例示するものであり、本発明は、特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために使用されるモジュール、プログラム及びデータ構造を格納し、かつ読み出すことができる公知のＩ／Ｏデバイス（例えば、ＣＤドライブ、ＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）を有することもできる。これらのモジュール、プログラム及びデータ構造は、このようなコンピュータ読取可能媒体にエンコードすることができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する１つ以上のコンピュータ読取可能媒体から独立して、コンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形式又は媒体のデジタルデータ通信（例えば通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、ワイアレスネットワーク、ストレージエリアネットワーク等を含む。
【００９４】
０１０９    上記の説明では、本発明を十分に理解できるように、説明の目的で多くの詳細が述べられている。しかしながら、本発明を実施するためにはこれらの具体的な詳細の必ずしもすべてが必要ではないということが、当業者にとっては明らかであろう。また留意すべきこととして、本発明はプロセスとして記載してもよく、プロセスは通常、フローチャート、フロー図、構造図又はブロック図として描かれる。フローチャートは動作を逐次プロセスとして記述し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番を組み変えてもよい。
【００９５】
０１１０    当技術分野において周知のように、上記の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアとの何らかの組み合わせによって実行することができる。回路及び論理装置（ハードウェア）を用いて本発明の実施形態の様々な態様を実施し得る一方で、機械読取可能媒体（ソフトウェア）に記憶された命令を用いてその他の態様を実施し得る（当該命令がプロセッサによって実行された場合、プロセッサに本発明の実施形態を実行する方法を実施させることになる）。さらに、本発明のいくつかの実施形態はハードウェアのみで実施してもよく、また一方では、その他の実施形態はソフトウェアのみで実施してもよい。また、説明された様々な機能は、一つのユニットで実施することができ、又は多くの方法で多くの構成要素に分散することができる。ソフトウェアによって方法が実施される場合には、当該方法は、汎用コンピュータ等のプロセッサによって、コンピュータ読取可能媒体に記憶された命令に従って実行され得る。望ましい場合には、これらの命令を、圧縮かつ／又は暗号化されたフォーマットで媒体に記憶することができる。
【００９６】
０１１１    上記より、本発明がサーバイメージ容量最適化のための方法、装置、及びそのためにコンピュータ読取可能媒体に記憶されたプログラムを提供することが明らかであろう。さらに、本明細書では特定の実施形態が例示されかつ説明されているが、同じ目的を達成するために計算されたアレンジメントが、開示された特定の実施形態に取って代わり得るということを、当業者は理解する。本開示は、本発明のあらゆる適合又はバリエーションをカバーすることを意図したものであり、以下の請求項で使用される用語が、本発明を本明細書で開示されている特定の実施形態に限定するものと解釈されるべきではないことが理解されるべきである。むしろ、本発明の範囲は、以下の請求項によって完全に決定されるべきものであり、以下の請求の範囲は、当該請求項が権利を有する均等物の全範囲と共に、確立されている請求項解釈の原則に従って解釈されるべきものである。
【図１】
2011086274.tif 000003
【図２】
2011086274.tif 000004
【図３】
2011086274.tif 000005
【図４】
2011086274.tif 000006
【図５】
2011086274.tif 000007
【図６】
2011086274.tif 000008
【図７】
2011086274.tif 000009
【図８】
2011086274.tif 000010
【図９】
2011086274.tif 000011
【図１０】
2011086274.tif 000012
【図１１】
2011086274.tif 000013
【図１２】
2011086274.tif 000014
【図１３】
2011086274.tif 000015
【図１４】
2011086274.tif 000016
【図１５】
2011086274.tif 000017
【図１６】
2011086274.tif 000018
【図１７】
2011086274.tif 000019
【外国語明細書】
2011086274000001.pdf