JP4932063B2 - 増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法、システム、およびコンピュータ・プログラム - Google Patents

増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法、システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP4932063B2
JP4932063B2 JP2011527360A JP2011527360A JP4932063B2 JP 4932063 B2 JP4932063 B2 JP 4932063B2 JP 2011527360 A JP2011527360 A JP 2011527360A JP 2011527360 A JP2011527360 A JP 2011527360A JP 4932063 B2 JP4932063 B2 JP 4932063B2
Authority
JP
Japan
Prior art keywords
disk
map
data
downstream
grain
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
JP2011527360A
Other languages
English (en)
Other versions
JP2012503240A (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 JP2012503240A publication Critical patent/JP2012503240A/ja
Application granted granted Critical
Publication of JP4932063B2 publication Critical patent/JP4932063B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、一般にFlashCopyに関し、より具体的に言えば、増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法に関する。
FlashCopy(R)とは、論理ボリュームまたはデータ・セット全体のポイントインタイム・コピー(point-in-time copies)をほぼ瞬時に作成することが可能な、様々なストレージ・デバイス上でサポートされる機能である。(FlashCopy(R)は、米国、諸外国、またはその両方における、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。)したがって、FlashCopyの機能により、データのポイントインタイムの全ボリューム・コピーを作成することが可能であり、このコピーは読み取りまたは書き込みアクセスに即時に利用することができる。このコピーを、コンピューティング環境で利用可能な標準的なバックアップ・ツールと共に使用して、テープ上にバックアップ・コピーを作成することができる。
さらにFlashCopyは、ターゲット・ボリューム上にソース・ボリュームのポイントインタイム・コピーを作成する。FlashCopy動作が開始された場合、ソース・ボリュームとターゲット・ボリュームとの間にFlashCopy関係が作成される。したがって、FlashCopy関係とは、FlashCopyソース・ボリュームおよびFlashCopyターゲット・ボリュームの「マッピング」のことである。このマッピングによって、そのソース・ボリュームのポイントインタイム・コピーを、関連付けられたターゲット・ボリュームへとコピーすることができる。FlashCopy関係は、FlashCopy動作が開始された時点から、ストレージ・ユニットがすべてのデータをソース・ボリュームからターゲット・ボリュームへとコピーするまで、または、FlashCopy関係が削除されるまで、このボリューム・ペアの間に存在する。さらに、カスケードFlashCopy構成とは、あるマップのソース・ディスクが他のマップのターゲット・ディスクである構成のことである。たとえば、あるマップがソース・ディスクAおよびターゲット・ディスクBで定義され、他のマップがソース・ディスクBおよびターゲット・ディスクCで定義される場合がある。カスケードは、この3つのディスクA、B、およびC、ならびに2つのマップを含むことになる。コピーが作成されると、このコピーは読み取りおよび書き込みの両方のアクセスに即時に利用可能である。
データが物理的にコピーされる場合、バックグラウンド・プロセスは、トラック(またはグレイン(grain))をソース・ボリュームからターゲット・ボリュームへとコピーする。バックグラウンド・コピーを完了するのに要する時間は、たとえば、コピーされるデータの量、実行中のバックグラウンド・コピー・プロセスの数、および、ストレージ・システム上で実行中の他の作業、その他に応じて決まる。
FlashCopy動作がソース・ボリュームからターゲット・ボリュームへとデータをコピーする場合、そのソース・ボリュームは、同時に複数のFlashCopy関係に関与することができる(複数関係FlashCopyとして知られる)。すなわち、複数関係FlashCopy機能により、ソース・ボリュームは複数のターゲットを同時に有することができる。あるボリューム上のトラックが既存のFlashCopy関係のターゲット・トラックでない場合、新しいFlashCopy関係におけるターゲットとなることができる。
したがって、たとえば同じデータの複数のコピーが必要な場合、この複数関係FlashCopy機能により、FlashCopyボリュームが確立され次第、単一のソース・ボリュームを異なるターゲット・ボリュームに複数回(たとえば12回まで)コピーすることができる。たとえば、FlashCopyを使用してボリュームAをボリュームBにコピーすると想定する。そのFlashCopy関係が確立され次第、ボリュームAはボリュームCにコピーすることができる。この関係が確立されると、ボリュームAはボリュームDにコピーできる、という具合である。加えて、単一ボリューム内に複数のセッションが可能である。
複数ターゲットFlashCopyは、カスケード方法を使用して実装された場合、コピー数に関してかなりのスケーラビリティを提供する一方で、ユーザにコピーのコピーを作成する機能も与える。しかしながら、複数ターゲットFlashCopyは、カスケード方法を使用して実装された場合、FlashCopyマップをカスケードから除去する前に「クリーニング」しなければならない、という望ましくない概念も導入してしまう。このクリーニング・プロセスによって、カスケード内のディスクが、除去されるマップのターゲット・ディスクにいっさい依存しないことが保証される。クリーニング・プロセスが完了するにはかなりの時間を要する可能性がある。
加えてFlashCopyは、高スペース効率(space-efficient)のボリュームを利用することができる。FlashCopyの高スペース効率(SE)機能により、実際にソース・ボリュームからターゲット・ボリュームへトラック(またはグレイン)をコピーする場合にのみ、ターゲット・ボリューム上のスペースを使用することにより、「必要に応じて」ストレージ・スペースを割り振る。高スペース効率ボリュームを使用しない場合、FlashCopy機能は、ターゲット・ボリューム上のスペースでたとえデータがコピーされない場合であっても、そのすべてのスペースが割り振られ、使用可能であることを必要とする。しかしながら、高スペース効率ボリュームを使用すると、FlashCopyは、FlashCopy関係の存続期間中に変化するデータの書き込みに必要なトラック(またはグレイン)数のみを使用するため、スペースは「必要に応じて」割り振られる。高スペース効率のFlashCopyボリュームは、ソース・ボリュームとまったく同じ寸法のターゲット・ボリュームを必要としないため、FlashCopy SE機能は、システム・ストレージをより効果的に使用できる可能性を高くする。
ボリューム作成プロセス中に、ターゲット・ボリュームに対して高スペース効率属性を定義することができる。高スペース効率ボリュームは、すでに作成済みの高スペース効率ストレージを有する任意の範囲のプールから作成可能である。高スペース効率のソースおよびターゲット・ボリュームが作成されており、それらが使用可能である限り、FlashCopy関係が作成された場合にそれらを選択することができる。
したがって前述のように、FlashCopy SE機能は、システム・ストレージをより効果的に使用できる可能性を高くする。しかしながら、複数ターゲットFlashCopyと高スペース効率ボリュームとを組み合わせることによって、クリーニング・プロセスに別の問題が加えられる。すなわち、顧客が毎日のバックアップ・コピーを有し、たとえば、顧客が毎日このバックアップの新しい高スペース効率のコピーを作成する、という状況を考えてみる。カスケードおよび複数ターゲットのFlashCopyおよび高スペース効率ボリュームによって、このセットアップは実行可能である。また、毎日のバックアップを完了するために要する時間を削減するために、FlashCopyマップが増分的に作成されると考えてみる。このシナリオにおけるクリーニング・プロセスの問題は、クリーニング・プロセスに、毎日のバックアップから最新の高スペース効率コピーへとすべてのデータをコピーする必要が生じることである。しかしながら、毎日のコピーは完全なコピーであるため、高スペース効率のコピー全体が割り振られる必要がある。したがって、このシナリオでは、高スペース効率ボリュームの利用は、カスケード・クリーニング方法によって「中断(broken)」される。
したがって当分野では、前述の欠点および制限を克服することが求められている。
本発明の第1の態様では、ある方法は、プログラミング命令を有するコンピュータ読み取り可能媒体上に具体的に実施された(tangibly embodied)コンピュータ実行可能コードを有するコンピュータ・インフラストラクチャ内で実装される。このプログラミング命令は、マップのターゲット・ディスクが、FlashCopyカスケード内のアップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含むかどうかを判別すること、および、ダウンストリーム・ディスクがこのデータのコピーを有するかどうかを検出することを、実行するように動作可能である。加えて、プログラミング命令は、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含み、ダウンストリーム・ディスクがそのデータのコピーを有さない場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーするように動作可能である。さらに、プログラミング命令は、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含まないか、またはダウンストリーム・ディスクがそのデータのコピーを有する場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーしないように動作可能である。さらにプログラミング命令は、FlashCopyカスケードからマップを除去するように動作可能である。
本発明の他の態様では、あるシステムは、FlashCopyカスケード内のマップに関するビットマップ値を検出すること、および、この検出に基づいてFlashCopyクリーニング・プロセスが必要であるかどうかを判別し、必要である場合、FlashCopyクリーニング・プロセスを実行することを、実行するように動作可能なビットマップ・ツールを備える。加えて、このビットマップ・ツールは、FlashCopyクリーニング・プロセスが実行される場合、FlashCopyカスケード内のダウンストリーム・マップに関するビットマップ値を修正するように動作可能である。さらにこのビットマップ・ツールは、FlashCopyカスケードからマップを除去するように動作可能である。
本発明の追加の態様では、媒体内に実施された読み取り可能プログラム・コードを有するコンピュータ使用可能ストレージ媒体を備えるコンピュータ・プログラム製品が提供される。このコンピュータ・プログラム製品は、マップのターゲット・ディスクが、カスケード内のアップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含むかどうかを判別すること、および、ダウンストリーム・ディスクがこのデータのコピーを有するかどうかを検出することを、実行するように動作可能な、少なくとも1つのコンポーネントを含む。加えて、少なくとも1つのコンポーネントは、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含み、ダウンストリーム・ディスクがそのデータのコピーを有さない場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーするように動作可能である。さらに、少なくとも1つのコンポーネントは、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含まないか、またはダウンストリーム・ディスクがそのデータのコピーを有する場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーしないように動作可能である。さらに少なくとも1つのコンポーネントは、カスケードからマップを除去するように動作可能である。
本発明の他の態様では、ある方法は、マップのターゲット・ディスクが、FlashCopyカスケード内のアップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含むかどうかを判別すること、および、ダウンストリーム・ディスクがこのデータのコピーを有するかどうかを検出することを、実行するように動作可能な、コンピュータ・インフラストラクチャを提供することを含む。加えて、コンピュータ・インフラストラクチャは、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含み、ダウンストリーム・ディスクがそのデータのコピーを有さない場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーするように動作可能である。さらに、コンピュータ・インフラストラクチャは、マップのターゲット・ディスクが、アップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含まないか、またはダウンストリーム・ディスクがそのデータのコピーを有する場合、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーしないように動作可能である。さらにコンピュータ・インフラストラクチャは、ターゲット・ディスクからダウンストリーム・ディスクへデータをコピーすることが、ダウンストリーム・ディスクから新しいソース・ディスクへのマッピングを反映するために実行される場合、ダウンストリーム・マップを更新するように動作可能である。加えてコンピュータ・インフラストラクチャは、FlashCopyカスケードからマップを除去するように動作可能である。
本発明については、以下の、本発明の例示的諸実施形態の非限定的な例として示された複数の図面を参照しながら、発明を実施するための形態で説明する。
本発明に従った諸ステップを実装するための例示的環境を示す図である。 本発明の態様に従った例示的FlashCopyカスケードを示す図である。 本発明の態様に従った例示的FlashCopyカスケードを示す図である。 本発明の態様に従った例示的FlashCopyカスケードを示す図である。 本発明の態様に従った例示的FlashCopyカスケードを示す図である。 本発明の態様に従った例示的FlashCopyカスケードを示す図である。 本発明の諸態様を実施するための例示的流れを示す図である。
本発明は、一般にFlashCopyカスケードに関し、より具体的に言えば、増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法に関する。本発明を実装することによって、カスケード内に増分マップがある場合、FlashCopyマップをクリーニングするために要する時間を削減することができる。加えて、本発明を実装することで、高スペース効率コピー上でのグレインのクリーニングを制限し、スペースの不要な割り振りを防ぐことができる。
当業者であれば理解されるように、本発明は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書では一般に「回路」、「モジュール」、または「システム」と呼ばれる可能性のあるソフトウェア態様およびハードウェア態様を組み合わせた実施形態の、形を取ることができる。さらに本発明は、媒体内に実施されたコンピュータ使用可能プログラム・コードを有する任意の具体的な式の媒体内に実施された、コンピュータ・プログラム製品の形を取ることができる。
1つまたは複数のコンピュータ使用可能媒体またはコンピュータ読み取り可能媒体の、任意の組み合わせを使用することができる。コンピュータ使用可能媒体またはコンピュータ読み取り可能媒は、たとえば電子、磁気、光、電磁、赤外線、または半導体の、システム、装置、または伝搬媒体とすることができるが、これらに限定されるものではない。コンピュータ読み取り可能媒体のより具体的な例(非網羅的リスト)には、以下のものが含まれる。
−1本または複数本のワイヤを有する電気接続
−ポータブル・コンピュータ・ディスケット
−ハード・ディスク
−ランダム・アクセス・メモリ(RAM)
−読み取り専用メモリ(ROM)
−消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)
−光ファイバ
−ポータブル・コンパクト・ディスク読み取り専用メモリ(CDROM)
−光ストレージ・デバイス
−インターネットまたはイントラネットをサポートするような伝送媒体、または磁気ストレージ・デバイス
コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、その上にプログラムが印刷される紙または他の好適な媒体とすることも可能であるため、このプログラムは、たとえば紙または他の媒体の光学スキャンを介して電気的に取り込まれ、その後コンパイルされ、解釈されるか、または必要であれば他の好適な様式で処理された後、コンピュータ・メモリ内に格納されることが可能である。
本書との関連において、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するためのプログラムを、包含、格納、通信、伝搬、または移送することが可能な、任意の媒体とすることができる。コンピュータ使用可能媒体は、コンピュータ使用可能プログラム・コードがベースバンド内に、または搬送波の一部として実施された、伝搬データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなどを含むがこれらに限定されない、任意の適切な媒体を使用して伝送することができる。
本発明の諸動作を実施するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++などの、オブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの、従来の手続き型プログラミング言語を含む、任意の組み合わせの1つまたは複数のプログラミング言語で作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、任意のタイプのネットワークを介してユーザのコンピュータに接続可能である。これは、たとえばローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むことが可能であるか、あるいは(たとえばインターネット・サービス・プロバイダを使用し、インターネットを介して)外部コンピュータに接続することが可能である。
図1は、本発明に従ったプロセスを管理するための例示的環境10を示す。この範囲で、環境10は、本明細書で説明されるプロセスを実行できるサーバまたは他のコンピューティング・システム12を含む。具体的に言えば、サーバ12はコンピューティング・デバイス14を含む。コンピューティング・デバイス14は、第三者サービス・プロバイダのネットワーク・インフラストラクチャまたはコンピューティング・デバイス(そのうちのいずれかが全体として図1に表されている)上に常駐することができる。
コンピューティング・デバイス14は、ビットマップ・ツール30を含む。ビットマップ・ツール30は、マップのビットマップ値を検出し、マップのビットマップ値を変更し、たとえば本明細書で説明されるプロセスなどのFlashCopyプロセスを開始するように動作可能である。ビットマップ・ツール30は、別々のモジュールまたは結合モジュールとしてメモリ22A内に格納されたプログラム・コントロール44内に、1つまたは複数のプログラム・コードとして実装可能である。
コンピューティング・デバイス14は、プロセッサ20、メモリ22A、I/Oインターフェース24、およびバス26も含む。メモリ22Aは、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードを取り出さなければならない回数を削減するために少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリを含むことができる。加えて、コンピューティング・デバイスは、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、およびCPUを含む。
コンピューティング・デバイス14は、外部I/Oデバイス/リソース28およびストレージ・システム22Bと通信している。たとえばI/Oデバイス28は、ある個人が、コンピューティング・デバイス14、あるいはコンピューティング・デバイス14が任意のタイプの通信リンクを使用して1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイスと、対話できるようにする、任意のデバイスを備えることができる。外部I/Oデバイス/リソース28は、たとえばハンドヘルド・デバイス、PDA、ハンドセット、キーボードなどとすることができる。
一般に、プロセッサ20は、メモリ22Aあるいはストレージ・システム22Bまたはその両方に格納可能な、コンピュータ・プログラム・コード(たとえばプログラム・コントロール44)を実行する。さらに本発明の諸態様によれば、プログラム・コードを有するプログラム・コントロール44はビットマップ・ツール30を制御する。プロセッサ20は、コンピュータ・プログラム・コードを実行しながら、メモリ22A、ストレージ・システム22B、あるいはI/Oインターフェース24、またはそれらすべてとの間で、データの読み取りあるいは書き込みまたはその両方を実行することができる。プログラム・コードは本発明の諸プロセスを実行する。バス26は、コンピューティング・デバイス14内の各コンポーネント間に通信リンクを提供する。
コンピューティング・デバイス14は、その上にインストールされたコンピュータ・プログラム・コードを実行することが可能な任意の汎用コンピューティング製品(たとえばパーソナル・コンピュータ、サーバなど)を備えることができる。しかしながら、コンピューティング・デバイス14は、本明細書で説明される諸プロセスを実行可能な、様々な可能な等価コンピューティング・デバイスの代表に過ぎないことを理解されよう。この点で、諸実施形態において、コンピューティング・デバイス14によって提供される機能は、汎用あるいは特定用途向けまたはその両方の、ハードウェアあるいはコンピュータ・プログラム・コードまたはその両方の、任意の組み合わせを含む、コンピューティング製品によって実装可能である。各実施形態において、プログラム・コードおよびハードウェアは、それぞれ標準的なプログラミングおよびエンジニアリング技法を使用して作成可能である。
同様に、コンピューティング・インフラストラクチャ12は、本発明を実装するための様々なタイプのコンピュータ・インフラストラクチャの単なる例である。たとえば諸実施形態では、サーバ12は、本明細書で説明されるプロセスを実行するために、ネットワーク、共有メモリなどの任意のタイプの通信リンクを介して通信する、2つまたはそれ以上のコンピューティング・デバイス(たとえばサーバ・クラスタ)を備える。さらに、サーバ12上の1つまたは複数のコンピューティング・デバイスは、本明細書で説明される諸プロセスを実行しながら、任意のタイプの通信リンクを使用してサーバ12の外部にある1つまたは複数の他のコンピューティング・デバイスと通信することができる。この通信リンクは、有線あるいは無線またはその両方のリンクの任意の組み合わせを備える、1つまたは複数タイプのネットワーク(たとえばインターネット、ワイド・エリア・ネットワーク、ローカル・エリア・ネットワーク、仮想専用ネットワークなど)の任意の組み合わせを備える、あるいは、伝送技法およびプロトコルの任意の組み合わせを利用する、またはそれらすべてが可能である。
諸実施形態では、本発明は、加入、広告、あるいは料金またはそれらすべてに基づいて、本発明の諸ステップを実行するビジネス方法を提供する。すなわち、Solution Integratorなどのサービス・プロバイダは、本明細書で説明される諸プロセスを実行するように提供可能である。この場合サービス・プロバイダは、1人または複数の顧客に対して本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、展開、サポートなどを、実行することができる。これらの顧客は、たとえば技術を使用する任意のビジネスとすることができる。次にサービス・プロバイダは、加入あるいは料金またはその両方の契約に基づいて顧客から支払いを受けることが可能である、あるいはサービス・プロバイダは、1人または複数の第三者に対する広告コンテンツの販売から支払いを受けることが可能である、または、その両方が可能である。
増分マップ
本発明の諸態様によれば、増分マップはソース・ディスクとターゲット・ディスクとの間の差異を追跡することが可能なメカニズムを提供する。前述のように、FlashCopyマップのクリーニングは、ターゲット・ディスク上にあるデータを読み取ること、および、そのデータを必要とするカスケード内の次のダウンストリーム・ディスクにそれを書き込むことを、含むことができる。ここで、ダウンストリーム・ディスクが高スペース効率である場合、ダウンストリーム・ディスクにいずれかのデータが書き込まれることによって、そのディスク上でスペースが割り振られることになる。しかしながら、クリーニング・マップのターゲット上にあるデータが、クリーニング・マップのソース上にあるデータと同じである場合、ソース・ディスクとターゲット・ディスクとの間のマップが除去された後、ダウンストリーム・ディスクは依然としてソース・ディスクからデータを取得できるため、本発明の諸態様に従って、このデータはクリーニングされる必要がない。
図2は、本発明の諸態様に従った2つのマップの例示的カスケードを示す。より具体的に言えば、図2は3つのディスク205、210、および215を示す図である。図2に示されるように、ディスクの上部はそれぞれのディスクからたとえばホストに提示されるデータを示し、ディスクの図の下部は、それぞれのディスク上に実際に格納されたデータを示す。したがって、ディスク1 205は、データの4つのグレイン(またはトラック)A、B、C、Dをユーザに提示し、実際にそれらのグレインA、B、C、Dはディスク1 205上に格納されている。これに対して、ディスク2 210はデータの4つのグレインA、F、C、Dをユーザに提示する。しかしながら、ディスク2 210の下部に示されているように、ディスク2 210上には実際にはグレイン2および4(それぞれFおよびD)のみが格納されており、ホストにグレイン1および3(それぞれAおよびC)を提示するためには、ディスク1 205に格納されたデータに依拠する。
さらに、ディスク1 205およびディスク2 210は、それぞれ完全に割り振られたディスクである。すなわち、完全に割り振られたディスクを用いて(すなわち、高スペース効率ボリュームを用いずに)前述したように、FlashCopy機能は、たとえそこにデータがコピーされない場合であっても、ターゲット・ボリューム上のすべてのスペースの割り振りおよび使用が可能であることを必要とする。したがって、図2に示されるように、たとえディスク2 210の内部にグレインAおよびCの実際のコピーが含まれなくとも、それらのグレイン用のスペース(疑問符によって示される)は割り振られる。
さらに、図2の例で示されるように、ディスク3 215は高スペース効率ディスクである。すなわち前述のように、高スペース効率ディスクでは、実際にソース・ボリュームからターゲット・ボリュームへトラック(またはグレイン)をコピーする場合にのみ、ターゲット・ボリューム上のスペースを使用することによって、ストレージ・スペースが「必要に応じて」割り振られる。したがって図2に示されるように、ディスク3 215はグレインB用のスペース(ディスク3 215上に格納されたデータ図の黒塗りの部分で示される)のみが割り振られている。
加えて図2に示されるように、マップ1 220はディスク1 205とディスク2 210との間の増分マップである。すなわち、マップ1 220は分割ビットマップ(分割)および差異ビットマップ(差異)を含む。本発明の諸態様によれば、分割ビットマップはデータの位置を追跡するためにFlashCopyプロセスで使用される。より具体的に言えば、分割ビットマップ内の「0」はデータがソース・ディスク上に配置されていることを示し、分割ビットマップ内の「1」はデータがターゲット・ディスク上に配置されていることを示す。さらに差異ビットマップは、ソース・ディスクとターゲット・ディスクの間の差異、たとえば仮想ディスクを追跡するために、FlashCopyプロセスで使用される。より具体的に言えば、差異ビットマップ内の「0」は、ソース・ディスクおよびターゲット・ディスク上に配置されたデータ間に差がないことを示し、差異ビットマップ内の「1」は、ソース・ディスク上に配置されたデータとターゲット・ディスク上に配置されたデータとの間に差があることを示す。
したがって、図2の例を参照すると、マップ1 220の分割ビットマップは、グレインAおよびCがソース・ディスク(ディスク1 205)上に配置され、グレインFおよびDがターゲット・ディスク(ディスク2 210)上に配置されていることを示す。さらにマップ1 220の差異ビットマップは、グレイン1、グレイン3、およびグレイン4には、ソース・ディスク(ディスク1 205)とターゲット・ディスク(ディスク2 210)との間に差異がないことを示す。すなわち、ソース・ディスクとターゲット・ディスクとの間で、グレイン1、3、および4、すなわちそれぞれA、C、およびDは依然として同じままである。しかしながら、マップ1 220の差異ビットマップは、グレイン2がソース・ディスク(ディスク1 205)とターゲット・ディスク(ディスク2 210)との間に差異があることを示す。すなわち図2に示されるように、グレイン2は、ディスク1 205上のBからディスク2 210上のFへと変化している。
マップ2 225は、ディスク2 210とディスク3 215との間のマップである。さらにマップ2 225は増分マップではなく、分割ビットマップのみを示す。しかしながら、非増分マップを用いる場合、分割ビットマップおよび差異ビットマップは同じになる。したがって分割ビットマップのみが示されている。しかしながら諸実施形態では、分割ビットマップおよび差異ビットマップの両方をマップによって明示的に示すことが可能であることを理解されたい。
理解されるように、マップ2 225は、グレイン1、3、および4(それぞれA、C、およびD)がソース・ディスク(ディスク2 210)上に配置され、グレイン2(B)がターゲット・ディスク(ディスク3 215)上に配置されることを示す。さらにマップ2 225は、グレイン1、3、および4(それぞれA、A、C、およびD)はソース・ディスク(ディスク2 210)とターゲット・ディスク(ディスク3 215)との間で同じであり、グレイン2はソース・ディスク(ディスク2 210)とターゲット・ディスク(ディスク3 215)との間で同じでないことも示す。
クリーニング・プロセス
従来の実装を上回るカスケード実装の欠点は、ターゲット・ディスク間に追加の依存性を生み出すことである。カスケード実装は、一方のターゲット・ディスクからの読み取り要求を満たすために、カスケード内の他方のターゲット・ディスクからデータを読み取らなければならない可能性がある。したがって、ユーザがカスケードの一部であるFlashCopyマッピングを停止および削除したい場合、第1に、カスケード内の他のターゲット・ディスクによって要求されるすべてのデータを、別のターゲット・ディスクにコピーする必要がある。このデータのコピー・プロセスがクリーニングと呼ばれる。この状態では、クリーニング動作の完了を保証するために、除去されているマップのターゲット・ディスクにアクセスすることはできない。ターゲット・ディスクがクリーンな場合のみ、マップを停止して削除することができる。
したがって図2に示されるように、2つのグレインがディスク1 205からディスク2 210にコピーされている。しかしながら、ディスク3 215上の第2のグレインのみが割り振られている。ここでマップ1 220をカスケードから除去するためには、ディスク3 215が、ディスク2 210を除去する前にホストに提示するイメージを維持できることが保証されなければならない。したがって、前述のようにマップ1 220が増分であると想定すると、ビットマップ・ツール30は、ディスク1 205上のグレイン4(D)がディスク2 210と同じであるものと決定する。
したがって本発明の諸態様によれば、この例示的シナリオでは、ディスク2 210をカスケードから除去する前に、ディスク2 210からディスク3 215にコピーする必要のあるグレインはない。すなわち、クリーニング・プロセスで増分マップを利用しない従来の手法を用いる場合、クリーニングするか否かの決定は分割ビットマップに基づくことになる。そこでこの例では、従来の手法を使用して、マップ1 220の分割ビットマップが、ディスク2がグレインDを含むことを示すため、ディスク3 215上にグレインD用のスペースが割り振られることになり、グレインDはディスク2 210からディスク3 215へとコピーされることになる。しかしながら本発明を実装することにより、ビットマップ・ツール30は、グレインDのクリーニングが不要であり、したがって回避可能であることを決定できる。
クリーニング・プロセスを回避することの利点は2点存在する可能性がある。第1に、不要なクリーニング・プロセスを回避することによって、時間およびリソースが消費されない。さらに、ダウンストリームの高スペース効率ディスク上のスペースが、どこからでもアクセス可能なデータの格納用に不要に利用されない。これにより、高スペース効率ディスク上のこのディスクは、他の目的、たとえば他のグレインまたはデータの格納などのために利用することができる。
図3は、図2に示された例示的カスケード200のマップ1がカスケードから除去され、ディスク2が除去された後の、例200’を示す。図3に示されるように、マップ2 225は維持されるが、ここではマップ2 225はディスク1 205とディスク3 215との間のマップである。さらに図3に示されるように、この例でビットマップ・ツール30は、マップ2 225を、ディスク1 205とディスク3 215との間のマップとして働くように修正する必要はない。
図4は、図2に示された例示的カスケード200のマップ1がカスケードから除去され、ディスク2が除去された後の、他の例200”を示す。諸実施形態では、本発明は高スペース効率ディスク上のフリー・スペースを最大にすることが望ましいものと企図する。図4に示されるように、ディスク3 215”は、ディスク1 205上に格納されたデータと同じデータをホストに提示している。したがって、ディスク3 215”のグレイン2(B)は、そのデータがディスク1 205上に格納されているため、ディスク3(図3に図示)上に残っている必要はない。したがって本発明の諸態様に従い、図4に示されるように、ビットマップ・ツール30はディスク3 215”からグレイン2(B)を除去している。ディスク3 215”からグレイン2(B)を除去することによって、グレイン2用にあらかじめ割り振られていたスペースを、たとえば他のデータを格納するために使用できる可能性がある。
さらに図4に示されるように、ビットマップ・ツール(図1に図示)は、図2に示されたマップ2 225から修正されたマップ2 225”を有する。より具体的に言えば、ビットマップ・ツールは、マップ2 225”の分割ビットマップを、グレイン2用のゼロを含むように修正しており、これは、ディスク3 215”がもはやグレイン2(B)のコピーを含まないが、ディスク1 205内に格納されたグレイン2のコピーに依拠することを示す。これは、ディスク3がグレイン2(B)のそれ自体のコピーを維持し、マップ2 225を変更する必要のない、図3とは対照的である。さらに図4の例に示されるように、ここでマップ2 225”は、マップ2 225”内のゼロによって示されるように、そのすべてのグレインをディスク1 205にマッピングする。
図5は、本発明の諸態様に従った2つのマップの追加の例示的カスケードを示す。より具体的に言えば、図5は3つのディスク205、210、および515の図を示す。ディスク1 205は、データの4つのグレインをユーザに提示し、それらのグレインA、B、C、Dをディスク1 205上に実際に格納している。対照的に、ディスク2 210はデータA、F、C、Dの4つのグレインをユーザに提示する。しかしながら、ディスク210の下部に示されるように、ディスク2 210は、実際にはグレイン2および4(それぞれFおよびD)のみを格納しており、グレイン1および3(それぞれAおよびC)をホストに提示するためにはディスク1 205に格納されたデータに依拠する。
さらに図5の例に示されるように、ディスク3 515は高スペース効率ディスクである。すなわち前述のように、高スペース効率ディスクを用いると、ソース・ボリュームからターゲット・ボリュームへと実際にトラックをコピーする場合にのみ、ターゲット・ボリューム上のスペースを使用することによって、ストレージ・スペースは「必要に応じて」割り振られる。したがって図5に示されるように、ディスク3 515は、いずれのグレイン用にもスペースは割り振られない(ディスク3 515上に格納されたデータ図の黒塗りの部分で示される)。さらにマップ2 525によって示されるように、ディスク3は、ホストに提示されるすべてのグレインに関してディスク2 210に依拠している。したがってグレイン2(F)およびグレイン4(D)はディスク2 210によって提供される。さらにディスク2は、マップ1 220によって示されるように、グレイン1(A)およびグレイン3(C)に関してディスク1 205に依拠しているため、ディスク3 515はディスク1 205に格納されたグレイン1(A)およびグレイン3(C)のコピーに依拠している。
ここでカスケードからマップ1 220(増分マップである)を除去するために、ビットマップ・ツールは、ディスク3 515が、ディスク2 210を除去する前にホストに提示するイメージを維持できることを保証しなければならない。したがって、前述のようにマップ1 220が増分であると想定すると、ビットマップ・ツールは、ディスク1 205上のグレイン4(D)がディスク2 210と同じであるものと決定することができる。したがって前述のように、本発明の諸態様によれば、グレイン4(D)をダウンストリーム・ディスク(ディスク3 215)にコピーしないことによって、リソースが節約される。
しかしながら、ディスク1 205上のグレイン2はディスク2 210と同じではない。したがって本発明の諸態様によれば、この例示的シナリオを用いて、ビットマップ・ツールはFlashCopyプロセスを開始し、マップ1 220がカスケードから除去され、ディスク2 210が除去される前に、グレイン2(F)がディスク2 210からディスク3 515へとコピーされる。
図6は、図5に示された例示的カスケード500で、ビットマップ・ツール30がカスケードからマップ1を除去し、ディスク2が除去された後の、例500’を示す。図6に示されるようにマップ2 525’は残っているが、ここでマップ2 525’はディスク1 205とディスク3 515’との間のマップである。さらに図6に示されるように、この例でビットマップ・ツール30はマップ2 525’に関して、マップ2 525’を、ディスク1 205とディスク3 515’との間のマップとして働くように修正する必要はない。すなわち、ディスク3 515’はグレイン2(F)のそれ自体のコピーを含み、これはディスク1 205がこのデータを含まないためである。したがって、図6に示されるように、ビットマップ・ツール30は、ディスク3 515’がグレイン2(F)のコピーを含むこと、およびディスク3 515’のグレイン2がディスク1 206のグレイン2とは異なることを反映するように修正された、マップ2 525’を有する。
したがって、本発明の諸態様に従って増分マップを使用することは、クリーニング動作を完了するために必要な作業を減らすだけでなく、ダウンストリームの高スペース効率ディスク、たとえばディスク3 515’上に割り振られるグレインの数を最小限にすることが保証される。
一般規則
さらに本発明の諸態様によれば、グレインをクリーニングする必要があるかどうかを決定する場合、一般規則に従うことができる。より具体的に言えば、ビットマップ・ツール30は、カスケードから除去されることになるマップに関するターゲット・ディスクが、ターゲット・ディスクのアップストリームで取得できないデータをそのディスク上に有するかどうかを判別するために、増分マップ値を使用する。さらにビットマップ・ツール30は、(除去されることになるマップのターゲット・ディスクに対する)ダウンストリーム・ディスクが、除去されることになるマップのターゲット・ディスクのアップストリームで取得できないデータのコピーをすでに有するかどうかを判別するために、増分マップを使用することができる。さらに、ダウンストリーム・ディスクがそのデータのコピーを未だに有していない場合、本発明の諸態様に従い、ビットマップ・ツールは、カスケードからマップを除去するのに先立ち、除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとこのデータをコピーする。
したがって、本発明の諸態様によれば、除去されることになるマップのビットマップを参照すると、差異ビットマップ値0および分割ビットマップ値0は、クリーニング(またはカスケードから除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとデータをコピーすること)が不要であることを示す。さらに差異ビットマップ値1および分割ビットマップ値0は、クリーニングが不要であることを示す。
さらに、差異ビットマップ値0および分割ビットマップ値1は、クリーニングが必要な可能性があることを示す。このシナリオでは、次のアップストリーム・マップを使用して、クリーニングが必要であるかどうかが決定される。すなわち、ビットマップ・ツールが、次のアップストリーム・マップが分割ビットマップ値1および差異ビットマップ値1を有すると決定した場合、グレインをクリーニングしなければならない。それ以外の場合、グレインをクリーニングする必要はない。さらにアップストリーム・マップがない場合、分割ビットマップ値1および差異ビットマップ値0、ならびにクリーニングの必要性はないものと想定される。
最後に、差異ビットマップ値1および分割ビットマップ値1は、ダウンストリーム・ディスクが未だにデータのコピーを含まない場合、クリーニング(またはカスケードから除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとデータをコピーすること)が必要であることを示す。前述のように、マップが増分でない場合、差異ビット値は分割ビット値に等しいことに留意されたい。
したがって、図2を再度参照すると、マップ1 220のグレイン2が差異ビットマップ値1および分割ビットマップ値1を有することがわかるであろう。増分ビットマップのこれらの値は、ダウンストリーム・ディスクが未だにデータのコピーを含まない場合、クリーニング(またはカスケードから除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとデータをコピーすること)が必要であることを示す。しかしながら図2で見られるように、ダウンストリーム・ディスク3 215は、マップ2 225のグレイン2によって示されるように「B」のコピーをすでに含む。
したがって図3に示されるように、マップ1 220およびディスク2 210はカスケードから除去されている。さらに本発明の諸態様によれば、たとえばディスク3 215などのターゲット・ディスクが、たとえば「B」などのデータのコピーをすでに含んでいたため、クリーニング(またはターゲット・ディスクへのデータのコピー)は不要であった。
対照的に、図5を再度参照すると、マップ1 220のグレイン2が差異ビットマップ値1および分割ビットマップ値1を有することがわかるであろう。したがって、増分ビットマップのこれらの値は、ダウンストリーム・ディスクが未だにデータのコピーを含まない場合、クリーニング(またはカスケードから除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとデータをコピーすること)が必要であることを示す。さらに図5で見られるように、ダウンストリーム・ディスク3 515は、マップ2 525のグレイン2によって示されるようにグレインFのコピーを含んでいない。
したがって図6に示されるように、マップ1 220およびディスク2 210はカスケードから除去されている。さらに本発明の諸態様により、カスケードからのマップ1 220の除去およびディスク2 210の除去に先立って、クリーニング・プロセスが実行され、ここでデータはディスク2 210からダウンストリーム・ディスク3 515’へとコピーされている。さらに図5に示されるように、ビットマップ・ツール30は、ディスク3 515’がグレインFのそれ自体のコピーを含むことを反映するように、マップ2 525’を更新している。
さらに前述の一般規則が、特定のグレインに対する読み取りが、マップのクリーニングが存在するか否かと同じであることを示すことから、本発明はいずれのカスケードにも拡張可能であることを理解されたい。
流れ図
図7は、本発明の諸態様を実行するための例示的流れを示す。図7の諸ステップは、たとえば図1の環境で実装可能である。この流れ図は、同様に、本発明の高水準ブロック図を表すことができる。図7の流れ図あるいはブロック図またはその両方は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の、可能な実装のアーキテクチャ、機能、および動作を示す。この点で、流れ図またはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を備えるコードのモジュール、セグメント、または部分を表すことができる。いくつかの代替の実装では、ブロック内に示された機能が図に示された順序以外で実行可能であることにも留意されたい。たとえば連続して示されている2つのブロックは、実際にはほぼ同時に実行することが可能であるか、またはこれらのブロックは、関与する機能に応じて時折逆の順序で実行される場合がある。流れ図の各ブロック、および流れ図の組み合わせは、前述のように、指定された機能または作業を実行する特定用途向けのハードウェア・ベース・システム、あるいは、特定用途向けハードウェアおよびコンピュータ命令あるいはソフトウェアまたはその両方の組み合わせによって、実装することができる。さらに流れ図の諸ステップは、クライアント・サーバ関係にあるサーバから実装および実行可能であるか、またはユーザ・ワークステーションに搬送される動作情報を使用して、ユーザ・ワークステーション上で実行可能である。ある実施形態では、ソフトウェア要素にはファームウェア、常駐ソフトウェア、マイクロコードなどが含まれる。
さらに本発明は、コンピュータまたは任意の命令実行システムによって、あるいはこれらに関連して使用するためのプログラム・コードを提供する、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体からアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。ソフトウェアあるいはコンピュータ・プログラム製品は、図1の環境で実装可能である。説明のために、コンピュータ使用可能媒体またはコンピュータ読み取り可能媒体は、命令実行のシステム、装置、またはデバイスによって、あるいはこれらに関連して使用するためのプログラムを、包含、格納、通信、伝搬、または移送することが可能な、任意の装置とすることができる。媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)あるいは伝搬媒体とすることができる。コンピュータ読み取り可能媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、固定磁気ディスク、および光ディスクが含まれる。光ディスクの現行例には、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、コンパクト・ディスク読み取り/書き込み(CD−R/W)、およびDVDが含まれる。
図7の例示的流れ図に示されるように、ステップ705でビットマップ・ツールは、除去されることになるマップの増分ビットマップを検討する。ステップ710でビットマップ・ツールは、ターゲット・ディスク上の特定のグレインに関して、分割/差異ビットマップがそれぞれ0/0または0/1のいずれかであるかどうかを判別する。ステップ710でビットマップ・ツールが、分割/差異ビットマップがそれぞれ0/0または0/1のいずれかであると決定した場合、ビットマップ・ツールはクリーニングを実行しない。加えて、ステップ765でビットマップ・ツールは、除去されることになるマップのターゲット・ディスク上に別のグレインが存在するかどうかを判別する。ステップ765でビットマップ・ツールが、除去されることになるマップのターゲット・ディスク上に別のグレインが存在すると決定した場合、プロセスはステップ705へと進む。ステップ765でビットマップ・ツールが、除去されることになるマップのターゲット・ディスク上に別のグレインが存在しないと決定した場合、プロセスはステップ770で終了する。
ステップ710でビットマップ・ツールが、分割/差異ビットマップが0/0または0/1のいずれでもないと決定した場合、プロセスはステップ720へと進む。ステップ720でビットマップ・ツールは、除去されることになるマップのターゲット・ディスク上の特定のグレインに関して、分割/差異ビットマップがそれぞれ1/0であるかどうかを判別する。ステップ720でビットマップ・ツールが、ターゲット・ディスク上の特定のグレインに関して、分割/差異ビットマップが1/0であると決定した場合、プロセスはステップ725へと進む。ステップ720でビットマップ・ツールが、ターゲット・ディスク上の特定のグレインに関して、分割/差異ビットマップが1/0でないと決定した場合、分割/差異ビットマップは1/1であると想定可能であり、プロセスはステップ735へと進む。
ステップ725でビットマップ・ツールは、カスケード内にアップストリーム・マップが存在するかどうかを判別する。ステップ725でビットマップ・ツールが、アップストリーム・マップが存在すると決定した場合、ステップ730でビットマップ・ツールは、アップストリーム・マップ上の特定のグレインに関して、分割/差異が1/1であるかどうかを判別する。ステップ730でビットマップ・ツールが、次のアップストリーム・マップ上の特定のグレインに関して、分割/差異が1/1であると決定した場合、ステップ755でビットマップ・ツールは、除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとグレインをコピーすることによって、その特定のグレインのクリーニングを実行する。加えて、ステップ745でマップは、ダウンストリーム・ディスク上にその時点で格納されているデータを反映するように更新される。ステップ730でビットマップ・ツールが、次のアップストリーム・マップ上の特定のグレインに関して、分割/差異が1/1でないと決定した場合、ステップ750でビットマップ・ツールはクリーニングを実行しない。ステップ725でビットマップ・ツールが、アップストリーム・マップが存在しないと決定した場合、ステップ750でビットマップ・ツールはクリーニングを実行せず、プロセスはステップ760へと進む。
ステップ735でビットマップ・ツールは、ダウンストリーム・ディスクがグレインのコピーを含むかどうかを判別する。ステップ735でビットマップ・ツールが、ダウンストリーム・ディスクがグレインのコピーを含むと決定した場合、プロセスはステップ750へと進む。ステップ735でビットマップ・ツールが、ダウンストリーム・ディスクがグレインのコピーを含まないと決定した場合、プロセスはステップ740へと進む。ステップ740でクリーニングが実行され、これによってグレインは、除去されることになるマップのターゲット・ディスクからダウンストリーム・ディスクへとコピーされる。ステップ745でマップは、ダウンストリーム・ディスク上にその時点で格納されているデータを反映するように更新され、プロセスはステップ760へと進む。
ステップ760でビットマップ・ツールは、除去されることになるマップのターゲット・ディスク上に他のグレインが存在するかどうかを判別する。ステップ760でビットマップ・ツールが、除去されることになるマップのターゲット・ディスク上に他のグレインが存在すると決定した場合、プロセスはステップ705へと進む。ステップ760でビットマップ・ツールが、除去されることになるマップのターゲット・ディスク上に他のグレインが存在しないと決定した場合、プロセスはステップ770で終了する。
本明細書で使用される用語は、特定の実施形態を説明するためのみのものであり、本発明を限定することは意図されていない。本明細書で使用される場合、特に明確に指定されていない限り、単数形「a」、「an」、および「the」は複数形も同様に含むものと意図される。「含む」あるいは「含んでいる」またはその両方の用語は、本明細書で使用される場合、示された機能、整数、ステップ、動作、要素、あるいはコンポーネント、またはそれらすべての存在を指定するものであるが、1つまたは複数の他の機能、整数、ステップ、動作、要素、コンポーネント、あるいはそのグループ、またはそれらすべての存在または追加を排除するものではないことを、さらに理解されよう。
特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および等価物は、適用可能であれば、具体的に請求された他の請求要素と組み合わせて機能を実行するための、任意の構造、材料、または動作を含むことが意図される。本発明の説明は、例示および説明の目的で提示してきたものであるが、本発明を網羅すること、または開示された形に限定することは意図されていない。当業者であれば、本発明の範囲および趣旨を逸脱することなく、多くの修正および変形が明らかとなろう。実施形態は、本発明の原理および実際の適用範囲を最もよく説明するため、ならびに、当分野の他の通常の技術者が、企図された特定の用途に好適な様々な修正を伴う様々な実施形態に関して本発明を理解できるようにするために、選択および説明された。したがって、本発明について諸実施形態に関して説明してきたが、当業者であれば、本発明が、修正を伴い、添付の特許請求の範囲の趣旨および範囲内で実践可能であることを理解されよう。

Claims (10)

  1. コンピュータ・システムで実行される方法であって、
    マップのターゲット・ディスクが、FlashCopyカスケード内のアップストリーム・ディスクからの、ダウンストリーム・ディスクが使用できないデータを含むかどうかを判別するステップと、
    前記ダウンストリーム・ディスクが前記データのコピーを有するかどうかを検出するステップと、
    前記マップの前記ターゲット・ディスクが、前記アップストリーム・ディスクからの、前記ダウンストリーム・ディスクが使用できないデータを含み、前記ダウンストリーム・ディスクが前記データの前記コピーを有さない場合、前記ターゲット・ディスクから前記ダウンストリーム・ディスクへデータをコピーするステップと、
    前記マップの前記ターゲット・ディスクが、前記アップストリーム・ディスクからの、前記ダウンストリーム・ディスクが使用できないデータを含まないか、または前記ダウンストリーム・ディスクが前記データの前記コピーを有する場合、前記ターゲット・ディスクから前記ダウンストリーム・ディスクへ前記データをコピーしないようにするステップと、
    前記FlashCopyカスケードから前記マップを除去するステップと、
    を有する、方法。
  2. 前記ターゲット・ディスクから前記ダウンストリーム・ディスクへの前記データのコピーが実行された場合、前記ダウンストリーム・ディスクから新しいソース・ディスクへのマッピングを反映するために、ダウンストリーム・マップを更新することをさらに含む、請求項1に記載の方法。
  3. 前記マップが増分マップである、請求項1に記載の方法。
  4. 前記増分マップが、
    前記ターゲット・ディスクが特定のグレインに関するデータの実際のコピーを含むかどうか、または前記特定のグレインに関する前記データを含むソース・ディスクに依拠するかどうかを示す、分割ビットマップ値と、
    前記ターゲット・ディスクの前記特定のグレイン上に含まれるデータが、前記ソース・ディスクの対応するグレイン上に含まれるデータと異なるかどうかを示す、差異ビットマップ値と、
    を備える、請求項3に記載の方法。
  5. 前記特定のグレインに関する分割ビットマップ値0および前記特定のグレインに関する差異ビットマップ値0が、前記マップの前記ターゲット・ディスクが、前記アップストリーム・ディスクからの、前記ダウンストリーム・ディスクが使用できない前記特定のグレインに関するデータを含まないことを示す、請求項4に記載の方法。
  6. 前記特定のグレインに関する分割ビットマップ値0および前記特定のグレインに関する差異ビットマップ値1が、前記マップの前記ターゲット・ディスクが、前記アップストリーム・ディスクからの、前記ダウンストリーム・ディスクが使用できない前記特定のグレインに関するデータを含まないことを示す、請求項4に記載の方法。
  7. 前記特定のグレインに関する分割ビットマップ値1および前記特定のグレインに関する差異ビットマップ値0の場合、前記コピーが必要であるかどうかを判別するために、アップストリーム・マップのビットマップ値を使用することをさらに含む、請求項4に記載の方法。
  8. 対応するグレインに関するアップストリーム・マップの分割ビットマップ値が1であり、前記対応するグレインに関するアップストリーム・マップの差異ビットマップ値が1である場合、前記ダウンストリーム・ディスクへの前記特定のグレインのコピーが実行される、請求項7に記載の方法。
  9. 前記特定のグレインに関する分割ビットマップ値1および前記特定のグレインに関する差異ビットマップ値0が、前記マップの前記ターゲット・ディスクが、他のアップストリーム・ディスクからの、前記ダウンストリーム・ディスクが使用できない前記特定のグレインに関するデータを含むことを示す、請求項4に記載の方法。
  10. 前記ダウンストリーム・ディスクが高スペース効率ディスクであり、
    前記高スペース効率ディスク上で必要最低数のグレインを割り振ること、及び
    前記マップの除去後、前記高スペース効率ディスク上の特定のグレインが前記他のアップストリーム・ディスク上で使用可能である場合、前記高スペース効率ディスク上のスペースを割り振り解除すること、およびダウンストリーム・マップを更新することをさらに含む、
    請求項1に記載の方法。
JP2011527360A 2008-10-08 2009-10-07 増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法、システム、およびコンピュータ・プログラム Active JP4932063B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/247,642 US8230185B2 (en) 2008-10-08 2008-10-08 Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US12/247,642 2008-10-08
PCT/EP2009/063010 WO2010040768A2 (en) 2008-10-08 2009-10-07 Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps

Publications (2)

Publication Number Publication Date
JP2012503240A JP2012503240A (ja) 2012-02-02
JP4932063B2 true JP4932063B2 (ja) 2012-05-16

Family

ID=41339738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011527360A Active JP4932063B2 (ja) 2008-10-08 2009-10-07 増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法、システム、およびコンピュータ・プログラム

Country Status (7)

Country Link
US (3) US8230185B2 (ja)
EP (1) EP2288975B1 (ja)
JP (1) JP4932063B2 (ja)
KR (1) KR101539813B1 (ja)
CN (1) CN102177505B (ja)
AT (1) ATE523845T1 (ja)
WO (1) WO2010040768A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003041334A1 (en) 2001-11-07 2003-05-15 Cyneta Networks, Inc. Gb PARAMETER BASED RADIO PRIORITY
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
WO2010049314A1 (en) 2008-10-30 2010-05-06 International Business Machines Corporation Flashcopy handling
US8799597B2 (en) * 2009-09-02 2014-08-05 International Business Machines Corporation Data copying
WO2011036015A1 (en) 2009-09-24 2011-03-31 International Business Machines Corporation Data storage using bitmaps
WO2011036020A1 (en) 2009-09-25 2011-03-31 International Business Machines Corporation Data storage
US8285679B2 (en) 2010-03-11 2012-10-09 International Business Machines Corporation Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship
US8533411B2 (en) * 2010-03-11 2013-09-10 International Business Machines Corporation Multiple backup processes
AU2010201718B2 (en) * 2010-04-29 2012-08-23 Canon Kabushiki Kaisha Method, system and apparatus for identifying a cache line
US8788770B2 (en) 2010-05-25 2014-07-22 International Business Machines Corporation Multiple cascaded backup process
US10114701B2 (en) 2011-01-28 2018-10-30 International Business Machines Corporation Space efficient cascading point in time copying
GB2502929B (en) * 2011-03-08 2020-06-03 Ibm Deleting relations between sources and space-efficient targets in multi-target architectures
US9075723B2 (en) 2011-06-17 2015-07-07 International Business Machines Corporation Efficient discard scans
US8868860B2 (en) * 2011-09-23 2014-10-21 International Business Machines Corporation Restore in cascaded copy environment
US9063883B2 (en) 2011-09-26 2015-06-23 International Business Machines Corporation Management of point-in-time copy relationship for extent space efficient volumes
US8719523B2 (en) * 2011-10-03 2014-05-06 International Business Machines Corporation Maintaining multiple target copies
US9047233B2 (en) 2012-06-25 2015-06-02 International Business Machines Corporation Source cleaning cascaded volumes using write and background copy indicators
US9037819B2 (en) 2012-06-25 2015-05-19 Inernational Business Machines Corporation Source cleaning cascaded volumes using reference counts
JP5963324B2 (ja) 2014-08-11 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US9652163B2 (en) 2015-05-03 2017-05-16 International Business Machines Corporation Coordinated space reclamation in space-efficient flashcopy volumes
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
US9747171B2 (en) 2015-09-16 2017-08-29 International Business Machines Corporation Point-in-time copy restore
US10146683B2 (en) 2016-01-18 2018-12-04 International Business Machines Corporation Space reclamation in space-efficient secondary volumes
US10114551B2 (en) 2016-01-18 2018-10-30 International Business Machines Corporation Space reclamation in asynchronously mirrored space-efficient secondary volumes
US10126971B1 (en) 2017-06-21 2018-11-13 International Business Machines Corporation Enhanced application performance in multi-tier storage environments
US10083087B1 (en) 2017-07-14 2018-09-25 International Business Machines Corporation Managing backup copies in cascaded data volumes
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
JP3260923B2 (ja) 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
EP1191442A2 (en) * 2000-09-19 2002-03-27 Matsushita Electric Industrial Co., Ltd. Data storage array apparatus and operating method for storing error information without delay in data access
US6889228B1 (en) * 2001-03-29 2005-05-03 Network Appliance, Inc. Cascading support for mirrored volumes
US20030014523A1 (en) * 2001-07-13 2003-01-16 John Teloh Storage network data replicator
US6820180B2 (en) * 2002-04-04 2004-11-16 International Business Machines Corporation Apparatus and method of cascading backup logical volume mirrors
JP2006510984A (ja) * 2002-12-20 2006-03-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 事前設定されたバックアップ用dvd−rws
US7024530B2 (en) * 2003-03-14 2006-04-04 International Business Machines Corporation Method, system, and program for establishing and using a point-in-time copy relationship
US7133982B2 (en) 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
JP2005235058A (ja) * 2004-02-23 2005-09-02 Hitachi Ltd スナップショット取得方法、スナップショット取得装置及びスナップショット取得機能を備えたコンピュータシステム
JP4439960B2 (ja) * 2004-03-22 2010-03-24 株式会社日立製作所 ストレージ装置
US7733782B2 (en) 2004-03-31 2010-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and an arrangement for avoiding unnecessary retransmissions
JP2005301590A (ja) * 2004-04-09 2005-10-27 Hitachi Ltd ストレージシステム及びデータ複製方法
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
US7738385B2 (en) * 2004-11-30 2010-06-15 Broadcom Corporation Mirroring of data in a network device
GB0428105D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting and disk failure protection
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
JP5230944B2 (ja) * 2004-12-27 2013-07-10 株式会社カネカ 凝固粒子組成物
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
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
GB0504390D0 (en) * 2005-03-02 2005-04-06 Ibm Storage system with cascaded copy targeting and enhanced integrity
US7702851B2 (en) * 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
US7636824B1 (en) * 2006-06-28 2009-12-22 Acronis Inc. System and method for efficient backup using hashes
US8645646B2 (en) * 2007-01-31 2014-02-04 International Business Machines Corporation Stored data protection and recovery
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
WO2010049314A1 (en) 2008-10-30 2010-05-06 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
US9047233B2 (en) 2012-06-25 2015-06-02 International Business Machines Corporation Source cleaning cascaded volumes using write and background copy indicators
US9037819B2 (en) 2012-06-25 2015-05-19 Inernational Business Machines Corporation Source cleaning cascaded volumes using reference counts

Also Published As

Publication number Publication date
US20140189233A1 (en) 2014-07-03
EP2288975B1 (en) 2011-09-07
ATE523845T1 (de) 2011-09-15
EP2288975A2 (en) 2011-03-02
KR101539813B1 (ko) 2015-08-06
WO2010040768A2 (en) 2010-04-15
US8230185B2 (en) 2012-07-24
CN102177505B (zh) 2014-04-16
JP2012503240A (ja) 2012-02-02
US20120246426A1 (en) 2012-09-27
US8688937B2 (en) 2014-04-01
WO2010040768A3 (en) 2010-07-08
US8990529B2 (en) 2015-03-24
KR20110070992A (ko) 2011-06-27
CN102177505A (zh) 2011-09-07
US20100088468A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP4932063B2 (ja) 増分マップを含むFlashCopyカスケード内でのマップのクリーニングを最適化するための方法、システム、およびコンピュータ・プログラム
US8090917B2 (en) Managing storage and migration of backup data
JP5343166B2 (ja) 通信ネットワークを介してリモートのファイルサーバにファイルを転送するローカルのファイルサーバ、及び、それらのファイルサーバを有するストレージシステム
US9128948B1 (en) Integration of deduplicating backup server with cloud storage
US8051259B2 (en) Space efficient de-allocation for cascade/multiple target flash copy cleaning
US20140156866A1 (en) Efficient Data Transmission Between Computing Devices
CN104380263A (zh) 备份图像复制
US8359437B2 (en) Virtual computing memory stacking
CN105122219A (zh) 跨具有不同分配尺寸的存储器迁移数据
US11461123B1 (en) Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations
CN104035728A (zh) 一种硬盘热插拔处理方法、装置及节点
US20200310922A1 (en) Restoring operation of data storage systems at disaster recovery sites
CN109144403B (zh) 一种用于云盘模式切换的方法与设备
US20150277801A1 (en) Information processing system, control method of information processing system, and recording medium
US11573839B1 (en) Dynamic scheduling for live migration between cloud regions and edge locations
US11734038B1 (en) Multiple simultaneous volume attachments for live migration between cloud regions and edge locations
US20230101004A1 (en) Data Transfer Resiliency During Bulk To Streaming Transition
JP6686976B2 (ja) 仮想テープ管理装置、仮想テープ管理方法、及びプログラム
JP6287308B2 (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
JP2020177274A (ja) ストレージ装置、ストレージシステムおよびプログラム
CN112905541B (zh) 镜像仓库垃圾清理方法和装置
CN110058790B (zh) 用于存储数据的方法、设备和计算机程序产品
US8543784B1 (en) Backup application coordination with storage array power saving features
JP2022088106A (ja) ストレージシステム
US8065737B1 (en) Virus scanning for block-level distributed application management

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120214

R150 Certificate of patent or registration of utility model

Ref document number: 4932063

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3