JP5701320B2 - 複製ターゲットがシンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法 - Google Patents

複製ターゲットがシンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法 Download PDF

Info

Publication number
JP5701320B2
JP5701320B2 JP2012554995A JP2012554995A JP5701320B2 JP 5701320 B2 JP5701320 B2 JP 5701320B2 JP 2012554995 A JP2012554995 A JP 2012554995A JP 2012554995 A JP2012554995 A JP 2012554995A JP 5701320 B2 JP5701320 B2 JP 5701320B2
Authority
JP
Japan
Prior art keywords
replication
data
reuse
thin provisioning
storage space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012554995A
Other languages
English (en)
Other versions
JP2013520747A (ja
Inventor
ペンドハーカー・ニランジャン
ヴァマン マラセ・シェイリッシェ
ヴァマン マラセ・シェイリッシェ
タタヴァーティ・ヴェンカタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of JP2013520747A publication Critical patent/JP2013520747A/ja
Application granted granted Critical
Publication of JP5701320B2 publication Critical patent/JP5701320B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

多くの組織が、それらのアプリケーションおよび/またはデータの信頼性、耐故障性および/またはアクセス可能性を改善するために、データ複製に頼る。データ複製には、典型的には、主要なサイトまたは装置(アプリケーションサーバなど)から第2の(すなわちバックアップ)サイトまたは装置(「複製ターゲット」としても知られている)にデータを複製すること(例えば、受動的または能動的方法で)が含まれる。
データ複製中に生成される高データ量ゆえに、データ複製サービスのプロバイダは、記憶コストを最小化しながらデータ記憶性能を最大化しようと長い間努力してきた。それゆえに、プロバイダの中には、利用可能な記憶空間を効率的に使用しようと努力して、シンプロビジョニングソリューションに注意を向けたところもある。シンプロビジョニングソリューションは、典型的には、記憶空間が無駄になるのを防ごうと、必要に応じてかまたはジャストインタイム方式で、共通プールからコンピューティングシステムに記憶空間を割り当てる。
残念ながら、典型的なファイルレベルまたはブロックレベルの複製技術は、複製ターゲットが、主要なサイト(アプリケーションサーバなど)から複製されたデータ内の空いたまたは未使用部分を識別するのを妨げる可能性がある。例えば、複製ターゲットは、データを生成する場合に主要なサイトによって用いられる様々なアプリケーションおよび/またはファイルシステムAPIへのアクセスなしでは、主要なサイトから受信されたアプリケーションもファイルシステムデータも解釈できない可能性がある。この知識なしでは、複製ターゲットは、複製されたデータを記憶するためにシンプロビジョニングストレージシステムを効果的に利用することができない可能性がある。なぜなら、複製ターゲットが、シンプロビジョニングストレージシステム上に記憶された、複製されたデータ内の空いたまたは未使用記憶空間を識別(および続いてシンプロビジョニングストレージシステムに再利用するように命令)することができないからである。
以下でより詳細に説明するように、本開示は、一般に、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法に関する。一例において、本明細書で説明する様々なシステムの1つまたは複数は、かかるタスクを、1)(例えば、ファイルレベルまたはブロックレベルの複製技術を用いて)複製源(サーバなど)から複製ターゲットにデータを複製することと、2)(本明細書で説明する方法の1つまたは複数を用いて)複製されたデータ内の未使用記憶空間を識別することと、3)複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するための再利用要求を生成することと、次に4)シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行することと、によって達成してもよい。
本明細書で説明するシステムは、様々な方法および様々な文脈において、複製されたデータ内の未使用記憶空間を識別してもよい。一例において、複製ターゲットは、未使用記憶空間を識別する複製源から(例えば、帯域内通信プロトコルを介して)情報を受信することによって、複製されたデータ内の未使用記憶空間を識別してもよい。いくつかの例において、この空き空間情報には、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに複製源から元々は送信された、インターセプトされた再利用要求を含んでもよい。他の例において、この空き空間情報は、複製源において実行されたコンピューティング動作(デフラグメント動作またはファイル削除動作など)によって解放された記憶空間を識別してもよい。
いくつかの例において、複製ターゲットは、複製ターゲットによって発行された要求に応じた、複製源からのこの空き空間情報を受信してもよい。例えば、周期的および/または必要に応じて空き空間情報を、複製ターゲットは要求してもよく(かつ複製源は、それに応じて提供してもよい)。
別の例において、複製ターゲットは、1)データ複製を停止することと、次に2)データ管理API(ファイルシステムおよび/またはアプリケーションAPIなど)を用いて、複製されたデータ内の未使用記憶空間を独立して識別することと、によって、複製されたデータ内の未使用記憶空間を識別してもよい。この未使用記憶空間を再利用すると、複製ターゲットは、データ複製を再開するように複製源に命令してもよい。
以下でより詳細に説明するように、本明細書で説明するシステムおよび方法によって、複製ターゲットは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用することができるようになり得る。かかるものとして、これらのシステムおよび方法は、システム管理者が、シンプロビジョニングストレージ環境内に複製ソリューションを展開できるようにし、潜在的な空間的および金銭的節約を結果としてもたらし得る。
前述の実施形態のいずれかにおける特徴は、本明細書で説明する一般原則に従って互いに組み合わせて用いてもよい。これらや他の実施形態、特徴、および利点は、添付の図面および特許請求の範囲と共に以下の詳細な説明を読むことによって、より完全に理解されよう。
添付の図面は、多数の例示的な実施形態を示し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の様々な原理を例示し説明する。
複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムのブロック図である。 複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムのブロック図である。 複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための追加的な例示的システムのブロック図である。 複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的な方法の流れ図である。 本明細書で説明および/または図示する実施形態の1つまたは複数を実行できる例示的なコンピューティングシステムのブロック図である。 本明細書で説明および/または図示する実施形態の1つまたは複数を実行できる例示的なコンピューティングネットワークのブロック図である。
図面の全体にわたって、同一の参照文字および記載は、必ずしも同一ではないが類似の要素を示す。本明細書で説明する例示的な実施形態は、様々な修正および代替形態の余地があるが、特定の実施形態が、図面において例として示され、本明細書で詳細に説明される。しかしながら、本明細書で説明する例示的な実施形態は、開示される特定の形態に限定されるようには意図されていない。もっと正確に言えば、本開示は、添付の特許請求の範囲内に入る全ての修正、均等物、および代替をカバーする。
以下は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステムの詳細を、図1−3に関連して提供する。対応するコンピュータ実行方法の詳細な説明がまた、図4に関連して提供される。さらに、本明細書で説明する実施形態の1つまたは複数を実行できる例示的なコンピューティングシステムおよびネットワークアーキテクチャの詳細な説明が、図5および6にそれぞれ関連して提供される。
図1は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なシステム100のブロック図である。この図に示すように、例示的なシステム100には、1つまたは複数のタスクを実行するための1つまたは複数のモジュール102を含んでもよい。例えば、以下でより詳細に説明するように、例示的なシステム100には、複製源から複製ターゲットにデータを複製するようにプログラムされた複製モジュール104を含んでもよい。例示的なシステム100にはまた、複製されたデータ内の未使用記憶空間を識別するようにプログラムされた識別モジュール106を含んでもよい。
さらに、以下でより詳細に説明するように、例示的なシステム100には、複製ターゲット用に記憶空間を提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するようにプログラムされた再利用モジュール108を含んでもよい。別個の要素として示したが、図1におけるモジュール102の1つまたは複数は、単一のモジュールまたはアプリケーションの一部を表してもよい。
ある実施形態において、図1におけるモジュール102の1つまたは複数は、コンピューティング装置によって実行される場合にコンピューティング装置に1つまたは複数のタスクを実行させ得る1つまたは複数のソフトウェアアプリケーションまたはプログラムを表してもよい。例えば、以下でより詳細に説明するように、モジュール102の1つまたは複数は、図2に示す装置(例えば、複製源202および/もしくは複製ターゲット222)、図3に示す装置(例えば、複製源302および/もしくは複製ターゲット322)、図5におけるコンピューティングシステム510、ならびに/または図6における例示的なネットワークアーキテクチャ600の一部など、1つまたは複数のコンピューティング装置上に記憶され、かつそこで走行するように構成されたソフトウェアモジュールを表してもよい。図1におけるモジュール102の1つまたは複数はまた、1つまたは複数のタスクを実行するように構成された1つまたは複数の専用コンピュータの全てまたは一部を表してもよい。
図1に示すように、例示的なシステム100にはまた、データベース120などの1つまたは複数のデータベースを含んでもよい。一例において、データベース120には、複製源から複製ターゲットに複製されるデータ122(例えば複製源上に記憶された)を含んでもよい。データベース120は、単一のデータベースもしくはコンピューティング装置、または複数のデータベースもしくはコンピューティング装置の一部を表してもよい。例えば、データベース120は、図2に示す装置(例えば、複製源202および/もしくは複製ターゲット222)の一部、図3に示す装置(例えば、複製源302および/もしくは複製ターゲット322)、図5におけるコンピューティングシステム510、ならびに/または図6における例示的なネットワークアーキテクチャ600の一部を表してもよい。代替として、図1におけるデータベース120は、図2に示す装置(例えば、複製源202および/もしくは複製ターゲット222)、図3に示す装置(例えば、複製源302および/もしくは複製ターゲット322)、図5におけるコンピューティングシステム510、ならびに/または図6における例示的なネットワークアーキテクチャ600の一部など、コンピューティング装置によってアクセスできる1つまたは複数の物理的に別個の装置を表してもよい。
図1における例示的なシステム100は、様々な方法で配置してもよい。例えば、例示的なシステム100の全てまたは一部は、図2における例示的なシステム200の一部を表してもよい。図2に示すように、システム200には、複製ターゲット222と通信する複製源202を含んでもよい。この例において、シンプロビジョニングストレージシステム232は、複製源202用にシンプロビジョニング記憶空間(例えば、割り当てられた空間235(1))を提供してもよい。同様に、追加のシンプロビジョニングストレージシステム252は、複製ターゲット222用にシンプロビジョニング記憶空間(例えば、割り当てられた空間255(1))を提供してもよい。
一実施形態において、以下でより詳細に説明するように、図1におけるモジュール102の1つまたは複数は、以下のことによって、複製ターゲット222が、シンプロビジョニングストレージシステム252上の未使用記憶空間を再利用できるようにしてもよい。すなわち、1)複製されたデータを複製源(例えば、複製源202)から受信することと、2)複製されたデータ内の未使用記憶空間(例えば、割り当てられた空間255(1)の未使用部分259(1))を識別すること(例えば、本明細書で説明する様々な技術の1つを用いて)と、3)複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステム(例えば、シンプロビジョニングストレージシステム252)から未使用記憶空間を再利用するための再利用要求を生成することと、次に4)シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行することと、である。
複製源202は、一般に、データを複製ターゲットに複製できる任意のタイプまたは形態のコンピューティング装置を表す。複製源202の例には、限定するわけではないが、様々なデータベースサービスを提供し、かつ/またはあるソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバおよびデータベースサーバ、図5における例示的なコンピューティングシステム510、または任意の他の適切なコンピューティング装置が含まれる。同様に、複製ターゲット222は、一般に、複製されたデータを受信および記憶できる任意のタイプまたは形態のコンピューティング装置を表す。一例において、複製源202は、データを複製し、かつ/または帯域内通信プロトコル210を介して、複製されたデータに関するメタデータを複製ターゲット222に送信してもよい。
図2に示すように、いくつかの例において、複製源202には、アプリケーション204を含んでもよい。アプリケーション204は、一般に、データを生成および/または管理できる任意のタイプまたは形態のアプリケーション(例えば、データベースなど)を表す。いくつかの例において、アプリケーション204は、シンプロビジョニングストレージシステム(シンプロビジョニングストレージシステム232など)および/またはローカル記憶装置(図3に関連して以下で説明するような)内にデータを記憶してもよい。
複製源202にはまた、ファイルシステム206を含んでもよい。いくつかの例において、ファイルシステム206には、複数のシンプロビジョニングボリューム(すなわち、シンプロビジョニングストレージシステム232などのシンプロビジョニングストレージシステム上のストレージによってバックアップされた論理ボリューム)を含んでもよい。複製源202にはまた、複製源202から複製ターゲット222にデータを複製するための複製エージェント208を含んでもよい。複製エージェント208は、一般に、複製源(複製源202など)から複製ターゲット(複製ターゲット222など)にデータを複製できる任意のタイプまたは形態のホストまたはサーバ側エージェントもしくはモジュールを表す。以下でより詳細に説明するように、複製エージェント208は、ファイルレベルまたはブロックレベルの複製技術のいずれかを用いてデータを複製してもよい。
同様に、複製ターゲット222上の複製エージェント228は、複製されたデータを複製源(複製源202など)から受信できる任意のタイプまたは形態のクライアント側エージェントまたはモジュールを表してもよい。以下でより詳細に説明するように、いくつかの例において、アプリケーション204、ファイルシステム206、複製エージェント208、および/または複製エージェント228は、図1のモジュール102における1つまたは複数を含んでもよい。
シンプロビジョニングストレージシステム232および252は、一般に、必要に応じてかまたはジャストインタイム方式で、コンピューティングシステム用にデータを記憶できる任意のタイプまたは形態のストレージシステムまたは装置(ディスクアレイなど)を表す。一例において、シンプロビジョニングストレージシステム232および252は、複数の論理装置番号(LUN)(例えば、それぞれLUN234(1)−(N)および254(1)−(N))に論理的に分割してもよく、論理装置番号のそれぞれは、シンプロビジョニングストレージシステム232または252の物理的部分への論理的参照を表してもよい。LUN234(1)−(N)および254(1)−(N)は、シンプロビジョニングストレージシステム232または252内のディスク、ディスクのセクション、全ディスクアレイ、および/またはディスクアレイのセクションを表してもよい。いくつかの例において、シンプロビジョニングストレージシステム232は、複製源202の1つまたは複数のアプリケーションまたはファイルシステム(例えば、アプリケーション204および/またはファイルシステム206)用のシンプロビジョニングストレージを提供してもよい。
いくつかの例において、複製源202および/または複製ターゲット222は、API240を介して、シンプロビジョニングストレージシステム232および252とそれぞれインターフェースしてもよい。API240は、一般に、シンプロビジョニングストレージシステムとインターフェースするための任意のタイプまたは形態のプログラミングインターフェースを表す。
いくつかの例において、図2とは対照的に、複製源は、シンプロビジョニングストレージを利用しなくてもよい。例えば、図3における複製源302は、1つまたは複数のローカル記憶装置(例えば、データセット334(1)−(N))内に記憶されたデータを、帯域内通信プロトコル310を介して複製ターゲット322に複製してもよい。この例において、データセット334(1)−(N)には、複製源302におけるアプリケーションまたはファイルシステム(アプリケーション304および/またはファイルシステム306など)によって生成および/または管理されたデータを含んでもよい。図2における例示的なシステム200と同様に、シンプロビジョニングストレージシステム352は、複製ターゲット322用にシンプロビジョニングストレージを提供してもよい。
図4は、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的なコンピュータ実行方法400の流れ図である。図4に示すステップは、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムによって実行してもよい。いくつかの実施形態において、図4に示すステップは、図1のシステム100、図2のシステム200、図5のコンピューティングシステム510のコンポーネント、および/または図6の例示的なネットワークアーキテクチャ600における部分の1つまたは複数によって実行してもよい。
図4に示すように、ステップ402において、本明細書で説明する様々なシステムの1つまたは複数が、複製源から複製ターゲットにデータを複製してもよい。例えば、図1における複製モジュール104は、図2における複製源202の一部として(例えば、複製エージェント208の一部として)、複製源202から複製ターゲット222にデータを複製してもよい。
本明細書で説明するシステムは、様々な複製技術のいずれかを用いてデータを複製してもよい。例えば、複製エージェント208は、ブロックベースの複製技術(すなわち、複製エージェント208は、複製されるデータをブロックレベルで識別してもよい)および/またはファイルベースの複製技術(すなわち、複製エージェント208は、複製されるデータをファイルレベルで識別してもよい)を用いて、複製源202から複製ターゲット222にデータを複製してもよい。
いくつかの例において、本明細書で説明するシステムは、ディスクベースの複製技術とは対照的に、サーバまたはホストベースの複製技術を用いてデータを複製してもよい。例えば、複製エージェント208は、複製源202によって利用されるストレージ(シンプロビジョニングストレージシステム232など)上で動作するのとは対照的に、複製源202上で動作してもよい。
いくつかの例において、ステップ402で複製されるデータは、アプリケーションおよび/またはファイルシステムによって記憶および/または管理されるデータを表してもよい。例えば、複製エージェント208は、アプリケーション204などのデータベースアプリケーションによって記憶および/または管理されるデータを複製してもよい。追加または代替として、複製エージェント208は、ファイルシステム206などのファイルシステムの1つまたは複数のボリュームを複製してもよい。
本明細書で説明するシステムは、ローカルに記憶された、および/またはシンプロビジョニングストレージシステム上に記されたデータを複製してもよい。例えば、図2に示す例において、複製エージェント208は、シンプロビジョニングストレージシステム232上に記憶されたデータを複製してもよい(例えば、複製エージェント208は、シンプロビジョニングストレージシステム232のLUN234(1)内の複製源202に割り当てられたデータを複製ターゲット222に複製してもよい)。同様に、図3における複製エージェント308は、ローカルに記憶されたデータセット334(1)を、複製源302から複製ターゲット322に複製してもよい。
図4に戻ると、ステップ404において、本明細書で説明するシステムは、複製されたデータ内の未使用記憶空間を識別してもよい。例えば、図1における識別モジュール106は、複製源202および/または複製ターゲット222の一部として(例えば、アプリケーション204、ファイルシステム206、複製エージェント208、および/または複製エージェント228の一部として)、複製源202から複製ターゲット222に複製されたデータ内の未使用記憶空間を識別してもよい。同様に、識別モジュール106は、図3における複製源302および/または複製ターゲット322の一部として(例えば、アプリケーション304、ファイルシステム306、複製エージェント308、および/または複製エージェント328の一部として)、複製源302から複製ターゲット322に複製されたデータ内の未使用記憶空間を識別してもよい。
本明細書で説明するシステムは、複製されたデータ内の未使用記憶空間を様々な方法および様々な文脈で識別してもよい。例えば、ステップ404の全てまたは一部は、複製源、複製ターゲット、またはそれらの組み合わせによって実行してもよい。
例えば、複製ターゲット222は、複製源202から複製されたデータ内の未使用記憶空間を識別する情報を複製源202から受信することによって、ステップ404を実行してもよい。例えば、識別モジュール106は、図2における複製源202上のアプリケーション204、ファイルシステム206、および/または複製エージェント208の一部として、1)割り当てられた空間235内の記憶空間の未使用部分239(1)を(例えば、アプリケーションまたはファイルシステムAPIを用いて)識別してもよく、次に2)この未使用記憶空間を識別する情報を複製ターゲット222に送信してもよい。同様に、識別モジュール106は、図3における複製源302上のアプリケーション304、ファイルシステム306、および/または複製エージェント308の一部として、1)データセット334(1)の未使用部分339(1)を(例えば、アプリケーションまたはファイルシステムAPIを用いて)識別してもよく、次に2)この未使用記憶空間を識別する情報を複製ターゲット322に送信してもよい。
いくつかの例において、識別モジュール106は、この空き空間情報を、図2における帯域内通信プロトコル210などの帯域内通信プロトコルを介して複製源から複製ターゲットに送信してもよい。本明細書で用いられるような語句「帯域内通信プロトコル」は、同じ通信帯域内で、複製されたデータおよびこの複製されたデータに関連するメタデータの両方を転送可能な任意のタイプまたは形態の通信機構を指してもよい。帯域内通信プロトコルの例には、限定するわけではないが、VERITAS VOLUME REPLICATORによって用いられるIBC APIが含まれる。
いくつかの例において、複製ターゲット222は、複製ターゲット222によって発行された要求に応じた空き空間情報を複製源202から受信してもよい。例えば、識別モジュール106は、複製ターゲット222の一部として、1)複製源202に空き空間情報を要求し、次に2)この空き空間情報を複製源202から受信してもよい。複製ターゲット222は、例えば周期的および必要な場合を含む様々な文脈において、この情報を複製源202に要求してもよい。
いくつかの例において、複製源から受信された空き空間情報は、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに(例えば、シンプロビジョニングAPIを介して)複製源から元々は送信された、インターセプトされた再利用要求を表してもよい。例えば、識別モジュール106は、(例えば、複製源202上の複製エージェント208用の一部として)API240を介してアプリケーション204および/またはファイルシステム206によりシンプロビジョニングストレージシステム232へ発行された再利用要求をインターセプトして、割り当てられた空間235(1)の未使用部分239(1)を再利用してもよい。この再利用要求をインターセプトすると、識別モジュール106は、この再利用要求を、帯域内通信プロトコル210を介して複製ターゲット222に送信してもよい。次に、複製ターゲット222は、このインターセプトされた再利用要求を用いて、複製源202から複製されたデータ内の未使用記憶空間を識別してもよい。
いくつかの例において、複製源から受信された空き空間情報は、複製源で実行されたコンピューティング動作によって解放された記憶空間を識別してもよい。例えば、識別モジュール106は、図3における複製源302上のアプリケーション304、ファイルシステム306、および/または複製エージェント308の一部として、アプリケーション304および/またはファイルシステム306により実行されたコンピューティング動作によって解放された記憶空間(例えば、データセット334(1)の未使用部分339(1))を識別してもよい。次に、識別モジュール106は、コンピューティング動作によって解放された記憶空間(例えば、未使用部分339(1))を識別する情報を、帯域内通信プロトコル310を介して複製ターゲット322に送信してもよい。
上記の例において、語句「コンピューティング動作」は、ストレージシステム内の空間を解放できる任意のタイプまたは形態のコンピューティング動作を指してもよい。かかるコンピューティング動作の例には、限定するわけではないが、デフラグメント動作、ファイル削除動作等が含まれる。かかる動作は、アプリケーション(アプリケーション304など)、ファイルシステム(ファイルシステム306など)等によって実行してもよい。
別の例において、複製ターゲットは、1)データ複製を停止することと、次に2)データ管理APIを用いて、複製されたデータ内の未使用記憶空間を識別することと、により、ステップ404において、複製されたデータ内の未使用記憶空間を識別してもよい。例えば、図1における複製モジュール104は、図2における複製ターゲット222の一部として(例えば、複製エージェント228の一部として)、複製源202から複製ターゲット222へのデータの複製を停止または休止するように、(例えば、帯域内指示プロトコル210を介して)複製源202に命令してもよい。この命令を受信すると、複製エージェント208(上記で詳述したように図1の複製モジュール104を含んでもよい)は、複製源202における複製されたデータを整合状態にしてもよい。例えば、複製エージェント208は、アプリケーション204および/またはファイルシステム206の動作を凍結または停止し、かくしてシンプロビジョニングストレージシステム232内で複製源202に割り当てられたストレージ(例えば、割り当てられた空間235(1))が、整合状態であることを保証してもよい。次に、複製エージェント208は、複製されたデータ(この例において、シンプロビジョニングストレージシステム232によって複製源に202に割り当てられたストレージ)が整合状態であることを示す通信を、(例えば、帯域内通信プロトコル210を介して)複製源202から複製ターゲット222に送信してもよい。
この通信を複製源202から受信すると、複製ターゲット222は、1)全ての未完の複製書き込みの適用を差し控え、次に2)データ管理APIを用いて、シンプロビジョニングストレージシステム252上の割り当てられた空間255(1)内の未使用記憶空間を識別してもよい。例えば、図1の識別モジュール106は、図2における複製ターゲット222の一部として、ファイルシステムAPIおよび/またはアプリケーションAPIを用いて、シンプロビジョニングストレージシステム252上の割り当てられた空間255(1)内の未使用部分259(1)を識別してもよい。この未使用記憶空間を再利用すると(ステップ406および408に関連して以下で詳述する方法で)、複製ターゲット222上の複製エージェント228は、複製源202に、データ複製を再開するように命令してもよい。
図4に戻ると、ステップ406において、本明細書で説明するシステムは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから、ステップ404で識別された未使用記憶空間を再利用するための再利用要求を生成してもよい。例えば、図1における再利用モジュール108は、図2における複製ターゲット222の一部として、シンプロビジョニングストレージシステム252から未使用部分259(1)を再利用するための再利用要求を生成してもよい。同様に、図1の再利用モジュール108は、図3における複製ターゲット322の一部として、シンプロビジョニングストレージシステム352から未使用部分359(1)を再利用するための再利用要求を生成してもよい。
本明細書で説明するシステムは、様々な方法でステップ406を実行してもよい。一例において、再利用モジュール108は、図2および3におけるAPI240および340などのシンプロビジョニングAPIを用いて、再利用要求を生成してもよい。
ステップ408において、本明細書で説明するシステムは、シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、シンプロビジョニングストレージシステムに再利用要求を発行してもよい。例えば、図1における再利用モジュール108は、未使用部分259(1)を再利用するために、図2における複製ターゲット222の一部として、ステップ406で生成された再利用要求をシンプロビジョニングストレージシステム252に発行してもよい。同様に、図1における再利用モジュール108は、未使用部分359(1)を再利用するために、図3における複製ターゲット322の一部として、ステップ406で生成された再利用要求をシンプロビジョニングストレージシステム352に発行してもよい。
本明細書で説明するシステムは、様々な方法でステップ408を実行してもよい。一例において、再利用モジュール108は、図2および3におけるAPI240および340などのシンプロビジョニングAPIを用いて、再利用要求を発行してもよい。ステップ408が完了すると、図4における例示的な方法400は、終了してもよい。
上記で詳述したように、本明細書で説明するシステムおよび方法によって、複製ターゲットは、複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用することが可能になり得る。かかるものとして、これらのシステムおよび方法は、システム管理者が、シンプロビジョニングストレージ環境内で複製ソリューションを展開させることができるようにし、潜在的な空間的および金銭的節約を結果としてもたらし得る。
図5は、本明細書で説明および/または図示する実施形態の1つまたは複数を実行できる例示的なコンピューティングシステム510のブロック図である。コンピューティングシステム510は、コンピュータ可読命令を実行できる任意のシングルもしくはマルチプロセッサコンピューティング装置またはシステムを広く表す。コンピューティングシステム510の例には、限定するわけではないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルド装置、または任意の他のコンピューティングシステムもしくは装置が含まれる。コンピューティングシステム510には、その最も基本的な構成において、少なくとも1つのプロセッサ514およびシステムメモリ516を含んでもよい。
プロセッサ514は、一般に、データを処理できるかまたは命令を解釈および実行できる任意のタイプまたは形態の処理装置を表す。ある実施形態において、プロセッサ514は、ソフトウェアアプリケーションまたはモジュールから命令を受信してもよい。これらの命令は、本明細書で説明および/または図示する例示的な実施形態の1つまたは複数の機能を、プロセッサ514に実行させてもよい。例えば、プロセッサ514は、本明細書で説明する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。プロセッサ514はまた、本明細書で説明および/または図示する任意の他のステップ、方法またはプロセスを実行するか、かつ/または実行するための手段であってもよい。
システムメモリ516は、一般に、データおよび/または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の揮発性または不揮発性記憶装置または媒体を表す。システムメモリ516の例には、限定するわけではないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリ装置が含まれる。要求はされないが、ある実施形態において、コンピューティングシステム510には、揮発性メモリユニット(例えば、システムメモリ516など)および不揮発性記憶装置(例えば、以下で詳細に説明するような主記憶装置532など)の両方を含んでもよい。一例において、図1のモジュール102の1つまたは複数は、システムメモリ516にロードしてもよい。
ある実施形態において、例示的なコンピューティングシステム510にはまた、プロセッサ514およびシステムメモリ516に加えて1つまたは複数のコンポーネントまたは要素を含んでもよい。例えば、図5に示すように、コンピューティングシステム510には、メモリコントローラ518、入力/出力(I/O)コントローラ520、および通信インターフェース522を含んでもよく、これらのそれぞれは、通信インフラストラクチャ512を介して相互接続してもよい。通信インフラストラクチャ512は、一般に、コンピューティング装置の1つまたは複数のコンポーネント間の通信を促進できる任意のタイプまたは形態のインフラストラクチャを表す。通信インフラストラクチャ512の例には、限定するわけではないが、通信バス(ISA、PCI、PCIeまたは類似のバスなど)およびネットワークが含まれる。
メモリコントローラ518は、一般に、メモリもしくはデータを扱うか、またはコンピューティングシステム510の1つまたは複数のコンポーネント間の通信を制御することができる任意のタイプまたは形態の装置を表す。例えば、ある実施形態において、メモリコントローラ518は、通信インフラストラクチャ512を介して、プロセッサ514、システムメモリ516、およびI/Oコントローラ520間の通信を制御してもよい。ある実施形態において、メモリコントローラ518は、複製、識別、生成、再利用、発行、受信、送信、要求、停止、使用、および再開など、本明細書で説明および図示するステップまたは機能の1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。
I/Oコントローラ520は、一般に、コンピューティング装置の入力および出力機能を調整および/または制御できる任意のタイプまたは形態のモジュールを表す。例えば、ある実施形態において、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インターフェース522、ディスプレイアダプタ526、入力インターフェース530、および記憶インターフェース534など、コンピューティングシステム510の1つまたは複数の要素間におけるデータ転送を制御または促進してもよい。I/Oコントローラ520は、例えば、本明細書で説明する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段となるように用いてもよい。I/Oコントローラ520はまた、本開示で述べる他のステップおよび機能を実行するか、かつ/または実行するための手段となるように用いてもよい。
通信インターフェース522は、例示的なコンピューティングシステム510と1つまたは複数の追加装置との間の通信を促進できる任意のタイプまたは形態の通信装置またはアダプタを広く表す。例えば、ある実施形態において、通信インターフェース522は、コンピューティングシステム510と、追加コンピューティングシステムを含むプライベートまたはパブリックネットワークとの間の通信を促進してもよい。通信インターフェース522の例には、限定するわけではないが、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、および任意の他の適切なインターフェースが含まれる。少なくとも一実施形態において、通信インターフェース522は、インターネットなどのネットワークへの直接リンクを介して、遠隔サーバへの直接接続を提供してもよい。通信インターフェース522はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話もしくはケーブルネットワーク、携帯電話接続、衛星データ接続、または任意の他の適切な接続を通して、かかる接続を間接的に提供してもよい。
ある実施形態において、通信インターフェース522はまた、外部バスまたは通信チャネルを介して、コンピューティングシステム510と1つまたは複数の追加ネットワークまたは記憶装置との間の通信を促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例には、限定するわけではないが、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバチャンネルインターフェースアダプタ、イーサネットアダプタ等が含まれる。また、通信インターフェース522によって、コンピューティングシステム510は、分散または遠隔コンピューティングに従事することが可能になり得る。例えば、通信インターフェース522は、実行用に、遠隔装置から命令を受信するか、または遠隔装置に命令を送信してもよい。ある実施形態において、通信インターフェース522は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。通信インターフェース522はまた、本開示で述べる他のステップおよび機能を実行するか、かつ/または実行するための手段となるように用いてもよい。
図5に示すように、コンピューティングシステム510にはまた、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合される少なくとも1つのディスプレイ装置524を含んでもよい。ディスプレイ装置524は、一般に、ディスプレイアダプタ526によって転送された情報を視覚的に表示できる任意のタイプまたは形態の装置を表す。同様に、ディスプレイアダプタ526は、一般に、ディスプレイ装置524における表示のために、通信インフラストラクチャ512から(または当該技術分野において周知のようなフレームバッファから)グラフィックス、テキストおよび他のデータを転送するように構成された任意のタイプまたは形態の装置を表す。
図5に示すように、例示的なコンピューティングシステム510にはまた、入力インターフェース530を介して通信インフラストラクチャ512に結合される少なくとも1つの入力装置528を含んでもよい。入力装置528は、一般に、コンピュータまたは人間によって生成された入力を例示的なコンピューティングシステム510に供給できる任意のタイプまたは形態の装置を表す。入力装置528の例には、限定するわけではないが、キーボード、ポインティング装置、音声認識装置、または任意の他の入力装置が含まれる。少なくとも一実施形態において、入力装置528は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。入力装置528はまた、本開示で述べる他のステップおよび機能を実行するか、かつ/または実行するための手段となるように用いてもよい。
図5に示すように、例示的なコンピューティングシステム510にはまた、記憶インターフェース534を介して通信インフラストラクチャ512に結合される主記憶装置532およびバックアップ記憶装置533を含んでもよい。記憶装置532および533は、一般に、データおよび/または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。例えば、記憶装置532および533は、磁気ディスク装置(例えば、いわゆるハードドライブ)、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ等であってもよい。記憶インターフェース534は、一般に、コンピューティングシステム510の記憶装置532および533と他のコンポーネントとの間でデータを転送するための任意のタイプまたは形態のインターフェースまたは装置を表す。一例において、図1のデータベース120は、主記憶装置532に記憶してもよい。
ある実施形態において、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されたリムーバブル記憶ユニットから読み出すか、かつ/またはそこに書き込むように構成してもよい。適切なリムーバブル記憶ユニットの例には、限定するわけではないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置等が含まれる。記憶装置532および533にはまた、コンピュータソフトウェア、データ、または他のコンピュータ可読命令をコンピューティングシステム510にロードできるようにするための他の類似構造または装置を含んでもよい。例えば、記憶装置532および533は、ソフトウェア、データ、または他のコンピュータ可読情報を読み出し、かつ書き込むように構成してもよい。記憶装置532および533はまた、コンピューティングシステム510の一部であってもよく、または他のインターフェースシステムを介してアクセスされる別個の装置であってもよい。
ある実施形態において、記憶装置532および533は、例えば、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段となるように用いてもよい。記憶装置532および533はまた、本開示で述べる他のステップおよび機能を実行するか、かつ/または実行するための手段となるように用いてもよい。
多くの他の装置またはサブシステムを、コンピューティングシステム510に接続してもよい。反対に、図5に示すコンポーネントおよび装置の全てが、本明細書で説明および/または図示する実施形態を実行するために存在する必要があるわけではない。上記で参照した装置およびサブシステムはまた、図5に示す方法とは異なる方法で相互接続してもよい。コンピューティングシステム510はまた、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を用いてもよい。本明細書で開示する例示的な実施形態の1つまたは複数は、例えば、コンピュータ可読媒体上のコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御論理とも呼ばれる)としてコード化してもよい。語句「コンピュータ可読媒体」は、一般に、コンピュータ可読命令を記憶または担持できる任意の形態の装置、キャリア、または媒体を指す。コンピュータ可読媒体の例には、限定するわけではないが、搬送波などの伝送型媒体、および磁気記憶媒体(例えば、ハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えば、ソリッドステートドライブおよびフラッシュ媒体)などの物理媒体、ならびに他の分散システムが含まれる。
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム510にロードしてもよい。次に、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全てまたは一部は、システムメモリ516、ならびに/または記憶装置532および533の様々な部分に記憶してもよい。プロセッサ514によって実行される場合に、コンピューティングシステム510にロードされたコンピュータプログラムが、本明細書で説明および/または図示する例示的な実施形態の1つまたは複数における機能を、プロセッサ514に実行させるか、かつ/またはプロセッサ514を実行するための手段にしてもよい。追加または代替として、本明細書で説明および/または図示する例示的な実施形態の1つまたは複数は、ファームウェアおよび/またはハードウェアにおいて実行してもよい。例えば、コンピューティングシステム510は、本明細書で開示する例示的な実施形態の1つまたは複数を実行するように適合された特定用途向け集積回路(ASIC)として構成してもよい。
図6は、例示的なネットワークアーキテクチャ600のブロック図であり、そこでは、クライアントシステム610、620、630、ならびにサーバ640および645は、ネットワーク650に結合してもよい。クライアントシステム610、620および630は、一般に、図5における例示的なコンピューティングシステム510など、任意のタイプまたは形態のコンピューティング装置またはシステムを表す。
同様に、サーバ640および645は、一般に、様々なデータベースサービスを提供し、かつ/またはあるソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバまたはデータベースサーバなどのコンピューティング装置またはシステムを表す。ネットワーク650は、一般に、例えば、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含む任意の電気通信またはコンピュータネットワークを表す。一例において、クライアントシステム610、620および/もしくは630で、ならびに/またはサーバ640および/もしくは645は、図1のモジュール102を含んでもよい。
図6に示すように、1つまたは複数の記憶装置660(1)−(N)は、サーバ640に直接装着してもよい。同様に、1つまたは複数の記憶装置670(1)−(N)は、サーバ645に直接装着してもよい。記憶装置660(1)−(N)および記憶装置670(1)−(N)は、一般に、データおよび/または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。ある実施形態において、記憶装置660(1)−(N)および記憶装置670(1)−(N)は、NFS、SMBまたはCIFSなどの様々なプロトコルを用いて、サーバ640および645と通信するように構成されたネットワーク接続ストレージ(NAS)装置を表してもよい。
サーバ640および645はまた、ストレージエリアネットワーク(SAN)ファブリック680に接続してもよい。SANファブリック680は、一般に、複数の記憶装置間の通信を促進できる任意のタイプまたは形態のコンピュータネットワークまたはアーキテクチャを表す。SANファブリック680は、サーバ640および645と、複数の記憶装置690(1)−(N)および/またはインテリジェント記憶アレイ695との間の通信を促進してもよい。SANファブリック680はまた、装置690(1)−(N)およびアレイ695が、クライアントシステム610、620および630にローカルに装着された装置として現れるような方法で、ネットワーク650ならびにサーバ640および645を介して、クライアントシステム610、620、630と、記憶装置690(1)−(N)および/またはインテリジェント記憶アレイ695との間の通信を、促進してもよい。記憶装置660(1)−(N)および記憶装置670(1)−(N)と同様に、記憶装置690(1)−(N)およびインテリジェント記憶アレイ695は、一般に、データおよび/または他のコンピュータ可読命令を記憶できる任意のタイプまたは形態の記憶装置または媒体を表す。
ある実施形態において、かつ図5の例示的なコンピューティングシステム510に関連して、図5における通信インターフェース522などの通信インターフェースを用いて、各クライアントシステム610、620および630とネットワーク650との間の接続を提供してもよい。クライアントシステム610、620および630は、例えばウェブブラウザまたは他のクライアントソフトウェアを用いて、サーバ640または645上の情報にアクセスすることができる。かかるソフトウェアによって、クライアントシステム610、620および630は、サーバ640、サーバ645、記憶装置660(1)−(N)、記憶装置670(1)−(N)、記憶装置690(1)−(N)、またはインテリジェント記憶アレイ695によりホストされる情報にアクセスすることが可能になる。図6は、データを交換するためにネットワーク(インターネットなど)を使用することを示すが、本明細書で説明および/または図示する実施形態は、インターネットにも、どんな特定のネットワークベースの環境にも限定されない。
少なくとも一実施形態において、本明細書で開示する例示的な実施形態の1つまたは複数における全てまたは一部は、コンピュータプログラムとしてコード化し、サーバ640、サーバ645、記憶装置660(1)−(N)、記憶装置670(1)−(N)、記憶装置690(1)−(N)、インテリジェント記憶アレイ695、またはそれらの任意の組み合わせにロードし、かつそれらによって実行してもよい。本明細書で開示する例示的な実施形態の1つまたは複数における全てまたは一部はまた、コンピュータプログラムとしてコード化し、サーバ640に記憶し、サーバ645によって実行し、かつネットワーク650を通じてクライアントシステム610、620および630に分配してもよい。したがって、ネットワークアーキテクチャ600は、本明細書で開示する複製ステップ、識別ステップ、生成ステップ、再利用ステップ、発行ステップ、受信ステップ、送信ステップ、要求ステップ、停止ステップ、使用ステップ、および再開ステップの1つまたは複数を、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。ネットワークアーキテクチャ600はまた、本開示で述べる他のステップおよび機能を実行するか、かつ/または実行するための手段となるように用いてもよい。
上記で詳述したように、コンピューティングシステム510および/またはネットワークアーキテクチャ600の1つまたは複数のコンポーネントは、複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするための例示的な方法の1つまたは複数のステップを、単独でまたは他の要素と一緒に実行するか、かつ/または実行するための手段であってもよい。一例において、かかる方法には、1)複製源から複製ターゲットにデータを複製することと、2)複製されたデータ内の未使用記憶空間を識別することと、3)複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから未使用記憶空間を再利用するための再利用要求を生成することと、次に4)シンプロビジョニングストレージシステムから未使用記憶空間を再利用するために、再利用要求をシンプロビジョニングストレージシステムに発行することと、を含んでもよい。
いくつかの例において、複製源から複製ターゲットにデータを複製することには、ブロックベースまたはファイルベースの複製技術を用いてデータを複製することを含んでもよい。さらに、複製源は、サーバコンピューティング装置を表してもよく、複製ターゲットは、クライアントコンピューティング装置を表してもよい。
一例において、複製されたデータ内の未使用記憶空間を識別することには、未使用記憶空間を識別する情報を複製源から受信することを含んでもよい。いくつかの例において、この情報には、複製源用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムに複製源から元々は送信された、インターセプトされた再利用要求を含んでもよい。他の例において、この情報は、複製源で実行されたコンピューティング動作によって解放された記憶空間を識別してもよい。
いくつかの実施形態において、複製源から情報を受信することには、帯域内通信プロトコルを介して情報を受信することを含んでもよい。複製源から情報を受信することにはまた、1)複製源に情報を要求することと、次に2)要求に応じた複製源からの情報を受信することと、を含んでもよい。いくつかの例において、複製源に情報を要求することには、周期的におよび/または必要に応じて複製源に情報を要求することを含んでもよい。
一例において、複製されたデータ内の未使用記憶空間を識別することには、1)データ複製を停止することと、次に2)データ管理APIを用いて、複製ターゲットにおけるデータの複製内の未使用記憶空間を識別することと、を含んでもよい。この例において、データ複製を停止することには、1)複製源における複製されたデータを整合状態にすることと、次に2)複製されたデータが整合状態にあることを示す通信を複製源から受信することと、を含んでもよい。この例において、方法にはまた、再利用要求を発行するとデータ複製を再開することを含んでもよい。データ管理APIには、ファイルシステムAPIおよび/またはアプリケーションAPIを含んでもよい。
前述の開示は、特定のブロック図、フローチャート、および例を用いて様々な実施形態を説明したが、本明細書で説明および/または図示する各ブロック図の要素、フローチャートのステップ、動作、および/またはコンポーネントは、広範囲なハードウェア、ソフトウェア、もしくはファームウェア(またはそれらの任意の組み合わせ)構成を用いて、個別に、かつ/または集団的に実現してもよい。さらに、他のコンポーネント内に含まれるコンポーネントのどんな開示もまた、本質的に例示的であると考えるべきである。なぜなら、同じ機能を達成するために他の多くのアーキテクチャを実現することができるからである。
いくつかの例において、図1における例示的なシステム100の全てまたは一部は、クラウドコンピューティングまたはネットワークベース環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供してもよい。これらのクラウドベースサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットホーム、サービスとしてのインフラストラクチャ等)は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能であってもよい。本明細書で説明する様々な機能は、遠隔デスクトップ環境または任意の他のクラウドベースコンピュータ環境を介して提供してもよい。
本明細書で説明および/または図示するステップのプロセスパラメータおよびシーケンスは、例としてのみ与えられており、必要に応じて変更することができる。例えば、本明細書で図示および/または説明するステップは、特定の順序で図示または説明してもよいが、これらのステップは、必ずしも図示または説明される順序で実行する必要はない。本明細書で説明および/または図示する様々な例示的な方法はまた、本明細書で説明または図示するステップの1つもしくは複数を省略してもよく、または開示されるステップに加えて追加ステップを含んでもよい。
完全に機能的なコンピューティングシステムの文脈において、様々な実施形態を本明細書で説明および/または図示したが、これらの例示的な実施形態の1つまたは複数は、分散を実際に実行するために用いられる特定のタイプのコンピュータ可読媒体に関係なく、プログラムプロダクトとして様々な形態で分散してもよい。本明細書で開示する実施形態はまた、あるタスクを実行するソフトウェアモジュールを用いて実行してもよい。これらのソフトウェアモジュールには、コンピュータ可読記憶媒体またはコンピューティングシステムに記憶可能なスクリプト、バッチ、または他の実行可能ファイルを含んでもよい。いくつかの実施形態において、これらのソフトウェアモジュールは、本明細書で開示する例示的な実施形態の1つまたは複数を実行するようにコンピューティングシステムを構成してもよい。
さらに、本明細書で説明するモジュールの1つまたは複数は、データ、物理装置、および/または物理装置の表現を、ある形態から別の形態へと変形してもよい。例えば、図1における再利用モジュール108は、シンプロビジョニングストレージシステム252および/または352から未使用記憶空間(例えば、未使用部分259(1)および/または359(1))を再利用することによって、図2および3におけるシンプロビジョニングストレージシステム252および/または353の特性または特徴を変形してもよい。
前述の説明は、当業者が、本明細書で開示する例示的な実施形態の様々な態様を最も良く利用できるようにするために提供された。この例示的な説明は、網羅的であるようにも、開示されるいずれかの形態に正確に限定されるようにも意図されていない。多くの修正および変更が、本開示の趣旨および範囲から逸脱せずに可能である。本明細書で開示する実施形態は、全ての点において、実例であり限定ではないと考えるべきである。本開示の範囲を決定する際には、添付の特許請求の範囲およびその均等物を参照するべきである。
特に断りのない限り、明細書および特許請求の範囲において用いられるような用語「a」または「an」は、「〜の少なくとも1つ」を意味すると解釈するべきである。さらに、使い易さのために、明細書および特許請求の範囲において用いられるような単語「含む(including)」および「有する(having)」は、「含む(comprising)」と交換可能であり、かつそれと同じ意味を有する。

Claims (15)

  1. 複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのコンピュータ実行方法であって、前記方法の少なくとも一部が、少なくとも1つのプロセッサを含むコンピューティング装置によって実行され、前記方法が、
    製ターゲットにおいて複製源から複製されたデータを受信することと、
    前記複製源から複製された前記データ内の未使用記憶空間を識別することと、
    前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成することと、
    前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに前記再利用要求を発行することと、
    を含む方法。
  2. 前記複製源から複製された前記データ
    ブロックベースの複製技術と
    ファイルベースの複製技術と
    の少なくとも1つを用いて前記複製源から前記複製ターゲットへ複製される、請求項1に記載の方法。
  3. 前記複製源から複製された前記データ内の未使用記憶空間を識別することが、前記未使用記憶空間を識別する情報を前記複製源から受信することを含む、請求項1または2に記載の方法。
  4. 前記情報が、前記複製源用にシンプロビジョニングストレージを提供する前記シンプロビジョニングストレージシステムに前記複製源から元々は送信され当該複製源の複製エージェントによってインターセプトされた再利用要求であって、当該インターセプト後に前記複製源の複製エージェントによって前記複製ターゲットに送信される再利用要求を含む、請求項3に記載の方法。
  5. 前記情報が、前記複製源において実行されたコンピューティング動作によって解放された記憶空間を識別する、請求項3または4に記載の方法。
  6. 前記複製源から前記情報を受信することが、帯域内通信プロトコルを介して前記情報を受信することを含む、請求項3〜5のいずれか一項に記載の方法。
  7. 前記複製源から前記情報を受信することが、
    前記複製源に前記情報を要求することと、
    要求に応じた前記複製源からの前記情報を受信することと、
    を含む、請求項3〜6のいずれか一項に記載の方法。
  8. 前記複製源に前記情報を要求することが、
    周期的に前記複製源に前記情報を要求することと、
    必要に応じて前記複製源に前記情報を要求することと、
    の少なくとも1つを含む、請求項7に記載の方法。
  9. 前記複製源から複製された前記データ内の未使用記憶空間を識別することが、
    データ複製を停止することと、
    データ管理APIを用いて、前記複製ターゲットにおいて前記データの複製内の未使用記憶空間を識別することと、
    を含む、請求項1〜3のいずれか一項に記載の方法。
  10. データ複製を停止することが、
    前記複製源における前記複製源から複製された前記データを整合状態にすることと、
    前記複製源から複製された前記データが整合状態であることを示す通信を前記複製源から受信することと、
    を含む、請求項9に記載の方法。
  11. 前記データ管理APIが、
    ファイルシステムAPIと、
    アプリケーションAPIと、
    の少なくとも1つを含む、請求項9または10に記載の方法。
  12. 前記再利用要求を発行するとデータ複製を再開することをさらに含む、請求項9〜11のいずれか一項に記載の方法。
  13. 前記複製源が、サーバコンピューティング装置を含み、
    前記複製ターゲットが、クライアントコンピューティング装置を含む、請求項1〜3または9のいずれか一項に記載の方法。
  14. 複製ターゲットが、シンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムであって、
    複製ターゲットにおいて複製源から複製されたデータを受信するようにプログラムされた複製モジュールと、
    前記複製源から複製された前記データ内の未使用記憶空間を識別するようにプログラムされた識別モジュールと、
    再利用モジュールであって、
    前記複製ターゲット用にシンプロビジョニングストレージを提供するシンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するための再利用要求を生成するように、
    前記シンプロビジョニングストレージシステムから前記未使用記憶空間を再利用するために、前記シンプロビジョニングストレージシステムに前記再利用要求を発行するようにプログラムされた再利用モジュールと、
    前記複製モジュール、前記識別モジュール、および前記再利用モジュールを実行するように構成された少なくとも1つのプロセッサと、
    を含むシステム。
  15. 前記識別モジュールが、未使用記憶空間を識別する、前記複製源から受信された情報を識別することによって、前記複製源から複製された前記データ内の前記未使用記憶空間を識別する、請求項14に記載のシステム。
JP2012554995A 2010-02-24 2010-12-15 複製ターゲットがシンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法 Expired - Fee Related JP5701320B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/712,186 2010-02-24
US12/712,186 US9965224B2 (en) 2010-02-24 2010-02-24 Systems and methods for enabling replication targets to reclaim unused storage space on thin-provisioned storage systems
PCT/US2010/060525 WO2011106068A1 (en) 2010-02-24 2010-12-15 Systems and methods for enabling replication targets to reclaim unused storage space on thin-provisioned storage systems

Publications (2)

Publication Number Publication Date
JP2013520747A JP2013520747A (ja) 2013-06-06
JP5701320B2 true JP5701320B2 (ja) 2015-04-15

Family

ID=43661940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012554995A Expired - Fee Related JP5701320B2 (ja) 2010-02-24 2010-12-15 複製ターゲットがシンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法

Country Status (5)

Country Link
US (1) US9965224B2 (ja)
EP (1) EP2539804B1 (ja)
JP (1) JP5701320B2 (ja)
CN (1) CN102782639B (ja)
WO (1) WO2011106068A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898668B1 (en) * 2010-03-31 2014-11-25 Netapp, Inc. Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine
US9009438B2 (en) * 2011-06-01 2015-04-14 International Business Machines Corporation Space reclamation in multi-layered and thin provisioned storage systems
JP5853734B2 (ja) * 2012-02-02 2016-02-09 富士通株式会社 仮想ストレージ装置,制御装置及び制御プログラム
JP6011125B2 (ja) * 2012-08-02 2016-10-19 富士通株式会社 ストレージ装置及びストレージシステム
US9251050B2 (en) 2013-03-13 2016-02-02 International Business Machines Corporation Apparatus and method for resource alerts
US9880777B1 (en) * 2013-12-23 2018-01-30 EMC IP Holding Company LLC Embedded synchronous replication for block and file objects
US9881018B2 (en) 2014-08-14 2018-01-30 International Business Machines Corporation File management in thin provisioning storage environments
US9454327B2 (en) 2014-08-29 2016-09-27 International Business Machines Corporation Analytics based control of thin provisioning environment
US9507526B2 (en) * 2014-11-14 2016-11-29 Netapp, Inc. Just-in time remote data storage allocation
US9749409B2 (en) * 2015-02-04 2017-08-29 International Business Machines Corporation Predictive data replication and acceleration
US10073647B2 (en) * 2015-07-21 2018-09-11 Seagate Technology Llc Thinly provisioned disk drives with zone provisioning and compression in relation to zone granularity
CN109542672B (zh) * 2015-09-25 2023-05-05 伊姆西Ip控股有限责任公司 用于回收快照存储空间中的存储块的方法和装置
US10642701B2 (en) 2018-09-07 2020-05-05 International Business Machines Corporation Releasing space on secondary storage device for resynchronization
US11086551B2 (en) 2019-03-19 2021-08-10 Netapp, Inc. Freeing and utilizing unused inodes
US11157455B2 (en) 2019-03-19 2021-10-26 Netapp Inc. Inofile management and access control list file handle parity
US10852985B2 (en) 2019-03-19 2020-12-01 Netapp Inc. Persistent hole reservation
US11151162B2 (en) 2019-03-19 2021-10-19 Netapp Inc. Timestamp consistency for synchronous replication

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506983A (en) * 1992-07-06 1996-04-09 Microsoft Corporation Method and system for transactioning of modifications to a tree structured file
US6779093B1 (en) * 2002-02-15 2004-08-17 Veritas Operating Corporation Control facility for processing in-band control messages during data replication
US7587568B2 (en) 2003-09-05 2009-09-08 Oracel International Corporation Method and system of reclaiming storage space in data storage systems
US8601035B2 (en) 2007-06-22 2013-12-03 Compellent Technologies Data storage space recovery system and method
US7603532B2 (en) * 2004-10-15 2009-10-13 Netapp, Inc. System and method for reclaiming unused space from a thinly provisioned data container
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US20060259723A1 (en) * 2004-11-16 2006-11-16 Petruzzo Stephen E System and method for backing up data
JP4945118B2 (ja) 2005-11-14 2012-06-06 株式会社日立製作所 記憶容量を効率的に使用する計算機システム
US20080085471A1 (en) 2006-10-10 2008-04-10 Anderson Brent A Photolithographic method using multiple photoexposure apparatus
GB0623255D0 (en) 2006-11-22 2007-01-03 Ibm Apparatus and method for resource reclamation in data storage
US20080282047A1 (en) * 2007-05-08 2008-11-13 Hitachi, Ltd. Methods and apparatus to backup and restore data for virtualized storage area
US20090077327A1 (en) 2007-09-18 2009-03-19 Junichi Hara Method and apparatus for enabling a NAS system to utilize thin provisioning
US20090089516A1 (en) * 2007-10-02 2009-04-02 Greg Pelts Reclaiming storage on a thin-provisioning storage device
JP5317495B2 (ja) * 2008-02-27 2013-10-16 株式会社日立製作所 ストレージシステム、コピー方法及び正側のストレージ装置
US20090240880A1 (en) 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning

Also Published As

Publication number Publication date
EP2539804A1 (en) 2013-01-02
CN102782639B (zh) 2015-09-30
CN102782639A (zh) 2012-11-14
JP2013520747A (ja) 2013-06-06
WO2011106068A1 (en) 2011-09-01
US9965224B2 (en) 2018-05-08
EP2539804B1 (en) 2020-04-08
US20110208931A1 (en) 2011-08-25

Similar Documents

Publication Publication Date Title
JP5701320B2 (ja) 複製ターゲットがシンプロビジョニングストレージシステム上の未使用記憶空間を再利用できるようにするためのシステムおよび方法
US9940460B1 (en) Cleaning malware from backup data
US9594652B1 (en) Systems and methods for decreasing RAID rebuilding time
US8407182B1 (en) Systems and methods for facilitating long-distance live migrations of virtual machines
US8706694B2 (en) Continuous data protection of files stored on a remote storage device
US8700570B1 (en) Online storage migration of replicated storage arrays
US9122692B1 (en) Systems and methods for reducing file-system fragmentation when restoring block-level backups utilizing an identification module, an optimization module, and a restore module
US8825602B1 (en) Systems and methods for providing data protection in object-based storage environments
US8924353B1 (en) Systems and methods for copying database files
US8600935B1 (en) Systems and methods for achieving file-level data-protection operations using block-level technologies
US9077579B1 (en) Systems and methods for facilitating access to shared resources within computer clusters
US9047108B1 (en) Systems and methods for migrating replicated virtual machine disks
US8572338B1 (en) Systems and methods for creating space-saving snapshots
US9524215B1 (en) Systems and methods for managing virtual machine backups
US10042719B1 (en) Optimizing application data backup in SMB
US8983899B1 (en) Systems and methods for archiving files in distributed replication environments
US9311242B1 (en) Systems and methods for enabling write-back-cache aware snapshot creation
US8595192B1 (en) Systems and methods for providing high availability to instance-bound databases
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
US8707107B1 (en) Systems and methods for proactively facilitating restoration of potential data failures
US10037276B1 (en) Systems and methods for accelerating access to data by pre-warming the cache for virtual machines
US8549223B1 (en) Systems and methods for reclaiming storage space on striped volumes
US9251020B1 (en) Systems and methods for file-level replication
US9037821B1 (en) Systems and methods for replicating snapshots across backup domains
US8990815B1 (en) Synchronizing allocated blocks of virtual disk files across primary and secondary volumes by excluding unused blocks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131028

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150217

R150 Certificate of patent or registration of utility model

Ref document number: 5701320

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees