(57)【要約】【課題】本発明は、業務性能に影響を与えることなく、データの暗号化が可能なストレージ装置を提供する。【解決手段】キャッシュメモリと、前記ライトコマンドに伴うデータを、前記キャッシュメモリに書き込むことを制御する第１の制御部と、前記キャッシュに書き込まれた前記データを前記記憶デバイスに書き込むことを制御する第２の制御部と、前記ライトコマンドに伴うデータを暗号化する暗号化エンジンと、を有し、前記第２の制御部が前記キャッシュメモリから前記データを読み出して前記記憶デバイスに書き込む際に、前記暗号化エンジンが前記暗号化を実行し、暗号化されたデータを前記第２の制御部が前記記憶デバイスに書き込むようにした。【選択図】図１
2008234052.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続され、前記上位装置からのライトコマンドに応答して、記憶デバイスに対するデータの書き込みを制御し、さらに前記上位装置からのリードコマンドに応答して、前記記憶デバイスからのデータの読み込みを制御するストレージ装置であって、
キャッシュメモリと、
前記ライトコマンドに伴うデータを、前記キャッシュメモリに書き込むことを制御する第１の制御部と、
前記キャッシュに書き込まれた前記データを前記記憶デバイスに書き込むことを制御する第２の制御部と、
前記ライトコマンドに伴うデータを暗号化する暗号化エンジンと、
を有し、
前記第２の制御部が前記キャッシュメモリから前記データを読み出して前記記憶デバイスに書き込む際に、前記暗号化エンジンが前記データを暗号化し、暗号化されたデータを前記第２の制御部が前記記憶デバイスに書き込むようにした、ストレージ装置。
【請求項２】
前記第２の制御部が前記記憶デバイスに書き込まれている前記暗号化データを読み出して前記キャッシュメモリに書き込む際に、前記暗号化エンジンは前記暗号化データを復号化し、
前記復号化されたデータが前記キャッシュメモリに書き込まれ、
前記第１の制御部が前記復号化されたデータを読み出して前記上位装置に出力する、請求項１記載のストレージ装置。
【請求項３】
前記上位装置がＣＫＤフォーマットされたフレームを前記第１の制御部に対して出力し、前記暗号化エンジンは、前記ＣＫＤフォーマットされたフレームからデータ部分を認識して、当該データ部分を暗号化する、請求項１記載のストレージ装置。
【請求項４】
前記第２の制御部は前記上位装置からのライトデータが暗号化された後、当該暗号化データからパリティを生成し、前記暗号化データ及びパリティをＲＡＩＤ構成にしたがって、複数ある前記記憶装置に分散して格納する、請求項１記載のストレージ装置。
【請求項５】
前記暗号化エンジンは、前記ホストからのライトアクセスに含まれる制御情報は暗号化されることなく、前記データ部分を暗号化する、請求項１記載のストレージ装置。
【請求項６】
上位装置と記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、
第１のボリュームと、
前記上位装置からのライトデータを前記第１のボリュームに対して格納する第１の制御部と、
前記ライトデータを暗号化する暗号化エンジンと、
第２のボリュームと、
前記暗号化されたライトデータを前記第２のボリュームに対して格納する第２の制御部と、
前記第２のボリュームの前記暗号化されたライトデータを前記第１のボリュームにリストアする第３の制御部と、
を有するストレージ装置。
【請求項７】
前記暗号化エンジンは、
前記ライトデータを第１の暗号キーによって第１の暗号データに暗号化する第１の暗号化制御部と、
前記第１の暗号データを前記第１の暗号キーによって復号化し、復号化後のデータを前記第１の暗号キーとは異なる第２の暗号キーによって第２の暗号データに変換する第２の暗号化制御部と、
を有し、
前記第１の制御部は前記第１の暗号データを前記第１のボリュームに格納し、
前記第２の制御部は前記第２の暗号データを前記第２のボリュームに格納する、請求項６記載のストレージ装置。
【請求項８】
前記第１のボリュームに前記記憶領域の第１の領域を割り当て、前記第２のボリュームに前記記憶領域の第２の領域を割り当てる、パラメータを記憶するメモリを備え、
前記第１の制御部は前記第１の暗号データを前記第１の領域に書き込み、
前記第２の制御部は前記第２の暗号データを前記第２の領域に書き込む、
請求項６記載のストレージ装置。
【請求項９】
前記第３の制御部は前記メモリにアクセスして、前記第１のボリュームに前記記憶領域の第２の領域を割り当て、前記第２のボリュームに前記記憶領域の第１の領域を割り当てる、ように前記パラメータを変更する、請求項８記載のストレージ装置。
【請求項１０】
前記第１のボリューム及び前記第２のボリュームの少なくとも前記第２のボリュームは、仮想容量を持ち、この仮想容量の範囲で前記記憶領域を割り当てて実記憶容量を適宜変更可能な構成を持ったものである、請求項８記載のストレージ装置。
【請求項１１】
前記第３の制御部は、
前記第２のボリュームの前記第２の暗号データが前記第１のボリュームにリストした後、前記第２のボリュームに割り当てられている前記実記憶容量の当該割り当てを解放する、請求項１０記載のストレージ装置。
【請求項１２】
前記第２の暗号化制御部が、前記第１の暗号データを前記第１の暗号キーによって復号化し、復号化後のデータを前記第１の暗号キーとは異なる第２の暗号キーによって第２の暗号データに変換している期間中、前記上位装置からの前記第１のボリュームに対するアクセスを許容する、請求項７記載のストレージ装置。
【請求項１３】
上位装置と記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、
前記上位装置からのライトアクセスを処理するコントローラと、
前記上位装置からのライトデータから暗号データを生成する暗号化部と、
前記ライトデータを暗号化する際に前記暗号化部が使用した暗号キーを記憶するメモリと、
前記暗号データが書き込まれる第１のボリュームと、
前記第１のボリュームに格納されている暗号データを新暗号データでリキー処理し、リキー処理後の暗号データが書き込まれる第２のボリュームと、
を備え、
前記コントローラは、前記リキー処理の期間中前記第１のボリュームに対する前記上位装置からのライトアクセスを受領し、アクセス対象の領域にライトデータが暗号化されてなる暗号データを格納し、前記メモリから前記暗号キーを読み出して、当該暗号キーを用いて前記アクセス対象の領域に格納された前記暗号データを復号化する、ストレージ装置。
【請求項１４】
前記ライトデータが前記新暗号キー又は旧暗号キーの何れかで暗号化され、
前記メモリは前記ライトアクセスがあった前記第１のボリュームの領域について、前記新暗号キー又は旧暗号キーのどちらで暗号化されたかを識別する情報を備える、請求項１２記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ装置に係わり、特に、ホストから送られたデータを暗号化して記憶デバイスに格納し、記憶デバイスに格納された暗号化データを復号化してホストに送信する暗号化エンジンを備えるストレージ装置及びストレージ装置の制御方法に関するものである。
【背景技術】
【０００２】
ホストなどの上位計算機に対して大容量の記憶資源を提供する専用装置として、ストレージ装置が知られている。このストレージ装置は、ストレージサブシステム、或いは記憶制御装置とも呼ばれており、複数の記憶デバイスと、ホストからのライトアクセス又はリードアクセスに応じて、記憶デバイスとホストとの間のデータの入出力を制御するコントローラと、を備えたものとして構成されている。
【０００３】
近年、データに対するセキュリティを確保する要請から、ストレージ装置に書き込まれるデータの機密性を高める必要がある。ストレージ装置に書き込まれるデータを暗号化する方式として、ホスト自身がデータを暗号化する方式、ホストとストレージ装置とを連結するネットワーク上に暗号化エンジンを配置する方式、或いはストレージ装置自体に暗号化エンジンを持たせる方式があった。
【０００４】
ストレージ装置に暗号化エンジンを持たせた形態に係わる従来技術として、例えば、特開平２００６−２２７８３９号公報に記載されたストレージシステムが存在する。
【０００５】
このストレージシステムは、暗号データを別の記憶装置に移動させる際に移動後の同データの解読を容易とし、暗号データの計算方式を別の計算方式に書き換える場合の盗聴や改ざんなどに対するセキュリティを維持すると共に、アクセス性能を向上させることを目的としたもので、前記公報の図３に記載されているように、データ領域１２０を有する記憶装置を備えてホスト計算機からアクセス可能なストレージシステム１００において、暗号データを解読可能な仕組みを備えた記憶装置が同データの移動先に選出されるとデータ移動を実施したり、暗号データの暗号計算に適用される暗号計算方法を装置内部の処理により別の方法に更新して保存し直すことにより、装置や暗号計算方法が陳腐化した場合であっても確実に暗号データを保持し続けることを可能としたことを特徴とするものである。
【特許文献１】特開平２００６−２２７８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そもそも、ストレージ装置に格納されるデータはＲＡＩＤによって複数のハードディスクドライブに分散されているので、ストレージ装置内の情報資源に対する機密性は結果としてある程度保証されていた。
【０００７】
ＲＡＩＤは、データを複数記憶デバイスに分散させているものの、データそのものを機密化している訳ではないので、ストレージ装置に暗号化エンジンを持たせることの意義はあった。
【０００８】
ところが、ストレージ装置に暗号化エンジンを持たせる上で、上位装置からストレージ装置に送信されたデータの暗号化をどのタイミングで行なうべきかなど改善すべき点が多かった。
【０００９】
その他、ストレージ装置の機密性を高めるために、暗号キーに寿命を設け、旧暗号キーから新暗号キーへ定期的に交換するRe-Key（リキー）という技術がある。ところが、リキー実施中は、ストレージ装置の暗号データが２種類以上の暗号キーによって暗号化されているため、ホストはストレージ装置内のデータを読めなくなってしまう。そのため、全データを旧キーで復号化した後、新キーで再暗号化をしなければならなかったが、この間、上位装置のオンライン業務に影響を与えてしまうという問題があった。
【００１０】
そこで、本発明は、業務性能に影響を与えることなく、データの暗号化が可能なストレージ装置を提供することを目的とする。さらに本発明の他の目的は、新暗号キーを用いて旧暗号キーで暗号化されたデータを再暗号化するなどの暗号化処理中でも、上位装置との間のオンライン作業に影響を与えたり、暗号化処理に多くの記憶資源を割り当てなければならないなどの制約を受けないようにしたストレージ装置を提供することにある。
【課題を解決するための手段】
【００１１】
この目的を達成するために、本発明の第１は、上位装置に接続され、前記上位装置からのライトコマンドに応答して、記憶デバイスに対するデータの書き込みを制御し、さらに前記上位装置からのリードコマンドに応答して、前記記憶デバイスからのデータの読み込みを制御するストレージ装置であって、キャッシュメモリと、前記ライトコマンドに伴うデータを、前記キャッシュメモリに書き込むことを制御する第１の制御部と、前記キャッシュに書き込まれた前記データを前記記憶デバイスに書き込むことを制御する第２の制御部と、前記ライトコマンドに伴うデータを暗号化する暗号化エンジンと、を有し、前記第２の制御部が前記キャッシュメモリから前記データを読み出して前記記憶デバイスに書き込む際に、前記暗号化エンジンが前記データを暗号化し、暗号化されたデータを前記第２の制御部が前記記憶デバイスに書き込むようにした、ことを特徴とするものである。
【００１２】
さらに、本発明の第２は、上位装置と記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、第１のボリュームと、前記上位装置からのライトデータを前記第１のボリュームに対して格納する第１の制御部と、前記ライトデータを暗号化する暗号化エンジンと、第２のボリュームと、前記暗号化されたライトデータを前記第２のボリュームに対して格納する第２の制御部と、前記第２のボリュームの前記暗号化されたライトデータを前記第１のボリュームにリストアする第３の制御部と、を有することを特徴とするものである。
【００１３】
さらに、本発明の第３は、上位装置と記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、前記上位装置からのライトアクセスを処理するコントローラと、前記上位装置からのライトデータから暗号データを生成する暗号化部と、前記ライトデータを暗号化する際に前記暗号化部が使用した暗号キーを記憶するメモリと、前記暗号データが書き込まれる第１のボリュームと、前記第１のボリュームに格納されている暗号データを新暗号データでリキー処理し、リキー処理後の暗号データが書き込まれる第２のボリュームと、を備え、前記コントローラは、前記リキー処理の期間中前記第１のボリュームに対する前記上位装置からのライトアクセスを受領し、アクセス対象の領域にライトデータが暗号化されてなる暗号データを格納し、前記メモリから前記暗号キーを読み出して、当該暗号キーを用いて前記アクセス対象の領域に格納された前記暗号データを復号化する、ことを特徴とするものである。
【発明の効果】
【００１４】
以上説明したように、本発明は、業務性能に影響を与えることなく、データの暗号化が可能なストレージ装置を提供することができ、特に、新暗号キーを用いて旧暗号キーで暗号化されたデータを再暗号化するなどの暗号化処理中でも、上位装置との間のオンライン作業に影響を受けたり、暗号化処理に多くの記憶資源を割り当てなければならないなどの制約を受けないようにしたストレージ装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
次に本発明の実施の形態について説明する。図１は、本発明に係わるストレージ装置の一実施形態のハードウエアブロックを示す。ストレージ装置１４はネットワーク１２を介してホスト１０と接続されている。ストレージ装置１４は、チャネル制御部１６と、ディスク制御部２０と、制御情報や管理テーブルが記憶された共有メモリ１８と、ホストから入力されたライトデータ及びホストへ出力されるリードデータを一時記憶するキャッシュメモリ２４と、ライトデータを暗号化し、リードデータを復号化する暗号制御部２６と、チャネル制御部１６、共有メモリ１８、ディスク制御部２０、キャッシュメモリ２４、そして暗号制御部２６と接続され、そして、これら各要素間でのデータ転送を可能にする制御部２８を備えて構成されている。
【００１６】
ストレージ装置１４には、ストレージ装置１４のボリュームに対する制御、共有メモリ１８へのテーブルの設定や更新などの制御を実行する制御端末３０が接続されている。
【００１７】
チャネル制御部１６は、ファイバチャネルプロトコルもしくはインターネットプロトコルを用いてホスト１０との間で通信を行い、ホストからデータ入出力要求を受信してホストとの間でデータの送受信を行う。ディスク制御部２０は、記憶デバイスであるハードディスク駆動装置２２と通信可能に接続され、ハードディスク駆動装置の制御を行なう。ハードディスク駆動装置は記憶デバイスに相当するものであるが、記憶デバイスとしてはハードディスク駆動装置に限定されず、フラッシュメモリなど公知の半導体メモリを使用することもできる。
【００１８】
ストレージ装置１４は暗号制御部２６を備えているために、図２に示すように、ホスト１０から送られる暗号化処理されていないデータがストレージ装置１４内で暗号化されてハードディスク駆動装置１４に記憶される。このように、ホスト１０は暗号化を意識することなく業務を遂行することができる。なお、暗号化されていないデータを以後平文と主に呼称し、暗号キーによって暗号化されたデータを以後暗号文と主に呼称する。
【００１９】
図３は、ホストとストレージ装置内の論理ボリュームとの対応関係に着目したブロック図である。ストレージ装置１４はチャネルインターフェース３２を介してホスト１０と接続されている。チャネル制御部１６のチャネルコマンド制御プログラム１６Ａは、ホストからのコマンドを解析してデータの送受信を行なう。
【００２０】
暗号制御部としての暗号化エンジン２６は、暗号化制御プログラムを利用して、キャッシュメモリ２４から平文が記憶デバイス２２にデステージングされるときにデータの暗号化を行い、キャッシュメモリ２４に記憶デバイスからステージングされるときに暗号文の復号化を行なう。
【００２１】
ディスク制御部２０のディスク制御プログラムはハードディスク駆動装置２２へのデータの書き込み、或いはハードディスク駆動装置２２からのデータの読み込みの制御を行なう。
【００２２】
符号１はホストと論理ボリュームとの関係を示す第１の形態である。ホスト１０は論理ボリューム（ＬＵ）３４を認識してストレージ装置１４にアクセスする。符号３６は、ストレージ装置１４がＬＵ３４に対応するものとして認識可能な論理ボリューム（ＬＤＥＶ）である。
【００２３】
チャネルコマンド制御プログラム１６Ａ及びディスク制御プログラム２０Ａは、ＬＵ３４に対するホストＩＯのアクセスをＬＤＥＶ３６へのアクセスに変換して、ＬＤＥＶ３６に割り当てられている記憶領域にホストＩＯがアクセスできるようにしている。
【００２４】
ＬＤＥＶ３６にはハードディスク駆動装置２２から物理的な記憶領域が割り当てられている。ＬＤＥＶ３６に割り当てられる記憶領域は複数のディスク装置に分散されて、ＲＡＩＤ方式によって構成されている。ＲＡＩＤグループ３７とは、ＲＡＩＤ方式によって構成され複数のディスク装置に跨って存在する物理的記憶領域の集合体をいうもので、ＬＤＥＶには一つ又は複数のＲＡＩＤグループが対応する。
【００２５】
ホスト１０からＬＵ３４へアクセスは平文に基づくものであり、ストレージ装置１４は平文を暗号化してＬＤＥＶ３６に書き込む。ホストは暗号化を意識することなくホストに対してデータの入出力のためのアクセスをすることができるために、ホストは暗号化のための負荷を蒙ることなく効率的に業務を進めることができる。
【００２６】
符号２は、論理ボリュームへの実記憶領域の割り当てが符号１のものとは異なる形態を示したものである。１の形態では、ホスト１０からのアクセスに対応できるように、ＬＤＥＶには最初から固定的に比較的大きな容量の記憶領域が割り当てられている。
【００２７】
これに対して、２の形態のものでは、仮想ＬＵ３８及び仮想ＬＤＥＶ４０を利用したものであり、これら論理ボリュームは実の記憶領域が固定的には割り当てられていない仮想的なものである。ストレージ装置はホスからのライトアクセスに応じて、仮想ＬＤＥＶに実の記憶領域を順次割り当てる。すなわち、仮想ＬＤＥＶ４０には実のＬＤＥＶ３６のように当初から固定的に大きな容量の記憶領域が割り当てられているわけではなく、ホストからのライトアクセスなどの仮想ＬＤＥＶに対するアクセスに応じて順次割り当てられる記憶領域の容量が増加するものであるために、ストレージ装置の記憶資源を有効利用することができる。なお、出願人はこの方式をＡＯＵ（Allocation On Use）と呼称している。このＡＯＵは例えば特願2006-240031号に係わる明細書及び図面に記載さている。
【００２８】
ストレージ装置のユーザは、仮想ボリュームへの実記憶容量の割当や割当からの解放を自由に行なうために、限られた記憶資源を有効に利用することが出来る。
【００２９】
また、仮想ＬＵ３８及び仮想ＬＤＥＶ４０は見かけ上の容量をもった論理ボリュームとして振舞うために、ホスト１０は仮想ＬＵ３８を、十分な実容量を持った一般のＬＵ３４と同じように正しく認識し、また、ストレージ装置内のレプリケーションプログラム、即ちストレージ装置内のボリューム間コピーを実現するものも、仮想ボリュームを十分な実記憶容量を持ったボリュームとして正しく認識することができる。
【００３０】
ストレージ装置１４のチャネル制御部１６は、仮想ＬＵ３８又は仮想ＬＤＥＶ４０に、その都度最適な記憶容量を割り当て、不要になった段階で余分な記憶領域を仮想ボリュームから解放するようにしている。符号４１は仮想ＬＤＥＶ４０に対して割り当てられるべき、実の記憶領域を持ったボリューム（ＬＤＥＶ）である。このボリュームはプール４２という概念で管理されている。
【００３１】
ホスト１０からＬＵ３４又は仮想ＬＵ３８に対するアクセスは、暗号化されていないデータに基づくものであり、ストレージ装置の暗号化エンジン２６の暗号化プログラム２６Ａが、このデータを暗号化して記憶領域に格納する。
【００３２】
符号１で示す方式、そして符号２で示す方式でも、ハードディスク駆動装置の記憶領域へのライトデータの格納、および、記憶領域からのリードデータの読み込みはキャッシュメモリ２４を介して行なわれる。
【００３３】
そこで、ストレージ装置１４の暗号化制御プログラム２６Ａは、暗号文がキャッシュメモリ２４にステージングされるタイミングで復号化を行い、及び平文がキャッシュメモリからデステージングされるタイミングで暗号化を行なう。
【００３４】
一方、データをキャッシュ以外の部分で暗号化或いは復号化するものである、例えば、ホストからキャッシュにデータを書き込む前に暗号化する場合、又は、ディスクにデータを書き込んだ後にディスクのデータを暗号化する場合だと、暗号化に伴うオーバヘッドの分だけホスト側に性能低下のおそれがある。また、後者であるとそれぞれのディスクに対して暗号化エンジンを持たないならない。
【００３５】
図２７は、ＲＡＩＤ５によって構成されたＲＡＩＤグループ３７へホストからライトＩ／Ｏがあった場合のブロック図である。ＲＡＩＤ５は３データ及び１パリティから構成され、データ及びパリティが各ハードディスクドライブに分散されている。
【００３６】
ホスト１０はＬＤＥＶ３６（仮想ＬＤＥＶ４０でも良い。）に平文２８２を送信すると、ＤＫＡ２８０は平文データ（Ａ〜Ｆ）を暗号文Ａ'〜Ｆ'に暗号化し、ブロック単位に順次複数のＰＤＥＶ（ハードディスク駆動装置２２の実記憶領域からなる実ボリューム）へ暗号文を書き込む。ＤＫＡは複数のブロックの暗号データからパリティデータを作成、これを任意のＰＤＥＶへ書き込んでいる。Ｐ０はデータＡ'，Ｂ'，及びＣ'のパリティであり、Ｐ１はデータＥ'，Ｆ'，及びＤ'のパリティである。なお、ＤＫＡはホストＩ/ＯをＰＤＥＶに繋ぐストレージ装置内のコントローラである。ストレージ装置がパリティを暗号化後のデータに基づいて生成するために、一つのＰＤＥＶが故障しても暗号データを読み出すことが出来る。
【００３７】
図２８はメインフレーム系ホストからストレージ装置に発行されるフレームについて説明するものである。フレームはＣＫＤ（Count Key Data）フォーマットであり、ストレージ装置のチャネルＩ/Ｆ３２上にはＣＫＤフォーマットのフレームが存在している。チャネル制御部はこのＣＫＤフォーマットをＦＢＡ（Fixed Block Architecture）変換してキャッシュメモリに書き込む。さらに、チャネル制御部及びディスク制御部はキャッシュメモリのデータを暗号化し、さらにデータからエラー訂正コード（ＥＣＣ）を生成し、これらをＲＡＩＤレベルに基づいて複数の記憶デバイス（ＨＤＤ）に書き込む。
【００３８】
この一連の過程で、暗号化されるのはデータの部分であり、レコード位置情報（Ｔ）、データ保証コード（ＬＡ，ＬＲＣ）、境界調整用データ（ＰＡＤ）などの制御情報は暗号化されない。
【００３９】
また、ストレージ装置がチャネルＩ／Ｆに入る前のデータを暗号化してしまうと、ＣＫＤフォーマットをＦＢＡフォーマットに変換してキャッシュメモリに格納することが出来なくなるので、メインフレーム系のホストでは、ストレージ装置側での暗号が必須となる。
【００４０】
図４は、ストレージ装置がＬＤＥＶを管理し、かつ、ＬＤＥＶに格納されるデータを暗号化するための複数の制御テーブルを示したものである。この制御テーブルは制御端末３０によってストレージ装置の共有メモリに対して設定される。図４の制御テーブルは、図３において符号２として説明された、仮想ＬＤＥＶに対して物理的な記憶領域を持った実ＬＤＥＶを割り当てる方式に対するものである。なお、この実ＬＤＥＶをプールＬＤＥＶと呼ぶこととする。
【００４１】
Ａは暗号グループ管理テーブルの一例である。暗号グループ毎に、ＬＤＥＶ番号、現在有効な暗号キー(カレントキー)、及び、一世代前の暗号キー（バックアップキー）が定義されている。暗号グループとは同一キーで暗号化されたＬＤＥＶの集合である。カレントキーがリキーでの新暗号キーになり、バックアップキーがリキーでの旧暗号キーに相当する。Ａにおいて、♯が付されてい  るのは仮想ＬＤＥＶであることを示している。新暗号キー及び旧暗号キーは暗号グループ番号毎に設定可能である。
【００４２】
Ｂは仮想ＬＤＥＶ管理テーブルの一例であり、仮想ＬＤＥＶ番号毎に暗号化ビット、プール番号、プールＬＤＥＶ番号リストが定義されている。「１」として識別された仮想ＬＤＥＶには、プール番号１のプールＬＤＥＶ1、２が割り当てられている。仮想ビットが「１」であることから、プールＬＤＥＶ１，２は、Ａに示すように、カレントキー（Ｋｅｙ２）によって暗号化されている。
【００４３】
Ｃはマッピング管理テーブルの一例である。番号１の仮想ＬＤＥＶについて、仮想ＬＤＥＶの仮想アドレス“１”に対して番号１のプールＬＤＥＶの実アドレス０がマッピングされている。実アドレスとは、ハードディスク駆動装置の実記憶領域の複数のトラックに対応した論理アドレスである。
【００４４】
ＤはＬＤＥＶ管理テーブルの一例である。暗号化ビットの「０」は対応するＬＤＥＶが暗号化されていないことを示している。反対に暗号化ビットの「１」は、暗号化されていることを示している。プール使用ビットの「１」とは対応するＬＤＥＶがプールを使用する仮想ＬＤＥＶであることを示し、プール使用ビットが「０」とはプールに属さないＬＤＥＶであることを示している。例えば図３において方式１に係るＬＤＥＶ３６はプール使用ビットが“０”のＬＤＥＶである。
【００４５】
Ｅはプール管理テーブルの一例である。番号１のプールＬＤＥＶのアドレスが仮想ＬＤＥＶにどのように割り当てられているかを管理するものである。ビットがセットされている、アドレス番号０,１に係る論理アドレスは仮想ＬＤＥＶに割り当てられていることを示している。割当ビットが「１」とは割当があることを示し、反対に割当ビットが「０」とは割当がないことを示している。
【００４６】
図２９は暗号グループ管理テーブル（図４（Ａ））を作成するフローチャートである。前提として、暗号グループ番号が暗号グループ管理テーブルに登録済みであり、正ボリューム番号として暗号化するデータを格納したＬＤＥＶ番号が指定され、正ボリュームと副ボリュームとの容量は同一である。なお、ボリュームが仮想ボリュームの場合には見かけの容量が同じであればよい。
【００４７】
図２９において、ストレージ装置がホストから暗号作成コマンドを受領すると（２９００）、ストレージ装置のコントローラ（ＤＫＣ）は入力パラメタ（暗号グループ番号、正LU番号、副LU番号、コピーペース）を取得する（２９０２）。次いで、ＤＫＣは入力パラメータが正しいか否かを判断する。この判断が肯定判定された場合は、ＤＫＣは暗号グループが暗号管理テーブルに登録されているか否かをチェックする（２９０６）。次いでホスト又は制御端末はＤＫＣにペアボリュームを作成するコマンドを発行する（２９０８）。
【００４８】
ＤＫＣはペアの作成が正常に終了したか否かをチェックし（２９１０）、これを肯定判定した場合には、暗号グループ管理テーブルのLDEV番号リストに副LDEV番号を追加して終了する（２９１２）。図５は、仮想ＬＤＥＶ４０に対するプールＬＤＥＶのマッピングの様子を説明するための機能ブロック図であり、図４（Ｃ）のマッピング管理テーブルに示すように、番号１の仮想ＬＤＥＶの仮想アドレス１にプールＬＤＥＶ番号１の実アドレス０が、仮想アドレス４に実アドレス１がマッピングされていることを示している。
【００４９】
即ち、ホスト１０が仮想ＬＤＥＶの仮想アドレス１及び４に対して発行した平文が暗号化され、プールＬＤＥＶ１の実アドレス０と１に格納される。なお、仮想ＬＤＥＶは実記憶領域を備えていないためにそのアドレスを仮想アドレスといい、プールＬＤＥＶは実記憶領域を備えているために、実アドレスという。
【００５０】
図６はホスト１４から発行されたライトＩＯに対して、ストレージ装置（記憶装置）が実行するフローチャートである。ホスト１０がライトコマンドをストレージ装置１４に対して発行すると(６００)、チャネル制御部１６はライトコマンド受領してこれを解析する(６０２)。
【００５１】
チャネル制御部１６がライトコマンドのアクセス対象のＬＵが仮想ＬＵか否かを判定する(６０４)。ストレージ装置の共有メモリ１８には、図４に示すように、全てのＬＵについて、記憶領域を有するＬＤＥＶが対応する実ＬＵか、仮想ＬＤＥＶが割り当てられた仮想ＬＵかの属性を持った管理テーブルが格納されている。
【００５２】
チャネル制御部は仮想ＬＵを判定した場合には、ホストのライトコマンドで指示されたアドレスを、仮想ＬＤＥＶの仮想アドレスに変換する(６０６)。次いで、チャネル制御部は変換されたアドレスが図４のＣに係るマッピング管理テーブルに登録されているかを判定する(６０８)。チャネル制御部がこの判断を肯定した場合には、図４のＣに係るマッピング管理テーブルに基づいて、変換したアドレスをプールＬＤＥＶの実アドレスにマッピングする（６１４）。
【００５３】
チャネル制御部は、図４のＤで示したＬＤＥＶ管理テーブルに基づいて、ＬＤＥＶについての暗号化ビットをチェックし、暗号ビットが“1”の場合には、ＬＤＥＶに格納されるデータは暗号化されるべきものとして判定し、暗号化プログラム２６Ａは、図４のＡに係る管理テーブルを参照してカレント暗号キーを共有メモリの暗号キー記録領域から読み出してライトデータを暗号化する（６１８）。
【００５４】
暗号化が終了した後、或いは暗号ビットが“０”の場合、ディスク制御部２０はＬＵに対応するＬＤＥＶにライトを実行し、チャネル制御部１６はホストに実行結果を報告する(６２０)。
【００５５】
ステップ６０８において、ステップ６０６で変換した仮想アドレスがマッピング管理テーブルに登録されていないと、チャネル制御部が判定した場合は、仮想アドレスとこれにマッピングされるための実アドレスをマッピング管理テーブルに登録するための処理を行う(６１０)。
【００５６】
次いで、チャネル制御部が、仮想アドレスと実アドレスがマッピング管理テーブルに登録できたか否かを判断し(６１２)、この登録が無い場合には仮想アドレスに実記憶領域をマッピングできずライトコマンドを実行できないものとして、エラーをホストに報告する（６２２）。
【００５７】
一方、チャネル制御部が、ライトコマンドが発行された対象ＬＵが仮想ＬＵでない、すなわち記憶領域を有するＬＤＥＶが割り当てられた実ＬＵであると判定した場合は、ステップ６０４から６１６にスキップして、ＬＤＥＶに対してライト処理を実行する（６２０）。
【００５８】
図２５は、図６のステップ６１８及び６２０を詳しく説明するフローチャートである。図６には記載していないが、ストレージ装置がライトコマンドを受領すると、キャッシュメモリに平文を上書きし（２５００）、次いで、ホストにライトを完了した報告を行なう（２５０２）。既述のように、ストレージ装置の暗号化はキャッシュメモリに書き込まれた平文に対して行なうものであり、この動作がステップ２５０４-２５１２に示されている。
【００５９】
ストレージ装置のチャネル制御部は、暗号グループ管理テーブルよりLDEV番号リストを取得し、該ＬＤＥＶ番号が登録されている暗号グループのカレントキーを取得する（２５０４）。次いで、暗号化エンジンがこのカレントキーに基づいて平文をブロック単位に暗号化し、暗号文をキャッシュメモリのワーク領域に書き込む（２５０６）。
【００６０】
次いで、ディスク制御プログラムは、キャッシュメモリのワーク領域上のデータをＬＤＥＶに書き込み（２５０８）、さらにキャッシュメモリのワーク領域を解放する（２５１２）。
【００６１】
図７は図６のステップ６１０を詳しく説明するフローチャートである。チャネル制御部は、図４のＢに係る仮想ＬＤＥＶ管理テーブルに基づいて、仮想ＬＤＥＶに対応するプールＬＤＥＶ番号のリストを取得する（７００）。チャネル制御部は、プールＬＤＥＶ番号リストの最初のプールＬＤＥＶ番号を取得する(７０２)。次いで、最初のプールＬＤＥＶについて、図４のＥのプール管理テーブルを参照して、最初のアドレス番号を取得する(７０４)。図４のＥのプール管理テーブルの場合は「０」である。次いで、取得したアドレス番号についての割当ビットをチェックする（７０６）。
【００６２】
割当ビットが「０」の場合は、この割当ビットに対応するアドレスが、仮想ＬＤＥＶに割り当てられていないアドレスと判定して、チャネル制御部はこの割当ビットに「１」を上書きする(７０８)。次いでチャネル制御部は、このアドレスを実アドレスとして、さらに、仮想アドレス番号、そしてプールＬＤＥＶ番号を図４のＣに係るマッピング管理テーブルに登録(７１０)して、一連の処理を正常に終了する。
【００６３】
一方、ステップ７０６の判断で割当ビットが「１」、即ち、ＬＤＥＶのアドレス番号について既に仮想ＬＤＥＶの仮想アドレスに割り当てられている場合には、他のアドレスを探すためにアドレス番号をインクリメントして(７１２)して、ステップ７０６の処理を再実行する。全てのアドレス番号についてチェックしても空きアドレスを発見できない場合には(７１４)、プールＬＤＥＶ番号をインクリメントして（７１６）、プルールＬＤＥＶ番号リストで特定される次の番号のプールＬＤＥＶについて、空きアドレスの検出を実行する。
【００６４】
ステップ７１６までの処理を行って全てのプールＬＤＥＶについて空きアドレスを発見できない場合には（７１８）、チャネル制御部はホストにエラーを通知して処理を終了する。この場合、ユーザは管理端末を操作して、仮想ＬＤＥＶに対して新たなＬＤＥＶを作成の上割り当てることで対応しても良い。
【００６５】
図８はストレージ装置がホストからのリードコマンドに基づいて、記憶領域に格納されている暗号文を暗号キーで復号化して平文とし、これをホストに返す一連の処理を示したフローチャートである。ホストはストレージ装置に対してリードコマンドを発行する(８００)。チャネル制御部がリードコマンドを受領すると（８０２）、リードコマンドの対象となったＬＵが仮想ＬＵか否かを判定する(８０４)。
【００６６】
実ＬＵである場合には、チャネル制御部は、このＬＵに対応するＬＤＥＶに対してリードコマンドを実行する(８１４)。即ち、チャネル制御部は、ＬＤＥＶ管理テーブルの暗号化ビットをチェックし(８１６)、暗号化ビットが“０”の場合は、ＬＤＥＶが暗号化されていないボリュームであると判定して、ディスク制御部はデータを読み出し、チャネル制御部が読み出したデータをホストに報告する(８２０)。
【００６７】
一方、ステップ８１６において、暗号化ビットが“１”であることが判定された場合には、暗号化エンジンは、暗号グループ管理テーブルのカレント暗号キーでリードコマンドの対象となったデータを復号化する(８１８)。
【００６８】
一方、ステップ８０４において、リードコマンドの対象となったＬＵが仮想ＬＵの場合は、ストレージ装置は、仮想ＬＵに対してマッピングされた実アドレスを認識して、実アドレスからリードコマンドの対象となったデータを読み出す必要がある。そこで、チャネル制御部は、ホストから指示されたアドレスを、仮想ＬＵの仮想アドレスに変換する(８０６）。
【００６９】
次いで、チャネル制御部は、変換したアドレスがマッピング管理テーブルに登録済みであるか否かをチェックし（８０８）、これが肯定判定された場合にはマッピング管理テーブルに基づいて、変換したアドレスからプールＬＤＥＶ番号を認識し、次いで対応する実アドレスを取得する(８１２)。そして、この実アドレスを知ったディスク制御部はこの実アドレスに対してリードコマンドを実行する（８１４）。
【００７０】
一方、ステップ８０８において、仮想アドレスがマッピング管理テーブルに登録されていない場合には、リードされるべきデータがないものとして、チャネル制御部は、ホストにＮＵＬＬデータを返答する（８１０）。
【００７１】
図２６は図８のステップ８１８の詳細を説明するフローチャートである。図８には説明していないが、チャネル制御部リードコマンドを受領すると（８０２）、チャネル制御部がキャッシュメモリ上にリードデータがあるか否かをチェックし（２６００）、肯定判定するとホストにリードデータを報告する（２６０４）。一方、否定判定すると、リードデータが格納されるべきワーク領域を設定する（２６０２）。
【００７２】
次にチャネル制御部はＬＤＥＶ管理テーブルの暗号化ビットをチェックし、暗号化ビットが“１”の場合には、暗号グループ管理テーブルよりＬＤＥＶ番号リストを取得し、該ＬＤＥＶ番号が登録されている暗号グループのカレントキーを取得する（２６０６）。次いで、ディスク制御部は、ＬＤＥＶに格納されている暗号文をキャッシュメモリのワーク領域に読み出す（２６０８）。次いで、暗号化エンジンは、暗号文をブロック単位に復号化し、復号化した平文をキャッシュメモリに書き込む（２６１０）。次いで、チャネル制御部はホストにリードデータを報告する（８２０）。
【００７３】
次に、ストレージ装置の暗号化機能の詳細を図９に基づいて説明する。ホスト１０は仮想ＬＵ１(３８)に対して平文での書き込み要求を発行する。ストレージ装置の暗号化エンジンは、仮想ＬＵ１(３８)に対して発行された平文データを暗号キーＡで暗号化し、暗号文を仮想ＬＤＥＶ１(４０)に対して発行する。仮想ＬＤＥＶ１にはプール４２のＬＤＥＶが割り当てられているので、実際には暗号文はプールＬＤＥＶに記憶される。
【００７４】
この状態で、暗号キーが交換されるリキー処理時に、チャネル制御部１６のボリュームペア制御プログラム１６Ｂが仮想ＬＤＥＶ１(４０)とペアになる副ボリューム（仮想ＬＤＥＶ２（４０Ａ））を作成する。さらに、暗号化エンジンは、正ボリュームとしての仮想ＬＤＥＶ１（４０）の暗号文を暗号キーＡで復号化し、ディスク制御部は、この復号化されたデータを新たな暗号キーＢで暗号化して仮想ＬＤＥＶ２(４０Ａ)の記憶領域に格納する。次いで、ディスク制御部は正ボリューム４０の全暗号文についてリキー処理が終わった後に、副ボリューム４０Ａの暗号文を正ボリューム４０に対してリストアする。
【００７５】
このように、論理ボリュームに対するリキー処理を行うに際して、正副のボリュームペアを利用することにより、論理ボリュームが２種類の暗号キーによって暗号化されなくなり、リキー処理期間中ホストからの正ボリュームへのアクセスを継続することができるので、この間ホストの業務を妨害するおそれはない。
【００７６】
リキー処理の過程の一例が図１１に示されている。図１１において正ボリューム（ＶＯＬ）は図９の仮想ＬＤＥＶ１であり、この仮想ＬＤＥＶ１に割り当てられた記憶領域には旧暗号キーで暗号化された旧データが格納されている。図３０はリキー処理の際の暗号データ変換動作の概要を説明するフローチャートである。ストレージ装置のＤＫＣがホストなどから、リキー処理のスタートを意味する、暗号データ変換コマンドを受領すると（３０００）、入力パラメータの一つであるボリュームペア番号を取得する（３００２）。次いで入力パラメータが正しいか否かをチェックして（３００４）、これを肯定判定するとペア管理テーブルのペアステータスが“ＰＡＩＲ”か否かをチェックする（３００６）。
【００７７】
“ＰＡＩＲ”の場合には、旧暗号キーによる暗号文を新暗号キーによる暗号文に変換するためのボリュームペアが存在するとして暗号化変換処理を行い、暗号変換処理終了後ホストはペア分割コマンドを発行し（３００８）、高速リストアコマンドを発行し（３０１０）、次いでペア削除コマンドを発行する（３０１２）。以下内容を図１１にしたがって詳しく説明する。
【００７８】
リキー処理の第１の段階で、ユーザはボリュームペア制御プログラムに、リキー処理、即ちデータ変換準備指示を発行する。これにより、二つの正副ボリューム間のペアステータスが“ＳＩＭＰＬＥＸ”から“ＣＯＰＹ”に変更される。
【００７９】
“ＳＩＭＰＬＥＸ”とはペアが定義されていない状態に対応しており、“ＣＯＰＹ”とは、正ボリュームの暗号文が旧暗号キーで複合化されて平文に変換され、この平文が新暗号キーによって再度暗号化されこれが副ボリュームに格納されることに対応している。そのために、ボリュームペア制御プログラムは、正ボリュームに対して副ボリュームを作成する。
【００８０】
この副ボリュームが図９の仮想ＬＤＥＶ２である。ペアステータスとは後述のペア管理テーブルにおいて設定される制御コードである。ボリュームペア制御プログラムは、ペアステータスに基づいてボリュームペア間における各種の制御を行なう。
【００８１】
次いで、第２の段階では、二つのボリューム間のペアステータスが“ “ＣＯＰＹ”からコピーが完了した“ＰＡＩＲ”に変更される。この間、ディスク制御部は仮想ＬＤＥＶ１の記憶領域から決められたブロック単位で暗号データを読み出し、暗号化エンジンが読み出したデータについて旧暗号キー(暗号キーＡ)を使用して復号化し、次いで新たな暗号キー(暗号キーＢ)で再度暗号化して、暗号化したデータをディスク制御プログラムが仮想ＬＤＥＶ２に対して格納する。ユーザがボリュームペア制御プログラムに進歩状況確認のコマンドを発行すると、ボリュームペア制御プログラムは、ユーザに対してデータ変換準備完了を報知する。
【００８２】
次いで、ボリュームペア制御プログラムは、正ボリュームの全ての暗号文について複合化及び再暗号化が終了すると、副ボリュームのデータイメージを固定するため、第３の段階で副ボリュームである仮想ＬＤＥＶ２を正ボリュームである仮想ＬＤＥＶ１からペア分割する。“ＰＳＵＳ”はオペレーションによってコピーが中断される状態である。
【００８３】
次いで、リキー処理の第４の段階で、ボリュームペア制御プログラムは、副ボリュームの暗号文を正ボリュームにリストアする。この間、ペアステータスは、“ＰＳＵＳ”→“ＲＥＳＴ”→“ＰＳＵＳ”と変更される。“ＲＥＳＴ”とは正副ボリューム間でリストアが実行されていることを示している。
【００８４】
さらに第５の段階で、副ボリュームを正ボリュームとのペアから削除して（“ＰＳＵＳ”→“ＳＩＭＰＬＥＸ”）、副ボリュームに割り当てられているプールＬＤＥＶを解放する。ペア分割からペア削除までは、ホストからの正ボリュームに対するＩＯは停止される。但し、ペア分割からリストアは高速で行われるために、この間のホストからの正ボリュームに対するアクセスはエラーではなくリトライ処理される。
【００８５】
リキー処理期間中のホストからのデータは正ボリューム及び副ボリュームの双方に記録される。正ボリュームに対するライトアクセスは旧暗号キー又は新暗号キーによって暗号文に変換され、副ボリュームに対するライトアクセスは新暗号キーによって暗号文暗号される。
【００８６】
図１０はペア管理テーブルの一例を示すものであり、ストレージ装置の共有メモリに記憶されている。図１０のＡで示す、ペア管理テーブルには、ペア番号毎に、正ボリュームのＬＤＥＶ番号と、正ボリュームとペアとなる副ボリュームのＬＤＥＶ番号と、正副ボリュームのペアのステータスが登録されている。ペア番号１には、番号♯１からなる仮想ＬＤＥＶが正ボリュームとなり、♯３からなる仮想ＬＤＥＶが副ボリュームとなり、両ボリューム間のペアステータスが“ＣＯＰＹ”であることが登録されている。
【００８７】
なお、ペアステータスが“ＰＳＵＥ”とは、障害が発生したことによってコピーが中断される状態である。ペア管理テーブルＡにおいて、ペア番号２は正ＬＤＥＶ番号及び副ＬＤＥＶ番号とも未定義であり、ペアステータスがペア未定義の状態にあることを示している。
【００８８】
Ｂは仮想ＬＤＥＶ管理テーブルの一例であり、仮想ＬＤＥＶ番号で特定される各仮想ＬＤＥＶについて、暗号化されたボリュームであるか否かを示す暗号ビットと、仮想ＬＤＥＶに割り当てられるプール番号と、プールＬＤＥＶ番号のリストと、そして、仮想ＬＤＥＶのボリュームステータスとの対応が示されている。ボリュームステータスの“ＰＶＯＬ”は正ボリュームを示しており、“ＳＶＯＬ”は副ボリュームを示しており、ＳＩＭＰＬＥＸとはボリューム属性が定義されていないことを示している。
【００８９】
Ｃはマッピング管理テーブルの一例であり、マッピング管理テーブルには、仮想ＬＤＥＶ番号が１の仮想アドレスに対応する、プールＬＤＥＶの番号と、プールＬＤＥＶの実アドレスと、コピーステータスとが対応して登録されている。
【００９０】
図１２は正ボリュームから副ボリュームへのコピーを管理するテーブルである。Ａはペア番号と、このペア番号に属する正ボリュームについてのコピーステータスを管理するテーブルである。Ａのテーブルは、図１０のＡで示されたペア管理テーブルのペア番号１に係るプールＬＤＥＶ番号１のプールＬＤＥＶについて、仮想ＬＤＥＶ番号が３に係る副ボリュームへのコピーの進捗度が、実アドレスが“０”の領域の“２１”のトラック番号まで進んでいること、コピーの速度であるコピーペースが“Ｍｅｄｉｕｍ（中速）”であり、正ボリュームと副ボリュームとのペア一致度、即ち、正ボリュームの全暗号データ量の２２％が新暗号キーで変換されて副ボリュームに格納されていることを示している。コピーペースには、“Ｆａｓｔｅｒ”(高速)、“Ｌｏｗ”（低速）もある。
【００９１】
図１２のＢは、正ボリュームに割り当てられる記憶領域（プールＬＤＥＶ）の各トラックについて、副ボリュームとの間の差分を管理するテーブルである。正ボリュームの各実アドレスのトラックに対応して、差分ポインタと更新ポインタとが設定されている。差分ポインタは差分ビットマップテーブルに対応している。各ビットは各トラック番号に対応している。正ボリュームから副ボリュームへのデータのコピーが終了すると、コピーが終了したトラックに対応するビットに正副ボリューム間で差があることを示すビット“1”が正副ボリューム間で差が無いこと示すビット“０”に書き換えられる。正副ボリューム間でコピーを行う場合には最初に差分ビットマップテーブルの全ビットに“１”が設定されている。
【００９２】
更新ポインタには更新ビットマップテーブルが対応している。正ボリュームのある特定のトラックにホストからのライトアクセスがあった場合には、このトラックに対応するビットに更新があったことを示すビット“１”が設定される。
【００９３】
図１３は図１０のペア管理テーブルに基づいて、仮想ＬＤＥＶ１（４０）から仮想ＬＤＥＶ２（４０Ａ）へのコピーＣ１、即ち、新暗号キーを用いて旧暗号キーで暗号化されたデータの再暗号化処理の動作について説明する。
【００９４】
図１０のＣに基づいて、ストレージ装置は仮想ＬＤＥＶ１の仮想アドレス“１”にプールＬＤＥＶ１の実アドレス０を対応させ、仮想ＬＤＥＶ１の仮想アドレス“４”にプールＬＤＥＶ１の実アドレス１を対応させる。
【００９５】
さらに、図１３のように、仮想ＬＤＥＶ２の仮想アドレス“１”にプールＬＤＥＶ１の実アドレス“２”を割り当て、仮想ＬＤＥＶ２の仮想アドレス“４”にプールＬＤＥＶ１の実アドレス“３”を割り当てている。
【００９６】
したがって、プールＬＤＥＶ１の実アドレス“０”と実アドレス“１”に、旧暗号キーで暗号化した暗号文が記憶されている。さらにプールＬＤＥＶ１の実アドレス“２”及び“３”に新暗号キーで暗号化した暗号文が記憶されている。
【００９７】
図１４は、仮想ＬＤＥＶ２の新暗号キーで暗号化されたデータをチャネル制御部が、仮想ＬＤＥＶ１にリストアする処理を説明するブロック図である。このリストアは、マッピング管理テーブルの仮想ＬＤＥＶ１に対するマッピング情報と、マッピング管理テーブルの仮想ＬＤＥＶ２に対するマッピング情報とを入れ替えるだけで高速に達成される。
【００９８】
マッピング情報とは、図１０のＣに示すように、仮想ＬＤＥＶの仮想アドレスに対するプールＬＤＥＶ番号と、実アドレスである。図１４に示すように、プールＬＤＥＶ１の両方の仮想ＬＤＥＶそれぞれに対するマッピング情報相互にを入れ替えることにより、仮想ＬＤＥＶ１のプールＬＤＥＶ１の実アドレスに対するマッピングが、実アドレス“０”と“１”から“２”と“３”に変更される。仮想ＬＤＥＶ２のプールＬＤＥＶ１の実アドレスに対するマッピングが、実アドレス“２”と“３”から“１”と“２”に変更される。
【００９９】
プールＬＤＥＶ１のアドレス“２”及び“３”には、新暗号キーで暗号化されたデータが格納されているために、リストアの結果新暗号キーで暗号化されたデータが仮想ＬＤＥＶ１に対応づけられる。このリストアはボリューム間のコピーを伴わず、制御メモリ内でマッピングデータ同士を交換するだけであるので高速に達成される。
【０１００】
図１５は、ストレージ装置がリキー処理中にホストから書き込みアクセスを受けた場合に正ボリューム（仮想ＬＤＥＶ１）と副ボリューム（仮想ＬＤＥＶ２）にデータを二重書きする処理を説明するフローチャートである。
【０１０１】
ホストがストレージ装置にライトコマンドを発行する（１５００）と、ストレージ装置のチャネル制御部はライトコマンドを受領する（１５０２）。次いで、チャネル制御部はライトコマンドの対象となったＬＵが仮想ＬＵか否かを判定する（１５０４）。
【０１０２】
仮想ＬＵであることが判定されると、チャネル制御部はホストから指示されたアドレスを仮想ＬＤＥＶの仮想アドレスに変換する（１５０６）。次いで、チャネル制御部はマッピング管理用テーブルに仮想アドレスが登録ずみであるか否かを判定する（１５０７）。
【０１０３】
登録済みである場合にはチャネル制御部は、マッピング管理テーブルにしたがって仮想アドレスに対応するプールＬＤＥＶ番号のボリュームの実アドレスをマッピングする(１５０８)。次いで、チャネル制御部はペア管理テーブルのペアステータスをチェックして(１５０９)、ペアステータスが“REST”(リストア)の場合にはホストにエラーを返す(１５１０)。リストアの最中にホストＩＯを実行すると、正ボリュームに対するホストＩＯとリストアに伴うマッピングデータの交換とが競合して、ホストＩＯによるデータを喪失するおそれがある。既述のとおり、リストアは短時間で終了するために、エラー報告を受けたホストはリトライを行なえば良い。
【０１０４】
チャネル制御部は、仮想ＬＤＥＶ管理テーブルをチェックして、ライトコマンドの対象となったボリュームのボリュームステータスが“ＰＶＯＬ”であるか否かをチェックして（１５１２）、これを肯定判定した場合はペア管理テーブルのペアステータスが“ＣＯＰＹ”又は“ＰＡＩＲ”であるか否かを判定する（１５１４）。
【０１０５】
チャネル制御部がこの判定を肯定すると、正ボリュームと副ボリュームとの間でリキー処理が行われていることになる。次いで、チャネル制御部は差分管理テーブルをチェックして、ライトコマンドによってデータの書き込み要求の対象となったトラックについての差分ビットが“０”か否かをチェックする(１５１６)。差分ビットが“０”の場合には、チャネル制御部は、このトラックについてリキー処理が終わりライトデータの二重書きが必要であると判定し、正ボリュームと副ボリュームのそれぞれについてのキャッシュ領域にライトデータを書き込む(１５１８)。
【０１０６】
次いで、チャネル制御部はＬＤＥＶ管理テーブルを参照して暗号化ビットが“０”か否かをチェックする(１５２２)。暗号化ビットが“１”の場合には、暗号化エンジンが、ライトデータを暗号グループ管理テーブルのカレントキーで暗号化する（１５３８）。次いでチャネル制御はステップ１５３８において、書き込み要求の対象となったトラックが旧暗号キーでなく新暗号キーで暗号化されたことを明らかにするために、このトラックに対する差分管理テーブルの更新ビットマップの対応ビットに対して更新ビットとして“１”を上書きする（１５３９）。一方、暗号化ビットが“０”の場合は暗号化することなくボリューム(ＬＤＥＶ)にライトデータを書き込む(１５２４)。
【０１０７】
ステップ１５０４で仮想ＬＵでないと判定された場合は、ライトコマンドの対象となったＬＵがリキー処理のボリュームではないために、ライトデータの二重書を行なうことなくステップ１５２２までスキップする。ライトコマンドの対象となったボリュームが、ステップ１５１２においてＰＶＯＬでないと判定された場合、ステップ１５１４において、ライトコマンドの対象となったボリュームのペアステータスがＣＯＰＹ、又はＰＡＩＲでないと判定された場合も同様である。
【０１０８】
チャネル制御部は、ライトコマンドの対象となったボリュームのペア管理テーブルにおけるペアステータスがＰＳＵＳかＰＳＵＥであるかを判定し（１５２８）、ペアステータスがＣＯＰＹ又はＰＡＩＲの場合(ステップ１５１４が肯定判定)、ステップ１５２８の判定を否定してホストに二重書が終了したことを報告する(１５３０)。
【０１０９】
一方、ステップ１５１４で否定判定された場合、ライト対象のＬＤＥＶがペア状態にないために、ステップ１５２８では肯定判定されて、ライト対象トラックに対応する差分ビットに“１”が上書きされる(１５４０)。
【０１１０】
ステップ１５０７が否定判定された場合には、ライト対象の仮想アドレスについてペアボリュームは存在しないので、ライトデータを正ボリュームと副ボリュームの両方に書き込むことが必要ないので、チャネル制御部はステップ１５３４に移行して、仮想アドレスをマッピングテーブルに登録し、次いで、これに実アドレスをマッピングする。
【０１１１】
このマッピングが完了すると、チャネル制御部は仮想アドレスに実アドレスをマッピングできたか否かを判定する(１５３６)。この判定が肯定された場合には、実アドレスにライトデータを書き込むために、チャネル制御部はステップ１５２２に移行する。一方、この判定が否定された場合にはライト対象となったボリュームに記憶領域を割り当てることが出来ないことに他ならないので、ステップ１５３２に記載のように、ストレージ装置はホストにエラーを報告する。
【０１１２】
図１６は、リキー処理中にホストから書き込みアクセスがあった正ボリューム対して、ホストからリードコマンドが発行された場合の動作を示すフローチャートである。ホストはストレージ装置に対してリードコマンドを発行する(１６００)。ストレージ装置のチャネル制御部はリードコマンドを受領する(１６０２)。ステップ１６０４からステップ１６１４までは図８のステップ８０４からステップ８１４までと同様である。
【０１１３】
チャネル制御部はステップ１６１６において、リードコマンドの対象となったＬＤＥＶについて、ＬＤＥＶ管理テーブルを参照して暗号化ビットが“０”か否かをチェックする。暗号化ビットが“０”の場合は、ステップ１６１４でＬＤＥＶからリードされたデータは暗号化されていない平文データであるので、これをそのままホストに報告する(１６２６)。
【０１１４】
一方、ステップ１６１６において、暗号化ビットが“１”と判定された場合は、ＬＤＥＶからリードされたデータは暗号文であるために暗号キーを使って復号化する必要がある。そこで、チャネル制御部は、リード対象となったトラックについて差分管理テーブルの対応更新ビットを参照し、更新ビットが“０”の場合はリキー処理の際でのホストからの書き込みアクセスがないために、暗号グループ管理テーブルのバックアップキー（旧暗号キー）を取得して(１６２０)、リードデータを復号化する(１６２４)。
【０１１５】
一方、更新ビットが“１”の場合はリキー処理の際にホストからのライトデータをカレントキー（新暗号キー）によって暗号化したので、暗号化エンジンは暗号グループ管理テーブルのカレントキーを取得して(１６２２)、リードデータを復号化する(１６２４)。
【０１１６】
図１７はリキー処理におけるキー交換のフローチャートである。チャネル制御部は管理端末又はホストからリキーコマンド受領すると（１７００）、入力パラメータ(暗号グループ番号、新キー)を取得する(１７０２)。チャネル制御部は入力パラメータが正しくない場合は、このフローチャートをエラー終了す  る（１７０３,１７０４）。
【０１１７】
チャネル制御部は入力パラメータが正しいと判断した場合は、新暗号キーを取得し(１７０６)、暗号グループ管理テーブルのカレントキーに新暗号キーを上書きし、バックアップキーに旧暗号キーを上書きする(１７０８、１７１０)。
【０１１８】
次いで、チャネル制御部は旧キーで暗号化されたボリュームについて新キーを用いた暗号化に変換するために、リキー処理を必要とする暗号グループに属するＬＤＥＶ番号リストを暗号グループ管理テーブルより取得する（１７１２）。
【０１１９】
チャネル制御部は次に初めのＬＤＥＶ番号を取得する(１７１４)。チャネル制御部は取得したＬＤＥＶが仮想ＬＤＥＶか否かを判定する(１７１６)。
【０１２０】
仮想ＬＤＥＶ場合、チャネル制御部はマッピング管理テーブルを参照して仮想ＬＤＥＶにマッピングされる実アドレスを取得する(１７１８)。次いで、チャネル制御部は差分管理テーブルの更新ポインタを取得し(１７２０)、全ての更新ビットに“０”を上書きして（１７２２）、ステップ１７１４で取得したＬＤＥＶについてリキー処理を実行する準備をする。
【０１２１】
さらに、チャネル制御部は差分管理テーブルの差分ポインタを取得し（１７２４）、全ての差分ビットに“１”を上書きする（１７２６）。次いで、チャネル制御部は他のＬＤＥＶ番号が存在するか否かをチェックし(１７３０)、これを肯定判定する場合には、次のＬＤＥＶ番号を取得してステップ１７１６にリターンする。一方、他のＬＤＥＶ番号が存在しない場合には処理を終了する。一方、取得したＬＤＥＶ番号のものが仮想ＬＤＥＶで無い場合には、ステップ１７１８をスキップしてステップ１７２０に移行する。
【０１２２】
図１８はペア作成の動作を説明するフローチャートである。チャネルアダプタは、管理端末或いはホストからペア作成コマンド受領して(１８００)、入力パラメタ（正ＬＤＥＶ番号、副ＬＤＥＶ）を取得する(１８０２)、次に入力パラメータが正しいか（１８０３）、正ＬＤＥＶ及び副ＬＤＥＶが仮想ＬＤＥＶか(１８０４)、正仮想ＬＤＥＶ管理テーブルのＶＯＬステータスがSIMPLEXかつ、副仮想ＬＤＥＶ管理テーブルのVOLステータスがSIMPLEXか(１８０６)をそれぞれチャネル制御部が判定し、それぞれ否定判定する場合は、このフローチャートの処理をエラー終了する。
【０１２３】
次いで、チャネルアダプタは、ペア管理テーブルのペアステータスがSIMPLEXのペア番号を取得し(１８１０)、ペア番号が存在するかをチェックする(１８１２)、ペア番号が存在しない場合はエラー終了をする。ペア番号が存在する場合には、ペア管理テーブルに正ＬＤＥＶ番号と副ＬＤＥＶ番号を登録し(１８１４)、正仮想ＬＤＥＶ管理テーブルのＶＯＬステータスにＰＶＯＬを上書きし（１８１６）、副仮想ＬＤＥＶ管理テーブルのＶＯＬステータスにＳＶＯＬを上書き（１８１８）、ペア管理テーブルのペアステータスにＰＳＵＳを上書きし（１８２０）、リキー処理のためのペア作成が完了する。
【０１２４】
図１９はリキー処理の際のコピー動作を示すフローチャートである。チャネル制御部はコピーコマンドを受領すると(１９００)、コピーコマンドから入力パラメタ（ペア番号、コピーペース）を取得する（１９０２）。次いで、チャネル制御部は入力パラメータが正しいかを判定し(１９０４)、否定判定の場合はエラー終了する。さらにチャネル制御部は、ペア管理テーブルのペアステータスがPSUSまたはPSUEかを判定し（１９０６）、否定判定の場合はエラー終了する。
【０１２５】
次にチャネル制御部は、ペア管理テーブルのコピーペースを設定する（１９０８）。コピーペースが速いとリキー処理は早く終了するもののストレージ装置の全体リソース負荷に影響する。コピーペースが遅いと逆である。両者のバランスが考慮されて適宜コピーペースが決定される。
【０１２６】
チャネル制御部はペア管理テーブルのペアステータスにＣＯＰＹを上書きする(１９１０)、そして、ペア管理テーブルの正ＬＤＥＶ番号を取得する（１９１２）。さらに、チャネル制御部は、正ＬＤＥＶのマッピング管理テーブルより先頭アドレスを取得する(１９１４)。
【０１２７】
次にチャネル制御部は正ＬＤＥＶのマッピング管理テーブルよりプールＬＤＥＶ番号と実アドレスを取得し(１９１８)、差分管理テーブルよりアドレスの先頭トラック番号を取得する（１９２０）。次いでチャネル制御部コピーポンタ情報を上書きする(１９２２)。チャネル制御部は正ボリュームの実アドレスのデータを副ボリュームにコピーし（１９２４）、次いで次のアドレスを取得しペアステータスがＣＯＰＹかを判定する（１９２７）。例えば、コピー中にコピーがサスペンドされたような場合は、これが否定半判定されてフローチャートが終了する。この判定が肯定されると、さらにアドレスが存在するかが判定され（１９２８）、これが否定判定されるとペアステータスにＰＡＩＲを上書きする。これが肯定判定されると、他のアドレスについて１９１８以降の処理が継続される。
【０１２８】
図２０は図１９のステップ１９２４の詳細を示すフローチャートである。チャネルコマンド制御プログラムは、差分管理テーブルよりアドレスの差分ポインタを取得し（２０００）、差分ポインタの先頭から差分ビットが“１”か否かをチェックする(２００２)。これが否定判定された場合はトラック番号の暗号データはコピー済みであるため、ステップ２０１４までスキップする。一方、これが肯定判定された場合は、チャネルコマンド制御プログラムは、正ＬＤＥＶにリードコマンドを発行し(２００６)して、副ＬＤＥＶに暗号データを格納する(２０２４)。
【０１２９】
チャネルコマンド制御プログラムは、正ＬＤＥＶの暗号データをリードし、暗号化エンジンは暗号データを旧キーで復号化して平文をキャッシュメモリに送信して(２０２０)、チャネルコマンド制御プログラムはキャッシュメモリ上のコピーバッファに平文を格納する（２００８）。
【０１３０】
チャネルコマンド制御プログラムは副ＬＤＥＶにライトコマンドを発行すると、ディスク制御部はライトを実行し(２０２２)、平文をカレントキーで暗号化して暗号文を副ＬＤＥＶの記憶領域に格納する(２０２４)。なお、以上の処理においてステップ２００４において、ストレージ装置は設定されたコピーペースでコピー動作を行なうために、ストレージ装置の入出力処理に対する性能低下の影響がないようにしている。
【０１３１】
チャネル制御部は副ボリュームと正ボリュームとペア間でのデータの一致度を計算し、これをコピー管理テーブルに上書する（２０１３）。そして、差分ポインタとトラック番号をそれぞれインクリメントし（２０１４）、ペアステータスがＣＯＰＹであり、かつ、トラック番号が終端番号に来るまで、ステップ２００２以降の処理を継続する（２０１６）。
【０１３２】
図２１はペア分割の動作の流れを示すフローチャートである。チャネル制御部がペア分割コマンド受領して(２１００)、入力パラメータ(ペア番号)を取得する(２１０２)。チャネル制御部は入力パラメータが正しいかを判定して(２１０４)、正しくない場合には、フローチャートをエラー終了する。
【０１３３】
入力パラメータが正しい場合は、ペア管理テーブルのペアステータスがＰＡＩＲまたはCOPYかを判定する(２１０６)。チャネル制御部が肯定判定すると、ペア管理テーブルのペアステータスをＰＳＵＳに上書きする(２１０８)。ステップ２１０６が否定判定されると、チャネル制御部はステップ２１０８を行うことなくフローチャートを終了する。
【０１３４】
図２２はリストア動作についてのフローチャートを示すものである。チャネル制御部がリストアコマンド受領すると(２２００)、入力パラメータ(ペア番号９を取得する(２２０２)。次いでチャネル制御部は入力パラメータが正しいかをチェックし(２２０４)、これを肯定判定した場合は、ペア管理テーブルのペアステータスがＰＳＵＳかを判定する(２２０６)。この判定が肯定されると、チャネル制御部は、ペア管理テーブルのペアステータスにＲＥＳＴを上書きし（２２０８）、ペア管理テーブルの正ＬＤＥＶ番号を取得する(２２１０)。次いで、正ＬＤＥＶのマッピング管理テーブルより先頭アドレスを取得し(２２１２)、正ＬＤＥＶのマッピング管理テーブルよりプールＬＤＥＶ番号と実アドレスを取得し(２２１６)、正ＬＤＥＶと副ＬＤＥＶのマッピングを変更する（２２１８）。
【０１３５】
次のアドレスを取得する（２２２２）際に、次のアドレスが存在するか否かをチェックする(２２２４)。次のアドレスが存在する場合にはステップ２２１６にリターンするとともに、次のアドレスが存在しない場合には、ペアステータスにPAIRを上書きする。
【０１３６】
図２３は、図２２のステップ２２１８の詳細を示したフローチャートである。チャネル制御部は、ペア管理テーブルの副LDEV番号を取得し(２３００)、副ＬＤＥＶのマッピング管理テーブルより先頭アドレスを取得する（２３０２）。次いで、正ＬＤＥＶの側アドレスと一致か判定され、これが否定されるとステップ２３０６に移行して次のアドレスが存在され、これが肯定されるとステップ２３０４に移行される。ステップ２３０４で肯定判定されると、副ＬＤＥＶのマッピング管理テーブルよりプールＬＤＥＶ番号と実アドレスを取得し(２３１０)、副側アドレスのレコードに正ＬＤＥＶアドレスのマッピング情報を上書きし(２３１２)、正側アドレスのレコードに副ＬＤＥＶアドレスのマッピング情報を上書きし(２３１４)して終了する。
【０１３７】
図２４は、ペア削除の動作の流れを示したフローチャートであり、チャネル制御部がペア削除コマンドを管理端末或いはホストから受領する(２４００)、入力パラメタ(ペア番号)を取得する(２４０２)。次いで、チャネル制御部は入力パラメータが正しいか否かをチェックし(２４０４)、これを肯定判定した場合は、ペア管理テーブルのペアステータスにSIMPLEXを上書きする(２４０６)。
【０１３８】
次いで、チャネル制御部は、ペア管理テーブルの正ＬＤＥＶ番号と副ＬＤＥＶ番号を取得し(２４０８)、仮想ＬＤＥＶ管理テーブルの正ＶＯＬステータスと副ＶＯＬステータスにSIMPLEXを上書き(２４１０)する。次いで、コピー管理テーブルの該レコードを削除する(２４１２)。
【０１３９】
次いで、チャネル制御部は副ＬＤＥＶのマッピング管理テーブルより先頭アドレスを取得し(２４１４)、副ＬＤＥＶの実アドレス領域にフォーマットを実行し(２４１６)、プール管理テーブルの該アドレスの割り当てビットに０を上書きする（２４１８）。次いで、チャネル制御部はマッピング管理テーブルのレコードを削除する(２４２０)。次いで、チャネル制御部は副ＬＤＥＶのマッピング管理テーブルより次のアドレスを取得し(２４２２)、次のアドレスが存在しなくなるまでステップ２４１６以降を実行する。
【０１４０】
図３１は、ストレージ装置に接続する制御端末３０に、図１２（Ａ）に基づいてコピー実行遷移状態を表示するためのフローチャートである。ストレージ装置が制御端末からペア状態取得コマンドを受領すると（３１００）、コマンドから入力パラメータ（ＬＤＥＶ番号）を取得する（３１０２）。ストレージ装置のＤＫＣが、入力パラメータが正しいか否かをチェックし（３１０４）、これを肯定判定する場合にはボリュームステータスがＰＶＯＬ（正ボリューム）或いはＳＶＯＬ（副ボリューム）かをチェックする（３１０６）。
【０１４１】
ボリュームステータスがＰＶＯＬ又はＳＶＯＬの場合は、ＤＫＣはＬＤＥＶ管理テーブルよりペア番号を取得する（３１０８）。次いで、ペア管理テーブルよりペア番号、正ＬＤＥＶ番号、副ＬＤＥＶ番号、ペアステータスを取得し（３１１０）、ＤＫＣはコピー管理テーブルからコピーペース、ペア一致率を取得し、これを制御端末に送信する（３１１２）。
【０１４２】
図３２及び図３３は、図１３及び図１４の実施形態の変形例である。図１３及び図１４は正副の仮想ボリューム間での暗号データ変換処理について説明したものであるのに対して、図３２及び図３３は、正副のボリュームが実ボリュームからなる場合の実施形態である。
【０１４３】
図３２に示すように、正ＬＤＥＶ４０にはＰＤＥＶ１とＰＤＥＶ２からなるＲＡＩＤグループ３７Ａがマッピングされており、副ＬＤＥＶ４０ＡにはＲＡＩＤグループ３７Ｂがマッピングされている。図３２において、暗号データ変換処理はコピーポインタで示されるように、正副ボリュームの“１”のアドレスまで進行していることが示されている。
【０１４４】
暗号変換処理が正副ボリュームの最後まで進むと、既述のとおり副ボリュームが正ボリュームにリストアされるものであり、図３３はこのリストアの動作を示している。ストレージ装置は、マッピングテーブルの制御情報を書き換えて、リストアの際に、ＲＡＩＤグループとボリュームとのマッピング情報を正副ボリューム間で交換する。したがって、副ボリュームから正ボリュームへの再暗号化されたデータをコピーしなくても、正ボリュームが新暗号キーで暗号変換されたデータに対応するようになり、高速リストアが可能となる。
【０１４５】
なお、図３２において、リキー処理期間中ホストからのライトデータは正ボリューム４０及び副ボリューム４０Ａの双方に書き込まれる。例えば、リキー処理が途中で中断された場合でも、ホストからのライトデータが副ボリュームに書き込まれるので、副ボリュームを正ボリュームにリストアすることによって正ボリュームのデータをリストア前の副ボリュームのデータに一致させることができるためである。
【０１４６】
リキー処理期間中でのホストから正ボリュームへのライトデータは、旧暗号キー又は新暗号キーによって暗号化される。正ボリュームへのライトアクセスがあると、アクセス対象となった差分ビットが０である場合には差分ビットが“１”に変更されて、このビットに対する領域について既述のコピーを行なう。同時に更新ビットも“１”に変更される。ストレージ装置はこの更新ビットを参照して、ホストからのライトデータを新暗号キーで暗号化してある場合には、旧暗号キーではなく新暗号キーを暗号管理テーブルから読み込んで、更新ビットが“１”に設定されているトラックに格納されている暗号文を新暗号キーで復号化する。
【０１４７】
この場合、ストレージ装置はこのトラックの暗号データを一旦復号化することなく副ボリュームに格納しても良い。既に新暗号キーで暗号化されているためである。一方、正ボリュームに格納される暗号データは同一の暗号キーによって暗号化されることも便利である。
【０１４８】
図３４は本発明に依るリキー処理と、暗号変換ソフトに依る従来のリキー処理との相違について説明するブロック図である。暗号変換処理中に停電などが発生してストレージ装置システムがダウンしたとき、本発明による変換ではシステム回復後正ＬＤＥＶについて暗号変換処理をやり直せば良い。
【０１４９】
これに対して従来方式は、ボリュームの暗号データをＤＫＣが順番に複合化して新暗号キーで暗号化した後これをボリュームに書き込むというステップを実行する。この過程でシステムがダウンすると、ボリューム内に異なる暗号キーによるデータが混在するために、ＤＫＣがボリュームのデータを使用することが不可能になる。
【０１５０】
図３５は、本発明の他の実施形態について説明するブロック図である。この実施形態では、記憶装置１（ストレージ装置１）に記憶装置２（ストレージ装置２）が接続されている。記憶装置１のプールボリューム自体も仮想化されており、これに記憶装置２の実ボリュームがマッピングされている。したがって、記憶装置１がホストからの平文を暗号化すると、暗号文を、ライン３５００を介して記憶装置２に送り、記憶装置２は暗号文を実ボリュームに書き込む。ホストがボリューム（仮想ＬＤＥＶ１）にアクセスすると、記憶装置１は記憶装置２を介して記憶装置２の実ボリュームから暗号文を読み出す。
【０１５１】
図３６は、本発明のさらに他の実施形態を説明するブロック図である。記憶装置１に記憶装置２がリモートコピーによって接続されている。ホストからの平文が記憶装置２に記憶装置１から送信され、記憶装置２は送信された平文を暗号化してプールの実ボリュームに格納する。
【０１５２】
既述の実施形態では、正ボリュームに旧暗号キーで暗号化されたデータを新暗号キーで再暗号化する場合について説明したが、正ボリュームに格納されている平文を第１の暗号キーで暗号化する場合にも本発明を適用することができる。
【図面の簡単な説明】
【０１５３】
【図１】本発明に係わるストレージ装置の一実施形態を示すハードウエアブロック図である。
【図２】ストレージ装置が暗号化エンジンを有し、ホストからの非暗号データを暗号化することを示すブロック図である。
【図３】本発明に係わるストレージ装置と、論理のボリュームの階層関係を示す機能ブロック図である。
【図４】論理ボリュームを管理するための複数の管理テーブルである。
【図５】仮想ＬＤＥＶとプールＬＤＥＶとの対応関係を示す対応図である。
【図６】ホストからのライトアクセスを処理するためにストレージ装置が実行するフローチャートである。
【図７】プールＬＤＥＶへの実アドレス（実記憶領域）の割り当てを示すフローチャートである。
【図８】ホストからのリードアクセスを処理するためにストレージ装置が実行するフローチャートである。
【図９】リキー処理を行うために、仮想ボリューム間でペアを構成する暗号化のためのブロック図である。
【図１０】ペア関係にある複数の論理ボリュームを管理するための複数の管理テーブルである。
【図１１】ペア関係にある論理ボリューム間リキーを行い、リキーのための各ステップの遷移を示すブロック図である。
【図１２】ペア関係にある論理ボリューム間でコピーを管理するための複数の管理テーブルである。
【図１３】複数ボリューム間での暗号化データのコピー動作を示すブロック図である。
【図１４】図１３において、暗号データを正ボリュームへリストアする動作を示すブロック図である。
【図１５】ホストからのライトデータを正ボリューム及び副ボリュームへ二重書する動作を示すフローチャートである。
【図１６】正ボリュームへのホストからのリードコマンドを処理するためのフローチャートである。
【図１７】正ボリュームと副ボリューム間でリキー処理を行うためのフローチャートである。
【図１８】正ボリュームと副ボリュームとの間のペアを作成するためのフローチャートである。
【図１９】正ボリュームから副ボリュームへの暗号化データのコピー処理を説明するフローチャートである。
【図２０】実アドレスのコピー動作を示すフローチャートである。
【図２１】ペア分割処理を示すフローチャートである。
【図２２】副ボリュームから正ボリュームへの暗号データのリストア処理を説明するためのフローチャートである。
【図２３】リストアの過程において、正ボリュームと副ボリュームとのマッピングを変更する処理を説明するフローチャートである。
【図２４】正ボリュームと副ボリュームとのペアを削除するための処理を説明するフローチャートである。
【図２５】図６のステップ６１８及び６２０を詳しく説明するフローチャートである。
【図２６】図８のステップ８１８の詳細を説明するフローチャートである。
【図２７】ＲＡＩＤ５によって構成されたＲＡＩＤグループへホストからライトＩ／Ｏがあった場合のブロック図である。
【図２８】メインフレーム系ホストからストレージ装置に発行されるフレームを説明するものである。
【図２９】図２９は暗号グループ管理テーブル（図４（Ａ））を作成するフローチャートである。
【図３０】図３０はリキー処理の際の暗号データ変換動作の概要を説明するフローチャートである。
【図３１】ストレージ装置に接続する制御端末に、図１２（Ａ）に基づいてコピー実行遷移状態を表示するためのフローチャートである。
【図３２】図１３の実施形態の変形例に係る、複数ボリューム間での暗号化データのコピー動作を示すブロック図である。である。
【図３３】図１４の実施形態の変形例に係る、暗号データを正ボリュームへリストアする動作を示すブロック図である。
【図３４】本発明に依るリキー処理と、暗号変換ソフトに依る従来のリキー処理との相違について説明するブロック図である。
【図３５】ストレージ装置１にストレージ装置２の実ボリュームがマッピングされているシステムを示すブロック図である。
【図３６】ストレージ装置１にストレージ装置２がリモートコピーによって接続されているシステムを示すブロック図である。
【符号の説明】
【０１５４】
１０  ホスト、  １４  ストレージ装置、１６  チャネル制御部、１８  共有メモリ、２０  ディスク制御部、２４  キャッシュメモリ、２６  暗号制御部。
【図１】
2008234052.tif 000003
【図２】
2008234052.tif 000004
【図３】
2008234052.tif 000005
【図４】
2008234052.tif 000006
【図５】
2008234052.tif 000007
【図６】
2008234052.tif 000008
【図７】
2008234052.tif 000009
【図８】
2008234052.tif 000010
【図９】
2008234052.tif 000011
【図１０】
2008234052.tif 000012
【図１１】
2008234052.tif 000013
【図１２】
2008234052.tif 000014
【図１３】
2008234052.tif 000015
【図１４】
2008234052.tif 000016
【図１５】
2008234052.tif 000017
【図１６】
2008234052.tif 000018
【図１７】
2008234052.tif 000019
【図１８】
2008234052.tif 000020
【図１９】
2008234052.tif 000021
【図２０】
2008234052.tif 000022
【図２１】
2008234052.tif 000023
【図２２】
2008234052.tif 000024
【図２３】
2008234052.tif 000025
【図２４】
2008234052.tif 000026
【図２５】
2008234052.tif 000027
【図２６】
2008234052.tif 000028
【図２７】
2008234052.tif 000029
【図２８】
2008234052.tif 000030
【図２９】
2008234052.tif 000031
【図３０】
2008234052.tif 000032
【図３１】
2008234052.tif 000033
【図３２】
2008234052.tif 000034
【図３３】
2008234052.tif 000035
【図３４】
2008234052.tif 000036
【図３５】
2008234052.tif 000037
【図３６】
2008234052.tif 000038
【手続補正書】
【提出日】平成19年6月12日(2007.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
上位装置と接続され、前記上位装置からのライトコマンドに応答して、複数の記憶デバイスに対するデータの書き込みを制御し、さらに前記上位装置からのリードコマンドに応答して、前記複数の記憶デバイスからのデータの読み込みを制御するストレージ装置であって、
キャッシュメモリと、
前記ライトコマンドに伴うデータを、前記キャッシュメモリに書き込むことを制御する第１の制御部と、
前記キャッシュに書き込まれた前記データを前記複数の記憶デバイスに書き込むことを制御する第２の制御部と、
前記ライトコマンドに伴うデータを暗号化する暗号化エンジンと、
を有し、
前記第２の制御部が前記キャッシュメモリから前記データを読み出して前記複数の記憶デバイスに書き込む際に、前記暗号化エンジンが前記データを暗号化し、暗号化されたデータを前記第２の制御部が前記複数の記憶デバイスに書き込むようにした、ストレージ装置。
【請求項２】
前記第２の制御部が前記複数の記憶デバイスに書き込まれている前記暗号化データを読み出して前記キャッシュメモリに書き込む際に、前記暗号化エンジンは前記暗号化データを復号化し、
前記復号化されたデータが前記キャッシュメモリに書き込まれ、
前記第１の制御部が前記復号化されたデータを読み出して前記上位装置に出力する、請求項１記載のストレージ装置。
【請求項３】
前記上位装置がＣＫＤフォーマットされたフレームを前記第１の制御部に対して出力し、前記暗号化エンジンは、前記ＣＫＤフォーマットされたフレームからデータ部分を認識して、当該データ部分を暗号化する、請求項１記載のストレージ装置。
【請求項４】
前記第２の制御部は前記上位装置からのライトデータが暗号化された後、当該暗号化データからパリティを生成し、前記暗号化データ及びパリティをＲＡＩＤ構成にしたがって、前記複数の記憶デバイスに分散して格納する、請求項１記載のストレージ装置。
【請求項５】
前記暗号化エンジンは、前記ホストからのライトアクセスに含まれる制御情報は暗号化されることなく、前記データ部分を暗号化する、請求項１記載のストレージ装置。
【請求項６】
上位装置と複数の記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、
第１のボリュームと、
前記上位装置からのライトデータを前記第１のボリュームに対して格納する第１の制御部と、
前記ライトデータを暗号化する暗号化エンジンと、
第２のボリュームと、
前記暗号化されたライトデータを前記第２のボリュームに対して格納する第２の制御部と、
前記第２のボリュームの前記暗号化されたライトデータを前記第１のボリュームにリストアする第３の制御部と、
を有するストレージ装置。
【請求項７】
前記暗号化エンジンは、
前記ライトデータを第１の暗号キーによって第１の暗号データに暗号化する第１の暗号化制御部と、
前記第１の暗号データを前記第１の暗号キーによって復号化し、復号化後のデータを前記第１の暗号キーとは異なる第２の暗号キーによって第２の暗号データに変換する第２の暗号化制御部と、
を有し、
前記第１の制御部は前記第１の暗号データを前記第１のボリュームに格納し、
前記第２の制御部は前記第２の暗号データを前記第２のボリュームに格納する、請求項６記載のストレージ装置。
【請求項８】
前記第１のボリュームに前記記憶領域の第１の領域を割り当て、前記第２のボリュームに前記記憶領域の第２の領域を割り当てる、パラメータを記憶するメモリを備え、
前記第１の制御部は前記第１の暗号データを前記第１の領域に書き込み、
前記第２の制御部は前記第２の暗号データを前記第２の領域に書き込む、
請求項６記載のストレージ装置。
【請求項９】
前記第３の制御部は前記メモリにアクセスして、前記第１のボリュームに前記記憶領域の第２の領域を割り当て、前記第２のボリュームに前記記憶領域の第１の領域を割り当てる、ように前記パラメータを変更する、請求項８記載のストレージ装置。
【請求項１０】
前記第１のボリューム及び前記第２のボリュームの少なくとも前記第２のボリュームは、仮想容量を持ち、この仮想容量の範囲で前記記憶領域を割り当てて実記憶容量を適宜変更可能な構成を持ったものである、請求項８記載のストレージ装置。
【請求項１１】
前記第３の制御部は、前記第２のボリュームの前記第２の暗号データが前記第１のボリュームにリストした後、前記第２のボリュームに割り当てられている前記実記憶容量の当該割り当てを解放する、請求項１０記載のストレージ装置。
【請求項１２】
前記第２の暗号化制御部が、前記第１の暗号データを前記第１の暗号キーによって復号化し、復号化後のデータを前記第１の暗号キーとは異なる第２の暗号キーによって第２の暗号データに変換している期間中、前記上位装置からの前記第１のボリュームに対するアクセスを許容する、請求項７記載のストレージ装置。
【請求項１３】
上位装置と複数の記憶デバイスの記憶領域との間のデータの入出力を制御するストレージ装置において、
前記上位装置からのライトアクセスを処理するコントローラと、
前記上位装置からのライトデータから暗号データを生成する暗号化部と、
前記ライトデータを暗号化する際に前記暗号化部が使用した暗号キーを記憶するメモリと、
前記暗号データが書き込まれる第１のボリュームと、
前記第１のボリュームに格納されている暗号データを新暗号データでリキー処理し、リキー処理後の暗号データが書き込まれる第２のボリュームと、
を備え、
前記コントローラは、前記リキー処理の期間中前記第１のボリュームに対する前記上位装置からのライトアクセスを受領し、アクセス対象の領域にライトデータが暗号化されてなる暗号データを格納し、前記メモリから前記暗号キーを読み出して、当該暗号キーを用いて前記アクセス対象の領域に格納された前記暗号データを復号化する、ストレージ装置。
【請求項１４】
前記ライトデータが前記新暗号キー又は旧暗号キーの何れかで暗号化され、前記メモリは前記ライトアクセスがあった前記第１のボリュームの領域について、前記新暗号キー又は旧暗号キーのどちらで暗号化されたかを識別する情報を備える、請求項１２記載のストレージ装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
このストレージシステムは、暗号データを別の記憶装置に移動させる際に移動後の同データの解読を容易とし、暗号データの計算方式を別の計算方式に書き換える場合の盗聴や改ざんなどに対するセキュリティを維持すると共に、アクセス性能を向上させることを目的としたもので、前記公報の図３に記載されているように、データ領域１２０を有する記憶装置を備えてホスト計算機からアクセス可能なストレージシステム１００において、暗号データを解読可能な仕組みを備えた記憶装置が同データの移動先に選出されるとデータ移動を実施したり、暗号データの暗号計算に適用される暗号計算方法を装置内部の処理により別の方法に更新して保存し直すことにより、装置や暗号計算方法が陳腐化した場合であっても確実に暗号データを保持し続けることを可能としたことを特徴とするものである。
【特許文献１】特開２００６−２２７８３９号公報
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
チャネルコマンド制御プログラム１６Ａ及びディスク制御プログラム２０Ａは、ＬＵ３４に対するホストＩＯのアクセスをＬＤＥＶ３６へのアクセスに変換して、ＬＤＥＶ３６に割り当てられている記憶領域にホスト１０がアクセスできるようにしている。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
登録済みである場合にはチャネル制御部は、マッピング管理テーブルにしたがって仮想アドレスに対応するプールＬＤＥＶ番号のボリュームの実アドレスをマッピングする(１５０８)。次いで、チャネル制御部はペア管理テーブルのペアステータスをチェックして(１５０９)、ペアステータスが"REST"(リストア)の場合にはホストにエラーを返す(１５１０)。リストアの最中にライトコマンドを実行すると、正ボリュームに対するライトコマンドとリストアに伴うマッピングデータの交換とが競合して、ホストＩＯによるデータを喪失するおそれがある。既述のとおり、リストアは短時間で終了するために、エラー報告を受けたホストはリトライを行なえば良い。