JP6195614B2 - カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング) - Google Patents

カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング) Download PDF

Info

Publication number
JP6195614B2
JP6195614B2 JP2015517894A JP2015517894A JP6195614B2 JP 6195614 B2 JP6195614 B2 JP 6195614B2 JP 2015517894 A JP2015517894 A JP 2015517894A JP 2015517894 A JP2015517894 A JP 2015517894A JP 6195614 B2 JP6195614 B2 JP 6195614B2
Authority
JP
Japan
Prior art keywords
volume
write
backup
map
cascade
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.)
Active
Application number
JP2015517894A
Other languages
English (en)
Other versions
JP2015525414A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015525414A publication Critical patent/JP2015525414A/ja
Application granted granted Critical
Publication of JP6195614B2 publication Critical patent/JP6195614B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process

Landscapes

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

Description

本発明はコンピュータ・データの管理に関し、更に具体的にはカスケード・ボリュームのクリーニングに関する。
ハードウェアの誤作動または自然災害あるいはその両方による損失に備えて、ストレージ・システムがバックアップしたディスクを有することは一般的である。バックアップ・ディスクは様々な技法によって生成することができる。例えばバックアップ・ディスクは、スナップショットまたはクローン技法を用いて生成することができる。
スナップショットは、一次ディスクに依存するポイント・イン・タイム・コピーである。スナップショットは例えばコピー・オン・ライト手順を用いて達成することができ、一次ディスク上のある領域に書き込みが行われる場合に、一次ディスク上のその領域に現在存在するデータをバックアップ・ディスクに書き込む。このため、バックアップ・ディスクが含むデータは一次ディスクで上書きされるものであり、一次ディスクの完全なコピーではない。典型的に、このタイプのバックアップ・コピーでは結果として低プロビジョニング・ボリューム(thinly provisioned volume)が生じ、ストレージが縮小される。一連のスナップショット・コピーをカスケードすることで、様々な時点での一次ディスクを表すことができる。しかしながら、スナップショット・コピーは通常、一次ディスクの完全なコピーを組み立て直すために一次ディスクに依存し続ける。
クローンは、一次ディスクに依存しないポイント・イン・タイム・コピーである。クローンは例えば、ディスクの領域を順次バックアップ・ディスクにコピーするバックグラウンド・コピー手順を実行し、更にコピー・オン・ライト手順を実行して、書き込みのために上書きされようとしておりバックグラウンド・コピー手順によってまだ処理されていない一次ディスク領域をすぐにコピーすることによって生成することができる。典型的に、クローンが用いられるのは、コピーが必要であり、そのコピーに対する入出力(IO)が一次ボリュームに対するIOに何も影響を与えてはならない場合である。また、クローンは、ソースに対する可用性によってコピーが影響されない場合に用いることができる。また、クローンはカスケードで用いることができる。
一つの実施において、カスケード・ボリュームのソース・クリーニングのためのプロセスは、一次ボリュームおよびこの一次ボリュームのための複数のカスケード・バックアップ・ボリュームを記憶することと、バックアップ・ボリュームの1つへの書き込みが、カスケードにおける別のボリュームのバックグラウンド・コピーを行うことによるものであるか、またはカスケードにおける別のボリュームへの書き込みによるかものであるかを判定することと、を含むことができる。書き込みがカスケードにおける別のボリュームのバックグランド・コピーによるものである場合、プロセスは、バックアップ・ボリュームのためのボリューム・マップにおけるバックグラウンド・コピー・インジケータを調節することを含むことができる。書き込みがカスケードにおける別のボリュームへの書き込みによるものである場合、プロセスは、バックアップ・ボリュームのためのボリューム・マップにおける書き込みコピー・インジケータを調節することを含むことができる。
様々な実施の詳細および特性は、以下の記載および添付図面によって示すことができる。
カスケード・ボリュームのソース・クリーニングのための一例のシステムを示すブロック図である。 カスケード・ボリュームのソース・クリーニングのための一例のボリューム・マップを示すブロック図である。 カスケード・ボリュームのソース・クリーニングのための一例のボリューム・マップを示すブロック図である。 カスケード・ボリュームのソース・クリーニングのための一例のプロセスを示すフローチャートである。 カスケード・ボリュームのソース・クリーニングのための別の一例のプロセスを示すフローチャートである。 カスケード・ボリュームのソース・クリーニングのための一例のコンピュータ・システムを示すブロック図である。
カスケード・ボリュームのソース・クリーニングは様々な技法によって達成可能である。特定の実施において、カスケード・ボリュームは、一次ボリューム、多数のカスケード・バックアップ・ボリュームを含むことができる。カスケード・ボリュームのソース・クリーニングは、バックアップ・ボリュームへの書き込みが、カスケードにおける別のボリュームのバックグラウンド・コピーを行うことによるものであるか、またはカスケードにおける別のボリュームへの書き込みによるものであるかの判定を含むことができる。バックアップ・ボリュームへの書き込みの理由は、各ボリュームのボリューム・マップに記録することができる。ボリュームの1つをクリーニングする必要がある場合(例えば除去または再開するために)、残りのボリュームのデータの完全性を維持するために、カスケード・ボリュームのボリューム・マップを分析して、クリーニング対象のボリューム上のどのデータを別のボリュームに移す必要があるかを判定することができる。
当業者によって認められるように、本開示の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って本開示の態様は、全体的にハードウェアの環境、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本開示の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有する1つ以上のコンピュータ読み取り可能媒体において具現化されたコンピュータ・プログラムの形態を取ることも可能である。
1つ以上のコンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的な列挙)は以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この開示の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能な有形の(tangible)媒体とすることができる。
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの媒体を用いて伝送することができる。
本開示の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等および「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語等の1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行することができる。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)外部コンピュータに対して行うことができる。
実施に従った方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本開示の態様について以下に記載する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
図1は、カスケード・ボリュームのソース・クリーニングのための一例のシステム100を示す。システム100は、外部システム110、ストレージ・システム120、および通信ネットワーク130を含む。
外部システム110は一般に、ストレージ・システム120に書き込みを発生することによってデータの一部を記憶させるいずれかのコンピュータ・システムとすることができる。外部システム110は例えば、記憶する必要があるデータを発生するサーバ・システムとすることができる。一例のサーバ・システムはウェブ・サーバを含む。外部システムがサーバ・システムである場合、サーバ・システムは1つ以上のサーバを含む場合があり、これは同じ場所に配置されるかまたは分散されることがある。
ストレージ・システム120は、このストレージ・システムに対してローカルまたはリモートであり得る様々な外部システム(例えばAIX(Advanced Interactive eXective)またはWindows(R)を実行するサーバ・システム)のためのデータを記憶することができる。特定の実施において、ストレージ・システム120はこの一例のシステムの一次ストレージを提供することができ、他のストレージ・システム(図示せず)がバックアップ・ストレージを(例えば同期または非同期の複製によって)提供する。ストレージ・システム120は例えば、ストレージ・エリア・ネットワーク、レイド・アレイ、ハード・ドライブ、テープ・ドライブ、またはデータを記憶するための他のいずれかのデバイスを含むことができる。ストレージ・システム120は、例えばブロック・アレイでデータを記憶することができる。
ストレージ・システム120は、ストレージ・コントローラ122およびストレージ124(例えばハード・ディスク、テープ等)を含む。ストレージ・コントローラ122はストレージ124にデータを配置する役割を有する。この考察のため、ストレージ124は一次ボリューム125およびバックアップ・ボリューム126〜127を含む。しかしながら、ストレージ124は通常、いかなる数のボリュームを含むように構成することも可能である。ボリューム125〜127は例えば、ストレージ124における実際の物理デバイス(例えばハード・ドライブ)、物理デバイスの部分、または物理デバイスの表現とすることができる。また、ストレージ124は、記憶する他の多数のボリュームを有することも可能である。
外部システム110およびストレージ・システム120は、通信ネットワーク130を介して相互に通信可能に結合されている。通信ネットワーク130は例えば、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、またはインターネットとすることができる。外部システム110およびストレージ・システム120は、1つ以上のワイヤライン(例えばケーブルまたは光ファイバ)または無線リンク(例えば無線周波数)あるいはその両方を含むことができる通信リンク132を介して通信ネットワーク130に結合されている。
バックアップ・ボリューム126〜127は、様々な技法によって一次ボリューム125のバックアップを提供することができる。例えばバックアップは、スナップショット技法またはクローン技法あるいはその両方を用いて生成することができる。前述のように、スナップショットはポイント・イン・タイム・コピーとすることができ、一次ボリューム上のある領域に書き込みを行う場合に、一次ボリューム上のその領域に現在存在するデータをバックアップ・ボリュームに書き込む。このため、バックアップ・ディスクが含むデータは一次ディスクで上書きされるものであり、一次ディスクの完全なコピーではない。領域は、例えばボリュームのセクタまたは他のアドレス可能部分である場合がある。特定の実施において、1つの領域は約64KBのサイズとすることができる。
典型的に、このタイプのバックアップ・コピーでは結果として低プロビジョニング・ボリュームが生じ、ストレージが縮小されるので、一次ボリューム上でのデータ破損の場合に有用とすることができる。多くの場合、単一のソースに多くのスナップショットが同時に存在するので、それらのサイズを縮小することは有利である。スナップショットは、相当の時間量(例えば数か月または数年)にわたってボリュームのカスケードに存在し得るが、典型的には数時間または数日のみ保持される。
クローン・コピーは例えば、ボリュームの領域を順次コピーするバックグラウンド・コピー手順を実行し、更にコピー・オン・ライト手順を実行して、書き込みのために上書きされようとしておりバックグラウンド・コピー手順によってまだ処理されていないボリューム領域をすぐにコピーすることによって生成することができる。典型的に、クローンが用いられるのは、コピーが必要であり、そのコピーに対する入出力(IO)が一次ボリュームに対するIOに何も影響を与えてはならない場合である。また、クローンは、ソースに対する可用性によってコピーが影響されない場合に用いることができる。すなわち、クローンはカスケードから除去することができ、それでもなお適正に機能することができる。例えば、クローンを用いて別のサイトにデータベースを持っていくことができる。クローンは通常、いったん完成したらテープにコピーされる。
バックアップ・ボリューム126〜127は、相互にカスケードさせることによって一次ボリューム125のバックアップを提供することができる。インターナショナル・ビジネス・マシーンズ(ニューヨーク州アーモンク)からのSAN Volume Controller(SVC)等のストレージ・コントローラは、カスケード実施を用いてソース・ボリュームを拡張することができる。
例えば、2つのバックアップ・ボリューム126〜127のうちバックアップ・ボリューム126が最初に一次ボリューム125にバックアップを提供すると想定する。バックアップ・ボリューム126は時点T1で開始するバックアップを提供することができ、バックアップ・ボリューム127は時点T2で開始するバックアップを提供することができる。T1では、カスケードは一次ボリューム125→バックアップ・ボリューム126である。T2では、カスケードは一次ボリューム125→バックアップ・ボリューム127→バックアップ・ボリューム126である。カスケード手法の動作においては、新しいバックアップ・ボリュームが開始した場合、一次ボリュームをそのソース・ボリュームとして用いている既存のバックアップ・ボリュームを変更して、新しいバックアップのターゲット・ボリュームをそのソース・ボリュームとして用いる。
バックアップ・ボリューム126がスナップショット技法によって動作すると想定すると、バックアップ・ボリューム126は、T1でのバックアップ開始以来の一次ボリューム125に対する変更を記憶することによってバックアップを提供する。この2要素カスケードでは、一次ボリューム125がソースであり、バックアップ・ボリューム126がターゲットである。従って一次ボリューム125を、一次ボリューム125→バックアップ・ボリューム126マップの有効ソースと称することができる。前述のように、このバックアップはコピー・オン・ライトを用いることによって達成可能である。このため、一次ボリューム125への書き込みは、一次ボリューム125上の書き込み対象領域のデータをバックアップ・ボリューム126にコピーすること、次いで新しいデータを一次ボリューム125の領域に書き込むことを含むことができる。従って、T1でバックアップ・ボリューム126へのバックアップがアクティブになった時に一次ボリューム125上にあったデータは、一次ボリューム125上に記憶され(すなわち書き込み対象でないボリューム領域について)、更にバックアップ・ボリューム126上に記憶される(すなわち書き込み対象であった領域について)。
バックアップ・ボリューム126上で読み取りを行う必要がある場合(例えばT1における一次ボリューム125上のデータを求めるため)、読み取りは最初にデータ・バックアップ・ボリューム126の位置の特定を試みることができる。データがそのボリューム上にない場合(すなわち一次ボリューム125で上書きされなかったので)、データを一次ボリューム125から読み取ることができる。
時として、一次ボリューム125をT1における状態に復元する必要があることがある。例えばこれはデータ破損のために起こり得る。バックアップ・ボリューム126がアクティブになった後に一次ボリューム125上で上書きされたデータをバックアップ・ボリューム126から検索して、一次ボリューム125をT1における状態に復元することができる。
後の時点すなわちT2では、バックアップ・ボリューム127へのバックアップがアクティブとなり、T2で開始する一次ボリューム125の表現を記憶することができる。この時点では、バックアップ・ボリューム127がT2における一次ボリューム125のデータを含むので、バックアップ・ボリューム126を更新する必要はない。このため、バックアップ・チェーンは一次ボリューム125→バックアップ・ボリューム127→バックアップ・ボリューム126となる。この時点で、一次ボリューム125→バックアップ・ボリューム126のマップは、有効ソースとしてソース・バックアップ・ボリューム127を有する。この変換が有効であるのは、バックアップ・ボリューム127がこの時点での一次ボリューム125の正確なコピーである(少なくとも記憶するデータ領域について)からである。
バックアップ・ボリューム127は、スナップショットまたはクローン技法によって動作することができる。これがスナップショット技法によって動作する場合、一次ボリューム125への書き込みは、一次ボリューム125→バックアップ・ボリューム126カスケードと同様に扱うことができるが、一次ボリューム125で上書きされるデータがバックアップ・ボリューム127に配置される点が異なる。バックアップ・ボリューム127がクローン技法によって動作する場合、一次ボリューム125の領域のバックアップ・ボリューム127への書き込みは、比較的長い時間期間を要する場合がある順次読み取りと、オン・デマンド書き込み(例えば一次ボリューム125への書き込みによりデータが上書きされることによる)との組み合わせによって行われる。
このカスケードにおいてデータを維持するため、IOアルゴリズムを用いることができる。例えば読み取りでは、(1)バックアップ・ボリューム126の読み取りが要求された場合、要求されたデータがバックアップ・ボリューム126上にあるならばこのボリュームを読み取り(例えば領域に従って)、または要求されたデータがバックアップ・ボリューム127上にあるならばこのボリュームを読み取り、または一次ボリューム125を読み取る。(2)バックアップ・ボリューム127の読み取りが要求された場合、要求されたデータがこのボリューム上にあるならばこのボリュームを読み取り、または一次ボリューム125を読み取る。(3)一次ボリューム125の読み取りが要求された場合、このボリュームを読み取る。
書き込みでは、(1)バックアップ・ボリューム126への書き込みが要求された場合、このボリュームに書き込む。(2)バックアップ・ボリューム127への書き込みが要求された場合、(a)バックアップ・ボリューム126が一次ボリューム125上に保持されたデータを必要とするならば、一次ボリューム125を読み取り、結果をバックアップ・ボリューム126に書き込み、新しいデータをバックアップ・ボリューム127に書き込み、(b)または、バックアップ・ボリューム126がバックアップ・ボリューム127に保持されたデータを必要とするならば、バックアップ・ボリューム127を読み取り、結果をバックアップ・ボリューム126に書き込み、新しいデータをバックアップ・ボリューム127に書き込み、または、(c)バックアップ・ボリューム127に書き込む。(3)一次ボリューム125への書き込みが要求された場合、(a)バックアップ・ボリューム127が一次ボリューム125上に保持されたデータを必要とするならば、一次ボリューム125を読み取り、結果をバックアップ・ボリューム127に書き込み、次いで新しいデータを一次ボリューム125に書き込み、(b)または、一次ボリューム125に書き込む。
このIOアルゴリズムによって、多数のターゲット(例えば2つ以上)をカスケードすることができる。更に、一次ボリューム125への書き込みが行われた場合、一次ボリューム125のバックアップ・ボリュームの数とは無関係に、バックアップ・ボリュームへの余分な書き込みは多くても1回である。このため、ソース/生成IO性能に対するバックアップ・マップの影響は比較的小さく、限られている。
T2の後の時点では、バックアップ・ボリューム126は通常バックアップ・ボリューム127に依存する。例えば、あるデータ領域が、T1とT2との間でバックアップ・ボリューム126に転送されなかった(例えばその時間中に一次ボリューム125への書き込みがなかったため)が、T2の後にバックアップ・ボリューム127に転送された(例えばT2の後に一次ボリューム125への書き込みがあったため)場合、バックアップ・ボリューム126は、T1における状態に一次ボリューム125を復元するためにこのデータを必要とする。この時点の後にバックアップ・ボリューム126に影響を与えることなくカスケードからバックアップ・ボリューム127を除去する場合、バックアップ・ボリューム127をクリーニングしなければならない。すなわち、(例えば外部システムからの)バックアップ・ボリューム126の読み取りに必要であるバックアップ・ボリューム127上のデータを、最初にバックアップ・ボリューム126にコピーしなければならない。このプロセスは比較的長い時間を要することがある。更に、バックアップ・ボリューム127がクローン技法によって構築された場合はバックアップ・ボリューム127が全体的に割り当てられる可能性があるが、更にバックアップ・ボリューム126がスナップショット技法によって構築された場合には、クリーニング動作において、バックアップ・ボリューム127のほとんどをバックアップ・ボリューム126に転送する必要があると判定されることがある。特に全体的に割り当てられる場合、バックアップ・ボリューム126に記憶されるデータ量が劇的に増大する可能性がある。
いくつかの動作モードでは、ボリューム上のデータ領域を分類して、領域上に保持されるデータをクリーニングしなければならないか否かを判定し、または、介在するボリューム(例えばバックアップ・ボリューム127)が除去されても、依存するボリューム(例えばバックアップ・ボリューム126)によって、(例えば一次ボリューム125上の)データを利用可能であるか否かを判定することができる。1つのターゲット・ボリューム領域が読み取り動作に戻すデータを含むか否かを追跡するために必要な最小メタデータ量は1ビットである。このため、ターゲット・ボリューム当たりの必要なメタデータ量は、ボリューム上の全データ領域について充分なビットを含むビットマップである。しかしながらこれは、なぜボリューム領域にデータが配置されたかについての判定を考慮に入れていない。例えば、ボリュームへのデータの書き込みの理由は、(例えば外部システムからの)書き込み、書き込みからの分割、または上流コピーのバックグラウンド・コピーが生成されたことであった可能性がある。「上流」ボリュームとは、現在のボリュームを基準として用いた場合に一次ボリュームに近い方向のものであり、「下流」ボリュームとは、現在のボリュームを基準として用いた場合に一次ボリュームから離れる方向のものである。
ストレージ・コントローラ122は、バックアップ・ボリューム126〜127上の領域に関するメタデータを記憶することができるボリューム・マップ123を含む。具体的には、ボリューム・マップ123は、ある領域内のデータがその領域にある理由を規定することができる。例えばボリューム・マップは、データが領域に配置された理由が、書き込みである(例えばスナップショット技法またはボリュームへの直接書き込みから)か、またはバックグラウンド・コピーである(例えばクローン技法から)かを特定することができる。
いくつかの実施において、各ボリューム・マップ123は2つのビットマップを含む。各ビットマップは、ボリューム上の割り当て済みまたはその可能性がある各領域についてのビットを含む。一方のビットマップを用いて、バックグラウンド・コピーによるデータを有する領域にマークを付けることができ、他方のビットマップを用いて、(例えばボリューム自体または別のボリュームへの)書き込みのデータを有する領域にマークを付けることができる。
例えば、3つのボリュームA、B、およびCの各々が3つのデータ領域を含むと仮定する。更に、ボリューム・マップA→BおよびB→Cがあり、各々が2つのビットマップすなわちバックグラウンド・コピー・ビットマップおよび書き込みコピー・ビットマップを有すると仮定する。マップA→Bを開始すると、カスケードはA→((0,0,0),(0,0,0))→Bによって表すことができる、ここで、→((0,0,0),(0,0,0))→は、1つのボリューム・マップの2つのビットマップを表し、→((バックグラウンド・コピー・ビットマップ),(書き込みコピー・ビットマップ))→である。
領域0においてボリュームAへの書き込みがあると、ビットマップを変更して、上述のIOアルゴリズムに記載したデータの移動を反映させる。すなわち、A→((0,0,0),(1,0,0))→Bとなり、これは、ボリュームBが領域0についてそれ自身のデータを保持すること、およびこれがバックグラウンド・コピーのためではないことを示す。ボリュームAからボリュームBへのコピーがクローンである場合、バックグラウンド・コピーはこの領域を再びコピーしようとはしない。ボリュームBがすでにそれ自身のデータ・コピーを含まない場合に、ボリュームAからボリュームBに領域をコピーするだけである。ボリュームBへの領域1のバックグラウンド・コピーがあると、この結果としてビットマップはA→((0,1,0),(1,0,0))→Bのように見え、これは、ボリュームBが領域1についてそれ自身のデータを保持すること、およびこれがバックグラウンド・コピーのためであることを示す。
この後、ボリュームBからボリュームCへのバックアップ・コピーが開始した場合、カスケードはA→((0,1,0),(1,0,0))→B→((0,0,0),(0,0,0))→Cのように見える。領域2におけるボリュームBへの書き込みでは、カスケードはA→((0,1,0),(1,0,1))→B→((0,0,0),(0,0,1))→Cのように見え、これは、ボリュームBおよびボリュームCがそれ自身のデータ・コピーを含むこと、および(例えば外部システムからの)書き込みのためにそれらを取得したことを示す。ボリュームCはボリュームAの領域2からデータを取得した。ボリュームBへの書き込みは、例えば試験または開発あるいはその両方を行うために使用可能である。
次いでボリュームBをカスケードから除去する場合、ボリュームBからボリュームCへのバックアップをクリーニングする必要がある。ビットマップを調べることで、領域0をクリーニングする必要があると判定することができる。なぜなら、ボリュームBがデータを含み、これがボリュームA上にはあり得ないからである。すなわち、ボリュームBのボリューム・マップは、ボリュームBが書き込みのために領域0のデータを取得したことを示し、これはそのデータがもはやボリュームA上に存在しないことを意味する。しかしながら領域1については、ボリュームBのボリューム・マップは、ボリュームBがバックグラウンド・コピーのためにデータを取得したことを示し、これはそのデータが今もなおボリュームAに存在することを意味する。このため、ボリュームCに領域1のコピーを行う必要はない。更に、ボリュームBのボリューム・マップは、ボリュームBが書き込みのために領域2のデータを取得したことを示すが、ボリュームCのボリューム・マップは、ボリュームCがすでにこの領域のデータを記憶したことを示し、これはボリュームCがボリュームBからの領域2のデータを必要としないことを意味する。
次いで、ボリュームBの領域0からボリュームCの領域0にデータをコピーすることによって、B→Cコピーをクリーニングすることができる。ボリュームAは、ボリュームCが必要とするデータを含まないので、ボリュームCへのクリーニング書き込みは書き込みとして処理することができる。ボリュームAとボリュームCとの間の関係を示すように、ボリュームCのボリューム・マップを調節することができる。すなわちA→((0,0,0),(1,0,1))→Cとなり、これは、ボリュームCの領域0が書き込みのためにそのデータを取得したこと、ボリュームCの領域1がデータを有しないこと、およびボリュームCの領域2が書き込みのためにそのデータを取得したことを示す。
この例では、クリーニングの量は半分に減っている。すなわち、ボリューム・マップがなかったら、クリーニングはボリュームBの領域1からボリュームCへの書き込みも実行しなければならないはずであった。このデータがボリュームBに到達した理由が明らかでないからである。領域の数が増えれば、より大きな節約が可能となる。典型的には、該当する場合、1つのボリュームの少数のみの領域に書き込みが行われ、データのほとんどはバックグラウンド・コピーのために転送される。
別の例として、3つのボリュームD、E、およびFの各々が4つのデータ領域を含むと仮定する。更に、ボリュームDが一次ボリュームであり、ボリュームEが早期バックアップ・ボリュームであり、ボリュームFが後期バックアップ・ボリュームであり、結果としてチェーンD→F→Eになると仮定する。更に、ボリュームEはコピー・オン・ライト技法を用いることによってバックアップを提供し、ボリュームFはクローン技法を用いることによってバックアップを提供し、ボリュームEおよびFのボリューム・マップの各々が2つのビットマップすなわちバックグラウンド・コピー・ビットマップおよび書き込みコピー・ビットマップを含むと仮定する。
ボリュームEによるボリュームDのバックアップを開始すると、カスケードは、D→((0,0,0,0),(0,0,0,0))→Eによって表すことができる。ここで、→((0,0,0,0),(0,0,0,0))→はボリューム・マップの2つのビットマップを表し、→(バックグラウンド・コピー・ビットマップ),(書き込みコピー・ビットマップ)→である。
領域1においてボリュームDへの書き込みがあると、ビットマップを変更して、上述のIOアルゴリズムに記載したデータの移動を反映させる。すなわち、D→((0,0,0,0),(0,1,0,0))→Eとなり、これは、ボリュームEが領域1についてそれ自身のデータを保持すること、およびこれがバックグラウンド・コピーのためではないことを示す。領域2においてボリュームDへの書き込みがあると、ビットマップを再び変更して、IOアルゴリズムに記載したデータの移動を反映させる。すなわち、D→((0,0,0,0),(0,1,1,0))→Eとなる。
ここで、ボリュームDからボリュームFへのバックグラウンド・コピーが開始すると、カスケードはD→((0,0,0,0),(0,0,0,0))→F→((0,0,0,0),(0,1,1,0))→Eのように見える。ボリュームDの領域1および3のバックグラウンド・コピーの実行前にこれらの領域への書き込みが行われ、バックグラウンド・コピーが完全に実行されたと想定すると、カスケードはD→((1,0,1,0),(0,1,0,1))→F→((0,0,0,0),(0,1,1,0))→Eとなる。ボリュームDからボリュームFへのコピーはクローンであるので、バックグラウンド・コピーは領域1および3を再びコピーしようとしない。これは、ボリュームFがすでにそれ自身のデータ・コピーを含まない場合に、ボリュームDからボリュームFに領域をコピーする。ある領域のバックグラウンド・コピーが行われ、次いで上流ボリューム上でその領域への書き込みが行われた場合、下流ボリューム上の書き込みコピー・インジケータを更新することができる。あるいは、バックグラウンド・インジケータのみがセットされている場合、システムは、データが今もなお一次ボリューム上に存在すると判定することができる。
次いでボリュームFをカスケードから除去する場合、ボリュームFをクリーニングする必要があり得る。ビットマップを調べることで、領域3をクリーニングする必要があると判定することができる。なぜなら、ボリュームFがデータを含み、これがボリュームD上にはあり得ないからである。すなわち、ボリュームFのボリューム・マップは、ボリュームFが書き込みのために領域3のデータを取得したことを示し、これはそのデータがもはやボリュームDに存在しないことを意味する。しかしながら領域1については、ボリュームFのボリューム・マップは、ボリュームFが書き込みのために領域1のデータを取得したことを示すが、ボリュームEのボリューム・マップは、ボリュームEがすでにこの領域のデータを記憶したことを示し、これはボリュームEがボリュームFからの領域1のデータを必要としないことを意味する。
領域0および領域2については、ボリュームFのボリューム・マップは、ボリュームFがバックグラウンド・コピーのためにデータを取得したことを示し、これはデータが今もなおボリュームD上に存在することを意味する。このため、ボリュームFにこれらの領域のコピーを行う必要はない。更に領域2については、ボリュームEのボリューム・マップは、ボリュームEが早期にボリュームDからデータを取得したことを示し、これはボリュームEがすでにボリュームDからの必要なデータを有することを意味する。このため、ボリュームFに領域2のコピーを行う必要はない。
次いで、ボリュームFの領域3からボリュームEの領域3にデータをコピーすることによってボリュームFをクリーニングすることができる。ボリュームDは、ボリュームEが必要とするデータを含まないので、ボリュームEへのクリーニング書き込みは書き込みとして処理することができる。ボリュームDとボリュームEとの間の関係を示すように、ボリュームEのボリューム・マップを調節することができる。すなわちD→((0,0,0,0),(0,1,1,1))→Eとなり、これは、ボリュームEの領域1〜3が書き込みのためにそれらのデータを取得したこと、およびボリュームEの領域0がデータを有しないことを示す。
この例では、クリーニングの量は半分に減っている。すなわち、ボリューム・マップがなかったら、クリーニングはボリュームFの領域0からボリュームEへの書き込みも実行しなければならないはずであった。このデータがボリュームFに到達した理由が明らかでないからである。領域の数が増えれば、より大きな節約が可能となる。典型的には、該当する場合、1つのボリュームの少数のみの領域に書き込みが行われ、データのほとんどはバックグラウンド・コピーのために転送される。
いくつかの実施においては、ボリューム・マップのためのストレージ空間量を著しく低減することができる。例えば、ビットマップは主として、予想されるIOパターンがランダムである場合に必要とされる。これは通常、外部システムIOに当てはまるが、バックグラウンドIOには当てはまらない。バックグラウンドIOでは、IOパターンは一般にボリュームの開始から終了までまたはその逆に配列されることが多い。従って、バックグラウンド・ビットマップをインデックスによって置換することができる(例えば、ボリュームの冒頭から始まるコピーについては高水位(watermark)、およびボリュームの最後から始まるコピーについては低水位)。インデックスを用いて、一方では全ての領域をコピーしたと見なし、他方では書き込みが発生しない限りコピーされていないと見なす。
上述の第1の例に戻ると、A→BおよびB→Cが同時に開始した場合、A→(HMW=0,(0,0,0))→B→(HMW=0,(0,0,0))→Cとなる。バックグラウンド・コピーが実行されると、マッピングはA→(hmw=1,(0,0,0))→B→(hmw=0,(0,0,0))→Cのように更新され、ボリュームへの書き込みが行われないと想定すると最終的にはA→(hmw=3,(0,0,0))→B→(hmw=0,(0,0,0))→Cとなる。この時点で、ボリュームAのデータはバックグラウンド・コピーによってボリュームBにコピーされており、カスケードからボリュームBを除去するためにこの状態においてクリーニングは必要でない。通常、電子動作であるので何も実行しない場合(例えばIOが存在しない)、インデックスは迅速に最大値に達する。
ボリュームAの領域0への書き込みがあると、ボリュームBに転送する必要のあるデータが存在しない場合であっても、ボリューム・マップはA→(hmw=2,(1,0,0))→B→(hmw=0,(0,0,0))→Cとなる。次いで、ボリュームBを除去するためには、領域0のみをクリーニングする必要があると判定することができ、この結果、A→(hmw=0,(1,0,0))→Cとなる。このように、インデックスを用いることによってマッピングのためのストレージ空間量を約半分に減らすことができ、しかも、カスケードからボリュームを除去する場合に転送する必要があるデータの正確な計算は維持されたままである。この場合、例えば、ボリュームBを除去した際に1つのみの領域がボリュームCに転送されたが、もしもボリュームBのマッピングが存在しなければ全ての領域を転送しなければならなかった。
図2から図3は、カスケード・ボリュームのための一例のボリューム・マップ200および250をそれぞれ示す。ボリューム・マップ200は、書き込みコピー・インジケータ210およびバックグラウンド・コピー・インジケータ220を含む。書き込みコピー・インジケータ210はビットマップ212を含み、各ビット214がそれぞれターゲット・ボリューム(例えばコピーが送信されるボリューム)上の領域に対応する。この例では、領域が書き込みを受信した場合、これを1で示し、領域が書き込みを受信していない場合、これをゼロで示す。この標示は他の実施においても維持することができる。同様に、バックグラウンド・コピー・インジケータ210はビットマップ222を含み、各ビット224がそれぞれターゲット・ボリューム上の領域に対応する。この例では、領域がバックグラウンド・コピー技法の実行による書き込みを受信した場合、これを1で示し、領域が書き込みを受信していない場合、これをゼロで示す。この標示は他の実施においても維持することができる。
ボリューム・マップ250は、書き込みコピー・インジケータ260およびバックグラウンド・コピー・インジケータ270を含む。書き込みコピー・インジケータ260はビットマップ262を含み、各ビット264がそれぞれターゲット・ボリューム(例えばコピーが送信されるボリューム)上の領域に対応する。ビットを様々な値にセットすることによって、書き込みコピー・インジケータ260は、ボリュームの様々な領域におけるデータが(例えば直接そのボリュームへのまたは上流ボリュームへの)書き込みによるものであるか否かを示すことができる。バックグラウンド・コピー・インジケータ270はインデックス272を含む。インデックス272はシーケンシャル・インジケータであり、複数のインジケータがボリューム上の複数の領域にマッピングする。例えばインデックス272は、ボリューム上の領域にマッピングする数(例えば整数)または1つ以上の文字を記憶することができる。インデックス272を調べることによって、ストレージ・コントローラは、バックグラウンド・コピーが1つのボリュームを別のボリュームにコピーする際にどのくらい進行したかを判定することができる。
図2から図3はボリューム・マップの2つの例を示すが、他のボリューム・マップの例も存在する。例えば、ビットマップを用いる代わりに、インジケータがフラグ(例えば真/偽)のアレイを用いて、条件が発生したか否かを示すことができる。一般に、ボリュームの領域に位置をマッピングすることができるいかなるタイプのアレイまたは構成物(construct)も使用可能である。更に、アレイは、単一のアレイ(例えば2xNもしくはNx2)または別個のアレイとして実施することができ、異なるメモリ部分の同一部分にあることも可能である。更に、論理的に認識できるいかなるインジケータも使用可能である。
この検討のため、ボリューム・マップ123内のメタデータは一般的に以下の方法で変更することでデータの正確な追跡を保証することができる。ボリュームに対する外部書き込みでは、そのボリュームの書き込みビットマップおよび下流ボリューム(存在する場合)の書き込みビットマップ内の領域にマークを付ける。下流ボリュームは、例えばボリュームが最も早いバックアップ・ボリュームである場合には存在しないことがある。ボリュームに対するバックグラウンド書き込みでは、領域のバックグラウンド・コピーが成功した場合にインジケータを調節する。バックグラウンド・ビットマップでは、これはその領域に関連付けられたビットをセットすることを含むことができる。インデックスでは、これはインデックスの増分を含むことができる。コピー・オン・ライトがすでに領域に実行されている場合、バックグラウンド・コピーについての書き込みの実行もバックグラウンド・ビットマップの調節も必要ない場合がある。従ってこれらの動作をスキップすることができる(例えば書き込みコピー・インジケータを調べることによって)。これ以上の動作を行う必要がないという指示で充分である場合がある。
読み取りは、この読み取りのために時間同期したボリュームで開始しなければならない。データがボリューム上で当該領域に存在する場合、そのボリュームを読み取る。データがボリューム上で当該領域に存在しない場合、次の上流ボリュームに進む。(1)ボリューム・マップを有しない場合、そのボリュームを読み取る(例えばチェーンが一次ボリュームまで戻る)。(2)ボリューム・マップによって、対象領域に書き込みが行われたことが示される場合、そのボリュームを読み取る。(3)ボリューム・マップによって、バックグラウンド・コピー・プロセスが対象領域を処理したことが示される場合、そのボリュームを読み取る。ボリューム・マップがこれらの条件のどれも満たさない場合、次の上流ボリュームに進んでそのボリューム・マップを同じ方法で分析する。
カスケードからボリュームを除去する場合のクリーニングでは、除去するボリュームのボリューム・マップを最初に分析する。マップによって、ボリューム内の領域が書き込みのために書き込まれたことが示される場合、その領域はカスケードの下流にある次のボリュームへと移動させる候補である。次いで下流ボリュームのボリューム・マップを当該領域についてチェックして、下流ボリュームがその領域についてすでにデータを有するか否かを判定する。下流ボリュームがその領域のデータを有しない場合、当該領域は除去するボリュームから下流ボリュームにコピーされる。更に、下流ボリュームのボリューム・マップにマークを付ける。
システム100は様々な特性を有する。例えばシステム100は、カスケードからボリュームを除去する場合に必要なクリーニング量を低減し、これによってボリュームを除去するために要する時間および労力の量を大幅に低減することができる。更に、これは残りのボリューム上に置かれるデータ量を減らすことができる。更に、この低減は、領域上に保持されるデータを分類するために必要なメタデータがわずかに増大するだけで達成可能である。このため、低いメタデータ・コストでクリーニングの向上という結果を得ることができる。
図1はカスケード・ボリュームのソース・クリーニングのためのシステムの1つの実施を示すが、他のシステムでは、含むコンポーネントの削減、追加、または異なる配置あるいはそれら全てを行うことも可能である。例えば、多数の外部システムがストレージ・システムに書き込みを行う場合がある。更に、ストレージ・システムは多数のカスケード・ボリューム・セットを有することができる。更に、当業者によって認められるように、多数のターゲット・カスケードが全く同一の方法で機能する。
図4は、カスケード・ボリュームのソース・クリーニングのための一例のプロセス300を示す。プロセス300は、例えばシステム100と同様のシステムによって実行することができる。
プロセス300は、ボリュームに対する書き込みが受信されたか否かの判定を要求する(動作304)。ボリュームに対する書き込みが受信されていない場合、プロセス300はボリュームに対する書き込みの待機を要求する。
いったんボリュームに対する書き込みが受信されると、プロセス300はこの書き込みがボリューム上に生成されるバックグラウンド・コピーによるものであるか否かの判定を要求する(動作308)。ストレージ・コントローラは、例えば他の構成データ(例えばメタデータ内の)と同じ方法でボリューム間のコピーのタイプ(例えばクローン対スナップショット)を常に監視することができる。書き込みがボリューム上に生成されるバックグラウンド・コピーによるものである場合、プロセス300はボリュームのボリューム・マップ(すなわちクローンされるボリュームと書き込みを受信したボリュームとの間のマップ)におけるバックグラウンド・コピー・インジケータの調節を要求する。ボリューム・マップは、例えばインデックスの調節(例えば増分または減少)によって調節することができる。次いでプロセス300は戻ってボリュームに対する別の書き込みを待つ。
書き込みがボリューム上に生成されるバックグラウンド・コピーによるものでない場合、プロセス300は、書き込みがボリューム上に生成されるスナップショット・コピーによるものであるか否かの判定を要求する(動作316)。書き込みがボリューム上に生成されるスナップショット・コピーによるものである場合、プロセス300は、ボリュームのボリューム・マップにおける書き込みコピー・インジケータの調節を要求する(動作320)。ボリューム・マップは、例えば領域に関連付けられたビットをセットすることによって調節可能である。バックグラウンド・コピーを実行した後に上流ボリュームへの書き込みが行われた場合、書き込みコピー・インジケータを調節することができる。次いでプロセス300は戻ってボリュームに対する別の書き込みを待つ。
書き込みがボリューム上に生成されるスナップショット・コピーによるものでない場合(例えば書き込みが外部ソースから直接ボリュームに入来している場合)、プロセス300は、書き込みがボリュームに対する直接書き込みによるものであるか否かの判定を要求する(動作324)。書き込みがボリュームに対する直接書き込みによるものでない場合、プロセス300はボリュームに対する別の書き込みの待機を要求する(動作304)。
しかしながら、書き込みがボリュームに対する直接書き込みによるものである場合、プロセス300は、下流ボリュームがデータを必要とするか否かの判定を要求する(動作328)。下流ボリュームがデータを必要とすることがあるのは、例えば、書き込みが下流ボリュームのデータを記憶している領域に対するものである場合、または書き込みが下流ボリュームのデータを記憶している上流ボリューム上のものに相当する領域に対するものである場合である(例えばある領域をカスケード中央のボリュームに書き込む際に、一次ボリュームがカスケードの更に下流にあるボリュームのデータを記憶している場合)。下流ボリュームがデータを必要としない場合、プロセス300はボリュームに対する別の書き込みの待機を要求する(動作304)。
しかしながら、下流ボリュームがデータを必要とする場合、プロセス300は書き込みに関連付けられた領域のデータの読み取りの実行を要求する(動作332)。読み取りは、例えば上述のIOルールに従って実行可能である。このため、読み取りは、書き込まれるボリュームまたは上流ボリュームのものであり得る。
また、プロセス300は、読み取ったデータを下流ボリュームに移動することを要求する(動作336)。下流ボリュームはこのデータを分割書き込みまたはコピーとして受信する。プロセス300は更に、ボリュームのボリューム・マップの書き込みコピー・インジケータの調節(動作340)、および、下流ボリュームのボリューム・マップの書き込みコピー・インジケータの調節(動作344)を要求する。次いで、プロセス300は戻ってボリュームに対する別の書き込みを待つ。
プロセス300は、バックアップ・ボリュームをコピーしている限り動作することができる。このためプロセス300は、通常動作の間に多数回にわたって繰り返すことができる。
図5は、カスケード・ボリュームのソース・クリーニングのための別の一例のプロセス400を示す。プロセス400は、例えばシステム100と同様のシステムによって実行することができる。更に、プロセス400はプロセス300と関連付けて使用可能である。
プロセス400は、ボリュームをクリーニングするか否かの判定を要求する(動作404)。ボリュームは、例えばカスケードから除去するかまたは再開する場合にクリーニングする必要があり得る。ボリュームをクリーニングしない場合、プロセス400はクリーニングするボリュームの待機を要求する。
ボリュームをクリーニングするならば、プロセス400はクリーニングを開始するボリュームの領域の選択を要求する(動作408)。これは例えば、ボリューム上の第1の領域、ボリューム上の最後の領域、またはそれらの中間の領域を選択することで実行可能である。また、プロセス400は、ボリュームのボリューム・マップの書き込みコピー・インジケータにおいてその領域にマークが付けられているか否かの判定を要求する(動作412)。例えば領域のためにインジケータ(例えばビットまたはフラグ)をセットした場合に、領域にマークを付けることができる。ボリュームのボリューム・マップの書き込みコピー・インジケータにおいて領域にマークが付けられていない場合、プロセス400は、ボリュームにおいて分析する別の領域が存在するか否かの判定を要求する(動作416)。分析する別の領域が存在する場合、プロセスは、ボリュームのボリューム・マップの書き込みコピー・インジケータにおいてその領域にマークが付けられているか否かの判定を要求する(動作412)。プロセス400は、ボリュームの全ての領域を分析してプロセス400が終了する時点まで、またはボリュームのボリューム・マップの書き込みコピー・インジケータにおいてその領域にマークが付けられるまで、動作412から416を繰り返す。
ボリュームのボリューム・マップの書き込みコピー・インジケータにおいて領域にマークが付けられている場合、プロセス400は、下流ボリュームのボリューム・マップの書き込みコピー・インジケータにおいて領域にマークが付けられているか否かの判定を要求する(動作420)。下流ボリュームのボリューム・マップの書き込みコピー・インジケータにおいて領域にマークが付けられている場合、プロセス400は、ボリュームにおいて分析する別の領域が存在するか否かの判定を要求する(動作416)。下流ボリュームのボリューム・マップにおいて領域にマークが付けられていない場合、プロセス400は、その領域のデータを下流ボリュームにコピーすることを要求する(動作424)。また、プロセス400は、その領域のために下流ボリュームのボリューム・マップの書き込みコピー・インジケータを調節することを要求する(動作428)。次いでプロセス400は、ボリュームにおいて分析する別の領域が存在するか否かの判定を要求する(動作416)。
プロセス400は、バックアップ・ボリュームをコピーしている限り動作することができる。このためプロセス400は、通常動作の間に多数回にわたって繰り返すことができる。
図面におけるフローチャートおよびブロック図は、本開示の様々な実施のシステム、方法、およびコンピュータ・プログラムのアーキテクチャ、機能性、および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むことができるコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序通りでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
図6は、カスケード・コピーのソース・クリーニングを管理するための一例のコンピュータ・システム500を示す。コンピュータ・システム500は、例えばストレージ・システムのストレージ・コントローラのコンポーネントのいくつかを示すことができる。
システム500は、プロセッサ510、入出力システム520、およびメモリ530を含み、これらはネットワーク540によって結合されている。図示のように、コンピュータ・システム500はストレージ・システムのストレージ・コントローラとして機能している。
プロセッサ510は典型的に、(例えばソフトウェアからの)プログラム命令の指示のもとでデータを処理する論理処理ユニット(例えば演算論理ユニット)を含む。例えばプロセッサ510は、マイクロプロセッサ、マイクロコントローラ、または特定用途向け集積回路とすることができる。プロセッサは、RISC(reduced instruction set computer:縮小命令セット・コンピュータ)またはCISC(complex instruction set computer:複合命令セット・コンピュータ)の原理によって動作することができる。一般に、プロセッサはデータを論理的に操作するいずれかのデバイスとすれば良い。
入出力システム520は、1つ以上の通信インタフェースまたは1つ以上の他のユーザ・インタフェースあるいはその両方を含むことができる。通信インタフェースは、例えばネットワーク・インタフェース・カード(無線もしくは有線)またはモデムとすることができる。ユーザ・インタフェースは、例えばユーザ入力デバイス(例えばキーボード、キーパッド、タッチパッド、スタイラス、もしくはマイクロフォン)、またはユーザ出力デバイス(例えばモニタ、ディスプレイ、もしくはスピーカ)とすれば良い。一般に、入出力システム520は、コンピュータ・システムがデータを受信および出力することができるデバイスのいずれかの組み合わせとすることができる。
メモリ530は、例えばランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュ・メモリ、またはディスク・メモリ、あるいはそれら全てを含むことができる。メモリの異なる部分に様々な時点で様々な項目を記憶することができる。メモリ530は一般に、データを記憶するためのデバイスのいずれかの組み合わせとすることができる。
メモリ530は命令532およびデータ536を含む。命令532は、オペレーティング・システム533(例えばWindows(R)、Linux、またはUnix)と、バックアップ・マネージャ535を含むアプリケーション534と、を含む。データ536は、アプリケーション534が必要とするかまたは生成するあるいはその両方であるデータを含み、これは書き込みデータ537およびボリューム・マップ538を含む。
ネットワーク540は、プロセッサ510、入出力システム520、およびメモリ530間のデータ通信を担う。ネットワーク540は、例えば異なるタイプのバス(例えばシリアルおよびパラレル)を含むことができる。
いくつかの動作モードにおいて、プロセッサ510は(例えば外部システムから)書き込みを受信して、コンピュータ・システムが管理する記憶のためにそれらを準備することができる。更にプロセッサ510は、バックアップ・マネージャ535に従って、ストレージ内のボリュームのためのバックアップ・ボリュームを発生することができる。各バックアップ・ボリュームは関連付けられたボリューム・マップ538を有することができ、これはボリュームにデータが配置された理由を領域ごとに示すことができる。ボリュームにデータが書き込まれると、プロセッサ510はボリューム・マップ538を更新することができる。更に、プロセッサ510は、ボリュームのカスケードからボリュームが除去される場合にボリューム・マップを用いることができる。プロセッサ510は、例えばプロセス300〜400の1つ以上の部分を含む上述の技法のいずれかを実施することによってこれを達成可能である。
本明細書において用いた用語は、特定の実施を記載する目的のためだけのものであり、限定は意図していない。本明細書において用いる場合、単数形「1つの(a)、(an)、(the)」は、文脈によって明らかに他の場合が示されない限り複数形を含むことが意図されている。また、「含む(comprises)」または「含んでいる(comprising)」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特性、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれら全ての存在を規定するが、1つ以上の他の特性、整数、ステップ、動作、要素、コンポーネント、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図されている。本実施の記載は、例示および記述の目的のために提示したが、網羅的であることや、開示した形態に実施を限定することは、意図していない。本発明の範囲から逸脱することなく、当業者には多くの変更および変形が明らかであろう。実施は、本開示の原理および実際的な用途を説明するため、更に、想定される特定の用途に適した様々な変更と共に様々な実施に関して当業者が本開示を理解することを可能とするために、選択し記載したものである。
カスケード・ボリュームのソース・クリーニングについて多数の実施を記載し、いくつかの他のものを言及または提示した。更に、カスケード・ボリュームのソース・クリーニングを達成しながら、これらの実施に対して多種多様な追加、削除、変更、および置換を実施可能であることは、当業者には認められよう。従って、保護される主題の範囲は、1つ以上の実施の1つ以上の概念を把握することができる以下の特許請求の範囲に基づいて判断されるものである。

Claims (24)

  1. カスケード・ボリュームのソース・クリーニングのためのシステムであって、
    一次ボリュームおよび前記一次ボリュームのための複数のカスケード・バックアップ・ボリュームを含むストレージと、
    外部ソースから前記ボリュームの1つ以上に対する書き込みを受信すると共に、これに記憶するために前記書き込みを準備するように適合されたストレージ・コントローラであって、
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームのバックグラウンド・コピーを行うことによるものであるか否かを判定し、
    前記書き込みが前記カスケードにおける別のボリュームのバックグランド・コピーによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおけるバックグラウンド・コピー・インジケータにマークを付け
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームへの書き込みによるものであるか否かを判定し、
    前記書き込みが前記カスケードにおける別のボリュームへの書き込みによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおける書き込みコピー・インジケータにマークを付け
    前記バックグラウンド・コピー・インジケータと前記書き込みコピー・インジケータとに基づいて、クリーニング対象となる前記バックアップ・ボリュームからのデータの移動の要否を判定する、
    ように更に適合されているストレージ・コントローラと、
    を含む、システム。
  2. 前記ストレージ・コントローラが、
    前記バックアップ・ボリュームの1つへの書き込みが前記ボリュームへの直接書き込みであるか否かを判定し、
    書き込みが直接書き込みである場合、前記カスケードにおける下流ボリュームにデータを移動させる必要があるか否かを判定し、
    前記カスケードにおける下流ボリュームにデータを移動させる必要がある場合、前記バックアップ・ボリュームの読み取りを実行し、
    前記読み取ったデータを前記下流ボリュームに移動させ、
    前記下流ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータにマークを付け
    前記バックアップ・ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータのマークを消す
    ように更に適合されている、請求項1に記載のシステム。
  3. ボリューム・マップが2つのビットマップを含み、各ビットマップが前記ボリュームの領域に対応するビットを含み、前記ビットマップの1つが、領域が書き込みによるデータを含むか否かを示し、前記ビットマップの1つが、領域がバックグラウンド・コピーによるデータを含むか否かを示す、請求項1に記載のシステム。
  4. ボリューム・マップがビットマップおよびインデックスを含み、前記ビットマップが、前記ボリュームの領域に対応するビットを含むと共に領域が書き込みによるデータを含むか否かを示し、前記インデックスが、ボリュームのどのくらいが別のボリュームのバックグラウンド・コピーによるデータを含むかを示す、請求項1に記載のシステム。
  5. 前記ストレージ・コントローラが、
    前記カスケードにおける前記バックアップ・ボリュームの1つをクリーニングするべきであるか否かを判定し、
    バックアップ・ボリュームをクリーニングするべきである場合、前記ボリュームのボリューム・マップにおいてクリーニングする前記ボリュームの領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定し、
    前記ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、別の領域を分析対象に選択する、
    ように更に適合されている、請求項1に記載のシステム。
  6. 前記ストレージ・コントローラが、
    前記クリーニングされるボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、前記カスケードにおける下流ボリュームのボリューム・マップにおいて前記領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定し、
    前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、別の領域を分析対象に選択し、
    前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、クリーニングする前記ボリュームから前記下流ボリュームに前記領域のデータをコピーする、
    ように更に動作可能である、請求項5に記載のシステム。
  7. 前記ストレージ・コントローラが、前記下流ボリュームの前記ボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークを付けるように更に適合されている、請求項6に記載のシステム。
  8. 前記ストレージ・コントローラが、ボリュームを前記カスケードから除去することに基づいて前記ボリュームをクリーニングするべきであると判定するように適合されている、請求項5に記載のシステム。
  9. カスケード・ボリュームのソース・クリーニングのための方法であって、
    一次ボリュームおよび前記一次ボリュームのための複数のカスケード・バックアップ・ボリュームを記憶することと、
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームのバックグラウンド・コピーを行うことによるものであるか否かを判定することと、
    前記書き込みが前記カスケードにおける別のボリュームのバックグランド・コピーによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおけるバックグラウンド・コピー・インジケータにマークを付けることと
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームへの書き込みによるものであるか否かを判定することと、
    前記書き込みが前記カスケードにおける別のボリュームへの書き込みによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおける書き込みコピー・インジケータにマークを付けることと
    前記バックグラウンド・コピー・インジケータと前記書き込みコピー・インジケータとに基づいて、クリーニング対象となる前記バックアップ・ボリュームからのデータの移動の要否を判定することと、
    を含む、方法。
  10. 前記バックアップ・ボリュームの1つへの書き込みが前記ボリュームへの直接書き込みであるか否かを判定することと、
    書き込みが直接書き込みである場合、前記カスケードにおける下流ボリュームにデータを移動させる必要があるか否かを判定することと、
    前記カスケードにおける下流ボリュームにデータを移動させる必要がある場合、前記バックアップ・ボリュームの読み取りを実行することと、
    前記読み取ったデータを前記下流ボリュームに移動させることと、
    前記下流ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータにマークを付けることと
    前記バックアップ・ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータのマークを消すことと
    を更に含む、請求項9に記載の方法。
  11. ボリューム・マップが2つのビットマップを含み、各ビットマップが前記ボリュームの領域に対応するビットを含み、前記ビットマップの1つが、領域が書き込みによるデータを含むか否かを示し、前記ビットマップの1つが、領域がバックグラウンド・コピーによるデータを含むか否かを示す、請求項9に記載の方法。
  12. ボリューム・マップがビットマップおよびインデックスを含み、前記ビットマップが、前記ボリュームの領域に対応するビットを含むと共に領域が書き込みによるデータを含むか否かを示し、前記インデックスが、ボリュームのどのくらいが別のボリュームのバックグラウンド・コピーによるデータを含むかを示す、請求項9に記載の方法。
  13. 前記カスケードにおける前記バックアップ・ボリュームの1つをクリーニングするべきであるか否かを判定することと、
    バックアップ・ボリュームをクリーニングするべきである場合、前記ボリュームのボリューム・マップにおいてクリーニングする前記ボリュームの領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定することと、
    前記ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、別の領域を分析対象に選択することと、
    を更に含む、請求項9に記載の方法。
  14. 前記クリーニングされるボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、前記カスケードにおける下流ボリュームのボリューム・マップにおいて前記領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定することと、
    前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、別の領域を分析対象に選択することと、
    前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、クリーニングする前記ボリュームから前記下流ボリュームに前記領域のデータをコピーすることと、
    を更に含む、請求項13に記載の方法。
  15. 前記下流ボリュームの前記ボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークを付けることを更に含む、請求項14に記載の方法。
  16. ボリュームを前記カスケードから除去することに基づいて前記ボリュームをクリーニングするべきであると判定することを更に含む、請求項13に記載の方法。
  17. カスケード・ボリュームのソース・クリーニングのためのコンピュータ・プログラムであって、
    一次ボリュームおよび前記一次ボリュームのための複数のカスケード・バックアップ・ボリュームを記憶するための第1のプログラム命令と、
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームのバックグラウンド・コピーを行うことによるものであるか否かを判定すると共に、前記書き込みが前記カスケードにおける別のボリュームのバックグランド・コピーによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおけるバックグラウンド・コピー・インジケータにマークを付けるための第2のプログラム命令と、
    前記バックアップ・ボリュームの1つへの書き込みが、前記カスケードにおける別のボリュームへの書き込みによるものであるか否かを判定すると共に、前記書き込みが前記カスケードにおける別のボリュームへの書き込みによるものである場合、前記バックアップ・ボリュームのためのボリューム・マップにおける書き込みコピー・インジケータにマークを付けるための第3のプログラム命令と、
    前記バックグラウンド・コピー・インジケータと前記書き込みコピー・インジケータとに基づいて、クリーニング対象となる前記バックアップ・ボリュームからのデータの移動の要否を判定するための第4のプログラム命令と、
    を含み、これらのプログラム命令がコンピュータによって実行される、コンピュータ・プログラム。
  18. 前記バックアップ・ボリュームの1つへの書き込みが前記ボリュームへの直接書き込みであるか否かを判定し、書き込みが直接書き込みである場合、前記カスケードにおける下流ボリュームにデータを移動させる必要があるか否かを判定し、前記カスケードにおける下流ボリュームにデータを移動させる必要がある場合、前記バックアップ・ボリュームの読み取りを実行し、前記読み取ったデータを前記下流ボリュームに移動させ、前記下流ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータにマークを付け、前記バックアップ・ボリュームのための前記ボリューム・マップにおける書き込みコピー・インジケータのマークを消すための第4のプログラム命令を更に含む、請求項17に記載のコンピュータ・プログラム。
  19. ボリューム・マップが2つのビットマップを含み、各ビットマップが前記ボリュームの領域に対応するビットを含み、前記ビットマップの1つが、領域が書き込みによるデータを含むか否かを示し、前記ビットマップの1つが、領域がバックグラウンド・コピーによるデータを含むか否かを示す、請求項17に記載のコンピュータ・プログラム。
  20. ボリューム・マップがビットマップおよびインデックスを含み、前記ビットマップが、前記ボリュームの領域に対応するビットを含むと共に領域が書き込みによるデータを含むか否かを示し、前記インデックスが、ボリュームのどのくらいが別のボリュームのバックグラウンド・コピーによるデータを含むかを示す、請求項17に記載のコンピュータ・プログラム。
  21. 前記カスケードにおける前記バックアップ・ボリュームの1つをクリーニングするべきであるか否かを判定し、バックアップ・ボリュームをクリーニングするべきである場合、前記ボリュームのボリューム・マップにおいてクリーニングする前記ボリュームの領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定し、前記ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、別の領域を分析対象に選択するための第5のプログラム命令を更に含む、請求項17に記載のコンピュータ・プログラム。
  22. 前記クリーニングされるボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、前記カスケードにおける下流ボリュームのボリューム・マップにおいて前記領域のための書き込みコピー・インジケータにマークが付けられているか否かを判定し、前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられている場合、別の領域を分析対象に選択し、前記下流ボリュームのボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークが付けられていない場合、クリーニングする前記ボリュームから前記下流ボリュームに前記領域のデータをコピーするための第6のプログラム命令を更に含む、請求項21に記載のコンピュータ・プログラム。
  23. 前記下流ボリュームの前記ボリューム・マップにおいて前記領域のための前記書き込みコピー・インジケータにマークを付けるための第7のプログラム命令を更に含む、請求項22に記載のコンピュータ・プログラム。
  24. ボリュームを前記カスケードから除去することに基づいて前記ボリュームをクリーニングするべきであると判定するための第8のプログラム命令を更に含む、請求項21に記載のコンピュータ・プログラム。
JP2015517894A 2012-06-25 2013-06-14 カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング) Active JP6195614B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/532,687 2012-06-25
US13/532,687 US9047233B2 (en) 2012-06-25 2012-06-25 Source cleaning cascaded volumes using write and background copy indicators
PCT/IB2013/054877 WO2014001942A1 (en) 2012-06-25 2013-06-14 Source cleaning cascaded volumes

Publications (2)

Publication Number Publication Date
JP2015525414A JP2015525414A (ja) 2015-09-03
JP6195614B2 true JP6195614B2 (ja) 2017-09-13

Family

ID=49775442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015517894A Active JP6195614B2 (ja) 2012-06-25 2013-06-14 カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング)

Country Status (6)

Country Link
US (2) US9047233B2 (ja)
JP (1) JP6195614B2 (ja)
CN (1) CN104321756B (ja)
CA (1) CA2874239C (ja)
GB (1) GB2519256B (ja)
WO (1) WO2014001942A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US20140208023A1 (en) * 2013-01-24 2014-07-24 Hitachi, Ltd. Storage system and control method for storage system
US9747171B2 (en) 2015-09-16 2017-08-29 International Business Machines Corporation Point-in-time copy restore
US9760449B2 (en) 2015-09-16 2017-09-12 International Business Machines Corporation Restoring a point-in-time copy
US9760450B2 (en) 2015-09-16 2017-09-12 International Business Machines Corporation Restoring a clone point-in-time copy
US10394491B2 (en) * 2016-04-14 2019-08-27 International Business Machines Corporation Efficient asynchronous mirror copy of thin-provisioned volumes
US10430121B2 (en) 2016-08-22 2019-10-01 International Business Machines Corporation Efficient asynchronous mirror copy of fully provisioned volumes to thin-provisioned volumes
US10083087B1 (en) * 2017-07-14 2018-09-25 International Business Machines Corporation Managing backup copies in cascaded data volumes
US10795776B2 (en) * 2017-11-06 2020-10-06 International Business Machines Corporation Multiple point-in-time copies on a remote system
US10698631B2 (en) 2018-02-13 2020-06-30 International Business Machines Corporation Point-in-time copy with target write optimization

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3260923B2 (ja) 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
ATE361496T1 (de) 2002-12-20 2007-05-15 Koninkl Philips Electronics Nv Backup-dvd-rws mit vorkonfiguration
US7133982B2 (en) 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
EP1735962A1 (en) 2004-03-31 2006-12-27 TELEFONAKTIEBOLAGET LM ERICSSON (publ) A method and an arrangement for avoiding unnecessary retransmissions
CN100359476C (zh) 2004-06-03 2008-01-02 华为技术有限公司 一种快照备份的方法
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
GB0428105D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting and disk failure protection
US7395378B1 (en) 2005-01-04 2008-07-01 Symantec Operating Corporation System and method for updating a copy-on-write snapshot based on a dirty region log
GB0504390D0 (en) * 2005-03-02 2005-04-06 Ibm Storage system with cascaded copy targeting and enhanced integrity
US7873809B2 (en) * 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US8195620B2 (en) 2007-10-19 2012-06-05 International Business Machines Corporation Storage system with improved multiple copy targeting
US8051259B2 (en) 2008-06-23 2011-11-01 International Business Machines Corporation Space efficient de-allocation for cascade/multiple target flash copy cleaning
US8195906B2 (en) 2008-08-06 2012-06-05 International Business Machines Corporation Method and system for cascaded flashcopy zoning and algorithm and/or computer program code and method implementing the same
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
EP2300921B1 (en) 2008-10-30 2011-11-30 International Business Machines Corporation Flashcopy handling
US8560787B2 (en) 2009-03-30 2013-10-15 International Business Machines Corporation Incremental backup of source to target storage volume
US8468316B2 (en) 2009-06-15 2013-06-18 International Business Machines Corporation Apparatus and method for data backup
US8959300B2 (en) 2010-05-18 2015-02-17 International Business Machines Corporation Cascade ordering
JP5565157B2 (ja) * 2010-07-14 2014-08-06 富士通株式会社 データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置

Also Published As

Publication number Publication date
JP2015525414A (ja) 2015-09-03
WO2014001942A1 (en) 2014-01-03
CA2874239A1 (en) 2014-01-03
GB2519256B (en) 2015-06-03
CN104321756B (zh) 2017-02-22
US9069711B2 (en) 2015-06-30
GB2519256A (en) 2015-04-15
GB201501128D0 (en) 2015-03-11
CA2874239C (en) 2020-09-22
US20130346710A1 (en) 2013-12-26
US20130346712A1 (en) 2013-12-26
CN104321756A (zh) 2015-01-28
US9047233B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
JP6195614B2 (ja) カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング)
US10884791B2 (en) Migrating jobs from a source server from which data is migrated to a target server to which the data is migrated
US20220114067A1 (en) Systems and methods for instantiation of virtual machines from backups
US10268695B2 (en) Snapshot creation
JP5669988B2 (ja) 多重ターゲット・コピーの維持
AU2014374256B2 (en) Systems and methods for improving snapshot performance
US9063894B2 (en) Cascade ordering
US10838912B1 (en) Intelligent selection of backup levels
US9430333B2 (en) Recovery of application from snapshot
US9037819B2 (en) Source cleaning cascaded volumes using reference counts
US10572184B2 (en) Garbage collection in data storage systems
US10083087B1 (en) Managing backup copies in cascaded data volumes
US20130325810A1 (en) Creation and expiration of backup objects in block-level incremental-forever backup systems
US9760450B2 (en) Restoring a clone point-in-time copy
CN110688071A (zh) 一种减少数据同步量的数据同步方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170707

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: 20170725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170815

R150 Certificate of patent or registration of utility model

Ref document number: 6195614

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150