(57)【特許請求の範囲】
【請求項１】
ホスト計算機に接続されるストレージ装置であって、
前記ホスト計算機によって書き込み要求されるデータを記憶するディスクドライブと、前記ディスクドライブへのデータの読み書きを制御するディスクコントローラと、を備え、
前記ディスクコントローラは、
前記ディスクドライブの記憶領域を一つ以上の論理ボリュームとして、前記ホスト計算機に提供し、
前記論理ボリュームに記憶されるデータの暗号化に使用される暗号鍵を、第１の暗号鍵から第２の暗号鍵へ変更する処理を実行し、
当該暗号鍵変更処理を実行している最中に、当該論理ボリュームに含まれる記憶領域のうち、暗号鍵が変更済みでないデータを記憶する記憶領域を書込対象とする書込要求を受信すると、当該受信した書込要求によって書き込まれるべき書込データを、前記第２の暗号鍵で暗号化し、
前記暗号化された書込データを、前記論理ボリュームへ書き込むことによって、前記受信した書込要求による書込対象の記憶領域に記憶されるデータの暗号鍵が変更されることを特徴とするストレージ装置。
【請求項２】
前記ディスクコントローラは、
前記受信した書込要求による書込対象の記憶領域に記憶されるデータと同じパリティグループに属す他のデータの暗号鍵が変更済みであるか否かを判定し、
前記他のデータの暗号鍵が変更済みでないと判定した場合、当該他のデータを前記論理ボリュームから読み出し、
前記読み出された他のデータを、前記第１の暗号鍵で復号化し、
前記復号化された他のデータを、前記第２の暗号鍵で暗号化し、
前記暗号化された他のデータを、前記論理ボリュームに書き込むことによって、当該他のデータの暗号鍵が変更されることを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記ディスクコントローラは、
前記第２の暗号鍵で暗号化された書込データ及び他のデータに基づいて、パリティデータを作成し、
前記作成されたパリティデータを、前記論理ボリュームに書き込むことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記ディスクコントローラは、
当該受信した書込要求による書込対象の記憶領域に記憶されるデータと同じパリティグループに属す他のデータの暗号鍵が前記第１の暗号鍵から前記第２の暗号鍵へ変更済みであるか否かを判定し、
前記他のデータの暗号鍵が変更済みであると判定した場合、前記第２の暗号鍵で暗号化された他のデータを前記論理ボリュームから読み出し、
前記第２の暗号鍵で暗号化された書込データ及び他のデータに基づいて、パリティデータを作成し、
前記作成されたパリティデータを、前記論理ボリュームに書き込むことを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記論理ボリュームに含まれる記憶領域に記憶されるデータの暗号鍵が変更済みか否かを示す暗号状態管理情報を記憶することを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記ディスクコントローラは、前記論理ボリュームに含まれる記憶領域のうち、暗号鍵が変更されている最中のデータを記憶する記憶領域を書込対象とする書込要求を受信すると、当該データの暗号鍵が変更されるまで、当該受信した書込要求に対応する処理を実行しないことを特徴とする請求項１に記載のストレージ装置。
【請求項７】
ホスト計算機に接続されるストレージ装置における暗号鍵変更方法であって、
前記ストレージ装置は、前記ホスト計算機によって書き込み要求されるデータを記憶するディスクドライブと、前記ディスクドライブへのデータの読み書きを制御するディスクコントローラと、を備え、
前記ディスクコントローラは、
前記ディスクドライブの記憶領域を一つ以上の論理ボリュームとして、前記ホスト計算機に提供し、
前記論理ボリュームに記憶されるデータの暗号化に使用される暗号鍵を、第１の暗号鍵から第２の暗号鍵へ変更する処理を実行し、
当該暗号鍵変更処理を実行している最中に、当該論理ボリュームに含まれる記憶領域のうち、暗号鍵が変更済みでないデータを記憶する記憶領域を書込対象とする書込要求を受信すると、当該受信した書込要求によって書き込まれるべき書込データを、前記第２の暗号鍵で暗号化し、
前記暗号化された書込データを、前記論理ボリュームへ書き込むことによって、前記受信した書込要求による書込対象の記憶領域に記憶されるデータの暗号鍵が変更されることを特徴とする暗号鍵変更方法。
【請求項８】
前記ディスクコントローラは、
前記受信した書込要求による書込対象の記憶領域に記憶されるデータと同じパリティグループに属す他のデータの暗号鍵が変更済みであるか否かを判定し、
前記他のデータの暗号鍵が変更済みでないと判定した場合、当該他のデータを前記論理ボリュームから読み出し、
前記読み出された他のデータを、前記第１の暗号鍵で復号化し、
前記復号化された他のデータを、前記第２の暗号鍵で暗号化し、
前記暗号化された他のデータを、前記論理ボリュームに書き込むことによって、当該他のデータの暗号鍵が変更されることを特徴とする請求項７に記載の暗号鍵変更方法。
【請求項９】
前記ディスクコントローラは、
前記第２の暗号鍵で暗号化された書込データ及び他のデータに基づいて、パリティデータを作成し、
前記作成されたパリティデータを、前記論理ボリュームに書き込むことを特徴とする請求項８に記載の暗号鍵変更方法。
【請求項１０】
前記ディスクコントローラは、
当該受信した書込要求による書込対象の記憶領域に記憶されるデータと同じパリティグループに属す他のデータの暗号鍵が前記第１の暗号鍵から前記第２の暗号鍵へ変更済みであるか否かを判定し、
前記他のデータの暗号鍵が変更済みであると判定した場合、前記第２の暗号鍵で暗号化された他のデータを前記論理ボリュームから読み出し、
前記第２の暗号鍵で暗号化された書込データ及び他のデータに基づいて、パリティデータを作成し、
前記作成されたパリティデータを、前記論理ボリュームに書き込むことを特徴とする請求項７に記載の暗号鍵変更方法。
【請求項１１】
前記論理ボリュームに含まれる記憶領域に記憶されるデータの暗号鍵が変更済みか否かを示す暗号状態管理情報を記憶することを特徴とする請求項７に記載の暗号鍵変更方法。
【請求項１２】
前記ディスクコントローラは、前記論理ボリュームに含まれる記憶領域のうち、暗号鍵が変更されている最中のデータを記憶する記憶領域を書込対象とする書込要求を受信すると、当該データの暗号鍵が変更されるまで、当該受信した書込要求に対応する処理を実行しないことを特徴とする請求項７に記載の暗号鍵変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関し、特に、暗号化機能を備えるストレージ装置に関する。
【背景技術】
【０００２】
近年、ストレージ装置に記憶されるデータの重要性が高まっており、ストレージ装置に暗号化機能を搭載することが望まれている。ストレージ装置が、暗号化機能を実現するためには、平文から暗号文に変換する機能及び暗号鍵を変更するＲｅｋｅｙ機能を備える必要がある。
【０００３】
従来、ストレージ装置は、平文から暗号文に変換する処理及びＲｅｋｅｙ処理の最中においては、ホスト計算機からのＩ／Ｏを受け付けることができなった。そのため、ストレージ装置の性能が低下してしまうという問題があった。
【０００４】
そこで、Ｒｅｋｅｙ処理の最中におけるストレージ装置の性能低下を防止する技術が、特許文献１に開示されている。特許文献１に開示された技術によると、ストレージ装置は、ホスト計算機からのＩ／Ｏを受け付けながら、Ｒｅｋｅｙ処理を行う。
【特許文献１】特開２００５−３０３９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術では、ストレージ装置は、Ｒｅｋｅｙ対象となる論理ボリューム（ＬＵ）をブロック単位で管理する。そして、ストレージ装置は、どのブロックまでＲｅｋｅｙ処理が完了しているかをポインタで管理する。
【０００６】
ストレージ装置は、Ｒｅｋｅｙ処理中にＲｅｋｅｙ対象のＬＵへの書込要求をホスト計算機から受信すると、ポインタに基づいて、データの書き込み先となるブロックがＲｅｋｅｙ済みであるか否かを判定する。
【０００７】
当該ブロックがＲｅｋｅｙ済みである場合、ストレージ装置は、Ｒｅｋｅｙ後の暗号鍵で書込データを暗号化して、当該ブロックに書き込む。一方、当該ブロックがＲｅｋｅｙ済みでない場合、ストレージ装置は、Ｒｅｋｅｙ前の暗号鍵で書込データを暗号化して、当該ブロックに書き込む。
【０００８】
このように、特許文献１に開示された技術によると、ストレージ装置は、データの書き込み先となるブロックに対応する暗号鍵で書込データを暗号化する。しかしながら、特許文献１に開示された技術では、Ｒｅｋｅｙ処理中にブロックに書き込まれたデータも、Ｒｅｋｅｙ処理の対象となってしまう。つまり、ストレージ装置は、Ｒｅｋｅｙ処理中にブロックに書き込まれたデータを、復号化して再度暗号化する必要があった。そのため、ストレージ装置の性能が低下してしまうという問題があった。
【０００９】
本発明は前述した問題点に鑑みてなされたものであって、平文から暗号文に変換する処理及びＲｅｋｅｙ処理の最中におけるストレージ装置の性能低下を小さくする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な形態は、ホスト計算機に接続されるストレージ装置であって、前記ホスト計算機によって書き込み要求されるデータを記憶するディスクドライブと、前記ディスクドライブへのデータの読み書きを制御するディスクコントローラと、を備え、前記ディスクコントローラは、前記ディスクドライブの記憶領域を一つ以上の論理ボリュームとして、前記ホスト計算機に提供し、前記論理ボリュームに記憶されるデータの暗号化に使用される暗号鍵を、第１の暗号鍵から第２の暗号鍵へ変更する処理を実行し、当該暗号鍵変更処理を実行している最中に、当該論理ボリュームに含まれる記憶領域のうち、暗号鍵が変更済みでないデータを記憶する記憶領域を書込対象とする書込要求を受信すると、当該受信した書込要求によって書き込まれるべき書込データを、前記第２の暗号鍵で暗号化し、前記暗号化された書込データを、前記論理ボリュームへ書き込むことによって、前記受信した書込要求による書込対象の記憶領域に記憶されるデータの暗号鍵が変更されることを特徴とする。
【発明の効果】
【００１１】
本発明の代表的な形態によれば、平文から暗号文に変換する処理及びＲｅｋｅｙ処理の最中におけるストレージ装置の性能低下を小さくできる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して説明する。
【００１３】
図１は、本発明の実施の形態の計算機システムの構成のブロック図である。
【００１４】
計算機システムは、ホスト計算機５００、管理計算機４００及びストレージ装置１００を備える。
【００１５】
ホスト計算機５００とストレージ装置１００とは、ＳＡＮなどのネットワークを介して接続される。また、管理計算機４００とストレージ装置１００とは、ＬＡＮなどの管理ネットワークを介して接続される。
【００１６】
ホスト計算機５００は、ストレージ装置１００に対するＩ／Ｏを発行する計算機である。なお、Ｉ／Ｏは、書込要求又は読出要求などである。
【００１７】
また、ホスト計算機５００は、ＣＰＵ（図示省略）、メモリ（図示省略）及びインタフェース（Ｉ／Ｆ）５１０を備える。インタフェース５１０は、ネットワークを介してストレージ装置１００に接続される。
【００１８】
ＣＰＵは、メモリに記憶されるプログラムを実行することによって各種処理を行う。メモリは、ＣＰＵによって実行されるプログラム及びＣＰＵによって必要とされる情報などを記憶する。例えば、メモリは、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）５２０及びアプリケーションプログラム５３０を記憶する。
【００１９】
ＯＳ５２０は、ホスト計算機５００の処理の全体を制御する。アプリケーションプログラム５３０は、各種業務に関する処理を行う。このとき、アプリケーションプログラム５３０は、ストレージ装置１００に対するＩ／Ｏを発行する。
【００２０】
管理計算機４００は、ストレージ装置１００の処理を制御する計算機である。管理計算機４００は、ＣＰＵ（図示省略）、メモリ（図示省略）及びインタフェース（図示省略）を備える。インタフェースは、管理ネットワークを介してストレージ装置１００に接続される。
【００２１】
ＣＰＵは、メモリに記憶されるプログラムを実行することによって各種処理を行う。メモリは、ＣＰＵによって実行されるプログラム及びＣＰＵによって必要とされる情報などを記憶する。例えば、メモリは、ストレージ管理プログラム４１０を記憶する。
【００２２】
ストレージ管理プログラム４１０は、ストレージ装置１００の処理を制御する。例えば、ストレージ管理プログラム４１０は、ストレージ装置１００に各種要求を送信する。
【００２３】
ストレージ装置１００は、コントローラ２００及び複数のディスクドライブ３１０を備える。コントローラ２００は、ディスクドライブ３１０に対してデータを読み書きする。また、コントローラ２００は、複数のディスクドライブ３１０を、ＲＡＩＤグループ３２０として設定する。そして、コントローラ２００は、ＲＡＩＤグループ３２０の記憶領域を、一つ以上の論理ボリューム（ＬＵ）３３０としてホスト計算機５００に提供する。なお、ＬＵ３３０は、通常ＬＵ３３０Ａ及び３３０Ｂを含む。
【００２４】
通常ＬＵ３３０Ａは、暗号化されていないデータ（平文データ）を記憶するＬＵである。暗号ＬＵ３３０Ｂは、暗号化されているデータ（暗号文データ）を記憶するＬＵである。
【００２５】
また、コントローラ２００は、ホストインタフェース（ホストＩ／Ｆ）２１０、バックエンドコントローラ２２０、ＤＣＴＬ２３０、ＣＰＵ２４０、キャッシュメモリ２５０、メモリ２６０、ブリッジ２７０、暗号化回路２８０及びＬＡＮインタフェース（ＬＡＮＩ／Ｆ）２９０を備える。
【００２６】
ホストインタフェース２１０は、ネットワークを介してホスト計算機５００に接続される。ＬＡＮインタフェース２９０は、管理ネットワークを介して管理計算機４００に接続される。バックエンドコントローラ２２０は、ディスクドライブ３１０に接続される。
【００２７】
ブリッジ２７０は、ＤＣＴＬ２３０、ＣＰＵ２４０及びメモリ２６０間のデータ転送を制御する。ＤＣＴＬ２３０は、ホストインタフェース２１０、キャッシュメモリ２５０、ブリッジ２７０、暗号化回路２８０及びＬＡＮインタフェース２９０間のデータ転送を制御する。
【００２８】
暗号化回路２８０は、暗号化／復号化判定部２６１による判定結果を参照して、データを暗号化又は復号化する。
【００２９】
メモリ２６０は、ＣＰＵ２４０によって実行されるプログラム及びＣＰＵ２４０によって必要とされる情報などを記憶する。具体的には、メモリ２６０は、暗号鍵管理テーブル２６５及び暗号領域管理テーブル２６７を記憶する。なお、暗号鍵管理テーブル２６５及び暗号領域管理テーブル２６７は、メモリ２６０ではなく、キャッシュメモリ２５０に記憶されていてもよい。
【００３０】
暗号鍵管理テーブル２６５は、暗号鍵に関する情報を管理する。なお、暗号鍵管理テーブル２６５については、図３で詳細を説明する。
【００３１】
暗号領域管理テーブル２６７は、記憶領域と当該記憶領域に記憶されるデータの暗号化に使用された暗号鍵との対応を示す。なお、暗号領域管理テーブル２６７については、図４で詳細を説明する。
【００３２】
ＣＰＵ２４０は、メモリ２６０に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、ＣＰＵ２４０は、メモリ２６０に記憶されるプログラムを実行することによって、暗号化／復号化判定部２６１、暗号／復号処理部２６２、暗号化制御部２６３、暗号鍵管理部２６４及びホストＩ／Ｏ制御部２６６を実現する。
【００３３】
暗号化／復号化判定部２６１は、データが暗号化されているか否かを判定する。暗号／復号処理部２６２は、暗号化／復号化判定部２６１による判定結果を参照して、データを暗号化又は復号化する。
【００３４】
なお、本ブロック図では、コントローラ２００は、暗号化回路２８０及び暗号／復号処理部２６２の両方を備えているが、いずれか一方のみを備えていてもよい。
【００３５】
暗号化制御部２６３は、暗号状態管理テーブル２５１を更新する。そして、暗号化制御部２６３は、暗号状態管理テーブル２５１を参照して、暗号化回路２８０及び暗号／復号処理部２６２による処理を制御する。具体的には、暗号化制御部２６３は、暗号状態管理テーブル２５１を参照して、適切な暗号鍵を選択する。そして、暗号化制御部２６３は、選択した暗号鍵での暗号化又は復号化を、暗号化回路２８０又は暗号／復号処理部２６２に指示する。
【００３６】
暗号鍵管理部２６４は、暗号鍵管理テーブル２６５を更新することによって、暗号鍵を管理する。
【００３７】
ホストＩ／Ｏ制御部２６６は、ホスト計算機５００からＩ／Ｏを受信し、受信したＩ／Ｏに応じた処理を行う。例えば、受信したＩ／Ｏが書込要求の場合、ホストＩ／Ｏ制御部２６６は、書込データを、ＬＵ３３０に書き込む。受信したＩ／Ｏが読出要求の場合、ホストＩ／Ｏ制御部２６６は、ＬＵ３３０から読出データを読み出す。
【００３８】
キャッシュメモリ２５０は、暗号状態管理テーブル２５１、暗号変換平文データ２５３及び暗号変換済データ２５４を一時的に記憶する。なお、キャッシュメモリ２５０とメモリ２６０とは、別個ではなく、一つであってもよい。また、暗号状態管理テーブル２５１は、キャッシュメモリ２５０ではなく、メモリ２６０に記憶されていてもよい。
【００３９】
暗号状態管理テーブル２５１は、ＬＵ３３０に含まれるブロックのデータが暗号済みか否かを管理する。又は、暗号状態管理テーブル２５１は、ＬＵ３３０に含まれるブロックのデータがＲｅｋｅｙ済みか否かを管理する。
【００４０】
暗号変換平文データ２５３は、ＬＵ３３０に書き込まれるデータ及びＬＵ３３０から読み出されたデータのうち、暗号化されていないデータである。暗号変換済データ２５４は、ＬＵ３３０に書き込まれるデータ及びＬＵ３３０から読み出されたデータのうち、暗号化されているデータである。
【００４１】
図２は、本発明の実施の形態の計算機システムのＲｅｋｅｙ処理の概要の説明図である。
【００４２】
一つのＬＵ３３０は、複数のディスク領域６００から構成される。ディスク領域６００は、ディスクドライブ３１０の記憶領域のうち、当該ＬＵ３３０として提供される記憶領域である。つまり、一つのＬＵ３３０は、ＲＡＩＤグループ３２０を構成するディスクドライブ３１０の数と同数のディスク領域６００から構成される。
【００４３】
コントローラ２００は、ＬＵ３３０に含まれるパリティグループごとに、Ｒｅｋｅｙ処理を行う。なお、パリティグループは、ストライプ長のデータを、ＬＵ３３０を構成するディスク領域６００の数だけ含む。ストライプ長は、ディスク領域６００に含まれる一つのブロックに記憶されるデータの大きさである。
【００４４】
例えば、一つのＬＵ３３０が三つのディスク領域６００から構成される場合を説明する。この場合、パリティグループは、二つのデータ及び一つのパリティデータを含む。そこで、Ｒｅｋｅｙ処理される前のパリティグループは、Ｒｅｋｅｙ前データ６０１、Ｒｅｋｅｙ前データ６０２及びＲｅｋｅｙ前パリティデータ６０３を含む。
【００４５】
まず、コントローラ２００は、Ｒｅｋｅｙ処理対象のパリティグループから、パリティデータ以外を読み出す。ここでは、コントローラ２００は、Ｒｅｋｅｙ前データ６０１及びＲｅｋｅｙ前データ６０２を読み出す。次に、コントローラ２００は、読み出したＲｅｋｅｙ前データ６０１及びＲｅｋｅｙ前データ６０２を、Ｒｅｋｅｙ前の暗号鍵で復号化する。そして、コントローラ２００は、復号化したＲｅｋｅｙ前データ６０１及びＲｅｋｅｙ前データ６０２を、暗号変換平文データ２５３として、キャッシュメモリ２５０に格納する。
【００４６】
次に、コントローラ２００は、キャッシュメモリ２５０に格納されているＲｅｋｅｙ前データ６０１及びＲｅｋｅｙ前データ６０２を、Ｒｅｋｅｙ後の暗号鍵で暗号化する。これによって、コントローラ２００は、Ｒｅｋｅｙ前データ６０１及びＲｅｋｅｙ前データ６０２を、Ｒｅｋｅｙ後データ６１１及びＲｅｋｅｙ後データ６１２に変換する。
【００４７】
次に、コントローラ２００は、変換によって作成されたＲｅｋｅｙ後データ６１１及びＲｅｋｅｙ後データ６１２に基づいて、パリティデータ（Ｒｅｋｅｙ後パリティデータ）６１３を作成する。
【００４８】
次に、コントローラ２００は、変換によって作成されたＲｅｋｅｙ後データ６１１、Ｒｅｋｅｙ後データ６１２及び作成したＲｅｋｅｙ後パリティデータ６１３を、暗号変換済データ２５４として、キャッシュメモリ２５０に格納する。
【００４９】
次に、コントローラ２００は、キャッシュメモリ２５０に格納されたＲｅｋｅｙ後データ６１１、Ｒｅｋｅｙ後データ６１２及びＲｅｋｅｙ後パリティデータ６１３を、Ｒｅｋｅｙ処理対象のパリティグループに書き戻す。
【００５０】
そして、コントローラ２００は、一つのパリティグループに対するＲｅｋｅｙ処理を終了する。
【００５１】
図３は、本発明の実施の形態のコントローラ２００に記憶される暗号鍵管理テーブル２６５の構成図である。
【００５２】
暗号鍵管理テーブル２６５は、暗号鍵名２６５１、ＲＡＩＤグループ番号２６５２、ＬＵＮ２６５３及び鍵生成年月日時刻２６５４を含む。
【００５３】
暗号鍵名２６５１は、暗号鍵の一意な識別子である。ＲＡＩＤグループ番号２６５２は、当該レコードの暗号鍵名２６５１によって識別される暗号鍵で暗号化されたＬＵ３３０が属すＲＡＩＤグループ３２０の一意な識別子である。
【００５４】
ＬＵＮ２６５３は、該レコードの暗号鍵名２６５１によって識別される暗号鍵で暗号化されたＬＵ３３０の一意な識別子である。鍵生成年月日時刻２６５４は、該レコードの暗号鍵名２６５１によって識別される暗号鍵が生成された時を示す。
【００５５】
図４は、本発明の実施の形態のコントローラ２００に記憶される暗号領域管理テーブル２６７の構成図である。
【００５６】
暗号領域管理テーブル２６７は、ＲＡＩＤグループ番号２６７１、ＬＵＮ２６７２、暗号鍵名２６７３及び暗号属性２６７４を含む。
【００５７】
ＬＵＮ２６７２は、ストレージ装置１００によって提供されるＬＵ３３０の一意な識別子である。ＲＡＩＤグループ番号２６７１は、当該レコードのＬＵＮ２６７２によって識別されるＬＵ３３０が属すＲＡＩＤグループ３２０の一意な識別子である。
【００５８】
暗号鍵名２６７３は、当該レコードのＬＵＮ２６７２によって識別されるＬＵ３３０の暗号化に使用された暗号鍵の一意な識別子である。なお、当該レコードのＬＵＮ２６７２によって識別されるＬＵ３３０に記憶されるデータが暗号化されていない場合、暗号鍵名２６７３には、値が格納されない。暗号属性２６７４は、当該レコードのＬＵＮ２６７２によって識別されるＬＵ３３０が暗号化されているか否かを示す。
【００５９】
図５は、本発明の実施の形態のコントローラ２００に記憶される暗号状態管理テーブル２５１の構成図である。
【００６０】
一つの暗号状態管理テーブル２５１は、Ｒｅｋｅｙ対象の一つのＬＵ３３０に対応する。また、暗号状態管理テーブル２５１は、Ｒｅｋｅｙ前の暗号鍵名２５１１、Ｒｅｋｅｙ後の暗号鍵名２５１２、ＬＵＮ２５１３、ＲＡＩＤグループ番号２５１４、スタートアドレス２５１５、ブロック数２５１６及びＲｅｋｅｙポインタ２５１７を含む。
【００６１】
ＬＵＮ２５１３は、Ｒｅｋｅｙ対象となっているＬＵ３３０の一意な識別子である。ＲＡＩＤグループ番号２５１４は、当該レコードのＬＵＮ２５１３によって識別されるＬＵ３３０が属すＲＡＩＤグループ３２０の一意な識別子である。
【００６２】
Ｒｅｋｅｙ前の暗号鍵名２５１１は、Ｒｅｋｅｙ前において、当該レコードのＬＵＮ２５１３によって識別されるＬＵ３３０の暗号化に使用される暗号鍵の一意な識別子である。Ｒｅｋｅｙ後の暗号鍵名２５１２は、Ｒｅｋｅｙ後において、当該レコードのＬＵＮ２５１３によって識別されるＬＵ３３０の暗号化に使用される暗号鍵の一意な識別子である。
【００６３】
スタートアドレス２５１５は、当該レコードのＬＵＮ２５１３によって識別されるＬＵ３３０に含まれるブロックのうち、Ｒｅｋｅｙ済みのブロックのアドレスを示す。なお、Ｒｅｋｅｙ済みのブロックがアドレス上連続している場合、スタートアドレス２５１５は、当該連続しているブロックの先頭のアドレスとなる。
【００６４】
ブロック数２５１６は、Ｒｅｋｅｙ済みのブロックがアドレス上連続している個数を示す。なお、ブロック数２５１６は、当該レコードのスタートアドレス２５１５に対応するブロックから連続している個数を示す。
【００６５】
Ｒｅｋｅｙポインタ２５１７は、当該レコードのＬＵＮ２５１３によって識別されるＬＵ３３０に含まれるブロックのうち、Ｒｅｋｅｙされている最中のブロックを示す。なお、コントローラ２００は、ブロックのアドレス順に、ＬＵ３３０に含まれるブロックをＲｅｋｅｙする。
【００６６】
図６は、本発明の実施の形態の計算機システムのＲｅｋｅｙ処理のフローチャートである。
【００６７】
まず、管理計算機４００は、Ｒｅｋｅｙ指示画面４２０を表示する。
【００６８】
図７は、本発明の実施の形態の管理計算機４００に表示されるＲｅｋｅｙ指示画面４２０の説明図である。
【００６９】
Ｒｅｋｅｙ指示画面４２０は、Ｒｅｋｅｙ対象ＬＵ選択テーブル、ＯＫボタン４２６及びキャンセルボタン４２７を含む。
【００７０】
Ｒｅｋｅｙ対象ＬＵ選択テーブルは、Ｒｅｋｅｙ対象指定欄４２１、ＬＵＮ４２２、ＲＡＩＤグループ番号４２３、使用中暗号鍵名４２４及びＲｅｋｅｙ後の暗号鍵名４２５を含む。
【００７１】
ＬＵＮ４２２は、Ｒｅｋｅｙ対象となり得るＬＵ３３０の一意な識別子である。ＲＡＩＤグループ番号４２３は、当該レコードのＬＵＮ４２２によって識別されるＬＵ３３０が属すＲＡＩＤグループ３２０の一意な識別子である。
【００７２】
使用中暗号鍵名４２４は、当該レコードのＬＵＮ４２２によって識別されるＬＵ３３０の暗号化に使用されている暗号鍵の一意な識別子である。なお、当該レコードのＬＵＮ４２２によって識別されるＬＵ３３０に記憶されるデータが暗号化されていない場合、使用中暗号鍵名４２４には、値が格納されない。
【００７３】
Ｒｅｋｅｙ後の暗号鍵名４２５は、当該レコードのＬＵＮ４２２によって識別されるＬＵ３３０に対してＲｅｋｅｙ処理を行った後における暗号鍵の一意な識別子である。なお、Ｒｅｋｅｙ後の暗号鍵名４２５は、管理計算機４００、ストレージ装置１００又は管理者によって決定されたＲｅｋｅｙ後の暗号鍵の識別子となる。管理者によってＲｅｋｅｙ後の暗号鍵が決定される場合、Ｒｅｋｅｙ後の暗号鍵名４２５の代わりに、Ｒｅｋｅｙ後の暗号鍵の指定欄となる。
【００７４】
Ｒｅｋｅｙ対象指定欄４２１では、当該レコードのＬＵＮ４２２によって識別されるＬＵ３３０がＲｅｋｅｙ対象として指定される。
【００７５】
ＯＫボタン４２６が管理者によって操作されると、管理計算機４００は、Ｒｅｋｅｙ対象指定欄４２１においてＲｅｋｅｙ対象として選択されたレコードを選択する。次に、管理計算機４００は、選択されたレコードのＬＵＮ４２２を抽出する。次に、管理計算機４００は、抽出したＬＵＮ４２２によって識別されるＬＵ３３０を、Ｒｅｋｅｙ対象とする。
【００７６】
一方、キャンセルボタン４２７が操作されると、管理計算機４００は、Ｒｅｋｅｙ指示画面４２０の表示を終了する。
【００７７】
次に、Ｒｅｋｅｙ指示画面４２０の作成方法について説明する。
【００７８】
まず、管理計算機４００は、暗号領域管理テーブル２６７をストレージ装置１００から取得する。次に、管理計算機４００は、取得した暗号領域管理テーブル２６７に基づいて、Ｒｅｋｅｙ指示画面４２０を作成する。
【００７９】
具体的には、管理計算機４００は、取得した暗号領域管理テーブル２６７のＬＵＮ２６７２を、Ｒｅｋｅｙ指示画面４２０のＬＵＮ４２２に格納する。次に、管理計算機４００は、取得した暗号領域管理テーブル２６７のＲＡＩＤグループ番号２６７１を、Ｒｅｋｅｙ指示画面４２０のＲＡＩＤグループ番号４２３に格納する。次に、管理計算機４００は、取得した暗号領域管理テーブル２６７の暗号鍵名２６７３を、Ｒｅｋｅｙ指示画面４２０の使用中暗号鍵名４２４に格納する。
【００８０】
次に、管理計算機４００は、Ｒｅｋｅｙ後の暗号鍵を決定する。そして、管理計算機４００は、決定した暗号鍵の識別子を、Ｒｅｋｅｙ指示画面４２０のＲｅｋｅｙ後の暗号鍵名４２５に格納する。
【００８１】
このようにして、管理計算機４００は、Ｒｅｋｅｙ指示画面４２０を作成する。なお、Ｒｅｋｅｙ指示画面４２０は、管理計算機４００ではなく、ストレージ装置１００によって作成されてもよい。この場合、管理計算機４００は、ストレージ装置１００によって作成されたＲｅｋｅｙ指示画面４２０を受信して、表示する。また、Ｒｅｋｅｙ後の暗号鍵は、管理計算機４００ではなく、ストレージ装置１００によって決定されてもよい。この場合、管理計算機４００は、ストレージ装置１００によって決定されたＲｅｋｅｙ後の暗号鍵を受信して、Ｒｅｋｅｙ処理画面４２０に表示する。
【００８２】
ここで、図６に戻る。
【００８３】
管理計算機４００は、管理者から、Ｒｅｋｅｙ対象のＬＵ３３０の指定を受け付ける（Ｓ１０）。
【００８４】
管理計算機４００は、指定されたＬＵ３３０に対するＲｅｋｅｙ処理の実行要求を、ストレージ装置１００に送信する（Ｓ１１）。なお、Ｒｅｋｅｙ処理の実行要求は、Ｒｅｋｅｙ指示画面４２０のＲｅｋｅｙ対象指定欄４２１で指定されたレコードのＬＵＮ４２２、ＲＡＩＤグループ番号４２３、使用中暗号鍵名４２４及びＲｅｋｅｙ後の暗号鍵名４２５を含む。
【００８５】
また、Ｒｅｋｅｙ対象のＬＵ３３０が複数指定された場合、Ｒｅｋｅｙ対象のＬＵ３３０ごとに以下の処理が行われる。
【００８６】
ストレージ装置１００は、Ｒｅｋｅｙ処理の実行要求を受信する。すると、ストレージ装置１００は、受信したＲｅｋｅｙ処理の実行要求から、ＬＵＮ４２２、ＲＡＩＤグループ番号４２３、使用中暗号鍵名４２４及びＲｅｋｅｙ後の暗号鍵名４２５を抽出する。
【００８７】
次に、ストレージ装置１００は、受信したＲｅｋｅｙ処理の実行要求を、抽出した使用中暗号鍵名４２４によって識別される暗号鍵から、抽出したＲｅｋｅｙ後の暗号鍵名４２５によって識別される暗号鍵への変更の要求として特定する（Ｓ２０）。
【００８８】
次に、ストレージ装置１００は、暗号状態管理テーブル２５１を作成する（Ｓ２１）。
【００８９】
次に、ストレージ装置１００は、抽出した使用中暗号鍵名４２４を、作成した暗号状態管理テーブル２５１のＲｅｋｅｙ前の暗号鍵名２５１１に格納する。次に、ストレージ装置１００は、抽出したＲｅｋｅｙ後の暗号鍵名４２５を、作成した暗号状態管理テーブル２５１のＲｅｋｅｙ後の暗号鍵名２５１２に格納する。
【００９０】
次に、ストレージ装置１００は、抽出したＬＵＮ４２２を、作成した暗号状態管理テーブル２５１のＬＵＮ２５１３に格納する。次に、ストレージ装置１００は、抽出したＲＡＩＤグループ番号４２３を、作成した暗号状態管理テーブル２５１のＲＡＩＤグループ番号２５１４に格納する。
【００９１】
次に、ストレージ装置１００は、抽出したＬＵＮ４２２によって識別されるＬＵ３３０の先頭のブロックの位置を示すアドレスを、作成した暗号状態管理テーブル２５１のスタートアドレス２５１５及びＲｅｋｅｙポインタ２５１７に格納する。次に、ストレージ装置１００は、作成した暗号状態管理テーブル２５１のブロック数２５１６に「０」を格納する。
【００９２】
次に、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙポインタ２５１７を抽出する。次に、ストレージ装置１００は、抽出したＲｅｋｅｙポインタ２５１７に対応するブロックのデータがＲｅｋｅｙ済みであるか否かを判定する（Ｓ２２）。
【００９３】
具体的には、ストレージ装置１００は、暗号状態管理テーブル２５１のスタートアドレス２５１５に、ブロック数２５１６を加算する。これによって、ストレージ装置１００は、連続しているＲｅｋｅｙ済みのブロックのうち、最後のブロックのアドレスを示すエンドアドレスを算出する。
【００９４】
次に、ストレージ装置１００は、抽出したＲｅｋｅｙポインタ２５１７が、スタートアドレス２５１５から、算出したエンドアドレスまでの間となるレコードが暗号状態管理テーブル２５１に存在するか否かを判定する。
【００９５】
当該レコードが暗号状態管理テーブル２５１に存在する場合、ストレージ装置１００は、抽出したＲｅｋｅｙポインタ２５１７に対応するブロックのデータがＲｅｋｅｙ済みであると判定する。この場合、ストレージ装置１００は、そのままステップＳ２７に進む。
【００９６】
一方、当該レコードが暗号状態管理テーブル２５１に存在しない場合、ストレージ装置１００は、抽出したＲｅｋｅｙポインタ２５１７に対応するブロックのデータがＲｅｋｅｙ済みでないと判定する。
【００９７】
この場合、ストレージ装置１００は、抽出したＲｅｋｅｙポインタ２５１７に対応するブロックから、データ（Ｒｅｋｅｙ前データ）を読み出す（Ｓ２３）。次に、ストレージ装置１００は、読み出したＲｅｋｅｙ前データを、抽出した使用中暗号鍵名４２４によって識別される暗号鍵で復号化する（Ｓ２４）。そして、ストレージ装置１００は、復号化したＲｅｋｅｙ前データを、暗号変換平文データ２５３として、キャッシュメモリ２５０に格納する。
【００９８】
次に、ストレージ装置１００は、キャッシュメモリ２５０に格納されているＲｅｋｅｙ前データを、抽出したＲｅｋｅｙ後の暗号鍵名４２５によって識別される暗号鍵で暗号化する（Ｓ２５）。これによって、ストレージ装置１００は、Ｒｅｋｅｙ前データを、Ｒｅｋｅｙ後データに変換する。
【００９９】
次に、ストレージ装置１００は、変換によって作成されたＲｅｋｅｙ後データを、暗号変換済データ２５４として、キャッシュメモリ２５０に格納する。
【０１００】
次に、ストレージ装置１００は、キャッシュメモリ２５０に格納されたＲｅｋｅｙ後データを、抽出したＲｅｋｅｙポインタ２５１７に対応するブロックに書き戻す（Ｓ２６）。
【０１０１】
次に、ストレージ装置１００は、暗号状態管理テーブル２５１を更新する（Ｓ２７）。
【０１０２】
具体的には、ストレージ装置１００は、Ｒｅｋｅｙポインタ２５１７に「１」を加算する。次に、ストレージ装置１００は、「１」が加算された後のＲｅｋｅｙポインタ２５１７と暗号状態管理テーブル２５１のスタートアドレス２５１５とが一致するレコードを、暗号状態管理テーブル２５１から選択できるか否かを判定する。
【０１０３】
当該レコードを選択できない場合、ストレージ装置１００は、そのままステップＳ１６に進む。
【０１０４】
一方、当該レコードを選択できる場合、ストレージ装置１００は、選択したレコードから、ブロック数２５１６を抽出する。次に、ストレージ装置１００は、選択したレコードを暗号状態管理テーブル２５１から削除する。次に、ストレージ装置１００は、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７に、抽出したブロック数２５１６を加算する。
【０１０５】
このようにして、ストレージ装置１００は、暗号状態管理テーブル２５１を更新する。
【０１０６】
次に、ストレージ装置１００は、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７が、Ｒｅｋｅｙ対象のＬＵ３３０の最後のブロックの位置を示すか否かを判定する。これによって、ストレージ装置１００は、Ｒｅｋｅｙ対象のＬＵ３３０に対するＲｅｋｅｙ処理が完了したか否かを判定する（Ｓ１６）。
【０１０７】
Ｒｅｋｅｙポインタ２５１７が、Ｒｅｋｅｙ対象のＬＵ３３０の最後のブロックの位置を示さない場合、Ｒｅｋｅｙ対象のＬＵ３３０に対するＲｅｋｅｙ処理が完了していない。そこで、ストレージ装置１００は、ステップＳ２２に戻り、処理を繰り返す。
【０１０８】
一方、Ｒｅｋｅｙポインタ２５１７が、Ｒｅｋｅｙ対象のＬＵ３３０の最後のブロックの位置を示す場合、Ｒｅｋｅｙ対象のＬＵ３３０に対するＲｅｋｅｙ処理が完了している。そこで、ストレージ装置１００は、暗号領域管理テーブル２６７を更新する（Ｓ２８）。
【０１０９】
具体的には、ストレージ装置１００は、ステップＳ２０で抽出したＬＵＮ４２２（Ｒｅｋｅｙ対象のＬＵ３３０の識別子）と暗号領域管理テーブル２６７のＬＵＮ２６７２とが一致するレコードを、暗号領域管理テーブル２６７から選択する。次に、ストレージ装置１００は、選択したレコードの暗号鍵名２６７３に、ステップＳ２０で抽出したＲｅｋｅｙ後の暗号鍵名４２５を格納する。
【０１１０】
このようにして、ストレージ装置１００は、暗号領域管理テーブル２６７を更新する。そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理を終了する。
【０１１１】
図８は、本発明の実施の形態のストレージ装置１００のＲｅｋｅｙ処理中におけるホストＩ／Ｏ処理のフローチャートである。
【０１１２】
ストレージ装置１００は、Ｒｅｋｅｙ処理中のＬＵ３３０に対するＩ／Ｏをホスト計算機５００から受信すると、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を実行する。
【０１１３】
まず、ストレージ装置１００は、受信したＩ／Ｏから、Ｉ／Ｏ対象のブロックのアドレスを抽出する。次に、ストレージ装置１００は、抽出したアドレスと暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７とが一致するか否かを判定する（Ｓ４１）。これによって、ストレージ装置１００は、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙの最中であるか否かを判定する。
【０１１４】
抽出したアドレスと暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７とが一致する場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙの最中である。よって、ストレージ装置１００は、抽出したアドレスと暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７とが一致しなくなるまで待機する。
【０１１５】
一方、抽出したアドレスと暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７とが一致する場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙの最中ではない。そこで、ストレージ装置１００は、受信したＩ／Ｏが書込要求であるか否かを判定する（Ｓ４２）。
【０１１６】
受信したＩ／Ｏが書込要求の場合、ストレージ装置１００は、書込対象のＬＵ３３０に対応する暗号状態管理テーブル２５１を特定する。次に、ストレージ装置１００は、特定した暗号状態管理テーブル２５１から、Ｒｅｋｅｙ後の暗号鍵名２５１２を抽出する（Ｓ４３）。
【０１１７】
次に、ストレージ装置１００は、Ｒｅｋｅｙ処理中における書込処理を実行する（Ｓ４４）。なお、Ｒｅｋｅｙ処理中における書込処理については、図９で詳細を説明する。
【０１１８】
そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を終了する。
【０１１９】
一方、受信したＩ／Ｏが書込要求ではない場合、ストレージ装置１００は、受信したＩ／Ｏが読出要求であるか否かを判定する（Ｓ４９）。
【０１２０】
受信したＩ／Ｏが読出要求ではない場合、ストレージ装置１００は、当該受信したＩ／Ｏに対応する処理を行う（Ｓ５５）。そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を終了する。
【０１２１】
一方、受信したＩ／Ｏが読出要求の場合、ストレージ装置１００は、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みであるか否かを判定する（Ｓ５１）。
【０１２２】
具体的には、ストレージ装置１００は、抽出したＩ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下であるか否かを判定する。
【０１２３】
Ｉ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下の場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みである。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ後の暗号鍵名２５１２を抽出する。
【０１２４】
次に、ストレージ装置１００は、Ｉ／Ｏ対象のブロックからデータを読み出す。次に、ストレージ装置１００は、読み出したデータを、抽出したＲｅｋｅｙ後の暗号鍵名２５１２によって識別される暗号鍵で復号化する（Ｓ５２）。
【０１２５】
次に、ストレージ装置１００は、復号化した読出データを、Ｉ／Ｏ要求の送信元のホスト計算機５００に送信する（Ｓ５３）。そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を終了する。
【０１２６】
Ｉ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７より大きい場合、ストレージ装置１００は、暗号状態管理テーブル２５１のスタートアドレス２５１５に、ブロック数２５１６を加算する。これによって、ストレージ装置１００は、連続しているＲｅｋｅｙ済みのブロックのうち、最後のブロックのアドレスを示すエンドアドレスを算出する。
【０１２７】
次に、ストレージ装置１００は、抽出したＩ／Ｏ対象のブロックのアドレスが、スタートアドレス２５１５から、算出したエンドアドレスまでの間となるレコードが暗号状態管理テーブル２５１に存在するか否かを判定する。
【０１２８】
当該レコードが暗号状態管理テーブル２５１に存在する場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みである。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ後の暗号鍵名２５１２を抽出する。
【０１２９】
次に、ストレージ装置１００は、Ｉ／Ｏ対象のブロックからデータを読み出す。次に、ストレージ装置１００は、読み出したデータを、抽出したＲｅｋｅｙ後の暗号鍵名２５１２によって識別される暗号鍵で復号化する（Ｓ５２）。
【０１３０】
次に、ストレージ装置１００は、復号化した読出データを、Ｉ／Ｏ要求の送信元のホスト計算機５００に送信する（Ｓ５３）。そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を終了する。
【０１３１】
一方、当該レコードが暗号状態管理テーブル２５１に存在しない場合、Ｉ／Ｏ対象のブロックのデータのＲｅｋｅｙは済んでいない。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ前の暗号鍵名２５１１を抽出する。
【０１３２】
次に、ストレージ装置１００は、Ｉ／Ｏ対象のブロックからデータを読み出す。次に、ストレージ装置１００は、読み出したデータを、抽出したＲｅｋｅｙ前の暗号鍵名２５１１によって識別される暗号鍵で復号化する（Ｓ５４）。
【０１３３】
次に、ストレージ装置１００は、復号化した読出データを、Ｉ／Ｏ要求の送信元のホスト計算機５００に送信する（Ｓ５３）。そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理を終了する。
【０１３４】
図９は、本発明の実施の形態のストレージ装置１００のＲｅｋｅｙ処理中における書込処理のフローチャートである。
【０１３５】
Ｒｅｋｅｙ処理中における書込処理は、Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理（図８）のステップＳ４４で実行される。
【０１３６】
まず、ストレージ装置１００は、Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理のステップＳ４１で受信したＩ／Ｏによって書き込み要求されたデータのサイズを特定する。次に、ストレージ装置１００は、特定した書込データのサイズが暗号化単位サイズより大きいか否かを判定する（Ｓ６０）。暗号化単位サイズは、暗号化されるデータの大きさである。なお、本実施の形態では、暗号化単位サイズは、一つのブロックに記憶されるデータの大きさである。
【０１３７】
書込データのサイズが暗号化単位サイズより大きい場合、ストレージ装置１００は、書込及びパリティ生成処理を行う（Ｓ６１）。なお、書込及びパリティ生成処理については、図１０で詳細を説明する。
【０１３８】
そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中における書込処理を終了する。
【０１３９】
一方、書込データのサイズが暗号化単位サイズ以下の場合、ストレージ装置１００は、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みであるか否かを判定する（Ｓ５１）。
【０１４０】
具体的には、ストレージ装置１００は、Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理のステップＳ４１で抽出したＩ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下であるか否かを判定する。
【０１４１】
Ｉ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下の場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みである。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ後の暗号鍵名２５１２を抽出する（Ｓ６２）。
【０１４２】
一方、Ｉ／Ｏ対象のブロックのアドレスが、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７より大きい場合、ストレージ装置１００は、暗号状態管理テーブル２５１のスタートアドレス２５１５に、ブロック数２５１６を加算する。これによって、ストレージ装置１００は、連続しているＲｅｋｅｙ済みの最後のブロックのアドレスを示すエンドアドレスを算出する。
【０１４３】
次に、ストレージ装置１００は、抽出したＩ／Ｏ対象のブロックのアドレスが、スタートアドレス２５１５から、算出したエンドアドレスまでの間となるレコードが暗号状態管理テーブル２５１に存在するか否かを判定する。
【０１４４】
当該レコードが暗号状態管理テーブル２５１に存在する場合、Ｉ／Ｏ対象のブロックのデータがＲｅｋｅｙ済みである。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ後の暗号鍵名２５１２を抽出する（Ｓ６２）。
【０１４５】
一方、当該レコードが暗号状態管理テーブル２５１に存在しない場合、Ｉ／Ｏ対象のブロックのデータのＲｅｋｅｙは済んでいない。そこで、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ前の暗号鍵名２５１１を抽出する（Ｓ６３）。
【０１４６】
次に、ストレージ装置１００は、ステップＳ６０で特定した書込データのサイズと暗号化単位サイズとの差分を算出する（Ｓ６４）。
【０１４７】
次に、ストレージ装置１００は、算出した差分に対応するデータ（補間データ）を、Ｒｅｋｅｙ処理中のＬＵ３３０に含まれる、Ｉ／Ｏ対象のブロックから読み出す（Ｓ６５）。
【０１４８】
次に、ストレージ装置１００は、読み出した補間データを、ステップＳ６２で抽出したＲｅｋｅｙ後の暗号鍵名２５１２又はステップＳ６３で抽出したＲｅｋｅｙ前の暗号鍵名２５１１によって識別される暗号鍵で復号化する。
【０１４９】
次に、ストレージ装置１００は、復号化した補間データを、書込データに付加する（Ｓ６６）。次に、ストレージ装置１００は、書込及びパリティ生成処理を行う（Ｓ６１）。なお、書込及びパリティ生成処理については、図１０で詳細を説明する。
【０１５０】
そして、ストレージ装置１００は、当該Ｒｅｋｅｙ処理中における書込処理を終了する。
【０１５１】
図１０は、本発明の実施の形態のストレージ装置１００の書込及びパリティ生成処理のフローチャートである。
【０１５２】
書込及びパリティ生成処理は、Ｒｅｋｅｙ処理中における書込処理（図９）のステップＳ６１で実行される。
【０１５３】
まず、ストレージ装置１００は、Ｒｅｋｅｙ処理中におけるホストＩ／Ｏ処理のステップＳ４３で抽出したＲｅｋｅｙ後の暗号鍵名２５１２によって識別される暗号鍵で、書込データを暗号化する（Ｓ７０）。なお、Ｒｅｋｅｙ処理中における書込処理のステップＳ６０において書込データのサイズが暗号化単位サイズ以下と判定された場合、暗号化される書込データは、補間データが付加された書込データである。
【０１５４】
次に、ストレージ装置１００は、Ｉ／Ｏ対象のブロックのデータと同じパリティグループに含まれるすべてのデータがＲｅｋｅｙ済みであるか否かを判定する（Ｓ７１）。
【０１５５】
具体的には、ストレージ装置１００は、Ｉ／Ｏ対象のブロックのデータと同じパリティグループに含まれるデータを記憶するブロックのアドレスをすべて特定する。次に、ストレージ装置１００は、特定したアドレスの最大値が、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下であるか否かを判定する。
【０１５６】
特定したアドレスの最大値が、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７以下の場合、当該パリティグループに含まれるすべてのデータがＲｅｋｅｙ済みである。そこで、ストレージ装置１００は、通常のパリティ生成処理を行う（Ｓ７７）。
【０１５７】
具体的には、ストレージ装置１００は、当該パリティグループに含まれるデータを、ＬＵ３３０から読み出す。次に、ストレージ装置１００は、読み出したデータ及びステップＳ７０で暗号化した書込データ（Ｒｅｋｅｙ済書込データ）に基づいて、パリティデータを作成する。
【０１５８】
次に、ストレージ装置１００は、作成したＲｅｋｅｙ済書込データ及びパリティデータを、ＬＵ３３０に書き込む（Ｓ７８）。そして、ストレージ装置１００は、当該書込及びパリティ生成処理を終了する。
【０１５９】
一方、特定したアドレスの最大値が、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７より大きい場合、ストレージ装置１００は、暗号状態管理テーブル２５１のスタートアドレス２５１５に、ブロック数２５１６を加算する。これによって、ストレージ装置１００は、連続しているＲｅｋｅｙ済みのブロックのうち、最後のブロックのアドレスを示すエンドアドレスを算出する。
【０１６０】
次に、ストレージ装置１００は、特定したすべてのアドレスが、スタートアドレス２５１５から、算出したエンドアドレスまでの間となるレコードが暗号状態管理テーブル２５１に存在するか否かを判定する。
【０１６１】
当該レコードが暗号状態管理テーブル２５１に存在する場合、当該パリティグループに含まれるすべてのデータがＲｅｋｅｙ済みである。そこで、そこで、ストレージ装置１００は、通常のパリティ生成処理を行う（Ｓ７７）。これによって、ストレージ装置１００は、パリティデータを作成する。
【０１６２】
次に、ストレージ装置１００は、作成したＲｅｋｅｙ済書込データ及びパリティデータを、ＬＵ３３０に書き込む（Ｓ７８）。そして、ストレージ装置１００は、当該書込及びパリティ生成処理を終了する。
【０１６３】
一方、当該レコードが暗号状態管理テーブル２５１に存在しない場合、当該パリティグループに含まれるデータの少なくとも一部がＲｅｋｅｙ済みではない。そこで、ストレージ装置１００は、当該パリティグループに含まれるデータのうち、Ｉ／Ｏ対象のブロックのデータ以外のすべてのデータを、ＬＵ３３０から読み出す（Ｓ７２）。
【０１６４】
次に、ストレージ装置１００は、読み出したデータに対して、Ｒｅｋｅｙ処理を行う（Ｓ７３）。
【０１６５】
具体的には、ストレージ装置１００は、暗号状態管理テーブル２５１から、Ｒｅｋｅｙ前の暗号鍵名２５１１及びＲｅｋｅｙ後の暗号鍵名２５１２を抽出する。次に、ストレージ装置１００は、Ｒｅｋｅｙ前の暗号鍵名２５１１によって識別される暗号鍵で、読み出したデータを復号化する。次に、ストレージ装置１００は、抽出したＲｅｋｅｙ後の暗号鍵名２５１２によって識別される暗号鍵で、復号化したデータを暗号化する。これによって、ストレージ装置１００は、パリティグループ内Ｒｅｋｅｙ済データを作成する。
【０１６６】
次に、ストレージ装置１００は、作成したパリティグループ内Ｒｅｋｅｙ済データ及びステップＳ７０で暗号化した書込データ（Ｒｅｋｅｙ済書込データ）に基づいて、パリティデータを作成する（Ｓ７４）。
【０１６７】
次に、ストレージ装置１００は、作成したＲｅｋｅｙ済書込データ、Ｒｅｋｅｙ済書込データ及びパリティデータを、ＬＵ３３０に書き込む（Ｓ７５）。そして、ストレージ装置１００は、当該書込及びパリティ生成処理を終了する。
【０１６８】
次に、ストレージ装置１００は、暗号状態管理テーブル２５１（図５）を更新する。
【０１６９】
具体的には、ストレージ装置１００は、暗号状態管理テーブル２５１に新たなレコードを追加する。次に、ストレージ装置１００は、新たなレコードのＲｅｋｅｙ前の暗号鍵名２５１１、Ｒｅｋｅｙ後の暗号鍵名２５１２、ＬＵＮ２５１３及びＲＡＩＤグループ番号２５１４に、当該暗号状態管理テーブル２５１の他のレコードと同一の値を格納する。次に、ストレージ装置１００は、新たなレコードのスタートアドレス２５１５に、ステップＳ７１で特定したアドレスの最小値を格納する。次に、ストレージ装置１００は、パリティグループを構成するデータの数を、新たなレコードのブロック数２５１６に格納する。
【０１７０】
このようにして、ストレージ装置１００は、暗号状態管理テーブル２５１を更新する。そして、ストレージ装置１００は、当該書込及びパリティ生成処理を終了する。
【０１７１】
図１１は、本発明の実施の形態のストレージ装置１００の障害発生時処理のフローチャートである。
【０１７２】
ストレージ装置１００は、Ｒｅｋｅｙ処理中に障害発生を検知すると、当該障害発生時処理を行う。
【０１７３】
まず、ストレージ装置１００は、Ｒｅｋｅｙ処理を中断する。次に、ストレージ装置１００は、キャッシュメモリ２５０に格納されている暗号変換済データ２５４をディスクドライブ３１０の退避領域に退避させる（Ｓ８１）。
【０１７４】
次に、ストレージ装置１００は、キャッシュメモリ２５０に格納されている暗号変換平文データ２５３を、ディスクドライブ３１０の退避領域に退避させる（Ｓ８２）。次に、ストレージ装置１００は、キャッシュメモリ２５０に格納されている暗号状態管理テーブル２５１を、ディスクドライブ３１０の退避領域に退避させる（Ｓ８３）。
【０１７５】
そして、ストレージ装置１００は、当該障害発生時処理を終了する。
【０１７６】
図１２は、本発明の実施の形態のストレージ装置１００の障害復旧時処理のフローチャートである。
【０１７７】
ストレージ装置１００は、障害復旧を検知すると、当該障害復旧処理を行う。
【０１７８】
まず、ストレージ装置１００は、ディスクドライブ３１０に退避されている暗号変換平文データ２５３及び暗号状態管理テーブル２５１を、キャッシュメモリ２５０に戻す（Ｓ８４）。次に、ストレージ装置１００は、暗号状態管理テーブル２５１のＲｅｋｅｙポインタ２５１７のアドレスからＲｅｋｅｙ処理を再開する（Ｓ８５）。そして、ストレージ装置１００は、当該障害復旧処理を終了する。
【０１７９】
以上のように、本実施の形態によれば、ストレージ装置１００は、Ｒｅｋｅｙ処理中に書込要求を受けると、書込データを、Ｒｅｋｅｙ処理してから、ＬＵ３３０に書き込む。更に、ストレージ装置１００は、書込対象のブロックのデータと同一のパリティグループに含まれるデータに対しても、Ｒｅｋｅｙ処理を行う。そのため、本実施の形態のストレージ装置１００は、書込データに対して改めてＲｅｋｅｙ処理を行う必要がない。よって、ストレージ装置１００の性能低下を小さくすることができる。
【０１８０】
なお、本実施の形態では、Ｒｅｋｅｙ処理について説明したが、平文から暗号文に変換する暗号化処理でも同様である。
【０１８１】
図１３は、本発明の実施の形態の計算機システムの暗号化処理の概要の説明図である。
【０１８２】
一つのＬＵ３３０は、複数のディスク領域６００から構成される。ディスク領域６００は、ディスクドライブ３１０の記憶領域のうち、当該ＬＵ３３０として提供される記憶領域である。つまり、一つのＬＵ３３０は、ＲＡＩＤグループ３２０を構成するディスクドライブ３１０の数と同数のディスク領域６００から構成される。
【０１８３】
コントローラ２００は、ＬＵ３３０に含まれるパリティグループごとに、暗号化処理を行う。なお、パリティグループは、ストライプ長のデータを、ＬＵ３３０を構成するディスク領域６００の数だけ含む。ストライプ長のデータは、ディスク領域６００に含まれる一つのブロックに記憶されるデータである。
【０１８４】
例えば、一つのＬＵ３３０が三つのディスク領域６００から構成される場合を説明する。この場合、パリティグループは、二つのデータ及び一つのパリティデータを含む。暗号化される前のパリティグループは、データ６２１、データ６２２及びパリティデータ６２３を含む。
【０１８５】
まず、コントローラ２００は、暗号化処理対象のパリティグループから、パリティデータ以外を読み出す。ここでは、コントローラ２００は、データ６２１及びデータ６２２を読み出す。
【０１８６】
次に、コントローラ２００は、読み出したデータ６２１及びデータ６２２を、暗号変換平文データ２５３として、キャッシュメモリ２５０に格納する。
【０１８７】
次に、コントローラ２００は、キャッシュメモリ２５０に格納されているデータ６２１及びデータ６２２を、暗号鍵で暗号化する。これによって、コントローラ２００は、データ６２１及びデータ６２２を、暗号データ６３１及び暗号データ６３２に変換する。
【０１８８】
次に、コントローラ２００は、変換によって作成された暗号データ６３１及び暗号データ６３２に基づいて、パリティデータ（暗号パリティデータ）６３３を作成する。
【０１８９】
次に、コントローラ２００は、変換によって作成された暗号データ６３１、暗号データ６３２及び作成した暗号パリティデータ６３３を、暗号変換済データ２５４として、キャッシュメモリ２５０に格納する。
【０１９０】
次に、コントローラ２００は、キャッシュメモリ２５０に格納された暗号データ６３１、暗号データ６３２及び暗号パリティデータ６３３を、暗号化処理対象のパリティグループに書き戻す。
【０１９１】
そして、コントローラ２００は、一つのパリティグループに対する暗号化処理を終了する。
【０１９２】
このように、暗号化処理では、コントローラ２００は、データ６２１及びデータ６２２を、暗号鍵（Ｒｅｋｅｙ前の暗号鍵）で復号化しない。暗号化処理のそれ以外の処理は、Ｒｅｋｅｙ処理と同様なので、説明を省略する。
【０１９３】
以上のように、ストレージ装置１００は、暗号化処理中に書込要求を受けると、書込データを暗号化してから、ＬＵ３３０に書き込む。更に、ストレージ装置１００は、書込対象のブロックのデータと同一のパリティグループに含まれるデータに対しても、暗号化処理を行う。そのため、本実施の形態のストレージ装置１００は、書込データに対して改めて暗号化処理を行う必要がない。よって、ストレージ装置１００の性能低下を小さくすることができる。
【図面の簡単な説明】
【０１９４】
【図１】本発明の実施の形態の計算機システムの構成のブロック図である。
【図２】本発明の実施の形態の計算機システムのＲｅｋｅｙ処理の概要の説明図である。
【図３】本発明の実施の形態のコントローラに記憶される暗号鍵管理テーブルの構成図である。
【図４】本発明の実施の形態のコントローラに記憶される暗号領域管理テーブルの構成図である。
【図５】本発明の実施の形態のコントローラに記憶される暗号状態管理テーブルの構成図である。
【図６】本発明の実施の形態の計算機システムのＲｅｋｅｙ処理のフローチャートである。
【図７】本発明の実施の形態の管理計算機に表示されるＲｅｋｅｙ指示画面の説明図である。
【図８】本発明の実施の形態のストレージ装置のＲｅｋｅｙ処理中におけるホストＩ／Ｏ処理のフローチャートである。
【図９】本発明の実施の形態のストレージ装置のＲｅｋｅｙ処理中における書込処理のフローチャートである。
【図１０】本発明の実施の形態のストレージ装置の書込及びパリティ生成処理のフローチャートである。
【図１１】本発明の実施の形態のストレージ装置の障害発生時処理のフローチャートである。
【図１２】本発明の実施の形態のストレージ装置の障害復旧時処理のフローチャートである。
【図１３】本発明の実施の形態の計算機システムの暗号化処理の概要の説明図である。
【符号の説明】
【０１９５】
１００    ストレージ装置
２００    コントローラ
２１０    ホストインタフェース
２２０    バックエンドコントローラ
２３０    ＤＣＴＬ
２４０    ＣＰＵ
２５０    キャッシュメモリ
２５１    暗号状態管理テーブル
２５３    暗号変換平文データ
２５４    暗号変換済データ
２６０    メモリ
２６１    暗号化／復号化判定部
２６２    暗号／復号処理部
２６３    暗号化制御部
２６４    暗号鍵管理部
２６５    暗号鍵管理テーブル
２６６    ホストＩ／Ｏ制御部
２６７    暗号領域管理テーブル
２７０    ブリッジ
２８０    暗号化回路
２９０    ＬＡＮインタフェース
３１０    ディスクドライブ
３２０    ＲＡＩＤグループ
３３０    ＬＵ
３３０Ａ    通常ＬＵ
３３０Ｂ    暗号ＬＵ
４００    管理計算機
４１０    ストレージ管理プログラム
【図１】
0005134894.tif 000002
【図２】
0005134894.tif 000003
【図３】
0005134894.tif 000004
【図４】
0005134894.tif 000005
【図５】
0005134894.tif 000006
【図６】
0005134894.tif 000007
【図７】
0005134894.tif 000008
【図８】
0005134894.tif 000009
【図９】
0005134894.tif 000010
【図１０】
0005134894.tif 000011
【図１１】
0005134894.tif 000012
【図１２】
0005134894.tif 000013
【図１３】
0005134894.tif 000014