第1のストレージから第2のストレージへとデータをコピーするためのコンピュータプログラムであって、動作を実行するコンピュータ読み取り可能プログラムコードが内部に具体化されたコンピュータ読み取り可能ストレージ媒体を備え、前記動作が、前記第2のストレージへとコピーするために、前記第1のストレージ内のデータブロックを示すデータ構造を生成する動作と、ドレイン期間に前記第1のストレージに示された前記データブロックを前記第2のストレージにコピーするためのドレイン動作を開始する動作と、前記データ構造内に示された前記データブロックへの書き込み要求を、前記ドレイン期間中、キューに入れる動作であって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れる動作と、前記ドレイン期間中に、前記第1のストレージ内のデータブロックに対して実行される前記書き込みに基づいた計量情報を集める動作と、前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定する動作と、を含む、コンピュータプログラム。前記動作が、前記データ構造内に示されたデータブロックが、前記第1のストレージから前記第2のストレージへの前記データブロックのコピーに応答して、前記第2のストレージへコピーされた旨を示すように、前記データ構造を更新する動作と、受信した書き込み要求が、前記第2のストレージへコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られるかどうかを決定する動作であって、前記第2のストレージへコピーされないものとして前記データ構造内に示された前記データブロックに対する書き込み要求はキューに入れられる、決定する動作と、前記データ構造が、前記第2のストレージへコピーされないものとして前記データブロックを示さない旨を決定する動作に応答して、前記データブロックへの前記書き込み要求を実行する動作と、をさらに含む、請求項1に記載のコンピュータプログラム。前記集められた計量情報から前記ドレイン動作を続行するかどうかを決定する動作が、性能計量しきい値を提供する動作と、前記集められた計量情報に基づいて計量値を決定する動作と、前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較する動作と、を含む、請求項1に記載のコンピュータプログラム。前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、前記第2のドレイン期間中、計量情報の収集を続行する動作と、前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定する動作と、前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較する動作と、をさらに含む、請求項3に記載のコンピュータプログラム。前記ドレイン動作が完了し、結果として前記データ構造内に示されたすべてのデータブロックが前記第2のストレージにコピーされるまで、前記第2の計量値またはその後計算された追加の計量値と前記第2の性能計量との比較に応答した、前記ドレインの続行決定に応答して、追加のドレイン期間に前記ドレイン動作を続行する動作と、前記追加のドレイン期間に計量情報の収集を続行する動作と、前記データ構造内に示されたすべてのデータブロックが前記第2のストレージにコピーされる前の、前記追加のドレイン期間の満了に応答して、前記集められた計量情報に基づいて追加の計量値を決定する動作と、前記決定された追加の計量値が前記第2の性能計量しきい値を下回るかどうかを決定する動作と、前記追加の期間に前記ドレイン動作の続行に戻る動作と、の反復を実行する、請求項4に記載のコンピュータプログラム。前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項3に記載のコンピュータプログラム。前記衝突比しきい値が第1の衝突比しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された衝突比が第1の衝突比を含み、前記ドレイン動作の続行に応答して前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、受信した書き込み要求と、前記第2のドレイン期間中に前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求とを示す、計量情報の収集を続行する動作と、前記第2のドレイン期間満了に応答して、前記集められた計量情報に基づいて第2の衝突比を決定する動作と、前記決定された第2の衝突比が第2の衝突比しきい値を下回るかどうかを決定する動作と、前記決定された第2の衝突比が前記第2の衝突比を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、をさらに含む、請求項6に記載のコンピュータプログラム。前記第2の衝突比しきい値が前記第1の衝突比しきい値を下回る、請求項7に記載のコンピュータプログラム。前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、前記動作が、前記決定された平均書き込み時間が前記衝突比を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、前記決定された平均書き込み時間が前記衝突比を上回る旨の決定に応答して、前記ドレイン動作を終了する動作と、をさらに含む、請求項3に記載のコンピュータプログラム。前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、前記動作が、決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行する動作をさらに含む、請求項3に記載のコンピュータプログラム。前記データ構造内に示された前記データブロックが、ある時点で一貫した前記第1のストレージ内の更新されたデータの一貫性グループの一部であり、前記動作が、前記決定された計量値と前記性能計量しきい値との比較に応答して、前記ドレイン動作を終了する動作と、前記データ構造内に示されたデータブロックの、前記第1のストレージから前記第2のストレージへの前記コピー動作を実行しない動作と、を実行することによって、前記ドレイン動作を続行しないことを示す動作をさらに含む、請求項3に記載のコンピュータプログラム。プロセッサと、動作を実行するために前記プロセッサによって実行されるコードを有する、コンピュータ読み取り可能ストレージ媒体と、を備える、第1のストレージおよび第2のストレージと通信するシステムであって、前記動作が、前記第2のストレージへとコピーするために、前記第1のストレージ内のデータブロックを示すデータ構造を生成する動作と、ドレイン期間に前記第1のストレージに示された前記データブロックを前記第2のストレージにコピーするためのドレイン動作を開始する動作と、前記データ構造内に示された前記データブロックへの書き込み要求を、前記ドレイン期間中、キューに入れる動作であって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れる動作と、前記ドレイン期間中に、前記第1のストレージ内のデータブロックに対して実行される前記書き込みに基づいた計量情報を集める動作と、前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定する動作と、を含む、システム。前記集められた計量情報から、前記ドレイン動作を続行するかどうかを決定する動作が、性能計量しきい値を提供する動作と、前記集められた計量情報に基づいて計量値を決定する動作と、前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較する動作と、を含む、請求項12に記載のシステム。前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、前記動作が、前記第2のドレイン期間中、計量情報の収集を続行する動作と、前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定する動作と、前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較する動作と、をさらに含む、請求項13に記載のシステム。前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項13に記載のシステム。前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、前記動作が、前記決定された平均書き込み時間が前記衝突比を下回る旨の決定に応答して、前記ドレイン動作を続行する動作と、前記決定された平均書き込み時間が前記衝突比を上回る旨の決定に応答して、前記ドレイン動作を終了する動作と、をさらに含む、請求項13に記載のシステム。前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、前記動作が、決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行する動作をさらに含む、請求項13に記載のシステム。前記第2のストレージへとコピーするために、前記第1のストレージ内のデータブロックを示すデータ構造を生成すること、ドレイン期間に前記第1のストレージに示された前記データブロックを前記第2のストレージにコピーするためのドレイン動作を開始すること、前記データ構造内に示された前記データブロックへの書き込み要求を、前記ドレイン期間中、キューに入れることであって、前記キューに入れられた書き込み要求は、キューに入れられている間は完了しない、キューに入れること、前記ドレイン期間中に、前記第1のストレージ内のデータブロックに対して実行される前記書き込みに基づいた計量情報を集めること、および前記ドレイン期間の満了に応答して、前記集められた計量情報から前記ドレイン動作を続行するかまたはドレイン動作を終了するかを決定すること、を含む、方法。前記集められた計量情報から前記ドレイン動作を続行するかどうかを決定することが、性能計量しきい値を提供すること、前記集められた計量情報に基づいて計量値を決定すること、および前記ドレイン動作を続行するかどうかを決定するために、前記決定された計量値と前記性能計量しきい値とを比較すること、を含む、請求項18に記載の方法。前記性能計量しきい値が第1の性能計量しきい値を含み、前記ドレイン期間が第1のドレイン期間を含み、前記決定された計量値が第1の計量値を含み、前記ドレイン動作の続行に応答して、前記ドレイン動作が第2のドレイン期間に続行され、前記第2のドレイン期間中、計量情報の収集を続行すること、前記第2のドレイン期間の満了に応答して、前記集められた計量情報に基づいて第2の計量値を決定すること、および前記ドレイン動作を続行するかどうかを決定するために、前記決定された第2の計量値と第2の性能計量とを比較すること、をさらに含む、請求項19に記載の方法。前記集められた計量情報が受信した要求および衝突を示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突比しきい値を示し、前記決定された計量値が、前記集められた計量情報内に示された衝突の数と受信した書き込み要求の数との決定された衝突比を含み、さらに、前記決定された衝突比が前記衝突比しきい値を下回る旨の決定に応答して前記ドレイン動作が続行される、請求項19に記載の方法。前記集められた計量情報が受信した書き込み要求を完了する時間を示し、前記性能計量しきい値が書き込み時間しきい値を示し、前記決定された計量値が、前記集められた計量情報に基づいて決定された平均書き込み時間を含み、前記決定された平均書き込み時間が前記衝突比を下回る旨の決定に応答して、前記ドレイン動作を続行すること、および前記決定された平均書き込み時間が前記衝突比を上回る旨の決定に応答して、前記ドレイン動作を終了すること、をさらに含む、請求項19に記載の方法。前記集められた計量情報が、前記第2のストレージにまだコピーされていない前記データ構造内に示されたブロックの数と衝突の数とを示し、前記衝突が、前記第2のストレージにコピーされないものとして前記データ構造内に示されたデータブロックに向けて送られた書き込み要求を含み、前記性能計量しきい値が衝突数しきい値およびドレイン対象ブロックしきい値を示し、前記決定された計量値が、決定されたドレイン対象ブロックおよび決定された衝突数を含み、決定されたドレイン対象ブロックがドレイン対象ブロックしきい値を下回ること、および前記決定された衝突数が前記衝突数しきい値を下回ることの決定に応答して、前記ドレイン動作を続行することをさらに含む、請求項19に記載の方法。当分野では、データを第1のストレージから第2のストレージへとドレインするための、改良された技法が求められている。データブロックを第1のストレージから第2のストレージへとコピーするためにドレイン時間を延長するか否かを決定するための、コンピュータプログラム製品、システム、および方法が提供される。第2のストレージへとピーするために、第1のストレージ内のデータブロックを示すデータ構造が生成される。ドレイン期間に第1のストレージに示されたデータブロックを第2のストレージにコピーするためのドレイン動作が開始される。データ構造内に示されたデータブロックへの書き込み要求は、ドレイン期間中、キューに入れられ、キューに入れられた書き込み要求は、キューに入れられている間は完了しない。ドレイン期間中に、第1のストレージ内のデータブロックに対して実行される書き込みに基づいた計量情報metricinformationが集められ、ドレイン期間の満了に応答して、集められた計量情報からドレイン動作を続行するかまたはドレイン動作を終了するかが決定される。図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は、実際の衝突がしきい値を下回り、残りのドレイン対象ブロックblockstodrainが少ない場合、ドレイン動作が続行可能であるような、衝突しきい値およびドレイン対象ブロックしきい値を示す。このケースでは、比較的少ない衝突が示すようにホストの影響は大きくなく、残りのドレイン対象ブロックが示すようにドレイン動作は完了に近い。ある諸実施形態では、性能計量しきい値32は、ドレイン動作の持続時間が延長された場合にドレイン動作を続行するように、決定を動的に変更するための、様々なドレイン期間の終わりに適用する様々なしきい値を含むことができる。たとえば、ドレインを続行するかどうかを決定するためにドレイン処理中の後期に適用されるしきい値は、ドレイン処理中の初期に使用されるしきい値よりも、より低い衝突比を必要とするような厳しいものとすることができる。実際の性能計量しきい値は、テスト環境における実証的研究によって決定することができる。第1のサーバ2および第2のサーバ18、ならびにホスト4は、ネットワーク34を介して通信可能である。ネットワーク34は、ストレージエリアネットワークSAN、ローカルエリアネットワークLAN、イントラネット、インターネット、ワイドエリアネットワークWAN、ピアツーピアネットワーク、無線ネットワーク、アービトレート型ループネットワークarbitratedloopnetworkなどを含むことができる。サーバ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など、またはそれらの任意の好適な組み合わせを含むが、これらに限定されない、任意の適切な媒体を使用して伝送可能である。本発明の諸態様に関する諸動作を実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、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に示された諸動作は、ある順序で発生するあるイベントを示す。代替の諸実施形態では、ある諸動作を異なる順序で実行する、修正する、または除去することが可能である。さらに、前述の論理に諸ステップを追加し、依然として前述の諸実施形態に従うものとすることが可能である。さらに、本明細書で説明される諸動作は順次実行可能であるか、またはある諸動作を並行して処理することが可能である。さらに、諸動作を単一の処理ユニットによって、または分散型処理ユニットによって実行することが可能である。以上、本発明の様々な実施形態について、例示および記述の目的で説明してきた。これは、網羅的なものである、あるいは本発明を開示された精密な形に限定するものであるとは、意図されていない。前述の教示に鑑みて、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付の特許請求の範囲によって、限定されるものであることが意図される。前述の仕様、例示、およびデータは、本発明の構成の製造および使用についての完全な説明を提供している。本発明の多くの実施形態が本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は、以下に添付の特許請求の範囲内に存するものである。