(57)【要約】  複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのコンピュータ実行方法には、１）複製源から複製ターゲットにデータを複製することと、２）複製されたデータ内の未使用記憶空間を識別することと、３）複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するための再利用要求を生成することと、次に４）シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行することと、を含んでもよい。様々な他の関連するシステム、方法、および構成されたコンピュータ可読媒体がまた、開示される。
2013520747.tif 000002
【特許請求の範囲】
【請求項１】
複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのコンピュータ実行方法であって、前記方法の少なくとも一部が、少なくとも１つのプロセッサを含むコンピューティング装置によって実行され、前記方法が、
複製源から複製ターゲットにデータを複製することと、
前記複製されたデータ内の未使用記憶空間を識別することと、
前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成することと、
前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに前記再利用要求を発行することと、
を含む方法。
【請求項２】
前記複製源から前記複製ターゲットにデータを複製することが、
ブロックベースの複製技術を用いて前記データを複製することと、
ファイルベースの複製技術を用いて前記データを複製することと、
を含む、請求項１に記載の方法。
【請求項３】
前記複製されたデータ内の未使用記憶空間を識別することが、前記未使用記憶空間を識別する情報を前記複製源から受信することを含む、請求項１に記載の方法。
【請求項４】
前記情報が、前記複製源用にシンプロビジョニングストレージを提供する前記シンプロビジョニングストレージシステムに前記複製源から元々は送信された、インターセプトされた再利用要求を含む、請求項３に記載の方法。
【請求項５】
前記情報が、前記複製源において実行されたコンピューティング動作によって解放された記憶空間を識別する、請求項３に記載の方法。
【請求項６】
前記複製源から前記情報を受信することが、帯域内通信プロトコルを介して前記情報を受信することを含む、請求項３に記載の方法。
【請求項７】
前記複製源から前記情報を受信することが、
前記複製源に前記情報を要求することと、
要求に応じた前記複製源からの前記情報を受信することと、
を含む、請求項３に記載の方法。
【請求項８】
前記複製源に前記情報を要求することが、
周期的に前記複製源に前記情報を要求することと、
必要に応じて前記複製源に前記情報を要求することと、
の少なくとも１つを含む、請求項７に記載の方法。
【請求項９】
前記複製されたデータ内の未使用記憶空間を識別することが、
データ複製を停止することと、
データ管理ＡＰＩを用いて、前記複製ターゲットにおいて前記データの複製内の未使用記憶空間を識別することと、
を含む、請求項１に記載の方法。
【請求項１０】
データ複製を停止することが、
前記複製源における前記複製されたデータを整合状態にすることと、
前記複製されたデータが整合状態であることを示す通信を前記複製源から受信することと、
を含む、請求項９に記載の方法。
【請求項１１】
前記データ管理ＡＰＩが、
ファイルシステムＡＰＩと、
アプリケーションＡＰＩと、
の少なくとも１つを含む、請求項９に記載の方法。
【請求項１２】
前記再利用要求を発行するとデータ複製を再開することをさらに含む、請求項９に記載の方法。
【請求項１３】
前記複製源が、サーバコンピューティング装置を含み、
前記複製ターゲットが、クライアントコンピューティング装置を含む、請求項１に記載の方法。
【請求項１４】
複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムであって、
複製源から複製ターゲットにデータを複製するようにプログラムされた複製モジュールと、
前記複製されたデータ内の未使用記憶空間を識別するようにプログラムされた識別モジュールと、
再利用モジュールであって、
前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成するように、
前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに再利用要求を発行するようにプログラムされた再利用モジュールと、
前記複製モジュール、前記識別モジュール、および前記再利用モジュールを実行するように構成された少なくとも１つのプロセッサと、
を含むシステム。
【請求項１５】
前記識別モジュールが、未使用記憶空間を識別する、前記複製源から受信された情報を識別することによって、前記複製されたデータ内の前記未使用記憶空間を識別する、請求項１４に記載のシステム。
【請求項１６】
前記情報が、前記複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに前記複製源から元々は送信された、インターセプトされた再利用要求を含む、請求項１５に記載のシステム。
【請求項１７】
前記情報が、前記複製源において実行されたコンピューティング動作によって解放された記憶空間を識別する、請求項１５に記載のシステム。
【請求項１８】
前記再利用モジュールが、
前記複製源に前記情報を要求するように、
前記要求に応じた前記複製源からの前記情報を受信するように、さらにプログラムされる、請求項１５に記載のシステム。
【請求項１９】
前記再利用モジュールが、データ複製を停止するようにさらにプログラムされ、
前記識別モジュールが、データ管理ＡＰＩを用いて前記複製ターゲットにおける前記データの複製内の未使用記憶空間を識別することによって、前記複製されたデータ内の未使用記憶空間を識別する、請求項１４に記載のシステム。
【請求項２０】
コンピューティング装置の少なくとも１つのプロセッサによって実行された場合に、前記コンピューティング装置に、
複製源から複製ターゲットにデータを複製させ、
前記複製されたデータ内の未使用記憶空間を識別させ、
前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成させ、
前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムへと再利用要求を発行させるコンピュータ実行命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの組織が、それらのアプリケーションおよび／またはデータの信頼性、耐故障性および／またはアクセス可能性を改善するために、データ複製に頼る。データ複製には、典型的には、主要なサイトまたは装置（アプリケーションサーバなど）から第２の（すなわちバックアップ）サイトまたは装置（「複製ターゲット」としても知られている）にデータを複製すること（例えば、受動的または能動的方法で）が含まれる。
【０００２】
データ複製中に生成される高データ量ゆえに、データ複製サービスのプロバイダは、記憶コストを最小化しながらデータ記憶性能を最大化しようと長い間努力してきた。それゆえに、プロバイダの中には、利用可能な記憶空間を効率的に使用しようと努力して、シンプロビジョニングソリューションに注意を向けたところもある。シンプロビジョニングソリューションは、典型的には、記憶空間が無駄になるのを防ごうと、必要に応じてかまたはジャストインタイム方式で、共通プールからコンピューティングシステムに記憶空間を割り当てる。
【０００３】
残念ながら、典型的なファイルレベルまたはブロックレベルの複製技術は、複製ターゲットが、主要なサイト（アプリケーションサーバなど）から複製されたデータ内の空いたまたは未使用部分を識別するのを妨げる可能性がある。例えば、複製ターゲットは、データを生成する場合に主要なサイトによって用いられる様々なアプリケーションおよび／またはファイルシステムＡＰＩへのアクセスなしでは、主要なサイトから受信されたアプリケーションもファイルシステムデータも解釈できない可能性がある。この知識なしでは、複製ターゲットは、複製されたデータを記憶するためにシンプロビジョニングストレージシステムを効果的に利用することができない可能性がある。なぜなら、複製ターゲットが、シンプロビジョニングストレージシステム上に記憶された、複製されたデータ内の空いたまたは未使用記憶空間を識別（および続いてシンプロビジョニングストレージシステムに再利用するように命令）することができないからである。
【発明の概要】
【課題を解決するための手段】
【０００４】
以下でより詳細に説明するように、本開示は、一般に、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法に関する。一例において、本明細書で説明する様々なシステムの１つまたは複数は、かかるタスクを、１）（例えば、ファイルレベルまたはブロックレベルの複製技術を用いて）複製源（サーバなど）から複製ターゲットにデータを複製することと、２）（本明細書で説明する方法の１つまたは複数を用いて）複製されたデータ内の未使用記憶空間を識別することと、３）複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するための再利用要求を生成することと、次に４）シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行することと、によって達成してもよい。
【０００５】
本明細書で説明するシステムは、様々な方法および様々な文脈において、複製されたデータ内の未使用記憶空間を識別してもよい。一例において、複製ターゲットは、未使用記憶空間を識別する複製源から（例えば、帯域内通信プロトコルを介して）情報を受信することによって、複製されたデータ内の未使用記憶空間を識別してもよい。いくつかの例において、この空き空間情報には、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに複製源から元々は送信された、インターセプトされた再利用要求を含んでもよい。他の例において、この空き空間情報は、複製源において実行されたコンピューティング動作（デフラグメント動作またはファイル削除動作など）によって解放された記憶空間を識別してもよい。
【０００６】
いくつかの例において、複製ターゲットは、複製ターゲットによって発行された要求に応じた、複製源からのこの空き空間情報を受信してもよい。例えば、周期的および／または必要に応じて空き空間情報を、複製ターゲットは要求してもよく（かつ複製源は、それに応じて提供してもよい）。
【０００７】
別の例において、複製ターゲットは、１）データ複製を停止することと、次に２）データ管理ＡＰＩ（ファイルシステムおよび／またはアプリケーションＡＰＩなど）を用いて、複製されたデータ内の未使用記憶空間を独立して識別することと、によって、複製されたデータ内の未使用記憶空間を識別してもよい。この未使用記憶空間を再利用すると、複製ターゲットは、データ複製を再開するように複製源に命令してもよい。
【０００８】
以下でより詳細に説明するように、本明細書で説明するシステムおよび方法によって、複製ターゲットは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用することができるようになり得る。かかるものとして、これらのシステムおよび方法は、システム管理者が、シンプロビジョニングストレージ環境内に複製ソリューションを展開できるようにし、潜在的な空間的および金銭的節約を結果としてもたらし得る。
【０００９】
前述の実施形態のいずれかにおける特徴は、本明細書で説明する一般原則に従って互いに組み合わせて用いてもよい。これらや他の実施形態、特徴、および利点は、添付の図面および特許請求の範囲と共に以下の詳細な説明を読むことによって、より完全に理解されよう。
【００１０】
添付の図面は、多数の例示的な実施形態を示し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の様々な原理を例示し説明する。
【図面の簡単な説明】
【００１１】
【図１】複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムのブロック図である。
【図２】複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムのブロック図である。
【図３】複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための追加的な例示的システムのブロック図である。
【図４】複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的な方法の流れ図である。
【図５】本明細書で説明および／または図示する実施形態の１つまたは複数を実行できる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書で説明および／または図示する実施形態の１つまたは複数を実行できる例示的なコンピューティングネットワークのブロック図である。
【００１２】
図面の全体にわたって、同一の参照文字および記載は、必ずしも同一ではないが類似の要素を示す。本明細書で説明する例示的な実施形態は、様々な修正および代替形態の余地があるが、特定の実施形態が、図面において例として示され、本明細書で詳細に説明される。しかしながら、本明細書で説明する例示的な実施形態は、開示される特定の形態に限定されるようには意図されていない。もっと正確に言えば、本開示は、添付の特許請求の範囲内に入る全ての修正、均等物、および代替をカバーする。
【発明を実施するための形態】
【００１３】
以下は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムの詳細を、図１−３に関連して提供する。対応するコンピュータ実行方法の詳細な説明がまた、図４に関連して提供される。さらに、本明細書で説明する実施形態の１つまたは複数を実行できる例示的なコンピューティングシステムおよびネットワークアーキテクチャの詳細な説明が、図５および６にそれぞれ関連して提供される。
【００１４】
図１は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステム１００のブロック図である。この図に示すように、例示的なシステム１００には、１つまたは複数のタスクを実行するための１つまたは複数のモジュール１０２を含んでもよい。例えば、以下でより詳細に説明するように、例示的なシステム１００には、複製源から複製ターゲットにデータを複製するようにプログラムされた複製モジュール１０４を含んでもよい。例示的なシステム１００にはまた、複製されたデータ内の未使用記憶空間を識別するようにプログラムされた識別モジュール１０６を含んでもよい。
【００１５】
さらに、以下でより詳細に説明するように、例示的なシステム１００には、複製ターゲット用に記憶空間を提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するようにプログラムされた再利用モジュール１０８を含んでもよい。別個の要素として示したが、図１におけるモジュール１０２の１つまたは複数は、単一のモジュールまたはアプリケーションの一部を表してもよい。
【００１６】
ある実施形態において、図１におけるモジュール１０２の１つまたは複数は、コンピューティング装置によって実行される場合にコンピューティング装置に１つまたは複数のタスクを実行させ得る１つまたは複数のソフトウェアアプリケーションまたはプログラムを表してもよい。例えば、以下でより詳細に説明するように、モジュール１０２の１つまたは複数は、図２に示す装置（例えば、複製源２０２および／もしくは複製ターゲット２２２）、図３に示す装置（例えば、複製源３０２および／もしくは複製ターゲット３２２）、図５におけるコンピューティングシステム５１０、ならびに／または図６における例示的なネットワークアーキテクチャ６００の一部など、１つまたは複数のコンピューティング装置上に記憶され、かつそこで走行するように構成されたソフトウェアモジュールを表してもよい。図１におけるモジュール１０２の１つまたは複数はまた、１つまたは複数のタスクを実行するように構成された１つまたは複数の専用コンピュータの全てまたは一部を表してもよい。
【００１７】
図１に示すように、例示的なシステム１００にはまた、データベース１２０などの１つまたは複数のデータベースを含んでもよい。一例において、データベース１２０には、複製源から複製ターゲットに複製されるデータ１２２（例えば複製源上に記憶された）を含んでもよい。データベース１２０は、単一のデータベースもしくはコンピューティング装置、または複数のデータベースもしくはコンピューティング装置の一部を表してもよい。例えば、データベース１２０は、図２に示す装置（例えば、複製源２０２および／もしくは複製ターゲット２２２）の一部、図３に示す装置（例えば、複製源３０２および／もしくは複製ターゲット３２２）、図５におけるコンピューティングシステム５１０、ならびに／または図６における例示的なネットワークアーキテクチャ６００の一部を表してもよい。代替として、図１におけるデータベース１２０は、図２に示す装置（例えば、複製源２０２および／もしくは複製ターゲット２２２）、図３に示す装置（例えば、複製源３０２および／もしくは複製ターゲット３２２）、図５におけるコンピューティングシステム５１０、ならびに／または図６における例示的なネットワークアーキテクチャ６００の一部など、コンピューティング装置によってアクセスできる１つまたは複数の物理的に別個の装置を表してもよい。
【００１８】
図１における例示的なシステム１００は、様々な方法で配置してもよい。例えば、例示的なシステム１００の全てまたは一部は、図２における例示的なシステム２００の一部を表してもよい。図２に示すように、システム２００には、複製ターゲット２２２と通信する複製源２０２を含んでもよい。この例において、シンプロビジョニングストレージシステム２３２は、複製源２０２用にシンプロビジョニング記憶空間（例えば、割り当てられた空間２３５（１））を提供してもよい。同様に、追加のシンプロビジョニングストレージシステム２５２は、複製ターゲット２２２用にシンプロビジョニング記憶空間（例えば、割り当てられた空間２５５（１））を提供してもよい。
【００１９】
一実施形態において、以下でより詳細に説明するように、図１におけるモジュール１０２の１つまたは複数は、以下のことによって、複製ターゲット２２２が、シンプロビジョニングストレージシステム２５２上の未使用記憶空間を再利用できるようにしてもよい。すなわち、１）複製されたデータを複製源（例えば、複製源２０２）から受信することと、２）複製されたデータ内の未使用記憶空間（例えば、割り当てられた空間２５５（１）の未使用部分２５９（１））を識別すること（例えば、本明細書で説明する様々な技術の１つを用いて）と、３）複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステム（例えば、シンプロビジョニングストレージシステム２５２）から未使用記憶空間を再利用するための再利用要求を生成することと、次に４）シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行することと、である。
【００２０】
複製源２０２は、一般に、データを複製ターゲットに複製できる任意のタイプまたは形態のコンピューティング装置を表す。複製源２０２の例には、限定するわけではないが、様々なデータベースサービスを提供し、かつ／またはあるソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバおよびデータベースサーバ、図５における例示的なコンピューティングシステム５１０、または任意の他の適切なコンピューティング装置が含まれる。同様に、複製ターゲット２２２は、一般に、複製されたデータを受信および記憶できる任意のタイプまたは形態のコンピューティング装置を表す。一例において、複製源２０２は、データを複製し、かつ／または帯域内通信プロトコル２１０を介して、複製されたデータに関するメタデータを複製ターゲット２２２に送信してもよい。
【００２１】
図２に示すように、いくつかの例において、複製源２０２には、アプリケーション２０４を含んでもよい。アプリケーション２０４は、一般に、データを生成および／または管理できる任意のタイプまたは形態のアプリケーション（例えば、データベースなど）を表す。いくつかの例において、アプリケーション２０４は、シンプロビジョニングストレージシステム（シンプロビジョニングストレージシステム２３２など）および／またはローカル記憶装置（図３に関連して以下で説明するような）内にデータを記憶してもよい。
【００２２】
複製源２０２にはまた、ファイルシステム２０６を含んでもよい。いくつかの例において、ファイルシステム２０６には、複数のシンプロビジョニングボリューム（すなわち、シンプロビジョニングストレージシステム２３２などのシンプロビジョニングストレージシステム上のストレージによってバックアップされた論理ボリューム）を含んでもよい。複製源２０２にはまた、複製源２０２から複製ターゲット２２２にデータを複製するための複製エージェント２０８を含んでもよい。複製エージェント２０８は、一般に、複製源（複製源２０２など）から複製ターゲット（複製ターゲット２２２など）にデータを複製できる任意のタイプまたは形態のホストまたはサーバ側エージェントもしくはモジュールを表す。以下でより詳細に説明するように、複製エージェント２０８は、ファイルレベルまたはブロックレベルの複製技術のいずれかを用いてデータを複製してもよい。
【００２３】
同様に、複製ターゲット２２２上の複製エージェント２２８は、複製されたデータを複製源（複製源２０２など）から受信できる任意のタイプまたは形態のクライアント側エージェントまたはモジュールを表してもよい。以下でより詳細に説明するように、いくつかの例において、アプリケーション２０４、ファイルシステム２０６、複製エージェント２０８、および／または複製エージェント２２８は、図１のモジュール１０２における１つまたは複数を含んでもよい。
【００２４】
シンプロビジョニングストレージシステム２３２および２５２は、一般に、必要に応じてかまたはジャストインタイム方式で、コンピューティングシステム用にデータを記憶できる任意のタイプまたは形態のストレージシステムまたは装置（ディスクアレイなど）を表す。一例において、シンプロビジョニングストレージシステム２３２および２５２は、複数の論理装置番号（ＬＵＮ）（例えば、それぞれＬＵＮ２３４（１）−（Ｎ）および２５４（１）−（Ｎ））に論理的に分割してもよく、論理装置番号のそれぞれは、シンプロビジョニングストレージシステム２３２または２５２の物理的部分への論理的参照を表してもよい。ＬＵＮ２３４（１）−（Ｎ）および２５４（１）−（Ｎ）は、シンプロビジョニングストレージシステム２３２または２５２内のディスク、ディスクのセクション、全ディスクアレイ、および／またはディスクアレイのセクションを表してもよい。いくつかの例において、シンプロビジョニングストレージシステム２３２は、複製源２０２の１つまたは複数のアプリケーションまたはファイルシステム（例えば、アプリケーション２０４および／またはファイルシステム２０６）用のシンプロビジョニングストレージを提供してもよい。
【００２５】
いくつかの例において、複製源２０２および／または複製ターゲット２２２は、ＡＰＩ２４０を介して、シンプロビジョニングストレージシステム２３２および２５２とそれぞれインターフェースしてもよい。ＡＰＩ２４０は、一般に、シンプロビジョニングストレージシステムとインターフェースするための任意のタイプまたは形態のプログラミングインターフェースを表す。
【００２６】
いくつかの例において、図２とは対照的に、複製源は、シンプロビジョニングストレージを利用しなくてもよい。例えば、図３における複製源３０２は、１つまたは複数のローカル記憶装置（例えば、データセット３３４（１）−（Ｎ））内に記憶されたデータを、帯域内通信プロトコル３１０を介して複製ターゲット３２２に複製してもよい。この例において、データセット３３４（１）−（Ｎ）には、複製源３０２におけるアプリケーションまたはファイルシステム（アプリケーション３０４および／またはファイルシステム３０６など）によって生成および／または管理されたデータを含んでもよい。図２における例示的なシステム２００と同様に、シンプロビジョニングストレージシステム３５２は、複製ターゲット３２２用にシンプロビジョニングストレージを提供してもよい。
【００２７】
図４は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なコンピュータ実行方法４００の流れ図である。図４に示すステップは、任意の適切なコンピュータ実行可能コードおよび／またはコンピューティングシステムによって実行してもよい。いくつかの実施形態において、図４に示すステップは、図１のシステム１００、図２のシステム２００、図５のコンピューティングシステム５１０のコンポーネント、および／または図６の例示的なネットワークアーキテクチャ６００における部分の１つまたは複数によって実行してもよい。
【００２８】
図４に示すように、ステップ４０２において、本明細書で説明する様々なシステムの１つまたは複数が、複製源から複製ターゲットにデータを複製してもよい。例えば、図１における複製モジュール１０４は、図２における複製源２０２の一部として（例えば、複製エージェント２０８の一部として）、複製源２０２から複製ターゲット２２２にデータを複製してもよい。
【００２９】
本明細書で説明するシステムは、様々な複製技術のいずれかを用いてデータを複製してもよい。例えば、複製エージェント２０８は、ブロックベースの複製技術（すなわち、複製エージェント２０８は、複製されるデータをブロックレベルで識別してもよい）および／またはファイルベースの複製技術（すなわち、複製エージェント２０８は、複製されるデータをファイルレベルで識別してもよい）を用いて、複製源２０２から複製ターゲット２２２にデータを複製してもよい。
【００３０】
いくつかの例において、本明細書で説明するシステムは、ディスクベースの複製技術とは対照的に、サーバまたはホストベースの複製技術を用いてデータを複製してもよい。例えば、複製エージェント２０８は、複製源２０２によって利用されるストレージ（シンプロビジョニングストレージシステム２３２など）上で動作するのとは対照的に、複製源２０２上で動作してもよい。
【００３１】
いくつかの例において、ステップ４０２で複製されるデータは、アプリケーションおよび／またはファイルシステムによって記憶および／または管理されるデータを表してもよい。例えば、複製エージェント２０８は、アプリケーション２０４などのデータベースアプリケーションによって記憶および／または管理されるデータを複製してもよい。追加または代替として、複製エージェント２０８は、ファイルシステム２０６などのファイルシステムの１つまたは複数のボリュームを複製してもよい。
【００３２】
本明細書で説明するシステムは、ローカルに記憶された、および／またはシンプロビジョニングストレージシステム上に記されたデータを複製してもよい。例えば、図２に示す例において、複製エージェント２０８は、シンプロビジョニングストレージシステム２３２上に記憶されたデータを複製してもよい（例えば、複製エージェント２０８は、シンプロビジョニングストレージシステム２３２のＬＵＮ２３４（１）内の複製源２０２に割り当てられたデータを複製ターゲット２２２に複製してもよい）。同様に、図３における複製エージェント３０８は、ローカルに記憶されたデータセット３３４（１）を、複製源３０２から複製ターゲット３２２に複製してもよい。
【００３３】
図４に戻ると、ステップ４０４において、本明細書で説明するシステムは、複製されたデータ内の未使用記憶空間を識別してもよい。例えば、図１における識別モジュール１０６は、複製源２０２および／または複製ターゲット２２２の一部として（例えば、アプリケーション２０４、ファイルシステム２０６、複製エージェント２０８、および／または複製エージェント２２８の一部として）、複製源２０２から複製ターゲット２２２に複製されたデータ内の未使用記憶空間を識別してもよい。同様に、識別モジュール１０６は、図３における複製源３０２および／または複製ターゲット３２２の一部として（例えば、アプリケーション３０４、ファイルシステム３０６、複製エージェント３０８、および／または複製エージェント３２８の一部として）、複製源３０２から複製ターゲット３２２に複製されたデータ内の未使用記憶空間を識別してもよい。
【００３４】
本明細書で説明するシステムは、複製されたデータ内の未使用記憶空間を様々な方法および様々な文脈で識別してもよい。例えば、ステップ４０４の全てまたは一部は、複製源、複製ターゲット、またはそれらの組み合わせによって実行してもよい。
【００３５】
例えば、複製ターゲット２２２は、複製源２０２から複製されたデータ内の未使用記憶空間を識別する情報を複製源２０２から受信することによって、ステップ４０４を実行してもよい。例えば、識別モジュール１０６は、図２における複製源２０２上のアプリケーション２０４、ファイルシステム２０６、および／または複製エージェント２０８の一部として、１）割り当てられた空間２３５内の記憶空間の未使用部分２３９（１）を（例えば、アプリケーションまたはファイルシステムＡＰＩを用いて）識別してもよく、次に２）この未使用記憶空間を識別する情報を複製ターゲット２２２に送信してもよい。同様に、識別モジュール１０６は、図３における複製源３０２上のアプリケーション３０４、ファイルシステム３０６、および／または複製エージェント３０８の一部として、１）データセット３３４（１）の未使用部分３３９（１）を（例えば、アプリケーションまたはファイルシステムＡＰＩを用いて）識別してもよく、次に２）この未使用記憶空間を識別する情報を複製ターゲット３２２に送信してもよい。
【００３６】
いくつかの例において、識別モジュール１０６は、この空き空間情報を、図２における帯域内通信プロトコル２１０などの帯域内通信プロトコルを介して複製源から複製ターゲットに送信してもよい。本明細書で用いられるような語句「帯域内通信プロトコル」は、同じ通信帯域内で、複製されたデータおよびこの複製されたデータに関連するメタデータの両方を転送可能な任意のタイプまたは形態の通信機構を指してもよい。帯域内通信プロトコルの例には、限定するわけではないが、ＶＥＲＩＴＡＳ  ＶＯＬＵＭＥ  ＲＥＰＬＩＣＡＴＯＲによって用いられるＩＢＣ  ＡＰＩが含まれる。
【００３７】
いくつかの例において、複製ターゲット２２２は、複製ターゲット２２２によって発行された要求に応じた空き空間情報を複製源２０２から受信してもよい。例えば、識別モジュール１０６は、複製ターゲット２２２の一部として、１）複製源２０２に空き空間情報を要求し、次に２）この空き空間情報を複製源２０２から受信してもよい。複製ターゲット２２２は、例えば周期的および必要な場合を含む様々な文脈において、この情報を複製源２０２に要求してもよい。
【００３８】
いくつかの例において、複製源から受信された空き空間情報は、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに（例えば、シンプロビジョニングＡＰＩを介して）複製源から元々は送信された、インターセプトされた再利用要求を表してもよい。例えば、識別モジュール１０６は、（例えば、複製源２０２上の複製エージェント２０８用の一部として）ＡＰＩ２４０を介してアプリケーション２０４および／またはファイルシステム２０６によりシンプロビジョニングストレージシステム２３２へ発行された再利用要求をインターセプトして、割り当てられた空間２３５（１）の未使用部分２３９（１）を再利用してもよい。この再利用要求をインターセプトすると、識別モジュール１０６は、この再利用要求を、帯域内通信プロトコル２１０を介して複製ターゲット２２２に送信してもよい。次に、複製ターゲット２２２は、このインターセプトされた再利用要求を用いて、複製源２０２から複製されたデータ内の未使用記憶空間を識別してもよい。
【００３９】
いくつかの例において、複製源から受信された空き空間情報は、複製源で実行されたコンピューティング動作によって解放された記憶空間を識別してもよい。例えば、識別モジュール１０６は、図３における複製源３０２上のアプリケーション３０４、ファイルシステム３０６、および／または複製エージェント３０８の一部として、アプリケーション３０４および／またはファイルシステム３０６により実行されたコンピューティング動作によって解放された記憶空間（例えば、データセット３３４（１）の未使用部分３３９（１））を識別してもよい。次に、識別モジュール１０６は、コンピューティング動作によって解放された記憶空間（例えば、未使用部分３３９（１））を識別する情報を、帯域内通信プロトコル３１０を介して複製ターゲット３２２に送信してもよい。
【００４０】
上記の例において、語句「コンピューティング動作」は、ストレージシステム内の空間を解放できる任意のタイプまたは形態のコンピューティング動作を指してもよい。かかるコンピューティング動作の例には、限定するわけではないが、デフラグメント動作、ファイル削除動作等が含まれる。かかる動作は、アプリケーション（アプリケーション３０４など）、ファイルシステム（ファイルシステム３０６など）等によって実行してもよい。
【００４１】
別の例において、複製ターゲットは、１）データ複製を停止することと、次に２）データ管理ＡＰＩを用いて、複製されたデータ内の未使用記憶空間を識別することと、により、ステップ４０４において、複製されたデータ内の未使用記憶空間を識別してもよい。例えば、図１における複製モジュール１０４は、図２における複製ターゲット２２２の一部として（例えば、複製エージェント２２８の一部として）、複製源２０２から複製ターゲット２２２へのデータの複製を停止または休止するように、（例えば、帯域内指示プロトコル２１０を介して）複製源２０２に命令してもよい。この命令を受信すると、複製エージェント２０８（上記で詳述したように図１の複製モジュール１０４を含んでもよい）は、複製源２０２における複製されたデータを整合状態にしてもよい。例えば、複製エージェント２０８は、アプリケーション２０４および／またはファイルシステム２０６の動作を凍結または停止し、かくしてシンプロビジョニングストレージシステム２３２内で複製源２０２に割り当てられたストレージ（例えば、割り当てられた空間２３５（１））が、整合状態であることを保証してもよい。次に、複製エージェント２０８は、複製されたデータ（この例において、シンプロビジョニングストレージシステム２３２によって複製源に２０２に割り当てられたストレージ）が整合状態であることを示す通信を、（例えば、帯域内通信プロトコル２１０を介して）複製源２０２から複製ターゲット２２２に送信してもよい。
【００４２】
この通信を複製源２０２から受信すると、複製ターゲット２２２は、１）全ての未完の複製書き込みの適用を差し控え、次に２）データ管理ＡＰＩを用いて、シンプロビジョニングストレージシステム２５２上の割り当てられた空間２５５（１）内の未使用記憶空間を識別してもよい。例えば、図１の識別モジュール１０６は、図２における複製ターゲット２２２の一部として、ファイルシステムＡＰＩおよび／またはアプリケーションＡＰＩを用いて、シンプロビジョニングストレージシステム２５２上の割り当てられた空間２５５（１）内の未使用部分２５９（１）を識別してもよい。この未使用記憶空間を再利用すると（ステップ４０６および４０８に関連して以下で詳述する方法で）、複製ターゲット２２２上の複製エージェント２２８は、複製源２０２に、データ複製を再開するように命令してもよい。
【００４３】
図４に戻ると、ステップ４０６において、本明細書で説明するシステムは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから、ステップ４０４で識別された未使用記憶空間を再利用するための再利用要求を生成してもよい。例えば、図１における再利用モジュール１０８は、図２における複製ターゲット２２２の一部として、シンプロビジョニングストレージシステム２５２から未使用部分２５９（１）を再利用するための再利用要求を生成してもよい。同様に、図１の再利用モジュール１０８は、図３における複製ターゲット３２２の一部として、シンプロビジョニングストレージシステム３５２から未使用部分３５９（１）を再利用するための再利用要求を生成してもよい。
【００４４】
本明細書で説明するシステムは、様々な方法でステップ４０６を実行してもよい。一例において、再利用モジュール１０８は、図２および３におけるＡＰＩ２４０および３４０などのシンプロビジョニングＡＰＩを用いて、再利用要求を生成してもよい。
【００４５】
ステップ４０８において、本明細書で説明するシステムは、シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行してもよい。例えば、図１における再利用モジュール１０８は、未使用部分２５９（１）を再利用するために、図２における複製ターゲット２２２の一部として、ステップ４０６で生成された再利用要求をシンプロビジョニングストレージシステム２５２に発行してもよい。同様に、図１における再利用モジュール１０８は、未使用部分３５９（１）を再利用するために、図３における複製ターゲット３２２の一部として、ステップ４０６で生成された再利用要求をシンプロビジョニングストレージシステム３５２に発行してもよい。
【００４６】
本明細書で説明するシステムは、様々な方法でステップ４０８を実行してもよい。一例において、再利用モジュール１０８は、図２および３におけるＡＰＩ２４０および３４０などのシンプロビジョニングＡＰＩを用いて、再利用要求を発行してもよい。ステップ４０８が完了すると、図４における例示的な方法４００は、終了してもよい。
【００４７】
上記で詳述したように、本明細書で説明するシステムおよび方法によって、複製ターゲットは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用することが可能になり得る。かかるものとして、これらのシステムおよび方法は、システム管理者が、シンプロビジョニングストレージ環境内で複製ソリューションを展開させることができるようにし、潜在的な空間的および金銭的節約を結果としてもたらし得る。
【００４８】
図５は、本明細書で説明および／または図示する実施形態の１つまたは複数を実行できる例示的なコンピューティングシステム５１０のブロック図である。コンピューティングシステム５１０は、コンピュータ可読命令を実行できる任意のシングルもしくはマルチプロセッサコンピューティング装置またはシステムを広く表す。コンピューティングシステム５１０の例には、限定するわけではないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルド装置、または任意の他のコンピューティングシステムもしくは装置が含まれる。コンピューティングシステム５１０には、その最も基本的な構成において、少なくとも１つのプロセッサ５１４およびシステムメモリ５１６を含んでもよい。
【００４９】
プロセッサ５１４は、一般に、データを処理できるかまたは命令を解釈および実行できる任意のタイプまたは形態の処理装置を表す。ある実施形態において、プロセッサ５１４は、ソフトウェアアプリケーションまたはモジュールから命令を受信してもよい。これらの命令は、本明細書で説明および／または図示する例示的な実施形態の１つまたは複数の機能を、プロセッサ５１４に実行させてもよい。例えば、プロセッサ５１４は、本明細書で説明する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。プロセッサ５１４はまた、本明細書で説明および／または図示する任意の他のステップ、方法またはプロセスを実行するか、かつ／または実行するための手段であってもよい。
【００５０】
システムメモリ５１６は、一般に、データおよび／または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の揮発性または不揮発性記憶装置または媒体を表す。システムメモリ５１６の例には、限定するわけではないが、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、または任意の他の適切なメモリ装置が含まれる。要求はされないが、ある実施形態において、コンピューティングシステム５１０には、揮発性メモリユニット（例えば、システムメモリ５１６など）および不揮発性記憶装置（例えば、以下で詳細に説明するような主記憶装置５３２など）の両方を含んでもよい。一例において、図１のモジュール１０２の１つまたは複数は、システムメモリ５１６にロードしてもよい。
【００５１】
ある実施形態において、例示的なコンピューティングシステム５１０にはまた、プロセッサ５１４およびシステムメモリ５１６に加えて１つまたは複数のコンポーネントまたは要素を含んでもよい。例えば、図５に示すように、コンピューティングシステム５１０には、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、および通信インターフェース５２２を含んでもよく、これらのそれぞれは、通信インフラストラクチャ５１２を介して相互接続してもよい。通信インフラストラクチャ５１２は、一般に、コンピューティング装置の１つまたは複数のコンポーネント間の通信を促進できる任意のタイプまたは形態のインフラストラクチャを表す。通信インフラストラクチャ５１２の例には、限定するわけではないが、通信バス（ＩＳＡ、ＰＣＩ、ＰＣＩｅまたは類似のバスなど）およびネットワークが含まれる。
【００５２】
メモリコントローラ５１８は、一般に、メモリもしくはデータを扱うか、またはコンピューティングシステム５１０の１つまたは複数のコンポーネント間の通信を制御することができる任意のタイプまたは形態の装置を表す。例えば、ある実施形態において、メモリコントローラ５１８は、通信インフラストラクチャ５１２を介して、プロセッサ５１４、システムメモリ５１６、およびＩ／Ｏコントローラ５２０間の通信を制御してもよい。ある実施形態において、メモリコントローラ５１８は、複製、識別、生成、再利用、発行、受信、送信、要求、停止、使用、および再開など、本明細書で説明および図示するステップまたは機能の１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。
【００５３】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティング装置の入力および出力機能を調整および／または制御できる任意のタイプまたは形態のモジュールを表す。例えば、ある実施形態において、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、および記憶インターフェース５３４など、コンピューティングシステム５１０の１つまたは複数の要素間におけるデータ転送を制御または促進してもよい。Ｉ／Ｏコントローラ５２０は、例えば、本明細書で説明する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段となるように用いてもよい。Ｉ／Ｏコントローラ５２０はまた、本開示で述べる他のステップおよび機能を実行するか、かつ／または実行するための手段となるように用いてもよい。
【００５４】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つまたは複数の追加装置との間の通信を促進できる任意のタイプまたは形態の通信装置またはアダプタを広く表す。例えば、ある実施形態において、通信インターフェース５２２は、コンピューティングシステム５１０と、追加コンピューティングシステムを含むプライベートまたはパブリックネットワークとの間の通信を促進してもよい。通信インターフェース５２２の例には、限定するわけではないが、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、および任意の他の適切なインターフェースが含まれる。少なくとも一実施形態において、通信インターフェース５２２は、インターネットなどのネットワークへの直接リンクを介して、遠隔サーバへの直接接続を提供してもよい。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続、または任意の他の適切な接続を通して、かかる接続を間接的に提供してもよい。
【００５５】
ある実施形態において、通信インターフェース５２２はまた、外部バスまたは通信チャネルを介して、コンピューティングシステム５１０と１つまたは複数の追加ネットワークまたは記憶装置との間の通信を促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例には、限定するわけではないが、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡおよびｅＳＡＴＡホストアダプタ、ＡＴＡおよびＰＡＴＡホストアダプタ、ファイバチャンネルインターフェースアダプタ、イーサネットアダプタ等が含まれる。また、通信インターフェース５２２によって、コンピューティングシステム５１０は、分散または遠隔コンピューティングに従事することが可能になり得る。例えば、通信インターフェース５２２は、実行用に、遠隔装置から命令を受信するか、または遠隔装置に命令を送信してもよい。ある実施形態において、通信インターフェース５２２は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。通信インターフェース５２２はまた、本開示で述べる他のステップおよび機能を実行するか、かつ／または実行するための手段となるように用いてもよい。
【００５６】
図５に示すように、コンピューティングシステム５１０にはまた、ディスプレイアダプタ５２６を介して通信インフラストラクチャ５１２に結合される少なくとも１つのディスプレイ装置５２４を含んでもよい。ディスプレイ装置５２４は、一般に、ディスプレイアダプタ５２６によって転送された情報を視覚的に表示できる任意のタイプまたは形態の装置を表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイ装置５２４における表示のために、通信インフラストラクチャ５１２から（または当該技術分野において周知のようなフレームバッファから）グラフィックス、テキストおよび他のデータを転送するように構成された任意のタイプまたは形態の装置を表す。
【００５７】
図５に示すように、例示的なコンピューティングシステム５１０にはまた、入力インターフェース５３０を介して通信インフラストラクチャ５１２に結合される少なくとも１つの入力装置５２８を含んでもよい。入力装置５２８は、一般に、コンピュータまたは人間によって生成された入力を例示的なコンピューティングシステム５１０に供給できる任意のタイプまたは形態の装置を表す。入力装置５２８の例には、限定するわけではないが、キーボード、ポインティング装置、音声認識装置、または任意の他の入力装置が含まれる。少なくとも一実施形態において、入力装置５２８は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。入力装置５２８はまた、本開示で述べる他のステップおよび機能を実行するか、かつ／または実行するための手段となるように用いてもよい。
【００５８】
図５に示すように、例示的なコンピューティングシステム５１０にはまた、記憶インターフェース５３４を介して通信インフラストラクチャ５１２に結合される主記憶装置５３２およびバックアップ記憶装置５３３を含んでもよい。記憶装置５３２および５３３は、一般に、データおよび／または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。例えば、記憶装置５３２および５３３は、磁気ディスク装置（例えば、いわゆるハードドライブ）、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ等であってもよい。記憶インターフェース５３４は、一般に、コンピューティングシステム５１０の記憶装置５３２および５３３と他のコンポーネントとの間でデータを転送するための任意のタイプまたは形態のインターフェースまたは装置を表す。一例において、図１のデータベース１２０は、主記憶装置５３２に記憶してもよい。
【００５９】
ある実施形態において、記憶装置５３２および５３３は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されたリムーバブル記憶ユニットから読み出すか、かつ／またはそこに書き込むように構成してもよい。適切なリムーバブル記憶ユニットの例には、限定するわけではないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置等が含まれる。記憶装置５３２および５３３にはまた、コンピュータソフトウェア、データ、または他のコンピュータ可読命令をコンピューティングシステム５１０にロードできるようにするための他の類似構造または装置を含んでもよい。例えば、記憶装置５３２および５３３は、ソフトウェア、データ、または他のコンピュータ可読情報を読み出し、かつ書き込むように構成してもよい。記憶装置５３２および５３３はまた、コンピューティングシステム５１０の一部であってもよく、または他のインターフェースシステムを介してアクセスされる別個の装置であってもよい。
【００６０】
ある実施形態において、記憶装置５３２および５３３は、例えば、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段となるように用いてもよい。記憶装置５３２および５３３はまた、本開示で述べる他のステップおよび機能を実行するか、かつ／または実行するための手段となるように用いてもよい。
【００６１】
多くの他の装置またはサブシステムを、コンピューティングシステム５１０に接続してもよい。反対に、図５に示すコンポーネントおよび装置の全てが、本明細書で説明および／または図示する実施形態を実行するために存在する必要があるわけではない。上記で参照した装置およびサブシステムはまた、図５に示す方法とは異なる方法で相互接続してもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、および／またはハードウェア構成を用いてもよい。本明細書で開示する例示的な実施形態の１つまたは複数は、例えば、コンピュータ可読媒体上のコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ばれる）としてコード化してもよい。語句「コンピュータ可読媒体」は、一般に、コンピュータ可読命令を記憶または担持できる任意の形態の装置、キャリア、または媒体を指す。コンピュータ可読媒体の例には、限定するわけではないが、搬送波などの伝送型媒体、および磁気記憶媒体（例えば、ハードディスクドライブおよびフロッピーディスク）、光記憶媒体（例えば、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、電子記憶媒体（例えば、ソリッドステートドライブおよびフラッシュ媒体）などの物理媒体、ならびに他の分散システムが含まれる。
【００６２】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム５１０にロードしてもよい。次に、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全てまたは一部は、システムメモリ５１６、ならびに／または記憶装置５３２および５３３の様々な部分に記憶してもよい。プロセッサ５１４によって実行される場合に、コンピューティングシステム５１０にロードされたコンピュータプログラムが、本明細書で説明および／または図示する例示的な実施形態の１つまたは複数における機能を、プロセッサ５１４に実行させるか、かつ／またはプロセッサ５１４を実行するための手段にしてもよい。追加または代替として、本明細書で説明および／または図示する例示的な実施形態の１つまたは複数は、ファームウェアおよび／またはハードウェアにおいて実行してもよい。例えば、コンピューティングシステム５１０は、本明細書で開示する例示的な実施形態の１つまたは複数を実行するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成してもよい。
【００６３】
図６は、例示的なネットワークアーキテクチャ６００のブロック図であり、そこでは、クライアントシステム６１０、６２０、６３０、ならびにサーバ６４０および６４５は、ネットワーク６５０に結合してもよい。クライアントシステム６１０、６２０および６３０は、一般に、図５における例示的なコンピューティングシステム５１０など、任意のタイプまたは形態のコンピューティング装置またはシステムを表す。
【００６４】
同様に、サーバ６４０および６４５は、一般に、様々なデータベースサービスを提供し、かつ／またはあるソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバまたはデータベースサーバなどのコンピューティング装置またはシステムを表す。ネットワーク６５０は、一般に、例えば、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、またはインターネットを含む任意の電気通信またはコンピュータネットワークを表す。一例において、クライアントシステム６１０、６２０および／もしくは６３０で、ならびに／またはサーバ６４０および／もしくは６４５は、図１のモジュール１０２を含んでもよい。
【００６５】
図６に示すように、１つまたは複数の記憶装置６６０（１）−（Ｎ）は、サーバ６４０に直接装着してもよい。同様に、１つまたは複数の記憶装置６７０（１）−（Ｎ）は、サーバ６４５に直接装着してもよい。記憶装置６６０（１）−（Ｎ）および記憶装置６７０（１）−（Ｎ）は、一般に、データおよび／または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。ある実施形態において、記憶装置６６０（１）−（Ｎ）および記憶装置６７０（１）−（Ｎ）は、ＮＦＳ、ＳＭＢまたはＣＩＦＳなどの様々なプロトコルを用いて、サーバ６４０および６４５と通信するように構成されたネットワーク接続ストレージ（ＮＡＳ）装置を表してもよい。
【００６６】
サーバ６４０および６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続してもよい。ＳＡＮファブリック６８０は、一般に、複数の記憶装置間の通信を促進できる任意のタイプまたは形態のコンピュータネットワークまたはアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０および６４５と、複数の記憶装置６９０（１）−（Ｎ）および／またはインテリジェント記憶アレイ６９５との間の通信を促進してもよい。ＳＡＮファブリック６８０はまた、装置６９０（１）−（Ｎ）およびアレイ６９５が、クライアントシステム６１０、６２０および６３０にローカルに装着された装置として現れるような方法で、ネットワーク６５０ならびにサーバ６４０および６４５を介して、クライアントシステム６１０、６２０、６３０と、記憶装置６９０（１）−（Ｎ）および／またはインテリジェント記憶アレイ６９５との間の通信を、促進してもよい。記憶装置６６０（１）−（Ｎ）および記憶装置６７０（１）−（Ｎ）と同様に、記憶装置６９０（１）−（Ｎ）およびインテリジェント記憶アレイ６９５は、一般に、データおよび／または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。
【００６７】
ある実施形態において、かつ図５の例示的なコンピューティングシステム５１０に関連して、図５における通信インターフェース５２２などの通信インターフェースを用いて、各クライアントシステム６１０、６２０および６３０とネットワーク６５０との間の接続を提供してもよい。クライアントシステム６１０、６２０および６３０は、例えばウェブブラウザまたは他のクライアントソフトウェアを用いて、サーバ６４０または６４５上の情報にアクセスすることができる。かかるソフトウェアによって、クライアントシステム６１０、６２０および６３０は、サーバ６４０、サーバ６４５、記憶装置６６０（１）−（Ｎ）、記憶装置６７０（１）−（Ｎ）、記憶装置６９０（１）−（Ｎ）、またはインテリジェント記憶アレイ６９５によりホストされる情報にアクセスすることが可能になる。図６は、データを交換するためにネットワーク（インターネットなど）を使用することを示すが、本明細書で説明および／または図示する実施形態は、インターネットにも、どんな特定のネットワークベースの環境にも限定されない。
【００６８】
少なくとも一実施形態において、本明細書で開示する例示的な実施形態の１つまたは複数における全てまたは一部は、コンピュータプログラムとしてコード化し、サーバ６４０、サーバ６４５、記憶装置６６０（１）−（Ｎ）、記憶装置６７０（１）−（Ｎ）、記憶装置６９０（１）−（Ｎ）、インテリジェント記憶アレイ６９５、またはそれらの任意の組み合わせにロードし、かつそれらによって実行してもよい。本明細書で開示する例示的な実施形態の１つまたは複数における全てまたは一部はまた、コンピュータプログラムとしてコード化し、サーバ６４０に記憶し、サーバ６４５によって実行し、かつネットワーク６５０を通じてクライアントシステム６１０、６２０および６３０に分配してもよい。したがって、ネットワークアーキテクチャ６００は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの１つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。ネットワークアーキテクチャ６００はまた、本開示で述べる他のステップおよび機能を実行するか、かつ／または実行するための手段となるように用いてもよい。
【００６９】
上記で詳述したように、コンピューティングシステム５１０および／またはネットワークアーキテクチャ６００の１つまたは複数のコンポーネントは、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的な方法の１つまたは複数のステップを、単独でまたは他の要素と一緒に実行するか、かつ／または実行するための手段であってもよい。一例において、かかる方法には、１）複製源から複製ターゲットにデータを複製することと、２）複製されたデータ内の未使用記憶空間を識別することと、３）複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するための再利用要求を生成することと、次に４）シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、再利用要求をシンプロビジョニングストレージシステムに発行することと、を含んでもよい。
【００７０】
いくつかの例において、複製源から複製ターゲットにデータを複製することには、ブロックベースまたはファイルベースの複製技術を用いてデータを複製することを含んでもよい。さらに、複製源は、サーバコンピューティング装置を表してもよく、複製ターゲットは、クライアントコンピューティング装置を表してもよい。
【００７１】
一例において、複製されたデータ内の未使用記憶空間を識別することには、未使用記憶空間を識別する情報を複製源から受信することを含んでもよい。いくつかの例において、この情報には、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに複製源から元々は送信された、インターセプトされた再利用要求を含んでもよい。他の例において、この情報は、複製源で実行されたコンピューティング動作によって解放された記憶空間を識別してもよい。
【００７２】
いくつかの実施形態において、複製源から情報を受信することには、帯域内通信プロトコルを介して情報を受信することを含んでもよい。複製源から情報を受信することにはまた、１）複製源に情報を要求することと、次に２）要求に応じた複製源からの情報を受信することと、を含んでもよい。いくつかの例において、複製源に情報を要求することには、周期的におよび／または必要に応じて複製源に情報を要求することを含んでもよい。
【００７３】
一例において、複製されたデータ内の未使用記憶空間を識別することには、１）データ複製を停止することと、次に２）データ管理ＡＰＩを用いて、複製ターゲットにおけるデータの複製内の未使用記憶空間を識別することと、を含んでもよい。この例において、データ複製を停止することには、１）複製源における複製されたデータを整合状態にすることと、次に２）複製されたデータが整合状態にあることを示す通信を複製源から受信することと、を含んでもよい。この例において、方法にはまた、再利用要求を発行するとデータ複製を再開することを含んでもよい。データ管理ＡＰＩには、ファイルシステムＡＰＩおよび／またはアプリケーションＡＰＩを含んでもよい。
【００７４】
前述の開示は、特定のブロック図、フローチャート、および例を用いて様々な実施形態を説明したが、本明細書で説明および／または図示する各ブロック図の要素、フローチャートのステップ、動作、および／またはコンポーネントは、広範囲なハードウェア、ソフトウェア、もしくはファームウェア（またはそれらの任意の組み合わせ）構成を用いて、個別に、かつ／または集団的に実現してもよい。さらに、他のコンポーネント内に含まれるコンポーネントのどんな開示もまた、本質的に例示的であると考えるべきである。なぜなら、同じ機能を達成するために他の多くのアーキテクチャを実現することができるからである。
【００７５】
いくつかの例において、図１における例示的なシステム１００の全てまたは一部は、クラウドコンピューティングまたはネットワークベース環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供してもよい。これらのクラウドベースサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットホーム、サービスとしてのインフラストラクチャ等）は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能であってもよい。本明細書で説明する様々な機能は、遠隔デスクトップ環境または任意の他のクラウドベースコンピュータ環境を介して提供してもよい。
【００７６】
本明細書で説明および／または図示するステップのプロセスパラメータおよびシーケンスは、例としてのみ与えられており、必要に応じて変更することができる。例えば、本明細書で図示および／または説明するステップは、特定の順序で図示または説明してもよいが、これらのステップは、必ずしも図示または説明される順序で実行する必要はない。本明細書で説明および／または図示する様々な例示的な方法はまた、本明細書で説明または図示するステップの１つもしくは複数を省略してもよく、または開示されるステップに加えて追加ステップを含んでもよい。
【００７７】
完全に機能的なコンピューティングシステムの文脈において、様々な実施形態を本明細書で説明および／または図示したが、これらの例示的な実施形態の１つまたは複数は、分散を実際に実行するために用いられる特定のタイプのコンピュータ可読媒体に関係なく、プログラムプロダクトとして様々な形態で分散してもよい。本明細書で開示する実施形態はまた、あるタスクを実行するソフトウェアモジュールを用いて実行してもよい。これらのソフトウェアモジュールには、コンピュータ可読記憶媒体またはコンピューティングシステムに記憶可能なスクリプト、バッチ、または他の実行可能ファイルを含んでもよい。いくつかの実施形態において、これらのソフトウェアモジュールは、本明細書で開示する例示的な実施形態の１つまたは複数を実行するようにコンピューティングシステムを構成してもよい。
【００７８】
さらに、本明細書で説明するモジュールの１つまたは複数は、データ、物理装置、および／または物理装置の表現を、ある形態から別の形態へと変形してもよい。例えば、図１における再利用モジュール１０８は、シンプロビジョニングストレージシステム２５２および／または３５２から未使用記憶空間（例えば、未使用部分２５９（１）および／または３５９（１））を再利用することによって、図２および３におけるシンプロビジョニングストレージシステム２５２および／または３５３の特性または特徴を変形してもよい。
【００７９】
前述の説明は、当業者が、本明細書で開示する例示的な実施形態の様々な態様を最も良く利用できるようにするために提供された。この例示的な説明は、網羅的であるようにも、開示されるいずれかの形態に正確に限定されるようにも意図されていない。多くの修正および変更が、本開示の趣旨および範囲から逸脱せずに可能である。本明細書で開示する実施形態は、全ての点において、実例であり限定ではないと考えるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照するべきである。
【００８０】
特に断りのない限り、明細書および特許請求の範囲において用いられるような用語「ａ」または「ａｎ」は、「〜の少なくとも１つ」を意味すると解釈するべきである。さらに、使い易さのために、明細書および特許請求の範囲において用いられるような単語「含む（ｉｎｃｌｕｄｉｎｇ）」および「有する（ｈａｖｉｎｇ）」は、「含む（ｃｏｍｐｒｉｓｉｎｇ）」と交換可能であり、かつそれと同じ意味を有する。
【図１】
2013520747.tif 000003
【図２】
2013520747.tif 000004
【図３】
2013520747.tif 000005
【図４】
2013520747.tif 000006
【図５】
2013520747.tif 000007
【図６】
2013520747.tif 000008
【手続補正書】
【提出日】平成24年8月28日(2012.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのコンピュータ実行方法であって、前記方法の少なくとも一部が、少なくとも１つのプロセッサを含むコンピューティング装置によって実行され、前記方法が、
複製源から複製ターゲットにデータを複製することと、
前記複製されたデータ内の未使用記憶空間を識別することと、
前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成することと、
前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに前記再利用要求を発行することと、
を含む方法。
【請求項２】
前記複製源から前記複製ターゲットにデータを複製することが、
ブロックベースの複製技術を用いて前記データを複製することと、
ファイルベースの複製技術を用いて前記データを複製することと、
を含む、請求項１に記載の方法。
【請求項３】
前記複製されたデータ内の未使用記憶空間を識別することが、前記未使用記憶空間を識別する情報を前記複製源から受信することを含む、請求項１または２に記載の方法。
【請求項４】
前記情報が、前記複製源用にシンプロビジョニングストレージを提供する前記シンプロビジョニングストレージシステムに前記複製源から元々は送信された、インターセプトされた再利用要求を含む、請求項３に記載の方法。
【請求項５】
前記情報が、前記複製源において実行されたコンピューティング動作によって解放された記憶空間を識別する、請求項３または４に記載の方法。
【請求項６】
前記複製源から前記情報を受信することが、帯域内通信プロトコルを介して前記情報を受信することを含む、請求項３〜５のいずれか一項に記載の方法。
【請求項７】
前記複製源から前記情報を受信することが、
前記複製源に前記情報を要求することと、
要求に応じた前記複製源からの前記情報を受信することと、
を含む、請求項３〜６のいずれか一項に記載の方法。
【請求項８】
前記複製源に前記情報を要求することが、
周期的に前記複製源に前記情報を要求することと、
必要に応じて前記複製源に前記情報を要求することと、
の少なくとも１つを含む、請求項７に記載の方法。
【請求項９】
前記複製されたデータ内の未使用記憶空間を識別することが、
データ複製を停止することと、
データ管理ＡＰＩを用いて、前記複製ターゲットにおいて前記データの複製内の未使用記憶空間を識別することと、
を含む、請求項１〜３のいずれか一項に記載の方法。
【請求項１０】
データ複製を停止することが、
前記複製源における前記複製されたデータを整合状態にすることと、
前記複製されたデータが整合状態であることを示す通信を前記複製源から受信することと、
を含む、請求項９に記載の方法。
【請求項１１】
前記データ管理ＡＰＩが、
ファイルシステムＡＰＩと、
アプリケーションＡＰＩと、
の少なくとも１つを含む、請求項１〜３、９または１０のいずれか一項に記載の方法。
【請求項１２】
前記再利用要求を発行するとデータ複製を再開することをさらに含む、請求項１〜３または９〜１１のいずれか一項に記載の方法。
【請求項１３】
前記複製源が、サーバコンピューティング装置を含み、
前記複製ターゲットが、クライアントコンピューティング装置を含む、請求項１〜３または９のいずれか一項に記載の方法。
【請求項１４】
複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムであって、
複製源から複製ターゲットにデータを複製するようにプログラムされた複製モジュールと、
前記複製されたデータ内の未使用記憶空間を識別するようにプログラムされた識別モジュールと、
再利用モジュールであって、
前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成するように、
前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに再利用要求を発行するようにプログラムされた再利用モジュールと、
前記複製モジュール、前記識別モジュール、および前記再利用モジュールを実行するように構成された少なくとも１つのプロセッサと、
を含むシステム。
【請求項１５】
前記識別モジュールが、未使用記憶空間を識別する、前記複製源から受信された情報を識別することによって、前記複製されたデータ内の前記未使用記憶空間を識別する、請求項１４に記載のシステム。
【国際調査報告】
2013520747.tif 000009
2013520747.tif 000010
2013520747.tif 000011