(57)【要約】【課題】一つのコピーグループに、オープン系のホストが利用するプライマリボリュームを含んだボリュームペアと、メインフレーム系のホストが利用するプライマリボリュームを含んだボリュームペアとが混在している場合に、そのコピーグループに属する全ボリュームペアのリモートコピー停止や各プライマリボリュームに対する書込みの停止を、少なくともオープン系のホストに主導させることなく実現する。【解決手段】一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループについてライト保留状態を設定し、ライト保留状態の設定の後、該コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定する。ライト保留状態の設定や、コピー停止設定状態の設定の実行にあたり、オープンホストからのコマンドは不要である。【選択図】図１
2008033704.tif 000002
【特許請求の範囲】
【請求項１】
ライトコマンドを送信するメインフレーム系のホストであるメインフレームホストと、
ライトコマンドを送信するオープン系のホストであるオープンホストと、
複数のセカンダリボリュームを備えた一以上のセカンダリのストレージシステムと
に接続され、前記メインフレームホスト及び前記オープンホストからそれぞれライトコマンドを受信するプライマリのストレージシステムであって、
前記複数のセカンダリボリュームとそれぞれ複数のボリュームペアを構成する複数のプライマリボリュームを含んだ複数の論理ボリュームと、
前記メインフレームホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第一のＩＯ処理部と、
前記オープンホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第二のＩＯ処理部と、
ライトデータの書込み先のプライマリボリュームとボリュームペアを構成するセカンダリボリュームにコピーするためのリモートコピーを実行するリモートコピー部と、
前記複数のボリュームペアの各々のペア状態を監視し監視結果に応じた制御を実行するペア状態監視部と、
を備え、
前記複数のボリュームペアのうちの二以上のボリュームペアで構成された一つのコピーグループに、前記メインフレームホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるメインフレームペアと、前記オープンホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるオープンペアとが混在しており、
前記ペア状態監視部は、前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループについてライト保留状態を設定し、その後で、該コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定し、
前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を行わず、
前記リモートコピー部は、コピー停止状態となったボリューペアについては前記リモートコピーを行わない、
ストレージシステム。
【請求項２】
キャッシュ記憶域と、
共有記憶域と、
前記メインフレームホストと通信するための通信インタフェース装置であり、前記メインフレームホストからライトコマンドを受信し、該ライトコマンドに従うライトデータを前記キャッシュ記憶域に記憶させるメインフレームホストＩ／Ｆと、
前記オープンホストと通信するための通信インタフェース装置であり、前記オープンホストからライトコマンドを受信し、該ライトコマンドに従うライトデータを前記キャッシュ記憶域に記憶させるオープンホストＩ／Ｆと、
前記セカンダリストレージシステムと通信するための通信インタフェース装置であるセカンダリＩ／Ｆと、
前記複数の論理ボリュームを有する二以上の記憶装置と通信するための通信インタフェース装置であり、前記キャッシュ記憶域に記憶されたライトデータを読み出して、該ライトデータの格納先となる論理ボリュームを有した記憶装置に該ライトデータを書きこむ記憶装置Ｉ／Ｆと、
を備え、
前記第一のＩＯ処理部は、前記メインフレームホストＩ／Ｆに備えられ、
前記第二のＩＯ処理部は、前記オープンホストＩ／Ｆに備えられ、
前記リモートコピー部及び前記ペア状態監視部は、前記セカンダリＩ／Ｆに備えられ、
前記ライト保留状態及び各ペア状態が、前記共有記憶域に設定される、
請求項１記載のストレージシステム。
【請求項３】
前記ペア状態監視部が、前記コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定した場合に、前記ライト保留状態をライト保留解除状態に変更し、
前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留解除状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を実行する、
請求項１記載のストレージシステム。
【請求項４】
前記プライマリのストレージシステムに、別のプライマリのストレージシステムが接続されており、
前記一つのコピーグループに属する複数のプライマリボリュームのうちの少なくとも一つが、前記別のプライマリストレージシステムに備えられ、
前記ペア状態監視部は、前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、そのコピーグループに属するプライマリボリュームを備えた前記別のプライマリストレージシステムに、該コピーグループに関する所定の通知を発行する、
請求項１記載のストレージシステム。
【請求項５】
前記メインフレームホストに、別のプライマリのストレージシステムが接続されており、
前記一つのコピーグループに属する複数のプライマリボリュームのうちの少なくとも一つが、前記別のプライマリストレージシステムに備えられ、
前記ペア状態監視部は、前記一つのコピーグループのうちの或るメインフレームペアのペア状態が、前記障害状態又は前記コピー停止状態であれば、該メインフレームペアのプライマリボリュームに対してライトコマンドを発行する前記メインフレームホストに、ペア状態の変更を通知する、
請求項１記載のストレージシステム。
【請求項６】
前記プライマリのストレージシステムに、別のプライマリのストレージシステムが接続されており、前記メインフレームホストに、前記別のプライマリストレージシステムが接続され、
前記一つのコピーグループに属する複数のプライマリボリュームのうちの少なくとも一つが、前記別のプライマリストレージシステムに備えられ、
前記ペア状態監視部は、以下の（Ａ）の処理、
（Ａ）前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、そのコピーグループに属するプライマリボリュームを備えた前記別のプライマリストレージシステムに、該コピーグループに関する所定の通知を発行する、
を実行し、前記プライマリのストレージシステムと前記別のプライマリストレージシステムとの接続が切断されたことが検知された場合に、前記（Ａ）の処理に代えて（Ｂ）の処理、
（Ｂ）前記一つのコピーグループのうちの或るメインフレームペアのペア状態が、前記障害状態又は前記コピー停止状態であれば、該メインフレームペアのプライマリボリュームに対してライトコマンドを発行する前記メインフレームホストに、ペア状態の変更を通知する、
を実行する、
請求項１記載のストレージシステム。
【請求項７】
前記ペア状態監視部は、前記ライト保留状態を開始してから一定時間経過した場合には、前記コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定したか否かに関わらず、前記ライト保留状態をライト保留解除状態に変更する、
請求項３の記載のストレージシステム。
【請求項８】
複数のプライマリストレージシステムを備えた計算機システムであって、
前記複数のプライマリストレージシステムの各々が、
ライトコマンドを送信するメインフレーム系のホストであるメインフレームホストと、
ライトコマンドを送信するオープン系のホストであるオープンホストと、
複数のセカンダリボリュームを備えた一以上のセカンダリのストレージシステムと
に接続され、前記メインフレームホスト及び前記オープンホストからそれぞれライトコマンドを受信し、
前記複数のセカンダリボリュームとそれぞれ複数のボリュームペアを構成する複数のプライマリボリュームのうちの少なくとも一つを含んだ複数の論理ボリュームと、
前記メインフレームホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第一のＩＯ処理部と、
前記オープンホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第二のＩＯ処理部と、
ライトデータの書込み先のプライマリボリュームとボリュームペアを構成するセカンダリボリュームにコピーするためのリモートコピーを実行するリモートコピー部と、
前記複数のボリュームペアの各々のペア状態を監視し監視結果に応じた制御を実行するペア状態監視部と、
を備え、
前記複数のボリュームペアのうちの二以上のボリュームペアで構成された一つのコピーグループに、前記メインフレームホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるメインフレームペアと、前記オープンホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるオープンペアとが混在しており、前記一つのコピーグループに属する複数のプライマリボリュームが、前記複数のプライマリストレージシステムに分散して備えられ、
前記複数のプライマリストレージシステムのうちの第一のプライマリストレージシステムにおいて、前記ペア状態監視部は、前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループに属するプライマリボリュームを備えた第二のプライマリストレージシステムに、該コピーグループに関わる所定の通知を発行し、且つ、該コピーグループについてライト保留状態を設定し、前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を行わず、
前記第一のプライマリストレージシステムにおいて、前記ペア状態監視部は、該コピーグループに属する、該第一のプライマリストレージシステムに備えられるプライマリボリュームを有した全ボリュームペアのペア状態をコピー停止状態に設定し、前記リモートコピー部は、コピー停止状態となったボリューペアについては前記リモートコピーを行わず、
前記第二のプライマリストレージシステムにおいて、前記ペア状態監視部は、前記第一のプライマリストレージシステムからの前記所定の通知に応答し、該所定の通知に関わるコピーグループについてライト保留状態を設定し、その後で、前記ペア状態監視部は、該コピーグループに属する、該第二のプライマリストレージシステムに備えられるプライマリボリュームを有した全ボリュームペアのペア状態をコピー停止状態に設定する、
計算機システム。
【請求項９】
前記複数のプライマリストレージシステムの各々において、前記ペア状態監視部が、前記コピーグループに属するボリュームペアのペア状態をコピー停止状態に設定した場合に、前記ライト保留状態をライト保留解除状態に変更し、前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留解除状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を実行する、
請求項８記載の計算機システム。
【請求項１０】
ライトコマンドを送信するメインフレーム系のホストである一以上のメインフレームホストと、
前記一以上のメインフレームホストにそれぞれ接続された複数のプライマリストレージシステムを備えた計算機システムであって、
各メインフレームホストが、ボリュームペアの制御を行うペア制御部を備え、
前記複数のプライマリストレージシステムの各々が、
ライトコマンドを送信するオープン系のホストであるオープンホストと、
複数のセカンダリボリュームを備えた一以上のセカンダリのストレージシステムと
に接続され、前記メインフレームホスト及び前記オープンホストからそれぞれライトコマンドを受信し、
前記複数のセカンダリボリュームとそれぞれ複数のボリュームペアを構成する複数のプライマリボリュームのうちの少なくとも一つを含んだ複数の論理ボリュームと、
前記メインフレームホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第一のＩＯ処理部と、
前記オープンホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第二のＩＯ処理部と、
ライトデータの書込み先のプライマリボリュームとボリュームペアを構成するセカンダリボリュームにコピーするためのリモートコピーを実行するリモートコピー部と、
前記複数のボリュームペアの各々のペア状態を監視し監視結果に応じた制御を実行するペア状態監視部と、
を備え、
前記複数のボリュームペアのうちの二以上のボリュームペアで構成された一つのコピーグループに、前記メインフレームホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるメインフレームペアと、前記オープンホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるオープンペアとが混在しており、前記一つのコピーグループに属する複数のプライマリボリュームが、前記複数のプライマリストレージシステムに分散して備えられ、
前記複数のプライマリストレージシステムのうちの第一のプライマリストレージシステムにおいて、前記ペア状態監視部は、前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループについてライト保留状態を設定し、前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を行わず、
前記第一のプライマリストレージシステムにおいて、前記ペア状態監視部は、該コピーグループに属する、該第一のプライマリストレージシステムに備えられるプライマリボリュームを有した全ボリュームペアのペア状態をコピー停止状態に設定し、それにより、前記リモートコピー部は、コピー停止状態となったボリューペアについては前記リモートコピーを行わず、
前記第一のプライマリストレージシステムにおいて、前記ペア状態監視部は、前記一つのコピーグループのうちの或るメインフレームペアのペア状態が、前記障害状態又は前記コピー停止状態であれば、該メインフレームペアのプライマリボリュームに対してライトコマンドを発行する前記メインフレームホストに、ペア状態の変更を通知し、
前記メインフレームホストの前記ペア制御部が、前記通知されたペア状態変更に対応するボリュームペアが属するコピーグループについてライト保留状態を設定することのライト保留指示を、該コピーグループに属するプライマリボリュームを有した第二のプライマリストレージシステムに送信し、該ライト保留指示を受信した前記第二のプライマリストレージシステムにおいて、前記ペア状態監視部が、前記ライト保留指示に応答して、該コピーグループについてライト保留状態を設定し、
前記メインフレームホストの前記ペア制御部が、前記コピーグループに属するボリュームペアのペア状態をコピー停止状態にすることのペア状態変更指示を、前記第二のプライマリストレージシステムに送信し、該ペア状態指示を受信した前記第二のプライマリストレージシステムにおいて、前記ペア状態監視部が、前記ペア状態指示に応答して、該コピーグループに属する、該第二のプライマリストレージシステムに備えられるプライマリボリュームを有した全ボリュームペアのペア状態をコピー停止状態に設定する、
計算機システム。
【請求項１１】
前記複数のプライマリストレージシステムの各々において、前記ペア状態監視部が、前記コピーグループに属するボリュームペアのペア状態をコピー停止状態に設定した場合に、前記ライト保留状態をライト保留解除状態に変更し、前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留解除状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を実行する、
請求項１０記載の計算機システム。
【請求項１２】
複数のボリュームペアのうちの二以上のボリュームペアで構成された一つのコピーグループに、メインフレーム系のホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるメインフレームペアと、オープン系のホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるオープンペアとが混在しており、前記コピーグループにおけるプライマリボリュームは、プライマリストレージシステムに存在し、前記コピーグループにおけるセカンダリボリュームは、前記プライマリストレージシステムに接続されたセカンダリストレージシステムに存在し、
各ボリュームペアのペア状態を監視し、一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループについてライト保留状態を設定し、もし、その後に、或るホストからライトコマンドを受信し、該ライトコマンドに従う論理ボリュームが、前記ライト保留状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を行わず、
前記ライト保留状態の設定の後、該コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定する、
リモートコピー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プライマリのストレージシステムのプライマリボリュームからセカンダリのストレージシステムのセカンダリボリュームへのリモートコピーに関する。
【背景技術】
【０００２】
リモートコピーに関する技術として、例えば文献１（特開２００５−３３２３５４号公報）に開示の技術がある。この技術によれば、計算機システムは、ホスト計算機と、複数の第１の論理ディスクを有する複数の第１のストレージシステムと、複数の第２の論理ディスクを有する複数の第２のストレージシステムとを有する。第一の論理ディスクと第２の論理ディスクとはペアを構成しており、各ペアは第一のコピーグループ若しくは第２のコピーグループのいずれかに属する。コピーグループ毎に、リモートコピーを停止させる場合、まずコピーグループを特定し、次にコピーグループに属するペアを特定する。そして特定されたペアの第１の論理ディスクを有する第１のストレージシステムが、特定されたペアのリモートコピー処理を停止する。
【０００３】
【特許文献１】特開２００５−３３２３５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
リモートコピーには、同期方式と非同期方式の二種類ある。
【０００５】
同期方式は、ホストからプライマリストレージシステムに書き込み命令があった場合に、プライマリストレージシステムが、セカンダリストレージシステムに書き込み対象データを転送した後、ホストからの上記書き込み命令に対する完了報告を、そのホストに返信する方式である。以下、同期方式でのリモートコピーを「同期リモートコピー」と言う。
【０００６】
一方、非同期方式は、ホストからプライマリストレージシステムに書き込み命令があった場合に、プライマリストレージシステムが、書き込み命令に対する完了報告をホストに返信した後、セカンダリストレージシステムへ書き込み対象データを転送する方式である。以下、非同期方式でのリモートコピーを「非同期リモートコピー」と言う。
【０００７】
一つのコピーグループに、オープン系のホスト（以下、オープンホスト）が利用するプライマリボリュームを含んだボリュームペアと、メインフレーム系のホスト（以下、メインフレームホスト）が利用するプライマリボリュームを含んだボリュームペアとを混在させた運用形態を考察する。以下の説明では、第Ｎのボリュームペアは、第Ｎのプライマリボリューム（コピー元ボリューム）と第Ｎのセカンダリボリューム（コピー先ボリューム）とで構成されているものとする（Ｎは一以上の整数）。
【０００８】
この運用形態において、コピーグループのうちの第一のボリュームペアに障害が生じた場合、第一のプライマリボリュームにデータが書き込まれても、そのデータは第一のセカンダリボリュームには転送されない。しかし、そのコピーグループに属する第二のボリュームペアで同期リモートコピーが行われるようになっているならば、第二のプライマリボリュームに対するデータが第二のセカンダリボリュームに転送される。このため、コピーグループにおけるプライマリボリューム群とセカンダリボリューム群との間で整合性がなくなる。これを防ぐためには、コピーグループのうちの第一のボリュームペアに障害が生じた場合には、そのコピーグループに属する全てのボリュームペアでのリモートコピーを停止する必要がある。
【０００９】
これを実現するための方法としては、各ホストの主導の下で、コピーグループに属する全てのボリュームペアでのリモートコピーを停止する方法が考えられる。具体的には、そのコピーグループ内の各プライマリボリュームを利用する各ホストに、ボリュームペアを制御するためのコンピュータプログラム（以下、ペア制御プログラム）をインストールしておく。プライマリストレージシステムが、各ホストに、障害を通知する。各ホストのペア制御プログラムが、ＩＯ保留状態（プライマリボリュームへの書き込みを行わない状態）にするためのＩＯ制御コマンドや、自分が利用するプライマリボリュームを有したボリュームペアをサスペンド状態（プライマリボリュームに対するデータをそれのセカンダリボリュームにコピーしない状態）にするためのペア状態制御コマンドを、プライマリストレージシステムに送信する。プライマリストレージシステムが、ホストからのＩＯ制御コマンドに従って、そのホストに対してＩＯ保留状態とする。また、プライマリストレージシステムは、そのペア状態制御コマンドで指定されているボリュームペアのステータスをサスペンド状態に変更することで、ボリュームペアでのリモートコピーを停止する。
【００１０】
しかし、この方法は、必ずしも好適な方法とは言えない。なぜなら、オープン系では、いろいろなＯＳ（オペレーティングシステム）があり、そのＯＳが搭載された環境で、ペア制御プログラムが動作するので、障害の通知を通知しても、必ずしも期待通りの処理が実行されるとは限らないためである。
【００１１】
従って、本発明の目的は、一つのコピーグループに、オープン系のホストが利用するプライマリボリュームを含んだボリュームペアと、メインフレーム系のホストが利用するプライマリボリュームを含んだボリュームペアとが混在している場合に、そのコピーグループに属する全ボリュームペアのリモートコピー停止や各プライマリボリュームに対する書込みの停止を、少なくともオープン系のホストに主導させることなく実現することにある。
【００１２】
本発明の更なる目的は、後の記載から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本発明に従うプライマリのストレージシステムは、ライトコマンドを送信するメインフレーム系のホストであるメインフレームホストと、ライトコマンドを送信するオープン系のホストであるオープンホストと、複数のセカンダリボリュームを備えた一以上のセカンダリのストレージシステムとに接続され、前記メインフレームホスト及び前記オープンホストからそれぞれライトコマンドを受信する。このプライマリストレージシステムは、前記複数のセカンダリボリュームとそれぞれ複数のボリュームペアを構成する複数のプライマリボリュームを含んだ複数の論理ボリュームと、前記メインフレームホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第一のＩＯ処理部と、前記オープンホストから受信したライトコマンドに従うライトデータを前記複数の論理ボリュームのうちの該ライトコマンドに従う論理ボリュームに書くためのＩＯ処理を実行する第二のＩＯ処理部と、ライトデータの書込み先のプライマリボリュームとボリュームペアを構成するセカンダリボリュームにコピーするためのリモートコピーを実行するリモートコピー部と、前記複数のボリュームペアの各々のペア状態を監視し監視結果に応じた制御を実行するペア状態監視部とを備える。
【００１４】
複数のボリュームペアのうちの二以上のボリュームペアで構成された一つのコピーグループに、前記メインフレームホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるメインフレームペアと、前記オープンホストからのライトコマンドに従う論理ボリュームをプライマリボリュームとしたボリュームペアであるオープンペアとが混在している。
【００１５】
前記ペア状態監視部は、前記一つのコピーグループのうちの或るボリュームペアのペア状態が、該ボリュームペアで障害が生じたことにより変更された障害状態であれば、該コピーグループについてライト保留状態を設定し、その後で、該コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定する。ライト保留状態の設定や、コピー停止設定状態の設定の実行にあたり、前記オープンホストからのコマンドは不要である。
【００１６】
前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を行わない。
【００１７】
前記リモートコピー部は、コピー停止状態となったボリューペアについては前記リモートコピーを行わない。
【００１８】
一つの実施態様では、前記ペア状態監視部が、前記コピーグループに属する全ての他のボリュームペアのペア状態をコピー停止状態に設定した場合に、前記ライト保留状態をライト保留解除状態に変更する。前記第一のＩＯ処理部と前記第二のＩＯ処理部のいずれも、前記受信したライトコマンドに従う論理ボリュームが、前記ライト保留解除状態であるコピーグループに属するプライマリボリュームであれば、該プライマリボリュームにライトデータを書き込むためのＩＯ処理を実行する。
【００１９】
前述した各部は各手段と言い換えてもよい。前記各部は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、一部をコンピュータプログラムで実現し残りをハードウェアで実現する）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００２０】
本発明によれば、一つのコピーグループに、オープン系のホストが利用するプライマリボリュームを含んだボリュームペアと、メインフレーム系のホストが利用するプライマリボリュームを含んだボリュームペアとが混在している場合に、そのコピーグループに属する全ボリュームペアのリモートコピー停止や各プライマリボリュームに対する書込みの停止を、少なくともオープン系のホストに主導させることなく実現することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の幾つかの実施例を説明する。なお、以下の説明では、オープンホストとメインフレームホストのいずれでも良い場合には単に「ホスト」と言うことにする。
【実施例１】
【００２２】
図１は、本発明の実施例１に係るシステム全体構成の一例を示す。
【００２３】
ローカルサイト１Ａと、リモートサイト１Ｂとがある。
【００２４】
ローカルサイト１Ａに、プライマリストレージシステム４０Ｐと、プライマリストレージシステム４０Ｐに接続されたメインフレームホスト１０Ａとオープンホスト１０Ｃとがある。プライマリストレージシステム４０Ｐとメインフレームホスト１０Ａは、メインフレーム系の通信として、例えば、ＥＳＣＯＮ（Enterprise Systems Connection）（登録商標）、或いはＦＩＣＯＮ（Fibre Connection）（登録商標）に従う通信を行うことができる。プライマリストレージ４０Ｐとオープンホスト１０Ｃは、オープン系の通信として、例えば、ｉＳＣＳＩ（Internet Small Computer System Interface）或いはＦｉｂｒｅ Ｃｈａｎｎｅｌに従う通信を行うことができる。
【００２５】
リモートサイト１Ｂに、プライマリストレージシステム４０Ｐに接続されたセカンダリストレージシステム４０Ｓがある。セカンダリストレージシステム４０Ｓには、ホストが接続されていてもいなくてもよい。
【００２６】
図２は、メインフレームホスト１０Ａの構成例を示す。
【００２７】
メインフレームホスト１０Ａは、一種の計算機であり、ＣＰＵ５１１と、メモリ５１３（他種の記憶資源でも良い）と、ポート５１５（プライマリストレージシステム４０Ｐとの通信ポート）と、入力装置５０５（例えばキーボードやマウス）と、出力装置５０７（例えば表示装置）と、記録媒体５０１（例えばフレキシブルディスク）からデータを読み取る記録媒体読取装置５０３とを備える。メモリ５１３には、コンピュータプログラムとして、例えば、プライマリストレージシステム４０Ｐを制御するためのペア制御プログラム５１７と、所定の業務を実行するためのアプリケーションプログラム５１９と、図示しないＯＳとが記憶される（ペア制御プログラム５１７は、ＯＳに組み込まれていても良い）。それらのコンピュータプログラムは、ＣＰＵ５１１で実行される。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。
【００２８】
なお、この図２は、メインフレームホスト１０Ａの構成を代表的に示しているが、オープンホスト１０Ｃも、実質的に同様の構成とすることができる。その際、メモリには、ペア制御プログラムは無くてもよい。
【００２９】
図３は、プライマリストレージシステム４０Ｐの構成例を示す。
【００３０】
プライマリストレージシステム４０Ｐは、例えば、アレイ状に配列された多数のディスク４００を備えるＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）システムとすることができる。
【００３１】
プライマリストレージシステム４０Ｐは、コントローラ部２０と、ディスクユニット３０とに大別することができる。
【００３２】
コントローラ部２０は、例えば、複数のインタフェース制御装置（以下、Ｉ／Ｆ）と、キャッシュメモリ２４と、共有メモリ２５と、スイッチング制御部２６とを備えている。複数のインタフェース制御装置として、メインフレーム用のホストＩ／Ｆ（以下、メインフレームＩ／Ｆ）２１Ａと、オープンシステム用のホストＩ／Ｆ（以下、オープンＩ／Ｆ）２１Ｃと、他のストレージシステムとのＩ／Ｆ（以下、リモート通信Ｉ／Ｆ）２１Ｂと、ディスク４００とのＩ／Ｆ（以下、ディスクＩ／Ｆ）２２とがある。コントローラ部２０には、プライマリストレージシステム２０を管理するための管理端末２５０が接続されても良い。
【００３３】
各Ｉ／Ｆは、相手との通信を制御する装置であり、実質的に同様のハードウェア構成とすることができる。図４に、メインフレームＩ／Ｆ２１Ａの構成例を示す。メインフレームＩ／Ｆ２１Ａは、メインフレームホスト１０Ａと通信するためのポート６０１と、スイッチング制御部２６に接続されるポート６０９と、送受信されるデータを一時的に記憶するためのキャッシュメモリ６０５と、制御プログラム６１１を記憶した制御メモリ６０７と、その制御プログラム６１１を実行するＣＰＵ６０３とが備えられる。
【００３４】
制御プログラム６１１は、メインフレームＩ／Ｆ２１Ａ、オープンＩ／Ｆ２１Ｃ及びリモート通信Ｉ／Ｆ２１Ｂのそれぞれに記憶される。本実施例１では、メインフレームＩ／Ｆ２１Ａ及びオープンＩ／Ｆ２１Ｃに記憶される制御プログラム６１１は、ホストからのＩＯコマンド（ライトコマンド又はリードコマンド）を処理するＩＯ処理プログラムである。一方、リモート通信Ｉ／Ｆ２１Ｂに記憶される制御プログラム６１１は、リモートコピーを実行するリモートコピープログラムや、ボリュームペアのペア状態を監視しその監視結果に基づく処理を実行するペア状態監視プログラムである。
【００３５】
キャッシュメモリ２４は、例えば揮発性又は不揮発性のメモリであり、ホスト１０Ａ、１０Ｃから受信したデータや、ディスク４００から読出されたデータを一時的に記憶することができる。共有メモリ２５は、例えば揮発性或いは不揮発性のメモリであり、プライマリストレージシステム４０Ｐでの制御に関する情報（以下、制御データ群）が格納される。例えば、共有メモリ２５とキャッシュメモリ２４は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。
【００３６】
スイッチング制御部２６は、各Ｉ／Ｆ２１Ａ〜２１Ｂ、２２、キャッシュメモリ２４及び共有メモリ２５を相互に接続させる装置であり、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
【００３７】
ディスユニット３０には、アレイ状に配列された複数のディスク４００が含まれている。内部ディスク４００としては、例えば、ハードディスク、フレキシブルディスク、光ディスクなどのディスク型記憶装置とすることができる。ディスク４００に代えて、他種の記憶装置、例えば、磁気テープ、半導体メモリ（例えばフラッシュメモリ）を用いることもできる。ディスク４００の記憶領域上には、論理ボリューム３１が設けられる。複数の論理ボリュームが、一つの論理的な記憶ユニットとして構成されても良い。その記憶ユニットには、メインフレームホストが利用するプライマリボリュームと、オープンホストが利用するプライマリボリュームとが混在しても良い。
【００３８】
前述したリモート通信Ｉ／Ｆ２１Ｂには、セカンダリストレージシステム４０Ｓが接続されるが、それに加えて、他のプライマリストレージシステムが接続されても良い。或いは、コントローラ部２０には、セカンダリストレージシステム４０Ｓに接続されるリモート通信Ｉ／Ｆと、他のプライマリストレージシステムに接続されるリモート通信Ｉ／Ｆとが別々に設けられても良い。また、セカンダリストレージシステム４０Ｓが、リモート通信Ｉ／Ｆ２１Ｂに接続され、他のプライマリストレージシステムは、図示しない所定のＩ／Ｆを介して専用線で接続されても良い。
【００３９】
セカンダリストレージサブシステム４０Ｓは、プライマリストレージシステム４０Ｐのような構成であっても良い。また、プライマリストレージシステム４０Ｐ及びセカンダリストレージシステム４０Ｓの少なくとも一方のコントローラ部２０は、例えば、ＣＰＵ、メモリ及び通信ポートを備えた、図３に記載の構成よりも簡易な構成の回路基盤であっても良い。この場合、ＣＰＵが、複数のＩ／Ｆによって行われる処理を実行することができる。
【００４０】
さて、前述した共有メモリ２５に記憶される制御データ群としては、例えば、以下に説明するリモートコピーペア制御テーブル、同期リモートコピーグループ制御テーブル、及び同期リモートコピー拡張制御テーブルがある。
【００４１】
図５は、リモートコピーペア制御テーブルの構成例を示す。
【００４２】
リモートコピーペア制御テーブルは、プライマリストレージシステム内の各ボリュームに関する情報が登録され、リモートコピーの制御に使用されるテーブルである。具体的には、例えば、各プライマリボリューム毎に、プライマリボリュームのボリューム＃（＃は識別子）、コピー先装置＃（プライマリストレージシステムの識別子）、コピー先ボリューム＃（セカンダリボリュームの識別子）、コピー種別（同期方式と非同期方式のどちらのリモートコピーか）、グループ＃（コピーグループの識別子）、ペア状態、及びＭＦ／ＯＰＥＮ（メインフレームかオープンか）がある。
【００４３】
ペア状態において、"Ｓｉｍｐｌｅｘ"は、ボリュームペアを構成していないボリュームを意味し、"Ｄｕｐｌｅｘ"が、ボリュームペアを構成するプライマリボリュームであることを意味する。ペア状態"Ｄｕｐｌｅｘ"且つコピー種別"同期"のボリュームを指定したライトコマンドを受けた場合、ＩＯ処理プログラムは、それを契機にリモートコピープログラムを起動することができる。ＩＯ処理プログラムは、そのライトコマンドに従うデータをキャッシュメモリ２４に書き、起動したリモートコピープログラムが、キャッシュメモリ２４上のデータを、そのコマンドで指定されているボリュームに対応したセカンダリボリュームに転送する。その転送に対して所定の応答（例えば完了報告）を受領した場合、リモートコピープログラムは、そのＩＯ処理プログラムに応答を返送し、ＩＯ処理プログラムは、その応答を受けた場合に、ライトコマンドの送信元ホストに、完了報告を返す。なお、ライトコマンドで指定されたボリュームのコピー種別が"非同期"の場合には、ＩＯ処理プログラムは、ライトコマンドを受信してキャッシュメモリ２４にデータを書いたら、そのライトコマンドの送信元ホストに完了報告を返すことができる。また、その場合、ライトコマンドの受信とは別のタイミングでリモートコピープログラムが実行される。
【００４４】
また、図示しないが、ペア状態には、"障害Ｓｕｓｐｅｎｄ"と"Ｓｕｓｐｅｎｄ"があり、それは、いずれも、リモートコピーが一時停止中であることを意味する。ペア状態が"障害Ｓｕｓｐｅｎｄ"や"Ｓｕｓｐｅｎｄ"のボリュームにライトコマンドが発生しても、リモートコピープログラムが実行されない。
【００４５】
また、この図５のテーブルにおいて、任意のボリューム（ペア状態"障害Ｓｕｓｐｅｎｄ"のボリューム）のグループ＃やＭＦ／ＯＰＥＮから、そのボリュームが属するコピーグループの識別子や、そのボリュームを使用するホストがメインフレームホストであるかオープンホストであるかを識別することができる。
【００４６】
図６は、同期リモートコピーグループ制御テーブルの構成例を示す。
【００４７】
このテーブルには、同期リモートコピーが実行されるコピーグループ（以下、同期コピーグループ）に関する情報が登録される。具体的には、例えば、同期コピーグループ毎に、グループ＃、制御情報、ＩＯ保留開始時間、タイムアウト時間が登録される。制御情報は、例えばＯＮ（１）とＯＦＦ（０）の２値で表される。制御情報ＯＮは、ＩＯ保留状態であることを意味し、制御情報ＯＦＦは、ＩＯ保留状態ではないことを意味する。ＩＯ保留開始時間は、ＩＯ保留状態が開始した時刻を表し、その時刻から、それに対応したタイムアウト時間（例えば１２０秒）が経過したときに、強制的に制御情報がＯＮからＯＦＦにされる。なお、ＩＯ保留状態とは、ライトコマンドの受け付けを禁止するわけではないが、ライトコマンドに従うＩＯ処理を実行しない状態であることを意味する。具体的には、例えば、ＩＯ保留状態において、ライトコマンドを受けた場合には、特定の応答（例えば、ビジー、或いはリトライ要求）を返すことで、そのライトコマンドを再度受け付ける旨を、そのライトコマンドの発行元ホストに通知することができる。より具体的には、例えば、ＩＯ保留状態とは、メインフレームホストに対しては、ＳＣＰ（Ｓｔａｔｅ  Ｃｈａｎｇｅ  Ｐｅｎｄｉｎｇ）にすることであり、オープンホストに対しては、ｂｕｓｙ（ｑｕｅｕｅ  ｆｕｌｌ）状態にすることである。
【００４８】
図７は、同期リモートコピー拡張制御テーブルの構成例を示す。
【００４９】
このテーブルには、同期コピーグループの拡張グループに関する情報が登録される。拡張グループとは、一つのコピーグループに属するプライマリボリューム群の一部が、第一のプライマリストレージシステムに存在し、別の一部が、第二のプライマリストレージシステムに存在する場合の、上記一つのコピーグループである。このテーブルには、例えば、拡張グループが有効か否かのフラグと、拡張グループの＃と、拡張グループのプライマリボリュームを備える他のプライマリストレージシステムの台数とが登録される。また、装置＃（他のプライマリストレージシステムの＃）と、コマンドデバイスボリューム＃（コマンドデバイスが格納されたボリュームの識別子）とが登録される。
【００５０】
以下、本実施例１で行われる処理流れの一例を説明する。
【００５１】
＜ケース１＞コピーグループに属する全プライマリボリュームが一つのプライマリストレージシステムにあるケース。
【００５２】
つまり、このケース１は、コピーグループが拡張グループでは無いケースである。このケース１では、コピーグループに属する全プライマリボリュームは一つのプライマリストレージシステム４０Ｐにあるが、全セカンダリボリュームが、一つのセカンダリストレージシステムに存在しなければならないわけではなく、複数のセカンダリストレージシステムに存在しても良い。このケース１で行われる処理流れの概要を図８に示す。
【００５３】
まず、図８Ａに示すように、メインフレームホスト１０Ａのペア制御プログラムが、ペア形成指示（コピーグループを定義しそのコピーグループを構成する各ボリュームペアを形成するためのコマンド）を、メインフレームＩ／Ｆ２１Ａに発行する。そのペア形成指示に応答して、メインフレームＩ／Ｆ２１Ａが、少なくとも一つのオープンペア（オープンホストが利用するプライマリボリュームを含んだペア）と、少なくとも一つのメインフレームペア（メインフレームホストが利用するプライマリボリュームを含んだペア）とを含んだ同期コピーグループをプライマリストレージシステム４０Ｐ内に定義する。そのようなコピーグループを表す情報として、例えば、ボリューム＃、コピー先装置＃、コピー先ボリューム＃、コピー種別、グループ＃、ペア状態、ＭＦ／ＯＰＥＮが、リモートコピーペア制御テーブル（図５参照）に登録される。また、そのペア状態が"同期"であるので、そのグループ＃が、同期リモートコピーグループ制御テーブルにも登録される。
【００５４】
次に、図８Ｂに示すように、そのコピーグループ内の或るボリュームペア（例えばオープンペア）で障害が発生したとする。この障害は、例えば、そのボリュームペアの同期リモートコピーの転送経路で障害が生じる（例えばリモート通信Ｉ／Ｆ間が切断される）ことにより、起こる。リモート通信Ｉ／Ｆにおいて、この障害を検知したモジュール（コンピュータプログラムでもハードウェア回路でも良い）が、その転送経路で同期リモートコピーがされる各ボリュームペアを特定し、特定した全ボリュームペアのペア状態（図５のテーブル上のペア状態）を"障害Ｓｕｓｐｅｎｄ"に変更する。なお、各ボリュームペアの特定は、例えば、各ボリューム"毎に、利用する転送経路の識別子（例えば、ポート＃、ボリューム＃などで表されるパス名）を登録しておくことで、行うことができる。
【００５５】
リモート通信Ｉ／Ｆのペア状態監視プログラムが、各ボリューム毎のペア状態を監視している。一つでもペア状態"障害Ｓｕｓｐｅｎｄ"を検出した場合、ペア常態監視プログラムは、そのペア状態に対応するコピーグループに属する全ホストに対してＩＯ保留状態とする。以後、少なくとも、そのＩＯ保留状態が解除されるまでは、そのコピーグループに属するどのプライマリボリュームにも新たにデータが書かれない。
【００５６】
その後、図８Ｃに示すように、ペア状態監視プログラムが、そのコピーグループに属する全ボリュームペアの状態を"Ｓｕｓｐｅｎｄ"に変更する。これにより、それら全ボリュームペアのどのプライマリボリュームにデータが書かれたとしても、セカンダリボリュームにはコピーされない。
【００５７】
このため、それが終了した後、図８Ｄに示すように、ＩＯ保留状態が解除されてもよい。ＩＯ保留状態が解除されると、"Ｓｕｓｐｅｎｄ"状態のボリュームペアのプライマリボリュームに新たにデータが書かれる。この場合、ボリュームペアの両ボリューム間で差分が生じるが、ペア状態"Ｓｕｓｐｅｎｄ"では、その差分データが管理される（例えば、プライマリボリュームのどの場所にどんなデータ（差分データ）が書かれたか管理される）。その後、再同期が行われると、その管理されている差分データが、セカンダリボリュームに反映されることで、プライマリボリュームとセカンダリボリュームとの間の差分を無くすことができる。
【００５８】
図９は、ケース１でのペア状態監視プログラムの処理フローを示す。
【００５９】
ペア状態監視プログラムは、ペア状態の監視の結果、ペア状態が変化し（Ｓ１０１でＹＥＳ）、且つ、変化後のペア状態が"障害Ｓｕｓｐｅｎｄ"である場合には（Ｓ１０２でＹＥＳ）、そのペア状態のボリュームペアが属するコピーグループが同期コピーグループか否か、具体的には、そのコピーグループの識別子が、同期リモートコピーグループ制御テーブル（図６参照）に登録されているか否かを判断する（Ｓ１０３）。本実施例１では、少なくとも一つのボリュームペアのコピー種別が"同期"の場合に、そのボリュームペアを有するコピーグループの識別子が、図６のテーブルに登録され、全てのボリュームペアのコピー種別が"非同期"の場合に、そのコピーグループの識別子は、図６のテーブルには登録されない。
【００６０】
ペア状態監視プログラムは、Ｓ１０３で同期コピーグループと判断した場合（Ｓ１０３でＹＥＳ）、そのコピーグループの識別子を特定し（Ｓ１０４）、特定したグループ＃に対応した制御情報をＯＮにする（Ｓ１０５）。つまり、ＩＯ保留状態を開始する。その際、ＩＯ保留開始時間を図６のテーブルに登録する。なお、例えば、Ｓ１０４の前にグループ＃は特定されているので、Ｓ１０４は無くても良い。
【００６１】
次に、ペア状態監視プログラムは、特定されたグループ＃に属する全ボリュームペアを特定し、特定した全ボリュームペアのペア状態を"Ｓｕｓｐｅｎｄ"に変更する（Ｓ１０６、Ｓ１０７、Ｓ１０８）。
【００６２】
その後、ペア状態監視プログラムは、当該グループ＃に対応した制御情報をＯＮからＯＦＦにする（Ｓ１０９）。なお、ペア状態監視プログラムは、制御情報をＯＮからＯＦＦに変更するタイミングとして、登録したＩＯ保留開始時間から、それに対応するタイムアウト時間が経過したタイミングを採用することもできる。これにより、例えば、何らかの原因で、Ｓ１０８でＹＥＳとなってもＳ１０９が実行されなかった場合、ＩＯ保留状態が無意味に長く続いてしまうが、この工夫によれば、ＩＯ保留状態が無意味に長く続いてしまうことを防ぐことができる。
【００６３】
図１０は、ケース１でのＩＯ処理プログラムの処理フローを示す。この処理フローは、メインフレームＩ／ＦのＩＯ処理プログラムもオープンＩ／ＦのＩＯ処理プログラムも実行する。
【００６４】
ＩＯ処理プログラムは、リードコマンドを受信した場合には（Ｓ２０１でＮＯ）、そのリードコマンドを実行し（つまり、ボリュームからデータを読み出してホストに送信し）（Ｓ２０４）、ホストに正常終了を返却する（Ｓ２０５）。
【００６５】
一方、ＩＯ処理プログラムは、ライトコマンドを受信した場合には（Ｓ２０１でＹＥＳ）、ライトコマンドで指定されているボリュームが属するコピーグループを特定し、そのコピーグループの制御情報がＯＮになっていれば（Ｓ２０２でＹＥＳ）、ＩＯ保留処理を実行する（例えば、ホストにビジー状態を返却する）（Ｓ２０３）。そのコピーグループの制御情報がＯＦＦになっていれば（Ｓ２０２でＮＯ）、ＩＯ処理プログラムは、受信したライトコマンドに従うデータを書いて（Ｓ２０４）、ホストに正常終了（書込完了）を返却する（Ｓ２０５）。
【００６６】
この処理フローによれば、制御情報がＯＮになっていれば、その制御情報に対応するコピーグループのどのプライマリボリュームにも新たにデータが書かれてしまうことを防ぐことができる。
【００６７】
＜ケース２＞コピーグループに属するプライマリボリュームが複数のプライマリストレージシステムにあるケース。
【００６８】
つまり、このケース２は、コピーグループが拡張グループであるケースである。このケース２では、複数のプライマリストレージシステムにそれぞれ存在するプライマリボリュームを含んだコピーグループが定義されるため、図５、図６及び図７に示したテーブルが、全てのプライマリストレージシステムの記憶域（例えば、共有メモリ）に記憶される。そのコピーグループに属する複数のセカンダリボリュームは、一つのセカンダリストレージシステムに存在しても良いし、複数のセカンダリストレージシステムに分散して存在しても良い。
【００６９】
このケース２で行われる処理流れの概要を図１１に示す。なお、図１１には、格別図示していないが、図８Ａと同様の方法でコピーグループ（拡張グループ）が定義される。
【００７０】
図１１Ａに示すように、第一のボリュームペアで障害が発生した場合、その第一のボリュームペアの第一のプライマリボリュームを有する第一のプライマリストレージシステムにおいて、ケース１と同様に、その第一のプライマリボリュームについてペア状態"障害Ｓｕｓｐｅｎｄ"が登録される。この場合、第一のプライマリストレージシステムの第一のペア状態監視プログラムが、その第一のプライマリボリュームが属するコピーグループについてのＩＯ保留状態を開始し、且つ、その第一のプライマリボリュームを有する拡張グループに属する第二のプライマリボリュームを有する第二のプライマリストレージシステムに、その拡張グループの識別子を通知する。
【００７１】
次に、図１１Ｂに示すように、第一のプライマリストレージシステムでは、第一のペア状態監視プログラムによって、拡張グループに属する全プライマリボリューム（但し、第一のプライマリストレージシステム内のプライマリボリューム）のボリュームペアが、"Ｓｕｓｐｅｎｄ"とされる。第二のプライマリストレージシステムでは、そのシステムで実行される第二のペア状態監視プログラムによって、通知されたグループ＃についてＩＯ保留状態にされる（制御情報がＯＮ）にされる。
【００７２】
次に、図１１Ｃに示すように、第一のプライマリストレージシステムでは、第一のペア状態監視プログラムによって、その拡張グループのＩＯ保留状態が解除される。第二のプライマリストレージシステムでは、ＩＯ保留状態となった拡張グループにおける全プライマリボリューム（但し、第一のプライマリストレージシステム内のプライマリボリューム）のボリュームペアが、第二のペア状態監視プログラムによって、"Ｓｕｓｐｅｎｄ"とされる。
【００７３】
最後に、図１１Ｄに示すように、第二のプライマリストレージシステムでは、第二のペア状態監視プログラムによって、その拡張グループのＩＯ保留状態が解除される。
【００７４】
図１１での説明は、一つのコピーグループに関わるプライマリストレージシステムが２台である場合を例に採った説明であるが、３台以上のプライマリストレージシステムがいわゆるカスケード状に接続されている場合には、ペアボリュームの障害を検出したプライマリストレージシステムから、順次に、ＩＯ保留状態の設定、当該拡張グループに属する全プライマリボリュームのペア状態を"Ｓｕｓｐｅｎｄ"に変更、ＩＯ保留状態の解除が行われる。
【００７５】
図１２は、ケース２でのペア状態監視プログラムの処理フローを示す。
【００７６】
この処理フローによれば、図９のＳ１０５とＳ１０６との間に、Ｓ３０１とＳ３０２がある。
【００７７】
Ｓ３０１では、第一のペア状態監視プログラムが、特定されたグループ＃について拡張グループ設定があるか否かを判断する。ここでは、そのグループ＃が、同期リモートコピー拡張グループ制御テーブル（図７参照）に登録されており、且つ、有効か否かを示すフラグがオンになっている場合に、拡張グループ設定があるとの判断になる。
【００７８】
拡張グループ設定があるとの判断になった場合（Ｓ３０１でＹＥＳ）、Ｓ３０２において、第一のペア状態監視プログラムが、この処理フローで特定されたグループ＃と"障害Ｓｕｓｐｅｎｄ"とを、第二のプライマリストレージシステムに通知する。通知先となる第二のプライマリストレージシステムは、そのグループ＃に対応した装置＃（図７参照）を有したストレージシステムである。このＳ３０２では、第一のペア状態監視プログラムが、その装置＃に対応したコマンドデバイスボリューム＃に、グループ＃と"障害Ｓｕｓｐｅｎｄ"とを含んだ状態変更コマンド（ペア状態を変更することのコマンド）を書き込むことができる。
【００７９】
ここで、コマンドデバイスボリュームとは、そのボリュームを備えるストレージシステムを制御するためのコマンドが書かれるボリュームであり、ホストからのデータが書かれるボリュームとは種類が異なる。第二のプライマリストレージシステムでは、状態変更コマンドがコマンドデバイスボリュームから読み出された場合、第二のペア状態監視プログラムが、図１３の処理フローを開始することができる。具体的には、例えば、第二の状態監視プログラムは、状態変更コマンドのため、ペア状態変化と判断し、その状態変更コマンドに"障害Ｓｕｓｐｅｎｄ"が含まれているため、障害Ｓｕｓｐｅｎｄと判断する。また、その状態変更コマンドに含まれているグループ＃は、第二のプライマリストレージシステム内の同期リモートコピー制御テーブルに書かれているので、制御情報をＯＮにすることでＩＯ保留状態を開始し、そのグループ＃に対応する全プライマリボリューム（第二のプライマリストレージシステム内のプライマリボリューム）のペア状態を全て"Ｓｕｓｐｅｎｄ"に変更する。その後、第二のペア状態監視プログラムは、制御情報をＯＦＦにする。
【００８０】
なお、第二のプライマリストレージシステムにペア状態変更を実行させる方法としては、上記のようなコマンドデバイスボリュームに状態変更コマンドを書込む方法に限らず、他の方法を採用することもできる。例えば、第一のペア状態監視プログラムが、グループ＃や"障害Ｓｕｓｐｅｎｄ"を用いて第二のペア状態監視プログラムを呼び出す方法も考えられる。
【００８１】
以上、上述した実施例１によれば、各種ホストＩ／Ｆで実行されるＩＯ処理プログラムは、ライトコマンドを受信した場合には、そのライトコマンドで指定されているボリュームが属するコピーグループの制御情報がＯＦＦになっているかＯＮになっているかによって、ライトコマンドを実行するか否かを決定するように構成されている。ペア状態監視プログラムが、各ボリュームペアのペア状態を監視し、"障害Ｓｕｓｐｅｎｄ"を検知した場合に、その障害Ｓｕｓｐｅｎｄ"のボリュームペアが属するコピーグループの制御情報をＯＮにする。それにより、そのコピーグループに属する全プライマリボリュームに書込みが生じない状態とした上で、ペア状態監視プログラムは、その全プライマリボリュームに属するペア状態を"Ｓｕｓｐｅｎｄ"に変更し、それが終了したら、ＯＮにした制御情報をＯＦＦに戻す。これにより、ケース１及びケース２の両方の場合で、メインフレームペアとオープンペアが混在するコピーグループにおいて、プライマリボリューム群とセカンダリボリューム群との整合性を保証することができる。そして、そのために、ＩＯ保留状態の設定やペア状態を一斉に"Ｓｕｓｐｅｎｄ"に変更することが行われるが、それを、オープンホストの主導だけでなくメインフレームホストの主導の無しに実行することができる。つまり、オープンホストにもメインフレームホストにも、ＩＯ保留状態の設定を行うためのコマンドを発行する機能や、ペア状態を一斉に"Ｓｕｓｐｅｎｄ"に変更するためのコマンドを発行する機能など、特別な機能を持たせなくて済む。
【実施例２】
【００８２】
本発明の実施例２を説明する。以下、実施例１との相違点を主に説明し、実施例２との共通点については説明を省略或いは簡略する。
【００８３】
この実施例２では、ケース２に代えて又は加えてケース３が実行される。ケース３とは、一つのコピーグループに関わる複数のプライマリストレージシステムが互いに通信可能に接続されていないケースである。そのケースとしては、具体的には、例えば、予め専用線などで接続されていない場合や、或いは、プライマリストレージシステム間の接続が切断されてしまった場合などがある。その接続の切断が検出された場合には、第一のペア状態監視プログラムが、ケース２に代えてケース３の処理流れを実行することを選択することができる。
【００８４】
図１３及び図１４は、ケース３の処理流れの概要を示す。
【００８５】
図１３Ａに示すように、第一のボリュームペアで障害が発生した場合、その第一のボリュームペアの第一のプライマリボリュームを有する第一のプライマリストレージシステムにおいて、その第一のプライマリボリュームについてペア状態"障害Ｓｕｓｐｅｎｄ"が登録される。この場合、第一のペア状態監視プログラムが、その第一のプライマリボリュームが属するコピーグループについてＩＯ保留状態を開始する。これにより、そのコピーグループに属する全プライマリボリューム（第一のプライマリストレージシステムのプライマリボリューム）についてＩＯ保留状態となる。
【００８６】
次に、図１３Ｂに示すように、第一のペア状態監視プログラムが、そのコピーグループに属する全ボリュームペア（第一のプライマリストレージシステムのプライマリボリュームを含んだボリュームペア）のペア状態を全て"Ｓｕｓｐｅｎｄ"に変更する。これにより、"障害Ｓｕｓｐｅｎｄ"となったボリュームペアが、メインフレームペアであろうがなかろうが、メインフレームペアが"Ｓｕｓｐｅｎｄ"となる。これを契機に、第一のペア状態監視プログラムは、メインフレームペアが"Ｓｕｓｐｅｎｄ"となったことの状態変更通知を、メインフレームホストのペア制御プログラムに送信する。本処理を実行するための方法として、例えば、図５のテーブルにおいて、メインフレームペアに対応するエントリに、メインフレームホストの識別子を登録しておき、そのエントリから、状態変更通知の送信先とするメインフレームホストを特定する方法が考えられる。
【００８７】
次に、図１３Ｃに示すように、メインフレームホストのペア制御プログラムが、その状態変更通知に応答して、"Ｓｕｓｐｅｎｄ"となったメインフレームペアが属するコピーグループを特定し、特定したコピーグループに属するプライマリボリュームを有した第二のプライマリストレージシステムを特定し、特定した第二のプライマリストレージシステムに対し、特定したコピーグループについてＩＯ保留状態とすることのＩＯ保留指示コマンドを発行する。メインフレームＩ／Ｆ２１Ａで、そのＩＯ保留指示コマンドが受信されるが、そのメインフレームＩ／Ｆ２１Ａが、受信したコマンドがＩＯ保留指示コマンドであることを特定した場合に、そのコマンドをリモート通信Ｉ／Ｆ２１Ｂに転送する。これにより、第二のペア状態監視プログラムが、そのＩＯ保留指示コマンドに応答して、そのコマンドで指定されているグループ＃に対応した制御情報をＯＮにする（つまりＩＯ保留状態を設定する）。コピーグループの特定の方法や、ＩＯ保留指示コマンドの発行先とする第二のプライマリストレージシステムを特定する方法としては、例えば、第一のプライマリストレージシステムから、状態変更通知と共に、"Ｓｕｓｐｅｎｄ"となったメインフレームペアが属するコピーグループの識別子や第二のプライマリストレージしシステムの装置＃を受信する方法、ペア制御プログラムが、各プライマリストレージシステムに記憶される図５、図６、図７のテーブルを記憶しており、各テーブルを参照する方法、など種々の方法が考えられる。
【００８８】
次に、図１４Ａに示すように、ペア制御プログラムが、特定した第二のプライマリストレージシステムに対し、特定されたコピーグループに属する全ボリュームペアのペア状態を"Ｓｕｓｐｅｎｄ"に変更することのサスペンド指示コマンドを発行する。第二のペア状態監視プログラムが、そのサスペンド指示コマンドに応答して、上記コピーグループに属する全ボリュームペアのペア状態を"Ｓｕｓｐｅｎｄ"に変更する。それが終了した場合、第二の状態変更プログラムは、所定の応答をペア制御プログラムに返してもよい。特定されたコピーグループに属する全ボリュームペアは、そのコピーグループのグループ＃を用いて、ペア制御プログラムによって特定されサスペンド指示コマンドで指定されても良いし、第二のペア状態監視プログラムによって特定されても良い。
【００８９】
最後に、図１４Ｂに示すように、ペア制御プログラムが、所定のタイミング（例えば、サスペンド指示コマンドを発行して一定時間が経過したタイミング、或いは、所定の応答を第二のペア状態監視プログラムから受領したタイミング）で、上記特定されたコピーグループについてＩＯ保留状態を解除することのＩＯ保留解除指示コマンドを発行する。これにより、第二のペア状態監視プログラムが、そのＩＯ保留解除指示コマンドに応答して、そのコマンドで指定されているグループ＃に対応した制御情報をＯＦＦにする（つまりＩＯ保留状態を解除する）。
【００９０】
以上が、ケース３についての説明である。なお、このケース３では、上述したＩＯ保留指示コマンドの発行、サスペンド指示コマンドの発行、ＩＯ保留解除指示コマンドの発行は、一つの第二のプライマリストレージシステムにつき、１回で済む。コピーグループ単位での発行となるからである。
【００９１】
以上、本実施例２によれば、一つのコピーグループに関わる複数のプライマリストレージシステムが互いに通信可能に接続されていなくても、ＩＯ保留状態の設定やペア状態を一斉に"Ｓｕｓｐｅｎｄ"に変更することを、オープンホストの主導無しに実行することができる。すなわち、メインフレームホストでは、ＩＯ保留指示コマンドの発行、サスペンド指示コマンドの発行及びＩＯ保留解除指示コマンドの発行といった特別な機能を有したペア制御プログラムを実行する必要があるが、オープンホストでは、そのような必要がない。オープンホストには搭載されているＯＳには様々なものが考えられ、メインフレームホストと比較するとオープンホストは信頼性が低いので、そのようなオープンホストに上記特別の機能を有したペア制御プログラムを搭載しなくて済むのは、効果的である。
【００９２】
これまで説明した実施例１、２の内容を、ここで補足する。これは実施例１、２に共通する内容である。
【００９３】
メインフレーム系とオープン系ではボリュームのフォーマットが異なり、また、処理するためのコマンド体系が異なる。従って、メインフレームＩ/Ｆ、オープンＩ/Ｆは、相互にボリュームを認識することができず、制御体系が異なる。
【００９４】
一般に、メインフレーム系は、基幹系業務に利用されることが多く、信頼性、性能ともオープン系に比べて高くなっている。そのため、本実施例では、メインフレーム系においてメインフレーム系のホストからオープン系のコピーペアの設定、解除等を行うことができるようにしている。具体的には、メインフレーム系のホストからコピーペアの設定、解除のコマンドを受領するボリュームは、オープン系コピーペアのボリュームとは関係ないメインフレーム系ボリューム（コマンドデバイスボリューム）である。メインフレームＩ／Ｆでは、このコマンドデバイスボリュームに受領されたコマンドを解釈し、コピーペアの設定コマンドであれば、このコマンドのパラメータ（例えば、プライマリボリュームのオープン系ボリューム＃、コピー先装置＃、コピー先オープン系ボリューム＃、コピー種別、グループ＃）を、リモートコピーペア制御テーブルに設定する。本実施例では、更に、このリモートコピーペア制御テーブルに格納されるデータは、メインフレームＩ／Ｆ、オープンＩ／Ｆが利用できるように共通のフォームで格納するようにしている。これにより、メインフレーム系のホストから、オープン系のコピーペアが形成できるようにしている。また、メインフレーム系のホストからオープン系のコピーペアが形成できるので、メインフレーム系のコピーペアと、オープン系のコピーペアとをコピーグループとして設定することができる。
【００９５】
また、メインフレーム系は、既に説明したように、コピーペアのペア状態が変わるたびに、メインフレーム系のホストに対して状態変更を通知できるようになっている。オープン系のコピーペアに障害があって中断（サスペンド）した場合、同時にグループ内のメインフレーム系コピーペアを中断状態にすることで、そのコピーペアの状態変更を通知することにより、メインフレームＩ／Ｆでこれを検出する。オープン系とメインフレーム系のデータ形式が共通なためにこれが可能となる。これにより、オープン系のコピーペアの障害をメインフレームＩ／Ｆに通知することが可能となり、メインフレーム系のホストへ障害を通知することが可能となる。
【００９６】
なお、以上の説明において、メインフレームＩ／Ｆ、オープンＩ／Ｆがそれぞれ処理を行うよう説明したが、これらは、メインフレームＩ／Ｆ、オープンＩ／ＦのＣＰＵにより実行されるものである。
【００９７】
以上、本発明の幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【００９８】
【図１】図１は、本発明の実施例１に係るシステム全体構成の一例を示す。
【図２】図２は、メインフレームホスト１０Ａの構成例を示す。
【図３】図３は、プライマリストレージシステム４０Ｐの構成例を示す。
【図４】図４は、メインフレームＩ／Ｆ２１Ａの構成例を示す。
【図５】図５は、リモートコピーペア制御テーブルの構成例を示す。
【図６】図６は、同期リモートコピーグループ制御テーブルの構成例を示す。
【図７】図７は、同期リモートコピー拡張制御テーブルの構成例を示す。
【図８】図８は、コピーグループに属する全プライマリボリュームが一つのプライマリストレージシステムにあるケース（ケース１）での処理流れの概要を示す。
【図９】図９は、ケース１でのペア状態監視プログラムの処理フローを示す。
【図１０】図１０は、ケース１でのＩＯ処理プログラムの処理フローを示す。
【図１１】図１１は、コピーグループに属するプライマリボリュームが複数のプライマリストレージシステムにあるケース（ケース２）での処理流れの概要を示す。
【図１２】図１２は、ケース２でのペア状態監視プログラムの処理フローを示す。
【図１３】図１３は、一つのコピーグループに関わる複数のプライマリストレージシステムが互いに通信可能に接続されていないケース（ケース３）での処理流れの概要の一部を示す。
【図１４】図１４は、ケース３での処理流れの概要の残りの一部を示す。
【符号の説明】
【００９９】
１０Ａ…メインフレームホスト  １０Ｃ…オープンホスト  ２０…コントローラ部  ２１Ａ…メインフレームＩ／Ｆ  ２１Ｃ…オープンＩ／Ｆ  ２１Ｂ…リモート通信Ｉ／Ｆ  ２２…ディスクＩ／Ｆ  ２４…キャッシュメモリ  ２５…共有メモリ  ３０…ディスクユニット  ３１…論理ボリューム  ４０Ｐ…プライマリストレージサブシステム  ４０Ｓ…セカンダリストレージサブシステム
【図１】
2008033704.tif 000003
【図２】
2008033704.tif 000004
【図３】
2008033704.tif 000005
【図４】
2008033704.tif 000006
【図５】
2008033704.tif 000007
【図６】
2008033704.tif 000008
【図７】
2008033704.tif 000009
【図８】
2008033704.tif 000010
【図９】
2008033704.tif 000011
【図１０】
2008033704.tif 000012
【図１１】
2008033704.tif 000013
【図１２】
2008033704.tif 000014
【図１３】
2008033704.tif 000015
【図１４】
2008033704.tif 000016