(57)【特許請求の範囲】
【請求項１】
外部装置と通信可能に接続されており、 
複数の物理ディスクを含む物理記憶媒体によって提供される複数の単位論理記憶領域の中から選択した前記単位論理記憶領域によって、外部装置がデータ格納領域として使用する単位記憶領域である複数の仮想記憶領域を形成し、
前記仮想記憶領域のそれぞれに、前記仮想記憶領域に格納される前記データを暗号化することを示す暗号属性と、前記格納されるデータを平文のまま格納することを示す平文属性のいずれかを対応させて保持する記憶制御部を有するストレージ装置を備えているストレージシステムであって、
前記記憶制御部は、
前記物理ディスクから編成したＲＡＩＤグループとしてのパリティグループを構成し、前記パリティグループそれぞれと、前記単位論理記憶領域と、前記属性のいずれかとの対応関係を保持してこれらの対応関係を管理している論理記憶領域管理部をさらに備え、
前記論理記憶領域管理部は、 
前記単位論理記憶領域と、前記単位論理記憶領域それぞれを含むプール領域と、各プール領域と前記属性との対応関係を保持しており、
前記仮想記憶領域の属性を変更する命令を受信した場合、変更後の前記属性に対応付けられている前記プール領域が存在するか判定し、存在すると判定した場合、前記判定されたプール領域と対応付けられている前記単位論理記憶領域があるか判定する暗号化／復号化制御部と、
前記判定されたプール領域と対応付けられている前記単位論理記憶領域があると判定した場合、判定された当該単位論理記憶領域を前記仮想記憶領域と対応付け、前記属性変更の対象である仮想記憶領域に対応付けられている前記単位論理記憶領域に格納されていたデータを読み出して、当該読み出したデータを、前記他の属性で表される格納態様に従って、前記判定された単位論理記憶領域に格納し、
変更後の前記属性に対応付けられている前記プール領域が存在しないと判定した場合、前記単位論理記憶領域と対応付けられていない前記パリティグループがあるか判定し、あると判定した場合、前記パリティグループに含まれる前記単位論理記憶領域によってあらたに前記プール領域を作成して、前記属性の変更処理を実行するデータ移行処理部と、を備えている
ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記論理記憶領域管理部は、
前記属性の変更が実行された場合に、前記変更前の属性に対応付けられていた前記単位論理記憶領域と前記属性変更の対象であった前記仮想記憶領域との対応付けを解除し、解除された前記単位論理記憶領域に格納されていたデータを消去し、解除された前記単位論理記憶領域を前記変更前の属性に対応付けられている前記論理記憶領域群に対応付けて保持する、
ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記物理記憶媒体を有し、前記物理記憶媒体から作成された複数の単位論理記憶領域を提供する外部ストレージ装置をさらに備え、
前記ストレージ装置の前記記憶制御部は、前記外部ストレージ装置と通信可能に接続されており、前記外部ストレージ装置の前記単位論理記憶領域を含んで構成される、前記論理記憶領域群それぞれに、前記属性のいずれかを対応させて保持しており、前記外部ストレージ装置が提供する前記論理記憶領域を前記外部装置に提供する、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記ストレージ装置と通信可能に接続された管理計算機をさらに備え、
前記管理計算機は、前記ストレージ装置の記憶制御部に対して前記仮想記憶領域の属性の変更を命令するための情報を、入力された属性変更条件に基づいて生成し、前記ストレージ装置へ送信する、ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記管理計算機は、前記仮想記憶領域それぞれについて、当該仮想記憶領域の記憶容量、当該仮想記憶領域に対応付けられている前記論理記憶領域群、及び当該仮想記憶領域に対応付けられている前記属性のいずれかを表示するユーザインターフェース画面を出力する、ストレージシステム。
【請求項６】
請求項４に記載のストレージシステムであって、
前記管理計算機は、前記属性として、前記仮想記憶領域に格納するデータを暗号化することが設定されている場合、当該暗号化のために利用されることとなる暗号化方式を選択するためのユーザインターフェース画面を出力する、ストレージシステム。
【請求項７】
請求項４に記載のストレージシステムであって、
前記管理計算機は、前記仮想記憶領域について設定されている属性について、当該仮想記憶領域に格納されるデータを暗号化することを表す暗号属性に変更する命令を受け付けた場合に、前記ストレージ装置が提供している前記仮想記憶領域それぞれについて、その記憶容量、対応付けられている前記論理記憶領域群、及び暗号属性が設定された場合に対応付けられることとなる前記論理記憶領域群を少なくとも表示するためのユーザインターフェース画面を出力する、ストレージシステム。
【請求項８】
外部装置と通信可能に接続されており、 
複数の物理ディスクを含む物理記憶媒体によって提供される複数の単位論理記憶領域の中から選択した前記単位論理記憶領域によって、外部装置がデータ格納領域として使用する単位記憶領域である複数の仮想記憶領域を形成し、
前記仮想記憶領域のそれぞれに、前記仮想記憶領域に格納される前記データを暗号化することを示す暗号属性と、前記格納されるデータを平文のまま格納することを示す平文属性のいずれかを対応させて保持する記憶制御部を有するストレージ装置を備えているストレージシステムの運用方法であって、
前記記憶制御部は、
前記物理ディスクから編成したＲＡＩＤグループとしてのパリティグループを構成し、前記パリティグループそれぞれと、前記単位論理記憶領域と、前記属性のいずれかとの対応関係を保持してこれらの対応関係を管理している論理記憶領域管理部をさらに備え、
前記論理記憶領域管理部は、 
前記単位論理記憶領域と、前記単位論理記憶領域それぞれを含むプール領域と、各プール領域と前記属性との対応関係を保持しており、
前記仮想記憶領域の属性を変更する命令を受信した場合、変更後の前記属性に対応付けられている前記プール領域が存在するか判定し、存在すると判定した場合、前記判定されたプール領域と対応付けられている前記単位論理記憶領域があるか判定し、
前記判定されたプール領域と対応付けられている前記単位論理記憶領域があると判定した場合、判定された当該単位論理記憶領域を前記仮想記憶領域と対応付け、前記属性変更の対象である仮想記憶領域に対応付けられている前記単位論理記憶領域に格納されていたデータを読み出して、当該読み出したデータを、前記他の属性で表される格納態様に従って、前記判定された単位論理記憶領域に格納し、
変更後の前記属性に対応付けられている前記プール領域が存在しないと判定した場合、前記単位論理記憶領域と対応付けられていない前記パリティグループがあるか判定し、あると判定した場合、前記パリティグループに含まれる前記単位論理記憶領域によってあらたに前記プール領域を作成して、前記属性の変更処理を実行する、
ストレージシステムの運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの運用方法に係わり、特に仮想的な単位記憶領域毎に、格納されるデータの格納状態を表す属性を簡単にかつ適切に制御し、管理構成の簡素化を図ることができるストレージシステム及びストレージシステムの運用方法に関する。
【背景技術】
【０００２】
ホスト計算機等の外部装置に提供される記憶領域を動的に拡張する技術として、例えば、特許文献１に記載された、いわゆる「シンプロビジョニング（Thin Provisioning）」技術がある。
【０００３】
特許文献１に記載されているシンプロビジョニング技術によれば、ホスト計算機には、当該ホスト計算機と通信可能に接続されているストレージ装置により、仮想的な記憶領域である仮想ボリュームが提供される。加えて、ストレージ装置には、プール領域が用意される。プール領域は論理記憶領域である論理デバイス（Logical DEVice、以下「ＬＤＥＶ」あるいは「論理ボリューム」という。）の集合であり、各ＬＤＥＶは多数の単位記憶領域である論理ブロック（Logical Block、以下「ブロック」）から構成される。
【０００４】
ストレージ装置は、ホスト計算機からデータ書き込み要求を受信すると、プール領域に含まれるブロックのうち未割当てのブロックを仮想ボリュームに割り当てる。
【０００５】
上記のストレージ装置では、複数の仮想ボリュームが同じプール領域を共有するように構成することが可能である。この場合、同じプール領域に属する複数のブロックがそれぞれ異なる仮想ボリュームに割り当てられる。
【０００６】
一方、データセキュリティの観点から、ストレージ装置に格納されるデータを暗号化した状態にしておく必要が生じることがある。例えば特許文献２は、ストレージ装置に格納されるデータの機密性を保証するために、格納するデータを暗号化する機能を備えたストレージ装置を開示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１５９１５号公報
【特許文献２】特開２００５−３０３９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
記憶領域を動的に拡張することができる前記シンプロビジョニングの構成を備えたストレージ装置において、ストレージ装置に格納するデータを暗号化するか否かを、仮想ボリューム単位ではなく、パリティグループ単位など、物理的な記憶領域単位で指定する必要が生じることがある。この場合、ある仮想ボリュームに書き込まれる全てのデータを暗号化するには、暗号化するよう指示された物理的記憶領域に属するブロックのみを該仮想ボリュームに割り当てる必要がある。
【０００９】
これを実現するには、仮想ボリューム毎にブロック割当て元とするプール領域を指定できるようにし、仮想ボリュームに格納するデータを暗号化する場合には、該仮想ボリュームに暗号化されるブロックのみを含むＬＤＥＶ（以下「暗号ＬＤＥＶ」）から構成されたプール領域を指定すればよい。
【００１０】
ここで、複数の仮想ボリュームが、暗号化されないブロックのみを含むＬＤＥＶ（以下「平文ＬＤＥＶ」）から構成されたプールを共有している場合に、一部の仮想ボリュームに格納されたデータのみを暗号化する場合を想定する。仮想ボリュームに格納されたデータを暗号化するには、暗号ＬＤＥＶのみから構成されたプール領域を使う必要があるため、一部の仮想ボリュームのみを暗号化する場合でも、そのプール領域を構成する全てのＬＤＥＶを暗号化しなければならない。このため、一部の仮想ボリュームについて暗号化する場合でも、その影響がプール領域を共有する他の全ての仮想ボリュームに波及してしまうという問題がある。
【００１１】
また、この問題を解消すべくブロック単位で暗号化状態を管理するように構成することは、管理対象が複雑となるため現実的でない。この問題は、上記の暗号化状態を含む、データ格納状態に関して物理的な記憶領域単位で設定しようとする属性全般にあてはまる。
【００１２】
本発明の一つの目的は、仮想的な単位記憶領域毎に格納するデータの格納状態を表す属性を簡単にかつ適切に制御し、管理構成の簡素化を図ることができるストレージシステム及びストレージシステムの運用方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記の及び他の課題を解決するために、本願発明の一つの態様は、外部装置と通信可能に接続されており、複数の物理ディスクを含む物理記憶媒体によって提供される複数の単位論理記憶領域の中から選択した前記単位論理記憶領域によって、外部装置がデータ格納領域として使用する単位記憶領域である複数の仮想記憶領域を形成し、前記仮想記憶領域のそれぞれに、前記仮想記憶領域に格納される前記データを暗号化することを示す暗号属性と、前記格納されるデータを平文のまま格納することを示す平文属性のいずれかを対応させて保持する記憶制御部を有するストレージ装置を備えているストレージシステムであって、前記記憶制御部は、前記物理ディスクから編成したＲＡＩＤグループとしてのパリティグループを構成し、前記パリティグループそれぞれと、前記単位論理記憶領域と、前記属性のいずれかとの対応関係を保持してこれらの対応関係を管理している論理記憶領域管理部をさらに備え、前記論理記憶領域管理部は、前記単位論理記憶領域と、前記単位論理記憶領域それぞれを含むプール領域と、各プール領域と前記属性との対応関係を保持しており、前記仮想記憶領域の属性を変更する命令を受信した場合、変更後の前記属性に対応付けられている前記プール領域が存在するか判定し、存在すると判定した場合、前記判定されたプール領域と対応付けられている前記単位論理記憶領域があるか判定する暗号化／復号化制御部と、前記判定されたプール領域と対応付けられている前記単位論理記憶領域があると判定した場合、判定された当該単位論理記憶領域を前記仮想記憶領域と対応付け、前記属性変更の対象である仮想記憶領域に対応付けられている前記単位論理記憶領域に格納されていたデータを読み出して、当該読み出したデータを、前記他の属性で表される格納態様に従って、前記判定された単位論理記憶領域に格納し、変更後の前記属性に対応付けられている前記プール領域が存在しないと判定した場合、前記単位論理記憶領域と対応付けられていない前記パリティグループがあるか判定し、あると判定した場合、前記パリティグループに含まれる前記単位論理記憶領域によってあらたに前記プール領域を作成して、前記属性の変更処理を実行するデータ移行処理部とを備えているストレージシステム、である。
【発明の効果】
【００１４】
本発明によれば、仮想的な単位記憶領域毎に格納するデータの格納状態を表す属性を簡単にかつ適切に制御し、管理構成の簡素化を図ることができるストレージシステム及びストレージシステムの運用方法が提供される。
【図面の簡単な説明】
【００１５】
【図１】図１は本発明の一実施形態に係るストレージシステム１の概略構成を示す図である。
【図２】図２は、管理計算機２０、ホスト計算機３０に利用可能なコンピュータのハードウェア構成例を示す図である。
【図３】図３はホスト計算機３０のソフトウェア構成の一例を示す図である。
【図４Ａ】図４Ａはストレージ装置１０の共有メモリ１１４の構成の一例を示す図である。
【図４Ｂ】図４Ｂは共有メモリ１１４に格納されている制御プログラム１１４０の構成の一例を示す図である。
【図５】図５は管理計算機２０のソフトウェア構成の一例を示す図である。
【図６】図６はパリティグループ管理テーブル１１４１の一例を示す図である。
【図７】図７は外部ボリュームグループ管理テーブルの一例を示す図である。
【図８】図８はＬＤＥＶ管理テーブルの一例を示す図である。
【図９】図９は外部ＬＤＥＶ管理テーブルの一例を示す図である。
【図１０】図１０はＬＵ管理テーブルの一例を示す図である。
【図１１】図１１はプール管理テーブルの一例を示す図である。
【図１２】図１２は割当てブロック管理テーブルの一例を示す図である。
【図１３】図１３は未割当てブロック管理テーブルの一例を示す図である。
【図１４】図１４は削除予定ブロック管理テーブルの一例を示す図である。
【図１５Ａ】図１５Ａは仮想ボリュームの暗号化変換処理の概要を説明するための図である。
【図１５Ｂ】図１５Ｂは仮想ボリュームの暗号化変換処理の概要を説明するための図である。
【図１５Ｃ】図１５Ｃは仮想ボリュームの暗号化変換処理の概要を説明するための図である。
【図１６】図１６は物理記憶領域と仮想記憶領域との関係を示す図である。
【図１７】図１７は本発明の一実施形態に係るストレージシステムにおける暗号化指示受信時の処理を説明するためのフローチャートの一例である。
【図１８Ａ】図１８Ａは本発明の一実施形態に係るストレージ装置における暗号化データ移行処理を説明するためのフローチャートの一例である。
【図１８Ｂ】図１８Ｂは本発明の一実施形態に係るストレージ装置における暗号化データ移行処理を説明するためのフローチャートの一例であり、図１８Ａの続きである。
【図１９Ａ】図１９Ａは管理計算機に表示することができる管理画面の一例を示す図である。
【図１９Ｂ】図１９Ｂは管理計算機に表示することができる管理画面の一例を示す図である。
【図１９Ｃ】図１９Ｃは管理計算機に表示することができる管理画面の一例を示す図である。
【発明を実施するための形態】
【００１６】
次に、本発明について、その一実施形態に即して、図面を参照しつつ説明する。
＜本実施形態によるストレージシステム１の概略構成＞
図１は、本発明の一実施形態に係るストレージシステム１の概略構成を示す図である。
【００１７】
図１に示すように、ストレージシステム１は、ストレージネットワーク５１を介して相互に通信可能に接続された一以上のホスト計算機（外部装置）３０及び一以上のストレージ装置１０、外部ストレージ装置４０を含んで構成される。ストレージシステム１はまた、管理ネットワーク５０を介してストレージ装置１０、外部ストレージ装置４０のそれぞれに通信可能に接続された管理計算機２０を含んでいる。外部ストレージ装置４０については後述するが、本発明に必須の構成要素ではない。
【００１８】
ストレージネットワーク５１は、主として、ホスト計算機３０とストレージ装置１０との間のＩ／Ｏアクセスに基づく通信に使用される通信ネットワークである。ストレージネットワーク５１はまた、ストレージ装置１０と外部ストレージ装置４０との間のＩ／Ｏアクセスに基づく通信にも使用される。
【００１９】
ストレージネットワーク５１には、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）といったネットワークを採用することができ、典型的には、複数のネットワークスイッチ、ハブ等の要素を含んで、冗長系として構成される。本実施形態では、ストレージネットワーク５１は、ファイバーチャネル（Fibre Channel、以下「ＦＣ」）プロトコルベースのＳＡＮ（ＦＣ−ＳＡＮ）で構成されているものとする。
【００２０】
管理ネットワーク５０は、管理計算機２０と、ホスト計算機３０及びストレージ装置１０、外部ストレージ装置４０との間を通信可能に接続している通信ネットワークであり、管理計算機２０がホスト計算機３０及びストレージ装置１０、外部ストレージ装置４０の管理を行う際の通信に使用される。本実施形態では、管理ネットワーク５０は、インターネットプロトコル（Internet Protocol、以下「ＩＰ」）ベースのＬＡＮで構成されているものとする。
【００２１】
（ホスト計算機３０）
ホスト計算機３０は、例えば、銀行の業務システムや航空会社の座席予約業務システム等に用いられるアプリケーションプログラムを実行するコンピュータである。
【００２２】
図２にこのホスト計算機３０、及び後述する管理計算機２０に利用可能なコンピュータ１０００のハードウェア構成の一例を示している。このコンピュータ１０００は、中央処理装置１００１（例えばＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）、以下簡単のため「ＣＰＵ」と称する）、主記憶装置１００２（例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory））、補助記憶装置１００３（例えばハードディスクドライブ（Hard Disk Drive、以下「ＨＤＤ」））、ユーザの操作入力を受け付ける入力装置１００４（例えばキーボードやマウス）、出力装置１００５（例えば液晶モニタ）、他の装置との間の通信を実現する通信インターフェース１００６（例えばＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adapter）)を備えている。
【００２３】
図３にホスト計算機３０のソフトウェア構成の一例を示している。ホスト計算機３０は、データＩ／Ｏ処理等の計算機としての基本的な機能を提供するオペレーティングシステム（Operating System、以下「ＯＳ」）３０２と、そのＯＳ３０２上で動作するアプリケーションプログラム３０１等のソフトウェア資源を備えている。これによって、ホスト計算機３０は、ＣＰＵ１００１の制御の下、各種のアプリケーションプログラム３０１を実行して、他のハードウェア資源との協働作用により、所望の処理を実現する。
【００２４】
典型的には、ホスト計算機３０は、ＣＰＵの制御の下、ＯＳ上でアプリケーションプログラムを実行する過程において、後述するストレージ装置１０、及び外部ストレージ装置４０内に格納されたデータにアクセスし、所望の業務処理を実現する。
【００２５】
（ストレージ装置１０）
ストレージ装置１０は、ホスト計算機３０にデータ格納のための記憶領域を提供するサブシステムである。ストレージ装置１０は、図１に示すように、例えば複数のＨＤＤ（物理記憶媒体）１２１を備えるディスクアレイによって編成された、適宜のタイプのＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）システムとすることができる。なお、ＨＤＤ１２１に代えて、ＳＳＤ（Solid State Drive、半導体ドライブ）等の他の記憶媒体を使用してもよい。
【００２６】
ストレージ装置１０は、ディスク装置１２と、ホスト計算機３０との間のデータＩＯ処理、ＨＤＤ１２１との間のデータＩＯ処理、及び外部ストレージ装置４０との間のデータＩＯ処理を実行するディスク制御部１１と、を備える。
【００２７】
ディスク制御部１１は、ホストインターフェース（interface、以下「ＩＦ」）１１１、ＣＰＵ１１２、キャッシュメモリ（Cache Memory、以下「ＣＭ」）１１３、共有メモリ（Shared Memory、以下「ＳＭ」）１１４、ディスクＩＦ１１５、管理ＩＦ１１６、及び外部ＩＦ１１７を有する。
【００２８】
ホストＩＦ１１１は、ホスト計算機３０とストレージ装置１０との間での通信を可能とするために設けられている通信インターフェースであり、本実施形態ではＦＣネットワークであるストレージネットワーク５１と接続するチャネルアダプタ（Channel Adaptor、以下「ＣＨＡ」）である。
【００２９】
ＣＭ１１３は、ＨＤＤ１２１に書き込まれたデータ、あるいはＨＤＤ１２１から読み出されたデータを一時的に記憶するための記憶領域を提供する。
【００３０】
ＳＭ１１４は、例えば、ストレージ装置１０のデータＩＯを制御するためのプログラム、及びその制御に使用される各種管理テーブルを記憶する。また、ＳＭ１１４には、本実施形態におけるデータ暗号化制御処理を実行するための制御プログラム、及びその制御プログラムが使用する管理テーブル類も格納される。
【００３１】
図４Ａ、図４Ｂに、ＳＭ１１４の構成の一例を示している。ＳＭ１１４は、論理記憶領域管理部として機能する制御プログラム１１４０と、管理テーブル類１１４１〜１１４９を有する。制御プログラム１１４０は、ホスト計算機３０からのＩ／Ｏアクセスを処理するＩ／Ｏ処理部１１４０１、ディスク装置１２へのＩ／Ｏアクセスを制御するディスク管理部１１４０２、外部ストレージ装置へのＩ／Ｏアクセスを制御する外部ストレージ制御部１１４０３、ＨＤＤ１２１に格納するデータの暗号化及び復号化を行う暗号化／復号化制御部１１４０４、仮想ボリュームへのブロック割当て及び解除を行うブロック管理部１１４０５、論理記憶領域群としてのプールを管理するプール管理部１１４０６、既に格納されている平文データの暗号化あるいは暗号データの復号化を行うデータ移行処理部１１４０７を含む、ストレージ装置１０を制御するための各種機能部を備えている。
【００３２】
ブロック管理部１１４０５、プール管理部１１４０６は、仮想ボリュームへのブロック割当てを制御するシンプロビジョニングの機能を備える。ディスク制御部１１のＣＰＵ１１２が制御プログラム１１４０を実行することで、上記の各機能が実現される。
【００３３】
また、ＳＭ１１４には、パリティグループ管理テーブル１１４１、外部ボリュームグループ管理テーブル１１４２、ＬＤＥＶ管理テーブル１１４３、外部ＬＤＥＶ管理テーブル１１４４、ＬＵ管理テーブル１１４５、プール管理テーブル１１４６、割当てブロック管理テーブル１１４７、未割当てブロック管理テーブル１１４８、及び削除予定ブロック管理テーブル１１４９が格納されている。各テーブルの詳細については、関連する図面を参照して後述する。
【００３４】
ディスクＩＦ１１５は、ディスク制御部１１とディスク装置１２との間での通信を可能とするために設けられる通信インターフェースとしてのディスクアダプタ（DisK Adaptor、以下「ＤＫＡ」）である。
【００３５】
管理ＩＦ１１６は、ディスク制御部１１と管理計算機２０との間での通信を可能とするために設けられる通信インターフェースであり、本実施形態ではＬＡＮと接続するためのＮＩＣである。
【００３６】
外部ＩＦ１１７は、ストレージ装置１０と外部ストレージ装置４０との間での通信を可能とするために設けられる通信インターフェースであり、本実施形態ではホストＩＦ１１１と同様に、ＳＡＮと接続するＣＨＡである。
【００３７】
（外部ストレージ装置４０）
外部ストレージ装置４０は、図１に関して前述したストレージ装置１０と同様のハードウェア構成を有している。外部ストレージ装置４０は、自身が備える論理ボリュームを、ストレージ装置１０が自身に作成した仮想的なボリュームである外部ボリュームに対応付けることができる。この対応付けを通じて、外部ストレージ装置４０の論理ボリュームをストレージ装置１０に取り込み、取り込んだ論理ボリュームをストレージ装置１０側の論理ボリュームとする外部接続技術によって、その論理記憶領域が、ストレージ装置１０内部に設けられている記憶資源としてホスト計算機３０に提供される。
【００３８】
（管理計算機２０）
管理計算機２０は、ストレージ装置１０を管理するためのコンピュータであって、典型的には、汎用のコンピュータが用いられる。すなわち、図２に関して説明したように、管理計算機２０は、ＣＰＵ、メモリ、ネットワークＩＦ等のハードウェア資源を備えている。
【００３９】
図５に、管理計算機２０のソフトウェア構成の一例を示す。管理計算機２０は、ＣＰＵの制御の下、ＯＳ２０２上で管理プログラム２０１を実行することにより、ストレージ管理者にストレージ装置１０及び外部ストレージ装置４０を管理するためのユーザインターフェースを提供し、またストレージ管理者の入力操作を介して、ストレージ装置１０及び外部ストレージ装置４０に対する設定や処理実行指示、運用状況の監視といったストレージシステム１の管理を行う。例えば、管理計算機２０は、ストレージ管理者の操作に基づいて、仮想ボリュームに格納されたデータの暗号化状態設定（暗号化の有効化／無効化）を行う。
【００４０】
より詳細には、本実施形態の処理フローに関して後述するように、例えば、既にストレージ装置１０あるいは外部ストレージ装置４０に格納されているデータを暗号化するために、ストレージ管理者によって指定された仮想ボリュームを暗号化するための暗号化移行処理命令を、ストレージ装置１０に送ることが出来る。なお、管理計算機２０は、図１に例示するように独立した計算機としてではなく、例えばストレージ装置１０に組み込むことによってストレージシステム１に導入することができ、またそれ以外の適当なハードウェア構成を採用することができる。
【００４１】
以上が、本発明の一実施形態に係るストレージシステム１の構成例の説明である。この構成は一例であり、本発明は、図示され、また上記に説明されたストレージシステム１の構成に限定されるものではない。
【００４２】
＜管理テーブル＞
次に、本実施形態のストレージシステム１で実行されるデータ暗号化制御方法において使用される各種管理テーブルの構成について説明する。なお、各テーブル中の記号「＃」は番号を示す略号である。
【００４３】
（パリティグループ管理テーブル１１４１）
図６は、パリティグループ管理テーブル１１４１の構成例を示す図である。パリティグループ管理テーブル１１４１は、パリティグループの構成を管理するためのテーブルである。
【００４４】
図６に示すように、パリティグループ管理テーブル１１４１の各エントリは、パリティグループ番号欄１１４１１、ディスク番号欄１１４１２、ＲＡＩＤレベル欄１１４１３、暗号属性欄１１４１４、暗号鍵欄１１４１５、及び暗号化方式欄１１４１６を含む。ここで、「パリティグループ」は、１のＲＡＩＤグループ内で同一のパリティデータを共有するデータからなるグループである。
【００４５】
パリティグループ番号欄１１４１１には、ストレージ装置１０のＲＡＩＤグループによって提供されるパリティグループ毎に付与される識別符号である、パリティグループの識別番号が記録される。ディスク番号欄１１４１２には、各パリティグループを構成している各ＨＤＤ１２１に付与された識別符号であるディスク番号が記録される。図６の例では、パリティグループ１は、ディスク１〜４で構成されている。
【００４６】
ＲＡＩＤレベル欄１１４１３には、各パリティグループを構成するＲＡＩＤグループのＲＡＩＤレベルが記録される。図６の例では、各パリティグループがＲＡＩＤ５で構成されている。
【００４７】
暗号属性欄１１４１４には、各パリティグループに格納するデータを暗号化するか否かを示す暗号属性が記録される。具体的には、暗号属性が「平文」の場合は、平文のままのデータを当該パリティグループに格納し、暗号属性が「暗号」の場合はデータを暗号化して当該パリティグループに格納する。
【００４８】
暗号鍵欄１１４１５、及び暗号化方式欄１１４１６は、暗号属性欄１１４１４に「暗号」が記録されている場合に、それぞれ当該パリティグループに格納するデータを暗号化する際に使用する暗号鍵と暗号化方式とが記録される。図６の例では、パリティグループ２についてデータ暗号化が設定されており、暗号鍵欄１１４１５に記録されている鍵「0x12345678」を用いて、暗号化方式欄１１４１６に記録された「AES-CBC-256」（鍵長２５６ビットのＡＥＳ−ＣＢＣ方式暗号化アルゴリズム）によって暗号化することが示されている。なお、暗号化方式として、暗号アルゴリズム、暗号化モード、鍵長などは、図示の例に限らず適宜決定することができる。
【００４９】
（外部ボリュームグループ管理テーブル１１４２）
図７は、外部ボリュームグループ管理テーブル１１４２の構成例を示す図である。外部ボリュームグループ管理テーブル１１４２は、外部ボリュームグループの構成を管理するためのテーブルである。外部ボリュームグループとは、外部ストレージ装置４０に設けられている１以上のＨＤＤ１２１により提供される記憶領域である。具体的には、外部ボリュームグループとは、外部ストレージ装置４０によって提供されている論理ボリュームを含んで形成されている。
【００５０】
図７に示すように、外部ボリュームグループ管理テーブル１１４２の各エントリは、外部ボリュームグループ番号欄１１４２１、ＷＷＮ欄１１４２２、ＬＵＮ欄１１４２３、暗号属性欄１１４２４、暗号鍵欄１１４２５、及び暗号化方式欄１１４２６を含む。
【００５１】
外部ボリュームグループ番号欄１１４２１には、各外部ボリュームグループを識別するための識別符号である外部ボリュームグループ番号が記録される。ＷＷＮ欄１１４２２には、各外部ボリュームグループに対応づけられる外部ストレージ装置４０が有する論理ボリュームに接続するＣＨＡに割り当てられたＷＷＮが記録される。
【００５２】
ＬＵＮ欄１１４２３には、各外部ボリュームグループに対応する外部ストレージ装置４０側の論理ボリュームに付与されたＬＵＮが記録される。暗号属性欄１１４２４、暗号鍵欄１１４２５、及び暗号化方式欄１１４２６は、各外部ボリュームグループの暗号化に関する情報を記録し、パリティグループ管理テーブル１１４１における同一項目に対応する。
【００５３】
（ＬＤＥＶ管理テーブル１１４３）
図８に、ＬＤＥＶ管理テーブル１１４３の構成例を示す。ＬＤＥＶ管理テーブル１１４３は、パリティグループ上に作成された論理ボリュームであるＬＤＥＶの構成を管理するためのテーブルである。図８に示すように、ＬＤＥＶ管理テーブル１１４３の各エントリは、パリティグループ番号欄１１４３１、ＬＤＥＶ番号欄１１４３２、開始アドレス欄１１４３３、及び終了アドレス欄１１４３４を含む。
【００５４】
パリティグループ番号欄１１４３１は、図６のパリティグループ管理テーブル１１４１における同一項目と同様である。ＬＤＥＶ番号欄１１４３２は、各パリティグループ上に作成されたＬＤＥＶそれぞれを識別するための識別符号であるＬＤＥＶ番号が記録される。開始アドレス欄１１４３３、及び終了アドレス欄１１４３４には、それぞれ対応するＬＤＥＶを構成する複数のブロックについて、その開始ブロック、及び終了ブロックのＬＢＡが記録される。図８の例では、各ＬＤＥＶが２００ブロックを含んでいることを示している。
【００５５】
（外部ＬＤＥＶ管理テーブル１１４４）
図９は、外部ＬＤＥＶ管理テーブル１１４４の構成例を示す。外部ＬＤＥＶ管理テーブル１１４４は、外部ボリュームグループ上に作成された論理ボリュームであるＬＤＥＶの構成を管理するためのテーブルである。図９に示すように、外部ＬＤＥＶ管理テーブル１１４４の各エントリは、外部ボリュームグループ番号欄１１４４１、ＬＤＥＶ番号欄１１４４２、開始アドレス欄１１４４３、及び終了アドレス欄１１４４４を含む。各欄に記録される項目は、図８のＬＤＥＶ管理テーブル１１４３における対応する項目と同様である。
【００５６】
前述のように、外部ストレージ装置４０によって提供されるＬＤＥＶは、ストレージ装置１０のディスク制御部１１に外部接続されることで、ストレージ装置１０内部のＨＤＤ１２１によって提供されるＬＤＥＶと同じように、ホスト計算機３０のデータ格納領域として利用される。
【００５７】
（ＬＵ管理テーブル１１４５）
図１０は、ＬＵ管理テーブル１１４５の構成例を示す。ＬＵ管理テーブル１１４５は、ホスト計算機３０に提供される仮想ボリュームである各ＬＵの構成を管理するためのテーブルである。図１０に示すように、ＬＵ管理テーブル１１４５の各エントリは、仮想ボリューム番号欄１１４５１、ＷＷＮ欄１１４５２、ＬＵＮ欄１１４５３、容量欄１１４５４、及びプール番号欄１１４５５を含む。このテーブルは、ホスト計算機３０がデータ記憶領域として認識している仮想ボリュームと実際にそれを構成しているＬＤＥＶとの対応関係を示している。
【００５８】
仮想ボリューム番号欄１１４５１には、ホスト計算機３０に提供されている各仮想ボリュームを識別するための識別符号である仮想ボリューム番号が記録される。ＷＷＮ欄１１４５２には、各仮想ボリュームがホスト計算機３０とのデータＩＯに使用しているＣＨＡに割り当てられているＷＷＮが記録される。
【００５９】
ＬＵＮ欄１１４５３には、各仮想ボリュームに付与されているＬＵＮが記録される。容量欄１１４５４には、各仮想ボリュームに割り当てられている記憶容量が記録される。プール番号欄１１４５５には、各仮想ボリュームを構成するブロックが属するプールを識別するための識別符号であるプール番号が記録される。
【００６０】
（プール管理テーブル１１４６）
図１１は、プール管理テーブル１１４６の構成例を示す。プール管理テーブル１１４６は、各プールの構成を管理するためのテーブルである。図１１に示すように、プール管理テーブル１１４６の各エントリは、プール番号欄１１４６１、ＬＤＥＶ番号欄１１４６２、プール容量欄１１４６３、プール利用率欄１１４６４、暗号属性欄１１４６５、及び暗号化方式欄１１４６６を含む。
【００６１】
プール番号欄１１４６１には、各プールを互いに識別するために各プールに付与される識別符号であるプール番号が記録される。ＬＤＥＶ番号欄１１４６２には、各プールを構成するＬＤＥＶそれぞれに付されている識別符号であるＬＤＥＶ番号が記録される。プール容量欄１１４６３には、各プールが有する記憶領域のサイズが記録される。プール利用率欄１１４６４には、各プールの記憶容量のうち、データ格納に使用されている容量の比率が記録される。プール利用率欄１１４６４に記録されている利用率の数値に基づいて、当該プールに属するブロックを仮想ボリュームに割り当てることができるか判定される。なお、プール利用率に代えて、実際に当該プールに残されている空き容量を記録するようにしてもよい。
【００６２】
暗号属性欄１１４６５には、各プールに登録可能なＬＤＥＶの暗号属性が記録される。すなわち、暗号属性が「暗号」と記録されているプールには、暗号属性が「暗号」であるパリティグループ上に形成されたＬＤＥＶのみを登録することができる。一方、暗号属性が「平文」と記録されているプールには、暗号属性が「平文」であるパリティグループ上に形成されたＬＤＥＶのみを登録することができる。
【００６３】
暗号化方式欄１１４６６には当該プールの暗号属性が「暗号」の場合のみ暗号化方式に関するデータ（図６のパリティグループ管理テーブル１１４１における同一項目に対応）が記録される。例えば、当該プールには、暗号化方式欄１１４６６に記録された暗号化方式と同一の暗号化方式で暗号化されたデータが格納されるＬＤＥＶのみを登録できると規定することができる。あるいは、暗号属性欄１１４６５に「暗号」が記録されているにもかかわらず、暗号化方式欄１１４６６に暗号化方式が記録されていない場合は、任意の方式で暗号化されているＬＤＥＶを登録することができると規定してもよい。
【００６４】
（割当てブロック管理テーブル１１４７）
図１２は、割当てブロック管理テーブル１１４７の構成例を示す。割当てブロック管理テーブル１１４７は、仮想ボリュームである各ＬＵに割り当てられたブロックの構成を管理するためのテーブルである。図１２に示すように、割当てブロック管理テーブル１１４７の各エントリは、ＬＵＮ欄１１４７１、開始アドレス欄１１４７２、終了アドレス欄１１４７３、ＬＤＥＶ番号欄１１４７４、開始アドレス欄１１４７５、及び終了アドレス欄１１４７６を含む。
【００６５】
ＬＵＮ欄１１４７１には、各ＬＵに付与されている識別符号としてのＬＵＮが記録される。開始アドレス欄１１４７２及び終了アドレス欄１１４７３には、それぞれ各ＬＵを構成している各論理アドレス範囲の開始ブロックを示すＬＢＡ、終了ブロックを示すＬＢＡが記録される。ＬＤＥＶ番号欄１１４７４には、各ＬＵに割り当てられているブロックを含んでいるＬＤＥＶに付与されたＬＤＥＶ番号が記録される。開始アドレス欄１１４７５及び終了アドレス欄１１４７６には、各ＬＵに割り当てられている各ブロックの開始ブロックのＬＢＡ及び終了ブロックのＬＢＡが記録される。
【００６６】
（未割当てブロック管理テーブル１１４８）
図１３は、未割当てブロック管理テーブル１１４８の構成例を示す。未割当てブロック管理テーブル１１４８は、ＬＵに割り当られていないブロック、言い換えれば、ＬＵへの割当てが可能であるブロックの構成を管理するためのテーブルである。図１３に示すように、未割当てブロック管理テーブル１１４８の各エントリは、プール番号欄１１４８１、ＬＤＥＶ番号欄１１４８２、開始アドレス欄１１４８３、及び終了アドレス欄１１４８４を含む。
【００６７】
プール番号欄１１４８１及びＬＤＥＶ番号欄１１４８２には、それぞれ未割当てのＬＤＥＶを有するプールのプール番号と、未割当てブロックを含むＬＤＥＶのＬＤＥＶ番号が記録される。開始アドレス欄１１４８３及び終了アドレス欄１１４８４には、それぞれプールに登録されたＬＤＥＶを構成するブロックのうち、まだＬＵに割り当てられていないブロックの開始ブロックのＬＢＡ及び終了ブロックのＬＢＡが記録される。
【００６８】
（削除予定ブロック管理テーブル１１４９）
図１４は、削除予定ブロック管理テーブル１１４９の構成例を示す。削除予定ブロック管理テーブル１１４９は、既にＬＵへの割当てが解除されており、消去されるべきデータを格納しているブロックである削除予定ブロックの構成を管理するためのテーブルである。図１４に示すように、削除予定ブロック管理テーブル１１４９の各エントリは、プール番号欄１１４９１、ＬＤＥＶ番号欄１１４９２、開始アドレス欄１１４９３、及び終了アドレス欄１１４９４を含む。
【００６９】
プール番号欄１１４９１、ＬＤＥＶ番号欄１１４９２、開始アドレス欄１１４９３、及び終了アドレス欄１１４９４にはそれぞれ、既にＬＵへの割当てが解除されており、消去すべきデータを格納しているブロックを有するプールのプール番号、ＬＤＥＶ番号、及び該当するブロックの開始ブロックのＬＢＡ、終了ブロックのＬＢＡが記録される。
【００７０】
＜本実施形態における暗号化制御処理の概要＞
次に、図１５Ａから図１５Ｃを参照して、本実施形態のストレージシステム１において行われるデータ暗号化制御処理（仮想ボリュームの暗号化制御処理）の一例を示す。暗号化制御処理の説明に先立って、仮想ボリュームとプールとの関係を説明する。
【００７１】
前述のように、仮想ボリュームは、ホスト計算機３０にデータ格納領域として提供される仮想的な論理ボリュームである。プール領域は、単位論理記憶領域としてのＬＤＥＶの集合であり、多数のブロックによって構成されている。図１６に、物理記憶領域、ＬＤＥＶと、仮想ボリューム（仮想記憶領域）との関係を模式的に示している。
【００７２】
ストレージ装置１０が、ホスト計算機３０からの仮想ボリュームに対するデータ書込み要求を受信し、その仮想ボリュームに新たにデータを格納する必要が生じると、制御プログラム１１４０は、プール領域に含まれる未割当てブロックをその仮想ボリュームに割り当て、書込み要求に関するデータをあらたにその仮想ボリュームに割り当てられたブロックに格納する。なお、ブロック割当て先（各ＬＵのＬＢＡの範囲）とブロック割当て元（各ＬＤＥＶのＬＢＡの範囲）との対応関係は、割当てブロック管理テーブル１１４７で管理される。
【００７３】
仮想ボリュームに格納されるデータが暗号化されるか否かは、仮想ボリュームと関連づけられたプールについて設定されている暗号属性によって規定される。具体的には、プール管理テーブル１１４６の暗号属性欄１１４６５に「暗号」と記録されているプールと関連づけられている仮想ボリュームにデータを格納する場合は、書き込み対象であるデータは暗号化され、「平文」と記録されているプールと関連づけられている仮想ボリュームにデータを格納する場合は、当該データは平文のまま格納される。
【００７４】
ホスト計算機３０が認識する仮想ボリューム単位ではなく、プール単位など、ストレージ装置１０が認識する論理記憶領域単位で暗号化するか否かが決定される場合において、既に平文でデータが格納されている仮想ボリュームを暗号化する場合を想定する。この場合、暗号化しようとする仮想ボリュームにブロックを提供しているプールと同じプールを共有する全ての仮想ボリュームのデータも暗号化する必要がある。その結果、暗号化が不要なデータまで暗号化することとなり、ストレージシステム１に不要の負荷をかけることになる。
【００７５】
本実施形態による、特定の仮想ボリュームに格納されているデータのみを暗号化するための処理を、図１５Ａから図１５Ｃに模式的に示している。なお、図１５Ａから図１５Ｃでは、仮想ボリューム１に格納されたデータのみを暗号化する例を示している。
【００７６】
図１５Ａに示すように、ストレージ装置１０が、仮想ボリューム１に格納されたデータを暗号化する旨を示す命令を管理計算機２０から受信すると、ストレージ装置１０のディスク制御部１１のＳＭ１１４に格納されている制御プログラム１１４０が実行されることにより、ストレージ装置１０が管理しているプールの中から暗号化条件と適合するプールを検索し、該当プールがあると判定した場合、当該プールをデータ移行先プールと決定する。
【００７７】
次に、図１５Ｂに示すように、制御プログラム１１４０の実行により、プール１に格納されている仮想ボリューム１のデータが読み出され、制御プログラム１１４０の暗号化／復号化制御部１１４０４によって暗号化され、その暗号化されたデータがデータ移行処理部１１４０７によって移行先プールに格納される。上記のデータ暗号化及び移行処理が、制御プログラム１１４０により、仮想ボリューム１に割り当てられている全ブロックについて実行される。
【００７８】
最後に、図１５Ｃに示すように、プール１に格納されている仮想ボリューム１に割り当てられていた平文データを消去し、データが消去されたブロックを未割当てブロックとして解放する。
【００７９】
＜本実施形態におけるデータ暗号化制御処理フロー＞
次に、図１７を参照して、ストレージ装置１０が管理計算機２０から特定の仮想ボリュームに対するデータ暗号化指示を受信した場合に実行される処理フローの一例を説明する。この処理フローは、ストレージ装置１０のディスク制御部１１にあるＳＭ１１４に格納されている制御プログラム１１４０を、ディスク制御部１１のＣＰＵ１１２が実行することにより行われる。以下、制御プログラム１１４０あるいはそれに含まれる機能部が主体として実行されている処理は、前記制御プログラム１１４０のＣＰＵ１１２による実行によって実現されているものである。また、以下の処理フローにおいて、符号「Ｓ」はステップを表す。
【００８０】
まず、ストレージ装置１０の制御プログラム１１４０は、管理計算機２０から暗号化指示を受信する（Ｓ１７１）。この暗号化条件には、使用される暗号アルゴリズム、鍵長などを含む暗号化方式、ストレージ装置１０が有するＬＤＥＶに暗号データを格納するか或いは外部ストレージ装置４０が有するＬＤＥＶに暗号データを格納するかの指定等の項目が含まれている。制御プログラム１１４０の暗号化／復号化制御部１１４０４は、受信した暗号化指示から暗号化条件を取得する。
【００８１】
次に、制御プログラム１１４０は、プール管理テーブル１１４６を参照し、暗号属性１１４６５が「暗号」であるプールのうち、暗号データを格納するのに必要な記憶容量が確保でき、かつ暗号化条件に合致したプールを検索する（Ｓ１７２）。
【００８２】
制御プログラム１１４０の暗号化／復号化制御部１１４０４は、プール管理テーブル１１４６のプール利用率欄１１４６４、暗号属性欄１１４６５、及び暗号化方式欄１１４６６の記録に基づいて暗号化条件に合致するプールがあるか判定し（Ｓ１７３）、暗号化条件に合致したプールがあると判定した場合（Ｓ１７３：Ｙｅｓ）、Ｓ１７８のデータ移行処理を実行して処理を終了する。Ｓ１７８のデータ移行処理については、図１８に関して後述する。
【００８３】
Ｓ１７３において、暗号化条件に合致したプールがあると判定されなかった場合（Ｓ１７３：Ｎｏ）、暗号化／復号化制御部１１４０４は、パリティグループ管理テーブル１１４１、外部ボリュームグループ管理テーブル１１４２、ＬＤＥＶ管理テーブル１１４３、及び外部ＬＤＥＶ管理テーブル１１４４を参照し、ＬＤＥＶが作成されていないパリティグループ又は外部ボリュームグループを検索する（Ｓ１７４）。
【００８４】
暗号化／復号化制御部１１４０４は、ＬＤＥＶ管理テーブル１１４３及び外部ＬＤＥＶ管理テーブル１１４４に登録されていないパリティグループ又は外部ボリュームグループがあるかを調べて、ＬＤＥＶが作成されていないパリティグループ又は外部ボリュームグループがあるか判定する（Ｓ１７５）。
【００８５】
ＬＤＥＶが作成されていないパリティグループ又は外部ボリュームグループがあると判定した場合（Ｓ１７５：Ｙｅｓ）、暗号化／復号化制御部１１４０４は、暗号化フォーマットを行ったＬＤＥＶを作成し（Ｓ１７６）、作成したＬＤＥＶから構成されたプールを構築する（Ｓ１７７）。そして、Ｓ１７３においてＹｅｓであった場合と同様に、Ｓ１７８のデータ移行処理を実行して処理を終了する。
【００８６】
ＬＤＥＶが作成されていないパリティグループ又は外部ボリュームグループがあると判定しなかった場合（Ｓ１７５：Ｎｏ）、暗号化／復号化制御部１１４０４は、管理計算機２０に暗号化指示された仮想ボリュームを指定された条件のもとでは暗号化できない旨の情報を管理計算機２０に送信し、処理を終了する（Ｓ１７９）。
【００８７】
以上の構成によれば、パリティグループ単位の、あるいは外部ボリュームグループ単位での格納データ暗号化状態を変更することなく、ホスト計算機３０が使用している仮想ボリューム単位で格納データの暗号化状態を変更することができる。
【００８８】
また、暗号化条件に合致したプールがない場合でも、パリティグループ又は外部ボリュームグループから所望の暗号化条件に合致するプールを構築することができる。
【００８９】
次に、図１８Ａ、図１８Ｂを参照して、図１７の処理フローにおけるデータ移行処理ステップ（Ｓ１７８）の詳細処理フローの一例を説明する。
【００９０】
まず、制御プログラム１１４０の暗号化／復号化制御部１１４０４は、暗号化対象である仮想ボリュームに割り当てられている全てのブロックに対して暗号化が完了しているか判定し（Ｓ１８０１）、完了していないと判定した場合（Ｓ１８０１：Ｎｏ）、割当てブロック管理テーブル１１４７を参照し、暗号化対象仮想ボリュームのＬＵＮ１１４７１に割り当てられているブロックを有するＬＤＥＶのＬＤＥＶ番号１１４７４と、該ブロックの開始アドレス１１４７５及び終了アドレス１１４７６とを取得する（Ｓ１８０２）。
【００９１】
次に、制御プログラム１１４０の暗号化／復号化制御部１１４０４は、未割当てブロック管理テーブル１１４８を参照し、図１７の処理フローにおけるＳ１７３又はＳ１７７で決定した暗号データ格納先プールの中から、どの仮想ボリュームにも割り当てられていないブロックを有するＬＤＥＶがあるか判定する（Ｓ１８０３）。あると判定した場合（Ｓ１８０３：Ｙｅｓ）、当該ＬＤＥＶのＬＤＥＶ番号１１４８２及び、該ブロックの開始アドレス１１４８３及び終了アドレス１１４８４を取得する（Ｓ１８０４）。
【００９２】
どの仮想ボリュームにも割り当てられていないブロックを有するＬＤＥＶがないと判定した場合（Ｓ１８０３：Ｎｏ）、例えば管理計算機２０を通じてエラーを通知して処理を終了する（Ｓ１８１２）。
【００９３】
次に、制御プログラム１１４０の暗号化／復号化制御部１１４０４は、Ｓ１８０２で取得したＬＤＥＶ番号１１４７４及び開始アドレス１１４７５及び終了アドレス１１４７６によって特定されるブロックからその格納データを読み出し、読み出したデータを暗号化する（Ｓ１８０５）。
【００９４】
次に、制御プログラム１１４０の暗号化／復号化制御部１１４０４は、Ｓ１８０３で取得したＬＤＥＶ番号１１４８２、開始アドレス１１４８３及び終了アドレス１１４８４によって特定されるブロックに、暗号化したデータを格納する（Ｓ１８０６）。
【００９５】
次に、制御プログラム１１４０のデータ移行処理部１１４０７は、Ｓ１８０２で取得したＬＤＥＶ番号１１４７４と、該ブロックの開始アドレス１１４７５及び終了アドレス１１４７６を、削除予定ブロック管理テーブル１１４９に登録し、割当てブロック管理テーブル１１４７のＳ１８０２で取得したＬＤＥＶ番号１１４７４と、該ブロックの開始アドレス１１４７５及び終了アドレス１１４７６が登録されたエントリの、ＬＤＥＶ番号欄１１４７４、開始アドレス欄１１４７５、終了アドレス欄１１４７６を、それぞれＳ１８０４で取得したＬＤＥＶ番号１１４８２及び、該ブロックの開始アドレス１１４８３及び終了アドレス１１４８４に変更する。加えて、未割当てブロック管理テーブル１１４８からＳ１８０３で取得したＬＤＥＶ番号１１４８２及び、該ブロックの開始アドレス１１４８３及び終了アドレス１１４８４が登録されたエントリを削除する（Ｓ１８０７）。
【００９６】
以上、Ｓ１８０２からＳ１８０７までの処理を、暗号化対象仮想ボリュームに割り当てられている全てのブロックに対し、繰り返し実行する（Ｓ１８０１：Ｎｏ）。全てのブロックに対してこれらのステップに係る処理が完了したと判定した場合（Ｓ１８０１：Ｙｅｓ）、Ｓ１８０８に処理を移す。
【００９７】
制御プログラム１１４０のデータ移行処理部１１４０７は、暗号化対象である仮想ボリュームに割り当てられていた全てのブロックの解放が完了しているか判定し（Ｓ１８０８）、完了していないと判定した場合（Ｓ１８０８：Ｎｏ）、すなわち、削除予定管理テーブル１１４９を参照し、削除予定ブロック管理テーブル１１４９にエントリが残っていると判定した場合、その残っている削除を要するブロックのＬＤＥＶ番号１１４９２、開始アドレス１１４９３及び終了アドレス１１４９４を取得する（Ｓ１８０９）。
【００９８】
次に、Ｓ１８０９で取得したＬＤＥＶ番号、開始アドレス及び終了アドレスによって特定されるブロックに格納されているデータを消去する（Ｓ１８１０）。
【００９９】
次に、データ移行処理部１１４０７は、削除予定ブロック管理テーブル１１４９からＳ１８０９で取得したＬＤＥＶ番号と、その開始アドレス及び終了アドレスが登録されたエントリを削除し、未割当てブロック管理テーブル１１４８に、Ｓ１８０９で取得したＬＤＥＶ番号と、その開始アドレス及び終了アドレスを登録する（Ｓ１８１１）。
【０１００】
以上、Ｓ１８０９からＳ１８１１までの処理を、暗号化対象仮想ボリュームに割り当てられていた全てのブロックに対し、繰り返し実行する（Ｓ１８０８：Ｎｏ）。全てのブロックに対してこれらのステップに係る処理が完了したと判定した場合（Ｓ１８０８：Ｙｅｓ）、処理を終了する。
【０１０１】
以上の構成により、平文データが完全に消去され、データの安全性が確保されるとともに、データが削除されたブロックは、他のデータのための記憶領域として有効に利用することができる。
【０１０２】
＜管理計算機２０のユーザインターフェース＞
次に、図１に示す管理計算機２０の出力装置１００５に表示することができるユーザインターフェースとしての管理画面について説明する。図１９Ａから図１９Ｃは、本実施形態のストレージ管理者が、管理計算機２０からストレージ装置１０が有する仮想ボリュームの暗号化命令を送信するために使用するユーザインターフェース（画面表示）の表示例である。これらの画面は、管理計算機２０の管理プログラム２０１がＣＰＵ１００１によって実行されることにより、例えば液晶モニタとしての出力装置１００７に表示される。
【０１０３】
図１９Ａは、暗号化対象とする仮想ボリューム（ＬＵ）を指定するための暗号化対象ボリューム選択画面６０の表示例である。
【０１０４】
暗号化対象ボリューム設定画面６０には、平文ボリューム一覧６１が表示される。平文ボリューム一覧６１は、例えば、ホスト計算機３０が認識する仮想ボリュームの識別符号である仮想ボリューム番号、その仮想ボリュームの記憶容量、対応するプールのプール番号、その仮想ボリュームの現在の暗号属性、及び対象仮想ボリュームを選択するためのチェックボックスを含む。
【０１０５】
平文ボリューム一覧６１には、ストレージ装置１０によって提供されている仮想ボリュームのうち、暗号属性が平文であるプールに関連づけられている仮想ボリュームの一覧が表示される。
【０１０６】
仮想ボリュームに格納されたデータを暗号化する場合、ストレージ管理者は、この一覧６１の中から暗号化したい仮想ボリュームをチェックボックスにより選択し、ＯＫボタン６２をクリックすればよい。キャンセルボタン６３は本画面での選択処理を取り消す場合に操作される。
【０１０７】
図１９Ｂは、図１９Ａの暗号化対象ボリューム設定画面６０でＯＫボタン６２が操作された場合に表示される暗号化条件指定画面７０の表示例である。
【０１０８】
暗号化条件指定画面７０には、暗号化条件７１が表示される。暗号化条件７１では、暗号化対象ボリューム設定画面６０で指定した仮想ボリュームを暗号化する際に適用されるべき暗号化方式、鍵長、及び暗号データ格納場所を含む暗号化の際の条件を指定することができる。ストレージ管理者は、この暗号化条件７１で暗号化条件を指定し、ＯＫボタン７２をクリックする。キャンセルボタン７３は本画面での指定処理を取り消す場合に操作される。
【０１０９】
図１９Ｃは、暗号化条件指定画面７０でＯＫボタン７２がクリックされた場合に、表示される暗号化対象ボリューム−プール組み合わせ決定画面８０の表示例である。暗号化対象ボリューム−プール組み合わせ決定画面８０には、暗号化対象ボリューム−プール組み合わせ一覧８１が表示される。
【０１１０】
暗号化対象ボリューム−プール組み合わせ一覧８１には、暗号化対象ボリューム設定画面６０でストレージ管理者が暗号化するように選択した仮想ボリュームと、暗号化条件指定画面７０で指定した暗号化条件に適合するプールとの組み合わせを示す一覧が表示される。図１９Ｃの例では、選択した仮想ボリュームの仮想ボリューム番号、使用容量、及び現在対応付けられているプールのプール番号に対して、暗号化後に対応付けられるプールのプール番号、その記憶容量、及び容量利用率が示されている。
【０１１１】
ストレージ管理者は、暗号化対象ボリュームと、暗号化後のプールとの組み合わせを確認し、適当な組み合わせだと判断した場合に暗号化実行ボタン８２をクリックすればよい。これにより、管理計算機２０からストレージ装置１０のディスク制御部１１へ暗号化処理命令が送信され、ＳＭ１１４の制御プログラム１１４０が起動されて、対象仮想ボリュームの暗号化処理が実行される。
【０１１２】
なお、ストレージ管理者が適当な組み合わせが提示されていないと判断した場合に、暗号化対象ボリューム−プールの組み合わせをストレージ管理者が当画面８０からマニュアル入力で設定することができるようにしてもよい。あるいは、１の暗号化対象仮想ボリュームに対して組み合わされるプールの候補が複数検索された場合に、それらの候補の中からストレージ管理者が適切と判断するプールを選択できるようにしてもよい。
【０１１３】
以上説明した実施形態によれば、特定の仮想ボリュームに格納されたデータのみを選択的に暗号化することができる。なお、本実施形態では、平文データを暗号化する場合のみを説明しているが、平文データを暗号化する場合だけではなく、暗号データを復号化する場合、及び暗号化されたデータの暗号鍵を変更する場合にも、本実施形態で説明した構成を適用することができる。またデータ暗号化以外の適宜の属性に従って仮想ボリューム毎にデータの格納態様を区分することも可能である。
【図１】
0005226126.tif 000002
【図２】
0005226126.tif 000003
【図３】
0005226126.tif 000004
【図４Ａ】
0005226126.tif 000005
【図４Ｂ】
0005226126.tif 000006
【図５】
0005226126.tif 000007
【図６】
0005226126.tif 000008
【図７】
0005226126.tif 000009
【図８】
0005226126.tif 000010
【図９】
0005226126.tif 000011
【図１０】
0005226126.tif 000012
【図１１】
0005226126.tif 000013
【図１２】
0005226126.tif 000014
【図１３】
0005226126.tif 000015
【図１４】
0005226126.tif 000016
【図１５Ａ】
0005226126.tif 000017
【図１５Ｂ】
0005226126.tif 000018
【図１５Ｃ】
0005226126.tif 000019
【図１６】
0005226126.tif 000020
【図１７】
0005226126.tif 000021
【図１８Ａ】
0005226126.tif 000022
【図１８Ｂ】
0005226126.tif 000023
【図１９Ａ】
0005226126.tif 000024
【図１９Ｂ】
0005226126.tif 000025
【図１９Ｃ】
0005226126.tif 000026