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