(57)【要約】【課題】データベースシステムのように、大量のデータを処理対象とするアプリケーションの実行をリモート計算機で実行するのに適したデータ共有方法およびディスク制御装置を提供すること。【解決手段】ディスク制御装置３０Ａが、ホスト装置１０Ａが使用するディスクの識別子と対応して、リモートディスクの識別子と、リモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示す管理テーブル３５Ａを有し、ホスト計算機から特定ディスクへのデータ書込みコマンドを受信した時、上記管理テーブルが示す特定ディスクのコマンド転送制御情報に従って、上記特定ディスクへの上記書込みコマンドの実行と、リモートディスク制御装置３０Ｂへの書込みコマンドの転送を制御する。【選択図】  図１
2004302556.tif 000002
【特許請求の範囲】
【請求項１】
第１のディスク制御装置を備えた第１ホスト計算機と、第２のディスク制御装置を備えた第２ホスト計算機との間でのデータ共有方法であって、
上記第１のディスク制御装置が、上記第１ホスト装置が使用するディスクの識別子と対応して、該ディスクに対応するリモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示す管理テーブルを有し、
第１ホスト計算機から特定ディスクへのデータ書込みコマンドを受信した第１のディスク制御装置が、上記管理テーブルが示す上記特定ディスクのコマンド転送制御情報に従って、上記特定ディスクへの上記書込みコマンドの実行と、上記第２のディスク制御装置への書込みコマンドの転送を制御することを特徴とするデータ共有方法。
【請求項２】
前記第１ホスト計算機からのコピー方向反転コマンドに応答して、前記第１のディスク制御装置が、前記第２のディスク制御装置との間で、それぞれが有する特定ディスクの更新データのコピー方向反転のための制御手順を実行し、
上記制御手順の完了後に、上記第１ホスト計算機から前記第２ホスト計算機に、上記特定ディスクを利用するデータ処理の実行を要求し、
上記第２ホスト計算機によるデータ処理の実行過程で発行されたデータ書込みコマンドに応答して、上記第２のディスク制御装置が、自装置側の特定ディスクへのデータ書込みを実行して格納データを更新し、上記第１のディスク制御装置に対して、上記データ更新を相手装置側の特定ディスクに反映するための書込みコマンドを送信することを特徴とするデータ共有方法。
【請求項３】
第１のディスク制御装置を備えた第１ホスト計算機と、第２のディスク制御装置を備えた第２ホスト計算機との間で、ディスク格納データを共有するための方法であって、
上記第１のディスク制御装置が、上記第１ホスト装置が使用するディスクの識別子と対応して、該ディスクに対応するリモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示す管理テーブルを有し、
第１ホスト計算機から特定ディスクのデータ読出しコマンドを受信した第１のディスク制御装置が、目的データがディスクキャッシュに無かった時、上記管理テーブルのコマンド転送制御情報から、上記特定ディスクが自装置に実在するローカルディスクか上記第２のディスク制御装置側に実体が存在する仮想ディスクかを判定し、
上記特定ディスクがローカルディスクの場合は、該ローカルディスクからの読出しデータを上記第１ホスト装置に返送し、
上記特定ディスクが仮想ディスクとなっていた場合は、上記第２のディスク制御装置に目的データの読出しを要求し、該第２のディスク制御装置から受信した目的データを上記第１ホスト装置に返送することを特徴とするデータ共有方法。
【請求項４】
前記第１ホスト計算機から特定ディスクへのデータ書込みコマンドを受信した前記第１のディスク制御装置が、書込みデータをディスクキャッシュに一時的に格納しておき、
上記ディスクキャッシュの格納データについて、上記特定ディスクが自装置に実在するローカルディスクの場合は、該ローカルディスクに書き戻し、上記特定ディスクが仮想ディスクとなっていた場合は、前記第２のディスク制御装置に対して上記仮想ディスクへの書き戻しを要求することを特徴とする請求項３に記載のデータ共有方法。
【請求項５】
第１のディスク制御装置を備えた第１ホスト計算機と、第２のディスク制御装置を備えた第２ホスト計算機との間でのデータ共有方法であって、
上記第１のディスク制御装置に接続された特定ディスクの格納データをブロック単位で上記第２のディスク制御装置の特定ディスクにコピーし、
全データブロックのコピーが完了する前に、上記第１ホスト計算機から上記特定ディスクのデータ読出しコマンドを受信した第１のディスク制御装置が、目的データがディスクキャッシュに無かった時、該目的データに該当するデータブロックが上記第２のディスク制御装置側の特定ディスクに未だコピーされていなければ、自装置に接続された上記特定ディスクからの読出しデータを上記第１ホスト装置に返送し、
上記目的データに該当するデータブロックが上記第２のディスク制御装置側の特定ディスクにコピー済みの場合は、上記第２のディスク制御装置に目的データの読出しを要求し、受信した目的データを上記第１ホスト装置に返送することを特徴とするデータ共有方法。
【請求項６】
全データブロックのコピーが完了する前に、前記第１ホスト計算機から前記特定ディスクへのデータ書込みコマンドを受信した第１のディスク制御装置が、書込みデータをディスクキャッシュに一時的に格納した後、前記第２のディスク制御装置に対して、上記書込みデータに該当するデータブロックの相手装置側の特定ディスクへの書込みを要求することを特徴とする請求項５に記載のデータ共有方法。
【請求項７】
前記第１のディスク制御装置が、全データブロックのコピーが完了した前記特定ディスクを仮想ディスクとして管理しておき、前記第１ホスト装置から上記仮想ディスクのデータ読出しコマンドを受信した第１のディスク制御装置が、目的データがディスクキャッシュに無かった時、前記第２のディスク制御装置に目的データの読出しを要求し、該第２のディスク制御装置から受信した目的データを上記第１ホスト装置に返送することを特徴とする請求項５または請求項６に記載のデータ共有方法。
【請求項８】
全データブロックのコピーが完了した前記特定ディスクを指定して、前記第１ホスト計算機から前記第１のディスク制御装置に、コピー方向反転コマンドを発行し、
上記コピー方向反転コマンドに応答して、上記第１のディスク制御装置が、前記第２のディスク制御装置との間で、上記特定ディスクの更新データのコピー方向反転のための制御手順を実行し、
上記制御手順の完了後に、上記第１ホスト計算機から前記第２ホスト計算機に、上記特定ディスクを利用するデータ処理の実行を要求し、
上記第２ホスト計算機によるデータ処理の実行過程で発行されたデータ書込みコマンドに応答して、上記第２のディスク制御装置が、自装置側の特定ディスクへのデータ書込みを実行して格納データを更新し、上記第１のディスク制御装置に対して、上記データ更新を相手装置側の特定ディスクに反映するための書込みコマンドを送信することを特徴とする請求項５または請求項６に記載のデータ共有方法。
【請求項９】
前記コピー方向反転制御手順が、前記第１のディスク制御装置から第２のディスク制御装置へのコピー方向反転可否の問合せと、前記第２のディスク制御装置からの受諾応答に伴う前記第１のディスク制御装置から第２のディスク制御装置へのコピー方向反転要求とを含むことを特徴とする請求項２または請求項８に記載のデータ共有方法。
【請求項１０】
前記データ処理の実行要求を含む前記第１ホスト計算機と第２ホスト計算機との間の通信が、第１のネットワークを介して行なわれ、前記コピー方向反転制御手順と書込みコマンド送信を含む前記第１のディスク制御装置と第２のディスク制御装置との間の通信が、上記第１のネットワークとは別の回線を介して行なわれることを特徴とする請求項２または請求項８に記載のデータ共有方法。
【請求項１１】
ホスト計算機とディスク装置に接続され、通信回線を介して少なくとも１つのリモートディスク制御装置と通信するディスク制御装置であって、
上記ディスク装置に含まれるローカルディスクの識別子と対応して、リモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示すリモートコピー管理テーブルと、
上記ホスト計算機からの受信コマンドに応じて、上記ディスク装置へのアクセスと、上記リモートディスク制御装置との通信を選択的に実行するリモートコピー制御部とを備え、該リモートコピー制御部が、
上記ホスト計算機からにコピー方向反転コマンドに応答して、上記リモートディスク制御装置との間で特定ディスクの更新データのコピー方向反転のための制御手順を実行し、上記リモートコピー管理テーブルにおける上記特定ディスクと対応するコマンド転送制御情報を書き換えるための手段と、
上記ホスト計算機からの上記ディスク装置に含まれる特定ディスクへのデータ書込みコマンドに応答して、上記リモートコピー管理テーブルに従って、上記特定ディスクへのデータ書込み動作と、該データ書込みによる更新データをリモートディスクに反映するための上記リモートディスク制御装置へのデータ書込みコマンドの送信動作を選択的に実行するための手段とを有することを特徴とするディスク制御装置。
【請求項１２】
前記リモートコピー制御部が、前記リモートディスク制御装置からディスクを指定してデータ書込みコマンドを受信した時、前記リモートコピー管理テーブルに従って上記コマンドの実行可否を判定し、上記指定ディスクへのデータ書込みを実行するための手段を有することを特徴とする請求項１１に記載のディスク制御装置。
【請求項１３】
ホスト計算機とディスク装置に接続され、通信回線を介して少なくとも１つのリモートディスク制御装置と通信するディスク制御装置であって、
上記ホスト装置が使用するディスクの識別子と対応して、該ディスクの接続状態と、該ディスクに対応するリモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、コマンド転送制御情報との関係を示すディスク管理テーブルと、
上記ホスト計算機からの受信コマンドに応じて、上記ディスク管理テーブルに従って、上記ディスク装置へのアクセスと、上記リモートディスク制御装置との通信を選択的に実行する仮想ディスク制御部とを備え、
該仮想ディスク制御部が、
上記ホスト計算機から特定ディスクのデータ読出しコマンドを受信し、目的データがディスクキャッシュに無かった時、上記ディスク管理テーブルのコマンド転送制御情報から、上記特定ディスクが自装置に実在するローカルディスクかリモートディスク制御装置に実体が存在する仮想ディスクかを判定する手段と、
上記特定ディスクがローカルディスクの場合は、該ローカルディスクからの読出しデータを上記ホスト装置に返送し、上記特定ディスクが仮想ディスクとなっていた場合は、上記リモートディスク制御装置に目的データの読出しを要求し、該リモートディスク制御装置から受信した目的データを上記ホスト装置に返送するための手段とを有することを特徴とするディスク制御装置。
【請求項１４】
前記ホスト計算機から特定ディスクへのデータ書込みコマンドを受信した時、書込みデータをディスクキャッシュに一時的に格納しておき、上記ディスクキャッシュの格納データについて、上記特定ディスクがローカルディスクの場合は、該ローカルディスクに書き戻し、上記特定ディスクが仮想ディスクとなっていた場合は、前記リモートディスク制御装置に対して上記仮想ディスクへの書き戻しを要求するための手段を有することを特徴とする請求項１３に記載のディスク制御装置。
【請求項１５】
前記ディスク装置に接続された特定ディスクの格納データをブロック単位で間欠的に上記リモートディスク制御装置の特定ディスクにコピーするための手段を有し、
前記ホスト計算機からのディスクアクセスコマンドが、上記コピー手段によるコピー処理の合間に実行されることを特徴とする請求項１３または請求項１４に記載のディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の計算機システム間でのデータ共有方法およびディスク制御装置に関する。
【０００２】
【従来の技術】
グリッド技術で代表されるように、計算機ネットワークでは、１つの計算機から他の計算機に実行すべきアプリケーションを転送したり、アプリケーションの実行を指示する遠隔実行技術の開発が進められている。グリッド技術を適用すると、例えば、大規模科学技術計算における演算結果の高度化や、世界規模で分散している高性能計算機および科学技術データの共有化が可能となる。この種の計算機ネットワークにおいて、複数の計算機間でのデータ共有方法として、次の２つの方法が知られている。
【０００３】
第１の方法は、データ処理（計算）に必要なデータを既に保有している計算機にアプリケーションの実行を要求するものであり、要求元ユーザが、予めどの計算機にどのようなデータが存在するかを調べておき、要求元ユーザの計算機から所望データをもつ他の計算機に対して、実行すべきアプリケーションを転送した後、データ処理の実行を要求する。この方法は、リモート計算機のプロセッサ性能が充分に高速な場合に有効であり、高性能計算機が使用される科学技術計算分野に適したデータ共有方法と言える。
【０００４】
第２の方法は、計算に必要なデータを計算機間でコピーするものであり、アプリケーションを実行するリモート計算機に対して、要求元計算機から必要なデータを転送（コピー）した後、アプリケーションの実行を要求する。この方法は、データ保有している要求元計算機のプロセッサ性能が不足している場合に有効となる。しかしながら、要求元計算機からリモート計算機へのデータコピーがネットワークを介して行われるため、大規模なデータを必要とするアプリケーションを遠隔実行しようとすると、データコピーに時間がかかると言う問題がある。従って、データを既に保有しているリモート計算機にアプリケーションの実行を要求する第１の方法が一般的となっている。
【０００５】
上述した計算機間でのデータコピーに関する従来技術として、例えば、ディスク制御装置が備えるリモートコピー機能が知られている。ここで言うリモートコピーは、２つのディスク制御装置間で専用チャネルを介してコピーデータを送受信することによって、ホスト装置を介することなく、それぞれのディスクの格納データを互いに同期して更新する機能を指す。リモートコピーでは、プライマリディスク制御装置とセカンダリディスク制御装置とが定義され、プライマリディスク制御装置側でディスクデータが更新されると、プライマリディスク制御装置が備えるリモートコピー機構によって、更新データが自動的にセカンダリディスク制御装置に転送され、セカンダリディスク制御装置側のディスクに反映されるようになっている。
【０００６】
リモートコピー機能を利用すれば、互いに離れた場所にある２つディスク装置の格納データを一致（同期）させることが可能となる。従って、プライマリディスク制御装置や、プライマリディスク制御装置に接続されたホスト装置（ホスト計算機）に障害が発生した場合に、セカンダリディスク制御装置に接続されたホスト装置にその後のデータ処理を継続させることが可能となる。尚、データベースへのリモートコピー機能の適用に関する公知例としては、例えば、特開２００２−１４９４９９号公報（特許文献１）や特開２００２―４９５１７号公報（特許文献２）がある。
【０００７】
【特許文献】
特開２００２−１４９４９９号
【特許文献】
特開２００２―４９５１７号公報
【０００８】
【発明が解決しようとする課題】
然るに、上述したグリッド技術に代表される計算機間のデータ共有方法は、大容量データを利用するデータベース分野には簡単には適用できない。一般的に、データベースは、顧客（企業）が所有するデータ処理システムで運用／管理されており、例えば、膨大なデータを扱う大規模なデータベース処理を実行しようとした時、自社システムでは計算性能が不足した場合に、上述した計算機間でのデータ共有が必要となる。
【０００９】
この場合、計算機で処理されるデータは、上記データ処理システムに固有のデータベースにのみ存在しているため、ネットワークで接続された他の高速計算機で上記データベース用のアプリケーションを実行しようとすると、前述の第２の共有方法を適用せざるを得ない。しかしながら、データベースに格納された膨大なデータをリモート計算機にコピーするためには長時間を要するため、データコピーが完了するまでデータベース処理が停止すると言う問題がある。
特許文献１と２は、いずれもシステム障害復旧の高速化または容易化を目的としたものであり、上述した計算機間でのデータ共有のためのデータコピー技術を提案したものではない。
【００１０】
本発明の目的は、データベースシステムのように、大量のデータを処理対象とするアプリケーションの実行をリモート計算機で実行するのに適したデータ共有方法およびディスク制御装置を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明は、第１のディスク制御装置を備えた第１ホスト計算機と、第２のディスク制御装置を備えた第２ホスト計算機との間でのデータの共有方法において、
第１のディスク制御装置が、第１ホスト装置が使用するディスクの識別子と対応して、該ディスクに対応するリモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示す管理テーブルを有し、
第１ホスト計算機から特定ディスクへのデータ書込みコマンドを受信した第１のディスク制御装置が、上記管理テーブルが示す特定ディスクのコマンド転送制御情報に従って、上記特定ディスクへの上記書込みコマンドの実行と、第２のディスク制御装置への書込みコマンドの転送を制御することを特徴とする。
【００１２】
本発明の１つの特徴は、第１ホスト計算機からのコピー方向反転コマンドに応答して、上記第１のディスク制御装置が、第２のディスク制御装置との間で、それぞれが有する特定ディスクの更新データのコピー方向反転のための制御手順を実行し、上記制御手順の完了後に、第１ホスト計算機から第２ホスト計算機に、上記特定ディスクを利用するデータ処理の実行を要求し、第２ホスト計算機によるデータ処理の実行過程で発行されたデータ書込みコマンドに応答して、上記第２のディスク制御装置が、自装置側の特定ディスクへのデータ書込みを実行して格納データを更新し、第１のディスク制御装置に対して、上記データ更新を相手装置側の特定ディスクに反映するための書込みコマンドを送信することにある。
【００１３】
本発明の他の特徴は、第１ホスト計算機から特定ディスクのデータ読出しコマンドを受信した第１のディスク制御装置が、目的データがディスクキャッシュに無かった時、上記管理テーブルのコマンド転送制御情報から、上記特定ディスクが自装置に実在するローカルディスクか第２のディスク制御装置側に実体が存在する仮想ディスクかを判定し、上記特定ディスクがローカルディスクの場合は、該ローカルディスクからの読出しデータを第１ホスト装置に返送し、上記特定ディスクが仮想ディスクとなっていた場合は、第２のディスク制御装置に目的データの読出しを要求し、該第２のディスク制御装置から受信した目的データを第１ホスト装置に返送することにある。
【００１４】
本発明の実施例では、第１ホスト計算機から特定ディスクへのデータ書込みコマンドが発行された場合、第１のディスク制御装置は、書込みデータをディスクキャッシュに一時的に格納する。この後、上記ディスクキャッシュの格納データについて、上記特定ディスクが自装置に実在するローカルディスクの場合は、該ローカルディスクに書き戻し、上記特定ディスクが仮想ディスクとなっていた場合は、第２のディスク制御装置に対して上記仮想ディスクへの書き戻しを要求する。
【００１５】
上記目的を達成するため、本発明は、第１のディスク制御装置を備えた第１ホスト計算機と、第２のディスク制御装置を備えた第２ホスト計算機との間でのディスク格納データの共有方法において、
第１のディスク制御装置に接続された特定ディスクの格納データをブロック単位で上記第２のディスク制御装置の特定ディスクにコピーし、全データブロックのコピーが完了する前に、第１ホスト計算機から上記特定ディスクのデータ読出しコマンドを受信した第１のディスク制御装置が、目的データがディスクキャッシュに無かった時、該目的データに該当するデータブロックが第２のディスク制御装置側の特定ディスクに未だコピーされていなければ、自装置に接続された上記特定ディスクからの読出しデータを第１ホスト装置に返送し、上記目的データに該当するデータブロックが第２のディスク制御装置側の特定ディスクにコピー済みの場合は、第２のディスク制御装置に目的データの読出しを要求し、受信した目的データを第１ホスト装置に返送することを更に他の特徴とする。
【００１６】
上記コピー処理により、全データブロックのコピーが完了した時、上記特定ディスクを前述したローカルディスクから仮想ディスクに変更できる。また、全データブロックのコピーが完了した特定ディスクを指定して、前述したコピー方向反転コマンドを発行することにより、データ処理の実行を第１ホスト装置から第２ホスト装置に切替えることが可能となる。
【００１７】
本発明によるディスク制御装置は、ディスク装置に含まれるローカルディスクの識別子と対応して、リモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、リモートディスク制御装置へのコマンド転送制御情報との関係を示すリモートコピー管理テーブルと、ホスト計算機からの受信コマンドに応じて、上記ディスク装置へのアクセスと、上記リモートディスク制御装置との通信を選択的に実行するリモートコピー制御部とを備え、該リモートコピー制御部が、ホスト計算機からにコピー方向反転コマンドに応答して、リモートディスク制御装置との間で特定ディスクの更新データのコピー方向反転のための制御手順を実行し、上記リモートコピー管理テーブルにおける上記特定ディスクと対応するコマンド転送制御情報を書き換えるための手段と、ホスト計算機からの上記ディスク装置に含まれる特定ディスクへのデータ書込みコマンドに応答して、上記リモートコピー管理テーブルに従って、上記特定ディスクへのデータ書込み動作と、該データ書込みによる更新データをリモートディスクに反映するための上記リモートディスク制御装置へのデータ書込みコマンドの送信動作を選択的に実行する手段とを有することを特徴とする。
【００１８】
また、本発明のディスク制御装置は、ホスト装置が使用するディスクの識別子と対応して、該ディスクの接続状態と、該ディスクに対応するリモートディスクの識別子と、該リモートディスクを制御するリモートディスク制御装置の識別子と、コマンド転送制御情報との関係を示すディスク管理テーブルと、上記ホスト計算機からの受信コマンドに応じて、上記ディスク管理テーブルに従って、ローカルディスク装置へのアクセスと、リモートディスク制御装置との通信を選択的に実行する仮想ディスク制御部とを備え、
該仮想ディスク制御部が、上記ホスト計算機から特定ディスクのデータ読出しコマンドを受信し、目的データがディスクキャッシュに無かった時、上記ディスク管理テーブルのコマンド転送制御情報から、上記特定ディスクが自装置に実在するローカルディスクかリモートディスク制御装置に実体が存在する仮想ディスクかを判定する手段と、上記特定ディスクがローカルディスクの場合は、該ローカルディスクからの読出しデータをホスト装置に返送し、上記特定ディスクが仮想ディスクとなっていた場合は、リモートディスク制御装置に目的データの読出しを要求し、該リモートディスク制御装置から受信した目的データをホスト装置に返送するための手段とを有することを特徴とする。
【００１９】
本発明の１実施例では、ディスク制御装置が、ローカルディスク装置に接続された特定ディスクの格納データをブロック単位で間欠的にリモートディスク制御装置の特定ディスクにコピーするための手段を有し、ホスト計算機からのディスクアクセスコマンドが、上記コピー手段によるコピー処理の合間に実行されることを特徴とする。本発明の他の特徴は、以下に述べる実施例の説明から明らかになる。
【００２０】
【発明の実施の形態】
図１は、本発明による遠隔ホスト間のデータ共有を実現する計算機ネットワークの基本的なシステム構成を示す。
１０（１０Ａ、１０Ｂ）は、ネットワーク１０００に接続されたホスト装置であり、遠隔実行制御プログラム１３（１３Ａ、１３Ｂ）と、データベース・ディスクテーブル１４（１４Ａ、１４Ｂ）を備えている。遠隔実行制御プログラム１４は、ネットワーク１０００を介して、他のホスト装置との間で、アプリケーション等のプログラムの送受信機能と、該プログラムの実行機能をもつ。また、データベース・ディスクテーブル１４には、各ホスト装置で使用されているデータベース用ディスクの識別情報が登録されている。
【００２１】
ホスト装置１０Ａ（１０Ｂ）には、ディスク制御装置３０Ａ（３０Ｂ）が接続され、ディスク制御装置３０Ａ（３０Ｂ）には、サービスプロセッサ（ＳＶＰ）８０と、複数のディスクドライブ５０Ａ１〜５０Ａｎ（５０Ｂ１〜５０Ｂｎ）からなるディスク装置５０Ａ（５０Ｂ）が接続されている。ディスク制御装置３０Ａ（３０Ｂ）は、ホスト装置１０Ａ（１０Ｂ）から発行されるディスク入出力要求を解釈し、それを実行する機能を有し、ホスト装置１０Ａ（１０Ｂ）から発行されるディスク入出力要求（ＲＥＡＤ／ＷＲＩＴＥコマンド）に応答して、ディスクドライブ５０Ａ１〜５０Ａｎ（５０Ｂ１〜５０Ｂｎ）のデータリード／ライトを実行する。以下の説明では、簡単化のために、ディスクドライブ５０Ａ１〜５０Ａｎ（５０Ｂ１〜５０Ｂｎ）を単にディスクと呼ぶ。
【００２２】
第１の実施例では、各ディスク制御装置３０（３０Ａ、３０Ｂ）は、リモートコピー制御部３１（３１Ａ、３１Ｂ）とリモートコピーテーブル３５（３５Ａ、３５Ｂ）を内蔵している。通常、ディスク制御装置が備える各種機能は、ディスク制御装置内のローカルプロセッサ（図示省略）が実行するソフトウェアによって実現される。上記リモートコピー制御部３１の機能は、図９〜図１２を参照して詳述するリモートコピー制御プログラムによって表される。
【００２３】
リモートコピー制御部３１の機能は、一般的には、ディザスタリカバリを目的として、チャネル９０を介して遠隔の他のディスク装置との間でデータ同期をとるために利用される。すなわち、リモートコピー機能を利用して、２つのディスク装置間でデータ同期をとっておくことよって、一方のディスク装置がアクセス不能な状況に陥った場合に、他方のディスク装置を用いて計算サービスを継続することが可能となる。
本実施例では、リモートコピー機能を従来のデータ保護目的ではなく、複数のホスト装置（１０Ａ、１０Ｂ）間でのデータベース用のデータ共有のために利用する。
【００２４】
図２は、計算機ネットワークにおけるデータ共有の１例を示す。
ネットワーク１０００を介して接続された２つのホスト装置１０Ａ、１０Ｂでは、それぞれデータベース・アプリケーション１１（１１Ａ、１１Ｂ）やデータベースシステム１２（１２Ａ、１２Ｂ）が稼働している。各ホスト装置には、ディスク制御装置（図示省略）を介して、ディスク装置５０（５０Ａ、５０Ｂ）が接続され、ディスク装置５０内にデータベースＤＢが構築されている。
【００２５】
本実施例では、例えば、ホスト装置１０Ａで稼働していたデータベース・アプリケーション１１Ａをホスト装置１０Ｂで遠隔的に実行させるためにリモートコピー機能を利用する。ここで、ホスト装置１０Ｂのデータベース・アプリケーション１１Ｂは、ホスト装置１０Ａのデータベース・アプリケーション１１Ａと同一機能を備えていることを前提とする。
通常、データベース・アプリケーション１１（１１Ａ、１１Ｂ）の実行は、データベースＤＢの内容更新処理を伴うため、ホスト装置１０Ａからホスト装置１０Ｂにデータベース・アプリケーション１１Ｂの遠隔実行を要求可能にするためには、ホスト１０Ａがデータベース・アプリケーション１１Ａを実行中は、ディスク装置５０ＡのデータベースＤＢに生じたデータ変更をディスク装置５０Ｂ側のデータベースＤＢに随時反映させておき、ホスト１０Ｂがデータベース・アプリケーション１１Ｂを遠隔実行中は、ディスク装置５０ＢのデータベースＤＢに生じたデータ変更をディスク装置５０Ａ側のデータベースに随時反映させておく必要がある。
【００２６】
図３は、データベース・アプリケーション１１Ｂの遠隔実行に先立って、ホスト装置１０Ａ、ディスク制御装置３０Ａ、ホスト装置１０Ｂ、ディスク制御装置３０Ｂの間で実行されるリモートコピー方向反転制御手順の１例を示す。
ホスト装置１０Ａは、先ず、ディスク制御装置３０Ａに対して、モートコピー方向反転コマンドを発行する（２０１）。リモートコピー方向反転コマンドは、ディスク制御装置３０Ａと３０Ｂとの間でデータベース更新結果のリモートコピー方向を切り替えるための制御コマンドで、本実施例の特徴の一つである。
【００２７】
リモートコピー方向反転コマンドを受け取ったディスク制御装置３０Ａは、リモートディスク制御装置３０Ｂに対して、リモートコピー方向反転確認要求コマンドを発行する（２０２）。このコマンドは、ディスク制御装置３０Ａがその後に発行するリモートコピー方向反転コマンドの受付け可否を問合せるためのものであり、リモートディスク制御装置３０Ｂが上記コマンドを受信した時点では、リモートコピー方向は未だ反転されない。これは、例えば、複数のディスク制御装置に対してリモートコピーを行う時、特定のディスク制御装置がリモートコピー方向反転コマンドを許諾できなかった場合に起こるデータ不整合を未然に防止するためである。
【００２８】
上記リモートコピー方向反転確認要求コマンドを受信したリモートディスク制御装置３０Ｂは、リモートコピー方向反転要求を受付可能か否かをチェックし、もし、受付可能であれば、リモートコピー方向反転準備完了応答（許諾応答）をディスク制御装置３０Ａに回答する（２０３）。
【００２９】
ディスク制御装置３０Ａは、上記リモートコピー方向反転準備完了応答を受信すると、リモートディスク制御装置３０Ｂにモートコピー方向反転要求を発行（２０４）した後、自装置側のコピー方向の切替え体制を整える。リモートディスク制御装置３０Ｂは、上記モートコピー方向反転要求を受信すると、データベースのコピー方向を切替えた後、ディスク制御装置３０Ａに対してモートコピー方向反転完了応答を通知する（２０５）。
【００３０】
ディスク制御装置３０Ａは、上記モートコピー方向反転完了応答を受信すると、ホスト装置１０Ａに対して、モートコピー方向反転コマンド要求の完了応答を通知する（２０６）。ホスト装置１０Ａは、上記リモートコピー方向転コマンド要求の完了応答の受信を待って、リモートホスト装置１０Ｂにデータベース・アプリケーションプログラムの遠隔実行要求を転送する（２０７）。
上記遠隔実行要求を受信したリモートホスト装置１０Ｂが、データベース・アプリケーションプログラムを実行し、ディスク制御装置３０ＢにデータＷＲＩＴＥコマンドを発行すると（２１０）、ディスク制御装置３０Ｂが上記ＷＲＩＴＥコマンドを実行し、ディスク制御装置３０Ｂに接続されたディスク装置５０Ｂにデータを書込む（２１１）。この時、ディスク制御装置３０Ｂは、ディスク制御装置３０Ａに対して、リモートコピーのためのデータＷＲＩＴＥコマンドを送信する（２１２）。
【００３１】
ディスク制御装置３０Ａは、上記ＷＲＩＴＥコマンドを実行し（２１３）、ディスク装置５０Ａへのデータ書込みが完了すると、ディスク制御装置３０Ｂに対してＷＲＩＴＥコマンド２１２の完了応答を送信する（２１４）。ディスク制御装置３０Ｂは、ディスク制御装置３０Ａから上記完了応答２１４の受信を待って、ホスト装置１０ＢにＷＲＩＴＥコマンド２１０に対する完了応答を返す。
【００３２】
上記制御手順によれば、リモートコピー方向を反転した状態で、ホスト装置１０Ｂによるデータベース・アプリケーションの遠隔実行が開始される。従って、リモートホスト装置１０Ｂがデータベース・アプリケーションを実行し、ディスク制御装置３０ＢがデータベースＤＢの内容を更新した場合、更新結果がホスト装置１０Ａ側のディスク装置５０Ａにコピーされるため、アプリケーションの遠隔実行中にディスク装置５０Ａと５０Ｂのデータ同期を達成できる。
【００３３】
また、上記制御手順によれば、ディスク制御装置３０Ａが、リモートコピー方向反転確認要求コマンドを送信し（第１フェーズ）、リモートディスク制御装置３０Ｂがリモートコピー方向反転コマンドを実行できる状態にあることを確認した上で、リモートコピー方向反転コマンドを送信（第２フェーズ）しているため、ディスク制御装置３０Ａが複数のリモートディスク制御装置との間でリモートコピーを行う場合でも、コピー対象となる全てのディスクで保持データの同一性を保証することが可能となる。
【００３４】
図４は、ホスト装置１０Ａ側で、データベースシステム１２Ａを使用して、データベース・アプリケーション１１Ａを実行した場合のディスク間のデータ同期を示している。
データベース・アプリケーション１１Ａが、データベース用のディスク５０Ａｉ、５０Ａｊの内容を更新した場合、ディスク制御装置３０Ａ内のリモートコピー制御部３１Ａが、専用チャネル９０を介して、リモートディスク制御装置３０Ｂに更新データの書込み要求を転送し、ディスク制御装置３０Ｂが上記更新データをデータベース用のディスク５０Ｂｉ、５０Ｂｊに書き込む。従って、ディスク５０Ａｉ、５０Ａｊの内容更新に同期して、リモートディスク５０Ｂｉ、５０Ｂｊの内容が更新される。この時、ホスト装置１０Ｂ側では、データベースシステム１２Ｂは稼働しているが、データベース・アプリケーションは実行していないため、ホスト装置１０Ｂによってデータベース用ディスク５０Ｂｉ、５０Ｂｊが更新されることはない。
【００３５】
図５は、ホスト装置１０Ａ側のディスク制御装置３０Ａと、リモートホスト装置１０Ｂ側のディスク制御装置３０Ｂとの間で、図３で説明したリモートコピー方向反転制御手順を実行し、ホスト装置１０Ａからの遠隔実行要求２０７に応答して、遠隔ホスト装置１０Ｂがデータベース・アプリケーション１１Ａを実行した場合のデータ同期を示す。
【００３６】
リモートホスト装置１０Ｂに遠隔実行すべきデータベース・アプリケーション１１Ａがない場合は、ホスト装置１０Ａからホスト装置１０Ｂに上記データベース・アプリケーション１１Ａを転送した後、遠隔実行要求２０７を発行すればよい。
【００３７】
ホスト装置１０Ａは、リモートホスト装置１０Ｂにデータベース・アプリケーション１１Ａの実行を要求した後、データベースシステム１２Ａを基本的に閉塞状態にする。従って、ホスト装置１０Ａは、データベースアクセスに関しては、ローカルホストとなる。
【００３８】
リモートホスト装置１０Ｂは、ホスト装置１０Ａからデータベース・アプリケーション１１Ａの実行要求を受信すると、データベースシステム１２Ｂを使用してデータベース・アプリケーション１１Ａを実行し、ディスク５０Ｂｉ、５０Ｂｊのデータ更新、あるいはデータ検索を開始する。
【００３９】
図３で説明したリモートコピー方向反転制御の結果、ディスク制御装置３０Ｂがデータベース用ディスク５０Ｂｉ、５０Ｂｊの内容を更新すると、リモートコピー制御部３１Ｂが、更新データの書込み要求を専用チャネル９０を介してディスク制御装置３０Ａに転送し、ディスク制御装置３０Ａが、ディスク５０Ｂｉ、５０Ｂｊに同期する形で、ディスク５０Ａｉ、５０Ａｊの内容を更新する。従って、リモートホスト装置１０Ｂでデータベース・アプリケーションを実行した場合であっても、ローカルホスト装置１０Ａ側のデータベース用ディスク５０Ａｉ、５０Ａｊに最新データを保持できる。
【００４０】
図６は、ディスク制御装置３０Ａが備えるリモートコピーテーブル３５Ａの内容と、該ディスク制御装置に接続されたローカルディスク５０Ａ１〜５０Ａ５との関係を示す。
リモートコピーテーブル３５Ａは、ディスク制御装置３０Ａに接続されたローカルディスクの識別子３５１をもつ複数のエントリからなり、リモートコピー制御部３１Ａは、上記リモートコピーテーブル３５Ａに登録されたエントリ内容に従ってリモートコピーを制御する。
【００４１】
リモートコピーテーブル３５Ａの各エントリは、ローカルディスク識別子３５１と対応して、リモートディスク制御装置の識別子３５２と、リモートディスク識別子３５３と、コマンド転送制御情報３５４と示している。
リモードディスク識別子３５３は、ローカルディスク識別子３５１をもつディスク内容のコピー先（またはコピー元）となるリモートディスクを示し、リモートディスク制御装置識別子３５２は、上記リモートディスクが接続された他のディスク制御装置の識別子を示している。本実施例では、コマンド転送制御情報３５４には、リモートコピーの方向を決める「プライマリ」または「セカンダリ」を示すリモートコピー制御コードが設定される。
【００４２】
例えば、制御コード３５４がプライマリとなっていた場合は、ディスク制御装置３０Ａのリモートコピー制御部３１Ａがプライマリ、リモートディスク制御装置側のリモートコピー制御部がセカンダリとなって、自制御装置（ローカルディスク）からリモートディスク制御装置（リモートディスク）の方向にリモートコピーが行なわれる。逆に、制御コード３５４がセカンダリとなっていた場合は、リモートディスク制御装置がプライマリ、ローカルディスク制御装置がセカンダリとなって、リモートディスクからローカルディスクの方向にリモートコピーが行なわれる。制御コード３５４がセカンダリとなったローカルディスクについては、ホスト装置からのデータ書込みは禁止され、リモートディスク制御装置からのコピーによってのみ格納データが更新される。
【００４３】
ディスク制御装置３０Ａには、複数のディスク５０Ａ１〜５０Ａｎが接続されている。リモートコピーテーブル３５Ａにおいて、ローカルディスク識別子と対応して制御コード３５４を指定しておくことにより、同一のディスク制御装置に収容された複数のディスクに対して、ディスク毎に異なった方向のリモートコピーを実現できる。リモートコピーの対象となるディスクの指定は任意であり、例えば、データベース用ディスク５０Ａ３（ＶＯＬ３）〜５０Ａ５（ＶＯＬ５）のように、ローカルディスク群のうちの特定のディスクをリモートコピーテーブル３５Ａに登録できる。
【００４４】
リモートディスク制御装置（例えば、ディスク制御装置３０Ｂ）も、これと同様のリモートコピーテーブル３５Ｂを備える。但し、リモートディスク制御装置側のテーブルエントリでは、同一のリモートコピー対象について、コマンド転送制御情報３５４としての設定コードが、上述したディスク制御装置３０Ａ側のリモートコピーテーブル３５Ａの設定コードとは逆になる。
【００４５】
ディスク制御装置３０Ａは、ディスクアクセスの要求元となるアプリケーションの種類を認識することなく、ディスク５０Ａ１〜５０Ａｎをアクセスする。例えば、ディスク５０Ａ３〜５０Ａ５がデータベース用であっても、ディスク制御装置３０Ａは、これらのディスクへのアクセスを他のディスク（５０Ａ１、５０Ａ２、・・・）と同じように制御している。
【００４６】
本実施例の一つの特徴は、ホスト装置１０Ａ（１０Ｂ）からディスク制御装置３０Ａ（３０Ｂ）に対して、データベースシステム１２Ａ（１２Ｂ）が使用するディスクを教えることにある。アプリケーションをリモートホスト装置で実行する場合、上記アプリケーションで必要とするディスクは、該アプリケーションしか知らない。従って、プリケーションをリモートホスト装置で実行する場合は、ホスト装置１０Ａからディスク制御装置３０Ａに、リモートコピー方向の反転をどのディスクに対して行えばいいかを指定する。
【００４７】
図７は、ホスト装置１０Ａが備えるデータベース（ＤＢ）ディスクテーブル１４Ａと、ホスト装置１０Ａからディスク制御装置３０Ａに発行されるリモートコピー方向反転コマンド７００の１例を示す。
データベースシステム１２Ａは、遠隔実行制御プログラム１３Ａと、ＤＢディスクテーブル１４Ａを備えている。遠隔実行制御プログラム１３Ａは、リモートホスト装置（例えば、１０Ｂ）に対して、アプリケーションの実行要求と、必要に応じて実行すべきアプリケーションプログラムそのものの転送処理を行う。ＤＢディスクテーブル１４Ａには、データベース用のアプリケーションが使用するディスクの識別子１４１と、該ディスクが接続されたディスク制御装置の識別子１４２との関係を示すエントリがリストとして登録されている。
【００４８】
遠隔実行制御プログラム１３Ａは、リモートホスト装置へのアプリケーションの転送あるいはアプリケーションの実行要求に先立って、ホスト装置１０Ａに接続されたディスク制御装置３０Ａに対して、リモートコピー方向反転コマンド７００を発行する。上記コマンド７００は、リモートコピー方向反転を示すコマンドコードが設定されたコマンドフィールド７０１に続いて、リモートコピー方向を反転させるべきディスク数７０２と、リモートコピー方向を反転させるべきディスクの識別子７０３、７０４を含んでいる。リモートコピー方向を反転させるべきディスク識別子は同時に複数個を指定できる。
【００４９】
ホスト装置１０Ａに複数のディスク制御装置が接続され、データベース用アプリケーションの実行に必要なディスクが、これら複数のディスク制御装置に分散していた場合は、上記リモートコピー方向反転コマンド７００は、ディスク制御装置毎に発行される。ディスク制御装置１０Ａは、上記コマンド７００に応答して、リモートディスク制御装置との間で、図３のリモートコピー方向反転制御手順２０２〜２０５を実行する。
【００５０】
図８は、ホスト装置１０Ａ（１０Ｂ）が実行する遠隔実行制御プログラム１３のフローチャートを示す。
ホスト装置１０Ａは、ＤＢディスクテーブル１４Ａ（１４Ｂ）から、リモートコピー方向を反転すべきディスクを指定したリストを取得し（ステップ１３１）、上記リストで指定されたディスク制御装置３０Ａに対して、図７に示したリモートコピー方向反転コマンド７００を発行（１３２）した後、上記コマンドに対するディスク制御装置からの応答を待つ（１３３）。ディスク制御装置３０Ａは、上記コマンド７００を受信すると、図３のリモートコピー方向反転制御手順２０２〜２０５を実行した後、ホスト装置１０Ａにコマンド完了応答２０６を返送する。ディスク制御装置３０Ａは、コマンドの実行に失敗した場合は、エラー応答を返送する。
ホスト装置１０Ａは、ディスク制御装置３０Ａからコマンド応答を受信すると、受信応答がコマンド完了応答か否かを判定する（１３４）。受信応答がエラー応答の場合は、このプログラムの実行を終了する。受信応答が完了応答の場合は、データベースシステム１２Ａを閉塞し（１３５）、リモートホスト装置に対して遠隔実行を要求して（１３６）、このプログラムの実行を終了する。上記データベースシステムの閉塞により、自装置側とリモートホスト装置側でのデータベース・アプリケーションの同時実行が回避され、データの整合性を保つことができる。
【００５１】
図９は、制御情報３５４でプライマリに指定されたディスク制御装置（ここでは、ディスク制御装置３０Ａ）におけるリモートコピー制御部（リモートコピー制御ルーチン）３１Ａのフローチャートを示す。
リモートコピー制御ルーチン３１Ａは、ホスト装置１０Ａからの受信コマンドが、リモートコピー方向反転コマンド７００、またはリモートコピー対象ディスクへのデータＷＲＩＴＥコマンドの場合に有効となる。
プライマリディスク制御装置３０Ａは、ホスト装置１０Ａからの受信コマンドを解析し（ステップ３０１）、受信コマンドがリモートコピー方向反転コマンドか否かを判定する（３０２）。受信コマンドがリモートコピー方向反転コマンドでなければ、図１０で後述するリモートコピー処理３２０を実行する。
【００５２】
受信コマンドがリモートコピー方向反転コマンドの場合、プライマリディスク制御装置３０Ａは、データの整合性を保つ目的で、受信コマンドが示すリモートコピー対象ディスク（図７の例では、ＶＯＬ３、ＶＯＬ４）に関して、ホスト装置１０Ａからのデータ更新を禁止する（３０３）。この後、リモートコピーテーブル３５Ａから上記コピー対象ディスクと対応するリモートディスク制御装置の識別子を特定し、該リモートディスク制御装置に対して、チャネル９０を介してリモートコピー方向反転確認コマンドを送信する（３０４）。尚、ホスト装置１０Ａからの受信コマンドで複数のコピー対象ディスクが指定され、リモートコピーに関与するリモートディスク制御装置が複数台になった場合は、上記確認コマンドは、これら複数のリモートディスク制御装置に対して送信される。
【００５３】
プライマリディスク制御装置３０Ａは、チャネル９０を介して、リモートディスク制御装置から上記確認コマンドに対する応答を受信（３０５）すると、受信応答の内容から、該リモートディスク制御装置がリモートコピー方向の反転準備を完了できたか否かを判定する（３０６）。応答が全て正常、すなわち、確認コマンドの送信先となった全てのリモートディスク制御装置がリモートコピー方向の反転準備を完了できた場合は、チャネル９０を介して、リモートディスク制御装置にリモートコピー方向反転コマンドを転送する（３０７）。
【００５４】
確認コマンドに対する応答が異常、すなわち、確認コマンドの送信先となった何れかのリモートディスク制御装置でリモートコピー方向を反転できない状態にあった場合は、確認コマンドの送信先となった全てのリモートディスク制御装置に対して、異常終了（リモートコピー方向反転の中止）を通知し（３１１）、ホスト装置１０Ａにリモートコピー方向反転コマンドの異常終了を通知して（３１２）、このルーチンを終了する。この場合、コピー対象ディスクに関するホスト装置１０Ａからのデータ更新禁止の状態は解消される。
【００５５】
プライマリディスク制御装置３０Ａは、リモートコピー方向反転コマンドに対する応答を待ち、全てのリモートディスク制御装置からリモートコピー方向反転完了応答を受信できたか否かを判定する（３０８）。全てのリモートディスク制御装置から完了応答を受信できた場合は、リモートコピーテーブル３５Ａにおいて、ローカルディスク識別子３５１が上記リモートコピー対象ディスクに該当する各エントリの制御コード３５４をプライマリからセカンダリに変更し（３０９）、ホスト装置１０Ａにリモートコピー方向反転コマンドの完了応答を返して（３１０）、このルーチンを終了する。
【００５６】
何れかのリモートディスク制御装置から、上記リモートコピー方向反転コマンドに対するエラー応答を受信した場合、プライマリディスク制御装置３０Ａは、ステップ３１０、３１１を実行して、このルーチンを終了する。この場合も、コピー対象ディスクに関するホスト装置１０Ａからのデータ更新禁止の状態は解消される。
【００５７】
図１０は、リモートコピー処理３２０の詳細フローチャートを示す。
リモートコピー処理３２０では、ホスト装置１０Ａからの受信コマンドが、リモートコピー対象ディスクをアクセスするコマンドか否かを判定し（３２１）、受信コマンドがリモートコピー対象ディスク以外のディスクをアクセスするＲＥＡＤコマンドまたはＷＲＩＴＥコマンドの場合は、通常のＲＥＡＤ／ＷＲＩＴＥ処理（３２８）が実行される。
【００５８】
受信コマンドが、リモートコピー対象ディスクをアクセスするコマンドの場合は、受信コマンドの種類を判定する（３２２）。ＷＲＩＴＥコマンドでなければ、ステップ３２８で通常のＲＥＡＤ処理が実行される。受信コマンドがＷＲＩＴＥコマンドの場合は、リモートコピーテーブル３５Ａを参照し、アクセスすべきディスクの制御コード３５４を判定する（３２３）。
【００５９】
アクセスすべきディスクがセカンダリ状態となっていた場合は、リモートディスクとのデータ整合性を維持するための、ホスト装置にエラー応答を返送して（３２９）、このルーチンを終了する。アクセスすべきディスクがプライマリ状態となっていた場合は、受信コマンドが指定するリモートコピー対象ディスクに対してＷＲＩＴＥコマンドを実行する（３２４）。このＷＲＩＴＥコマンドの実行は、通常のディスク装置におけるデータの書込み動作と同様で、ディスクキャッシュへのデータ書込みを含む。
【００６０】
ＷＲＩＴＥコマンドの実行が完了すると、ディスク制御装置３０Ａは、リモートコピーテーブル３５Ａを参照して、該テーブルが指定する上記リモートコピー対象ディスクと対応するリモートディスク制御装置を特定し、チャネル９０を介して、リモートディスク制御装置に上記ＷＲＩＴＥコマンドに付随するデータのリモートディスクへの書込みを要求する（３２５）。この後、ディスク制御装置３０Ａは、リモートディスク制御装置によるデータの書込み終了を待ち（３２６）、チャネル９０を介してリモートディスク制御装置から完了応答を受信すると、ホスト装置１９ＡにＷＲＩＴＥコマンドの終了を通知（３２７）して、このルーチンを終了する。
【００６１】
図１１は、リモートコピー状態３５４でセカンダリに指定されたディスク制御装置（ここでは、ディスク制御装置３０Ｂ）が、チャネル９０からのコマンド受信時に実行するリモートコピー制御部（リモートコピー制御ルーチン）３１Ｂのフローチャートを示す。
【００６２】
セカンダリディスク制御装置３０Ｂは、専用チャネル９０を介してプライマリディスク制御装置３０Ａからの受信コマンドを解析し（ステップ３３１）、受信コマンドがリモートコピー方向反転確認コマンドか否かを判定する（３３２）。受信コマンドがリモートコピー方向反転確認コマンドでなければ、図１２で後述するリモートコピー処理３４０を実行する。受信コマンドがリモートコピー方向反転確認コマンドの場合、セカンダリディスク制御装置３０Ｂは、上記確認コマンドで指定されたディスクの状態を確認し（３３３）、指定ディスクがリモートコピー方向を反転可能な状態であれば、チャネル９０を介して、上記確認コマンドの送信元ディスク制御装置にリモートコピー方向反転準備完了応答を送信する（３３４）。例えば、ディスク障害などの理由で、指定ディスクがリモートコピー方向を反転できない状態であれば、セカンダリディスク制御装置３０Ｂは、上記反転準備完了応答に代えてエラー応答を送信する。
【００６３】
セカンダリディスク制御装置３０Ｂは、プライマリディスク制御装置３０Ａからの次のコマンドを待つ（３３５）。チャネル９０から受信した次のコマンドがリモートコピー方向反転要求の場合は（３３６）、リモートコピーテーブル３５Ｂ上で、上記方向反転要求（またはリモートコピー方向反転確認コマンド）が示すディスクの制御コード３５４をセカンダリ状態からプライマリ状態に変更（３３７）し、上記ディスクについてホスト装置１０Ｂによるデータ更新を許可する（３３８）。セカンダリディスク制御装置３０Ｂは、この後、チャネル９０を介して、上記要求の送信元ディスク制御装置にリモートコピー方向反転完了応答を送信し（３３９）、このルーチンを終了する。
【００６４】
ステップ３３５で受信した次のコマンドが、リモートコピー方向反転要求以外のコマンド、例えば、異常終了通知の場合は、ステップ３３７〜３３９を実行することなく、このルーチンを終了する。
【００６５】
図１２は、リモートコピー処理３４０の詳細フローチャートを示す。
リモートコピー処理３４０において、セカンダリディスク制御装置３０Ｂは、チャネル９０からの受信コマンドが、リモートコピー対象ディスクへのデータＷＲＩＴＥコマンドか否かを判定し（３４１、３４２）、受信コマンドが、リモートコピー対象ディスクへのＷＲＩＴＥコマンドでなければ、プライマリディスク制御装置（ディスク制御装置３０Ａ）にエラー応答を送信（３４６）した後、このルーチンを終了する。
【００６６】
受信コマンドが、リモートコピー対象ディスクへのＷＲＩＴＥコマンドの場合は、リモートコピーテーブル３５Ｂ上で、アクセスすべきディスクの制御コード３５４を判定する（３４３）。セカンダリディスク制御装置３０Ｂは、アクセスすべきディスクがセカンダリ状態となっていることを確認して、ＷＲＩＴＥコマンドを実行する（３４４）。この後、プライマリディスク制御装置にＷＲＩＴＥコマンドの終了を通知し（３４５）、このルーチンを終了する。尚、ステップ３４２で、アクセスすべきディスクがプライマリ状態となっていた場合は、チャネル９０から受信したＷＲＩＴＥコマンドとリモートコピーテーブル３５Ｂの定義内容とが矛盾するため、プライマリディスク制御装置にエラー応答を送信（３４６）した後、このルーチンを終了する。
【００６７】
リモートコピーでセカンダリに指定されたディスクは、ホスト装置からのデータ更新を許されないが、本実施例によれば、各ディスク制御装置が備える上述したリモートコピー制御機能を利用して、ディスク制御装置間のリモートコピーの方向、すなわち、プライマリディスクとセカンダリディスクとの関係を動的に切替えることができる。従って、本実施例によれば、各ホスト装置が、リモートコピー方向を切替えた後、他のホスト装置にアプリケーションの遠隔実行を要求することにより、連携関係にある２つのホスト装置の何れからもディスク内容を更新することができ、且つ、これらのホスト装置が利用するディスク内容の変更を互いに同期させることが可能となる。
【００６８】
図１３は、上記実施例の変形例の一つを示している。
この例では、ディスク制御装置３０Ａが備えるデータベース用のディスク５０Ａ１〜５０Ａ４（ＤＢ１〜ＤＢ４）のコピーデータが、複数のリモートディスク制御装置３０Ｂ、３０Ｃに分散して保持されている。リモートディスク制御装置３０Ｂには、ディスク５０Ａ１（ＤＢ１）、５０Ａ２（ＤＢ２）のコピーデータ保持ディスク５０Ｂ１（ＤＢ１）、５０Ｂ２（ＤＢ２）が接続され、リモートディスク制御装置３０Ｃには、ディスク５０Ａ３（ＤＢ３）、５０Ａ４（ＤＢ４）のコピーデータ保持ディスク５０Ｃ３（ＤＢ３）、５０Ｃ４（ＤＢ４）が接続されている。
【００６９】
図９と図１１で説明したリモートコピー制御機能を利用すれば、図１３のように、１つのディスク制御装置３０Ａと他の複数のディスク制御装置との間でも、データベースのリモートコピーを行なうことができ、ディスク制御装置３０Ａから他の複数のディスク制御装置に対して、アプリケーションの遠隔実行を要求することが可能となる。
【００７０】
従来技術では、データベース等の大規模データの一括転送は、他のディスクへのコピー動作に時間がかかり過ぎるため、コピーデータを利用した遠隔ホスト装置によるアプリケーションのリモート実行が容易ではなかった。しかしながら、上記第１実施例に示したように、リモートコピー方向反転機能をもつ本発明のリモートコピー制御を利用すれば、データコピーの所要時間を短縮できる。従って、遠隔ホスト装置とローカルホスト装置との間で、データベース等のアプリケーションの実行に必要なデータを共有することが可能となり、大規模データを必要とするアプリケーションの遠隔実行を容易に実現できる。尚、本実施例では、ディスク制御装置間を専用チャネルで接続しているが、専用チャネルに代えて、例えば、ホスト装置に接続されているネットワークを利用してもよい。
【００７１】
次に、本発明の第２実施例として、仮想ディスク機構を備えたディスク制御装置について説明する。第２実施例のディスク制御装置は、ディスク装置を持たないホスト装置と、ディスク装置を備えたリモートホスト装置との間でのデータ共有を可能とする。
【００７２】
図１４は、第２実施例による計算機ネットワークの基本的なシステム構成を示し、第１実施例と共通する要素には同一符号が適用されている。ホスト装置１０Ａ、１０Ｂは、それぞれ遠隔実行制御プログラム１３Ａ、１３Ｂを備えている。ホスト装置１０Ａに接続されたディスク制御装置３０Ａは、該ホスト装置からのリード／ライトデータを一時的に保存するためのディスクキャッシュ３６Ａと、仮想ディスク制御部４１と、ディスク管理テーブル４３と、ディスク移行制御部４５を備えている。仮想ディスク制御部４１とディスク移行制御部４５は、ディスク制御装置３０Ａのプロセッサが実行するソフトウェア（プログラムルーチン）によって実現される。
本実施例では、ディスク制御装置３０Ａが管理するディスクの一部、例えば、５０Ａ１〜５０Ａ４が仮想ディスクとなっている。仮想ディスクの実体は、リモートディスク制御装置３０Ｂ側のディスク装置５０Ｂにある。ディスク制御装置３０Ａは、ローカルディスクを全く持たない構成となっていてもよい。一方、ホスト装置１０Ｂには、ディスクキャッシュ３６を内蔵したディスク制御装置３０Ｂが接続され、ディスク制御装置３０Ｂには、ディスク装置５０Ｂ（ディスク５０Ｂ１〜５０Ｂｎ）が接続されている。
【００７３】
仮想ディスク制御部４１は、ホスト装置１０Ａから、実際にはディスク制御装置３０Ａに接続されていない仮想ディスクに対するリード／ライト要求を受信した時、これらの要求を専用チャネル９０でリモートディスク制御装置３０Ｂに転送する機能を有している。ディスク制御装置３０Ａは、上記仮想ディスク制御部４１によって、実際には接続されていない仮想ディスクについて、ホスト装置１０Ａには恰もディスクが実在しているように振舞い、仮想ディスクをリード／ライトするアプリケーションの実行を可能とする。
ディスク移行制御部４５は、ＳＶＰ８０からのディスク移行指令によって起動され、ディスク移行指令で指定されたローカルディスクの内容をリモートディスク装置５０Ｂ側の指定のディスクにブロック単位でコピーする。
【００７４】
図１５は、第２実施例において、ホスト装置１０Ａからディスク制御装置３０Ａに、仮想ディスクに対するＲＥＡＤコマンドを発行した場合の動作シーケンスを示す。
２２０〜２２２は、ディスクキャッシュ３６Ａに目的データが存在した場合のシーケンスであり、ディスク制御装置３０Ａは、ＲＥＡＤコマンドを受信すると（２２０）、ディスクキャッシュ３６Ａに目的データが存在するか否かのヒット判定を行い（２２１）、ディスクキャッシュ３６Ａから読み出した目的データをホスト装置１０Ａに転送する（２２２）。
２２３〜２２８は、ディスクキャッシュ３６Ａに目的データが存在しなかった場合のシーケンスを示す。ディスク制御装置３０Ａは、ＲＥＡＤコマンドを受信すると（２２２）、ディスクキャッシュ３６Ａでヒット判定を行い（２２４）、目的データがディスクキャッシュ３６Ａに存在しないことが判明すると、リモートディスク制御装置１０Ｂに目的データのＲＥＡＤ要求を発行する（２２５）。ディスク制御装置３０Ａは、リモートディスク制御装置１０Ｂから目的データを受信すると（２２６）、これをディスクキャッシュ３６Ａに格納（２２７）した後、ホスト装置１０Ａに転送する（２２８）。
【００７５】
図１６は、第２実施例において、ホスト装置１０Ａからディスク制御装置３０Ａに、仮想ディスクに対するＷＲＩＴＥコマンドを発行した場合の動作シーケンスを示す。
ディスク制御装置３０Ａは、ホスト装置１０ＡからＷＲＩＴＥコマンドを受信すると（１３０）、ＷＲＩＴＥコマンドに付随する書き込みデータをディスクキャッシュ３６Ａに格納（２３１）した後、ホスト装置１０Ａに対してＷＲＩＴＥコマンドの終了通知を返す（２３２）。
【００７６】
ディスクキャッシュは、通常、バッテリバックアップされているため、停電などの障害が発生しても、格納データが失われることは無い。しかしながら、ディスクキャッシュの格納データは、定期的にディスク装置に移す必要があるため、本実施例では、ディスク制御装置３０Ａは、定期的に書き戻し制御（２３３）を実行し、リモートディスク制御装置３０Ｂに対して、ディスクキャッシュ格納データのＷＲＩＴＥ要求を発行し（２３４）、リモートディスク制御装置３０Ｂから、リモートディスクへの書き込み完了通知を受信する（２３５）。
【００７７】
リモートディスク制御装置３０Ｂでは、ホスト装置１０ＢからのＷＲＩＴＥデータと同様、ディスク制御装置３０ＡからのＷＲＩＴＥ要求データを一旦ディスクキャッシュ３６Ｂに格納した後、ディスク装置５０Ｂに書き込んでもよいし、ディスク制御装置３０ＡからＷＲＩＴＥ要求データであれば、ディスクキャッシュに格納することなく、直ちにディスク装置５０Ｂに書き込むように制御してもよい。
【００７８】
図１７は、第２実施例において、ホスト装置１０Ａからホスト装置１０Ｂに、アプリケーションの遠隔実行を要求する場合の動作シーケンスを示す。
図１６で述べたように、ディスク制御装置３０Ａは、仮想ディスクに格納すべき最新データの一部を一時的にディスクキャッシュ３６Ａにのみ格納しており、リモートディスク制御装置３０Ｂに接続されているディスク装置５０Ｂの内容が、必ずしもディスクキャッシュ３６Ａの最新データと一致していない。従って、ホスト装置１０Ａは、リモートホスト装置１０Ｂへのアプリケーション遠隔実行要求に先立って、ディスク装置５０Ｂの内容をディスクキャッシュ３６Ａの内容と一致させるために、ディスク制御装置３０Ａにキャッシュ書き戻しコマンドを発行する（２４０）。
【００７９】
キャッシュ書き戻しコマンドには、２つのタイプがある。第１タイプのコマンドは、ディスクキャッシュ３６Ａに保持された全てのデータについてディスクへの書き戻しを指令するものであり、コマンド内に書き戻し対象データを限定するためのパラメータを含んでいない。第２タイプのコマンドは、書き戻し対象データを限定するためのパラメータ、例えば、ディスク指定パラメータを含む。第２タイプの書き戻しコマンドが発行された場合、ディスクキャッシュ３６Ａの保持データのうち、パラメータで指定された特定のキャッシュデータだけがディスク装置５０Ｂに転送される。
【００８０】
ディスク制御装置１０Ａは、ホスト装置１０Ａからキャッシュ書き戻しコマンドを受信すると、リモートディスク制御装置３０Ｂに対して、上記キャッシュ書き戻しコマンドに従ったキャッシュデータの書き込みを要求する（２４１）。この要求に付随して、ディスク制御装置３０Ａからディスク制御装置３０Ｂにキャッシュデータが転送され、これらのキャッシュデータがディスク制御装置３０Ｂによってディスク装置５０Ｂに書き込まれる。データ書き込みが正常終了すると、ディスク制御装置３０Ｂからディスク制御装置３０Ａにデータ書き込みの完了通知が返送され（２４２）、ディスク制御装置３０Ａからホスト装置１０Ａに、キャッシュ書き戻しコマンドの実行完了が通知される（２４３）。
【００８１】
ホスト装置１０Ａは、上記キャッシュ書き戻しコマンドの実行完了通知を待って、リモートホスト装置１０Ｂに特定アプリケーションの遠隔実行を要求する（２４４）。これにより、ホスト装置１０Ｂは、最新データが格納されたディスク装置５０を参照して、アプリケーションプログラムに従ったデータ処理を実行することができる。
【００８２】
図１８は、仮想ディスク制御部４１が参照するディスク管理テーブル４３の構成を示す。
ディスク管理テーブル４３は、ホスト装置が認識するディスク識別子４３１を持った複数のエントリ４３０−１、４３０−２、・・・からなり、各エントリは、ディスク容量４３２と、ディスクタイプ４３３と、コマンド転送制御情報４３４と、リモートディスク制御装置識別子４３５と、リモートディスク識別子４３６と、移行状態フラグ４３７を示している。
【００８３】
仮想ディスク制御部４１は、ディスクテーブル４３に登録されたディスク識別子４３１をもつディスクについて、ホスト装置１０Ａのアクセスを許容する。また、ホスト装置１０Ａからの容量、ディスクタイプの問い合わせに対して、ディスク容量４３２が示す容量、ディスクタイプ４３３が示すタイプを回答する。
【００８４】
本実施例では、コマンド転送制御情報４３４として、ディスクの実体がリモートディスク制御装置側に接続された仮想ディスクか、第１実施例のようにディスク制御装置３０Ａに実際に接続されたローカルディスクかの区分を示す接続状態コードが設定される。また、移行状態フラグ４３７は、後述するディスク移行制御部４５によって、ローカルディスクの格納データがリモートディスクに移行中か否かを示しており、データ移行中のローカルディスクにはフラグ“１”が設定され、その他のローカルディスクと仮想ディスクには“０”が設定される。データ移行中のローカルディスクと対応するテーブルエントリには、ＳＶＰ８０から指定されたリモート制御装置識別子４３５とリモートディスク４５６とが設定され、データ移行が完了すると、制御情報（接続状態コード）４３４が仮想ディスク状態に変更される。
【００８５】
ホスト装置１０Ａからディスクへのアクセス要求（ＲＥＡＤ／ＷＲＩＴＥコマンド）が発生すると、仮想ディスク制御部４１は、ディスクキャッシュ３６Ａをアクセスした後、上記ディスク管理テーブル４３を参照してアクセス対象ディスクの制御情報４３４を判定し、アクセス対象が仮想ディスクの場合は、識別子４３５が示リモートディスク制御装置に対して、識別子４３６が示すリモートディスクへのアクセスを要求する。アクセス対象がローカルディスクの場合は、ディスク装置５０Ａ内に存在するローカルディスクに対して、通常のＲＥＡＤ／ＷＲＩＴＥアクセスが実行される。
【００８６】
図１９は、仮想ディスク制御部（プログラムルーチン）４１のフローチャートを示す。
仮想ディスク制御部４１は、ホスト装置１０Ａからの受信コマンドを解析し（ステップ（４１１）、ＷＲＩＴＥコマンドであれば、コマンドからアクセス対象となるディスク識別子を抽出し（４２４）、ディスクキャッシュ３６Ａにデータを格納する（４２５）。次に、図１８に示したディスク管理テーブル４３を参照し、上記ディスク識別子と対応するエントリ４３０−ｉの移行状態フラグ４３７を判定する（４２６）。移行状態フラグ４３７が“０”の場合は、ホスト装置１０Ａにコマンド終了を通知して（４２０）、このルーチンを終了する。
【００８７】
移行状態フラグ４３７が“１”の場合は、上記ＷＲＩＴＥコマンドでディスクキャッシュに格納された最新データを含む１ブロック分または数ブロック分のキャッシュデータをリモートディスクに書込み（４２７）、図２０で後述するコピーマップ４７を更新（４２８）した後、ステップ４２０を実行する。上記リモートディスクへのデータブロックの書込みは、上記テーブルエントリ４３０−ｉで識別子４３５が示すリモートディスク制御装置に対して、識別子４３６が示すリモートディスクへのデータＷＲＩＴＥコマンドを送信することによって行なわれる。
【００８８】
ホスト装置１０Ａからの受信コマンドがＲＥＡＤコマンドの場合は、目的データがディスクキャッシュ３６Ａに格納されているか否かを判定する（４１２）。ディスクキャッシュで目的データにヒットした場合は、ディスクキャッシュから読み出した目的データをホスト装置１０Ａに送信（４１９）した後、ホスト装置１０Ａにコマンド終了通知を送信して（４２０）、このルーチンを終了する。
【００８９】
ディスクキャッシュに目的データが無かった場合は、ＲＥＡＤコマンドからアクセス対象となるディスク識別子を抽出し（４１３）、ディスクテーブル４３の上記ディスク識別子と対応するエントリ４３０−ｉを参照し、制御情報４３４を判定する（４１４）。アクセス対象ディスクがローカルディスクの場合は、移行状態フラグ４３７を判定する（４２１）。移行状態フラグ４３７が“０”であれば、ディスク識別子４３１が示すローカルディスクから通常のデータＲＥＡＤ処理を実行し（４２３）、読み込まれたデータをキャッシュに格納（４１８）した後、ステップ４１９を実行する。
【００９０】
テーブルエントリ４３０−ｉで移行状態フラグ４３７が“１”の場合は、図２０で後述するコピーマップ４７から、目的データが既にリモートディスクに移行済みデータか否かを判定する（４２２）。目的データがリモートディスクに移行する前の状態にあれば、ローカルディスクから通常のデータＲＥＡＤ処理（４２３）を実行し、目的データが移行済みであれば、ステップ４１５を実行する。
【００９１】
アクセス対象ディスクが仮想ディスクの場合、または、アクセス対象ディスクがローカルディスクであって、目的データがリモートディスクに移行済みの場合は、テーブルエントリ５４３０−ｉが示す識別子４３５と４３６に従って、リモートディスク制御装置とリモートディスクを特定し（４１５）、該リモートディスク制御装置に対して、上記リモートディスクからのデータＲＥＡＤを要求する（４１７）。
【００９２】
仮想ディスク制御部は、リモートディスク制御装置からの応答を待ち、ＲＥＡＤデータと完了通知を受信すると（４１７）、受信したデータをキャッシュに格納（４１８）した後、ステップ４１９を実行する。これによって、アクセス対象ディスクがリモートディスク制御装置３０Ｂに接続された仮想ディスクの場合でも、ディスク制御装置３０Ａは、ホスト装置１０Ａに対してアクセス対象ディスクが手元にあるかのように振舞うことができ、リモートディスク装置を有効に利用したデータのＲＥＡＤ／ＷＲＩＴＥが可能となる。
【００９３】
図２０は、コピーマップ４７の構成を示す。
コピーマップ４７は、例えば、ディスクで最小アクセス単位となるデータブロック毎に、ローカルディスクのデータがリモートディスクに移行（コピー）されたか否かをフラグの状態によって示したものである。コピーマップ４７の各フラグは、ローカルディスク上のデータブロック領域と対応しており、移行が完了した領域のフラグに“１”を設定することによって、アクセス対象となるデータブロックが既に移行（コピー）済みか否かを判断することができる。フラグの状態は、図１９で説明した仮想ディスク制御ルーチン４１におけるステップ４２８と、図２１で説明するディスク移行制御ルーチン４５で“０”から“１”に更新される。
【００９４】
図２１は、ディスク移行制御部（プログラムルーチン４５）のフローチャートを示す。ディスク移行制御部４５は、ＳＶＰ８０からのディスク移行コマンドによって起動される。データソースとなるローカルディスクの識別子と、データ移行先となるリモートディスクの識別子およびリモートディスク制御部識別子は、上記ディスク移行コマンドで指定される。
【００９５】
ローカルディスクからリモートディスクへのデータの移行（コピー）は、例えば、ディスクの先頭ブロックから最終ブロックまでデータブロック単位で順次に行なわれ、コピーマップ４７のフラッグが順次に“１”に設定される。但し、ディスク移行中のリモートディスクにホスト装置からのデータ書込みが発生した場合、図１９で説明した仮想ディスク制御ルーチン４１のステップ４２７で、該当ブロックがリモートディスクにコピー済みとなるため、コピーマップ４７には、仮想ディスク制御ルーチンによる不連続なフラグ設定が加わる。
【００９６】
ディスク移行制御部４５は、先ず、ディスク管理テーブル４３において、上記ディスク移行コマンドで指定されたローカルディスク識別子をもつエントリのフィールド４３５と４３６に、上記コマンドで指定されたリモートディスク制御部識別子とリモートディスク識別子をそれぞれ設定すると共に、移行状態フラグ４３７を“１”に変更し（４５０）、移行対象ブロックを示すパラメータｊの値とコピーマップ４７を初期化する（４５１）。
【００９７】
次に、ホスト装置からのアクセスを禁止するために、データソースとなるローカルディスクをロックし（４５２）、パラメータｊの値をインクリメント（４５３）した後、コピーマップ４７を参照して、移行対象となる第ｊブロックが既にコピー済みか否かを判定する（４５４）。
【００９８】
第ｊブロックが既にコピー済みの場合は、ホスト装置からのアクセスを許容するために、ローカルディスクをリリースし（４５８）、パラメータｊの値と最大ブロック数とを比較することによって、全データブロックの移行処理が完了したか否かを判定する（４５９）。移行処理が完了していなければ、所定時間が経過するまで移行処理を休止し（４６２）、所定時間が経過したらステップ４５２に戻り、上述した動作を繰り返す。図１９に示したホスト装置からの受信コマンドは、ディスク移行制御部４５が上記休止状態にある期間内に実行される。
【００９９】
第ｊブロックがコピー済みでなければ、ローカルディスクから第ｊブロックのデータを読み出し（４５５）、ディスク移行コマンドで指定されたリモートディスク制御部にデータＷＲＩＴＥコマンドを送信することによって、上記データブロックをリモートディスクに書き込む（４５６）。この後、コピーマップ上で第ｊブロックと対応するフラグを“１”に変更し（コピーマップの更新：４５７）、ローカルディスクをリリースし（４５８）、全データブロックの移行処理が完了したか否かを判定する（４５９）。
【０１００】
上記処理を繰り返すことによって、ローカルディスク上のデータブロックが次々とリモートディスクに移行される。全てのデータブロックに移行が完了すると、ＳＶＰ８０に移行の完了を通知し（４６０）、ディスク管理テーブル４３の上記ローカルディスクと対応する制御情報４３４を仮想ディスクに変更し、移行状態フラグ４３７を“０”に変更して（４６１）、このルーチンが終了する。
【０１０１】
図２２は、第２実施例におけるデータ移行制御部４５の動作を模式的に示す。ディスク制御装置３０Ａのデータ移行制御部４５は、ホスト装置１０ＡからＲＥＡＤ要求を受けると、目的データが移行（コピー）前のデータブロックに該当する場合は、ローカルディスク５０Ａ１から読み込んだ目的データＲＤＡＴＡ１をホスト装置に返送する。目的データが移行済みのデータブロックに該当していた場合は、リモートディスク制御装置３０ＢにＲＥＡＤ要求を転送し、リモートディスク５０Ｂ５か読み出されたデータＲＤＡＴＡ２をホスト装置１０Ａに転送する。ホスト装置１０Ａから、移行中のローカルディスク５０Ａ５に対するＷＲＩＴＥ要求を受けた場合、データ移行制御部４５は、リモートディスク制御装置３０ＢにＷＲＩＴＥ要求を転送し、データＷＤＡＴＡをリモートディスク５０Ｂ５に書き込む。
【０１０２】
上記第２実施例によれば、仮想ディスクによって、ホスト装置１０Ａと遠隔ホスト装置１０Ｂとがデータを共有できる。この場合、ホスト装置１０Ａは、仮想ディスクについてはハードウエアとしてのディスク装置を備える必要がないため、低コストで共有データを利用することができる。尚、第２実施例では、ホスト装置１０Ａ側のディスク制御装置３０Ａに仮想ディスク制御部４１を備えたが、仮想ディスク制御部４１は、リモートホスト装置側のディスク制御装置３０Ｂにも設けてもよい。
【０１０３】
企業の合理化に伴って、それまで社内で行なってきた計算機システムの運用を他社（データセンタなど）に依託するアウトソーシングが普及しつつある。但し、それまで社内で正常に運用されてきた情報処理が、別の計算機システム上で正常に稼働するとは限らないため、計算機システムの管理者にとって、全ての情報処理を一度にアウトソーシングに移行することには大きな抵抗がある。
【０１０４】
本発明の第２実施例によれば、ホスト装置１０Ａ側に接続されていたローカルディスクの内容をリモートディスクに移行し、移行済みのローカルディスクを仮想ディスクとして利用することができるため、情報処理を段階的にアウトソーシングすることが可能となる。アウトソーシングへの移行には、例えば、次の段階が考えられる。
【０１０５】
第１段階では、ローカルディスクが容量不足となった顧客のディスク制御装置３０Ａに、本発明の仮想ディスク制御部４１を適用し、豊富なディスク容量をもつリモートディスク装置５０Ｂの一部を顧客のホスト装置１０Ａに仮想ディスクとして利用させる。顧客のホスト装置１０Ａにとっては、ローカルディスク容量が増えたように見える。
【０１０６】
通常、ディスク装置は、レンタルまたは買取りによって入手したハードウエア装置を計算機システムに組み込む形式で運用されているが、仮想ディスクは、従来の概念には属さないディスク領域である。この場合、例えば、仮想ディスクに対して課金する形式で、顧客とリース契約すればよい。仮想ディスクとして貸し出すメモリ容量またはディスク数に対して課金する仕組みを取り入れることによって、顧客の計算機システムを活かした形でのアウトソーシングが可能となる。
【０１０７】
第２段階では、第２実施例で説明したように、それ迄ローカルディスクに格納されていたデータベース等のデータをアウトソーシング予定先のホスト装置１０Ｂの制御下にあるリモートディスクに移行する。この場合、データのみが移行され、顧客のホスト装置１０Ａは、上記ローカルディスクを仮想ディスクとしてアクセスできるため、ホスト装置の設定を一切変更する必要がない。従って、顧客計算機システムにおけるアプリケーションの実行時に不具合が生じる可能性は極めて少ない。
【０１０８】
第３段階では、顧客ホスト装置１０Ａの機能をリモートホスト装置１０Ｂに完全に移行する。第２段階でデータの移行が完了しているため、顧客ホスト装置１０Ａで稼動していたアプリケーションと同一のソフトをアウトソーシング先のホスト装置１０Ｂでテストランすることによって、リモートホスト装置側での処理を保証できる。顧客ホスト装置１０Ａによるデータ処理は、上記ホスト機能の移行期間中も継続できる。また、移行先で実行されるアプリケーションには大きな変更を加える必要がないため、第３段階でのアウトソーシングへの切替えは比較的円滑に行うことができる。
【０１０９】
上記第２実施例では、ローカルディスクの全データをリモートディスクに移行した時、ディスク移行制御部４５が、ディスクテーブル４３上で上記ローカルディスクを仮想ディスクに変更したが、この時、ローカルディスクとリモートディスクのデータ格納状態が同一になったため、ホスト装置１０Ａとホスト装置１０Ｂで同一アプリケーションを実行可能な環境が整う。
【０１１０】
従って、上記ディスク移行制御部４５の機能を、第１実施例のデータベース・アプリケーション遠隔実行のための前提条件となるローカルディスクと同一のリモートディスクを生成する目的で利用し、全データのコピーが完了した時点で、前述したディスク管理テーブルの更新（４６１）に代えて、第１実施例のリモートコピーテーブル３５Ａへの新たなエントリ登録を行なうようにしてもよい。  第１実施例の図９、図１０に示したリモートコピー処理３２０では、ホスト装置から受信したＲＥＡＤ／ＷＲＩＴＥコマンドが、リモートコピーテーブル３５Ａに登録されたリモートコピー対象ディスクへのＷＲＩＴＥコマンド以外の場合は、通常のＲＥＡＤ／ＷＲＩＴＥ処理（３２８）を実行しているが、例えば、該ＲＥＡＤ／ＷＲＩＴＥ処理（３２８）に代えて、図１９に示した仮想ディスク制御４１を実行させることによって、１つのディスク制御装置に第１実施例の機能と第２実施例の機能を兼備することも可能である。
【０１１１】
実施例では、ディスク制御装置間を専用チャネルで接続し、ＲＥＡＤ／ＷＲＩＴＥコマンドを上記専用チャネルを介して通信した。しかしながら、ディスク制御装置間のＲＥＡＤ／ＷＲＩＴＥコマンドの通信には、例えば、ホスト装置間を接続しているネットワークを使用してもよい。
【０１１２】
【発明の効果】
以上の実施例から明らかなように、本発明によれば、複数のホスト装置で同一のアプリケーションを実行する際に必要なデータの共有化を効率的に行うことができる。
【図面の簡単な説明】
【図１】本発明によるデータ共有を実現する計算機ネットワークの基本的なシステム構成図。
【図２】本発明の第１実施例を示す計算機ネットワークの構成図。
【図３】本発明によるリモートコピー方向反転制御手順の１例を示すシーケンス図。
【図４】図２の計算機ネットワークで、ホスト装置１０Ａ側でアプリケーションを実行した場合のデータ同期を説明するための図。
【図５】図２の計算機ネットワークで、ホスト装置１０Ｂ側でアプリケーションを実行した場合のデータ同期を説明するための図。
【図６】リモートコピーテーブル３５Ａの１実施例を示す図。
【図７】ホスト装置１０Ａが備えるＤＢディスクテーブル１４Ａの内容と、コピー方向反転コマンド７００の１例を示す図。
【図８】ホスト装置１０Ａ、１０Ｂが実行する遠隔実行制御プログラムのフローチャート。
【図９】プライマリ指定されたディスク制御装置で実行されるリモートコピー制御のフローチャート。
【図１０】図９のリモートコピー処理３２０の詳細フローチャート。
【図１１】セカンダリ指定されたディスク制御装置で実行されるリモートコピー制御のフローチャート。
【図１２】図１１のリモートコピー処理３４０の詳細フローチャート。
【図１３】第１実施例の変形例を説明するための図。
【図１４】本発明の第２実施例を示すシステム構成図。
【図１５】第２実施例においてホスト装置１０ＡがＲＥＡＤコマンドを発行した場合のシーケンス図。
【図１６】第２実施例においてホスト装置１０ＡがＷＲＩＴＥコマンドを発行した場合のシーケンス図。
【図１７】第２実施例においてホスト装置１０Ａからリモートホスト装置１０Ｂにアプリケーションの遠隔実行を要求する場合のシーケンス図。
【図１８】第２実施例のホスト装置１０Ａが備えるディスクテーブル４３の構成図。
【図１９】第２実施例のホスト装置１０Ａが備える仮想ディスク制御部４１のフローチャート。
【図２０】仮想ディスク制御部４１とディスク移行制御部４５が利用するコピーマップの構成図。
【図２１】第２実施例のホスト装置１０Ａが備えるディスク移行制御部４５のフローチャート。
【図２２】第２実施例におけるデータＲＥＡＤ／ＷＲＩＴＥ動作の説明図。
【符号の説明】
１０：ホスト装置、１１：データベースアプリケーション、
１２：データベースシステム、１３：遠隔実行制御プログラム、
１４：ＤＢディスクテーブル、３０：ディスク制御装置、
３１：リモートコピー制御部、３５：リモートコピーテーブル、
３６：ディスクキャッシュ、４１：仮想ディスク制御部、
４３：ディスク管理テーブル、４５：ディスク移行制御部、５０：ディスク装置、
９０：専用チャネル、１０００：ネットワーク。
【図１】
2004302556.tif 000003
【図２】
2004302556.tif 000004
【図３】
2004302556.tif 000005
【図４】
2004302556.tif 000006
【図５】
2004302556.tif 000007
【図６】
2004302556.tif 000008
【図７】
2004302556.tif 000009
【図８】
2004302556.tif 000010
【図９】
2004302556.tif 000011
【図１０】
2004302556.tif 000012
【図１１】
2004302556.tif 000013
【図１２】
2004302556.tif 000014
【図１３】
2004302556.tif 000015
【図１４】
2004302556.tif 000016
【図１５】
2004302556.tif 000017
【図１６】
2004302556.tif 000018
【図１７】
2004302556.tif 000019
【図１８】
2004302556.tif 000020
【図１９】
2004302556.tif 000021
【図２０】
2004302556.tif 000022
【図２１】
2004302556.tif 000023
【図２２】
2004302556.tif 000024