JP2009009407A - 暗号機能を備えたストレージシステム及びデータ保証方法 - Google Patents

暗号機能を備えたストレージシステム及びデータ保証方法 Download PDF

Info

Publication number
JP2009009407A
JP2009009407A JP2007170926A JP2007170926A JP2009009407A JP 2009009407 A JP2009009407 A JP 2009009407A JP 2007170926 A JP2007170926 A JP 2007170926A JP 2007170926 A JP2007170926 A JP 2007170926A JP 2009009407 A JP2009009407 A JP 2009009407A
Authority
JP
Japan
Prior art keywords
data
host
path
guarantee code
logical volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007170926A
Other languages
English (en)
Inventor
Makio Mizuno
真喜夫 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007170926A priority Critical patent/JP2009009407A/ja
Priority to US12/007,312 priority patent/US20090006863A1/en
Publication of JP2009009407A publication Critical patent/JP2009009407A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出し、物理的なデータ転送経路を適切に用いるストレージシステム及びデータ保証方法を提案する。
【解決手段】データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して1経路を特定するための経路管理部を備えることとした。
【選択図】図7

Description

本発明は、データの暗号化及び復号化を行う機能を有するストレージシステム及びデータ保証方法に関する。
計算機等のセキュリティ対策の一つとして、データの暗号化技術がある(特許文献1参照)。暗号化を行う処理(以下、暗号処理と称する)、又は復号化を行う処理(以下、復号処理と称する)は、半導体部品やソフトウェアで実現されている。但し、半導体部品を用いると、α線等の放射線を受けることによる誤動作が考えられる。又、ソフトウェアを用いると、ある特定データパターンでの演算ミス等の障害が考えられる。
近年、ストレージシステム自身のセキュリティ確保の要求が年々高まりつつある。ディスク制御装置に格納するデータの暗号化には、暗号処理専用装置や、暗号処理をディスク制御装置に内蔵するなどの方法がある。
一方、計算機とストレージ装置間で複数の論理的なデータ転送経路を有する情報処理システムで、信頼性向上、性能向上を目的として複数の論理的なデータ転送経路の中から適切なデータ転送経路を選択する技術がある(特許文献2参照)。
特開2002−217887号公報 特開2006−154880号公報
暗号処理専用装置において、例えば、外部装置から送信されたデータを暗号化してディスク制御装置に送信する前に、該データが正しく暗号化されているかどうかを検証する手段を備えていれば、仮に暗号処理の誤動作が発生したとしても誤った暗号処理が施されたデータがディスク制御装置に格納されることを防ぐことが出来る。同様に、ディスク制御装置から送信された、既に暗号化が施されたデータを復号化して外部装置に送信する前に、該データが正しく復号化出来たかどうかを検証する手段を備えていれば、仮に復号処理の誤動作が発生したとしても、誤った復号処理が施されたデータが外部装置に到着を防ぐことが出来る。
しかし、上述の検証手段を暗号処理専用装置が備えていない場合に、誤った暗号処理又は復号処理が施されたデータがディスク制御装置又は外部装置に到着し、最終的に暗号処理専用装置で復号された時点で元のデータとは全く異なるデータに変わってしまう。これは、即ちデータ消失と同じことである。
一方、例えば、暗号処理専用装置を介在させた計算機とストレージ装置との間では複数の論理的なデータ転送経路を有し、かつ、ディスク制御装置内でデータのミラーリングが行われている場合には、たとえ上記のような暗号処理専用装置の誤動作によりデータが化けてしまっても、ミラーリングされたデータを用いることで、誤動作が発生した暗号処理専用装置とは別の暗号処理専用装置で処理を継続することが出来る。
本発明は以上の点を考慮してなされたもので、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出し、物理的なデータ転送経路を適切に用いるストレージシステム及びデータ保証方法を提案しようというものである。
かかる課題を解決するため本発明の記憶システムは、データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して1経路を特定するための経路管理部を備えることを特徴とする。
この結果、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出することができる。
また本発明のデータ保証方法は、データの読み出し指示又は書き込む指示を行うホストと、ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、ホストと対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、ホストからのデータの読み出し指示又は書き込む指示に基づいて、データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを論理ボリューム又はホストに転送するために、ホストと対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの論理ボリュームに対して1経路を特定するための経路管理ステップを備えることを特徴とする。
この結果、暗号化されたデータを書き込む又は読み出す場合に、暗号処理専用装置又は暗号機能を有する装置での誤動作によるデータを検出することができる。
さらに、具体的な本発明の一実施態様は以下の構成を有する。
データ入出力要求を発行する複数のホストコンピュータ(以下、ホストと称する)、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置で構成するストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力(ライト)要求だった場合、ライトデータを一時的にホスト内の記憶領域で保持し、ディスク制御装置にライトデータが格納された直後に該ライトデータを読み出すリードアフタライト機構、リードアフタライト機構によって読み出された該ライトデータと、ホスト内の記憶領域に一時的に保持されたライトデータとを比較するデータ比較機構、データ比較機構による比較結果を通知するメッセージ送受信機構を備え、ディスク制御装置は、ホストのメッセージ送受信機構から送信されたメッセージを処理するメッセージ処理機構を備える。
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力(ライト)要求だった場合、ライトデータから保証コードを生成し付加する、あるいは、データ入出力要求が入力(リード)要求だった場合、該ライトデータに付加された保証コードを検証する保証コード付加/検証機構と、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路と、アプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ホストは、アプリケーションが発行したデータ入力(リード)要求に対し、経路管理テーブルを参照し、ミラーリングされたデータの片方と通信可能な入出力ポートから該データ入力要求を送信すると同時に、経路管理テーブル制御機構が次のデータ入力(リード)要求が発行されたときに、ミラーリングされたデータのもう片方と通信可能な入出力ポートからデータ入力(リード)要求を送信するように制御し、ディスク制御装置から到着した該データ入力要求で要求したデータの保証コードと該データから生成した保証コードが一致しない場合、再び経路管理テーブルを参照し、経路管理テーブルに従ってミラーリングされたもう片方と通信可能な入力ポートからデータ入力(リード)要求を送信し、同様にデータの保証コードと保証コード付加/検証機構が生成した保証コードを比較する。
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力(ライト)要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ディスク制御装置は、異なるデータ転送経路から到着した暗号処理専用装置によって暗号化されたホストのライトデータを比較するデータ比較機構を備え、データ比較機構は、異なるデータ転送経路から到着した暗号処理専用装置によって暗号化されたホストのライトデータを比較した結果、一致しない場合ホストにエラーを示す応答を返す。
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置が、ホストとディスク制御装置の各データ転送経路に接続されたストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力(ライト)要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ミラーリングされたデータ双方を同時に読み出すミラーリングデータ読み出し機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、ホストは、アプリケーションが発行したデータ入力(リード)要求に対し、ミラーリングデータ読み出し機構が経路管理テーブルを参照し、該データ入力(リード)要求をミラーリングされたデータ双方と通信可能な入出力ポートから送信し、ディスク制御装置から到着した該データ入力要求で要求したデータをデータ比較機構にて比較する。
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置で構成するストレージシステムであって、ディスク制御装置は、ホストとの送受信データを暗号化、あるいは復号化する暗号/復号化機構と、ホストから受信したデータを暗号/復号化機構によって暗号化する前に保証コードを付加する保証コード付加/検証機構と、アプリケーションが発行したデータ入力(リード)要求に従って、データを記憶装置から読み出し(あるいはキャッシュメモリ)、暗号/復号化機構によってデータを復号化し、保証コード付加/検証機構によって保証コードを検証する。
更に、上記を解決するための本発明の一実施態様として、データ入出力要求を発行する複数のホスト、データを格納する記憶装置を備えるディスク制御装置と、ホストとディスク制御装置を相互接続するための結合装置と、ホストとディスク制御装置間で通信されるデータを暗号化、あるいは復号化する暗号処理専用装置で構成するストレージシステムであって、ホストは、アプリケーションがディスク制御装置に対して発行したデータ入出力要求が出力(ライト)要求だった場合、ライトデータを異なる論理ボリュームへ書き込むように制御するミラーリング機構と、ホストとディスク制御装置間のデータ転送経路とアプリケーションに見せる仮想的な論理ボリュームを管理する経路管理テーブルと、経路管理テーブルを制御する経路管理テーブル制御機構を備え、結合装置は、ホストから異なるデータ転送経路を介して到着したミラーリングされたデータを比較するデータ比較機構を備える。
更に、上記を解決するための本発明の一実施態様として、経路管理テーブルは、少なくとも、ホストとディスク制御装置間の物理的な経路を識別するインデックス番号、ホストの入出力ポートを識別する番号、ディスク制御装置の入出力ポートを識別する番号、論理ボリュームを識別する番号、アプリケーションに対して見せる仮想デバイス番号、ミラーリングされている仮想デバイスかどうかを示す属性、及びデータリード、ライト要求時の該要求を送信するホスト入出力ポートを示すポインタを含む。
データリード要求時の該要求を送信するホスト入出力ポートを示すポインタ(以下、ポインタと称する)は、ある論理ボリュームへのデータ転送経路が複数存在するときに、どのデータ転送経路を使うかを示す。これは、ミラーリングされたデータの片方を読み出したときのデータ転送経路上の暗号処理専用装置で暗号、あるいは復号処理で誤動作が発生した場合、ミラーリングされたデータのもう片方を読み出してデータを復旧させるが、このとき、先のデータ転送経路の暗号処理専用装置を通過すると暗号、あるいは復号処理の誤動作の影響を受けてしまう。そのため、先のデータ転送経路とは異なるデータ転送経路を用いなければならない。ポインタの役割は、ミラーリングされた双方のデータのデータ転送経路をお互いに重ならないように制御することである。
本発明によれば、暗号処理専用装置又はディスク制御装置内部の暗号処理の誤動作によるデータを少なくともデータリード時又はデータライト時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
以下に、本発明について図面を用いて説明する。
(1)本発明に用いるデータ転送経路の制御方式
図1は、ストレージシステムにおけるホストとディスク制御装置間のデータ転送経路の制御方式の一例を示した図である。本発明では、このデータ転送経路の制御方式を用いる。
1Aは、図1におけるストレージシステムを示す。
ホスト105は、ディスク装置の記憶領域を利用してデータの送受信を行う。ホスト105はディスク制御装置140とHBA120を介して接続されている。
図1では、HBA120が3つ存在するので、便宜上それぞれ120a、120b、120cと表すこととする。ミドルウェア115については後で説明する。
HBA120は、ホスト105がディスク制御装置140と通信するためのインタフェースを持つ。HBA120が対応するインタフェースとしては、例えばSCSI(Small Computer System Interface)やファイバチャネル、イーサネット(登録商標)などがある。
ディスク制御装置160は、ホスト105からのデータ送受信要求に対してデータを一時的な書き込み領域であるキャッシュメモリ(図示せず)、あるいは、ディスク装置のディスクに書き込んだり、逆にキャッシュメモリ、あるいはディスクに格納されたデータをホスト105に送信したりする。
ホストアダプタ165は、ホストとのインタフェースを備える。図1では、ホストアダプタは3つ存在するので、便宜上それぞれ165a、165b、165cと表すこととする。
論理ボリューム171、172は、ホスト(アプリケーション)が見えるボリュームである。論理ボリュームとは、複数のディスクドライブの集合体を複数の領域で区切った各領域のことを指し、性能向上、信頼性向上を目的としてRAID(Redundant Arrays of Inexpensive Disks)で構成されていることが一般的である。
RAIDには複数のレベルが存在し、例えばデータを冗長化して書き込むRAID1(ミラーリングとも呼ばれる)やデータをある単位で分割し、それぞれ別のディスクドライブに書き込むと共に、データに対する保証コードを書き込むRAID3やRAID5などである。その他のRAIDレベルも存在するが、説明は割愛する。
ディスク制御装置160は、実際にはホストアダプタ165、論理ボリュームLU(Logical unit)以外にも、キャッシュメモリやディスク制御装置内の制御情報などを保持するための共有メモリ、ディスクドライブとのインタフェースを備えるディスクアダプタ、ホストアダプタ、ディスクアダプタの制御及びディスク制御装置内部のデータ転送制御などを行うプロセッサ、これらを相互結合する相互結合部などで構成されている。ホスト105とディスク制御装置160間のデータ転送経路の制御を説明する上で、少なくともホストアダプタ165a、165b、165cから論理ボリュームLU171、172にアクセス可能な構成であればよいものとする。
ホスト105及びディスク制御装置160は、ネットワーク13を介して管理端末14と接続される。
管理端末14は、基本的にストレージシステム1Aを構成する各機器に接続し、各機器の状態監視や各種設定を行う。ミドルウェア115の制御も管理端末で行う。
図1を見ると、ホスト105とディスク制御装置160間において、データ送受信可能な通信経路(以下、データ転送経路と呼ぶことがある)は3つあることが分かる。
データ送受信可能な通信経路とは、HBA120aとホストアダプタ165a、HBA120bとホストアダプタ165b、及びHBA120cとホストアダプタ165c間である。
ホスト105(アプリケーション110)から見ると、論理ボリュームLU171、172にアクセスする際、どのデータ転送経路を使ってアクセスすればよいか分からない。例えば、HBA120aとホストアダプタ165aの経路を使い続けても問題は無い。
しかし、複数のデータ転送経路を使うと以下の点で有用である。
例えば、HBA120aとホストアダプタ165aの経路が何らかの原因で使用できなくなった場合、他のデータ転送経路を使うことが出来れば処理を継続することが出来る。また、HBA120aとホストアダプタ165aの経路を使い続けた結果、ホストアダプタ165aに負荷が集中するため処理性能の低下を招く恐れがあることから、他のデータ転送経路を使ってその負荷を分散させることが出来る。
ミドルウェア115は、このようなデータ転送経路の制御を担うものである。ミドルウェア115は、経路管理テーブル180によりデータ転送経路を制御する。
図2に示すように、経路管理テーブル180には、「ポインタ」フィールド130、テーブルに登録された経路を識別する「インデックス番号」フィールド131、ホストの入出力ポートを識別する「ホスト入出力ポート番号」フィールド132、ディスク制御装置の入出力ポートを識別する「ディスク制御装置入出力ポート番号」フィールド133、ホスト入出力ポート番号とディスク制御装置入出力ポート番号の組み合わせで決定されるデータ転送経路からアクセス可能な論理ボリュームの番号である「LU番号」フィールド134と、アプリケーション110に仮想的に見せる論理ボリュームを識別する「仮想デバイス番号」フィールド135、ミラー構成である相手の仮想デバイス番号を示す「ミラー属性」フィールド136を含む。
「ポインタ」フィールド130は、ディスク制御装置160の論理ボリュームLUをアクセスするデータ転送経路を示すものである。例えば、図2の経路管理テーブル180では、論理ボリュームLU171に対する3つのデータ転送経路のうち、インデックス番号1のデータ転送経路(以下、単にインデックス1と呼ぶときもある)を用いることを意味する。
ポインタの操作としては、例えばデータ転送経路の負荷分散を目的とする場合、インデックス1、インデックス2、インデックス3、インデックス1の順にラウンドロビンアルゴリズムに従って、ポインタを動かす。あるいは、データ転送経路が使えなくなった場合は、該データ転送経路を使わせないようにポインタを制御する。
仮想デバイス番号の割り当てとしては、経路管理テーブルにおいて、同じ論理ボリューム番号に属するインデックス群毎に割り当てる。具体的には、図3のように、同じ論理ボリューム番号に属するインデックス群(インデックス番号1から3及びインデックス番号6、7)の若いインデックス群順(昇順)から仮想デバイス番号0,1を割り当てる。そしてインデックス群を有しない論理ボリューム2,3については、順に仮想デバイス番号2,3を割り当てる。
また、図4のように、インデックス群から先に仮想デバイスDevを割り当てるのではなく、インデックス番号の昇順に従って仮想デバイス番号0,1,2,3を割り当ててもよい。
経路管理テーブル180の作成手順については、別図面を用いて説明する。
仮想デバイスDevは、アプリケーション110に対して仮想的に見せる論理ボリュームであって、論理ボリュームLUと対応付けられたボリュームである。例えば、図1ではアプリケーション110が、論理ボリュームLU171へ3つのデータ転送経路でアクセスできる。
具体的には、ホストポート120Pa−DKCポート165Pa、ホストポート120Pb−DKCポート165Pb、ホストポート120Pc−165Pcである。仮想デバイスDev、例えばアプリケーション110が論理ボリュームLU171にアクセスするために、どのデータ転送経路を使えばよいかということを意識させないようにするための手段として提供する。
経路管理テーブル180によると、経路1(インデックス1)はホストポート120PaとDKCポート165Pa間のデータ転送経路を用いて論理ボリュームLU171へのアクセスが可能であることを示す。同様に、経路2(インデックス2)はホストポート120PbとDKCポート165Pb間のデータ転送経路を用いて論理ボリュームLU171へのアクセスが、経路3(インデックス1)はホストポート120PcとDKCポート165Pc間のデータ転送経路を用いて論理ボリュームLU171へのアクセスが可能であることを示す。
つまり、アプリケーション110は、3つのデータ転送経路それぞれから、論理ボリュームLU171へアクセス可能ということで、ミドルウェア115はアプリケーション110に見せる仮想的な論理ボリュームとして仮想デバイスDev1を割り当てる。仮想デバイスDevの割り当て等の手順については別図面を用いて説明する。
このようにすることによって、複数のデータ転送経路の切り替えをアプリケーション110に意識させずに、あたかも単一のデータ転送経路を使って論理ボリュームLU171にアクセスしているように見せることが可能となる。
具体的に、アプリケーション110からデータリード要求が連続的に3回発行された場合について説明する。図1では各データリード要求をA、B、Cと表している。
まず、アプリケーション110から仮想デバイスDev1(実際には仮想デバイスDev1と対応付けられた論理ボリュームLU171)に対するデータリード要求Aが発行されると、ミドルウェア115は経路管理テーブル180を参照し、インデックス1(経路1)を使ってデータリード要求Aをディスク制御装置160に送信する。
続けて、アプリケーション110からデータリード要求Bが発行されると、ミドルウェア115は、次のインデックス2(経路2)を使ってデータリード要求Bをディスク制御装置160に送信する。
最後に、アプリケーション110からデータリード要求Cが発行されると、ミドルウェア115は、その次のインデックス3(経路3)を使ってデータリード要求Cをディスク制御装置160に送信する。
上述した動作は、一般的にラウンドロビンと呼ばれるアルゴリズムであるが、これに限定されるものではなく、他のアルゴリズムも同様に適用可能である。例えば、ディスク制御装置の資源(たとえばメモリやプロセッサ)の利用率などをモニタリングし、その利用率が低い資源を抱えるDKCポート165Paに優先的に要求を送信してもよい。
一方、データ転送経路が1つしかない場合、例えば図1では論理ボリュームLU172のデータ転送経路はホストポート120Pa−DKCポート165Paというように管理する。
図5は、経路管理テーブル180の作成手順を示すフローチャートである。経路管理テーブル180の作成処理は、ミドルウェア115がホスト105のメモリ内にある経路管理作成プログラムに基づいて実行する。
経路管理テーブル180の作成は、ミドルウェア115において行われる。ストレージシステムの構成は図1と同じストレージシステム1Aとする。
経路管理テーブル180を作成する手順として、まず、管理端末14は、ホストポートとDKCポートを登録する(S500)。この時点では、まだLU番号や仮想Dev番号は登録されない。
次に、ミドルウェア115が経路管理テーブル180を参照し、登録された経路を通じてディスク制御装置160内のデバイス(論理ボリューム)を解析するためのコマンドを発行する(S501)。解析するためのコマンドは、例えばSCSIプロトコルにおける、Inquiryコマンド、Report LUNコマンドなどがあり、これらコマンドを組み合わせることによってデバイスの種類、容量などが判明する。
ディスク制御装置160は、ミドルウェア115から発行されたコマンドに対し所定の応答をミドルウェア115に送信し(S502)、ミドルウェア115は、応答を解析し経路管理テーブル180に反映する(S503)。
その後、ミドルウェア115は、仮想ボリュームDevの割り当て処理(S504)を行うが、別図面でそのフローチャートを説明する。
最後に、ミドルウェア115は、割り当てられた仮想ボリュームDevの番号を経路管理テーブル180に反映させた時点で、例えば図1の経路管理テーブル180のようなテーブルが完成する。
図6は、仮想デバイス割り当て処理のフローチャートを示す図である。仮想デバイス割り当て処理は、ミドルウェア115がホスト105のメモリ内にある仮想デバイス割り当てプログラム(図示せず)に基づいて実行する。なお、図6のフローチャートの説明にも、便宜上図2の経路管理テーブル180を用いる。
図5のステップS503まで処理が終了した時点で、仮想デバイス割当て処理を開始する(S600)。この時点で、データ転送経路は3つある。
仮想デバイス割り当てる手順として、まず、ミドルウェア115は、経路管理テーブル180を参照し、各インデックスのLU番号を見て、同じLU番号をもつインデックス群があるかどうかを判断する(S601)。
そして、ミドルウェア115は、同じLU番号のインデックス群があると判断すると(S601:YES)、抽出されたインデックス群が属する同じLU番号毎に仮想デバイス番号を割り当てる(S602)。
例えば、ステップS601の結果、図2に示すように、LU171に関してインデックス群1,2,3が抽出される。そしてステップS602の結果、ミドルウェア115は、インデックス群1,2,3に対して仮想デバイス番号「1」を割り当てる。図2では、同じLU番号の他のインデックス群はないので、次のステップに進む。
すなわち、ミドルウェア115は、同じLU番号のインデックス群がないと判断すると(S601:NO)、ステップS603の処理を行うこととなる。
ミドルウェア115は、残りのインデックスに対してステップS602で割り当てられた番号とは異なる仮想デバイス番号を割り当てる(S603)。
例えば、ステップS603の結果、ミドルウェア115は、インデックス4に対して仮想デバイス番号「2」を割り当てる。
そうして、ミドルウェア115は、仮想デバイス割り当て処理を終了すると(S604)、図5で説明したステップS505の処理を行う。
以上より、ミドルウェア115は、次に使うことができるデータ転送経路は、仮想デバイス番号1に対してはインデックス1であると判断することが出来る。
なお、ポインタの付け方に特に制限は無く、例えば必ずインデックスに付与した番号の一番若いインデックスにポインタを付けてもよい。本発明におけるポインタの更新の方法については、後述で説明する。
第1から第6の実施の形態は、図1のようなデータ転送経路制御を利用することにより実現するものである。
(2)第1の実施の形態
(2−1)システム構成
図7は、第1の実施の形態におけるストレージシステムの構成を示す図である。1Bは、第1の実施の形態におけるストレージシステムを示す。
なお、図7に示すストレージシステム1Bは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
第1の実施の形態において、暗号機能を備えたストレージシステム1Bのデータ完全性を保証するために、ホスト105Bからデータをディスク制御装置160Bに書き込んだ直後に、該データを読み出し、ホスト105Bにおいて書き込んだデータと読み出したデータを比較する。
また、データの暗号処理、及び復号処理を総称し「暗号処理」と呼ぶこととする。更に、暗号化されていないデータのことを「平文」、暗号化されたデータのことを「暗号文」と呼ぶこととする。
まず、第1の実施の形態における暗号処理を実現するためのストレージシステム1Bは、ホスト105Bとディスク制御装置160Bとの間に暗号処理専用装置(以下、アプライアンスと呼ぶことがある)140を接続させる構成である。
アプライアンス140には、暗号処理を実行するための暗号処理機構150、ホスト105Bとのインタフェース、及びディスク制御装置160Bとのインタフェースを備える入出力ポート145を備える。
なお、図7では各データ転送経路上にアプライアンスを設置している構成であり、区別するためアプライアンス140a、140bと表記する。また、入出力ポートは、アプライアンス140aについてはホスト側を145a、ディスク制御装置側を145c、アプライアンス140bについてはホスト側を145b、ディスク制御装置側を145dとする。なお、アプライアンス140a内は、入出力ポート145aから145cにしかデータは流れないため、ホストポート120PbとDKCポート165Pb間のデータ転送経路に影響を与えることは無い。同様に、アプライアンス140b内は、入出力ポート145bから145dにしかデータは流れないため、ホストポート120PaとDKCポート165Pa間のデータ転送経路に影響を与えることは無い。
アプライアンス140の設置により、ホスト105Bとディスク制御装置160B間を流れるデータは以下のようになる。即ち、ホスト105Bとアプライアンス140間は平文が流れ、アプライアンス140とLU171,172間は暗号文が流れる。
ホスト105Bは、リードアフタライトモジュール305、データ比較モジュール310、メッセージ送受信モジュール315、経路管理テーブル制御モジュール320、経路管理テーブル180Bを備える。
ディスク制御装置160Bにはメッセージ処理モジュール330を備える。
これらのモジュール及びテーブルは、ホスト105Bからデータをディスク制御装置160Bに書き込んだ直後に、該データを読み出し、ホスト105Bにおいて書き込んだデータと読み出したデータを比較するために必要である。
リードアフタライトモジュール305は、アプリケーション110からのデータライト要求で書き込まれたデータの読み出し要求を発行すると同時にライトデータを記憶領域125に書き込む。
データ比較モジュール310は、記憶領域125に書き込まれたライトデータとリードアフタライトモジュール305によって読み出されたデータとを比較する。
メッセージ送受信モジュール315は、データ比較モジュール310による比較結果をメッセージとしてディスク制御装置160Bに送信する。
経路管理テーブル制御モジュール320は、経路管理テーブル325を制御する。
メッセージ処理モジュール330は、メッセージ送受信モジュール315が送信したメッセージを処理する。
メッセージ送受信モジュール315とメッセージ処理モジュール330とのメッセージのやり取りをする理由は、他のホストからのデータ参照を防止するためである。もし、アプライアンスに誤動作が発生していた場合、他のホストへ結果的に誤ったデータが送信されてしまう。そこで、ディスク制御装置160Bは、メッセージ送受信モジュール315からのメッセージ受信までは、ホスト105Bから書き込まれたデータを一時保留状態としておく。
図8は、第1の実施の形態における経路管理テーブル180Bの一例を示す図である。
なお、経路管理テーブル180Bの項目は、上述で説明した経路管理テーブル180の項目と同様なので、説明は省略する。
(2−2)仮想デバイス割り当て処理
本実施の形態における経路管理テーブル180Bの仮想デバイス割り当て処理、及びポインタ割り当て処理の流れは、図6とは異なる。
図9は、第1の実施の形態における経路管理テーブル180Bの仮想デバイス割り当て処理のフローチャートである。
仮想デバイス割り当て処理は、ミドルウェア115Bがホスト105Bのメモリ内にある仮想デバイス割り当てプログラム(図示せず)に基づいて実行する。
具体的には、ミドルウェア115Bは、図5で説明したステップS503の処理を行うと、この仮想デバイス割り当て処理を開始する(S900)。
次に、ミドルウェア115Bは、ステップS901及びS902の処理をS601及びS602の処理と同様の手順で行う。
その後、ミドルウェア115Bは、ステップS902で割り当てられた仮想デバイスDevがミラー属性かどうか判断する(S903)。
ミラー属性であれば(S903:YES)、ミドルウェア115Bは、図10のポインタ割り当て処理に移る(S904)。
ミラー属性でなければ(S903:NO)、各仮想デバイスDevに割り当てられているインデックス群の中から一番若いインデックス番号にポインタを割り当てる(S905)。これは、データ読み出し時に経由するアプライアンス140を異なるアプライアンスにする必要が無いためである。
そして、ミドルウェア115Bは、同じLU番号に対してインデックス群が複数あるかどうかを判断し(S906)、同じLU番号に対してインデックス群があると判断した場合にはステップS903に戻り、引き続き処理を行う。
一方、ミドルウェア115Bは、同じLU番号に対してインデックス群がないと判断した場合には(S906:NO)、残りのインデックスに異なる仮想デバイスDevを割り当てて(S907)、この処理を終了する(S908)。
(2−3)ポインタ割り当て処理
図10は、ポインタ割り当て処理のフローチャートを示す図である。
ポインタ割り当て処理は、ミドルウェア115Bの経路管理テーブルモジュール320がミドルウェア115B内にあるポインタ割り当てプログラム(図示せず)に基づいて実行する。
具体的には、ミドルウェア115Bは、ステップS902で割り当てられた仮想デバイスDevがミラー属性であると判断した場合に(S903:YES)、ポインタ割り当て処理を開始する(S1000)。
まず、ミドルウェア115Bは、ミラー属性の一方の仮想デバイスDevに対し、一番若いインデックスにポインタを割り当てる(S1001)。
ここで、「一番若い」というのは、例えばインデックス番号1,2があったとすると、一番小さな番号を有するインデックス番号1が「一番若い」インデックスである。
次に、ミドルウェア115Bは、ミラー属性の他方の仮想デバイスDevに対し、S1001で割り当てたインデックスとは異なるインデックスにポインタを割り当てる(S1002)。
図8において、ミラー属性である仮想デバイス番号は1及び2である。そして、一方の仮想デバイスDev1と対応付けられるLU番号1のデータ転送経路はインデックス1、2の経路である。したがってステップS1001により、一番若いインデックス番号である1にポインタを割り当てる。他方の仮想デバイスDev2と対応付けられるLU番号2のデータ転送経路は、インデックス3,4の経路である。一方の仮想デバイスDev1で割り当てられたインデックス1とは異なるインデックスにポインタを割り当てればよい。ステップS1001の結果、仮想デバイスDev1に割り当てられたポインタは、ホストポート120Pa−DKCポート165Paのデータ転送経路を示すインデックスである。即ち、仮想デバイスDev2に割り当てるポインタは、ホストポート120Pa−DKCポート165Paのデータ転送経路とは異なるデータ転送経路を示すインデックスであればよい。経路管理テーブル180Bを見ると、ホストポート120Pa−DKCポート165Paのデータ転送経路を示すインデックスが3であることから、ここでは、インデックス番号4にポインタを割り当てる。
次にミドルウェア115Bは、ミラー属性である対の仮想デバイスが複数あるかどうかを判断し(S1003)、複数あると判断すると(S1003:YES)、再びステップS1001の処理を行う。
一方、ミラー属性である対の仮想デバイスが複数ないと判断すると(S1003:NO)、この処理を終了する(S1004)。
その後、引き続きミドルウェア115Bは、上述したS906の処理に進む。
なお、図9及び図10は、本実施の形態に限らず以降の実施の形態においても有効である。即ち本実施の形態以降の実施の形態で用いる経路管理テーブル180は図9及び図10の処理によって作成される。
図7に示すストレージシステム1Bは、論理ボリュームLU171(LU番号1に相当)のデータ転送経路をインデックス1,2として登録し、論理ボリュームLU172(LU番号2に相当)のデータ転送経路をインデックス3,4として登録する。そして、仮想デバイスDev1、2、及びポインタが図5、図9及び図10で説明したフローチャートによって割り当てられる。
(2−4)データ保証方法
では次に、本実施の形態におけるストレージシステム1Bにおけるデータ保証方法について説明する。
図11から図13は、本実施の形態におけるストレージシステム1Bにおけるデータ保証方法のシーケンス図である。
アプリケーション110が仮想デバイスDev1に対してデータ書き込みをミドルウェア115Bに指示すると(S1100)、ミドルウェア115Bのリードアフタライトモジュール305は、一旦、ライトデータを記憶領域125へコピーする(S1101)。
便宜上、記憶領域125に書き込まれたデータをデータAとする。
次に、ミドルウェア115Bは、経路管理テーブル180Bを参照し、次に使うデータ転送経路を確認する(S1102)。
仮想デバイスDev1へのデータ転送経路が1つしかない場合には、自動的にその1つのデータ転送経路となる。複数のデータ転送経路が存在する場合は、ポインタを参照してデータ転送経路を確認する。
ミドルウェア115Bは、アプリケーション110の指示通りに、ディスク制御装置160Bに書き込み要求を発行する(S1103)。
アプライアンス140aは、データを暗号化しディスク制御装置160Bへ送信する(S1104)。
ディスク制御装置160Bは、データをキャッシュ(ディスクの場合もあり)に書き込んだ後、ホスト105に対して完了ステータスを送信する(S1105)。
ミドルウェア115Bは、ディスク制御装置160Bからの完了ステータスを受けると、ミドルウェア115Bの経路管理テーブル制御モジュール320は経路管理テーブル180Bを参照して(S1106)、データを読み出すデータ転送経路を特定する(S1107)。具体的には、経路管理テーブル180Bのポインタフィールド130にあるポインタが指し示すインデックスのデータ転送経路とする。
ミドルウェア115Bのリードアフタライトモジュール305は、S1107で決定したデータ転送経路を用いて、書き込まれたデータの読み出し要求をディスク制御装置160Bに発行する(S1108)
ディスク制御装置160Bは、読み出し要求で指定されたデータをホスト105へ送信する(S1109)。
アプライアンス140aは、データを復号化しホスト105へ送信する(S1110)。
ミドルウェア115Bは、ディスク制御装置160Bから受信したデータを記憶領域125に格納する(S1111)。
便宜上、S1111で記憶領域に格納したデータをデータBとする。
ミドルウェア115Bのデータ比較モジュール310は、記憶領域125に格納されたデータAとデータBを読み出して比較する(S1112)。
ミドルウェア115Bのデータ比較モジュール310は、記憶領域125に格納されたデータAとデータBとが一致した場合は(S1112:YES)、ステップS1114に進む。
一方、ミドルウェア115Bのデータ比較モジュール310は、記憶領域125に格納されたデータAとデータBとが一致しなかった場合は(S1112:NO)、ミドルウェア115Bがアプリケーション110にエラーを報告する(S1113)。この時点で、アプライアンス140aの暗号処理、あるいは復号処理で誤動作が発生しているとデータAとデータBは一致しない。即ち、ステップS1112及びS1113で、データの異常を検出することが出来る。
基本的には、以上の処理でデータの異常が検出することが明らかになったが、仮に暗号処理に誤動作が発生していると、そのデータを復号化した場合、元のデータとは異なるものとなる。複数のホストで該データ(実際は論理ボリューム)を共有している環境下では、他のホストから該データが読み出される恐れがある。そのため、ステップS1113までの処理でデータが保証されたことを確認するまでは、該データは読み出されないようにする。
データ完全性が保証されたことを通知するために、ミドルウェア115Bのメッセージ送受信モジュール315がその旨をディスク制御装置160Bに通知する(S1114)。
ディスク制御装置160Bは、メッセージ送受信モジュール315からの通知を受けて(S1115)、該データの書き込みを確定する。
なお、ホスト105Bの記憶領域125に格納されたデータA、データBを消去する目的として、ディスク制御装置160Bがリードアフタライトモジュール305に受領応答を送信し(S1116)、データA、データBを消去するようにしてもよい(S1117)。
仮想デバイスDev2に対しても、これまで説明した手法でデータを保証することが可能である。
(2−5)第1の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスで行う暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
(3)第2の実施の形態
(3−1)システム構成
図14は、第2の実施の形態におけるストレージシステムの構成を示す図である。1Cは、本実施の形態におけるストレージシステムを示す。
本実施の形態において、暗号機能を備えたストレージシステム1Cのデータ完全性を保証するために、ホスト105Cがデータに保証コードを付加してディスク制御装置160Cに書き込む。そして、該データが読み出されたときに保証コードを検証し、データ完全性を保証する。読み出されたデータから生成した保証コードと最初に付加した保証コードが一致しないと、暗号処理、あるいは復号処理に誤動作が発生したとみなすことが出来る。
なお、図14に示すストレージシステム1Cは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
保証コード付加/検証モジュール705は、アプリケーション110がディスク制御装置160Cの論理ボリュームに書き込むデータに対して保証コードを付加する機能と、ディスク制御装置160Cから読み出したデータから新たに生成した保証コードと最初に付加した保証コードとを比較する機能と、を備える。
経路管理テーブル制御モジュール710は第1の実施の形態の経路管理テーブル制御モジュール320と同じである。
OS(Operating System)720は、ホスト105Cの各種資源を管理し、アプリケーション110が各種資源を利用できるようにする基本ソフトウェアである。
ミラーリングモジュール725は、アプリケーション110からのライトデータをディスク制御装置160Cのミラー化された論理ボリュームに書き込む、又は、データ読み出し要求に対して、ミラー化された一方の論理ボリュームに格納されたデータが読み出せなかった場合に他方の論理ボリュームからデータを読み出す。本実施の形態では、ミラー化された対の論理ボリュームをLU171、LU172とする。
図15は、本実施の形態における経路管理テーブル180Cの一例を示す図である。
経路管理テーブル180Cの含まれる項目は、経路管理テーブル180、180Bの項目と同じ項目には同一の図番を付している。
図14を見ると、論理ボリュームLU171、LU172に対しては、それぞれ2つのデータ通信経路が存在するため、経路管理テーブル180Cのデータ転送経路を示すインデックスは計4つとなる。
論理ボリュームLU171は、ホストポート120Pa−DKCポート165Pa、ホストポート120Pb―DKCポート165Pbからアクセス可能である。論理ボリュームLU172も、論理ボリュームLU171と同じデータ転送経路からアクセス可能である。
従って、図5及び図9の経路管理テーブル作成フローより、インデックス1と2に対しては仮想デバイスDev1が割り当てられ、インデックス3と4に対しては仮想デバイスDev2が割り当てられる。そして、論理ボリュームLUがミラー化されているので、ミラー属性として仮想デバイスDev1と仮想デバイスDev2とが、登録される。
(3−2)データ保証方法
図16から図19は、本実施の形態におけるデータ保証方法のシーケンス図である。
具体的には、まずアプリケーション110は仮想デバイスDev1に対するデータ書き込みを指示すると(S1600)、ミドルウェア115Cの保証コード付加/検証モジュール705がライトデータに対して保証コードを付加する(S1601)。
経路管理テーブル制御モジュール710は、経路管理テーブル180Cを参照し、次に使うデータ転送経路を確認する(S1602)。すなわち、経路管理テーブル制御モジュール710は、データ書き込み指示をディスク制御装置160Cへ送信するための入出力ポートを特定する(S1602)。
次に、ミドルウェア115Cのミラーリングモジュール725は、ライトデータを該ライトデータに付加された保証コードとともに異なる仮想デバイスに書き込むようにミラーリングする(S1603)。この場合、異なる仮想デバイスは、ミラー属性となっている仮想デバイスDev2である。このときのデータ転送経路は、ステップS1602で確認したデータ転送経路である。
アプライアンス140a、140bはそれぞれライトデータと該ライトデータに付加された保証コードを暗号化し、ディスク制御装置160Cへ送信する(S1604)。
ディスク制御装置160Cは、アプライアンス140a、140bから受信した暗号化されたライトデータと保証コードをキャッシュ(ディスクの場合もあり)に書き込んで、完了ステータスをホスト105Cへ送信する(S1605)。
ミドルウェア115Cは、アプリケーション110へ完了ステータスを報告すると(S1606)、アプリケーション110は、ディスク制御装置160Cの完了ステータスを受けてデータ書き込み処理を終了する。
一方、アプリケーション110は仮想デバイスDev1に対する、上述でのデータ書き込み処理で書き込まれたデータの読み出しを指示すると(S1607)、ミドルウェア115Cの経路管理テーブル制御モジュール715は、経路管理テーブル180Cを参照し、データ読み出し指示を送信するデータ転送経路を得る(S1608)。
ステップS1607で得たデータ転送経路に従って、ミドルウェア115Cは、データ読み出し指示を送信する(S1609)。例えば、図15の経路管理テーブル180Cを見ると仮想デバイスDev1に対してはインデックス1が指し示されている。このため、データ転送経路は、インデックス1の経路となる。
ディスク制御装置160Cは、ステップS1608で送信されたデータ読み出し指示に従って、キャッシュ(ディスクの場合もある)に格納されたデータをホスト105Cへ送信する(S1610)。
アプライアンス140aは暗号化されたデータと保証コードを復号化し、ホスト105Cへ送信する(S1611)。
ミドルウェア115Cの保証コード付加/検証モジュール705は、ディスク制御装置160Cから受信したデータから生成した保証コードとデータに付加された保証コードを比較する(S1612)。
ミドルウェア115Cの保証コード付加/検証モジュール705は、両保証コードが一致しているか否かを判断する(S1613)。
比較した結果、保証コード付加/検証モジュール705は、一致していれば(S1613:YES)、アプライアンス140aによる暗号処理、あるいは復号処理に誤動作が発生していないことが保証されるため、アプリケーション110にデータを渡す(S1614)。
保証コード付加/検証モジュール705は、一致していないと判断すると(S1613:NO)、経路管理テーブル制御モジュール710が、ミラーリングしたデータを読み出すために、経路管理テーブル180Cを参照し、ミラーリングしたデータを読み出すデータ転送経路を特定する(S1615)。
ミドルウェア115は、ステップS1607で特定したデータ転送経路を用いて、ミラー属性のある論理ボリュームにデータ読み出し要求を発行する(S1616)。例えば、図15の経路管理テーブル180Cを見ると仮想デバイスDev2に対してはインデックス4が指し示されている。このため、データ転送経路は、インデックス4の経路となる。
ディスク制御装置160Cは、データ読み出し要求に従ってデータをホスト105Cへ送信する(S1617)。
アプライアンス140bは、暗号化されたデータと保証コードを復号化しホスト105Cへ送信する(S1618)。
ミドルウェア115Cの保証コード付加/検証モジュール705は、ステップS1611と同様に、ディスク制御装置160Cから受信したデータから生成した保証コードとデータに付加された保証コードを比較する(S1619)。
そしてミドルウェア115Cの保証コード付加/検証モジュール705は、両保証コードが一致しているか否かを判断する(S1620)。
保証コード付加/検証モジュール705は、比較した結果、一致していると判断すると(S1620:YES)、アプライアンス140bによる暗号処理、あるいは復号処理に誤動作が発生していないことが保証されるため、アプリケーション110にデータを渡す(S1613)。
保証コード付加/検証モジュール705は、比較した結果、一致していないと判断すると(S1620:NO)、アプリケーション110へエラーを報告する(S1621)。
最後に、ミドルウェア110Cの経路管理テーブル制御モジュール710は、ポインタ移動処理を実施し(S1622)、このシーケンスを終了する(S1623)。
図20は、経路管理テーブル180Cのポインタの移動処理を示すフローチャートである。
ポインタ移動処理は、ミドルウェア115Bの経路管理テーブルモジュール710がミドルウェア115B内にあるポインタ移動プログラム(図示せず)に基づいて実行する。
具体的には、保証コード付加/検証モジュール705が、アプリケーション110にデータを渡す(S1614)、又は、アプリケーション110へエラーを報告すると(S1621)、経路管理テーブル制御モジュール710は、ポインタ移動処理を開始する(S2000)。
まず、経路管理テーブル制御モジュール710は、経路管理テーブル180Cを参照し、ミラー属性となっている一方の仮想デバイスDevの、現在ポインタで示されているインデックスの次に若いインデックスにポインタを移動する(S2001)。
次に、経路管理テーブル制御モジュール710は、ミラー属性となっている他方の仮想デバイスDevの現在ポインタで示されているインデックスのデータ転送経路が、ステップS2001で移動したポインタで示されているインデックスのデータ転送経路と同じかどうか判断する(S2002)。
もし、同じであれば、ミラーリングされたデータは同じデータ転送経路を用いることになる。同じデータ転送経路となることを回避する必要がある。
そこで、経路管理テーブル制御モジュール710は、同じデータ転送経路であると判断すると(S2002:YES)、他方の仮想デバイスDevのポインタ位置を、現在ポインタが指し示すインデックスの次に若いインデックス番号であって、且つ、一方の仮想デバイスのポインタが示すデータ転送経路とは異なるデータ転送経路を示すインデックス番号に移動する(S2003)。
例えば、図15の経路管理テーブル180Cでは、仮想デバイスDev1の現在ポインタは、インデックス2を指し示しているが、仮想デバイスDev1についてはデータ転送経路が2つ(インデックス1,2)しかないため、次のポインタの移動先はインデックス番号1となる。一方、ミラー属性となっている仮想デバイスDev2については、仮想デバイスDev1のポインタの位置とは異なるようにするため、ポインタの移動先はインデックス番号4となる。
経路管理テーブル制御モジュール710は、このように移動先のポインタを決定すると、この処理を終了する(S2004)。
経路管理テーブル制御モジュール710は、同じデータ転送経路ではないと判断すると(S2002:NO)、そのままこの処理を終了する(S2004)。
なお、ステップS2001及びS2003において、ポインタの移動先を現在のポインタが指し示すインデックスの次に若いインデックスとしたが、特にこれに限定されるものではない。
さらに、ポインタの移動処理を実施する際、例えば、図19におけるステップS1613においてNOと判断した場合、即ち、アプライアンス140aの暗号処理、あるいは復号処理に誤動作が発生したとみなすことが出来る場合、以降アプライアンス140aを使うべきではない。従って、経路管理テーブル制御モジュール710は、アプライアンス140aを経由するデータ転送経路を選択しないようにすればよい。第2の実施の形態のように、アプライアンスが2台しかない場合は、一時的に正常なもう片方のアプライアンス140bを経由せざるを得ない。しかし、ホスト105Cが、誤動作が発生したと判断したアプライアンス140aを新しいアプライアンスと交換することによって、再び物理的に異なるデータ転送経路を用いてデータを保証することが可能である。
(3−3)第2の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスで行う暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
(4)第3の実施の形態
(4−1)システム構成
図21は、第3の実施の形態におけるストレージシステムの構成を示す図である。1Dは、本実施の形態におけるストレージシステムを示す。
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホストが異なる論理ボリュームにデータをミラーリングして格納する。そして、ストレージ制御装置でミラーリングされたデータを比較することでデータ完全性を保証する。
なお、図21に示すストレージシステム1Dは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
経路管理テーブル制御モジュール1105、ミラーリングモジュール1120は、第2の実施の形態における経路管理テーブル制御モジュール710、ミラーリングモジュール725と同じである。
経路管理テーブル180Dは、第1の実施の形態で説明した経路管理テーブル180Bと同じとする。
データ比較モジュール1600は、ディスク制御装置160Dの内部に備え、ホスト105Dから送信され、ミラー化された論理ボリュームLU171,172内に保存されたアプライアンス140a、140bによって暗号化されたデータを比較する。
(4−2)データ保証方法
図22及び図23は、本実施の形態におけるデータ保証方法のシーケンス図である。
具体的には、まずアプリケーション110は、データ書き込みの指示をすると(S2200)、ミラーリングモジュール1120は、経路管理テーブル180Dを参照し、データ転送経路を特定する(S2201)。この特定方法は、図2及び図7で説明したので説明を省略する。
ミドルウェア115Dのミラーリングモジュール1120がデータをミラーリングし、別々の論理ボリュームに書き込む(S2202)。
アプライアンス140a、140bは、それぞれデータを暗号化し、ディスク制御装置160Dへ送信する(S2203)。
ディスク制御装置160Dは、アプライアンス140a、140bから送信された、それぞれの暗号化されたデータを論理ボリュームLU171,172、又はキャッシュに書き込む(S2204)。そして、ディスク制御装置160Dのプロセッサ(図示せず)からの指示によって、データ比較モジュール1600が論理ボリュームLU171,172、又はキャッシュに書き込まれた、それぞれの暗号化されたデータを比較する(S2205)。
ディスク制御装置160Dのデータ比較モジュール1600は、それぞれの暗号化されたデータが一致しているかどうかを判断する(S2206)。
もし、アプライアンス140a、140bのどちらかに暗号処理の誤動作が発生していた場合には、ステップS2206での比較結果が不一致となるため、アプライアンス140の誤動作によって生じたデータの検出が出来る。
ディスク制御装置160Dのデータ比較モジュール1600は、それぞれの暗号化されたデータが一致していると判断すると(S2206:YES)、ホスト105Dに対して完了ステータスを送信する(S2207)。
ホスト105Dのアプリケーション110は、完了ステータスを受信するとこのシーケンスを終了する(S2208)。
一方、ディスク制御装置160Dのデータ比較モジュール1600は、それぞれの暗号化されたデータが一致していないと判断すると(S2206:NO)、ホスト105Dに対してエラーステータスを送信する(S2209)。
ホスト105Dのアプリケーション110は、エラーステータスを受信すると(S2210)、再びステップS2000に戻り、データの再書き込み指示を行うこととなる。
このように、ホスト105Dは、ディスク制御装置160Dからのステータスに応じて、完了ステータスを受信後に次の処理、データ書き込みの再送信、又はアプリケーションの定める障害処理に移る。
(4−3)第3の実施の形態
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、アプライアンスの暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
(5)第4の実施の形態
(5−1)システム構成
図24は、第4の実施の形態におけるストレージシステムの構成を示す図である。1Eは、本実施の形態におけるストレージシステムを示す。
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホスト105Eがそれぞれの論理ボリュームLU171、172にデータをミラーリングして格納する。そして、ホスト105Eがデータを読み出すときに、ミラーリングされたデータ両方を同時に読み出し、双方を比較することでデータ完全性を保証する。比較した結果、一致しなければ暗号処理、あるいは復号処理に誤動作が発生したことになる。
なお、図24に示すストレージシステム1Eは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
読み出しモジュール1305は、アプリケーション110がデータ読み出しを要求したときに、ミラーリングされたデータ両方を読み出すように指示する。
通常、ミラーリング機能は、データを書き込むときはそれぞれの論理ボリュームLU171、172に書き込むが、読み出すときは片方の論理ボリュームからしか読み出さない。
第4の実施の形態のように、ホスト105E側でデータ比較をするためには、ミラーリングされたデータ両方が必要となるため、読み出しモジュール1305を設ける。
データ比較モジュール1310は、第3の実施の形態で説明したデータ比較モジュール1600と同等の機能を有する。
経路管理テーブル制御モジュール1315、ミラーリングモジュール1330、及び経路管理テーブル180Eは、第2の実施の形態で説明した経路管理テーブル制御モジュール710、ミラーリングモジュール725、及び経路管理テーブル180Cと同じとする。
(5−2)データ保証方法
図25から図27は、本実施の形態におけるデータ保証方法のシーケンス図である。
具体的には、まずステップS2500からS2503までの処理を、S2200からS2203までの処理と同様の手順で行う。
ディスク制御装置160Eは、アプライアンス140a、140bから送信された暗号化されたデータをキャッシュ(論理ボリュームLUの場合もある)に書き込み、完了ステータスをホスト105Eへ送信する(S2504)。
ホスト105Eはディスク制御装置160Eからの完了ステータスを受けて、データ書き込み処理を終了する(S2505)。
データ書き込み処理終了後、任意のタイミングで、アプリケーション110は、ステップS2500によるデータ書き込みによって書き込んだデータの読み出し指示をする(S2506)。
ミドルウェア115Eの経路制御テーブル制御モジュール1315は、データの読み出し指示を受け取ると、経路管理テーブル180Eを参照し、データ読み出し指示を送信するデータ転送経路を得る(S2507)。この場合は、ミラーリングされたデータ両方が格納された論理ボリュームLU171,172が対象となる。
ミドルウェア115の読み出しモジュール1305は、データ転送経路をもとにミラーリングしたデータ両方の読み出しを指示すると(S2508)、ディスク制御装置160Eは、その指示に従ってホスト105Eへデータを送信する(S2509)。
アプライアンス140a、140bは、ディスク制御装置160Eからのデータを復号化しホスト105Eへ送信する(S2510)。
ミドルウェア115Eのデータ比較モジュール1310は、アプライアンス140a、140bから受信した双方のデータを比較し(S2511)、双方のデータが一致するかどうかを判断する(S2512)。
データ比較モジュール1310は、双方のデータが一致すると判断すると(S2512:YES)、アプリケーション110へ片方のデータを渡し(S2513)、アプリケーション110がデータを受信するとこのシーケンスを終了する(S2515)。
一方、データ比較モジュール1310は、双方のデータが一致しないと判断すると(S2512:NO)、エラーステータスをホスト105Eへ通知し(S2514)、アプリケーション110がエラーステータスを受信するとこのシーケンスを終了する(S2516)。
(5−3)第4の実施の形態の効果
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスの暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
(6)第5の実施の形態
(6−1)システム構成
図28は、第5の実施の形態におけるストレージシステムの構成を示す図である。1Fは、本実施の形態におけるストレージシステムを示す。
本実施の形態において、暗号機能を備えたストレージシステムのデータ完全性を保証するために、ホストが異なる論理ボリュームにデータをミラーリングして格納する。その際、ホストとディスク制御装置間のデータ転送経路を構成する結合装置において、ミラーリングされたデータを比較することでデータ完全性を保証する。
なお、図28に示すストレージシステム1Eは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
ミラーリングモジュール1610は、第2の実施の形態で説明をしたミラーリングモジュール725と同じである。
結合装置1915の内部結合部1925に接続されるデータ比較機構1930は、第1の実施の形態で説明したデータ比較モジュール310と同じ機能を有している。
結合装置1915は、アプライアンス140a、140b、及びディスク制御装置160FのDKCポート165Pをそれぞれ相互接続するための機器である。即ち、アプライアンス140aは、ディスク制御装置160のDKCポート165Pa、165Pb両方にアクセス可能である。アプライアンス140bも同様に、ディスク制御装置160のDKCポート165Pa、165Pb両方にアクセス可能である。
これまで上述した実施の形態では、ホストポート120Pとディスク制御装置160FのDKCポート160Pと間は、アプライアンス140が介在するものの、基本的に直結されていた。しかし、第5の実施の形態のように、途中に結合装置1915が存在するとデータ転送経路の扱いが異なる。即ち、結合装置1915内部の入出力ポートの対応関係も考慮する必要がある。
(6−2)経路管理テーブル
図29は、本実施の形態における経路管理テーブル180Fの一例を示す図表である。
これまでの実施の形態で示した経路管理テーブル180から180Eと異なる点は、「結合装置入力ポート」フィールド137及び「結合装置出力ポート」フィールド138を設けている点である。
「結合装置入力ポート」フィールド137は、結合装置1915がホスト105F側に接続されているポート1920a,1920bを示す。
「結合装置出力ポート」フィールド138は、結合装置1915がディスク制御装置160F側に接続されているポート1920c,1920dを示す。
本実施の形態によれば、仮想デバイスDev1と対応付けられた論理ボリュームLU171へのデータ転送経路は、4経路になる。仮想デバイスDev2と対応付けられた論理ボリュームLU172も同様に、データ転送経路は4経路になる。
更に、経路管理テーブル180Fの各データ転送経路に存在するアプライアンス140も考慮しなければならない。図29のAで示したデータ転送経路(インデックス3から6)がアプライアンス140aを通過する。図29のBで示したデータ転送経路(インデックス1,2,7,8)がアプライアンス140bを通過する。
ミラーリングされたデータをそれぞれ、別々のアプライアンス140a,140bを通過させるためには上述したことを考慮する必要がある。
(6−3)データ保証方法
図30及び図31は、本実施の形態におけるデータ保証方法のフローチャートを示す図である。
具体的には、まずステップS3000からS3002までの処理を、S2200からS2202までの処理と同様の手順で行う。
そして、アプライアンス140a、140bがデータを暗号化すると(S3003)、それぞれ決定したデータ転送経路(例えばインデックス1、6)で結合装置1915に暗号化されたデータを送信する。
結合装置1915のデータ比較機構1930は、暗号化されたそれぞれのデータを比較する(S3004)。
データ比較機構1930は、暗号化されたそれぞれのデータが一致しているかどうかを判断する(S3005)。
データ比較機構1930は、暗号化されたそれぞれのデータが一致していないと判断すると(S3005:NO)、そのまま待機をする(S3006)。そして、ある一定時間が経過すると、アプリケーション110がデータ比較機構1930でのタイムアウトを検出し、このシーケンスを終了する(S3007)。
一方、データ比較機構1930は、暗号化されたそれぞれのデータが一致していると判断すると(S3005:YES)、そのままディスク制御装置160Fへ送信する(S3008)。
ディスク制御装置160Fは、結合装置1910より受信した、暗号化されたそれぞれのデータをキャッシュ(ディスクの場合もある)に格納すると、完了ステータスをホスト105Fへ送信する(S3009)。
完了ステータスをホスト105Fが受信すると、このシーケンスを終了する(S3010)。
(6−4)第5の実施の形態
本実施の形態によれば、アプライアンスをデータの暗号又は復号する機能を有する装置とすることで、ホストがアプライアンスの暗号処理の誤動作によるデータをデータ書き込み時に検出できるため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
加えて、本実施の形態は、結合装置を備えているため、データ転送経路を決定する上で経路選択の幅が広がる。
(7)第6の実施の形態
(7−1)システム構成
図32は、第6の実施の形態におけるストレージシステムの構成を示す図である。1Gは、本実施の形態におけるストレージシステムを示す。
本実施の形態において、暗号機能を備えたストレージシステム1Gのデータ完全性を保証するために、ホスト105Gがそれぞれの論理ボリュームLU171,172にデータをミラーリングして格納する。その際、ディスク制御装置160Gで保証コードの付加と検証を実施することでデータ完全性を保証する。保証コードを検証した結果、一致しなければ暗号処理、あるいは復号処理に誤動作が発生したことになる。
なお、図32に示すストレージシステム1Gは、基本的に図1で説明したストレージシステム1Aと同様の構成要素には同一の番号を付している。以下、図1で説明したストレージシステム1Aと異なる構成要素についてのみ説明する。
経路管理テーブル180G、経路管理テーブル制御モジュール1607及びミラーリングモジュール1610は、第2の実施の形態の経路管理テーブル180C、経路管理テーブル制御モジュール710及びミラーリングモジュール725同じである。
ディスク制御装置内160Gのホストアダプタ165内に、保証コード付加/検証モジュール1620、暗号処理モジュール1625を設ける。
保証コード付加/検証モジュール1620は、ホスト105Gから受信した平文に、生成した保証コードを付加し、又は保証コードを付加した平文を検証する。
暗号処理モジュール1625は、上述で説明した実施の形態で示したアプライアンス140の暗号処理機構150と同等の機能を備える。
(7−2)データ保証方法
図33から図35は、第6の実施の形態におけるデータ保証方法のシーケンス図である。
具体的には、アプリケーション110はデータ書き込みの指示をすると(S3300)、経路管理テーブル制御モジュール710は、経路管理テーブル180Gを参照し、次に使うデータ転送経路を確認する(S3301)。ミドルウェア115Gのミラーリングモジュール1610がそれぞれの論理ボリュームLU171、172に書き込むようデータをミラーリングする(S3302)。
ディスク制御装置160Gの保証コード付加/検証モジュール1620が、ホスト105Gから受信したそれぞれのデータに対して保証コードを生成し付加する(S3303)。
そしてディスク制御装置160Gの暗号処理モジュール1625は、それぞれのデータと、それぞれのデータに付加した保証コードとを、それぞれまとめて暗号化する(S3304)。
そして、ディスク制御装置160Gは、それぞれ暗号化されたデータと保証コードと、をキャッシュ(論理ボリュームLUの場合もある)に格納し、ホスト105Gへ完了ステータスを送信する(S3305)。
その後、アプリケーション110は、ディスク制御装置160Gに書き込まれたデータの読み出し指示をすると(S3306)、ミドルウェア115Gの経路管理テーブル制御モジュール1607が経路管理テーブル180Gを参照して、データ転送経路を決定する(S3307)。ミドルウェア115Gは、決定した入出力ポートを介してデータの読み出し指示をディスク制御装置160Gへ送信する(S3307)。
ディスク制御装置160Gは、読み出し要求されたデータをキャッシュ(ディスクの場合もある)から読み出し、暗号処理モジュール1625が読み出したデータを復号化する(S3308)。このとき、暗号処理モジュール1625は、データに付加した保証コードも復号化する(S3308)。
保証コード付加/検証モジュール1620は、復号化したデータから新たに保証コードを生成する(S3309)。
そして保証コード付加/検証モジュール1620は、この新たに生成した保証コードと、更にデータと共に復号化された保証コードと、が一致しているかどうかを判断する比較する(S3310)。
保証コード付加/検証モジュール1620は、新たに生成した保証コードと、復号化した保証コードとが一致している場合(S3310:YES)、ディスク制御装置160は読み出したデータと完了ステータスとをホストへ送信する(S3317)。
ホスト105Gは読み出したデータと完了ステータスとを受信すると(S3318)、ミドルウェア115Gがポインタ移動処理を実施し(S3321)、このシーケンスを終了する(S3322)。
一方、保証コード付加/検証モジュール1620は、新たに生成した保証コードと、復号化した保証コードとが一致していない場合(S3310:NO)、ホスト105Gへエラーステータスを送信する(S3311)。
ミドルウェア115Gは、ディスク制御装置160Gから受信したエラーを受信すると、経路管理テーブル制御モジュール1607は、経路管理テーブル180Gを参照して、ミラー側のデータを読み出すデータ転送経路を決定する(S3312)。
ミドルウェア115Gは、ステップS3312で決定したデータ転送経路を用いてデータ読み出し要求を発行する(S3313)。
ディスク制御装置160Gは、データ読み出し要求に従ってデータと保証コードをキャッシュ(論理ボリュームLUの場合もある)から読み出し、暗号処理モジュール1625がデータとデータに付加された保証コードとを復号化する(S3314)。
保証コード付加/検証モジュール1620は、ミラー側の復号化されたデータから新たに保証コードを生成する(S3315)。
そして保証コード付加/検証モジュール1620は、このミラー側データの新たに生成した保証コードと、更にミラー側データと共に復号化された保証コードと、が一致しているかどうかを判断する比較する(S3316)。
保証コード付加/検証モジュール1620は、新たに生成した保証コードと、復号化した保証コードとが一致している場合(S3316:YES)、ディスク制御装置160は読み出したデータと完了ステータスとをホストへ送信する(S3317)。
ホスト105Gは読み出したデータと完了ステータスとを受信すると(S3318)、ミドルウェア115Gがポインタ移動処理を実施し(S3321)、このシーケンスを終了する(S3322)。
一方、保証コード付加/検証モジュール1620は、新たに生成した保証コードと、復号化した保証コードとが一致していない場合(S3316:NO)、ホスト105Gへエラーステータスを送信する(S3319)。
ホスト105Gはエラーステータスを受信すると(S3320)、ミドルウェア115Gがポインタ移動処理を実施し(S3321)、このシーケンスを終了する(S3322)。
ステップS3321で行うポインタ移動処理は、第2の実施の形態で説明したポインタ移動処理と同様に、ミドルウェア115GがステップS2000からS2004の手順で処理を行う。
(7−3)第6の実施の形態
本実施の形態によれば、暗号処理モジュールを搭載したディスク制御装置をデータの暗号又は復号する機能を有する装置とすることで、ディスク制御装置において、暗号処理の誤動作によるデータをデータ読み出し時に検出することが出来るため、格納されるデータの暗号化機能をサポートするストレージシステムにおいて確実にデータを保証することができる。
また、本実施の形態はミラー構成であるため、他方の仮想デバイスにあるデータを、一方の仮想デバイスにあるデータを転送する経路とは異なる経路でホストへ送信するため、確実にデータを保証することができる。
(8)その他の実施の形態
第1から第6の実施の形態によれば、暗号機能を備えたストレージシステムにおいて、暗号処理、あるいは復号処理に誤動作が生じた場合に、ホストからの書き込み、あるいは読み出し要求時にその誤動作を検出することが出来るため、データ化けを未然に回避することが可能となる。
なお、第1から第6の実施の形態で説明した「モジュール」と呼ばれるものは、基本的にプロセッサ(図示せず)で動作するプログラムであるが、これに限定されるものではない。
加えて、第1から第6の実施の形態のストレージシステムでは、図1のネットワーク13及び管理端末14についての説明を省略したが、第1から第6の実施の形態のストレージシステム1に設けられているものである。
第1から第6の実施の形態のストレージシステムでは、ホスト105と、ホストが認識する対の仮想デバイスDevと対応する対の論理ボリュームLU171、172と、データの暗号又は復号する機能を有する装置(アプライアンス140又はディスク制御装置160)と、を有する。そして、ホスト105と対の論理ボリュームLU171、172との間に複数あるデータ転送経路から、それぞれの論理ボリュームLU171、172に対して1経路を特定するための経路管理部を経路管理テーブル180としてホスト105に備えたが、データの暗号又は復号する機能を有する装置(アプライアンス140又はディスク制御装置160)に備えても良い。
第1から第6の実施の形態のストレージシステムでは、ホスト105は、ホスト105が認識する対の仮想デバイスDevと対応する対の論理ボリュームLU171、あるいは172のデータを読み出す際に、経路管理テーブルを参照しデータ読み出し指示を送信する入出力ポートを得るが、データ書き込みの際のデータ転送経路と同じであれば、データ読み出し時の経路管理テーブルの参照ステップは省略しても構わない。
また、第1の実施の形態では、リードアフタライト部、データ比較部及びメッセージ送受信部と、をホスト105のミドルウェア115Bが備えたが、これらを個別のハードウェア構成としてもよい。
第2の実施の形態では、ホスト105Cのミドルウェア115Cが保証コード付加部、ミラーリング部及び保証コード検証部を有したが、これらを個別のハードウェア構成としてもよい。
第3の実施の形態では、ホスト105Dがミラーリング部を有し、ディスク制御装置160Dがデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
第4の実施の形態では、ホスト105Eがミラーリング部、読み出し部及びデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
第5の実施の形態では、ホスト105Fがミラーリング部を有し、結合装置1915がデータ比較部を有したが、これらを個別のハードウェア構成としてもよい。
第6の実施の形態では、ホスト105Gがミラーリング部を有し、ディスク制御装置160Gが保証コード付加部を有したが、これらを個別のハードウェア構成としてもよい。
第2、及び第6の実施の形態におけるポインタ移動処理は、特にデータ転送経路を変更する必要性がなければ、省略しても構わない。
本発明は、1又は複数のディスク制御装置を有する記憶システムや、その他の形態の記憶システムに広く適用することができる。
ストレージシステムにおけるデータ転送経路の制御方式の一例を示した図である。 データ転送経路の制御方式の説明で用いる経路管理テーブルの図表である。 データ転送経路の制御方式の説明で用いる仮想デバイスの割り当てを示す経路管理テーブルの説明図である。 データ転送経路の制御方式の説明で用いる仮想デバイスの割り当てを示す経路管理テーブルの説明図である。 データ転送経路の制御方式の説明で用いる経路管理テーブルの作成手順を示すフローチャートである。 データ転送経路の制御方式の説明で用いる仮想デバイス割り当て処理を示すフローチャートである。 第1の実施の形態におけるストレージシステムの全体図である。 第1の実施の形態における経路管理テーブルの図表である。 第1の実施の形態における仮想デバイス割り当て処理を示すフローチャートである。 第1の実施の形態におけるポインタ割り当て処理を示すフローチャートである。 第1の実施の形態におけるデータ保証方法を示すシーケンス図である。 第1の実施の形態におけるデータ保証方法を示すシーケンス図である。 第1の実施の形態におけるデータ保証方法を示すシーケンス図である。 第2の実施の形態におけるストレージシステムの全体図である。 第2の実施の形態における経路管理テーブルの図表である。 第2の実施の形態におけるデータ保証方法を示すシーケンス図である。 第2の実施の形態におけるデータ保証方法を示すシーケンス図である。 第2の実施の形態におけるデータ保証方法を示すシーケンス図である。 第2の実施の形態におけるデータ保証方法を示すシーケンス図である。 第2の実施の形態におけるポインタ移動処理を示すフローチャートである。 第3の実施の形態におけるストレージシステムの全体図である。 第3の実施の形態におけるデータ保証方法を示すシーケンス図である。 第3の実施の形態におけるデータ保証方法を示すシーケンス図である。 第4の実施の形態におけるストレージシステムの全体図である。 第4の実施の形態におけるデータ保証方法を示すシーケンス図である。 第4の実施の形態におけるデータ保証方法を示すシーケンス図である。 第4の実施の形態におけるデータ保証方法を示すシーケンス図である。 第5の実施の形態におけるストレージシステムの全体図である。 第5の実施の形態における経路管理テーブルの図表である。 第5の実施の形態におけるデータ保証方法を示すシーケンス図である。 第5の実施の形態におけるデータ保証方法を示すシーケンス図である。 第6の実施の形態におけるストレージシステムの全体図である。 第6の実施の形態におけるデータ保証方法を示すシーケンス図である。 第6の実施の形態におけるデータ保証方法を示すシーケンス図である。 第6の実施の形態におけるデータ保証方法を示すシーケンス図である。 第6の実施の形態におけるデータ保証方法を示すシーケンス図である。
符号の説明
1…ストレージシステム、105…ホスト、110…アプリケーション、115…ミドルウェア、120Pa、120Pb、P120c…ホストポート、125…記憶領域、140a、140b…アプライアンス、145a、145b、145c、145d…入出力ポート、150a、150b…暗号処理機構、160…ディスク制御装置、165Pa、165Pb…DKCポート、171、172…論理ボリューム、305…リードアフタライトモジュール、310…データ比較モジュール、315…メッセージ送受信モジュール、320…経路管理テーブル制御モジュール、180…経路管理テーブル、330…メッセージ処理モジュール。

Claims (20)

  1. データの読み出し指示又は書き込む指示を行うホストと、
    前記ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、
    前記ホストと前記対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、
    前記ホストからのデータの読み出し指示又は書き込む指示に基づいて、
    前記データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを前記論理ボリューム又は前記ホストに転送するために、前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して1経路を特定するための経路管理部を備える
    ことを特徴とする記憶システム。
  2. 前記経路管理部は、
    前記データ転送経路毎に、前記対の論理ボリュームを管理し、
    1つの論理ボリュームに属するデータ転送経路群毎に、1つの仮想デバイスを割り当て、
    一方の仮想デバイスに対して前記データ転送経路群から1経路を特定し、他方の仮想デバイスに対して前記特定した経路とは別の経路を前記データ転送経路群から特定して仮想デバイス割り当て制御を行う
    ことを特徴とする請求項1に記載の記憶システム。
  3. 前記経路管理部は、
    前記データ転送経路毎にインデックス番号を付与し、
    インデックス番号の昇順又は降順に前記データ経路群を特定するポインタ制御を行う
    ことを特徴とする請求項2に記載の記憶システム。
  4. 前記経路管理部は、
    前記データ転送経路毎に、前記ホストから入出力されるデータを制御する1以上のホストポートと、前記ミラー論理ボリュームから入出力されるデータを制御する1以上のボリュームポートと、を管理して、物理的なデータ転送経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  5. 前記ホストは
    前記ホストから書き込みデータとして前記論理ボリュームに格納したデータを格納後に読み出すリードアフタライト部と、
    前記読み出したデータと、前記書き込みデータとして前記論理ボリュームに格納する際に前記ホストの記憶領域に予め記憶する記憶データと、を比較するデータ比較部と、
    前記データ比較部に基づく比較結果を通知するメッセージ送受信部と、を有し、
    それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  6. 前記ホストは、
    前記ホストからのデータに保証コードを付加する保証コード付加部と、
    前記保証コードを付加されたデータをそれぞれの前記論理ボリュームに書き込むために、前記保証コードを付加されたデータをミラーリングするミラーリング部と、
    一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証部と、を備え、
    前記保証コード検証部により前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  7. 前記対の論理ボリュームを制御する制御装置を備え、
    前記ホストは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
    前記対の論理ボリュームを制御する制御装置は、
    前記ミラーリング部に基づいてミラーリングされたそれぞれのデータを比較するデータ比較部を有し、
    前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して1経路を特定して、前記対の論理ボリュームを制御する制御装置にミラーリングされたデータを送信する
    ことを特徴とする請求項1に記載の記憶システム。
  8. 前記ホストは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部と、
    それぞれの前記論理ボリュームからデータを読み出す読み出し部と、
    前記論理ボリュームから読み出したそれぞれのデータを比較するデータ比較部と、を有し、
    それぞれの前記論理ボリュームからデータを読み出す際に、それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  9. 前記対の論理ボリュームを制御する制御装置と、
    前記対の論理ボリュームを制御する制御装置と前記データの暗号又は復号する機能を有する装置とを接続するための結合装置と、を更に備え、
    前記ホストは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
    前記結合装置は、
    前記ミラーリングされたそれぞれのデータを比較するデータ比較部を有し、
    それぞれの前記論理ボリュームにミラーリングされたデータを書き込む際に、それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  10. 前記データの暗号又は復号する機能を有する装置は前記対の論理ボリュームを備え、
    前記ホストは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリング部を有し、
    前記データの暗号又は復号する機能を有する装置は
    前記ホストからのミラーリングされたデータに保証コードを付加する保証コード付加部と、
    一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証部と、を有し、
    前記保証コード検証部により前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項1に記載の記憶システム。
  11. データの読み出し指示又は書き込む指示を行うホストと、
    前記ホストが認識する対の仮想デバイスと対応する対の論理ボリュームと、
    前記ホストと前記対の論理ボリュームとの間に介在し、データの暗号又は復号する機能を有する装置と、を有し、
    前記ホストからのデータの読み出し指示又は書き込む指示に基づいて、
    前記データの暗号又は復号する機能を有する装置を介して暗号化した暗号データ又は復号化した復号データを前記論理ボリューム又は前記ホストに転送するために、前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して1経路を特定するための経路管理ステップを備える
    ことを特徴とするデータ保証方法。
  12. 前記経路管理ステップでは、
    前記データ転送経路毎に、前記対の論理ボリュームを管理し、
    1つの論理ボリュームに属するデータ転送経路群毎に、1つの仮想デバイスを割り当て、
    一方の仮想デバイスに対して前記データ転送経路群から1経路を特定し、他方の仮想デバイスに対して前記特定した経路とは別の経路を前記データ転送経路群から特定して仮想デバイス割り当て制御を行う
    ことを特徴とする請求項11に記載の保証方法。
  13. 前記経路管理ステップでは、
    前記データ転送経路毎にインデックス番号を付与し、
    インデックス番号の昇順又は降順に前記データ経路群を特定するポインタ制御を行う
    ことを特徴とする請求項12に記載のデータ保証方法。
  14. 前記経路管理ステップでは、
    前記データ転送経路毎に、前記ホストから入出力されるデータを制御する1以上のホストポートと、前記ミラー論理ボリュームから入出力されるデータを制御する1以上のボリュームポートと、を管理して、物理的なデータ転送経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
  15. 前記ホストでは
    前記ホストから書き込みデータとして前記論理ボリュームに格納したデータを格納後に読み出すリードアフタライトステップと、
    前記読み出したデータと、前記書き込みデータとして前記論理ボリュームに格納する際に前記ホストの記憶領域に予め記憶する記憶データと、を比較するデータ比較ステップと、
    前記データ比較ステップに基づく比較結果を通知するメッセージ送受信ステップと、を有し、
    前記経路管理ステップでは、
    それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
  16. 前記ホストでは、
    前記ホストからのデータに保証コードを付加する保証コード付加ステップと、
    前記保証コードを付加されたデータをそれぞれの前記論理ボリュームに書き込むために、前記保証コードを付加されたデータをミラーリングするミラーリングステップと、
    一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成するステップと、
    前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証ステップと、を有し、
    前記経路管理ステップでは、
    前記保証コード検証ステップにより前記保証コードと、前記新たな保証コードとが一致しない場合には、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
  17. 前記対の論理ボリュームを制御する制御装置を備え、
    前記ホストでは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
    前記対の論理ボリュームを制御する制御装置では、
    前記ミラーリングステップに基づいてミラーリングされたそれぞれのデータを比較するデータ比較ステップを有し、
    前記経路管理ステップでは、
    前記ホストと前記対の論理ボリュームとの間に複数あるデータ転送経路から、それぞれの前記論理ボリュームに対して1経路を特定して、前記対の論理ボリュームを制御する制御装置にミラーリングされたデータを送信する
    ことを特徴とする請求項11に記載のデータ保証方法。
  18. 前記ホストでは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップと、
    それぞれの前記論理ボリュームからデータを読み出す読み出しステップと、
    前記論理ボリュームから読み出したそれぞれのデータを比較するデータ比較ステップと、を有し、
    前記経路管理ステップでは、
    それぞれの前記論理ボリュームからデータを読み出す際に、それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
  19. 前記対の論理ボリュームを制御する制御装置と、
    前記対の論理ボリュームを制御する制御装置と前記データの暗号又は復号する機能を有する装置とを接続するための結合装置と、を更に備え、
    前記ホストでは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
    前記結合装置では、
    前記ミラーリングされたそれぞれのデータを比較するデータ比較ステップを有し、
    前記経路管理ステップでは、
    それぞれの前記論理ボリュームにミラーリングされたデータを書き込む際に、それぞれの前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
  20. 前記データの暗号又は復号する機能を有する装置は前記対の論理ボリュームを備え、
    前記ホストでは、
    前記ホストからのデータをそれぞれの前記論理ボリュームに書き込むために、前記データをミラーリングするミラーリングステップを有し、
    前記データの暗号又は復号する機能を有する装置では
    前記ホストからのミラーリングされたデータに保証コードを付加する保証コード付加ステップと、
    一方の前記論理ボリュームから前記保証コードを付加されたデータを読み出し、前記読み出したデータから新たな保証コードを生成し、前記保証コードと、前記新たな保証コードとが一致するか否かを検証する保証コード検証ステップと、を有し、
    前記保証コード検証ステップにより前記保証コードと、前記新たな保証コードとが一致しない場合には、前記経路管理ステップで、前記ホストと他方の論理ボリュームとの間に複数あるデータ転送経路から、他方の前記論理ボリュームに対して1経路を特定する
    ことを特徴とする請求項11に記載のデータ保証方法。
JP2007170926A 2007-06-28 2007-06-28 暗号機能を備えたストレージシステム及びデータ保証方法 Pending JP2009009407A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007170926A JP2009009407A (ja) 2007-06-28 2007-06-28 暗号機能を備えたストレージシステム及びデータ保証方法
US12/007,312 US20090006863A1 (en) 2007-06-28 2008-01-09 Storage system comprising encryption function and data guarantee method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007170926A JP2009009407A (ja) 2007-06-28 2007-06-28 暗号機能を備えたストレージシステム及びデータ保証方法

Publications (1)

Publication Number Publication Date
JP2009009407A true JP2009009407A (ja) 2009-01-15

Family

ID=40162200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007170926A Pending JP2009009407A (ja) 2007-06-28 2007-06-28 暗号機能を備えたストレージシステム及びデータ保証方法

Country Status (2)

Country Link
US (1) US20090006863A1 (ja)
JP (1) JP2009009407A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137622A (ja) * 2013-01-15 2014-07-28 Hitachi Ltd 計算機システム、及び自動検出方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014074A1 (en) 2005-07-21 2007-02-01 Clevx, Llc Memory lock system
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
JP5331323B2 (ja) 2007-09-26 2013-10-30 株式会社日立製作所 ストレージサブシステム及びその制御方法
US9286493B2 (en) * 2009-01-07 2016-03-15 Clevx, Llc Encryption bridge system and method of operation thereof
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
US11593249B2 (en) * 2015-12-23 2023-02-28 Oracle International Corporation Scalable points-to analysis via multiple slicing
WO2019190866A1 (en) 2018-03-26 2019-10-03 Rambus Inc. Command/address channel error detection
US11003372B2 (en) 2018-05-31 2021-05-11 Portworx, Inc. Protecting volume namespaces from corruption in a distributed container orchestrator

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072435A (ja) * 2004-08-31 2006-03-16 Hitachi Ltd ストレージシステムおよびデータ記録方法
US7428642B2 (en) * 2004-10-15 2008-09-23 Hitachi, Ltd. Method and apparatus for data storage
JP4617847B2 (ja) * 2004-11-04 2011-01-26 株式会社日立製作所 情報処理システム及びアクセス方法
JP4698316B2 (ja) * 2005-07-15 2011-06-08 株式会社日立製作所 アクセスパス管理方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137622A (ja) * 2013-01-15 2014-07-28 Hitachi Ltd 計算機システム、及び自動検出方法

Also Published As

Publication number Publication date
US20090006863A1 (en) 2009-01-01

Similar Documents

Publication Publication Date Title
JP2009009407A (ja) 暗号機能を備えたストレージシステム及びデータ保証方法
US6816917B2 (en) Storage system with LUN virtualization
US8621603B2 (en) Methods and structure for managing visibility of devices in a clustered storage system
JP4220887B2 (ja) ディスク装置及びその制御方法
US8274993B2 (en) Fibre channel dynamic zoning
JP4794068B2 (ja) ストレージエリア・ネットワーク管理システム
US7650446B2 (en) Storage system for back-end communications with other storage system
CN102150409B (zh) 安全高性能多级安全数据库系统和方法
WO2011141963A1 (en) Information processing apparatus and data transfer method
CN103793271A (zh) 用于在镜像卷之间进行切换的方法和系统
JP4828155B2 (ja) ストレージシステム
JP2005151562A (ja) 直列アタッチドscsi記憶ネットワークにおける通信のためのシステムおよび方法
US11671396B2 (en) System and methods for message redundancy
JP2006011581A (ja) ストレージシステム及びストレージシステムの制御方法
US10313236B1 (en) Method of flow based services for flash storage
US8527725B2 (en) Active-active remote configuration of a storage system
US7979897B2 (en) System and article of manufacture for bidirectional data transfer
US7519786B2 (en) Storage system, storage access restriction method and computer program product
JP4688542B2 (ja) 計算機システム、ホストコンピュータ及びコピーペア処理方法
KR20070059095A (ko) 통신 네트워크를 통한 데이터 세트 업데이트 시스템, 방법및 장치
JP2008269469A (ja) ストレージシステム及びその管理方法
KR101943899B1 (ko) San 네트워크 환경에서 볼륨을 이용하여 데이터 이동 서비스를 제공하는 시스템
JP2017220267A (ja) ディスクアレイ装置およびそのケーブル誤接続検出方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090220