(57)【要約】  異種ストレージシステム間で複製を実施するためのシステム、方法、及びプロセスが本明細書に開示される。バックアップストリームに関連付けられた情報は、ソースサーバによってバックアップ動作中に記録され、命令を含む。この命令は、複製動作中に、既存データを含めるためのインクルード命令と、新たなデータを書き込むための書き込み命令とを含む。複製動作を実施するための要求を受信する。この要求に応答して、情報が、複製動作の実施の一部として、ターゲットサーバに送信される。
2019513269.tif 000002
【特許請求の範囲】
【請求項１】
バックアップ動作の実施中に情報を記録することであって、
前記情報が、バックアップストリームに関連付けられ、
前記情報が、ソースサーバによって記録され、
前記情報が、複数の命令を含み、
前記複数の命令が、複製動作の実施中に、既存データを含めるためのインクルード命令及び新たなデータを書き込むための書き込み命令を含む、記録することと、
前記複製動作を実施するための要求を受信することと、
前記要求に応答して、前記情報を、前記複製動作の実施の一部として、ターゲットサーバに送信することと、を含む、方法。
【請求項２】
前記既存データが、複製されたバックアップイメージに含まれ、
前記複製されたバックアップイメージが、前記ターゲットサーバによって記憶され、
前記新たなデータ及び前記情報が、ソースバックアップイメージに含まれ、
前記ソースバックアップイメージが、前記バックアップ動作の一部として前記ソースサーバによって記憶される、請求項１に記載の方法。
【請求項３】
前記複製動作を実施するための前記要求を受信すると、
前記複製されたバックアップイメージにアクセスすることと、
前記複製されたバックアップイメージと前記情報とを比較することと、
前記新たなデータを含む複製ストリームを生成することと、
前記複製ストリームを前記ターゲットサーバに送信することと、を更に含む、請求項２に記載の方法。
【請求項４】
前記ソースサーバが、ソースストレージデバイスを実行し、
前記ソースストレージデバイスが、前記バックアップストリーム及び前記情報を記憶し、
前記ターゲットサーバが、ターゲットストレージデバイスを実行し、
前記ターゲットストレージデバイスが、前記複製されたバックアップイメージを記憶し、
前記ソースストレージデバイス及び前記ターゲットストレージデバイスが異種である、請求項２に記載の方法。
【請求項５】
前記情報が、
前記複製されたバックアップイメージから含められる前記既存データに関連付けられた第１のオフセット範囲と、
前記ソースバックアップイメージから前記複製されたバックアップイメージに書き込まれる前記新たなデータに関連付けられた第２のオフセット範囲とを更に含む、請求項３に記載の方法。
【請求項６】
前記複製ストリーム及び前記バックアップストリームが、共通フォーマットを共有する、請求項３に記載の方法。
【請求項７】
前記共通フォーマットが、オープンストレージ技術（ＯＳＴ）のアプリケーションプログラミングインターフェース（ＡＰＩ）を実行するプラグインによって容易にされる、請求項６に記載の方法。
【請求項８】
１つ以上の後続のバックアップ動作の実施中に、前記情報を更新することを更に含む、請求項１に記載の方法。
【請求項９】
プログラム命令を含む非一時的コンピュータ可読ストレージ媒体であって、前記プログラム命令が、
バックアップ動作の実施中に、情報を記録することであって、
前記情報が、バックアップストリームに関連付けられ、
前記情報が、ソースサーバによって記録され、
前記情報が、複数の命令を含み、
前記複数の命令が、複製動作の実施中に、既存データを含めるためのインクルード命令及び新たなデータを書き込むための書き込み命令を含む、記憶することと、
前記複製動作を実施するための要求を受信することと、
前記要求に応答して、前記情報を、前記複製動作の実施の一部としてターゲットサーバに送信することと、を実行することが可能である、非一時的コンピュータ可読ストレージ媒体。
【請求項１０】
前記既存データが、複製されたバックアップイメージに含まれ、
前記複製されたバックアップイメージが、前記ターゲットサーバによって記憶され、
前記新たなデータ及び前記情報が、ソースバックアップイメージに含まれ、
前記ソースバックアップイメージが、前記バックアップ動作の一部として前記ソースサーバによって記憶される、請求項９に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１１】
前記複製動作を実施するための前記要求を受信すると、
前記複製されたバックアップイメージにアクセスすることと、
前記複製されたバックアップイメージと前記情報とを比較することと、
前記新たなデータを含む複製ストリームを生成することと、
前記複製ストリームを前記ターゲットサーバに送信することと、を更に含む、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１２】
前記ソースサーバが、ソースストレージデバイスを実行し、
前記ソースストレージデバイスが、前記バックアップストリーム及び前記情報を記憶し、
前記ターゲットサーバが、ターゲットストレージデバイスを実行し、
前記ターゲットストレージデバイスが、前記複製されたバックアップイメージを記憶し、
前記ソースストレージデバイス及び前記ターゲットストレージデバイスが異種である、請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１３】
前記情報は、
前記複製されたバックアップイメージから含められる前記既存データに関連付けられた第１のオフセット範囲と、
前記ソースバックアップイメージから前記複製されたバックアップイメージに書き込まれる前記新たなデータに関連付けられた第２のオフセット範囲とを更に含む、請求項１１に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１４】
前記複製ストリーム及び前記バックアップストリームが、共通フォーマットを共有し、
前記共通フォーマットが、オープンストレージ技術（ＯＳＴ）のアプリケーションプログラミングインターフェース（ＡＰＩ）を実行するプラグインによって容易にされる、請求項１１に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１５】
１つ以上のプロセッサと、
前記１つ以上のプロセッサに接続されているメモリと、を備え、前記メモリが、
バックアップ動作の実施中に、情報を記録することであって、
前記情報が、バックアップストリームに関連付けられ、
前記情報が、ソースサーバによって記録され、
前記情報が、複数の命令を含み、
前記複数の命令が、複製動作の実施中に、既存データを含めるためのインクルード命令及び新たなデータを書き込むための書き込み命令を含む、記憶することと、
前記複製動作を実施するための要求を受信することと、
前記要求に応答して、前記情報を、前記複製動作の実施の一部としてターゲットサーバに送信することと、を行うための、前記１つ以上のプロセッサによって実行可能なプログラム命令を記憶している、システム。
【請求項１６】
前記既存データが、複製されたバックアップイメージに含まれ、
前記複製されたバックアップイメージが、前記ターゲットサーバによって記憶され、
前記新たなデータ及び前記情報が、ソースバックアップイメージに含まれ、
前記ソースバックアップイメージが、前記バックアップ動作の一部として前記ソースサーバによって記憶される、請求項１５に記載のシステム。
【請求項１７】
前記複製動作を実施するための前記要求を受信すると、
前記複製されたバックアップイメージにアクセスすることと、
前記複製されたバックアップイメージと前記情報とを比較することと、
前記新たなデータを含む複製ストリームを生成することと、
前記複製ストリームを前記ターゲットサーバに送信することと、を更に含む、請求項１６に記載のシステム。
【請求項１８】
前記ソースサーバが、ソースストレージデバイスを実行し、
前記ソースストレージデバイスが、前記バックアップストリーム及び前記情報を記憶し、
前記ターゲットサーバが、ターゲットストレージデバイスを実行し、
前記ターゲットストレージデバイスが、前記複製されたバックアップイメージを記憶し、
前記ソースストレージデバイス及び前記ターゲットストレージデバイスが異種である、請求項１６に記載のシステム。
【請求項１９】
前記情報が、
前記複製されたバックアップイメージから含められる前記既存データに関連付けられた第１のオフセット範囲と、
前記ソースバックアップイメージから前記複製されたバックアップイメージに書き込まれる前記新たなデータに関連付けられた第２のオフセット範囲とを更に含む、請求項１７に記載のシステム。
【請求項２０】
前記複製ストリーム及び前記バックアップストリームが、共通フォーマットを共有し、
前記共通フォーマットが、オープンストレージ技術（ＯＳＴ）のアプリケーションプログラミングインターフェース（ＡＰＩ）を実行するプラグインによって容易にされる、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ複製に関し、より詳細には、異種ストレージシステム間のデータ複製に関する。
【背景技術】
【０００２】
近年、データのバックアップと回復を目的とした「インテリジェントな」ストレージ製品がストレージ業界市場に導入されている。ストレージベンダーは、データ重複排除及びデータ複製（例えば、コピーの作成、テープへの直接書き込みなど）のようなタスクを実施するための、様々なそのようなストレージ製品を提供する。これらの「インテリジェントな」ストレージ製品を利用するには、前述のデータストレージ関連の動作などのアクティビティを、バックアップ及び回復ソフトウェアアプリケーションと連動させる必要がある。
【０００３】
例えば、バックアップ及び回復ソフトウェアアプリケーションと複数のそのようなストレージ製品（例えば、バックアップイメージの複写動作を実施するための）との間の通信を容易にするために、プロトコルに依存しないアプリケーションプログラミングインタフェース（Application Programming Interface、ＡＰＩ）が提供され得る。そのようなプロトコルに依存しないＡＰＩは、異なるストレージベンダーが、それらのストレージデバイス（例えば、ファイバチャネル、ＴＣＰ／ＩＰ、ＳＣＳＩなどの通信プロトコル）に適しており、かつ／又はそれらと互換性のある複数の異なるプロトコルを利用することを可能にする。加えて、データバックアップのビジネスロジックをストレージデバイスの実行から分離することにより、このようなプロトコルに依存しないＡＰＩは、複数のタイプの接続性及びファイルシステムフォーマットをサポートする。
【０００４】
残念ながら、異なるストレージベンダーが、異種（例えば、同じタイプではない）のストレージ製品（例えば、ストレージデバイス、ストレージサーバ、ストレージシステムなど）を提供するため、バックアップイメージの複写／複製などのタスクの実施は、数ある中でも、部分的には、入力／出力（Input/Output、Ｉ／Ｏ）、ネットワークトラフィック、及びバックエンドのストレージ集中型である。
【発明の概要】
【０００５】
異種ストレージシステム間で複製を実施するための方法、システム、及びプロセスが本明細書に開示される。このような方法の１つは、バックアップ動作中にバックアップストリームに関連付けられた情報を記録することを含む。この実施例では、情報はソースサーバによって記録され、命令を含む。この命令は、既存データを含めるためのインクルード命令と、複製動作中に新たなデータを書き込むための書き込み命令とを含む。
【０００６】
１つ以上の実施形態では、本方法は、複製動作を実施するための要求を受信する。この要求に応答して、本方法は、複製動作の実施の一部としてターゲットサーバに情報を送信する。既存データは複製されたバックアップイメージ内に含まれ、かつ複製されたバックアップイメージはターゲットサーバによって記憶される。新たなデータ及び情報は、ソースバックアップイメージ内に含まれ、かつソースバックアップイメージは、バックアップ動作の一部としてソースサーバによって記憶される。
【０００７】
いくつかの実施形態では、複製動作を実施する要求を受信すると、本方法は、複製されたバックアップイメージにアクセスし、複製されたバックアップイメージと情報とを比較し、新たなデータを含む複製ストリームを生成し、複製ストリームをターゲットサーバへ送信する。
【０００８】
他の実施形態では、ソースサーバは、ソースストレージデバイスを実行し、ソースストレージデバイスは、バックアップストリーム及び情報を記憶し、ターゲットサーバは、ターゲットストレージデバイスを実行し、ターゲットストレージデバイスは、複製されたバックアップイメージを記憶する。この実施例では、ソースストレージデバイスとターゲットストレージデバイスとは異種である。
【０００９】
特定の実施形態では、情報は、複製されたバックアップイメージから含められる既存データに関連付けられた第１のオフセット範囲と、ソースバックアップイメージから複製されたバックアップイメージに書き込まれる新たなデータに関連付けられた第２のオフセット範囲とを含む。この実施例では、複製ストリーム及びバックアップストリームは、オープンストレージ技術（Open Storage Technology、ＯＳＴ）のアプリケーションプログラミングインターフェース（ＡＰＩ）を実行するプラグインによって容易になる共通フォーマットを共有している。別の実施例では、本方法は、１つ以上の後続のバックアップ動作の実施中に情報を更新する。
【００１０】
前述の内容は概要であり、したがって必然的に、簡略化、一般化、及び詳細の省略を含み、その結果として、当業者であれば、その概要が例示的であるにすぎず、なんら限定的ではないことがわかるであろう。特許請求の範囲によってのみ定義されるような本開示の他の態様、機能、及び利点は、以下に記載される非限定的で詳細な説明において明らかになるであろう。
【図面の簡単な説明】
【００１１】
本開示は、添付図面を参照することによってよりよく理解され得、かつそれの多数の対象及び機能が当業者に明らかにされる。
【００１２】
【図１】本開示の一実施形態による、クライアント側の重複排除を実施するコンピューティングシステム１００のブロック図である。
【００１３】
【図２】本開示の一実施形態による、複数の異種ストレージサーバを実行するコンピューティングシステム２００のブロック図である。
【００１４】
【図３Ａ】本開示の一実施形態による、異種ストレージサーバ間のデータ複製を実施するコンピューティングシステム３００Ａのブロック図である。
【００１５】
【図３Ｂ】本開示の一実施形態による、記録された命令のブロック図である。
【００１６】
【図４Ａ】本開示の一実施形態による、複製されたバックアップイメージを合成するコンピューティングシステム４００Ａのブロック図である。
【００１７】
【図４Ｂ】本開示の一実施形態による、ソースバックアップストリームに対する命令メタデータのブロック図である。
【００１８】
【図５Ａ】本開示の一実施形態による、バックアップ命令を記録するためのプロセスを例示するフローチャートである。
【００１９】
【図５Ｂ】本開示の一実施形態による、命令でバックアップストリームを生成するためのプロセスを例示するフローチャートである。
【００２０】
【図５Ｃ】本開示の一実施形態による、バックアップストリームを解析するためのプロセスを例示するフローチャートである。
【００２１】
【図６Ａ】本開示の一実施形態による、記録された命令で複製動作を実施するためのプロセスを例示するフローチャートである。
【００２２】
【図６Ｂ】本開示の一実施形態による、ターゲットサーバから複製確認を受信するためのプロセスを例示するフローチャートである。
【００２３】
【図６Ｃ】本開示の一実施形態による、インクルード呼び出し及び書き込み呼び出しを記録するためのプロセスを例示するフローチャートである。
【００２４】
【図６Ｄ】本開示の一実施形態による、バックアップイメージの記録された命令を比較するためのプロセスを例示するフローチャートである。
【００２５】
【図７】本開示の一実施形態による、複製されたバックアップイメージを合成するためのプロセスを例示するフローチャートである。
【００２６】
【図８】本発明の一実施形態による、異種ストレージサーバ間のデータ複製を実施するコンピューティングシステム８００のブロック図である。
【００２７】
【図９】本発明の一実施形態による、ネットワークシステムのブロック図である。
【００２８】
本開示は、様々な修正形態及び代替形式に影響を受けるが、本開示の特定の実施形態は、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、開示内容を開示された特定の形式に限定することを意図しないことを理解されたい。その代わりに、添付の請求項によって規定されるような本開示の趣旨及び範囲内にある全ての修正形態、等価物、及び代替形態を包含することが意図される。
【発明を実施するための形態】
【００２９】
序論
異種ストレージシステム、ストレージデバイス、ストレージサーバ、及び／又はオープンストレージ環境内のストレージ製品間で、データ複写／複製を実施するための方法、システム、及びプロセスが本明細書に開示される。Ｖｅｒｉｔａｓ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，ＬＬＣ（Mountain View, California）が提供するＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、増分バックアップのコストに対する完全バックアップを提供し、かつ増分バックアップ動作を行うのにかかるのとほぼ同じ時間で合成完全バックアップを作成することもできる。
【００３０】
例えば、ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、変更されたデータを、以前の完全バックアップ動作又は増分バックアップ動作中にすでにバックアップされたデータのリストと組み合わせて、かつバックアップイメージを読み取ることなく、及び／又は新たなバックアップイメージを作成することなく、このデータの組み合わせを重複排除することによって、合成完全バックアップ動作の速度を向上させることができる。したがって、すでにバックアップされているデータを独立して追跡及び重複排除することにより、ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒでは、増分バックアップ動作を行うのにかかるのとほぼ同じ時間で合成完全バックアップセットを作成するために、変更されたデータのみが必要となる。
【００３１】
ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、変更されたデータを検出するためのプラットフォーム及びファイルシステムに依存しないトラックログを実行し、変更された（又は修正された）データ（セグメント）をメディアサーバに送信する。ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、データの重複排除を行い、固有のデータ（例えば、変更された及び／又は修正されたデータセグメント）をストレージサーバに直接送信することもできる。ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、オープンストレージ環境でバックアップ及び回復を実施するために使用することができる。
【００３２】
オープンストレージ環境によって、通信を容易にして、ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒと複数の「インテリジェントな」ストレージ製品との間のバックアップと回復動作を管理するために独立したＡＰＩの供給が可能となる。先述のとおり、そのようなプロトコルに依存しないＡＰＩは、異なるストレージベンダーが、それらのストレージデバイス（例えば、ファイバチャネル、ＴＣＰ／ＩＰ、ＳＣＳＩなどの通信プロトコル）に適している及び／又は互換性のある複数の異なるプロトコルを利用することを可能にする。
【００３３】
共通点のないストレージシステムとＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒとの間でこのプロトコルベースの相互運用性を提供することの１つの結果は、そのような共通点のないストレージシステム（例えば、異なるストレージベンダーによる）での異種ストレージデバイス及び／又はストレージサーバの使用である。ストレージデバイス及び／又はストレージサーバは、（例えば、オペレーティングシステムの観点から、又はストレージ及び／又は通信プロトコルの使用などにおいて）同じタイプではないので、データ複写、データ重複排除、データ複製、データ回復などのデータストレージ関連タスク（及び動作）を実施することは、一部には、そしていくつかある欠点のうち特に、Ｉ／Ｏ、ネットワークトラフィック、及びバックエンドのストレージ集中型の欠点の１つである。
バックアップ動作を加速するための例示的なコンピューティングシステム
【００３４】
図１は、一実施形態による、合成完全バックアップを作成し、クライアント側の重複排除を実施するコンピューティングシステム１００のブロック図である。コンピューティングシステム１００は、ノード１０５、ソースサーバ１４０、マスタサーバ１６５、及びターゲットサーバ１８０を含む。ノード１０５、ソースサーバ１４０、マスタサーバ１６５、及びターゲットサーバ１８０が、ネットワーク１９５を介して互いに通信可能に接続されている。ノード１０５、ソースサーバ１４０、マスタサーバ１６５、及びターゲットサーバ１８０間の通信を容易にするために、ネットワーク１９５以外の任意のタイプのネットワーク及び／又は相互接続（例えば、インターネット）を使用することができる。
【００３５】
ノード１０５は、サーバ、パーソナルコンピューティングデバイス、ラップトップコンピュータ、携帯電話などを含む様々な異なるタイプのコンピューティングデバイスのいずれかであってもよい。ノード１０５は、プロセッサ１１０及びメモリ１１５を含む。メモリ１１５は、変更されたブロックトラッカー１２０を実装し、メタデータ１２５を記憶し、かつファイルシステム１３０を実装する。ノード１０５はまた、（例えば、ノード１０５上で実行するアプリケーションによって生成されたデータを記憶するための）ローカルストレージ１３５も含む。
【００３６】
ソースサーバ１４０はソースプロキシ１４５を含む。ソースプロキシ１４５は、加速器モジュール１５０及び重複排除モジュール１５５を実装する。ソースサーバ１４０はまた、ソースストレージデバイス１６０（１）〜（Ｎ）も含む。ターゲットサーバ１８０は、ターゲットプロキシ１８５及びターゲットストレージサーバ１９０（１）〜（Ｎ）を含む。いくつかの実施形態では、ソースプロキシ１４５及びターゲットプロキシ１８５は、仮想マシンプロキシホスト及び／又はバックアップホストとすることができる。加えて、ローカルストレージ１３５、ソースストレージデバイス１６０（１）〜（Ｎ）、及び／又はターゲットストレージデバイス１９０（１）〜（Ｎ）は、ハードディスク、コンパクトディスク、デジタル多用途ディスク、フラッシュメモリのような１つ以上のソリッドステートドライブ（solid state drive、ＳＳＤ）メモリなどを含む様々な異なるストレージデバイスのうちの１つ以上、又は１つ以上のそのような物理的ストレージデバイスに実装された容量のような１つ以上の論理的ストレージデバイスを含むことができる。
【００３７】
マスタサーバ１６５は、カタログ１７０及び状態ファイル１７５を含む。状態ファイル１７５は、各ユニットのデータに関する情報を記憶する（例えば、仮想ディスク上のデータの各範囲についてなど）。状態ファイル１７５は、マスタサーバ１６５上、又は図１、２、３Ａ及び／若しくは４Ａのコンピューティングシステム内の任意の位置に維持することができる。カタログ１７０は、ソースサーバ１４０及び／又はターゲットサーバ１８０上の各バックアップの内容（例えば、ターゲットストレージデバイス１９０（１）に記憶されたバックアップイメージの内容）を識別する。
【００３８】
ソースサーバ１４０に実装された加速器モジュール１５０は、バックアップ動作を加速するために使用することができる。例えば、加速器モジュール１５０は、（例えば、バックアップ動作に含まれる仮想ディスク及び／又はローカルストレージ１３５の物理的ディスクなどに対して）ノード１０５から変更されたデータユニットを要求及び取得することによって、統合完全バックアップを作成することができる。ノード１０５は、変更されたブロックトラッカー１２０を使用して、変更されたデータユニット（例えば、ディスクセクタ）を追跡する。識別されると、変更されたデータユニットがノード１０５からソースプロキシ１４５に送信される。
【００３９】
次に、各ユニットのデータに関する（例えば、物理的及び／又は仮想ディスク上のデータの各範囲ブロック又は他のユニットなどに関する）情報を記憶する状態ファイル１７５は、加速器モジュール１５０によってマスタサーバ１６５から取得及び／又は検索される。状態ファイル１７５は、基本のバックアップイメージのすでに一部であるデータユニットに関する情報を含む（例えば、以前の完全又は増分バックアップ動作の一部としてターゲットストレージデバイス１９０（１）に記憶された元の完全バックアップイメージに書き込まれたデータユニット）。
【００４０】
状態ファイル１７５内の情報に基づいて、加速器モジュール１５０は、変更されたデータユニットを、基本のバックアップイメージの一部であるデータユニットのリストと統合する。加速器モジュール１５０は、初めに、変更されたデータユニットのみを重複排除モジュール１５５に転送する。変更されたデータユニットが重複排除（例えば、同様に修正された複数のデータユニットの重複排除）されると、統合完全バックアップが生成される。
【００４１】
その後、状態ファイル１７５は、マスタサーバ１６５によって更新され、各物理的及び／又は仮想ディスクのバックアップが完了した後に、ソースサーバ１４０及び／又はターゲットサーバ１８０に転送される。いくつかの実施形態では、ノード１０５は、変更されたデータユニット及び変更されたデータユニットに関連付けられたメタデータ１２５を、統合完全バックアップを作成するために直接ソースサーバ１４０及び／又はターゲットサーバ１８０に送信することができる。この実施例では、ソースプロキシ１４５及び／又はターゲットプロキシ１８５は、（例えば、状態ファイル１７５に基づいて）基本のバックアップイメージからノード１０５によって送信されていないいずれかのデータユニットを単に取り出し、統合完全バックアップを作成する。
【００４２】
加速器モジュール１５０は、変更されたデータユニットに対するカタログデータを生成するだけでよいことに留意されたい。合成完全バックアップイメージがソースサーバ１４０及び／又はターゲットサーバ１８０によって生成されるとき、加速器モジュール１５０は、完全バックアップに対するカタログ情報（例えば、バックアップイメージ内のストレージユニットの位置を示す情報）をマスタサーバ１６５に転送する。したがって、図１のコンピューティングシステム１００を使用して実施される合成完全バックアップ動作は、通常、従来の完全バックアップと同じくらい多くのカタログ領域を消費するが、カタログ情報は漸増的に記憶することもできる。
【００４３】
しかしながら、加速器モジュール１５０は、合成完全バックアップを作成するために変更されたデータユニットのみを必要とするため、加速器モジュール１５０は、増分バックアップを作成するのにかかるのとほぼ同じ時間で合成完全バックアップを作成することができる。更に、場合によっては完全バックアップに対するデータ及びメタデータ（及びその間の増分バックアップのみ）を送信することによってのみ、このようなアプローチが無駄で冗長なストレージ動作を回避する。
【００４４】
図２は、一実施形態による、複数の異種ストレージサーバを実行するコンピューティングシステム２００のブロック図である。図１のコンピューティングシステム１００のように、図２に示すコンピューティングシステム２００には、マスタサーバ１６５、ソースサーバ１４０、及びターゲットサーバ１８０を含む。
【００４５】
図２に示すように、マスタサーバ１６５は、カタログ１７０、加速器ログ２１０、及びバックアップモジュール２１５を含む。カタログ１７０は、１つ以上のソースバックアップイメージ（例えば、ソースバックアップイメージ２０５（１）〜（Ｎ））内に含まれた情報を維持する。加速器ログ２１０は、ストレージユニットが同じ値（例えば同じデータ）を有するか否か、又はこれらのストレージユニットがバックアップイメージ内の関連するストレージ位置から頻繁にアクセスされたか否かを追跡する。したがって、加速器ログ２１０は、特定のストレージユニットが比較的短い時間内に再使用されたか否か、又は２つ以上のストレージユニットが比較的近いストレージ位置にあるか否かを追跡することができる。
【００４６】
（マスタサーバ１６５及び／又はソースサーバ１４０によって実行されている）バックアップモジュール２１５は、バックアップストリーム内に１つ以上のストレージユニットを含めるか否かを判断し、かつバックアップストリームをソースサーバ１４０に送信する時期及び送信するか否かを判断する。ストレージユニットが何らかの方法で変更又は修正された場合、バックアップモジュール２１５は、ストレージユニットをバックアップストリームに含み、バックアップストリームをソースサーバ１４０に送信する。次いで、ソースサーバ１４０は、ストレージユニットをバックアップイメージに記憶する。
【００４７】
ストレージユニット自体に加えて、バックアップモジュール２１５は、バックアップストリーム内のストレージユニットに対するヘッダ情報も含む。ヘッダは、ストレージユニットが新たなストレージユニットであるか否か、又は既存のストレージユニットであるか否か（例えば、ストレージユニットに新たなデータが含まれているか、何らかの形で変更及び／又は修正されているか否かなど）を指し示す情報を含むメタデータである。バックアップモジュール２１５は、バックアップストリーム内に新たなストレージユニットのみを含み、既存のストレージユニットに対するヘッダをそれぞれ含む。
【００４８】
ソースサーバ１４０はまた、コピーマネージャ２２０、ソース読み取りモジュール２２５、ソース書き込みモジュール２３０、及びソースプロキシ１４５（例えば、ソースバックアップホスト）も含む。コピーマネージャ２２０は、１つ以上のソースバックアップイメージ（例えば、ソースバックアップイメージ２０５（１）〜（Ｎ））に基づいて、データ複写動作を実施するために使用することができる。ソース読み取りモジュール２２５は、（例えば、ソースバックアップストリーム内の１つ以上のストレージユニットが、新たなデータ及び／又は変更されたデータを含むか否かを判断するために）ソースバックアップストリームの内容を読み取り解析する。ソース書き込みモジュール２３０は、バックアップストリームをソースストレージデバイス（例えば、重複排除を実施した後のソースストレージデバイス１６０（１））に書き込む。ソースプロキシ１４５は、本明細書で説明するデータストレージ関連動作の実施中に、ソースサーバ１４０とターゲットサーバ１８０との間の通信を容易にする。
【００４９】
同様に、ターゲットサーバ１８０は、ターゲットプロキシ１８５、ターゲット書き込みモジュール２３５、及びターゲットストレージデバイス１９０（１）〜（Ｎ）を含む。ターゲットプロキシ１８５は、ソースサーバ１４０から複製ストリーム（及び他の関連情報、メタデータ、命令など）を受信する。ターゲット書き込みモジュール２３５は、この複製ストリーム内のデータをバックアップイメージ（例えば、ターゲットストレージデバイス（例えば、ターゲットストレージデバイス１９０（１））上に記憶された複製されたバックアップイメージ）に書き込み、又は、複製ストリームの一部として受信した１つ以上の命令を実施する。
命令を記録するためのコンピューティングシステム例
【００５０】
図３Ａは、一実施形態による、バックアップ動作の一部としての及び／又はバックアップ動作に関連付けられた命令を記録するコンピューティングシステム３００Ａのブロック図である。コンピューティングシステム３００Ａは、ソースサーバ１４０、ソースストレージデバイス１６０、ターゲットサーバ１８０、及びターゲットストレージデバイス１９０（１））を含む。図３Ａに示すように、ソースサーバ１４０は、加速器モジュール１５０、コピーマネージャ２２０、ソース読み取りモジュール２２５、ソース書き込みモジュール２３０、及びソースプロキシ１４５を含む。ソースサーバは、ソースストレージデバイス１６０に通信可能に接続され、また、ターゲットサーバ１８０（例えば、ターゲットストレージデバイス１９０（１）〜（Ｎ））によって実行された１つ以上のターゲットストレージデバイスのコンテンツ（例えば、１つ以上のバックアップイメージのコンテンツ）を識別する情報を（例えば、マスタサーバ１６５及び／又はソースサーバ１４０から）受信する。
【００５１】
ソースサーバ１４０は、各ソースバックアップイメージ（例えば、ソースバックアップイメージ２１０（１）〜（Ｎ））に対する命令メタデータ（例えば、命令メタデータ３１０（１）〜（Ｎ））を生成する。この実施例では、ソースサーバ１４０は、ソースストレージデバイス１６０内のソースバックアップイメージと共に命令メタデータを記憶する。命令メタデータ３１０（１）〜（Ｎ）及びソースバックアップイメージ２０５（１）〜（Ｎ）は、ソースストレージデバイス１６０と異なっているストレージデバイスに記憶することができることに留意されたい。例えば、命令メタデータ３１０（１）〜（Ｎ）及びソースバックアップイメージ２０５（１）〜（Ｎ）は、ノード１０５及び／又はマスタサーバ１６５に関連付けられたストレージデバイスに記憶することができる。
【００５２】
ターゲットサーバ１８０は、ターゲットプロキシ１８５及びターゲット書き込みモジュール２３５に加えて、複製ストリーム３２０と、この実施例では、複製ストリーム３２０の一部として受信される命令メタデータ３１０（１）〜（Ｎ）を受信する。複製ストリーム３２０及び命令メタデータ３１０（１）〜（Ｎ）は、ターゲットサーバ１４０によって別々に、及び（ソースサーバ１４０以外の）異なるコンピューティングエンティティから受信され得ることに留意されたい。
【００５３】
一実施形態では、ターゲットサーバ１８０は、複製ストリーム３２０及び命令メタデータ３１０（１）をソースサーバ１４０から（例えば、ターゲットプロキシ１８５を介して）受信する。上述したように、命令メタデータ３１０（１）は、複製ストリーム３２０の一部として、又は（ターゲットプロキシ１８５及び／又はターゲット書き込みモジュール２３５が、何らかの方法で命令メタデータ３０５（１）が複製ストリーム３２０に関連付けられていること及び／又は複製ストリーム３２０に関連していると判定できる限り）別々にターゲットサーバ１８０によって受信され得る。この実施例では、ターゲットサーバ１８０は、受信された複製ストリーム３２０及び命令メタデータ３１０（１）に基づいて、複製されたバックアップイメージ３１５を生成し、かつ複製されたバックアップイメージ３１５をターゲットストレージデバイス１９０（１）に記憶する。
【００５４】
図３Ｂは、一実施形態による、記録された命令のブロック図である。加速器モジュール１５０は、コピーマネージャ２２０、ソース読み取りモジュール２２５、ソース書き込みモジュール２３０、及びソースプロキシ１４５と共に、バックアップ動作中にバックアップストリーム（例えば、ソースバックアップストリーム３０５（１））に関連付けられた情報を記録する。この情報は、命令（例えば、命令メタデータ３１０（１））を含む。この命令には、インクルード命令（例えば、既存データを含めるためのインクルード呼び出し３４０（１）及び３４０（２））、並びに複製動作（の実施）中に書き込み命令（例えば、新たなデータを書き込むための書き込み呼び出し３３５（１）、３３５（２）及び３３５（３））を含む。
【００５５】
一実施形態では、ソースサーバ１４０は、複製動作を実施するための要求を（例えば、ターゲットサーバ１８０又はマスタサーバ１６５から）受信する。この要求に応答して、ソースサーバ１４０は、複製動作の実施の一部として、ターゲットサーバ１８０に命令メタデータを送信する。この実施例では、既存データは、（例えば、ターゲットストレージデバイス１９０（１）内の）ターゲットサーバ１８０によって記憶された複製されたバックアップイメージ３１５の一部であり、（かつ複製されたバックアップイメージ３１５内に含まれている）。新たなデータ及び命令メタデータは、ソースバックアップイメージ（例えば、ソースバックアップイメージ２０５（１））に含まれ、かつソースバックアップイメージは、バックアップ動作の一部としてソースサーバ１４０によって記憶される。
【００５６】
いくつかの実施形態では、複製動作を実施するための要求を受信すると、ソースサーバ１４０は、複製されたバックアップイメージ３１５にアクセスし、複製されたバックアップイメージ３１５と情報（例えば、命令メタデータ３１０（１））とを比較し、新たなデータを含む複製ストリーム３２０（１）を生成し、そして複製ストリーム３２０（１）をターゲットサーバ１８０に送信する。この実施例では、ソースストレージデバイス１６０（及び／又はソースサーバ１４０）及びターゲットストレージデバイス１９０（１）（及び／又はターゲットサーバ１８０）は、異種であることに留意されたい。
【００５７】
特定の実施形態では、命令メタデータ３１０（１）は、複製されたバックアップイメージ３１５から含まれる既存データ（例えば、既存のストレージユニット３３０（１））に関連付けられた第１のオフセット範囲と、１つ以上のソースバックアップイメージから複製されたバックアップイメージ３１５に書き込まれる新たなデータ（例えば、新たなストレージユニット３２５（１））に関連付けられた第２のオフセット範囲を含む。この実施例では、複製ストリーム３２０（１）及びソースバックアップストリーム３０５（１）は、プロトコルに依存しないＡＰＩ（例えば、オープンストレージ技術（Open Storage Technology、ＯＳＴ）ＡＰＩ）を実行するプラグインによって容易にされる共通フォーマットを共有する。
異種ストレージシステム間で複製を実施する例
【００５８】
図４Ａは、一実施形態による、受信された命令に基づいて、複製されたバックアップイメージを合成するコンピューティングシステム４００Ａのブロック図である。コンピューティングシステム４００Ａは、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及びターゲットサーバ１８０を含む。各ノードは、変更されたブロックトラッカー（例えば、変更されたブロックトラッカー１２０（１）〜（Ｎ）を含む。ソースサーバ１４０は、１つ以上のソースバックアップストリーム（例えば、ソースバックアップストリーム３０１（１）〜（Ｎ））及び対応する（又は関連付けられた及び／又は関連する）命令メタデータ（例えば、命令メタデータ３１０（１）〜（Ｎ））を含む。
【００５９】
ソースサーバ１４０は、クライアント側の変更の追跡を使用して、各ソースバックアップストリーム（例えば、ソースバックアップストリーム３０５（１）〜（Ｎ））に対して対応するソースバックアップイメージ（例えば、ソースバックアップイメージ２０５（１）〜（Ｎ））を生成する。前述のように、ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒは、以前の完全バックアップイメージと変更されたデータユニットを合成して新たなバックアップイメージを生成するために、（例えば、変更されたブロックトラッカー１２０（１）、加速器ログ２１０、加速器モジュール１５０、及び／又は重複排除モジュール１５５を実装することによって）クライアント側の変更の追跡と重複排除を使用する。
【００６０】
ＮｅｔＢａｃｋｕｐ  Ａｃｃｅｌｅｒａｔｏｒによってバックアップ用に選択されたバックアップストリームは、Ｔａｒストリームと呼ばれる。新たなデータを既存のバックアップイメージに書き込むか否か、又は以前のバックアップイメージからの既存データを含めるか否かを判断するために（例えば、バックアップストリームハンドラを使用して）Ｔａｒストリームのヘッダを解析することができる。既存のストレージユニットを「含める」ヘッダ（例えば、インクルード呼び出し）は、既存のストレージユニットと共に以前のバックアップイメージ（例えば、ベースバックアップイメージ）から抽出することができる。バックアップ動作中、ソースサーバ１４０は、情報（例えば、命令メタデータ３１０（１）、３１０（２））を記録する。これらの「命令」（例えば、書き込み呼び出し又はインクルード呼び出し）は、複製動作の一部としてターゲットサーバ１８０によって実施することができる。
【００６１】
図４Ｂは、一実施形態による、バックアップ動作の一部として「命令」を記録するブロック図である。図４Ｂに示すように、ソースバックアップストリーム３０５（１）に対する命令メタデータ３１０（１）は、少なくとも１つの基本イメージ名４０５、新たなイメージ名４１０、第１のオフセット範囲４１５、及び第２のオフセット範囲４２０を含む。基本イメージ名４０５は、複製されたバックアップイメージ３１５として記録され、新たなイメージ名４１０は、ソースバックアップイメージ２０５（１）として記録される。第１のオフセット範囲４１５は、複製されたバックアップイメージ３１５から古いデータ（例えば、図３Ｂに示すような既存のストレージユニット３３０（１）及び３３０（２））を含めるための命令を含み、一方で第２のオフセット範囲４２０は、ソースバックアップイメージ２０５（１）から新たなデータ（例えば、図３Ｂに示すような新たなストレージユニット３２５（１）、３２５（２）、及び３２５（３））を含めるための命令を含む。
【００６２】
新たなソースバックアップストリームが選択された、又はバックアップのために受信された場合、ストレージサーバ１４０は、基本イメージ名４０５をソースバックアップイメージ２０５（１）として記録し、新たなイメージ名４１０をソースバックアップイメージ２０５（２）として記録する。この実施例では、第１のオフセット範囲４１５は、ソースバックアップイメージ２０５（１）からの古いデータを含めるための命令を含み、一方で第２のオフセット範囲４２０は、ソースバックアップイメージ２０５（２）からの新たなデータを含めるための命令を含む。このようにして、ソースサーバ１４０は、漸増的方法で命令メタデータを記録する。これらの命令メタデータは、複製動作中に、ソースサーバ１４０及びターゲットサーバ１８０によって後で使用され得る。
異種ストレージシステム間で複製を実施するための例示的なプロセス
【００６３】
図５Ａは、一実施形態による、バックアップ命令を記録するためのプロセスを例示するフローチャートである。このプロセスは、バックアップ動作が（例えば、バックアップモジュール２１５によって）開始されたか否かを判断することによって５０５で始まる。バックアップ動作が開始された場合、プロセスは５１０において、バックアップストリームをクライアントから（例えば、図４Ａに示すようにソースバックアップストリーム３０５（１）をノード１０５（１）から）受信する。５１５において、プロセスは、（例えば、Ｔａｒストリームのヘッダ情報を抽出することによって）ソースバックアップストリームを解析し、ソースバックアップストリーム内の各ユニットのデータ（例えば、図３Ｂに示すように新たなストレージユニット及び既存のストレージユニット）に対する（修正された）ヘッダ情報の一部として、書き込み呼び出し又はインクルード呼び出し（例えば、図３Ｂに示すように書き込み呼び出し３３５（１）、３３５（２）及び３３５（３）又はインクルード呼び出し３４０（１）及び３４０（２））を含めることによって、（例えば、命令メタデータ３１０（１）の形式で）バックアップ命令を記録する。プロセスは、５２０において、別のバックアップ動作が要求されたか否かを判定することによって終了する。
【００６４】
図５Ｂは、一実施形態による、命令を有するバックアップストリームを生成するためのプロセスを例示するフローチャートである。このプロセスは、複製動作が（例えば、ターゲット・サーバ１８０によって）要求されたか否かを判断することによって５２５で始まる。複製動作が要求された場合、プロセスは、５３０において、バックアップ命令（例えば、命令メタデータ３１０（１）〜（Ｎ））を有する複製ストリーム（例えば、複製ストリーム３２０）を生成する。プロセスは、（一緒に又は別々に、同時に、又は異なる時間のいずれかで）バックアップ命令と共に、複製ストリームをターゲットサーバ１８０に送信（又は伝送）することによって５３５で終了する。次に、複製されたバックアップイメージ（例えば、複製されたバックアップイメージ３１５）は、（例えば、ターゲット書き込みモジュール２３５を使用して）バックアップ命令に基づいてターゲットサーバ１８０によって更新され得る。
【００６５】
図５Ｃは、一実施形態による、バックアップストリームを解析するためのプロセスを例示するフローチャートである。このプロセスは、バックアップストリーム（例えば、ソースバックアップストリーム３０５（１））を解析することによって５４０で始まる。５４５において、プロセスは、ターゲットサーバ１８０から基本のバックアップイメージを記録する（例えば、複製されたバックアップイメージ３１５）。５５０において、プロセスは、第１の新たなバックアップイメージ名（例えば、ソースバックアップイメージ２０５（１））を記録する。５５５において、プロセスは、基本のバックアップイメージ及び第１の新たなバックアップイメージに対する命令（例えば、命令メタデータ）を比較する。５６０において、プロセスは、バックアップストリーム内のオフセット範囲ごとに、基本のバックアップイメージから古いデータを、又は第１の新たなバックアップイメージから新たなデータを含めるための命令を記録する。
【００６６】
５６５において、プロセスは、解析すべき後続の（又は別の）バックアップストリームがあるか否かを判断する。後続の（又は別の）バックアップストリームがある場合、プロセスは、５７０で、第１の新たなバックアップイメージ名として基本のバックアップイメージ名を記録する。５７５において、プロセスは、第２の新たなバックアップイメージ名を記録する。５８０において、プロセスは、第１の新たなバックアップイメージに対する命令と、第２の新たなバックアップイメージに対する命令とを比較する。５８５において、プロセスは、後続の（又は別の）バックアップストリーム内のオフセット範囲ごとに、第１の新たなバックアップイメージから古いデータを、又は第２の新たなバックアップイメージから新たなデータを含めるための命令を記録する。プロセスは、別のバックアップセッションがあるか否かを判断することによって５９０で終了する。
【００６７】
この方法で命令を累積的かつ漸増的に記録することは、ソース（ストレージ）サーバＩ／Ｏを低下させ、異種ソースサーバとターゲットサーバとの間のデータのネットワーク転送を最小限にし、かつバックエンドストレージ要件を低減することによってデータ複製効率を高めることが理解されるであろう。
【００６８】
図６Ａは、一実施形態による、記録された命令で複製動作を実施するためのプロセスを例示するフローチャートである。このプロセスは、複製動作が要求されたか否かを判断することによって６０５で始まる。複製動作が要求されていない場合、プロセスは、６１０において、命令（例えば、命令メタデータ３１０（１）〜（Ｎ））の記録を継続する。しかしながら、（例えば、ターゲットサーバ１８０によって）複製動作が要求されている場合、プロセスは、６１５において、命令を記録することを停止し、そして記録された命令で複製動作を実施する（例えば、命令メタデータ３１０（１）〜（Ｎ）で複製ストリーム３２０を生成して複製ストリーム３２０及び命令メタデータ３１０（１）〜（Ｎ）をターゲットサーバ１８０に送る）ことによって６２０で終了する。
【００６９】
図６Ｂは、一実施形態による、ターゲットサーバから複製確認を受信するためのプロセスを例示するフローチャートである。このプロセスは、記録された命令にアクセスすることによって６２５で始まる。６３０において、プロセスは、記録された命令に基づいて、複製ストリーム（例えば、複製ストリーム３２０）を生成する。６３５において、プロセスは、複製ストリーム及び記録された命令を（共に、又は別々に）ターゲットサーバ１８０に送信する。このプロセスは、（複製ストリーム及び記録された命令が受信された）ターゲットサーバ１８０から確認を受信することによって６４０で終了する。
【００７０】
図６Ｃは、一実施形態による、インクルード呼び出し及び書き込み呼び出しを記録するためのプロセスを例示するフローチャートである。このプロセスは、バックアップ動作が進行中であるか否かを判断することによって６４５で始まる。バックアップ動作が進行中である場合、プロセスは、６５０において、バックアップストリーム（例えば、ソースバックアップストリーム３０５（１））内のオフセットに対するインクルード呼び出し及び／又は書き込み呼び出しを記録する。プロセスは、別のバックアップ動作があるか否かを判断することによって６５５で終了する。
【００７１】
図６Ｄは、一実施形態による、バックアップイメージの記録された命令を比較するためのプロセスを例示するフローチャートである。このプロセスは、複製（動作）が要求されたか否かを判断することによって６６０で始まる。複製動作が要求された場合、プロセスは、６６５において、基本のバックアップイメージ（例えば、複製されたバックアップイメージ３１５）を含む様々なバックアップイメージ（例えば、ソースバックアップイメージ２０５（１）及び２０５（２）の記録された命令を比較する。６７０において、プロセスは、複製ストリーム（例えば、複製ストリーム３２０）を生成し、６７５において、命令（例えば、命令メタデータ３１０（１）−（Ｎ））で複製ストリームを、複製動作の一部としてターゲットサーバ１８０に送信する。
【００７２】
図７は、一実施形態による、複製されたバックアップイメージを合成するためのプロセスを例示するフローチャートである。このプロセスは、インクルード呼び出し及び／又は書き込み呼び出しを有する命令をソースサーバ１４０から受信することによって７０５で始まる。７１０において、プロセスは、ソースサーバ１４０からの命令に基づいて生成された複製ストリームを受信する。７１５において、プロセスは、（受信された）複製ストリームのインクルード呼び出し及び／又は書き込み呼び出しを実施する。７２０において、プロセスは、新たに複製されたバックアップイメージを合成する（又は生成する）。プロセスは、ソースサーバ１４０に複製確認を送信することによって７２５で終了する。
【００７３】
本明細書に記載されたシステム、方法、及びプロセスは、ソース（ストレージ）サーバＩ／Ｏを低下させ、異種ソースサーバとターゲットサーバとの間のデータのネットワーク転送を最小限にし、かつ新たな及び／又は修正されたデータ、並びに（命令メタデータの形式の）命令だけが、ソースサーバからターゲットサーバに送信されるという理由で、バックエンドストレージ要件を低減することによって、データ複製効率を高めることが理解されるであろう。
例示的なコンピューティングシステム
【００７４】
図８は、一実施形態による、異種ストレージサーバ間のデータ複製を実施するコンピューティングシステム８００のブロック図である。コンピューティングシステム８００は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサコンピューティングデバイスあるいはシステムを広く表す。コンピューティングシステム８００の例としては、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、携帯用デバイス（例えば、パーソナル携帯情報機器、及び携帯電話）、ネットワークアプライアンス、ストレージ制御装置（例えば、配列制御装置、テープドライブ制御装置、又はハードディスク制御装置）等を含む任意の１つ又は２つ以上の様々なデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム８００は、少なくとも１つのプロセッサ１１０と、メモリ１１５と、を含んでもよい。加速器モジュール１５０及び／又はバックアップモジュール２１５を実装するソフトウェアを実行することによって、コンピューティングシステム８００は、異種ストレージシステム間で複製を実施するように構成されている専用コンピューティングデバイスとなる。
【００７５】
プロセッサ１１０は、概して、データの処理、又は命令の解釈及び実行ができる任意のタイプ又は形式の処理装置を表す。特定の実施形態では、プロセッサ１１０は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ１１０に、本明細書に記載及び／又は例示する実施形態のうちの１つ又は２つ以上の機能を実施させてもよい。例えば、プロセッサ１１０は、本明細書に記載する動作の全部又は一部を実行してもよく、及び／又は実行するための手段であってもよい。プロセッサ１１０は、また、本明細書に記載又は例示する任意の他の動作、方法、及びプロセスを実行してもよく、及び／又は実行するための手段であってもよい。
【００７６】
メモリ１１５は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性ストレージデバイス若しくは媒体を概して表す。例としては、ランダムアクセスメモリ（random access memory、ＲＡＭ）、読み取り専用メモリ（read only memory、ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須でないが、特定の実施例では、コンピューティングシステム８００は、揮発性メモリユニット及び不揮発性ストレージデバイスの両方を含んでもよい。一実施例では、加速器モジュール１５０及び／又はバックアップモジュール２１５を実行するプログラム命令をメモリ１１５にロードすることができる。
【００７７】
特定の実施形態では、コンピューティングシステム８００はまた、プロセッサ１１０及びメモリ１１５に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図８に示すように、コンピューティングシステム８００は、メモリコントローラ８２０、入力／出力（Ｉ／Ｏ）コントローラ８３５、及び通信インターフェース８４５を含んでもよく、これらの各々は、通信インフラストラクチャ８０５を介して相互接続されてもよい。通信インフラストラクチャ８０５は、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ８０５の例としては、通信バス（業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）、周辺構成要素相互接続（Peripheral Component Interconnect、ＰＣＩ）、ＰＣＩエクスプレス（PCI express、ＰＣＩｅ）、又は類似のバス等）、及びネットワークが挙げられるが、これらに限定されない。
【００７８】
メモリコントローラ８２０は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム８００の１つ以上の構成要素間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。特定の実施形態では、メモリコントローラ８２０は、通信インフラストラクチャ８０５を介して、プロセッサ１１０、メモリ１１５、及びＩ／Ｏコントローラ８３５間の通信を制御してもよい。特定の実施形態では、メモリコントローラ８２０は、本明細書に記載又は例示する１つ以上の動作又は機能を単独又は他の要素との組み合わせのいずれかで実施してもよく、及び／又は実施するための手段であってもよい。
【００７９】
Ｉ／Ｏコントローラ８３５は、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及び／又はターゲットサーバ１８０の入力及び出力機能を調整及び／又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ８３５は、プロセッサ１１０、メモリ１１５、通信インターフェース８４５、表示アダプタ８１５、入力インターフェース８２５、及びストレージインターフェース８４０等のコンピューティングシステム８００の１つ又は２つ以上の要素間のデータの転送を制御してもよく、又はそれを容易にしてもよい。
【００８０】
通信インターフェース８４５は、コンピューティングシステム８００と、１つ以上の他のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。通信インターフェース８４５は、コンピューティングシステム８００と追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にし得る。通信インターフェース８４５の例としては、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースを含むが、これらに限定されない。通信インターフェース８４５は、インターネット等ネットワークへの直接リンクを介してリモートサーバへの直接接続を提供してよく、また、例えば、ローカルエリアネットワーク（例えば、イーサネット（登録商標）ネットワーク）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してよい。
【００８１】
通信インターフェース８４５はまた、外部バス又は通信チャネルを介して、コンピューティングシステム８００と、１つ以上の追加のネットワーク又はストレージデバイスとの間の通信を容易にするように構成されたホストアダプタを表してよい。ホストアダプタの例としては、スモールコンピュータシステムインターフェース（Small Computer System Interface、ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）ホストアダプタ、米国電気電子技術者協会（Electrical and Electronics Engineers、ＩＥＥＥ）１３９４ホストアダプタ、シリアルアドバンストテクノロジーアタッチメント（Serial Advanced Technology Attachment、ＳＡＴＡ）、シリアルアタッチトＳＣＳＩ（Serial Attached SCSI、ＳＡＳ）、及びエクスターナルＳＡＴＡ（external SATA、ｅＳＡＴＡ）ホストアダプタ、アドバンスドテクノロジーアタッチメント（Advanced Technology Attachment、ＡＴＡ）、及びパラレルＡＴＡ（Parallel ATA、ＰＡＴＡ）ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット（登録商標）アダプター等が挙げられるが、これらに限定されない。通信インターフェース８４５はまた、コンピューティングシステム８００が、（例えば、実行するためにリモートデバイスに対して命令を送受信することにより）分散又はリモートコンピューティングに関与できるようにしてよい。
【００８２】
図８に示すように、コンピューティングシステム８００はまた、表示アダプタ８１５を介して、通信インフラストラクチャ８０５に接続されている、少なくとも１つの表示デバイス８１０を含んでもよい。表示デバイス８１０は、表示アダプタ８１５によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ８１５は、表示デバイス８１０上に表示するために、通信インフラストラクチャ８０５から（又は当該技術分野において既知のように、フレームバッファから）、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。コンピューティングシステム８００はまた、入力インターフェース８２５を介して通信インフラストラクチャ８０５に接続されている、少なくとも１つの入力デバイス８３０を含んでよい。入力デバイス８３０は、コンピュータ又はヒトのいずれかによって生成された入力を、コンピューティングシステム８００に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス８３０の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【００８３】
コンピューティングシステム８００はまた、ストレージインターフェース８４０を介して通信インフラストラクチャ８０５に接続されているストレージデバイス８５０を含んでよい。ストレージデバイス８５０は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。例えば、ストレージデバイス８５０は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどを含み得る。ストレージインターフェース８４０は、コンピューティングシステム８００のストレージデバイス８５０と他の構成要素との間でデータを転送及び／又は送信するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。ストレージデバイス８５０は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成されている、取り外し可能なストレージユニットから読み取るように、及び／又はそれに書き込むように構成されてよい。好適な取り外し可能なストレージユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等が挙げられるが、これらに限定されない。ストレージデバイス８５０は、また、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム８００にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、ストレージデバイス８５０は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、及び書き込むように構成されてもよい。ストレージデバイス８５０は、また、コンピューティングシステム８００の一部であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
【００８４】
多くの他のデバイス又はサブシステムは、コンピューティングシステム８００に接続されてもよい。逆に、図８に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図８に示すものとは異なる様式で相互接続されてもよい。
【００８５】
コンピューティングシステム８００はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される実施形態のうちの１つ又は２つ以上は、コンピュータ可読ストレージ媒体上にコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化され得る。コンピュータ可読ストレージ媒体の例としては、磁気ストレージ媒体（例えば、ハードディスクドライブ、及びフロッピーディスク）、光ストレージメディア（例えば、ＣＤ−、又はＤＶＤ−ＲＯＭ）、電子ストレージ媒体（例えば、ソリッドステートドライブ、及びフラッシュメディア）等が挙げられる。そのようなコンピュータプログラムは、また、インターネットなどのネットワークを介してメモリに又はキャリア媒体に記憶するためにコンピューティングシステム８００に転送されてもよい。
【００８６】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム８００にロードされてもよい。コンピュータ可読媒体上に記憶されたコンピュータプログラムの全部又は一部分は、次に、メモリ１１５及び／又はストレージデバイス８５０の種々の部分に記憶されてもよい。プロセッサ１１０によって実行されるとき、コンピューティングシステム８００にロードされたコンピュータプログラムは、本明細書において説明及び／又は例示する実施形態のうちの１つ以上の機能をプロセッサ１１０に実施させてもよく、及び／又はそれらを実施するための手段であってもよい。付加的に又は代替的に、本明細書に説明及び／又は例示される例示的な実施形態のうちの１つ又は２つ以上は、ファームウェア及び／又はハードウェアに実装され得る。例えば、コンピューティングシステム８００は、本明細書において開示される実施形態のうちの１つ又は２つ以上を実行するように適合された特定用途向け集積回路（application specific integrated circuit、ＡＳＩＣ）として構成されてもよい。
例示的なネットワーキング環境
【００８７】
図９は、本開示の一実施形態による、様々なデバイスがネットワークを介して通信し得る態様を例示する、ネットワーク化されたシステムのブロック図である。特定の実施形態では、ネットワーク接続型ストレージ（network-attached storage、ＮＡＳ）デバイスは、ネットワークファイルシステム（Network File System、ＮＦＳ）、サーバメッセージブロック（Server Message Block、ＳＭＢ）、又はコモンインターネットファイルシステム（Common Internet File System、ＣＩＦＳ）などの様々なプロトコルを使用して複製システム９１０と通信するように構成されてもよい。ネットワーク１９５は、複数のコンピューティングデバイスの間での通信を容易にすることができる任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。ネットワーク１９５は、複製システム９１０と、ノード１０５（１）〜（Ｎ）と、ソースサーバ１４０と、及び／又はターゲットサーバ１８０との間の通信を容易にすることができる。特定の実施形態では、図８の通信インターフェース８４５などの通信インターフェースは、ノード１０５（１）〜（Ｎ）と、ソースサーバ１４０と、及び／又はターゲットサーバ１８０と、ネットワーク１９５との間の接続性を提供するために使用され得る。本明細書に記載及び／又は例示する実施形態は、インターネット又は任意の特定のネットワークベース環境に限定されないことに留意されたい。例えば、ネットワーク１９５は、ストレージエリアネットワーク（ＳＡＮ）であってもよい。
【００８８】
一実施形態では、本明細書で開示する実施形態のうちの１つ以上の全体又は一部は、コンピュータプログラムとしてコード化されてよく、そして、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及び／若しくはターゲットサーバ１８０、又はこれらの任意の組み合わせにロードされて実行されてよい。本明細書で開示される１つ又は複数の実施形態の全て又は一部はまた、コンピュータプログラムとして符号化され、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及び／又はターゲットサーバ１８０に記憶され、ネットワーク１９５を介して配信されてもよい。いくつかの実施例では、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及び／又はターゲットサーバ１８０の全て又は一部は、クラウドコンピューティング環境又はネットワークベース環境の一部を表すことができる。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００８９】
加えて、本明細書に記載の構成要素のうちの１つ又は２つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、ある形態から他の形態に変換し得る。例えば、ノード１０５（１）〜（Ｎ）、ソースサーバ１４０、及び／又はターゲットサーバ１８０は、複製システム９１０に異種ストレージシステム間の複製を実施させるために、複製システム９１０の挙動を変換し得る。
【００９０】
本開示がいくつかの実施形態と関連して説明してきたが、本開示は、本明細書で述べた特定の形式に限定されるように意図されていない。逆に、添付の請求項によって規定されるような本開示の範囲内に合理的に含まれ得るような代替形態、修正形態、及び等価物を包含するように意図されている。
【図１】
2019513269.tif 000003
【図２】
2019513269.tif 000004
【図３Ａ】
2019513269.tif 000005
【図３Ｂ】
2019513269.tif 000006
【図４Ａ】
2019513269.tif 000007
【図４Ｂ】
2019513269.tif 000008
【図５Ａ】
2019513269.tif 000009
【図５Ｂ】
2019513269.tif 000010
【図５Ｃ】
2019513269.tif 000011
【図６Ａ】
2019513269.tif 000012
【図６Ｂ】
2019513269.tif 000013
【図６Ｃ】
2019513269.tif 000014
【図６Ｄ】
2019513269.tif 000015
【図７】
2019513269.tif 000016
【図８】
2019513269.tif 000017
【図９】
2019513269.tif 000018
【国際調査報告】
2019513269.tif 000019
2019513269.tif 000020
2019513269.tif 000021