(57)【要約】【課題】暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出し、物理的なデータ転送経路を適切に用いるストレージシステム及びデータ保証方法を提案する。【解決手段】データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して１経路を特定するための経路管理部を備えることとした。【選択図】図７
2009009407.tif 000002
【特許請求の範囲】
【請求項１】
データの読み出し指示又は書き込む指示を行うホストと、
前記ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、
前記ホストと前記対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、
前記ホストからのデータの読み出し指示又は書き込む指示に基づいて、
前記データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを前記論理ボリューム又は前記ホストに転送するために、前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して１経路を特定するための経路管理部を備える
ことを特徴とする記憶システム。
【請求項２】
前記経路管理部は、
前記データ転送経路毎に、前記対の論理ボリュームを管理し、
１つの論理ボリュームに属するデータ転送経路群毎に、１つの仮想デバイスを割り当て、
一方の仮想デバイスに対して前記データ転送経路群から１経路を特定し、他方の仮想デバイスに対して前記特定した経路とは別の経路を前記データ転送経路群から特定して仮想デバイス割り当て制御を行う
ことを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記経路管理部は、
前記データ転送経路毎にインデックス番号を付与し、
インデックス番号の昇順又は降順に前記データ経路群を特定するポインタ制御を行う
ことを特徴とする請求項２に記載の記憶システム。
【請求項４】
前記経路管理部は、
前記データ転送経路毎に、前記ホストから入出力されるデータを制御する１以上のホストポートと、前記ミラー論理ボリュームから入出力されるデータを制御する１以上のボリュームポートと、を管理して、物理的なデータ転送経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項５】
前記ホストは
前記ホストから書き込みデータとして前記論理ボリュームに格納したデータを格納後に読み出すリードアフタライト部と、
前記読み出したデータと、前記書き込みデータとして前記論理ボリュームに格納する際に前記ホストの記憶領域に予め記憶する記憶データと、を比較するデータ比較部と、
前記データ比較部に基づく比較結果を通知するメッセージ送受信部と、を有し、
それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項６】
前記ホストは、
前記ホストからのデータに保証コードを付加する保証コード付加部と、
前記保証コードを付加されたデータをそれぞれの前記論理ボリュームに書き込むために、前記保証コードを付加されたデータをミラーリングするミラーリング部と、
一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証部と、を備え、
前記保証コード検証部により前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項７】
前記対の論理ボリュームを制御する制御装置を備え、
前記ホストは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
前記対の論理ボリュームを制御する制御装置は、
前記ミラーリング部に基づいてミラーリングされたそれぞれのデータを比較するデータ比較部を有し、
前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して１経路を特定して、前記対の論理ボリュームを制御する制御装置にミラーリングされたデータを送信する
ことを特徴とする請求項１に記載の記憶システム。
【請求項８】
前記ホストは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部と、
それぞれの前記論理ボリュームからデータを読み出す読み出し部と、
前記論理ボリュームから読み出したそれぞれのデータを比較するデータ比較部と、を有し、
それぞれの前記論理ボリュームからデータを読み出す際に、それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項９】
前記対の論理ボリュームを制御する制御装置と、
前記対の論理ボリュームを制御する制御装置と前記データの暗号又は復号する機能を有する装置とを接続するための結合装置と、を更に備え、
前記ホストは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
前記結合装置は、
前記ミラーリングされたそれぞれのデータを比較するデータ比較部を有し、
それぞれの前記論理ボリュームにミラーリングされたデータを書き込む際に、それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項１０】
前記データの暗号又は復号する機能を有する装置は前記対の論理ボリュームを備え、
前記ホストは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
前記データの暗号又は復号する機能を有する装置は
前記ホストからのミラーリングされたデータに保証コードを付加する保証コード付加部と、
一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証部と、を有し、
前記保証コード検証部により前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１に記載の記憶システム。
【請求項１１】
データの読み出し指示又は書き込む指示を行うホストと、
前記ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、
前記ホストと前記対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、
前記ホストからのデータの読み出し指示又は書き込む指示に基づいて、
前記データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを前記論理ボリューム又は前記ホストに転送するために、前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して１経路を特定するための経路管理ステップを備える
ことを特徴とするデータ保証方法。
【請求項１２】
前記経路管理ステップでは、
前記データ転送経路毎に、前記対の論理ボリュームを管理し、
１つの論理ボリュームに属するデータ転送経路群毎に、１つの仮想デバイスを割り当て、
一方の仮想デバイスに対して前記データ転送経路群から１経路を特定し、他方の仮想デバイスに対して前記特定した経路とは別の経路を前記データ転送経路群から特定して仮想デバイス割り当て制御を行う
ことを特徴とする請求項１１に記載の保証方法。
【請求項１３】
前記経路管理ステップでは、
前記データ転送経路毎にインデックス番号を付与し、
インデックス番号の昇順又は降順に前記データ経路群を特定するポインタ制御を行う
ことを特徴とする請求項１２に記載のデータ保証方法。
【請求項１４】
前記経路管理ステップでは、
前記データ転送経路毎に、前記ホストから入出力されるデータを制御する１以上のホストポートと、前記ミラー論理ボリュームから入出力されるデータを制御する１以上のボリュームポートと、を管理して、物理的なデータ転送経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項１５】
前記ホストでは
前記ホストから書き込みデータとして前記論理ボリュームに格納したデータを格納後に読み出すリードアフタライトステップと、
前記読み出したデータと、前記書き込みデータとして前記論理ボリュームに格納する際に前記ホストの記憶領域に予め記憶する記憶データと、を比較するデータ比較ステップと、
前記データ比較ステップに基づく比較結果を通知するメッセージ送受信ステップと、を有し、
前記経路管理ステップでは、
それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項１６】
前記ホストでは、
前記ホストからのデータに保証コードを付加する保証コード付加ステップと、
前記保証コードを付加されたデータをそれぞれの前記論理ボリュームに書き込むために、前記保証コードを付加されたデータをミラーリングするミラーリングステップと、
一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成するステップと、
前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証ステップと、を有し、
前記経路管理ステップでは、
前記保証コード検証ステップにより前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項１７】
前記対の論理ボリュームを制御する制御装置を備え、
前記ホストでは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
前記対の論理ボリュームを制御する制御装置では、
前記ミラーリングステップに基づいてミラーリングされたそれぞれのデータを比較するデータ比較ステップを有し、
前記経路管理ステップでは、
前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して１経路を特定して、前記対の論理ボリュームを制御する制御装置にミラーリングされたデータを送信する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項１８】
前記ホストでは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップと、
それぞれの前記論理ボリュームからデータを読み出す読み出しステップと、
前記論理ボリュームから読み出したそれぞれのデータを比較するデータ比較ステップと、を有し、
前記経路管理ステップでは、
それぞれの前記論理ボリュームからデータを読み出す際に、それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項１９】
前記対の論理ボリュームを制御する制御装置と、
前記対の論理ボリュームを制御する制御装置と前記データの暗号又は復号する機能を有する装置とを接続するための結合装置と、を更に備え、
前記ホストでは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
前記結合装置では、
前記ミラーリングされたそれぞれのデータを比較するデータ比較ステップを有し、
前記経路管理ステップでは、
それぞれの前記論理ボリュームにミラーリングされたデータを書き込む際に、それぞれの前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【請求項２０】
前記データの暗号又は復号する機能を有する装置は前記対の論理ボリュームを備え、
前記ホストでは、
前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
前記データの暗号又は復号する機能を有する装置では
前記ホストからのミラーリングされたデータに保証コードを付加する保証コード付加ステップと、
一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証ステップと、を有し、
前記保証コード検証ステップにより前記保証コードと、前記新たな保証コードとが一致しない場合には、前記経路管理ステップで、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して１経路を特定する
ことを特徴とする請求項１１に記載のデータ保証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化及び復号化を行う機能を有するストレージシステム及びデータ保証方法に関する。
【背景技術】
【０００２】
計算機等のセキュリティ対策の一つとして、データの暗号化技術がある（特許文献１参照）。暗号化を行う処理（以下、暗号処理と称する）、又は復号化を行う処理（以下、復号処理と称する）は、半導体部品やソフトウェアで実現されている。但し、半導体部品を用いると、α線等の放射線を受けることによる誤動作が考えられる。又、ソフトウェアを用いると、ある特定データパターンでの演算ミス等の障害が考えられる。
【０００３】
近年、ストレージシステム自身のセキュリティ確保の要求が年々高まりつつある。ディスク制御装置に格納するデータの暗号化には、暗号処理専用装置や、暗号処理をディスク制御装置に内蔵するなどの方法がある。
【０００４】
一方、計算機とストレージ装置間で複数の論理的なデータ転送経路を有する情報処理システムで、信頼性向上、性能向上を目的として複数の論理的なデータ転送経路の中から適切なデータ転送経路を選択する技術がある（特許文献２参照）。
【特許文献１】特開２００２−２１７８８７号公報
【特許文献２】特開２００６−１５４８８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
暗号処理専用装置において、例えば、外部装置から送信されたデータを暗号化してディスク制御装置に送信する前に、該データが正しく暗号化されているかどうかを検証する手段を備えていれば、仮に暗号処理の誤動作が発生したとしても誤った暗号処理が施されたデータがディスク制御装置に格納されることを防ぐことが出来る。同様に、ディスク制御装置から送信された、既に暗号化が施されたデータを復号化して外部装置に送信する前に、該データが正しく復号化出来たかどうかを検証する手段を備えていれば、仮に復号処理の誤動作が発生したとしても、誤った復号処理が施されたデータが外部装置に到着を防ぐことが出来る。
【０００６】
しかし、上述の検証手段を暗号処理専用装置が備えていない場合に、誤った暗号処理又は復号処理が施されたデータがディスク制御装置又は外部装置に到着し、最終的に暗号処理専用装置で復号された時点で元のデータとは全く異なるデータに変わってしまう。これは、即ちデータ消失と同じことである。
【０００７】
一方、例えば、暗号処理専用装置を介在させた計算機とストレージ装置との間では複数の論理的なデータ転送経路を有し、かつ、ディスク制御装置内でデータのミラーリングが行われている場合には、たとえ上記のような暗号処理専用装置の誤動作によりデータが化けてしまっても、ミラーリングされたデータを用いることで、誤動作が発生した暗号処理専用装置とは別の暗号処理専用装置で処理を継続することが出来る。
【０００８】
本発明は以上の点を考慮してなされたもので、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出し、物理的なデータ転送経路を適切に用いるストレージシステム及びデータ保証方法を提案しようというものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明の記憶システムは、データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して１経路を特定するための経路管理部を備えることを特徴とする。
【００１０】
この結果、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出することができる。
【００１１】
また本発明のデータ保証方法は、データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して１経路を特定するための経路管理ステップを備えることを特徴とする。
【００１２】
この結果、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出することができる。
【００１３】
さらに、具体的な本発明の一実施態様は以下の構成を有する。
【００１４】
データ入出力要求を発行する複数のホストコンピュータ（以下、ホストと称する）、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置で構成するストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力（ライト）要求だった場合、ライトデータを一時的にホスト内の記憶領域で保持し、ディスク制御装置にライトデータが格納された直後に該ライトデータを読み出すリードアフタライト機構、リードアフタライト機構によって読み出された該ライトデータと、ホスト内の記憶領域に一時的に保持されたライトデータとを比較するデータ比較機構、データ比較機構による比較結果を通知するメッセージ送受信機構を備え、ディスク制御装置は、ホストのメッセージ送受信機構から送信されたメッセージを処理するメッセージ処理機構を備える。
【００１５】
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力（ライト）要求だった場合、ライトデータから保証コードを生成し付加する、あるいは、データ入出力要求が入力（リード）要求だった場合、該ライトデータに付加された保証コードを検証する保証コード付加／検証機構と、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路と、アプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ホストは、アプリケーションが発行したデータ入力（リード）要求に対し、経路管理テーブルを参照し、ミラーリングされたデータの片方と通信可能な入出力ポートから該データ入力要求を送信すると同時に、経路管理テーブル制御機構が次のデータ入力（リード）要求が発行されたときに、ミラーリングされたデータのもう片方と通信可能な入出力ポートからデータ入力（リード）要求を送信するように制御し、ディスク制御装置から到着した該データ入力要求で要求したデータの保証コードと該データから生成した保証コードが一致しない場合、再び経路管理テーブルを参照し、経路管理テーブルに従ってミラーリングされたもう片方と通信可能な入力ポートからデータ入力（リード）要求を送信し、同様にデータの保証コードと保証コード付加／検証機構が生成した保証コードを比較する。
【００１６】
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力（ライト）要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ディスク制御装置は、異なるデータ転送経路から到着した暗号処理専用装置によって暗号化されたホストのライトデータを比較するデータ比較機構を備え、データ比較機構は、異なるデータ転送経路から到着した暗号処理専用装置によって暗号化されたホストのライトデータを比較した結果、一致しない場合ホストにエラーを示す応答を返す。
【００１７】
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力（ライト）要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ミラーリングされたデータ双方を同時に読み出すミラーリングデータ読み出し機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ホストは、アプリケーションが発行したデータ入力（リード）要求に対し、ミラーリングデータ読み出し機構が経路管理テーブルを参照し、該データ入力（リード）要求をミラーリングされたデータ双方と通信可能な入出力ポートから送信し、ディスク制御装置から到着した該データ入力要求で要求したデータをデータ比較機構にて比較する。
【００１８】
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置で構成するストレージシステムであって、ディスク制御装置は、ホストとの送受信データを暗号化、あるいは復号化する暗号／復号化機構と、ホストから受信したデータを暗号／復号化機構によって暗号化する前に保証コードを付加する保証コード付加／検証機構と、アプリケーションが発行したデータ入力（リード）要求に従って、データを記憶装置から読み出し（あるいはキャッシュメモリ）、暗号／復号化機構によってデータを復号化し、保証コード付加／検証機構によって保証コードを検証する。
【００１９】
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置を相互接続するための結合装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置で構成するストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力（ライト）要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、結合装置は、ホストから異なるデータ転送経路を介して到着したミラーリングされたデータを比較するデータ比較機構を備える。
【００２０】
更に、上記を解決するための本発明の一実施態様として、経路管理テーブルは、少なくとも、ホストとディスク制御装置間の物理的な経路を識別するインデックス番号、ホストの入出力ポートを識別する番号、ディスク制御装置の入出力ポートを識別する番号、論理ボリュームを識別する番号、アプリケーションに対して見せる仮想デバイス番号、ミラーリングされている仮想デバイスかどうかを示す属性、及びデータリード、ライト要求時の該要求を送信するホスト入出力ポートを示すポインタを含む。
【００２１】
データリード要求時の該要求を送信するホスト入出力ポートを示すポインタ（以下、ポインタと称する）は、ある論理ボリュームへのデータ転送経路が複数存在するときに、どのデータ転送経路を使うかを示す。これは、ミラーリングされたデータの片方を読み出したときのデータ転送経路上の暗号処理専用装置で暗号、あるいは復号処理で誤動作が発生した場合、ミラーリングされたデータのもう片方を読み出してデータを復旧させるが、このとき、先のデータ転送経路の暗号処理専用装置を通過すると暗号、あるいは復号処理の誤動作の影響を受けてしまう。そのため、先のデータ転送経路とは異なるデータ転送経路を用いなければならない。ポインタの役割は、ミラーリングされた双方のデータのデータ転送経路をお互いに重ならないように制御することである。
【発明の効果】
【００２２】
本発明によれば、暗号処理専用装置又はディスク制御装置内部の暗号処理の誤動作によるデータを少なくともデータリード時又はデータライト時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明について図面を用いて説明する。
（１）本発明に用いるデータ転送経路の制御方式
【００２４】
図１は、ストレージシステムにおけるホストとディスク制御装置間のデータ転送経路の制御方式の一例を示した図である。本発明では、このデータ転送経路の制御方式を用いる。
【００２５】
１Ａは、図１におけるストレージシステムを示す。
【００２６】
ホスト１０５は、ディスク装置の記憶領域を利用してデータの送受信を行う。ホスト１０５はディスク制御装置１４０とＨＢＡ１２０を介して接続されている。
【００２７】
図１では、ＨＢＡ１２０が３つ存在するので、便宜上それぞれ１２０ａ、１２０ｂ、１２０ｃと表すこととする。ミドルウェア１１５については後で説明する。
【００２８】
ＨＢＡ１２０は、ホスト１０５がディスク制御装置１４０と通信するためのインタフェースを持つ。ＨＢＡ１２０が対応するインタフェースとしては、例えばＳＣＳＩ（Small Computer System Interface）やファイバチャネル、イーサネット（登録商標）などがある。
【００２９】
ディスク制御装置１６０は、ホスト１０５からのデータ送受信要求に対してデータを一時的な書き込み領域であるキャッシュメモリ（図示せず）、あるいは、ディスク装置のディスクに書き込んだり、逆にキャッシュメモリ、あるいはディスクに格納されたデータをホスト１０５に送信したりする。
【００３０】
ホストアダプタ１６５は、ホストとのインタフェースを備える。図１では、ホストアダプタは３つ存在するので、便宜上それぞれ１６５ａ、１６５ｂ、１６５ｃと表すこととする。
【００３１】
論理ボリューム１７１、１７２は、ホスト（アプリケーション）が見えるボリュームである。論理ボリュームとは、複数のディスクドライブの集合体を複数の領域で区切った各領域のことを指し、性能向上、信頼性向上を目的としてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）で構成されていることが一般的である。
【００３２】
ＲＡＩＤには複数のレベルが存在し、例えばデータを冗長化して書き込むＲＡＩＤ１（ミラーリングとも呼ばれる）やデータをある単位で分割し、それぞれ別のディスクドライブに書き込むと共に、データに対する保証コードを書き込むＲＡＩＤ３やＲＡＩＤ５などである。その他のＲＡＩＤレベルも存在するが、説明は割愛する。
【００３３】
ディスク制御装置１６０は、実際にはホストアダプタ１６５、論理ボリュームＬＵ（Logical unit）以外にも、キャッシュメモリやディスク制御装置内の制御情報などを保持するための共有メモリ、ディスクドライブとのインタフェースを備えるディスクアダプタ、ホストアダプタ、ディスクアダプタの制御及びディスク制御装置内部のデータ転送制御などを行うプロセッサ、これらを相互結合する相互結合部などで構成されている。ホスト１０５とディスク制御装置１６０間のデータ転送経路の制御を説明する上で、少なくともホストアダプタ１６５ａ、１６５ｂ、１６５ｃから論理ボリュームＬＵ１７１、１７２にアクセス可能な構成であればよいものとする。
【００３４】
ホスト１０５及びディスク制御装置１６０は、ネットワーク１３を介して管理端末１４と接続される。
【００３５】
管理端末１４は、基本的にストレージシステム１Ａを構成する各機器に接続し、各機器の状態監視や各種設定を行う。ミドルウェア１１５の制御も管理端末で行う。
【００３６】
図１を見ると、ホスト１０５とディスク制御装置１６０間において、データ送受信可能な通信経路（以下、データ転送経路と呼ぶことがある）は３つあることが分かる。
【００３７】
データ送受信可能な通信経路とは、ＨＢＡ１２０ａとホストアダプタ１６５ａ、ＨＢＡ１２０ｂとホストアダプタ１６５ｂ、及びＨＢＡ１２０ｃとホストアダプタ１６５ｃ間である。
【００３８】
ホスト１０５（アプリケーション１１０）から見ると、論理ボリュームＬＵ１７１、１７２にアクセスする際、どのデータ転送経路を使ってアクセスすればよいか分からない。例えば、ＨＢＡ１２０ａとホストアダプタ１６５ａの経路を使い続けても問題は無い。
【００３９】
しかし、複数のデータ転送経路を使うと以下の点で有用である。
【００４０】
例えば、ＨＢＡ１２０ａとホストアダプタ１６５ａの経路が何らかの原因で使用できなくなった場合、他のデータ転送経路を使うことが出来れば処理を継続することが出来る。また、ＨＢＡ１２０ａとホストアダプタ１６５ａの経路を使い続けた結果、ホストアダプタ１６５ａに負荷が集中するため処理性能の低下を招く恐れがあることから、他のデータ転送経路を使ってその負荷を分散させることが出来る。
【００４１】
ミドルウェア１１５は、このようなデータ転送経路の制御を担うものである。ミドルウェア１１５は、経路管理テーブル１８０によりデータ転送経路を制御する。
【００４２】
図２に示すように、経路管理テーブル１８０には、「ポインタ」フィールド１３０、テーブルに登録された経路を識別する「インデックス番号」フィールド１３１、ホストの入出力ポートを識別する「ホスト入出力ポート番号」フィールド１３２、ディスク制御装置の入出力ポートを識別する「ディスク制御装置入出力ポート番号」フィールド１３３、ホスト入出力ポート番号とディスク制御装置入出力ポート番号の組み合わせで決定されるデータ転送経路からアクセス可能な論理ボリュームの番号である「ＬＵ番号」フィールド１３４と、アプリケーション１１０に仮想的に見せる論理ボリュームを識別する「仮想デバイス番号」フィールド１３５、ミラー構成である相手の仮想デバイス番号を示す「ミラー属性」フィールド１３６を含む。
【００４３】
「ポインタ」フィールド１３０は、ディスク制御装置１６０の論理ボリュームＬＵをアクセスするデータ転送経路を示すものである。例えば、図２の経路管理テーブル１８０では、論理ボリュームＬＵ１７１に対する３つのデータ転送経路のうち、インデックス番号１のデータ転送経路（以下、単にインデックス１と呼ぶときもある）を用いることを意味する。
【００４４】
ポインタの操作としては、例えばデータ転送経路の負荷分散を目的とする場合、インデックス１、インデックス２、インデックス３、インデックス１の順にラウンドロビンアルゴリズムに従って、ポインタを動かす。あるいは、データ転送経路が使えなくなった場合は、該データ転送経路を使わせないようにポインタを制御する。
【００４５】
仮想デバイス番号の割り当てとしては、経路管理テーブルにおいて、同じ論理ボリューム番号に属するインデックス群毎に割り当てる。具体的には、図３のように、同じ論理ボリューム番号に属するインデックス群（インデックス番号１から３及びインデックス番号６、７）の若いインデックス群順（昇順）から仮想デバイス番号０，１を割り当てる。そしてインデックス群を有しない論理ボリューム２，３については、順に仮想デバイス番号２，３を割り当てる。
【００４６】
また、図４のように、インデックス群から先に仮想デバイスＤｅｖを割り当てるのではなく、インデックス番号の昇順に従って仮想デバイス番号０，１，２，３を割り当ててもよい。
【００４７】
経路管理テーブル１８０の作成手順については、別図面を用いて説明する。
【００４８】
仮想デバイスＤｅｖは、アプリケーション１１０に対して仮想的に見せる論理ボリュームであって、論理ボリュームＬＵと対応付けられたボリュームである。例えば、図１ではアプリケーション１１０が、論理ボリュームＬＵ１７１へ３つのデータ転送経路でアクセスできる。
【００４９】
具体的には、ホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａ、ホストポート１２０Ｐｂ−ＤＫＣポート１６５Ｐｂ、ホストポート１２０Ｐｃ−１６５Ｐｃである。仮想デバイスＤｅｖ、例えばアプリケーション１１０が論理ボリュームＬＵ１７１にアクセスするために、どのデータ転送経路を使えばよいかということを意識させないようにするための手段として提供する。
【００５０】
経路管理テーブル１８０によると、経路１（インデックス１）はホストポート１２０ＰａとＤＫＣポート１６５Ｐａ間のデータ転送経路を用いて論理ボリュームＬＵ１７１へのアクセスが可能であることを示す。同様に、経路２（インデックス２）はホストポート１２０ＰｂとＤＫＣポート１６５Ｐｂ間のデータ転送経路を用いて論理ボリュームＬＵ１７１へのアクセスが、経路３（インデックス１）はホストポート１２０ＰｃとＤＫＣポート１６５Ｐｃ間のデータ転送経路を用いて論理ボリュームＬＵ１７１へのアクセスが可能であることを示す。
【００５１】
つまり、アプリケーション１１０は、３つのデータ転送経路それぞれから、論理ボリュームＬＵ１７１へアクセス可能ということで、ミドルウェア１１５はアプリケーション１１０に見せる仮想的な論理ボリュームとして仮想デバイスＤｅｖ１を割り当てる。仮想デバイスＤｅｖの割り当て等の手順については別図面を用いて説明する。
【００５２】
このようにすることによって、複数のデータ転送経路の切り替えをアプリケーション１１０に意識させずに、あたかも単一のデータ転送経路を使って論理ボリュームＬＵ１７１にアクセスしているように見せることが可能となる。
【００５３】
具体的に、アプリケーション１１０からデータリード要求が連続的に３回発行された場合について説明する。図１では各データリード要求をＡ、Ｂ、Ｃと表している。
【００５４】
まず、アプリケーション１１０から仮想デバイスＤｅｖ１（実際には仮想デバイスＤｅｖ１と対応付けられた論理ボリュームＬＵ１７１）に対するデータリード要求Ａが発行されると、ミドルウェア１１５は経路管理テーブル１８０を参照し、インデックス１（経路１）を使ってデータリード要求Ａをディスク制御装置１６０に送信する。
【００５５】
続けて、アプリケーション１１０からデータリード要求Ｂが発行されると、ミドルウェア１１５は、次のインデックス２（経路２）を使ってデータリード要求Ｂをディスク制御装置１６０に送信する。
【００５６】
最後に、アプリケーション１１０からデータリード要求Ｃが発行されると、ミドルウェア１１５は、その次のインデックス３（経路３）を使ってデータリード要求Ｃをディスク制御装置１６０に送信する。
【００５７】
上述した動作は、一般的にラウンドロビンと呼ばれるアルゴリズムであるが、これに限定されるものではなく、他のアルゴリズムも同様に適用可能である。例えば、ディスク制御装置の資源（たとえばメモリやプロセッサ）の利用率などをモニタリングし、その利用率が低い資源を抱えるＤＫＣポート１６５Ｐａに優先的に要求を送信してもよい。
【００５８】
一方、データ転送経路が1つしかない場合、例えば図１では論理ボリュームＬＵ１７２のデータ転送経路はホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａというように管理する。
【００５９】
図５は、経路管理テーブル１８０の作成手順を示すフローチャートである。経路管理テーブル１８０の作成処理は、ミドルウェア１１５がホスト１０５のメモリ内にある経路管理作成プログラムに基づいて実行する。
【００６０】
経路管理テーブル１８０の作成は、ミドルウェア１１５において行われる。ストレージシステムの構成は図１と同じストレージシステム１Ａとする。
【００６１】
経路管理テーブル１８０を作成する手順として、まず、管理端末１４は、ホストポートとＤＫＣポートを登録する（Ｓ５００）。この時点では、まだＬＵ番号や仮想Ｄｅｖ番号は登録されない。
【００６２】
次に、ミドルウェア１１５が経路管理テーブル１８０を参照し、登録された経路を通じてディスク制御装置１６０内のデバイス（論理ボリューム）を解析するためのコマンドを発行する（Ｓ５０１）。解析するためのコマンドは、例えばＳＣＳＩプロトコルにおける、Inquiryコマンド、Report LUNコマンドなどがあり、これらコマンドを組み合わせることによってデバイスの種類、容量などが判明する。
【００６３】
ディスク制御装置１６０は、ミドルウェア１１５から発行されたコマンドに対し所定の応答をミドルウェア１１５に送信し（Ｓ５０２）、ミドルウェア１１５は、応答を解析し経路管理テーブル１８０に反映する（Ｓ５０３）。
【００６４】
その後、ミドルウェア１１５は、仮想ボリュームＤｅｖの割り当て処理（Ｓ５０４）を行うが、別図面でそのフローチャートを説明する。
【００６５】
最後に、ミドルウェア１１５は、割り当てられた仮想ボリュームＤｅｖの番号を経路管理テーブル１８０に反映させた時点で、例えば図１の経路管理テーブル１８０のようなテーブルが完成する。
【００６６】
図６は、仮想デバイス割り当て処理のフローチャートを示す図である。仮想デバイス割り当て処理は、ミドルウェア１１５がホスト１０５のメモリ内にある仮想デバイス割り当てプログラム（図示せず）に基づいて実行する。なお、図６のフローチャートの説明にも、便宜上図２の経路管理テーブル１８０を用いる。
【００６７】
図５のステップＳ５０３まで処理が終了した時点で、仮想デバイス割当て処理を開始する（Ｓ６００）。この時点で、データ転送経路は３つある。
【００６８】
仮想デバイス割り当てる手順として、まず、ミドルウェア１１５は、経路管理テーブル１８０を参照し、各インデックスのＬＵ番号を見て、同じＬＵ番号をもつインデックス群があるかどうかを判断する（Ｓ６０１）。
【００６９】
そして、ミドルウェア１１５は、同じＬＵ番号のインデックス群があると判断すると（Ｓ６０１：ＹＥＳ）、抽出されたインデックス群が属する同じＬＵ番号毎に仮想デバイス番号を割り当てる（Ｓ６０２）。
【００７０】
例えば、ステップＳ６０１の結果、図２に示すように、ＬＵ１７１に関してインデックス群１，２，３が抽出される。そしてステップＳ６０２の結果、ミドルウェア１１５は、インデックス群１，２，３に対して仮想デバイス番号「１」を割り当てる。図２では、同じＬＵ番号の他のインデックス群はないので、次のステップに進む。
【００７１】
すなわち、ミドルウェア１１５は、同じＬＵ番号のインデックス群がないと判断すると（Ｓ６０１：ＮＯ）、ステップＳ６０３の処理を行うこととなる。
【００７２】
ミドルウェア１１５は、残りのインデックスに対してステップＳ６０２で割り当てられた番号とは異なる仮想デバイス番号を割り当てる（Ｓ６０３）。
【００７３】
例えば、ステップＳ６０３の結果、ミドルウェア１１５は、インデックス４に対して仮想デバイス番号「２」を割り当てる。
【００７４】
そうして、ミドルウェア１１５は、仮想デバイス割り当て処理を終了すると（Ｓ６０４）、図５で説明したステップＳ５０５の処理を行う。
【００７５】
以上より、ミドルウェア１１５は、次に使うことができるデータ転送経路は、仮想デバイス番号１に対してはインデックス１であると判断することが出来る。
【００７６】
なお、ポインタの付け方に特に制限は無く、例えば必ずインデックスに付与した番号の一番若いインデックスにポインタを付けてもよい。本発明におけるポインタの更新の方法については、後述で説明する。
【００７７】
第１から第６の実施の形態は、図１のようなデータ転送経路制御を利用することにより実現するものである。
【００７８】
（２）第１の実施の形態
（２−１）システム構成
図７は、第１の実施の形態におけるストレージシステムの構成を示す図である。１Ｂは、第１の実施の形態におけるストレージシステムを示す。
【００７９】
なお、図７に示すストレージシステム１Ｂは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【００８０】
第１の実施の形態において、暗号機能を備えたストレージシステム１Ｂのデータ完全性を保証するために、ホスト１０５Ｂからデータをディスク制御装置１６０Ｂに書き込んだ直後に、該データを読み出し、ホスト１０５Ｂにおいて書き込んだデータと読み出したデータを比較する。
【００８１】
また、データの暗号処理、及び復号処理を総称し「暗号処理」と呼ぶこととする。更に、暗号化されていないデータのことを「平文」、暗号化されたデータのことを「暗号文」と呼ぶこととする。
【００８２】
まず、第１の実施の形態における暗号処理を実現するためのストレージシステム１Ｂは、ホスト１０５Ｂとディスク制御装置１６０Ｂとの間に暗号処理専用装置（以下、アプライアンスと呼ぶことがある）１４０を接続させる構成である。
【００８３】
アプライアンス１４０には、暗号処理を実行するための暗号処理機構１５０、ホスト１０５Ｂとのインタフェース、及びディスク制御装置１６０Ｂとのインタフェースを備える入出力ポート１４５を備える。
【００８４】
なお、図７では各データ転送経路上にアプライアンスを設置している構成であり、区別するためアプライアンス１４０ａ、１４０ｂと表記する。また、入出力ポートは、アプライアンス１４０ａについてはホスト側を１４５ａ、ディスク制御装置側を１４５ｃ、アプライアンス１４０ｂについてはホスト側を１４５ｂ、ディスク制御装置側を１４５ｄとする。なお、アプライアンス１４０ａ内は、入出力ポート１４５ａから１４５ｃにしかデータは流れないため、ホストポート１２０ＰｂとＤＫＣポート１６５Ｐｂ間のデータ転送経路に影響を与えることは無い。同様に、アプライアンス１４０ｂ内は、入出力ポート１４５ｂから１４５ｄにしかデータは流れないため、ホストポート１２０ＰａとＤＫＣポート１６５Ｐａ間のデータ転送経路に影響を与えることは無い。
【００８５】
アプライアンス１４０の設置により、ホスト１０５Ｂとディスク制御装置１６０Ｂ間を流れるデータは以下のようになる。即ち、ホスト１０５Ｂとアプライアンス１４０間は平文が流れ、アプライアンス１４０とＬＵ１７１，１７２間は暗号文が流れる。
【００８６】
ホスト１０５Ｂは、リードアフタライトモジュール３０５、データ比較モジュール３１０、メッセージ送受信モジュール３１５、経路管理テーブル制御モジュール３２０、経路管理テーブル１８０Ｂを備える。
【００８７】
ディスク制御装置１６０Ｂにはメッセージ処理モジュール３３０を備える。
【００８８】
これらのモジュール及びテーブルは、ホスト１０５Ｂからデータをディスク制御装置１６０Ｂに書き込んだ直後に、該データを読み出し、ホスト１０５Ｂにおいて書き込んだデータと読み出したデータを比較するために必要である。
【００８９】
リードアフタライトモジュール３０５は、アプリケーション１１０からのデータライト要求で書き込まれたデータの読み出し要求を発行すると同時にライトデータを記憶領域１２５に書き込む。
【００９０】
データ比較モジュール３１０は、記憶領域１２５に書き込まれたライトデータとリードアフタライトモジュール３０５によって読み出されたデータとを比較する。
【００９１】
メッセージ送受信モジュール３１５は、データ比較モジュール３１０による比較結果をメッセージとしてディスク制御装置１６０Ｂに送信する。
【００９２】
経路管理テーブル制御モジュール３２０は、経路管理テーブル３２５を制御する。
【００９３】
メッセージ処理モジュール３３０は、メッセージ送受信モジュール３１５が送信したメッセージを処理する。
【００９４】
メッセージ送受信モジュール３１５とメッセージ処理モジュール３３０とのメッセージのやり取りをする理由は、他のホストからのデータ参照を防止するためである。もし、アプライアンスに誤動作が発生していた場合、他のホストへ結果的に誤ったデータが送信されてしまう。そこで、ディスク制御装置１６０Ｂは、メッセージ送受信モジュール３１５からのメッセージ受信までは、ホスト１０５Ｂから書き込まれたデータを一時保留状態としておく。
【００９５】
図８は、第１の実施の形態における経路管理テーブル１８０Ｂの一例を示す図である。
【００９６】
なお、経路管理テーブル１８０Ｂの項目は、上述で説明した経路管理テーブル１８０の項目と同様なので、説明は省略する。
【００９７】
（２−２）仮想デバイス割り当て処理
本実施の形態における経路管理テーブル１８０Ｂの仮想デバイス割り当て処理、及びポインタ割り当て処理の流れは、図６とは異なる。
【００９８】
図９は、第１の実施の形態における経路管理テーブル１８０Ｂの仮想デバイス割り当て処理のフローチャートである。
【００９９】
仮想デバイス割り当て処理は、ミドルウェア１１５Ｂがホスト１０５Ｂのメモリ内にある仮想デバイス割り当てプログラム（図示せず）に基づいて実行する。
【０１００】
具体的には、ミドルウェア１１５Ｂは、図５で説明したステップＳ５０３の処理を行うと、この仮想デバイス割り当て処理を開始する（Ｓ９００）。
【０１０１】
次に、ミドルウェア１１５Ｂは、ステップＳ９０１及びＳ９０２の処理をＳ６０１及びＳ６０２の処理と同様の手順で行う。
【０１０２】
その後、ミドルウェア１１５Ｂは、ステップＳ９０２で割り当てられた仮想デバイスＤｅｖがミラー属性かどうか判断する（Ｓ９０３）。
【０１０３】
ミラー属性であれば（Ｓ９０３：ＹＥＳ）、ミドルウェア１１５Ｂは、図１０のポインタ割り当て処理に移る（Ｓ９０４）。
【０１０４】
ミラー属性でなければ（Ｓ９０３：ＮＯ）、各仮想デバイスＤｅｖに割り当てられているインデックス群の中から一番若いインデックス番号にポインタを割り当てる（Ｓ９０５）。これは、データ読み出し時に経由するアプライアンス１４０を異なるアプライアンスにする必要が無いためである。
【０１０５】
そして、ミドルウェア１１５Ｂは、同じＬＵ番号に対してインデックス群が複数あるかどうかを判断し（Ｓ９０６）、同じＬＵ番号に対してインデックス群があると判断した場合にはステップＳ９０３に戻り、引き続き処理を行う。
【０１０６】
一方、ミドルウェア１１５Ｂは、同じＬＵ番号に対してインデックス群がないと判断した場合には（Ｓ９０６：ＮＯ）、残りのインデックスに異なる仮想デバイスＤｅｖを割り当てて（Ｓ９０７）、この処理を終了する（Ｓ９０８）。
【０１０７】
（２−３）ポインタ割り当て処理
図１０は、ポインタ割り当て処理のフローチャートを示す図である。
【０１０８】
ポインタ割り当て処理は、ミドルウェア１１５Ｂの経路管理テーブルモジュール３２０がミドルウェア１１５Ｂ内にあるポインタ割り当てプログラム（図示せず）に基づいて実行する。
【０１０９】
具体的には、ミドルウェア１１５Ｂは、ステップＳ９０２で割り当てられた仮想デバイスＤｅｖがミラー属性であると判断した場合に（Ｓ９０３：ＹＥＳ）、ポインタ割り当て処理を開始する（Ｓ１０００）。
【０１１０】
まず、ミドルウェア１１５Ｂは、ミラー属性の一方の仮想デバイスＤｅｖに対し、一番若いインデックスにポインタを割り当てる（Ｓ１００１）。
【０１１１】
ここで、「一番若い」というのは、例えばインデックス番号１，２があったとすると、一番小さな番号を有するインデックス番号１が「一番若い」インデックスである。
【０１１２】
次に、ミドルウェア１１５Ｂは、ミラー属性の他方の仮想デバイスＤｅｖに対し、Ｓ１００１で割り当てたインデックスとは異なるインデックスにポインタを割り当てる（Ｓ１００２）。
【０１１３】
図８において、ミラー属性である仮想デバイス番号は１及び２である。そして、一方の仮想デバイスＤｅｖ１と対応付けられるＬＵ番号１のデータ転送経路はインデックス１、２の経路である。したがってステップＳ１００１により、一番若いインデックス番号である１にポインタを割り当てる。他方の仮想デバイスＤｅｖ２と対応付けられるＬＵ番号２のデータ転送経路は、インデックス３，４の経路である。一方の仮想デバイスＤｅｖ１で割り当てられたインデックス１とは異なるインデックスにポインタを割り当てればよい。ステップＳ１００１の結果、仮想デバイスＤｅｖ１に割り当てられたポインタは、ホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａのデータ転送経路を示すインデックスである。即ち、仮想デバイスＤｅｖ２に割り当てるポインタは、ホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａのデータ転送経路とは異なるデータ転送経路を示すインデックスであればよい。経路管理テーブル１８０Ｂを見ると、ホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａのデータ転送経路を示すインデックスが３であることから、ここでは、インデックス番号４にポインタを割り当てる。
【０１１４】
次にミドルウェア１１５Ｂは、ミラー属性である対の仮想デバイスが複数あるかどうかを判断し（Ｓ１００３）、複数あると判断すると（Ｓ１００３：ＹＥＳ）、再びステップＳ１００１の処理を行う。
【０１１５】
一方、ミラー属性である対の仮想デバイスが複数ないと判断すると（Ｓ１００３：ＮＯ）、この処理を終了する（Ｓ１００４）。
【０１１６】
その後、引き続きミドルウェア１１５Ｂは、上述したＳ９０６の処理に進む。
【０１１７】
なお、図９及び図１０は、本実施の形態に限らず以降の実施の形態においても有効である。即ち本実施の形態以降の実施の形態で用いる経路管理テーブル１８０は図９及び図１０の処理によって作成される。
【０１１８】
図７に示すストレージシステム１Ｂは、論理ボリュームＬＵ１７１（ＬＵ番号１に相当）のデータ転送経路をインデックス１，２として登録し、論理ボリュームＬＵ１７２（ＬＵ番号２に相当）のデータ転送経路をインデックス３，４として登録する。そして、仮想デバイスＤｅｖ１、２、及びポインタが図５、図９及び図１０で説明したフローチャートによって割り当てられる。
【０１１９】
（２−４）データ保証方法
では次に、本実施の形態におけるストレージシステム１Ｂにおけるデータ保証方法について説明する。
【０１２０】
図１１から図１３は、本実施の形態におけるストレージシステム１Ｂにおけるデータ保証方法のシーケンス図である。
【０１２１】
アプリケーション１１０が仮想デバイスＤｅｖ１に対してデータ書き込みをミドルウェア１１５Ｂに指示すると（Ｓ１１００）、ミドルウェア１１５Ｂのリードアフタライトモジュール３０５は、一旦、ライトデータを記憶領域１２５へコピーする（Ｓ１１０１）。
【０１２２】
便宜上、記憶領域１２５に書き込まれたデータをデータＡとする。
【０１２３】
次に、ミドルウェア１１５Ｂは、経路管理テーブル１８０Ｂを参照し、次に使うデータ転送経路を確認する（Ｓ１１０２）。
【０１２４】
仮想デバイスＤｅｖ１へのデータ転送経路が１つしかない場合には、自動的にその１つのデータ転送経路となる。複数のデータ転送経路が存在する場合は、ポインタを参照してデータ転送経路を確認する。
【０１２５】
ミドルウェア１１５Ｂは、アプリケーション１１０の指示通りに、ディスク制御装置１６０Ｂに書き込み要求を発行する（Ｓ１１０３）。
【０１２６】
アプライアンス１４０ａは、データを暗号化しディスク制御装置１６０Ｂへ送信する（Ｓ１１０４）。
【０１２７】
ディスク制御装置１６０Ｂは、データをキャッシュ（ディスクの場合もあり）に書き込んだ後、ホスト１０５に対して完了ステータスを送信する（Ｓ１１０５）。
【０１２８】
ミドルウェア１１５Ｂは、ディスク制御装置１６０Ｂからの完了ステータスを受けると、ミドルウェア１１５Ｂの経路管理テーブル制御モジュール３２０は経路管理テーブル１８０Ｂを参照して（Ｓ１１０６）、データを読み出すデータ転送経路を特定する（Ｓ１１０７）。具体的には、経路管理テーブル１８０Ｂのポインタフィールド１３０にあるポインタが指し示すインデックスのデータ転送経路とする。
【０１２９】
ミドルウェア１１５Ｂのリードアフタライトモジュール３０５は、Ｓ１１０７で決定したデータ転送経路を用いて、書き込まれたデータの読み出し要求をディスク制御装置１６０Ｂに発行する（Ｓ１１０８）
【０１３０】
ディスク制御装置１６０Ｂは、読み出し要求で指定されたデータをホスト１０５へ送信する（Ｓ１１０９）。
【０１３１】
アプライアンス１４０ａは、データを復号化しホスト１０５へ送信する（Ｓ１１１０）。
【０１３２】
ミドルウェア１１５Ｂは、ディスク制御装置１６０Ｂから受信したデータを記憶領域１２５に格納する（Ｓ１１１１）。
【０１３３】
便宜上、Ｓ１１１１で記憶領域に格納したデータをデータＢとする。
【０１３４】
ミドルウェア１１５Ｂのデータ比較モジュール３１０は、記憶領域１２５に格納されたデータＡとデータＢを読み出して比較する（Ｓ１１１２）。
【０１３５】
ミドルウェア１１５Ｂのデータ比較モジュール３１０は、記憶領域１２５に格納されたデータＡとデータＢとが一致した場合は（Ｓ１１１２：ＹＥＳ）、ステップＳ１１１４に進む。
【０１３６】
一方、ミドルウェア１１５Ｂのデータ比較モジュール３１０は、記憶領域１２５に格納されたデータＡとデータＢとが一致しなかった場合は（Ｓ１１１２：ＮＯ）、ミドルウェア１１５Ｂがアプリケーション１１０にエラーを報告する（Ｓ１１１３）。この時点で、アプライアンス１４０ａの暗号処理、あるいは復号処理で誤動作が発生しているとデータＡとデータＢは一致しない。即ち、ステップＳ１１１２及びＳ１１１３で、データの異常を検出することが出来る。
【０１３７】
基本的には、以上の処理でデータの異常が検出することが明らかになったが、仮に暗号処理に誤動作が発生していると、そのデータを復号化した場合、元のデータとは異なるものとなる。複数のホストで該データ（実際は論理ボリューム）を共有している環境下では、他のホストから該データが読み出される恐れがある。そのため、ステップＳ１１１３までの処理でデータが保証されたことを確認するまでは、該データは読み出されないようにする。
【０１３８】
データ完全性が保証されたことを通知するために、ミドルウェア１１５Ｂのメッセージ送受信モジュール３１５がその旨をディスク制御装置１６０Ｂに通知する（Ｓ１１１４）。
【０１３９】
ディスク制御装置１６０Ｂは、メッセージ送受信モジュール３１５からの通知を受けて（Ｓ１１１５）、該データの書き込みを確定する。
【０１４０】
なお、ホスト１０５Ｂの記憶領域１２５に格納されたデータＡ、データＢを消去する目的として、ディスク制御装置１６０Ｂがリードアフタライトモジュール３０５に受領応答を送信し（Ｓ１１１６）、データＡ、データＢを消去するようにしてもよい（Ｓ１１１７）。
【０１４１】
仮想デバイスＤｅｖ２に対しても、これまで説明した手法でデータを保証することが可能である。
【０１４２】
（２−５）第１の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスで行う暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０１４３】
（３）第２の実施の形態
（３−１）システム構成
図１４は、第２の実施の形態におけるストレージシステムの構成を示す図である。１Ｃは、本実施の形態におけるストレージシステムを示す。
【０１４４】
本実施の形態において、暗号機能を備えたストレージシステム１Ｃのデータ完全性を保証するために、ホスト１０５Ｃがデータに保証コードを付加してディスク制御装置１６０Ｃに書き込む。そして、該データが読み出されたときに保証コードを検証し、データ完全性を保証する。読み出されたデータから生成した保証コードと最初に付加した保証コードが一致しないと、暗号処理、あるいは復号処理に誤動作が発生したとみなすことが出来る。
【０１４５】
なお、図１４に示すストレージシステム１Ｃは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【０１４６】
保証コード付加／検証モジュール７０５は、アプリケーション１１０がディスク制御装置１６０Ｃの論理ボリュームに書き込むデータに対して保証コードを付加する機能と、ディスク制御装置１６０Ｃから読み出したデータから新たに生成した保証コードと最初に付加した保証コードとを比較する機能と、を備える。
【０１４７】
経路管理テーブル制御モジュール７１０は第１の実施の形態の経路管理テーブル制御モジュール３２０と同じである。
【０１４８】
ＯＳ（Operating System）７２０は、ホスト１０５Ｃの各種資源を管理し、アプリケーション１１０が各種資源を利用できるようにする基本ソフトウェアである。
【０１４９】
ミラーリングモジュール７２５は、アプリケーション１１０からのライトデータをディスク制御装置１６０Ｃのミラー化された論理ボリュームに書き込む、又は、データ読み出し要求に対して、ミラー化された一方の論理ボリュームに格納されたデータが読み出せなかった場合に他方の論理ボリュームからデータを読み出す。本実施の形態では、ミラー化された対の論理ボリュームをＬＵ１７１、ＬＵ１７２とする。
【０１５０】
図１５は、本実施の形態における経路管理テーブル１８０Ｃの一例を示す図である。
経路管理テーブル１８０Ｃの含まれる項目は、経路管理テーブル１８０、１８０Ｂの項目と同じ項目には同一の図番を付している。
【０１５１】
図１４を見ると、論理ボリュームＬＵ１７１、ＬＵ１７２に対しては、それぞれ２つのデータ通信経路が存在するため、経路管理テーブル１８０Ｃのデータ転送経路を示すインデックスは計４つとなる。
【０１５２】
論理ボリュームＬＵ１７１は、ホストポート１２０Ｐａ−ＤＫＣポート１６５Ｐａ、ホストポート１２０Ｐｂ―ＤＫＣポート１６５Ｐｂからアクセス可能である。論理ボリュームＬＵ１７２も、論理ボリュームＬＵ１７１と同じデータ転送経路からアクセス可能である。
【０１５３】
従って、図５及び図９の経路管理テーブル作成フローより、インデックス１と２に対しては仮想デバイスＤｅｖ１が割り当てられ、インデックス３と４に対しては仮想デバイスＤｅｖ２が割り当てられる。そして、論理ボリュームＬＵがミラー化されているので、ミラー属性として仮想デバイスＤｅｖ１と仮想デバイスＤｅｖ２とが、登録される。
【０１５４】
（３−２）データ保証方法
図１６から図１９は、本実施の形態におけるデータ保証方法のシーケンス図である。
【０１５５】
具体的には、まずアプリケーション１１０は仮想デバイスＤｅｖ１に対するデータ書き込みを指示すると（Ｓ１６００）、ミドルウェア１１５Ｃの保証コード付加／検証モジュール７０５がライトデータに対して保証コードを付加する（Ｓ１６０１）。
経路管理テーブル制御モジュール７１０は、経路管理テーブル１８０Ｃを参照し、次に使うデータ転送経路を確認する（Ｓ１６０２）。すなわち、経路管理テーブル制御モジュール７１０は、データ書き込み指示をディスク制御装置１６０Ｃへ送信するための入出力ポートを特定する（Ｓ１６０２）。
【０１５６】
次に、ミドルウェア１１５Ｃのミラーリングモジュール７２５は、ライトデータを該ライトデータに付加された保証コードとともに異なる仮想デバイスに書き込むようにミラーリングする（Ｓ１６０３）。この場合、異なる仮想デバイスは、ミラー属性となっている仮想デバイスＤｅｖ２である。このときのデータ転送経路は、ステップＳ１６０２で確認したデータ転送経路である。
【０１５７】
アプライアンス１４０ａ、１４０ｂはそれぞれライトデータと該ライトデータに付加された保証コードを暗号化し、ディスク制御装置１６０Ｃへ送信する（Ｓ１６０４）。
【０１５８】
ディスク制御装置１６０Ｃは、アプライアンス１４０ａ、１４０ｂから受信した暗号化されたライトデータと保証コードをキャッシュ（ディスクの場合もあり）に書き込んで、完了ステータスをホスト１０５Ｃへ送信する（Ｓ１６０５）。
【０１５９】
ミドルウェア１１５Ｃは、アプリケーション１１０へ完了ステータスを報告すると（Ｓ１６０６）、アプリケーション１１０は、ディスク制御装置１６０Ｃの完了ステータスを受けてデータ書き込み処理を終了する。
【０１６０】
一方、アプリケーション１１０は仮想デバイスＤｅｖ１に対する、上述でのデータ書き込み処理で書き込まれたデータの読み出しを指示すると（Ｓ１６０７）、ミドルウェア１１５Ｃの経路管理テーブル制御モジュール７１５は、経路管理テーブル１８０Ｃを参照し、データ読み出し指示を送信するデータ転送経路を得る（Ｓ１６０８）。
【０１６１】
ステップＳ１６０７で得たデータ転送経路に従って、ミドルウェア１１５Ｃは、データ読み出し指示を送信する（Ｓ１６０９）。例えば、図１５の経路管理テーブル１８０Ｃを見ると仮想デバイスＤｅｖ１に対してはインデックス１が指し示されている。このため、データ転送経路は、インデックス１の経路となる。
【０１６２】
ディスク制御装置１６０Ｃは、ステップＳ１６０８で送信されたデータ読み出し指示に従って、キャッシュ（ディスクの場合もある）に格納されたデータをホスト１０５Ｃへ送信する（Ｓ１６１０）。
【０１６３】
アプライアンス１４０ａは暗号化されたデータと保証コードを復号化し、ホスト１０５Ｃへ送信する（Ｓ１６１１）。
【０１６４】
ミドルウェア１１５Ｃの保証コード付加／検証モジュール７０５は、ディスク制御装置１６０Ｃから受信したデータから生成した保証コードとデータに付加された保証コードを比較する（Ｓ１６１２）。
【０１６５】
ミドルウェア１１５Ｃの保証コード付加／検証モジュール７０５は、両保証コードが一致しているか否かを判断する（Ｓ１６１３）。
【０１６６】
比較した結果、保証コード付加／検証モジュール７０５は、一致していれば（Ｓ１６１３：ＹＥＳ）、アプライアンス１４０ａによる暗号処理、あるいは復号処理に誤動作が発生していないことが保証されるため、アプリケーション１１０にデータを渡す（Ｓ１６１４）。
【０１６７】
保証コード付加／検証モジュール７０５は、一致していないと判断すると（Ｓ１６１３：ＮＯ）、経路管理テーブル制御モジュール７１０が、ミラーリングしたデータを読み出すために、経路管理テーブル１８０Ｃを参照し、ミラーリングしたデータを読み出すデータ転送経路を特定する（Ｓ１６１５）。
【０１６８】
ミドルウェア１１５は、ステップＳ１６０７で特定したデータ転送経路を用いて、ミラー属性のある論理ボリュームにデータ読み出し要求を発行する（Ｓ１６１６）。例えば、図１５の経路管理テーブル１８０Ｃを見ると仮想デバイスＤｅｖ２に対してはインデックス４が指し示されている。このため、データ転送経路は、インデックス４の経路となる。
【０１６９】
ディスク制御装置１６０Ｃは、データ読み出し要求に従ってデータをホスト１０５Ｃへ送信する（Ｓ１６１７）。
【０１７０】
アプライアンス１４０ｂは、暗号化されたデータと保証コードを復号化しホスト１０５Ｃへ送信する（Ｓ１６１８）。
【０１７１】
ミドルウェア１１５Ｃの保証コード付加／検証モジュール７０５は、ステップＳ１６１１と同様に、ディスク制御装置１６０Ｃから受信したデータから生成した保証コードとデータに付加された保証コードを比較する（Ｓ１６１９）。
【０１７２】
そしてミドルウェア１１５Ｃの保証コード付加／検証モジュール７０５は、両保証コードが一致しているか否かを判断する（Ｓ１６２０）。
【０１７３】
保証コード付加／検証モジュール７０５は、比較した結果、一致していると判断すると（Ｓ１６２０：ＹＥＳ）、アプライアンス１４０ｂによる暗号処理、あるいは復号処理に誤動作が発生していないことが保証されるため、アプリケーション１１０にデータを渡す（Ｓ１６１３）。
【０１７４】
保証コード付加／検証モジュール７０５は、比較した結果、一致していないと判断すると（Ｓ１６２０：ＮＯ）、アプリケーション１１０へエラーを報告する（Ｓ１６２１）。
【０１７５】
最後に、ミドルウェア１１０Ｃの経路管理テーブル制御モジュール７１０は、ポインタ移動処理を実施し（Ｓ１６２２）、このシーケンスを終了する（Ｓ１６２３）。
【０１７６】
図２０は、経路管理テーブル１８０Ｃのポインタの移動処理を示すフローチャートである。
【０１７７】
ポインタ移動処理は、ミドルウェア１１５Ｂの経路管理テーブルモジュール７１０がミドルウェア１１５Ｂ内にあるポインタ移動プログラム（図示せず）に基づいて実行する。
【０１７８】
具体的には、保証コード付加／検証モジュール７０５が、アプリケーション１１０にデータを渡す（Ｓ１６１４）、又は、アプリケーション１１０へエラーを報告すると（Ｓ１６２１）、経路管理テーブル制御モジュール７１０は、ポインタ移動処理を開始する（Ｓ２０００）。
【０１７９】
まず、経路管理テーブル制御モジュール７１０は、経路管理テーブル１８０Ｃを参照し、ミラー属性となっている一方の仮想デバイスＤｅｖの、現在ポインタで示されているインデックスの次に若いインデックスにポインタを移動する（Ｓ２００１）。
【０１８０】
次に、経路管理テーブル制御モジュール７１０は、ミラー属性となっている他方の仮想デバイスＤｅｖの現在ポインタで示されているインデックスのデータ転送経路が、ステップＳ２００１で移動したポインタで示されているインデックスのデータ転送経路と同じかどうか判断する（Ｓ２００２）。
【０１８１】
もし、同じであれば、ミラーリングされたデータは同じデータ転送経路を用いることになる。同じデータ転送経路となることを回避する必要がある。
【０１８２】
そこで、経路管理テーブル制御モジュール７１０は、同じデータ転送経路であると判断すると（Ｓ２００２：ＹＥＳ）、他方の仮想デバイスＤｅｖのポインタ位置を、現在ポインタが指し示すインデックスの次に若いインデックス番号であって、且つ、一方の仮想デバイスのポインタが示すデータ転送経路とは異なるデータ転送経路を示すインデックス番号に移動する（Ｓ２００３）。
【０１８３】
例えば、図１５の経路管理テーブル１８０Ｃでは、仮想デバイスＤｅｖ１の現在ポインタは、インデックス２を指し示しているが、仮想デバイスＤｅｖ１についてはデータ転送経路が２つ（インデックス１，２）しかないため、次のポインタの移動先はインデックス番号１となる。一方、ミラー属性となっている仮想デバイスＤｅｖ２については、仮想デバイスＤｅｖ１のポインタの位置とは異なるようにするため、ポインタの移動先はインデックス番号４となる。
【０１８４】
経路管理テーブル制御モジュール７１０は、このように移動先のポインタを決定すると、この処理を終了する（Ｓ２００４）。
【０１８５】
経路管理テーブル制御モジュール７１０は、同じデータ転送経路ではないと判断すると（Ｓ２００２：ＮＯ）、そのままこの処理を終了する（Ｓ２００４）。
【０１８６】
なお、ステップＳ２００１及びＳ２００３において、ポインタの移動先を現在のポインタが指し示すインデックスの次に若いインデックスとしたが、特にこれに限定されるものではない。
【０１８７】
さらに、ポインタの移動処理を実施する際、例えば、図１９におけるステップＳ１６１３においてＮＯと判断した場合、即ち、アプライアンス１４０ａの暗号処理、あるいは復号処理に誤動作が発生したとみなすことが出来る場合、以降アプライアンス１４０ａを使うべきではない。従って、経路管理テーブル制御モジュール７１０は、アプライアンス１４０ａを経由するデータ転送経路を選択しないようにすればよい。第２の実施の形態のように、アプライアンスが２台しかない場合は、一時的に正常なもう片方のアプライアンス１４０ｂを経由せざるを得ない。しかし、ホスト１０５Ｃが、誤動作が発生したと判断したアプライアンス１４０ａを新しいアプライアンスと交換することによって、再び物理的に異なるデータ転送経路を用いてデータを保証することが可能である。
【０１８８】
（３−３）第２の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスで行う暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０１８９】
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
【０１９０】
（４）第３の実施の形態
（４−１）システム構成
図２１は、第３の実施の形態におけるストレージシステムの構成を示す図である。１Ｄは、本実施の形態におけるストレージシステムを示す。
【０１９１】
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホストが異なる論理ボリュームにデータをミラーリングして格納する。そして、ストレージ制御装置でミラーリングされたデータを比較することでデータ完全性を保証する。
【０１９２】
なお、図２１に示すストレージシステム１Ｄは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【０１９３】
経路管理テーブル制御モジュール１１０５、ミラーリングモジュール１１２０は、第２の実施の形態における経路管理テーブル制御モジュール７１０、ミラーリングモジュール７２５と同じである。
【０１９４】
経路管理テーブル１８０Ｄは、第１の実施の形態で説明した経路管理テーブル１８０Ｂと同じとする。
【０１９５】
データ比較モジュール１６００は、ディスク制御装置１６０Ｄの内部に備え、ホスト１０５Ｄから送信され、ミラー化された論理ボリュームＬＵ１７１，１７２内に保存されたアプライアンス１４０ａ、１４０ｂによって暗号化されたデータを比較する。
【０１９６】
（４−２）データ保証方法
図２２及び図２３は、本実施の形態におけるデータ保証方法のシーケンス図である。
【０１９７】
具体的には、まずアプリケーション１１０は、データ書き込みの指示をすると（Ｓ２２００）、ミラーリングモジュール１１２０は、経路管理テーブル１８０Ｄを参照し、データ転送経路を特定する(Ｓ２２０１)。この特定方法は、図２及び図７で説明したので説明を省略する。
【０１９８】
ミドルウェア１１５Ｄのミラーリングモジュール１１２０がデータをミラーリングし、別々の論理ボリュームに書き込む（Ｓ２２０２）。
【０１９９】
アプライアンス１４０ａ、１４０ｂは、それぞれデータを暗号化し、ディスク制御装置１６０Ｄへ送信する（Ｓ２２０３）。
【０２００】
ディスク制御装置１６０Ｄは、アプライアンス１４０ａ、１４０ｂから送信された、それぞれの暗号化されたデータを論理ボリュームＬＵ１７１，１７２、又はキャッシュに書き込む（Ｓ２２０４）。そして、ディスク制御装置１６０Ｄのプロセッサ（図示せず）からの指示によって、データ比較モジュール１６００が論理ボリュームＬＵ１７１，１７２、又はキャッシュに書き込まれた、それぞれの暗号化されたデータを比較する（Ｓ２２０５）。
【０２０１】
ディスク制御装置１６０Ｄのデータ比較モジュール１６００は、それぞれの暗号化されたデータが一致しているかどうかを判断する（Ｓ２２０６）。
【０２０２】
もし、アプライアンス１４０ａ、１４０ｂのどちらかに暗号処理の誤動作が発生していた場合には、ステップＳ２２０６での比較結果が不一致となるため、アプライアンス１４０の誤動作によって生じたデータの検出が出来る。
【０２０３】
ディスク制御装置１６０Ｄのデータ比較モジュール１６００は、それぞれの暗号化されたデータが一致していると判断すると（Ｓ２２０６：ＹＥＳ）、ホスト１０５Ｄに対して完了ステータスを送信する（Ｓ２２０７）。
【０２０４】
ホスト１０５Ｄのアプリケーション１１０は、完了ステータスを受信するとこのシーケンスを終了する（Ｓ２２０８）。
【０２０５】
一方、ディスク制御装置１６０Ｄのデータ比較モジュール１６００は、それぞれの暗号化されたデータが一致していないと判断すると（Ｓ２２０６：ＮＯ）、ホスト１０５Ｄに対してエラーステータスを送信する（Ｓ２２０９）。
【０２０６】
ホスト１０５Ｄのアプリケーション１１０は、エラーステータスを受信すると(Ｓ２２１０)、再びステップＳ２０００に戻り、データの再書き込み指示を行うこととなる。
【０２０７】
このように、ホスト１０５Ｄは、ディスク制御装置１６０Ｄからのステータスに応じて、完了ステータスを受信後に次の処理、データ書き込みの再送信、又はアプリケーションの定める障害処理に移る。
【０２０８】
（４−３）第３の実施の形態
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、アプライアンスの暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０２０９】
（５）第４の実施の形態
（５−１）システム構成
図２４は、第４の実施の形態におけるストレージシステムの構成を示す図である。１Ｅは、本実施の形態におけるストレージシステムを示す。
【０２１０】
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホスト１０５Ｅがそれぞれの論理ボリュームＬＵ１７１、１７２にデータをミラーリングして格納する。そして、ホスト１０５Ｅがデータを読み出すときに、ミラーリングされたデータ両方を同時に読み出し、双方を比較することでデータ完全性を保証する。比較した結果、一致しなければ暗号処理、あるいは復号処理に誤動作が発生したことになる。
【０２１１】
なお、図２４に示すストレージシステム１Ｅは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【０２１２】
読み出しモジュール１３０５は、アプリケーション１１０がデータ読み出しを要求したときに、ミラーリングされたデータ両方を読み出すように指示する。
【０２１３】
通常、ミラーリング機能は、データを書き込むときはそれぞれの論理ボリュームＬＵ１７１、１７２に書き込むが、読み出すときは片方の論理ボリュームからしか読み出さない。
【０２１４】
第４の実施の形態のように、ホスト１０５Ｅ側でデータ比較をするためには、ミラーリングされたデータ両方が必要となるため、読み出しモジュール１３０５を設ける。
【０２１５】
データ比較モジュール１３１０は、第３の実施の形態で説明したデータ比較モジュール１６００と同等の機能を有する。
【０２１６】
経路管理テーブル制御モジュール１３１５、ミラーリングモジュール１３３０、及び経路管理テーブル１８０Ｅは、第２の実施の形態で説明した経路管理テーブル制御モジュール７１０、ミラーリングモジュール７２５、及び経路管理テーブル１８０Ｃと同じとする。
【０２１７】
（５−２）データ保証方法
図２５から図２７は、本実施の形態におけるデータ保証方法のシーケンス図である。
【０２１８】
具体的には、まずステップＳ２５００からＳ２５０３までの処理を、Ｓ２２００からＳ２２０３までの処理と同様の手順で行う。
【０２１９】
ディスク制御装置１６０Ｅは、アプライアンス１４０ａ、１４０ｂから送信された暗号化されたデータをキャッシュ（論理ボリュームＬＵの場合もある）に書き込み、完了ステータスをホスト１０５Ｅへ送信する（Ｓ２５０４）。
【０２２０】
ホスト１０５Ｅはディスク制御装置１６０Ｅからの完了ステータスを受けて、データ書き込み処理を終了する（Ｓ２５０５）。
【０２２１】
データ書き込み処理終了後、任意のタイミングで、アプリケーション１１０は、ステップＳ２５００によるデータ書き込みによって書き込んだデータの読み出し指示をする（Ｓ２５０６）。
【０２２２】
ミドルウェア１１５Ｅの経路制御テーブル制御モジュール１３１５は、データの読み出し指示を受け取ると、経路管理テーブル１８０Ｅを参照し、データ読み出し指示を送信するデータ転送経路を得る（Ｓ２５０７）。この場合は、ミラーリングされたデータ両方が格納された論理ボリュームＬＵ１７１，１７２が対象となる。
【０２２３】
ミドルウェア１１５の読み出しモジュール１３０５は、データ転送経路をもとにミラーリングしたデータ両方の読み出しを指示すると（Ｓ２５０８）、ディスク制御装置１６０Ｅは、その指示に従ってホスト１０５Ｅへデータを送信する（Ｓ２５０９）。
【０２２４】
アプライアンス１４０ａ、１４０ｂは、ディスク制御装置１６０Ｅからのデータを復号化しホスト１０５Ｅへ送信する（Ｓ２５１０）。
【０２２５】
ミドルウェア１１５Ｅのデータ比較モジュール１３１０は、アプライアンス１４０ａ、１４０ｂから受信した双方のデータを比較し（Ｓ２５１１）、双方のデータが一致するかどうかを判断する（Ｓ２５１２）。
【０２２６】
データ比較モジュール１３１０は、双方のデータが一致すると判断すると（Ｓ２５１２：ＹＥＳ）、アプリケーション１１０へ片方のデータを渡し（Ｓ２５１３）、アプリケーション１１０がデータを受信するとこのシーケンスを終了する（Ｓ２５１５）。
【０２２７】
一方、データ比較モジュール１３１０は、双方のデータが一致しないと判断すると（Ｓ２５１２：ＮＯ）、エラーステータスをホスト１０５Ｅへ通知し（Ｓ２５１４）、アプリケーション１１０がエラーステータスを受信するとこのシーケンスを終了する(Ｓ２５１６)。
【０２２８】
（５−３）第４の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスの暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０２２９】
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
【０２３０】
（６）第５の実施の形態
（６−１）システム構成
図２８は、第５の実施の形態におけるストレージシステムの構成を示す図である。１Ｆは、本実施の形態におけるストレージシステムを示す。
【０２３１】
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホストが異なる論理ボリュームにデータをミラーリングして格納する。その際、ホストとディスク制御装置間のデータ転送経路を構成する結合装置において、ミラーリングされたデータを比較することでデータ完全性を保証する。
【０２３２】
なお、図２８に示すストレージシステム１Ｅは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【０２３３】
ミラーリングモジュール１６１０は、第２の実施の形態で説明をしたミラーリングモジュール７２５と同じである。
【０２３４】
結合装置１９１５の内部結合部１９２５に接続されるデータ比較機構１９３０は、第１の実施の形態で説明したデータ比較モジュール３１０と同じ機能を有している。
【０２３５】
結合装置１９１５は、アプライアンス１４０ａ、１４０ｂ、及びディスク制御装置１６０ＦのＤＫＣポート１６５Ｐをそれぞれ相互接続するための機器である。即ち、アプライアンス１４０ａは、ディスク制御装置１６０のＤＫＣポート１６５Ｐａ、１６５Ｐｂ両方にアクセス可能である。アプライアンス１４０ｂも同様に、ディスク制御装置１６０のＤＫＣポート１６５Ｐａ、１６５Ｐｂ両方にアクセス可能である。
【０２３６】
これまで上述した実施の形態では、ホストポート１２０Ｐとディスク制御装置１６０ＦのＤＫＣポート１６０Ｐと間は、アプライアンス１４０が介在するものの、基本的に直結されていた。しかし、第５の実施の形態のように、途中に結合装置１９１５が存在するとデータ転送経路の扱いが異なる。即ち、結合装置１９１５内部の入出力ポートの対応関係も考慮する必要がある。
【０２３７】
（６−２）経路管理テーブル
図２９は、本実施の形態における経路管理テーブル１８０Ｆの一例を示す図表である。
【０２３８】
これまでの実施の形態で示した経路管理テーブル１８０から１８０Ｅと異なる点は、「結合装置入力ポート」フィールド１３７及び「結合装置出力ポート」フィールド１３８を設けている点である。
【０２３９】
「結合装置入力ポート」フィールド１３７は、結合装置１９１５がホスト１０５Ｆ側に接続されているポート１９２０ａ，１９２０ｂを示す。
【０２４０】
「結合装置出力ポート」フィールド１３８は、結合装置１９１５がディスク制御装置１６０Ｆ側に接続されているポート１９２０ｃ，１９２０ｄを示す。
【０２４１】
本実施の形態によれば、仮想デバイスＤｅｖ１と対応付けられた論理ボリュームＬＵ１７１へのデータ転送経路は、４経路になる。仮想デバイスＤｅｖ２と対応付けられた論理ボリュームＬＵ１７２も同様に、データ転送経路は4経路になる。
【０２４２】
更に、経路管理テーブル１８０Ｆの各データ転送経路に存在するアプライアンス１４０も考慮しなければならない。図２９のＡで示したデータ転送経路（インデックス３から６）がアプライアンス１４０ａを通過する。図２９のＢで示したデータ転送経路（インデックス１，２，７，８）がアプライアンス１４０ｂを通過する。
【０２４３】
ミラーリングされたデータをそれぞれ、別々のアプライアンス１４０ａ，１４０ｂを通過させるためには上述したことを考慮する必要がある。
【０２４４】
（６−３）データ保証方法
図３０及び図３１は、本実施の形態におけるデータ保証方法のフローチャートを示す図である。
【０２４５】
具体的には、まずステップＳ３０００からＳ３００２までの処理を、Ｓ２２００からＳ２２０２までの処理と同様の手順で行う。
【０２４６】
そして、アプライアンス１４０ａ、１４０ｂがデータを暗号化すると（Ｓ３００３）、それぞれ決定したデータ転送経路（例えばインデックス１、６）で結合装置１９１５に暗号化されたデータを送信する。
【０２４７】
結合装置１９１５のデータ比較機構１９３０は、暗号化されたそれぞれのデータを比較する（Ｓ３００４）。
【０２４８】
データ比較機構１９３０は、暗号化されたそれぞれのデータが一致しているかどうかを判断する（Ｓ３００５）。
【０２４９】
データ比較機構１９３０は、暗号化されたそれぞれのデータが一致していないと判断すると（Ｓ３００５：ＮＯ）、そのまま待機をする（Ｓ３００６）。そして、ある一定時間が経過すると、アプリケーション１１０がデータ比較機構１９３０でのタイムアウトを検出し、このシーケンスを終了する（Ｓ３００７）。
【０２５０】
一方、データ比較機構１９３０は、暗号化されたそれぞれのデータが一致していると判断すると（Ｓ３００５：ＹＥＳ）、そのままディスク制御装置１６０Ｆへ送信する（Ｓ３００８）。
【０２５１】
ディスク制御装置１６０Ｆは、結合装置１９１０より受信した、暗号化されたそれぞれのデータをキャッシュ（ディスクの場合もある）に格納すると、完了ステータスをホスト１０５Ｆへ送信する（Ｓ３００９）。
【０２５２】
完了ステータスをホスト１０５Ｆが受信すると、このシーケンスを終了する（Ｓ３０１０）。
【０２５３】
（６−４）第５の実施の形態
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスの暗号処理の誤動作によるデータをデータ書き込み時に検出できるため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０２５４】
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
【０２５５】
加えて、本実施の形態は、結合装置を備えているため、データ転送経路を決定する上で経路選択の幅が広がる。
【０２５６】
（７）第６の実施の形態
（７−１）システム構成
図３２は、第６の実施の形態におけるストレージシステムの構成を示す図である。１Ｇは、本実施の形態におけるストレージシステムを示す。
【０２５７】
本実施の形態において、暗号機能を備えたストレージシステム１Ｇのデータ完全性を保証するために、ホスト１０５Ｇがそれぞれの論理ボリュームＬＵ１７１，１７２にデータをミラーリングして格納する。その際、ディスク制御装置１６０Ｇで保証コードの付加と検証を実施することでデータ完全性を保証する。保証コードを検証した結果、一致しなければ暗号処理、あるいは復号処理に誤動作が発生したことになる。
【０２５８】
なお、図３２に示すストレージシステム１Ｇは、基本的に図１で説明したストレージシステム１Ａと同様の構成要素には同一の番号を付している。以下、図１で説明したストレージシステム１Ａと異なる構成要素についてのみ説明する。
【０２５９】
経路管理テーブル１８０Ｇ、経路管理テーブル制御モジュール１６０７及びミラーリングモジュール１６１０は、第２の実施の形態の経路管理テーブル１８０Ｃ、経路管理テーブル制御モジュール７１０及びミラーリングモジュール７２５同じである。
【０２６０】
ディスク制御装置内１６０Ｇのホストアダプタ１６５内に、保証コード付加／検証モジュール１６２０、暗号処理モジュール１６２５を設ける。
【０２６１】
保証コード付加／検証モジュール１６２０は、ホスト１０５Ｇから受信した平文に、生成した保証コードを付加し、又は保証コードを付加した平文を検証する。
【０２６２】
暗号処理モジュール１６２５は、上述で説明した実施の形態で示したアプライアンス１４０の暗号処理機構１５０と同等の機能を備える。
【０２６３】
（７−２）データ保証方法
図３３から図３５は、第６の実施の形態におけるデータ保証方法のシーケンス図である。
【０２６４】
具体的には、アプリケーション１１０はデータ書き込みの指示をすると（Ｓ３３００）、経路管理テーブル制御モジュール７１０は、経路管理テーブル１８０Ｇを参照し、次に使うデータ転送経路を確認する（Ｓ３３０１）。ミドルウェア１１５Ｇのミラーリングモジュール１６１０がそれぞれの論理ボリュームＬＵ１７１、１７２に書き込むようデータをミラーリングする（Ｓ３３０２）。
【０２６５】
ディスク制御装置１６０Ｇの保証コード付加／検証モジュール１６２０が、ホスト１０５Ｇから受信したそれぞれのデータに対して保証コードを生成し付加する（Ｓ３３０３）。
【０２６６】
そしてディスク制御装置１６０Ｇの暗号処理モジュール１６２５は、それぞれのデータと、それぞれのデータに付加した保証コードとを、それぞれまとめて暗号化する（Ｓ３３０４）。
【０２６７】
そして、ディスク制御装置１６０Ｇは、それぞれ暗号化されたデータと保証コードと、をキャッシュ（論理ボリュームＬＵの場合もある）に格納し、ホスト１０５Ｇへ完了ステータスを送信する（Ｓ３３０５）。
【０２６８】
その後、アプリケーション１１０は、ディスク制御装置１６０Ｇに書き込まれたデータの読み出し指示をすると（Ｓ３３０６）、ミドルウェア１１５Ｇの経路管理テーブル制御モジュール１６０７が経路管理テーブル１８０Ｇを参照して、データ転送経路を決定する（Ｓ３３０７）。ミドルウェア１１５Ｇは、決定した入出力ポートを介してデータの読み出し指示をディスク制御装置１６０Ｇへ送信する（Ｓ３３０７）。
【０２６９】
ディスク制御装置１６０Ｇは、読み出し要求されたデータをキャッシュ（ディスクの場合もある）から読み出し、暗号処理モジュール１６２５が読み出したデータを復号化する（Ｓ３３０８）。このとき、暗号処理モジュール１６２５は、データに付加した保証コードも復号化する（Ｓ３３０８）。
【０２７０】
保証コード付加／検証モジュール１６２０は、復号化したデータから新たに保証コードを生成する（Ｓ３３０９）。
【０２７１】
そして保証コード付加／検証モジュール１６２０は、この新たに生成した保証コードと、更にデータと共に復号化された保証コードと、が一致しているかどうかを判断する比較する（Ｓ３３１０）。
【０２７２】
保証コード付加／検証モジュール１６２０は、新たに生成した保証コードと、復号化した保証コードとが一致している場合（Ｓ３３１０：ＹＥＳ）、ディスク制御装置１６０は読み出したデータと完了ステータスとをホストへ送信する（Ｓ３３１７）。
【０２７３】
ホスト１０５Ｇは読み出したデータと完了ステータスとを受信すると（Ｓ３３１８）、ミドルウェア１１５Ｇがポインタ移動処理を実施し（Ｓ３３２１）、このシーケンスを終了する（Ｓ３３２２）。
【０２７４】
一方、保証コード付加／検証モジュール１６２０は、新たに生成した保証コードと、復号化した保証コードとが一致していない場合（Ｓ３３１０：ＮＯ）、ホスト１０５Ｇへエラーステータスを送信する（Ｓ３３１１）。
【０２７５】
ミドルウェア１１５Ｇは、ディスク制御装置１６０Ｇから受信したエラーを受信すると、経路管理テーブル制御モジュール１６０７は、経路管理テーブル１８０Ｇを参照して、ミラー側のデータを読み出すデータ転送経路を決定する（Ｓ３３１２）。
【０２７６】
ミドルウェア１１５Ｇは、ステップＳ３３１２で決定したデータ転送経路を用いてデータ読み出し要求を発行する（Ｓ３３１３）。
【０２７７】
ディスク制御装置１６０Ｇは、データ読み出し要求に従ってデータと保証コードをキャッシュ（論理ボリュームＬＵの場合もある）から読み出し、暗号処理モジュール１６２５がデータとデータに付加された保証コードとを復号化する（Ｓ３３１４）。
【０２７８】
保証コード付加／検証モジュール１６２０は、ミラー側の復号化されたデータから新たに保証コードを生成する(Ｓ３３１５)。
【０２７９】
そして保証コード付加／検証モジュール１６２０は、このミラー側データの新たに生成した保証コードと、更にミラー側データと共に復号化された保証コードと、が一致しているかどうかを判断する比較する（Ｓ３３１６）。
【０２８０】
保証コード付加／検証モジュール１６２０は、新たに生成した保証コードと、復号化した保証コードとが一致している場合（Ｓ３３１６：ＹＥＳ）、ディスク制御装置１６０は読み出したデータと完了ステータスとをホストへ送信する（Ｓ３３１７）。
【０２８１】
ホスト１０５Ｇは読み出したデータと完了ステータスとを受信すると（Ｓ３３１８）、ミドルウェア１１５Ｇがポインタ移動処理を実施し（Ｓ３３２１）、このシーケンスを終了する（Ｓ３３２２）。
【０２８２】
一方、保証コード付加／検証モジュール１６２０は、新たに生成した保証コードと、復号化した保証コードとが一致していない場合（Ｓ３３１６：ＮＯ）、ホスト１０５Ｇへエラーステータスを送信する（Ｓ３３１９）。
【０２８３】
ホスト１０５Ｇはエラーステータスを受信すると（Ｓ３３２０）、ミドルウェア１１５Ｇがポインタ移動処理を実施し（Ｓ３３２１）、このシーケンスを終了する（Ｓ３３２２）。
【０２８４】
ステップＳ３３２１で行うポインタ移動処理は、第２の実施の形態で説明したポインタ移動処理と同様に、ミドルウェア１１５ＧがステップＳ２０００からＳ２００４の手順で処理を行う。
【０２８５】
（７−３）第６の実施の形態
本実施の形態によれば、暗号処理モジュールを搭載したディスク制御装置をデータの暗号又は復号する機能を有する装置とすることで、ディスク制御装置において、暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
【０２８６】
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
【０２８７】
（８）その他の実施の形態
第１から第６の実施の形態によれば、暗号機能を備えたストレージシステムにおいて、暗号処理、あるいは復号処理に誤動作が生じた場合に、ホストからの書き込み、あるいは読み出し要求時にその誤動作を検出することが出来るため、データ化けを未然に回避することが可能となる。
【０２８８】
なお、第１から第６の実施の形態で説明した「モジュール」と呼ばれるものは、基本的にプロセッサ（図示せず）で動作するプログラムであるが、これに限定されるものではない。
【０２８９】
加えて、第１から第６の実施の形態のストレージシステムでは、図１のネットワーク１３及び管理端末１４についての説明を省略したが、第１から第６の実施の形態のストレージシステム１に設けられているものである。
【０２９０】
第１から第６の実施の形態のストレージシステムでは、ホスト１０５と、ホストが認識する対の仮想デバイスＤｅｖと対応する対の論理ボリュームＬＵ１７１、１７２と、データの暗号又は復号する機能を有する装置（アプライアンス１４０又はディスク制御装置１６０）と、を有する。そして、ホスト１０５と対の論理ボリュームＬＵ１７１、１７２との間に複数あるデータ転送経路から、それぞれの論理ボリュームＬＵ１７１、１７２に対して１経路を特定するための経路管理部を経路管理テーブル１８０としてホスト１０５に備えたが、データの暗号又は復号する機能を有する装置（アプライアンス１４０又はディスク制御装置１６０）に備えても良い。
【０２９１】
第１から第６の実施の形態のストレージシステムでは、ホスト１０５は、ホスト１０５が認識する対の仮想デバイスＤｅｖと対応する対の論理ボリュームＬＵ１７１、あるいは１７２のデータを読み出す際に、経路管理テーブルを参照しデータ読み出し指示を送信する入出力ポートを得るが、データ書き込みの際のデータ転送経路と同じであれば、データ読み出し時の経路管理テーブルの参照ステップは省略しても構わない。
【０２９２】
また、第１の実施の形態では、リードアフタライト部、データ比較部及びメッセージ送受信部と、をホスト１０５のミドルウェア１１５Ｂが備えたが、これらを個別のハードウェア構成としてもよい。
【０２９３】
第２の実施の形態では、ホスト１０５Ｃのミドルウェア１１５Ｃが保証コード付加部、ミラーリング部及び保証コード検証部を有したが、これらを個別のハードウェア構成としてもよい。
【０２９４】
第３の実施の形態では、ホスト１０５Ｄがミラーリング部を有し、ディスク制御装置１６０Ｄがデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
【０２９５】
第４の実施の形態では、ホスト１０５Ｅがミラーリング部、読み出し部及びデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
【０２９６】
第５の実施の形態では、ホスト１０５Ｆがミラーリング部を有し、結合装置１９１５がデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
【０２９７】
第６の実施の形態では、ホスト１０５Ｇがミラーリング部を有し、ディスク制御装置１６０Ｇが保証コード付加部を有したが、これらを個別のハードウェア構成としてもよい。
【０２９８】
第２、及び第６の実施の形態におけるポインタ移動処理は、特にデータ転送経路を変更する必要性がなければ、省略しても構わない。
【産業上の利用可能性】
【０２９９】
本発明は、１又は複数のディスク制御装置を有する記憶システムや、その他の形態の記憶システムに広く適用することができる。
【図面の簡単な説明】
【０３００】
【図１】ストレージシステムにおけるデータ転送経路の制御方式の一例を示した図である。
【図２】データ転送経路の制御方式の説明で用いる経路管理テーブルの図表である。
【図３】データ転送経路の制御方式の説明で用いる仮想デバイスの割り当てを示す経路管理テーブルの説明図である。
【図４】データ転送経路の制御方式の説明で用いる仮想デバイスの割り当てを示す経路管理テーブルの説明図である。
【図５】データ転送経路の制御方式の説明で用いる経路管理テーブルの作成手順を示すフローチャートである。
【図６】データ転送経路の制御方式の説明で用いる仮想デバイス割り当て処理を示すフローチャートである。
【図７】第１の実施の形態におけるストレージシステムの全体図である。
【図８】第１の実施の形態における経路管理テーブルの図表である。
【図９】第１の実施の形態における仮想デバイス割り当て処理を示すフローチャートである。
【図１０】第１の実施の形態におけるポインタ割り当て処理を示すフローチャートである。
【図１１】第１の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１２】第１の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１３】第１の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１４】第２の実施の形態におけるストレージシステムの全体図である。
【図１５】第２の実施の形態における経路管理テーブルの図表である。
【図１６】第２の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１７】第２の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１８】第２の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図１９】第２の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２０】第２の実施の形態におけるポインタ移動処理を示すフローチャートである。
【図２１】第３の実施の形態におけるストレージシステムの全体図である。
【図２２】第３の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２３】第３の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２４】第４の実施の形態におけるストレージシステムの全体図である。
【図２５】第４の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２６】第４の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２７】第４の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図２８】第５の実施の形態におけるストレージシステムの全体図である。
【図２９】第５の実施の形態における経路管理テーブルの図表である。
【図３０】第５の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図３１】第５の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図３２】第６の実施の形態におけるストレージシステムの全体図である。
【図３３】第６の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図３４】第６の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図３５】第６の実施の形態におけるデータ保証方法を示すシーケンス図である。
【図３６】第６の実施の形態におけるデータ保証方法を示すシーケンス図である。
【符号の説明】
【０３０１】
１…ストレージシステム、１０５…ホスト、１１０…アプリケーション、１１５…ミドルウェア、１２０Ｐａ、１２０Ｐｂ、Ｐ１２０ｃ…ホストポート、１２５…記憶領域、１４０ａ、１４０ｂ…アプライアンス、１４５ａ、１４５ｂ、１４５ｃ、１４５ｄ…入出力ポート、１５０ａ、１５０ｂ…暗号処理機構、１６０…ディスク制御装置、１６５Ｐａ、１６５Ｐｂ…ＤＫＣポート、１７１、１７２…論理ボリューム、３０５…リードアフタライトモジュール、３１０…データ比較モジュール、３１５…メッセージ送受信モジュール、３２０…経路管理テーブル制御モジュール、１８０…経路管理テーブル、３３０…メッセージ処理モジュール。
【図１】
2009009407.tif 000003
【図２】
2009009407.tif 000004
【図３】
2009009407.tif 000005
【図４】
2009009407.tif 000006
【図５】
2009009407.tif 000007
【図６】
2009009407.tif 000008
【図７】
2009009407.tif 000009
【図８】
2009009407.tif 000010
【図９】
2009009407.tif 000011
【図１０】
2009009407.tif 000012
【図１１】
2009009407.tif 000013
【図１２】
2009009407.tif 000014
【図１３】
2009009407.tif 000015
【図１４】
2009009407.tif 000016
【図１５】
2009009407.tif 000017
【図１６】
2009009407.tif 000018
【図１７】
2009009407.tif 000019
【図１８】
2009009407.tif 000020
【図１９】
2009009407.tif 000021
【図２０】
2009009407.tif 000022
【図２１】
2009009407.tif 000023
【図２２】
2009009407.tif 000024
【図２３】
2009009407.tif 000025
【図２４】
2009009407.tif 000026
【図２５】
2009009407.tif 000027
【図２６】
2009009407.tif 000028
【図２７】
2009009407.tif 000029
【図２８】
2009009407.tif 000030
【図２９】
2009009407.tif 000031
【図３０】
2009009407.tif 000032
【図３１】
2009009407.tif 000033
【図３２】
2009009407.tif 000034
【図３３】
2009009407.tif 000035
【図３４】
2009009407.tif 000036
【図３５】
2009009407.tif 000037
【図３６】
2009009407.tif 000038