JP5818640B2 - 第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するためのコンピュータ・プログラム、システム、および方法(第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かの決定) - Google Patents

第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するためのコンピュータ・プログラム、システム、および方法(第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かの決定) Download PDF

Info

Publication number
JP5818640B2
JP5818640B2 JP2011245070A JP2011245070A JP5818640B2 JP 5818640 B2 JP5818640 B2 JP 5818640B2 JP 2011245070 A JP2011245070 A JP 2011245070A JP 2011245070 A JP2011245070 A JP 2011245070A JP 5818640 B2 JP5818640 B2 JP 5818640B2
Authority
JP
Japan
Prior art keywords
drain
storage
threshold
metric
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011245070A
Other languages
English (en)
Other versions
JP2012108906A (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 JP2012108906A publication Critical patent/JP2012108906A/ja
Application granted granted Critical
Publication of JP5818640B2 publication Critical patent/JP5818640B2/ja
Expired - Fee Related 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するための、コンピュータ・プログラム製品、システム、および方法に関する。
災害時回復システムは、通常、ある一時点での突然の破局的障害、または、ある期間にわたるデータ損失という、2つのタイプの障害に対処する。第2のタイプの漸進的な災害では、ボリュームに対する更新が失われる可能性がある。データ更新の回復を支援するために、データのコピーがリモート位置に提供される場合もある。こうした二重コピーまたはシャドー・コピーは、典型的には、アプリケーション・システムが1次ストレージ・デバイスに新規データを書き込む際に作成される。2次サイトでのデータのリモート・コピーを維持するために、インターナショナル・ビジネス・マシーンズ・コーポレーション(「IBM」)のExtended Remote Copy(XRC)、Coupled XRC(CXRC)、Global Copy、およびGlobal Mirror Copyなどの、様々なコピー技術を使用することができる。
データ・ミラーリング・システムでは、データはボリューム・ペア内で維持される。ボリューム・ペアは、1次ストレージ・デバイス内のボリュームと、1次ボリューム内で維持されているデータの同一コピーを含む2次ストレージ・デバイス内の対応するボリュームとで構成される。1次サーバおよび2次サーバを使用して、1次ストレージ・デバイスおよび2次ストレージ・デバイスへのアクセスを制御してもよい。特定のデータ・ミラーリング・システムでは、異なるアプリケーションによって異なる1次ストレージ・デバイスへと書き込まれた更新が、一貫した時刻(TOD)値をタイム・スタンプとして使用するように、複数のシステムにわたって均一な時間を提供するためにタイマが使用される。ホスト・オペレーティング・システムまたはアプリケーションは、データ・セットまたはデータ・セットの組を1次ストレージ内のボリュームに書き込む際に、こうしたデータ・セットに対する更新にタイム・スタンプを押すことができる。データ更新の整合性は、ボリューム・ペア内の2次ボリュームでの更新が、1次ボリュームで実行された時と同じ順序で実行されることを保証することに関係する。アプリケーション・プログラムによって提供されるタイム・スタンプは、データ更新の論理シーケンスを決定する。
データベース・システムなどの多くのアプリケーション・プログラムでは、前の書き込みが実行されていない限り特定の書き込みは実行できず、そうでなければデータの整合性が脅かされることになる。その整合性が前のデータ書き込みの実行に依存するこうしたデータ書き込みは、従属書き込み(dependent write)として知られている。1次ストレージおよび2次ストレージ内のボリュームは、すべての書き込みがそれらの論理順序で転送された場合、すなわち、すべての従属書き込みがそれに依存している書き込みより先に転送された場合に、一貫したものとなる。一貫性グループは、一貫性タイム・スタンプに等しいかまたはそれより前のタイム・スタンプを有する一貫性グループ内のすべてのデータ書き込みについて、一貫性時間を有する。一貫性グループは、従属書き込みが一貫した方法で保護されるような1次ボリュームに対する更新の集合である。一貫性時間は、2次ボリュームに対する更新がその時間まで一貫していることをシステムが保証する、最新の時間である。一貫性グループは、ボリュームおよびストレージ・デバイス全体にわたって、データの一貫性を維持する。したがって、データが2次ボリュームから回復されると、回復されたデータは一貫していることになる。
一貫したある時点でのデータのコピーを提供するための技法の1つは、1次ストレージへのすべての書き込みを中断した後、書き込みが中断されている間に、2次ストレージまたはバックアップ・デバイスへミラーリングするためにすべてのデータをコピーすることである。この技法の欠点は、ある時点でのデータのコピーを作成する間、ホストの書き込みが中断されることであり、これによってホスト側でのアプリケーション処理に悪影響を及ぼす可能性がある。代替の技法は、所要時間がわずか1、2秒などと非常に短いデータの論理コピーを、1次ストレージ側で確立することである。したがって、論理コピーを確立するための間、1次ストレージへのホスト書き込みを中断することで、ホスト・アプリケーションの処理に対して与える破壊的影響は、すべてのソース・データをターゲット・ボリュームへコピーする間、ホスト書き込みが中断される場合に比べてはるかに少ない。
更新前に、1次ストレージ側で論理コピーが確立された時点でターゲット・ボリュームがそのデータを有するように、論理コピーを確立した後、更新の対象となるソース・ボリューム・データはターゲット・ボリュームへとコピーされる。これにより、更新が受信されるまで物理コピーが据え置かれる。この論理コピー動作は、ターゲット・ボリュームおよびソース・ボリュームにアクセスできない時間を最小限にするために実行される。
データの一貫性グループを1次ストレージから2次ストレージへとドレインまたはコピーする場合、1次システムは、ドレインするために一貫性グループ内のデータ・ブロックの指示を維持する。ドレイン動作時には、衝突としても知られているドレインされているデータへのホスト書き込みは、そのブロックのドレインが完了するまで遅延される。したがって、書き込み要求を完了するための時間が遅れることにより、ドレイン動作はホストの性能に悪影響を与える可能性がある。ドレイン期間は、その間に一貫性グループ内のデータが2次ストレージにコピーされ、コピーされないデータへのホスト書き込み、すなわち衝突がキューに入れられて遅延する期間に、設定することができる。一貫性グループ内のすべてのデータ・ブロックのドレインがこのドレイン期間内に完了しない場合、ドレイン動作は失敗する。このような場合、一貫性グループをドレインするための動作は再度実行されなければならず、ドレイン動作がドレイン動作用に与えられた時間内に完了しない可能性があるという同じリスクにさらされる。
当分野では、データを第1のストレージから第2のストレージへとドレインするための、改良された技法が求められている。
データ・ブロックを第1のストレージから第2のストレージへとコピーするためにドレイン時間を延長するか否かを決定するための、コンピュータ・プログラム製品、システム、および方法が提供される。第2のストレージへとピーするために、第1のストレージ内のデータ・ブロックを示すデータ構造が生成される。ドレイン期間に第1のストレージに示されたデータ・ブロックを第2のストレージにコピーするためのドレイン動作が開始される。データ構造内に示されたデータ・ブロックへの書き込み要求は、ドレイン期間中、キューに入れられ、キューに入れられた書き込み要求は、キューに入れられている間は完了しない。ドレイン期間中に、第1のストレージ内のデータ・ブロックに対して実行される書き込みに基づいた計量情報(metric information)が集められ、ドレイン期間の満了に応答して、集められた計量情報からドレイン動作を続行するかまたはドレイン動作を終了するかが決定される。
ネットワーク・コンピューティング環境の実施形態を示す図である。 集められた計量情報の実施形態を示す図である。 データを第1のストレージから第2のストレージへドレインするための諸動作の実施形態を示す図である。 データを第1のストレージから第2のストレージへドレインするための諸動作の実施形態を示す図である。 第1のストレージへの書き込み要求を処理するための諸動作の実施形態を示す図である。 データ・ブロックが第1のストレージから第2のストレージへと首尾よくコピーされた旨の肯定応答を処理するための諸動作の実施形態を示す図である。 コンピュータ・アーキテクチャの実施形態を示す図である。
図1は、ネットワーク・コンピューティング環境の実施形態を示す。第1のサーバ2は、1つまたは複数のホスト・システム4から、内部にソース・ボリューム8と呼ばれるストレージ・ボリューム8が構成された1次ストレージ6への、入力/出力(I/O)要求を管理する。第1のサーバ2は、1次ストレージ・ボリューム8へのI/O要求を管理し、ソース・ボリューム8に対する更新を2次ストレージ16内のターゲット・ボリューム12へとミラーリングすることが可能な、ストレージ・マネージャ10プログラムを含む。第2のサーバ18は、第2のストレージ16へのI/Oアクセスと、第1のサーバ2との管理通信とを管理するための、ストレージ・マネージャ20を含む。
第1のサーバ2および第2のサーバ18は、それぞれ、それらの対応するストレージ6および16への読み取りおよび書き込みデータをバッファリングするための、キャッシュ22および24を含む。第1のサーバ2および第2のサーバ18は、どちらも、ホスト・システム4からの読み取りおよび書き込み要求を受信することができる。
1次ストレージ・マネージャ10は、ある時点で一貫している更新の一貫性グループをソース・ボリューム8内に形成し、ターゲット・ボリューム12へコピーすることができる。更新の一貫性グループを2次ストレージ8にコピーするために、ストレージ・マネージャ10は、ターゲット・ボリューム12(第2のストレージ16)へコピーするためのソース・ボリューム8(第1のストレージ6)内の一貫性グループのデータ・ブロックを示す、コピー・データ構造26を維持する。ストレージ・マネージャ10は、コピー・データ構造26内に示された一貫性グループ内の更新をターゲット・ボリューム12へコピーまたはドレインするための、ドレイン動作を開始する。ドレイン動作中、ストレージ・マネージャ10は、ターゲット・ボリューム12へコピーされていないコピー・データ構造26内に示されたデータ・ブロックに対するホスト更新を、衝突キュー30内のキューに入れる。ストレージ・マネージャ10は、コピー・データ構造26内のデータをターゲット・ボリューム12へドレインする間に、書き込み性能に関する計量情報を集める。
一実施形態では、コピー・データ構造26は、一貫性グループまたはコピーするための他のグループ内の各ブロックに対するエントリを有するビットマップを備えることが可能であり、ここで一方のビット値は第2のストレージ16にコピーされていないブロックを示し、他方のビット値はコピーされたブロックを示す。ドレイン動作はドレイン期間中に実行され、この間に、ドレインされているデータ・ブロックへのホスト4の書き込みが衝突キュー30内のキューに入れられる。ストレージ・マネージャ10は、性能計量しきい値32を使用して、ドレイン動作のドレイン時間を延長するかどうかを決定し、そのドレイン時間中に、ドレインされているデータに対するホスト4の更新が待ち行列に入れられる。ドレイン時間を延長するかどうかの決定は、衝突から生じるホストの性能に与える影響の釣り合わせに基づく、すなわち、ドレイン動作を完了させることを目的に、まだドレインされていないデータへの書き込み要求の処理を遅らせることに基づくものとすることができる。ドレインされるデータは、一貫性グループの一部であるか、または、一貫性グループの一部ではない他のデータのグループ化を含むことができる。
図2は、(ドレインされているデータおよびドレインの対象でないデータに対する)いくつかの受信した書き込み要求50、完了した書き込み要求52、衝突54(すなわち、ターゲット・ボリューム12にコピーされないものとしてコピー・データ構造26内に示されたデータ・ブロックを対象とするホスト4の更新)、および書き込みを完了する平均時間56を含むことが可能な、ドレイン動作中に集められた計量情報28の実施形態を示す。計量情報50、52、54、および56は、ドレイン動作中に更新できる。ある諸実施形態では、計量情報28は、計量情報50、52、54、および56、ならびにドレイン動作中に集められた追加の計量情報のうちの、一部またはすべてを含むことができる。
一実施形態では、性能計量しきい値32は、集められた計量情報28内に示される実際の衝突比がしきい値を下回る場合、ドレイン動作が続行可能であるような、衝突対書き込み要求である衝突比しきい値を示すことができる。この場合、ホスト更新の衝突が少ないため、ドレイン動作はホストI/Oにほとんど影響を与えない。別の方法として、性能計量しきい値32は平均書き込み時間を示すことができる。こうしたケースでは、集められた計量情報28として示される書き込みを完了する時間が平均書き込み時間しきい値を下回る場合、ドレイン動作によって書き込み完了時間がしきい値を超えることがないため、ドレイン動作は続行可能である。
他の諸実施形態では、性能計量しきい値32は、実際の衝突がしきい値を下回り、残りのドレイン対象ブロック(blocks-to-drain)が少ない場合、ドレイン動作が続行可能であるような、衝突しきい値およびドレイン対象ブロックしきい値を示す。このケースでは、比較的少ない衝突が示すようにホストの影響は大きくなく、残りのドレイン対象ブロックが示すようにドレイン動作は完了に近い。
ある諸実施形態では、性能計量しきい値32は、ドレイン動作の持続時間が延長された場合にドレイン動作を続行するように、決定を動的に変更するための、様々なドレイン期間の終わりに適用する様々なしきい値を含むことができる。たとえば、ドレインを続行するかどうかを決定するためにドレイン処理中の後期に適用されるしきい値は、ドレイン処理中の初期に使用されるしきい値よりも、より低い衝突比を必要とするような厳しいものとすることができる。実際の性能計量しきい値は、テスト環境における実証的研究によって決定することができる。
第1のサーバ2および第2のサーバ18、ならびにホスト4は、ネットワーク34を介して通信可能である。ネットワーク34は、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、ワイド・エリア・ネットワーク(WAN)、ピアツーピア・ネットワーク、無線ネットワーク、アービトレート型ループ・ネットワーク(arbitrated loop network)などを含むことができる。サーバ2および18は、エンタープライズ・ストレージ・サーバ、ストレージ・コントローラ、ブレード・サーバ、汎用サーバ、デスクトップ・コンピュータ、ワークステーション、電話装置、携帯情報端末(PDA)など、または、接続されたストレージ・システム6a、6b、6cへのI/O要求を管理するために使用される他のデバイスを含むことができる。ストレージ6および16は、それぞれ、相互接続ハード・ディスク・ドライブ(たとえばDASD、RAID、JBODなどとして構成される)、磁気テープ、ソリッド・ステート・ストレージ・デバイス(たとえばEEPROM(電気的消去可能プログラム可能読み取り専用メモリ)、フラッシュ・メモリ、フラッシュ・ディスク、ストレージ・クラス・メモリ(SCM))、電子メモリなどの、当分野で知られた1つまたは複数のストレージ・デバイス内に実装されたストレージ媒体を備えることができる。サーバ2および18ならびにストレージ6および16は、分散型ストレージ環境または「クラウド」ストレージなどのネットワーク・ストレージ環境内で実装可能である。ストレージ・システム内に構成されるボリュームは、データのトラックまたはブロックの論理配置構成を備えることができる。
ストレージ・マネージャ10および20は、メモリ内にロードされた1つまたは複数のソフトウェア・プログラムとして実装し、サーバ6および18内のプロセッサによって実行することができる。代替実施形態では、ストレージ・マネージャ10および20は、特定用途向け集積回路(ASIC)などのハードウェア論理と共に、またはコンピュータ読み取り可能ストレージ媒体内のコードを実行するプログラム可能プロセッサとして、実装することができる。
図3および図4は、コピー・データ構造26内に示されたデータ・ブロックを第2のストレージ16へとドレインするために、ストレージ・マネージャ10によって実行される諸動作を示す。(ブロック100で)ドレイン動作を開始すると、ストレージ・マネージャ10は(ブロック102で)、第2のストレージ16にコピーするために、データ・ブロックを示すコピー・データ構造26を第1のストレージ6内に生成し、この構造は、ある時点で一貫しているデータの一貫性グループを第2のストレージ16へとコピーするために、一貫性グループ内のソース・ボリューム8で更新されたデータを備えるか、または、一貫性グループ内にないデータを備えることができる。ストレージ・マネージャ10は(ブロック104で)、第1のストレージ内にあるコピー・データ構造26内に示されたデータ・ブロックを、第1のドレイン期間に第2のストレージへとコピーするために、ドレイン動作を開始する。(ブロック106で)第1のドレイン期間が満了していない場合、ストレージ・マネージャ10は、コピー・データ構造26内に示されたデータ・ブロックを第2のストレージ16へとコピーするために、(ブロック108で)ドレイン動作を続行する。(ブロック106の肯定応答分岐から)第1のドレイン期間が満了した場合、ストレージ・マネージャ10は(ブロック110で)、第1の衝突比、第1の平均書き込み完了時間、第1の残りのドレイン対象ブロック、および第1の衝突数などの、集められた計量情報28に基づいて、第1の計量値を決定する。ストレージ・マネージャ10は(ブロック112で)、決定された衝突比と第1の衝突比しきい値とを比較すること、決定された平均書き込み要求完了時間と第1のしきい値とを比較すること、決定された残りのドレイン対象ブロックおよび衝突数としきい値とを比較することなどによって、決定された第1の計量値としきい値32内の第1の性能計量しきい値とを比較する。
この比較が(ブロック114で)、決定された衝突比が衝突しきい値を上回る、すなわち衝突が多すぎる場合などのように、動作を続行しない旨を示す場合、ストレージ・マネージャ10は(ブロック116で)ドレイン動作を終了し、第2のストレージ16へのコピー動作を実行しない。この場合、衝突、平均書き込み要求完了時間などの動作状況は、ホスト性能にかかる負担がドレイン動作を完了する利点を上回ることを示すことから、一貫性グループのコピーは実行されず、再試行されなければならないため、ドレイン動作は終了する。(ブロック114の肯定応答分岐から)この比較がドレイン動作の続行を示す場合、ストレージ・マネージャ10は(ブロック118で)、コピー・データ構造26内に示されたデータのドレインと、第2のドレイン期間についての計量情報28の収集とを続行する。第2のドレイン期間中、(ブロック120の否定応答分岐から)ドレイン動作が続行される。(ブロック120の肯定応答分岐から)第2のドレイン期間が満了した場合、ストレージ・マネージャ10は(ブロック122で)、集められた計量情報28に基づいて、第2の衝突比、第2の平均書き込み完了時間、第2の残りのドレイン対象ブロック、および第2の衝突数などの、第2の計量値を決定する。決定された第2の計量値は、(ブロック124で)第2の性能計量しきい値と比較される。一実施形態では、第2の性能計量しきい値は、より低い衝突比しきい値、より低い平均書き込み完了時間しきい値、より低い残りのドレイン対象ブロックしきい値、より少ない衝突しきい値数などのように、第1の性能計量しきい値よりも厳しいか、またはこれとは異なる場合があるため、結果として、測定される計量値は、さらに長い期間ドレイン動作を続行するために、ホストにかかる負担がさらに少ないことを示さなければならない。
図4に関して、決定された第2の衝突比が第2の衝突しきい値を上回る、すなわち衝突が多すぎる場合などのように、比較が(ブロック126で)動作を続行しない旨を示す場合、ストレージ・マネージャ10は、(ブロック128で)ドレイン動作を終了し、第2のストレージ16へのコピー動作は実行しない。比較が(ブロック126での肯定応答分岐から)ドレイン動作を続行する旨を示す場合、ストレージ・マネージャ10は、(ブロック130)で、コピー・データ構造26内に示されたデータのドレインと、第3のドレイン期間についての計量情報28の収集とを続行する。第3のドレイン期間中、(ブロック132の否定応答分岐から)ドレイン動作が続行される。(ブロック132の肯定応答から)第3のドレイン期間が満了した場合、ストレージ・マネージャ10は(ブロック134で)、第3の衝突比、第3の平均書き込み完了時間、第3の残りのドレイン対象ブロック、第3の衝突数などの、集められた計量情報28に基づいて、第3の計量値を決定する。決定された第3の計量値は(ブロック136で)、第2の(あるいは第3またはその他の)性能計量しきい値と比較される。この比較が(ブロック138で)、ドレイン動作の続行を示す、すなわち決定された計量値がしきい値を下回る場合、制御はブロック130に戻ってドレイン動作を続行する。これに対して、(ブロック138の否定応答分岐から)この比較がドレイン動作を続行しない旨を示す場合、制御はブロック128に戻ってドレイン動作を終了する。
一実施形態では、第3のドレイン期間が満了すると、完了されない場合であってもドレイン動作は終了することになる。代替実施形態では、ドレイン動作は、ブロック138での比較に基づいて、測定された性能計量がしきい値を下回り、ドレイン動作によってホストにかかる負担がドレイン動作を完了する目的を上回るほど大きくないことを示す場合、各ドレイン期間が満了した後、ドレイン動作の完了まで、反復を実行するために続行可能である。一実施形態では、第2のチェック後のすべてのチェックについて、第2の性能計量しきい値を連続して使用することができる。代替の諸実施形態では、後続のチェックに使用される性能計量しきい値を、その都度変更することができる。代替実施形態では、第1および第2の性能計量しきい値が同じ値を含む場合があり、その結果このしきい値は、ドレイン動作を続行するかどうかに関するすべてのチェックを通じて一定のままである。期間は数秒を含むことができる。
集められた計量情報が衝突の数および書き込み要求の数を含み、性能計量しきい値が衝突比しきい値、すなわち書き込み要求に対する衝突の比を含む実施形態では、測定された衝突比がブロック114、126、および138でのチェック時に使用されるしきい値を下回る場合、ドレイン動作は続行され、測定された衝突比が使用される1つまたは複数のしきい値を超え、ホスト性能に悪影響を与える、許容できないほど高い衝突比であることを示す場合、ドレイン動作は実行されない。ある諸実施形態では、図4のブロック126および138などの、第1のチェック後のチェック時に使用する第2の衝突比しきい値が、使用された第1の衝突比しきい値を下回るため、図4などのドレイン動作をさらに続行するためには、衝突およびホスト4の性能に与える影響がさらに少ないことが必要である。
他の諸実施形態では、集められた計量情報は、コピー・データ構造26内に示される、およびコピー・データ構造26内に示されない、データ・ブロックへの書き込みとして計算される平均書き込み完了時間を含む。測定された平均書き込み完了時間がブロック114、126、および138でのチェック時に使用されるしきい値を下回る場合、ドレイン動作は続行され、測定された書き込み完了時間が、使用された1つまたは複数のしきい値を上回り、書き込み完了時間が許容できないほど高く、ホスト4の性能に悪影響を与えることを示す場合、ドレイン動作は実行されない。ある諸実施形態では、図4のブロック126および138などでの第1のチェック後のチェック時に使用する第2の書き込み完了時間しきい値が、使用された第1の書き込み完了時間しきい値を下回るため、図4などのドレイン動作をさらに続行するためには、書き込み時間完了およびホスト4の性能に与える影響がさらに少ないことが必要である。
他の実施形態では、集められた計量情報は、コピー・データ構造26内に示されるような、衝突の数および残りのドレイン対象ブロックを含むことができる。こうしたケースでは、測定された衝突数が衝突数しきい値を下回り、残りのドレイン対象ブロックが、ブロック114、126、および138でのチェック時に使用されるドレイン対象ブロックしきい値を下回る場合、ドレイン動作は続行される。測定された衝突数およびドレイン対象ブロックの計量値がしきい値を超えた場合、しきい値を超える衝突数によって示されるように、ホスト性能に与える悪影響が許容できないほど高く、ドレイン動作は完了間近ではないため、すなわち残りのドレイン対象ブロックがしきい値を超えているため、ドレイン動作を続行する利点が限られていることを示し、ドレイン動作は実行されない。ある諸実施形態では、図4のブロック126および138などでの第1のチェック後のチェック時に使用される第2の衝突数およびドレイン対象ブロックのしきい値が、第1のしきい値を下回るため、さらにドレイン動作を続行するためには、図4などのように、衝突数によって示されるようなホスト性能に与える影響、および残りのドレイン対象ブロックによって示されるようなドレイン完了への近さが、以前よりもさらに少ないことが必要である。
図5は、第1のストレージ6内のデータ・ブロックに対する受信した書き込み要求を処理するために、ストレージ・マネージャ10によって実行される諸動作の実施形態を示す。(ブロック200で)書き込み要求を受信すると、ストレージ・マネージャ10は(ブロック202で)、書き込み要求が受信されたことおよび書き込み要求受信の開始時刻などの、受信した書き込み要求に関する計量情報28を記録する。(ブロック204で)第2のストレージ16へとコピーされるものとしてコピー・データ構造26内に示されたデータ・ブロックに向けて書き込み要求が送られた場合、ストレージ・マネージャ10は、(ブロック206で)受信したデータを第1のストレージ6内のデータ・ブロックへと書き込み、(ブロック208で)書き込み要求を完了する時間などの完了した書き込み要求に関する計量値を記録する。(ブロック204)で書き込み要求が、第2のストレージ16へとコピーされないものとして、すなわちドレインされないものとして、コピー・データ構造26内に示されたデータ・ブロックに対するものである場合、衝突が存在し、ストレージ・マネージャ10は(ブロック210で)受信した書き込み要求を衝突キュー30内のキューに入れ、(ブロック212で)衝突を示す計量値を記録する。
図6は、データ・ブロックが首尾よく第2のストレージ16へとコピーされた旨の第2のサーバ18からの肯定応答を処理するために、ストレージ・マネージャ10によって実行される諸動作の実施形態を示す。(ブロック250で)第2のストレージ16へのデータ・ブロックのコピー動作が完了した旨の肯定応答を受信すると、(ブロック251で)完了した書き込みがドレインされていない、すなわちコピー・データ構造26内に示されていない場合、制御は終了する。そうでない場合、(ブロック251で)完了した書き込みが、コピー・データ構造26内に示されたデータ・ブロックに対するものである場合、ストレージ・マネージャ10は、(ブロック252で)データ・ブロックが第2のストレージ16へコピーされた旨を示すように、コピー・データ構造26を更新する。(ブロック254で)衝突キュー30が、第2のストレージ16へコピーされたように肯定応答されたデータ・ブロックに関する更新を含む場合、そのキューに入れられた書き込み動作を完了することができる。こうしたケースでは、ストレージ・マネージャ10は(ブロック256で)キューに入れられた書き込み要求を衝突キュー30から除去し、(ブロック258で)キューから取り除かれた書き込み要求の受信データを、第1のストレージ内のデータ・ブロックへと書き込む。完了時間などの完了された書き込みに関する計量値は(ブロック260で)記録される。完了された書き込みが、(ブロック254の否定応答分岐から)衝突キュー30内の書き込み要求を対象とするブロックに関するものでない場合、または、キューに入れられた書き込みが(ブロック260から)適用された後、ストレージ・マネージャ10は、(ブロック262で)コピー・データ構造26が、すべてのブロックが第2のストレージ16へコピーされた旨を示すかどうかを決定する。コピーされた旨を示す場合、図3および図4で実行されたすべてのドレイン動作は(ブロック264で)終了し、制御は終了する。(ブロック262で)ドレイン動作が依然として進行中の場合、すなわちすべてのブロックがまだストレージにコピーされていない場合、制御は終了する。
説明された諸実施形態では、衝突対書き込み要求の衝突比、書き込み要求の完了時間、書き込み要求の数、および残りのドレイン対象ブロックを考慮に入れるように、ドレイン時間はドレイン動作中に調整可能である。このようにして、測定された性能計量とホスト性能影響を示す性能計量しきい値とを比較することによって示されるように、現在のドレイン動作がホストの性能に極度に影響を与えない場合、ドレイン動作は続行可能である。そうでなければ、決定されたホスト性能への影響が許容できないものである場合、ドレイン動作は終了可能である。さらに、説明された諸実施形態は、ドレイン対象ブロックの数が少ない場合、ドレインを首尾よく完了する利点の方が、ドレイン用に残っている比較的少ない数のブロックを完了するために必要な比較的短い時間にホスト性能に与える衝突の影響よりも上回る可能性があることなどのように、ドレイン動作において残された時間を要素として組み込むことが可能である。
追加の実施形態についての詳細
説明された諸動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するための、標準的なプログラミングあるいはエンジニアリングまたはその両方の技法を使用する、方法、装置、またはコンピュータ・プログラム製品として実装可能である。したがって、諸実施形態の諸態様は、全体としてハードウェアの実施形態、全体としてソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形を取ることが可能であり、本明細書ではすべて全体として「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、諸実施形態の諸態様は、その上にコンピュータ読み取り可能プログラム・コードが具体化された、1つまたは複数のコンピュータ読み取り可能媒体内で具体化されるコンピュータ・プログラム製品の形を取ることができる。
1つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせを使用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体の、システム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、これらに限定されない。コンピュータ読み取り可能ストレージ媒体のより特定の例(網羅的リストではない)は、1つまたは複数の線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り可能メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはそれらの任意の好適な組み合わせを含むことになる。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形媒体とすることができる。
コンピュータ読み取り可能信号媒体は、たとえば、ベースバンド内に、または搬送波の一部として、内部にコンピュータ読み取り可能プログラム・コードが具体化された伝搬型データ信号を含むことができる。こうした伝搬型信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むが、これらに限定されない、多種多彩な形のうちのいずれかの形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体ではなく、命令実行システム、装置、またはデバイスによって、またはそれらに関して使用するためのプログラムを、通信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、またはそれらの任意の好適な組み合わせを含むが、これらに限定されない、任意の適切な媒体を使用して伝送可能である。
本発明の諸態様に関する諸動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語のいずれかの組み合わせで作成可能である。プログラム・コードは、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは、全体としてリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続可能であるか、あるいは、(たとえばインターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続可能である。
本発明の諸態様について、本発明の諸実施形態に従った方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方に関して、以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、ならびに流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることを理解されよう。コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実施するための手段を作成するように、これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途向けコンピュータ、またはマシンを作成するための他のプログラム可能データ処理装置のプロセッサに提供可能である。
コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実施する命令を含む製品を製造するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに、特定の様式で機能するように指示することが可能な、これらのコンピュータ・プログラム命令を、コンピュータ読み取り可能媒体内に格納することも可能である。
コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードし、一連の動作ステップを、コンピュータ、他のプログラム可能装置、または他のデバイスに実行させて、コンピュータまたは他のプログラム可能装置上で実行する命令が、流れ図あるいはブロック図またはその両方のブロックに指定された機能/動作を実施するためのプロセスを提供するように、コンピュータ実施プロセスを生成することも可能である。
ある諸実施形態では、図1のシステムをクラウド・コンピューティング環境内のクラウド構成要素部分として実装することができる。クラウド・コンピューティング環境では、クラウド・コンピューティングの送達に関与するハードウェアおよびソフトウェア構成要素のシステム・アーキテクチャが、インターネットなどのネットワークを介して互いに通信する複数のクラウド構成要素を備えることができる。たとえばある諸実施形態では、図1の第1のサーバは、ホストおよびクライアントにネットワーク化されたクラウド内でのデータ・ミラーリング・サービスを提供することができる。
図7は、図1のサーバ2および18ならびにホスト4で実装可能な、コンピュータ・アーキテクチャ300の実施形態を示す。アーキテクチャ300は、プロセッサ302(たとえばマイクロプロセッサ)、メモリ304(たとえば揮発性メモリ・デバイス)、およびストレージ306(たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの、不揮発性ストレージ)を含むことができる。ストレージ306は、内部ストレージ・デバイス、あるいは、接続されるかまたはネットワーク・アクセス可能なストレージを備えることができる。ストレージ306内の、オペレーティング・システム308およびストレージ・マネージャ10、20を含むプログラムは、メモリ304内にロードされ、プロセッサ302によって実行される。メモリ304は、キャッシュ20、22、衝突キュー30、性能計量しきい値32、集められた計量情報28、およびコピー・データ構造26を、さらに含むことができる。アーキテクチャは、ネットワーク30と通信可能なネットワーク・カード310をさらに含む。入力デバイス312は、ユーザ入力をプロセッサ302へ提供するために使用され、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチセンサー式ディスプレイ画面、または当分野で知られた任意の他の起動または入力機構を含むことができる。出力デバイス314は、プロセッサ302、または、ディスプレイ・モニタ、プリンタ、ストレージなどの他の構成要素から伝送された情報をレンダリングすることができる。
「ある実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「その諸実施形態」、「1つまたは複数の実施形態」、「何らかの諸実施形態」、および「一実施形態」という用語は、特に明示的に指定されていない限り、「本発明の1つまたは複数の(ただしすべてではない)実施形態」を意味する。
「含む」、「備える」、「有する」、およびそれらの変形の用語は、特に明示的に指定されていない限り、「含むが限定されない」ことを意味する。
アイテムの列挙されたリストは、特に明示的に指定されていない限り、そのアイテムのいずれかまたはすべてが相互に排他的であることを示唆するものではない。
「a」、「an」、および「the」は、特に明示的に指定されていない限り、「1つまたは複数」を意味する。
互いに通信しているデバイスは、特に明示的に指定されていない限り、互いに持続的に通信しているものとは限らない。加えて、互いに通信しているデバイスは、直接的に、あるいは1つまたは複数の媒介を通じて間接的に、通信することができる。
互いに通信しているいくつかの構成要素を備えた実施形態の説明は、こうした構成要素がすべて必要であることを示唆するものではない。反対に、様々なオプションの構成要素について、本発明の多種多様の可能な諸実施形態を例示するために説明される。
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどについて、ある発生順序で説明することができるが、こうしたプロセス、方法、およびアルゴリズムは、代替順序で動作するようにも構成可能である。言い換えれば、説明可能な諸ステップの任意のシーケンスまたは順序は、諸ステップがその順序で実行される旨の要件を必ずしも示すものではない。本明細書で説明されるプロセスの諸ステップは、実質的な任意の他の順序で実行可能である。さらに、いくつかのステップは同時に実行可能である。
本明細書で単一のデバイスまたは製品について説明される場合、単一のデバイス/製品の代わりに複数のデバイス/製品(それらが協働するか否かにかかわらず)が使用可能であることが、容易に明らかとなろう。同様に、本明細書で複数のデバイスまたは製品(それらが協働するか否かにかかわらず)について説明される場合、複数のデバイスまたは製品の代わりに単一のデバイス/製品が使用可能であること、あるいは、示された数のデバイスまたはプログラムの代わりに異なる数のデバイス/製品が使用可能であることが、容易に明らかとなろう。デバイスの機能あるいは特徴またはその両方は、そうした機能/特徴を有するものとして明示的に説明されていない1つまたは複数の他のデバイスによって、別の方法として具体化することができる。したがって、本発明の他の諸実施形態は、そのデバイス自体を必ずしも含む必要はない。
図3、図4、図5、および図6に示された諸動作は、ある順序で発生するあるイベントを示す。代替の諸実施形態では、ある諸動作を異なる順序で実行する、修正する、または除去することが可能である。さらに、前述の論理に諸ステップを追加し、依然として前述の諸実施形態に従うものとすることが可能である。さらに、本明細書で説明される諸動作は順次実行可能であるか、またはある諸動作を並行して処理することが可能である。さらに、諸動作を単一の処理ユニットによって、または分散型処理ユニットによって実行することが可能である。
以上、本発明の様々な実施形態について、例示および記述の目的で説明してきた。これは、網羅的なものである、あるいは本発明を開示された精密な形に限定するものであるとは、意図されていない。前述の教示に鑑みて、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付の特許請求の範囲によって、限定されるものであることが意図される。前述の仕様、例示、およびデータは、本発明の構成の製造および使用についての完全な説明を提供している。本発明の多くの実施形態が本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は、以下に添付の特許請求の範囲内に存するものである。
2 第1のサーバ
4 ホスト
6 第1のストレージ
8 ソース・ボリューム
10 ストレージ・マネージャ
12 ターゲット・ボリューム
16 第2のストレージ
18 第2のサーバ
20 ストレージ・マネージャ
22 キャッシュ
24 キャッシュ
26 コピー・データ構造
28 集められた計量情報
30 衝突キュー
32 性能計量しきい値
34 ネットワーク

Claims (23)

  1. 第1のストレージから第2のストレージへとデータをコピーするためのコンピュータ・プログラムであって、コンピュータに実行させる動作が、
    前記第2のストレージへとコピーするために、前記第1のストレージ内のデータ・ブロックを示すデータ構造を生成する動作と、
    ドレイン期間に前記第1のストレージに示された前記データ・ブロックを前記第2のストレージにコピーするためのドレイン動作を開始する動作と、
    前記データ構造内に示された前記データ・ブロックへの書き込み要求を、前記ドレイン期間中、キューに入れる動作であって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れる動作と、
    前記ドレイン期間中に、前記第1のストレージ内のデータ・ブロックに対して実行される前記書き込みに基づいた計量情報を集める動作と、
    前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定する動作と、
    を含む、コンピュータ・プログラム。
  2. 前記動作が、
    前記データ構造内に示されたデータ・ブロックが、前記第1のストレージから前記第2のストレージへの前記データ・ブロックのコピーに応答して、前記第2のストレージへコピーされた旨を示すように、前記データ構造を更新する動作と、
    受信した書き込み要求が、前記第2のストレージへコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られるかどうかを決定する動作であって、前記第2のストレージへコピーされないものとして前記データ構造内に示された前記データ・ブロックに対する書き込み要求はキューに入れられる、決定する動作と、
    前記データ構造が、前記第2のストレージへコピーされないものとして前記データ・ブロックを示さない旨を決定する動作に応答して、前記データ・ブロックへの前記書き込み要求を実行する動作と、
    をさらに含む、請求項1に記載のコンピュータ・プログラム。
  3. 前記集められた計量情報から前記ドレイン動作を続行するかどうかを決定する動作が、
    性能計量しきい値を提供する動作と、
    前記集められた計量情報に基づいて計量値を決定する動作と、
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較する動作と、
    を含む、請求項1に記載のコンピュータ・プログラム。
  4. 前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、
    前記第2のドレイン期間中、計量情報の収集を続行する動作と、
    前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定する動作と、
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較する動作と、
    をさらに含む、請求項3に記載のコンピュータ・プログラム。
  5. 前記ドレイン動作が完了し、結果として前記データ構造内に示されたすべてのデータ・ブロックが前記第2のストレージにコピーされるまで、
    前記第2の計量値またはその後計算された追加の計量値と前記第2の性能計量との比較に応答した、前記ドレインの続行決定に応答して、追加のドレイン期間に前記ドレイン動作を続行する動作と、
    前記追加のドレイン期間に計量情報の収集を続行する動作と、
    前記データ構造内に示されたすべてのデータ・ブロックが前記第2のストレージにコピーされる前の、前記追加のドレイン期間の満了に応答して、前記集められた計量情報に基づいて追加の計量値を決定する動作と、
    前記決定された追加の計量値が前記第2の性能計量しきい値を下回るかどうかを決定する動作と、
    前記追加の期間に前記ドレイン動作の続行に戻る動作と、
    の反復を実行する、請求項4に記載のコンピュータ・プログラム。
  6. 前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項3に記載のコンピュータ・プログラム。
  7. 前記衝突比しきい値が第1の衝突比しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された衝突比が第1の衝突比を含み、前記ドレイン動作の続行に応答して前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、
    受信した書き込み要求と、前記第2のドレイン期間中に前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求とを示す、計量情報の収集を続行する動作と、
    前記第2のドレイン期間満了に応答して、前記集められた計量情報に基づいて第2の衝突比を決定する動作と、
    前記決定された第2の衝突比が第2の衝突比しきい値を下回るかどうかを決定する動作と、
    前記決定された第2の衝突比が前記第2の衝突比を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、
    をさらに含む、請求項6に記載のコンピュータ・プログラム。
  8. 前記第2の衝突比しきい値が前記第1の衝突比しきい値を下回る、請求項7に記載のコンピュータ・プログラム。
  9. 前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、前記動作が、
    前記決定された平均書き込み時間が前記書き込み時間しきい値を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、
    前記決定された平均書き込み時間が前記書き込み時間しきい値を上回る旨の決定に応答して、前記ドレイン動作を終了する動作と、
    をさらに含む、請求項3に記載のコンピュータ・プログラム。
  10. 前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、前記動作が、
    決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行する動作をさらに含む、
    請求項3に記載のコンピュータ・プログラム。
  11. 前記データ構造内に示された前記データ・ブロックが、ある時点で一貫した前記第1のストレージ内の更新されたデータの一貫性グループの一部であり、前記動作が、
    前記決定された計量値と前記性能計量しきい値との比較に応答して、
    前記ドレイン動作を終了する動作と、
    前記データ構造内に示されたデータ・ブロックの、前記第1のストレージから前記第2のストレージへの前記コピー動作を実行しない動作と、
    を実行することによって、前記ドレイン動作を続行しないことを示す動作をさらに含む、
    請求項3に記載のコンピュータ・プログラム。
  12. プロセッサと、
    動作を実行するために前記プロセッサによって実行されるコードを有する、コンピュータ読み取り可能ストレージ媒体と、
    を備える、第1のストレージおよび第2のストレージと通信するシステムであって、前記動作が、
    前記第2のストレージへとコピーするために、前記第1のストレージ内のデータ・ブロックを示すデータ構造を生成する動作と、
    ドレイン期間に前記第1のストレージに示された前記データ・ブロックを前記第2のストレージにコピーするためのドレイン動作を開始する動作と、
    前記データ構造内に示された前記データ・ブロックへの書き込み要求を、前記ドレイン期間中、キューに入れる動作であって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れる動作と、
    前記ドレイン期間中に、前記第1のストレージ内のデータ・ブロックに対して実行される前記書き込みに基づいた計量情報を集める動作と、
    前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定する動作と、
    を含む、システム。
  13. 前記集められた計量情報から、前記ドレイン動作を続行するかどうかを決定する動作が、
    性能計量しきい値を提供する動作と、
    前記集められた計量情報に基づいて計量値を決定する動作と、
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較する動作と、
    を含む、請求項12に記載のシステム。
  14. 前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、
    前記第2のドレイン期間中、計量情報の収集を続行する動作と、
    前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定する動作と、
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較する動作と、
    をさらに含む、請求項13に記載のシステム。
  15. 前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項13に記載のシステム。
  16. 前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、前記動作が、
    前記決定された平均書き込み時間が前記書き込み時間しきい値を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、
    前記決定された平均書き込み時間が前記書き込み時間しきい値を上回る旨の決定に応答して、前記ドレイン動作を終了する動作と、
    をさらに含む、請求項13に記載のシステム。
  17. 前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、前記動作が、
    決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行する動作をさらに含む、
    請求項13に記載のシステム。
  18. 前記第2のストレージへとコピーするために、前記第1のストレージ内のデータ・ブロックを示すデータ構造を生成すること、
    ドレイン期間に前記第1のストレージに示された前記データ・ブロックを前記第2のストレージにコピーするためのドレイン動作を開始すること、
    前記データ構造内に示された前記データ・ブロックへの書き込み要求を、前記ドレイン期間中、キューに入れることであって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れること、
    前記ドレイン期間中に、前記第1のストレージ内のデータ・ブロックに対して実行される前記書き込みに基づいた計量情報を集めること、および
    前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定すること、
    を含む、方法。
  19. 前記集められた計量情報から前記ドレイン動作を続行するかどうかを決定することが、
    性能計量しきい値を提供すること、
    前記集められた計量情報に基づいて計量値を決定すること、および
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較すること、
    を含む、請求項18に記載の方法。
  20. 前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、
    前記第2のドレイン期間中、計量情報の収集を続行すること、
    前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定すること、および
    前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較すること、
    をさらに含む、請求項19に記載の方法。
  21. 前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項19に記載の方法。
  22. 前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、
    前記決定された平均書き込み時間が前記書き込み時間しきい値を下回る旨の決定に応答して、前記ドレイン動作を続行すること、および
    前記決定された平均書き込み時間が前記書き込み時間しきい値を上回る旨の決定に応答して、前記ドレイン動作を終了すること、
    をさらに含む、請求項19に記載の方法。
  23. 前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータ・ブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、
    決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行することをさらに含む、
    請求項19に記載の方法。
JP2011245070A 2010-11-17 2011-11-09 第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するためのコンピュータ・プログラム、システム、および方法(第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かの決定) Expired - Fee Related JP5818640B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/948652 2010-11-17
US12/948,652 US8838920B2 (en) 2010-11-17 2010-11-17 Determining whether to extend a drain time to copy data blocks from a first storage to a second storage

Publications (2)

Publication Number Publication Date
JP2012108906A JP2012108906A (ja) 2012-06-07
JP5818640B2 true JP5818640B2 (ja) 2015-11-18

Family

ID=46048874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011245070A Expired - Fee Related JP5818640B2 (ja) 2010-11-17 2011-11-09 第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するためのコンピュータ・プログラム、システム、および方法(第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かの決定)

Country Status (2)

Country Link
US (2) US8838920B2 (ja)
JP (1) JP5818640B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838920B2 (en) * 2010-11-17 2014-09-16 International Business Machines Corporation Determining whether to extend a drain time to copy data blocks from a first storage to a second storage
US9921934B1 (en) * 2011-10-14 2018-03-20 Amazon Techologies, Inc. Storage process metrics
US9590886B2 (en) * 2013-11-01 2017-03-07 Commvault Systems, Inc. Systems and methods for differential health checking of an information management system
WO2015151258A1 (ja) * 2014-04-03 2015-10-08 株式会社日立製作所 非同期リモートコピーを行うリモートコピーシステムを含んだ計算機システムの管理システム及び管理方法
US20170344283A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Data access between computing nodes
US10223210B2 (en) 2017-07-29 2019-03-05 International Business Machines Corporation Asynchronous local and remote generation of consistent point-in-time snap copies in consistency groups
US11379335B2 (en) * 2017-10-05 2022-07-05 International Business Machines Corporation Self-reporting remote copy performance on a consistency group

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3172007B2 (ja) * 1993-09-17 2001-06-04 富士通株式会社 ディスク複写処理方式
JP2003140946A (ja) * 2001-11-02 2003-05-16 Hitachi Ltd 記憶装置
US7171583B2 (en) 2003-12-10 2007-01-30 International Business Machines Corporation For PPRC backup systems
JP2005275537A (ja) * 2004-03-23 2005-10-06 Fujitsu Ltd コピー制御装置および方法
JP2006134204A (ja) 2004-11-09 2006-05-25 Hitachi Ltd リモートコピーシステムおよびその制御方法
US7647357B2 (en) * 2004-11-12 2010-01-12 International Business Machines Corporation Data transfer management in consistency group formation
US7660955B2 (en) * 2005-12-01 2010-02-09 International Business Machines Corporation Node polling in consistency group formation
JP4844736B2 (ja) * 2006-08-29 2011-12-28 日本電気株式会社 ディスクアレイシステムのデータ同期方法及びコンピュータプログラム
JP2008250695A (ja) * 2007-03-30 2008-10-16 Nec Corp ディスクアレイコントローラ及びこれを備えたディスクアレイシステム
US8554737B2 (en) * 2010-09-28 2013-10-08 International Business Machines Corporation Dynamic consistency group formation and systems using the same
US8838920B2 (en) * 2010-11-17 2014-09-16 International Business Machines Corporation Determining whether to extend a drain time to copy data blocks from a first storage to a second storage

Also Published As

Publication number Publication date
US8838921B2 (en) 2014-09-16
US8838920B2 (en) 2014-09-16
US20120254568A1 (en) 2012-10-04
JP2012108906A (ja) 2012-06-07
US20120124308A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
JP5818640B2 (ja) 第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かを決定するためのコンピュータ・プログラム、システム、および方法(第1のストレージから第2のストレージへとデータ・ブロックをコピーするためにドレイン時間を延長するか否かの決定)
US8055865B2 (en) Managing write requests to data sets in a primary volume subject to being copied to a secondary volume
US8548949B2 (en) Methods for dynamic consistency group formation
US7673173B2 (en) System and program for transmitting input/output requests from a first controller to a second controller
US7822892B2 (en) Managing the copying of writes from primary storages to secondary storages across different networks
US7761732B2 (en) Data protection in storage systems
JP5756394B2 (ja) 順次バックアップ・デバイス内に格納されたバックアップ・オブジェクトからファイルの復元セットを復元するためのコンピュータ・プログラム、システム、および方法
US7523275B2 (en) Method, system, and program for maintaining a copy relationship between primary volumes and corresponding secondary volumes
US9317383B2 (en) Communication of conditions at a primary storage controller to a host
CN108509156A (zh) 数据读取方法、装置、设备及系统
US9576061B2 (en) Information processing system and data update control method
US7904682B2 (en) Copying writes from primary storages to secondary storages across different networks
JPWO2014103037A1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US11176017B2 (en) Measurement of simulated mirroring in a data storage system
US8478954B2 (en) Prioritizing subgroups in a consistency group
US9483371B2 (en) Storage system, control apparatus, computer product, and control method
JP2018055394A (ja) 情報処理装置、及びプログラム
EP3570165A1 (en) Method and system for enabling data backups for virtual machines reliant on raw device mapping disks
US9418100B1 (en) System and method for storage management
KR20170116351A (ko) 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms
WO2011000701A1 (en) Disaster recovery for databases

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150929

R150 Certificate of patent or registration of utility model

Ref document number: 5818640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees