(57)【要約】【課題】  種類の異なるディスクシステムが混在するヘテロ環境下において、データ保証を可能とすること。【解決手段】  ローカルディスクシステム１０のキャッシュコントローラ２７は、ホストコンピュータ１からデータ書込み要求を受信すると、ディスク装置群３０上のローカルディスクにデータを記憶する。ホストコンピュータ１から受信したデータは、リモートディスクシステム４０にも送信され、リモートディスクに記憶される。リモートディスクに記憶されたデータを直ちに読み出し、リモートディスクに書き込まれたデータとローカルディスクに書き込まれたデータとを比較する。これにより、ローカルディスクシステム側でリモート側のデータ保証を代替処理することで、ヘテロ環境下の記憶システムでもリモートコピー時のデータ保証を行うことができる。【選択図】        図２
2005025683.tif 000002
【特許請求の範囲】
【請求項１】
正記憶システムと、前記正記憶システムとは異なる種類の副記憶システムとを接続して構成され、上位装置との間でデータを送受信する記憶システムであって、
前記正記憶装置システムは、
前記上位装置からデータ書込み要求を受信する受信手段と、
前記受信したデータ書込み要求に応じて、書込みを要求されたデータを保持するデータ保持手段と、
前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記副記憶システム側に転送し保持させる転送手段と、
前記副記憶システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証手段と、
を備えて構成されている記憶装置システム。
【請求項２】
前記副記憶装置システムは、前記正記憶装置システムから利用可能なデータ保証機能を備えていない請求項１に記載の記憶システム。
【請求項３】
前記データ保証手段は、前記副記憶装置システムに転送された前記データを前記副記憶装置システムから読出し、前記データ保持手段に保持されているデータと比較することにより、データ保証を行うものである請求項１に記載の記憶システム。
【請求項４】
前記データ保証手段は、
前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、
前記生成された保証コードを保持する保証コード保持手段と、
前記副記憶装置システムから読み出されたデータに基づいて保証コードを抽出する抽出手段と、
前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、
を備えて構成されている請求項１に記載の記憶システム。
【請求項５】
前記データ保証手段は、
前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、
前記生成された保証コードを保持する保証コード保持手段と、
前記生成された保証コードと前記書込みを要求されたデータとを関連付けて保証コード付きデータとして前記転送手段により前記副記憶装置システムに転送し保持させる保証コード付きデータ転送手段と、
前記副記憶装置システムから読み出された前記保証コード付きデータから保証コードを抽出する抽出手段と、
前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、
を備えて構成されている請求項１に記載の記憶システム。
【請求項６】
前記保証コード付きデータは、前記副記憶装置システムにより前記書込みを要求されたデータとして認識されるように構成されている請求項５に記載の記憶システム。
【請求項７】
前記データ保証手段の作動を制御するためのデータ保証選択手段を備えた請求項１に記載の記憶システム。
【請求項８】
前記データ保証手段は複数のデータ保証モードを備えており、前記データ保証選択手段は、前記各データ保証モードのうち少なくともいずれか１つを選択するものである請求項７に記載の記憶システム。
【請求項９】
前記データ保証手段は、
（１）前記書込みを要求されたデータを前記副記憶装置システムに転送して保持させ、前記副記憶システムに保持された前記データを読み出して、前記正記憶装置システム内に保持されたデータと比較することにより、データの保証を行う第１の保証モードと、
（２）前記書込みを要求されたデータに基づいて生成される保証コードを前記正記憶装置システム内で保持し、前記副記憶装置システムから読み出されるデータから抽出される保証コードと前記正記憶装置システム内に保持された保証コードとを比較することにより、データの保証を行う第２の保証モードと、
（３）前記書込みを要求されたデータに基づいて生成される保証コードを前記正記憶装置システム内で保持し、前記保証コードと前記データとを関連付けて構成される保証コード付きデータを前記副記憶装置システムに転送して保持させ、前記副記憶装置システムから読み出される前記保証コード付きデータから抽出される保証コードと前記正記憶装置システム内に保持される保証コードとを比較することにより、データの保証を行う第３の保証モードと、
のうち少なくともいずれか２つ以上の保証モードを備えている請求項８に記載の記憶システム。
【請求項１０】
データ入出力に関するサポート機能がそれぞれ異なる複数種類の記憶装置システムが混在する記憶システムにおいて、
前記複数種類の記憶装置システムのうち高機能の記憶装置システムが、前記複数種類の記憶装置システムのうち低機能の記憶装置システム用の所定のサポート機能を代替処理で実行する記憶システム。
【請求項１１】
前記高機能の記憶装置システムは、前記所定のサポート機能を実行する所定のイベントが発生したか否かを判定する判定手段と、
前記所定のイベントが発生したと判定された場合は、前記所定のサポート機能を前記低機能の記憶装置システムに代わって代替処理で実行する代替処理手段とを備えている請求項１０に記載の記憶システム。
【請求項１２】
前記代替処理手段は、前記所定のサポート機能を同期処理又は非同期処理で実行する請求項１１に記載の記憶システム。
【請求項１３】
前記代替処理手段は、前記所定のサポート機能に係るデータに冗長データを加えることなく、又は、前記所定のサポート機能に係るデータに該データに由来する冗長データを付加することにより、前記所定のサポート機能を代替処理する請求項１１に記載の記憶システム。
【請求項１４】
前記代替処理手段による前記所定のサポート機能の代替処理の動作モードを選択する選択手段を備えた請求項１１に記載の記憶システム。
【請求項１５】
上位装置及び異種類の記憶装置システムにそれぞれ接続される記憶装置システムにおいて、
前記上位装置からデータ書込み要求を受信する受信手段と、
前記受信したデータ書込み要求に応じて、書込みを要求されたデータを保持するデータ保持手段と、
前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記異種類の記憶装置システム側に転送し保持させる転送手段と、
前記異種類の記憶装置システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証手段と、
を備えて構成されている記憶装置システム。
【請求項１６】
前記データ保証手段は、前記異種類の記憶装置システムに転送された前記データを前記異種類の記憶装置システムから読出し、前記データ保持手段に保持されているデータと比較することにより、データ保証を行うものである請求項１５に記載の記憶装置システム。
【請求項１７】
前記データ保証手段は、
前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、
前記生成された保証コードを保持する保証コード保持手段と、
前記異種類の記憶装置システムから読み出されたデータに基づいて保証コードを抽出する抽出手段と、
前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、
を備えて構成されている請求項１５に記載の記憶装置システム。
【請求項１８】
前記データ保証手段は、
前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、
前記生成された保証コードを保持する保証コード保持手段と、
前記生成された保証コードと前記書込みを要求されたデータとを関連付けて保証コード付きデータとして前記転送手段により前記異種類の記憶装置システムに転送し保持させる保証コード付きデータ転送手段と、
前記異種類の記憶装置システムから読み出された前記保証コード付きデータから保証コードを抽出する抽出手段と、
前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、
を備えて構成されている請求項１５に記載の記憶装置システム。
【請求項１９】
上位装置及び異種類の記憶装置システムにそれぞれ接続される記憶装置システムを制御するためのプログラムであって、
前記上位装置から受信したデータ書込み要求に応じて、書込みを要求されたデータを記憶手段に保持させるローカル側保持機能と、
前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記異種類の記憶装置システム側に転送し保持させる転送機能と、
前記異種類の記憶装置システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証機能と、
を実現するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、それぞれ異種類の正記憶装置システムと副記憶装置システムとの間でリモートコピーを実行可能な記憶システム及び記憶装置システムに関する。
【背景技術】
【０００２】
例えば、大容量のデータを取り扱う基幹業務用のデータベースシステムでは、ホストコンピュータとは別体に構成された記憶装置システムを用いて、データを管理している。この記憶装置システムは、ディスクアレイ装置とも呼ばれ、多数のディスク記憶装置をアレイ状に配設して構成されているものである。記憶装置システムは、例えば、RAID（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。記憶装置システムが有する物理的な記憶領域上には、仮想的な記憶領域である論理ボリュームが形成されている。ホストコンピュータ上で作動する業務用アプリケーションプログラム（以下、ホストコンピュータ）は、記憶装置システムに対して所定形式の書込みコマンド又は読出しコマンドを発行することにより、所望のデータの読み書きを行うことができる。
【０００３】
例えば、データの書込みを行う場合について説明する。ホストコンピュータによるデータ操作の結果は、ホストコンピュータのバッファに一時的に記憶されている。ホストコンピュータによる一連のデータ操作が終了して区切りがつくと（トランザクション単位のコミット等）、ホストコンピュータは、データベースの更新を行わせるべく、記憶装置システムにデータ書込み要求（書込みコマンド）を送信する。この書込み要求には、記憶装置システムに書き込むべき一つ以上の（通常は多数の）データが含まれている。記憶装置システムは、ホストコンピュータからデータ書込み要求を受信すると、書込み要求に含まれるデータをキャッシュメモリに記憶する。キャッシュメモリに記憶されたデータは、アドレス変換等が行われた後で、所定のディスク装置の所定領域に記憶される。書込みが要求されたデータを所定の記憶領域に格納すると、記憶装置システムは、ホストコンピュータに書込み完了を報告する。
【０００４】
ここで、記憶装置システムは、複数のディスク記憶装置にデータを分散して記憶し、冗長性を高めてデータの安全性を確保することができる。さらに、地震等の災害に備えて、物理的に離れた遠隔地の記憶装置システムに同一のデータをコピーして保存するリモートコピーも可能である。リモートコピーでは、物理的に離れて存在する複数の記憶装置システム同士を専用回線または公衆回線を介して相互に接続し、ホストコンピュータを介さずに、各記憶装置システム間で直接的にデータをコピーする。これにより、コピー元の記憶装置システム（以下、ローカル側記憶装置システム）に形成される正論理ボリュームとコピー先の記憶装置システム（以下、リモート側記憶装置システム）に形成される副論理ボリュームとは、一対一に対応し、互いに同一内容のデータを保持する。従って、障害等によってローカル側記憶装置システムのデータの全部または一部が失われた場合等でも、ホストコンピュータは、リモート側記憶装置システムの副論理ボリュームのデータを用いてデータ処理を行うことができる。なお、記憶装置システムは、リモートコピーとは別に、データのバックアップを定期的に又は不定期に取るようになっており、バックアップデータとジャーナルデータとに基づいて、所定時点までデータを回復させることができる。
【０００５】
リモートコピーは、同期式と非同期式とに大別することができる。同期式のリモートコピーの場合は、ホストコンピュータからのデータ書込み要求がローカル側記憶装置システムに送信されると、ローカル側記憶装置システムは、受信したデータ（書込みが要求されたデータ）をキャッシュメモリに記憶した後、通信回線を経由してリモート側記憶装置システムにデータを転送する。リモート側記憶装置システムは、データを受信してキャッシュメモリに記憶すると、データ受信を示す応答信号をローカル側記憶装置システムに送信する。ローカル側記憶装置システムは、リモート側記憶装置システムからの応答信号を受信すると、データ書込みが正常に行われた旨の書込み完了報告をホストコンピュータに通知する。このように、同期式リモートコピーでは、ホストコンピュータからのデータ書込み要求とリモート側記憶装置システムへのデータ転送とが同期して実行される。従って、同期式リモートコピーでは、リモート側記憶装置システムからの応答を待つ時間だけ遅延が生じるため、ローカル側記憶装置システムとリモート側記憶装置システムとの間の距離が比較的短距離である場合に適している。逆に、ローカル側とリモート側の各記憶装置システム間が遠距離の場合は、応答遅延や伝播遅延の問題から、一般的に同期式リモートコピーは適さない。
【０００６】
一方、非同期式リモートコピーの場合、ローカル側記憶装置システムは、ホストコンピュータからのデータ書込み要求を受信すると、受信データをキャッシュメモリへ記憶し、直ちにホストコンピュータに書込み完了報告を行う。ローカル側記憶装置システムは、ホストコンピュータへ書込み完了報告を行った後で、リモート側記憶装置システムにデータを転送する。即ち、ホストコンピュータへの書込み完了報告とリモート記憶装置システムへのデータ転送とは、非同期で行われる。従って、非同期式リモートコピーの場合は、各記憶装置システム間の距離とは無関係に、速やかに書込み完了報告をホストコンピュータに送信することができる。このため、各記憶装置システム間の距離が比較的遠距離である場合に適している。逆に、ホストコンピュータへ書込み完了報告を行う時点では、リモート記憶装置システムへのデータ転送がまだ行われていないため、書込み完了報告がされても、正論理ボリュームの記憶内容と副論理ボリュームの記憶内容とが同一である保証はない。
【０００７】
ところで、記憶装置システムの信頼性を図る一つの観点は、ホストコンピュータが要求した通りに正しくデータを記憶し、また、ホストコンピュータが要求した通りの正しいデータを読み出すことができるかどうかである。このため、記憶装置システムでは、データ転送中のビットエラーを防止すべく、例えば、ＬＲＣ（Longitudinal Redundancy Check：水平冗長検査）やＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）、ＥＣＣ（Error-Correcting Code）等の技術を採用する。しかし、記憶装置システムでは、複数のディスク記憶装置を並列動作させてデータの入出力を行うために、所定のアドレス変換を行ってデータを分割して処理する。従って、分割したデータの異常アドレスに対処するのが難しい。そこで、転送元アドレスのような転送対象のデータを特定可能な保証コードをデータに付加することにより、記憶装置システム内で、データが正しく転送されたか否かを保証する技術も提案されている（特許文献１参照）。
【特許文献１】特開２０００−３４７８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来技術では、保証コードをデータに付加することにより、記憶装置システムの内部でデータ転送が正しく行われたか否かを保証するため、単一の記憶装置システムで運用される記憶システムであれば、十分なデータ保証を行うことも可能である。しかし、異種類の記憶装置システムが混在するいわゆるヘテロ環境下では、各記憶装置システム間でデータ保証方式がそれぞれ異なる可能性が高く、また、類似のデータ保証方式を採用している場合であっても、データ保証コードの構成や検証方法等の細部が相違する。従って、ある記憶装置システムから別の記憶装置システムに転送したデータが正しく記憶された否か、又は、ある記憶装置システムから別の記憶装置システムに読み出されたデータが正しいデータであるか否かを保証することは難しい。ここで、ヘテロ環境とは、例えば、それぞれ供給者が異なる複数種類の記憶装置システムが混在する環境を意味し、例えば、データ入出力に関する基本的機能は共通するがデータ転送時の保証機能のような周辺のサポート機能等で相違する異なる種類の記憶装置システムを、相互に接続して運用する記憶環境を意味する。
【０００９】
一つの記憶システムが同一供給者により提供される複数の記憶装置システムだけで構成されている場合は、上述したＬＲＣ等のエラー訂正技術だけで充分であり、各記憶装置システム間で転送されるデータが正しく記憶されたか否か、正しく読み出されたデータであるか否かまで考慮する必要がない。また、供給者は、各記憶装置システムの内部構造を把握しているため、各記憶装置システムのバージョンや処理性能等が異なる場合でも、必要があれば比較的簡単に、各記憶装置システム間を転送されるデータの保証を行うことができる。
【００１０】
しかし、供給者がそれぞれ異なる複数種類の記憶装置システムが混在するヘテロ環境下では、各供給者が統一されたデータ保証方式を採用等する場合を除き、各供給者の記憶装置システム間を転送されるデータが正しいデータであるか否かを保証することは難しい。ある供給者が採用するデータ保証方式は、他の供給者の記憶装置システムにそのまま適用することができず、また、自分以外の他の供給者が提供する記憶装置システムの内部構造等を勝手に改造等することはできないためである。従って、ヘテロ環境下では、仕様や性能等が種々相違する各記憶装置システム間を転送されるデータの信頼性を充分に確保することができず、その改善が求められている。
【００１１】
本発明は、上記の問題点に鑑みてなされたもので、その目的は、それぞれ異なる種類の記憶装置システムが混在する記憶システムにおいて、各記憶装置システム間を転送されるデータを保証することができる記憶システム及び記憶装置システムを提供することにある。本発明の他の目的は、サポート機能がそれぞれ異なる複数種類の記憶装置システムを接続する記憶システムにおいて、高機能の記憶装置システム側で低機能の記憶装置システム側の処理を代替処理可能な記憶システムを提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１２】
上記課題を解決すべく、本発明に従う記憶システムは、それぞれ異なる種類の正記憶装置システムと副記憶装置システムとを相互に接続して構成され、上位装置との間でデータを送受信する記憶システムであって、前記正記憶装置システムは、前記上位装置からデータ書込み要求を受信する受信手段と、前記受信したデータ書込み要求に応じて、書込みを要求されたデータを保持するデータ保持手段と、前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記副記憶システム側に転送し保持させる転送手段と、前記副記憶システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証手段と、を備えて構成されている。
【００１３】
正記憶装置システムは、上位装置により利用される正のデータ群を保持し、副記憶装置システムは、正のデータ群を一対一でコピーしてなる副データ群を保持している。正記憶装置システムと副記憶装置システムとは、例えば、別々の供給者（製造者）により提供されるもので、それぞれ種類が相違する。種類の相違とは、少なくとも各記憶装置システム間でデータ保証機能に相違がある場合を含む意味である。
【００１４】
正記憶装置システムは、上位装置からデータ書込み要求を受信すると、受信データを自機内に保持すると共に、副記憶装置システムにもデータを転送する。さらに、正記憶装置システムは、データ保証手段によって、副記憶装置システムに保持されたデータが正しいデータであるか否か、即ち、副記憶装置システムに転送されたデータが正しく保持されているか、副記憶装置システムから読み出されるデータが正しいデータであるかを検査して保証する。このように、本発明に従う記憶システムでは、正記憶装置システムが副記憶装置システムのデータ保証まで代わりに行うようになっている。従って、正記憶装置システムが、異なる種類の副記憶装置システムと接続されている場合、特に、正記憶装置システムから利用可能なデータ保証機能を備えていない副記憶装置システムと接続されている場合でも、副記憶装置システムに転送されるデータを保証することができ、記憶システムの信頼性を向上させることができる。ここで、正記憶装置システムから利用可能なデータ保証機能を備えていない場合には、副記憶装置システムがデータ保証機能を最初から備えていない場合も含まれる。なお、上位装置への書込み完了報告は、データ保証方式に応じて、副記憶装置システムへのデータ転送と同時に（同期処理）、又は、副記憶装置システムへのデータ転送とは別に（非同期処理）行うことができる。
【００１５】
本発明の一態様では、前記データ保証手段は、前記副記憶装置システムに転送された前記データを前記副記憶装置システムから読出し、前記データ保持手段に保持されているデータと比較することにより、データ保証を行う。
【００１６】
即ち、例えば、正記憶装置システムから副記憶装置システムにデータを転送した後で、この転送したデータを副記憶装置システムから読出し、元のデータと照合することにより、副記憶装置システムに正しくデータが保持されているか否かを検査して保証する。副記憶装置システムは、正記憶装置システムから転送されたデータを保持し、正記憶装置システムからの読出し要求に応じてデータを転送するだけの機能を備えていればよく、データ保証のための新たな機能追加等は必要ない。
【００１７】
本発明の他の態様では、前記データ保証手段は、前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、前記生成された保証コードを保持する保証コード保持手段と、前記副記憶装置システムから読み出されたデータに基づいて保証コードを抽出する抽出手段と、前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、を備えて構成されている。
【００１８】
即ち、正記憶装置システムは、上位装置からデータ書込み要求を受信すると、書込みが要求されたデータに基づいて保証コードを生成する。この保証コードは、書込みが要求されたデータの属性（例えば、論理アドレスやエラー訂正用の冗長符号等）に基づいて生成される。生成された保証コードは、正記憶装置システム内だけで保持され、副記憶装置システムにはデータのみが転送される。副記憶装置システムからデータを読み出した場合に、この読み出したデータに基づいて保証コードを抽出し、正記憶装置システム内に保持されていた保証コードと比較する。正側と副側の２つの保証コードが一致する場合は、正しくデータ転送が行われたことを示し、両コードが一致しない場合は、エラーが発生したものと判定することができる。
【００１９】
本発明の更に別の態様では、前記データ保証手段は、前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、前記生成された保証コードを保持する保証コード保持手段と、前記生成された保証コードと前記書込みを要求されたデータとを関連付けて保証コード付きデータとして前記転送手段により前記副記憶装置システムに転送し保持させる保証コード付きデータ転送手段と、前記副記憶装置システムから読み出された前記保証コード付きデータから保証コードを抽出する抽出手段と、前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、を備えて構成されている。
【００２０】
即ち、上位装置からデータ書込み要求を受信すると、正記憶装置システムは、受信データに基づいて保証コードを生成し、保持する。さらに、正記憶装置システムは、生成した保証コードと受信データとを関連付けて「保証コード付きデータ」として副記憶装置システムに転送する。そして、正記憶装置システムは、副記憶装置システムから保証コード付きデータを読出し、この読み出した保証コード付きデータから保証コードを抽出する。副記憶装置システムから読み出した保証コード付きデータから抽出される保証コードと正記憶装置システムに保持されている保証コードとを比較することにより、副記憶装置システムにデータが正しく保持されているか否かを判定して保証することができる。
【００２１】
ここで、前記保証コード付きデータは、前記副記憶装置システムにより前記書込みを要求されたデータとして認識されるように構成することができる。即ち、上位装置からの受信データの外側に保証コードを付加するのではなく、保証コードと受信データとを一体化させることにより、保証コード付きデータをあたかも上位装置からの受信データであるかのように見せかける。従って、予め受信データのデータ長が所定値（例えば、512bit等）に固定されている場合は、保証コードを一体化させる分だけ受信データのデータ長は標準のデータ長よりも長くなる。
【００２２】
本発明の別の態様では、前記データ保証手段の作動を制御するためのデータ保証選択手段を備えている。
【００２３】
ここで、データ保証手段の作動を制御するとは、データ保証手段によるデータ保証を行うか否かの選択のほかに、データ保証を行う場合のモード選択等が含まれる。また、副記憶装置システム毎にそれぞれ異なるモードでデータ保証を行うように選択することもできる。本発明に従う記憶システムでは、正記憶装置システム側で副記憶装置システム側のデータ保証も一括して行うため、正記憶装置システム側の処理負担が増大する。従って、記憶システムを構成する全ての副記憶装置システムについて、一律にデータ保証を行うのではなく、正記憶装置システムの処理性能やメモリ容量等を考慮し、必要に応じてデータ保証を作動可能にするのが好ましい。
【００２４】
本発明の別の態様では、前記データ保証手段は複数のデータ保証モードを備えており、前記データ保証選択手段は、前記各データ保証モードのうち少なくともいずれか１つを選択するようになっている。
【００２５】
即ち、例えば、正記憶装置システムの処理性能やメモリ容量等を考慮して、データ保証モードを自動的に又はユーザの手動操作により選択することができるようになっている。また、各アプリケーション毎に、又は各副記憶装置システム毎に、データ保証モードをそれぞれ選択するようにしてもよい。適切なデータ保証モードを設定することにより（データ保証を行わない場合も含む）、記憶システムの信頼性を維持しながら効率的に運用することができる。
【００２６】
ここで、前記データ保証手段は、
（１）前記書込みを要求されたデータを前記副記憶装置システムに転送して保持させ、前記副記憶システムに保持された前記データを読み出して、前記正記憶装置システム内に保持されたデータと比較することにより、データの保証を行う第１の保証モードと、（２）前記書込みを要求されたデータに基づいて生成される保証コードを前記正記憶装置システム内で保持し、前記副記憶装置システムから読み出されるデータから抽出される保証コードと前記正記憶装置システム内に保持された保証コードとを比較することにより、データの保証を行う第２の保証モードと、
（３）前記書込みを要求されたデータに基づいて生成される保証コードを前記正記憶装置システム内で保持し、前記保証コードと前記データとを関連付けて構成される保証コード付きデータを前記副記憶装置システムに転送して保持させ、前記副記憶装置システムから読み出される前記保証コード付きデータから抽出される保証コードと前記正記憶装置システム内に保持される保証コードとを比較することにより、データの保証を行う第３の保証モードと、のうち少なくともいずれか２つ以上の保証モードを備えることができる。
【００２７】
即ち、第１の保証モードは、副記憶装置システムに転送したデータを直ちに読み出して、正記憶装置システム内に保持されているデータと照合することにより、データ保証を行うものである。この第１の保証モードは、簡単な構成で実現することができ、正記憶装置システム側の処理負担も少なく、容易に導入することができる。しかし、副記憶装置システムにデータを転送する度にデータを読み出して照合するため、上位装置からの書込み要求に対する応答（書込み完了報告の送信）が遅くなる。従って、正と副の記憶装置システム間の距離が比較的短い場合や正記憶装置システムの処理性能等に余力が乏しい場合に有効である。また、第１の保証モードでは、副記憶装置システムにデータを転送するとき、即ち、副記憶装置システムにリモートコピーを行う時点でデータ保証を行い、副記憶装置システムからのデータ読出し時にはデータ保証を行わないので、保証の信頼度は相対的に低くなる。第２の保証モードでは、正記憶装置システムは、上位装置から受信したデータに基づいて保証コードを生成して管理し、副記憶装置システムには受信データのみを転送する。従って、副記憶装置システムからのデータ読出し時に保証コード同士を照合することにより、データの保証を行うことができ、第１の保証モードよりも信頼性は高くなる。しかし、正記憶装置システム側で保証コードを管理する必要があり、その分だけ正記憶装置システムの処理負担は増大する。第３の保証モードは、正記憶装置システムで生成した保証コードを上位装置からの受信データに関連付けて保証コード付きデータとし、この保証コード付きデータを副記憶装置システムに転送して保持させる。データに保証コードが付加されているので、データ保証の信頼性は最も高くなる。しかし、データに付加される保証コードの分だけ、副記憶装置システムの記憶容量を圧迫する。また、保証コード付きデータ全体として上位装置からの受信データのように見せかけることにより、副記憶装置システム側では、保証コードをデータと分離して管理等する必要が無くなる。しかし、保証コードの分だけデータサイズが大きくなり、副記憶装置システムの記憶領域のフォーマットと異なる可能性が高いため、既存の記憶領域に適用する場合は、例えば、既存データを全て読出してフォーマットをやり直す等の工夫が必要となる。
【００２８】
本発明の別の観点に従う記憶システムは、データ入出力に関するサポート機能がそれぞれ異なる複数種類の記憶装置システムが混在する記憶システムであって、前記複数種類の記憶装置システムのうち高機能の記憶装置システムが、前記複数種類の記憶装置システムのうち低機能の記憶装置システム用の所定のサポート機能を代替処理で実行する。
【００２９】
データ入出力に関するサポート機能とは、データ入出力操作という基本機能を直接的に又は間接的に補助する機能を意味し、例えば、データ入力時やデータ出力時に正しいデータが取り扱われているか否かを保証するデータ保証機能等を挙げることができる。基本的なデータ入出力機能が共通する複数の記憶装置システムを相互に接続してなる記憶システムでは、例えば、各供給者の設計思想等の相違から、各記憶装置システム毎に副次的なサポート機能がそれぞれ相違する場合がある。また、各供給者毎に、記憶装置システムのＣＰＵ性能や搭載メモリ量、記憶装置システムに実装されるプログラム部品等が種々相違する。そこで、本発明に従う記憶システムでは、それぞれ異なる複数種類の記憶装置システムのうち、高機能の記憶装置システムが低機能の記憶装置システム用の所定のサポート機能を代替処理で実行する。換言すれば、他の記憶装置システムをサポート可能な余力のある高機能（高性能）の記憶装置システムで、低機能の記憶装置システムに用いられる所定のサポート機能を実行させる。これにより、高機能の記憶装置システムが所定のサポート機能を主導することができ、複数種類の記憶装置システムが混在する環境下でも、所定の信頼性を確保することができる。
【００３０】
例えば、前記高機能の記憶装置システムは、前記所定のサポート機能を実行する所定のイベントが発生したか否かを判定する判定手段と、前記所定のイベントが発生したと判定された場合は、前記所定のサポート機能を前記低機能の記憶装置システムに代わって代替処理で実行する代替処理手段とを備えている。
【００３１】
前記代替処理手段は、前記所定のサポート機能を同期処理又は非同期処理で実行することができる。
【００３２】
ここで、同期処理とは、所定のサポート機能を実行すべき所定のイベントの発生時と所定のサポート機能の実行時とが略同期していることを意味し、非同期処理とは、所定のイベントの発生と所定のサポート機能の実行とが同期せずに別々のタイミングで行われることを意味する。
【００３３】
前記代替処理手段は、前記所定のサポート機能に係るデータに冗長データを加えることなく、又は、前記所定のサポート機能に係るデータに該データに由来する冗長データを付加することにより、前記所定のサポート機能を代替処理することができる。
【００３４】
例えば、代替処理手段は、所定のサポート機能に係るデータに何ら冗長データを加えることなく、データ操作の方法を変える等して所定のサポート機能を実行することができる場合がある。また、代替処理手段は、所定のサポート機能に係るデータに冗長データ（例えば、データに由来する冗長データ）を付加することにより、所定のサポート機能を実行できる場合がある。
【００３５】
本発明の一態様では、前記代替処理手段による前記所定のサポート機能の代替処理の動作モードを選択する選択手段を備えている。
【００３６】
動作モードには、所定のサポート機能の代替処理を行わない場合も含む。高機能の記憶装置システムの処理性能やメモリ容量等を考慮して、適切な動作モードを選択することにより、異種類の記憶装置システムが混在する記憶システムの利便性を高めつつ、効率的に運用することができる。
【００３７】
本発明の他の観点に従う記憶装置システムは、上位装置及び異種類の記憶装置システムにそれぞれ接続される記憶装置システムであって、前記上位装置からデータ書込み要求を受信する受信手段と、前記受信したデータ書込み要求に応じて、書込みを要求されたデータを保持するデータ保持手段と、前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記異種類の記憶装置システム側に転送し保持させる転送手段と、前記異種類の記憶装置システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証手段と、を備えて構成されている。
【００３８】
前記データ保証手段は、前記異種類の記憶装置システムに転送された前記データを前記異種類の記憶装置システムから読出し、前記データ保持手段に保持されているデータと比較することにより、データ保証を行うことができる。
【００３９】
また、前記データ保証手段は、前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、前記生成された保証コードを保持する保証コード保持手段と、前記異種類の記憶装置システムから読み出されたデータに基づいて保証コードを抽出する抽出手段と、前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、を備えて構成することができる。
【００４０】
さらに、前記データ保証手段は、前記受信手段が前記データ書込み要求を受信した場合に、書込みを要求されたデータに基づいて保証コードを生成する保証コード生成手段と、前記生成された保証コードを保持する保証コード保持手段と、前記生成された保証コードと前記書込みを要求されたデータとを関連付けて保証コード付きデータとして前記転送手段により前記異種類の記憶装置システムに転送し保持させる保証コード付きデータ転送手段と、前記異種類の記憶装置システムから読み出された前記保証コード付きデータから保証コードを抽出する抽出手段と、前記保証コード保持手段により保持されている保証コードと前記抽出手段により抽出された保証コードとを比較することにより、データ保証を行う比較手段と、を備えて構成することができる。
【００４１】
本発明のさらに別の観点に従うプログラムは、上位装置及び異種類の記憶装置システムにそれぞれ接続される記憶装置システムを制御するためのプログラムであって、前記上位装置から受信したデータ書込み要求に応じて、書込みを要求されたデータを記憶手段に保持させるローカル側保持機能と、前記受信したデータ書込み要求に応じて、前記書込みを要求されたデータを前記異種類の記憶装置システム側に転送し保持させる転送機能と、前記異種類の記憶装置システム側に保持された前記データが正しいデータであるか否かを保証するデータ保証機能と、を実現する。
【発明を実施するための最良の形態】
【００４２】
以下、図１〜図１２に基づき、本発明の実施の形態を説明する。
【実施例１】
【００４３】
図１〜図３に基づいて、本発明の第１の実施の形態を説明する。本実施例による記憶システムは、それぞれ種類の異なる正記憶装置システム１０と副記憶装置システム４０とを相互に接続して構成されており、ホストコンピュータ１により利用されるようになっている。
【００４４】
ホストコンピュータ１は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等を備えたコンピュータシステムである。ホストコンピュータ１のＣＰＵが各種プログラムを実行することにより、種々の機能が実現される。ホストコンピュータ１は、例えば、パーソナルコンピュータやワークステーション、あるいはメインフレームコンピュータとして構成される。
【００４５】
あるホストコンピュータ１は、記憶装置システム１０とＬＡＮ（Local Area Network）２を介して接続することができる。また、別のホストコンピュータ１は、ＳＡＮ（Storage Area Network）３を介して記憶装置システム１０，４０とそれぞれ接続することもできる。また、ホストコンピュータ１は、図示せぬ専用線を介して直接的に記憶装置システム１０と接続も可能である。
【００４６】
ＬＡＮ２は、例えば、インターネットようなネットワークでもよいし、又は専用ネットワークでもよい。ＬＡＮ２を介して行われるデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ＬＡＮ２に接続されたホストコンピュータ１は、記憶装置システム１０に対して所定のコマンドを送信することにより、ファイル名指定によるデータアクセス要求（ファイル単位でのデータ入出力要求）を行うことができる。
【００４７】
ＳＡＮ３は、ディスク装置群３０又はディスク装置群６０により提供される記憶領域のデータ管理単位であるブロックを単位として、データの授受を行うためのものである。ＳＡＮ３を介して行われる通信は、一般に、ファイバチャネルプロトコルに従う。ＳＡＮ３に接続されたホストコンピュータ１は、ファイバチャネルプロトコルに従って、ブロック単位でのデータアクセス要求を行うようになっている。
【００４８】
また、ＳＡＮ３側のみ図示するが、ＬＡＮ２及びＳＡＮ３には、それぞれバックアップ装置４が接続されている。バックアップ装置４としては、例えば、ＭＯ（magneto-optic：光磁気型記憶装置）、ＣＤ−Ｒ（CD-Recordable：読み書き可能なコンパクトディスク）、DVD-RAM（Digital Versatile Disk-RAM：読み書き可能なDVD）等のディスク系記憶デバイスや、例えば、ＤＡＴ（Digital Audio Tape）テープ、カセットテープ、オープンテープ、カートリッジテープ等のテープ系記憶デバイス等を用いることができる。バックアップ装置４は、ディスク装置群３０と通信を行うことにより、定期的に又は不定期にディスク装置群３０に記憶されているデータのバックアップを取ることができる。
【００４９】
本記憶システムは、それぞれ異なる種類の記憶装置システム１０，４０を備えている。より多くの記憶装置システムから構築することもできるが、説明の便宜上２つの記憶装置システム１０，４０を例に挙げて説明する。
【００５０】
一方の記憶装置システム１０は、ホストコンピュータ１の近傍に設置されたローカルディスクシステム（プライマリサイト）であり、そのディスク装置群３０には正論理ボリュームが論理的に形成される。他方の記憶装置システム４０は、ローカルディスクシステムから離れた場所に設置されるリモートディスクシステム（セカンダリサイト）であり、そのディスク装置群６０には、正論理ボリュームに対応する副論理ボリュームが形成されている。
【００５１】
以下、正記憶装置システム１０をローカルディスクシステム、副記憶装置システム４０をリモートディスクシステムとそれぞれ呼ぶことにする。ここで、ローカルディスクシステム１０とリモートディスクシステム４０とは、それぞれ供給者（製造者）が相違し、データ入出力に関する基本的仕様は共通するが、データ保証等のサポート機能は互いに相違している。即ち、図示の記憶システムは、それぞれ異なる種類のディスクシステム１０，４０が混在するというヘテロ環境になっている。
【００５２】
まず、ローカルディスクシステム１０の構成について説明する。ローカルディスクシステム１０は、制御装置２０と、制御装置２０により制御される複数のディスク装置群３０とに大別される。制御装置２０は、それぞれ後述するように、ＭＰＵ（Micro Processing Unit）２１と、チャネル制御部２２と、接続部２３と、ディスク制御部２４と、共有メモリ２５と、キャッシュメモリ２６と、キャッシュコントローラ２７とを備えて構成することができる。制御装置２０は、ホストコンピュータ１から受信した各種のコマンドに従ってデバイス装置群３０に対する制御を行う。例えば、制御装置２０は、ホストコンピュータ１からデータの入出力要求を受信すると、ディスク装置群３０に記憶されているデータの入出力処理を行う。各ディスク装置群３０が備える複数のディスク記憶装置３１により提供される物理的な記憶領域上には、論理的な記憶領域である論理ボリューム（Logical Unit）が設定されている。
【００５３】
ＭＰＵ２１は、図示せぬ内部ＬＡＮにより、各チャネル制御部２２、各ディスク制御部２４、共有メモリ２５、キャッシュコントローラ２７等の必要な回路と相互に接続されている。ＭＰＵ２１は、プログラムメモリ（図示せず）内に格納されたプログラムコードを読み出して実行することにより、制御装置２０の全体動作を制御する。また、ＭＰＵ２１には、ローカルディスクシステム１０のマンマシンインターフェースとなるコンソール２８が接続されている。ユーザは、コンソール２８を介して、後述するデータ保証モードの選択等を行うことができるようになっている。
【００５４】
各チャネル制御部２２は、制御装置２０と各ホストコンピュータ１との間のデータ通信を行うものである。各チャネル制御部２２は、それぞれに接続されるホストコンピュータ１と通信を行うための通信インターフェースを有し、また、ホストコンピュータ１から受信した各種コマンドを解釈して処理するためのコマンドプロセッサ機能を備える。各チャネル制御部２２には、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレス）が割り当てられており、各チャネル制御部２２は、それぞれが個別にＮＡＳ（Network Attached Storage）として振る舞うようになっている。従って、各チャネル制御部２２は、各ホストコンピュータ１からのデータ入出力要求をそれぞれ個別に受け付ける。各チャネル制御部２２は、ハードウェア回路やソフトウェア等により実現される。
【００５５】
接続部２３は、例えば、高速スイッチング動作によりデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成されている。接続部２３は、各チャネル制御部２２と、各ディスク制御部２４と、共有メモリ２５と、キャッシュコントローラ２７とを相互に接続する。これらの各チャネル制御部２２、各ディスク制御部２４、キャッシュコントローラ２７との間のデータやコマンドの授受は、接続部１５を介して行われる。
【００５６】
各ディスク制御部２４は、各ディスク装置群３０を制御するものである。例えば、ディスク制御部２４は、チャネル制御部２２がホストコンピュータ１から受信した書込み要求に従って、ディスク装置群３０の所定のアドレスにへデータを書き込む。また、ディスク制御部２４は、論理アドレスを物理アドレスに変換することにより、論理ボリュームに対するデータアクセス要求を物理ディスクへのデータアクセス要求に返還する。さらに、ディスク制御部２４は、ディスク装置群３０がＲＡＩＤにより管理されている場合は、ＲＡＩＤ構成に従ったデータアクセスを行う。また、ディスク制御部２４は、デバイス装置群３０に記憶されたデータの複製管理制御やバックアップ制御も行う。さらに、ディスク制御部２４は、災害発生時のデータ消失防止（ディザスタリカバリ）等を目的として、プライマリサイトの記憶装置システム１０のデータの複製をセカンダリサイトに設置された他の記憶装置システム４０にも記憶させる制御（レプリケーション機能またはリモートコピー機能と呼ばれる）等も行う。
【００５７】
共有メモリ２５及びキャッシュメモリ２６は、各チャネル制御部２２や各ディスク制御部２４等により共有される記憶メモリである。共有メモリ１２には、主として制御情報やコマンド等が格納されるようになったおり、また、共有メモリ１２はワーク領域等の用途に使用される。キャッシュメモリ２６は、主として、ホストコンピュータ１から受信したデータやディスク装置群３０から読み出されたデータ等を記憶するために利用される。例えば、チャネル制御部２２がホストコンピュータ１から書込み要求のコマンドを受信した場合、チャネル制御部２２は、この書込みコマンドを共有メモリ２５に書き込むと共に、ホストコンピュータ１から受信した書込みデータをキャッシュメモリ２６に書き込む。一方、ディスク制御部２４は、共有メモリ２５を監視している。ディスク制御部２４は、共有メモリ２５に書込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ２６から書込みデータを読出し、読み出したデータをディスク装置群３０に書き込む。
【００５８】
キャッシュコントローラ２７は、キャッシュメモリ２６へのデータ入出力を管理するものである。各チャネル制御部２２や各ディスク制御部２４は、キャッシュコントローラ２７を介してキャッシュメモリ２６へのデータ書込み、データ読出しを行う。詳細は図２と共に後述するが、本実施例では、キャッシュコントローラ２７において、リモートディスクシステム４０にコピーするデータの保証を行うようになっている。しかし、本発明はこれに限らず、例えば、ＭＰＵ２１でデータ保証を行っても良いし、チャネル制御部２２でデータ保証を行う構成としてもよい。
【００５９】
次に、コンソール２８について説明する。ユーザがコンソール２８を介してＭＰＵ２１に指示を与えると、ＭＰＵ２１は、ユーザからの指示に応じて、ローカルディスクシステム１０の環境設定等を行う。また、ローカルディスクシステム１０の各種ステータス情報等は、コンソール２８の画面を通じて、ユーザに提供される。より詳しくは、ユーザは、コンソール２８を操作することで、論理ボリュームの設定、ディスク記憶装置３１の増設や減設、ＲＡＩＤ構成の変更等を行うことができる。また、ユーザは、コンソール２８の画面を介して、ローカルディスクシステム１０の動作状態を確認したり、障害発生等を監視できる。
【００６０】
ディスク装置群３０は、多数のディスク記憶装置３１をアレイ状に配設して構成されており、ホストコンピュータ１に対してＲＡＩＤにより管理される記憶領域を提供するものである。ディスク記憶装置３１としては、例えば、ハードディスク装置、フレキシブルディスク装置、半導体記憶装置等の種々のデバイスを用いることができる。各ディスク制御部２４と各ディスク装置群３０とは、図１中に示すように、直接的に接続してもよいし、ネットワークを介して間接的に接続してもよい。また、ディスク装置群３０とディスク制御部２４とを一体的に構成することもできる。ディスク装置群３０に設定される論理ボリュームには、ホストコンピュータ１からアクセス可能なユーザディスクや、チャネル制御部２２の制御に使用されるシステムディスク等が含まれる。また、各チャネル制御部２２毎にそれぞれ１つの論理ボリュームを割り当てることもできるし、複数のチャネル制御部２２で１つの論理ボリュームを共有することもできる。
【００６１】
次に、リモートディスクシステム４０について説明する。リモートディスクシステム４０は、ローカルディスクシステム１０から離れた遠隔地に設置されており、ＳＡＮ３を介して各ディスクシステム１０，４０は接続されている。リモートディスクシステム４０は、リモートコピー機能（又はレプリケーション機能）により、ローカルディスクシステム１０のディスク装置群３０に記憶されているデータの複製先装置として利用される。なお、ローカルディスクシステム１０とリモートディスクシステム４０とは、ＳＡＮ３に限らず、例えば、ＡＴＭ（Asynchronous Transfer Mode）等の通信回線を介して接続する構成としてもよい。なお、図中では、ローカルディスクシステムをローカルシステムと、リモートディスクシステムをリモートシステムと、それぞれ略記する場合がある。
【００６２】
既に述べたとおり、リモートディスクシステム４０は、ローカルディスクシステム１０の供給者とは異なる供給者により提供されるもので、各ディスクシステム１０，４０の種類は異なる。従って、リモートディスクシステム４０は、ローカルディスクシステム１０と全く異なる構造を有する場合もあるが、本実施の形態では、説明の便宜上、ローカルディスクシステム１０に類似の構成を有するものとする。
【００６３】
例えば、リモートディスクシステム４０は、制御装置５０と、制御装置５０により制御されるディスク装置群６０を備えて構成される。そして、制御装置５０は、例えば、ＭＰＵ５１と、チャネル制御部５２と、接続部５３と、ディスク制御部５４と、共有メモリ５５と、キャッシュメモリ５６とを備えて構成することができる。簡単に説明すると、ＭＰＵ５１は、リモートディスクシステム４０の全体を制御する。チャネル制御部５２は、ＳＡＮ３を介するデータ通信を行う。接続部５３は、チャネル制御部５２と、ディスク制御部５４と、共有メモリ５５及びキャッシュメモリ５６との間の接続を行う。ディスク制御部５４は、ディスク装置群６０との間でデータの入出力を行う。共有メモリ５５には、各種制御情報等が記憶される。キャッシュメモリ５６には、ローカルディスクシステム１０から転送されたデータ等が記憶される。ディスク装置群６０は、複数のディスク記憶装置から構成され、各ディスク記憶装置が提供する物理的記憶領域には、正論理ボリュームに対応する副論理ボリュームが設定されている。
【００６４】
リモートコピー時に、ローカルディスクシステム１０からＳＡＮ３を介してリモートディスクシステム４０に転送されたデータは、キャッシュメモリ５６に記憶される。キャッシュメモリ５６に記憶されたデータは、ディスク制御部５４によりアドレス変換等が行われた後、ディスク装置群６０に記憶される。一方、ローカルディスクシステム１０からデータの読出しが要求された場合、ディスク制御部５４はディスク装置群６０からデータを読出してキャッシュメモリ５６に記憶する。キャッシュメモリ５６に記憶されたデータは、チャネル制御部５２からＳＡＮ３を介してローカルディスクシステム１０に送信される。
【００６５】
本記憶システムにおいて、リモートディスクシステム４０は、ローカルディスクシステム１０から送信されたデータの記憶と、ローカルディスクシステム１０から要求されたデータの送信という、基本的なデータ入出力機能を実行することができればよい。ローカルディスクシステム１０から受信したデータを正しく記憶しているか（アドレス異常等が生じていないか）を検証するデータ保証作業は、後述するように、専らローカルディスクシステム１０で担当する。
【００６６】
次に、図２を参照して、ローカルディスクシステム１０のキャッシュコントローラ２７の機能を説明する。図２は、キャッシュコントローラ２７を中心とする要部のブロック図であり、チャネル制御部２２やディスク制御部２４等は図示を省略している。キャッシュコントローラ２７は、それぞれ後述するように、ローカルディスク書込み部１０１と、リモートディスク書込み部１０２と、リモートディスク読出し部１０３と、書込み判定部１０４とを備えている。ここで、以下の説明では、ローカルディスクシステム１０の正論理ボリュームをローカルディスク、リモートディスクシステムの副論理ボリュームをリモートディスク、とそれぞれ称する場合がある。
【００６７】
ローカルディスク書込み部１０１は、ホストコンピュータ１からチャネル制御部２２を介して受信したデータ書込み要求に従って、受信データをキャッシュメモリ２６に書き込む。キャッシュメモリ２６に書き込まれたデータは、ディスク制御部２４によりアドレス変換等が行われた後、ディスク装置群３０の所定領域に記憶される。ローカルディスクへのデータ書込みが完了すると、リモートディスク書込み部１０２は、ホストコンピュータ１から受信したデータをＳＡＮ３を介してリモートディスクシステム４０に送信し、キャッシュメモリ５６に記憶させる。リモートディスクシステム４０のキャッシュメモリ５６に記憶されたデータは、ディスク制御部５４によりアドレス変換等が行われた後、リモートディスクに記憶される。リモートディスクへの書込みが行われると、リモートディスク読出し部１０３は、ＳＡＮ３等を介して、リモートディスクに保持されたばかりのデータを直ちに読出す。リモートディスクから読み出されたデータは、ＳＡＮ３からチャネル制御部２２を介して、書込み判定部１０４に入力される。また、ローカルディスクに書き込まれたデータも書込み判定部１０４に入力される。これにより、書込み判定部１０４は、ローカルディスクに書き込まれたデータとリモートディスクへ転送した直後にリモートディスクから読み出されたデータとを比較し、両者が同一であるか否かを判定する。両方のデータが同一である場合（データの内容及び論理アドレスが一致する場合）、書込み判定部１０４は、リモートディスクへのデータ転送が正常に行われたと判定し、データ保証を行う。逆に、両方のデータが不一致の場合、書込み判定部１０４は、データ転送が正常に行われなかったものと判定し、ＭＰＵ２１にエラーを通知する。正常なデータ転送が行われなかった場合、再度データがリモートディスクシステム４０に転送され、データ転送が正常に行われたか否かの検査が再び行われる。
【００６８】
なお、ローカルディスクへのデータ書込みとリモートディスクへのデータ転送とは並行処理で行われてもよい。また、リモートディスクシステム４０のキャッシュメモリ５６にデータが保持された時点で、リモートディスクへの書込みが行われたものと判定してもよい。さらに、ディスク制御部２４で行うアドレス変換処理をキャッシュコントローラ２７で実行してもよい。
【００６９】
以上の処理の流れを図３のタイムチャートに基づいて説明する。まず、ホストコンピュータ１は、データの書込み要求をローカルディスクシステム１０に送信する（Ｓ１）。このデータ書込み要求には、ローカルディスクの所定の記憶領域を指定する論理アドレス（Logical Address）とデータとが含まれている。
【００７０】
ホストコンピュータ１からＳＡＮ３等を介してデータ書込み要求を受信すると、ローカルディスクシステム１０は、ディスク制御部２４等を介して、受信データをローカルディスクの所定箇所に書き込む（Ｓ２）。また、ローカルディスクシステム１０は、リモートディスクシステム４０に対し、データの書込みを要求する（Ｓ３）。リモートディスクシステム４０は、ローカルディスクシステム１０から受信したデータをキャッシュメモリ５６に記憶し、論理アドレスで指定された所定の記憶領域にデータを書き込む（Ｓ４）。リモートディスクシステム４０は、リモートディスクにデータを書き込むと（あるいは、キャッシュメモリ５６にデータを保持した時点で）、書込み完了通知をローカルディスクシステム１０に送信する（Ｓ５）。
【００７１】
ローカルディスクシステム１０は、リモートディスクシステム４０から書込み完了通知を受信すると、リモートディスクに書き込まれたばかりのデータの読出しを、リモートディスクシステム４０に対して要求する（Ｓ６）。リモートディスクシステム４０は、ローカルディスクシステム１０からデータ読出し要求を受信すると、書き込んだばかりのデータを読み出し（Ｓ７）、読み出したデータをローカルディスクシステム１０に送信する（Ｓ８）。ローカルディスクシステム１０は、ローカルディスクに書き込んだデータと、リモートディスクから読み出されたデータとを比較し、両者が一致するか否かを判定する（Ｓ９）。両データが一致する場合、ローカルディスクシステム１０は、データ転送が正常に行われたものと判定し、ホストコンピュータ１に対して、書込み完了報告を通知する（Ｓ１０）。本実施例では、ローカルディスクシステム１０からリモートディスクシステム４０へのデータ転送と、ローカルディスクシステム１０からホストコンピュータ１への書込み完了報告とが同期して行われる。一方、ローカルディスクに書き込まれたデータとリモートディスクから読み出されたデータとが不一致の場合、ローカルディスクシステム１０は、正常なデータ転送が行われなかったものと判定し、Ｓ３に戻って、再びデータをリモートディスクシステム４０に送信する。
【００７２】
本実施例は以上詳述した通りであって、それぞれ供給者が異なり、搭載機能等が種々相違するローカルディスクシステム１０とリモートディスクシステム４０とが混在する記憶システムの場合でも、ローカルディスクシステム１０側でリモートディスクシステム４０側のデータ保証処理を行うことができる。従って、いわゆるヘテロ環境下の記憶システムでも、データ保証を実現して信頼性を高めることができる。
【００７３】
また、本実施例では、リモートディスクシステム４０に転送したデータを直ちに読み出して、ローカルディスクシステム１０に保持されたデータと比較する構成であるから、簡単な構成でリモートディスクシステム４０のデータ保証を実現できる。また、ローカルディスクシステム１０の処理負担も比較的少なくて済むため、ローカルディスクシステム１０のコンピュータ資源（処理性能やメモリ容量等）に余力が乏しい場合でも、リモートディスクシステム４０のデータ保証を代替処理して記憶システムの信頼性を高めることができる。
【００７４】
別の観点に従えば、データ入出力に関するサポート機能の一種であるデータ保証を、高機能のローカルディスクシステム１０が低機能のリモートディスクシステム４０の分まで代替処理するため、記憶システムを構成する各記憶装置システムのコンピュータ資源を有効に利用して、記憶システム全体の信頼性を高めることができる。
【実施例２】
【００７５】
次に、図４〜図７を参照して、本発明の第２実施例を説明する。本実施例の特徴は、ホストコンピュータ１から受信したデータに基づいて保証コードを生成し、保証コードはローカルディスクシステム側で管理し、データのみをリモートディスクシステム側に転送する点にある。
【００７６】
図４のシステム全体図及び図５の要部ブロック図にも示すように、本実施例のローカルディスクシステム１０では、キャッシュコントローラ１１０が保証コード設定部１１６を備えている点で、前記実施例と相違する。図２は、キャッシュコントローラ１１０を中心とする要部のブロック図である。キャッシュコントローラ１１０は、例えば、ローカルディスク書込み部１１１と、リモートディスク書込み部１１２と、リモートディスク読出し部１１３と、保証コード設定部１１４と、保証コード抽出部１１５と、保証コード判定部１１６とを備えて構成することができる。
【００７７】
ローカルディスク書込み部１１２は、ホストコンピュータ１からのデータ書込み要求に応じて、受信したデータをキャッシュメモリ２６に記憶させる。キャッシュメモリ２６に記憶されたデータは、ディスク制御部２４によりローカルディスクに記憶される。リモートディスク書込み部１１２は、ホストコンピュータ１から受信したデータをＳＡＮ３を介してリモートディスクシステム４０に送信し、リモート側のキャッシュメモリ５６に記憶させる。リモートディスク読出し部１１３は、データ読出し要求に応じて、リモートディスクからデータを読み出すものである。
【００７８】
保証コード設定部１１４は、ホストコンピュータ１から受信したデータに基づいて、保証コードを生成し、生成した保証コードを受信データに関連付けて設定するものである。保証コードは、ホストコンピュータ１から受信したデータの属性に基づいて生成されるものである。即ち、保証コードは、例えば、受信データが格納されるべき論理アドレスやエラー訂正用の情報（ＬＲＣ等）に基づいて、生成することができる。生成された保証コードは、受信データに対応付けられて、キャッシュメモリ２６内に形成された保証コード管理テーブル１１７に記憶される。
【００７９】
保証コード抽出部１１５は、リモートディスク１１３から読み出したデータに基づいて、保証コードを抽出（生成）する。即ち、保証コード抽出部１１５は、保証コード設定部１１４と同一の方法に従って、リモートディスクから読み出したデータの属性に基づいて、保証コードを生成する。リモートディスクに記憶されるデータは、ローカルディスクに記憶されるデータのコピーである。従って、リモートコピーが正常に行われている場合、ローカルディスクに記憶されるデータの属性に基づいて生成されるローカル側の保証コード（オリジナル保証コード）とリモートディスクに記憶されるデータの属性に基づいて生成されるリモート側の保証コードとは、同一となる。そこで、保証コード判定部１１６は、保証コード抽出部１１５から入力されるリモート側の保証コードと、保証コード管理テーブル１１７から読み出されるローカル側の保証コードとを比較することにより、両保証コードが一致するか否かを判定する。両保証コードが一致する場合は、データ転送（リモートコピー）が正常に行われたものと判定し、リモートディスクから正常にデータが読み出されたことを保証することができる。一方、両保証コードが不一致の場合は、リモートディスクから読み出したデータに異常が生じている場合なので、ＭＰＵ２１にエラーを通知する。
【００８０】
図６は、リモート側保証コード（ＧＣ（Ｒ））とローカル側保証コード（ＧＣ（Ｌ））とを比較する様子を示す模式図である。図６（ａ）に示すように、リモートディスクから読み出されたＤ１は、保証コードを備えていない。即ち、リモートディスクシステム４０では、保証コードを管理していない。図６（ｂ）に示すように、保証コード抽出部１１５は、リモートディスクから読み出したデータＤ１に基づいて、リモート側の保証コード（ＧＣ（Ｒ））を生成する。一方、図６（ｄ）に示すように、保証コード管理テーブル１１７には、ホストコンピュータ１から受信したデータ毎に、論理アドレスＬＡと保証コードとがそれぞれ対応付けられて記憶されている。図６（ｃ）に示すように、あるデータをリモートディスクから読み出す場合、保証コード判定部１１６は、読み出すべきデータの論理アドレスを検索キーとして保証コード管理テーブル１１７を検索し、該当する保証コード（ＧＣ（Ｌ））を読み出す。このようにして、それぞれ得られたリモート側保証コード（ＧＣ（Ｒ））とローカル側保証コード（ＧＣ（Ｌ））とを比較する。そして、両者が一致する場合はデータ保証を行うことができ、両者が不一致の場合はエラー通知を出す。なお、上述した保証コードの生成、比較等の各処理は、キャッシュコントローラ１１０内で実行させる場合に限らない。例えば、割込処理等でＭＰＵ２１により実行させることもできる。また、あるいは、保証コードの設定をディスク制御部２４で実行し、リモート側保証コードの生成をチャネル制御部２２で実行し、両保証コードの比較をＭＰＵ２１で実行するようにしてもよい。さらに、保証コード管理テーブル１１７は、キャッシュメモリ２６に限らず、例えば、保証コード専用のディスクを設けてもよい。
【００８１】
以上の処理の流れを図７のタイムチャートに基づいて説明する。まず、ホストコンピュータ１は、ＳＡＮ３を介して、データ書込み要求をローカルディスクシステム１０に送信する（Ｓ１１）。このデータ書込み要求には、書き込むべきデータと、データを書き込むべき位置（論理アドレス）とが含まれている。ローカルディスクシステム１０は、ホストコンピュータ１からのデータ書込み要求に基づいて、保証コードを生成し（Ｓ１２）、生成した保証コードを保証コード管理テーブル１１７に登録する（Ｓ１３）。
【００８２】
次に、ローカルディスクシステム１０は、ホストコンピュータ１から受信したデータ書込み要求に従って、リモートディスクシステム４０に対し、データの書込みを要求する（Ｓ１４）。このデータ書込み要求には、書き込むべきデータとデータを書き込むべき論理アドレスとが含まれており、Ｓ１２で生成された保証コードは含まれていない。リモートディスクシステム４０は、ローカルディスクシステム１０からＳＡＮ３を介して受信したデータをキャッシュメモリ５６に記憶し、キャッシュメモリ５６に記憶したデータをディスク装置群６０の所定位置に格納させる（Ｓ１５）。そして、リモートディスクシステム４０は、指定された論理アドレスへのデータの記憶が完了した旨をローカルディスクシステム１０に通知する（Ｓ１６）。ローカルディスクシステム１０は、リモートディスクシステム４０から書込み完了通知を受信すると、ホストコンピュータ１に対してデータ書込みが完了した旨を報告する（Ｓ１７）。従って、本実施例では、リモートディスクシステム４０へのデータ転送とホストコンピュータ１への書込み完了通知とが同期処理で行われる。
【００８３】
ホストコンピュータ１がリモートディスクから所定のデータを読み出して利用する場合、ホストコンピュータ１は、ローカルディスクシステム１０にデータ読出し要求を送信する（Ｓ１８）。ローカルディスクシステム１０は、ホストコンピュータ１からの要求に応じて、リモートディスクシステム４０にデータの読出しを要求する（Ｓ１９）。リモートディスクシステム４０は、ローカルディスクシステム１０からの要求に応じて、リモートディスクの所定の論理アドレスに記憶されたデータを読出し（Ｓ２０）、読み出したデータをローカルディスクシステム１０に送信する（Ｓ２１）。
【００８４】
ローカルディスクシステム１０は、リモートディスクシステム４０からデータを受信すると、この受信したデータに基づいてリモート側の保証コードを生成する（Ｓ２２）。ローカルディスクシステム１０は、Ｓ１３で保証コード管理テーブル１１７に記憶されたローカル側の保証コードと、Ｓ２２で生成されたリモート側の保証コードとを比較する（Ｓ２３）。そして、両保証コードが一致する場合、ローカルディスクシステム１０は、リモートディスクシステム４０から読み出されたデータは正常なデータであると判定し、このデータをＳＡＮ３を介してホストコンピュータ１に送信する（Ｓ２４）。一方、リモート側の保証コードとローカル側の保証コードとが不一致の場合、ローカルディスクシステム１０は、エラー処理を行う（Ｓ２５）。エラー処理としては、例えば、ローカルディスクに記憶されている正常なデータをリモートディスクへ再度コピーする処理等を挙げることができる。
【００８５】
このように構成される本実施例でも、リモートディスクシステム４０におけるデータ保証をローカルディスクシステム１０が代替処理するため、上述した実施例と同様の効果を得ることができる。これに加えて、本実施例では、データに由来する保証コードを生成し、ローカル側の保証コードとリモート側の保証コードとを比較する構成のため、より高い信頼性をもったデータ保証を行うことができる。また、保証コードは、ローカルディスクシステム１０側で作成して管理し、リモートディスクシステム４０はデータのみを管理するため、リモートディスクシステム４０側に何ら機能変更等を行う必要が無く、比較的容易に記憶システムの信頼性を向上させることができる。
【実施例３】
【００８６】
次に、図８〜図１０に基づいて、本発明の第３実施例を説明する。本実施例の特徴は、保証コードとデータとを一体化し、リモートディスクシステム４０側でも保証コードを保持させる点にある。
【００８７】
図８は、ローカルディスクシステム１０のキャッシュコントローラ１２０を中心とする要部ブロック図である。上記同様に、チャネル制御部２２及びディスク制御部２４等は図示が省略されている。このキャッシュコントローラ１２０は、ローカルディスク書込み部１２１と、リモートディスク書込み部１２２と、リモートディスク読出し部１２３と、保証コード設定部１２４と、保証コード抽出部１２５と、保証コード判定部１２６とを備えている。
【００８８】
ローカルディスク書込み部１２１は、ホストコンピュータ１からのデータ書込み要求に基づいて、受信データをキャッシュメモリ２６に記憶させ、キャッシュメモリ２６からディスク制御部２４を介してディスク装置群３０の所定の領域にデータを記憶させるものである。リモートディスク書込み部１２２は、ホストコンピュータ１からのデータ書込み要求に基づいて、リモートディスクシステム４０のリモートディスクにデータをコピーさせるものである。リモートディスク読出し部１２３は、リモートディスクの所定の論理アドレスに記憶されたデータを読み出すものである。保証コード設定部１２４は、ホストコンピュータ１から受信したデータに基づいて保証コードを生成する。上記同様に、保証コードは、受信データを一意に特定するユニークな情報であり、受信データの属性から生成される。
【００８９】
保証コード設定手段１２４により生成された保証コードは、保証コード管理テーブル１２７に登録され管理される。また、保証コードは、保証コード設定手段１２４からリモートディスク書込み部１２２に入力される。リモートディスク書込み部１２２は、ホストコンピュータ１から受信したデータに保証コードを関連付けることにより、受信データと保証コードとを一体化した「保証コード付きデータ」として、リモートディスクシステム４０に送信する。リモートディスクシステム４０は、カプセル化された保証コード付きデータの全体を、リモートディスクに書き込むべきデータであると認識し、保持する。
【００９０】
保証コード抽出部１２５は、リモートディスク読出し部１２３によりリモートディスクから読み出された保証コード付きデータに基づいて、保証コードのみを抽出する。保証コード判定部１２６は、保証コード管理テーブル１２７に管理されているローカル側の保証コードと、保証コード抽出部１２５により保証コード付きデータから抽出された保証コードとを比較する。両保証コードが一致する場合、保証コード判定部１２６は、リモートディスクから正しいデータが読み出された事を保証することができる。一方、両保証コードが不一致の場合、保証コード判定部１２６は、ＭＰＵ２１にエラーを通知する。
【００９１】
図９を参照する。図９（ａ）に示すように、リモートディスクには、保証コードＧＣ（Ｒ）とデータＤ１とが関連付けられて一体化された保証コード付きデータが記憶されている。保証コード付きデータは、受信データと保証コードとが一体化されているので、元の受信データよりはデータ長が長くなる。例えば、受信データのデータ長が512bitであり、保証コードが8bitの場合は、保証コード付きデータは最低でも520bitのデータ長さを有する。保証コード抽出部１２５は、保証コード付きデータからリモート側の保証コードＧＣ（Ｒ）を分離して抽出する。一方、保証コード判定部１２６は、指定された論理アドレスに基づいて、保証コード管理テーブル１２７からローカル側の保証コードＧＣ（Ｌ）を読み出す。保証コード判定部１２６は、両保証コードを比較することにより、リモートディスクシステム４０側のデータ保証を代替して実行する。
【００９２】
図１０のタイムチャートを参照して動作の流れを説明する。まず、ホストコンピュータ１は、ローカルディスクシステム１０に対し、データ書込み要求を送信する（Ｓ３１）。ローカルディスクシステム１０は、データ書込み要求に応じて、保証コードを生成し（Ｓ３２）、生成した保証コードを受信データに関連付けて保証コード管理テーブル１２７に記憶させる（Ｓ３３）。次に、ローカルディスクシステム１０は、リモートディスクシステム４０に対し、データの書込みを要求する（Ｓ３４）。ここで、ローカルディスクシステム１０からリモートディスクシステム４０に送信されるデータは、上述のように、ホストコンピュータ１から受信したデータと該データに基づいて生成される保証コードとを関連付け、一体化してなる保証コード付きデータである。
【００９３】
リモートディスクシステム４０は、保証コード付きデータを受信すると、この保証コード付きデータの全体を「受信データ」としてキャッシュメモリ５６に保持し、キャッシュメモリ５６からディスク制御部５４を介してディスク装置群６０に記憶させる（Ｓ３５）。ここで、上述のように、保証コード付きデータは、一体的に付加される保証コードの分だけデータサイズが増大する。従って、リモートディスクシステム４０へ記憶可能な実効的記憶容量は低下する。また、リモート側のディスク装置群６０のフォーマットと保証コード付きデータのデータサイズとが不一致の場合が多いと考えられるため、新品のディスクに保証コード付きデータを記憶させる。リモートディスクシステム４０は、保証コード付きデータを記憶すると、ローカルディスクシステム１０に書込み完了を報告する（Ｓ３６）。ローカルディスクシステム１０は、リモートディスクシステム４０から書込み完了を受信すると、ホストコンピュータ１に対しデータの書込み完了を報告する（Ｓ３７）。従って、リモートコピーとホストコンピュータ１への書込み完了報告とは、同期処理で行われる。
【００９４】
次に、ホストコンピュータ１がローカルディスクシステム１０に対し、論理アドレスを指定して所定のデータの読出しを要求すると（Ｓ３８）、ローカルディスクシステム１０は、リモートディスクシステム４０に対してデータの読出しを要求する（Ｓ３９）。これにより、リモートディスクシステム４０は、指定された論理アドレスのデータ（保証コード付きデータ）を読出し（Ｓ４０）、保証コード付きデータをローカルディスクシステム１０に送信する（Ｓ４１）。
【００９５】
ローカルディスクシステム１０は、リモートディスクシステム４０から保証コード付きデータを受信し、この受信した保証コード付きデータから保証コードを抽出する（Ｓ４２）。そして、ローカルディスクシステム１０は、保証コード管理テーブル１２７に登録されているローカル側の保証コードと、保証コード付きデータから分離抽出されたリモート側の保証コードとを比較する（Ｓ４３）。そして、ローカルディスクシステム１０は、両保証コードが一致する場合、正常にデータが読み出されたことをリモートディスクシステム４０に代わって保証し、リモートディスクから読み出したデータをホストコンピュータ１に送信する（Ｓ４４）。一方、両保証コードが不一致の場合、ローカルディスクシステム１０は、エラー処理を行う（Ｓ４５）。エラー処理としては、例えば、再度のリモートコピー等を挙げることができる。
【００９６】
このように構成される本実施例でも、ローカルディスクシステム１０側でリモートディスクシステム４０側のデータ保証を代替処理できるので、上記実施例と同様の効果を得ることができる。これに加えて、本実施例では、データのみならず保証コードもリモートディスクに記憶させるため、より一層高い信頼性をもったデータ保証を行うことができる。
【実施例４】
【００９７】
次に、図１１を参照して、本発明の第４実施例を説明する。本実施例の特徴は、ローカルディスクシステム１０側で代替処理するリモートディスクシステム４０側のデータ保証モードを選択可能とした点にある。
【００９８】
図１１は、データ保証モードを選択するための処理を示す。まず、データ保証モードを設定又は変更する場合、ユーザは、コンソール２８の画面に表示されたメニューに基づいて、所望のデータ保証モードを選択する（Ｓ５１）。本実施例では、４種類の保証モードが予め用意されている。即ち、データ保証を行わないモード（保証無しモード）、リモートディスクに書き込んだデータを直ちに読み出して比較する第１の保証モードＡ、保証コードをローカルディスクシステム１０のみで管理する第２の保証モードＢ、保証コード付きデータをリモートディスクに格納させる第３の保証モードＣ、の４種類である。
【００９９】
ローカルディスクシステム１０に複数のリモートディスクシステムが接続されている場合等には、ユーザは、各リモートディスクシステム毎にそれぞれデータ保証モードを選択することができる。また、論理ボリューム毎にそれぞれ異なるデータ保証モードを選択することもできる。
【０１００】
保証無しモードが選択された場合（Ｓ５２）、ローカルディスクシステム１０はリモートディスクシステム４０側のデータ保証を行わない（Ｓ５３）。第１のデータ保証モードが選択された場合（Ｓ５４）、ローカルディスクシステム１０は、第１の実施例で述べたように、リモートディスク（あるいはキャッシュメモリ５６）に書き込んだデータを直ちに読み出し、ローカルディスク（あるいはキャッシュメモリ２６）に保持されているデータと比較することにより、リモートディスクシステム４０側のデータ保証を代替処理で実現する（Ｓ５５）。
【０１０１】
第２のデータ保証モードが選択された場合（Ｓ５６）、第２の実施例で述べたように、ホストコンピュータ１から受信したデータに基づいて保証コードを生成し、生成した保証コードをローカルディスクシステム１０のみで管理することにより、ローカルディスクシステム１０は、リモートディスクシステム４０に代わってデータ保証を行う（Ｓ５７）。第３のデータ保証モードが選択された場合（Ｓ５８）、第３の実施例で述べたように、保証コード付きデータをリモートディスクに記憶させることにより、ローカルディスクシステム１０は、リモートディスクシステム４０に代わってデータ保証を行う（Ｓ５９）。
【０１０２】
このように、本実施例では、予め複数用意されているデータ保証モードからいずれか１つ又は複数のデータ保証モードを選択可能である。従って、ローカルディスクシステム１０の処理能力やメモリ搭載量等を考慮して、あるいは、リモートディスクシステム４０の構成や記憶システム全体の運用方法を考慮して、適切なデータ保証モードを選択することができる。従って、ヘテロ環境下にある記憶システムの信頼性を簡易な構成で高めることができると共に、より柔軟で弾力的な運用を行うことができ、使い勝手が向上する。
【実施例５】
【０１０３】
図１２は、本発明の第５実施例による記憶システムの全体動作を示すタイムチャートである。本実施例では、非同期処理を行う。即ち、ローカルディスクシステム１０は、ホストコンピュータ１からデータ書込み要求を受信すると（Ｓ１１）、受信データをローカルディスクに記憶させると共に、保証コードを生成し（Ｓ１２）、生成した保証コードを保証コード管理テーブル１２７に登録する（Ｓ１３）。そして、リモートディスクへのデータコピーを行う前に、ホストコンピュータ１に書込み完了を報告する（Ｓ１７Ａ）。図１２では、保証コードを記憶させた直後にホストコンピュータ１へ書込み完了を報告するようになっているが、別のタイミングで書込み完了報告をホストコンピュータ１に送信してもよい。また、図１０のタイムチャートでも、図１２と同様に非同期処理を行うことができる。
【０１０４】
なお、本発明は、上述した各実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１実施例による記憶システムの全体構成を示すブロック図である。
【図２】ローカルディスクシステムの要部を示すブロック図である。
【図３】記憶システムの全体動作を示すタイムチャートである。
【図４】本発明の第２実施例による記憶システムの全体構成を示すブロック図である。
【図５】ローカルディスクシステムの要部を示すブロック図である。
【図６】保証コードに基づいて判定する様子を模式的に示す説明図である。
【図７】記憶システムの全体動作を示すタイムチャートである。
【図８】本発明の第３実施例による記憶システムの全体構成を示すブロック図である。
【図９】保証コードに基づいて判定する様子を模式的に示す説明図である。
【図１０】記憶システムの全体動作を示すタイムチャートである。
【図１１】本発明の第４実施例によるデータ保証モードの選択処理を示すフローチャートである。
【図１２】本発明の第５実施例による記憶システムの全体動作を示すタイムチャートである。
【符号の説明】
【０１０６】
１  ホストコンピュータ
３  ＳＡＮ
１０  ローカルディスクシステム
２０  制御装置
２１  ＭＰＵ
２２  チャネル制御部
２３  接続部
２４  ディスク制御部
２５  共有メモリ
２６  キャッシュメモリ
２７  キャッシュコントローラ
３０  ディスク装置群
４０  リモートディスクシステム
５０  制御装置
５１  ＭＰＵ
５２  チャネル制御部
５３  接続部
５４  ディスク制御部
５５  共有メモリ
５６  キャッシュメモリ
６０  ディスク装置群
１０１  ローカルディスク書込み部
１０２  リモートディスク書込み部
１０３  リモートディスク読出し部
１０４  書込み判定部
１１０  キャッシュコントローラ
１１１  ローカルディスク書込み部
１１２  リモートディスク書込み部
１１３  リモートディスク読出し部
１１４  保証コード設定部
１１５  保証コード抽出部
１１６  保証コード判定部
１１７  保証コード管理テーブル
１２０  キャッシュコントローラ
１２１  ローカルディスク書込み部
１２２  リモートディスク書込み部
１２３  リモートディスク読出し部
１２４  保証コード設定部
１２５  保証コード抽出部
１２６  保証コード判定部
【図１】
2005025683.tif 000003
【図２】
2005025683.tif 000004
【図３】
2005025683.tif 000005
【図４】
2005025683.tif 000006
【図５】
2005025683.tif 000007
【図６】
2005025683.tif 000008
【図７】
2005025683.tif 000009
【図８】
2005025683.tif 000010
【図９】
2005025683.tif 000011
【図１０】
2005025683.tif 000012
【図１１】
2005025683.tif 000013
【図１２】
2005025683.tif 000014