(57)【要約】【課題】リモートコピー又はローカルコピーが実行される計算機システムにおいて、ストレージシステムの記憶容量を効率的に使用する。【解決手段】ホスト計算機に接続される第１ストレージシステムと、前記第１ストレージシステムに接続される第２ストレージシステムと、を含む計算機システムにおいて、前記第１ストレージシステムは、ホスト計算機が論理的な記憶領域と認識する第１論理ボリュームを設定し、前記第１論理ボリュームは、複数の第１記憶領域からなり、少なくとも一つの前記第１記憶領域には、第１ドライブ上の第１実記憶領域が割り当てられ、前記第２ストレージシステムは、前記第１論理ボリュームに対応する第２論理ボリュームを設定し、前記第１ストレージシステムは、前記第１記憶領域に前記第１実記憶領域が割り当てられている場合、前記第１記憶領域のデータを前記第２ストレージシステムに送信する。【選択図】図１
2007133822.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機と、前記ホスト計算機にネットワークを介して接続される第１ストレージシステムと、前記第１ストレージシステムにネットワークを介して接続される第２ストレージシステムと、を備える計算機システムにおいて、
前記第１ストレージシステムは、ネットワークに接続される一つ以上の第１インターフェースと、前記一つ以上の第１インターフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、前記ホスト計算機から書き込み要求されたデータを格納する一つ以上の第１ドライブと、を備え、前記ホスト計算機が論理的な記憶領域と認識する第１論理ボリュームを設定し、
前記第１論理ボリュームは、複数の第１記憶領域からなり、
少なくとも一つの前記第１記憶領域には、前記第１ドライブ上の第１実記憶領域が割り当てられ、
前記第２ストレージシステムは、ネットワークに接続される一つ以上の第２インターフェースと、前記一つ以上の第２インターフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、前記第１ストレージシステムから送信されたデータを格納する一つ以上の第２ドライブと、を備え、前記第１論理ボリュームに対応する第２論理ボリュームを設定し、
前記第１プロセッサは、各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを判定し、前記第１記憶領域に前記第１実記憶領域が割り当てられていると判定された場合、前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする計算機システム。
【請求項２】
前記第１メモリは、
各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを示す領域管理情報と、
前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを前記第２ストレージシステムに送信する必要があるか否かを示す差分情報を含む差分情報マップと、を保持し、
前記第１プロセッサは、前記領域管理情報を参照し、前記差分情報に対応する前記第１記憶領域の少なくとも一部に前記第１実記憶領域が割り当てられている場合、前記差分情報を有効にすることを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記第１プロセッサは、
前記差分情報が有効であるか否かを判定し、
前記差分情報が有効である場合、前記差分情報に対応する前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記第２論理ボリュームは、前記複数の第１記憶領域に対応する複数の第２記憶領域からなり、
前記第２プロセッサは、
前記第１プロセッサによって前記第１ストレージシステムから送信されたデータに対応する前記第１記憶領域に対応する前記第２記憶領域に前記第２ドライブ上の第２実記憶領域を割り当て、
前記第１ストレージシステムから送信されたデータを前記割り当てられた第２実記憶領域に格納することを特徴とする請求項３に記載の計算機システム。
【請求項５】
前記第１プロセッサは、
前記第１論理ボリュームに割り当てられるために確保されている前記第１実記憶領域からなる第１プールの容量と、前記第２論理ボリュームに割り当てられるために確保されている前記第２実記憶領域からなる第２プールの容量とを比較し、
前記第１プールの容量と前記第２プールの容量とが同じである場合、有効な前記差分情報に対応する前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記第１プロセッサは、
前記第１プールの容量が追加されたか否かを判定し、
前記第１プールの容量が追加された場合、前記第１プールに追加された容量と同じ容量を前記第２プールに追加する指示を、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項５に記載の計算機システム。
【請求項７】
前記第１プロセッサは、
前記第１プールに所定の容量を追加し、
前記第２プールに前記所定の容量を追加する指示を、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項５に記載の計算機システム。
【請求項８】
ホスト計算機と、前記ホスト計算機にネットワークを介して接続される第１ストレージシステムと、前記第１ストレージシステムにネットワークを介して接続される第２ストレージシステムと、前記第１ストレージシステム及び前記第２ストレージシステムと管理ネットワークを介して接続される管理計算機と、を備える計算機システムにおいて、
前記第１ストレージシステムは、ネットワークに接続される一つ以上の第１インターフェースと、前記管理ネットワークに接続される第１管理インターフェースと、前記一つ以上の第１インターフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、前記ホスト計算機から書き込み要求されたデータを格納する一つ以上の第１ドライブと、を備え、前記ホスト計算機が論理的な記憶領域と認識する第１論理ボリュームを設定し、
前記第１論理ボリュームは、複数の第１記憶領域からなり、
少なくとも一つの前記第１記憶領域には、前記第１ドライブ上の第１実記憶領域が割り当てられ、
前記第２ストレージシステムは、ネットワークに接続される一つ以上の第２インターフェースと、前記一つ以上の第２インターフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、前記第１ストレージシステムから送信されたデータを格納する一つ以上の第２ドライブと、を備え、前記第１論理ボリュームに対応する第２論理ボリュームを設定し、
前記第１プロセッサは、各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを判定し、前記第１記憶領域に前記第１実記憶領域が割り当てられていると判定された場合、前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする計算機システム。
【請求項９】
前記第１メモリは、
各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを示す領域管理情報と、
データを前記第２ストレージシステムに送信する必要がある前記第１記憶領域を示す差分情報を含む差分情報マップと、を保持し、
前記第１プロセッサは、前記領域管理情報を参照し、前記差分情報に対応する前記第１記憶領域の少なくとも一部に前記第１実記憶領域が割り当てられている場合、前記差分情報を有効にすることを特徴とする請求項８に記載の計算機システム。
【請求項１０】
前記第１プロセッサは、
前記差分情報が有効であるか否かを判定し、
前記差分情報が有効である場合、前記差分情報に対応する前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記第２論理ボリュームは、前記複数の第１記憶領域に対応する複数の第２記憶領域からなり、
前記第２プロセッサは、
前記第１プロセッサによって前記第１ストレージシステムから送信されたデータに対応する前記第１記憶領域に対応する前記第２記憶領域に前記第２ドライブ上の第２実記憶領域を割り当て、
前記第１ストレージシステムから送信されたデータを前記割り当てられた第２実記憶領域に格納することを特徴とする請求項１０に記載の計算機システム。
【請求項１２】
前記第１プロセッサは、
前記第１論理ボリュームに割り当てられるために確保されている前記第１実記憶領域からなる第１プールの容量と、前記第２論理ボリュームに割り当てられるために確保されている前記第２実記憶領域からなる第２プールの容量とを比較し、
前記第１プールの容量が前記第２プールの容量より少ない場合、前記第１プールの容量を追加することを促す情報を、前記第１管理インターフェースを介して前記管理計算機に送信し、
前記第２プールの容量が前記第１プールの容量より少ない場合、前記第２プールの容量を追加することを促す情報を、前記第１管理インターフェースを介して前記管理計算機に送信し、
前記第１プールの容量と前記第２プールの容量とが同じである場合、有効な前記差分情報に対応する前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項１１に記載の計算機システム。
【請求項１３】
前記第１プロセッサは、
前記第１プールの容量が追加されたか否かを判定し、
前記第１プールの容量が追加された場合、前記第１プールに追加された容量と同じ容量を前記第２プールに追加する指示を、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項１２に記載の計算機システム。
【請求項１４】
前記管理計算機は、前記第１ストレージシステムに対して、前記第１プールに所定の容量を追加する指示を送信し、
前記指示を受信すると、前記第１プロセッサは、
前記第１プールに前記所定の容量を追加し、
前記第２プールに前記所定の容量を追加する指示を、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする請求項１２に記載の計算機システム。
【請求項１５】
前記管理計算機は、前記第１ストレージシステム及び前記第２ストレージシステムに対して、前記第１プール及び前記第２プールに所定の容量を追加する指示を送信し、
前記指示を受信すると、前記第１プロセッサは、前記第１プールに前記所定の容量を追加し、
前記指示を受信すると、前記第２プロセッサは、前記第２プールに前記所定の容量を追加することを特徴とする請求項１２に記載の計算機システム。
【請求項１６】
ホスト計算機と、前記ホスト計算機にネットワークを介して接続される第１ストレージシステムと、前記第１ストレージシステムにネットワークを介して接続される第２ストレージシステムと、を備える計算機システムの制御方法において、
前記第１ストレージシステムは、前記ホスト計算機から書き込み要求されたデータを格納する一つ以上の第１ドライブを備え、前記ホスト計算機が論理的な記憶領域と認識する第１論理ボリュームを設定し、
前記第１論理ボリュームは、複数の第１記憶領域からなり、
少なくとも一つの前記第１記憶領域には、前記第１ドライブ上の第１実記憶領域が割り当てられ、
前記第２ストレージシステムは、前記第１ストレージシステムから送信されたデータを格納する一つ以上の第２ドライブを備え、前記第１論理ボリュームに対応する第２論理ボリュームを設定し、
前記制御方法は、
各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを判定し、
前記第１記憶領域に前記第１実記憶領域が割り当てられていると判定された場合、前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを前記第２ストレージシステムに送信することを特徴とする制御方法。
【請求項１７】
前記第１メモリは、
各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを示す領域管理情報と、
データを前記第２ストレージシステムに送信する必要がある前記第１記憶領域を示す差分情報を含む差分情報マップと、を保持し、
前記制御方法は、
前記領域管理情報を参照し、
前記差分情報に対応する前記第１記憶領域の少なくとも一部に前記第１実記憶領域が割り当てられている場合、前記差分情報を有効にすることを特徴とする請求項１６に記載の制御方法。
【請求項１８】
前記差分情報が有効であるか否かを判定し、
前記差分情報が有効である場合、前記差分情報に対応する前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを前記第２ストレージシステムに送信することを特徴とする請求項１７に記載の制御方法。
【請求項１９】
前記第２論理ボリュームは、前記複数の第１記憶領域に対応する複数の第２記憶領域からなり、
前記制御方法は、
前記第１ストレージシステムから送信されたデータに対応する前記第１記憶領域に対応する前記第２記憶領域に前記第２ドライブ上の第２実記憶領域を割り当て、
前記第１ストレージシステムから送信されたデータを前記割り当てられた第２実記憶領域に格納することを特徴とする請求項１８に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、一つ以上のストレージシステムを含む計算機システムに関し、特に、記憶領域を仮想化する仮想化環境におけるデータコピーに関する。
【背景技術】
【０００２】
ストレージシステムは、そのストレージシステムを使用する計算機に対して、所定の容量の記憶領域を割り当てる。ストレージシステムの記憶容量を効率的に使用するためには、計算機が必要とする容量の記憶領域を割り当てることが望ましい。しかし、計算機が扱うデータ量が増大すると、割り当てられた記憶領域の容量が不足する場合がある。一方、当初から十分に大きい容量の記憶領域を割り当てれば、容量の不足を防ぐことができる。しかし、計算機が実際には大量のデータを扱わなかった場合、割り当てられた記憶領域の中に使用されない部分が存在し、記憶容量の使用効率が低下する。
【０００３】
特許文献１には、計算機に接続される仮想化装置と、仮想化装置に接続される複数のストレージシステムとを備える計算機システムが開示されている。この仮想化装置は、計算機に所定の大きさの仮想ボリュームを割り当てる。そして、計算機から仮想ボリュームに対するアクセス要求を受けたとき、そのアクセス要求に応じてストレージシステムの実際の記憶領域（実領域）を仮想ボリュームに割り当てる。仮想ボリュームの大きさを十分に大きくすれば、計算機が扱うデータ量の増大に対応することができる。一方、仮想ボリュームが計算機から実際にアクセス要求を受けたときに、必要な実領域が割り当てられるため、ストレージシステムの記憶容量を効率的に使用することができる。
【０００４】
一方、ストレージシステムに格納されたデータをシステム障害又は災害等から保護し、業務を継続するための技術として、ローカルコピー技術及びリモートコピー技術が知られている。ローカルコピーとは、ストレージシステム内の記憶領域のデータを、同じストレージシステム内の別の記憶領域に複製する技術である。リモートコピーとは、ストレージシステム内の記憶領域のデータを、別のストレージシステム内の記憶領域に複製する技術である（例えば、特許文献２参照）。
【特許文献１】特開２００５−１１３１６号公報
【特許文献２】特開２００３−１２２５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
リモートコピー又はローカルコピーを実行するためには、コピー元の記憶領域に加え、複製されたデータが格納されるコピー先の記憶領域を確保する必要がある。通常、コピー先として確保される記憶領域の容量は、コピー元の記憶領域の容量と同じである必要がある。このため、コピー元の記憶領域に未使用の部分がある場合、コピー先の記憶領域を確保することによって、未使用の部分の容量が倍になる。この場合にも、上記特許文献１に開示された仮想化技術を適用することによって、ストレージシステムの記憶容量を効率的に使用できることが期待される。
【０００６】
しかし、リモートコピー等を実行する計算機システムに上記仮想化技術を適用した場合、仮想ボリュームのプール容量が不足すると、リモートコピー等を正常に実行することができなくなる。また、コピーペアを形成するときに、コピー元の記憶領域の全体がコピー先にコピーされるため、コピー先の仮想ボリューム全体に実領域が割り当てられてしまう。さらに、ペア操作を実行することによって不要となった実領域があっても、その実領域が解放されない。このため、不要となった実領域を他の仮想ボリュームのために再利用することができない。このように、リモートコピー等を実行する計算機システムに従来の仮想化技術を適用しても、ストレージシステムの記憶容量を十分に効率的に使用することができなかった。
【課題を解決するための手段】
【０００７】
本願で開示する代表的な発明は、ホスト計算機と、前記ホスト計算機にネットワークを介して接続される第１ストレージシステムと、前記第１ストレージシステムにネットワークを介して接続される第２ストレージシステムと、を備える計算機システムにおいて、前記第１ストレージシステムは、ネットワークに接続される一つ以上の第１インターフェースと、前記一つ以上の第１インターフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、前記ホスト計算機から書き込み要求されたデータを格納する一つ以上の第１ドライブと、を備え、前記ホスト計算機が論理的な記憶領域と認識する第１論理ボリュームを設定し、前記第１論理ボリュームは、複数の第１記憶領域からなり、少なくとも一つの前記第１記憶領域には、前記第１ドライブ上の第１実記憶領域が割り当てられ、前記第２ストレージシステムは、ネットワークに接続される一つ以上の第２インターフェースと、前記一つ以上の第２インターフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、前記第１ストレージシステムから送信されたデータを格納する一つ以上の第２ドライブと、を備え、前記第１論理ボリュームに対応する第２論理ボリュームを設定し、前記第１プロセッサは、各前記第１記憶領域に前記第１実記憶領域が割り当てられているか否かを判定し、前記第１記憶領域に前記第１実記憶領域が割り当てられていると判定された場合、前記第１記憶領域に割り当てられた前記第１実記憶領域に格納されたデータを、前記第１インターフェースを介して前記第２ストレージシステムに送信することを特徴とする。
【発明の効果】
【０００８】
本発明の一形態によれば、リモートコピー又はローカルコピーが実行される計算機システムにおいても、ストレージシステムの記憶容量を効率的に使用することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１０】
図１は、本発明の実施の形態の計算機システムの構成を示すブロック図である。
【００１１】
本実施の形態の計算機システムは、ストレージシステム１００、ストレージシステム１３０、ホスト１５０、管理サーバ１６０及び管理端末１７０を備える。ストレージシステム１００は、ストレージネットワーク１５５を介してホスト１５０と接続される。ストレージシステム１３０は、ストレージネットワーク１２５を介してストレージシステム１００と接続される。管理サーバ１６０は、管理ネットワーク１６５を介して、ストレージシステム１００及びストレージシステム１３０と接続される。
【００１２】
ホスト１５０は、ストレージシステム１００を使用する計算機である。ホスト１５０は、アプリケーションプログラム（図示省略）を実行し、必要に応じて、ストレージシステム１００に対してデータの書き込み要求又は読み出し要求を発行する。
【００１３】
管理サーバ１６０は、ストレージシステム１００及び１３０を管理する計算機である。管理サーバ１６０は、相互に接続されたプロセッサ１６１、メモリ１６２及び管理インターフェース（管理Ｉ／Ｆ）１０５を備える。
【００１４】
プロセッサ１６１は、メモリ１６２に格納された各種のプログラムを実行する。
【００１５】
メモリ１６２は、例えば、半導体メモリである。メモリ１６２は、プロセッサ１６１によって実行されるプログラム等を格納する。本実施の形態のメモリ１６２には、少なくとも、管理ツール１６３が格納される。管理ツール１６３は、ストレージシステム１００等を管理するために実行されるプログラムである（後述）。
【００１６】
管理Ｉ／Ｆ１０５は、管理ネットワーク１６５に接続されるインターフェースである。管理サーバ１６０の管理Ｉ／Ｆ１０５は、ストレージシステム１００等と通信する。
【００１７】
図１の管理サーバ１６０は、管理ネットワーク１６５を介してストレージシステム１００及びストレージシステム１３０と接続されている。しかし、本実施の形態の管理サーバ１６０は、管理ネットワーク１６５を介してストレージシステム１３０と接続されなくてもよい。後で説明するように、ストレージシステム１００とストレージシステム１３０は地理的に離れた場所に設置される場合があるためである。この場合、管理サーバ１６０は、管理ネットワーク１６５、ストレージシステム１００及びストレージネットワーク１２５を介してストレージシステム１３０を管理する。
【００１８】
管理端末１７０は、システム管理者が管理サーバ１６０を操作するために使用する端末である。管理端末１７０は、入力装置（図示省略）及び表示画面（図示省略）等を備えてもよい。なお、一つの計算機が管理サーバ１６０と管理端末１７０とを兼ねてもよい。
【００１９】
ストレージシステム１００は、ホスト１５０によって使用される記憶装置である。具体的には、ストレージシステム１００は、ホスト１５０からデータの書き込み要求を受けると、そのデータをドライブ１０３（後述）に格納する。一方、ホスト１５０からデータの読み出し要求を受けると、そのデータをドライブ１０３から読み出してホスト１５０に応答する。
【００２０】
本実施の形態のストレージシステム１００は、相互に接続されたプロセッサ１０１、メモリ１０２、ドライブ１０３、インターフェース（Ｉ／Ｆ）１０４及び管理Ｉ／Ｆ１０５を備える。
【００２１】
プロセッサ１０１は、メモリ１０２に格納された各種のプログラムを実行する。
【００２２】
メモリ１０２は、例えば、半導体メモリである。メモリ１０２は、プロセッサ１０１によって実行される各種のプログラム及びそれらのプログラムが使用する情報を格納する。これらのプログラム及び情報については、後で詳細に説明する。
【００２３】
ドライブ１０３は、ホスト１５０によって書き込まれたデータを格納する装置である。本実施の形態のドライブ１０３は、例えば、ハードディスクドライブである。本実施の形態のストレージシステム１００は、複数のドライブ１０３を備えてもよい。複数のドライブ１０３は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成してもよい。この場合、所定の数のドライブ１０３がパリティグループ（図示省略）を構成してもよい。パリティグループについては、後で説明する。
【００２４】
ストレージシステム１００は、任意の記憶容量の論理ボリューム（図示省略）を設定することができる。論理ボリュームとは、ホスト１５０が一つの記憶装置として認識する論理的な記憶領域である。
【００２５】
Ｉ／Ｆ１０４は、ストレージネットワーク１２５又は１５５に接続され、ホスト１５０又は他のストレージシステムと通信するインターフェースである。図１には二つのＩ／Ｆ１０４を示すが、ストレージシステム１００は三つ以上のＩ／Ｆ１０４を備えてもよい。
【００２６】
管理Ｉ／Ｆ１０５は、管理ネットワーク１６５に接続されるインターフェースである。ストレージシステム１００の管理Ｉ／Ｆ１０５は、管理サーバ１６０と通信する。
【００２７】
なお、ストレージシステム１００は、データを一時的に格納するキャッシュ（図示省略）を備えてもよい。
【００２８】
ストレージシステム１３０は、ストレージシステム１００が格納するデータの複製を格納する記憶装置である。具体的には、ホスト１５０がストレージシステム１００の論理ボリュームにデータを書き込むと、そのデータがストレージシステム１００からＩ／Ｆ１０４及びストレージネットワーク１２５を経由してストレージシステム１３０に送信される。ストレージシステム１３０は、送信されたデータを受信し、論理ボリュームに格納する。言い換えると、ストレージシステム１００の論理ボリュームに書き込まれたデータが、ストレージシステム１３０の論理ボリュームにコピーされる。ストレージシステム１００に格納されたデータがホスト１５０によって更新されたとき、更新されたデータは、同様にしてストレージシステム１００からストレージシステム１３０に送信され、ストレージシステム１３０に格納される。このようにして一つのストレージシステムが格納するデータを別のストレージシステムにコピーすることは、リモートコピーと呼ばれる。
【００２９】
ストレージシステム１３０は、ストレージシステム１００から地理的に離れた場所に設置されてもよい。この場合、ストレージシステム１００が地震等の災害で停止しても、ストレージシステム１３０を使用することによってデータの消失及びシステムの完全な停止を防ぐことができる。
【００３０】
リモートコピーが実行されるストレージシステムのうち、ホスト１５０に近い（すなわち、上位の）ストレージシステム１００は、メインコントロールユニット（ＭＣＵ）とも記載される。一方、ホスト１５０から遠い（すなわち、下位の）ストレージシステム１３０は、リモートコントロールユニット（ＲＣＵ）とも記載される。
【００３１】
ストレージシステム１３０の構成は、ストレージシステム１００と同様である。このため、説明を省略する。図１のストレージシステム１３０には一つのＩ／Ｆ１０４のみを示すが、ストレージシステム１３０は複数のＩ／Ｆ１０４を備えてもよい。複数のＩ／Ｆ１０４のうち少なくとも一つは、ホスト１５０とは別のホスト（図示省略）と接続されてもよい。
【００３２】
ストレージシステム１００は、ストレージシステム１００内の論理ボリュームに格納されたデータの複製をストレージシステム１００内の別の論理ボリュームに格納することもできる。このようにして一つのストレージシステム内でデータをコピーすることは、ローカルコピーと呼ばれる。ストレージシステム１３０も、同様のローカルコピーを実行することができる。
【００３３】
リモートコピー及びローカルコピーにおいて、コピー元の論理ボリュームとコピー先の論理ボリュームの組は、ペアと記載される。各ペアにおいて、ホスト１５０に近い（すなわち、上位の）論理ボリュームは、正論理ボリューム（Ｐ−ＶＯＬ）とも記載される。一方、ホスト１５０から遠い（すなわち、下位の）論理ボリュームは、副論理ボリューム（Ｓ−ＶＯＬ）とも記載される。
【００３４】
各ペアは、種々の状態となり得る。
【００３５】
データがコピーされた結果、Ｐ−ＶＯＬとＳ−ＶＯＬとに同一のデータが格納された（すなわち、データが二重化された）状態は、「同期」状態である。「同期」状態においてＰ−ＶＯＬのデータが更新された場合、更新されたデータはＳ−ＶＯＬにコピーされる。このような更新されたデータのコピーは、更新コピーとも記載される。「同期」状態のペアにおいてはこのような更新コピーが実行されるため、「同期」状態は、「更新コピー中」とも記載される。
【００３６】
データのコピーが停止した状態は、「サスペンド（SUSPEND）」状態である。「サスペンド」状態のペアにおいて、Ｓ−ＶＯＬにはＰ−ＶＯＬと異なるデータが格納されている場合がある。
【００３７】
形成コピーを実行している状態は、「形成コピー中」状態である。形成コピー処理については、後で詳細に説明する。
【００３８】
「サスペンド」状態及び「形成コピー中」状態においては、差分ビットマップを用いた差分管理が実行される。このため、「サスペンド」状態及び「形成コピー中」状態は、「差分管理中」とも記載される。差分ビットマップ及びその使用方法については、後で詳細に説明する。
【００３９】
ストレージシステム１００等は、各ペアに種々の操作をすることができる。
【００４０】
操作「スプリット（SPRIT）」は、「同期」状態のペアを「サスペンド」状態に変更するために実行される。スプリットが実行されると、以後、Ｐ−ＶＯＬからＳ−ＶＯＬへのデータのコピーが実行されない。
【００４１】
操作「リシンク（RESYNC）」は、「サスペンド」状態のペアを「同期」状態に変更するために実行される。リシンクが実行されると、Ｐ−ＶＯＬに格納されたデータのうち、少なくともＳ−ＶＯＬに格納されたものと異なるデータがＳ−ＶＯＬにコピーされる。その結果、Ｓ−ＶＯＬには、Ｐ−ＶＯＬと同一のデータが格納される。
【００４２】
操作「リストア（RESTORE）」は、「サスペンド」状態のペアを「同期」状態に変更するために実行される。リストアが実行されると、Ｓ−ＶＯＬに格納されたデータのうち、少なくともＰ−ＶＯＬに格納されたものと異なるデータがＰ−ＶＯＬにコピーされる。その結果、Ｐ−ＶＯＬには、Ｓ−ＶＯＬと同一のデータが格納される。リストアは、「リバースリシンク（REVERCE-RESYNC）」とも呼ばれる。
【００４３】
異なるペアに属する複数の論理ボリュームに、互いに関連のあるデータが格納されている場合、それらのペアの一つが「サスペンド」状態となったときに、他のペアも「サスペンド」状態としなければならない場合がある。このような関係にある複数のペアの集合は、ボリュームグループと呼ばれる。ボリュームグループのうち、さらに、書き込みの順序を保証しなければならないものは、特に、コンシステンシグループ（ＣＴＧ）と呼ばれる。例えば、二つのペアがＣＴＧを構成する場合、ＣＴＧに属する二つのＰ−ＶＯＬに順次書き込まれたデータは、それと同じ順序で、それぞれのＰ−ＶＯＬとペアを形成するＳ−ＶＯＬにコピーされなければならない。
【００４４】
次に、ストレージシステム１００等が備える仮想化機能について説明する。
【００４５】
システム管理者は、ストレージシステム１００等に、任意の容量の仮想ボリュームを設定することができる。仮想ボリュームとは、ストレージシステム１００等がホスト１５０に認識させる仮想的な論理ボリュームである。
【００４６】
システム管理者が仮想ボリュームを設定した時点で、仮想ボリューム内の記憶領域（例えば、論理ブロック）には、実際の記憶領域（すなわち、ドライブ１０３上の物理的な記憶領域。以下、実領域と記載する）が割り当てられていない。ホスト１５０から仮想ボリューム内の記憶領域へのデータの書き込み要求があったとき、その記憶領域に実領域が割り当てられていない場合、ストレージシステム１００等は、その記憶領域に実領域を割り当てる。そして、割り当てられた実領域にデータを格納する。
【００４７】
なお、以下の説明において、「記憶領域のデータ」及び「記憶領域に格納されたデータ」とは、その記憶領域に対応する実領域に格納されたデータを意味する。また、「記憶領域にデータを格納する」とは、その記憶領域に対応する実領域にデータを格納することを意味する。
【００４８】
このように、ホスト１５０から書き込み要求があった記憶領域のみに実領域を割り当てる技術によって、容量が限られたドライブ１０３上の実領域を効率的に使用することができる。
【００４９】
システム管理者は、仮想ボリュームに割り当てられる実領域を確保しなければならない。確保された実領域は、プールと呼ばれる。仮想ボリューム内のまだ実領域が割り当てられていない記憶領域にホスト１５０から書き込み要求があったとき、その仮想ボリュームに対応するプール内の、まだ仮想ボリュームに割り当てられていない実領域が当該記憶領域に新たに割り当てられる。プール内の全ての実領域が仮想ボリュームに割り当てられた場合、システム管理者がそのプールに新たな実領域を追加しない限り、その仮想ボリュームにそれ以上の実領域を割り当てることができない。
【００５０】
次に、本実施の形態のメモリ１０２に格納されるプログラム等について説明する。
【００５１】
本実施の形態のメモリ１０２には、仮想ボリューム管理プログラム１１１、リモートコピープログラム１１２、コピー管理プログラム１１３、Ｉ／Ｏ制御プログラム１１４、領域管理情報１１５、ペア情報１１６、プール管理情報１１７及びコピー要否情報１１８が格納される。
【００５２】
仮想ボリューム管理プログラム１１１は、ストレージシステム１００等に設定される仮想ボリュームを管理するプログラムである。仮想ボリューム管理プログラム１１１は、少なくとも、運用中のプール容量調査処理及び運用中のプール容量追加処理（方法１）を実行する。これらの処理については、後で詳細に説明する。
【００５３】
リモートコピープログラム１１２は、ストレージシステム１００とストレージシステム１３０との間のリモートコピーを実行するプログラムである。このプログラムが実行するリモートコピーは従来のリモートコピーと同様であるため、詳細な説明を省略する。
【００５４】
コピー管理プログラム１１３は、リモートコピー及びローカルコピーの実行を管理するプログラムである。コピー管理プログラム１１３は、少なくとも、更新コピー管理処理、形成コピー処理、コピー処理、差分ビットマップ作成処理、リシンク処理、ボリュームグループのプールのマージ処理、ペア形成時のプール容量追加処理、運用中のプール容量追加処理（方法２）、及び、リシンク時のプール容量追加処理を実行する。これらの処理については、後で詳細に説明する。
【００５５】
Ｉ／Ｏ制御プログラム１１４は、ホスト１５０から受けたＩ／Ｏ要求（すなわち、書き込み要求又は読み出し要求）を処理するプログラムである。Ｉ／Ｏ制御プログラム１１４は、少なくとも、Ｉ／Ｏ処理を実行する。この処理については、後で詳細に説明する（図８参照）。
【００５６】
領域管理情報１１５は、各仮想ボリュームの記憶領域を管理する情報である。具体的には、領域管理情報１１５は、各仮想ボリュームの各記憶領域に実領域が割り当てられているか否かを示す割当ビットマップと、実領域が割り当てられている記憶領域について、記憶領域と実領域との対応を示すマッピングテーブル（図示省略）と、を含む。
【００５７】
割当ビットマップが保持する各ビットは、それぞれ、仮想ボリュームの所定の大きさの記憶領域に対応する。仮想ボリュームの記憶領域に実領域が割り当てられている場合、その記憶領域に対応するビットは「ＯＮ（有効）」である。一方、仮想ボリュームの記憶領域に実領域が割り当てられていない場合、その記憶領域に対応するビットは「ＯＦＦ（無効）」である。例えば、ビットの値「１」を「ＯＮ」、「０」を「ＯＦＦ」に対応させてもよい。以下の説明において、割当ビットマップが保持する各ビット（すなわち、仮想ボリュームの記憶領域に実領域が割り当てられているか否かを示すビット）を「割当ビット」と記載する。一つの割当ビットに対応する一つの記憶領域は、例えば、一つ又は複数の論理ブロックに相当する。
【００５８】
ペア情報１１６は、ストレージシステム１００等に形成されているペアを管理する情報である。具体的には、ペア情報１１６は、各ペアについて、Ｐ−ＶＯＬ及びＳ−ＶＯＬの識別子と、そのペアの状態を示す情報と、を含む。
【００５９】
プール管理情報１１７は、仮想ボリュームに対応するプールを管理する情報である。具体的には、プール管理情報１１７は、プールとして確保されている実領域を示すリスト（図示省略）と、空き領域の量を示すカウンタ（図示省略）と、を含む。ここで、空き領域とは、プールとして確保されているがまだ仮想ボリュームに割り当てられていない実領域である。また、空き領域の量とは、例えば、空き領域の論理ブロック数である。このカウンタの値と、論理ブロックの容量から、プールの空き容量を算出することができる。
【００６０】
コピー要否情報１１８は、リシンクを実行するときに論理ボリューム内のどの記憶領域のデータをコピーする必要があるかを示す情報である。具体的には、コピー要否情報１１８は、各記憶領域のデータをコピーする必要があるか否かを示す情報（ビット）からなる差分ビットマップを含む。差分ビットマップの各ビットは、通常、ペアがサスペンド状態となっているときに各記憶領域に書き込み要求があったか否かを示す。
【００６１】
ペアが「サスペンド」状態であるとき、Ｐ−ＶＯＬに書き込まれたデータ（新規に書き込まれたデータ又は更新されたデータ）は、Ｓ−ＶＯＬにコピーされない。したがって、「サスペンド」状態のペアに「リシンク」を実行するとき、Ｓ−ＶＯＬに格納されたデータをＰ−ＶＯＬと同一にする必要がある。このため、Ｐ−ＶＯＬの全ての記憶領域のデータをＳ−ＶＯＬにコピーしてもよい。しかし、このような全領域のコピーは多くの時間を要し、プロセッサ及びネットワーク等のハードウエアにも負担をかける。このため、コピー管理プログラム１１３は、リシンクを実行するときに差分ビットマップを参照する。
【００６２】
ＭＣＵ側の差分ビットマップ（すなわち、ストレージシステム１００のコピー要否情報１１８に含まれる差分ビットマップ）が保持する各ビットは、それぞれ、Ｐ−ＶＯＬ上の所定の大きさの記憶領域に対応する。Ｐ−ＶＯＬが属するペアが「同期」状態であるとき、差分ビットマップの全ビットは「ＯＦＦ（無効）」（例えば、「０」）である。Ｐ−ＶＯＬが属するペアが「サスペンド」状態であるとき、ホスト１５０がＰ−ＶＯＬに対するデータの書き込み要求を発行すると、Ｉ／Ｏ制御プログラム１１４が、そのデータが書き込まれた記憶領域に対応するビットを「ＯＮ（有効）」（例えば、「１」）に更新する。以下の説明において、差分ビットマップが保持する各ビットを「差分ビット」と記載する。一つの差分ビットに対応する一つの記憶領域は、例えば、一つ又は複数の論理ブロックに相当する。
【００６３】
一方、ＲＣＵ側のストレージシステム１３０のコピー要否情報１１８も、同様の差分ビットマップを含む。すなわち、このＲＣＵ側の差分ビットマップは、Ｓ−ＶＯＬの記憶領域に対応する差分ビットを保持する。そして、Ｓ−ＶＯＬが属するペアがサスペンド状態であるとき、ホスト１５０とは別のホスト（図示省略）がＳ−ＶＯＬに対するデータの書き込み要求を発行すると、そのデータが書き込まれた記憶領域に対応する差分ビットが「ＯＮ」に更新される。
【００６４】
その後、ペアに「リシンク」が実行されたとき、コピー管理プログラム１１３は、ＭＣＵ側及びＲＣＵ側の差分ビットマップを参照して、いずれかのビットマップにおいて値が「ＯＮ」である差分ビットに対応する記憶領域のデータのみをＰ−ＶＯＬからＳ−ＶＯＬにコピーする。
【００６５】
その結果、ペアが「サスペンド」状態である間に書き込まれたデータ（又は、書き込まれた可能性があるデータ）のみがＰ−ＶＯＬからＳ−ＶＯＬにコピーされる。その結果、コピーに要する時間を削減し、ハードウエアの負担を軽減することができる。
【００６６】
なお、ペアに「リストア」が実行されたときも、同様にして、ＭＣＵ側及びＲＣＵ側の差分ビットマップが参照される。そして、いずれかのビットマップにおいて値が「ＯＮ」である差分ビットに対応する記憶領域のデータのみがＳ−ＶＯＬからＰ−ＶＯＬにコピーされる。
【００６７】
さらに、本実施の形態の差分ビットマップは、形成コピー処理が実行されるときにも、コピー管理プログラム１１３によって参照される。この形成コピー処理については、後で詳細に説明する（図４及び図５参照）。
【００６８】
次に、各プログラムが実行する処理について説明する。なお、以下の説明は、各プログラムが実行する手順として記載する。しかし、実際には、これらの手順は、各プログラムを実行するプロセッサ１０１によって実行される。
【００６９】
図２は、本発明の実施の形態の仮想ボリューム管理プログラム１１１が実行する運用中のプール容量調査処理のフローチャートである。
【００７０】
図２に示す運用中のプール容量調査処理は、リモートコピーのペアが「同期」状態（すなわち、Ｐ−ＶＯＬのデータが更新されると更新コピーが実行される状態）であるときに、ＭＣＵ側のストレージシステム１００の仮想ボリューム管理プログラム１１１によって実行される。
【００７１】
運用中のプール容量調査処理が開始されると、仮想ボリューム管理プログラム１１１は、最初に、ＭＣＵ側のプールの空き容量を調査する（ステップ２０１）。具体的には、仮想ボリューム管理プログラム１１１は、プール管理情報１１７を参照して、プールの空き容量を算出する。
【００７２】
次に、仮想ボリューム管理プログラム１１１は、算出された空き容量が所定の基準値より少ないか否かを判定する（ステップ２０２）。この基準値は、システム管理者によって予め設定されていてもよい。
【００７３】
ステップ２０２において、算出された空き容量が所定の基準値より少なくないと判定された場合、プールには十分な空き容量がある。この場合、プールに空き容量を追加する必要がなく、仮想ボリュームに対する書き込みを禁止する必要もない。このため、処理はステップ２０１に戻り、プールの空き容量の調査を続ける。
【００７４】
一方、ステップ２０２において、算出された空き容量が所定の基準値より少ないと判定された場合、仮想ボリューム管理プログラム１１１は、算出された空き容量がない（すなわち、空き容量がゼロである）か否かを判定する（ステップ２０３）。
【００７５】
ステップ２０３において、算出された空き容量があると判定された場合、空き容量はあるが、十分ではない。この場合、プールに空き容量を追加することが望ましいが、仮想ボリュームに対する書き込みを禁止する必要はない。したがって、仮想ボリューム管理プログラム１１１は、空き容量が少ないことをコピー管理プログラム１１３に報告する（ステップ２０４）。空き容量が少ないことをシステム管理者に通知し、プールの追加を促すためである。その後、処理はステップ２０１に戻り、プールの空き容量の調査を続ける。
【００７６】
一方、ステップ２０３において、算出された空き容量がないと判定された場合、プールに空き容量がないため、そのプールに対応する仮想ボリュームにそれ以上データを書き込むことができない。この場合、仮想ボリューム管理プログラム１１１は、空き容量がないことをコピー管理プログラム１１３に報告する（ステップ２０５）。そして、仮想ボリューム管理プログラム１１１は、仮想ボリュームに対する書き込みを禁止する（ステップ２０６）。
【００７７】
次に、仮想ボリューム管理プログラム１１１は、プールが追加されたか否かを判定する（ステップ２０７）。
【００７８】
ステップ２０７においてプールが追加されたと判定された場合、プールに新たな空き容量が存在しているため、仮想ボリュームに新たにデータを書き込むことができる。このため、仮想ボリューム管理プログラム１１１は、仮想ボリュームに対する書き込みを許可し（ステップ２０８）、ステップ２０１に戻る。
【００７９】
一方、ステップ２０７においてプールが追加されていないと判定された場合、依然としてプールに空き容量がない。すなわち、仮想ボリュームに新たにデータを書き込むことができないため、ステップ２０７に戻る。
【００８０】
図３Ａから図３Ｅは、本発明の実施の形態のコピー管理プログラム１１３が実行する更新コピー管理処理のフローチャートである。
【００８１】
図３Ａから図３Ｅに示す更新コピー管理処理は、リモートコピーのペアが「同期」状態であるときに、ＭＣＵ側のストレージシステム１００のコピー管理プログラム１１３によって実行される。
【００８２】
更新コピー管理処理の実行が開始されると、コピー管理プログラム１１３は、最初に、仮想ボリューム管理プログラム（仮想ＶＯＬ管理プログラム）１１１からプールの空き容量が少ないことの報告を受けたか否かを判定する（図３Ａのステップ３０１）。この報告は、図２のステップ２０４において、ＭＣＵ側のストレージシステム１００の仮想ボリューム管理プログラム１１１が行うものである。
【００８３】
ステップ３０１において、プールの空き容量が少ないことの報告を受けたと判定された場合、コピー管理プログラム１１３は、ＭＣＵ側のプールの空き容量が少ないことを管理サーバ１６０に報告する（図３Ｂのステップ３１１）。システム管理者にＭＣＵ側のプールの追加を促すためである。その後、処理はステップ３０１に戻る。
【００８４】
一方、ステップ３０１において、プールの空き容量が少ないことの報告を受けていないと判定された場合、ＭＣＵ側のプールに十分な空き容量があるか、又は、ＭＣＵ側のプールに空き容量がない。この場合、コピー管理プログラム１１３は、仮想ボリューム管理プログラム１１１からプールの空き容量がないことの報告を受けたか否かを判定する（図３Ａのステップ３０２）。この報告は、図２のステップ２０５において、ＭＣＵ側のストレージシステム１００の仮想ボリューム管理プログラム１１１が行うものである。
【００８５】
ステップ３０２において、プールの空き容量がないことの報告を受けたと判定された場合、そのＭＣＵ側のプールに対応する仮想ボリュームにそれ以上データを書き込むことができない。その仮想ボリュームがコンシステンシグループ（ＣＴＧ）に属している場合、データの整合性を維持するため、コピー管理プログラム１１３は、そのコンシステンシグループ全体を「サスペンド」状態とする（図３Ｃのステップ３２１）。具体的には、そのコンシステンシグループに属する全てのペアに操作「スプリット」が実行される。
【００８６】
さらに、コピー管理プログラム１１３は、そのコンシステンシグループに属する全てのＰ−ＶＯＬに対するデータの書き込みを禁止する（図３Ｃのステップ３２２）。
【００８７】
次に、コピー管理プログラム１１３は、コンシステンシグループ全体が「サスペンド」状態になったこと、及び、その原因を管理サーバ１６０に報告する（図３Ｃのステップ３２３）。ここで、原因とは、ＭＣＵ側のプールの空き容量がないことである。その後、処理はステップ３０１に戻る。
【００８８】
一方、ステップ３０２において、プールの空き容量がないことの報告を受けていないと判定された場合、ＭＣＵ側のプールには十分な空き容量がある。この場合、コピー管理プログラム１１３は、ＲＣＵ側のストレージシステム１３０からプールの空き容量が少ないことの報告を受けたか否かを判定する（図３Ａのステップ３０３）。
【００８９】
ステップ３０３において、プールの空き容量が少ないことの報告を受けたと判定された場合、コピー管理プログラム１１３は、ＲＣＵ側のプールの空き容量が少ないことを管理サーバ１６０に報告する（図３Ｄのステップ３３１）。システム管理者にＲＣＵ側のプールの追加を促すためである。その後、処理はステップ３０１に戻る。
【００９０】
一方、ステップ３０３において、プールの空き容量が少ないことの報告を受けていないと判定された場合、ＲＣＵ側のプールに十分な空き容量があるか、又は、ＲＣＵ側のプールに空き容量がない。この場合、この場合、コピー管理プログラム１１３は、ＲＣＵ側のストレージシステム１３０からプールの空き容量がないことの報告を受けたか否かを判定する（図３Ａのステップ３０４）。
【００９１】
ステップ３０４において、プールの空き容量がないことの報告を受けたと判定された場合、そのＲＣＵ側のプールに対応する仮想ボリュームにそれ以上データを書き込むことができない。その仮想ボリュームがコンシステンシグループ（ＣＴＧ）に属している場合、データの整合性を維持するため、コピー管理プログラム１１３は、そのコンシステンシグループ全体を「サスペンド」状態とする（図３Ｅのステップ３４１）。
【００９２】
次に、コピー管理プログラム１１３は、コンシステンシグループ全体が「サスペンド」状態になったこと、及び、その原因を管理サーバ１６０に報告する（図３Ｅのステップ３４２）。ここで、原因とは、ＲＣＵ側のプールの空き容量がないことである。その後、処理はステップ３０１に戻る。
【００９３】
一方、ステップ３０４において、プールの空き容量がないことの報告を受けていないと判定された場合、ＲＣＵ側のプールには十分な空き容量がある。この場合、処理はステップ３０１に戻る。
【００９４】
図４は、本発明の実施の形態のコピー管理プログラム１１３が実行する形成コピー処理のフローチャートである。
【００９５】
形成コピー処理とは、新たにペアを形成するために実行される処理である。ペアを新たに形成しようとするとき、システム管理者は、新たに形成されるペアのコピー元（Ｐ−ＶＯＬ）とコピー先（Ｓ−ＶＯＬ）とを指定する。この時点で、Ｓ−ＶＯＬには、Ｐ−ＶＯＬと同一のデータが格納されていない（通常は、空である）。その後、このペアに形成コピーが実行されると、Ｐ−ＶＯＬに格納されたデータが順次Ｓ−ＶＯＬにコピーされる。形成コピーが終了したとき、Ｓ−ＶＯＬには、Ｐ−ＶＯＬと同一のデータが格納されている。
【００９６】
従来の形成コピー処理においては、Ｐ−ＶＯＬ内の全ての記憶領域のデータがＳ−ＶＯＬにコピーされる。このため、Ｐ−ＶＯＬが仮想ボリュームであり、かつ、Ｐ−ＶＯＬの一部の記憶領域のみに実領域が割り当てられている場合であっても、従来の形成コピー処理が実行されると、Ｓ−ＶＯＬの全ての領域に実領域が割り当てられる。言い換えると、Ｐ−ＶＯＬの記憶領域にＭＣＵ側の実領域が割り当てられていない場合にも、その記憶領域に対応するＳ−ＶＯＬの記憶領域にＲＣＵ側の実領域が割り当てられる。その結果、ＲＣＵ側の実領域を有効に使用することができない。
【００９７】
本実施の形態の形成コピー処理においては、ＲＣＵ側の実領域を有効に使用するため、コピー要否情報１１８の差分ビットマップが参照される。以下、本実施の形態の形成コピー処理について、図４から図７を参照して説明する。
【００９８】
図４に示す形成コピー処理は、リモートコピーのペアを形成するために、ＭＣＵ側のストレージシステム１００のコピー管理プログラム１１３によって実行される。
【００９９】
形成コピー処理の実行が開始されると、コピー管理プログラム１１３は、最初に、差分ビットマップ作成処理を実行する（ステップ４０１）。差分ビットマップ作成処理については、後で詳細に説明する（図５参照）。
【０１００】
次に、コピー管理プログラム１１３は、コピー処理を実行する（ステップ４０２）。コピー処理については、後で詳細に説明する（図６参照）。
【０１０１】
以上で、形成コピー処理が終了する。
【０１０２】
図５は、本発明の実施の形態のコピー管理プログラム１１３が実行する差分ビットマップ作成処理のフローチャートである。
【０１０３】
図５の差分ビットマップ作成処理は、図４のステップ４０１において、ＭＣＵ側のストレージシステム１００のコピー管理プログラム１１３によって実行される。
【０１０４】
差分ビットマップ作成処理が開始されると、コピー管理プログラム１１３は、Ｐ−ＶＯＬに対応する差分ビットマップを新たに作成し、全ての差分ビットをゼロクリアする（ステップ５０１）。すなわち、この時点で、作成された差分ビットマップの全差分ビットの値は「ＯＦＦ」となる。
【０１０５】
次に、コピー管理プログラム１１３は、Ｉ／Ｏ処理を停止する（ステップ５０２）。具体的には、コピー管理プログラム１１３は、Ｉ／Ｏ制御プログラム１１４にＩ／Ｏ処理（後述）を禁止する。
【０１０６】
次に、コピー管理プログラム１１３は、形成されるペアの状態を「形成コピー中、差分管理中」に変更する（ステップ５０３）。具体的には、コピー管理プログラム１１３は、ペア情報１１６に、当該ペアに関する状態として「形成コピー中、差分管理中」を登録する。
【０１０７】
次に、コピー管理プログラム１１３は、Ｉ／Ｏ処理を再開する（ステップ５０４）。具体的には、コピー管理プログラム１１３は、Ｉ／Ｏ制御プログラム１１４にＩ／Ｏ処理を許可する。以後、ホスト１５０がＰ−ＶＯＬに対するデータの書き込み要求又は読み出し要求を発行した場合、Ｉ／Ｏ制御プログラム１１４は、Ｉ／Ｏ処理を実行する。このとき、ペアの状態は「差分管理中」である（ステップ５０３）。このため、データの書き込み要求が発行された場合、データが書き込まれた記憶領域に対応する差分ビットが「ＯＮ」になる（後述）。
【０１０８】
次に、コピー管理プログラム１１３は、領域管理情報１１５が示す仮想ボリュームの最初の記憶領域を調査対象とする（ステップ５０５）。具体的には、コピー管理プログラム１１３は、領域管理情報１１５に含まれる割当ビットマップの最初の割当ビットを調査対象とする。
【０１０９】
次に、コピー管理プログラム１１３は、調査対象の記憶領域に実領域が割り当てられているか否かを判定する（ステップ５０６）。具体的には、コピー管理プログラム１１３は、調査対象の割当ビットが「ＯＮ」であるとき、調査対象の記憶領域に実領域が割り当てられていると判定し、調査対象の割当ビットが「ＯＦＦ」であるとき、調査対象の記憶領域に実領域が割り当てられていないと判定する。
【０１１０】
ステップ５０６において、実領域が割り当てられていないと判定された場合、調査対象の記憶領域のデータをＳ−ＶＯＬにコピーする必要がない。この場合、差分ビットを更新せずに、ステップ５０８に進む。
【０１１１】
一方、ステップ５０６において、実領域が割り当てられていると判定された場合、調査対象の記憶領域のデータをＳ−ＶＯＬにコピーする必要がある。このため、調査対象の記憶領域に対応する差分ビットを「ＯＮ」に更新する（ステップ５０７）。
【０１１２】
なお、一つの割当ビットに対応する記憶領域の大きさと、一つの差分ビットに対応する記憶領域の大きさとは、異なる場合がある。ステップ５０６において実領域が割り当てられていると判定された場合、一つの差分ビットに対応する記憶領域の少なくとも一部が、調査対象の割当ビットに対応する記憶領域の少なくとも一部と重複する場合、ステップ５０７においてその差分ビットが「ＯＮ」に更新される。
【０１１３】
次に、コピー管理プログラム１１３は、仮想ボリュームの全ての記憶領域について調査が終了したか否かを判定する（ステップ５０８）。具体的には、コピー管理プログラム１１３は、全ての割当ビットについて調査を終了したか否かを判定する。
【０１１４】
ステップ５０８において、全ての記憶領域について調査が終了していないと判定された場合、残りの記憶領域について調査する必要がある。このため、コピー管理プログラム１１３は、次の記憶領域を新たな調査対象とする。具体的には、コピー管理プログラム１１３は、割当ビットマップにおいて、現在の調査対象の割当ビットの次の割当ビットを新たな調査対象とする。そして、処理はステップ５０６に戻る。
【０１１５】
一方、ステップ５０８において、全ての記憶領域について調査が終了したと判定された場合、コピー管理プログラム１１３は、差分ビットマップ作成処理を終了する。
【０１１６】
図５の差分ビットマップ作成処理が終了した時点で、「ＯＮ」である差分ビットに対応する記憶領域には、実領域が割り当てられている。一方、「ＯＦＦ」である差分ビットに対応する記憶領域には、実領域が割り当てられていない。
【０１１７】
図６は、本発明の実施の形態のＭＣＵ側のコピー管理プログラム１１３が実行するコピー処理のフローチャートである。
【０１１８】
図６のコピー処理は、図４のステップ４０２において、ＭＣＵ側のストレージシステム１００のコピー管理プログラム１１３によって実行される。
【０１１９】
コピー処理が開始されると、コピー管理プログラム１１３は、最初に、差分ビットマップの最初の差分ビットを調査対象とする（ステップ６０１）。
【０１２０】
次に、コピー管理プログラム１１３は、調査対象のビットが「ＯＮ」であるか否かを判定する（ステップ６０２）。なお、図６の説明において、調査対象の差分ビットに対応するＰ−ＶＯＬの記憶領域を、「当該記憶領域」と記載する。
【０１２１】
ステップ６０２において調査対象の差分ビットが「ＯＮ」でない（すなわち、調査対象の差分ビットが「ＯＦＦ」である）と判定された場合、当該記憶領域に実領域が割り当てられていないか、又は、当該記憶領域には当該記憶領域に対応するＳ−ＶＯＬの記憶領域に格納されたものと同一のデータが格納されている。すなわち、当該記憶領域のデータをＳ−ＶＯＬにコピーする必要がない。この場合、処理はステップ６０７に進む。
【０１２２】
一方、ステップ６０２において調査対象の差分ビットが「ＯＮ」であると判定された場合、当該記憶領域には実領域が割り当てられている。さらに、当該記憶領域には、その記憶領域に対応するＳ−ＶＯＬの記憶領域に格納されたものと異なるデータが格納されている。この場合、当該記憶領域のデータをＳ−ＶＯＬにコピーする必要がある。この場合、コピー管理プログラム１１３は、Ｉ／Ｏ制御プログラム１１４に対して、当該記憶領域へのＩ／Ｏ処理を禁止する（ステップ６０３）。
【０１２３】
次に、コピー管理プログラム１１３は、当該記憶領域のデータを、ＲＣＵ側のストレージシステム１３０に送信する（ステップ６０４）。その結果、当該記憶領域のデータがＳ−ＶＯＬにコピーされる。ステップ６０４において送信されたデータを受信したＲＣＵ側のストレージシステム１３０が実行する処理については、後で説明する（図７Ｄ参照）。
【０１２４】
なお、本実施の形態において、このようなＭＣＵとＲＣＵとの間のデータの送受信は、インターフェース１０４及びストレージネットワーク１２５を介して実行される。
【０１２５】
次に、コピー管理プログラム１１３は、当該領域に対応する差分ビット（すなわち、調査対象の差分ビット）を「ＯＦＦ」に更新する（ステップ６０５）。
【０１２６】
次に、コピー管理プログラム１１３は、Ｉ／Ｏ制御プログラム１１４に対して、当該記憶領域へのＩ／Ｏ処理を許可する（ステップ６０６）。
【０１２７】
次に、コピー管理プログラム１１３は、差分ビットマップの全差分ビットが「ＯＦＦ」となったか否かを判定する（ステップ６０７）。
【０１２８】
ステップ６０７において、全差分ビットが「ＯＦＦ」となっていない（すなわち、少なくとも一つの差分ビットが「ＯＮ」である）と判定された場合、Ｓ−ＶＯＬに格納された全てのデータがＰ−ＶＯＬに格納されたものと同一になっていない場合がある。この場合、コピー管理プログラム１１３は、現在の調査対象の差分ビットの次の差分ビットを新たな調査対象とし（ステップ６０８）、ステップ６０２に戻る。
【０１２９】
一方、ステップ６０７において、全差分ビットが「ＯＦＦ」となったと判定された場合、Ｓ−ＶＯＬに格納された全てのデータがＰ−ＶＯＬに格納されたものと同一になっている。この場合、コピー管理プログラム１１３は、ペアを「同期」状態に変更して（６０９）、コピー処理を終了する。
【０１３０】
次に、形成コピー処理の例を説明する。
【０１３１】
図７Ａは、本発明の実施の形態において形成コピー処理が実行される際の割当ビットマップの例を示す説明図である。
【０１３２】
図７Ａにおいて、一つの区画が割当ビットマップの一つの割当ビットに対応する。例えば、一つの区画が仮想ボリュームの一つの記憶領域に対応する。これらの区画のうち、黒く塗りつぶされているものは、割当ビットが「ＯＮ」であり、黒く塗りつぶされていないものは、割当ビットが「ＯＦＦ」であることを示す。すなわち、黒く塗りつぶされている区画に対応する記憶領域には実領域が割り当てられており、黒く塗りつぶされていない区画に対応する記憶領域には、実領域が割り当てられていない。
【０１３３】
図７Ｂは、本発明の実施の形態の差分ビットマップ作成処理によって作成される差分ビットマップの例を示す説明図である。
【０１３４】
図７Ｂは、例として、図７Ａに示す割当ビットマップに基づいて作成される差分ビットマップを示す。すなわち、図７Ａ及び図７Ｂは、それぞれ、同一の仮想ボリュームに関する割当ビットマップ及び差分ビットマップである。
【０１３５】
図７Ｂにおいて、一つの区画が差分ビットマップの一つの差分ビットに対応する。すなわち、一つの区画が仮想ボリュームの一つの記憶領域に対応する。これらの区画のうち、黒く塗りつぶされているものは、差分ビットが「ＯＮ」であり、黒く塗りつぶされていないものは、差分ビットが「ＯＦＦ」であることを示す。すなわち、黒く塗りつぶされている区画に対応する記憶領域のデータはＳ−ＶＯＬにコピーする必要があり、黒く塗りつぶされていない区画に対応する記憶領域のデータはＳ−ＶＯＬにコピーする必要がない。
【０１３６】
差分ビットマップ作成処理が開始されたとき、図７Ｂの差分ビットマップの全ての差分ビットは、「ＯＦＦ」である（ステップ５０１）。その後、各差分ビットについて、その差分ビットに対応する記憶領域に実領域が割り当てられているか否かが判定される（ステップ５０６）。すなわち、その差分ビットに対応する割当ビットが「ＯＮ」であるか否かが判定される。そして、実領域が割り当てられていると判定された場合、その差分ビットが「ＯＮ」に更新される（ステップ５０７）。
【０１３７】
図５において説明したように、一つの割当ビットに対応する記憶領域の大きさと、一つの差分ビットに対応する記憶領域の大きさとは、異なる場合がある。上記の例でも、図７Ａの割当ビットマップが４８の差分ビットからなるのに対して、図７Ｂの差分ビットマップが６０の差分ビットからなる。これは、一つの割当ビットに対応する記憶領域の大きさと、一つの差分ビットに対応する記憶領域の大きさとが異なっていることを示す。このような場合、一つの差分ビットに対応する記憶領域のうち少なくとも一部に実領域が割り当てられているとき、その差分ビットが「ＯＮ」に更新される（ステップ５０６、ステップ５０７）。
【０１３８】
その結果、実領域が割り当てられている可能性がある記憶領域に対応する差分ビットが「ＯＮ」に更新される。言い換えると、値が「ＯＦＦ」である差分ビットに対応する記憶領域には、実領域が割り当てられていない。
【０１３９】
本実施の形態では、割当ビットマップ（図７Ａ）の上に差分ビットマップ（図７Ｂ）を重ね合わせたとき、「ＯＮ」である割当ビットと少なくとも一部が重複する差分ビットは、「ＯＮ」に更新される。
【０１４０】
図７Ｃは、本発明の実施の形態の形成コピー処理におけるコピー処理の例を示す説明図である。
【０１４１】
図７Ｃは、例として、差分ビットマップ作成処理によって図７Ｂに示す差分ビットマップが作成された場合のコピー処理を示す。
【０１４２】
この例では、Ｐ−ＶＯＬ及びＳ−ＶＯＬのいずれも仮想ボリュームである。図７ＣのＰ−ＶＯＬのうち、黒く塗りつぶされている領域は、値が「ＯＮ」である差分ビットに対応する記憶領域であり、それ以外の領域は、値が「ＯＦＦ」である差分ビットに対応する記憶領域である。
【０１４３】
コピー処理によって、値が「ＯＮ」である差分ビットに対応する記憶領域のデータのみがＰ−ＶＯＬからＳ−ＶＯＬにコピーされる（図６のステップ６０２及びステップ６０４）。具体的には、値が「ＯＮ」である差分ビットに対応するＰ−ＶＯＬの記憶領域のデータが、ＭＣＵからＲＣＵに送信される。そのデータを受信したＲＣＵは、そのデータが格納されていたＰ−ＶＯＬの記憶領域に対応するＳ−ＶＯＬの記憶領域（図７Ｃの点線で示される領域）に、ＲＣＵの実領域を割り当てる。そして、ＲＣＵは、受信したデータを、実領域が割り当てられた記憶領域に格納する。このときのＲＣＵ側の処理については、後で詳細に説明する（図７Ｄ参照）。
【０１４４】
その結果、Ｐ−ＶＯＬにおいて実領域が割り当てられている可能性がある記憶領域に対応するＳ−ＶＯＬの記憶領域のみに実領域が割り当てられる。これによって、Ｓ−ＶＯＬ側の実領域を効率的に使用することができる。
【０１４５】
図７Ｄは、本発明の実施の形態のＲＣＵ側のコピー管理プログラム１１３が実行するコピー処理等のフローチャートである。
【０１４６】
図６のステップ６０４においてＭＣＵ側のコピー管理プログラム１１３が送信したデータを受信したとき、ＲＣＵ側のストレージシステム１３０のコピー管理プログラム１１３は、図７Ｄのコピー処理を実行する。
【０１４７】
具体的には、ＲＣＵ側のコピー管理プログラム１１３は、最初にＭＣＵからデータを受信する（ステップ７０１）。
【０１４８】
次に、コピー管理プログラム１１３は、ＲＣＵ側の仮想ボリューム管理プログラム１１１に、データ格納先確保処理の実行を指示する（ステップ７０２）。この処理については、後で説明する。
【０１４９】
次に、コピー管理プログラム１１３は、ステップ７０２において確保された領域に、ＭＣＵから受信したデータを格納する（ステップ７０３）。
【０１５０】
次に、コピー管理プログラム１１３は、処理の結果をＭＣＵに送信する（ステップ７０４）。具体的には、データの格納に成功したか否かを示す情報が送信される。
【０１５１】
以上で、コピー処理が終了する。
【０１５２】
一方、ステップ７０２の指示を受けたＲＣＵ側の仮想ボリューム管理プログラム１１１は、データ格納先確保処理を実行する。
【０１５３】
最初に、仮想ボリューム管理プログラム１１１は、ＭＣＵから受信したデータの格納先のＳ−ＶＯＬの記憶領域に既に実領域が割り当てられているか否かを判定する（ステップ７０５）。具体的には、そのデータが格納されていたＰ−ＶＯＬの記憶領域に対応するＳ−ＶＯＬの記憶領域（図７Ｃの点線で示される領域）に実領域が割り当てられているか否かが判定される。
【０１５４】
ステップ７０５において、データの格納先の記憶領域に実領域が割り当てられていないと判定された場合、その記憶領域に実領域を新たに割り当てる必要がある。このため、仮想ボリューム管理プログラム１１１は、その記憶領域にプールの実領域を割り当てる（ステップ７０６）。その結果、Ｓ−ＶＯＬにおいて、データの格納先となる記憶領域のみに実領域が割り当てられる。
【０１５５】
次に、仮想ボリューム管理プログラム１１１は、データの格納先の記憶領域に割り当てられた実領域のアドレスをＭＣＵに返送する（ステップ７０７）。
【０１５６】
一方、ステップ７０５において、データの格納先の記憶領域に実領域が割り当てられていると判定された場合、その記憶領域にさらに実領域を割り当てる必要がない。このため、仮想ボリューム管理プログラム１１１は、データの格納先の記憶領域に割り当てられている実領域のアドレスをＭＣＵに返送する（ステップ７０７）。
【０１５７】
以上で、データ格納先確保処理が終了する。
【０１５８】
図８は、本発明の実施の形態のＩ／Ｏ制御プログラム１１４が実行するＩ／Ｏ処理のフローチャートである。
【０１５９】
図８のＩ／Ｏ処理は、ストレージシステム１００がホスト１５０からＩ／Ｏ要求（すなわち、書き込み要求又は読み出し要求）を受信したときにＩ／Ｏ制御プログラム１１４によって実行される処理である。
【０１６０】
ストレージシステム１００がＩ／Ｏ要求を受信してＩ／Ｏ処理が開始されると、Ｉ／Ｏ制御プログラム１１４は、最初に、Ｉ／Ｏ要求の種別を判定する（ステップ８０１）。
【０１６１】
ステップ８０１において、Ｉ／Ｏ要求が読み出し（Ｒｅａｄ）要求であると判定された場合、Ｉ／Ｏ制御プログラム１１４は、読み出し要求の対象の論理ボリュームから、対象のデータを読み出す（ステップ８０７）。このとき、Ｉ／Ｏ制御プログラム１１４は、データを論理ボリュームから読み出す代わりに、キャッシュ（図示省略）から読み出してもよい。
【０１６２】
なお、図８の説明において、論理ボリュームは、仮想ボリュームであってもよい。
【０１６３】
次に、Ｉ／Ｏ制御プログラム１１４は、読み出したデータをホスト１５０に送信する（ステップ８０８）。そして、次回のＩ／Ｏ要求を処理するため、処理はステップ８０１に戻る。
【０１６４】
一方、ステップ８０１において、Ｉ／Ｏ要求が書き込み（Ｗｒｉｔｅ）要求であると判定された場合、Ｉ／Ｏ制御プログラム１１４は、書き込み要求の対象の論理ボリュームに、対象のデータを書き込む（ステップ８０２）。このとき、Ｉ／Ｏ制御プログラム１１４は、データを論理ボリュームに書き込む代わりに、キャッシュに書き込んでもよい。
【０１６５】
次に、Ｉ／Ｏ制御プログラム１１４は、書き込み対象の論理ボリュームが属するペアの状態を判定する（ステップ８０３）。
【０１６６】
ステップ８０３において、ペアの状態が「差分管理中」であると判定された場合、ペアの状態は「形成コピー中」又は「サスペンド」である。この場合、Ｉ／Ｏ制御プログラム１１４は、データの書き込み対象の記憶領域に対応する差分ビットを「ＯＮ」に更新する（ステップ８０９）。すると、その記憶領域に書き込まれたデータがコピー管理プログラム１１３によってＲＣＵに送信される（図６のステップ６０２及びステップ６０４）。その結果、ホスト１５０によって書き込み対象のＰ−ＶＯＬに書き込まれたデータがＳ−ＶＯＬにコピーされる。
【０１６７】
その後、次回のＩ／Ｏ要求を処理するため、処理はステップ８０１に戻る。
【０１６８】
一方、ステップ８０３において、ペアの状態が「更新コピー中」であると判定された場合、ペアの状態は「同期」である。この場合、Ｉ／Ｏ制御プログラム１１４は、データの書き込み対象の記憶領域のデータをＲＣＵに送信する（ステップ８０４）。その結果、ホスト１５０によって書き込み対象のＰ−ＶＯＬに書き込まれたデータがＳ−ＶＯＬにコピーされる。
【０１６９】
次に、Ｉ／Ｏ制御プログラム１１４は、ＲＣＵからの書き込み完了報告を待つ（ステップ８０５）。
【０１７０】
Ｉ／Ｏ制御プログラム１１４は、ＲＣＵからの書き込み完了報告を受信すると、ホスト１５０に書き込み完了を報告する（ステップ８０６）。
【０１７１】
その後、次回のＩ／Ｏ要求を処理するため、処理はステップ８０１に戻る。
【０１７２】
図９Ａ及び図９Ｂは、本発明の実施の形態のコピー管理プログラム１１３が実行するリシンク処理のフローチャートである。
【０１７３】
図９Ａ及び図９Ｂに示すリシンク処理は、ＭＣＵ側のストレージシステム１００にＰ−ＶＯＬが格納され、ＲＣＵ側のストレージシステム１３０にＳ−ＶＯＬが格納されたリモートコピーのペアにおいて操作「リシンク」が実行されるときに、ＭＣＵ側のコピー管理プログラム１１３によって実行される。
【０１７４】
最初に、リシンク処理の概要を説明する。
【０１７５】
コピー管理プログラム１１３は、最初に、Ｐ−ＶＯＬ及びＳ−ＶＯＬのプールの空き容量を参照して、リシンクを実行できるか否かを判定する（ステップ９０１からステップ９０８）。
【０１７６】
コピー管理プログラム１１３は、リシンクを実行できる場合、Ｓ−ＶＯＬに割り当てられている実領域のうち、リシンクを実行することによって不要になる実領域を解放する（ステップ９０９からステップ９１６）。
【０１７７】
例えば、ペアが「サスペンド」状態である間に、Ｓ−ＶＯＬの未使用の（すなわち、実領域が割り当てられていない）記憶領域に新たにデータが書き込まれた場合、その記憶領域に新たに実領域が割り当てられる。その後、リシンクが実行されると、「サスペンド」中にＳ−ＶＯＬに書き込まれたデータは、Ｐ−ＶＯＬのデータによって上書きされる。実領域が割り当てられたＳ−ＶＯＬの記憶領域に対応するＰ−ＶＯＬの記憶領域に実領域が割り当てられていない場合、リシンクの実行後、そのＳ−ＶＯＬの記憶領域に実領域が割り当てられている必要がなくなる。コピー管理プログラム１１３は、このようにして不要になった実領域の記憶領域への割り当てを解除する。その結果、当該実領域が解放される。
【０１７８】
次に、コピー管理プログラム１１３は、リシンクを実行する（ステップ９１７及びステップ９１８）。
【０１７９】
以下、リシンク処理を詳細に説明する。
【０１８０】
リシンク処理が開始されると、ＭＣＵのコピー管理プログラム１１３は、Ｐ−ＶＯＬのプールの空き容量に関する情報を取得する（ステップ９０１）。具体的には、コピー管理プログラム１１３は、ＭＣＵのプール管理情報１１７のカウンタ（図示省略）を参照して、Ｐ−ＶＯＬのプールの空き容量を算出する。
【０１８１】
次に、コピー管理プログラム１１３は、Ｐ−ＶＯＬのプールに空き容量がある（すなわち、算出された空き容量がゼロでない）か否かを判定する（ステップ９０２）。
【０１８２】
ステップ９０２において、Ｐ−ＶＯＬのプールに空き容量がないと判定された場合、Ｐ−ＶＯＬに新たにデータを書き込むことができない。この場合、コピー管理プログラム１１３は、Ｐ−ＶＯＬのプールに空き容量がないことの報告を管理サーバ１６０に送信し（ステップ９０３）、リシンク処理を中止する（ステップ９０４）。
【０１８３】
一方、ステップ９０２において、Ｐ−ＶＯＬのプールに空き容量があると判定された場合、Ｐ−ＶＯＬに新たにデータを書き込むことができる。この場合、コピー管理プログラム１１３は、ＲＣＵからＳ−ＶＯＬのプールの空き容量に関する情報を取得する（ステップ９０５）。このＳ−ＶＯＬのプールの空き容量に関する情報は、ＲＣＵのプール管理情報１１７のカウンタ（図示省略）の値から算出される。
【０１８４】
次に、コピー管理プログラム１１３は、Ｓ−ＶＯＬのプールに空き容量があるか否かを判定する（ステップ９０６）。
【０１８５】
ステップ９０６において、Ｓ−ＶＯＬのプールに空き容量がないと判定された場合、Ｓ−ＶＯＬに新たにデータを書き込むことができない。この場合、コピー管理プログラム１１３は、Ｓ−ＶＯＬのプールに空き容量がないことの報告を管理サーバ１６０に送信し（ステップ９０７）、リシンク処理を中止する（ステップ９０８）。
【０１８６】
一方、ステップ９０６において、Ｓ−ＶＯＬのプールに空き容量があると判定された場合、結局、Ｐ−ＶＯＬ及びＳ−ＶＯＬのいずれにも新たにデータを書き込むことができる。この場合、コピー管理プログラム１１３は、リシンクを実行することができる。この場合、コピー管理プログラム１１３は、ＲＣＵのコピー要否情報１１８に含まれる差分ビットマップをＲＣＵから受信する（ステップ９０９）。
【０１８７】
次に、コピー管理プログラム１１３は、受信したＲＣＵの差分ビットマップの最初の差分ビットを調査対象とする（ステップ９１０）。
【０１８８】
次に、コピー管理プログラム１１３は、調査対象の差分ビットが「ＯＮ」であるか否かを判定する（ステップ９１１）。
【０１８９】
ステップ９１１において、調査対象の差分ビットが「ＯＮ」でないと判定された場合、「サスペンド」中に、その差分ビットに対応する記憶領域にデータが書き込まれていない。この場合、その記憶領域に割り当てられた実領域を解放する必要がない。したがって、この場合、処理はステップ９１６に進む。
【０１９０】
一方、ステップ９１１において、調査対象の差分ビットが「ＯＮ」であると判定された場合、「サスペンド」中に、その差分ビットに対応する記憶領域にデータが書き込まれている。この場合、コピー管理プログラム１１３は、その記憶領域に対応するＰ−ＶＯＬの記憶領域に実領域が割り当てられているか否かを判定する（ステップ９１３）。
【０１９１】
ステップ９１３において、Ｐ−ＶＯＬの記憶領域に実領域が割り当てられていると判定された場合、調査対象の差分ビットに対応するＳ−ＶＯＬの記憶領域に割り当てられた実領域には、リシンクによって、Ｐ−ＶＯＬの実領域のデータがコピーされる。したがって、そのＳ−ＶＯＬの記憶領域に割り当てられた実領域を解放する必要がない。この場合、処理はステップ９１６に進む。
【０１９２】
一方、ステップ９１３において、Ｐ−ＶＯＬの記憶領域に実領域が割り当てられていないと判定された場合、調査対象の差分ビットに対応するＳ−ＶＯＬの記憶領域は、リシンクが実行された後、使用されない。このため、コピー管理プログラム１１３は、調査対象の差分ビットに対応するＳ−ＶＯＬの記憶領域に割り当てられた実領域を解放することをＲＣＵに指示し、完了の報告を待つ（ステップ９１４）。
【０１９３】
コピー管理プログラム１１３は、ＲＣＵから完了の報告を受けると、調査対象の差分ビットを「ＯＦＦ」に更新する（ステップ９１５）。
【０１９４】
次に、コピー管理プログラム１１３は、全ての差分ビットについて調査が終了したか否かを判定する（ステップ９１６）。
【０１９５】
ステップ９１６において、全ての差分ビットについて調査が終了していないと判定された場合、残りのビットについて調査する必要がある。このため、コピー管理プログラム１１３は、現在の調査対象の差分ビットの次の差分ビットを新たな調査対象として（ステップ９１２）、ステップ９１１に戻る。
【０１９６】
一方、ステップ９１６において、全ての差分ビットについて調査が終了したと判定された場合、コピー管理プログラム１１３は、リシンクを実行する。具体的には、コピー管理プログラム１１３は、ＲＣＵの差分ビットマップをＭＣＵの差分ビットマップに合併（マージ）し（ステップ９１７）、その後、コピー処理（図６参照）を実行する（ステップ９１８）。
【０１９７】
ここで、ステップ９１７において実行される差分ビットマップのマージについて説明する。ＭＣＵの差分ビットが「ＯＮ」である場合、その差分ビットは更新されない。一方、ＭＣＵの差分ビットが「ＯＦＦ」であっても、それに対応するＲＣＵの差分ビットが「ＯＮ」である場合、そのＭＣＵの差分ビットは「ＯＮ」に更新される。例えば、差分ビットの値「１」が「ＯＮ」、値「０」が「ＯＦＦ」に対応する場合、ＭＣＵの差分ビットの値と、それに対応するＲＣＵの差分ビットの値との論理和演算（ＯＲ）を実行する。コピー管理プログラム１１３は、論理和演算の結果の値をＭＣＵの差分ビットの新たな値として更新する。
【０１９８】
ステップ９１８のコピー処理が終了すると、リシンク処理が終了する。
【０１９９】
なお、ＲＣＵのＳ−ＶＯＬのデータをＭＣＵのＰ−ＶＯＬにコピーするリストアも、上記のリシンクと同様の手順によって実行することができる。
【０２００】
図１０は、本発明の実施の形態のコピー管理プログラム１１３が実行するボリュームグループのプールのマージ処理のフローチャートである。
【０２０１】
一つのボリュームグループに複数の仮想ボリュームが属し、それぞれの仮想ボリュームが別のプールに対応している場合、それらのプールの一つの空き容量がなくなると、ボリュームグループ全体が「サスペンド」状態となる。これを防ぐため、図１０の処理は、ボリュームグループに属する仮想ボリュームのプールを一つに合併（マージ）する。なお、以下の説明は、ボリュームグループがコンシステンシグループ（ＣＴＧ）である場合について記載するが、ＣＴＧ以外のボリュームグループにも図１０の処理を適用することができる。
【０２０２】
管理サーバ１６０等からＣＴＧ作成指示を受信することによって、ＭＣＵ側のコピー管理プログラム１１３は、ボリュームグループのプールのマージ処理を開始する（ステップ１００１）。
【０２０３】
次に、コピー管理プログラム１１３は、ＣＴＧとして指定された複数の論理ボリュームのうち、最初の論理ボリュームを調査対象とする（ステップ１００２）。
【０２０４】
次に、コピー管理プログラム１１３は、調査対象の論理ボリュームが仮想ボリュームであるか否かを判定する（ステップ１００３）。
【０２０５】
ステップ１００３において、調査対象の論理ボリュームが仮想ボリュームでないと判定された場合、調査対象の論理ボリュームはプールと対応していない。この場合、コピー管理プログラム１１３は、プールをマージすることができないため、ステップ１００６に進む。
【０２０６】
一方、ステップ１００３において、調査対象の論理ボリュームが仮想ボリュームでないと判定された場合、調査対象の論理ボリューム（すなわち、仮想ボリューム）はプールと対応している。この場合、コピー管理プログラム１１３は、調査対象の仮想ボリュームに対応するプールが、他の仮想ボリュームに対応するプールと同一であるか否かを判定する（ステップ１００４）。
【０２０７】
ステップ１００４において、調査対象の仮想ボリュームに対応するプールが、他の仮想ボリュームに対応するプールと同一であると判定された場合、そのプールは既にマージされている。この場合、処理はステップ１００６に進む。
【０２０８】
一方、ステップ１００４において、調査対象の仮想ボリュームに対応するプールが、他の仮想ボリュームに対応するプールと同一でないと判定された場合、コピー管理プログラム１１３は、そのプールを他の仮想ボリュームに対応するプールとマージする（ステップ１００５）。具体的には、コピー管理プログラム１１３は、プール管理情報１１７において、調査対象の仮想ボリュームに対応するプールとして確保されている実領域のリスト（図示省略）を、他の仮想ボリュームに対応するプールとして確保されている実領域のリストとマージする。さらに、コピー管理プログラム１１３は、これらの仮想ボリュームに関する空き領域の量を示すカウンタ（図示省略）の値を合計する。
【０２０９】
次に、コピー管理プログラム１１３は、ＣＴＧに属する全ての論理ボリュームについて調査が終了したか否かを判定する（ステップ１００６）。
【０２１０】
ステップ１００６において、ＣＴＧに属する全ての論理ボリュームについて調査が終了していないと判定された場合、残りの論理ボリュームについて調査をする必要がある。このため、コピー管理プログラム１１３は、現在の調査対象の論理ボリュームの次の論理ボリュームを新たな調査対象として（ステップ１００７）、ステップ１００３に戻る。
【０２１１】
一方、ステップ１００６において、ＣＴＧに属する全ての論理ボリュームについて調査が終了したと判定された場合、ボリュームグループのプールのマージ処理が終了する。
【０２１２】
図１１は、本発明の実施の形態のコピー管理プログラム１１３が実行するペア形成時のプール容量追加処理のフローチャートである。
【０２１３】
システム管理者は、任意の二つの仮想ボリュームを、それぞれＰ−ＶＯＬ及びＳ−ＶＯＬに指定して、ペアを形成することができる。このとき、それぞれの仮想ボリュームに対応するプールの容量が同じであるとは限らない。これらのプールの容量が異なる場合、一方のプールの空き容量がなくなった時点で、もう一方のプールには空き容量があるにも関らず、ペアが「サスペンド」状態となる。このようなことを防ぐため、コピー管理プログラム１１３は、ペア形成を実行する前に、図１１の処理を実行することができる。その結果、Ｐ−ＶＯＬ及びＳ−ＶＯＬに対応するプールの容量が同じになる。
【０２１４】
管理サーバ１６０からペア形成指示を受信することによって、ＭＣＵ側のコピー管理プログラム１１３は、ペア形成時のプール容量追加処理を開始する（ステップ１１０１）。
【０２１５】
次に、ＭＣＵ側のコピー管理プログラム１１３は、ＲＣＵからＳ−ＶＯＬの種類を示す情報を取得する（ステップ１１０２）。
【０２１６】
次に、コピー管理プログラム１１３は、ＲＣＵから取得した情報を参照して、Ｓ−ＶＯＬが仮想ボリュームであるか否かを判定する（ステップ１１０３）。
【０２１７】
ステップ１１０３において、Ｓ−ＶＯＬが仮想ボリュームでないと判定された場合、プールの容量を同じにする必要がない。この場合、処理はステップ１１１１に進む。
【０２１８】
一方、ステップ１１０３において、Ｓ−ＶＯＬが仮想ボリュームであると判定された場合、プールの容量を同じにする必要がある。このため、コピー管理プログラム１１３は、ＲＣＵからＳ−ＶＯＬのプールの容量を示す情報を取得する（ステップ１１０４）。
【０２１９】
次に、コピー管理プログラム１１３は、ＲＣＵから取得した情報を参照して、Ｐ−ＶＯＬのプールの容量がＳ−ＶＯＬのプールの容量より少ないか否かを判定する（ステップ１１０５）。
【０２２０】
ステップ１１０５において、Ｐ−ＶＯＬのプールの容量がＳ−ＶＯＬのプールの容量より少ないと判定された場合、両者が同じになるように、Ｐ−ＶＯＬのプールに容量を追加する必要がある。このため、コピー管理プログラム１１３は、Ｐ−ＶＯＬのプールの容量の追加を促すメッセージを管理サーバ１６０に送信する（ステップ１１０９）。
【０２２１】
そして、コピー管理プログラム１１３は、Ｐ−ＶＯＬのプールに容量が追加されたことの報告を待つ（ステップ１１１０）。コピー管理プログラム１１３は、その報告を受信すると、Ｐ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量とが同じになったか否かを確認するため、ステップ１１０５に戻る。
【０２２２】
一方、ステップ１１０５において、Ｐ−ＶＯＬのプールの容量がＳ−ＶＯＬのプールの容量より少なくないと判定された場合、コピー管理プログラム１１３は、Ｓ−ＶＯＬのプールの容量がＰ−ＶＯＬのプールの容量より少ないか否かを判定する（ステップ１１０６）。
【０２２３】
ステップ１１０６において、Ｓ−ＶＯＬのプールの容量がＰ−ＶＯＬのプールの容量より少ないと判定された場合、両者が同じになるように、Ｓ−ＶＯＬのプールに容量を追加する必要がある。このため、コピー管理プログラム１１３は、Ｓ−ＶＯＬのプールの容量の追加を促すメッセージを管理サーバ１６０に送信する（ステップ１１０７）。
【０２２４】
そして、コピー管理プログラム１１３は、Ｓ−ＶＯＬのプールに容量が追加されたことの報告を待つ（ステップ１１０８）。コピー管理プログラム１１３は、その報告を受信すると、Ｐ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量とが同じになったか否かを確認するため、ステップ１１０５に戻る。
【０２２５】
一方、ステップ１１０６において、Ｓ−ＶＯＬのプールの容量がＰ−ＶＯＬのプールの容量より少なくないと判定された場合、Ｐ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量とが同じである。この場合、コピー管理プログラム１１３は、ペア情報１１６にＰ−ＶＯＬとＳ−ＶＯＬの識別子を登録する（ステップ１１１１）。
【０２２６】
次に、コピー管理プログラム１１３は、形成コピー処理（図４参照）を実行する（ステップ１１１２）。
【０２２７】
以上で、ペア形成時のプール容量追加処理を終了する。
【０２２８】
次に、計算機システムの運用中にプールの容量を追加する処理について説明する。以下の説明は、図１１に示すペア形成時のプール容量追加処理が既に実行され、Ｐ−ＶＯＬとＳ−ＶＯＬのプールの容量が同じになっていることを前提とする。
【０２２９】
例えば、図３Ｂのステップ３１１、図３Ｃのステップ３２３、図３Ｄのステップ３３１、図３Ｅのステップ３４２、図９Ａのステップ９０３又はステップ９０７において、管理サーバ１６０は、プールの容量の不足又はプールの容量がないことの報告を受ける。このような場合、システム管理者は、管理端末１７０を介して管理サーバ１６０を操作することによって、仮想ボリュームのプールの容量を追加することができる。仮想ボリュームがリモートコピーのペアに属している場合、Ｐ−ＶＯＬのプールとＳ−ＶＯＬのプールに同じ容量を追加する必要がある。
【０２３０】
図１において説明したように、管理サーバ１６０とストレージシステム１００とは必ず管理ネットワーク１６５を介して接続されているが、管理サーバ１６０とストレージシステム１３０とは接続されていない場合がある。以下の説明において、「方法１」とは、管理サーバ１６０とストレージシステム１３０とが管理ネットワーク１６５を介して接続されている場合にプールの容量を追加する処理である（図１２Ａ及び図１２Ｂ参照）。一方、「方法２」とは、管理サーバ１６０とストレージシステム１３０とが管理ネットワーク１６５を介して接続されていない場合にプールの容量を追加する処理である（図１３Ａから図１３Ｃ参照）。これらの処理は、管理サーバ１６０の管理ツール１６３によって実行される。
【０２３１】
図１２Ａは、本発明の実施の形態の管理ツール１６３が実行する運用中のプール容量追加指示処理（方法１）のフローチャートである。
【０２３２】
例えば、システム管理者が、プールの容量を追加する対象のＰ−ＶＯＬ及びＳ−ＶＯＬ、並びに、追加しようとする容量を指定して、管理端末１７０にプール容量の追加の指示を入力する。
【０２３３】
管理ツール１６３は、入力された指示に従って、プール容量の追加をＭＣＵ及びＲＣＵに指示する（ステップ１２０１）。以上で処理を終了する。
【０２３４】
図１２Ｂは、本発明の実施の形態のＭＣＵ及びＲＣＵの仮想ボリューム管理プログラム１１１が実行する運用中のプール容量追加処理（方法１）のフローチャートである。
【０２３５】
ＭＣＵ及びＲＣＵの仮想ボリューム管理プログラム１１１は、管理サーバ１６０の管理ツール１６３からプールの容量の追加の指示を受けると、その指示に従って、プールの容量を追加する（ステップ１２０２）。具体的には、仮想ボリューム管理プログラム１１１は、対象のプールに関するプール管理情報１１７において、プールとして確保されている実領域を示すリストに、新たに追加される実領域に関する情報を追加する。さらに、仮想ボリューム管理プログラム１１１は、空き領域の量を示すカウンタに、新たに追加される実領域の量を加算する。以上で処理を終了する。
【０２３６】
図１３Ａは、本発明の実施の形態の管理ツール１６３が実行する運用中のプール容量追加指示処理（方法２）のフローチャートである。
【０２３７】
システム管理者は、図１２Ａの場合と同様、管理端末１７０に指示を入力する。
【０２３８】
管理ツール１６３は、入力された指示に従って、リモートコピーのペアに関するプール容量の追加をＭＣＵに指示する（ステップ１３０１）。以上で処理を終了する。
【０２３９】
図１３Ｂは、本発明の実施の形態のＭＣＵのコピー管理プログラム１１３が実行する運用中のプール容量追加処理（方法２）のフローチャートである。
【０２４０】
ＭＣＵのコピー管理プログラム１１３は、管理サーバ１６０の管理ツール１６３からプールの容量の追加の指示を受けると、仮想ボリューム管理プログラム１１１を実行する（ステップ１３０２）。ＭＣＵの仮想ボリューム管理プログラム１１１は、指示に従ってＰ−ＶＯＬのプールの容量を追加する。このとき仮想ボリューム管理プログラム１１１が実行する具体的な処理は、図１２Ｂのステップ１２０２と同様である。
【０２４１】
次に、ＭＣＵのコピー管理プログラム１１３は、ＲＣＵにプールの容量の追加を指示する（ステップ１３０３）。この指示は、ＭＣＵ（すなわちストレージシステム１００）のＩ／Ｆ１０４から、ストレージネットワーク１２５を経由して、ＲＣＵ（すなわちストレージシステム１３０）に送信される。
【０２４２】
以上で、処理を終了する。
【０２４３】
図１３Ｃは、本発明の実施の形態のＲＣＵのコピー管理プログラム１１３が実行する運用中のプール容量追加処理（方法２）のフローチャートである。
【０２４４】
ＲＣＵのコピー管理プログラム１１３は、ＭＣＵからプールの容量の追加の指示を受けると、仮想ボリューム管理プログラム１１１を実行する（ステップ１３０４）。ＭＣＵの仮想ボリューム管理プログラム１１１は、指示に従ってＳ−ＶＯＬのプールの容量を追加する。このとき仮想ボリューム管理プログラム１１１が実行する具体的な処理は、図１２Ｂのステップ１２０２と同様である。
【０２４５】
以上で、処理を終了する。
【０２４６】
図１４は、本発明の実施の形態のコピー管理プログラム１１３が実行するリシンク時のプール容量追加処理のフローチャートである。
【０２４７】
図１４に示すリシンク時のプール容量追加処理は、ペアが「サスペンド」状態である間にＰ−ＶＯＬのプールが追加され、その後リシンクが実行されるとき、Ｓ−ＶＯＬのプールの容量をＰ−ＶＯＬのものと同じにするために、ＭＣＵのコピー管理プログラム１１３によって実行される処理である。
【０２４８】
管理サーバ１６０からリシンク指示を受信することによって、ＭＣＵ側のコピー管理プログラム１１３は、リシンク時のプール容量追加処理を開始する（ステップ１４０１）。
【０２４９】
次に、コピー管理プログラム１１３は、ペアが「サスペンド」状態であった間に、Ｐ−ＶＯＬのプールに容量が追加されたか否かを判定する（ステップ１４０２）。例えば、ＭＣＵのプール管理情報１１７及びＲＣＵのプール管理情報１１７を参照し、Ｐ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量が同じであるか否かを判定してもよい。
【０２５０】
ステップ１４０２において、プールの容量が追加されなかったと判定された場合、Ｐ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量が同じであるため、プールの容量を追加する必要がない。この場合、処理はステップ１４０５に進む。
【０２５１】
一方、ステップ１４０２において、プールの容量が追加されたと判定された場合、Ｐ−ＶＯＬのプールの容量はＳ−ＶＯＬのプールの容量より大きい。この場合、Ｓ−ＶＯＬのプールの容量を追加する必要がある。このため、コピー管理プログラム１１３は、ＲＣＵに対して、Ｐ−ＶＯＬのプールに追加されたものと同じ容量をＳ−ＶＯＬのプールに追加することを指示する（ステップ１４０３）。この指示は、ＭＣＵ（すなわちストレージシステム１００）のＩ／Ｆ１０４から、ストレージネットワーク１２５を経由して、ＲＣＵ（すなわちストレージシステム１３０）に送信される。
【０２５２】
次に、コピー管理プログラム１１３は、ＲＣＵからプールの容量の追加が完了したことの報告を受けたか否かを判定する（ステップ１４０４）。
【０２５３】
ステップ１４０４において、ＲＣＵからプールの容量の追加が完了したことの報告を受けたと判定された場合、この時点でＰ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量が同じである。このため、コピー管理プログラム１１３は、リシンク処理（図９参照）を実行する（ステップ１４０５）。
【０２５４】
一方、ステップ１４０４において、ＲＣＵからプールの容量の追加に失敗したことの報告を受けたと判定された場合、この時点でＰ−ＶＯＬのプールの容量とＳ−ＶＯＬのプールの容量が同じでない。この場合、コピー管理プログラム１１３は、リシンク処理を実行せず、リシンクに失敗したこと及びその原因を管理サーバ１６０に報告する（１４０６）。ここで、リシンクに失敗した原因は、Ｓ−ＶＯＬのプール容量の追加に失敗したことである。
【０２５５】
以上で、リシンク時のプール容量追加処理が終了する。
【０２５６】
なお、リストア（リバースリシンク）が実行される場合、ＲＣＵのコピー管理プログラム１１３が、図１４と同様のプール容量追加処理を実行する。この場合、ＲＣＵがリシンク指示を受信し（ステップ１４０１）、Ｓ−ＶＯＬのプールの容量が追加されたか否かが判定される（ステップ１４０２）。そして、ＲＣＵのコピー管理プログラム１１３がＭＣＵにプールの容量の追加を指示し（ステップ１４０３）、ＲＣＵからプールの容量の追加が完了したことの報告を受ける（ステップ１４０４）。そして、ＲＣＵのコピー管理プログラム１１３がリストア処理を実行する（ステップ１４０５）。
【０２５７】
以上の本実施の形態は、Ｐ−ＶＯＬとＳ−ＶＯＬとがリモートコピーのペアを形成する場合について説明されている。次に、Ｐ−ＶＯＬとＳ−ＶＯＬとがローカルコピーのペアを形成する場合（すなわち、Ｐ−ＶＯＬ及びＳ−ＶＯＬが共にＭＣＵ側のストレージシステム１００に格納されている場合）の本実施の形態について説明する。
【０２５８】
図１５は、本発明の実施の形態においてローカルコピーのペアが形成される場合の計算機システムの構成を示すブロック図である。
【０２５９】
以下、図１５が図１と相違する部分についてのみ説明する。
【０２６０】
図１５では、ストレージシステム１００内でローカルコピーのペアが形成されるため、図１と異なり、ＲＣＵ側のストレージシステム１３０は必要ない。また、ストレージシステム１００及び管理サーバ１６０において、ストレージシステム１３０と通信するＩ／Ｆ１０４及び管理Ｉ／Ｆ１０５は必要ない。
【０２６１】
図１５のストレージシステム１００のメモリ１０２には、仮想ボリューム構成情報１４０と、ストレージシステム１００内のローカルコピーを実行するローカルコピープログラム１５０１とがさらに格納される。
【０２６２】
このように、ローカルコピーのペアが形成される場合にも、本実施の形態を適用することができる。
【０２６３】
ただし、Ｐ−ＶＯＬ及びＳ−ＶＯＬが同一のストレージシステム１００に格納されていると、Ｐ−ＶＯＬに対応するプールとＳ−ＶＯＬに対応するプールとが同一である場合がある。この場合、Ｐ−ＶＯＬに対応する実領域とＳ−ＶＯＬに対応する実領域とが同一のパリティグループに属する可能性がある。
【０２６４】
パリティグループとは、同一のパリティを共有するデータの集合である。例えば、ドライブ１０３に障害が発生した結果、一つのパリティグループに属する一つのドライブ１０３のデータが消失した場合、そのパリティグループに属する残りのドライブ１０３のデータを使用して、消失したデータを復元することができる。
【０２６５】
パリティグループにおいて多くのデータが消失したために、消失したデータを復元できない場合もある。しかし、ローカルコピーによってデータが二重化（冗長化）されていれば、二重化された一方のデータ（例えば、Ｐ−ＶＯＬのデータ）が消失しても、もう一方のデータ（例えば、Ｓ−ＶＯＬのデータ）を使用することができる。このように、データの二重化によって、計算機システムの耐障害性が向上する。
【０２６６】
しかし、Ｐ−ＶＯＬに対応する実領域とＳ−ＶＯＬに対応する実領域とが同一のパリティグループに属する場合、そのパリティグループのデータが消失することによって、Ｐ−ＶＯＬとＳ−ＶＯＬのデータが同時に消失する。この場合、データを二重化したにも関らず耐障害性が向上しない。したがって、耐障害性を向上させるためには、ローカルコピーのペアにおいて、Ｐ−ＶＯＬに対応する実領域とＳ−ＶＯＬに対応する実領域とが異なるパリティグループに属している必要がある。
【０２６７】
本実施の形態では、管理サーバ１６０が、ローカルコピーのペアのＰ−ＶＯＬと同一のプールに対応する仮想ボリュームがＳ−ＶＯＬとして選択されることを防ぐ。あるいは、コピー管理プログラム１１３が、同一のプールに対応するＰ−ＶＯＬとＳ−ＶＯＬの間にペアが形成されることを防いでもよい。以下、ローカルコピーのペアを形成する際に管理サーバ１６０又はコピー管理プログラム１１３が実行するために必要な処理等について説明する。
【０２６８】
図１８は、本発明の実施の形態の仮想ボリューム構成情報１４０の説明図である。
【０２６９】
仮想ボリューム構成情報１４０は、仮想ボリュームを識別する仮想ボリュームＩＤ１４１と、プールＩＤ１４２と、パリティグループＩＤ１４２と、によって構成される。
【０２７０】
仮想ボリュームＩＤ１４１は、ストレージシステム１００が、ホスト１５０に提供可能な仮想ボリュームを一意に特定する識別子である。この仮想ボリュームは、ローカルコピー形成するＰ−ＶＯＬ又はＳ−ＶＯＬに該当するものであってもよい。
【０２７１】
プールＩＤ１４２は、仮想ボリュームにそれぞれに確保される実領域をまとめたプールを特定する識別子である。
【０２７２】
パリティグループＩＤ１４３は、そのプールに含まれるパリティグループを特定する識別子である。
【０２７３】
図１６は、本発明の実施の形態の管理ツールが実行するローカルコピーペア形成時のボリューム選択処理のフローチャートである。
【０２７４】
管理ツール１６３は、管理サーバ１６０のメモリ１６２に格納され、プロセッサ１６１によって実行されるプログラムである。すなわち、以下の説明において管理ツール１６３が実行する処理は、実際には、管理ツール１６３を実行するプロセッサ１６１によって実行される。
【０２７５】
ローカルコピーペア形成時のボリューム選択処理が開始されると、管理ツール１６３は、最初に、これから形成されるペアのＰ−ＶＯＬの候補として、ストレージシステム１００が格納している論理ボリュームの一覧を出力する（ステップ１６０１）。この出力する処理としては、管理端末１７０の表示画面（図示省略）にその一覧を表示してもよい。
【０２７６】
次に、管理ツール１６３は、システム管理者の選択を待つ（ステップ１６０２）。システム管理者は、ステップ１６０１において提示された論理ボリュームの一覧を参照して、これから形成されるペアのＰ−ＶＯＬを選択し、そのＰ−ＶＯＬの識別情報を管理端末１７０に入力することができる。
【０２７７】
管理ツール１６３は、システム管理者によってＰ−ＶＯＬが選択されると、そのＰ−ＶＯＬが仮想ボリュームであるか否かを判定する（ステップ１６０３）。
【０２７８】
ステップ１６０３において、Ｐ−ＶＯＬとして仮想ボリュームが選択されたと判定された場合、Ｐ−ＶＯＬと同一のプールに対応する論理ボリュームがＳ−ＶＯＬとして選択されることを防ぐ必要がある。このため、管理ツール１６３は、仮想ボリューム構成情報１４０をストレージシステム１００から管理Ｉ／Ｆ１０５を介して取得する。次に、仮想ボリューム構成情報１４０とペア情報とを参照し、既に割り当てられていない仮想ボリュームを抽出する。そして、管理ツール１６３は、Ｐ−ＶＯＬ及び抽出した仮想ボリュームに対応する仮想ボリューム構成情報のプールＩＤを参照し、Ｐ−ＶＯＬ及びＰ−ＶＯＬと同じプールに割り当てられた仮想ボリューム以外の仮想ボリュームを特定し、Ｓ−ＶＯＬの候補として出力する（ステップ１６０４）。言い換えると、ストレージシステム１００が格納している論理ボリュームから、選択されたＰ−ＶＯＬが除かれ、さらに、そのＰ−ＶＯＬと同じプールに割り当てられた仮想ボリュームが除かれ、残った論理ボリュームがＳ−ＶＯＬとして出力する。これらの候補は、ステップ１６０１と同様、管理端末１７０の表示画面に表示してもよい。
【０２７９】
一方、ステップ１６０３において、Ｐ−ＶＯＬとして仮想ボリュームでない論理ボリュームが選択されたと判定された場合、Ｐ−ＶＯＬはいずれのプールとも対応していない。したがって、Ｐ−ＶＯＬ以外のいずれの論理ボリュームも、Ｓ−ＶＯＬとして選択することができる。このため、管理ツール１６３は、Ｐ−ＶＯＬ以外の論理ボリュームを、Ｓ−ＶＯＬの候補として出力する（ステップ１６０５）。
【０２８０】
管理ツール１６３は、ステップ１６０４又はステップ１６０５を実行した後、システム管理者の選択を待つ（ステップ１６０６）。そして、システム管理者がＳ−ＶＯＬを選択すると、これから形成されるローカルコピーのペアのＰ−ＶＯＬ及びＳ−ＶＯＬが決定する。
【０２８１】
以上で、ローカルコピーペア形成時のボリューム選択処理が終了する。なお、ステップ１６０４では、同じプールに割り当てられた仮想ボリューム以外のボリュームを抽出したが、パリティグループＩＤ１４３を参照し、同じパリティグループに割り当てられた仮想ボリューム以外のボリュームを抽出してもよい。
【０２８２】
図１７は、本発明の実施の形態のコピー管理プログラム１１３が実行するローカルコピーペア形成処理のフローチャートである。
【０２８３】
ローカルコピーペア形成処理が開始されると、コピー管理プログラム１１３は、最初に、管理サーバ１６０からローカルコピーのペア形成指示を受信する（ステップ１７０１）。このとき、管理ツール１６３は、図１６に示す処理を実行していなくてもよい。
【０２８４】
次に、コピー管理プログラム１１３は、ペア形成指示によって指定されたペアのＰ−ＶＯＬ及びＳ−ＶＯＬの両方が仮想ボリュームであるか否かを判定する（ステップ１７０２）。
【０２８５】
ステップ１７０２において、Ｐ−ＶＯＬ及びＳ−ＶＯＬの両方が仮想ボリュームであると判定された場合、コピー管理プログラム１１３は、これらのＰ−ＶＯＬ及びＳ−ＶＯＬが同一のプールに割り当てられているか否かを判定する（ステップ１７０３）。
【０２８６】
ステップ１７０３において、仮想ボリューム構成情報１４０を参照し、Ｐ−ＶＯＬ及びＳ−ＶＯＬに該当する仮想ボリューム識別情報１４１に関連付けられているプールＩＤ１４２を参照し、Ｐ−ＶＯＬ及びＳ−ＶＯＬが同一のプールに割り当てられていると判定された場合、これらのＰ−ＶＯＬ及びＳ−ＶＯＬによるペアを形成しても、耐障害性が向上しない。このため、コピー管理プログラム１１３は、ペア形成不可を管理サーバ１６０に報告し（ステップ１７０４）、ペア形成処理を中断する（ステップ１７０６）。
【０２８７】
一方、ステップ１７０２において、Ｐ−ＶＯＬ及びＳ−ＶＯＬの少なくとも一方が仮想ボリュームでないと判定された場合、これらのＰ−ＶＯＬ及びＳ−ＶＯＬによるペアを形成することによって、耐障害性の向上が期待される。また、ステップ１７０３において、Ｐ−ＶＯＬ及びＳ−ＶＯＬが同一のプールに割り当てられていないと判定された場合も同様である。したがって、これらの場合、コピー管理プログラム１１３は、Ｐ−ＶＯＬ及びＳ−ＶＯＬによるペアを形成する（ステップ１７０５）。
【０２８８】
以上で、ローカルコピーペア形成処理が終了する。上記のように、管理ツール１６３が図１６に示す処理を実行するか、又は、コピー管理プログラム１１３が図１７に示す処理を実行すれば、同一のプールに対応するＰ−ＶＯＬ及びＳ−ＶＯＬによるペアの形成を防ぐことができる。なお、ステップ１７０４では、同じプールに割り当てられた仮想ボリューム以外のボリュームを抽出したが、パリティグループＩＤ１４３を参照し、同じパリティグループに割り当てられた仮想ボリューム以外のボリュームを抽出してもよい。
【０２８９】
また、仮想ボリューム構成情報１４０は、図１のストレージシステム１００、１３０のメモリに格納されていてもよい。
【０２９０】
以上の本実施の形態によれば、リモートコピー又はローカルコピーが実行される計算機システムにおいて、Ｐ−ＶＯＬ及びＳ−ＶＯＬが共に仮想ボリュームであり、Ｐ−ＶＯＬの記憶領域に実領域が割り当てられていない場合、その記憶領域に対応するＳ−ＶＯＬの記憶領域にも実領域が割り当てられない。このため、リモートコピー又はローカルコピーが実行される計算機システムにおいても、ストレージシステムの記憶容量を効率的に使用することができる。
【図面の簡単な説明】
【０２９１】
【図１】本発明の実施の形態の計算機システムの構成を示すブロック図である。
【図２】本発明の実施の形態の仮想ボリューム管理プログラムが実行する運用中のプール容量調査処理のフローチャートである。
【図３Ａ】本発明の実施の形態のコピー管理プログラムが実行する更新コピー管理処理のフローチャートである。
【図３Ｂ】本発明の実施の形態のコピー管理プログラムが実行する更新コピー管理処理のフローチャートである。
【図３Ｃ】本発明の実施の形態のコピー管理プログラムが実行する更新コピー管理処理のフローチャートである。
【図３Ｄ】本発明の実施の形態のコピー管理プログラムが実行する更新コピー管理処理のフローチャートである。
【図３Ｅ】本発明の実施の形態のコピー管理プログラムが実行する更新コピー管理処理のフローチャートである。
【図４】本発明の実施の形態のコピー管理プログラムが実行する形成コピー処理のフローチャートである。
【図５】本発明の実施の形態のコピー管理プログラムが実行する差分ビットマップ作成処理のフローチャートである。
【図６】本発明の実施の形態のＭＣＵ側のコピー管理プログラムが実行するコピー処理のフローチャートである。
【図７Ａ】本発明の実施の形態において形成コピー処理が実行される際の割当ビットマップの例を示す説明図である。
【図７Ｂ】本発明の実施の形態の差分ビットマップ作成処理によって作成される差分ビットマップの例を示す説明図である。
【図７Ｃ】本発明の実施の形態の形成コピー処理におけるコピー処理の例を示す説明図である。
【図７Ｄ】本発明の実施の形態のＲＣＵ側のコピー管理プログラムが実行するコピー処理のフローチャートである。
【図８】本発明の実施の形態のＩ／Ｏ制御プログラムが実行するＩ／Ｏ処理のフローチャートである。
【図９Ａ】本発明の実施の形態のコピー管理プログラムが実行するリシンク処理のフローチャートである。
【図９Ｂ】本発明の実施の形態のコピー管理プログラムが実行するリシンク処理のフローチャートである。
【図１０】本発明の実施の形態のコピー管理プログラムが実行するボリュームグループのプールのマージ処理のフローチャートである。
【図１１】本発明の実施の形態のコピー管理プログラムが実行するペア形成時のプール容量追加処理のフローチャートである。
【図１２Ａ】本発明の実施の形態の管理ツールが実行する運用中のプール容量追加指示処理の第１の方法のフローチャートである。
【図１２Ｂ】本発明の実施の形態のＭＣＵ及びＲＣＵの仮想ボリューム管理プログラムが実行する運用中のプール容量追加処理の第１の方法のフローチャートである。
【図１３Ａ】本発明の実施の形態の管理ツールが実行する運用中のプール容量追加指示処理の第２の方法のフローチャートである。
【図１３Ｂ】本発明の実施の形態のＭＣＵのコピー管理プログラムが実行する運用中のプール容量追加処理の第２の方法のフローチャートである。
【図１３Ｃ】本発明の実施の形態のＲＣＵのコピー管理プログラムが実行する運用中のプール容量追加処理の第２の方法のフローチャートである。
【図１４】本発明の実施の形態のコピー管理プログラムが実行するリシンク時のプール容量追加処理のフローチャートである。
【図１５】本発明の実施の形態においてローカルコピーのペアが形成される場合の計算機システムの構成を示すブロック図である。
【図１６】本発明の実施の形態の管理ツールが実行するローカルコピーペア形成時のボリューム選択処理のフローチャートである。
【図１７】本発明の実施の形態のコピー管理プログラムが実行するローカルコピーペア形成処理のフローチャートである。
【図１８】本発明の実施の形態の仮想ボリューム構成情報の説明図である。
【符号の説明】
【０２９２】
１００  ストレージシステム（ＭＣＵ）
１０１、１６１  プロセッサ
１０２、１６２  メモリ
１０３  ドライブ
１０４  インターフェース（Ｉ／Ｆ）
１０５  管理インターフェース（管理Ｉ／Ｆ）
１１１  仮想ボリューム管理プログラム
１１２  リモートコピープログラム
１１３  コピー管理プログラム
１１４  Ｉ／Ｏ制御プログラム
１１５  領域管理情報
１１６  ペア情報
１１７  プール管理情報
１１８  コピー要否情報
１２５、１５５  ストレージネットワーク
１３０  ストレージシステム（ＲＣＵ）
１４０  仮想ボリューム構成情報
１５０  ホスト
１６０  管理サーバ
１６５  管理ネットワーク
１７０  管理端末
１５０１  ローカルコピープログラム
【図１】
2007133822.tif 000003
【図２】
2007133822.tif 000004
【図３Ａ】
2007133822.tif 000005
【図３Ｂ】
2007133822.tif 000006
【図３Ｃ】
2007133822.tif 000007
【図３Ｄ】
2007133822.tif 000008
【図３Ｅ】
2007133822.tif 000009
【図４】
2007133822.tif 000010
【図５】
2007133822.tif 000011
【図６】
2007133822.tif 000012
【図７Ａ】
2007133822.tif 000013
【図７Ｂ】
2007133822.tif 000014
【図７Ｃ】
2007133822.tif 000015
【図７Ｄ】
2007133822.tif 000016
【図８】
2007133822.tif 000017
【図９Ａ】
2007133822.tif 000018
【図９Ｂ】
2007133822.tif 000019
【図１０】
2007133822.tif 000020
【図１１】
2007133822.tif 000021
【図１２Ａ】
2007133822.tif 000022
【図１２Ｂ】
2007133822.tif 000023
【図１３Ａ】
2007133822.tif 000024
【図１３Ｂ】
2007133822.tif 000025
【図１３Ｃ】
2007133822.tif 000026
【図１４】
2007133822.tif 000027
【図１５】
2007133822.tif 000028
【図１６】
2007133822.tif 000029
【図１７】
2007133822.tif 000030
【図１８】
2007133822.tif 000031