説明

ストレージシステム、ストレージ制御装置およびストレージ制御方法

【課題】自己暗号化機能および暗号鍵生成機能を備えた記憶装置に記録されたデータを論理ボリューム単位で短時間で無効化する。
【解決手段】記憶装置20aは、暗号鍵生成部22aと、記憶領域21aへの記録データを暗号鍵生成部22bからの暗号鍵を用いて暗号化するとともに、記憶領域21aに設定した分割領域ごとに暗号鍵を変更可能な暗号化処理部23aとを有する。制御装置10は、記憶装置20aの記憶領域21aのうち論理ボリュームとして設定した記憶領域ごとに、個別の分割領域を設定するように、暗号化処理部23aに要求する論理ボリューム設定部11と、消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、暗号化処理部23aに要求するデータ消去処理部12とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム、ストレージ制御装置およびストレージ制御方法に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)などの記憶装置を廃棄する際に、廃棄した記憶装置に記録された情報の漏洩を防止する方法としては、記憶装置内のデータを元のデータとは無関係なデータパターンで上書きするという方法がある。しかし、この方法は、記憶装置に記録されたすべてのデータをデータパターンで上書きするのに長時間を要するという問題がある。
【0003】
これに対し、記憶装置に対して常にデータを暗号化した状態で記録する方法がある。例えば、内部の記録媒体に記録するデータを暗号化する自己暗号化機能と、その暗号化に使用する暗号鍵を格納する機能とを備える記憶装置がある。この記憶装置では、内部に格納された暗号鍵を外部からの命令に応じて削除または変更するという短時間の処理で、記録媒体に記録されたデータを無効化することができる。なお、以下の説明では、暗号化されたデータを暗号鍵の削除または変更によって無効化することを、「完全消去」と呼ぶことにする。
【0004】
さらに、最近では、自己暗号化機能を備えた記憶装置として、「SED(Self Encrypting Drive)」と呼ばれる記憶装置がある。SEDは、ランダムな暗号鍵を発生する機能も備えており、記録データに対応する暗号鍵を変更するようにSEDに指示することで、その記録データをごく短時間で完全消去することができる。
【0005】
なお、記憶装置へのアクセス元装置が生成した暗号鍵を用いて暗号化したデータを記憶装置に記録する技術としては、例えば、論理ボリュームごとに異なる暗号鍵を用いて暗号化して記憶装置に書き込むようにした計算機システムがある。
【0006】
また、記憶装置におけるデータ消去に関する技術としては、例えば、第1の記憶領域のデータについての消去要求を受信すると、消去要求に発信元に対して、第1の記憶領域とは別の第2の記憶領域へのアクセスが可能であることを通知するとともに、第1の記憶領域のデータを消去するようにしたストレージシステムがある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−269232号公報
【特許文献2】特開2002−215462号公報
【特許文献3】特開2008−198049号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記のように、論理ボリュームごとに異なる暗号鍵を用いて、記憶装置に記録するデータを暗号化する場合には、論理ボリュームに対応する暗号鍵を消去または変更することで、論理ボリュームごとにデータを短時間で完全消去することができる。記憶装置へのアクセス元装置が暗号鍵を生成するシステムでは、アクセス元装置で暗号化したデータが単に記憶装置に書き込まれる。このため、設定領域や暗号鍵などの論理ボリュームに関する情報をアクセス元装置側が管理することで、論理ボリューム単位でデータを短時間で完全消去することが可能であった。
【0009】
しかしながら、データの記録先がSEDである場合には、論理ボリュームに関する情報をアクセス元装置側が管理するだけでは、論理ボリュームごとにデータを短時間で完全消去する処理を実現できない。なぜなら、SEDは、SED自身が生成した暗号鍵を用いて記録データを暗号化するので、完全消去の対象とする領域や暗号鍵の情報をSED自身が管理する必要があるからである。
【0010】
本発明はこのような課題に鑑みてなされたものであり、自己暗号化機能および暗号鍵生成機能を備えた記憶装置に記録されたデータを論理ボリューム単位で短時間で無効化できるようにしたストレージシステム、ストレージ制御装置およびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、記憶装置と、記憶装置へのアクセスを制御する制御装置とを備えるストレージシステムが提供される。記憶装置は、暗号鍵生成部と、暗号化処理部とを有する。暗号鍵生成部は、暗号鍵を生成する。暗号化処理部は、自装置の記憶領域に対して暗号鍵生成部が生成した暗号鍵を用いてデータを暗号化して記録する。また、暗号化処理部は、自装置の記憶領域に設定した分割領域ごとに、暗号化に用いる暗号鍵を変更可能である。一方、制御装置は、論理ボリューム設定部と、データ消去処理部とを有する。論理ボリューム設定部は、記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに、個別の分割領域を設定するように、記憶装置の暗号化処理部に要求する。データ消去処理部は、消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、記憶装置の暗号化処理部に要求する。
【0012】
また、上記目的を達成するために、上記の制御装置と同様の処理を実行するストレージ制御装置が提供される。
さらに、上記目的を達成するために、上記のストレージ制御装置と同様の処理を実行するストレージ制御方法が提供される。
【発明の効果】
【0013】
上記のストレージシステム、ストレージ制御装置およびストレージ制御方法によれば、自己暗号化機能および暗号鍵生成機能を備えた記憶装置に記録されたデータを、論理ボリューム単位で短時間で無効化できる。
【図面の簡単な説明】
【0014】
【図1】第1の実施の形態に係るストレージシステムの構成例を示す図である。
【図2】第2の実施の形態に係るストレージシステムの構成例を示す図である。
【図3】DEのハードウェア構成例を示す図である。
【図4】SEDの内部構成例を示す図である。
【図5】バンド管理テーブルに登録される情報の例を示す図である。
【図6】CMのハードウェア構成例を示す図である。
【図7】CMが保持するテーブルのデータ構成例を示す図である。
【図8】CMが備える処理機能の例を示すブロック図である。
【図9】複数のSEDに跨る論理ボリュームの設定処理について示す図である。
【図10】暗号鍵の生成機能を持たない複数のHDDに跨る論理ボリュームの設定処理について示す参考図である。
【図11】ボリューム設定処理手順の例を示すフローチャートである。
【図12】論理ボリュームを完全消去する際の処理手順の例を示す図である。
【図13】LDE処理の一例を示す図(その1)である。
【図14】LDE処理の一例を示す図(その2)である。
【図15】RLUに含まれるSED数を増加させる場合のLDE処理手順の例を示すフローチャートである。
【図16】リビルド/コピーバック処理の一例を示す図(その1)である。
【図17】リビルド/コピーバック処理の一例を示す図(その2)である。
【図18】第3の実施の形態における論理ボリュームの設定処理例を示す図である。
【図19】第3の実施の形態において論理ボリューム単位でデータを完全消去する処理の例を示す図である。
【図20】第3の実施の形態における論理ボリューム設定処理手順の例を示すフローチャートである。
【図21】SEDの電源投入時におけるロック状態解除処理手順の例を示すフローチャートである。
【図22】論理ボリュームを完全消去する際の処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。
【0016】
図1に示すストレージシステム1は、記憶装置と、記憶装置へのアクセスを制御する制御装置10とを備える。図1のストレージシステム1は、例として2つの記憶装置20a,20bを備えるが、3つ以上の記憶装置を備えていても、あるいは1つの記憶装置のみ備えていてもよい。
【0017】
記憶装置20aは、制御装置10からのアクセス対象となる記憶領域21aを備える。記憶領域21aは、例えば磁気ディスクなどの記録媒体によって実現される。記憶装置20aは、さらに、暗号鍵を生成する暗号鍵生成部22aと、暗号鍵生成部22aに生成させた暗号鍵を用いてデータを暗号化し、暗号化したデータを記憶領域21aに記録する暗号化処理部23aとを備える。なお、暗号化処理部23aは、記憶領域21aに記録されたデータを読み出す際には、読み出したデータを、暗号鍵を用いて復号する。
【0018】
暗号鍵生成部22aは、暗号化処理部23aから暗号鍵生成の要求を受けるたびに、その都度ユニークな暗号鍵を生成する。
暗号化処理部23aは、制御装置10からの要求に応じて、記憶領域21aに対して分割領域を設定することが可能になっている。暗号化処理部23aは、制御装置10からの要求に応じて、暗号化および復号に用いる暗号鍵を、分割領域ごとに変更することが可能になっている。暗号鍵を変更する場合、暗号化処理部23aは、暗号鍵生成部22aに新たな暗号鍵を生成させ、それ以後、新たに生成された暗号鍵を用いて記録データの暗号化および読み出しデータの復号を行う。
【0019】
ここで、分割領域で使用される暗号鍵が変更されることで、暗号鍵の変更前にその分割領域に記録されていたデータは、意味のあるデータとして読み取り不能な「完全消去」の状態になる。このように、ある領域の記録データを、暗号鍵を変更することで完全消去することにより、例えば、ある領域のすべての記録データを所定のデータパターンで上書きする方法と比較して、記録データをごく短時間で「完全消去」の状態にすることができる。
【0020】
記憶装置20bも、記憶装置20aと同様に、記憶領域21b、暗号鍵生成部22bおよび暗号化処理部23bを備える。記憶領域21b、暗号鍵生成部22bおよび暗号化処理部23bは、それぞれ記憶装置20aが備える記憶領域21a、暗号鍵生成部22aおよび暗号化処理部23aに対応する。
【0021】
制御装置10は、論理ボリューム設定部11と、データ消去処理部12とを備える。なお、論理ボリューム設定部11およびデータ消去処理部12の各処理は、例えば、制御装置10が備えるCPU(Central Processing Unit)が所定のプログラムを実行することにより実現される。なお、以下の説明では、N番の論理ボリュームを「LUN(Logical Unit Number)#N」と表す。
【0022】
論理ボリューム設定部11は、記憶装置20a,20bの各記憶領域21a,21bのうち任意の範囲を、論理ボリュームとして設定する。また、論理ボリューム設定部11は、論理ボリュームとして設定した記憶領域ごとに、個別の分割領域を設定するように、論理ボリュームが含まれる記憶装置の暗号化処理部に要求する。例えば、記憶装置20aの記憶領域21aを論理ボリュームとして設定する場合、論理ボリューム設定部11は、記憶領域21a上の論理ボリュームに対応する領域に分割領域を設定するように、記憶装置20aの暗号化処理部23aに要求する。
【0023】
また、論理ボリューム設定部11は、複数の記憶装置に跨る論理ボリュームを設定することもできる。論理ボリューム設定部11は、複数の記憶装置に跨る論理ボリュームを設定する際には、設定する論理ボリュームの記憶領域のうちこれら複数の記憶装置のそれぞれに含まれる記憶領域を、それぞれ分割領域として設定するように、これら複数の記憶装置の暗号化処理部に要求する。
【0024】
例えば、記憶領域21a,21bに跨るLUN#0を設定する場合、論理ボリューム設定部11は、図1中の太線矢印で示すように、記憶装置20aの暗号化処理部23aに対して分割領域A0を設定するように要求するとともに、記憶装置20bの暗号化処理部23bに対して分割領域B0を設定するように要求する。ここで、分割領域A0は、LUN#0のうち記憶領域21aに含まれる領域であり、分割領域B0は、LUN#0のうち記憶領域21bに含まれる領域である。
【0025】
さらに、例えば、記憶領域21a,22aに跨るLUN#1を設定する場合も、論理ボリューム設定部11は、記憶装置20aの暗号化処理部23aに対して分割領域A1を設定するように要求するとともに、記憶装置20bの暗号化処理部23bに対して分割領域B1を設定するように要求する。これにより、記憶装置20aの記憶領域21aには分割領域A1が設定され、記憶装置20bの記憶領域21bには分割領域B1が設定される。
【0026】
データ消去処理部12は、記憶装置20a、20bの暗号化処理部23a,23bに対して、論理ボリュームごとにデータの完全消去を要求する。例えば、記憶装置20aに設定された論理ボリュームを完全消去する場合、データ消去処理部12は、消去対象の論理ボリュームに対応する記憶装置20aの記憶領域21a内の分割領域について、暗号鍵を変更するように、記憶装置20aの暗号化処理部23aに要求する。暗号鍵の変更要求を受けた暗号化処理部23aは、暗号鍵生成部22aに新たな暗号鍵を生成させ、それ以後、分割領域に記録するデータの暗号化や、分割領域から読み出したデータの復号に、新たな暗号鍵を使用する。これにより、データ消去処理部12が完全消去を要求する前に、消去対象の論理ボリュームに記録されていたデータは、完全消去される。すなわち、制御装置10は、論理ボリューム単位でデータを短時間で完全消去できる。
【0027】
また、データ消去処理部12は、記憶領域21a,21bに跨って設定された論理ボリュームの完全消去を要求する場合、消去対象の論理ボリュームに対応する記憶領域21a,21bのそれぞれにおける分割領域について暗号鍵を変更するように、記憶装置20a,20bの暗号化処理部23a,23bに要求する。これにより、論理ボリュームが複数の記憶装置の記憶領域に跨っている場合でも、記録データを論理ボリューム単位で、短時間で完全消去することができる。
【0028】
例えば、図1中のLUN#0を完全消去する場合、データ消去処理部12は、図1中の点線矢印で示すように、記憶装置20aの暗号化処理部23aに対して、分割領域A0への記録データの暗号化に用いる暗号鍵を変更するように要求する。これとともに、データ消去処理部12は、記憶装置20bの暗号化処理部23bに対して、分割領域B0への記録データの暗号化に用いる暗号鍵を変更するように要求する。
【0029】
暗号鍵の変更要求を受けた記憶装置20aの暗号化処理部23aは、暗号鍵生成部22aに新たな暗号鍵を生成させ、それ以後、分割領域A0に記録するデータの暗号化や、分割領域A0に記録されたデータの復号の際に、新たな暗号鍵を用いる。暗号鍵の変更要求を受けた記憶装置20bの暗号化処理部23bも同様に、暗号鍵生成部22bに新たな暗号鍵を生成させ、それ以後、分割領域B0に記録するデータの暗号化や、分割領域B0に記録されたデータの復号の際に、新たな暗号鍵を用いる。
【0030】
このように、LUN#0のデータを完全消去する際には、LUN#0に含まれる分割領域A0,B0のそれぞれにおいて、暗号化・復号に用いられる暗号鍵が変更される。これにより、LUN#0のデータのみを短時間で完全消去することができる。
【0031】
〔第2の実施の形態〕
次に、第2の実施の形態として、記憶装置をRAID(Redundant Arrays of Inexpensive Disks)によって管理するストレージシステムの例について説明する。図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。
【0032】
図2に示すストレージシステム100は、CE(Controller Enclosure)110と、DE(Drive Enclosure)200とを備える。CE110には、CM300a,300b(Controller Module)が搭載されている。また、ストレージシステム100には、ホスト装置120および管理端末130が接続されている。
【0033】
DE200は、CM300a,300bからのアクセス制御対象となる複数の記憶装置を備える。DE200は、記憶装置として、自己暗号化機能を備えたHDDであるSEDを備える。なお、DE200は、ストレージシステム100内に複数設けられていてもよい。また、DE200は、CM300a,300bとは別の筐体内に設けられていてもよい。
【0034】
CM300a,300bは、DE200内の複数のSEDによって実現される物理記憶領域をRAIDによって管理し、この物理記憶領域に対するアクセスを制御する。また、CM300a,300bは、DE200内の複数のSEDによって実現される物理記憶領域に論理ボリュームを設定し、ホスト装置120から論理ボリュームに対するアクセス要求を受け付けて、そのアクセス要求に応じてDE200内のSEDにアクセスする。
【0035】
なお、CMは、ストレージシステム100内に1つ、または3つ以上設けられていてもよい。ただし、CMが複数設けられることで、DE200に対するアクセス制御系統が冗長化され、アクセス制御処理の信頼性が向上する。
【0036】
ホスト装置120は、ユーザの操作に応じて、CM300a,300bに対して、CM300a,300bが提供する論理ボリュームへのアクセスを要求する。なお、ホスト装置120とCM300a,300bとは、例えば、FC(Fibre Channel)ケーブルを介して接続されている。
【0037】
管理端末130は、管理者の操作に応じて、CM300a,300bに対して、RAIDや論理ボリュームなどのストレージシステム100の動作に関する各種の設定処理を行う。なお、管理端末130とCM300a,300bとは、例えば、LAN(Local Area Network)ケーブルを介して接続されている。
【0038】
図3は、DEのハードウェア構成例を示す図である。
DE200は、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)エクスパンダ201,202と、複数のSED210a〜210fとを備える。SASエクスパンダ201は、CM300aとSED210a〜210fとの間でデータを中継する。SASエクスパンダ202は、CM300bとSED210a〜210fとの間でデータを中継する。
【0039】
図4は、SEDの内部構成例を示す図である。なお、図4では例としてSED210aについて示すが、SED210b〜210fについても図4と同様の構成を有する。
SED210aは、記録媒体として磁気ディスク211を備える。なお、SED210aは、記録媒体として、SSD(Solid State Drive)などの他の種類の記録媒体を備えていてもよい。
【0040】
また、SED210aは、SASコントローラ221、セキュア処理回路222、バッファ223、アクセスコントローラ224およびフラッシュメモリ225を備える。なお、図4では、磁気ディスク211に対するデータの読み書きを行う磁気ヘッド機構や、磁気ディスク211の回転駆動機構などの図示を省略している。
【0041】
SASコントローラ221は、SASエクスパンダ201を介してCM300aと接続するとともに、SASエクスパンダ202を介してCM300bと接続する。SASコントローラ221は、CM300a,300bとの間でSAS規格に従ってデータを送受信する。
【0042】
セキュア処理回路222は、フラッシュメモリ225に記録されたバンド管理テーブル230を参照して、磁気ディスク211に対するアクセスや磁気ディスク211に記録されたデータの安全性を保つための処理を実行する。セキュア処理回路222は、バンド管理部241、暗号鍵生成部242、暗号処理部243およびロック制御部244を備える。
【0043】
バンド管理部241、暗号鍵生成部242、暗号処理部243およびロック制御部244の処理は、例えば、それぞれ専用のハードウェア回路によって実現される。あるいは、セキュア処理回路222がCPUを備え、暗号鍵生成部242、暗号処理部243およびロック制御部244の処理の少なくとも一部は、CPUが所定のファームウェアプログラムを実行することによって実現されてもよい。ただし、暗号処理部243および暗号鍵生成部242の処理は、処理を高速化するために専用のハードウェア回路によって実現されることが望ましい。
【0044】
バンド管理部241は、磁気ディスク211に対して「バンド(Band)」を設定する。バンドは、それぞれ個別の暗号鍵を用いて、記録するデータの暗号化と記録されたデータの復号とが行われる領域である。バンド管理部241は、CM300a,300bのいずれかからバンドの設定要求を受けると、暗号鍵生成部242にランダムな暗号鍵を生成させ、生成された暗号鍵を、バンドの設定領域を示す情報に対応付けて、バンド管理テーブル230に登録する。
【0045】
また、バンド管理部241は、バンド単位で記録データを完全消去する「セキュアイレース(Secure Erase)」を実行可能になっている。バンド管理部241は、CM300a,300bのいずれかからセキュアイレース対象とするバンドの指定を受けると、暗号鍵生成部242に新たな暗号鍵を生成させる。そして、バンド管理部241は、指定されたバンドについての記録データの暗号化および読み出しデータの復号に用いる暗号鍵を、新たに生成された暗号鍵に変更する。このように暗号鍵が変更されることで、指定されたバンドに記録されていたデータは、意味のあるデータとして読み取りできない「完全消去」の状態となる。
【0046】
なお、バンド管理部241は、磁気ディスク211の記憶領域のうち、CM300a,300bからの設定要求に基づくバンドが設定されていない領域を、「グローバルバンド(Global Band)」として管理する。グローバルバンドは、設定されたバンドとは別の暗号鍵を用いてデータが記録される領域である。グローバルバンドの設定領域および暗号鍵についても、バンド管理テーブル230に登録される。SED210aの製品出荷状態では、磁気ディスク211内のすべての記憶領域がグローバルバンドに設定される。その後、磁気ディスク211にバンドが設定されると、バンドが設定されていない領域がグローバルバンドとなる。さらに、バンドの設定が解除された領域は、グローバルバンドに戻る。
【0047】
暗号鍵生成部242は、バンド管理部241からの要求に応じて、ランダムな暗号鍵を生成する。
暗号処理部243は、磁気ディスク211に記録するデータの暗号化処理と、磁気ディスク211に記録されたデータの復号処理とを実行する。暗号処理部243は、データの記録先および読み出し元のアドレスに対応する暗号鍵を、バンド管理テーブル230から読み出し、読み出した暗号鍵を用いてデータの暗号化処理およびデータの復号処理を実行する。
【0048】
ロック制御部244は、磁気ディスク211に対する外部からのアクセスの可否を、バンド単位で制御する。ここで、磁気ディスク211へのアクセスができないように設定された状態を「ロック(Lock)状態」と呼ぶ。ロック制御部244は、磁気ディスク211のバンドがロック状態であるときに、SED210aに接続された外部機器(例えばCM300a,300b)との間で認証処理を実行し、認証が成功すると、バンドのロック状態を解除して、認証に成功した外部機器からバンドへのアクセスを許可する。バンド管理テーブル230には、バンドごとに認証鍵が登録され、認証処理は、SED210aに接続された外部機器から受信した認証鍵が、バンド管理テーブル230に登録された認証鍵と一致するかを判定することで行われる。
【0049】
本実施の形態では、ロック制御部244は、SED210aの電源がオフからオンになったとき、磁気ディスク211の全バンドをロック状態にする「自動ロック動作」を行う。SED210aの電源がオンになり、自動ロック動作を行った後、SED210aに対して外部機器(例えばCM300a,300b)が接続されると、ロック制御部244は、接続された外部機器との間で全バンドについての認証処理を実行する。このため、設定されたバンドの数が多いほど、外部機器が磁気ディスク211にアクセスできるようになるまでに要する時間が長くなる。
【0050】
バッファ223は、磁気ディスク211に記録するデータや、磁気ディスク211から読み出されたデータを、一時的に記憶する。
アクセスコントローラ224は、磁気ディスク211に書き込む信号に対する誤り訂正符号の付与や変調、磁気ディスク211から読み出した信号の復調や誤り訂正、磁気ヘッド(図示せず)の位置決め制御、磁気ディスク211の回転駆動制御などを行う。
【0051】
図5は、バンド管理テーブルに登録される情報の例を示す図である。バンド管理テーブル230には、各バンドについてのレコード231が登録される。
レコード231には、「暗号鍵」、「先頭アドレス」、「長さ」、「ロックイネーブル」、「認証鍵」および「ロック状態」が、バンドの識別情報(図5中の「Band#00」「Band#01」など)に対応付けて登録される。
【0052】
「暗号鍵」は、バンドに記録するデータの暗号化、およびバンドから読み出したデータの復号に用いる暗号鍵である。
「先頭アドレス」は、磁気ディスク211におけるバンドの設定領域の先頭を示すアドレスである。「長さ」は、磁気ディスク211におけるバンドの設定領域の大きさを示す。バンド設定領域の大きさは、例えば、固定長のブロックの数として表される。
【0053】
「ロックイネーブル」は、自動ロック動作を有効にするか否かを示すフラグ情報である。「ロックイネーブル」には、例えば、自動ロック動作を有効にする(すなわち、このバンド管理テーブル230が登録されたSEDの電源をオフからオンにしたときに、自動的にバンドをロック状態にするように設定する)場合には「1」が設定され、自動ロック動作を有効にしない場合には「NULL値」が設定される。
【0054】
「認証鍵」は、バンドのロック状態を解除する際の認証処理に使用する情報である。ロック制御部244は、管理者の操作に応じて管理端末130から送信された、認証処理に使用する認証鍵を、CMを通じて受信すると、例えば、受信した認証鍵をハッシュ化して「認証鍵」の欄に登録する。
【0055】
「認証鍵」の欄には、「ロックイネーブル」が「1」である(すなわち、自動ロック動作が有効である)場合にのみ、情報が登録される。なお、自動ロック動作以外に、CM300a,300bのいずれかからの要求に応じて、任意のタイミングでバンドをロック状態にできるようにしてもよい。この場合、例えば、バンドをロック状態にするように要求されたときに、「ロックイネーブル」の値に関係なく、管理端末130からCMを通じて通知された認証鍵をハッシュ化した値が、「認証鍵」の欄に登録される。
【0056】
なお、ハッシュ化した認証鍵は、例えば、バンド管理テーブル230ではなく、磁気ディスク211の所定領域に格納されてもよい。
「ロック状態」は、バンドがロック状態であるか否かを示すフラグ情報である。「ロック状態」は、例えば、バンドがロック状態のとき「1」とされ、バンドがロック状態でないとき「0」とされる。
【0057】
なお、バンド管理テーブル230内のレコード231のうちの1つ(図5中のレコード231a)は、グローバルバンドの情報を保持する。グローバルバンドについてのレコード231aには、データの暗号化/復号に用いる鍵が「暗号鍵」の欄に登録されるものの、その他の欄には何も登録されない(すなわち、NULL値が設定される)。グローバルバンドの設定領域は、それ以外のバンドの設定領域を除く全領域となる。
【0058】
SEDが出荷された初期段階では、SED内の磁気ディスク211の全域がグローバルバンドに設定される。このとき、バンド管理テーブル230には、グローバルバンドについてのレコード231aのみが登録されている。その後、管理端末130からCMへの要求に応じてCMがバンドを設定する処理を実行すると、SEDのバンド管理部241は、新たに設定するバンドについてのレコード231を生成して、レコード231に対して必要な情報を登録する。
【0059】
なお、図5では、グローバルバンドのレコード231aをその他のバンドのレコード231と分離して示しているが、例えば、バンドの識別情報について、「Band#00」をグローバルバンドに割り当て、「Band#01」以降をその他のバンドに割り当ててもよい。
【0060】
また、グローバルバンドについてもロック状態にできるようにしてもよい。この場合、グローバルバンドについてのレコード231aにも、他のバンドについてのレコード231と同様に、「ロックイネーブル」、「認証鍵」および「ロック状態」の各情報が登録される。
【0061】
次に、CM300a,300bについて説明する。なお、CM300a,300bは、ともに同様なハードウェア構成を有し、また、ともに同様の処理を実行可能であるので、以下の説明では、例としてCM300aについてのみ説明し、CM300bについての説明を省略する。
【0062】
図6は、CMのハードウェア構成例を示す図である。
CM300aは、CPU301によって装置全体が制御されている。CPU301には、RAM(Random Access Memory)302および複数の周辺機器が接続されている。RAM302は、CM300aの主記憶装置として使用され、CPU301に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【0063】
CPU301には、周辺機器の例として、フラッシュメモリ303、LANインタフェース(I/F)304、CA(Channel Adapter)305およびIOC(In/Out Controller)306が接続されている。フラッシュメモリ303およびLANインタフェース304は、例えば、図示しないPCH(Platform Controller Hub)を介してCPU301と接続される。また、CA305およびIOC306は、例えば、PCI(Peripheral Component Interconnect)バスを通じてCPU301と接続される。
【0064】
フラッシュメモリ303は、CM300aの二次記憶装置として使用され、CPU301によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、HDDなどの他の種類の不揮発性記憶装置が使用されてもよい。
【0065】
LANインタフェース304は、管理端末130との間でデータを送受信する。
CA305は、ホスト装置120とCM300aとの間でデータを送受信するインタフェース処理を実行する。
【0066】
IOC306は、DE200内のSASエクスパンダ201を介して、DE200内のSED210a〜210fとの間でSAS規格に従ってデータを送受信する。
次に、図7は、CMが保持するテーブルのデータ構成例を示す図である。CM300aのフラッシュメモリ303には、RAID管理テーブル320とLV(論理ボリューム:Logical Volume)管理テーブル330とが格納される。
【0067】
RAID管理テーブル320には、それぞれRAIDグループを示すRLU(RAID Logical Unit)ごとにレコード321が登録される。RAIDグループとは、複数の記憶装置(本実施の形態ではSED)の物理記憶領域を組み合わせて構成される論理記憶領域である。RAID管理テーブル320の各レコード321には、「RAIDレベル」、「使用ドライブ」および「論理ボリューム」が、RLUの識別情報(図7中の「RLU#00」「RLU#01」など)に対応付けて登録される。
【0068】
「RAIDレベル」の欄には、RLUに適用するRAIDレベルが登録される。「使用ドライブ」の欄には、RLUが使用するSEDを示す識別情報が登録される。さらに、各SEDに対応付けて「先頭アドレス」および「長さ」が登録される。「先頭アドレス」は、SED内の磁気ディスク211におけるRLUの設定領域の先頭を示すアドレスである。「長さ」は、SED内の磁気ディスク211におけるRLUの設定領域の大きさ(ブロック数)を示す。
【0069】
「論理ボリューム」の欄には、RLUに対して設定された論理ボリュームを示す識別情報が登録される。
一方、LV管理テーブル330には、RLUに対して設定された論理ボリュームごとにレコード331が登録される。例えば、図8のRAID管理テーブル320において、「RLU#00」には論理ボリュームとして「LUN#00」「LUN#01」が登録されている。この場合、LV管理テーブル330には、「LUN#00」「LUN#01」のそれぞれに対応するレコード331が登録される。なお、図7では、RAID管理テーブル320に登録された「LUN#00」「LUN#01」とLV管理テーブル330内のレコード331との関係を、太線矢印によって示している。
【0070】
また、LV管理テーブル330のレコード331には、論理ボリュームの物理記憶領域を含むSEDに関する情報が登録される。レコード331には、SEDに関する情報として、「先頭アドレス」、「長さ」、「バンド識別情報」および「認証鍵」が、SEDの識別情報(図7中の「SED#00」「SED#01」など)も対応付けて登録される。
【0071】
「先頭アドレス」は、SED内の磁気ディスク211における論理ボリュームの設定領域の先頭を示すアドレスである。「長さ」は、SED内の磁気ディスク211における論理ボリュームの設定領域の大きさ(ブロック数)を示す。
【0072】
「バンド識別情報」は、「先頭アドレス」および「長さ」が示す磁気ディスク211の物理記憶領域に設定されたバンドを識別する情報である。「先頭アドレス」および「長さ」が示す物理記憶領域の範囲が1つのバンドの範囲と一致する場合には、「先頭アドレス」および「長さ」の値は、「バンド識別情報」が示すバンドに対応するSED内のバンド管理テーブル230において、「先頭アドレス」および「長さ」にそれぞれ登録されている値と同一になる。
【0073】
「認証鍵」は、「バンド識別情報」が示すバンドのロック状態を解除するための認証処理時に、SEDに対して通知する認証鍵である。
ところで、論理ボリュームは、複数のSEDに跨って設定される場合がある。論理ボリュームが複数のSEDに跨る場合、その論理ボリュームに対応するLV管理テーブル330のレコード331には、論理ボリュームの物理記憶領域が含まれる複数のSEDのそれぞれについて、「先頭アドレス」、「長さ」、「バンド識別情報」および「認証鍵」が登録される。
【0074】
基本的に、論理ボリュームは、その論理ボリュームが設定されたRLUを構成するSEDに対して設定される。図7の例では、RLU#00は少なくともSED#00,#01を使用して構成されるので、RLU#00に設定されたLUN#00は、少なくともSED#00,#01に跨って設定される。このため、LUN#00に対応するLV管理テーブル330内のレコード331には、少なくともSED#00,#01のそれぞれについて「先頭アドレス」、「長さ」、「バンド識別情報」および「認証鍵」が登録される。
【0075】
図8は、CMが備える処理機能の例を示すブロック図である。
CM300aは、RAID制御部311、ボリューム設定部312、セキュアイレース制御部313および認証処理部314を備える。これらのRAID制御部311、ボリューム設定部312、セキュアイレース制御部313および認証処理部314の処理は、例えば、CM300aのCPU301が所定のプログラムを実行することで実現される。
【0076】
RAID制御部311は、ホスト装置120からのアクセス要求に応じて、DE200内のSED210a〜210fに対するアクセスを制御する。RAID制御部311は、SED210a〜210fへのアクセスを制御する際に、RAID管理テーブル320およびLV管理テーブル330を参照して、SED210a〜210fの物理記憶領域をRAIDによって管理する。
【0077】
例えば、RAID制御部311は、ホスト装置120から、LV管理テーブル330に登録された所定の論理ボリュームに対するデータの書き込みが要求されると、RAID管理テーブル320から、書き込み対象の論理ボリュームが含まれるRLUのレコード321を抽出する。RAID制御部311は、抽出したレコード321に登録されたSEDの少なくとも1つを書き込み先として、そのレコード321に登録されたRAIDレベルに応じた書き込み処理を実行する。
【0078】
ボリューム設定部312は、管理端末130からの要求に応じて、RLUや論理ボリュームの設定を行う。
例えば、ボリューム設定部312は、管理端末130からのRLUの設定要求に応じて、RAID管理テーブル320にレコード321を生成する。ボリューム設定部312は、生成したレコード321の「RAIDレベル」および「使用ドライブ」の欄に対して、管理端末130から指定されたRAIDレベル、および使用するSEDの識別情報をそれぞれ登録する。
【0079】
さらに、ボリューム設定部312は、管理端末130から、登録済みのいずれかのRLUに対する論理ボリュームの設定要求を受け付けると、設定対象のRLUに対応するRAID管理テーブル320のレコード321内の「論理ボリューム」の欄に、新たな論理ボリューム番号を登録する。これとともに、ボリューム設定部312は、新たな論理ボリューム番号に対応するレコード331をLV管理テーブル330に生成する。
【0080】
ボリューム設定部312は、管理端末130から、論理ボリュームの設定先のSEDを識別する情報や、論理ボリュームの大きさを指定する情報を受信する。ボリューム設定部312は、管理端末130からの受信情報を基に、設定先のSEDのバンド管理部241に対して、論理ボリュームが設定される領域に対応するバンドを設定するように要求する。さらに、ボリューム設定部312は、SEDに設定されたバンドに関する情報を、LV管理テーブル330に生成したレコード331に登録する。
【0081】
また、ボリューム設定部312は、リビルド(Rebuild)/コピーバック(Copy Back)処理を実行する。リビルド処理は、RLUを構成するいずれかのSEDが故障した場合に、故障したSEDに記録されていたデータと同じデータをRAID制御部311に生成させ、それらのデータをホットスペアのSEDに書き込む処理である。一方、コピーバック処理は、故障したSEDに代わって投入されたSEDに対して、ホットスペアのSEDに記録されたデータを書き戻す処理である。
【0082】
さらに、ボリューム設定部312は、管理端末130からの要求に応じて、LDE(Logical Device Expansion)と呼ばれる処理を実行することも可能である。LDE処理は、RLUを構成するSEDの数、RLUを構成する物理記憶領域の容量、RAIDレベルを変更するなど、RAIDの構成を変更する処理である。
【0083】
セキュアイレース制御部313は、管理端末130からの要求に応じて、DE200に記録されたデータを論理ボリューム単位で完全消去する制御を行う。セキュアイレース制御部313は、管理端末130から消去対象の論理ボリュームが指定されると、LV管理テーブル330に基づいて、消去対象の論理ボリュームに含まれるバンドを判別する。セキュアイレース制御部313は、判別したバンドが設定されたSEDのバンド管理部241に対して暗号鍵の変更を要求することで、そのバンドに記録されたデータを完全消去する。
【0084】
認証処理部314は、SED内のロック状態のバンドに対するアクセスを可能にするために、SEDのロック制御部244との間で認証処理を実行する。認証処理部314は、認証処理の際、認証対象のバンドに対応付けられた認証鍵を、VL管理テーブル330のレコード331から読み出して、SEDのロック制御部244に送信する。
【0085】
次に、ボリューム設定部312による論理ボリュームの設定処理について説明する。まず、図9は、複数のSEDに跨る論理ボリュームの設定処理について示す図である。
CM300aのボリューム設定部312は、論理ボリュームを設定する際には、論理ボリュームの設定対象のSEDに対して、論理ボリュームごとにバンドを設定するように要求する。設定する論理ボリュームが複数のSEDに跨る場合には、それら複数のSEDのそれぞれに対して、論理ボリュームと一致する領域にバンドを設定するように要求する。
【0086】
例えば、図9において、CM300aのボリューム設定部312は、3つのSED210a〜210cに跨るLUN#00を設定するものとする。この場合、ボリューム設定部312は、LUN#00の物理記憶領域のうちSED210aに含まれる領域にバンド#00を設定するように、SED210aに要求する。また、ボリューム設定部312は、LUN#00の物理記憶領域のうちSED210bに含まれる領域にバンド#10を設定するように、SED210bに要求する。さらに、ボリューム設定部312は、LUN#00の物理記憶領域のうちSED210cに含まれる領域にバンド#20を設定するように、SED210cに要求する。
【0087】
バンド#00の設定要求を受けたSED210aのバンド管理部241(図4参照)は、バンド#00を設定する。具体的には、SED210aのバンド管理部241は、バンド管理テーブル230にバンド#00についてのレコード231(図5参照)を生成し、そのレコード231に対して、バンド#00の位置情報や暗号化/復号に用いる暗号鍵X0などを登録する。
【0088】
また、バンド#10の設定要求を受けたSED210bのバンド管理部241は、SED210b内のバンド管理テーブル230にバンド#10についてのレコード231を生成し、そのレコード231に対して、バンド#10の位置情報や暗号化/復号に用いる暗号鍵Y0などを登録する。さらに、バンド#20の設定要求を受けたSED210cのバンド管理部241は、SED210c内のバンド管理テーブル230にバンド#20についてのレコード231を生成し、そのレコード231に対して、バンド#0の位置情報や暗号化/復号に用いる暗号鍵Z0などを登録する。
【0089】
ボリューム設定部312は、SED210a〜210cのそれぞれにおけるLUN#00の物理記憶領域を示す情報に対して、SED210a〜210cのそれぞれに設定したバンド#00,#10,#20を識別する情報を対応付けて、LV管理テーブル330に登録する。
【0090】
同様に、SED210a〜210cに跨るLUN#01を設定する場合、ボリューム設定部312は、LUN#01の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域に、バンド#01,#11,#21をそれぞれ設定するように、SED210a〜210cにそれぞれ要求する。そして、ボリューム設定部312は、SED210a〜210cのそれぞれにおけるLUN#01の物理記憶領域を示す情報に対して、SED210a〜210cのそれぞれに設定したバンド#01,#11,#21を識別する情報を対応付けて、LV管理テーブル330に登録する。
【0091】
同様に、SED210a〜210cに跨るLUN#02を設定する場合、ボリューム設定部312は、LUN#02の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域に、バンド#02,#11,#21をそれぞれ設定するように、SED210a〜210cにそれぞれ要求する。そして、ボリューム設定部312は、SED210a〜210cのそれぞれにおけるLUN#02の物理記憶領域を示す情報に対して、SED210a〜210cのそれぞれに設定したバンド#02,#12,#22を識別する情報を対応付けて、LV管理テーブル330に登録する。
【0092】
以上のようなボリューム設定部312による論理ボリューム設定処理により、論理ボリュームを複数のSEDに跨るように設定した場合でも、論理ボリュームごとにデータを短時間で完全消去することが可能になる。例えば、LUN#00を完全消去する場合、CM300aのセキュアイレース制御部313(図8参照)は、LUN#00が含まれるSED210a,210b,210cに対して、それぞれバンド#00,#10,#20に対応する暗号鍵を変更するように要求する。
【0093】
暗号鍵の変更要求を受けたSED210aのバンド管理部241は、暗号鍵生成部242に新たな暗号鍵を生成させ、バンド#00に対応付けられた暗号鍵X0を新たな暗号鍵に変更する。これにより、SED210aの物理記憶領域のうちLUN#00に含まれる領域のデータが完全消去される。
【0094】
同様に、暗号鍵の変更要求を受けたSED210bのバンド管理部241は、暗号鍵生成部242に新たな暗号鍵を生成させ、バンド#10に対応付けられた暗号鍵X1を新たな暗号鍵に変更する。これにより、SED210bの物理記憶領域のうちLUN#10に含まれる領域のデータが完全消去される。
【0095】
同様に、暗号鍵の変更要求を受けたSED210cのバンド管理部241は、暗号鍵生成部242に新たな暗号鍵を生成させ、バンド#20に対応付けられた暗号鍵X2を新たな暗号鍵に変更する。これにより、SED210cの物理記憶領域のうちLUN#20に含まれる領域のデータが完全消去される。
【0096】
ここで、図10は、暗号鍵の生成機能を持たない複数のHDDに跨る論理ボリュームの設定処理について示す参考図である。
図10に示すHDD400a〜400cは、自己暗号化機能および暗号鍵の生成機能を持たない記憶装置である。また、CM410は、暗号鍵を生成し、生成した暗号鍵を用いてHDD400a〜400cのそれぞれに対して記録するデータを暗号化する機能を備える。このような構成のシステムにおいて、CM410は、HDD400a〜400cに跨る論理ボリュームを生成する処理を考える。
【0097】
例えば、HDD400a〜400cに跨るLUN#00’を設定する場合、CM410は、HDD400a〜400cのそれぞれにおけるLUN#00’の設定領域を示す情報と、LUN#00’に記録するデータの暗号化に用いる暗号鍵Xとを、LV管理テーブル411に登録する。それ以後、CM410は、LUN#00’に記録するデータを、その記録先がHDD400a〜400cのどれかに関係なく、暗号鍵Xを用いて暗号化する。また、CM410は、LUN#00’から読み出したデータを、暗号鍵Xを用いて復号する。
【0098】
同様に、HDD400a〜400cに跨るLUN#01’を設定する場合、CM410は、HDD400a〜400cのそれぞれにおけるLUN#01’の設定領域を示す情報と、LUN#01’に記録するデータの暗号化に用いる暗号鍵Yとを、LV管理テーブル411に登録する。それ以後、CM410は、LUN#01’に記録するデータを、その記録先がHDD400a〜400cのどれかに関係なく、暗号鍵Yを用いて暗号化する。また、CM410は、LUN#01’から読み出したデータを、暗号鍵Yを用いて復号する。
【0099】
同様に、HDD400a〜400cに跨るLUN#02’を設定する場合、CM410は、HDD400a〜400cのそれぞれにおけるLUN#02’の設定領域を示す情報と、LUN#02’に記録するデータの暗号化に用いる暗号鍵Zとを、LV管理テーブル411に登録する。それ以後、CM410は、LUN#02’に記録するデータを、その記録先がHDD400a〜400cのどれかに関係なく、暗号鍵Xを用いて暗号化する。また、CM410は、LUN#02’から読み出したデータを、暗号鍵Zを用いて復号する。
【0100】
以上のようなCM410による論理ボリューム設定処理により、論理ボリュームを複数のHDDに跨るように設定した場合でも、論理ボリュームごとにデータを短時間で完全消去することが可能になる。例えば、LUN#00’を完全消去する場合、CM410は、LUN#00’の暗号化/復号に用いる暗号鍵Xを新たな暗号鍵に変更し、LV管理テーブル411に新たな暗号鍵を登録する。
【0101】
このように、CM410が暗号鍵を生成して暗号化/復号を行う場合には、CM410側において論理ボリュームと暗号鍵とを対応付けた管理すればよく、HDD側に対しては何ら設定の必要はない。
【0102】
一方、本実施の形態のストレージシステム100では、暗号鍵の生成機能をSEDが持つため、論理ボリュームを単位としてデータを短時間で完全消去する処理を、図10の例のように、CM側で管理する情報のみを基に実行することはできない。そこで、図9で説明したように、本実施の形態のCM300aは、論理ボリュームの物理記憶領域に含まれるSEDに対して、論理ボリュームが含まれる領域にバンドを設定するように要求する。論理ボリュームが複数のSEDに跨るのであれば、それらのSEDのそれぞれに対して、論理ボリュームが含まれる領域にバンドを設定するように要求する。
【0103】
このような設定要求により、CM300aがLV管理テーブル330を用いて管理する論理ボリュームの物理記憶領域と一致する領域が、SED側でも、バンド管理テーブル230に登録されたバンドとして管理されるようになる。そして、CM300aが、消去対象の論理ボリュームの物理記憶領域に含まれるSEDに対して、消去対象の論理ボリュームに対応するバンドについての暗号鍵の変更を要求することで、論理ボリューム単位でデータを短時間で完全消去できるようになる。
【0104】
図11は、ボリューム設定処理手順の例を示すフローチャートである。
[ステップS11]CM300aのボリューム設定部312は、管理端末130からの要求に応じて、RLUの設定を行う。
【0105】
ボリューム設定部312は、RAID管理テーブル320に対して新たなレコード321を生成する。ボリューム設定部312は、管理端末130から、RAIDレベル、使用するSED、および、SEDごとのRLUの設定領域の大きさについての指定を受け付ける。ボリューム設定部312は、指定されたRAIDレベルおよび使用するSEDを、生成したレコード321の「RAIDレベル」および「使用ドライブ」の各欄に登録する。
【0106】
また、ボリューム設定部312は、使用するSEDのそれぞれにおいて、管理端末130から指定された大きさの物理記憶領域を確保する。このとき、各SEDには同じ大きさの物理記憶領域が確保されればよい。ボリューム設定部312は、各SEDに確保した領域の先頭アドレスおよび大きさを、新たに生成したレコード321内の各SEDに対応する「先頭アドレス」および「長さ」の欄に登録する。
【0107】
[ステップS12]ボリューム設定部312は、管理端末130からの要求に応じて、論理ボリュームの設定を行う。
ボリューム設定部312は、ステップS11でRAID管理テーブル320に生成したレコード321に対して、新たに設定する論理ボリュームの識別情報(LUN)を登録する。また、ボリューム設定部312は、レコード321に登録した論理ボリュームに対応するレコード331を、LV管理テーブル330に生成する。
【0108】
ボリューム設定部312は、ステップS11でRAID管理テーブル320に設定したレコード321から、「使用ドライブ」に登録されたSEDの識別情報を抽出する。ボリューム設定部312は、LV管理テーブル330に生成したレコード331に対して、RAID管理テーブル320から抽出したSEDの識別情報にそれぞれ対応する、SEDについての情報の登録欄を作成する。
【0109】
ボリューム設定部312は、管理端末130から、RAID管理テーブル320から抽出したSEDのそれぞれに確保する論理ボリュームの大きさの指定を受け付ける。ボリューム設定部312は、管理端末130から指定された大きさ分の物理記憶領域を、各SEDに確保する。このとき、ボリューム設定部312は、各SEDについて、ステップS11でRAID管理テーブル320に生成したレコード321内の「先頭アドレス」および「長さ」が示す物理記憶領域のうち、論理ボリュームが設定されていない空き領域の先頭部を、論理ボリュームの領域として確保する。ボリューム設定部312は、各SEDに確保した領域についての先頭アドレスおよび大きさを、LV管理テーブル330に生成したレコード331内の各SEDに対応する「先頭アドレス」および「長さ」の欄に登録する。
【0110】
[ステップS13]ボリューム設定部312は、ステップS12でLV管理テーブル330に生成したレコード331から、SEDを1つ選択する。
[ステップS14]ボリューム設定部312は、ステップS13で選択したSEDに対して、論理ボリュームに対応する領域にバンドを設定するように要求する。
【0111】
ボリューム設定部312は、ステップS12でLV管理テーブル330に生成したレコード331から、ステップS13で選択したSEDについての「先頭アドレス」および「長さ」の各登録値を読み出す。ボリューム設定部312は、ステップS13で選択したSEDに対して、LV管理テーブル330から読み出した「先頭アドレス」および「長さ」の登録値を送信し、「先頭アドレス」および「長さ」が示す領域にバンドを設定するように要求する。
【0112】
設定要求を受けたSEDのバンド管理部241は、バンド管理テーブル230に新たなレコード231を生成する。バンド管理部241は、ボリューム設定部312から受信した「先頭アドレス」および「長さ」の各値を、新たに生成したレコード231の「先頭アドレス」および「長さ」の欄に登録する。
【0113】
また、バンド管理部241は、バンドにおいて暗号化/復号に使用される暗号鍵を、新たに生成したレコード231の「暗号鍵」の欄に登録する。このとき登録される暗号鍵は、バンドが新たに設定された領域において、設定前に使用されていた暗号鍵と同じものである。例えば、グローバルバンドの領域に新たなバンドが設定された場合、新たなバンドの暗号鍵として、グローバルバンドの暗号鍵が登録される。
【0114】
[ステップS15]SEDのバンド管理部241は、ステップS14で新たに生成したレコード231に付与したバンド識別情報を、CM300aのボリューム設定部312に送信する。ボリューム設定部312は、バンド管理部241から受信したバンド識別情報を、ステップS12でLV管理テーブル330に生成したレコード331の登録欄のうち、ステップS13で選択したSEDに対応する「バンド識別情報」の欄に登録する。
【0115】
なお、図示しないが、ボリューム設定部312は、さらに、管理端末130からの要求に基づいて、ステップS14で設定されたバンドに対する自動ロック動作の設定や、ロック状態を解除するための認証鍵の設定を行ってもよい。ボリューム設定部312は、管理端末130から自動ロック動作の適用要求と認証鍵とを受け付けると、ステップS12でLV管理テーブル330に生成したレコード331の登録欄のうち、ステップS13で選択したSEDに対応する「認証鍵」の欄に、管理端末130から受信した認証鍵を登録する。また、ボリューム設定部312は、ステップS13で選択したSEDに対して、管理端末130から受信した認証鍵を送信して、自動ロック動作を有効にするように要求する。要求を受けたSEDのバンド管理部241は、ステップS14でバンド管理テーブル230に生成したレコード231において、「ロックイネーブル」の値を初期値「0」から「1」に更新するとともに、「認証鍵」の欄に、CM300aから受信した認証鍵をハッシュ化して登録する。
【0116】
なお、自動ロック動作を有効または無効にする処理は、図11に示す論理ボリュームの初期設定処理が実行された後の任意のタイミングで行うこともできる。
[ステップS16]ボリューム設定部312は、ステップS12でLV管理テーブル330に生成したレコード331に登録されたすべてのSEDについて、処理済みであるかを判定する。処理済みでないSEDが存在する場合(S16:No)、ステップS13に戻り、ボリューム設定部312は、レコード331に登録された未処理のSEDを1つ選択する。一方、登録されたすべてのSEDが処理済みである場合(S16:Yes)、ボリューム設定処理が終了する。
【0117】
以上の図11の処理によれば、論理ボリュームが1つのSEDに設定される場合には、ステップS13〜S16の処理が1回だけ行われ、設定先の1つのSEDに対して、論理ボリュームの物理記憶領域に対応するバンドが設定される。これとともに、LV管理テーブル330に新たに生成されたレコード331には、バンド識別情報が1つだけ登録される。
【0118】
また、論理ボリュームが複数のSEDに跨るように設定される場合には、ステップS13〜S16の処理が、論理ボリュームに含まれるSEDの数だけ繰り返し実行される。この場合、論理ボリュームに含まれるSEDのそれぞれに対してバンドが設定されるとともに、LV管理テーブル330に新たに生成されたレコード331には、バンド識別情報がSEDの数だけ登録される。
【0119】
なお、以上の図11では、RLUの設定に続いて論理ボリュームを設定する場合について示したが、RLUの設定後の任意のタイミングで、設定されたRLUに対して論理ボリュームを追加することもできる。この場合、上記のステップS12〜S16の処理が実行される。ステップS12では、RLUが設定された各SEDの領域のうち、先頭側から順に論理ボリュームの領域が確保される。また、RAID管理テーブル320の各レコード321の「論理ボリューム」欄には、設定された論理ボリュームが、RLUが設定された各SEDの領域の先頭側から順に登録される。
【0120】
図12は、論理ボリュームを完全消去する際の処理手順の例を示す図である。
[ステップS31]CM300aのセキュアイレース制御部313は、管理端末130から、論理ボリュームの指定と、指定された論理ボリュームを完全消去する要求とを受け付ける。
【0121】
[ステップS32]セキュアイレース制御部313は、管理端末130から指定された論理ボリュームに対応するレコード331を、LV管理テーブル330から抽出する。
[ステップS33]セキュアイレース制御部313は、ステップS32でLV管理テーブル330から抽出したレコード331から、「バンド識別情報」が示すバンドを1つ選択する。
【0122】
[ステップS34]セキュアイレース制御部313は、ステップS33で選択したバンドの識別情報に対応付けられたSEDを判別し、判別したSEDに対して、バンドの識別情報を送信し、そのバンドについてのセキュアイレースの実行を要求する。実行要求を受け付けたSEDのバンド管理部241は、暗号鍵生成部242に新たな暗号鍵を生成させる。バンド管理部241は、セキュアイレース制御部313から受信したバンドの識別情報に対応するレコード231をバンド管理テーブル230から抽出し、抽出したレコード231内の「暗号鍵」に登録された値を、新たに生成された暗号鍵に更新する。これにより、抽出したレコード231に対応するバンドに記録されていたデータは、完全消去される。
【0123】
[ステップS35]セキュアイレース制御部313は、ステップS32でLV管理テーブル330から抽出したレコード331に登録されたすべてのバンドについて、処理済みであるかを判定する。処理済みでないバンドが存在する場合(S35:No)、ステップS33に戻り、セキュアイレース制御部313は、レコード331に登録された未処理のバンドを1つ選択する。一方、登録されたすべてのバンドが処理済みである場合(S35:Yes)、セキュアイレース制御部313は処理を終了する。
【0124】
以上の図12の処理によれば、消去対象として指定された論理ボリュームが1つのSEDに設定されている場合には、ステップS33〜S35の処理が1回だけ行われ、指定された論理ボリュームに対応する1つのSED内のバンドにおいて、セキュアイレースが行われる。一方、消去対象として指定された論理ボリュームが複数のSEDに跨って設定されている場合には、ステップS33〜S35の処理が、論理ボリュームに含まれるSEDの数だけ繰り返し実行される。この場合、論理ボリュームの物理記憶領域のうち各SEDにおける領域について、セキュアイレースが実行される。このような処理により、論理ボリュームが複数のSEDに跨って設定されている場合でも、論理ボリューム単位でデータを短時間で完全消去することができる。
【0125】
次に、LDE処理について説明する。前述のように、LDE処理とは、RLUを構成するSEDの数、RLUを構成する物理記憶領域の容量、RAIDレベルを変更するなど、RAIDの構成を変更する処理である。
【0126】
図13および図14は、LDE処理の一例を示す図である。
これらの図13および図14では、LDE処理の一例として、RLUを構成するSEDの数を「3」から「4」に増加させる処理を示す。図13および図14の例では、RAIDレベルは「0」のまま変化しないものとし、データ#001〜#011,#101〜111は、それぞれ暗号化されたストライピングデータであるものとする。
【0127】
図13に示す「状態1」では、LUN#00およびLUN#01が、ともにSED210a〜210cに跨るように設定されている。LUN#00の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域には、バンド#00,#10,#20がそれぞれ設定されている。また、LUN#01の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域には、バンド#01,#11,#21がそれぞれ設定されている。なお、LUN#00,#01は同一のRLUに含まれ、LUN#00,#01の物理記憶領域は、SED210a,210b,210cのそれぞれにおいて隣接している。
【0128】
上記の「状態1」から、LDE処理として、LUN#00,#01を含むRLUを構成するSEDを、SED210a〜210cの3個からSED210a〜210dの4個に変更する処理を実行するものとする。この場合、CM300aのボリューム設定部312は、まず、SED210dにLUN#00の領域を設定するとともに、SED210dに対して、LUN#00の範囲にバンドを設定するように要求する。これにより、SED210dにはバンド#30が設定される。
【0129】
次に、ボリューム設定部312は、RAID制御部311に対して、LUN#00に含まれるデータ#000〜#011を、拡張されたLUN#00の領域に再配置するように要求する。RAID制御部311は、データ#000〜#011を、SED210a〜210dのそれぞれにおけるLUN#00の先頭領域側に移動させる。データの再配置が完了した状態を、図13の「状態2」に示す。図13の例ではRAIDレベルは変更されないので、再配置の前後ではデータの数は変化しない。このため、SED210a〜210dのそれぞれにおけるLUN#00の領域の後端には、空き領域が生じる。
【0130】
次に、ボリューム設定部312は、LUN#00の設定範囲を、データが再配置された範囲(空き領域を含まない範囲)に制限する。これとともに、ボリューム設定部312は、SED210a,210b,210c,210dに対して、それぞれバンド#00,#10,#20,#30の領域をLUN#00の設定領域に合わせて制限するように要求する。バンド#00、#10,#20,#30がそれぞれ制限された状態を、図13の「状態3」に示す。LUN#00のデータの再配置によって生じた空き領域は、グローバルバンドとなり、他の論理ボリュームを設定可能な状態になる。
【0131】
次に、ボリューム設定部312は、SED210a〜210cのそれぞれにおけるLUN#01の領域を、LUN#00のデータの再配置によって生じた空き領域を含むように拡張する。これとともに、ボリューム設定部312は、SED210a,210b,210cに対して、それぞれバンド#01,#11,#21の領域をLUN#01の設定領域に合わせて拡張するように要求する。次に、ボリューム設定部312は、SED210dにLUN#01の領域を設定する。このときSED210dに設定されるLUN#01の領域の大きさは、SED210a〜210cのそれぞれにおけるLUN#01の設定領域と同じにする。さらに、ボリューム設定部312は、SED210dに対して、LUN#01の範囲にバンドを設定するように要求する。これにより、図14の「状態4」に示すように、SED210dにバンド#31が設定される。
【0132】
次に、ボリューム設定部312は、RAID制御部311に対して、LUN#01に含まれるデータ#100〜#111を、拡張されたLUN#01の領域に再配置するように要求する。RAID制御部311は、データ#100〜#111を、SED210a〜210dのそれぞれにおけるLUN#01の先頭領域側に移動させる。データの再配置が完了した状態を、図14の「状態5」に示す。この「状態5」のように、SED210a〜210dのそれぞれにおけるLUN#01の領域の後端には、空き領域が生じる。
【0133】
次に、ボリューム設定部312は、LUN#01の設定範囲を、データが再配置された範囲(空き領域を含まない範囲)に制限する。これとともに、ボリューム設定部312は、SED210a,210b,210c,210dに対して、それぞれバンド#01,#11,#21,#31の領域をLUN#01の設定領域に合わせて制限するように要求する。バンド#01、#11,#21,#31がそれぞれ制限された状態を、図14の「状態6」に示す。LUN#01のデータの再配置によって生じた空き領域は、グローバルバンドとなり、他の論理ボリュームを設定可能な状態になる。
【0134】
上記の図14における「状態4」から「状態6」までの処理では、LUN#01の設定範囲が移動する。この移動処理では、「状態4」に示すように、LUN#01のデータの移動を開始する前に、LUN#00のデータの再配置によって生じた空き領域に対して、LUN#01に含まれるバンド#01,#11,#21の領域が拡張される。
【0135】
もし、バンド#01,#11,#21の領域拡張を行う前にLUN#01のデータを移動してしまうと、LUN#00のデータの再配置によって生じた空き領域に移動したLUN#01のデータ#100〜#102(「状態5」参照)は、バンド#01,#11,#21に含まれるデータとは異なる暗号鍵を用いて暗号化されてしまう。このため、LUN#01のデータを一度に完全消去できなくなってしまう。これに対して、「状態4」のようにバンド#01,#11,#21の領域を拡張した後に、LUN#01のデータを移動させることで、LUN#01のデータを一度に完全消去できるようになる。
【0136】
図15は、RLUに含まれるSED数を増加させる場合のLDE処理手順の例を示すフローチャートである。
[ステップS51]ボリューム設定部312は、管理端末130からLDE処理の要求を受け付けるとともに、LDE処理対象のRLUの指定を受け付ける。また、ボリューム設定部312は、指定されたRLUを構成する物理記憶領域として新たに含めるSEDの指定も受け付ける。
【0137】
[ステップS52]ボリューム設定部312は、RAID管理テーブル320から、LDE処理対象として指定されたRLUのレコード321を抽出する。ボリューム設定部312は、抽出したレコード321の「論理ボリューム」の欄から、先頭の論理ボリュームを選択する。
【0138】
[ステップS53]ボリューム設定部312は、ステップS52で選択した論理ボリュームに、ステップS51で管理端末130から指定された新たなSEDを追加する。具体的には、ボリューム設定部312は、LV管理テーブル330から、ステップS52で選択した論理ボリュームのレコード331を抽出する。ボリューム設定部312は、抽出したレコード331に、新たなSEDについての「先頭アドレス」および「長さ」を登録する。ここで、「長さ」の欄に登録される値は、同じレコード331内の他のSEDについての「長さ」の値と同じとされる。
【0139】
ボリューム設定部312は、さらに、新たなSEDに対して、論理ボリュームに対応する領域にバンドを設定するように要求する。このとき、ボリューム設定部312は、LV管理テーブル330から抽出したレコード331に登録した、新たなSEDについての「先頭アドレス」および「長さ」の各登録値を読み出して、新たなSEDに対して送信する。
【0140】
設定要求を受けたSEDのバンド管理部241は、バンド管理テーブル230に新たなレコード231を生成する。バンド管理部241は、ボリューム設定部312から受信した「先頭アドレス」および「長さ」の各値を、新たに生成したレコード231の「先頭アドレス」および「長さ」の欄に登録する。バンド管理部241は、暗号鍵生成部242に暗号鍵を生成させ、生成された暗号鍵を、新たに生成したレコード231の「暗号鍵」の欄に登録する。
【0141】
[ステップS54]ボリューム設定部312は、RAID制御部311に対して、ステップS53で拡張した論理ボリュームに対してデータを再配置するように要求する。例えば、図13,図14のようにRAIDレベルが「0」のまま変化しない場合、RAID制御部311は、ステップS52で選択された論理ボリュームに現在記録されているデータをCM300a内のRAM302に一旦移動した後、移動したデータを、ステップS53で拡張した論理ボリュームの領域に対して、先頭側から詰めて書き込む。
【0142】
なお、このステップS54でのデータ再配置では、変更前後のRAIDレベルやSED数などによっては、データを単に移動させるだけでなく、パリティデータの再計算が行われる場合もある。パリティデータの再計算が必要となる場合、RAID制御部311は、パリティデータを再計算し、算出されたパリティデータおよび計算元のデータを、論理ボリュームが設定された各SEDのうち適切なSEDに対して割り振る。
【0143】
[ステップS55]このステップS55の処理は、ステップS54のデータ再配置により、処理対象の論理ボリュームについての各SEDにおける領域の後端に空き領域が生じた場合に実行される。ボリューム設定部312は、各SEDにおける論理ボリュームの設定領域を、空き領域を含まないように制限する。このとき、ボリューム設定部312は、ステップS52で選択したLV管理テーブル330のレコード331に登録された情報のうち、各SEDについての「長さ」の値を、空き領域を含まないように小さくする。
【0144】
さらに、ボリューム設定部312は、処理対象の論理ボリュームが含まれる各SEDに対して、論理ボリュームの設定範囲に合わせてバンドの設定範囲も制限するように要求する。このとき、ボリューム設定部312は、各SEDに対して、LV管理テーブル330のレコード331の「長さ」において更新された値を送信する。バンド設定範囲の制限要求を受けた各SEDのバンド管理部241は、バンド管理テーブル230内の対応するバンドのレコード231において、「長さ」の登録値をボリューム設定部312から受信した値に更新する。これにより、各SEDにおけるバンドの領域の後端が先頭側に移動し、バンドから外れた空き領域がグローバルバンドに変更される。
【0145】
[ステップS56]ボリューム設定部312は、ステップS52でRAID管理テーブル330から抽出したレコード331の「論理ボリューム」欄に登録されたすべての論理ボリュームについて、処理済みかを判定する。処理済みでない論理ボリュームがある場合(S56:No)、ボリューム設定部312は、ステップS57の処理を実行する。一方、登録されたすべての論理ボリュームが処理済みである場合(S56:Yes)、ボリューム設定部312は、LDE処理を終了する。
【0146】
[ステップS57]ボリューム設定部312は、ステップS52でRAID管理テーブル330から抽出したレコード331の「論理ボリューム」欄に登録された未処理の論理ボリュームのうち、先頭の論理ボリュームを選択する。
【0147】
[ステップS58]ボリューム設定部312は、ステップS57で選択した論理ボリュームに、ステップS51で管理端末130から指定された新たなSEDを追加する。具体的には、ボリューム設定部312は、LV管理テーブル330から、ステップS57で選択した論理ボリュームのレコード331を抽出する。ボリューム設定部312は、抽出したレコード331に、新たなSEDについての「先頭アドレス」および「長さ」を登録する。ここで、「長さ」の欄に登録される値は、同じレコード331内の他のSEDについての「長さ」の値と同じとされる。
【0148】
ボリューム設定部312は、さらに、新たなSEDに対して、論理ボリュームに対応する領域にバンドを設定するように要求する。このとき、ボリューム設定部312は、LV管理テーブル330から抽出したレコード331に登録した、新たなSEDについての「先頭アドレス」および「長さ」の各登録値を読み出して、新たなSEDに対して送信する。
【0149】
設定要求を受けたSEDのバンド管理部241は、ステップS53と同様の手順で、ボリューム設定部312から受信した「先頭アドレス」および「長さ」が示す領域に、バンドを設定する。
【0150】
[ステップS59]このステップS59は、1つ前に処理された論理ボリュームについてのステップS55またはステップS61の処理により、1つ前に処理された論理ボリュームの記憶領域と現在の処理対象の論理ボリュームの記憶領域との間に空き領域(グローバルバンド)が生じた場合に実行される。ボリューム設定部312は、処理対象の論理ボリュームが含まれる各SEDの物理記憶領域のうち、1つ前に処理された論理ボリュームについてのステップS55またはステップS61の処理によって生じた空き領域に対して、処理対象の論理ボリュームの領域を拡張する。このとき、ボリューム設定部312は、ステップS58でLV管理テーブル330から抽出したレコード331の登録値のうち、各SEDについての「先頭アドレス」の値を、空き領域の先頭アドレスに更新する。
【0151】
さらに、ボリューム設定部312は、処理対象の論理ボリュームが含まれる各SEDに対して、論理ボリュームの設定範囲に合わせてバンドの設定範囲も拡張するように要求する。このとき、ボリューム設定部312は、各SEDに対して、LV管理テーブル330のレコード331の「先頭アドレス」において更新された値を送信する。バンド設定範囲の拡張要求を受けた各SEDのバンド管理部241は、バンド管理テーブル230内の対応するバンドのレコード231において、「先頭アドレス」の登録値をボリューム設定部312から受信した値に更新する。これにより、各SEDにおけるバンドの領域が先頭側に拡張される。
【0152】
[ステップS60]ボリューム設定部312は、RAID制御部311に対して、ステップS59で拡張した論理ボリュームに対してデータを再配置するように要求する。前述のステップS54と同様、RAID制御部311は、図13,図14のようにRAIDレベルが「0」のまま変化しない場合には、処理対象の論理ボリュームに現在記録されているデータをCM300a内のRAM302に一旦移動した後、移動したデータを、ステップS59で拡張した論理ボリュームの領域に対して、先頭側から詰めて書き込む。また、バリティデータの再計算が必要となる場合、RAID制御部311は、パリティデータを再計算し、算出されたパリティデータおよび計算元のデータを、論理ボリュームが設定された各SEDのうち適切なSEDに対して割り振る。
【0153】
[ステップS61]このステップS61の処理は、ステップS60のデータ再配置により、処理対象の論理ボリュームについての各SEDにおける領域の後端に空き領域が生じた場合に実行される。ボリューム設定部312は、ステップS55と同様の手順で、各SEDにおける処理対象の論理ボリュームの設定領域を、空き領域を含まないように制限する。さらに、ボリューム設定部312は、ステップS55と同様の手順で、処理対象の論理ボリュームに含まれる各SEDに対して、論理ボリュームの設定範囲に合わせてバンドの設定範囲も制限するように要求する。このバンド設定範囲の制限要求に応じて、各SEDにおけるバンドの領域の後端が先頭側に移動し、バンドから外れた空き領域がグローバルバンドに変更される。
【0154】
この後、ステップS56に戻り、ステップS51で指定されたRLUに含まれるすべての論理ボリュームについて、ステップS57〜S61の処理が繰り返される。
以上の図15の処理のうち、ステップS57〜S61では、各SEDにおける論理ボリュームの設定範囲が先頭側に移動し得る。論理ボリュームの設定範囲が移動する場合には、ステップS60でのデータの再配置が行われる前に、ステップS59において、論理ボリュームが先頭側に拡張されるとともに、拡張された論理ボリュームに対応する各SED内のバンドの範囲も、先頭側に拡張される。このような論理ボリュームの領域移動処理が行われることで、LDE処理後においても、図12と同様の手順により、論理ボリューム単位でデータを短時間で完全消去できるようになる。
【0155】
次に、図16および図17は、リビルド/コピーバック処理の一例を示す図である。
前述のように、リビルド処理は、RLUを構成するいずれかのSEDが故障した場合に、故障したSEDに記録されていたデータと同じデータを生成して、ホットスペアのSEDに書き込む処理である。また、コピーバック処理は、故障したSEDに代わって投入されたSEDに対して、ホットスペアのSEDに記録されたデータを書き戻す処理である。
【0156】
図16の「状態11」では、同一RLUに含まれるLUN#00,#01が、SED210a〜210cに跨るように設定されている。LUN#00の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域には、バンド#00,#10,#20がそれぞれ設定されている。また、LUN#01の物理記憶領域のうちSED210a,210b,210cにそれぞれ含まれる領域には、バンド#01,#11,#21がそれぞれ設定されている。
【0157】
この「状態11」から、SED210cが故障したとすると、ホットスペアのSED210dを用いてリビルド処理が実行される。CM300aのボリューム設定部312は、まず、SED210dに対して、SED210c内のLUN#00,#01の各領域と同じ大きさのLUN#00,#01を設定する。これとともに、ボリューム設定部312は、SED210d内のLUN#00,#01にそれぞれ対応する領域にバンド#30,#31を設定するように、SED210dのバンド管理部241に要求する。
【0158】
バンド#30,#31の設定完了後、ボリューム設定部312は、SED210cのLUN#00,#01にそれぞれ記録されていたデータと同じデータを、SED210d内のLUN#00,#01の領域に書き込むように、RAID制御部311に要求する。例えば、データ#002がデータ#000,#001に基づくパリティデータである場合、RAID制御部311は、データ#000,#001を基にパリティデータであるデータ#002を算出して、SED210dに書き込む。また、データ#004がデータ#003,#005に基づくパリティデータである場合、RAID制御部311は、データ#003と、パリティデータであるデータ#004とを基にデータ#005を復元し、復元したデータ#005をSED210dに書き込む。
【0159】
SED210dへのデータ書き込みが完了すると、ボリューム設定部312は、SED210cに設定していたLUN#00,#01およびバンド#20,#21を解除する。設定解除が完了すると、図16の「状態12」に示すように、故障したSED210cがDE200から取り外される。
【0160】
次に、図17の「状態13」に示すように、新たなSED210eがDE200に装着されると、コピーバック処理が開始される。CM300aのボリューム設定部312は、取り外したSED210cにおけるLUN#00,#01の設定と同じ設定値を持つLUN#00,#01を、SED210eに設定する。さらに、ボリューム設定部312は、SED210eにおけるLUN#00,#01の各領域に、バンド#50,#51を設定する。
【0161】
その後、ボリューム設定部312は、ホットスペアであるSED210dのLUN#00,#01の各領域に記録されたデータを、SED210eのLUN#00,#01の各領域に書き戻す。書き戻しが完了した後、ボリューム設定部312は、SED210dに設定していたLUN#00,#01およびバンド#30,#31を解除する。以後、図17の「状態13」に示すように、SED210a,210b,210eを用いてRAIDの運用が続行される。
【0162】
以上の図16,図17の処理では、データを他のSEDに書き込む前には、データ書き込みの前に書き込み先のSEDに対して論理ボリュームおよびバンドの設定が行われる。これにより、例えば、「状態12」のようなリビルド処理の完了後、および「状態14」のようなコピーバック処理の完了後のいずれの状態でも、ボリュームごとにデータを短時間で完全消去することが可能になる。
【0163】
〔第3の実施の形態〕
上記の第2の実施の形態において、SED内のロック制御部244は、SEDの電源が投入されたとき、SEDに設定されたバンドのうち自動ロック動作が有効である全バンドについて、CMの認証処理部314との間で認証処理を行う。SEDに設定された全バンドについて自動ロック動作が有効になっている場合には、SEDの電源投入時に、SEDに設定された全バンドについて、CMとの間で認証処理が実行される。
【0164】
第2の実施の形態では、各SEDに対して、1つの論理ボリュームに対応する記憶領域ごとに1つのバンドが設定された。このため、論理ボリュームが設定される数が多いほど、バンドが設定される数も多くなり、その結果、SEDの電源投入時においてCMとの間で認証処理が必要となり得るバンドの数も多くなる。認証処理が必要なバンドが多いほど、電源投入操作からSEDにアクセス可能になるまでに要する時間が長くなる。
【0165】
このような問題に対して、以下の第3の実施の形態では、各SEDに対して、最大2つの論理ボリュームに対応する記憶領域ごとに1つのバンドが設定される。これにより、各SEDに設定されるバンドの数を少なくし、電源投入操作からSEDへのアクセスが可能になるまでの時間を短縮する。
【0166】
以下、第3の実施の形態に係るストレージシステムについて、図4,図8の構成および図5,図7のテーブル構成を用いて説明する。図18は、第3の実施の形態における論理ボリュームの設定処理例を示す図である。
【0167】
図18の例では、LUN#00〜#05という5個の論理ボリュームが、SED210a〜210cに跨って設定されている。なお、LUN#00〜#05は、同一のRLUに設定されているものとする。
【0168】
CM300aのボリューム設定部312は、SED210a〜210cのそれぞれに対して、隣接する2つの論理ボリュームが含まれる記憶領域に1つのバンドを設定する。例えば、SED210a,210b,210cのそれぞれにおけるLUN#00,#01の設定領域には、バンド#00,#10,#20がそれぞれ設定される。バンド#00,#10,#20においては、それぞれ暗号鍵X0,X1,X2を用いてデータの暗号化/復号が行われる。また、SED210a,210b,210cのそれぞれにおけるLUN#02,#03の設定領域には、バンド#01,#11,#21がそれぞれ設定される。バンド#01,#11,#21においては、それぞれ暗号鍵Y0,Y1,Y2を用いてデータの暗号化/復号が行われる。さらに、SED210a,210b,210cのそれぞれにおけるLUN#04,#05の設定領域には、バンド#02,#12,#22がそれぞれ設定される。バンド#02,#12,#22においては、それぞれ暗号鍵Z0,Z1,Z2を用いてデータの暗号化/復号が行われる。
【0169】
ここで、SED210a〜210cのそれぞれのバンド管理テーブル230には、図5と同様に、バンドごとにレコード231が生成され、各レコード231に暗号鍵やバンドの位置情報などが登録される。図18のように、SED210a〜210cのそれぞれにおいて、論理ボリュームの設定数より少ない数のバンドが設定されることで、第2の実施の形態と比較して、バンド管理テーブル230に生成されるレコード231の数が少なくなり、バンド管理テーブル230の記憶容量を削減できる。
【0170】
一方、CM300aのLV管理テーブル330においては、LUN#00,#01のそれぞれに対応するレコード331(図7参照)に対して、ともにバンド#00,#10,#20が登録される。同様に、LUN#02,#03のそれぞれに対応するLV管理テーブル330のレコード331に対して、ともにバンド#01,#11,#21が登録される。また、LUN#04,#05のそれぞれに対応するLV管理テーブル330のレコード331に対して、ともにバンド#02,#12,#22が登録される。
【0171】
図19は、第3の実施の形態において論理ボリューム単位でデータを完全消去する処理の例を示す図である。
図19は、図18のようにLUN#00〜#05が設定された状態から、例としてLUN#02のデータを完全消去する場合の処理を示している。LUN#02のデータを完全消去する場合、ボリューム設定部312は、LUN#02の領域が含まれるバンド#01,#11,#21の領域を、LUN#02を除く領域(すなわち、LUN#03のみ含む領域)に制限するように、SED210a,210b,210cのそれぞれに要求する。具体的には、ボリューム設定部312は、バンド#01,#11,#21の各領域の先頭アドレスを、SED210a,210b,210cのそれぞれにおけるLUN#03の先頭アドレスに変更するように、SED210a,210b,210cのそれぞれに要求する。これにより、SED210a〜210cのそれぞれにおけるLUN#02の領域は、グローバルバンドとなって、使用される暗号鍵が変更されるので、それ以前にLUN#02に記録されていたデータは完全消去される。
【0172】
また、図示しないが、例えば、図18の状態からLUN#03のデータを完全消去する場合には、バンド#01,#11,#21の領域が、LUN#03を除く領域(すなわち、LUN#02のみ含む領域)に制限される。これにより、LUN#03の領域はグローバルバンドとなって、使用される暗号鍵が変更されるので、それ以前にLUN#03に記録されていたデータは完全消去される。
【0173】
以上のように、隣接する2つの論理ボリュームに対して1つのバンドを設定した状態で、1つの論理ボリュームを消去対象とした場合には、消去対象の論理ボリュームが含まれるバンドの範囲が、消去対象の論理ボリュームの領域を含まないように制限される。このような処理により、隣接する2つの論理ボリュームに対して1つのバンドを設定した場合でも、論理ボリューム単位でデータを短時間で完全消去することが可能になる。
【0174】
なお、例えば図19のLUN#02の領域は、他のバンド非設定領域と同じ暗号鍵が使用されるグローバルバンドとなるので、このままでは、それ以後にLUN#02に記録されたデータのみを完全消去させることはできなくなる。しかしながら、図19のLUN#02のように、データが完全消去されてグローバルバンドに変化した論理ボリュームについては、その後に、論理ボリューム単位で完全消去できる状態に復帰させることも可能である。以下、グローバルバンドとなった論理ボリュームを、論理ボリューム単位で完全消去できる状態に復帰させることを、「バンドに復帰させる」と呼ぶ。
【0175】
例えば、図19のLUN#02をバンドに復帰させる場合、ボリューム設定部312は、SED210a,210b,210cのそれぞれにおいてLUN#02の領域に隣接するバンド#01,#11,#21を、LUN#02の領域を含むように拡張する。これにより、LUN#02の領域は、図18のようにLUN#03と共通のバンドの領域に戻り、それ以後、LUN#02のみを完全消去できるようになる。
【0176】
図20は、第3の実施の形態における論理ボリューム設定処理手順の例を示すフローチャートである。この図20の処理は、図11のステップS11で示した手順でRLUが設定された後の任意のタイミングで実行されるものである。ただし、RLUの設定後に、続けて図19の処理が実行されてもよい。
【0177】
[ステップS81]CM300aのボリューム設定部312は、管理端末130から新規の論理ボリュームの設定要求を受けるとともに、論理ボリュームを設定するRLUの識別情報と、RLUを構成する各SEDに対して設定する論理ボリュームの領域の大きさの指定を受ける。
【0178】
なお、RLUの設定後に続けて新規の論理ボリュームの設定が行われる場合には、ステップS81では、RLUを構成する各SEDに設定する論理ボリュームの領域の大きさの指定のみ受け付けられればよい。
【0179】
また、ステップS81では、すでに登録済みであるが、データの完全消去が行われてグローバルバンドとなった論理ボリュームを、論理ボリューム単位で完全消去できる状態に復帰させる(すなわち、バンドに復帰させる)ように、管理端末130から要求される場合もある。この場合、ボリューム設定部312は、管理端末130から復帰対象の論理ボリュームの指定を受け付ける。
【0180】
[ステップS82]ボリューム設定部312は、ステップS81で指定されたRLUのレコード321をRAID管理テーブル320から抽出する。ボリューム設定部312は、抽出したレコード321に対して、新たに設定する論理ボリュームの識別情報(LUN)を登録する。また、ボリューム設定部312は、レコード321に登録した論理ボリュームに対応するレコード331を、LV管理テーブル330に生成する。
【0181】
ボリューム設定部312は、RAID管理テーブル320から抽出したレコード321から、「使用ドライブ」に登録されたSEDの識別情報を抽出する。ボリューム設定部312は、LV管理テーブル330に生成したレコード331に対して、RAID管理テーブル320から抽出したSEDの識別情報にそれぞれ対応する、SEDについての情報の登録欄を作成する。
【0182】
ボリューム設定部312は、ステップS81で管理端末130から指定された大きさ分の物理記憶領域を、各SEDに確保する。このとき、ボリューム設定部312は、各SEDについて、RAID管理テーブル320から抽出したレコード321内の「先頭アドレス」および「長さ」が示す物理記憶領域のうち、論理ボリュームが設定されていない空き領域の先頭部を、論理ボリュームの領域として確保する。ボリューム設定部312は、各SEDに確保した領域についての先頭アドレスおよび大きさを、LV管理テーブル330に生成したレコード331内の各SEDに対応する「先頭アドレス」および「長さ」の欄に登録する。
【0183】
なお、ステップS81で論理ボリュームについてのバンドへの復帰が要求された場合、ステップS82において、ボリューム設定部312は、単に、復帰対象に指定された論理ボリュームに対応するレコード331をLV管理テーブル330から抽出する。
【0184】
[ステップS83]ボリューム設定部312は、ステップS82で設定した論理ボリュームに隣接する領域に、他の論理ボリュームの領域を含むバンドが設定されているかを判定する。ボリューム設定部312は、LV管理テーブル330内の同一RLUに対応する論理ボリュームのレコード331のうち、ステップS82で生成したレコード331より1つ前または1つ後のレコード331の「バンド識別情報」に、(グローバルバンドではない)バンドが設定されている場合に、隣接領域にバンドが設定されていると判定する。
【0185】
隣接領域にバンドが設定されている場合(S83:Yes)、ボリューム設定部312は、ステップS84の処理を実行する。一方、隣接領域にバンドが設定されていない場合(S83:No)、ボリューム設定部312は、ステップS89の処理を実行する。
【0186】
[ステップS84]ボリューム設定部312は、ステップS83で処理対象の論理ボリュームに隣接していると判定したバンドに、論理ボリュームが1個設定されているか、あるいは2個設定されているかを判定する。ボリューム設定部312は、処理対象の論理ボリュームに隣接する、バンドが設定された論理ボリュームに対応するレコード331と、その論理ボリュームにさらに隣接する論理ボリュームに対応するレコード331とを、LV管理テーブル330から抽出する。
【0187】
ボリューム設定部312は、抽出した2つのレコード331の「バンド識別情報」の欄に異なるバンドが設定されていた場合に、バンドに論理ボリュームが1個設定されていると判定し(S84:Yes)、ステップS85の処理を実行する。一方、ボリューム設定部312は、抽出した2つのレコード331の「バンド識別情報」の欄に同じバンドが登録されていた場合に、バンドに論理ボリュームが2個設定されていると判定し(S84:No)、ステップS89の処理を実行する。
【0188】
[ステップS85]ボリューム設定部312は、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)から、SEDを1つ選択する。
【0189】
[ステップS86]ボリューム設定部312は、ステップS85で選択したSEDに対して、処理対象の論理ボリュームの設定領域に隣接するバンドの範囲を、処理対象の論理ボリュームを含む範囲まで拡張するように要求する。処理対象の論理ボリュームより先頭側の記憶領域にバンドが隣接する場合、SEDのバンド管理部241は、そのバンドについてのバンド管理テーブル230のレコード231内の「長さ」を、処理対象の論理ボリュームの範囲を含むように大きくする。一方、処理対象の論理ボリュームより後端部側の記憶領域にバンドが隣接する場合、バンド管理部241は、そのバンドについてのバンド管理テーブル230のレコード231内の「先頭アドレス」を、処理対象の論理ボリュームの先頭アドレスによって更新する。
【0190】
[ステップS87]SEDのバンド管理部241は、ステップS86で範囲を拡張したバンドの識別情報を、CM300aのボリューム設定部312に送信する。ボリューム設定部312は、バンド管理部241から受信したバンド識別情報を、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)の登録欄のうち、ステップS85で選択したSEDに対応する「バンド識別情報」の欄に登録する。
【0191】
[ステップS88]ボリューム設定部312は、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)に登録されたすべてのSEDについて、処理済みであるかを判定する。処理済みでないSEDが存在する場合(S88:No)、ステップS85に戻り、ボリューム設定部312は、レコード331に登録された未処理のSEDを1つ選択する。一方、登録されたすべてのSEDが処理済みである場合(S88:Yes)、ボリューム設定処理は終了する。
【0192】
以上のステップS85〜S88の処理では、新規に設定された論理ボリューム、またはバンドへの復帰を要求された論理ボリュームに対して、隣接する論理ボリュームと共通のバンドが設定される。従って、ステップS85〜S88の処理が実行された場合には、SEDに設定されるバンドの数は増加しない。
【0193】
[ステップS89〜S91]処理対象の論理ボリュームに隣接する領域に、論理ボリュームが1個のみ設定されたバンドが設定されていない場合(S83:NoまたはS84:No)、ステップS89〜S91での新たなバンドを設定する処理が実行される。ステップS89,S90,S91,S92の処理は、それぞれ図11のS13,S14,S15,S16の処理に対応する。
【0194】
すなわち、ボリューム設定部312は、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)から、SEDを1つ選択する(ステップS89)。次に、ボリューム設定部312は、ステップS89で選択したSEDに対して、処理対象の論理ボリュームに対応する領域にバンドを新規に設定するように要求する(ステップS90)。これにより、選択したSEDに、処理対象の論理ボリュームの領域に対応するバンドが追加設定される。
【0195】
さらに、ボリューム設定部312は、追加設定されたバンドの識別情報を、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)の「バンド識別情報」の欄に登録する(ステップS91)。また、ボリューム設定部312は、さらに、管理端末130からの要求に基づいて、ステップS90で設定されたバンドに対する自動ロック動作の設定や、ロック状態を解除するための認証鍵の設定を行ってもよい。
【0196】
ボリューム設定部312は、次に、ステップS82でLV管理テーブル330に生成したレコード331(またはLV管理テーブル330から抽出したレコード331)に登録されたすべてのSEDについて、処理済みであるかを判定する(ステップS92)。ボリューム設定部312は、登録されたすべてのSEDについてステップS89〜S91の処理を実行し、すべてのSEDが処理済みになると(S92:Yes)、処理を終了する。
【0197】
ここで、図21は、SEDの電源投入時におけるロック状態解除処理手順の例を示すフローチャートである。ここでは例として、SED210aの電源が投入された場合について説明する。
【0198】
[ステップS111]SED210aのロック制御部244は、図示しない電源スイッチの押下を検出するなどして、電源投入操作が行われたことを検知する。
[ステップS112]ロック制御部244は、バンド管理テーブル230から、「ロックイネーブル」の値が「1」であるレコード231をすべて抽出し、抽出したレコード231に対応するバンドを、外部からのアクセスが不可能なロック状態にする。このとき、ロック制御部244は、バンド管理テーブル230から抽出したすべてのレコード231における「ロック状態」の値を、ロックされていない状態を示す「0」からロック状態を示す「1」に更新する。
【0199】
ところで、SED210aの電源が投入されたことを検知したCM300aの認証処理部314は、LV管理テーブル330を検索して、「認証鍵」の欄に鍵情報が登録されたバンド(すなわち、自動ロック動作が有効であるバンド)と、そのバンドが設定されたSEDとを抽出する。認証処理部314は、LV管理テーブル330から抽出したSEDのそれぞれに対して、同様に抽出したバンドの識別情報と、このバンドに対応付けられた認証鍵とを順次送信し、SEDとの間で、自動ロック動作が有効であるバンドについての認証処理を行う。
【0200】
[ステップS113]SED210aのロック制御部244は、CM300aの認証処理部314からの、認証対象のバンドの識別情報と認証鍵とを監視する。ロック制御部244は、バンドの識別情報と認証鍵とを受信する(S113:Yes)と、ステップS114の処理を実行する。
【0201】
[ステップS114]ロック制御部244は、バンド管理テーブル230から、受信したバンドの識別情報に対応するレコード231を抽出し、抽出したレコード231から、「認証鍵」の欄に登録された、ハッシュ化された認証鍵を抽出する。ロック制御部244は、レコード231から抽出した、ハッシュ化された認証鍵と、ステップS113でCM300aから受信した認証鍵をハッシュ化した値とを照合して、認証処理を行う。
【0202】
[ステップS115]ステップS114での認証に成功した場合(S115:Yes)、ロック制御部244は、ステップS116の処理を実行する。一方、ステップS114での認証に失敗した場合(S115:No)、ロック制御部244は、ステップS117の処理を実行する。
【0203】
[ステップS116]ロック制御部244は、認証対象のバンドのロック状態を解除する。ロック制御部244は、ステップS114でバンド管理テーブル230から抽出したレコード231の「ロック状態」を、ロック状態を示す「1」からロック状態でないことを示す「0」に更新する。ロック制御部244は、CM300aの認証処理部314に対して、認証に成功したことを通知する。この後、ステップS113に戻り、ロック制御部244は、CM300aの認証処理部314からの、他のバンドの識別情報と認証鍵とを監視する。
【0204】
[ステップS117]ロック制御部244は、CM300aの認証処理部314に対して、認証に失敗したことを通知する。この場合、認証対象のバンドはロック状態のままになる。この後、ステップS113に戻り、ロック制御部244は、CM300aの認証処理部314からの、他のバンドの識別情報と認証鍵とを監視する。
【0205】
なお、本実施の形態に限らず、前述した第2の実施の形態におけるSEDのロック制御部244とCMの認証処理部314との間でも、上記の図21の処理を実行可能である。
上記の図21の処理では、SED210aに対して、自動ロック動作が有効とされたバンドが多く設定されているほど、ステップS113〜S117の実行回数が増加する。この結果、自動ロック動作が有効とされたバンドが多く設定されているほど、SED210aの電源投入が要求されてから、CM300aがSED210a内の磁気ディスク211にアクセス可能になるまでの時間が長くなる。
【0206】
これに対し、前述の図20の処理によれば、第2の実施の形態と比較して、SEDにバンドが設定される数が少なくなる。このため、自動ロック動作が有効とされたバンドの設定数が多くなる可能性が低くなり、SEDの電源投入時に認証処理に要する時間が短縮される可能性が高まる。
【0207】
また、SEDに設定可能なバンド数は、製品の仕様によって制限される場合がある。図21の処理により、SEDに設定されるバンドの数が少なくなるので、設定可能なバンド数が同じSEDを使用する場合、第2の実施の形態よりも多くの論理ボリュームを設定可能になる。
【0208】
図22は、論理ボリュームを完全消去する際の処理手順の例を示すフローチャートである。
[ステップS131]CM300aのセキュアイレース制御部313は、管理端末130から、論理ボリュームの指定と、指定された論理ボリュームを完全消去する要求とを受け付ける。
【0209】
[ステップS132]セキュアイレース制御部313は、管理端末130から指定された論理ボリュームに対応するレコード331を、LV管理テーブル330から抽出する。
[ステップS133]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331の「バンド識別情報」の欄に基づき、消去対象の論理ボリュームにバンドが設定されているかを判定する。バンドが設定されている場合(S133:Yes)、セキュアイレース制御部313は、ステップS134の処理を実行する。一方、「バンド識別情報」の欄に何も登録されておらず、消去対象の論理ボリュームがグローバルバンドに属する場合(S133:No)、セキュアイレース制御部313は、ステップS141の処理を実行する。
【0210】
[ステップS134]セキュアイレース制御部313は、消去対象の論理ボリュームが含まれるバンドに、隣接する他の論理ボリュームも含まれるかを判定する。例えば、セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331内の「バンド識別情報」の登録値と、その前後のレコード331内の「バンド識別情報」の登録値とが一致するかを判定する。セキュアイレース制御部313は、登録値が一致する場合には、バンドに2つの論理ボリュームが含まれると判定し(S134:Yes)、ステップS135の処理を実行する。一方、セキュアイレース制御部313は、登録値が一致しない場合には、バンドに1つの論理ボリュームのみが含まれると判定し(S134:No)、ステップS138の処理を実行する。
【0211】
[ステップS135]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331から、「バンド識別情報」が示すバンドを1つ選択する。
【0212】
[ステップS136]ステップS135で選択されたバンドの設定範囲には、消去対象の論理ボリュームと、隣接する論理ボリュームとが含まれる。セキュアイレース制御部313は、ステップS135で選択したバンドが設定されたSEDに対して、バンドの設定範囲を、消去対象の論理ボリュームの領域を含まない範囲に制限するように要求する。
【0213】
例えば、セキュアイレース制御部313は、ステップS135で選択した「バンド識別情報」の登録値と、この登録値に対応付けられた「先頭アドレス」および「長さ」の各情報をSEDに送信し、「先頭アドレス」および「長さ」の各登録値が示す範囲をバンドから外すように要求する。SEDのバンド管理部241は、受信した「先頭アドレス」の登録値に対応するレコード231をバンド管理テーブル230から抽出し、抽出したレコード231内の「先頭アドレス」または「長さ」を更新することで、対応するバンドの設定領域を、消去対象の論理ボリュームを含まなくなるように制限する。
【0214】
消去対象の論理ボリュームがバンドの先頭側に配置されていた場合、レコード231内の「先頭アドレス」が次の論理ボリュームの先頭アドレスに更新される、一方、消去対象の論理ボリュームがバンドの後端側に配置されていた場合、レコード231内の「長さ」が消去対象の論理ボリュームの容量分だけ減算される。これらいずれの場合でも、消去対象の論理ボリュームの領域は、元のバンドとは異なる暗号鍵が用いられるグローバルバンドとなり、消去対象の論理ボリュームの領域に記録されていたデータが完全消去される。
【0215】
[ステップS137]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331に登録されたすべてのバンドについて、処理済みであるかを判定する。処理済みでないバンドが存在する場合(S137:No)、ステップS135に戻り、セキュアイレース制御部313は、レコード331に登録された未処理のバンドを1つ選択する。一方、登録されたすべてのバンドが処理済みである場合(S137:Yes)、セキュアイレース制御部313は処理を終了する。
【0216】
[ステップS138]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331から、「バンド識別情報」が示すバンドを1つ選択する。
【0217】
[ステップS139]ステップS138で選択したバンドには、消去対象の論理ボリュームのみが含まれる。この場合、セキュアイレース制御部313は、選択したバンドが設定されたSEDに対して、そのバンドについてのセキュアイレースの実行を要求する。要求を受けたSEDのバンド管理部241は、セキュアイレース対象のバンドに対応するレコード231をバンド管理テーブル230から抽出し、抽出したレコード231内の「暗号鍵」に登録された値を、暗号鍵生成部242に新たに生成させた暗号鍵に更新する。これにより、セキュアイレース対象のバンドに記録されていたデータは、完全消去される。
【0218】
[ステップS140]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331に登録されたすべてのバンドについて、処理済みであるかを判定する。処理済みでないバンドが存在する場合(S140:No)、ステップS138に戻り、セキュアイレース制御部313は、レコード331に登録された未処理のバンドを1つ選択する。一方、登録されたすべてのバンドが処理済みである場合(S140:Yes)、セキュアイレース制御部313は処理を終了する。
【0219】
[ステップS141]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331から、SEDを1つ選択する。
[ステップS142]消去対象の論理ボリュームは、グローバルバンドに属している。このような消去対象の論理ボリュームは、例えば、以前に実行されたステップS136の処理によってバンドの設定範囲から外れたものである。この場合、消去対象の論理ボリュームに隣接する少なくとも一方の論理ボリュームには、その論理ボリュームの領域のみを含むバンドが設定されている。
【0220】
セキュアイレース制御部313は、隣接する論理ボリュームのうち、その論理ボリュームの領域のみを含むバンドが設定された論理ボリュームのレコード331から、ステップS141で選択したSEDに対応付けられた「バンド識別情報」の登録情報を読み出す。セキュアイレース制御部313は、読み出した「バンド識別情報」の登録情報と、消去対象の論理ボリュームについての「先頭アドレス」および「長さ」の各情報とを、ステップS141で選択したSEDに対して送信する。そして、「バンド識別情報」の登録情報が示すバンドの範囲を、消去対象の論理ボリュームの範囲まで拡張するように要求する。
【0221】
拡張要求を受け付けたSEDのバンド管理部241は、「バンド識別情報」の登録情報に対応するレコード231をバンド管理テーブル230から抽出する。バンド管理部241は、抽出したレコード231における「先頭アドレス」または「長さ」を更新することで、バンドの設定領域を消去対象の論理ボリュームを含む領域まで拡張する。
【0222】
消去対象の論理ボリュームの領域がバンドより先頭側に位置する場合、レコード231内の「先頭アドレス」の値が、消去対象の論理ボリュームの先頭アドレスに更新される。一方、消去対象の論理ボリュームの領域がバンドより後端側に位置する場合、レコード231内の「長さ」の値に、消去対象の論理ボリュームの容量が加算される。これらいずれの場合でも、消去対象の論理ボリュームの領域は、グローバルバンドから、別の暗号鍵が用いられる既存のバンドに変更されるので、消去対象の論理ボリュームの領域に記録されていたデータが完全消去される。
【0223】
[ステップS143]セキュアイレース制御部313は、ステップS132でLV管理テーブル330から抽出したレコード331に登録されたすべてのSEDについて、処理済みであるかを判定する。処理済みでないSEDが存在する場合(S143:No)、ステップS141に戻り、セキュアイレース制御部313は、レコード331に登録された未処理のSEDを1つ選択する。一方、登録されたすべてのSEDが処理済みである場合(S143:Yes)、セキュアイレース制御部313は処理を終了する。
【0224】
以上の図22の処理によれば、第2の実施の形態と同様のセキュアイレース処理(S139)、または、既存のバンドの設定範囲を変更する処理(S136,S142)のいずれかによって、消去対象の論理ボリュームを短時間に完全消去することができる。すなわち、第3の実施の形態では、2つの論理ボリュームに1つのバンドを設定することによるバンドの設定数を減少させる効果が得られながらも、論理ボリューム単位での短時間での完全消去を実現可能になる。
【0225】
なお、以上の第3の実施の形態では、最大2つの論理ボリュームに1つのバンドを設定するようにしたが、3つ以上の論理ボリュームに1つのバンドを設定できるようにしてもよい。ただしその場合、同一バンドが設定された複数の論理ボリュームのうち、SEDの物理記憶領域において最も先頭側または最も後端側に設定された論理ボリュームのみが、論理ボリューム単位で完全消去できる対象となる。
【0226】
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 記憶装置と、前記記憶装置へのアクセスを制御する制御装置とを備えるストレージシステムにおいて、
前記記憶装置は、
暗号鍵を生成する暗号鍵生成部と、
自装置の記憶領域に対して前記暗号鍵生成部が生成した暗号鍵を用いてデータを暗号化して記録するとともに、自装置の記憶領域に設定した分割領域ごとに暗号化に用いる暗号鍵を変更可能な暗号化処理部と、
を有し、
前記制御装置は、
前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに、個別の分割領域を設定するように、前記記憶装置の前記暗号化処理部に要求する論理ボリューム設定部と、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置の前記暗号化処理部に要求するデータ消去処理部と、
を有することを特徴とするストレージシステム。
【0227】
(付記2) 前記ストレージシステムは、前記暗号鍵生成部と前記暗号化処理部とをそれぞれ有する複数の記憶装置を備え、
前記制御装置において、
前記論理ボリューム設定部は、前記複数の記憶装置に跨る論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域のうち前記複数の記憶装置のそれぞれに含まれる記憶領域を、それぞれ分割領域として設定するように、前記複数の記憶装置の前記暗号化処理部に要求し、
前記データ消去処理部は、前記複数の記憶装置に跨って設定された論理ボリュームを消去する際に、消去対象の論理ボリュームに対応する前記複数の記憶装置のそれぞれにおける分割領域について暗号化に用いる暗号鍵を変更するように、前記複数の記憶装置の前記暗号化処理部に要求する、
ことを特徴とする付記1記載のストレージシステム。
【0228】
(付記3) 前記論理ボリューム設定部は、前記記憶装置に設定された論理ボリュームの記憶領域を前記記憶装置内で移動する際、移動対象の論理ボリュームに対応する前記記憶装置における分割領域を、移動後の論理ボリュームの記憶領域を含む範囲まで拡張し、拡張された分割領域のうち移動後の論理ボリュームの記憶領域に対してデータを再配置し、データ再配置の完了後に、前記拡張された分割領域を移動後の論理ボリュームの領域に制限することを特徴とする付記1または2記載のストレージシステム。
【0229】
(付記4) 前記論理ボリューム設定部は、前記記憶装置に論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域に隣接する記憶領域に他の論理ボリュームに含まれる分割領域が設定済みである場合には、前記設定済みの分割領域の範囲を前記設定する論理ボリュームの記憶領域を含むように拡張することを特徴とする付記1〜3のいずれか1つに記載のストレージシステム。
【0230】
(付記5) 前記データ消去処理部は、前記記憶装置に設定された論理ボリュームを消去する際に、消去対象の論理ボリュームの記憶領域が含まれる分割領域が複数の論理ボリュームの記憶領域を含む場合には、当該分割領域を前記消去対象の論理ボリュームの記憶領域を含まないように制限することを特徴とする付記4記載のストレージシステム。
【0231】
(付記6) 前記記憶装置は、設定されたすべての分割領域へのアクセスを電源投入時に遮断し、設定された分割領域ごとに前記制御装置との間で認証処理を行い、認証に成功した分割領域に対するアクセスを許可するアクセス制御部を有し、
前記制御装置は、前記アクセス制御部との間で、前記記憶装置に設定した分割領域ごとにアクセス許可を得るための認証処理を実行する認証処理部を有する、
ことを特徴とする付記4または5記載のストレージシステム。
【0232】
(付記7) 暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能を備える記憶装置に接続し、前記記憶装置へのアクセスを制御するストレージ制御装置において、
記録データの暗号化に用いる暗号鍵をそれぞれ個別に変更可能な分割領域を、前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに個別に設定するように、前記記憶装置に要求する論理ボリューム設定部と、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置に要求するデータ消去処理部と、
を有することを特徴とするストレージ制御装置。
【0233】
(付記8) 前記ストレージ制御装置は、暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能をそれぞれ備える複数の記憶装置に接続され、
前記論理ボリューム設定部は、前記複数の記憶装置に跨る論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域のうち前記複数の記憶装置のそれぞれに含まれる記憶領域を、それぞれ分割領域として設定するように、前記複数の記憶装置に要求し、
前記データ消去処理部は、前記複数の記憶装置に跨って設定された論理ボリュームを消去する際に、消去対象の論理ボリュームに対応する前記複数の記憶装置のそれぞれにおける分割領域について暗号化に用いる暗号鍵を変更するように、前記複数の記憶装置に要求する、
ことを特徴とする付記7記載のストレージ制御装置。
【0234】
(付記9) 前記論理ボリューム設定部は、前記記憶装置に設定された論理ボリュームの記憶領域を前記記憶装置内で移動する際、移動対象の論理ボリュームに対応する前記記憶装置における分割領域を、移動後の論理ボリュームの記憶領域を含む範囲まで拡張し、拡張された分割領域のうち移動後の論理ボリュームの記憶領域に対してデータを再配置し、データ再配置の完了後に、前記拡張された分割領域を移動後の論理ボリュームの領域に制限することを特徴とする付記7または8記載のストレージ制御装置。
【0235】
(付記10) 前記論理ボリューム設定部は、前記記憶装置に論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域に隣接する記憶領域に他の論理ボリュームに含まれる分割領域が設定済みである場合には、前記設定済みの分割領域の範囲を前記設定する論理ボリュームの記憶領域を含むように拡張することを特徴とする付記7〜9のいずれか1つに記載のストレージ制御装置。
【0236】
(付記11) 前記データ消去処理部は、前記記憶装置に設定された論理ボリュームを消去する際に、消去対象の論理ボリュームの記憶領域が含まれる分割領域が複数の論理ボリュームの記憶領域を含む場合には、当該分割領域を前記消去対象の論理ボリュームの記憶領域を含まないように制限することを特徴とする付記10記載のストレージ制御装置。
【0237】
(付記12) 前記記憶装置では、電源投入時に、設定されたすべての分割領域へのアクセスが遮断され、
前記ストレージ制御装置は、前記記憶装置との間で、前記記憶装置に設定した分割領域ごとにアクセス許可を得るための認証処理を実行する認証処理部を有する、
ことを特徴とする付記10または11記載のストレージ制御装置。
【0238】
(付記13) 暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能を備える記憶装置に接続したストレージ制御装置におけるストレージ制御方法において、
前記ストレージ制御装置は、
記録データの暗号化に用いる暗号鍵をそれぞれ個別に変更可能な分割領域を、前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに個別に設定するように、前記記憶装置に要求し、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置に要求する、
ことを特徴とするストレージ制御方法。
【0239】
(付記14) 前記ストレージ制御装置が、暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能をそれぞれ備える複数の記憶装置に接続されている場合に、
前記ストレージ制御装置は、
前記複数の記憶装置に跨る論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域のうち前記複数の記憶装置のそれぞれに含まれる記憶領域を、それぞれ分割領域として設定するように、前記複数の記憶装置に要求し、
前記複数の記憶装置に跨って設定された論理ボリュームを消去する際に、消去対象の論理ボリュームに対応する前記複数の記憶装置のそれぞれにおける分割領域について暗号化に用いる暗号鍵を変更するように、前記複数の記憶装置に要求する、
ことを特徴とする付記13記載のストレージ制御方法。
【0240】
(付記15) 前記ストレージ制御装置は、前記記憶装置に設定された論理ボリュームの記憶領域を前記記憶装置内で移動する際、移動対象の論理ボリュームに対応する前記記憶装置における分割領域を、移動後の論理ボリュームの記憶領域を含む範囲まで拡張し、拡張された分割領域のうち移動後の論理ボリュームの記憶領域に対してデータを再配置し、データ再配置の完了後に、前記拡張された分割領域を移動後の論理ボリュームの領域に制限することを特徴とする付記13または14記載のストレージ制御方法。
【0241】
(付記16) 前記ストレージ制御装置は、前記記憶装置に論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域に隣接する記憶領域に他の論理ボリュームに含まれる分割領域が設定済みである場合には、前記設定済みの分割領域の範囲を前記設定する論理ボリュームの記憶領域を含むように拡張することを特徴とする付記13〜15のいずれか1つに記載のストレージ制御方法。
【0242】
(付記17) 前記ストレージ制御装置は、前記記憶装置に設定された論理ボリュームを消去する際に、消去対象の論理ボリュームの記憶領域が含まれる分割領域が複数の論理ボリュームの記憶領域を含む場合には、当該分割領域を前記消去対象の論理ボリュームの記憶領域を含まないように制限することを特徴とする付記16記載のストレージ制御方法。
【0243】
(付記18) 前記記憶装置では、電源投入時に、設定されたすべての分割領域へのアクセスが遮断され、
前記ストレージ制御装置は、前記記憶装置との間で、前記記憶装置に設定した分割領域ごとにアクセス許可を得るための認証処理を実行する、
ことを特徴とする付記16または17記載のストレージ制御方法。
【符号の説明】
【0244】
1 ストレージシステム
10 制御装置
11 論理ボリューム設定部
12 データ消去処理部
20a,20b 記憶装置
21a,21b 記憶領域
22a,22b 暗号鍵生成部
23a,23b 暗号化処理部

【特許請求の範囲】
【請求項1】
記憶装置と、前記記憶装置へのアクセスを制御する制御装置とを備えるストレージシステムにおいて、
前記記憶装置は、
暗号鍵を生成する暗号鍵生成部と、
自装置の記憶領域に対して前記暗号鍵生成部が生成した暗号鍵を用いてデータを暗号化して記録するとともに、自装置の記憶領域に設定した分割領域ごとに暗号化に用いる暗号鍵を変更可能な暗号化処理部と、
を有し、
前記制御装置は、
前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに、個別の分割領域を設定するように、前記記憶装置の前記暗号化処理部に要求する論理ボリューム設定部と、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置の前記暗号化処理部に要求するデータ消去処理部と、
を有することを特徴とするストレージシステム。
【請求項2】
前記ストレージシステムは、前記暗号鍵生成部と前記暗号化処理部とをそれぞれ有する複数の記憶装置を備え、
前記制御装置において、
前記論理ボリューム設定部は、前記複数の記憶装置に跨る論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域のうち前記複数の記憶装置のそれぞれに含まれる記憶領域を、それぞれ分割領域として設定するように、前記複数の記憶装置の前記暗号化処理部に要求し、
前記データ消去処理部は、前記複数の記憶装置に跨って設定された論理ボリュームを消去する際に、消去対象の論理ボリュームに対応する前記複数の記憶装置のそれぞれにおける分割領域について暗号化に用いる暗号鍵を変更するように、前記複数の記憶装置の前記暗号化処理部に要求する、
ことを特徴とする請求項1記載のストレージシステム。
【請求項3】
前記論理ボリューム設定部は、前記記憶装置に設定された論理ボリュームの記憶領域を前記記憶装置内で移動する際、移動対象の論理ボリュームに対応する前記記憶装置における分割領域を、移動後の論理ボリュームの記憶領域を含む範囲まで拡張し、拡張された分割領域のうち移動後の論理ボリュームの記憶領域に対してデータを再配置し、データ再配置の完了後に、前記拡張された分割領域を移動後の論理ボリュームの領域に制限することを特徴とする請求項1または2記載のストレージシステム。
【請求項4】
前記論理ボリューム設定部は、前記記憶装置に論理ボリュームを設定する際に、設定する論理ボリュームの記憶領域に隣接する記憶領域に他の論理ボリュームに含まれる分割領域が設定済みである場合には、前記設定済みの分割領域の範囲を前記設定する論理ボリュームの記憶領域を含むように拡張することを特徴とする請求項1〜3のいずれか1つに記載のストレージシステム。
【請求項5】
前記データ消去処理部は、前記記憶装置に設定された論理ボリュームを消去する際に、消去対象の論理ボリュームの記憶領域が含まれる分割領域が複数の論理ボリュームの記憶領域を含む場合には、当該分割領域を前記消去対象の論理ボリュームの記憶領域を含まないように制限することを特徴とする請求項4記載のストレージシステム。
【請求項6】
前記記憶装置は、設定されたすべての分割領域へのアクセスを電源投入時に遮断し、設定された分割領域ごとに前記制御装置との間で認証処理を行い、認証に成功した分割領域に対するアクセスを許可するアクセス制御部を有し、
前記制御装置は、前記アクセス制御部との間で、前記記憶装置に設定した分割領域ごとにアクセス許可を得るための認証処理を実行する認証処理部を有する、
ことを特徴とする請求項4または5記載のストレージシステム。
【請求項7】
暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能を備える記憶装置に接続し、前記記憶装置へのアクセスを制御するストレージ制御装置において、
記録データの暗号化に用いる暗号鍵をそれぞれ個別に変更可能な分割領域を、前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに個別に設定するように、前記記憶装置に要求する論理ボリューム設定部と、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置に要求するデータ消去処理部と、
を有することを特徴とするストレージ制御装置。
【請求項8】
暗号鍵を生成し、生成した暗号鍵を用いて記憶領域に記録するデータを暗号化する機能を備える記憶装置に接続したストレージ制御装置におけるストレージ制御方法において、
前記ストレージ制御装置は、
記録データの暗号化に用いる暗号鍵をそれぞれ個別に変更可能な分割領域を、前記記憶装置の記憶領域のうち論理ボリュームとして設定した記憶領域ごとに個別に設定するように、前記記憶装置に要求し、
消去対象とする論理ボリュームに対応する分割領域について暗号化に用いる暗号鍵を変更するように、前記記憶装置に要求する、
ことを特徴とするストレージ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−198711(P2012−198711A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−61734(P2011−61734)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】