(57)【特許請求の範囲】
【請求項１】
レプリカされた仮想マシンのレプリカされた仮想ストレージであり、レプリカされるべきプライマリーベース仮想ディスクに実質的に対応している少なくとも一つのレプリカされたベース仮想ディスクを含んでいる、仮想ストレージと；
複数のコピータイプの差分ディスクの複数のコピーを受け取るように構成された受信器であり、
それぞれの差分ディスクは、ツリー構造において前記差分ディスク以前に作成されたそれぞれの親ディスクにリンクされており、
前記それぞれの親ディスクは、親の差分ディスクまたは前記プライマリーベース仮想ディスクであり、
前記複数のコピータイプのうち第１のコピータイプは、稼働しているシステムのストレージの一般的なスナップショットであるクラッシュコンシスタントコピーを含み、かつ、前記複数のコピータイプのうち第２のコピータイプは、コピーが作られると前記システムにおけるソフトウェアに通知することに応じて作成された前記稼働しているシステムのストレージのスナップショットであるアプリケーションコンシスタントコピーを含む、
受信器と；
前記差分ディスクが前記プライマリーベース仮想ディスクに関して配置されていたように、受け取った前記複数のコピータイプの前記差分ディスクのコピーを前記レプリカされたベース仮想ディスクに関して配置するように構成されたレプリケーション管理モジュールと、を有する、
ことを特徴とする装置。
【請求項２】
前記レプリケーション管理モジュールは、さらに、
前記レプリカされた仮想マシンのオペレーションを開始するための潜在的な復元ポイントとして、一つまたはそれ以上の前記受け取った差分ディスクのコピーを保管するように構成されている、
請求項１に記載の装置。
【請求項３】
前記装置は、さらに、
開始のときに前記レプリカされた仮想マシンに対する変更を保管するために、前記差分ディスクの前記保管されたコピーの一つに対する子のディスクとして、読み出し／書き込み差分ディスクを作成すること、を含む、
請求項２に記載の装置。
【請求項４】
前記レプリケーション管理モジュールは、さらに、
前記潜在的な復元ポイントのうち選択された一つ、および、選択された復元ポイントを連続して引き継ぐ差分ディスクの保管されたコピーのうち一つまたはそれ以上の選択されたもの、からの前記レプリカされた仮想マシンの開始を促進するように構成されている、
請求項２に記載の装置。
【請求項５】
コンピューターで実施される方法であって、
複数のコピータイプの差分ディスクの複数のコピーを受け取るステップ、を含み、
それぞれの差分ディスクは、ツリー構造において前記差分ディスク以前に作成されたそれぞれの親ディスクにリンクされており、
前記それぞれの親ディスクは、親の差分ディスクまたはプライマリーベース仮想ディスクであり、
前記複数のコピータイプのうち第１のコピータイプは、稼働しているシステムのストレージの一般的なスナップショットであるクラッシュコンシスタントコピーを含み、かつ、前記複数のコピータイプのうち第２のコピータイプは、コピーが作られると前記システムにおけるソフトウェアに通知することに応じて作成された前記稼働しているシステムのストレージのスナップショットであるアプリケーションコンシスタントコピーを含む、
ことを特徴とする方法。
【請求項６】
前記方法は、さらに、
ソフトウェアへの通知に応じた一つまたはそれ以上の通知されたアプリケーションから、ソフトウェアデータを獲得するステップを有する、
請求項５に記載の方法。
【請求項７】
請求項５または６に記載の方法をコンピューターシステムにより実行させるように構成された複数のインストラクションを含む、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
仮想マシンに関連する仮想ストレージを含んだストレージのレプリケーションを含む技術に関する。
【背景技術】
【０００２】
ビジネスや個人がコンピューターの必要性に大きく依存していることで、中断することのないコンピューターサービスの必要性がますます重要になってきている。多くの組織体は、ビジネス継続プラン（ｂｕｓｉｎｅｓｓ  ｃｏｎｔｉｎｕｉｔｙ  ｐｌａｎ）を作成している。機械故障、自然災害、電力供給停止、および、通常のビジネス継続性を絶ち得る他の混乱に直面しても、主要なビジネス機能を継続してオペレーションでき、引き続き利用できるようにするためである。
【０００３】
ローカルな混乱は、例えば、ハードウェア又はローカルサーバーにおける他の故障、システムの停止及び/又はリブート（ｒｅ−ｂｏｏｔ）を結果として生じるソフトウェア又はファームウェアの問題、等によって生じ得るものである。ローカルなソリューションは、サーバーのクラスター化、および、フェイルオーバー（ｆａｉｌｏｖｅｒ）を促進するための仮想化技術を含んでいる。ローカルなフェイルオーバー技術により、オリジナルのマシン又は仮想マシンが故障した場合に、異なるマシン又は仮想マシン上でオペレーションを継続することができる。ソフトウェアは、オペレーティングシステム及び/又はアプリケーションがもはや動作していないことを認識することができ、オペレーティングシステム及びアプリケーションの別のインスタンスが、別のマシン又は仮想マシンにおいて起動され、以前のものが停止したところを続けることができる。例えば、ハイパーバイザー（ｈｙｐｅｒｖｉｓｏｒ）は、オペレーティングシステムがもはや動作していないものと判断するように構成されてよく、または、アプリケーション管理ソフトウェアが、アプリケーションはもはや動作していないものと判断してもよく、これにより、次に、ハイパーバイザー又はオペレーティングシステムにアプリケーションがもはや動作していないことを通知することができる。高い利用可能性のソリューションは、例えば、共通のサイトにおけて一つのマシンから別のマシンへ、または、以下に説明するように、一つのサイトから別のサイトへのフェイルオーバーを生じるように構成され得る。テストといった他の目的のために、他のフェイルオーバー構成もまた可能である。同一のマシンの中で一つの仮想マシンから別の仮想マシンへフェイルオーバーができる。
【０００４】
ディザスターリカバリー（ｄｉｓａｓｔｅｒ  ｒｅｃｏｖｅｒｙ）は、大規模なビジネスの継続性を維持することに関するものである。所定の損傷シナリオは、オペレーティングシステム、仮想マシン、または、物理的マシンより大きく影響を与える。より高いレベルの故障は、電力供給停止又は他の問題を引き起こし、ビジネスの情報技術（ＩＴ）又は他のコンピューターセンターといった、サイト全体に影響する。自然災害及び他の災害は、サイトのコンピューターシステムを部分的、又は、しばしば全てをダウンさせ、企業にインパクトを与えることがある。ディザスターリカバリーを提供するために、今日の企業は、動作しているシステムのバックアップをテープ又は他の物理的媒体上にとり、別のサイトへメール又はそうでなければ配送している。いかなる理由でデータセンターがオフラインとなった場合でも、バックアップデータセンターは、バックアップ媒体を用いてオペレーションを引き継ぐことができる。他の欠点のうちでは、物理的媒体を用意するプロセスに手間がかかることがあり、バックアップをとる時間的インターバルがとても大きく、回復されたシステムは何日か以前のものとなることがあり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想マシンに関連する仮想ストレージを含んだストレージのレプリケーションを含む技術について説明する。
【課題を解決するための手段】
【０００６】
一つの代表的な技術は、レプリカされた仮想マシンのレプリカされた仮想ストレージを受け取ることができる装置を含む。レプリカされるべきプライマリーベース仮想ディスクに実質的に対応するレプリカされたベース仮想ディスクを少なくとも含んでいるものである。受信器は、差分ディスク又は他の形式の仮想ストレージアップデートのコピーを受け取り、それぞれは派生のものとしてプライマリーベース仮想ディスクに関連するものである。レプリカ管理モジュールは、差分ディスの受け取ったコピーを、レプリカされたベース仮想ディスクに関して配置するように構成されている。差分ディスクが、プライマリーベース仮想ディスクに関してどのように配置されていたかに対応するやり方においてである。
【０００７】
こうした技術の所定の実施は、複数のレプリケーションである差分ディスクのコピー又は「コピー」タイプを含んでいる。レプリケーション管理モジュールは、複数のレプリケーションタイプをレプリカされたベース仮想ディスクに関して配置するように構成されている。プライマリーベース仮想ディスクに関して配置されていたようにである。複数のタイプの実施例は、自身がコピーのために準備された仮想マシン上で動作している一つまたはそれ以上のアプリケーションから獲得されたコピー、および、コピーに対する通知又は準備することなく獲得された差分ディスクのコピーを含んでいる。
【０００８】
別の代表的な実施例において、仮想ストレージのレプリケーションを促進するためのコンピューターで実施される方法が提供される。仮想マシンに関する仮想ディスクのベース仮想ディスクイメージが保管される。ディスクチェインの頂上にある現在の読み出し／書き込み差分ディスクに対する変更を記録することによって仮想ディスクに対する変更を保管する。ディスクチェインはベース仮想ディスクイメージ及びあらゆる中間ディスクを含んでいる。定期的または非定期的に、現在の読み出し／書き込み差分ディスクのコピーを作成し、さらなる変更を禁止する。ディスクチェインの頂上に新たな現在の差分ディスクを繰り返し作成し、レプリカされたストレージのための仮想ディスクのコピーを転送する。
【０００９】
別の代表的な実施例において、種々の機能を実行するためにコンピューターシステムによって実行可能なインストラクションが保管された一つまたはそれ以上のコンピューターで読取り可能な媒体が提供される。以下の機能を含んでいる。仮想マシンの差分ディスクに係る読み出し専用スナップショットのチェインを作成するステップであり、それぞれのスナップショットに際して作成され、チェインの頂上において読み出し及び書込み機能を備える新たな差分ディスクを用いるステップ。少なくともアプリケーションコンシスタントなスナップショットタイプ及びクラッシュコンシスタントなスナップショットタイプを含む、チェインにおける複数のスナップショットタイプを有するステップ。仮想マシンの差分ディスクに係る読み出し専用スナップショットのチェインに対応する読み出し専用スナップショットのレプリカされたチェインを作成するステップ。レプリカされた仮想マシンを起動するための復元ポイントとして、レプリカされたチェインにおける読み出し専用スナップショットのうち一つを選択するステップ。選択された一つの読み出し専用スナップショットからレプリカされた仮想マシンを起動するステップであり、選択された復元ポイントの後に連続する一つまたはそれ以上の読み出し専用スナップショットを含むステップ。
【００１０】
本概要は、以降の詳細な説明でより詳しく記述される本発明の概念について、簡素化された形式において代表的な概念の選択を紹介するものである。本概要は、特許請求された技術的事項の主要な特徴または本質的な特徴を特定することを意図するものではない。また、特許請求された技術的事項の範囲を限定するために使用されることを意図するものではない。
【図面の簡単な説明】
【００１１】
【図１】図１は、差分ディスクを使用して仮想マシンをレプリケーションするための代表的な実施例を示している。
【図２Ａ】図２Ａは、本発明開示に従ってレプリケーションが実施される代表的なコンピューター環境を示している。
【図２Ｂ】図２Ｂは、本発明開示に従ってレプリケーションが実施される代表的なコンピューター環境を示している。
【図３】図３は、プライマリーコンピューター／サーバー環境が、ディザスターリカバリーを促進し、データが時間にわたり変化する際にデータをレプリケーションする代表的なやり方を示している。
【図４Ａ】図４Ａは、仮想ストレージが変更され、一つまたはそれ以上のコピーがされる際の代表的なディスクチェインの連続した状態を示している。
【図４Ｂ】図４Ｂは、仮想ストレージが変更され、一つまたはそれ以上のコピーがされる際の代表的なディスクチェインの連続した状態を示している。
【図５】図５は、レプリカされた仮想マシンのデータビューをプライマリーサーバーにおける対応するものとの同期を保持する代表的なやり方を示すフローチャートである。
【図６】図６は、レプリカされたプライマリーサイトにおける仮想ストレージの保護された領域に対応するレプリカされた仮想ディスク及びレプリケーションディスクチェインを示している。
【図７Ａ】図７Ａは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図７Ｂ】図７Ｂは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図７Ｃ】図７Ｃは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図７Ｄ】図７Ｄは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図７Ｅ】図７Ｅは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図７Ｆ】図７Ｆは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。
【図８】図８は、ベース又は差分ディスクのスナップショット又は他のコピーのスケジュールの実施例を示している。
【図９】図９は、ディスクチェインにアクセスする場合に、レプリカされた差分ディスクへのリンク、および、リンクの変更の実施例を示している。
【図１０】図１０は、ストレージをレプリケーションさせるプライマリーサイトにおける少なくとも一つのプライマリーサーバーの視点からの代表的な特徴を示しているフローチャートである。
【図１１】図１１は、仮想マシンをレプリケーションしているリカバリーサイトにおける少なくとも一つのリカバリーサーバーの視点からの代表的な特徴を示しているフローチャートである。
【図１２】図１２は、ここにおいて説明された原理が実施される代表的なコンピューターシステムを示している。
【発明を実施するための形態】
【００１２】
以降の説明においては、添付の図面が参照される。図面は、明細書の一部を構成しており、説明図として、本技術に係る所定の実施例が示されている。本発明開示の範囲を逸脱することなく、他の実施例が使用され、構成の変更がなされ得ることが理解されるべきである。
【００１３】
本発明開示は、一般的にデータレプリケーション及びリカバリーに関するものである。ここにおいて説明される原理は、一つのデータストレージデバイス又は設備から別のデバイス又は設備へのあらゆるデータのレプリケーションに適用することができる。一方で、この発明開示における数多くの実施例は、プライマリーコンピューターセンターから離れた場所でレプリカされたデータ及び処理リソースが提供されるというディザスターリカバリーのコンテクストにおいて説明される。しかしながら、ここにおいて説明される原理は、レプリカされたデータがリカバリーサイトへ移動される距離又は方法にかかわらず適用できることが認識されるべきである。所定の実施例も、また、仮想マシンのコンテクストにおいて説明されるが、本原理は、物理的マシン及びそれが利用可能なストレージに対しても同様に適用できる。
【００１４】
上述のように、システムバックアップ情報は、しばしば物理的媒体上に作成され、離れたリカバリーサイトに対して物理的に提供される。データセンターがオフラインになった場合、バックアップデータセンターは、バックアップ媒体を用いてオペレーションを引き継ぐことができる。物理的媒体をリカバリーサイトに対して繰り返し提供することは重荷である。リカバリーは、一日又はそれ以上前に、リカバリーサイトにおいて既に利用可能であるバックアップデータを使用することを含むだろうし、そうでなければ、より最近のレプリケーションデータがリカバリーサイトに到着するまでリカバリーを待つ必要があるだろう。こうしたソリューションでは、高度なビジネスの継続性を提供できない。
【００１５】
プライマリーサイトでのフルバックアップを電気的に獲得して、リカバリーサイトに伝送することができる。しかしながら、データ転送のサイズは非常に大きいものであり、規則的な組織化とそうした情報の究極の送信を管理できないものにしている。こうした送信問題を軽減するためにレプリカされたデータをたまに提供することは、必要な場合により望ましくないリカバリーを結果として生じることがある。バックアップ間隔の長い期間において変更されたデータは失われてしまうだろうからである。このようにしてバックアップを使用してディザスターリカバリーストラテジーを作成することは、非常に高い復元ポイント目標（ｒｅｃｏｖｅｒｙ  ｐｏｉｎｔ  ｏｂｊｅｃｔｉｖｅ：ＲＰＯ）及び復旧時間目標（ｒｅｃｏｏｖｅｒｙ  ｔｉｍｅ  ｏｂｊｅｃｔｉｖｅ：ＲＴＯ）を伴う非常に複雑なプロセスを導いてしまう。
【００１６】
ディザスターリカバリープロセスは、プライマリーサーバーが稼働しているサイトとは異なるサイトに、マシンのストレージ又は仮想マシンのレプリカされたコピーを有することによって簡素化することができる。ここにおいて使用されるように、ほかに記載が無ければ、「コピー（”ｃｏｐｙ”）」は、一般的に、問題となっている仮想マシン又は仮想マシンストレージのレプリケーションを示している。従って、「レプリケーション」および「コピー」は、ここにおいては、相互に交換可能なように使用されている。プライマリーサーバーから仮想マシン又はストレージのレプリカされたコピーへの更新がなされ得る。仮想マシンのレプリケーションは、アプリケーション又はオペレーティングシステムのスタックのバックアップとは異なるものである。仮想マシンのレプリケーションは、ストレージと仮想マシン構成の両方のレプリケーションを含んでいるからであり、ワーククロードは、再構成が必要とされない条件においてリカバリーサイトに到着する。例えば、仮想マシンコンテナは、正しい数量のネットワークインターフェイスと他のそうした構成を既に有しており、ワークロードが期待されるやり方で構成されている。
【００１７】
本発明開示は、仮想又は物理的マシンに関するデータのレプリケーションを可能にするメカニズム及び方法を提供する。例えば、仮想マシンのコンテクストにおいて、本発明開示は、仮想ディスク又は他の類似のファイルの形式で保持される一つまたはそれ以上の仮想マシンのデータのレプリケーションができるようにするやり方を提供する。中でも、本発明開示は、また、災害又は他のイベントがプライマリーサイトの通常業務を続ける能力にインパクトを与える場合に、リカバリーサイトのユーザーが仮想マシンのレプリカされたデータを利用することができるようにするメカニズムと方法も扱っている。
【００１８】
以降の種々の実施例は、仮想マシンに関して説明されている。仮想化は、一般的に、物理的リソースからの抽象化を示しており、クライアントとサーバーのシナリオにおいて利用され得るものである。ハードウェアエミュレーションは、オペレーティングシステムが典型的にインタラクトするであろうハードウェアの代わりをするソフトウェアの使用を含んでいる。ハードウェアエミュレーションソフトウェアは、ゲストオペレーティングシステムをサポートすることができ、ハイパーバイザーといった仮想化ソフトウェアは、仮想マシン（ＶＭ）を確立することができ、その上でゲストオペレーティングシステムが動作する。ここにおける説明の大部分は、仮想マシンのコンテクストにおいて記載されているが、本発明の原理は、仮想化を行わない物理的マシンについても同様に適用することができる。
【００１９】
図１は、一般的に、差分ディスクを使用して仮想マシンをレプリケーションするための代表的な実施例を示している。第１サイト１００は、一つまたはそれ以上の仮想マシン（ＶＭ）１０６をホストする一つまたはそれ以上のホストコンピューターシステム１０２−１０４を含んでよい。コンピューターシステム１０２は関連のストレージを有し、図１の実施例において、仮想マシン１０６は関連の仮想ストレージ（ＶＳ）１０８を有している。仮想ストレージは、例えば、ディスクイメージファイルとして典型的に提供される論理的ストレージを一般的に表す仮想ハードディスクドライブを表している。仮想マシン１０６は、仮想ストレージ１０８をハードディスクドライブ又は類似のストレージデバイスとして見ている。
【００２０】
一つの実施例において、仮想ストレージ１０８の中に保管されたデータ又は他の情報のレプリケーションは、ストレージステートチェイン（ｓｔｏｒａｇｅ  ｓｔａｔｅ  ｃｈａｉｎ）又はツリーの使用を含んでおり、チェインの頂上（ここにおいては、ツリーの先端としても言及される）は、仮想ストレージに書き込まれた変更を記録するための読み出し及び書き込み両方の能力を提供する。例えば、仮想ストレージ１０８は、仮想ハードディスク（ＶＨＤ）ファイルフォーマットを有する仮想ハードディスクを表してよい。ストレージツリーは、ベース仮想ディスク１１０、および、ベース仮想ディスク１１０に関連する一つまたはそれ以上の差分ディスク１１２Ａ−１１２ｎを含んでよい。ベース仮想ディスク１１０の子供である差分ディスク１１２Ａは、仮想ストレージ１０８に対する変更をキャプチャーする。以降により完全に説明するように、差分ディスク１１２Ａといった差分ディスクは、書き込みオペレーションを通じて保護され、差分ディスク１１２Ｂといった新たな差分ディスクは、以前の時点からの仮想ストレージ１０８に対する変更を許容するために作成され得るものである。このことは、あらゆる数字の差分ディスク１１２ｎを通じて継続することができ、それによって、新たな変更をキャプチャーするために、保護された仮想ディスクと差分ディスク１１２ｎのチェインを作成している。
【００２１】
一つまたはそれ以上のホストコンピューターシステム１５２、１５３、１５４を含む少なくとも一つの第２サイト１５０が提供され、第１サイト１００からレプリカされた情報を受け取り、保管される。災害又は他のイベントにより第１サイト１００がコンピューター業務を継続することができなくなった場合に、リカバリーコンピューターオペレーションが開始される。第１サイト１００と第２サイト１５０は、コミュニケーションリンク１３０を経由して通信を行う。直接ケーブル接続、有線ネットワーク、無線ネットワーク及びリンク、および、それらの組合せといった、あらゆるタイプの電気的コミュニケーションインターフェイスを含み得る。仮想マシン１０６のレプリケーションは、電気的手段を経由して第２サイト１５０に提供され、または、そうでなければ、レプリカされた仮想マシン１５６が提供される。同様に、差分ディスク１１２Ａ−１１２ｎ又は仮想ストレージ１０８に対する変更をキャプチャーするようにデザインされた仮想ストレージ１０８の他の部分が転送されてもよい。データがさらなる書き込みオペレーションから保護されている場合、以降により完全に説明されるようにである。レプリカされた仮想ストレージ１５８は、従って、プライマリーサイト１００において仮想ストレージ１０８から転送されたものに対応している。
【００２２】
第１サイト１００における仮想ストレージ１０８といったストレージは、非同期でデータを第２サイトにストリーム（ｓｔｒｅａｍ）することができる。しかしながら、そうした構成においては、第１サイト１００が故障した場合、第２サイト１５０にとって、何が成功裡に転送されたか、および、ストレージが一貫したものであるか否かを知るのは難しいであろう。本発明開示は、第１サイト１００の差分ディスク１１２Ａ−１１２ｎのスナップショット（または他の固定イメージ）が作成され、第２サイト１５０に転送されることを説明する。スナップショット機能を使用することで、仮想マシン１０６のストレージ１０８を一つの場所から別の場所へ非同期にレプリケーションすることができる。このやり方では、第１サイト１００におけるプライマリーサーバーが故障し、または、そうでなければ、オフラインになった場合でも、スナップショットとレプリカされたデータとの間に相違はない。その結果、何のデータが受け取られたかを第２サイトにおいて知ることができる。本発明開示は、このように、差分ディスクのスナップショット又は他のイメージを所定の時間に第２サイト１５０に対して転送する第１サイト１００について熟考している。
【００２３】
例えば、仮想ストレージ１０８のレプリケーションがアクセス得された場合は、差分ディスクデータを第２サイト１５０に対して転送すること、および、新たな差分ディスクを作成することを含んでいる。より特定的な例として、差分ディスク１１２Ｂのスナップショット１０４又は他のレプリケーション／コピーが取得され、第２サイト１５０におけるホストコンピューターシステム１５２に対してイメージ（例えば、ＡＶＨＤイメージファイル）が提供される。一つの実施例において、スナップショット１１４が取得される差分ディスク１１２Ｂが読み出し専用に変更され、読み出し／書き込み仮想ストレージファイルとして新たな差分ディスク１１２ｎが作成される。
【００２４】
いくつかの実施例は、差分ディスク又は他の仮想ストレージイメージの異なるタイプのコピーを含んでいる。図１は、複数のこうした異なるレプリケーション又は「コピー」タイプを示しており、コピータイプＡ  １１６、コピータイプＢ  １１８からコピータイプｎ  １２０までを含んでいる。例えば、コピータイプＢ  １１８といった、第１コピータイプは、差分ディスク１１２Ａ−１１２ｎの低インパクトのコピー／スナップショットを表しており、データの一貫性を増すための多大な労力を要することなく生成される。こうしたコピーを獲得する一つのやり方は、所定の差分ディスクをあらゆる所望の時間において読み出し専用としてマークを付け、それ以降に書き込まれたデータをキャプチャーするための新たな差分ディスクを作成することである。例として、仮想マシンのスナップショットは、例えば、仮想化ソフトウェア、ハイパーバイザー、オペレーティングシステム機能、等を使用して獲得することができ、稼働している仮想マシンの状態、データ、および、ハードウェア構成をキャプチャーすることができる。このタイプのコピーまたは類似の低インパクトコピーは、本発明開示において、クラッシュコンシスタント（ｃｒａｓｈ−ｃｏｎｓｉｓｔｅｎｔ）コピーとして示される。差分ディスク上に保管されたものであり、一般的には、システム故障又は電力供給停止に引き続いてディスク上にあるものに対応している。こうした場合には、アプリケーションが稼働しており、メモリーに保管されていなかったデータをキャッシュ又はメモリーの中に保管する。ファイルシステムのメタデータは、読み出し専用であるとマーク付けされる以前にその全てがディスク上に作成されるように管理されなくてもよい。このタイプのコピーを用いると、リカバリーサイトにおいてコピーを再生する試みが全くの成功にはならないことがある。データが完全には一貫していないからである。それにもかかわらず、このタイプのコピーは、稼働しているプログラムが中断されることを生じない。従って、第１サイト１００におけるコンピューターシステム１０２−１０４のシステムパフォーマンスに関係するため、非常に低コストである。
【００２５】
コピータイプＡ  １１６といった、別のタイプのコピーは、差分ディスク１１２Ａ−１１２ｎのより高度に一貫したコピー／スナップショットを表しており、スナップショット１１４が取得される以前にデータの一貫性を増すためいくらかの労力を要して生成される。例えば、こうしたスナップショット１１４は、マイクロソフトによるボリュームシャドーコピーサービス（ｖｏｌｕｍｅ  ｓｈａｄｏｗ  ｃｏｐｙ  ｓｅｒｖｉｃｅ：ＶＳＳ）といったオペレーティングシステムサービスを使用して獲得することができる。ＶＳＳは、バックアップ機能とディスク上のデータを更新するユーザーアプリケーションとの間を調整している。稼働しているソフトウェア（つまり、データ書き込み）は、今にも起こりそうなバックアップを通知されることができ、ファイルをコンシスタント状態に移行する。このタイプのコピーは、第２サイト１５０における、適正な再生のより高い可能性を提供する。しかしながら、稼働しているアプリケーションは、入力／出力（Ｉ／Ｏ）のフラッシュ（ｆｌｕｓｈ）、その状態の保管、等によりバックアップに備える必要があり、稼働しているワークロードは中断され、待ち時間が生じ、スループットが低下する。異なるコピータイプは、ワークロードの中断とデータの一貫性との間の所望のバランスを提供するように、異なる時間又は異なるスケジュールにおいて使用され得る。
【００２６】
上述のように、本発明開示は、物理的マシン又は仮想マシンに関して保管されたデータが、第１サイト１００から少なくとも一つの第２サイト１５０にレプリケーションされるやり方を明らかにする。実施例は、差分ディスクといったディスクイメージ領域のスナップショット又は他のコピーを提供することを含んでいる。第２又は「リカバリー」サイトにおいてレプリカされたデータを定期的に提供するために複数のタイプのコピーを獲得することができるようにしており、一方で、第１又は「プライマリー」サイトにおける処理の中断を管理できるレベルに保持している。第２サイト１５０に転送されたスナップショットは、プライマリーサイト１００におけるものと類似してチェイン化され得る。さらに、第１サイト及び第２サイト１００、１５０の両方におけるサーバーは、書き込み保護された差分ディスクをそれぞれの親ディスクの中にマージすることを促進することができる。ストレージ容量要求を削減、アクセス待ち時間を削減、等をするためである。以降により完全に説明するように、第１サイト１００によって転送された差分ディスクは、第２サイト１５０において受け取られ、仮想マシンのレプリカされたコピーの既存のディスクチェインの頂上にチェイン化される。それにより、レプリカされた仮想マシンのデータビュー（ｖｉｅｗ）のプライマリーサーバーとの同期を保持している。
【００２７】
図２Ａと図２Ｂは、本発明開示に従ったレプリケーションが実施される代表的なコンピューター環境を示している。図２Ａと図２Ｂの代表的なシステムは、単なる例示にすぎず、明らかに排他的な構成を表すものではない。図２Ａにおけるコンピューター環境は、プライマリーサーバーサイト２００といった、第１サイトを説明している。この実施例におおいて、プライマリーサーバー２００は、一つまたはそれ以上のサーバー２０２Ａ−２０２ｎ又は他のコンピューターデバイスを含んでいる。各サーバー２０２Ａ−２０２ｎは、一つまたはそれ以上の物理的又は論理的プロセッサ２０４Ａ、２０４ｎ、メモリー２０６Ａ、２０６ｎ、ストレージ２０８Ａ、２０８ｎ、等をそれぞれに含んでいる。ストレージ２０８Ａ、２０８ｎはレプリカされ、ストレージスナップショットといった、ストレージコピー２１０Ａ、２１０ｎが、ディザスターリカバリー目的のためにリカバリーサイト２１２に対して提供される。図２Ａは、ここにおいて説明される技術が、プロセッサに関するあらゆるストレージについて適用可能であり、仮想ストレージ又は仮想マシンについても同様に適用することができることを示している。リカバリーサイト２１２は、同様なプロセッサ、メモリー、および、ストレージ機能を有するサーバー又は他のコンピューターデバイスを含んでよいことに留意すべきである。
【００２８】
図２Ｂは、一つまたはそれ以上の仮想マシンを含んでいる実施例を示している。この実施例において、プライマリー２２０及びリカバリー２５０サーバーサイトは、それぞれに一つまたはそれ以上のサーバー２２２Ａ−２２２ｎを含んでおり、一つまたはそれ以上の物理的又は論理的プロセッサ２２４Ａ、２２４ｎ、メモリー２２６Ａ、２２６ｎ、ストレージ２２８Ａ、２２８ｎ、等をそれぞれに含み得る。一つまたはそれ以上のサーバーは、ハイパーバイザー２３０Ａ、２３０ｎ又は他の仮想マシン管理モジュールを含んでいる。仮想マシン管理モジュールは、仮想オペレーティングプラットフォームを表しており、その上でオペレーティングシステムシステム２３２Ａ、２３２ｎ及び仮想マシン２３４Ａ−２３６Ａ、２３４ｎ−２３６ｎが稼働している。ハイパーバイザー２３０Ａ，２３０ｎ及び/又はオペレーティングシステム２３２Ａ、２３２ｎの機能は、レプリケーション管理モジュール（ＲＭＭ）２３８Ａ，２３８ｎといった機能性を提供するために、使用され、適合され、または、追加され得る。本発明開示に従って、レプリケーション管理モジュール２３８Ａ，２３８ｎは、以下のような機能を提供することができる。どの変更（例えば、差分ディスク）がプライマリーサイト２２０からリカバリーサイト２５０に転送されるべき最後の変更であるかを保管すること、スケジュール又は他のイベントのトリガーに応じてコピーがされるようにリクエストすること、リカバリーサイト２５０への転送のために情報を準備すること、差分ディスクをそれぞれの親ディスクの中にマージすること、等である。仮想ストレージ（図示なし）は、それぞれの仮想マシンに関連しており、サーバー２２２Ａ，２２２ｎのメモリー２２６Ａ、２２６ｎの中のファイル、ローカルストレージ２２８Ａ、２２８ｎ、サーバー２２２Ａ，２２２ｎがクラスターで構成されている場合はクラスターストレージ（図示なし）、等の中に保管されてよい。仮想ストレージはレプリカされて、ディザスターリカバリー又は他の目的のためにリカバリーサイト２５０に対して、ストレージスナップショット又は他のコピー２４２Ａ、２４２ｎが提供される。図２Ｂは、従って、ここにおいて説明される技術が仮想マシンに関する仮想ストレージに適用可能であることを示している。リカバリーサイト２５０は、同様なプロセッサ、メモリー、ストレージ、図２Ａ及び/又は図２Ｂで説明された仮想マシン及び仮想マシン管理能力を有するサーバー又は他のコンピューターデバイスを含んでよいことに留意すべきである。
【００２９】
図３は、プライマリーコンピューター／サーバー環境が、ディザスターリカバリーを促進し、データが時間にわたり変化する際にデータをレプリケーションする代表的なやり方を示している。図４Ａは、ディスクチェインの第１状態を示しており、図４Ｂは、ディスクチェインの第２状態を示している。以降の実施例において、図３、図４Ａ、および、図４Ｂは、集合的に参照される。
【００３０】
ベース仮想ディスクイメージ４０６又は仮想マシン４００の仮想ディスク４０２の他の初期のストレージベースが、ブロック３００で示されるように保管される。以降にさらに説明されるように、このベース仮想ディスクイメージ４０６は、リカバリーサイトにおいて仮想ストレージのレプリケーションのためのベースとして役に立つ。ベース仮想ディスクイメージ４０６は、例えば、仮想ハードディスク（ＶＨＤ）ファイルといった、ファイルとして表されてよい。
【００３１】
ブロック３０２に示されるように、仮想ディスク４０２に対する変更は、読み出しに加えて書き込むこともでき、現行の差分ディスク４１０Ａ（図４Ａ）に記録される。一つの実施例において、現行の差分ディスク４１０Ａは、論理的にディスクチェイン４０４Ａの頂上にあり、ベース仮想ディスクイメージ４１０Ａ及びあらゆる中間差分ディスク４０８を含んでいる。現行の差分ディスク４１０Ａが、親のベース仮想ディスク４０６の第１の子供の差分ディスクである場合には、中間差分ディスクは存在しない。さらに、中間差分ディスク４０８が既にベース仮想ディスクイメージ４０６にマージされている場合にも、中間差分ディスクは存在しない。
【００３２】
他方では、読み出し専用であると約束されている差分ディスク４０８が存在してもよい。差分ディスクのスナップショット又は他のコピーが保存されるべきといった場合である。スナップショットデータ（レプリケーションのために転送され得るもの）は、差分ディスクに対応しており、差分ディスクは、スナップショットに関して書き込み保護となっている。こうした場合には、ベース仮想ディスクイメージ４０６と現行の読み出し／書き込み差分ディスク４１０Ａとの間に一つまたはそれ以上の読み出し専用の差分ディスク４０８が存在し得る。以降により詳しく説明されるように、プライマリーサイトにおける少なくとも読み出し専用ディスクのチェインがリカバリーサイトにおいてレプリカされる。それにより、レプリカされた仮想マシンのデータビューとプライマリーサイトにおける対応するサーバーとの同期を保持している。
【００３３】
いくつかの点で、現行の読み出し／書き込みする差分ディスク４１０Ａのコピーが作成され、ブロック３０４に示されるように、書き込み保護にされる。例えば、現行の差分ディスク４１０Ａのコピーに対するリクエスト４１４が、プロセッサで実行可能なレプリケーション管理モジュール４１２によってなされる。レプリケーション管理モジュールは、ハイパーバイザーのサービス又は機能、ホストオペレーティングシステム、親のパーティションのオペレーティングシステム、等であり得る。上述のように、なされるべきコピーのタイプも、また、クラッシュコンシスタントコピーといったものとして知られ、アプリケーションデータがコピーのために準備されていなくてよい。別の実施例は、後続の再生が適正である可能性がより高いアプリケーションコンシスタントコピーであり、例えば、データ／記録をフラッシュし、そうでなければ、スナップショット又は他のコピーのために準備するためのアプリケーションに対するいくつかの通知を含んでいる。
【００３４】
チェインの頂上にあった差分ディスクは、図４ＢにおいてＲ／Ｏ（読み出し専用）差分ディスク４１０Ｂによって示されるように、読み出し専用であるとマーク付けされる。このディスク４１０Ｂが書き込み保護にされると、ブロック３０６では、ちょうどコピーされた差分ディスク４１０Ｂを置き換えるために、ディスクチェイン４０４Ｂの新たな頂上として新たな差分ディスク４２０が作成される。この新たな「ツリーの頂上」である差分ディスク４２０は、読み出しと書き込み両方のオペレーティングシステムを取り扱う業務を想定している。一つの実施例において、あらゆるマージされていない中間差分ディスク４０８、４１０Ｂ及びその下のベース仮想ディスク４０６は、読み出し専用のままである。
【００３５】
一つの実施例において、読み出し専用ベース仮想ディスク４０６及びあらゆる読み出し専用の中間差分ディスク４０８、４１０Ｂは、リカバリーサイトへ転送され、リカバリー目的のために、そこでディスクチェインが再生される。このことは、ブロック３０８に記されており、ちょうどコピーされ書き込み保護にされた差分ディスク４１０Ｂがレプリカされたストレージのために転送される。レプリカされた仮想マシンのアドレスに対して転送されるといったことである。このように、コピー４１６が獲得されると、送信装置４１８によって描かれた送信器、トランシーバー、ネットワークインターフェイス、及び/又は、他のメカニズムによって、リカバリーサイトに対して転送される。プライマリーサイトが稼働しており、判断ブロック３１０において決定されたようにより多くのコピーがレプリカされる限りにおいて、コピーを作成して書き込み保護にするプロセス３０４、新たな差分ディスクの作成３０６、および、スナップショットの送信３０８は、継続され得る。例えば、レプリケーションポリシー又はレプリケーションルールが確立され、いつコピーを作成するべきか、および、複数のコピータイプの場合に、どのタイプのコピーを作成すべきかを判断する。
【００３６】
図５は、レプリカされた仮想マシンのデータビューをプライマリーサーバーにおける対応するものとの同期を保持する代表的なやり方を示すフローチャートである。図６は、レプリカされたプライマリーサイトにおける仮想ストレージの保護された領域に対応するレプリカされた仮想ディスク及びレプリケーションディスクチェインを示している。以降の実施例においては、図５と図６が集合的に参照される。
【００３７】
ブロック５００に示されるように、リカバリーサイトにおいてレプリカされた仮想マシン６００が提供される。レプリカされた仮想マシン６００は、レプリカされるべきプライマリー仮想マシンに実質的に対応している。このことは、電気的に通信されてよく、または、他の手段によって配送されてもよい。レプリカされた仮想ディスク６０２又は他のレプリカされた仮想ストレージが、ブロック５０２に示されるように提供される。レプリカされた仮想ディスク６０２は、レプリカされるべきプライマリーベース仮想ディスク（例えば、図４のベース仮想ディスク４００）に実質的に対応しているレプリカされたベース仮想ディスク６０４を含んでよい。
【００３８】
ブロック５０４に示されるように、プライマリーベース仮想ディスクの子供又はより遠くの子孫といった、プライマリーベース仮想ディスクに関連する差分ディスク６０６のコピーが受け取られる。一つの実施例において、受け取られたコピーは、コピーまたはレプリケーションの複数の可能なタイプのうちの一つである。ブロック５０６に示されるように、差分ディスク６０６の受け取られたコピーは、プライマリーサイトにおいてプライマリーベース仮想ディスクに関して配置されるやり方で、レプリカされたベース仮想ディスク６０４に関して配置される。例えば、プライマリーサイトにおいて一つまたはそれ以上の中間差分ディスクが存在する場合には、それらの差分ディスク６０８のコピー／スナップショットが受け取られて、プライマリーディスクチェイン（例えば、図４Ａ、図４Ｂのディスクチェイン４０４Ａ／Ｂ）において保護された差分ディスクが配置されているように、レプリカされたディスクチェイン６１０において配置される。一つまたはそれ以上の中間差分ディスク６０８が、プライマリー及び/又はリカバリーサーバーにおいてベース仮想ディスク６０４の中にマージされ得る一方で、コンテンツは、プライマリーサイトにおけるディスクチェインと同期されたままである。
【００３９】
判断ブロック５０８において決定されるようにリカバリーサイトにおいて他の差分ディスクが受け取られる場合は、より多くの差分ディスクを受け取ることができ、プライマリーサイトと同期するように配置される。これらのレプリカされた差分ディスク、例えばスナップショット又は他のコピー、は、受信器６１２によって受け取ることができる。受信器６１２は、個別の受信器、トランシーバー、ネットワークインターフェイス、または、あらゆる受信機メカニズムを代表し得るものである。レプリケーション管理モジュール６１４は、リカバリーサーバー上でプロセッサ実行可能なモジュールとして提供され得る。サーバーのハイパーバイザー、ホストオペレーティングシステム、親パーティションオペレーティングシステム、等といったものである。レプリケーション管理モジュール６１４は、以下のタスクを実行することができる。プライマリーサイトから受け取るべき変更（例えば、差分ディスク）の最後のセットがどれかに関する情報を保持すること、コピーのタイプ（例えば、クラッシュコンシスタント、アプリケーションコンシスタント、等）を保持すること、リカバリーオペレーションが開始された場合に複数のレプリカされた差分ディスクのうちどれが処理を開始するものかを判断すること、スナップショット又は他のコピーをプライマリーサイトのチェインに対応するチェインに配置すること、および、ここにおいて説明される他の機能、といったものである。
【００４０】
上述の実施例においてみられるように、本発明開示において提供されるソリューションは、スナップショット又は他のレプリケーション機能を使用して、定期的に又は他のインターバルで差分ディスクを作成することができる。例えば、ハイパーバイザー、他の仮想化ソフトウェア、及び/又は、オペレーティングシステムは、差分ディスクを作成するために使用されるスナップショット機能を含んでいる。一つの実施例において、ディスクチェインの頂上にある差分ディスクは、チェインのさらに下にある読み出し専用仮想ディスクが、ネットワークを介して、リモートサイトに転送される間の変更を蓄積する。リモートサイトでは、スナップショットを作成または変更することで、仮想マシンのレプリカされたコピーの既存のディスクチェインの頂上に、受け取った差分ディスクを配置することができ、それによって、レプリカされた仮想マシンのデータビューとプライマリーサーバーとの同期を保持している。
【００４１】
こうした機能を使用して、稼働している仮想マシンのレプリケーションを提供することができ、レプリカされたデータの正しさをデザインによって保証している。例えば、プライマリーサーバー上での書き込みを蓄積するために差分ディスクを使用すること、および、リモートサイトにおいてレプリカされた仮想マシンに対して同一のディスクをチェインに配置することは、電力供給停止又はシステムクラッシュのいずれの場合においてさえ、レプリケーションプロセスにより、書き込みが失われることはないと保証する。このメカニズムは、再度の同期化メカニズム又は一貫性チェックメカニズムを必要としないで、レプリカされたデータの一貫性を提供するものである。
【００４２】
ここにおいて説明されるソリューションにより、稼働している仮想マシンのコピーの作成することができ、中断のないやり方でプライマリーサイトからリカバリーサイトへのデータの定期的な同期化ができる。例えば、ネットワークで仮想マシンの構成とデータディスクを転送することによって、リモートサーバーに対してプライマリーサイト上で稼働している仮想マシンのコピーを作成するためのメカニズムが提供される。そうしたメカニズムにより、仮想マシンの仮想ハードディスクチェインの頂上に差分ディスクを作成することができ、リモートサーバーに対してネットワークでベースとなる読み出し専用差分ディスクを転送することができ、リモートサーバー上で仮想マシンに対してこれらのディスクをチェインに配置することができる。差分ディスクを作成することで、稼働している仮想マシンを中断することなくデータ転送することができる。
【００４３】
仮想マシンのレプリカされたコピーのために、アプリケーションコンシスタントな時点が生成される。例えば、（ＶＳＳ）スナップショットが使用されてよく、仮想マシンの中のアプリケーションは、書き込みをフラッシュかつ停止することができ、その時点までのデータのリカバリーをより高く保証できる。一つの典型的な方法は、ＶＳＳスナップショットを使用して、ＶＳＳスナップショットに戻ることにより、リカバリーサーバー上のそうしたより高く保証された復元ポイントからリカバリーできるようにする。
【００４４】
ここにおいて説明されるソリューションにより、複数の時点のうち一つからのデータを用いてレプリカされた仮想マシンを作り出すことができ、必要であれば、後に続く時点を変更することができる。例えば、メカニズムは、プライマリーサーバーから受け取った差分ディスクをチェインに配置するために、スナップショットを作成し、変更する。スナップショットは、レプリカされた仮想マシンのデータの時点を表している。本発明方法は、この時点まで差分ディスクを作成することによってレプリカされた仮想マシンを作り出すメカニズムを提供し、仮想マシンを作り出すために使用する。これらのリカバリーサイトにおける差分ディスクは、レプリカされた仮想マシンによって生成されたあらゆる書き込みをキャプチャーする。後にユーザーが時点の変更を選択した場合、差分ディスクは捨てられ、新たな時点に関する新たな差分ディスクが作成される。
【００４５】
こうした方法は、さらに、仮想マシンのレプリカされたコピー上で「テスト」を実行しながらレプリケーションを続けることを可能にし、レプリカされた仮想マシンの仮想ハードディスクのコピーを作成することを要しない。例えば、本発明方法は、同一の親の仮想ハードディスクを指し示す２つ（またはそれ以上）の差分ディスクのセットを使用してレプリカされた仮想マシンの「テスト」コピーを生成することができる。「テスト」仮想マシンから実行された書き込みは差分ディスクの一つのセットにおいてキャプチャーされ、テストが完了すると捨てられる。周期的な同期の変更又はプライマリーサーバーから到着する「デルタ（”ｄｅｌｔａ”）」は、差分ディスク他のセットにおいて収集されて、テストの完了の際に中にマージされる。
【００４６】
本ソリューションにより、さらに、仮想マシン（例えば、ベース仮想ディスク）に対する最初のレプリカが範囲外に転送されている間にもレプリケーションを継続することができる。本メカニズムは、仮想マシンの最初のレプリカを「範囲外（”ｏｕｔ  ｏｆ  ｂａｎｄ”）」に転送することをサポートする。「範囲外」は、つまり、プライマリーサイトからリモートサイトにデータを転送するために使用されるネットワーク転送チャネルの外側のことである。リモートサイト上に空の仮想ハードディスクを指示している（または、「親としている」）差分ディスクを作成することができ、レプリケーションの最中にプライマリーサーバーから受け取った後続の差分ディスクは、作成された差分ディスクの頂上でチェインに配置される。リモートサイト上で範囲外のレプリカを受け取った場合、空の仮想ハードディスクを指し示すように作成された差分ディスクは、最初のレプリカにおいて受け取った仮想ハードディスクを指し示すように「再び親（”ｒｅ−ｐａｒｅｎｔｅｄ”）」とされる。
【００４７】
これより、こうした事項の多くを示す実施例が提供される。本発明開示に従って、レプリケーションイベントのシーケンスの代表的な実施例を明らかにするものである。図７Ａから図７Ｆは、第１のコンピューター環境から少なくとも一つの他のコンピューター環境へ、仮想マシン又は他のコンピューターエンティティのストレージを非同期的にレプリケーションするための代表的な実施例を示している。好適に、図７Ａから図７Ｆを通して類似の参照番号は、類似のアイテムを特定するために使用されている。
【００４８】
この実施例において、プライマリーコンピューターサイト７００は、第１コンピューター環境を表しており、第２又は「リカバリー」コンピューターサイト７５０は、第２コンピューター環境を表している。プライマリーサイト７００は、一つまたはそれ以上の稼働しているコンピューターデバイス（例えば、サーバー）を含んでおり、リカバリーサイト７５０も同様である。リカバリーサイト７５０は、保存のために仮想ディスク又は他のストレージファイルを受け取ることができる一つまたはそれ以上のコンピューターデバイス／サーバーを表しており、プライマリーサイト７００の業務を実施する能力にインパクトを与える災害又は他のイベントが生じた際に再生が可能である。
【００４９】
本発明開示は、ネイティブ（ｎａｔｉｖｅ）なコンピューターシステムを使用するあらゆるデータデバイス又は構成のストレージのトラック及びレプリケーションに適用することができるが、一方で、一つの実施例は、ハイパーバイザーベースの仮想システムによって使用される仮想ディスクに対する変更を記録しレプリケーションすることを含んでいる。そうしたシステムにおいては、仮想マシンによって使用される仮想ディスクに対する変更をトラックしレプリケーションするように、稼働している仮想マシンのために差分ディスクが使用される。仮想マシンがトラックするために構成されている場合、プライマリーサイト７００のコンピューターデバイスに関するベース仮想ディスク７０２が転送され、または、そうでなければ、リカバリーサイト７５０におけるコンピューターデバイスに対して提供される。このことは、リカバリーサイト７５０におけるレプリカされたベース仮想ディスク７５２によって示される。
【００５０】
ベース仮想ディスク７０２が書き込み保護にされて、リカバリーサイト７５０にコピーされた場合、第１差分ディスクＤ１  ７０４が作成され、仮想ディスクを含んであらゆる新たな書き込みをキャプチャーする。別の言葉で言えば、仮想ディスクに対するあらゆる変更は、次に、プライマリーサイト７００における差分ディスク７０４に対して行われる。一方、プライマリーサイトは、この時点で、レプリカされたベース仮想ディスク７５２状態を保管している。一つの実施例において、プライマリーサイト７００とリカバリーサイト７５０の両方におけるレプリケーション（例えば、レプリケーション管理モジュール）は、レプリカされたベース仮想ディスク７５２に対するベース仮想ディスク７０２の転送が最も最近の転送されるべき変更のセットであることを示す状態情報を保管する。プライマリーサイト７００において対応する仮想マシン（または他のコンピューターシステム）が故障し、または、そうでなければ、この時点で業務を実施することができない場合は、リカバリーサイト７５０におけるハードウェアが、レプリカされたベース仮想ディスク７５２に対応する仮想ストレージの状態から機能を開始する。
【００５１】
ストレージのコピーは、スケジュールに関するものを含めて、いかなる時にリクエストされてもよい。例えば、プライマリーサイト７００におけるレプリケーション管理は、いくらかの時間の経過後に仮想ストレージのコピーに対するリクエストを行う。所定の時間、イベントが発生した結果として、等である。本発明開示は、作成されて、リカバリーサイト７５０に対して転送される複数のタイプのコピーを考慮しており、それぞれが独自のスケジュールまたは他のトリガークライテリアを有している。
【００５２】
図８を簡単に参照すると、ベース又は差分ディスクのスナップショット又は他のコピーのスケジューリングの実施例が示されている。ポリシー８００は、メモリー又はストレージ８０２の中に保管される。ホストコンピューターシステム又はそれ以外に関連するストレージであってよい。一つの実施例において、ポリシー８００は、リカバリーサーバーに対して、レプリケーションのために差分ディスクのコピーをリクエストするためのルールを含んでいる。示された実施例において、２つのタイプのコピーが説明されているが、より少ない又はより多いタイプのコピーが実施され得るものである。この実施例において、ポリシー８００は、クラッシュコンシスタントコピー８０４に対するコピーインストラクションを含んでいる。コピーが獲得されるべきあらゆる一つまたはそれ以上の所定の時間といったもの、クラッシュコンシスタントなコピーを獲得する固定の又は変化する時間インターバル８０８、クラッシュコンシスタントなコピーに対するリクエストを開始する他のイベントトリガー８００、等といったものである。同様に、ポリシー８００は、アプリケーションコンシスタントコピー８０４に対する類似の可能性８１６、８１８、８２０を含んでいる。にもかかわらず、所定の時間８１６、インターバル８１８、及び/又はイベントトリガー８２０は、他のコピータイプのものとは異なってよい。コントローラー８２４は、プロセッサ及び実行可能なソフトウェアを含んでよいが、ポリシー８００を実行することができる。例えば、コントローラーはプログラムを実行してよい。上述のレプリケーション管理モジュールといったものであり、タイマー８２６、イベントモニター８２８、及び/又は、スナップショット８３０機能をポリシー８００に基づいて実行するためである。テストの実施例においては、上述のボリュームシャドーコピーサービス（ＶＳＳ）といった、他のコントローラーが実行可能なプログラムによって、スナップショットが提供され得る。
【００５３】
ここで、図７Ａから図７Ｆの実施例に戻ると、図７Ｂはレプリケーション管理モジュールが第１タイプのコピーをリクエストしたことを仮定しており、この実施例においてクラッシュコンシスタントコピー（ｃｒａｓｈ−ｃｏｎｓｉｓｔｅｎｔ  ｃｏｐｙ）として言及される。そうしたコピーは、あらゆる与えられた瞬間での仮想ストレージのコピーを表している。例えば、クラッシュコンシタントコピーは、差分ディスクＤ１  ７０４への書き込みアクティビティをあらゆる時間において停止することによって作成され得る。一つの実施例において、仮想ディスクのクラッシュコンシスタントコピーがリクエストされた場合、仮想ディスクは、さらなる書き込みオペレーションに対してクローズされ、仮想ディスクを含みあらゆる新たな書き込みをキャプチャーするために新たな差分ディスクＤ２  ７０６が作成される。差分ディスクＤ１  ７０４が新たな書き込みに対してクローズされている場合（例えば、読み出し専用とマークされているもの）は、あらゆる計画された又は任意の瞬間において準備することなく、仮想マシン（または、他のコンピューターシステム）の稼働しているワークロードは中断されない。このタイプのコピーにより、ワークロードが中断なく通常のスピードでオペレーションを継続できる一方で、可能性のある結果は、リカバリーサイト７５０においてコピーを再生するための後続の試みが潜在的に失敗し得ることである。差分ディスクＤ１  ７０４のコピーが任意の瞬間に獲得されてきたことによるものである。
【００５４】
上述のように、Ｄ１  ７０４がリカバリーサイト７５０への最終転送のために保存されてきている場合、別の差分ディスクＤ２  ７０６が作成され、情報を仮想ディスクに書き込みできるようにする。差分ディスクＤ１  ７０４が、リカバリーサイト７５０における一つまたはそれ以上のサーバーへの転送のためのレプリケーション管理に対して利用可能にされる。リカバリーサイト７５０におけるレプリカされた差分ディスク７５４によって示されるようにである。この時点から先のプライマリーサイト７００の仮想ディスクに対する変更は、新たな差分ディスクＤ２  ７０６の中にキャプチャーされる。
【００５５】
一つの実施例において、差分ディスクＤ１  ７０４に保管された情報は読み出し専用に変更され、もはや、データ書き込みによって変更されることはない。むしろ、新たな差分ディスクＤ２  ７０６が書き込みのために構成され、従って、仮想ディスクに対する変更を記録する。プライマリーサイト７０におけるレプリケーション管理は、読み出し専用の差分ディスクＤ１  ７０４を親ディスクの中にマージする。親ディスクは、この実施例におけるベース仮想ディスク７０２である。こうしたマージの実施例が図７Ｃに示されている。ここで、Ｄ１  ７０４はベース仮想ディスク７０２の中にマージされ、新たな仮想ディスク７０８が提供される。
【００５６】
マージ機能を実行する一つの目的は、保管されたデータを仮想ディスク上に配置するために、読み出しオペレーションが依存するリンクの終了を削減するためである。ここで、図９を参照すると、こうしたリンクの実施例が説明されている。レプリカされた仮想ディスク９５２によって示されているように、ベース仮想ディスク９０２のコピー９０１がリカバリーサーバー９５０に対して提供されているものと仮定している。新たに作成された差分ディスク（例えば、差分ディスク９０４）は、親ディスクに対するポインター９０６又はリンクを含んでいる。親ディスクは、また、以前の「ツリーの頂上」のディスクでもある。この実施例において、差分ディスク９０４は、ベース仮想ディスク９０２に対するポインター９０６を含んでいる。新たな差分ディスク９０４の中に見い出せないデータに対する読み出しオペレーション９０８が、プライマリーサーバー上で発行された場合、読み出しオペレーション９０８は、ポインター９０６、リンク、または、他の類似の指示メカニズムによって特定された、ディスクチェインにおいて遠く後ろの位置にあるデータを獲得してよい。この実施例において、差分ディスク９０４が読み出しリクエストに関するデータを有していない場合、差分ディスク９０４におけるポインター９０６に基づいて、読み出しオペレーション９０８は、ベースディスク９０２からデータを獲得するであろう。
【００５７】
差分ディスク９０４のコピー９１０が、レプリカされた差分ディスク９５４によって示されるように、リカバリーサーバー９５０に対して提供される。差分ディスク９０４が書き込み保護されており、リカバリーサーバー９５０に対してコピー９１０されている場合、書き込みオペレーション９０９といった手段により、仮想ディスクに対する変更を受け容れるために新たな差分ディスク９１２が作成される。新たな差分ディスク９１２は、親に対するリンク又はポインター９１４を含んでいる。親ディスクは、この実施例における差分ディスク９０４である。差分ディスク９１２と差分ディスク９０４のいずれの中にも見い出せないデータに対して読み出しオペレーション９０８が発行され得るが、そうした場合には、アドレスされたデータを捜し出すためにベース仮想ディスク７０２に戻るリンク、または、ポインター９１４、９１６が提供される。
【００５８】
読み出し専用状態に保護されてきている差分ディスクの数量に依存して、ベース仮想ディスク７０２に戻ってデータを捜し出すための数多くのリンクが存在し得る。こうしたリンクに関連するオーバーヘッドを削減するために、読み出し専用であるとされ、リカバリーサーバー９５０に対して転送されたプライマリーサーバー９００における差分ディスクは、それぞれの親ディスクにマージされてよい。読み出し専用とマークされ、または、そうでなければ、レプリケーション及び転送のために保護されてきたあらゆる所望の差分ディスクは、全てに至るまで、マージされ得る。以降により詳しく説明されるように、こうしたマージは、または、リカバリーサイト９５０においても実施される。
【００５９】
ここで、図７Ａから図７Ｆの実施例に戻ると、図７Ｃはレプリケーション管理モジュールが第２タイプの仮想ディスクのコピーをリクエストしたことを仮定しており、この実施例においてアプリケーションコンシスタントコピー（ａｐｐｌｉｃａｔｉｏｎ−ｃｏｎｓｉｓｔｅｎｔ  ｃｏｐｙ）として言及される。この実施例において説明された第１タイプのコピーは、稼働しているシステムのストレージの一般的なスナップショットである、クラッシュコンシスタントコピーである。この実施例におけるアプリケーションコンシスタントコピーは、一般的に、スナップショットが取得されるように自分自身を準備した、稼働しているシステムのストレージのスナップショットを示している。こうしたやり方でストレージが準備された場合、レプリケーションサイト７５０における再生が成功する高い確率を促進する点で、スナップショットは一貫したものである。スナップショットが取得されるように自分自身を準備（例えば、クラッシュコンシスタントコピー）していないコピーは、再生に際して一貫したものではないだろう。例えば、クラッシュコンシスタントコピーの場合、ファイルシステムのメタデータ、データベースメタデータ、及び/又は、他の情報は、ディスク上に作成されない。
【００６０】
一つの実施例において、クラッシュコンシスタントコピーといった事前に準備されたコピーは、システムにおけるソフトウェアに対してコピーが作られるべきであることを知らせる管理モジュールに関連して作成され得る。例えば、ボリュームシャドウサービス（ｖｏｌｕｍｅ  ｓｈａｄｏｗ  ｃｏｐｙ  ｓｅｒｖｉｃｅ：ＶＳＳ）は、データベースといったシステムにおいて稼働しているソフトウェアが通知のために任意に記録することができるプロセスを含んでいる。通知は、ソフトウェアに差し迫ったストレージコピーまたはスナップショットを知らせるものであり、保護されているディスクイメージの一部分の中に記録を提供するための時間をソフトウェアに提供する。
【００６１】
プライマリーサイト７００におけるレプリケーション管理が、こうした事前に準備された、または、「アプリケーションコンシスタント」なコピーのリクエストをする場合、オペレーティングシステムのためのＶＳＳまたは他の管理モジュールが、スナップショットのセットを生成するために参加する。スナップショットが作成された場合、図７に示された差分ディスクＤ２  ７０６は読み出し専用に変換され、別の新たな読み出し／書き込み差分ディスクＤ３  ７１０が、今や仮想ディスクに書き込まれるデータをキャプチャーするために作成される。差分ディスクＤ３  ７１０が、今や仮想ディスクに対する変更を記録しているので、以前の「ツリーの頂上」の差分ディスクＤ２  ７０６がリカバリーサイト７５０に転送される。図７Ｄに示されているレプリカされたレプリケーション差分ディスクＤ２  ７５８によって示されるようにである。
【００６２】
差分ディスクＤ２  ７０６のアプリケーションコンシスタントコピーをリカバリーサイト７５０に対して転送することで、プライマリーサイト７００において再度マージが行われる。このことは、図７Ｄに示されており、マージされた図７Ｃの仮想ディスク７０８は、今やＤ２を含んでおり、新たなマージされた仮想ディスク７１２を形成している。リカバリーサイト７５０におけるレプリケーション管理は、プライマリーサイト７００から受け取ったレプリカされた差分ディスクＤ２  ７５８がプライマリーサイト７００からの最新のディスクコピーであるということを通知を作成する。Ｄ２  ７５８コピーは、アプリケーションコンシスタントコピーであり、かつ、クラッシュコンシステントでもあると仮定されているので、プライマリーサイト７００から、アプリケーションコンシスタントコピーおよびクラッシュコンシスタントコピーの両方であるとして働く。
【００６３】
図７Ｄは、また、リカバリーサイト７５０におけるディスクのマージについて説明している。レプリケーションされたクラッシュコンシスタントコピーＤ１  ７５４とレプリカされた仮想ディスク７５２は、図７Ｄにおいてマージされ、マージされた仮想ディスク７５６を形成している。プライマリーサイト７００からのスナップショットがリカバリーサイト７５０に到着すると、スナップショットは照会され、実行準備がされる。受け取ったスナップショットをこうしたやり方でマージして照合することにより、リカバリーサイト７５０でのオペレーションが依存しているところに災害が発生した場合、受け取ったコピーの選択されたもの（または、全てに至るまで）をリカバリーサイト７５０においてマージすることによって、潜在的なオペレーションの遅延を軽減または回避することができる。このように、一つの実施例は、仮想ディスクの少なくともいくつかのスナップショット又は他のコピーを、それらが到着する際に、マージして照合することを含んでいる。もしくは、リカバリーサイト７５０における使用のためにレプリカされたデータがコールされる時より以前にである。
【００６４】
実施例は、また、リカバリーサイト７５０において一つまたはそれ以上の受け取られたスナップショット又は他のコピーを保管することを含んでいる。所定のディスクイメージに復帰するために、その時点からのリカバリーオペレーションを可能にするように保管され得る。複数のタイプのスナップショット（例えば、クラッシュコンシスタントコピー、アプリケーションコンシスタントコピー、等）を使用する実施例において、一つまたはそれ以上のそれぞれのタイプのスナップショット又は他の類似のコピーは、スナップショットタイプのうち所望の一つからのリカバリーを可能とするために保管され得る。例えば、クラッシュコンシスタントコピーは、アプリケーションコンシスタントコピーに比べてより規則的にリカバリーサイト７５０に対して提供される。これは、図８に関して説明されたようなポリシーによって設定され得る。一つの実施例において、アプリケーションコンシスタントコピーは、クラッシュコンシスタントコピーに比べて提供される機会が少ない。これは、潜在的により大きな準備と処理時間、および、結果として起こる遅延によるものであり、アプリケーションコンシスタントコピーの獲得に含まれるものである。災害又はリカバリーサイト７５０におけるオペレーションを必要とする他のイベントが生じた場合、リカバリーサーバーはクラッシュコンシスタントコピーまたはアプリケーションコンシスタントコピーからオペレーションを開始するように試みる。最も最近のそれぞれのタイプのレプリカされたコピーからの相対的な経過時間、リカバリーサイト７５０においてオペレーションを再確立することの緊急性、複数のタイプのスナップショット間での仮想ディスクの変更の程度、等といったものに依存している。
【００６５】
図７Ｅは、リカバリーサイト７５０への転送がリクエストされている別のクラッシュコンシスタントコピーに応じて、プライマリーサイト７００及びリカバリーサイト７５０上の仮想ストレージのツリーを示している。この実施例において、差分ディスクＤ３  ７１０（図７Ｄ）は、図７Ｅにおけるレプリカされた差分ディスク７６０によって示されるようにリカバリーサイト７５０に対して転送される。再び、プライマリーサイト７００における差分ディスクＤ３  ７１０は、仮想ディスク７１２の中にマージされて新たな差分ディスク７１４を作成する。そして、別の新たな読み出し／書き込み差分ディスクＤ４  ７１６が作成され、仮想ディスクに対する変更をキャプチャーする。
【００６６】
リカバリーサイト７５０において、新たに受け取ったクラッシュコンシスタントコピー７６０は、今や最も最近のコピー（ツリーの頂上）である。この実施例において、レプリカされたアプリケーションコンシスタントコピーＤ２  ７５８及びレプリカされたクラッシュコンシスタントコピーＤ３  ７６０の両方は、復元ポイントとして利用可能である。例えば、プライマリーサイト７００におけるプライマリーサーバーが故障し、または、そうでなければ、業務を適正に実行することが出来なくなっていると仮定し、この故障が、一般的に、図７Ｅにおいて示されたものに応じた時点に発生するものと仮定する。リカバリーサイト７５０におけるリカバリー仮想マシン（または、代替的な物理的マシン）は、例えば、最も最近受け取ったレプリカされたアプリケーションコンシスタントコピーＤ３  ７６０を使用して実施される。アプリケーションコンシスタントコピーＤ３  ７６０は、リカバリーサイト７５０において、より早い時間に受け取られたものであるが、リカバリーサイト７５０において適正に再生されるより高い可能性を有するコピータイプである。上述のように、これは、この「タイプ」のコピーが、この実施例において、プライマリーサイトにおけるアプリケーション／ソフトウェアにそれぞれのスナップショットが取得される以前のスナップショットの遅延を通知することに含まれており、それによって、ソフトウェア自身がスナップショットの準備をすることができることによる。
【００６７】
従って、一つの実施例において、リカバリーサイトにおける仮想マシン又は他のコンピューターシステムは、複数の利用可能な差分ディスク、スナップショット、または、他のレプリカされた仮想ストレージの状態のうち一つを使用して起動することができる。一つの実施例においては、そこから仮想マシンが実施される所定の差分ディスクに対する子供として差分ディスクが作成される。図７Ｆ実施例においては、レプリカされたアプリケーションコンシスタント差分ディスクＤ２  ７５８を親として用いて差分ディスク７６２が作成される。この差分ディスク７６２は、次に、サーフェス化され（ｓｕｒｆａｃｅ）、ディスク上に存在するボリュームは、Ｄ２  ７５８に関するアプリケーションコンシスタント（例えば、ＶＳＳ）なスナップショットセットへと復帰する。
【００６８】
図７Ｆに示すように、一連の差分ディスクを保持する一方で、複数の差分ディスクがツリーにおける同一の読み出し専用ポイントを指し示すようにすることができる。例えば、レプリカされたクラッシュコンシスタント差分ディスクＤ３  ７６０は、アプリケーションコンシスタント差分ディスクＤ２  ７５８を指し示す。リカバリーサイト７５０において作成された差分ディスク７６２がそうするようにである。差分ディスクＤ３  ７６０及び差分ディスク７６２は、従って、読み出し専用差分ディスクＤ２  ７５８の状態に関する２つの異なる特徴を表している。例えば、ユーザーは、仮想ディスクを使用してリカバリーサイト７５０において仮想マシンを起動することを選択できるであろう。仮想ディスクは、差分ディスク７６２、差分ディスク７６２によって指し示される読み出し専用差分ディスク７５８、および、差分ディスクＤ２  ７５８によって指し示されるマージされたディスク７５６を含んでいる。
【００６９】
このように、説明された実施例においては、リカバリーサイト７５０にける第１仮想ディスクの自動又は手動による選択は、読み出し専用ディスク７５６（ベース仮想ディスク及びＤ１を含んでいる）、読み出し専用アプリケーションコンシスタント差分ディスクＤ２  ７５８、および、読み出し／書き込みクラッシュコンシスタント差分ディスクＤ３  ７６０、を含んでいる。代替的に、第２仮想ディスクの自動又は手動による選択は、読み出し専用ディスク７５６（ベース仮想ディスク及びＤ１を含んでいる）、読み出し専用アプリケーションコンシスタント差分ディスクＤ２  ７５８、および、リカバリーサイト７５０において作成された差分ディスク７６２、を含んでいる。複数の読み出し／書き込み差分ディスクが共通の親ディスクを指し示すようにさせることによって提供される異なる「将来」観点で、異なるリカバリーシナリオが可能である。
【００７０】
リカバリーサイト７５０においてあらゆる一つまたはそれ以上の利用可能な仮想ディスクチェインが選択されてよい。例えば、ユーザーはクラッシュコンシスタントディスクＤ３  ７６０を保存するように選択することができる。仮想マシンがアプリケーションコンシスタントディスクＤ２  ７５８を使用してブートされるときに所望のデータを有していないためである。この場合、仮想マシンはクラッシュコンシスタントディスクＤ３  ７６０を使用して稼働し得る。リカバリー仮想マシンがアプリケーションコンシスタントディスクＤ２  ７５８を使用して再生され、アプリケーションコンシスタントな瞬間に戻った時点を指し示す新たな差分ディスク７６２が作成されたとしても、クラッシュコンシスタントディスクＤ３  ７６０は、別の再生チェインの可能性として保護されてよい。
【００７１】
差分ディスク７６２は、代替的に異なる差分ディスクから作成することができる。例えば、最後のクラッシュコンシスタントコピーＤ３  ７６０がリカバリーにのために使用される場合、親ディスクとしてクラッシュコンシスタントコピーＤ３  ７６０を用いて差分ディスク７６２が作成され得る。一つの実施例において、このことは、差分ディスク７６２において保管され、親としてＤ３  ７６０を指し示す、または、そうでなければ、特定するポインター又は他のリンクを有することによって影響される。実施例が図９に示されており、ポインター９５６が親ディスク９５２を指し示している。ポインター９５６は、プライマリーサーバー９００における状態から変更される必要がある。リカバリーサーバー９５０での正しいイメージを指し示すようにである。図７における復元ポイントが、Ｄ２  ７５８、Ｄ３  ７６０、または、他の復元ポイントであるかの判断は、構成に基づいて自動的に判断されるか、ユーザーによって手動で判断されてよい。
【００７２】
リカバリーサイトにおける差分ディスク７６２に関するコンテンツの作成及び表現の実施例が、これから説明される。この代表的な実施例において、リカバリーサイト７５０における差分ディスク７６２は、その作成の際には空である。差分ディスクは、この実施例においてはＤ２  ７５８である、親ディスクを指し示すように構成される。仮想（または物理的）マシンがオペレーションを開始する場合、書き込まれる必要のある情報が新たな差分ディスク７６２に対して書き込まれる。例えば、新たな差分ディスク７６２は、リカバリーサイト７５０においてレプリカされた仮想マシンに接続される。レプリカされた仮想マシンは、プライマリーサイト７００におけるプライマリー仮想マシンとしての同一又は類似の特性を有している。このレプリカされた仮想マシンがブートされる場合、その仮想ディスクは書き込み及び読み出しの両方ができるものと考えられる。新たな差分ディスク７６２には書き込むことができ、一方、情報がどこに存在しているかに依存して、新たな差分ディスク７６２、その親、または、より早い子孫から読み出すことができる。
【００７３】
関連するリカバリーサーバーが稼働中である場合に、差分ディスク７６２が読み出し／書き込みディスクとして働いているのに加えて、差分ディスクは、また、リカバリーサイト７５０においてレプリカされたストレージが使用される時間より以前に保管されたデータを使用することができる。例えば、差分ディスク７６２は、プライマリーサイト７５０から受け取って差分ディスクに対して書き込まれたデータを保管することができる。それは、プライマリーサイト７５０においてスナップショットが取得された時間と差分ディスクが読み出し専用であるとマーク付けされた時間との間に生じたことである。
【００７４】
例えば、プライマリーサイト７００においてレプリケーション管理モジュールが、仮想マシンの稼働しているワークロードに対して、仮想ストレージのアプリケーションコンシスタントコピー又はスナップショットのために自身を準備しているソフトウェアを含む他のスナップショットを作成するようにリクエストしているものと仮定する。それに応じて、アプリケーションソフトウェアは、スナップショットのために自身を一貫したものにするよう試みる。しかし、仮想ディスクにおいて取得されるスナップショットとアプリケーションにおいて生じている情報「フラッシュ（”ｆｌｕｓｈ”）」を合わせるのは難しい。アプリケーションソフトウェアが、ストレージへのデータフラッシュを完了したものと思われるときに、仮想ディスクのスナップショットが取得される。それ以降、スナップショットされた差分ディスクは読み出し専用とマーク付けされ、新たな差分ディスクが作成される。仮想ディスクのスナップショットが取得された時間と対応する差分ディスクが読み出し専用に書き込まれた時間との間に、一つまたはそれ以上のはぐれたデータ書き込みは、スナップショットの対象であった差分ディスク上に、自身の場所を見出すことができる。従って、差分ディスクが、リカバリーサイト７５０に転送された差分ディスクのスナップショット７５８に対応していないこともあり得る。この場合、リカバリーサイト７５０に対してフェイルオーバー（ｆａｉｌ  ｏｖｅｒ）していなくても、差分ディスク７５８が活きた仮想ディスクとして搭載され得る。こうしたはぐれた書き込みを配置して、差分ディスクＤ２  ７５８の外側にこうした書き込みを戻して、リカバリーサイト７５０において作成された差分ディスク７６２上に配置するためである。こうしたやり方では、ファイルオーバーが究極的に必要である場合、このタスクは既に取り扱われたものである。はぐれた書き込みをバックアウト（ｂａｃｋ  ｏｕｔ）するこの機能は、最終的にはリカバリーされるであろう仮想マシンを使用して完了され得る。または、代替的には、ディスクイメージを搭載し、はぐれた書き込みを抽出するように操作するサービスに一部として行うことができる。
【００７５】
図７Ａから図７Ｆの実施例は、プライマリー及びリカバリーそれぞれのサイトにおいてなされる典型的なアクションを示している。図１０は、仮想ストレージ（または、他のストレージ）をレプリケーションさせるプライマリーサイトにおける少なくとも一つのプライマリーサーバーの視点からの代表的な特徴を示しているフローチャートである。この実施例は、仮想ストレージがレプリカされ、仮想ストレージの複数のタイプのコピーが利用可能であることを仮定している。
【００７６】
この実施例においては、ブロック１０００に示されるように、リカバリーサイトに対してベース仮想ディスクが提供される。ブロック１００２に示すように、仮想ディスクに対する変更を記録するために、差分ディスク又は他のストレージ構造体がプライマリーサイトにおいて作成される。この実施例において、スナップショット／コピーの異なるタイプの数量「ｎ」が提供され、コピータイプＡ、コピータイプＢからコピータイプｎを含んでいる。ブロック１００４で判断されるように、レプリケーション管理モジュール又は他のプライマリーサイト制御モジュールが仮想ストレージのコピーをリクエストする場合、どのタイプのコピーが望まれているかを特定する。コピータイプの特定は、ユーザーインターフェイスを介してユーザーによってなされてよい。または、図８に関して説明したようなポリシーに従ってリクエストされるものとしてハードウェア又はソフトウェアの中に構成されてよいし、または、それ以外でもよい。
【００７７】
この実施例において、ブロック１００６において判断されるようにレプリケーション管理がタイプＡのコピーをリクエストした場合、ブロック１０１２において示されるように、仮想ストレージコピーを生じさせるために自身を準備しているソフトウェアなしで、差分ディスクのスナップショット又は他のコピーが獲得される。これは、例えば、ＶＳＳスナップショット又は他のアプリケーションコンシスタントスナップショットであり得る。ブロック１００８において判断されるようにタイプＢのコピーがリクエストされる場合、ブロック１０１４において示されるように、仮想ストレージコピーを生じさせるための準備をしている少なくともいくつかのソフトウェアのところで、差分ディスクのスナップショット又は他のコピーが獲得される。他のタイプのコピーを定義してもよく、ブロック１０１０においてコピータイプが判断され得る。そして、ブロック１０１６に示されるように、そのコピータイプに対するポリシーに従ってスナップショット又は他のコピーが獲得される。
【００７８】
適切なスナップショット又は他のコピーが獲得された場合、ブロック１０１８に示されるように、リカバリーサイトに対して転送される。ブロック１０２０は、プライマリーサイトにおいてコピーされた差分ディスクが書き込み保護にされることを示しており、ブロック１０２２は、仮想ディスクに対する変更をキャプチャーするために新たな差分ディスクが作成されることを示している。少なくとも、ストレージ容量の要求の削減、および、ディスクチェインを通じたデータ読み出しの遅延の削減の理由のために、ブロック１０２４に示されるように、中間ディスクが、それらの親ディスクイメージにマージされる。
【００７９】
図１０、および、本発明開示における他のフローチャートにおいて説明された所定の順番は、順番又はシーケンスを制限するものとして理解されるべきでないことが認識されるべきである。示されたオペレーションの所定の順番は、関連があるものと説明されていない限りにおいて、多くの場合で関連がないものである。例えば、ブロック１０２０においてコピーされた差分ディスクが書き込み保護さる以前に、ブロック１０１８においてスナップショットが転送されても、また、されなくてもよい。
【００８０】
図１１は、仮想マシンをレプリケーションしているリカバリーサイトにおける少なくとも一つのリカバリーサーバーの視点からの代表的な特徴を示しているフローチャートである。この実施例は、仮想ストレージがレプリカされ、仮想ディスクの複数のタイプのコピーがプライマリーサイトによって提供されていることを仮定している。ブロック１１００に示されるように、プライマリーサイトのベース仮想ディスクのレプリケーションとして受け取ったベース仮想ディスクが、リカバリーサイトにおける仮想ディスクチェインのベースとして提供される。ブロック１１０２に示されるように、プライマリーからスナップショット又は他のコピーを受け取った場合、ブロック１１０４において、受け取ったコピーのタイプが判断される。結果として生じるリカバリーサイトにおける差分ディスクのコピーは、アプリケーションコンシスタント、クラッシュコンシスタント、等といったコピータイプであるとして特定され得る。ブロック１１０６に示されるように、受け取ったコピーにおけるポインター又は他のリンクが変更され得る。リカバリーサイトにおいてポインターが親を指し示すようにさせるためである。ブロック１１１０に示されるように、望むのであれば、中間差分ディスクは、それぞれの親ディスクの中にマージされてよい。加えて、ブロック１１０８は、図７Ｆに関して説明したように、はぐれた書き込みをバックアウトするために、所望のコピーを指し示すように差分ディスクが作成されてよい。
【００８１】
ブロック１１１２において判断されるようにリカバリーサーバーに対するフェイルオーバーが発生した場合は、ブロック１１１４に示されるように、選択された復元ポイントとしての保管されたコピーの選択が促進される。例えば、保管されたコピーの選択を促進することは、初期化され稼働されるときにレプリカされた仮想マシンがどの保管された（従って、マージされていない）コピーを利用するかをアドミニストレーター又は他のユーザーが選択できるようにするためのユーザーインターフェイスを提供することを含んでいる。他の実施例は、クライテリアに基づいて所定のコピーを自動的に選択することを含んでよい。例えば、クライテリアにより、自動的に仮想マシンが最初にアプリケーションコンシスタントコピーからの再生を試みるようにさせ、続いて、十分には成功しなかった再生の異なるコピーを試すようにさせる。ブロック１１１６に示される一つの実施例において、差分ディスクが作成され、または、既存の差分ディスク（例えば、ブロック１１１８において作成された差分ディスク）が利用され、選択されたスナップショット又はコピーを指し示す。とりわけ、この差分ディスクは、レプリカされた仮想マシンが稼働しているときに、レプリカされた仮想ディスクに対して読み出し／書き込み能力を提供する。
【００８２】
一つの実施例において、レプリカされた仮想マシン上でテストが実行されてよい。この場合、レプリカされた仮想マシンは、以前のように、仮想ディスクに対する変更を継続して受け取り（例えば、プライマリーサイトの差分ディスクのコピーを受け取ること）、一方で、差分ディスクが作成された時点からテスト仮想マシンが起動される。このように、レプリカされた仮想マシンの仮想ハードディスクのコピーを作成することなく、仮想マシンのレプリカされたコピー上でテストを実行している一方で、レプリケーションを継続することができる。このことは、同一の親の仮想ハードディスクを指し示す差分ディスクの２つのセットを使用して、レプリカされた仮想マシンのテストコピーを生成するやり方を提供する。テスト仮想マシンから実行された書き込みは、差分ディスクの一つのセットにおいてキャプチャーされ、これらのディスクはテストが完了した際に廃棄されてよい。プライマリーサーバーから到着する差分ディスクの周期的な同期コピーは、差分ディスクの他のセットの中に収集されて、テストが完了した際に親の中にマージされてよい。このオプションは、図１１に示されている。ブロック１１１２において判断された際にテストが実行される場合、差分ディスクが作成されて１１１４、テストされるべき復元ポイントを指し示す。そして、レプリカされた仮想マシンが、テストを実行するためにブートされる。
【００８３】
図１２は、ここにおいて説明された原理が実施される代表的なコンピューターシステム１２００を示している。図１２に関して記載されたコンピューター環境は、例示目的のために説明されたものである。ストレージ又は仮想ストレージのレプリケーションに対する構造的及び動作的な開示は、あらゆるコンピューター環境において適用可能だからである。いくつかの実施例において、図１２のコンピューター構成は、複数のデバイスにわたって配置されている。さらに、図１２の記載は、プライマリー又はリカバリーいずれのサイトにおけるサーバー又はコンピューターデバイスを表している。
【００８４】
代表的なコンピューターシステム１２００は、システムバス１２０４を介して数多くのモジュールに接続されたプログラム１２０２を含んでいる。示されたシステムバス１２０４は、コンピューター環境の種々のコンポーネント及びモジュールに対して直接的又は間接的に接続され得るあらゆるタイプのバス構成を表している。種々のコンポーネントのうちストレージデバイスは、あらゆるものがレプリケーションに対する主題を保管することができる。
【００８５】
読み出し専用メモリー（ＲＯＭ）１２０６は、プロセッサ１２０２によって使用されるファームウェアを保管するために備えられている。ＲＯＭ１２０６は、あらゆるタイプの読み出し専用メモリーであってよく、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＲＰＲＯＭ）、等といったものである。ホスト又はシステムバス１２０４は、メモリコントローラー１２１４に接続され、順番に、メモリーバス１２１６を介してメモリー１２０８に接続される。典型的なメモリー１２０８は、例えば、ハイパーバイザー１２１０、または、他の仮想化ソフトウェア、オペレーティングシステム１２１８、および、モジュールの全て又は一部分を保管する。モジュールは、少なくともここにおいて説明された機能を実行するレプリケーション管理モジュール（ＲＭＭ）１２１２といったものである。ＲＭＭ１２１２は、例えば、ハイパーバイザー１２１０及び/又はオペレーティングシステム１２１８の一部として実施されてよい。
【００８６】
メモリーは、また、アプリケーションプログラム１２２０と他のプログラム１２２２、および、データ１２２４を保管する。加えて、仮想ストレージ１２２６の全て又は一部は、メモリー１２０８の中に保管されてよい。しかしながら、仮想ストレージディスクの可能性のあるサイズのために、一つの実施例はメモリーに対してストレージデバイスの中に仮想ストレージディスクを保管することを含んでいる。代表的なストレージデバイス１２３４、１２４０、１２４４、１２４８のうち一つまたはそれ以上に関する仮想ストレージ１２２６Ｂによって示されるようにである。メモリー１２０８における仮想ストレージ１２２６Ａも、また、仮想ストレージのあらゆる部分を表すことができる。一時的にキャッシュされ、または、そうでなければ、処理され、送信され、または、ストレージデバイス１２３４、１２４０、１２４４、１２４８の中に保管されることに対する中間のステップとして、メモリーの中に保管される。
【００８７】
図１２は、データが保管され、及び/又は、仮想ストレージが保管される種々の代表的なストレージデバイスを示している。例えば、システムバスは、内部ストレージインターフェイス１２３０に接続され、ハードディスクドライブといったドライブ１２３２に接続され得る。ストレージ媒体１２３４は、ドライブに関連付けられ、または、そうでなければ、ドライブを用いて動作可能である。そうしたストレージの実施例は、ハードディスク、他の磁気又は光媒体、フラッシュメモリー、および、他の半導体デバイス、等を含んでいる。内部ストレージインターフェイス１２３０は、あらゆるタイプの揮発性又は不揮発性ストレージを使用することができる。仮想ハードディスク（例えば、ＶＨＤファイル、ＡＶＨＤファイル、等）を含むデータが、そうしたストレージ媒体１２３４上に保管される。
【００８８】
同様に、リムーバブル媒体のためのインターフェイス１２６も、また、バス１２０４に接続される。ドライブ１２３８は、受け容れのためにリムーバブルストレージインターフェイス１２３６に接続され、リムーバブルストレージディスク１２４０上で動作する。例えば、フロッピー（登録商標）ディスク、光ディスク、メモリーカード、フラッシュメモリー、外部ハードディスク、等といったものである。仮想ストレージファイル及び他のデータは、そうしたリムーバブルストレージ１２４０上に保管される。
【００８９】
いくつかの場合、外部ストレージ１２４４にアクセスするためにホストアダプター１２４２が備えられてよい。例えば、ホストアダプター１２４２は、以下のインターフェイスを介して外部ストレージデバイスと接続し得る。スモールコンピューターシステムインターフェイス（ＳＣＳＩ）、ファイバーチャネル、シリアルアドバンストテクノロジーアッタチメント（ＳＡＴＡ）又はｅＳＡＴＡ、及び/又は、外部ストレージ１２４４に接続することができる他の類似のインターフェイスである。ネットワークインターフェイス１２４６を経由して、さらに他のリモートストレージがコンピューターシステム１２２０にアクセス可能である。例えば、ネットワークインターフェイス１２４６に関する有線又は無線のトランシーバーによって、一つまたはそれ以上のネットワーク１２５０を通じてストレージデバイス１２４８とコミュニケーションすることができる。ストレージデバイス１２４８は、個別のストレージデバイス、または、別のコンピューターシステムに関するストレージ、サーバー、等を表している。リモートストレージデバイス及びシステムとのコミュニケーションは、有線ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ、及び/又は、インターネットといったグローバルエリアネットワーク（ＧＡＮ）を含むより大きなネットワークを介して達成される。仮想ストレージファイル及び他のデータは、そうした外部ストレージデバイス１２４４、１２４８上に保管される。
【００９０】
ここにおいて説明されたように、プライマリーサーバーとリカバリーサーバーは、スナップショット又は他のコピーといった、情報をコミュニケーションする。サーバー間のコミュニケーションは、以下のものによって影響される。直接書き込み、ピアツーピア（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）ネットワーク、ローカルインフラストラクチャー基盤ネットワーク（例えば、有線及び/又は無線ローカルエリアネットワーク）、メトロポリタンエリアネットワークといったオフサイトネットワーク及び他のワイドエリアネットワーク、グローバルエリアネットワーク、等である。送信器１２５２及び受信器１２５４が図１２に示されており、あらゆるこうした又は他のコミュニケーション方法においてデータを送信し、及び/又は、受信するコンピューターデバイスの構成的な能力を表している。送信器１２５２及び受信器１２５４は、スタンドアロンなコンポーネントであり、トランシーバーとして統合、ネットワークインスタンス１２４６といった他のコミュニケーションデバイスの既存の部分の中に統合、等されてよい。コンピューターシステム１２００が、プライマリーサイトにおけるサーバー又は他のコンピューターデバイスを表している場合、仮想ディスク又はレプリカされるべき他の保管されたデータの全て又は一部が送信器１２５２を介して送信される。送信器は、スタンドアロンなデバイス、受信器１２５４に統合されたもの、ネットワークインターフェイス１２４６に必要なもの、等のいずれかである。同様に、コンピューターシステム１２００が、リカバリーサイトにおけるサーバー又は他のコンピューターデバイスを表している場合、仮想ディスク又はレプリカされるべき他の保管されたデータの全て又は一部が受信器１２５４を介して受信される。受信器は、スタンドアロンなデバイス、送信器１２５２に統合されたもの、ネットワークインターフェイス１２４６に必要なもの、等のいずれかである。コンピューターシステム１２００は、プライマリー又はリカバリーサイトいずれかにおけるサーバーを表すことができるので、ブロック１２５６は、他のプライマリー又はリカバリーサーバーを表すコンピューターシステム１２００とコミュニケーションするプライマリー又はリカバリーサーバーを表している。
【００９１】
上記の実施例において示したように、ここにおいて説明された実施例は、ディザスターリカバリーと他のレプリケーション機能を促進する。種々の実施例において、コンピューターデバイス上で実行され得る方法が説明されている。プロセッサ（物理的プロセッサ及び/又は論理的プロセッサ、コントローラー、等を含む）を介して実行可能なソフトウェアモジュールを提供するといったことによるものである。本方法は、また、プロセッサ及び/又は回路によってアクセス及び読み出すことができるコンピューターで読取り可能な媒体上に保管されてよい。プロセッサを介した処理のために情報を準備するものである。ここにおいて説明するようにインストラクションをコンピューターで読取り可能な媒体上に保管させることは、インストラクションを伝搬又は送信させることと区別することができる。インストラクションを保管することに対して、伝搬はインストラクションを転送するからであり、保管は、インストラクションを保管しているコンピューターで読取り可能な媒体を用いて生じるといったものである。従って、他に断らない限り、コンピューターで読取り可能な媒体／インストラクションを保管させている媒体、この又は類似の形式におけるもの、に対する言及は、データが保管又は保持される有形の媒体を示している。
【００９２】
技術的事項が構造的特徴及び／又は方法論的アクトに特有の言葉で説明されてきたが、添付の特許請求の範囲において定められる技術的事項は、上述された特定の特徴またはアクトに必ずしも限定される必要はないことが理解されるべきである。むしろ、上述の特定の特徴およびアクトは、請求項に係る発明の実施例として開示されたものである。
【図１】
0006050342.tif 000002
【図２Ａ】
0006050342.tif 000003
【図２Ｂ】
0006050342.tif 000004
【図３】
0006050342.tif 000005
【図４Ａ】
0006050342.tif 000006
【図４Ｂ】
0006050342.tif 000007
【図５】
0006050342.tif 000008
【図６】
0006050342.tif 000009
【図７Ａ】
0006050342.tif 000010
【図７Ｂ】
0006050342.tif 000011
【図７Ｃ】
0006050342.tif 000012
【図７Ｄ】
0006050342.tif 000013
【図７Ｅ】
0006050342.tif 000014
【図７Ｆ】
0006050342.tif 000015
【図８】
0006050342.tif 000016
【図９】
0006050342.tif 000017
【図１０】
0006050342.tif 000018
【図１１】
0006050342.tif 000019
【図１２】
0006050342.tif 000020