(57)【要約】【課題】本発明のコンピュータシステムでは、ネットワークストレージ装置の論理ボリュームを複数のコンピュータによって排他的に共有可能である。【解決手段】第１コンピュータ１は、リモートコピー要求を受領すると（Ｓ１）、リモートコピ対象のファイルを共有記憶装置３内の論理ボリューム３Ａに書込み（Ｓ２）、そのファイルの書込先等を示す所在管理情報Ｄ２をメモリ装置１Ｂ１に記憶する（Ｓ３）。第２コンピュータ２は、アクセス要求を受領すると（Ｓ４）、第１コンピュータ１から論理ボリューム３Ａの排他権を取得する（Ｓ５，Ｓ６）。第２コンピュータ２は、論理ボリューム３Ａをマウントし、所望の処理を実行する。さらに、第２コンピュータ２は、所在管理情報Ｄ２に基づいて、論理ボリューム３Ａからファイルを読み出す（Ｓ９）。【選択図】図１
2009181167.tif 000002
【特許請求の範囲】
【請求項１】
第１コンピュータと第２コンピュータ及び共有記憶装置が通信ネットワークを介して通信可能に接続されるコンピュータシステムであって、
前記共有記憶装置は、前記第１コンピュータ及び前記第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、
前記第１コンピュータは、第１記憶装置と、この第１記憶装置へのデータ入出力及び前記共有記憶装置の使用可否をそれぞれ制御する第１制御部とを備え、
前記第２コンピュータは、第２記憶装置と、この第２記憶装置へのデータ入出力を制御する第２制御部とを備え、
前記第１制御部は、前記第１記憶装置から前記論理ボリュームを介して前記第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領した場合には、前記リモートコピー要求により指定されたリモートコピー対象データを前記第１記憶装置から前記論理ボリュームに転送して記憶させ、かつ、前記リモートコピー対象データが前記論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を前記第１記憶装置に記憶させるようになっており、
前記第２制御部は、入力されるアクセス要求に従って前記第１制御部に前記論理ボリュームの使用可否を問合せ、かつ、前記第１記憶装置から前記所在管理情報を取得して、前記論理ボリュームに記憶されている前記リモートコピー対象データを前記論理ボリュームから前記第２記憶装置に転送させるようになっている、
コンピュータシステム。
【請求項２】
前記第２コンピュータに入力される前記アクセス要求は、前記論理ボリュームからのリード要求、前記論理ボリュームへのライト要求、前記論理ボリュームのチェック要求、前記論理ブロック内のデータを削除する要求のうち、少なくともいずれか一つである、請求項１に記載のコンピュータシステム。
【請求項３】
前記第２コンピュータに入力される前記アクセス要求が、リモートコピーの禁止を示す場合、前記第２制御部は、前記リモートコピー対象データを前記論理ボリュームから前記第２記憶装置に転送しない、請求項１または請求項２のいずれかに記載のコンピュータシステム。
【請求項４】
前記第２制御部は、前記第１制御部が前記論理ボリュームの使用を許可した場合に、前記第１記憶装置にアクセスして前記第１記憶装置に前記所在管理情報が記憶されているか否かを判断し、前記第１記憶装置に前記所在管理情報が記憶されている場合には、前記所在管理情報によって特定される前記リモートコピー対象データの全てを、前記論理ボリュームから前記第２記憶装置に転送させる、請求項１〜請求項３のいずれかに記載のコンピュータシステム。
【請求項５】
前記第１記憶装置は、第１メモリ装置と、この第１メモリ装置よりも記憶容量の大きい第１補助記憶装置とを含んで構成されており、
前記所在管理情報は前記第１メモリ装置に記憶される、請求項１〜４のいずれかに記載のコンピュータシステム。
【請求項６】
前記第１制御部は、前記論理ボリュームから読み出したデータを一時的に記憶するためのキャッシュ機能を備えており、このキャッシュ機能は、前記論理ボリュームから読み出される前記データの種類に応じて、前記データの一時的な記憶先を制御する、請求項１〜４のいずれかに記載のコンピュータシステム。
【請求項７】
前記第１制御部は、前記論理ボリュームに記憶されているデータを変更する場合には、この変更される前記データに対応するキャッシュデータを破棄し、かつ、前記論理ボリュームに記憶されているデータを読み出す場合には、この読み出されるデータのキャッシュデータを記憶する、請求項６に記載のコンピュータシステム。
【請求項８】
前記第１制御部は、前記キャッシュデータを生成する場合に、前記論理ボリュームから読み出される前記データの前記論理ボリューム内の位置と前記データをマウントする場合のマウントポイントとを含む検証用情報を作成して保持する、請求項７に記載のコンピュータシステム。
【請求項９】
前記第１記憶装置は、記憶容量が相対的に少ない第１メモリ装置と、この第１メモリ装置よりも記憶容量が相対的に大きい第１補助記憶装置とを含んで構成されており、
前記第１制御部は、前記論理ボリュームから読み出されるデータが相対的にデータサイズの大きいデータの場合は前記第１メモリ装置に一時的に記憶させ、前記論理ボリュームから読み出されるデータが相対的にデータサイズの小さいデータの場合は前記第１補助記憶装置に記憶させる、請求項６〜８のいずれかに記載のコンピュータシステム。
【請求項１０】
前記第１記憶装置は、記憶容量が相対的に少ない第１メモリ装置と、この第１メモリ装置よりも記憶容量が相対的に大きい第１補助記憶装置とを含んで構成されており、
前記第１制御部は、
（１）前記論理ボリュームから読み出されるデータが相対的にデータサイズの大きいデータの場合は前記第１メモリ装置に一時的に記憶させ、前記論理ボリュームから読み出されるデータが相対的にデータサイズの小さいデータの場合は前記第１補助記憶装置に記憶させ、さらに、
（２）前記キャッシュデータを生成する場合に、前記論理ボリュームから読み出される前記データの前記論理ボリューム内の位置と前記データをマウントする場合のマウントポイントとを含む検証用情報を作成して保持し、さらに、
（３）前記論理ボリュームに記憶されているデータを変更する場合には、この変更される前記データに対応するキャッシュデータのみを破棄して、前記検証用情報はそのまま保持し、さらに、
（４）前記論理ボリュームに記憶されているデータを読み出す場合には、この読み出されるデータのキャッシュデータを記憶する、
請求項６に記載のコンピュータシステム。
【請求項１１】
前記第１制御部は、前記論理ボリュームが使用中に発行される別の使用要求を待ち行列に格納し、前記論理ボリュームが使用可能になった場合に、前記待ち行列に格納された前記別の使用要求の再起動を指示する、請求項１〜１０のいずれかに記載のコンピュータシステム。
【請求項１２】
前記共有記憶装置は、ｉＳＣＳＩ（Internet Small Computer
System Interface）に基づいて動作する記憶装置として構成される、請求項１〜１１のいずれかに記載のコンピュータシステム。
【請求項１３】
第１コンピュータから共有記憶装置を介して第２コンピュータにリモートコピーを行うためのリモートコピー方法であって、
前記共有記憶装置は、前記第１コンピュータ及び前記第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、
前記第１コンピュータは、前記第１コンピュータの有する第１記憶装置から前記論理ボリュームを介して前記第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領し、
前記第１コンピュータは、前記リモートコピー要求により指定されたリモートコピー対象データを前記第１記憶装置から前記論理ボリュームに転送して記憶させ、
前記第１コンピュータは、前記リモートコピー対象データが前記論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を前記第１コンピュータ内に保持し、
前記第２コンピュータは、前記論理ボリュームに関するアクセス要求を受領し、
前記第２コンピュータは、前記論理ボリュームの使用可否を前記第１コンピュータに問合せ、
前記第１コンピュータは、前記第２コンピュータからの問合せに回答し、
前記第２コンピュータは、前記第１コンピュータから前記論理ボリュームの使用許可を得た場合に、前記所在管理情報を前記第１コンピュータから取得し、
前記第２コンピュータは、前記論理ボリューム内に記憶されている前記リモートコピー対象データの全部または一部を、前記論理ボリュームから前記第２コンピュータの有する第２記憶装置に転送させる、
リモートコピー方法。
【請求項１４】
第２コンピュータ及び共有記憶装置に通信ネットワークを介してそれぞれ接続される第１コンピュータであって、
前記共有記憶装置は、前記第１コンピュータ及び前記第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、
前記第１コンピュータは、第１記憶装置と、この第１記憶装置へのデータ入出力及び前記共有記憶装置の使用可否をそれぞれ制御する第１制御部とを備えており、
前記第１制御部は、前記第１記憶装置から前記論理ボリュームを介して前記第２コンピュータの有する第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領した場合には、前記リモートコピー要求により指定されたリモートコピー対象データを前記第１記憶装置から前記論理ボリュームに転送して記憶させ、かつ、前記リモートコピー対象データが前記論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を前記第１記憶装置に記憶させるようになっており、
前記第２コンピュータが前記論理ボリュームへの使用可否を問い合わせてきた場合、前記所在管理情報に基づいて、前記論理ボリューム内の前記リモートコピー対象データを、前記論理ボリュームから前記第２記憶装置に転送させる、第１コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、リモートコピー方法及び第１コンピュータに関するものである。
【背景技術】
【０００２】
ＩＰ（Internet Protocol）ネットワークを用いてＳＣＳＩ（Small Computer System Interface）コマンドを使用できる、ｉＳＣＳＩ（Internet SCSI）が提案されている。ｉＳＣＳＩ技術では、ＳＣＳＩコマンドやデータ等をＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）パケットに収納し、カプセル化する。これにより、ｉＳＣＳＩ技術に従う記憶装置は、通信ネットワークに直接接続することができ、その通信ネットワークに接続されたコンピュータは、記憶装置にアクセスしてデータを読み書きすることができる（特許文献１）。
【０００３】
別の従来技術としては、ｉＳＣＳＩに関する技術ではないが、複数のコンピュータが一つの記憶装置を利用する技術も知られている（特許文献２）。
【特許文献１】特開２００５−３５２８４４号公報
【特許文献２】特開２００５−３４６４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
複数のコンピュータが、物理的に離れた場所に設置される一つの共有記憶装置を使用する場合、アクセス応答時間が低下するという問題を生じる。例えば、各コンピュータと共有記憶装置との間の通信遅延時間や、各コンピュータが共有記憶装置をマウントするために必要な時間、各コンピュータが共有記憶装置をアンマウントするために必要な時間が、それぞれ発生するため、応答時間が低下する。
【０００５】
例えば、一方のコンピュータが共有記憶装置を使用する場合、一方のコンピュータは共有記憶装置をマウントして、共有記憶装置にデータを入出力し、処理終了後に共有記憶装置をアンマウントする。一方のコンピュータが共有記憶装置をマウントしている間、他方のコンピュータは、その共有記憶装置を使用することができない。同様に、他方のコンピュータは、一方のコンピュータが共有記憶装置をアンマウントしたことを確認した後で、共有記憶装置をマウントし、共有記憶装置にデータを入出力する。処理終了後に、他方のコンピュータは、共有記憶装置をアンマウントする。他方のコンピュータが共有記憶装置を使用している間、一方のコンピュータは共有記憶装置を使用することができない。
【０００６】
例えば、一方のコンピュータから他方のコンピュータにデータを転送するという、リモートコピーの場合も、上記同様の手順で実行される。リモートコピーの場合、最初に、リモートコピー元のコンピュータは、共有記憶装置をマウントして、リモートコピー対象のデータを共有記憶装置に書込み、その後に共有記憶装置をアンマウントする。続いて、リモートコピー先のコンピュータは、共有記憶装置をマウントし、リモートコピー対象のデータを共有記憶装置から読出し、その後に共有記憶装置をアンマウントする。
【０００７】
従って、リモートコピー対象のデータ数が多くなるほど、即ち、リモートコピーの回数が多くなるほど、各コンピュータが共有記憶装置をマウントまたはアンマウントする回数も増加する。コンピュータが共有記憶装置をマウントまたはアンマウントする処理は、オーバーヘッドとなり、共有記憶装置の応答時間が低下する。特に、共有記憶装置をマウントしようとする場合は、排他権（LOCK）を取得する必要があり、時間を要する。
【０００８】
ところで、各コンピュータの内部メモリに共有記憶装置内のデータの一部をキャッシュしておくことにより、そのキャッシュされたデータに関する処理を速やかに行うことができる。共有記憶装置内のデータを更新や削除する場合、キャッシュデータを改めて作成する必要を生じる。キャッシュデータを作り直す処理のため、応答時間が増大する。
【０００９】
本発明は、上記問題点に鑑みてなされたもので、その目的は、共有記憶装置の応答性能低下を防止しつつ、複数のコンピュータが共有記憶装置内のデータを共有できるようにしたコンピュータシステム、リモートコピー方法及び第１コンピュータを提供することにある。本発明の他の目的は、共有記憶装置をマウントする回数を低減して共有記憶装置の応答性能を改善できるようにしたコンピュータシステム、リモートコピー方法及び第１コンピュータを提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明の第１観点に従うコンピュータシステムは、第１コンピュータと第２コンピュータ及び共有記憶装置が通信ネットワークを介して通信可能に接続されるコンピュータシステムであって、共有記憶装置は、第１コンピュータ及び第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、第１コンピュータは、第１記憶装置と、この第１記憶装置へのデータ入出力及び共有記憶装置の使用可否をそれぞれ制御する第１制御部とを備え、第２コンピュータは、第２記憶装置と、この第２記憶装置へのデータ入出力を制御する第２制御部とを備え、第１制御部は、第１記憶装置から論理ボリュームを介して第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領した場合には、リモートコピー要求により指定されたリモートコピー対象データを第１記憶装置から論理ボリュームに転送して記憶させ、かつ、リモートコピー対象データが論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を第１記憶装置に記憶させるようになっており、第２制御部は、入力されるアクセス要求に従って第１制御部に論理ボリュームの使用可否を問合せ、かつ、第１記憶装置から所在管理情報を取得して、論理ボリュームに記憶されているリモートコピー対象データを論理ボリュームから第２記憶装置に転送させるようになっている。
【００１１】
第２観点では、第１観点において、第２コンピュータに入力されるアクセス要求は、論理ボリュームからのリード要求、論理ボリュームへのライト要求、論理ボリュームのチェック要求、論理ブロック内のデータを削除する要求のうち、少なくともいずれか一つとなっている。
【００１２】
第３観点では、第１または第２観点のいずれかにおいて、第２コンピュータに入力されるアクセス要求が、リモートコピーの禁止を示す場合、第２制御部は、リモートコピー対象データを論理ボリュームから第２記憶装置に転送しない。
【００１３】
第４観点では、第１〜３観点のいずれかにおいて、第２制御部は、第１制御部が論理ボリュームの使用を許可した場合に、第１記憶装置にアクセスして第１記憶装置に所在管理情報が記憶されているか否かを判断し、第１記憶装置に所在管理情報が記憶されている場合には、所在管理情報によって特定されるリモートコピー対象データの全てを、論理ボリュームから第２記憶装置に転送させる。
【００１４】
第５観点では、第１〜４観点のいずれかにおいて、第１記憶装置は、第１メモリ装置と、この第１メモリ装置よりも記憶容量の大きい第１補助記憶装置とを含んで構成されており、所在管理情報は第１メモリ装置に記憶される。
【００１５】
第６観点では、第１〜４観点のいずれかにおいて、第１制御部は、論理ボリュームから読み出したデータを一時的に記憶するためのキャッシュ機能を備えており、このキャッシュ機能は、論理ボリュームから読み出されるデータの種類に応じて、データの一時的な記憶先を制御する。
【００１６】
第７観点では、第６観点において、第１制御部は、論理ボリュームに記憶されているデータを変更する場合には、この変更されるデータに対応するキャッシュデータを破棄し、かつ、論理ボリュームに記憶されているデータを読み出す場合には、この読み出されるデータのキャッシュデータを記憶する。
【００１７】
第８観点では、第７観点において、第１制御部は、キャッシュデータを生成する場合に、論理ボリュームから読み出されるデータの論理ボリューム内の位置とデータをマウントする場合のマウントポイントとを含む検証用情報を作成して保持する。
【００１８】
第９観点では、第６〜８観点のいずれかにおいて、第１記憶装置は、記憶容量が相対的に少ない第１メモリ装置と、この第１メモリ装置よりも記憶容量が相対的に大きい第１補助記憶装置とを含んで構成されており、第１制御部は、論理ボリュームから読み出されるデータが相対的にデータサイズの大きいデータの場合は第１メモリ装置に一時的に記憶させ、論理ボリュームから読み出されるデータが相対的にデータサイズの小さいデータの場合は第１補助記憶装置に記憶させる。
【００１９】
第１０観点では、第６観点において、第１記憶装置は、記憶容量が相対的に少ない第１メモリ装置と、この第１メモリ装置よりも記憶容量が相対的に大きい第１補助記憶装置とを含んで構成されており、第１制御部は、（１）論理ボリュームから読み出されるデータが相対的にデータサイズの大きいデータの場合は第１メモリ装置に一時的に記憶させ、論理ボリュームから読み出されるデータが相対的にデータサイズの小さいデータの場合は第１補助記憶装置に記憶させ、さらに、（２）キャッシュデータを生成する場合に、論理ボリュームから読み出されるデータの論理ボリューム内の位置とデータをマウントする場合のマウントポイントとを含む検証用情報を作成して保持し、さらに、（３）論理ボリュームに記憶されているデータを変更する場合には、この変更されるデータに対応するキャッシュデータのみを破棄して、検証用情報はそのまま保持し、さらに、（４）論理ボリュームに記憶されているデータを読み出す場合には、この読み出されるデータのキャッシュデータを記憶する。
【００２０】
第１１観点では、第１〜１０観点のいずれかにおいて、第１制御部は、論理ボリュームが使用中に発行される別の使用要求を待ち行列に格納し、論理ボリュームが使用可能になった場合に、待ち行列に格納された別の使用要求の再起動を指示する。
【００２１】
第１２観点では、共有記憶装置は、ｉＳＣＳＩ（Internet Small Computer System Interface）に基づいて動作する記憶装置として構成される。
【００２２】
第１３観点に従うリモートコピー方法は、第１コンピュータから共有記憶装置を介して第２コンピュータにリモートコピーを行うためのリモートコピー方法であって、共有記憶装置は、第１コンピュータ及び第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、第１コンピュータは、第１コンピュータの有する第１記憶装置から論理ボリュームを介して第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領し、第１コンピュータは、リモートコピー要求により指定されたリモートコピー対象データを第１記憶装置から論理ボリュームに転送して記憶させ、第１コンピュータは、リモートコピー対象データが論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を第１コンピュータ内に保持し、第２コンピュータは、論理ボリュームに関するアクセス要求を受領し、第２コンピュータは、論理ボリュームの使用可否を第１コンピュータに問合せ、第１コンピュータは、第２コンピュータからの問合せに回答し、第２コンピュータは、第１コンピュータから論理ボリュームの使用許可を得た場合に、所在管理情報を第１コンピュータから取得し、第２コンピュータは、論理ボリューム内に記憶されているリモートコピー対象データの全部または一部を、論理ボリュームから第２コンピュータの有する第２記憶装置に転送させる。
【００２３】
第１４観点に従う第１コンピュータは、第２コンピュータ及び共有記憶装置に通信ネットワークを介してそれぞれ接続される第１コンピュータであって、共有記憶装置は、第１コンピュータ及び第２コンピュータにより共有される少なくとも一つ以上の論理ボリュームを備えており、第１コンピュータは、第１記憶装置と、この第１記憶装置へのデータ入出力及び共有記憶装置の使用可否をそれぞれ制御する第１制御部とを備えており、第１制御部は、第１記憶装置から論理ボリュームを介して第２コンピュータの有する第２記憶装置にデータをリモートコピーさせるためのリモートコピー要求を受領した場合には、リモートコピー要求により指定されたリモートコピー対象データを第１記憶装置から論理ボリュームに転送して記憶させ、かつ、リモートコピー対象データが論理ボリューム内の所定場所に記憶されていることを示す所在管理情報を第１記憶装置に記憶させるようになっており、第２コンピュータが論理ボリュームへの使用可否を問い合わせてきた場合、所在管理情報に基づいて、論理ボリューム内のリモートコピー対象データを、論理ボリュームから第２記憶装置に転送させる。
【００２４】
本発明の構成要件の少なくとも一部は、コンピュータプログラムとして生成することができる。このコンピュータプログラムは、例えば、メモリや光ディスクのような記録媒体に固定したり、あるいは、通信ネットワークのような通信媒体を用いることにより、流通させることができる。
【発明を実施するための最良の形態】
【００２５】
以下、添付図面に基づいて本発明の実施形態を説明する。図１は、本実施形態の全体を示す説明図である。図１は、本発明の理解及び実施に必要な程度で本発明の概要を示しており、本発明の範囲は図１に示す構成に限定されない。本実施形態の詳細は、後述の実施例で明らかにされる。
【００２６】
本実施形態に係るコンピュータプログラムは、複数のコンピュータ１，２と、少なくとも一つの共有記憶装置３を備えている。各コンピュータ１，２及び共有記憶装置３は、例えば、それぞれ別々の場所に配置されており、通信ネットワークＣＮを介して相互通信可能に接続されている。通信ネットワークＣＮは、例えば、インターネットのようなＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を利用できる通信ネットワークとして構成される。なお、各コンピュータ１，２及び共有記憶装置３の配置は、図示のものに限定されない。例えば、コンピュータ１と同一の場所に共有記憶装置３を設置したり、コンピュータ２と同一の場所に共有記憶装置３を設置する等のように、種々の配置が可能である。
【００２７】
先に共有記憶装置３を説明する。共有記憶装置３は、例えば、ｉＳＣＳＩに基づく記憶装置として構成される。但し、プロトコルの種類はｉＳＣＳＩに限定されない。インターネットのような広域通信ネットワークに記憶装置を直接接続することのできるプロトコルであればよい。
【００２８】
共有記憶装置３は、例えば、ハードディスクドライブや光ディスクドライブあるいはフラッシュメモリデバイスのような、一つまたは複数の記憶ドライブを備えている。なお、本実施形態では、記憶ドライブの種類を特に問わない。各記憶ドライブの物理的記憶領域を利用して、論理的記憶装置である論理ボリューム３Ａが少なくとも一つ以上設けられている。複数の記憶ドライブの物理的記憶領域をパリティグループとして仮想化し、そのパリティグループ内に一つまたは複数の論理ボリューム３Ａを設けることができる。あるいは、一つの記憶ドライブの物理的記憶領域に一つまたは複数の論理ボリューム３Ａを設けることもできる。論理ボリューム３Ａには、各コンピュータ１，２によって共通に使用されるファイルＤ１等が記憶される。図中、論理ボリュームをＬＵと略記する。
【００２９】
第１コンピュータ１を説明する。第１コンピュータ１は、例えば、第１制御部１Ａと、第１記憶装置１Ｂとを備えている。第１制御部１Ａは、第１コンピュータ１の動作を制御するものである。第１制御部１Ａは、例えば、使用可否の管理Ｆ１と、リモートコピーの管理Ｆ２及びキャッシュデータの管理Ｆ３のような各種制御機能を備える。
【００３０】
使用可否の管理Ｆ１は、共有記憶装置３内の論理ボリューム３Ａの排他権を管理するものである。排他権とは、論理ボリューム３Ａを独占的に使用できる権限を意味する。排他権を有するコンピュータのみが、論理ボリューム３Ａをマウントできる。本実施形態では、第１コンピュータ１内の使用可否管理Ｆ１が、コンピュータシステムの排他権を一元的に管理している。
【００３１】
リモートコピーの管理Ｆ２は、第１コンピュータ１から共有記憶装置３を経由して第２コンピュータ２にデータをリモートコピーする場合の処理を制御する。リモートコピー対象のデータ（以下、リモートコピー対象ファイルとも呼ぶ）Ｄ１は、リモートコピー管理Ｆ２によって、共有記憶装置３の論理ボリューム３Ａ内に書き込まれる。
【００３２】
論理ボリューム３Ａに蓄積されたリモートコピー対象ファイルＤ１は、第２コンピュータ２が論理ボリューム３Ａにアクセスした場合に、第２コンピュータ２内の第２記憶装置２Ｂに転送され、第２記憶装置２Ｂに記憶される。つまり、第１コンピュータ１から論理ボリューム３Ａへのリモートコピー対象ファイルＤ１の転送と、論理ボリューム３Ａから第２コンピュータ２へのリモートコピー対象ファイルＤ１の転送とは、非同期で行われるようになっている。
【００３３】
キャッシュデータの管理Ｆ３は、論理ボリューム３Ａに記憶されたデータの少なくとも一部をキャッシュデータとして第１記憶装置１Ｂに保存する処理を制御する。第１記憶装置１Ｂは、例えば、第１メモリ装置１Ｂ１と、第１補助記憶装置１Ｂ２とを備える。
【００３４】
第１メモリ装置１Ｂ１は、比較的記憶容量の少ない記憶装置である。第１補助記憶装置１Ｂ２は、比較的記憶容量の大きい記憶装置である。第１メモリ装置１Ｂ１は、例えば、半導体メモリ装置として構成される。第１補助記憶装置１Ｂ２は、例えば、ハードディスク装置やフラッシュメモリデバイスとして構成される。但し、記憶装置の種類は特に問わない。
【００３５】
キャッシュデータ管理Ｆ３は、キャッシュ対象のデータの種類に応じて、その格納先を制御する。比較的データサイズの大きいファイルデータは第１補助記憶装置１Ｂ２に、比較的データサイズの小さいＤＢ（Data Base）データは、第１メモリ装置１Ｂ１に、それぞれ記憶される。
【００３６】
第２コンピュータ２を説明する。第２コンピュータ２は、例えば、第２制御部２Ａと、第２記憶装置２Ｂとを備える。第２制御部２Ａは、第２コンピュータ２の動作を制御するもので、リモートコピー管理Ｆ３を実行する。第２記憶装置２Ｂは、ファイルやＤＢ用のデータを記憶する装置である。第２コンピュータ２は、ホストコンピュータからのアクセス要求に基づいて論理ボリューム３Ａにアクセスし、要求された処理を実行する。
【００３７】
本実施形態による動作の流れを説明する。第１コンピュータ１は、例えば、図外のホストコンピュータ等からリモートコピー要求を受領する（Ｓ１）。リモートコピー要求には、リモートコピー対象ファイルＤ１を特定するための情報（例えば、絶対パス）と、この特定されたファイルＤ１のコピー先等に関する情報とが含まれている。
【００３８】
リモートコピー管理Ｆ２は、論理ボリューム３Ａの使用について使用可否管理Ｆ１に問い合わせる。使用可否管理Ｆ１が論理ボリューム３Ａの使用を許可すると、第１コンピュータ１は、論理ボリューム３Ａを第１コンピュータ１にマウントする。
【００３９】
リモートコピー管理Ｆ２は、リモートコピー対象ファイルＤ１を論理ボリューム３Ａに書き込む（Ｓ２）。リモートコピー管理Ｆ２は、論理ボリューム３Ａに書き込まれたファイルＤ１に関する所在管理情報Ｄ２を、第１メモリ装置１Ｂ１に保存する（Ｓ３）。所在管理情報Ｄ２は、例えば、リモートコピー対象ファイルＤ１のファイル名及び格納場所に関する情報を含む。
【００４０】
ファイルＤ１が論理ボリューム３Ａに書き込まれると、第１コンピュータ１は、論理ボリューム３Ａをアンマウントする。使用可否管理Ｆ１は、論理ボリューム３Ａが第１コンピュータ１からアンマウントされたことを確認する。
【００４１】
第２コンピュータ２がホストコンピュータからアクセス要求を受領すると（Ｓ４）、第２制御部２Ａは、論理ボリューム３Ａの使用について、第１制御部１Ａ内の使用可否管理Ｆ１に問い合わせる（Ｓ５）。論理ボリューム３Ａが第１コンピュータ１にマウントされていない場合、使用可否管理Ｆ１は、第２コンピュータ２による論理ボリューム３Ａの使用を許可する（Ｓ６）。
【００４２】
論理ボリューム３Ａに関する排他権を取得した第２コンピュータ２は、論理ボリューム３Ａをマウントする。第２制御部２Ａは、論理ボリューム３Ａが第２コンピュータ２にマウントされた後で、第１メモリ装置１Ｂ１に記憶されている所在管理情報Ｄ２を取得する（Ｓ７）。
【００４３】
例えば、第１コンピュータ１は、第２コンピュータ２にマウントされた論理ボリューム３Ａに関する所在管理情報Ｄ２が第１メモリ装置１Ｂ１に記憶されているか否かを判断し、記憶されている場合は、その所在管理情報Ｄ２を第２コンピュータ２に送信する。
【００４４】
第２コンピュータ２のリモートコピー管理Ｆ４は、所在管理情報Ｄ２に基づいて、論理ボリューム３Ａ内からリモートコピー対象ファイルＤ１を読出し、第２記憶装置２Ｂに記憶させる（Ｓ８）。これにより、第１コンピュータ１から第２コンピュータ２へのリモートコピーが完了する。
【００４５】
次に、キャッシュデータの管理について説明する。キャッシュデータ管理Ｆ３は、論理ボリューム３Ａからデータを読み出すと、そのデータの種類に応じて、第１メモリ装置１Ｂ１または第１補助記憶装置１Ｂ２のいずれか一方にキャッシュデータを保存する。ファイルデータの場合は、第１補助記憶装置１Ｂ２にキャッシュデータＤ４が保存される。ＤＢ用データのようなサイズの小さいデータの場合は、第１メモリ装置１Ｂ１にキャッシュデータＤ３が保存される。
【００４６】
後述の実施例で明らかとなるように、キャッシュデータ管理Ｆ３は、キャッシュデータＤ３，Ｄ４を作成する場合に、マウント検証用のデータも同時に作成する。マウント検証用のデータは、論理ボリューム３Ａをマウントする場合に使用される。また、マウント検証用データは、テストコマンドの処理にも用いることができる。
【００４７】
キャッシュデータ管理Ｆ３は、論理ボリューム３Ａからデータを読み出す場合に、そのデータに関するキャッシュデータが作成されていなければ、そのデータに関するキャッシュデータを作成する。
【００４８】
キャッシュデータ管理Ｆ３は、論理ボリューム３Ａ内のデータを変更する場合、その変更対象データに対応するキャッシュデータを破棄する。データの変更としては、例えば、更新、追加書き、削除、ファイル名変更等を挙げることができる。キャッシュデータを破棄するとは、そのキャッシュデータを使用しないことを意味する。
【００４９】
このように構成される本実施形態では、第１コンピュータ１内の使用可否管理Ｆ１が、論理ボリューム３Ａの使用を一元的に管理する。従って、複数のコンピュータ１，２が遠隔地の共有記憶装置３を共有することができる。
【００５０】
本実施形態では、第１コンピュータ１は、リモートコピー対象ファイルＤ１を共有記憶装置３内の論理ボリューム３Ａに書き込んだ後で、所在管理情報Ｄ２を第１メモリ装置１Ｂ１に保存する。第２コンピュータ２が論理ボリューム３Ａにアクセスする場合に、第２コンピュータ２は、受動的にまたは能動的に所在管理情報Ｄ２を取得する。第２コンピュータ２は、所在管理情報Ｄ２に基づいて、論理ボリューム３Ａに記憶されたリモートコピー対象ファイルＤ１を読み出し、第２記憶装置２Ｂに記憶させる。
【００５１】
つまり、本実施形態では、リモートコピーの度に、論理ボリューム３Ａから第２コンピュータ２にリモートコピー対象ファイルを転送させるものではない。本実施形態では、リモートコピー対象ファイルＤ１を論理ボリューム３Ａに蓄積しておき、第２コンピュータ２が論理ボリューム３Ａを使用する機会を利用して、論理ボリューム３Ａに蓄積されたリモートコピー対象ファイルを第２記憶装置２Ｂに転送する。
【００５２】
第２コンピュータ２は、アクセス要求（Ｓ４）に基づいて論理ボリューム３Ａにデータを出し入れするほかに、論理ボリューム３Ａに蓄積されているリモートコピー対象ファイルＤ１を読出して第２記憶装置２Ｂに格納する。
【００５３】
このように本実施形態では、第２コンピュータ２は、リモートコピー対象ファイルＤ１を読み出すだけのために論理ボリューム３Ａをマウントすることがなく、別のアクセス要求を処理するついでにリモートコピー対象ファイルＤ１を読み出す。従って、第２コンピュータ２が論理ボリューム３Ａをマウントする回数を低減することができ、共有記憶装置３の応答性能を高めることができる。
【００５４】
本実施形態では、データサイズの大きいファイルデータは第１補助記憶装置１Ｂ２に、データサイズの小さいデータは第１メモリ装置１Ｂ１に、それぞれキャッシュデータとして格納させる。従って、サイズの大きいファイルデータによって第１メモリ装置１Ｂ１が満杯状態になるということがなく、使い勝手が向上する。
【００５５】
本実施形態では、論理ボリューム３Ａからデータを読み出す場合にキャッシュデータＤ３，Ｄ４を生成し、論理ボリューム３Ａ内のデータを変更する場合にキャッシュデータＤ３，Ｄ４を破棄する。つまり、論理ボリューム３Ａ内のデータを更新したり修正等する場合はキャッシュデータを作成せず、後で、その更新や修正等されたデータを読み出す場合に、キャッシュデータを作成する。そもそも、同一のデータを複数回読み込む場合に備えて、その読込み時間を短縮するためにキャッシュデータが使用される。本実施形態では、実際にデータを読み込む際にキャッシュデータを作成し、連続した読込みに備える。従って、キャッシュデータを無駄なく作成することができる。以下、本実施形態を詳細に説明する。
【実施例１】
【００５６】
図２は、本実施例に係るコンピュータシステムの全体構成を示す説明図である。図１との対応関係を先に説明する。第１サーバ１０は図１中の第１コンピュータ１に、第２サーバ２０は図１中の第２コンピュータ２に、ネットワークストレージ装置３０は図１中の共有記憶装置３に、通信ネットワークＣＮ１０及びＣＮ１１は図１中の通信ネットワークＣＮに、論理ボリューム３３は、図１中の論理ボリューム３Ａに、それぞれ対応する。図３中の接続制御部１６は図１中の使用可否機能Ｆ１を兼ね、図３中のリモートコピー管理部１２は図１中のリモートコピー管理Ｆ１に対応し、図３中のキャッシュデータ管理部１３は図１中のキャッシュデータ管理Ｆ３に対応する。図３中のリモートコピー管理部２２は図１中のリモートコピー管理Ｆ４に、図３中のＤＡＳ１５は図１中の第１補助記憶装置１Ｂ２に、図３中の共有メモリ１４は図１中の第１メモリ装置１Ｂ１に、図３中のＤＡＳ２５は図１中の第２記憶装置２Ｂに、それぞれ対応する。
【００５７】
コンピュータシステムは、例えば、少なくとも一つの第１サーバ１０と、少なくとも一つの第２サーバ２０と、少なくとも一つのネットワークストレージ装置３０と、少なくとも一つのホストコンピュータ（以下、ホスト）４０とを備えている。
【００５８】
ホスト４０と各サーバ１０，２０は、通信ネットワークＣＮ１０を介して相互通信可能に接続されている。各サーバ１０，２０とネットワークストレージ装置３０は、通信ネットワークＣＮ１１を介して相互通信可能に接続されている。図２では、別々の通信ネットワークであるかのように示しているが、ＣＮ１０，ＣＮ１１は同一の通信ネットワークであってもよい。
【００５９】
ネットワークストレージ装置３０は、ｉＳＣＳＩに対応する記憶装置である。ネットワークストレージ装置３０は、例えば、ディスクコントローラ３１と、ｉＳＣＳＩディスク３２とを備える。ｉＳＣＳＩディスク３２は、複数設けることができるが、便宜上一つだけ示している。ｉＳＣＳＩディスク３２には、一つまたは複数の論理ボリューム３３が設けられる。
【００６０】
第１サーバ１０は、例えば、演算処理装置１０Ａ（ＣＰＵ）と、メモリ１０Ｂと、補助記憶装置１０Ｃと、各種インターフェース回路１０Ｄとを備えている。メモリ１０Ｂには、後述の共有メモリ１４が含まれる。補助記憶装置１０Ｃには、後述のＤＡＳ１５が含まれる。第２サーバ２０も第１サーバ１０と同様に、演算処理装置２０Ａと、メモリ２０Ｂと、補助記憶装置２０Ｃと、各種インターフェース回路２０Ｄとを備える。補助記憶装置２０Ｃには、後述のＤＡＳ２５が含まれる。ＤＡＳとは、Direct Attached Storageの略である。なお、サーバ１０，２０の有する記憶装置は、ＤＡＳに限られない。
【００６１】
ホスト４０は、例えば、ウェブアプリケーション４１やデータベース管理システム４２（ＤＢＭＳ４２）のような各種アプリケーションプログラムを備えている。これらアプリケーションプログラム４１，４２は、第１サーバ１０または第２サーバ２０にアクセスして、所望のデータを入出力する。
【００６２】
図３は、コンピュータシステムの機能構成を模式的に示すブロック図である。第１サーバ１０は、例えば、コマンド処理部１１と、リモートコピー管理部１２と、キャッシュデータ管理部１３と、共有メモリ１４と、ＤＡＳ１５と、接続制御部１６と、管理情報Ｔ１０とを備える。サーバ制御部１７は、例えば、リモートコピー管理部１２と、キャッシュデータ管理部１３と、共有メモリ１４と、ＤＡＳ１５と、接続制御部１６と、管理情報Ｔ１０とを含んで構成される。
【００６３】
コマンド処理部１１は、例えば、ライトコマンドやリードコマンド等の各種コマンドを受け付けて処理し、その処理結果をホスト４０に送信する。リモートコピー管理部１２は、リモートコピーを制御する。キャッシュデータ管理部１３は、キャッシュデータの生成や破棄等を管理する。
【００６４】
共有メモリ１４は、第１サーバ１０内の複数のプロセスにより共有される。なお、第２サーバ２０が共有メモリ１４に直接アクセスできる構成としてもよい。共有メモリ１４には、ＤＢＭＳ４２の使用するキャッシュデータＣＤ２と、リモートコピー情報Ｔ２０とが記憶される。リモートコピー情報Ｔ２０は、「所在管理情報」に該当する。リモートコピー情報Ｔ２０の詳細は後述する。
【００６５】
ＤＡＳ１５は、例えば、ハードディスクドライブやフラッシュメモリデバイス等として構成される。ＤＡＳ１５には、例えば、ウェブアプリケーション４１により使用されるキャッシュデータＣＤ１等が記憶される。
【００６６】
接続制御部１６は、ｉＳＣＳＩディスク３２との接続を制御する。接続制御部１６は、管理情報Ｔ１０を用いることにより、ｉＳＣＳＩディスク３２をマウントするために必要な排他権を一元的に管理する。管理情報Ｔ１０については後述する。
【００６７】
第２サーバ２０は、第１サーバ１０と同様に、例えば、コマンド処理部２１と、リモートコピー管理部２２と、ＤＡＳ２５と、接続制御部２６とを備える。本実施例では、第１サーバ１０がｉＳＣＳＩディスク３２の使用可否を管理しており、さらに、第２サーバ２０は、共有メモリ１４から取得したリモートコピー情報Ｔ２０に基づいて、リモートコピー対象ファイルを読み出す。このような点で第１サーバ１０と第２サーバ２０とは、相違する。
【００６８】
図４は、管理情報Ｔ１０の一例を示す説明図である。管理情報Ｔ１０は、例えば、デバイス割当て情報Ｔ１１と、デバイス使用状態管理情報Ｔ１２とを備える。デバイス割当て情報Ｔ１１は、どのホスト４０のどのアプリケーションプログラムに、どのデバイスが割り当てられているかを管理する情報である。デバイスとは、簡単に言えば、ＤＡＳ１５及びｉＳＣＳＩディスク３２を意味する。つまり、デバイス割当て管理情報Ｔ１１は、どのアプリケーションプログラムがＤＡＳ１５とｉＳＣＳＩディスク３２のいずれを使用するのか等を管理する。
【００６９】
デバイス割当て管理情報Ｔ１１は、例えば、ホスト名Ｃ１１０と、アプリケーションＩＤ＿Ｃ１１１と、割当てデバイスＩＤ＿Ｃ１１２と、アクセス情報Ｃ１１３を対応付けて管理する。ホスト名Ｃ１１０は、ホスト４０を識別するための情報である。ホスト４０を識別可能な情報であればよく、例えば、ＩＰアドレス等を用いることもできる。
【００７０】
アプリケーションＩＤ＿Ｃ１１１は、アプリケーションプログラム４１，４２を識別するための情報である。割当てデバイスＩＤ＿Ｃ１１２は、アプリケーションプログラムに割り当てられているデバイス（ＤＡＳまたはｉＳＣＳＩディスク）を識別するための情報である。アクセス情報Ｃ１１３は、割り当てられているデバイスにアクセスするために必要な情報であり、例えば、ｉＳＣＳＩ名、ＩＰアドレス、論理ボリューム番号等を含むことができる。
【００７１】
デバイス使用状態管理情報Ｔ１２は、ｉＳＣＳＩディスク３２の使用状態を管理するための情報である。デバイス使用状態管理情報Ｔ１２は、例えば、デバイスＩＤ＿Ｃ１２０と、使用状態Ｃ１２１と、マウント先Ｃ１２２と、ホスト名Ｃ１２３とを対応付けて管理する。
【００７２】
デバイスＩＤ＿Ｃ１２０は、ｉＳＣＳＩディスク３２を識別するための情報である。使用状態Ｃ１２１は、ｉＳＣＳＩディスク３２が使用中であるか否かを示す情報である。マウント先Ｃ１２２は、ｉＳＣＳＩディスク３２がマウントされているサーバを特定する情報である。ホスト名Ｃ１２３は、ｉＳＣＳＩディスク３２を使用しているホスト４０を特定する情報である。
【００７３】
なお、デバイス割当て管理情報Ｔ１１及びデバイス使用状態管理情報Ｔ１２の構成は、上記の例に限られない。上述のカラム以外の項目を管理してもよい。少なくとも、アプリケーションプログラムにどのデバイスが割り当てられているのかと、ｉＳＣＳＩディスク３２がどのサーバにマウントされているのかとを、管理できればよい。
【００７４】
図５は、第１サーバ１０によって実行されるリード処理の概要を示すフローチャートである。以下の説明では、主に、ｉＳＣＳＩディスク３２内の論理ボリューム３３に記憶されているデータを使用する場合を例に挙げて説明する。
【００７５】
なお、以下に示す各フローチャートは、本発明の理解及び実施に必要な程度で各処理の概要をそれぞれ示しており、実際のコンピュータプログラムとは相違する場合がある。また、いわゆる当業者であれば、図示されたステップの変更や削除、新たなステップの追加等を行うことができるであろう。
【００７６】
ホスト４０は、アプリケーションプログラムからの指示に基づいて、第１サーバ１０にリード要求を発行する（Ｓ１０）。第１サーバ１０は、リード要求を受領すると、キャッシュデータの有無を確認する（Ｓ１１）。第１サーバ１０は、要求されたデータのキャッシュデータが存在するか否かを判定する（Ｓ１２）。キャッシュヒットの場合、即ち、ホスト４０から要求されたデータが共有メモリ１４またはＤＡＳ１５のいずれかに記憶されている場合（S12:YES）、第１サーバ１０は、キャッシュデータをホスト４０に送信する（Ｓ２４）。ホスト４０は、第１サーバ１０から送信されたキャッシュデータを受信する（Ｓ２５）。
【００７７】
ホスト４０の要求するデータが第１サーバ１０内に存在しない場合、即ち、キャッシュミスの場合（S12:NO）、第１サーバ１０は、ｉＳＣＳＩディスク３２の論理ボリューム３３からデータを読み出す必要がある。そこで、第１サーバ１０は、要求されたデータを記憶している論理ボリューム３３の使用状態を確認し（Ｓ１３）、その論理ボリューム３３を使用可能か否かを判断する（Ｓ１４）。
【００７８】
その論理ボリューム３３がいずれのサーバにもマウントされていない場合、その論理ボリューム３３を使用可能である（S14:YES）。その論理ボリューム３３が使用中の場合、第１サーバ１０は、その論理ボリューム３３がアンマウントされて使用可能になるまで待機する（S14:NO）。
【００７９】
第１サーバ１０は、その論理ボリューム３３を使用可能であると判断した場合（S14:YES）、その論理ボリューム３３の排他権を取得し、その論理ボリューム３３をマウントする（Ｓ１５）。ディスクコントローラ３１は、マウント要求に従って、ｉＳＣＳＩディスク３２を第１サーバ１０に接続する（Ｓ１６）。
【００８０】
第１サーバ１０は、ホスト４０の要求するデータを論理ボリューム３３から読出し（Ｓ１７，Ｓ１８）、キャッシュデータを保存する（Ｓ１９）。ファイルデータの場合は、ＤＡＳ１５に保存され、ＤＢ（データベース）用データの場合は、共有メモリ１４に保存される。
【００８１】
さらに、第１サーバ１０は、マウント検証用情報としての検証用ディレクトリツリーを作成し、保存する（Ｓ２０）。第１サーバ１０は、ホスト４０の要求する全データを論理ボリューム３３から読み出すまで（S21:NO）、Ｓ１７〜Ｓ２０を繰り返す。検証用ディレクトリツリーの一例については、図２５と共に後述する。なお、検証用ディレクトリツリーを作成しない構成も、本発明の範囲に含まれる。
【００８２】
ホスト４０の要求する全データを論理ボリューム３３から読み出した場合（S21:YES）、第１サーバ１０は、論理ボリューム３３をアンマウントする（Ｓ２２，Ｓ２３）。第１サーバ１０は、論理ボリューム３３から読み出されたデータをホスト４０に送信し（Ｓ２４）、ホスト４０は、そのデータを受信する（Ｓ２５）。
【００８３】
図６は、図５中にＳ１９で示すキャッシュデータ保存処理のフローチャートである。第１サーバ１０は、論理ボリューム３３から読み出されたデータがファイルデータであるかＤＢ用データであるかを判定する（Ｓ３０）。ファイルデータの場合、第１サーバ１０は、ＤＡＳ１５にファイルデータを保存する（Ｓ３１）。ＤＢ用データの場合、第１サーバ１０は、共有メモリ１４にＤＢ用データを保存する（Ｓ３２）。
【００８４】
図７は、第１サーバ１０により実行されるライト処理のフローチャートである。ホスト４０は、アプリケーションプログラム４１，４２からの指示に基づいて、ライト要求を発行する（Ｓ４０）。
【００８５】
第１サーバ１０は、ライト要求を受領すると、そのライト要求に対応するキャッシュデータが存在するか否かを判定する（Ｓ４１）。キャッシュヒットの場合（S42:YES）、第１サーバ１０は、ライト要求に対応するキャッシュデータを破棄する（Ｓ４３）。
【００８６】
ライト要求によって、論理ボリューム３３内のデータが変更（更新、修正、追加、削除等）されるため、そのキャッシュデータの内容は古くなり、ライト後は使用できないためである。
【００８７】
第１サーバ１０は、論理ボリューム３３を使用可能か否かを確認し（Ｓ４４）、ｉＳＣＳＩディスクを使用可能であると判断した場合（S45:YES）、論理ボリューム３３をマウントする（Ｓ４６，Ｓ４７）。
【００８８】
なお、第１サーバ１０が論理ボリューム３３をマウントする前にキャッシュデータを破棄する例を述べたが、これに代えて、第１サーバ１０が論理ボリューム３３をマウントした後で、キャッシュデータを破棄する構成でもよい。
【００８９】
第１サーバ１０は、ホスト４０から受信したライトデータを、論理ボリューム３３に書込んで記憶させる（Ｓ４８，Ｓ４９）。書込みが完了すると（S50:YES）、第１サーバ１０は、論理ボリューム３３をアンマウントする（Ｓ５１，Ｓ５２）。
【００９０】
続いて、第１サーバ１０は、Ｓ４８で書き込んだデータがリモートコピーの対象であるか否かを判定する（Ｓ５３）。例えば、ユーザは、所定ファイルの内容が更新された場合にリモートコピーを起動させるよう、予め指示しておくことができる。
【００９１】
論理ボリューム３３に書き込まれたデータがリモートコピー対象の場合（S53:YES）、第１サーバ１０は、リモートコピー情報を作成し、そのリモートコピー情報を共有メモリ１４の所定の場所に記憶させる（Ｓ５４）。論理ボリューム３３に書き込まれたデータがリモートコピー対象ではない場合（S53:NO）、第１サーバ１０は、Ｓ５４をスキップし、ホスト４０にライト要求の処理が完了した旨を報告する（Ｓ５５）。ホスト４０は、完了報告を受信する（Ｓ５６）。
【００９２】
第１サーバ１０がライトデータを論理ボリューム３３に書き込んだ後で、ホスト４０に処理完了を報告する場合を述べたが、これに代えて、ホスト４０からライトデータを受信した時点で処理完了を報告する構成でもよい。
【００９３】
図８は、第２サーバ２０により実行されるリード処理のフローチャートである。第２サーバ２０は、ホスト４０からリード要求やライト要求（図１０参照）を受け付けることができる。
【００９４】
ホスト４０がリード要求を発行すると（Ｓ６０）、第２サーバ２０は、第２サーバ２０内のキャッシュデータを確認し（Ｓ６１）、リード要求に対応するキャッシュデータが存在するか否かを判定する（Ｓ６２）。
【００９５】
キャッシュヒットの場合（S62:YES）、第２サーバ２０は、キャッシュデータをホスト４０に送信する（Ｓ７５）。キャッシュミスの場合（S62:NO）、第２サーバ２０は、第１サーバ１０に論理ボリューム３３の使用状態を問い合わせ（Ｓ６３）、ｉＳＣＳＩ３２を使用可能か否かを判断する（Ｓ６４）。つまり、第２サーバ２０は、論理ボリューム３３の排他権（Ｌｏｃｋ）を取得できたか否かを判定する（Ｓ６４）。
【００９６】
論理ボリューム３３の使用が許可されると（S64:YES）、第２サーバ２０は、論理ボリューム３３をマウントする（Ｓ６５，Ｓ６６）。第２サーバ２０は、ホストから要求されたデータを、論理ボリューム３３から読み出す（Ｓ６７，Ｓ６８）。第２サーバ２０は、論理ボリューム３３から読み出したデータを、第２サーバ２０内のメモリまたはＤＡＳ２５に保存することができる（Ｓ６９）。Ｓ６９の詳細は、図６に示すフローチャートと同様であるため省略する。さらに、第２サーバ２０は、検証用ディレクトリツリーを作成する（Ｓ７０）。図５でも述べたように、検証用ディレクトリツリーの一例については、後述する。
【００９７】
第２サーバ２０は、ホスト４０から要求された全データの読出しが完了したか否かを判定する（Ｓ７１）。要求された全データの読出しが完了していない場合（S71:NO）、Ｓ６７に戻る。要求された全データの読出しが完了した場合（S71:YES）、第２サーバ２０は、リモートコピー処理を実行する（Ｓ７２）。リモートコピー処理の一例については、図９と共に後述する。
【００９８】
第２サーバ２０は、リード処理（Ｓ６７〜Ｓ７１）及びリモートコピー処理（Ｓ７２）が完了した場合に、論理ボリューム３３をアンマウントする（Ｓ７３，Ｓ７４）。第２サーバ２０は、論理ボリューム３３をアンマウントした旨を第１サーバ１０に報告する（Ｓ７３）。本実施例では、第１サーバ１０が、ｉＳＣＳＩディスク３２の使用可否を一元管理しているためである。
【００９９】
第２サーバ２０は、論理ボリューム３３から読み出したデータをホスト４０に送信する（Ｓ７５，Ｓ７６）。
【０１００】
図９は、図８中にＳ７２で示すリモートコピー処理のフローチャートである。第２サーバ２０は、第１サーバ１０内の共有メモリ１４に格納されているリモートコピー情報Ｔ２０を参照する。
【０１０１】
例えば、第１サーバ１０は、リモートコピー情報Ｔ２０に基づいて、第２サーバ２０にマウントされる論理ボリューム３３内にリモートコピー対象データ（リモートコピー対象ファイル）が存在するか否かを判定する。第２サーバ２０の使用する論理ボリューム３３内にリモートコピー対象データが存在する場合、第１サーバ１０は、その論理ボリューム３３に含まれるリモートコピー対象データに関する情報を、第２サーバ２０に通知することができる。
【０１０２】
これにより、第２サーバ２０は、リモートコピー情報Ｔ２に基づいて、論理ボリューム３３内にリモートコピー対象のデータ（リモートコピー対象ファイル）が格納されていることを知る（Ｓ８０）。
【０１０３】
第２サーバ２０が使用している論理ボリューム３３内にリモートコピー対象ファイルが存在する場合（S80:YES）、第２サーバ２０は、論理ボリューム３３内のリモートコピー対象ファイルを読み出す（Ｓ８１）。第２サーバ２０は、論理ボリューム３３から読み出したリモートコピー対象ファイルを、ＤＡＳ２５内の所定位置に書き込む（Ｓ８２）。
【０１０４】
第２サーバ２０は、論理ボリューム３３内に格納されている全てのリモートコピー対象ファイルをＤＡＳ２５に移し終えるまで、Ｓ８１，Ｓ８２を繰り返す（Ｓ８３）。
【０１０５】
このように、第２サーバ２０が論理ボリューム３３からデータを読み出す場合に、その論理ボリューム３３に格納されているリモートコピー対象ファイルも読み出され、ＤＡＳ２５に記憶される。第２サーバ２０がホスト４０から受領するリードコマンドと、そのリードコマンドに関する論理ボリューム３３に関するリモートコピー処理との間に、直接的または間接的な関係があるか否かは問わない。
【０１０６】
なお、本実施例では、第１サーバ１０が、第２サーバ２０にマウントされた論理ボリューム３３に関するリモートコピー対象データの有無を判定し、その判定結果を第２サーバ２０に通知する場合を説明した。
【０１０７】
これに代えて、第１サーバ１０及び第２サーバ２０の両方がアクセス可能な、メモリ装置にリモートコピー情報Ｔ２０を記憶させる構成でもよい。第１サーバ１０のみが、そのメモリ装置にリモートコピー情報Ｔ２０を書き込むことができ、第２サーバ２０は、第２サーバ２０が必要とする範囲内で、そのメモリ装置からリモートコピー情報Ｔ２０を読み出すことができる構成としてもよい。
【０１０８】
図１０は、第２サーバ２０により実行されるライト処理のフローチャートである。第２サーバ２０は、ホスト４０からライト要求を受領すると（Ｓ９０）、キャッシュデータの有無を確認する（Ｓ９１）。
【０１０９】
キャッシュヒットの場合（S92:YES）、第２サーバ２０は、第１サーバ１０のライト処理と同様に、キャッシュデータを破棄する（Ｓ９３）。第２サーバ２０は、第１サーバ１０に論理ボリュームの使用可否を問合せ（Ｓ９４）、その論理ボリューム３３の排他権を取得できたか否かを判定する（Ｓ９５）。
【０１１０】
ライト対象の論理ボリューム３３の排他権を取得できた場合（S95:YES）、第２サーバ２０は、論理ボリューム３３をマウントし（Ｓ９６，Ｓ９７）、ライトデータを論理ボリューム３３に書き込む（Ｓ９８，Ｓ９９）。
【０１１１】
第２サーバ２０は、ライト処理が完了すると（S100:YES）、その論理ボリューム３３に関するリモートコピー処理を実行する（Ｓ１０１）。リモートコピー処理の一例は、図９で説明した通りである。
【０１１２】
第２サーバ２０は、ライト処理（Ｓ９８〜Ｓ１００）及びリモートコピー処理（Ｓ１０１）が完了すると、論理ボリューム３３をアンマウントし（Ｓ１０２，Ｓ１０３）、ホスト４０にライト処理が完了した旨を報告する（Ｓ１０４，Ｓ１０５）。
【０１１３】
このように、ライト処理の場合も、そのライト処理に関する論理ボリューム３３内に記憶されているリモートコピー対象ファイルについて、リモートコピー処理（Ｓ１０１）が実行される。
【０１１４】
図１１は、第２サーバ２０により実行されるチェック処理のフローチャートである。チェック処理としては、例えば、論理ボリューム３３が存在するか否かの確認、ボリュームサイズの問合せ等を挙げることができる。
【０１１５】
ホスト４０がチェックコマンドを発行すると（Ｓ１１０）、第２サーバ２０は、第１サーバ１０に論理ボリューム３３の使用可否を問合せ（Ｓ１１１）、論理ボリューム３３の排他権を取得できたか否かを判定する（Ｓ１１２）。
【０１１６】
第２サーバ２０は、排他権を取得した場合（S112:YES）、論理ボリューム３３をマウントし（Ｓ１１３，Ｓ１１４）、チェックコマンドに基づいた処理を行う（Ｓ１１５，Ｓ１１５）。
【０１１７】
第２サーバ２０は、チェックが完了すると（S117:YES）、マウントされている論理ボリューム３３についてリモートコピー処理を実行する（Ｓ１１８）。第２サーバ２０は、リモートコピー処理が完了すると、論理ボリューム３３をアンマウントする（Ｓ１１９，Ｓ１２０）。第２サーバ２０は、論理ボリューム３３をアンマウントした旨を第１サーバ１０に通知する（Ｓ１１９）。第２サーバ２０は、ホスト４０にチェックコマンドの処理完了を報告する（Ｓ１２１，Ｓ１２２）。
【０１１８】
このように、各種チェックコマンドを実行するために論理ボリューム３３をマウントした場合も、その論理ボリューム３３に関するリモートコピー処理が実行される。
【０１１９】
図１２は、第１サーバ１０により実行されるリモートコピーに関する処理を示すフローチャートである。
【０１２０】
図７では、ホスト４０からライトコマンドを受領した場合に、リモートコピー対象であるか否かを判定し、リモートコピー対象の場合は、共有メモリ１４にリモートコピー情報を登録する場合を説明した。これに代えて、図１２のフローチャートでは、ホスト４０から発行されるリモートコピーコマンドに応じて、リモートコピー情報を共有メモリ１４に登録する。
【０１２１】
第１サーバ１０は、ホスト４０からリモートコピーコマンドを受領すると（Ｓ１３０）、リモートコピー情報を作成して共有メモリ１４に登録する（Ｓ１３１）。なお、後述のＳ１３８の後で、Ｓ１３１を実行してもよい。つまり、リモートコピー対象ファイルを論理ボリューム３３にコピーした後で、リモートコピー情報を共有メモリ１４に登録する構成でもよい。
【０１２２】
第１サーバ１０は、ホスト４０から指定される論理ボリューム３３を使用可能か否かを判断し（Ｓ１３２）、その論理ボリューム３３の排他権を取得した場合に（S133:YES）、その論理ボリューム３３をマウントする（Ｓ１３４，Ｓ１３５）。
【０１２３】
次に、第１サーバ１０は、ＤＡＳ１５内のリモートコピー対象ファイルを論理ボリューム３３にコピーし（Ｓ１３６）、そのファイルを論理ボリューム３３に記憶させる（Ｓ１３７）。
【０１２４】
第１サーバ１０は、論理ボリューム３３へのコピーが完了すると（S138:YES）、論理ボリューム３３をアンマウントし（Ｓ１３９，Ｓ１４０）、ホスト４０に処理が完了した旨を報告する（Ｓ１４１，Ｓ１４２）。
【０１２５】
Ｓ１４１の時点では、リモートコピー対象ファイルが論理ボリューム３３に格納されただけであり、実際には、リモートコピー処理は完了していない。しかし、第１サーバ１０は、ホスト４０に処理完了を通知することができる。
【０１２６】
この後、ホスト４０からの指示（例えば、ライトコマンド、リードコマンド、チェックコマンド等）によって、第２サーバ２０が論理ボリューム３３をマウントした場合に、その論理ボリューム３３に格納されているリモートコピー対象ファイルが第２サーバに移される。
【０１２７】
図１３は、第１サーバ１０がリモートコピー対象ファイル３４を論理ボリューム３３に格納して、リモートコピー情報Ｔ２０を共有メモリ１４に登録する様子を模式的に示す説明図である。
【０１２８】
先にリモートコピー情報Ｔ２０の構成を説明する。リモートコピー情報Ｔ２０は、リモートコピー対象ファイル３４が論理ボリューム３３内のどこに格納されているか等を示す情報である。リモートコピー情報Ｔ２０は、例えば、ｉＳＣＳＩ名Ｃ２００と、ＩＰアドレスＣ２０１と、ポート番号Ｃ２０２と、論理ボリューム番号Ｃ２０３と、リモートコピー対象ファイル名Ｃ２０４とを対応付けて管理する。リモートコピー対象ファイル名Ｃ２０４は、例えば、絶対パスとして設定される。なお、上述した項目以外の項目を管理する構成でもよいし、上述した各項目の一部を除外する構成でもよい。
【０１２９】
第１サーバ１０は、上述の通り、例えば、ホスト４０からライト要求またはリモートコピー要求を受領した場合に、リモートコピー対象ファイル３４をＤＡＳ１５から論理ボリューム３３にコピーする。第１サーバ１０は、論理ボリューム３３に格納されたリモートコピー対象ファイル３４に関するリモートコピー情報Ｔ２０を作成し、共有メモリ１４に記憶させる。
【０１３０】
図１４は、第２サーバ２０が論理ボリューム３３からリモートコピー対象ファイル３４を読み出して、ＤＡＳ２５に記憶させる様子を示す説明図である。
【０１３１】
第２サーバ２０は、上述の通り、ホスト４０から受領する各コマンドに応じて、論理ボリューム３３にアクセスする。本実施例では、第１サーバ１０が論理ボリューム３３の使用可否を一元管理している。従って、第２サーバ２０は、使用を希望する論理ボリューム３３の排他権を第１サーバ１０から得る必要がある。
【０１３２】
第２サーバ２０のリモートコピー管理部２２は、論理ボリューム３３の排他権を取得する際に、共有メモリ１４内のリモートコピー情報Ｔ２０を取得する。リモートコピー管理部２２は、リモートコピー情報Ｔ２０に基づいて、現在マウント中の論理ボリューム３３内にリモートコピー対象ファイル３４が存在するか否かを判定する。
【０１３３】
リモートコピー管理部２２は、リモートコピー対象ファイル３４を発見した場合、論理ボリューム３３からリモートコピー対象ファイル３４を読出し、第２サーバ２０内のＤＡＳ２５に記憶させる。
【０１３４】
図１５は、再処理要求を実行するためのフローチャートである。再処理要求処理は、アクセス先の論理ボリューム３３をマウントできない場合に、アクセス要求を待ち行列に追加し、論理ボリューム３３をマウントできる状況になってからアクセス要求を処理するものである。再処理要求処理は、第１サーバ１０のみで実行してもよいし、第１サーバ１０及び第２サーバ２０の両方でそれぞれ実行してもよい。ここでは、便宜上、第１サーバ１０を主語して説明する。
【０１３５】
第１サーバ１０は、ホスト４０から論理ボリューム３３へのアクセス要求を受領したか否かを判定する（Ｓ１５０）。アクセス要求としては、例えば、ライト要求、リード要求、チェック要求等がある。
【０１３６】
第１サーバ１０は、アクセス要求を受領すると（S150:YES）、デバイス使用状態管理情報Ｔ１２に基づいて、論理ボリューム３３の使用状態を確認する（Ｓ１５１）。第１サーバ１０は、論理ボリューム３３が使用中であるか否か、即ち、その論理ボリューム３３の排他権を取得可能か否かを判定する（Ｓ１５２）。
【０１３７】
第１サーバ１０は、論理ボリューム３３が使用中の場合（S152:YES）、つまり、その論理ボリューム３３の排他権を取得できない場合（S152:YES）、Ｓ１５０で受領したアクセス要求を待ちキュー（待ち行列）に格納し（Ｓ１５３）、Ｓ１５１に戻る。第１サーバ１０は、待ちキューに追加されたアクセス要求について、ホスト４０に処理できない旨を報告する。
【０１３８】
第１サーバ１０は、論理ボリューム３３の使用状態を定期的にまたは不定期に監視する（Ｓ１５１）。第１サーバ１０は、論理ボリューム３３が使用可能になった場合（S152:NO）、待ちキューにアクセス要求が格納されているか否かを判断する（Ｓ１５４）。
【０１３９】
待ちキューにアクセス要求が格納されている場合（S154:YES）、第１サーバ１０は、待ちキューに格納されているアクセス要求を再起動させる（Ｓ１５６）。つまり、第１サーバ１０は、ホスト４０にアクセス要求を再発行させる（Ｓ１５６）。待ちキューにアクセス要求が格納されていない場合（S154:NO）、第１サーバ１０は、Ｓ１５０で受領したアクセス要求について論理ボリューム３３の使用を許可する（Ｓ１５５）。
【０１４０】
このように、第１サーバ１０は、アクセス先の論理ボリューム３３をマウントできない場合、アクセス要求の処理ができない旨をホスト４０に通知し、そのアクセス要求を待ちキューに登録する。論理ボリューム３３をマウントできる状況になった場合に、第１サーバ１０は、ホスト４０からアクセス要求を再発行させる。
【０１４１】
このように構成される本実施例によれば、第１サーバ１０がｉＳＣＳＩディスク３２内の論理ボリューム３３の使用可否を一元管理するため、複数のサーバ１０，２０が一つの論理ボリューム３３を共有することができる。
【０１４２】
本実施例によれば、第２サーバ２０が論理ボリューム３３を使用する際に、その論理ボリューム３３に格納されているリモートコピー対象ファイル３４を第２サーバ２０のＤＡＳ２５にコピーする。ライトコマンドやリードコマンド等を処理するために第２サーバ２０が論理ボリューム３３をマウントすると、ライトコマンドやリードコマンド等と無関係のリモートコピー対象ファイル３４が論理ボリューム３３から読み出される。従って、第１サーバ１０から論理ボリューム３３を介して第２サーバ２０に、リモートコピー対象ファイル３４をコピーする場合、第２サーバ２０が論理ボリューム３３をマウントする回数を低減することができる。マウント回数を低減できるため、ネットワークストレージ装置３０の応答性能を高めることができる。
【０１４３】
本実施例では、データサイズの大きいファイルデータはＤＡＳ１５に、データサイズの小さいＤＢ用データはメモリ１４に、それぞれキャッシュデータとして格納させる。従って、サイズの大きいファイルデータによってメモリ１４が満杯状態になるのを抑制することができる。
【０１４４】
本実施例では、アクセス先の論理ボリューム３３が使用できない場合、そのアクセス要求を待ちキューに登録して、いったん終了させる。その後、論理ボリューム３３を使用できるようになった場合、待ちキューに登録されたアクセス要求をホスト４０から再発行させる。従って、ホスト４０は、アクセス先の論理ボリューム３３が使用可能になるまで待ち続ける必要がなく、その論理ボリューム３３が使用できるようになるまでの間、別の処理を行うことができる。
【０１４５】
なお、第１サーバ１０から論理ボリューム３３へリモートコピー対象ファイルを書き込む処理をリモートコピーの前処理と、第２サーバ２０が論理ボリューム３３からリモートコピー対象ファイルを読み出す処理をリモートコピーの後処理と、それぞれ呼ぶこともできる。このように呼ぶ場合、本実施例では、リモートコピー前処理とリモートコピー後処理とは非同期で行われ、かつ、リモートコピー後処理の起動する契機は、第２サーバ２０が論理ボリューム３３にアクセスする場合となっている。
【実施例２】
【０１４６】
図１６，図１７に基づいて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。従って、第１実施例と重複する説明は省略し、本実施例の特徴を中心に説明する。本実施例では、以下に述べるように、キャッシュデータに関する管理を除いている。
【０１４７】
図１６は、第２サーバ２０により実行されるリード処理のフローチャートである。本処理は、図８に示す各ステップＳ６０〜Ｓ７６のうち、キャッシュデータの管理に関するＳ６１，Ｓ６２，Ｓ６９，Ｓ７０を以外の全ステップを備える。
【０１４８】
図１７は、第２サーバ２０により実行されるライト処理のフローチャートである。本処理は、図１０に示す各ステップＳ９０〜Ｓ１０５のうち、キャッシュデータの管理に関するＳ９１〜Ｓ９３以外の全ステップを備える。
【０１４９】
このように、本実施例の第２サーバ２０は、キャッシュデータの管理を行わない。このように構成される本実施例も、第１実施例と同様の効果を奏する。
【実施例３】
【０１５０】
図１８に基づいて第３実施例を説明する。本実施例では、図９の変形例を示す。図１８は、本実施例によるリモートコピー処理のフローチャートである。本処理は、図８に示す各ステップＳ８０〜Ｓ８３を全て備えている。さらに、本処理は、Ｓ８０とＳ８１との間に、新規なステップＳ８４を追加する。
【０１５１】
この新たなステップＳ８４では、ホスト４０から受領したコマンドが、リモートコピー処理の実施を禁止しているか否かを判定する（Ｓ８４）。リモートコピー処理の禁止されているコマンドの場合（S84:YES）、第２サーバ２０は、処理を終了する。第２サーバ２０は、マウントされている論理ボリューム３３内にリモートコピー対象ファイル３４が存在する場合であっても、そのリモートコピー対象ファイルを読み出さない。
【０１５２】
これに対し、ホスト４０から受領したコマンドがリモートコピー処理を禁止していない場合（S84:NO）、図９で述べたと同様に、第２サーバ２０は、論理ボリューム３３からリモートコピー対象ファイル３４を読み出して（Ｓ８１）、ＤＡＳ２５に記憶させる（Ｓ８２，Ｓ８３）。
【０１５３】
ライトコマンド、リードコマンド、チェックコマンド等の各種コマンド（各種アクセス要求）において、例えば、予め用意された所定のパラメータを設定することにより、リモートコピー処理の実行を禁止させることができる。例えば、ホスト４０が第２サーバ２０に発行するリードコマンド内に、所定のパラメータが設定されている場合、第２サーバ２０は、そのリードコマンドに対応する論理ボリューム３３をマウントしても、リモートコピー対象ファイルを読み出さない。
【０１５４】
このように構成される本実施例によれば、第１実施例と同様の効果を奏する。さらに、本実施例では、リモートコピー処理の実行が禁止されているコマンドを受領した場合、第２サーバ２０は、そのコマンドに関する処理のみを実行し、論理ボリューム３３からリモートコピー対象ファイル３４を読み出さない。従って、ホスト４０から受領したコマンドの処理結果を速やかにホスト４０に報告することができる。
【０１５５】
なお、第１実施例においても、リモートコピー処理（Ｓ７２，Ｓ１０１）を開始する前に、リード処理の結果またはライト処理の結果をホスト４０に報告し、報告を終えた後で、リモートコピー処理を行う構成としてもよい。この場合、ホスト４０から要求されたコマンド処理の結果を早期にホスト４０に通知することができ、その後でリモートコピー処理を行うことができる。
【実施例４】
【０１５６】
図１９は、第４実施例に係るコンピュータシステムの全体構成図である。第１実施例では、第１サーバ１０と、第２サーバ２０と、ネットワークストレージ装置３０及びホスト４０を、それぞれ一つずつ示した。
【０１５７】
これに代えて、一つの第１サーバ１０と、複数の第２サーバ２０（１）〜２０（３）と、複数のネットワークストレージ装置３０（１），３０（２）と、複数のホスト４０（１），４０（２）とから、コンピュータシステムを構成することもできる。各ネットワークストレージ装置３０（１），３０（２）は、それぞれ複数のｉＳＣＳＩディスクを備えることができる。図示の例では、一方のネットワークストレージ装置３０（１）は、ｉＳＣＳＩディスク３２（１），３２（２）を備えており、他方のネットワークストレージ装置３０（２）は、ｉＳＣＳＩディスク３２（３），３２（４）を備える。
【０１５８】
第１サーバ１０は、各ネットワークストレージ装置３０内の各ｉＳＣＳＩディスク３２の使用可否を一元的に管理する。各第２サーバ２０は、所望する論理ボリュームの排他権を第１サーバ１０から取得して、その所望の論理ボリュームをマウントする。
【０１５９】
このように構成される本実施例も第１実施例と同様の効果を奏する。さらに、本実施例では、より多くのサーバがネットワークストレージ装置３０内の論理ボリュームを共有して使用することができる。
【実施例５】
【０１６０】
図２０〜図２８に基づいて第５実施例を説明する。本実施例では、第１コンピュータセンタ１００内において、コマンドの発行と、ｉＳＣＳＩディスク３２０の使用可否の管理と、キャッシュデータの管理等を行う。第２コンピュータセンタ２００では、第１コンピュータセンタ１００から発行されるコマンドに従って、ｉＳＣＳＩディスク３２０を使用する。
【０１６１】
第１実施例との対応関係を説明する。第１コンピュータセンタ１００は、「第１コンピュータ」に該当する。第１コンピュータセンタ１００は、第１サーバ１０及びホスト４０に対応する。第２コンピュータセンタ２００は、「第１コンピュータ」に該当する。第２コンピュータセンタ２００は、第２サーバ２０に対応する。第３コンピュータセンタ３００は、「共有記憶装置」に該当する。第３コンピュータセンタ３００は、ネットワークストレージ装置３０に対応する。
【０１６２】
第１コンピュータセンタ１００と第２コンピュータセンタ２００と第３コンピュータセンタ３００とは、ＩＰネットワークのような通信ネットワークＣＮ１００にそれぞれ接続されている。
【０１６３】
第１コンピュータセンタ１００は、例えば、入力端末１１０と、ウェブサーバ１２０と、ＤＢＭサーバ１３０と、キャッシュサーバ１４０と、ＤＡＳ１５０とを備える。ウェブサーバ１２０と、ＤＢＭサーバ１３０と、キャッシュサーバ１４０とは、同一のコンピュータ内に設けることもできるし、あるいは、それぞれ別々のコンピュータとして構成することもできる。
【０１６４】
第２コンピュータセンタ２００は、例えば、ジョブ受付サーバ２１０と、負荷分散コンピュータ２２０と、ジョブ実行コンピュータ２３０と、ＤＡＳ２２２を備える。各装置２１０〜２３０は、同一のコンピュータ内に設けることもできるし、あるいは、別々のコンピュータとして構成することもできる。
【０１６５】
第３コンピュータセンタ３００は、例えば、ｉＳＣＳＩサーバ３１０と、ｉＳＣＳＩディスク３２０を備える。ｉＳＣＳＩディスク３２０には、論理ボリューム３３０が設けられている。
【０１６６】
図２は、第１コンピュータセンタ１００の構成を示す説明図である。入力端末１１０はウェブサーバ１２０と通信可能に接続される。キャッシュサーバ１４０は、ウェブサーバ１２０及びＤＢＭサーバ１３０のそれぞれと通信可能に接続される。
【０１６７】
入力端末１１０は、例えば、ウェブブラウザのようなクライアントプログラム１１１を備える。クライアントプログラム１１１は、ウェブサーバ１２０内のアプリケーションプログラム１２１を利用するためのプログラムである。
【０１６８】
ウェブサーバ１２０は、例えば、アプリケーションプログラム１２１と、ＩＯコマンド１２２と、キャッシュサーバ通信部１２３とを備える。アプリケーションプログラム１２１は、例えば、回路設計等を行うためのプログラムとして構成可能である。
【０１６９】
ＩＯコマンド１２２は、ｉＳＣＳＩディスク３２０にデータを入出力等するためのものである。ＩＯコマンド１２２は、アプリケーションプログラム１２１からの指示に応じて、予め設定されているコマンド群の中から適切なコマンドを選択し、その選択されたコマンドを発行する。ＩＯコマンドの一例については、図２４で後述する。キャッシュサーバ通信部１２３は、キャッシュサーバ１４０と通信を行うものである。
【０１７０】
キャッシュサーバ１４０は、例えば、サーバ制御部１４１と、ｉＳＣＳＩイニシエータ１４２とを備える。サーバ制御部１４１は、キャッシュサーバ１４０の動作を制御するものである。サーバ制御部１４１は、共有メモリキャッシュ部１４３と、ＩＯクライアント部１４４とを備える。
【０１７１】
共有メモリキャッシュ部１４３には、負荷分散コンピュータ２２０及びジョブ実行コンピュータ２３０もアクセス可能である。共有メモリキャッシュ部１４３には、例えば、ＤＢ用キャッシュデータＣＤ２と、リモートコピー情報Ｔ２０とが格納される。なお、以下の説明では、共有メモリキャッシュ部を、共有メモリまたは共有メモリキャッシュと呼ぶ場合がある。
【０１７２】
ＩＯクライアント部１４４は、ＩＯコマンド１２２から発行されるコマンドに応じて、ｉＳＣＳＩイニシエータ１４２をマウントまたはアンマウントするものである。ｉＳＣＳＩイニシエータ１４２は、ｉＳＣＳＩターゲットとなるｉＳＣＳＩサーバ３１０との間で通信を行うものである。
【０１７３】
ＤＢＭサーバ１３０は、ＤＢＭサーバプログラム１３１を備える。ＤＢＭとは、データベース管理の略である。ＤＢＭサーバプログラム１３１により利用されるキャッシュデータは、ＤＢ用キャッシュデータとして共有メモリキャッシュ部１４３に格納される。
【０１７４】
ＤＡＳ１５０には、例えば、アプリケーションプログラム１２１により使用されるファイルキャッシュデータＣＤ１と、管理情報Ｔ１０とが記憶される。
【０１７５】
図２２は、第２コンピュータセンタ２００の構成例を示す説明である。ジョブ受付サーバ２１０と負荷分散コンピュータ２２０とは通信可能に接続されている。負荷分散コンピュータ２２０とジョブ実行コンピュータ２３０とは通信可能に接続されている。
【０１７６】
ジョブ受付サーバ２１０は、ウェブサーバ１２０から発行されるジョブを受け付けるサーバであり、ジョブ受付部２１１を備える。例えば、後述の実施例のように、ジョブ受付サーバ２１０は、回路設計プログラムのシミュレーション等をウェブサーバ１２０から受け付ける。ジョブ受付部２１１は、受け付けたジョブの実行を負荷分散コンピュータ２２０に依頼する。
【０１７７】
負荷分散コンピュータ２２０は、ジョブ受付サーバ２１０から依頼されたジョブを、どのコンピュータ（ＣＰＵ）に割り当てるかを管理する。負荷分散コンピュータ２２０は、例えば、負荷分散部２２１と、ＤＡＳ２２２を備える。ＤＡＳ２２２には、リモートコピー対象ファイルやサスペンド情報等を記憶させることができる。
【０１７８】
負荷分散部２２１は、例えば、ＩＯコマンド２２３と、ジョブ管理部２２４と、キャッシュサーバ通信部２２５を備える。ＩＯコマンド２２３は、ｉＳＣＳＩディスク３２０にデータを入出力等するためのコマンドを発行する。
【０１７９】
ジョブ管理部２２４は、ジョブ受付サーバ２１０から依頼されたジョブにジョブＩＤを割り当てて管理する。ジョブ管理部２２４は、ｉＳＣＳＩディスク３２０の論理ボリューム３３０の使用可否を、キャッシュサーバ１４０に問い合わせる。論理ボリューム３３０を使用可能な場合、ジョブ管理部２２４は、ジョブを実行するコンピュータ２３０を決定し、そのジョブの処理を依頼する。論理ボリューム３３０を使用できない場合、ジョブ管理部２２４は、サスペンド情報を生成してＤＡＳ２２２に保存する。つまり、そのジョブは待ち行列に追加される。
【０１８０】
キャッシュサーバ通信部２２５は、論理ボリュームの使用可否やリモートコピー情報Ｔ２０の有無等について、キャッシュサーバ１４０と通信するためのものである。
【０１８１】
ジョブ実行コンピュータ２３０は、例えば、実行ジョブ２３１と、ｉＳＣＳＩイニシエータ２３４を備える。実行ジョブ２３１には、ＩＯコマンド２３２と、キャッシュサーバ通信部２３３が含まれる。
【０１８２】
実行ジョブ２３１は、負荷分散コンピュータ２２０から依頼された各ジョブ毎に生成される。ＩＯコマンド２３２は、そのジョブを処理するためのコマンドである。キャッシュサーバ通信部２３３は、キャッシュサーバ１４０と通信するためのものである。
【０１８３】
図２１，図２２に示す構成の少なくとも一部は、プログラム製品として構成される。例えば、ウェブサーバ１２０，キャッシュサーバ１４０，ＤＢＭサーバ１３０，ジョブ受付サーバ２１０，負荷分散コンピュータ２２０，ジョブ実行コンピュータ２３０の少なくとも一部はプログラム製品である。
【０１８４】
図２３は、キャッシュサーバ１４０とジョブ実行コンピュータ２３０とがｉＳＣＳＩディスク３２０の論理ボリューム３３０を共有する様子を示す。キャッシュサーバ１４０またはジョブ実行コンピュータ２３０のいずれか一方が、ｉＳＣＳＩディスク３２０内の論理ボリューム３３０を排他的に使用することができる。
【０１８５】
キャッシュサーバ１４０は、論理ボリューム３３０の排他権を一元的に管理する。従って、負荷分散コンピュータ２２０及びジョブ実行コンピュータ２３０は、キャッシュサーバ１４０と通信することにより、論理ボリューム３３０の排他権を取得する。
【０１８６】
図２４は、コマンド群の一例を示す説明図である。ＩＯコマンド１２２，２２３，２３２は、図２４に示すコマンドを発行する。図２４（ａ）は、ファイルＩＯ系のコマンドを示す。ファイルＩＯ系コマンドは、例えば、アプリケーションプログラム１２１に関して使用される。
【０１８７】
本実施例では、ファイルＩＯ系コマンドとして、例えば、iSCSI_rcopy（InFileName,OutFileName,[ファイル属性]）と、iSCSI_read（FileName(iSCSI),Buff）と、iSCSI_write（OutFileName（iSCSI）,InFileName(DAS)/配列メモリ,[File属性]）と、iSCSI_delete（FileName(iSCSI)）と、iSCSI_copy（InFileName,OutFileName,[ファイル属性]）と、iSCSI_rename（InFileName,OutFileName）を用意している。かっこ内はパラメータの例である。
【０１８８】
iSCSI_rcopyは、ｉＳＣＳＩディスク３２０の論理ボリューム３３０を用いてリモートコピーを行うためのコマンドである。iSCSI_readは、論理ボリューム３３０からファイルデータを読み出すためのコマンドである。iSCSI_writeは、論理ボリューム３３０にファイルデータを書き込むためのコマンドである。iSCSI_deleteは、論理ボリューム３３０内のファイルを削除するためのコマンドである。iSCSI_copyは、論理ボリューム３３０内のファイルをコピーするためのコマンドである。iSCSI_renameは、論理ボリューム３３０内のファイル名を変更するためのコマンドである。なお、iSCSI_renameによって、ファイルの移動も行うことができる。
【０１８９】
図２４（ｂ）は、ＤＢ−ＩＯ系コマンドを示す。ＤＢ−ＩＯ系コマンドは、ＤＢＭサーバプログラム１３１に関して使用される。
【０１９０】
本実施例では、ＤＢ−ＩＯ系コマンドとして、例えば、DBM_read（iSCSI_DBM_read  DBMFile(iSCSI),HASH）と、DBM_write（iSCSI_DBM_write  DBMFile(iSCSI),HASH）と、DBM_read_from_iscsi_faileと、iSCSI_DBM_delete（DBMFile(iSCSI),HASH）と、iSCSI_DBM_copy（InDBMFile(iSCSI),OutDBMFile(iSCSI)）とを用意している。
【０１９１】
DBM_readは、ＤＢ用データをｉＳＣＳＩディスク３２０の論理ボリューム３３０に書き込むためのコマンドである。DBM_writeは、論理ボリューム３３０からＤＢ用データを読み出すためのコマンドである。DBM_read_from_iscsi_faileは、論理ボリューム３３０からＤＢ用データを読み出してキャッシュデータを生成するためのコマンドである。iSCSI_DBM_deleteは、論理ボリューム３３０内のＤＢ用データを削除するコマンドである。iSCSI_DBM_copyは、論理ボリューム３３０内のＤＢ用データをコピーするコマンドである。
【０１９２】
なお、上述したコマンドは一例であって、本発明の範囲は図２４に示すコマンド群に限定されない。
【０１９３】
図２５は、キャッシュデータの管理について説明する説明図である。図２５（ａ）は、ｉＳＣＳＩデバイスとしての論理ボリューム３３０を「／ｉＳＣＳＩ１」にマウントした場合のディレクトリ構造を示す。ファイルＡは、ディレクトリＡの下のディレクトリＢ内に保存されている。ファイルＡには、データ１及びデータ２が含まれている。
【０１９４】
図２５（ｂ）は、ファイルＡのデータをキャッシュデータＣＤ１としてキャッシュする場合のディレクトリ構造を示す。ファイルＡは、隠しディレクトリ「．ＣＡＣＨＥ（Ｄｉｒ）」を介して、ＤＡＳ１５０内のディレクトリＢ内に保存される。隠しディレクトリは、キャッシュエリアであることを示している。
【０１９５】
図２５（ｃ）は、テストコマンドに関して使用される、検証用ディレクトリ構造の一例を示す。ファイルＡ内には、マウント検証用の情報が格納される。マウント検証用情報としては、例えば、「iSCSI LU=/dev/sda2  mount_dir=/ISCSI2」のように、ｉＳＣＳＩディスク３２０内の論理ボリューム３３０を特定する情報と、その論理ボリューム３３０をマウントする場合のマウント先を示す情報とが含まれる。本実施例では、決定されたマウントポインタがマウント検証用情報に一致するか否かを判定することにより、システム障害の発生を防止する。さらに、例えば、図２５（ｃ）に示すテストコマンド用のディレクトリツリーを用意することにより、アプリケーションプログラム１２１がファイルの存在をチェックする場合等に、従来のテストコマンドをそのまま使用できる。
【０１９６】
図２６は、キャッシュサーバ１４０のサーバ制御部１４１の構成を示す。サーバ制御部１４１は、例えば、プロセス間通信コネクション制御１４１Ａと、Ｆｏｒｋプロセス生成１４１Ｂとを備える。
【０１９７】
プロセス間通信コネクション制御１４１Ａは、ウェブサーバ１２０から図２４に示すようなＩＯコマンド１２２を受領する。Ｆｏｒｋプロセス生成１４１Ｂは、受領したＩＯコマンドに対応するＩＯリクエスト１４１Ｃを生成する。
【０１９８】
ＩＯリクエスト１４１Ｃは、例えば、ＩＯ情報受信５００と、キャッシュ制御５１０と、ストレージ管理５２０と、キャッシュデータ管理５３０と、データ送信５４０とを備えている。
【０１９９】
ＩＯ情報受信５００は、ＩＯコマンド１２２から、そのＩＯコマンドに関する情報を取得するものである。例えば、ライトコマンドの場合、ＩＯ情報受信５００は、どの論理ボリューム３３０のどこに何を書き込むかというような情報をＩＯコマンド１２２から取得する。リードコマンドの場合、ＩＯ情報受信５００は、どの論理ボリューム３３０のどこからどのデータを読み出すかというような情報をＩＯコマンド１２２から取得する。
【０２００】
キャッシュ制御５１０は、例えば、キャッシュデータ管理機能５１１と、ストレージ管理機能５１２と、データ送信機能５１３とを備える。
【０２０１】
キャッシュデータ管理機能５１１は、キャッシュデータ管理５３０を用いて、キャッシュデータを管理する。キャッシュデータ管理５３０は、ファイルキャッシュＩＯ処理と、メモリキャッシュＩＯ処理とを備える。ファイルデータＣＤ１は、ファイルキャッシュＩＯ処理によって、ＤＡＳ１５０に記憶される。ＤＢ用データＣＤ２は、メモリキャッシュＩＯ処理によって、共有メモリ１４３に記憶される。
【０２０２】
ストレージ管理機能５１２は、ストレージ管理５２０を用いて、ｉＳＣＳＩディスク３２０内の論理ボリューム３３０にアクセスする。ストレージ管理５２０は、ｉＳＣＳＩディスクを共有するために、排他制御を実行する。ストレージ管理５２０は、プロセス実行権限をユーザ（ｕｉｄ）に切り換え、ｉＳＣＳＩプロトコル５２２を用いてｉＳＣＳＩディスク３２０の論理ボリューム３３０をマウントまたはアンマウントする。
【０２０３】
データ送信機能５１３は、データ送信５４０を用いて、ウェブサーバ１２０にデータを送信させる。データ送信５４０は、プロセス間通信５４１により、論理ボリューム３３０から読み出されたデータをＩＯコマンド１２２に返す。ＩＯコマンド１２２は、受領したデータをアプリケーションプログラム１２１に引き渡す。
【０２０４】
図２７は、リードコマンド及びライトコマンドの処理を示すフローチャートである。入力端末１１０からの操作に応じて、ウェブサーバ１２０のアプリケーションプログラム１２１は、ＩＯコマンド１２２にアクセス要求を発行する（Ｓ２００）。
【０２０５】
ＩＯコマンド１２２は、引数を展開し、例えば、絶対パスで指定されるファイル名等を把握する（Ｓ２２１）。これにより、ＩＯコマンド１２２は、処理対象のファイルがＤＡＳ１５０内にあるのか、それともｉＳＣＳＩ３２０の論理ボリューム３３０内にあるのかを知ることができる。
【０２０６】
ＩＯコマンド１２２は、アプリケーションプログラム１２１が稼働しているウェブサーバ１２０の名称とデバイス決定パラメータＴ１３とに基づいて、ｉＳＣＳＩ−ＩＯモードを判定する（Ｓ２０２，Ｓ２０３）。ｉＳＣＳＩ−ＩＯモードとは、キャッシュサーバ１４０を介して論理ボリューム３３０をマウントするモードであるか否かを示す。デバイス決定パラメータＴ１３は、例えば、ホスト（ここではウェブサーバ１２０）が使用できる論理デバイス（論理ボリューム３３０等）について予め規定している。
【０２０７】
ＩＯコマンド１２２は、接続先キャッシュサーバ情報Ｔ１４を用いて、接続先のキャッシュサーバ１４０を選択する（Ｓ２０４）。接続先キャッシュサーバ情報Ｔ１４は、使用するキャッシュサーバ１４０を特定するための情報と、マウントポイントに関する情報等を含んでいる。
【０２０８】
ＩＯコマンド１２２は、キャッシュサーバ１４０に接続し、キャッシュサーバ１４０にファイル名等を通知する（Ｓ２０５）。
【０２０９】
キャッシュサーバ１４０は、指定されたファイルを格納する論理ボリューム３３０をマウント可能であるか否かを判定し、マウント可能であると判定した場合には、その論理ボリューム３３０をマウントする（Ｓ２０６）。
【０２１０】
ＩＯコマンド１２２がリードコマンドの場合、キャッシュサーバ１４０は、論理ボリューム３３０からデータを読出し（Ｓ２０７）、ＩＯコマンド１２２に送信する。ＩＯコマンド１２２は、キャッシュサーバ１４０から受信したデータを、アプリケーションプログラム１２１に引き渡す（Ｓ２０８，Ｓ２０９）。
【０２１１】
ＩＯコマンド１２２がライトコマンドの場合、ＩＯコマンド１２２は、アプリケーションプログラム１２１から受信したデータを（Ｓ２１０）、キャッシュサーバ１４０に送信する（Ｓ２１１）。キャッシュサーバ１４０は、ＩＯコマンド１２２から受信したデータを論理ボリューム３３０内の指定場所に書き込む（Ｓ２１２）。
【０２１２】
キャッシュサーバ１４０は、ＩＯコマンド１２２から要求された処理を完了すると、論理ボリューム３３０をアンマウントする（Ｓ２１３）。ＩＯコマンド１２２は、キャッシュサーバ１４０との接続を解除し、通信コネクションを解放する（Ｓ２１４）。
【０２１３】
図２８は、リモートコピー処理を示すフローチャートである。ここでは、キャッシュサーバ１４０が論理ボリューム３３０を既にマウントしているものとして述べる。
【０２１４】
ウェブサーバ１２０は、リモートコピーコマンド（図中、ｒｃｏｐｙコマンド）をキャッシュサーバ１４０に発行する（Ｓ２２０）。キャッシュサーバ１４０は、リモートコピーコマンドを受領すると（Ｓ２２１）、リモートコピー情報Ｔ１０を作成し、リモートコピー情報Ｔ１０を共有メモリ１４３に登録する（Ｓ２２２）。
【０２１５】
キャッシュサーバ１４０は、ＤＡＳ１５０（図中、ＤＡＳ１と表示）からリモートコピー対象ファイルを読出し、この読み出したリモートコピー対象ファイルを論理ボリューム３３０に転送して記憶させる（Ｓ２２３）。便宜上、ファイルデータのリモートコピーについて述べるが、ＤＢ用データをリモートコピーすることもできる。
【０２１６】
ジョブ実行コンピュータ２３０は、ウェブサーバ１２０からの指示に基づいて、リモートコピー対象ファイルが格納された論理ボリューム３３０を使用する。ジョブ実行コンピュータ２３０は、キャッシュサーバ１４０に排他権（Ｌｏｃｋ）の取得を要求する（Ｓ２３０）。
【０２１７】
キャッシュサーバ１４０は、ジョブ実行コンピュータ２３０からのコマンド（Ｌｏｃｋ要求）を受信すると、ジョブ実行コンピュータ２３０が論理ボリューム３３０を使用可能であるかを判定する。
【０２１８】
キャッシュサーバ１４０は、ジョブ実行コンピュータ２３０が論理ボリューム３３０を使用可能であると判定した場合、その論理ボリューム３３０に関する排他権をジョブ実行コンピュータ２３０に与える（Ｓ２３１）。ジョブ実行コンピュータ２３０は、論理ボリューム３３０をマウントし、ウェブサーバ１２０から指示された処理を実行する。
【０２１９】
キャッシュサーバ１４０は、共有メモリ１４３内のリモートコピー情報Ｔ１０を参照し、ジョブ実行コンピュータ２３０により使用される論理ボリューム３３０内にリモートコピー対象ファイルが含まれているか否かを判定する（Ｓ２３２）。
【０２２０】
キャッシュサーバ１４０は、論理ボリューム３３０がリモートコピー対象ファイルを含んでいる場合、リモートコピー対象ファイルのファイル名等をジョブ実行コンピュータ２３０に通知する（Ｓ２３３）。
【０２２１】
ジョブ実行コンピュータ２３０は、キャッシュサーバ１４０から受領した通知に基づいて、論理ボリューム３３０からリモートコピー対象ファイルを読み出し、読み出したリモートコピー対象ファイルをＤＡＳ２２２（図中、ＤＡＳ２と表示）内の所定場所に記憶させる（Ｓ２３４）。
【０２２２】
ジョブ実行コンピュータ２３０は、論理ボリューム３３０からＤＡＳ２２２へのデータコピーが完了すると、キャッシュサーバ１４０に処理終了を通知する（Ｓ２３５）。このように構成される本実施例も第１実施例と同様の効果を奏する。
【実施例６】
【０２２３】
図２９，図３０に基づいて第６実施例を説明する。本実施例は、第５実施例の具体例に相当する。図２９は、データ入力センタ１００Ａ側の構成を示し、図３０は、シミュレーションセンタ２００Ａ側の構成を示す。
【０２２４】
データ入力センタ１００Ａは第１コンピュータセンタ１００に、シミュレーションセンタ２００Ａは第２コンピュータセンタ２００に、データ記憶センタ３００Ａは第３コンピュータセンタ３００に、それぞれ対応する。
【０２２５】
本実施例によるコンピュータシステムは、データ入力センタ１００Ａとシミュレーションセンタ２００Ａとデータ記憶センタ３００Ａとが、ＩＰネットワークにそれぞれ接続されている。
【０２２６】
データ入力センタ１００Ａは、ＶＨＤＬ（Very high-speed integrated circuit Hard-ware Description Language）データを作成する。データ記憶センタ３００Ａは、ＶＨＤＬデータを論理ボリューム３３０内に記憶する。シミュレーションセンタ２００Ａは、論理ボリューム３３０からＶＨＤＬデータを読み出してＤＡＳ２２２に記憶させ、ＶＨＤＬデータのコンパイルを行う。
【０２２７】
ユーザは、入力端末１１０を用いて、ウェブサーバ１２０にアクセスする。図２９の上側に示すように、入力端末１１０の表示装置には、プロジェクトやＬＳＩ等を指定するための画面Ｇ１０が表示される。ユーザは、所望のプロジェクトの所望のＬＳＩ及び所望のカットを指定する。
【０２２８】
入力端末１１０の表示装置には、処理選択画面Ｇ１１が表示される。処理選択画面Ｇ１１では、例えば、ＶＨＤＬの生成やＶＨＤＬのコンパイル等のような、アプリケーションプログラム１２１の種類を指定することができる。また、ユーザは、処理選択画面Ｇ１１において、ｉＳＣＳＩディスク３２０を使用するか否かを指定できる。
【０２２９】
ユーザがＶＨＤＬの生成を選択すると、その選択結果はプロジェクトを管理するためのデータベース１２４に登録される。
【０２３０】
データ入力センタ１００Ａ内のウェブサーバ１２０（正確には、ＶＨＤＬを生成するアプリケーションプログラム１２１）は、ＶＨＤＬデータを生成する（Ｓ３００）。生成されたＶＨＤＬデータはＤＡＳ１５０に保存される。
【０２３１】
ウェブサーバ１２０は、プロジェクト管理データベース１２４を参照することにより、ｉＳＣＳＩディスクの使用をキャッシュサーバ１４０に要求する（Ｓ３０１）。ウェブサーバ１２０は、データ入力センタ１００Ａ内のキャッシュサーバ１４０に、リモートコピーを依頼する（Ｓ３０２）。これにより、共有メモリ１４３に、リモートコピー情報Ｔ２０が登録される。
【０２３２】
キャッシュサーバ１４０を経由して論理ボリューム３３０を使用するモードの場合、キャッシュサーバ１４０は、アプリケーションプログラム１２１から指定された論理ボリューム３３０をマウントする（Ｓ３０３）。
【０２３３】
キャッシュサーバ１４０は、リモートコピー情報Ｔ２０を参照し、Ｓ３００で作成されたＶＨＤＬデータを論理ボリューム３３０にコピーする（Ｓ３０４）。キャッシュサーバ１４０は、ＶＨＤＬデータを論理ボリューム３３０にコピーした後、論理ボリューム３３０をアンマウントする（Ｓ３０５）。
【０２３４】
図３０を参照する。ユーザは、入力端末１１０を用いて、処理選択画面Ｇ１１の中からＶＨＤＬデータのコンパイル処理を選択する。図３０では、処理選択画面Ｇ１１を簡略化して示している。
【０２３５】
シミュレーションセンタ２００Ａは、データ入力センタ１００Ａに論理ボリューム３３０の使用を要求する（Ｓ３１０）。シミュレーションセンタ２００Ａは、データ入力センタ１００Ａから論理ボリューム３３０の使用許可が得られた場合、その論理ボリューム３３０をマウントする（Ｓ３１１）。
【０２３６】
データ入力センタ１００Ａは、リモートコピー情報Ｔ２０を参照することにより、シミュレーションセンタ２００Ａにマウントされた論理ボリューム３３０内にリモートコピー対象ファイルが存在するか否かを判定する。その論理ボリューム３３０にリモートコピー対象ファイル（ここでは、Ｓ３０４で書き込まれたＶＨＤＬデータ）が含まれている場合、データ入力センタ１００Ａは、シミュレーションセンタ２００Ａに、そのリモートコピー対象ファイルに関するリモートコピー情報を送信する（Ｓ３１２）。
【０２３７】
シミュレーションセンタ２００Ａは、論理ボリューム３３０からリモートコピー対象ファイルであるＶＨＤＬデータを読み出し、読み出したＶＨＤＬデータをＤＡＳ２２２に書き込む（Ｓ３１３）。シミュレーションセンタ２００Ａは、リモートコピー処理を完了した後、論理ボリューム３３０をアンマウントする（Ｓ３１４）。シミュレーションセンタ２００Ａが論理ボリューム３３０をアンマウントしたことは、データ入力センタ１００Ａのキャッシュサーバ１４０に通知される（Ｓ３１４）。
【０２３８】
そして、シミュレーションセンタ２００Ａは、ＤＡＳ２２２に書き込まれたＶＨＤＬデータをコンパイルする（Ｓ３１５）。このように構成される本実施例も第５実施例と同様の効果を奏する。
【実施例７】
【０２３９】
図３１は、第７実施例によるリモートコピー処理を示すフローチャートである。第１実施例では、第２サーバ２０が論理ボリューム３３からリモートコピー対象ファイルを読み出す契機として、第２サーバ２０がその論理ボリューム３３にアクセスするタイミングを挙げた。即ち、第１実施例では、第２サーバ２０が論理ボリューム３３を使用するときに、その論理ボリューム３３に記憶されたリモートコピー対象ファイルを第２サーバ２０に転送させる。これに対し、本実施例では、別の契機を提案する。
【０２４０】
第１サーバ１０は、リモートコピー要求を受領すると（Ｓ４００）、論理ボリューム３３の使用が可能か否か判定して、使用可能な場合に論理ボリューム３３を第１サーバ１０にマウントする（Ｓ４０１）。
【０２４１】
第１サーバ１０は、リモートコピー対象ファイルを論理ボリューム３３に書込み（Ｓ４０２）、書込みを終了した後で、その論理ボリューム３３をアンマウントする。第１サーバ１０は、リモートコピー情報Ｔ２０を作成し、作成したリモートコピー情報Ｔ２０を共有メモリ１４に登録する（Ｓ４０３）。
【０２４２】
次に、第１サーバ１０は、リモートコピー情報Ｔ２０に基づいて、その論理ボリューム３３に蓄積されたリモートコピー対象ファイルが所定値以上であるか否かを判定する（Ｓ４０４）。例えば、論理ボリューム３３に蓄積させるリモートコピー対象ファイルの数の上限値を予め設定しておき、その上限値とリモートコピー情報Ｔ２０から得られるファイル数とを比較する。
【０２４３】
第１サーバ１０は、所定値以上のリモートコピー対象ファイルが論理ボリューム３３に蓄積された場合、その論理ボリューム３３を使用可能な第２サーバ２０に、リモートコピー対象ファイルの読み出しを要求する（Ｓ４０５）。
【０２４４】
第２サーバ２０は、リモートコピーを確認すべしとの指示が入力されたか否か（Ｓ４１０）、ホスト４０からのアクセス要求を受領したか否か（Ｓ４２）、第１サーバ１０からリモートコピー対象ファイルの読み出しを要求されたか否か（Ｓ４３）を、それぞれ監視している。
【０２４５】
リモートコピーの確認（Ｓ４１０）では、例えば、ユーザやプログラムからリモートコピー対象ファイルの確認が要求されたか否かを判定する。アクセス要求の受領（Ｓ４１１）では、論理ボリューム３３にアクセスする各種コマンド（ライトコマンド、リードコマンド、テストコマンド等）を受領したか否かを判定する。第１サーバ１０からの読み出し要求（Ｓ４１２）では、Ｓ４０５で第１サーバ１０がリモートコピー対象ファイルの読み出しを要求したか否かを判定する。
【０２４６】
Ｓ４１０〜Ｓ４１２のいずれか一つでＹＥＳと判定された場合、第２サーバ２０は、第１サーバ１０に論理ボリューム３３の使用可否を問合せ、論理ボリューム３３の排他権を取得し、その論理ボリューム３３を第１サーバ１０にマウントする（Ｓ４１３）。
【０２４７】
第２サーバ２０は、第１サーバ１０からリモートコピー情報Ｔ２０を取得し（Ｓ４１４）、論理ボリューム３３からリモートコピー対象ファイルを読み出す（Ｓ４１５）。読み出されたファイルは、第２サーバ２０内のＤＡＳ２５に記憶される。第２サーバ２０は、リモートコピー対象ファイルの読み出しが完了した旨を、即ち、リモートコピー処理が完了した旨を、第１サーバ１０に通知する（Ｓ４１６）。
【０２４８】
このように構成される本実施例も第１実施例と同様の効果を奏する。さらに、本実施例では、論理ボリューム３３をアクセスする場合（Ｓ４１１）に加えて、確認を要求された場合（Ｓ４１０）や、第１サーバ１０から読み出しを要求された場合（Ｓ４１２）にも、リモートコピー対象ファイルを論理ボリューム３３から読み出すことができる。従って、リモートコピー対象ファイルが長時間論理ボリューム３３内に蓄積されたままの状態におかれるのを抑制できる。
【０２４９】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０２５０】
【図１】本発明の実施形態の概要を示す説明図である。
【図２】実施例に係るコンピュータシステムの全体を示す構成図である。
【図３】各サーバの構成を示すブロック図である。
【図４】管理情報の一例を示す説明図である。
【図５】第１サーバが実行するリード処理のフローチャートである。
【図６】キャッシュデータ保存処理を示すフローチャートである。
【図７】第１サーバが実行するライト処理のフローチャートである。
【図８】第２サーバが実行するリード処理のフローチャートである。
【図９】リモートコピー処理のフローチャートである。
【図１０】第２サーバが実行するライト処理のフローチャートである。
【図１１】第２サーバが実行するチェック処理のフローチャートである。
【図１２】第１サーバが実行するリモートコピー処理のフローチャートである。
【図１３】リモートコピー情報が作成される様子を示す説明図である。
【図１４】第２サーバがリモートコピー対象ファイルを読み出す様子を示す説明図である。
【図１５】再処理要求処理のフローチャートである。
【図１６】第２に実施例に係る、第２サーバが実行するリード処理のフローチャートである。
【図１７】第２サーバが実行するライト処理のフローチャートである。
【図１８】第３実施例に係るリモートコピー処理のフローチャートである。
【図１９】第４実施例に係るコンピュータシステムの全体を示す説明図である。
【図２０】第５実施例に係るコンピュータシステムの全体を示す説明図である。
【図２１】第１コンピュータセンタの構成を示す説明図である。
【図２２】第２コンピュータセンタの構成を示す説明図である。
【図２３】ｉＳＣＳＩディスクの論理ボリュームを複数のコンピュータが排他的に使用する様子を示す説明図である。
【図２４】ＩＯコマンドの一例を示す説明図である。
【図２５】キャッシュデータを管理する方法等を示す説明図である。
【図２６】サーバ制御部の構成を示す説明図である。
【図２７】ＩＯコマンドの基本的処理を示すフローチャートである。
【図２８】リモートコピー処理を示すフローチャートである。
【図２９】第６実施例に係るコンピュータシステムの一部を示す説明図である。
【図３０】コンピュータシステムの他の部分を示す説明図である。
【図３１】第７実施例に係るリモートコピー方法を示すフローチャートである。
【符号の説明】
【０２５１】
１：第１コンピュータ、１Ａ：第１制御部、１Ｂ：第１記憶装置、１Ｂ１：第１メモリ装置、１Ｂ２：第１補助記憶装置、２：第２コンピュータ、２Ａ：第２制御部、２Ｂ：第２記憶装置、３：共有記憶装置、３Ａ：論理ボリューム、１０：第１サーバ、１０Ａ：演算処理装置、１０Ｂ：メモリ、１０Ｃ：補助記憶装置、１０Ｄ：各種インターフェース回路、１１：コマンド処理部、１２：リモートコピー管理部、１３：キャッシュデータ管理部、１４：共有メモリ、１５：ＤＡＳ、１６：接続制御部、１７：サーバ制御部、２０：第２サーバ、２０Ａ：演算処理装置、２０Ｂ：メモリ、２０Ｃ：補助記憶装置、２０Ｄ：各種インターフェース回路、２１：コマンド処理部、２２：リモートコピー管理部、２５：ＤＡＳ、２６：接続制御部、３０ネットワークストレージ装置、３１：ディスクコントローラ、３２：ｉＳＣＳＩディスク、３３：論理ボリューム、３４：リモートコピー対象ファイル、４０：ホストコンピュータ、４１：ウェブアプリケーション、４２：データベース管理システム、１００：第１コンピュータセンタ、１００Ａ：データ入力センタ、１１０：入力端末、１１１：クライアントプログラム、１２０：ウェブサーバ、１２１：アプリケーションプログラム、１２２：ＩＯコマンド、１２３：キャッシュサーバ通信部、１２４：プロジェクト管理データベース、１３０：ＤＢＭサーバ、１３１：ＤＢＭサーバプログラム、１４０：キャッシュサーバ、１４１：サーバ制御部、１４１Ａ：プロセス間通信コネクション制御、１４１Ｂ：プロセス生成、１４１Ｃ：ＩＯリクエスト、１４２：ｉＳＣＳＩイニシエータ、１４３：共有メモリキャッシュ部、１４４：ＩＯクライアント部、２００：第２コンピュータセンタ、２００Ａ：シミュレーションセンタ、２１０：ジョブ受付サーバ、２１１：ジョブ受付部、２２０：負荷分散コンピュータ、２２１：負荷分散部、２２３：ＩＯコマンド、２２４：ジョブ管理部、２２５：キャッシュサーバ通信部、２３０：ジョブ実行コンピュータ、２３１：実行ジョブ、２３２：ＩＯコマンド、２３３：キャッシュサーバ通信部、２３４：ｉＳＣＳＩイニシエータ、３００：第３コンピュータセンタ、３００Ａ：データ記憶センタ、３１０：ｉＳＣＳＩサーバ、３２０：ｉＳＣＳＩディスク、３３０：論理ボリューム、５００：ＩＯ情報受信、５１０：キャッシュ制御、５１１：キャッシュデータ管理機能、５１２：ストレージ管理機能、５１３：データ送信機能、５２０：ストレージ管理、５２２：ｉＳＣＳＩプロトコル、５３０：キャッシュデータ管理、５４０：データ送信、５４１：プロセス間通信、Ｄ２：所在管理情報、Ｄ３，Ｄ４：キャッシュデータ、Ｔ１０：管理情報、Ｔ２０：リモートコピー情報。
【図１】
2009181167.tif 000003
【図２】
2009181167.tif 000004
【図３】
2009181167.tif 000005
【図４】
2009181167.tif 000006
【図５】
2009181167.tif 000007
【図６】
2009181167.tif 000008
【図７】
2009181167.tif 000009
【図８】
2009181167.tif 000010
【図９】
2009181167.tif 000011
【図１０】
2009181167.tif 000012
【図１１】
2009181167.tif 000013
【図１２】
2009181167.tif 000014
【図１３】
2009181167.tif 000015
【図１４】
2009181167.tif 000016
【図１５】
2009181167.tif 000017
【図１６】
2009181167.tif 000018
【図１７】
2009181167.tif 000019
【図１８】
2009181167.tif 000020
【図１９】
2009181167.tif 000021
【図２０】
2009181167.tif 000022
【図２１】
2009181167.tif 000023
【図２２】
2009181167.tif 000024
【図２３】
2009181167.tif 000025
【図２４】
2009181167.tif 000026
【図２５】
2009181167.tif 000027
【図２６】
2009181167.tif 000028
【図２７】
2009181167.tif 000029
【図２８】
2009181167.tif 000030
【図２９】
2009181167.tif 000031
【図３０】
2009181167.tif 000032
【図３１】
2009181167.tif 000033