(57)【要約】【課題】ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するための方法を提供。【解決手段】一貫性グループにおいて変更されたデータを転送しているときに、ソース・ストレージ内のリリース・スペースを解放するためのスペース・リリース・コマンドが受信される。転送されなかったリリース・スペースに対する一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかに関する判断が行われる。転送時間が応答時間を超えないという判断に応答して、リリース・スペースの残りの一貫性グループ・データがターゲット・ストレージに転送される。リリース・スペースの一貫性グループ・データをターゲット・ストレージに転送することに応答して、スペース・リリース・コマンドに対するリリース・スペースが解放される。【選択図】図１
2020521247.tif 000002
【特許請求の範囲】
【請求項１】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は自身によって具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は動作をもたらすためにプロセッサによって実行可能であり、前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、コンピュータ・プログラム製品。
【請求項２】
前記転送時間は、前記ソース・ストレージにおけるキャッシュの利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間を含み、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記ターゲット・ストレージに前記転送するステップは、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの少なくとも一部分を転送するために前記キャッシュを使用するステップであって、前記リリース・スペースを前記解放するステップは、前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュおよび前記ターゲット・ストレージの少なくとも一方にコピーするステップに応答して行われる、ステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュから前記ターゲット・ストレージに転送するステップとを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項３】
前記キャッシュの前記利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための前記転送時間を前記判断するステップは、
前記応答時間の間に前記キャッシュの前記利用可能なスペースに転送され得る、前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分と、前記残りの一貫性グループ・データの前記第１の部分を除く前記残りの一貫性グループ・データを含む、前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分とを定めるステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するための時間が前記応答時間を超えるかどうかを判断するステップとを含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間を含む前記転送時間は前記応答時間を超えない、請求項２に記載のコンピュータ・プログラム製品。
【請求項４】
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分は、前記応答時間の間に前記キャッシュに転送された前記リリース・スペースに対する残りの一貫性グループ・データが前記キャッシュから前記ターゲット・ストレージに転送される間に、前記応答時間の間に前記キャッシュに転送され得るデータの量を含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分は、キャッシュ限度と、前記応答時間中の前記キャッシュから前記ターゲット・ストレージへのキャッシュ転送速度との関数である、請求項３に記載のコンピュータ・プログラム製品。
【請求項５】
前記転送時間が前記応答時間を超えないときに前記リリース・スペースに対する前記残りの一貫性グループ・データを前記転送するステップは、
前記転送時間を最小化するように前記第１の部分および前記第２の部分を定めるステップと、
前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュにコピーするステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップとを含む、請求項３に記載のコンピュータ・プログラム製品。
【請求項６】
前記ソース・ストレージは第１のストレージ・システムにあり、前記ターゲット・ストレージは第２のストレージ・システムにあり、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記転送するステップは、前記キャッシュを用いることなく前記第１のストレージ・システムのストレージ・アダプタから前記第１のストレージ・システムのネットワーク・アダプタから前記第２のストレージ・システムに転送するためのネットワークへと前記第２の部分を転送するステップを含む、請求項５に記載のコンピュータ・プログラム製品。
【請求項７】
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間は、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分の量を、前記第１のストレージ・システムからの固定量のデータにアクセスして前記ストレージ・アダプタおよび前記ネットワーク・アダプタを通じて前記第２のストレージ・システムまで転送するための推定時間を含む推定転送速度で割ったものを含む、請求項６に記載のコンピュータ・プログラム製品。
【請求項８】
前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間が前記応答時間を超えるという判断に応答して、
最後の一貫性グループが完了して前記ターゲット・ストレージにコピーされてからの時間がリカバリ・ポイント目標時間よりも短いかどうかを判断するステップと、
前記最後の一貫性グループが完了してからの前記時間が前記リカバリ・ポイント目標時間よりも短いという判断に応答して、形成中の前記一貫性グループをキャンセルするステップと、
前記一貫性グループをキャンセルするステップに応答して、スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを行う、請求項１に記載のコンピュータ・プログラム製品。
【請求項９】
前記動作はさらに、
前記応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度に対する優先度を示すステップであって、前記キャッシュ限度は一貫性グループに対するデータを転送するために使用するキャッシュのスペースの最大量を示す、ステップと、
前記キャッシュ限度によって規定された前記キャッシュの第１の利用可能なスペースを用いる前記転送時間が前記応答時間を超えており、かつ最後の一貫性グループが完了してからの時間が前記リカバリ・ポイント目標時間を超えるという判断に応答して、前記優先度を用いて、前記一貫性グループをキャンセルするステップと、前記キャッシュの前記第１の利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分を前記ターゲット・ストレージに転送し、前記残りの一貫性グループ・データの前記第１の部分を除く前記リリース・スペースに対する前記残りの一貫性グループ・データを含む前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの第２の利用可能なスペースを使用するステップとのうちの１つを行うかどうかを判断するステップとを含む、請求項１に記載のコンピュータ・プログラム製品。
【請求項１０】
前記優先度を前記用いるステップは、
前記リカバリ・ポイント目標時間が前記キャッシュ限度よりも高い優先度を有し、かつ前記キャッシュ限度が前記応答時間よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記ターゲット・ストレージに転送するために前記キャッシュの前記第１の利用可能なスペースを用い、かつ前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップと、
前記リカバリ・ポイント目標時間が前記応答時間よりも高い優先度を有し、かつ前記応答時間が前記キャッシュ限度よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの前記第２の利用可能なスペースを使用するステップとを含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記優先度を前記用いるステップは、
前記キャッシュ限度が前記リカバリ・ポイント目標時間よりも高い優先度を有し、かつ前記リカバリ・ポイント目標時間が前記応答時間よりも高い優先度を有することに応答して、前記キャッシュの前記第１の利用可能なスペースを使用して前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を転送するステップと、
前記キャッシュ限度が前記応答時間よりも高い優先度を有し、かつ前記応答時間が前記リカバリ・ポイント目標時間よりも高い優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１２】
前記優先度を前記用いるステップは、
前記応答時間が前記リカバリ・ポイント目標時間よりも高い優先度を有し、かつ前記リカバリ・ポイント目標時間がキャッシュ限度よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュの前記第２の利用可能なスペースに転送するステップと、
前記応答時間が前記キャッシュ限度よりも高い優先度を有し、かつ前記キャッシュ限度が前記リカバリ・ポイント目標時間よりも高い優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１３】
前記優先度を前記用いるステップは、
前記キャッシュ限度が最低の前記優先度を有することに応答して、前記キャッシュ限度を超えて前記キャッシュに前記残りの一貫性グループ・データの前記第１の部分をコピーするステップであって、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分、ステップと、
前記応答時間が最低の前記優先度を有することに応答して、前記キャッシュ限度以内で前記キャッシュに前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分をコピーし、かつ前記キャッシュ限度を超える前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、
前記リカバリ・ポイント目標時間が最低の前記優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１４】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するためのシステムであって、
プロセッサと、
自身によって具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体とを含み、前記プログラム命令は動作をもたらすために前記プロセッサによって実行可能であり、前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、システム。
【請求項１５】
前記転送時間は、前記ソース・ストレージにおけるキャッシュの利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間を含み、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記ターゲット・ストレージに前記転送するステップは、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの少なくとも一部分を転送するために前記キャッシュを使用するステップであって、前記リリース・スペースを前記解放するステップは、前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュおよび前記ターゲット・ストレージの少なくとも一方にコピーするステップに応答して行われる、ステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュから前記ターゲット・ストレージに転送するステップとを含む、請求項１４に記載のシステム。
【請求項１６】
前記キャッシュの前記利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための前記転送時間を前記判断するステップは、
前記応答時間の間に前記キャッシュの前記利用可能なスペースに転送され得る、前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分と、前記残りの一貫性グループ・データの前記第１の部分を除く前記残りの一貫性グループ・データを含む、前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分とを定めるステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するための時間が前記応答時間を超えるかどうかを判断するステップとを含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間を含む前記転送時間は前記応答時間を超えない、請求項１５に記載のシステム。
【請求項１７】
前記転送時間が前記応答時間を超えないときに前記リリース・スペースに対する前記残りの一貫性グループ・データを前記転送するステップは、
前記転送時間を最小化するように前記第１の部分および前記第２の部分を定めるステップと、
前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュにコピーするステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップとを含む、請求項１６に記載のシステム。
【請求項１８】
前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間が前記応答時間を超えるという判断に応答して、
最後の一貫性グループが完了して前記ターゲット・ストレージにコピーされてからの時間がリカバリ・ポイント目標時間よりも短いかどうかを判断するステップと、
前記最後の一貫性グループが完了してからの前記時間が前記リカバリ・ポイント目標時間よりも短いという判断に応答して、形成中の前記一貫性グループをキャンセルするステップと、
前記一貫性グループをキャンセルするステップに応答して、スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを行う、請求項１４に記載のシステム。
【請求項１９】
前記動作はさらに、
前記応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度に対する優先度を示すステップであって、前記キャッシュ限度は一貫性グループに対するデータを転送するために使用するキャッシュのスペースの最大量を示す、ステップと、
前記キャッシュ限度によって規定された前記キャッシュの第１の利用可能なスペースを用いる前記転送時間が前記応答時間を超えており、かつ最後の一貫性グループが完了してからの時間が前記リカバリ・ポイント目標時間を超えるという判断に応答して、前記優先度を用いて、前記一貫性グループをキャンセルするステップと、前記キャッシュの前記第１の利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分を前記ターゲット・ストレージに転送し、前記残りの一貫性グループ・データの前記第１の部分を除く前記リリース・スペースに対する前記残りの一貫性グループ・データを含む前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの第２の利用可能なスペースを使用するステップとのうちの１つを行うかどうかを判断するステップとを含む、請求項１４に記載のシステム。
【請求項２０】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するための方法であって、コンピュータ・プログラム製品は自身によって具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は動作をもたらすためにプロセッサによって実行可能であり、前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、方法。
【請求項２１】
前記転送時間は、前記ソース・ストレージにおけるキャッシュの利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間を含み、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記ターゲット・ストレージに前記転送するステップは、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの少なくとも一部分を転送するために前記キャッシュを使用するステップであって、前記リリース・スペースを前記解放するステップは、前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュおよび前記ターゲット・ストレージの少なくとも一方にコピーするステップに応答して行われる、ステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュから前記ターゲット・ストレージに転送するステップとを含む、請求項２０に記載の方法。
【請求項２２】
前記キャッシュの前記利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための前記転送時間を前記判断するステップは、
前記応答時間の間に前記キャッシュの前記利用可能なスペースに転送され得る、前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分と、前記残りの一貫性グループ・データの前記第１の部分を除く前記残りの一貫性グループ・データを含む、前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分とを定めるステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するための時間が前記応答時間を超えるかどうかを判断するステップとを含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間を含む前記転送時間は前記応答時間を超えない、請求項２１に記載の方法。
【請求項２３】
前記転送時間が前記応答時間を超えないときに前記リリース・スペースに対する前記残りの一貫性グループ・データを前記転送するステップは、
前記転送時間を最小化するように前記第１の部分および前記第２の部分を定めるステップと、
前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュにコピーするステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップとを含む、請求項２２に記載の方法。
【請求項２４】
前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間が前記応答時間を超えるという判断に応答して、
最後の一貫性グループが完了して前記ターゲット・ストレージにコピーされてからの時間がリカバリ・ポイント目標時間よりも短いかどうかを判断するステップと、
前記最後の一貫性グループが完了してからの前記時間が前記リカバリ・ポイント目標時間よりも短いという判断に応答して、形成中の前記一貫性グループをキャンセルするステップと、
前記一貫性グループをキャンセルするステップに応答して、スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを行う、請求項２０に記載の方法。
【請求項２５】
前記応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度に対する優先度を示すステップであって、前記キャッシュ限度は一貫性グループに対するデータを転送するために使用するキャッシュのスペースの最大量を示す、ステップと、
前記キャッシュ限度によって規定された前記キャッシュの第１の利用可能なスペースを用いる前記転送時間が前記応答時間を超えており、かつ最後の一貫性グループが完了してからの時間が前記リカバリ・ポイント目標時間を超えるという判断に応答して、前記優先度を用いて、前記一貫性グループをキャンセルするステップと、前記キャッシュの前記第１の利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分を前記ターゲット・ストレージに転送し、前記残りの一貫性グループ・データの前記第１の部分を除く前記リリース・スペースに対する前記残りの一貫性グループ・データを含む前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの第２の利用可能なスペースを使用するステップとのうちの１つを行うかどうかを判断するステップとをさらに含む、請求項２０に記載の方法。
【請求項２６】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するためのコンピュータ・プログラムであって、一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するためのコンピュータ・プログラム製品、システム、および処理のための方法に関する。
【背景技術】
【０００２】
ストレージ・ボリュームは「シン・プロビジョニング（ｔｈｉｎ  ｐｒｏｖｉｓｉｏｎｅｄ）」であってもよく、これはボリュームにストレージ・スペースの範囲が割り当てられるが、必要とされるまで割り振られないことを意味する。割り振られた範囲が最初に書込まれたときに、範囲境界においてボリュームに付加的な範囲が割り振られてもよい。割り振られたが「シン・プロビジョニング」ボリュームに使用されていない範囲は、解放されて未割り振りとなり、他のシン・プロビジョニング・ボリュームに割り当てるために利用可能となってもよい。
【０００３】
シン・プロビジョニング・ボリューム内のデータは、たとえば二次ボリュームへの非同期または同期ミラー・コピー動作などのミラー・コピー動作を受けてもよい。一貫性グループ時間（ｃｏｎｓｉｓｔｅｎｃｙ  ｇｒｏｕｐ）の時点で一貫した変更データのミラーリングを提供するために、データは一貫性グループにおいてコピーされてもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現行のシステムにおいては、二次ボリュームにミラーリングされている一貫性グループ内のトラックを解放するためにスペース・リリース・コマンドが受信されるとき、そのスペース・リリース・コマンドを完了させるために一貫性グループのコピーはキャンセルされる。前の一貫性グループが形成される前のすべてのデータのコピーをもたらすために新たな一貫性グループが形成されることがあり、それはリリースされたトラックに対するデータを含まない。
【０００５】
記載される実施形態は、形成が進行中の一貫性グループにおいてもスペースをリリースするためのスペース・リリース・コマンドを処理することに関するコンピュータ技術を最適化するための改善された技術的解決策を提供する。本発明は、ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するためのプログラム、システム、およびその方法を提供する。
【課題を解決するための手段】
【０００６】
第一の実施形態は、ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するためのコンピュータ・プログラム製品である（以下単に「プログラム」とも言う）。一貫性グループにおいて変更されたデータを転送しているときに、ソース・ストレージ内のリリース・スペースを解放するためのスペース・リリース・コマンドが受信される。転送されなかったリリース・スペースに対する一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかに関する判断が行われる。転送時間が応答時間を超えないという判断に応答して、リリース・スペースの残りの一貫性グループ・データがターゲット・ストレージに転送される。リリース・スペースの一貫性グループ・データをターゲット・ストレージに転送することに応答して、スペース・リリース・コマンドに対するリリース・スペースが解放される。
【０００７】
本発明のプログラムの実施形態は、残りの一貫性グループを転送するための転送時間がスペース・リリース・コマンドを処理するための応答時間ゴールを超えるかどうかを判断することによって、スペース・リリース・コマンドを受信した後であっても一貫性グループの形成を続けることを可能にする。もし推定される転送時間が応答時間ゴールを超えていなければ、応答時間ゴール以内に転送を行い得るため、一貫性グループの形成は継続され、一貫性グループに対するデータを転送した後にスペース・リリース・コマンドに対するリリース・スペースが解放される。このことは、一貫性グループの形成が完了する時間がスペース・リリース・コマンドの応答時間以内の完了を妨げないときに、スペース・リリース・コマンドの受信時に一貫性グループの形成が中断されずに進行することを可能にする。
【０００８】
好ましくは、本発明のプログラムにおいて、ここで転送時間は、ソース・ストレージにおけるキャッシュの利用可能なスペースを用いてリリース・スペースに対する残りの一貫性グループ・データを転送するための時間を含む。リリース・スペースに対する残りの一貫性グループ・データをターゲット・ストレージに転送することは、転送時間が応答時間を超えないという判断に応答して、リリース・スペースに対する残りの一貫性グループ・データの少なくとも一部分を転送するためにキャッシュを使用することを含む。リリース・スペースに対する残りの一貫性グループ・データをキャッシュおよびターゲット・ストレージの少なくとも一方にコピーすることに応答して、リリース・スペースが解放される。リリース・スペースに対する残りの一貫性グループ・データは、キャッシュからターゲット・ストレージに転送される。
【０００９】
好ましくは、本発明のプログラムにおいて、ここで一貫性グループ・データを転送するための転送時間は、残りの一貫性グループ・データの一部分を転送するためのキャッシュの使用を検討し、一貫性グループ・データをキャッシュおよびターゲット・ストレージにコピーすることに応答してリリース・スペースが解放される。一貫性グループ・データを転送するためにキャッシュを使用すること、およびキャッシュに保存する際に転送すべきデータを検討することによって転送時間が低減され、よってリリース・スペースを解放する前の応答時間ゴール以内に一貫性グループの形成を完了させる機会が増加する。
【００１０】
好ましくは、本発明は本発明のプログラムにおいて、ここでキャッシュの利用可能なスペースを用いてリリース・スペースに対する残りの一貫性グループ・データを転送するための転送時間を定めることは、応答時間の間にキャッシュの利用可能なスペースに転送され得る、リリース・スペースに対する残りの一貫性グループ・データの第１の部分と、残りの一貫性グループ・データの第１の部分を除く残りの一貫性グループ・データを含む、リリース・スペースに対する残りの一貫性グループ・データの第２の部分とを定めることを含む。リリース・スペースに対する残りの一貫性グループ・データの第２の部分をターゲット・ストレージに転送するための時間が、応答時間を超えるかどうかに関する判断が行われる。こうした場合に、リリース・スペースに対する残りの一貫性グループ・データの第２の部分を転送するための時間を含む転送時間は、応答時間を超えない。
【００１１】
好ましくは、本発明のプログラムにおいて、ここで転送時間をさらに低減させるために、キャッシュと、ターゲット・ストレージへの残りの一貫性グループ・データの直接転送との両方が同時に用いられてもよい。この実施形態において、転送時間はデータをターゲット・ストレージに直接転送するための時間を含み、これはローカル・キャッシュに転送するための時間よりも長くかかる。よって、一貫性グループを実行させるかどうかの判断は、キャッシュをバイパスしたターゲット・ストレージへのデータの直接転送時間に基づく。しかし、この動作はキャッシュを用いて残りの一貫性グループ・データをできる限り多く転送して、ネットワークをターゲット・ストレージへと直接転送されるデータの量を最小化することによって、より遅い転送経路、すなわちネットワーク転送および待ち時間を伴い得るターゲット・ストレージへの転送よりも、キャッシュというより速い転送経路の使用を最大化することによって転送時間を最適化する。
【００１２】
好ましくは、本発明のプログラムにおいて、ここで転送時間が応答時間を超えないときにリリース・スペースに対する残りの一貫性グループ・データを転送することは、転送時間を最小化するように第１の部分および第２の部分を定めることと、残りの一貫性グループ・データの第１の部分をキャッシュにコピーすることと、リリース・スペースに対する残りの一貫性グループ・データの第２の部分をターゲット・ストレージに転送することとを含む。
【００１３】
好ましくは、本発明のプログラムにおいて、ここで残りの一貫性グループ・データの第１の部分をキャッシュに転送することと、残りの一貫性グループ・データの第２の部分をターゲット・ストレージに転送することとによって、転送時間を最小化するように転送動作が最適化される。２つの異なる経路に沿って残りの一貫性グループ・データを同時に転送するためにより速い処理キャッシュと直接転送との両方を用いることによって、転送時間がさらに最小化されて、スペース・リリース・コマンドの処理を完了することおよびリリース・スペースを解放することに対する応答時間ゴール以内に一貫性グループに対するデータの転送が完了し得る可能性が増加する。
【００１４】
好ましくは、本発明のプログラムにおいて、ここでリリース・スペースに対する残りの一貫性グループ・データを転送するための時間が応答時間を超えるという判断に応答して、最後の一貫性グループが完了されてターゲット・ストレージにコピーされてからの時間がリカバリ・ポイント目標時間よりも短いかどうかを判断することと、最後の一貫性グループが完了されてからの時間がリカバリ・ポイント目標時間よりも短いという判断に応答して、形成中の一貫性グループをキャンセルすることと、一貫性グループをキャンセルすることに応答して、スペース・リリース・コマンドに対するリリース・スペースを解放することとを行う。
【００１５】
好ましくは、本発明のプログラムにおいて、ここでリカバリ・ポイント目標時間の付加的なゴールが検討され、このリカバリ・ポイント目標時間はその時間以内に一貫性グループを形成する必要があるという時間の要求である。残りの一貫性グループ・データを転送するための転送時間をスペース・リリース・コマンドの完了に対する応答時間ゴール以内に完了できないとき、もしリカバリ・ポイント目標時間以内に一貫性グループが最後に作成されていれば、キャンセルがリカバリ・ポイント目標時間を妨げることがないため、一貫性グループはキャンセルされてもよい。この場合、一貫性グループをキャンセルすることと、スペース・リリース・コマンドを完了するための応答時間ゴール以内にリリース・スペースを解放させることとによって、両方のゴールが満たされてもよい。
【００１６】
好ましくは、本発明のプログラムにおいて、ここで応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度に対する優先度が示される。キャッシュ限度とは、一貫性グループに対するデータを転送するために用いるためのキャッシュのスペースの最大量を示す。キャッシュ限度によって規定されたキャッシュの第１の利用可能なスペースを用いる転送時間が応答時間を超えており、かつ最後の一貫性グループが完了してからの時間がリカバリ・ポイント目標時間を超えるという判断に応答して、優先度を用いて、一貫性グループをキャンセルするステップと、キャッシュの第１の利用可能なスペースを用いてリリース・スペースに対する残りの一貫性グループ・データの第１の部分をターゲット・ストレージに転送し、残りの一貫性グループ・データの第１の部分を除くリリース・スペースに対する残りの一貫性グループ・データを含むリリース・スペースに対する残りの一貫性グループ・データの第２の部分をターゲット・ストレージに転送するステップと、リリース・スペースに対する残りの一貫性グループ・データの第１の部分をキャッシュに転送するために、キャッシュ限度を超えてキャッシュの第２の利用可能なスペースを使用するステップとのうちの１つを行うかどうかを判断する。
【００１７】
好ましくは、本発明のプログラムにおいて、ここでコンピュータ・システムはたとえばスペース・リリース・コマンドに対する応答時間、リカバリ・ポイント目標、および一貫性グループに対するデータを転送するために使用するためのキャッシュのスペースの最大量のキャッシュ限度などの異なる目標を優先させる。最適化は最初に、転送時間が応答時間目標を超えており、かつ最後の一貫性グループが形成されてからの時間がリカバリ・ポイント目標を超えるときに、どの目標を緩和するかを定めてもよい。こうした場合に、最低優先度を有する目標が緩和されてもよい。このことは、スペース・リリース・コマンドに対して要求される応答時間以内にキャッシュ限度を用いて残りの一貫性グループを転送できないときに、ユーザのゴールと釣り合わせるためにどの目標を緩和してどの目標を維持するかをユーザが指定することを可能にする。このことは、たとえば応答時間、リカバリ・ポイント目標、およびキャッシュ限度などの予め定められた目標に基づいてスペース・リリース・コマンドを処理するときの、一貫性グループ形成の操作を最適化する。
【００１８】
別の態様からみると、本発明のシステムは、プロセッサと、自身によって具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体とを含み、このプログラム命令は動作をもたらすためにプロセッサによって実行可能であり、この動作は、一貫性グループにおいて変更されたデータを転送しているときにソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、転送されていないリリース・スペースに対する一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、転送時間が応答時間を超えないという判断に応答して、リリース・スペースの残りの一貫性グループ・データをターゲット・ストレージに転送するステップと、リリース・スペースの一貫性グループ・データをターゲット・ストレージに転送するステップに応答して、スペース・リリース・コマンドに対するリリース・スペースを解放するステップとを含む。
【００１９】
別の態様からみると、本発明の方法は、前記方法の動作が、一貫性グループにおいて変更されたデータを転送しているときにソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、転送されていないリリース・スペースに対する一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、転送時間が応答時間を超えないという判断に応答して、リリース・スペースの残りの一貫性グループ・データをターゲット・ストレージに転送するステップと、リリース・スペースの一貫性グループ・データをターゲット・ストレージに転送するステップに応答して、スペース・リリース・コマンドに対するリリース・スペースを解放するステップとを含む。
【００２０】
別の態様からみると、本発明のプログラムは、一貫性グループにおいて変更されたデータを転送しているときにソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、転送されていないリリース・スペースに対する一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、転送時間が応答時間を超えないという判断に応答して、リリース・スペースの残りの一貫性グループ・データをターゲット・ストレージに転送するステップと、リリース・スペースの一貫性グループ・データをターゲット・ストレージに転送するステップに応答して、スペース・リリース・コマンドに対するリリース・スペースを解放するステップとを含む。
【図面の簡単な説明】
【００２１】
【図１】ストレージ環境の実施形態を示す図である。
【図２】図１のストレージ環境における第１のストレージ・サーバのコンポーネントの実施形態を示す図である。
【図３】ミラー・コピー関係の実施形態を示す図である。
【図４】一貫性グループおよびスペース・リリース・コマンドに関するスペース・リリース目標の実施形態を示す図である。
【図５】一貫性グループにおけるリリース・スペースに関するスペース・リリース・コマンドを処理するための動作の実施形態を示す図である。
【図６】進行中の一貫性グループの残りの一貫性グループ・データを第２のストレージ・システムに転送するための転送時間を定めるための動作の実施形態を示す図である。
【図７】スペース・リリース・コマンドを処理するために緩和させる目標を定めるためにスペース・リリース目標の優先度を使用するための動作の実施形態を示す図である。
【図８】図１のコンポーネントが実現され得るコンピューティング環境を示す図である。
【発明を実施するための形態】
【００２２】
現行の技術においては、第２のストレージ・システムに対するミラーリング・データの一部として形成が進行中の一貫性グループ内にあるリリース・スペースを解放するためのスペース・リリース・コマンドが受信されるとき、そのスペース・リリース・コマンドを進行させるために一貫性グループはキャンセルされる。記載される実施形態は、一貫性グループ内のスペースもリリースするためのスペース・リリース・コマンドを処理するコンピュータ技術に対する改善および最適化を提供する。記載される実施形態によって、まだ転送されておらず、かつリリース・スペース内にある一貫性グループの残りのデータを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかの判断が行われる。転送時間が応答時間を超えないという判断に応答して、リリース・スペース内のトラックに対する残りの一貫性グループ・データが転送され、この転送の完了後にスペース・リリース・コマンドが実行される。このやり方で、一貫性グループのスペースを解放することとなるスペース・リリース・コマンドの実行を進める前に、一貫性グループの形成を完了させることができる。
【００２３】
記載される実施形態は、新たな一貫性グループが形成されるべき時間を示すリカバリ・ポイント目標時間と、スペース・リリース・コマンドを受信後に一貫性グループ・データを転送するために使用され得るキャッシュの最大量を提供するキャッシュ限度とを考慮する付加的な最適化を提供する。応答時間以内にキャッシュ限度内のキャッシュを用いて残りの一貫性グループ・データを転送できないとき、記載される実施形態は、一貫性グループをキャンセルするか、それともスペース・リリース・コマンドを進行させる前に一貫性グループを完了させるかを判断するために、応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度のどの目標を緩和するかを定めるための技術を提供する。
【００２４】
図１は、少なくとも２つのストレージ・システム１００１および１００２を有するデータ・ストレージ環境の実施形態を示しており、各々のストレージ・システムは、ストレージ１０６１および１０６２内に構成されたボリューム１０４１および１０４２へのアクセスを管理するストレージ・サーバ１０２１および１０２２をそれぞれ含む。ホスト・システム（図示せず）は、ストレージ・ネットワーク１１０を通じて第１のストレージ・システム１００１に関する読取りおよび書込み動作を行ってもよい。第１のストレージ１０６１は一次生成ボリュームを含んでもよく、ホストは読取りおよび書込み要求をこの一次生成ボリュームに向ける。第１のストレージ・サーバ１０２１は、第２のストレージ・サーバ１０２２における一貫性グループにおいてデータを維持するために、ボリューム１０４１のデータを第２のストレージ・システム１００２にミラーリングしてもよい。
【００２５】
本明細書において用いられる「ストレージ・システム」という用語は、ストレージ・サーバ１０２１、１０２２もしくはサーバによって管理されるストレージ１０６１、１０６２またはその両方を示してもよい。
【００２６】
ストレージ１０６１、１０６２は、たとえば磁気ハード・ディスク・ドライブ、固体エレクトロニクスを含む固体ストレージ・デバイス（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブル・リード・オンリ・メモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ））、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）ドライブ、ストレージ・クラス・メモリ（ＳＣＭ：ｓｔｏｒａｇｅ−ｃｌａｓｓ  ｍｅｍｏｒｙ）など、相変化メモリ（ＰＣＭ：Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）、抵抗ランダム・アクセス・メモリ（ＲＲＡＭ：ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、スピン・トランスファー・トルク・メモリ（ＳＴＭ−ＲＡＭ：ｓｐｉｎ  ｔｒａｎｓｆｅｒ  ｔｏｒｑｕｅ  ｍｅｍｏｒｙ）、導電性ブリッジングＲＡＭ（ＣＢＲＡＭ：ｃｏｎｄｕｃｔｉｖｅ  ｂｒｉｄｇｉｎｇ  ＲＡＭ）、磁気ハード・ディスク・ドライブ、光ディスク、テープなどの異なるタイプまたはクラスのストレージ・デバイスを含んでもよい。ボリューム１０４１、１０４２は、たとえばジャスト・ア・バンチ・オブ・ディスク（ＪＢＯＤ：Ｊｕｓｔ  ａ  Ｂｕｎｃｈ  ｏｆ  Ｄｉｓｋｓ）、直接アクセス・ストレージ・デバイス（ＤＡＳＤ：Ｄｉｒｅｃｔ  Ａｃｃｅｓｓ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ）、独立ディスク冗長アレイ（ＲＡＩＤ：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）のアレイ、仮想化デバイスなどのデバイスのアレイからさらに構成されてもよい。さらに、ストレージ１０６１、１０６２は、異なる業者および異なるタイプのストレージ・デバイスからの異種ストレージ・デバイスを含んでもよく、それはたとえばＳＳＤなどの第２のタイプのストレージ・デバイスよりも遅いデータ転送速度を有する、たとえばハード・ディスク・ドライブなどの第１のタイプのストレージ・デバイスなどである。
【００２７】
データをミラーリングするためにストレージ・システム１００１および１００２によって用いられるストレージ・ネットワーク１１０は、たとえば１つまたはそれ以上の相互接続されたローカル・エリア・ネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）、ストレージ・エリア・ネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）、広域ネットワーク（ＷＡＮ：Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ピアツーピア・ネットワーク、無線ネットワークなどのストレージ・ネットワークを含んでもよい。
【００２８】
図２は第１のサーバ１０２１のコンポーネントを示しており、第１のサーバ１０２１はプロセッサ２００と、プロセッサ２００によって実行されるプログラムおよび第１のストレージ１０６１に対する読取りおよび書込みデータをキャッシュするためのキャッシュ２０６を含むメモリ２０４とを含む。加えて、スペース・リリース・コマンドを受ける一貫性グループのデータを転送するために、キャッシュ２０６の一部分が用いられてもよい。
【００２９】
メモリ２０４はオペレーティング・システム２０８を含み、オペレーティング・システム２０８はボリューム１０４１を形成して、構成されたボリューム１０４１の情報を提供するたとえばボリューム目録（ＶＴＯＣ：ｖｏｌｕｍｅ  ｔａｂｌｅ  ｏｆ  ｃｏｎｔｅｎｔｓ）、ファイル割り振りテーブルなどのボリューム・テーブル２１０を維持する。オペレーティング・システム２０８はさらに、ボリューム１０４１に関するホスト・システムからのＩ／Ｏ要求を管理し、ボリューム１０４１の１つに割り振られたスペースをリリースするためのスペース・リリース・コマンドを処理して他のボリュームに対して利用可能にする。オペレーティング・システム２０８はさらに、ボリューム１０４１をシン・プロビジョニング・ボリュームとして管理して、提供されたが割り振られていないスペースに対してスペースを割り振り、シン・プロビジョニング・ボリューム１０４１に割り振られたスペースを解放するためのスペース・リリース・コマンドを発行して、他のボリューム１０４１に割り当てるために利用可能にしてもよい。
【００３０】
メモリ２０４は、一貫性グループの一部として第２のストレージ・システム１００２のターゲット・データに対する第１のストレージ・システム１００１のボリューム１０４１のソース・データのミラー関係３００を作成および管理するためのコピー・マネージャ２１２を含む。加えてメモリ２０４は、リリース・スペースが第２のストレージ・システム１００２へのミラーリングが進行中の一貫性グループ内の領域を含むときに、スペース・リリース・コマンドをどのように処理するかを定めるためにオペレーティング・システム２０８、コピー・マネージャ２１２、もしくは他のコンポーネント、またはその組み合わせが使用するスペース・リリース目標４００を含む。
【００３１】
サーバ１００１は、第１のストレージ１０６１内のデバイスと通信するための１つまたはそれ以上のストレージ・アダプタ２１４と、ネットワーク１１０と通信して一貫性グループのデータを第２のストレージ・システム１００２にミラーリングするための１つまたはそれ以上のネットワーク・アダプタ２１６とを含む。
【００３２】
図３はミラー関係３００ｉの実例を示しており、このミラー関係３００ｉは、コピー・マネージャ２１２によって作成されたミラー・コピーを識別するミラー識別子３０２と、データのコピー元であるたとえば一次ストレージ・システム１００１における一次ボリューム１０４１などのソース・データ３０６と、ソース・データのコピー先であるたとえば二次ストレージ・システム１００２における二次ボリューム１０４２などのターゲット・データ３０８と、変更されてターゲット・データ３０８にコピーされる必要のあるソース・データ３０６のトラックまたはその他のデータ・ユニットを示すたとえばビットマップなどの非同期データ構造３１０と、形成すべき次の一貫性グループに含まれるべき更新または変更されたソース３０６トラックを示すたとえば変更記録ビットマップなどの変更記録データ構造３１２とを含んでもよい。
【００３３】
新たな一貫性グループを作成するために、変更された形成中の現行一貫性グループに対する変更データをコピーしながら更新されたデータを示す変更記録データ構造３１２は、現行一貫性グループに対してコピーされた変更データを含む非同期データ構造３１０とマージされる。マージの後、変更記録データ構造３１２は次の一貫性グループに対する新たな更新を記録するためにクリアされ、一方で非同期データ構造３１０において変更されたと示されたデータは、現行一貫性グループを形成するためにターゲット・データ３０８にコピーされている。
【００３４】
図４はスペース・リリース目標４００の実施形態を示し、このスペース・リリース目標４００は、スペース・リリース・コマンドを完了させるべき最長時間を示す応答時間４０２と、リカバリ・ポイント目標時間４０４内に新たな一貫性グループが作成されるべきであるような任意の２つの一貫性グループの間の最長時間を示すリカバリ・ポイント目標時間４０４と、非同期データ構造３１０に示される残りの一貫性グループ・データのコピーを完了するための時間を低減させるために第２のストレージ・システム１００２にコピー中の非同期データ構造３１０に示されるミラーリングすべき変更データを保存するために用いられ得るキャッシュ２０６の最大量を示すキャッシュ限度４０６と、目標４０２、４０４、および４０６の各々の優先度を示す優先度４０８とを含む。
【００３５】
図５は、形成中の一貫性グループが存在するときにスペース・リリース・コマンドを処理するためにオペレーティング・システム２０８もしくはコピー・マネージャ２１２またはその両方によって行われる動作の実施形態を示す。第１のストレージ１０６１におけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するとき（ブロック５００）、リリース・スペースの一部分を含む非同期データ構造３１０に示されるデータが現在コピー進行中である態様で、一貫性グループの第２のストレージ・システム１００２へのコピーが進行中であるかどうかに関する判断が行われる（ブロック５０２）。リリース・スペースのトラックを含む一貫性グループがコピーされていないとき、コピー・マネージャ２１２はリリース・スペースを含む一貫性グループがデータがコピーされる進行状態に入ることを防ぐためのフラグをセットし（ブロック５０４）、リリース・スペースを解放し（ブロック５０６）、次いでリリース・スペースを示すトラックを除去するために非同期データ構造３１０をリセットする（ブロック５０８）。
【００３６】
（ブロック５０２において）コピーが進行中の一貫性グループが存在するとき、すなわち非同期データ構造３１０がリリース・スペース・トラックのコピーが必要であると示すとき、次いで非同期データ構造３１０においてまだコピーされていないと示されるリリース・スペースの任意のトラックが存在するかどうかの判断が行われる（ブロック５１０）。（ブロック５１０において）非同期データ構造３１０に示されるリリース・トラックでまだコピーされていないものがないとき、次いでオペレーティング・システム２０８は非同期データ構造３１０においてコピーされたものと示されるトラックを解放してもよい。このやり方で、一貫性グループのリリース・スペース・トラックが第２のストレージ１０６２にコピーされるまでリリース・スペース・トラックは解放されない。（ブロック５１０において）非同期データ構造３１０において任意のリリース・スペース・トラックがまだコピーされていないと示されるとき、次いでコピー・マネージャ２１２またはその他のコンポーネントは、まだコピーされていないと示されるリリース・スペース・トラックに対する非同期データ構造３１０の残りの一貫性グループ・データを転送するための転送時間を定める（ブロック５１２）。残りの一貫性グループ・データはキャッシュ２０６を通じてコピーされてもよいし、第１のストレージ１０６１から直接ストレージ・アダプタ２１４を通じて次いでネットワーク・アダプタ２１６へ、そこから第２のストレージ・システム１００２へとコピーされ、よってキャッシュ２０６をバイパスしてもよいし、その両方であってもよい。転送時間は、残りの一貫性グループ・データの第１の部分をキャッシュ２０６に転送することと、第１の部分を除く残りの一貫性グループ・データを含む残りの一貫性グループ・データの第２の部分を第１のストレージ１０６１からキャッシュ２０６をバイパスして第２のストレージ・システム１００２に直接転送することとを同時に行うことを考慮してもよい。転送時間は、残りの一貫性グループ・データの第１の部分および第２の部分を転送するための時間のうちの長い方を含んでもよい。
【００３７】
（ブロック５１４において）定められた転送時間が応答時間４０２目標を超えるとき、すなわち応答時間目標４０２が満たされ得ないとき、最後の一貫性グループが完了してからの時間がリカバリ・ポイント目標時間４０４よりも長いかどうかに関する判断が行われる（ブロック５１８）。もしその時間がより長ければ、リカバリ・ポイント目標時間４０４を緩和することはできず、コピー・マネージャ２１２もしくはその他のコンポーネントまたはその両方は、たとえばコピーが進行中の一貫性グループをキャンセルするか、またはキャッシュ限度４０６まで、もしくはキャッシュ限度４０６を超えてキャッシュ２０６を用いてリリース・スペース・トラックに対する残りの一貫性グループ・データを転送するなど、どの目標を緩和するかを定めるために、応答時間４０２、リカバリ・ポイント目標時間４０４、およびキャッシュ限度４０６に対する優先度４０８を用いる（ブロック５２０）。（ブロック５１８において）最後の一貫性グループからの時間がリカバリ・ポイント目標時間４０４よりも長くないとき、これは一貫性グループをキャンセルでき、かつリカバリ・ポイント時間目標はなおも満たされることを意味しており、よって進行中の一貫性グループはキャンセルされ（ブロック５２２）、リリース・スペースは解放され（ブロック５２４）、リリース・スペースのトラックの表示を除去するために非同期データ構造３１０がリセットされる。リリース・スペースを含まないリカバリ・ポイント目標時間４０４を満たすために、コピー・マネージャ２１２は新たな一貫性グループを形成してもよい（ブロック５２６）。
【００３８】
図５の実施形態は、たとえば応答時間目標、キャッシュ限度目標、およびリカバリ・ポイント目標などのさまざまな制約の中で、リリース・スペースにある残りの一貫性グループ・データを第２のストレージ・システム１００２にコピーできるかどうかを判断することによって、一貫性グループが形成された後にスペース・リリース・コマンドが処理されることを可能にする。これは、一貫性グループを完了してかつさまざまなスペース・リリース目標を満たすことができるかどうかを判断することによって、形成中の一貫性グループをキャンセルする必要を回避する。さらなる実施形態においては、他の目標が検討されてもよい。
【００３９】
図６は、第２のストレージ・システム１００２にまだ転送されていないリリース・スペースに対する非同期データ構造３１０の残りの一貫性グループ・データを転送するための時間を定めるための図５のブロック５１２における動作を行うために、オペレーティング・システム２０８もしくはコピー・マネージャ２１２またはその両方によって行われる動作の実施形態を示す。転送時間の決定を開始するとき（ブロック６００）、コピー・マネージャ２１２は応答時間４０２の間にキャッシュ限度４０６までキャッシュ２０６の利用可能なスペースに転送され得るリリース・スペース・トラックに対する残りの一貫性グループ・データの第１の部分量を定め（ブロック６０２）、一方でキャッシュ内の残りの一貫性グループ・データの第１の部分もキャッシュ２０６から第２のストレージ・システム１００２に転送される。よって、キャッシュ２０６に転送された残りの一貫性グループ・データもキャッシュ転送速度にてキャッシュ２０６から第２のストレージ・システム１００２に転送されてもよい。１つの実施において、第１の部分は（キャッシュ限度４０６までのキャッシュ２０６の利用可能なスペース）＋応答時間４０２＊（キャッシュ転送速度））として算出されてもよい。このやり方で、キャッシュ２０６に転送される残りの一貫性グループ・データの第１の部分は、キャッシュ限度４０６よりも多くなる。なぜなら、残りの一貫性グループ・データは同時にキャッシュ転送速度にてキャッシュ２０６から第２のストレージ・システム１００２にも転送されるため、より多くの残りの一貫性グループ・データがキャッシュ２０６に流入するための余地を作るからである。
【００４０】
代替的実施形態において、残りの一貫性グループ・データの第１の部分量は、キャッシュ限度４０６のみを含んでいてもよい。
【００４１】
次いでコピー・マネージャ２１２は、第１の部分を除く残りの一貫性グループ・データを含む、リリース・スペースに対する残りの一貫性グループ・データの第２の部分を転送するための時間を定める（ブロック６０４）。第２の部分を転送するための時間は、ストレージ転送速度と残りの一貫性グループ・データの第２の部分のバイト量とを掛けたものを含んでもよい。ストレージ転送速度は、固定量のデータを第１のストレージ１０６１からストレージ・アダプタ２１４、ネットワーク・アダプタ２１６、次いで第２のストレージ・システム１００２へと転送するための推定時間を含んでもよい。第２の部分を転送するための時間は、第２の部分のデータ量とストレージ転送速度とを掛け合わせたものを含んでもよい。よってステップ６０２および６０４の動作は、応答時間４０２限度およびキャッシュ・サイズ限度４０６以内でキャッシュ２０６を介して転送され得る量を最大化することによって、第２の部分に対する転送時間を最小化する。
【００４２】
（ブロック６０６において）第２の部分に対する転送時間が応答時間より短くないとき、応答時間４０２目標を満たすことはできず、制御は図５のブロック５１８に進行し（ブロック６０８）、一貫性グループをキャンセルでき、かつリカバリ・ポイント目標時間４０４はなおも満たされるかどうかを判断する。（ブロック６０６において）残りの一貫性グループ・データの第２の部分を転送するための時間が応答時間よりも短いとき、次いでコピー・マネージャ２１２はキャッシュ限度、キャッシュ転送速度、およびストレージ転送速度を考慮して、転送時間を最小化するように第１の部分および第２の部分を調整してもよい（ブロック６１０）。次いで制御は図５のブロック５１６に進行し（ブロック６１２）、残りの一貫性グループ・データの第１および第２の部分を第２のストレージ・システム１００２に転送する。
【００４３】
図６の実施形態によって、スペース・リリース・コマンドに対して要求される応答時間以内になるように合計転送時間を最適化するために、転送するための時間は、リリース・スペース・トラックに対する残りの一貫性グループ・データの第１および第２の部分が、異なる経路を通じてキャッシュ２０６に転送されると同時に第２のストレージ・システム１００２に直接転送されてもよいことを検討する。このことによって、進行中の一貫性グループに対して非同期データ構造３１０においてコピーされる必要があると示されているリリース・スペースに対するデータが応答時間目標以内に全部転送されて、スペース・リリース・コマンドが応答時間目標４０２以内に処理および完了され得るようになり、かつたとえばリカバリ・ポイント目標時間４０４およびキャッシュ限度４０６などの他のスペース・リリース目標も満たされる可能性が増加する。
【００４４】
図７は、図５のブロック５２０における動作を行うためにオペレーティング・システム２０８もしくはコピー・マネージャ２１２またはその両方によって行われる動作の実施形態を示しており、この動作はスペース・リリース目標４０２、４０４、４０６に対する優先度４０８を用いてどの目標を緩和するかを定めるものであり、たとえばリリース・スペースに対する残りの一貫性グループ・データを応答時間４０２より長時間かけてキャッシュ２０６および第２のストレージ・システム１００２に転送させることによって応答時間目標４０２を緩和するか、たとえ最後に完了した一貫性グループの時間がリカバリ・ポイント目標時間４０４を超えていても一貫性グループをキャンセルすることによってリカバリ・ポイント目標時間４０４を緩和するか、または残りの一貫性グループ・データをキャッシュするために用いられるキャッシュ２０６の量にキャッシュ限度４０６を超えさせることによってキャッシュ限度４０６を緩和する。優先度４０８を用いるための動作を開始すると（ブロック７００）、コピー・マネージャ２１２もしくはオペレーティング・システム２０８またはその両方は、リカバリ・ポイント目標時間４０４が最高優先度を有するかどうかを判断する（ブロック７０２）。もしそうであり、かつ（ブロック７０４において）応答時間４０２が２番目に高い優先度を有するときは、キャッシュ限度４０６が緩和されて、応答時間４０２以内に残りの第２の部分がキャッシュ２０６をバイパスしてアダプタ２１４および２１６を通じて第２のストレージ・システム１００２に直接転送され得るように、キャッシュ２０６を通じてリリース・スペースに対する残りの一貫性グループ・データの第１の部分を転送するために必要とされるキャッシュ限度４０６を超えたキャッシュ２０６内の利用可能なスペースの最小量が定められる（ブロック７０６）。このやり方で、キャッシュ限度４０６が緩和されて、キャッシュ２０６を用いて転送されるリリース・スペースに対する残りの一貫性グループ・データの第１の部分のサイズが増加し、この第１の部分はキャッシュ２０６をバイパスする第２の部分の転送よりも速く転送される。なぜなら、キャッシュ２０６への残りの一貫性グループ・データの転送は第２のストレージ・システム１００２に転送されたものとみなされるため、リリース・スペースにあるそのトラックも解放され得るからである。よって、キャッシュ限度４０６を緩和することによって残りの一貫性グループ・データの第１の部分が増加し、より長い転送時間がかかる第２の部分が低減するため、第２の部分の転送時間も低減する。
【００４５】
（ブロック７０４において）キャッシュ限度４０６が２番目に高い優先度を有するときは、応答時間目標４０２が緩和され、コピー・マネージャ２１２は応答時間４０２よりも長い時間をかけて、リリース・スペースに対する残りの一貫性グループ・データの第１の部分を第２のストレージ・システムに転送し、かつ残りの一貫性グループ・データの第２の部分を第２のストレージ・システム１００２に転送するために、キャッシュ限度４０６までキャッシュ２０６の利用可能なスペースを使用する（ブロック７０８）。
【００４６】
（ブロック７０２において）リカバリ・ポイント目標時間４０４が最高優先度を有さず、かつ（ブロック７１０において）キャッシュ限度４０６が最高優先度を有し、かつ（ブロック７１２において）応答時間４０２が２番目に高い優先度を有するときは、リカバリ・ポイント目標時間４０４が最低優先度を有し、リカバリ・ポイント目標が緩和されてもよい。リカバリ・ポイント目標４０４を緩和するために、形成中の一貫性グループはキャンセルされ（ブロック７１４）、次いでリリース・スペースが解放されてもよい。（ブロック７１２において）リカバリ・ポイント目標時間４０４が２番目に高い優先度を有するときは、制御はブロック７０８に進んでキャッシュ限度目標４０６を緩和する。
【００４７】
（ブロック７１０のｎｏ分岐から）応答時間が最高優先度を有し、かつ（ブロック７１６において）キャッシュ限度４０６が２番目に高い優先度を有するときは、制御はブロック７１４に進んでリカバリ・ポイント目標時間４０４を緩和し、一貫性グループをキャンセルする。（ブロック７１６において）リカバリ・ポイント目標時間４０４が２番目に高い優先度であるときは、制御はブロック７０６に進んでキャッシュ限度４０６を緩和する。
【００４８】
図７の実施形態によって、コピー・マネージャ２１２もしくはその他のコンポーネントまたはその両方は、キャッシュ限度目標４０６を超えて用いられるキャッシュ２０６スペースを増加させるか、一貫性グループをキャンセルしてリカバリ・ポイント目標時間４０４を破るか、または完了に対する応答時間４０２より長くかけて非同期データ構造３１０がキャッシュ限度４０６内を流れるようにさせるかどうかを判断するために、どの目標を緩和するかを定める。
【００４９】
記載される実施形態において、コピー動作は、たとえば非同期または同期ミラーなどのミラー・コピー動作を含む。代替的実施形態において、コピー動作は、たとえばスナップショット・コピーなどのポイント・イン・タイム・コピー動作などの別のタイプのコピー動作を含んでもよい。
【００５０】
本明細書において用いられるたとえばｉなどの参照文字は、エレメントの実例の可変数を示すために用いられ、これは同じ値または異なる値を表してもよく、記載される異なる実例における異なるエレメントまたは同じエレメントとともに用いられるときに同じ値または異なる値を表してもよい。
【００５１】
本発明はシステム、方法、もしくはプログラム、またはその組み合わせであってもよい。プログラムは、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体（または複数の媒体）を含んでもよい。
【００５２】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および保存できる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フロッピー（Ｒ）ディスク、機械的に符号化されたデバイス、たとえばパンチ・カードまたは溝に命令が記録された隆起構造など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読ストレージ媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波（例、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通じて伝送される電気信号など、それ自体が一時的信号のものであると解釈されるべきではない。
【００５３】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードされ得るか、またはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【００５４】
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または１つもしくはそれ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよく、このプログラミング言語はオブジェクト指向プログラミング言語、たとえばＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、またはＣ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む。コンピュータ可読プログラム命令は、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて）外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙｓ）などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
【００５５】
本明細書においては、本発明の実施形態による方法、装置（システム）、およびプログラムの流れ図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるだろう。
【００５６】
これらのコンピュータ可読プログラム命令は、汎用目的コンピュータ、特定目的コンピュータ、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて規定される機能／動作を実現するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイスまたはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読ストレージ媒体にも保存されることによって、命令が保存されたコンピュータ可読ストレージ媒体が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて規定される機能／動作の態様を実現する命令を含む製造物を含んでもよい。
【００５７】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにもロードされて、コンピュータに実現されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または他のデバイスにおいて実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて規定される機能／動作を実現してもよい。
【００５８】
図面における流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびプログラムの可能な実施のアーキテクチャ、機能、および動作を示すものである。これに関して、流れ図またはブロック図の各ブロックは、規定される論理機能（単数または複数）を実現するための１つまたはそれ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよいし、関与する機能によってはこれらのブロックがときに逆の順序で実行されてもよい。加えて、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能を行うか、特定目的のハードウェアおよびコンピュータ命令の組み合わせを実施または実行する特定目的のハードウェア・ベースのシステムによって実現され得ることが注目されるだろう。
【００５９】
サーバ１０２１、１０２２を含む図１のコンピュータのコンポーネントは、たとえば図８に示されるコンピュータ・システム８０２などの１つまたはそれ以上のコンピュータ・システムにおいて実現されてもよい。コンピュータ・システム／サーバ８０２は、コンピュータ・システムによって実行されるたとえばプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的状況において説明されてもよい。一般的に、プログラム・モジュールは特定のタスクを行うか、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、およびデータ構造などを含んでもよい。コンピュータ・システム／サーバ８０２は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート・コンピュータ・システム・ストレージ媒体の両方に位置してもよい。
【００６０】
図８に示されるとおり、コンピュータ・システム／サーバ８０２は汎用目的コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ８０２のコンポーネントは、１つまたはそれ以上のプロセッサまたは処理ユニット８０４と、システム・メモリ８０６と、システム・メモリ８０６を含むさまざまなシステム・コンポーネントをプロセッサ８０４に結合するバス８０８とを含んでもよいが、これらに限定されない。バス８０８は、メモリ・バスまたはメモリ・コントローラ、周辺装置用バス、アクセラレーテッド・グラフィクス・ポート、およびさまざまなバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの１つまたはそれ以上を表す。限定ではなく例として、こうしたアーキテクチャはインダストリ・スタンダード・アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含む。
【００６１】
コンピュータ・システム／サーバ８０２は通常、さまざまなコンピュータ・システム可読媒体を含む。こうした媒体はコンピュータ・システム／サーバ８０２によってアクセス可能な任意の利用可能な媒体であってもよく、それは揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体の両方を含む。
【００６２】
システム・メモリ８０６は、たとえばランダム・アクセス・メモリ（ＲＡＭ）８１０もしくはキャッシュ・メモリ８１２またはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ８０２はさらに、他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ・システム・ストレージ媒体を含んでもよい。単なる例として、取り外し不可能な不揮発性磁気媒体（図示されず、通常「ハード・ドライブ」と呼ばれる）からの読取りおよびそこへの書込みのために、ストレージ・システム８１３が提供され得る。図示されていないが、取り外し可能な不揮発性磁気ディスク（例、「フロッピー（Ｒ）ディスク」）からの読取りおよびそこへの書込みのための磁気ディスク・ドライブ、およびたとえばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能な不揮発性光ディスクからの読取りまたはそこへの書込みのための光ディスク・ドライブが提供され得る。こうした場合には、各々が１つまたはそれ以上のデータ媒体インタフェースによってバス８０８に接続され得る。以下にさらに示されて説明されることとなるとおり、メモリ８０６は、本発明の実施形態の機能を行うように構成されたプログラム・モジュールのセット（例、少なくとも１つ）を有する少なくとも１つのプログラム製品を含んでもよい。
【００６３】
プログラム・モジュール８１６のセット（少なくとも１つ）を有するプログラム／ユーティリティ８１４は、限定ではなく例としてメモリ８０６に保存されてもよく、加えてオペレーティング・システム、１つまたはそれ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データに保存されてもよい。オペレーティング・システム、１つまたはそれ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組み合わせの各々は、ネットワーク化環境の実現を含んでもよい。コンピュータ８０２のコンポーネントは、本明細書に記載される本発明の実施形態の機能もしくは方法またはその両方を一般的に行うプログラム・モジュール８１６として実現されてもよい。図１のシステムは、１つまたはそれ以上のコンピュータ・システム８０２において実現されてもよく、複数のコンピュータ・システム８０２において実現されるときは、それらのコンピュータ・システムがネットワークを通じて通信してもよい。
【００６４】
加えて、コンピュータ・システム／サーバ８０２は、たとえばキーボード、ポインティング・デバイス、ディスプレイ８２０などの１つもしくはそれ以上の外部デバイス８１８、ユーザがコンピュータ・システム／サーバ８０２と対話することを可能にする１つもしくはそれ以上のデバイス、またはコンピュータ・システム／サーバ８０２が１つもしくはそれ以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例、ネットワーク・カード、モデムなど）、あるいはその組み合わせと通信してもよい。こうした通信は、入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース８２２を介して起こり得る。さらに、コンピュータ・システム／サーバ８０２はネットワーク・アダプタ８２４を介して、たとえばローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、もしくは公共ネットワーク（例、インターネット）、またはその組み合わせなどの１つまたはそれ以上のネットワークと通信できる。示されるとおり、ネットワーク・アダプタ８２４は、バス８０８を介してコンピュータ・システム／サーバ８０２のその他のコンポーネントと通信する。図示されていないが、コンピュータ・システム／サーバ８０２とともに他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方が用いられ得ることが理解されるべきである。その例はマイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどを含むが、それに限定されない。
【００６５】
「ある実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔｓ）」、「その実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「それらの実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「１つまたはそれ以上の実施形態」、「いくつかの実施形態」、および「１つの実施形態」という用語は、別様に明確に規定されない限り、「本発明（単数または複数）の１つまたはそれ以上の（ただしすべてではない）実施形態」を意味する。
【００６６】
「含む（ｉｎｃｌｕｄｉｎｇ）」、「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「有する」という用語およびそれらの変形は、別様に明確に規定されない限り、「含むがそれに限定されない」を意味する。
【００６７】
列挙される項目のリストは、別様に明確に規定されない限り、任意またはすべての項目が互いに排他的であることを意味するものではない。
【００６８】
「ａ」、「ａｎ」、および「ｔｈｅ」という用語は、別様に明確に規定されない限り、「１つまたはそれ以上」を意味する。
【００６９】
別様に明確に規定されない限り、互いに通信するデバイスは、互いに継続的に通信する必要はない。加えて、互いに通信するデバイスは直接通信してもよいし、１つまたはそれ以上の中間物を通じて間接的に通信してもよい。
【００７０】
互いに通信するいくつかのコンポーネントを有する実施形態の記載は、こうしたコンポーネントがすべて必要であることを意味するものではない。反対に、本発明の多様な可能な実施形態を例示するためにさまざまな任意のコンポーネントが記載されている。
【００７１】
本明細書において単一のデバイスまたは物品が記載されるとき、単一のデバイス／物品の代わりに２つ以上のデバイス／物品（それらが協働してもしなくても）が用いられてもよいことが容易に明らかとなるだろう。同様に、本明細書において２つ以上のデバイスまたは物品が記載されるとき（それらが協働してもしなくても）、２つ以上のデバイスまたは物品の代わりに単一のデバイス／物品が用いられてもよいし、示される数のデバイスまたは物品の代わりに異なる数のデバイス／物品が用いられてもよいことが容易に明らかとなるだろう。あるデバイスの機能もしくは特徴またはその両方が、こうした機能／特徴を有することが明確に記載されていない１つまたはそれ以上の他のデバイスによって代替的に具現化されてもよい。よって、本発明の他の実施形態はそのデバイス自体を含む必要はない。
【００７２】
本発明のさまざまな実施形態の前述の記載は、例示および説明の目的のために提供されたものである。網羅的になったり、開示される厳密な形に本発明を限定したりすることは意図されていない。上の教示に鑑みて、多くの修正および変更が可能である。本発明の範囲は、この詳細な説明ではなく、添付される請求項によって限定されることが意図される。上記の明細書、実施例、およびデータは、本発明の構成の製造および使用の完全な説明を提供する。
【図１】
2020521247.tif 000003
【図２】
2020521247.tif 000004
【図３】
2020521247.tif 000005
【図４】
2020521247.tif 000006
【図５】
2020521247.tif 000007
【図６】
2020521247.tif 000008
【図７】
2020521247.tif 000009
【図８】
2020521247.tif 000010
【手続補正書】
【提出日】令和2年5月26日(2020.5.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するためのコンピュータ・プログラムであって、
前記プログラムの命令はプロセッサによって実行される動作を含み、
前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、コンピュータ・プログラム。
【請求項２】
前記転送時間は、前記ソース・ストレージにおけるキャッシュの利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間を含み、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記ターゲット・ストレージに前記転送するステップは、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの少なくとも一部分を転送するために前記キャッシュを使用するステップであって、前記リリース・スペースを前記解放するステップは、前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュおよび前記ターゲット・ストレージの少なくとも一方にコピーするステップに応答して行われる、ステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データを前記キャッシュから前記ターゲット・ストレージに転送するステップとを含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記キャッシュの前記利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための前記転送時間を前記判断するステップは、
前記応答時間の間に前記キャッシュの前記利用可能なスペースに転送され得る、前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分と、前記残りの一貫性グループ・データの前記第１の部分を除く前記残りの一貫性グループ・データを含む、前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分とを定めるステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するための時間が前記応答時間を超えるかどうかを判断するステップとを含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間を含む前記転送時間は前記応答時間を超えない、請求項２に記載のコンピュータ・プログラム。
【請求項４】
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分は、前記応答時間の間に前記キャッシュに転送された前記リリース・スペースに対する残りの一貫性グループ・データが前記キャッシュから前記ターゲット・ストレージに転送される間に、前記応答時間の間に前記キャッシュに転送され得るデータの量を含み、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分は、キャッシュ限度と、前記応答時間中の前記キャッシュから前記ターゲット・ストレージへのキャッシュ転送速度との関数である、請求項３に記載のコンピュータ・プログラム。
【請求項５】
前記転送時間が前記応答時間を超えないときに前記リリース・スペースに対する前記残りの一貫性グループ・データを前記転送するステップは、
前記転送時間を最小化するように前記第１の部分および前記第２の部分を定めるステップと、
前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュにコピーするステップと、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップとを含む、請求項３に記載のコンピュータ・プログラム。
【請求項６】
前記ソース・ストレージは第１のストレージ・システムにあり、前記ターゲット・ストレージは第２のストレージ・システムにあり、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記転送するステップは、前記キャッシュを用いることなく前記第１のストレージ・システムのストレージ・アダプタから前記第１のストレージ・システムのネットワーク・アダプタから前記第２のストレージ・システムに転送するためのネットワークへと前記第２の部分を転送するステップを含む、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を転送するための前記時間は、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分の量を、前記第１のストレージ・システムからの固定量のデータにアクセスして前記ストレージ・アダプタおよび前記ネットワーク・アダプタを通じて前記第２のストレージ・システムまで転送するための推定時間を含む推定転送速度で割ったものを含む、請求項６に記載のコンピュータ・プログラム。
【請求項８】
前記リリース・スペースに対する前記残りの一貫性グループ・データを転送するための時間が前記応答時間を超えるという判断に応答して、
最後の一貫性グループが完了して前記ターゲット・ストレージにコピーされてからの時間がリカバリ・ポイント目標時間よりも短いかどうかを判断するステップと、
前記最後の一貫性グループが完了してからの前記時間が前記リカバリ・ポイント目標時間よりも短いという判断に応答して、形成中の前記一貫性グループをキャンセルするステップと、
前記一貫性グループをキャンセルするステップに応答して、スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを行う、請求項１に記載のコンピュータ・プログラム。
【請求項９】
前記動作はさらに、
前記応答時間、リカバリ・ポイント目標時間、およびキャッシュ限度に対する優先度を示すステップであって、前記キャッシュ限度は一貫性グループに対するデータを転送するために使用するキャッシュのスペースの最大量を示す、ステップと、
前記キャッシュ限度によって規定された前記キャッシュの第１の利用可能なスペースを用いる前記転送時間が前記応答時間を超えており、かつ最後の一貫性グループが完了してからの時間が前記リカバリ・ポイント目標時間を超えるという判断に応答して、前記優先度を用いて、前記一貫性グループをキャンセルするステップと、前記キャッシュの前記第１の利用可能なスペースを用いて前記リリース・スペースに対する前記残りの一貫性グループ・データの第１の部分を前記ターゲット・ストレージに転送し、前記残りの一貫性グループ・データの前記第１の部分を除く前記リリース・スペースに対する前記残りの一貫性グループ・データを含む前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの第２の利用可能なスペースを使用するステップとのうちの１つを行うかどうかを判断するステップとを含む、請求項１に記載のコンピュータ・プログラム。
【請求項１０】
前記優先度を前記用いるステップは、
前記リカバリ・ポイント目標時間が前記キャッシュ限度よりも高い優先度を有し、かつ前記キャッシュ限度が前記応答時間よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記ターゲット・ストレージに転送するために前記キャッシュの前記第１の利用可能なスペースを用い、かつ前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分を前記ターゲット・ストレージに転送するステップと、
前記リカバリ・ポイント目標時間が前記応答時間よりも高い優先度を有し、かつ前記応答時間が前記キャッシュ限度よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュに転送するために、前記キャッシュ限度を超えて前記キャッシュの前記第２の利用可能なスペースを使用するステップとを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
前記優先度を前記用いるステップは、
前記キャッシュ限度が前記リカバリ・ポイント目標時間よりも高い優先度を有し、かつ前記リカバリ・ポイント目標時間が前記応答時間よりも高い優先度を有することに応答して、前記キャッシュの前記第１の利用可能なスペースを使用して前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を転送するステップと、
前記キャッシュ限度が前記応答時間よりも高い優先度を有し、かつ前記応答時間が前記リカバリ・ポイント目標時間よりも高い優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１２】
前記優先度を前記用いるステップは、
前記応答時間が前記リカバリ・ポイント目標時間よりも高い優先度を有し、かつ前記リカバリ・ポイント目標時間がキャッシュ限度よりも高い優先度を有することに応答して、前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分を前記キャッシュの前記第２の利用可能なスペースに転送するステップと、
前記応答時間が前記キャッシュ限度よりも高い優先度を有し、かつ前記キャッシュ限度が前記リカバリ・ポイント目標時間よりも高い優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１３】
前記優先度を前記用いるステップは、
前記キャッシュ限度が最低の前記優先度を有することに応答して、前記キャッシュ限度を超えて前記キャッシュに前記残りの一貫性グループ・データの前記第１の部分をコピーするステップであって、
前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第２の部分は、
前記応答時間が最低の前記優先度を有することに応答して、前記キャッシュ限度以内で前記キャッシュに前記リリース・スペースに対する前記残りの一貫性グループ・データの前記第１の部分をコピーし、かつ前記キャッシュ限度を超える前記リリース・スペースに対する前記残りの一貫性グループ・データの第２の部分を前記ターゲット・ストレージに転送するステップと、
前記リカバリ・ポイント目標時間が最低の前記優先度を有することに応答して、前記一貫性グループを落とし、前記一貫性グループを落とすことに応答して前記リリース・スペースの前記解放を行うステップとを含む、請求項９に記載のコンピュータ・プログラム。
【請求項１４】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにスペース・リリース・コマンドを処理するためのシステムであって、
プロセッサと、
前記プログラムの命令は前記プロセッサによって実行される動作とを含み、
前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、システム。
【請求項１５】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するための方法であって、
前記プログラムの命令はプロセッサに実行される動作を含み、前記動作は、
一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、
転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、
前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、
前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、方法。
【請求項１６】
ソース・ストレージにおけるデータをターゲット・ストレージにミラーリングするときにコンピュータ・システムにおいてスペース・リリース・コマンドを処理するためのコンピュータ・プログラムであって、一貫性グループにおいて変更されたデータを転送しているときに前記ソース・ストレージにおけるリリース・スペースを解放するためのスペース・リリース・コマンドを受信するステップと、転送されていない前記リリース・スペースに対する前記一貫性グループの残りの一貫性グループ・データを転送するための転送時間が、スペース・リリース・コマンドを処理するための応答時間を超えるかどうかを判断するステップと、前記転送時間が前記応答時間を超えないという判断に応答して、前記リリース・スペースの前記残りの一貫性グループ・データを前記ターゲット・ストレージに転送するステップと、前記リリース・スペースの前記一貫性グループ・データを前記ターゲット・ストレージに転送するステップに応答して、前記スペース・リリース・コマンドに対する前記リリース・スペースを解放するステップとを含む、コンピュータ・プログラム。
【国際調査報告】
2020521247.tif 000011
2020521247.tif 000012