JP2014526753A - 多重ターゲット・コピーの維持 - Google Patents

多重ターゲット・コピーの維持 Download PDF

Info

Publication number
JP2014526753A
JP2014526753A JP2014531360A JP2014531360A JP2014526753A JP 2014526753 A JP2014526753 A JP 2014526753A JP 2014531360 A JP2014531360 A JP 2014531360A JP 2014531360 A JP2014531360 A JP 2014531360A JP 2014526753 A JP2014526753 A JP 2014526753A
Authority
JP
Japan
Prior art keywords
volume
new
map
virtual copy
computer
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.)
Granted
Application number
JP2014531360A
Other languages
English (en)
Other versions
JP5669988B2 (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 JP2014526753A publication Critical patent/JP2014526753A/ja
Application granted granted Critical
Publication of JP5669988B2 publication Critical patent/JP5669988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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]
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)

Abstract

【課題】即時仮想コピーを維持するための技法を提供する。
【解決手段】即時仮想コピー・オペレーションを実施して第一ボリュームから新規ボリュームへの即時仮想コピーを生成する要求が受信される。前回の即時仮想コピー・オペレーションが実施されて以後、第一ボリュームが修正されていないと判定される。中間ボリュームおよび中間マップが既に生成されているかどうかが判定される。中間ボリュームおよび中間マップがまだ生成されていないと判定されるのに応じて、中間ボリュームおよび中間マップが生成され、中間マップに基づき、依存関係チェーンの中の第一ボリュームに依存して中間ボリュームが作成され、依存関係チェーン中の中間ボリュームに依存して新規ボリュームが作成される。
【選択図】図5

Description

本発明の諸実施形態は、多重ターゲット・コピーの維持に関する。
コンピューティング・システムは、多くの場合、(データを処理し、アプリケーション・プログラム、データを保管するための直接アクセス・ストレージ・デバイス(DASD:direct access storage device)、およびプロダクション・コンピュータとDASDとの間のデータの転送を制御するためのストレージ・コントローラを作動するための)一つ以上のプロダクション・コンピュータを含む。ストレージ・コントローラ(制御ユニットまたはストレージ・ディレクタとも言われる)は、ループ・アーキテクチャ状に接続された多数のハード・ディスク・ドライブから成るストレージ・スペース(直接アクセス・ストレージ・デバイス(DASD)とも言われる)へのアクセスを管理する。プロダクション・コンピュータは、ストレージ・コントローラを介してストレージ・スペースに入力/出力(I/O:Input/Output)要求を伝達することができる。
大きな組織体におけるデータの保存は、何らかのハードウェア故障が生じた際の、データの信頼性およびデータを回復する能力の両方が重要である。ストレージ・エリア・ネットワーク(SAN:Storage Area Network)は、非常に大きな量のデータを信頼できる安全な仕方で保管する必要があるときに用いられるアーキテクチャである。この技術は、サーバのディスク・アレイなど遠隔コンピュータのストレージ・デバイスが、オペレーティング・システムにローカルに付属されているように見えるようにして、これらデバイスの接続をサポートするネットワークの生成を可能にする。通常、これらのネットワークは、データ保存および個別コンポーネント間のハードウェア接続の両面で、大容量の冗長度を含む。データの冗長度を生成するためのさまざまな技法が存在する。
多くのシステムにおいて、DASDなどの一つのストレージ・デバイス上のデータ・ボリュームは、同じまたは別のストレージ・デバイスにコピーすることができる。ポイントインタイム・コピーは、ターゲット・ボリュームがある時点におけるデータのコピーを有するように、ソース・ボリュームからターゲット・ボリュームに、全データを物理的にコピーすることを含む。また、ポイントインタイム・コピーは、データのコピーを論理的に作成し、その後、必要なときにだけデータをコピーし、実質的に物理的コピーを遅らせて作成することもできる。この論理的コピー・オペレーションは、ターゲット・ボリュームおよびソース・ボリュームにアクセスできない時間を短縮するために行われる。
直接アクセス・ストレージ・デバイス(DASD)のサブシステムの多くは、「即時仮想コピー」オペレーション(「高速複製機能」とも言われる)を実施することができる。即時仮想コピー・オペレーションは、関係テーブルまたはポインタなどのメタデータを修正し、ソース・データ・オブジェクトをオリジナルおよびコピーの双方として取り扱うことによって機能する。プロダクション・コンピュータのコピー要求に応答して、ストレージ・サブシステムは、データの物理的コピーを一切作成することなく、そのコピーの生成を直ちにレポートする。「仮想」コピーだけが生成され、追加の物理的コピーが無いことは、プロダクション・コンピュータには全く分からない。
後に、ストレージ・システムがオリジナルまたはコピーの更新を受信したとき、その更新は、別に保管されて更新されたデータ・オブジェクトだけが相互参照される。この時点で、オリジナル・データ・オブジェクトとコピー・データ・オブジェクトとの枝分かれが開始される。第一のメリットは、即時仮想コピーはほぼ瞬時に作成され、通常の物理的コピー・オペレーションよりもはるかに早く完了することである。これにより、プロダクション・コンピュータおよびストレージ・サブシステムは自由に他のタスクを遂行することができる。プロダクション・コンピュータまたはストレージ・サブシステムは、バックグラウンド処理の間に、または別の時間に、オリジナル・データ・オブジェクトの実際の物理的コピーの生成を進めることさえ可能である。
かかる即時仮想コピー・オペレーションの一つは、FLASHCOPY(IBM社の登録商標)オペレーションとして知られる。(FLASHCOPYは、米国もしくは他の国々またはその両方におけるInternational Business Machines Corporationの登録商標またはコモンロー商標である。)FLASHCOPY(IBM社の登録商標)オペレーションは、同一のまたは異なったデバイス上のソース・ボリュームとターゲット・ボリュームとの間の論理的ポイントインタイム関係を確立することを含む。
FLASHCOPY(IBM社の登録商標)オペレーションなどの即時仮想コピー技法は、ポイントインタイム・コピーのツールを提供する。しかして、即時仮想コピーは、データ・セットまたはボリュームの瞬間スナップショットと言い表すことができる。
例えば、FLASHCOPY(IBM社の登録商標)機能などの機能は、管理者が、読み取りまたは書き込みアクセスのため即時に利用可能なコピーを備えた、ポイントインタイムのデータの全ボリュームのコピーを作成することを可能にする。FLASHCOPY(IBM社の登録商標)機能は、テープ上にバックアップ・コピーを生成する環境において利用可能な、標準的バックアップ・ツールとともに用いることができる。FLASHCOPY(IBM社の登録商標)機能は、ターゲット・ボリューム上にソース・ボリュームのコピーを生成する。このコピーは、前述のように、ポイントインタイム・コピーと呼ばれる。FLASHCOPY(IBM社の登録商標)オペレーションが開始されると、ソース・ボリュームとターゲット・ボリュームとの間に関係付けが生成される。この関係付けは、ソース・ボリュームおよびターゲット・ボリュームの「マッピング」である。このマッピングは、関連付けられたターゲット・ボリュームにコピーされる当該ソース・ボリュームのポイントインタイム・コピーを可能にする。この関係付けは、このボリューム・ペアの間に、FLASHCOPY(IBM社の登録商標)オペレーションが開始されてから、ストレージ・ユニットがソース・ボリュームからターゲット・ボリュームに全データをコピーするまで存在し、それを過ぎると関係付けは消去される。
データが物理的にコピーされるとき、バックグラウンド・プロセスは、ソース・ボリュームからターゲット・ボリュームにトラックをコピーする。このバックグラウンド・コピーを完了するのに要する時間量は、コピーされるデータの量、実行されているバックグラウンド・コピー・プロセスの数、および現在行われている他の一切のアクティビティなど、さまざまな尺度により決まる。FLASHCOPY(IBM社の登録商標)機能は、コピーされるデータを、実際に即座にコピーする必要はなく、ソース・ボリューム上の何らかの旧データの上書きを伴う更新の直前にだけコピーを必要とするように機能する。すなわち、ソース・ボリューム上のデータが変更される際、オリジナルのデータが、ソース・ボリューム上で上書きされる前に、ターゲット・ボリュームにコピーされる。
上記の如く、FLASHCOPY(IBM社の登録商標)は、ユーザまたは自動化プロセスが、データの論理ボリューム全体のほぼ即時のコピーを作成することを可能にする、さまざまなストレージ・デバイスに対応可能な機能である。ソース・ディスクのコピーがターゲット・ディスク上に作成される。これらのコピーは、読み取りおよび書き込みアクセスのため即座に利用可能である。実装などのFLASHCOPY(IBM社の登録商標)の共通機能は、コピーを反転する能力である。すなわち、FLASHCOPY(IBM社の登録商標)マップのソース・ディスクにターゲット・ディスクの内容を追加する能力である。
多重ターゲット即時仮想コピーは、ユーザが、プロダクション・ボリュームの多くのポイントインタイム・イメージ(すなわち、即時仮想コピー)を生成することを可能にする、ストレージ・コントローラ中の共通コピー・サービス機能である。これらのボリュームは、データの破損が生じたとき、またはテストおよび開発活動によってデータが変更されたとき、データを復元するために用いることができる。かかる機能を用いる理由は多く、必要なコピーの数も多くなっている。また、略連続的データ保護(CDP:Continuous Data Protection)またはゴールデン・イメージなどのハイ・レベル機能も利用可能である。CDPは、データに加えられたあらゆる変更のコピーを自動的に保存するデータのバックアップ、と言い表すことができる。データ(例、アプリケーション)のオリジナル・バージョンをゴールデン・イメージと言うことができ、このゴールデン・イメージから複数のコピーを作成することが可能である。
即時仮想コピー機能を実装するため用いることのできるいくつかの基本的技法には、コピーオンライトおよびリダイレクトオンライトが含まれる。コピーオンライトおよびリダイレクトオンライトの両方は、イメージ・データを追跡する。
コピーオンライトを用いて多くのイメージを維持する一つのアプローチでは、ソースまたはプロダクション・ボリュームへのプロダクション・コンピュータの書き込みアクティビティに起因して、サポートの必要なイメージが多いほど、イメージ維持のために必要な書き込みに対するオーバーヘッドが増える。
即時仮想コピーを維持するための方法、コンピュータ・プログラム製品、およびシステムが提供される。即時仮想コピー・オペレーションを実施し第一ボリュームから新規ボリュームへの即時仮想コピーを生成する要求が受信される。第一ボリュームが、前回の即時仮想コピー・オペレーションが実施されて以後、修正されていないとの判定がされる。中間ボリュームおよび中間マップが既に生成されているかどうかが判定される。中間ボリュームおよび中間マップがまだ生成されていないと判定するのに応じて、中間ボリュームおよび中間マップが生成される。中間ボリュームは、中間マップに基づき、依存関係チェーンの中の第一ボリュームに依存して作成され、新規ボリュームは、依存関係チェーン中の中間ボリュームに依存して作成される。
次に図面を参照する。図面中、同じ参照符号は同じ要素を表す。
特定の実施形態による、コンピューティング環境をブロック図で表す。 特定の実施形態による、4つのボリューム(vdisk(仮想ディスク)とも言われることもある)およびいくつかのボリュームの間のマッピングをブロック図で表す。 特定の実施形態による、ストレージ・ボリュームのカスケードの一例をブロック図で表す。これらボリュームはそれぞれのマップとリンクされ、各マップは、ソース・ボリュームからターゲット・ボリュームへの即時仮想コピー機能を定義する。 特定の実施形態による、中間ボリュームおよび中間マップを含む、ストレージ・ボリュームのカスケードの一例をブロック図で表す。 特定の実施形態による、カスケード・ツールによって実施される処理をフロー図で表す。 特定の実施形態による使用が可能な、あるコンピュータ・アーキテクチャをブロック図で表す。
本発明のさまざまな実施形態の説明を例示目的で提示するが、これらは網羅的であること、または開示された実施形態に限定することは意図されていない。当業者には、説明された実施形態の範囲から逸脱しない多くの修改および変形が明白であろう。本明細書で使われる用語は、諸実施形態の原理、実際的な応用、または市販の技術へのテクニカルな改良を最善に説明し、他の当業者が、本明細書に開示された諸実施形態を理解できるように選択し説明されたものである。
図1は、特定の実施形態による、コンピューティング環境をブロック図で表す。ストレージ・コントローラ100は、(例えば、論理ユニット番号、論理デバイスなどの)ボリューム122a、b...nおよび142a、b、...lを、それぞれ有するように構成されたストレージ120および140に向けられた、ネットワーク190を介して、プロダクション・コンピュータ150a、b、...kからの入力/出力(I/O)要求を受信する(上記のa、b、およびkは任意の整数値であり得、プロダクション・コンピュータ150bとプロダクション・コンピュータ150kとの間の省略記号は任意の数のプロダクション・コンピュータがあり得ることを示す)。上記のnとlとは異なる整数値にすることも、同一の整数値にすることも可能である。図中のストレージ120と140との間の省略記号は、任意の数のストレージ・デバイスがあり得ることを示す。ストレージ120、140は、DASDなどのストレージ・デバイスとすることができる。
ストレージ・コントローラ100は、カスケード・エンジン110をさらに含む。カスケード・エンジン110は、(例えば、プロダクション・コンピュータ150a、150b、150kからの)データの、ストレージ120、140へのまたはストレージ120、140の間での即時仮想コピーを実施する。本発明の特定の実施形態において、カスケード・エンジン110は、ストレージ・コントローラ100での実行に代えて、またはこれに加えて、ストレージ・コントローラ100に接続された別のストレージ・コントローラで実行することが可能である。
ボリュームは、ストレージの任意の論理的なまたは物理的なエレメントとすることができる。特定の実施形態において、データ・ブロックはトラックの内容であり、サブデータ・ブロックはトラックのセクタの内容である。ボリュームは、データ・ブロック(「データのブロック」とも言われる)を包含するストレージのブロック中に分割することができ、ストレージのブロックは、サブデータ・ブロック(「データのサブブロック」とも言われる)を包含する、ストレージのサブブロック中にさらに分割される。
本発明の実施形態は、任意のストレージ媒体の間のデータの転送に適用することが可能である。例えば、本発明の特定の実施形態は、図1に示したような、単一のストレージ・コントローラに配置されたストレージ媒体に用いることができる。さらに、本発明の別の特定の実施形態は、異なったストレージ・コントローラ群、異なった物理サイト群などに配置されたストレージ媒体に用いることも可能である。各ストレージ・デバイスが、即時仮想コピーに対するソースまたはターゲットであり得る。
特定の実施形態において、(ストレージ120、140に代えて、またはこれらに加えて)リムーバブル・ストレージを用いてコピーを維持することができる。リムーバブル・ストレージをストレージ・コントローラ100に在置することができる。
ストレージ・コントローラ100には、プロセッサ複合体(図示せず)をさらに含めることができ、これを当該技術分野で公知の任意のストレージ・コントローラまたはサーバを含むことができる。
プロダクション・コンピュータ150a、b...kには、当該技術分野で公知の任意のコンピューティング・デバイスを含めることができる。ストレージ・コントローラ100と、プロダクション・コンピュータ・システム(群)150a、b...kとは、ネットワーク190を介して交信し、このネットワークには、例えば、ストレージ・エリア・ネットワーク(SAN:Storage Area Network)、ローカル・エリア・ネットワーク(LAN:Local Area Network)、広域ネットワーク(WAN:Wide Area Network)、インターネット、イントラネットなど、任意の種類のネットワークを含めることが可能である。ストレージ120、140の各々には、例えば、直接アクセス・ストレージ・デバイス(DASD)、単純ディスク束(JBOD:Just a Bunch of Disks)、独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disks)、仮想化デバイスなど、ストレージ・デバイスのアレイを含めることができる。
さらに、図1には単一のストレージ・コントローラ100が示されているが、当業者は、複数のストレージ・コントローラを(例えば、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、インターネットなどの)ネットワークを介して接続し、それら複数のストレージ・コントローラの一つ以上に対し本発明の実装が可能なことを存知していよう。
即時仮想コピー命令が即時仮想コピー・プロセスを開始させ、このプロセスがソース・ボリュームからターゲット・ボリュームへのマップを生成する。このときから、この特定の時点におけるソース・ボリュームのイメージが、ターゲット・ボリューム上で利用可能になる。これにより、ソース・ボリューム上のデータのバックアップが生成される。さらに、オリジナル・データがオリジナル・ソース・ボリュームに保存されているので、オリジナル・データのいずれも喪失の危険を伴うことなく、ソース・ボリュームのデータに対しテストおよび他の管理タスクを実行することが可能になる。
即時仮想コピーが作成されると、それは、マップの定義により、ソース、ターゲットの2つのボリュームの間のリンクを生成する。このときから、ターゲット・ボリュームへのいかなるアクセスも即時にソース・ボリュームのイメージの関係部分のコピーを引き起こすことになり、また、ソース・ボリュームが保管しているイメージに変更をもたらす可能性のある、ソース・ボリュームへのいかなるアクセスも未変更データのターゲット・ボリュームへの即時のコピーを引き起こすことになる、ということを追加要件として、バックグラウンドでデータをコピーすることができる。このように、外部ユーザに対し、ターゲット・ボリュームは、ソース・ボリュームのその時点でのコピーを保管するが、但し、データは前述の状況の下でだけ物理的にコピーされることになる。
また、即時仮想コピー機能のターゲット・ボリュームであるストレージ・ボリュームが、さらなる即時仮想コピー機能のソース・ボリュームとなることもあり得、しかして、ストレージ・ボリュームのカスケードが生成される。
カスケード・エンジン110は、オーバーヘッドを最小化するために、ターゲット・ボリュームの間に依存関係を生成することによって、カスケード式のアプローチを実施する。図2は、特定の実施形態による、4つのボリューム(vdiskと言われることもある)およびいくつかのボリュームの間のマッピングをブロック図で表す。具体的には、図2は、ボリュームA200、ボリュームB210、ボリュームC220、およびボリュームD230を示す。図2を参照すると、カスケード・エンジン110は、
1:A→B
2:A→C
3:A→D
で定義される3つの即時仮想コピーのマップ1、2、3を生成する。
カスケード・エンジン110は、これらのマップ1、2、および3から始めて、A→D→C→Bの依存関係チェーンを生成する。図3は、特定の実施形態による、ストレージ・ボリューム200、230、220、210のカスケードの一例をブロック図で表し、これらボリュームはそれぞれのマップ300、302、304によってリンクされ、各マップは、ソース・ボリュームからターゲット・ボリュームへの即時仮想コピー機能を定義する。図3において、ボリュームD230はボリュームA200のバックアップを提供し、ボリュームC220はボリュームD230のバックアップを提供し、ボリュームB210はボリュームC220のバックアップを提供している。異なるストレージ・ボリューム200、210、220、230をリンクしているこれら即時仮想コピー機能はおそらく相異なる時間に開始されており、これにより、それぞれのストレージ・ボリューム200、210、220、230によって保管される、イメージの相異なるポイントインタイム・コピーが生成される。
即時仮想コピーのA→D→C→Bのカスケードにおいて、A、D、C、およびBは図2に示されたカスケード中のボリュームであり、矢印は即時仮想コピー・マップであって、ここで(A,D)で、ボリュームA200からボリュームD230への即時仮想コピー・マッピングを表すものとすれば、このカスケードは、マップ(A,D)、(D,C)および(C,B)を有することになる。このカスケードの実装において、ボリュームA200への新規データの書き込みは、各即時仮想コピー機能による、ボリュームD230へのスプリット書き込みを引き起こし得、これはボリュームD230上にイメージを維持するために必要である。
特に、あるストレージ・ボリュームが複数の即時仮想コピー機能のソースとして使われる場合には、もっと複雑なカスケードも可能である。例えば、ユーザが、ディスクAが保管している現在のイメージに対し2つの異なったテストを実施したいと望むことがある。そのユーザは、例えば、即時仮想コピー・マップA→BおよびA→Eを開始し、個々のテストをディスクBとEとで実施することができる。ユーザが、次いでこれら2つのテストの結果の後者を選好する場合、ユーザは、即時仮想コピー・マップE→Aを開始してそのデータをディスクAに逆転送することが可能である。同様に、オリジナル・ディスクにデータを復元するため実施される、即時仮想コピーの反転も、ディスクおよび即時仮想コピー・マップの複雑な配列をもたらす。
図3を参照すると、各ターゲット・ボリューム210、220、230が提示するイメージは、まず、それ自体を調べることによって生成される。当該ターゲット・ボリューム210、220、230が必要なデータを含む場合、そのデータが読み出される。当該ターゲット・ボリューム210、220、230が必要なデータを包含していない場合は、カスケード・エンジン110が、そのデータが見付かるまで、(図3の依存関係チェーンの左方向に)上流を調べる。
ボリュームA200のある領域が修正された場合、その領域に保持されていたオリジナル・データは、ボリュームD230にコピーされ、その後でその領域の修正が可能になる。しかして、カスケード処理は、これら全てのイメージを維持するためのオーバーヘッドを低減する。つまり、オーバーヘッドがイメージの数に制約されないので、イメージの数は関係がなくなる。
カスケード・エンジン110は、コピーオンライト実装のための多数のポイントインタイム・イメージに起因するオーバーヘッドを限定する。例えば、ターゲット・ボリューム自体が修正される場合、追加の変更が行われる。ボリュームC220のある領域が修正される場合、ボリュームB210を維持するために、カスケード・エンジン110は、まず、ボリュームD230(またはボリュームA200)から対応する領域をコピーし、そのデータをボリュームB210に書き込む。
特定の実施形態において、一部のターゲット・ボリュームは、決してまたはめったに修正されず、下支えストレージが全体に割り当てられる(すなわち、シン・プロビジョンされていない)。特定の実施形態において、ターゲット・ボリュームは、「無駄な」容量を回避するためシン・プロビジョンされ、これにより、ユーザは、決して変更しないかまたはめったに変更しないデータを保持するための容量に対する費用を回避できる。シン・プロビジョン型ボリュームは、これらに書き込まれたデータの量に比例するバックエンド・ストレージを消費すると言い表すことができよう。カスケード型アプローチを用いれば、見かけ上は相独立したイメージ群が(例えば、ターゲット・イメージ群に多くの変更が加えられる場合などに)各イメージが必要とする容量に影響を及ぼすことが可能である。この影響は、ターゲット・イメージ群が、それらのライフタイム期間に多くの変更を受ける場合特に顕著である。
カスケード・エンジン110は、ターゲット・イメージ間の依存関係を除去するために、中間マップおよび中間ボリュームを生成する。中間マップおよび中間ボリュームは、相互に関連している。このアプローチを用いれば、ターゲット・ボリュームへの修正が他のターゲット・ボリュームに影響することはない。
単に理解を深めてもらうために、ある事例を提示する。この例において、ボリュームA200からボリュームB210への即時仮想コピーに対する要求を受信するのに応じて、カスケード・エンジン110がマップ1を開始する際、カスケード・エンジン110は、
1:A→B
1’:A→B’
によって定義される中間マップ1’および中間ボリュームB’410をも生成する。これにより、
A→B’ →B
の依存関係チェーンがもたらされる。
この例において、マップ1が既に開始されているので、どの書き込みもボリュームA200を修正しておらず、ボリュームA200からボリュームC220への即時仮想コピーに対する別の要求を受信するのに応じて、カスケード・エンジン110が、マップ2
2:A→C
を開始する。
この場合、カスケード・エンジン110は、別の中間ボリュームまたは中間マップを生成しない。代わりに、カスケード・エンジン110は、中間ボリュームB’410からボリュームC220を分岐させ、その依存関係チェーンは以下となる:
A→B’(→B、→C)。
上記依存関係チェーンの(→B、→C)によって表される部分は、これが中間ボリュームB’410の分岐点であり、その結果ボリュームB210およびボリュームC220が、相互に独立しており中間ボリュームB’410およびボリュームA200のみに依存することを表す。
次に、ボリュームA200が修正されると仮定して、カスケード・エンジン110が、ボリュームA200からボリュームD230への即時仮想コピーに対する要求を受信するのに応じて、マップ3を開始する。この場合、カスケード・エンジンは、
3’:A→D’
によって定義される中間ボリュームD’420および中間マップ3’を生成する。
下記はこの依存関係チェーンであり、図4は、特定の実施形態による、下記の依存関係チェーンに対する、中間ボリュームおよび中間マップを含む、ストレージ・ボリュームのカスケードの一例をブロック図で表す:
A→D’(→D)→B’(→B、→C)。
中間ボリュームおよび関連する中間マップを有するこの依存関係チェーンにおいて、ボリュームC220の読み取りでは、対象データは、ボリュームC220上、または中間ボリュームB’410上、またはボリュームA200上のいずれかで見出されることになろう。ボリュームB210の読み取りでも、対象データは、ボリュームB210上、または中間ボリュームB’410上、またはボリュームA200上のいずれかで見出されることになろう。
中間ボリュームD’420およびB’410は書き込みはされず、これらの目的は、それぞれ、ボリュームD230と、ボリュームC220およびB210とに対するデータを維持することである。すなわち、中間ボリュームに対する書き込み要求が受信されても、その書き込み要求は拒否される。
この時点では、ボリュームD230への書き込みは、ボリュームB210またはボリュームC220に何ら影響を及ぼさない。同様に、ボリュームB210への書き込みは、ボリュームC220またはボリュームD230に何ら影響を及ぼさない。ボリュームB210、C220、およびD230は相互に独立しており、これらの各々に割り当てられるデータは、当該ボリュームB210、C220、または230に書き込まれるデータだけである。
中間ボリュームD’420がボリュームA200の領域に書き込み予定のデータを保持し、ボリュームD230が対応する領域に対するデータを保持し、ボリュームB210およびボリュームC220も、同じ対応領域に対するデータを保持することは可能である。特定の実施形態において、中間ボリュームD’420上のデータは不要なので、使用容量を最小化するためにガーベジ・コレクション手順が用いられる。このようにして、カスケード・エンジン110は、ターゲット入力/出力(I/O)(すなわち、読み取り/書き込み)アクティビティの量に関係なく、ターゲット・イメージを維持するため最小の容量だけが使用されていることを確実にする。
図5は、特定の実施形態による、カスケード・エンジン110によって実施される処理をフロー図で表す。制御は、カスケード・エンジン110が、第一ボリュームから新規ボリュームへの(例えば、ボリュームA200からボリュームB210、ボリュームA200からボリュームC220、またはボリュームA200からボリュームD230への)即時仮想コピーを生成するための即時仮想コピー・オペレーションを実施する要求、を受信するブロック500で開始される。
ブロック502で、カスケード・エンジン110は、これが第一ボリュームからの最初の即時仮想コピー・オペレーションであるか(すなわち、今まで他の即時仮想コピーが作成されたことはないか)どうかを判定する。最初のものであれば、処理はブロック504へと続き、そうでなければ、処理はブロック508に続く。ブロック504で、カスケード・エンジン110は、第一ボリュームから新規ボリュームへのマップを生成する。ブロック506で、カスケード・エンジン110は、依存関係チェーン中の第一ボリュームに依存して新規ボリュームを作成する。
ブロック508で、カスケード・エンジン110は、第一ボリュームが、前回の即時仮想コピー・オペレーション以後に修正されているかどうかを判定する。修正されている場合、処理はブロック510へと続き、そうでなければ、処理はブロック514に続く(図5)。ブロック510で、カスケード・エンジン110は、第一ボリュームから新規ボリュームへのマップを生成する。ブロック512で、カスケード・エンジン110は、依存関係チェーン中の第一ボリュームに依存して新規ボリュームを作成する。
ブロック514で、カスケード・エンジン110は、中間ボリュームおよび中間マップが既に生成されているかどうかを判定する。生成されていれば、処理はブロック516へと続き、そうでなければブロック518に続く。
ブロック516で、カスケード・エンジン110は、依存関係チェーン中の直近に生成された中間ボリュームに依存して新規ボリュームを作成する。
ブロック518で、カスケード・エンジン110は、新規の中間ボリュームおよび関連する新規中間マップを生成する。ブロック520で、カスケード・エンジン110は、依存関係チェーン中の第一ボリュームに依存して中間ボリュームを作成する。処理は、ブロック520からブロック516に続く。
実施形態の追加的な詳細
当業者ならよく理解できるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウエア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは一般に本明細書では全て「回路」、「モジュール」、または「システム」と称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが中に具現化されている一つ以上のコンピュータ可読媒体中に具現化されたコンピュータ・プログラム製品の形を取ることも可能である。
一つ以上のコンピュータ可読媒体の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせであり得る。コンピュータ可読ストレージ媒体のさらに具体的な例(非包括的リスト)には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光ストレージ・デバイス、磁気ストレージ・デバイス、固体メモリ、磁気テープ、または前述の任意の適切な組み合わせが含まれよう。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。
コンピュータ可読信号媒体は、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含み得る。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることが可能である。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うこともできる。
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら説明している。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに与え、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/動作群を実装するための手段を生成するようにすることができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することができるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/動作を実装する命令群を包含する製造品を生成するようにすることができる。
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連の(例えば、演算またはステップなどの)オペレーション処理が実行されるようにして、コンピュータ実装されるプロセスを生成し、当該コンピュータ上または他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
説明したオペレーションを実装するコードは、(例えば、集積回路チップ、プログラム可能ゲート・アレイ(PGA:Programmable Gate Array)、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)などの)ハードウェア・ロジックまたは回路構成中に実装することがさらに可能である。このハードウェア・ロジックをプロセッサに連結してオペレーションを実行することができる。
図6は、特定の実施形態による使用が可能な、コンピュータ・アーキテクチャ600を表す。ストレージ・コントローラ100もしくはプロダクション・コンピュータ150a、b、...kまたはこれらの両方には、コンピュータ・アーキテクチャ600を実装することができる。コンピュータ・アーキテクチャ600は、プログラム・コードの保管もしくは実行またはその両方に適しており、システム・バス620を介して直接にまたは間接的にメモリ・エレメント604に連結された、少なくとも一つのプロセッサ602を含む。メモリ・エレメント604には、プログラム・コードの実際の実行の過程で用いられるローカル・メモリと、大容量ストレージと、実行の過程で大容量ストレージからコードを読み出さなければならない回数を低減するために、少なくとも一部のプログラム・コードの一時的格納を提供するキャッシュ・メモリとを含めることができる。メモリ・エレメント604は、オペレーティング・システム605および一つ以上のコンピュータ・プログラム606を包含する。
入力/出力(I/O)デバイス612、614(以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)は、直接にもしくは介在I/Oコントローラ610を介してシステムに連結することができる。
また、ネットワーク・アダプタ608をシステムに連結して、データ処理システムが、介在する私的ネットワークまたは公衆ネットワークを介して、他のデータ処理システムあるいは遠隔のプリンタまたはストレージ・デバイスに連結できるようにすることも可能である。モデム、ケーブル・モデム、およびイーサネット(R)カードは、現在利用可能なネットワーク・アダプタ608のほんの数例である。
コンピュータ・アーキテクチャ600は、ストレージ616(例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ・エリア)に連結することができる。ストレージ616は、内蔵ストレージ・デバイスあるいは取り付けストレージまたはネットワーク・アクセスが可能なストレージを含み得る。ストレージ616中のコンピュータ・プログラム606は、当該技術分野で周知のやり方で、メモリ・エレメント604中にロードしてプロセッサ602によって実行することができる。
コンピュータ・アーキテクチャ600には、図示よりも少ないコンポーネント、図示されていない追加のコンポーネント、または図示のコンポーネントと追加のコンポーネントとの何らかの組み合わせを含めることが可能である。コンピュータ・アーキテクチャ600には、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話デバイス、ネットワーク機器、仮想化デバイス、ストレージ・コントローラなど、当該技術分野で周知の任意のコンピューティング・デバイスを含めることができる。
図面のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、規定の論理機能(群)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された2つのブロックが、関与する機能によって実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する、特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある(“a”、“an”)」、および「該(“the”)」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに当然のことながら、本明細書で用いられる「含む(“comprise”)」もしくは「含んでいる(“comprising”)」またはその両方は、述べられた機能、整数、ステップ、オペレーション、エレメント、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の機能、整数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在を排除するものではない。
添付の請求項中のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求要素と組み合わせてその機能を遂行するための、一切の構造、材料または動作を包含することが意図されている。本発明の実施形態の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態のために、本発明を理解できるように選択し説明されたものである。
本発明の実施形態の前述の説明は、例示および説明の目的で提示されたものである。網羅的であること、あるいは、これら実施形態を開示された通りの形態に限定することを意図していない。前述の教示を踏まえて、多くの修改および変形が可能である。これらの実施形態の範囲は、この詳細な説明には限定されるものでなく、むしろ、本明細書に添付された請求項によって限定されるように意図されている。前述の明細、例、およびデータは、これら実施形態の構成物の製作および使用の全面的な説明を提示している。本発明の範囲を逸脱することなく多くの実施形態を作成することが可能なので、それらの実施形態は、添付の請求項、または後に出願される一切の請求項、およびこれらの同等物に帰属する。

Claims (24)

  1. 即時仮想コピーを維持する方法であって、
    即時仮想コピー・オペレーションを実施して第一ボリュームから新規ボリュームへの即時仮想コピーを生成する要求を、コンピュータのプロセッサを用いて受信するステップと、
    前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていないと判定するステップと、
    中間ボリュームおよび中間マップが既に生成されているかどうかを判定するステップと、
    前記中間ボリュームおよび前記中間マップがまだ生成されていないと判定するのに応じて、
    前記中間ボリュームおよび前記中間マップを生成するステップと、
    前記中間マップに基づき、依存関係チェーンの中の前記第一ボリュームに依存して前記中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップと、
    を含む方法。
  2. 前記即時仮想コピー・オペレーションは、前記第一ボリュームからの最初の即時仮想コピー・オペレーションであると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップに基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    をさらに含む、請求項1に記載の方法。
  3. 前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップ基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    をさらに含む、請求項1に記載の方法。
  4. 前記中間ボリュームおよび前記中間マップが既に生成されていると判定するのに応じて、前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップ、
    をさらに含む、請求項1に記載の方法。
  5. 前記中間ボリュームに依存する前記新規ボリュームに対する読み取り要求を受信するステップと、
    前記読み取り要求に対するデータを、前記新規ボリューム、前記中間ボリューム、または前記第一ボリュームから、前述の順序で取得しようと試みるステップと、
    をさらに含む、請求項1に記載の方法。
  6. 前記中間ボリュームが書き込み要求に応答して更新されない、請求項1に記載の方法。
  7. 前記新規ボリュームは第二ボリュームであって、前記方法が、
    別の即時仮想コピー・オペレーションを実施して前記第一ボリュームから第三ボリュームへの別の即時仮想コピーを生成する要求を受信するステップと、
    新規中間ボリュームおよび新規中間マップを生成するステップと、
    前記新規中間マップに基づき、前記依存関係チェーンの中の前記第一ボリュームに依存して前記新規中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記新規中間ボリュームに依存して前記第三ボリュームを作成するステップと、
    をさらに含む、請求項1に記載の方法。
  8. 前記第三ボリュームの更新が、前記第二ボリュームに保管されたデータに影響しない、請求項7に記載の方法。
  9. 即時仮想コピーを維持するためのコンピュータ・システムであって、
    プロセッサと、
    前記プロセッサに接続されたストレージ・デバイスと、
    を含み、
    前記ストレージ・デバイスは保管されたプログラムを有し、前記プロセッサは、前記プログラムの命令を実行してオペレーションを実施するように構成され、前記オペレーションが、
    即時仮想コピー・オペレーションを実施して第一ボリュームから新規ボリュームへの即時仮想コピーを生成する要求を、コンピュータのプロセッサを用いて受信するステップと、
    前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていないと判定するステップと、
    中間ボリュームおよび中間マップが既に生成されているかどうかを判定するステップと、
    前記中間ボリュームおよび前記中間マップがまだ生成されていないと判定するのに応じて、
    前記中間ボリュームおよび前記中間マップを生成するステップと、
    前記中間マップに基づき、依存関係チェーンの中の前記第一ボリュームに依存して前記中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップと、
    を含む、コンピュータ・システム。
  10. 前記オペレーションが、
    前記即時仮想コピー・オペレーションは、前記第一ボリュームからの最初の即時仮想コピー・オペレーションであると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップ基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    をさらに含む、請求項9に記載のコンピュータ・システム。
  11. 前記オペレーションが、
    前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップ基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    をさらに含む、請求項9に記載のコンピュータ・システム。
  12. 前記オペレーションが、
    前記中間ボリュームおよび前記中間マップが既に生成されていると判定するのに応じて、前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップ、
    をさらに含む、請求項9に記載のコンピュータ・システム。
  13. 前記オペレーションが、
    前記中間ボリュームに依存する前記新規ボリュームに対する読み取り要求を受信するステップと、
    前記読み取り要求に対するデータを、前記新規ボリューム、前記中間ボリューム、または前記第一ボリュームから、前述の順序で取得しようと試みるステップと、
    をさらに含む、請求項9に記載のコンピュータ・システム。
  14. 前記中間ボリュームが書き込み要求に応答して更新されない、請求項9に記載のコンピュータ・システム。
  15. 前記新規ボリュームは第二ボリュームであって、前記オペレーションが、
    別の即時仮想コピー・オペレーションを実施して前記第一ボリュームから第三ボリュームへの別の即時仮想コピーを生成する要求を受信するステップと、
    新規中間ボリュームおよび新規中間マップを生成するステップと、
    前記新規中間マップ基づき、前記依存関係チェーンの中の前記第一ボリュームに依存して前記新規中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記新規中間ボリュームに依存して前記第三ボリュームを作成するステップと、
    をさらに含む、請求項9に記載のコンピュータ・システム。
  16. 前記第三ボリュームの更新が、前記第二ボリュームに保管されたデータに影響しない、請求項15に記載のコンピュータ・システム。
  17. 即時仮想コピーを維持するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたコンピュータ可読プログラム・コードを有するコンピュータ可読ストレージ媒体を含み、
    前記コンピュータ可読プログラム・コードは、コンピュータのプロセッサで実行されたとき、
    即時仮想コピー・オペレーションを実施して第一ボリュームから新規ボリュームへの即時仮想コピーを生成する要求を、前記コンピュータの前記プロセッサを用いて受信するステップと、
    前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていないと判定するステップと、
    中間ボリュームおよび中間マップが既に生成されているかどうかを判定するステップと、
    前記中間ボリュームおよび前記中間マップがまだ生成されていないと判定するのに応じて、
    前記中間ボリュームおよび前記中間マップを生成するステップと、
    前記中間マップ基づき、依存関係チェーンの中の前記第一ボリュームに依存して前記中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップと、
    を実施するように構成される、コンピュータ・プログラム製品。
  18. 前記コンピュータ可読プログラム・コードが、前記コンピュータの前記プロセッサによって実行されたとき、
    前記即時仮想コピー・オペレーションが、前記第一ボリュームからの最初の即時仮想コピー・オペレーションであると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップに基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    を実施するように構成される、請求項17に記載のコンピュータ・プログラム製品。
  19. 前記コンピュータ可読プログラム・コードが、前記コンピュータの前記プロセッサによって実行されたとき、
    前回の即時仮想コピー・オペレーションが実施されて以後、前記第一ボリュームが修正されていると判定するステップと、
    前記第一ボリュームから前記新規ボリュームへのマップを生成するステップと、
    前記生成されたマップに基づき、前記依存関係チェーン中の前記第一ボリュームに依存して前記新規ボリュームを作成するステップと、
    を実施するように構成される、請求項17に記載のコンピュータ・プログラム製品。
  20. 前記コンピュータ可読プログラム・コードが、前記コンピュータの前記プロセッサによって実行されたとき、
    前記中間ボリュームおよび前記中間マップが既に生成されていると判定するのに応じて、前記依存関係チェーン中の前記中間ボリュームに依存して前記新規ボリュームを作成するステップ、
    を実施するように構成される、請求項17に記載のコンピュータ・プログラム製品。
  21. 前記コンピュータ可読プログラム・コードが、前記コンピュータの前記プロセッサによって実行されたとき、
    前記中間ボリュームに依存する前記新規ボリュームに対する読み取り要求を受信するステップと、
    前記読み取り要求に対するデータを、前記新規ボリューム、前記中間ボリューム、または前記第一ボリュームから、前述の順序で取得しようと試みるステップと、
    を実施するように構成される、請求項17に記載のコンピュータ・プログラム製品。
  22. 前記中間ボリュームが書き込み要求に応答して更新されない、請求項17に記載のコンピュータ・プログラム製品。
  23. 前記新規ボリュームは第二ボリュームであって、前記コンピュータ可読プログラム・コードが、前記コンピュータの前記プロセッサによって実行されたとき、
    別の即時仮想コピー・オペレーションを実施して前記第一ボリュームから第三ボリュームへの別の即時仮想コピーを生成する要求を受信するステップと、
    新規中間ボリュームおよび新規中間マップを生成するステップと、
    前記新規中間マップに基づき、前記依存関係チェーンの中の前記第一ボリュームに依存して前記新規中間ボリュームを作成するステップと、
    前記依存関係チェーン中の前記新規中間ボリュームに依存して前記第三ボリュームを作成するステップと、
    を実施するように構成される、請求項17に記載のコンピュータ・プログラム製品。
  24. 前記第三ボリュームの更新が、前記第二ボリュームに保管されたデータに影響しない、請求項23に記載のコンピュータ・プログラム製品。
JP2014531360A 2011-10-03 2012-09-21 多重ターゲット・コピーの維持 Active JP5669988B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/251,867 US8719523B2 (en) 2011-10-03 2011-10-03 Maintaining multiple target copies
US13/251,867 2011-10-03
PCT/IB2012/055016 WO2013050900A1 (en) 2011-10-03 2012-09-21 Maintaining multiple target copies

Publications (2)

Publication Number Publication Date
JP2014526753A true JP2014526753A (ja) 2014-10-06
JP5669988B2 JP5669988B2 (ja) 2015-02-18

Family

ID=47993781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014531360A Active JP5669988B2 (ja) 2011-10-03 2012-09-21 多重ターゲット・コピーの維持

Country Status (6)

Country Link
US (2) US8719523B2 (ja)
JP (1) JP5669988B2 (ja)
CN (1) CN103842967B (ja)
DE (1) DE112012003695T5 (ja)
GB (1) GB2509634B (ja)
WO (1) WO2013050900A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4886918B1 (ja) 2008-10-30 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フラッシュコピー・プロセスを処理する方法、ならびにそのためのシステム、およびコンピュータ・プログラム
US9026753B2 (en) * 2012-02-16 2015-05-05 Hitachi, Ltd. Snapshot volume generational management for snapshot copy operations using differential data
CN104915298B (zh) * 2014-03-13 2019-02-12 腾讯科技(北京)有限公司 关系链处理方法及装置
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
US9760449B2 (en) 2015-09-16 2017-09-12 International Business Machines Corporation Restoring a point-in-time copy
US9886349B2 (en) 2015-09-21 2018-02-06 International Business Machines Corporation Point-in-time copy on write for golden image
US9940041B2 (en) 2015-09-21 2018-04-10 International Business Machines Corporation Copy-redirect on write
US9632724B1 (en) 2015-10-12 2017-04-25 International Business Machines Corporation Point-in-time copy with chain cloning
US9900444B1 (en) 2016-10-28 2018-02-20 Wipro Limited System and method for online charging in a communication network
US10698631B2 (en) 2018-02-13 2020-06-30 International Business Machines Corporation Point-in-time copy with target write optimization
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
US11016692B2 (en) * 2019-09-11 2021-05-25 International Business Machines Corporation Dynamically switching between memory copy and memory mapping to optimize I/O performance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010049314A1 (en) * 2008-10-30 2010-05-06 International Business Machines Corporation Flashcopy handling
WO2011110542A1 (en) * 2010-03-11 2011-09-15 International Business Machines Corporation Buffer disk in flashcopy cascade
JP2013029911A (ja) * 2011-07-27 2013-02-07 Fujitsu Ltd 制御装置、制御方法およびストレージ装置
JP2013531840A (ja) * 2010-05-25 2013-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップ・プロセスを処理する方法、システム、及びコンピュータ・プログラム

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US5526506A (en) * 1970-12-28 1996-06-11 Hyatt; Gilbert P. Computer system having an improved memory architecture
US5210866A (en) 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US6202085B1 (en) 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6772302B1 (en) * 1999-11-12 2004-08-03 International Business Machines Corporation Virtual copy method for data spanning storage boundaries
US6557089B1 (en) * 2000-11-28 2003-04-29 International Business Machines Corporation Backup by ID-suppressed instant virtual copy then physical backup copy with ID reintroduced
US6594744B1 (en) 2000-12-11 2003-07-15 Lsi Logic Corporation Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US6728150B2 (en) * 2002-02-11 2004-04-27 Micron Technology, Inc. Method and apparatus for supplementary command bus
US20040006664A1 (en) * 2002-07-02 2004-01-08 Amir Helzer System and method for efficient chip select expansion
US7191304B1 (en) * 2002-09-06 2007-03-13 3Pardata, Inc. Efficient and reliable virtual volume mapping
US7266665B2 (en) * 2003-06-17 2007-09-04 International Business Machines Corporation Method, system, and article of manufacture for remote copying of data
US7376676B2 (en) * 2003-07-17 2008-05-20 International Business Machines Corporation Method, system, and program for autonomic copy services solutions
US7188272B2 (en) 2003-09-29 2007-03-06 International Business Machines Corporation Method, system and article of manufacture for recovery from a failure in a cascading PPRC system
US7278049B2 (en) * 2003-09-29 2007-10-02 International Business Machines Corporation Method, system, and program for recovery from a failure in an asynchronous data copying system
US7461100B2 (en) 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7546428B1 (en) 2004-07-01 2009-06-09 Emc Corporation Computer architecture for managing replication of data in a data storage environment
US20060015696A1 (en) * 2004-07-15 2006-01-19 Lu Nguyen Integrated storage device
JP4550541B2 (ja) 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
US7457930B2 (en) * 2004-11-19 2008-11-25 International Business Machines Corporation Method for application transparent autonomic data replication improving access performance for a storage area network aware file system
US7475204B2 (en) 2004-11-24 2009-01-06 International Business Machines Corporation Automatically managing the state of replicated data of a computing environment
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
US20060174074A1 (en) 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US7778976B2 (en) 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
GB0504390D0 (en) 2005-03-02 2005-04-06 Ibm Storage system with cascaded copy targeting and enhanced integrity
CA2954888C (en) 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
US7725436B1 (en) 2006-01-12 2010-05-25 Network Appliance, Inc, Method and system for reducing the number of read-only, persistent point-in-time images on a storage server
US7571292B2 (en) * 2006-03-21 2009-08-04 International Business Machines Corporation Producing tertiary instant virtual copies without volume suspension
US7467268B2 (en) * 2006-04-14 2008-12-16 Hewlett-Packard Development Company, L.P. Concurrent data restore and background copy operations in storage networks
US7930496B2 (en) * 2006-06-29 2011-04-19 International Business Machines Corporation Processing a read request to a logical volume while relocating a logical volume from a first storage location to a second storage location using a copy relationship
US7822932B2 (en) * 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US20080084769A1 (en) * 2006-10-06 2008-04-10 Siva Raghuram Memory system and method for operating a memory system
US8095755B2 (en) * 2006-10-18 2012-01-10 International Business Machines Corporation System, method and computer program product for generating a consistent point in time copy of data
US7593973B2 (en) 2006-11-15 2009-09-22 Dot Hill Systems Corp. Method and apparatus for transferring snapshot data
CN101271425A (zh) 2007-03-23 2008-09-24 国际商业机器公司 基于磁盘映像概要的应用程序服务器预配置系统和方法
CN100478904C (zh) 2007-07-18 2009-04-15 华为技术有限公司 快照保护方法及装置
US8095510B2 (en) 2008-07-22 2012-01-10 International Business Machines Corporation Data restoration in a storage system using multiple restore points
US8230185B2 (en) * 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US8713267B2 (en) * 2009-01-23 2014-04-29 Lsi Corporation Method and system for dynamic storage tiering using allocate-on-write snapshots
GB2484841B (en) 2009-09-24 2016-10-26 Ibm Data storage using bitmaps
DE112010003788B4 (de) * 2009-09-25 2019-07-11 International Business Machines Corporation Datenspeicherung
US8281093B1 (en) * 2009-11-30 2012-10-02 Symantec Corporation Systems and methods for creating consolidated backups of snapshot hierarchies
US8533411B2 (en) 2010-03-11 2013-09-10 International Business Machines Corporation Multiple backup processes
CN101997918B (zh) 2010-11-11 2013-02-27 清华大学 异构san环境中的海量存储资源按需分配的实现方法
US8892838B2 (en) * 2011-06-21 2014-11-18 International Business Machines Corporation Point-in-time copying of virtual storage and point-in-time dumping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010049314A1 (en) * 2008-10-30 2010-05-06 International Business Machines Corporation Flashcopy handling
WO2011110542A1 (en) * 2010-03-11 2011-09-15 International Business Machines Corporation Buffer disk in flashcopy cascade
JP2013531840A (ja) * 2010-05-25 2013-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション バックアップ・プロセスを処理する方法、システム、及びコンピュータ・プログラム
JP2013029911A (ja) * 2011-07-27 2013-02-07 Fujitsu Ltd 制御装置、制御方法およびストレージ装置

Also Published As

Publication number Publication date
JP5669988B2 (ja) 2015-02-18
US20130086342A1 (en) 2013-04-04
CN103842967B (zh) 2016-09-14
GB2509634B (en) 2014-10-15
GB2509634A (en) 2014-07-09
US20130086343A1 (en) 2013-04-04
WO2013050900A1 (en) 2013-04-11
GB201405692D0 (en) 2014-05-14
US8719523B2 (en) 2014-05-06
CN103842967A (zh) 2014-06-04
US8732419B2 (en) 2014-05-20
DE112012003695T5 (de) 2014-05-28

Similar Documents

Publication Publication Date Title
JP5669988B2 (ja) 多重ターゲット・コピーの維持
US10114581B1 (en) Creating a virtual access point in time on an object based journal replication
US9098452B2 (en) Selecting files to backup in a block level backup
US8433870B2 (en) Multiple incremental virtual copies
KR101522443B1 (ko) 플래시카피 처리방법 및 시스템
US9377964B2 (en) Systems and methods for improving snapshot performance
JP5260802B2 (ja) コピー機能を操作するための方法、システム、およびコンピュータ・プログラム製品
JP6195614B2 (ja) カスケード・ボリュームのソース・クリーニングのためのシステム、方法、およびコンピュータ・プログラム(カスケード・ボリュームのソース・クリーニング)
US9189338B2 (en) Disaster recovery failback
US9740634B2 (en) Establishing a point-in-time copy relationship between source logical addresses and target logical addresses
CN107209705A (zh) 用于计算环境的活动回滚
US11226866B2 (en) Policy driven data updates
US10235092B1 (en) Independent parallel on demand recovery of data replicas in a storage system
US10503426B2 (en) Efficient space allocation in gathered-write backend change volumes
US20180101539A1 (en) Reducing read operations and branches in file system policy checks
US9760450B2 (en) Restoring a clone point-in-time copy
US11144409B2 (en) Recovering from a mistaken point-in-time copy restore
US20130166946A1 (en) Disaster recovery production takeover
WO2014111773A1 (en) Data backup recovery

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140320

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140320

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141216

R150 Certificate of patent or registration of utility model

Ref document number: 5669988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150