以下、図面を参照しながら本発明の一実施の形態を詳述する。
図1はストレージシステムの構成を説明するブロック図である。図1に示すように、 ストレージシステム1は、複数のホスト計算機10(10A,10B,10C)と、 通信 11を介して各ホスト計算機10A〜10Cと接続されるストレージ装置20 と、ストレージ装置20と接続される複数のHDD(Hard Disk Drive)50とを備 える。
各ホスト計算機10A〜10Cは、CPUやメモリなどを備えたコンピュータ装置であり、ストレージ装置20によって提供される記憶領域を論理的に認識し、この論理記憶領域(以下、論理ボリューム、又はLDEVという)を利用して、データベースソフトウェアなどの業務アプリケーションプログラムを実行する。なお、ホスト計算機10は、ストレージ装置20に対する上位装置の一例である。
通信ネットワーク11は、LAN(Local Area Network)、SAN(Storage Area Network)、インターネット、専用回線、公衆回線などによって構成される。ホスト計算機10とストレージ装置20との間のデータ通信は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)や、ファイバチャネルプロトコルに従って行われる。
ストレージ装置20は、複数のチャネルアダプタ30(30A,30B,30C)、複数のディスクアダプタ40(40A,40B,40C)、接続部21、SVP(Service Processor)22、キャッシュメモリ23及び共有メモリ24を備えており、ストレージ装置20は、例えばディスクアレイサブシステムや、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成される。
本実施形態では、ストレージ装置20は外部に設けられた複数のHDD50と接続するようにしたが、これに限定されず、ストレージ装置20内に複数のHDDを内蔵するようにしてもよい。
各チャネルアダプタ30A〜30Cは、マイクロプロセッサ(以下、MPという)31、ローカルメモリ(以下、LMという)32、及びポート33などを備えたマイクロコンピュータであり、主としてホスト計算機10に対するインターフェースとして機能する。MP31はホスト計算機10から送信されるコマンドを処理するマイクロプログラムを実行し、LM32はこのマイクロプログラムを記憶する。ポート33は通信ネットワーク11を介してホスト計算機10と接続する。
各ディスクアダプタ40A〜40Cは、MP41、LM42及びポート43などを備えたマイクロコンピュータであり、主として後述のHDD50に対するインターフェースとして機能する。MP41はポート43に接続されるHDD50を制御するマイクロプログラムを実行し、LM42はこのマイクロプログラムなどを記憶する。なお、MP41は1つに限定されず、複数備えるようにしてもよい。ポート43には1つ又は複数のHDD50が接続され、ポート43とHDD50との間は、ファイバーチャネルのFC−AL(Fibre Channel Arbitrated Loop)、ファブリック、又はSAS(Serial Attached SCSI)などの方式によって接続される。
ディスクアダプタ40は、ホスト計算機10から送信された論理アドレス指定によるデータアクセス要求を、物理アドレス指定によるデータアクセス要求に変換する。すなわち、指定された論理記憶領域のアドレスを物理的な記憶領域の物理アドレスに読み替え、当該物理アドレスに対応するHDD50の記憶領域に対してデータの読み書きを行う。また、ディスクアダプタ40は、HDD50のRAID構成に応じたデータアクセスを行う。
各HDD50は、ホスト計算機10に対して記憶領域を提供するディスク装置であり、複数のHDD50は、それぞれHDD単位にRAID(Redundant Array of Inexpensive Disks)方式のディスクアレイを構成している。
接続部21は、各チャネルアダプタ30A〜30C、各ディスクアダプタ40A〜40C、SVP22、キャッシュメモリ23、及び共有メモリ24を相互に接続する。接続部21は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバスイッチなどの高速バスで構成される。
SVP22は、ストレージ装置20の管理及び監視を行うプロセッサであり、複数のHDD50が提供する記憶領域を複数の論理記憶領域に分割して管理するとともに、複数のHDD50を複数のRAIDグループに分割して管理する。また、SVP22は、ネットワーク12を介して外部の管理端末13が接続されており、ストレージステム1の管理者は、管理端末13を操作することによりストレージ装置20の各種設定などを管理することができる。なお、各ディスクアダプタ40A〜40Cは、それぞれが接続するHDD50の状態を随時監視しており、この監視結果が接続部21を介してSVP22に送信される。
ネットワーク12はLANなどによって構成され、管理端末13はCPUやメモリなどを備えたコンピュータ装置である。なお、ネットワーク12は前述の通信ネットワーク11と同一のネットワークであってもよい。
キャッシュメモリ23及び共有メモリ24は、接続部21を介して各チャネルアダプタ30A〜30C、各ディスクアダプタ40A〜40C、及びSVP22が共用するメモリである。キャッシュメモリ23は、主としてデータを一時記憶するために利用される。共有メモリ24は、主として制御情報やコマンドなどを記憶するために利用される。また、共有メモリ24は、後述のディスクアダプタ管理テーブル200、RAIDグループ管理テーブル300、暗号化管理テーブル400、及び外部バックアップ情報テーブル500を記憶する。
以下の説明では、各ディスクアダプタ40A〜40CのMP41は、共有メモリ24に記憶されたデータを共有メモリ24に直接アクセスするようにしたが、これに限定されず、共有メモリ24に記憶されたデータを、各ディスクアダプタ40A〜40CのLM42に、定期的に、又は必要に応じてコピーしておき、MP41はLM42にアクセスするようにしてもよい。
ここで、チャネルアダプタ30及びディスクアダプタ40の動作の概要について説明する。
例えばチャネルアダプタ30が、ホスト計算機10からリードコマンドを受信すると、リードコマンドを共有メモリ24に格納する。ディスクアダプタ40は共有メモリ24を随時参照しており、未処理のリードコマンドを発見すると、ディスクアダプタ40は、共有メモリ24に格納されたリードコマンドに従って、HDD50からデータを読み出してキャッシュメモリ23に格納する。チャネルアダプタ30は、キャッシュメモリ23に格納されたデータを読み出し、リードコマンドの発行元のホスト計算機10に送信する。
また、チャネルアダプタ30がホスト計算機10からライトデータ及びライトコマンドを受信すると、ライトコマンドを共有メモリ24に格納するとともに、ライトデータをキャッシュメモリ23に格納する。ディスクアダプタ40は、共有メモリ24に格納されたライトコマンドに従って、キャッシュメモリ23に格納された受信データをHDD50に格納する。
図2は、図1に示したディスクアダプタの構成を説明するブロック図である。図2に示すように、ディスクアダプタ40は、前述のMP41、LM42に加え、インターフェース(I/F)45、及びファイバーチャネルアダプターモジュール(以下、FCAという)60を備える。MP41、LM42、インターフェース(I/F)45及びFCA60は、内部バス46を介して相互に接続される。内部バス46は、FCA60を介して所定のHDD50に接続され、インターフェース43を介して接続部21に接続される。
ストレージ装置20が備える複数のディスクアダプタ40において、少なくとも1つのFCA60は、後述する暗号化・複号化回路70を有する。暗号化・複号化回路70を備えるディスクアダプタ40(以下、暗号化ディスクアダプタ40という)は、内部バス46に接続されるフラッシュメモリ(以下、FMという)44を備える。FM44は、EEPROM(Electrically Erasable programmable ROM)などから構成される不揮発媒体であり、主として後述の内部変換暗号鍵を記憶するために利用される。
暗号化ディスクアダプタ40は、キャッシュメモリ23に格納されたデータを暗号化してHDD50に格納することが可能となる。また、暗号化ディスクアダプタ40は、HDD50に記憶される暗号化されたデータを、複号化してキャッシュメモリ23に格納することが可能となる。
図3は、図2に示したファイバーチャネルアダプターモジュールの構成を説明するブロック図である。図3に示すように、FCA60は、パラメータ制御部61、内部コントローラ62、キャッシュリード制御部63、キャッシュライト制御部64、及び複数のインターフェース65〜68を備える。パラメータ制御部61、内部コントローラ62、キャッシュリード制御部63、キャッシュライト制御部64、及び複数のインターフェース65〜68は、内部バス69を介して相互に接続される。内部バス69は、インターフェース65及び内部バス46を介してMP41に接続され、インターフェース66及び内部バス46を介してLM42に接続され、インターフェース67を介して所定のHDD50に接続され、インターフェース68及び内部バス46を介してキャッシュメモリ23に接続される。
暗号化ディスクアダプタ40のFCA60では、内部バス69に、さらに、FCA60に暗号化・複号化機能を付加するための暗号化・複号化回路70が接続される。このように、暗号化・複号化機能を有しない従来のFCAに、暗号化・複号化回路70を追加することにより、ディスクアダプタを暗号化ディスクアダプタに交換(リプレース)することができる。
暗号化・複号化回路70は、データ暗号鍵を用いて、キャッシュメモリ23から入力されHDD50に出力する前のデータを暗号化するとともに、HDD50から入力されキャッシュメモリ23に出力する前のデータを複号化する。このように、例えばホスト計算機10から送信され、キャッシュメモリ23に格納されたライトデータが、ディスクアダプタ40内で暗号化され、HDD50に格納されるので、ホスト計算機10でライトデータを暗号化する場合と比較して、ホスト計算機10における業務アプリケーションプログラムへの負荷を低減することができる。また、ホスト計算機10とストレージ装置20との間の通信ネットワーク11でライトデータを暗号化する場合と比較して、ストレージシステム1全体のスループットを向上させることができる。
本実施形態では、データ暗号鍵を用いて暗号化及び復号化するようにしたが、これに限定されず、復号化する際にはデータ暗号鍵と異なるデータ復号鍵を用いるようにしてもよい。
内部コントローラ62は、FCA60内において、キャッシュメモリ23とHDD50との間でデータを読み書きする動作を制御するためのものである。パラメータ制御部61は、キャッシュメモリ23に格納されたリードデータ及びライトデータの物理アドレスに対応するパラメータを、キャッシュリード制御部64及びキャッシュライト制御部63に設定するためのものである。
例えば、キャッシュメモリ23からHDD50にデータを書き込む(以下、デステージングという)際に、FCA60の内部コントローラ62は、HDD50からデータの転送許可情報が入力されると、パラメータ制御部61に、LM42からパラメータを読み出すように指示する。パラメータ制御部61は、読み出したパラメータをキャッシュリード制御部64に出力する。
内部コントローラ62は、キャッシュリード制御部64に、このパラメータに基づいてキャッシュメモリ23の目的とするアドレスにあるデータを読み出すように指示する。また、内部コントローラ62は、キャッシュリード制御部64に、キャッシュメモリ23から読み出したデータを暗号化・複号化回路70に出力するように指示する。
暗号化・複号化回路70は、入力されたデータに対して所定の方式の暗号化アルゴリズムを実行して暗号化処理を適用し、内部コントローラ62は、暗号化処理されたデータを、キャッシュリード制御部64を介してHDD50に出力するように指示する。
一方、HDD50から読み出したデータをキャッシュメモリ23に書き込む(以下、ステージングという)際に、内部コントローラ62は、暗号化されたデータを暗号化・複号化回路70において複号化処理した上で、前述の場合と同様に、キャッシュライト制御部63に、パラメータ制御部61によってLM42から読み出されたパラメータに基づいて、復号化されたデータをキャッシュメモリ23のアドレスに出力するように指示する。
図4は、図1に示したディスクアダプタ及びHDDの接続例を説明するブロック図である。図4に示すように、各ディスクアダプタ40A〜40Dは、例えばファイバーチャネルのFC−AL600によって複数のHDD50と接続される。
各ディスクアダプタ40A〜40Dは4つのポート43を有する。例えばHDD(00〜09)50は、1つのFC−AL600ループによって、ポート(0)43を介して一対のディスクアダプタ40A、40Bの両方に接続される。これにより、ディスクアダプタとHDDとの接続に関して冗長化が実現される。他のHDD(10〜79)50も、これと同様に、一対のディスクアダプタの両方に接続されることにより、ディスクアダプタとHDDとの接続に関して冗長化が実現される。
また図4において、例えばRAIDグループ(RG1)は、4つのHDD(00,10,20,30)50によって構成され、RAIDグループ(RG2)は、8つのHDD(03,13,23,33,43,53,63,73)によって構成されている。すなわち、ディスクアダプタ40A、40BにはRAIDグループ(RG1)及びRAIDグループ(RG2)の2つが対応し、ディスクアダプタ40C、40DにはRAIDグループ(RG2)の1つが対応する。このように、1つのディスクアダプタ40は、少なくとも1つのRAIDグループに属する。
さらに、RAIDグループに対応するディスクアダプタ40の数は、RAIDグループのRAID構成、すなわちRAIDグループを構成するHDD50の数によって決まる。例えばRAIDグループ(RG1)のように4つのHDD50から構成される場合は、対応するディスクアダプタはディスクアダプタ40A、40Bの2つであり、RAIDグループ(RG2)のように8つのHDD50から構成される場合は、対応するディスクアダプタはディスクアダプタ40A〜40Dの4つである。このように、1つのRAIDグループに、少なくとも1つのディスクアダプタ40が属する。
図5は、図1に示したストレージ装置の記憶構造を説明するブロック図である。図5は、ストレージ装置20にある複数のチャネルアダプタの何れかのチャネルアダプタに関連するブロック図であるとして説明する。
チャネルアダプタ30のポート33には、図1に示したように通信ネットワーク11を介してホスト計算機10が接続される。ホスト計算機10からデータを受信するときに、チャネルアダプタ30のポート33はターゲットポートとして機能する。
LU(Logical Unit)101、102は、ライトコマンドやリードコマンドなどのI/Oコマンドを実行するSCSIターゲット内のエンティティであって、各LU101、102はポート33を介してホスト計算機10にマッピングされる。ホスト計算機10は、複数あるLUのそれぞれを認識して、かつ、各LUを区別して、目的とするLUに対してI/Oコマンドを発行する。
各PDEV(Physical Device)111、112は、HDD50のそれぞれに対応する。PDEVの物理的な記憶領域とLUの論理的な記憶領域とを対応させる論理的記憶階層は、例えば複数の階層から構成される。
1つの論理的階層はRAIDグループに相当するVDEV(Virtual Device)121、122であり、他の1つの論理的階層はLDEV(Logical Device)131,132である。なお、図5の矢印は、矢印元の下位の階層が矢印先の上位の階層に属することを示している。
1つのVDEVは、RAIDグループを構成する複数のHDD50、すなわち複数のPDEVで構成される。LDEVは、各VEDVの下位の階層に設定され、例えばVDEVを固定長で分割することにより定義される。図5では、LDEV141はVDEV131に、LDEV142はVDEV132に、それぞれ対応付けられている。
なお、ホスト計算機10がオープン系のものである場合、LDEVはLUにマッピングされ、ホスト計算機10はLUN(Logical Unit Number)と論理ブロックアドレスを指定又は特定することにより、所望のLDEVにアクセスする。図5では、LDEV141はLU101に、LDEV142はLU102に、それぞれマッピングされている。また、ホスト計算機10がメインフレーム系のものである場合、ホスト計算機10はLDEVを直接認識する。
各LUは、少なくとも1つのLDEVを結合することができ、1つのLUに複数のLDEVを関連付けることにより、LUの記憶領域を仮想的に拡張することができる。
ポート−LU−LDEV−VDEV−PDEV間の対応関係は、例えばネットワーク12を介してSVP22に接続する管理端末13によって作成される。この対応関係は、例えば後述のRAIDグループ管理テーブル300、暗号化管理テーブル400として、SVP22によって共有メモリ24に登録される。
次に、図6乃至図9を参照しながら共有メモリ24に記憶されるテーブルについて説明する。
図6は、図1に示したディススクアダプタ管理テーブルの一例を説明する構成図である。ディススクアダプタ管理テーブル200は、ストレージシステム1に備わるディスクアダプタ40を管理するためのものである。アダプタ管理テーブル200は、例えば後述のディスクアダプタ登録処理S100によって各行(レコード)が登録される。また、ディススクアダプタ管理テーブル200は、DKA−ID欄200A及びDKA種別欄200Bから構成される。
DKA−ID欄200Aには、ストレージシステム1内でディスクアダプタ40を一意に識別可能な識別子、例えばディスクアダプタ番号が格納される。DKA種別欄200Bには、DKA−ID欄200Aに格納された識別子に対応するディスクアダプタ40の種別、例えば暗号化・復号化回路70を備えることを示す「暗号化対応」、又は暗号化・復号化回路70を備えないことを示す「暗号化非対応」が格納される。
図7は、図1に示したRAIDグループ管理テーブルの一例を説明する構成図である。RAIDグループ管理テーブル300は、複数のHDD50によって構成されるRAIDグループを管理するためのものである。RAIDグループ管理テーブル300は、RG−ID欄300A、RG構成欄300B、及びDKA−ID欄300Cから構成される。
RG−ID欄300Aには、ストレージシステム1内でRAIDグループを一意に識別可能な識別子、例えばRAIDグループ番号が格納される。RG構成欄300Bには、RG−ID欄300Aに格納された識別子に対応するRAIDグループの構成種類、例えば「3D+1P」、「2D+2D」、「7D+1P」などが格納される。DKA−ID欄300Cには、RG−ID欄300Aに格納されたRAIDグループ番号(識別子)を有するRAIDグループに属するディスクアダプタ40について、ディスクアダプタ番号(識別子)が少なくとも1つ格納される。
図8は、図1に示した暗号化管理テーブルの一例を説明する構成図である。暗号化管理テーブル400は、HDD50に書き込むデータを暗号化するか否かを管理するためのものである。アダプタ管理テーブル200は、例えば後述の暗号化設定処理S600によって各行(レコード)が登録される。また、暗号化管理テーブル400は、RG−ID欄400A、暗号化設定欄400B、及びLDEV−ID欄400Cから構成される。
RG−ID欄400Aには、ストレージシステム1内でRAIDグループを一意に識別可能な識別子、例えばRAIDグループ番号が格納される。暗号化設定欄400Bには、RG−ID欄400Aに格納された識別子に対応するRAIDグループに対して、データを暗号化するか否かを示す暗号化状態、例えばデータを暗号化することを示す「ON」、又はデータを暗号化しないことを示す「OFF」が格納される。LDEV−ID欄400Cには、RG−ID欄400Aに格納されたRAIDグループ番号(識別子)を有するRAIDグループに対応するLDEVについて、ストレージシステム1内でLDEVを一意に識別可能な識別子、例えばLDEV番号が複数格納される。なお、以下の説明において、データを暗号化することが設定される(又は設定されている)ことを、単に暗号化が設定される(又は設定されている)といい、データを暗号化しないことが設定される(又は設定されている)ことを、単に暗号化が設定されない(又は設定されていない)という。
図9は、図1に示した外部バックアップ情報テーブルの一例を説明する構成図である。外部バックアップ情報テーブル500は、外部装置にバックアップされるデータ暗号鍵を含むバックアップファイルを記憶するためのものである。外部バックアップ情報テーブル500は、例えば後述の外部バックアップ処理S300によって各行(レコード)が登録される。また、外部バックアップ情報テーブル500は装置製番欄500A、外部変換暗号鍵欄500B、及びハッシュ値欄500Cから構成される。
装置製番欄500Aには、データ暗号鍵のバックアップ先となる外部装置の製造番号、例えば管理端末13の製造番号が格納される。外部変換暗号鍵欄500Bには、データ暗号鍵から生成される後述の外部変換暗号鍵が格納される。ハッシュ値欄500Cには、外部変換暗号鍵欄500Bに格納される外部変換暗号鍵に対応するハッシュ値が格納される。
本実施形態では、ストレージ装置20内に暗号化ディスクアダプタ40が複数存在する場合でも、各暗号化ディスクアダプタ40で1つのデータ暗号鍵を共通して用いるようにするが、これに限定されず、暗号化ディスクアダプタ40ごとに異なるデータ暗号鍵を用いるようにしてもよいし、ストレージ装置20を複数のパーティションに分割して使用し、パーティションごとに異なるデータ暗号鍵を用いるようにしてもよい。かかる場合には、外部バックアップ情報テーブル500は複数の行(レコード)が登録される。
次に、図10乃至図23を参照しながらストレージ装置20の動作について説明する。
図10は、図1に示したディスクアダプタを登録する動作を説明するフローチャートである。例えばストレージ装置20に新たにディスクアダプタ40が搭載されると、SVP22は図10に示すディスクアダプタ登録処理S100を実行する。
すなわちSVP22は、全てのディスクアダプタ40から所定の情報を収集し、収集された所定の情報に基づいて、新たに搭載されたディスクアダプタ40にディスクアダプタ番号(識別子)を割り当てる(S101)。次いで、SVP22は、収集された所定の情報に基づいて、新たに搭載されたディスクアダプタ40が暗号化ディスクアダプタか否かを判定する(S102)。なお、ディスクアダプタ40が暗号化・復号化回路70を備える場合に暗号化ディスクアダプタであると判定し、ディスクアダプタ40が暗号化・復号化回路70を備えていない場合に暗号化ディスクアダプタでないと判定する。
S102の判定の結果、暗号化ディスクアダプタであるときに、SVP22は、共有メモリ24に記憶されるディススクアダプタ管理テーブル200において、S101の処理で割当てたディスクアダプタ番号(識別子)を、DKA−ID欄200Aに格納するとともに、「暗号化対応」をDKA種別欄200Bに格納し(S103)、行(レコード)を登録する。S103の処理後、SVP22はディスクアダプタ登録処理S100を終了する。
一方、S102の判定の結果、ディスクアダプタ40が暗号化対応でないと判定したときに、SVP22は、共有メモリ24に記憶されるディススクアダプタ管理テーブル200において、S101の処理で割り当てたディスクアダプタ40のディスクアダプタ番号(識別子)をDKA−ID欄200Aに格納するとともに、「暗号化非対応」をDKA種別欄200Bに格納し(S104)、行(レコード)を追加する。S104の処理後、SVP22はディスクアダプタ登録処理S100を終了する。
本実施形態では、SVP22がディスクアダプタ40のディスクアダプタ番号(識別子)を割り当てるようにしたが、これに限定されず、ディスクアダプタ40のディスクアダプタ番号(識別子)を管理端末13から入力するようにしてもよい。また、ディスクアダプタ登録処理S100は新たにディスクアダプタ40が搭載される場合に限定されず、ディスクアダプタ40の初期登録時、又は既存のディスクアダプタ40に暗号化・復号化回路70が付加される場合に実行するようにしてもよい。
図11は、データ暗号鍵をストレージ装置内にバックアップする動作を説明するフローチャートである。例えばSVP22から暗号化対応ディスクアダプタ40に、前述のデータ暗号鍵の生成要求が入力されると、暗号化対応ディスクアダプタ40のMP41は図11に示す内部バックアップ処理S200を実行する。
すなわちMP41は、乱数発生機能による乱数を発生させ、当該乱数をデータ暗号鍵として生成する(S201)。本実施形態では、乱数発生機能による乱数を用いてデータ暗号鍵を生成したが、これに限定されず、他の方法でデータ暗号鍵を生成してもよい。
次にMP41は、S201の処理で生成したデータ暗号鍵を、LM42に記憶される内部用暗号鍵を用いて暗号化し、内部変換暗号鍵を生成する(S202)。次いでMP41は、S202の処理で生成した内部変換暗号鍵を共有メモリ24に格納する(S203)。本実施形態では、安全性を高めるために内部変換暗号鍵を生成して共有メモリ24に格納したが、これに限定されず、データ暗号鍵をそのまま共有メモリ24に格納してもよい。
これとともにMP41は、S202の処理で生成した内部変換暗号鍵を自己の暗号化対応ディスクアダプタ40内のFM44に格納する(S204)。これにより、内部変換暗号鍵(データ暗号鍵)がストレージ装置20内の不揮発媒体にバックアップされる。これにより、共有メモリ24に格納された内部変換暗号鍵が失われた場合でもFM44からリストアすることができ、データの暗号化に用いるデータ暗号鍵を安全に管理することができる。
S204の処理後、MP41は内部バックアップ処理S200を終了する。
図12は、データ暗号鍵をストレージ装置外にバックアップする動作を説明するフローチャートである。例えば管理端末13からネットワーク12を介し、パスワードを指定した、データ暗号鍵の外部バックアップ要求が送信されると、SVP22は受信した外部バックアップ要求を共有メモリ24に格納する。暗号化ディスクアダプタ40が共有メモリ24を参照して未処理の外部バックアップ要求を見つけると、当該暗号化ディスクアダプタ40のMP41は図12に示す外部バックアップ処理S300を実行する。
すなわち暗号化ディスクアダプタ40のMP41は、共有メモリ24に記憶された内部変換暗号鍵を取得し(S301)、取得した内部変換暗号鍵をLM42に記憶される内部用暗号鍵を用いてデータ暗号鍵に復号化する(S302)。
次にMP41は、指定されたパスワードから外部用暗号鍵を生成し(S303)、S302の処理で復号化したデータ暗号鍵を、S303の処理で生成した外部用暗号鍵を用いて暗号化し、外部変換暗号鍵を生成する(S304)。次いでMP41は、ハッシュ関数を用いて外部変換暗号鍵に対応するハッシュ値を算出する(S305)。次いでMP41は、共有メモリ24に記憶される外部バックアップ情報テーブル500において、外部バックアップ要求を送信した管理端末13の製造番号を装置製番欄500Aに格納し、S304の処理で生成した外部変換暗号鍵を外部変換暗号鍵欄500Bに格納し、S305の処理で算出したハッシュ値をハッシュ値欄500Cに格納して行(レコード)を登録する(S306)。
次にMP41は、管理端末13の製造番号、外部変換暗号鍵、及びハッシュ値を含むバックアップファイルを作成してSVP22に出力し(S307)、MP41は外部バックアップ処理S300を終了する。SVP22に入力されたバックアップファイルは、ネットワーク12を介して管理端末13に送信される。これにより、外部変換暗号鍵(データ暗号鍵)がストレージ装置20外の管理端末13にバックアップされる。これにより、ストレージ装置20内の外部変換暗号鍵が失われた場合でも外部の装置である管理端末13からリストアすることができ、データの暗号化に用いるデータ暗号鍵を安全に管理することができる。
本実施形態では、安全性を高めるために外部変換暗号鍵を生成して外部バックアップ情報テーブル500に格納するとともに、外部装置にバックアップするようにしたが、これに限定されず、データ暗号鍵をそのまま外部バックアップ情報テーブル500に格納するとともに、外部装置にバックアップするようにしてもよい。かかる場合には、データ暗号鍵に対応するハッシュ値を算出する。また、安全性を高めるために外部変換暗号鍵に加え、管理端末13の製造番号及びハッシュ値を外部バックアップ情報テーブル500に格納するとともに、外部装置にバックアップするようにしたが、これに限定されず、管理端末13の製造番号及びハッシュ値の両方ともなくてもよいし、何れか一方のみでもよい。
なお、ストレージ装置20内に暗号化ディスクアダプタ40が複数存在する場合には、共有メモリ24を参照して未処理の外部バックアップ要求を見つけた最初の暗号化ディスクアダプタ40のMP41が、外部バックアップ処理S300を実行すればよい。
図13は、データ暗号鍵をストレージ装置内からリストアする動作を説明するフローチャートである。一般に、共有メモリ24は揮発性メモリであるため、バッテリなどを備えない限り、ストレージ装置20の電源が切断されたり、停電したりすると、共有メモリ24に記憶していたデータが消失する。そのため、ストレージ装置20の電源が投入され起動したときに、共有メモリ24の内部変換暗号鍵が消えているか否かを確認する必要がある。例えばストレージ装置20が起動されると、暗号化ディスクアダプタ40のMP41は図13に示す内部リストア処理S400を実行する。
すなわち暗号化ディスクアダプタ40のMP41は、共有メモリ24を参照して内部変換暗号鍵が消えているか否かを判定する(S401)。なお、共有メモリ24の内部変換暗号鍵が消えているか否かは、例えばECC(Error Check and Correct)回路などを用いてアンコレクタブルエラーが応答されるか否かに基づいて判定する。
S401の判定の結果、内部変換暗号鍵が消えている場合に、MP41はFM42に記憶される内部変換暗号鍵を取得する(S402)。次いでMP41はS402で取得した内部変換暗号鍵を共有メモリ24内の参照用領域に格納する(S403)。なお、ストレージ装置20内に暗号化ディスクアダプタ40が複数存在する場合に、S402及びS403の処理は全ての暗号化ディスクアダプタ40のMP41で行う。
次に、何れか1つのディスクアダプタ40のMP41は、共有メモリ24内の参照用領域を参照し、複数の内部変換暗号鍵の中から対象となる内部変換暗号鍵を選出する(S404)。なお、選出方法は、多数決や内部変換暗号鍵の生成時刻が最新のものを選出するなどの方法が用いられる。また、ストレージ装置20内に暗号化ディスクアダプタ40が1つしか存在しない場合に、S404の処理は不要となる。
次に、MP41はS404の処理で選出された内部変換暗号鍵を共有メモリ24に格納する(S405)。これにより、ストレージ装置20内の内部変換暗号鍵(データ暗号鍵)が共有メモリ24にリストアされる。
S405の処理後、MP41は内部リストア処理S400を終了する。
一方、S401の判定の結果、内部変換暗号鍵が記憶されている場合には、内部変換暗号鍵をリストアする必要がないため、MP41は何も行わずに内部リストア処理S400を終了する。
図14は、データ暗号鍵をストレージ装置外からリストアする動作を説明するフローチャートである。管理端末13からネットワーク12を介し、バックアップファイルと、パスワードを指定した、データ暗号鍵の外部リストア要求とが送信されると、SVP22は受信した外部リストア要求を共有メモリ24に格納するとともに、バックアップファイルをキャッシュメモリ23に格納する。暗号化ディスクアダプタ40が共有メモリ24を参照して未処理の外部リストア要求を見つけると、当該暗号化ディスクアダプタ40のMP41は図14に示す外部リストア処理S500を実行する。
すなわち暗号化ディスクアダプタ40のMP41は、指定されたパスワードから外部用暗号鍵を生成する(S501)。次いでMP41は、キャッシュメモリ23に記憶されるバックアップファイルに含まれる外部変換暗号鍵を、S501の処理で生成した外部用暗号鍵を用いてデータ暗号鍵に復号化する(S502)。
次にMP41は、共有メモリ24に記憶される外部バックアップ情報テーブル500において、キャッシュメモリ23に記憶されるバックアップファイルに含まれるハッシュ値と、ハッシュ値欄500Cに格納された値とが一致するか否かを判定する(S503)。これにより、外部変換暗号鍵(データ暗号鍵)の破損を検出することができる。
S503の判定の結果、ハッシュ値が一致する場合に、キャッシュメモリ23に記憶されるバックアップファイルに含まれる装置製番と装置製番欄500Aに格納された製造番号とが一致するか否かを判定する(S504)。これにより、リストア元となる外部装置の誤りを検出することができる。
S504の判定の結果、装置製番が一致する場合に、バックアップファイルに含まれる外部変換暗号鍵が適正であるとして、MP41は、S502の処理で復号化したデータ暗号鍵を、LM42に記憶される内部用暗号鍵で暗号化して内部変換暗号鍵を生成する(S505)。次いでMP41は、S505の処理で生成した内部変換暗号鍵を共有メモリ24に格納する(S506)。これにより、ストレージ装置20外の外部変換暗号鍵(データ暗号鍵)が共有メモリ24にリストアされる。
S506の処理後、MP41は正常終了をSVPに出力して外部リストア処理S500を終了する。SVP22は、受信した外部リストア要求の正常終了を示す応答をネットワーク12を介して管理端末13に送信する。
一方、S503の判定の結果、ハッシュ値が一致しない場合、又はS504の判定の結果、装置製番が一致しない場合に、MP41は異常終了をSVPに出力し(S507)、MP41は外部リストア処理S500を終了する。SVP22は、受信した外部リストア要求の異常終了を示す応答を、ネットワーク12を介して管理端末13に送信する。
なお、ストレージ装置20内に暗号化ディスクアダプタ40が複数存在する場合には、前述の外部バックアップ処理S300と同様に、共有メモリ24を参照して未処理の外部リストア要求を見つけた最初の暗号化ディスクアダプタ40のMP41が、外部リストア処理S500を実行すればよい。
図15は、図1に示したディスクアダプタの暗号化状態を設定する動作を説明するフローチャートである。例えば管理端末13からネットワーク12を介してRAIDグループ番号(識別子)を指定した設定変更要求が送信されると、SVP22は図15に示す暗号化設定処理S600を実行する。
すなわち設定変更要求を受信したSVP22は、共有メモリ24に記憶されるRAIDグループ管理テーブル300において、指定されたRAIDグループ番号(識別子)がRG−ID欄300Aに格納された行(レコード)を読み出し、当該行(レコード)のDKA−ID欄300Cに格納されたディスクアダプタ番号(識別子)を取得する(S601)。なお、RAIDグループを構成する複数のHDD50は少なくとも1つのディスクアダプタ40に接続されるので、通常、S601の処理では複数のディスクアダプタ番号(識別子)が取得される。
次にSVP22は、共有メモリ24に記憶されるディススクアダプタ管理テーブル200において、S601の処理で取得したディスクアダプタ番号(識別子)がDKA−ID欄200Aに格納された行(レコード)を全て読み出し、当該行(レコード)のDKA−種別欄200Bに全て「暗号化対応」が格納されているか否かを判定する(S602)。
S602の判定の結果、全て「暗号化対応」が格納されている場合に、SVP22は、送信された設定変更要求の許可を示す応答を、ネットワーク12を介して管理端末13に送信する(S603)。
設定変更要求の許可を示す応答を受信した管理端末13は、最初に指定したRAIDグループに対する暗号化設定を「ON」又は「OFF」に指定可能な所定の画面を表示する。管理者は当該RAIDグループに対する暗号化状態を指定し、管理端末13はネットワーク12を介してRAIDグループ番号(識別子)及び暗号化設定を指定した暗号化設定要求を送信する。
暗号化設定要求を受信したSVP22は、共有メモリ23に記憶された暗号化管理テーブル400において、指定されたRAIDグループ番号(識別子)がRG−ID欄400Aに格納された行(レコード)を読み出し、当該行(レコード)の暗号化設定欄400Bに指定された暗号化状態、すなわち「ON」又は「OFF」を格納して当該行(レコード)を更新し、更新された行(レコード)を共有メモリ24に記憶される暗号化管理テーブル400に書き込む(S604)。このように、RAIDグループに対して暗号化状態が設定されるので、RAIDグループを構成するHDD50はデータを暗号して格納されるか、又はデータを暗号化せずに格納されるかの何れか一方のみとなり、1つのHDD50内に暗号化されたデータが記憶される暗号化領域と、暗号されないデータが記憶される非暗号化領域とが混在することがない。これにより、HDD50の盗難や持ち出しなどによるデータ漏えいを防止することができる。
S604の処理後、SVP22は暗号化設定処理S600を終了する。
一方、S602の判定の結果、少なくとも1つに「暗号化対応」が格納されていない場合に、SVP22は送信された設定変更要求の禁止を示す応答を、ネットワーク12を介して管理端末13に送信する(S605)。S605の処理後、SVP22は暗号化設定処理S600を終了する。
設定変更要求の禁止を示す応答を受信した管理端末13は、最初に指定したRAIDグループに対する暗号化状態を変更不能である旨の所定の画面を表示する。
暗号化設定処理S600の終了後、SVP22は、LDEV単位に暗号化状態を表示することが可能となる。
すなわち、例えばネットワーク12を介してLDEV番号(識別子)を指定した暗号化状態要求が管理端末13から送信されると、SVP22は、共有メモリ23に記憶された暗号化管理テーブル400において、指定されたLDEV番号(識別子)がLDEV−ID欄400Cに格納された行(レコード)を読み出す。次いで、SVP22は、当該行(レコード)の暗号化設定欄400Bに格納された暗号化状態を応答として、ネットワーク12を介して管理端末13に送信する。管理端末13は、指定したLDEVの暗号化状態をモニタなどに表示する。このように、RAIDグループに設定された暗号化状態に基づいて、RAIDグループに属するLDEVの暗号化状態が表示されるので、例えば後述のデータマイグレーションやデータコピーなどの操作を行う際に、管理者はLDEVごとに暗号化状態を知ることができる。
図16は、図1に示したディスクアダプタがHDDにデータを書き込む動作を説明するフローチャートである。例えばホスト計算機10から通信ネットワーク11を介してライトデータ及びライトコマンドが送信されると、前述のように、チャネルアダプタ30は受信したライトデータをキャッシュメモリ23に格納するとともに、受信したライトコマンドを共有メモリ24に格納する。ディスクアダプタ40は共有メモリ24を参照しており、共有メモリ24に格納されたライトコマンドが自己に対するライトコマンドであるときに、すなわちライトコマンドに指定された論理アドレスを物理アドレスに変換し、変換された物理アドレスが接続されているHDD50に対応する場合に、当該ディスクアダプタ40のMP41は図16に示すライト処理S700を実行する。
すなわち、MP41は、共有メモリ24に記憶される暗号化管理テーブル400において、ライトコマンドに含まれるライトデータの格納先であるLDEVのLDEV番号(識別子)が、LDEV−ID欄400Cに格納された行(レコード)を読み出し、当該行(レコード)のRG−ID欄400Aに格納されたRAIDグループ番号(識別子)を取得する(S701)。次いで、MP41は、当該行(レコード)の暗号化設定欄400Bに格納された情報に基づいて、暗号化が設定されているか否かを判定する(S702)。なお、暗号化設定欄400Bが「ON」ならば暗号化が設定されていると判定し、暗号化設定欄400Bが「OFF」ならば暗号化が設定されていないと判定する。
S702の判定の結果、暗号化が設定されている場合に、MP41は共有メモリ24に記憶される内部変換暗号鍵を取得する(S703)。次いでMP41は、内部変換暗号鍵を取得できたか否かを判定する(S704)。
S704の判定の結果、内部変換暗号鍵を取得できた場合に、MP41は取得した内部変換暗号鍵をLM42に記憶される内部用暗号鍵を用いてデータ暗号鍵に復号化する(S705)。次いでMP41は、S705で復号化したデータ暗号鍵をパラメータに設定し、当該パラメータをLM42に格納する(S706)。
次に、前述したデステージングと同様に、FCA60内の内部コントローラ62はパラメータ制御部61などに指示を出力し、パラメータ制御部61はLM42に記憶されるパラメータをキャッシュリード制御部64に出力する。次いで内部コントローラ62はキャッシュリード制御部64などに指示を出力し、キャッシュリード制御部64は、S707の処理で入力されたパラメータに含まれるデータ暗号鍵と、キャッシュメモリ23に記憶されるライトデータとを、暗号化・複号化回路70に出力する(S707)。
暗号化・複号化回路70は、データ暗号鍵を用いてライトデータを暗号化する(S708)。次いで暗号化・複号化回路70は、暗号化されたライトデータをキャッシュリード制御部64に出力し、キャッシュリード制御部64は入力された暗号化されたライトデータをHDD50に格納する(S709)。これにより、RAIDグループに設定された暗号化状態に基づいて、暗号化されたデータがHDD50に書き込まれる。
S710の処理後、MP41はライト処理S700を終了する。
一方、S702の判定の結果、暗号化が設定されていない場合に、MP41は、所定のパラメータを設定し、当該パラメータをLM42に格納する(S710)。
次に、前述したデステージングと同様に、FCA60内の内部コントローラ62はパラメータ制御部61などに指示を出力し、パラメータ制御部61はLM42に記憶されるパラメータをキャッシュリード制御部64に出力する。次いで内部コントローラ62はキャッシュリード制御部64などに指示を出力し、キャッシュリード制御部64は、S712の処理で入力されたパラメータに基づいて、キャッシュメモリ23に記憶されるライトデータをHDD50に格納する(S711)。これにより、RAIDグループに設定された暗号化状態に基づいて、暗号化されないデータがHDD50に書き込まれる。
S711の処理後、MP41はライト処理S700を終了する。
一方、S704の判定の結果、内部変換暗号鍵を取得できなかった場合に、MP41は、チャネルアダプタ30を介し、ライトコマンドを送信したホスト計算機10にライトエラーを応答する(S712)。次いでMP41は、共有メモリ24に記憶されるLDEVを管理する情報において、S701で取得したRAIDグループ番号(識別子)を有するRAIDグループに属する全てのLDEVに「閉塞」を示す情報を記録する(S713)。これにより、RAIDグループに属する全てのLDEVがアクセス禁止となる。
S713の処理後、MP41はライト処理S700を終了する。
以上の説明では、ホスト計算機10から送信されたライトデータをHDD50に格納する例を用いたが、これに限定されず、キャッシュメモリ23に格納されたデータをHDD50に書き出すデステージングの際には、ライト処理S700が実行される。
図17は、図1に示したディスクアダプタがHDDからデータを読み出す動作を説明するフローチャートである。例えばホスト計算機10から通信ネットワーク11を介してライトコマンドが送信されると、前述のように、チャネルアダプタ30は受信したリードコマンドを共有メモリ24に格納する。ディスクアダプタ40は共有メモリ24を参照しており、共有メモリ24に格納されたリードコマンドが自己に対するリードコマンドであるときに、すなわちリードコマンドに指定された論理アドレスを物理アドレスに変換し、変換された物理アドレスが接続されているHDD50に対応する場合に、当該ディスクアダプタ40のMP41は図17に示すリード処理S800を実行する。
すなわち、MP41は、共有メモリ24に記憶される暗号化管理テーブル400において、リードコマンドに含まれる対象データの格納先であるLDEVのLDEV番号(識別子)が、LDEV−ID欄400Cに格納された行(レコード)を読み出し、当該行(レコード)のRG−ID欄400Aに格納されたRAIDグループ番号(識別子)を取得する(S801)。次いでMP41は、当該行(レコード)の暗号化設定欄400Bに格納された情報に基づいて、暗号化が設定されているか否かを判定する(S802)。なお、暗号化設定欄400Bが「ON」ならば暗号化が設定されていると判定し、暗号化設定欄400Bが「OFF」ならば暗号化が設定されていないと判定する。
S802の判定の結果、暗号化が設定されている場合に、MP41は共有メモリ24に記憶される内部変換暗号鍵を取得する(S803)。次いでMP41は、内部変換暗号鍵を取得できたか否かを判定する(S804)。
S804の判定の結果、内部変換暗号鍵を取得できた場合に、MP41は取得した内部変換暗号鍵をLM42に記憶される内部用暗号鍵を用いてデータ暗号鍵に復号化する(S805)。次いでMP41は、S805で復号化したデータ暗号鍵をパラメータに設定し、当該パラメータをLM42に格納する(S806)。
次に、前述したステージングと同様に、FCA60内の内部コントローラ62はパラメータ制御部61などに指示を出力し、パラメータ制御部61はLM42に記憶されるパラメータをキャッシュライト制御部63に出力する。次いで内部コントローラ62はキャッシュライト制御部63などに指示を出力し、キャッシュリード制御部64は、S807の処理で入力されたパラメータに含まれるデータ暗号鍵と、S807の処理で入力されたパラメータに基づいてHDD50から読み込んだリードデータとを、暗号化・複号化回路70に出力する(S807)。
暗号化・複号化回路70は、データ暗号鍵(データ復号鍵)を用いてリードデータを復号化する(S808)。次いで暗号化・複号化回路70は、復号化されたリードデータをキャッシュライト制御部63に出力し、キャッシュライト制御部63は入力された復号化されたリードデータをキャッシュメモリ23に出力する(S809)。これにより、RAIDグループに設定された暗号化状態に基づいて、復号化されたデータがキャッシュメモリ23に格納される。
S809の処理後、MP41はリード処理S800を終了する。
一方、S802の判定の結果、暗号化が設定されていない場合に、MP41は、所定のパラメータを設定し、当該パラメータをLM42に格納する(S810)。
次に、前述したステージングと同様に、FCA60内の内部コントローラ62はパラメータ制御部61などに指示を出力し、パラメータ制御部61はLM42に記憶されるパラメータをキャッシュライト制御部63に出力する。次いで内部コントローラ62はキャッシュライト制御部63などに指示を出力し、入力されたパラメータに基づいてHDD50から読み込んだリードデータを、キャッシュメモリ23に出力する(S811)。これにより、RAIDグループに設定された暗号化状態に基づいて、暗号化されていないデータがキャッシュメモリ23に格納される。
S811の処理後、MP41はリード処理S800を終了する。
一方、S804の判定の結果、内部変換暗号鍵を取得できなかった場合に、MP41は、チャネルアダプタ30を介し、リードコマンドを送信したホスト計算機10にリードエラーを応答する(S812)。次いでMP41は、共有メモリ24に記憶されるLDEVを管理する情報において、S801で取得したRAIDグループ番号(識別子)を有するRAIDグループに属する全てのLDEVに「閉塞」を示す情報を記録する(S813)。これにより、RAIDグループに属する全てのLDEVがアクセス禁止となる。
S813の処理後、MP41はリード処理S800を終了する。
以上の説明では、ホスト計算機10から送信されたリードコマンドに基づいて、HDD50から読み出したリードデータをキャッシュメモリ23に格納する例を用いたが、これに限定されず、HDD50から読み出したデータをキャッシュメモリ23に格納するステージングの際には、ライト処理S700が実行される。
次に、図18及び図19を参照しながらデータマイグレーションの動作について説明する。
図18は、データマイグレーションの流れを説明する状態遷移図である。例えばストレージ装置20に暗号化ディスクアダプタ40を増設した際、又は普通の(暗号化・復号化回路70を搭載しない)ディスクアダプタ40を暗号化ディスクアダプタ40に交換した際に、暗号化が設定されていない第1のRAIDグループのデータを、暗号化が設定されている第2のRAIDグループにマイグレーションすることにより、第1のRAIDグループのデータを暗号化することができる。
すなわち、図18に示すように、第1のRAIDグループ133に属するLDEV143に記憶されるデータをマイグレーションするときに((a)参照)、第2のRAIDグループ134に新たにLDEV144を増設(定義)し、又は既存のLDEV144をフォーマット(初期化)する((b)参照)。
次に、LDEV143、144間で後述するデータマイグレーション処理S900を実行し((c)参照)、マイグレーション処理S900の完了後にLDEV143を開放する((d)参照)。なお、第1のRAIDグループにおける全てのデータを第2のRAIDグループにマイグレーションする場合、第1のRAIDグループに属する全てのLDEVについて、前述の(a)〜(d)を繰り返すことにより、第1のRAIDグループにおける全てのデータを暗号化することができる。
図19は、図1に示したSVP及びディスクアダプタがデータをマイグレーションする動作を説明するフローチャートである。例えば管理端末13からネットワーク12を介して移行元LDEV番号及び移行先LDEV番号を指定したデータマイグレーション要求が送信されると、SVP22は図19に示すデータマイグレーション処理S900を実行する。
すなわちデータマイグレーション要求を受信したSVP22は、共有メモリ24に記憶される暗号化管理テーブル400において、指定された移行元LDEVのLDEV番号(識別子)が、LDEV−ID欄400Cに格納された行(レコード)を読み出し、当該行(レコード)のRG−ID欄400Aに格納されたRAIDグループ番号(識別子)を有するRAIDグループを移行元RAIDグループ(移行元VDEV)として決定する(S901)。同様にして、SVP22は、指定された移送先LDEVのLDEV番号(識別子)が、LDEV−ID欄400Cに格納された行(レコード)を読み出し、当該行(レコード)のRG−ID欄400Aに格納されたRAIDグループ番号(識別子)を有するRAIDグループを移送先RAIDグループ(移送先VDEV)として決定する(S902)。
次にSVP22は、キャッシュメモリ23に移行元データ用領域及び移行先データ用領域を確保する(S903)。
ここで、SVP22は、共有メモリ24に記憶されるRAIDグループ管理テーブル300において、移行元RAIDグループのRAIDグループ番号(識別子)が、RG−ID欄300Aに格納された行(レコード)を読み出し、当該行(レコード)のDKA−ID欄300Cに格納されたディスクアダプタ番号(識別子)を有するディスクアダプタ40のMP41に対し、前述のステージングを指示する。なお、DKA−ID欄300Cに格納されたディスクアダプタ番号(識別子)が複数ある場合には、所定の順序でディスクアダプタ40のMP41に指示を出力する。
SVP22から指示を受けたディスクアダプタ40のMP41は、前述のリード処理S800と同様の処理を行い、移行元LDEVのデータをキャッシュメモリ23の移行元データ用領域に格納する(S904)。次いでMP41は、当該移行元LDEVのデータを、キャッシュメモリ23の移行元データ用領域から移行先データ用領域にコピーする(S905)。
ここで、SVP22は、共有メモリ24に記憶されるRAIDグループ管理テーブル300において、移行先RAIDグループのRAIDグループ番号(識別子)が、RG−ID欄300Aに格納された行(レコード)を読み出し、当該行(レコード)のDKA−ID欄300Cに格納されたディスクアダプタ番号(識別子)を有するディスクアダプタ40のMP41に対し、前述のデステージングを指示する。なお、DKA−ID欄300Cに格納されたディスクアダプタ番号(識別子)が複数ある場合には、所定の順序でディスクアダプタ40のMP41に指示を出力する。
SVP22から指示を受けたディスクアダプタ40のMP41は、前述のライト処理S700と同様の処理を行い、キャッシュメモリ23の移行先データ用領域に記憶される移送元LDEVのデータを、移送先LDEVに対応するHDD50に格納する(S906)。なお、移行元LDEVのデータ量がS903の処理で確保した移行元データ用領域よりも大きい場合、移行元LDEVのデータを所定量に分割し、所定量のデータごとにS904〜S906の処理を繰り返す。
SVP22は、全てのディスクアダプタ40のMP41に対してS904〜S906の処理を行った後、データマイグレーション処理S900を終了する。
このマイグレーションの開始された以降、ホスト計算機10から、データが暗号化されない、移行元LDEVに対して発行されたライトコマンドは、データマイグレーション処理S900の過程で、又はマイグレーション処理S900の終了後、移行先LDEVに発行され、ライトデータは移行先LDEVに格納される。
図20は、図1に示したSVPがLDEVを結合する動作を説明するフローチャートである。例えばLUの容量を拡張するために、管理端末13からネットワーク12を介してLUに含まれる先頭のLDEVのLDEV番号を指定した結合対象要求が送信されると、SVP22は図20に示す結合対象処理S1000を実行する。
すなわち結合要求を受信したSVP22は、共有メモリ24に記憶される暗号化管理テーブル400において、指定されたLDEVのLDEV番号(識別子)が、LDEV−ID欄400Cに格納された行(レコード)を読み出し、当該行(レコード)の暗号化設定欄400Bに格納された暗号化状態を取得する(S1001)。次いでSVP22は、S1001で取得した暗号化状態が、暗号化設定欄400Bに格納された行(レコード)を全て読み出し、当該行(レコード)のLDEV−ID欄400Cに格納された全てのLDEV番号(識別子)を取得する(S1002)。
次に、SVP22はS1002で取得した全てのLDEV番号(識別子)を結合対象要求の応答としてネットワーク12を介して管理端末13に送信し(S1003)、SVP22は結合対象処理S1000を終了する。
図21は、管理端末に表示するLDEV結合画面の一例を説明するイメージ図である。結合要求の応答を受信した管理端末13は、モニタなどに図21に示すLDEV結合画面G01を表示する。LDEV結合画面G01には、結合元LDEVフィールドG01Aに、指定したLDEVのLDEV番号が表示されるとともに、結合可能LDEVフィールドG01Bに受信したLDEV番号が表示される。管理者は、追加ボタンG01C又は削除ボタンG01Dを操作することにより、結合可能LDEVフィールドG01Bに表示したLDEV番号を結合対象LDEVフィールドG01Eに追加し、又は結合対象LDEVフィールドG01Eから削除することができる。
結合対象のLDEVを決定後、管理者が実行ボタンG05Fを操作することにより、結合元LDEVフィールドG01AのLDEV番号と、結合対象LDEVフィールドG01Eの全てのLDEV番号とを指定した結合要求がネットワーク12を介してSVP22に送信され、SVP22によってLDEVが結合される。このように、結合元となるLDEVと暗号化状態が同一のLDEVのみが結合対象のLDEVとして表示され、結合元LDEVと結合対象LDEVとを結合することができるので、暗号化領域と非暗号化領域とが結合されるのを防止することができる。
図22は、図1に示したディスクアダプタをリプレースする動作を説明するフローチャートである。ストレージ装置20に備わる暗号化ディスクアダプタ40を普通の(暗号化・復号化回路70を搭載しない)ディスクアダプタ40に交換する際に、例えば管理端末13からネットワーク12を介して、リプレース対象となる暗号化ディスクアダプタ40のディスクアダプタ番号を指定したリプレース要求が送信されると、SVP22は図22に示すディスクアダプタリプレース処理S1100を実行する。
すなわちリプレース要求を受信したSVP22は、共有メモリ24に記憶されるRAIDグループ管理テーブル300において、指定された暗号化ディスクアダプタ40のディスクアダプタ番号(識別子)が、DKA−ID欄300Cに格納された行(レコード)を読み出し、当該行(レコード)のRG−ID欄300Aに格納されたRAIDグループのRAIDグループ番号(識別子)を取得する(S1101)。なお、図4に示したディスクアダプタ40A、40Bのように、1つのディスクアダプタ40が2つ以上の複数のRAIDグループに属する場合には、S1101の処理で取得するRAIDグループ番号(識別子)は複数となる。
次にSVP22は、共有メモリ24に記憶される暗号化管理テーブル400において、S1101の処理で取得したRAIDグループ番号(識別子)が、RG−ID欄400Aに格納された行(レコード)を全て読み出し、当該行(レコード)の暗号化設定欄400Bに格納された暗号化状態を取得する(S1102)。
次にSVP22は、S1102で取得した暗号化状態に基づいて、全てのRAIDグループに暗号化が設定されていないか否かを判定する(S1103)。なお、暗号化設定欄400Bが全て「OFF」ならば全てのRAIDグループに暗号化が設定されていないと判定し、暗号化設定欄400Bが1つでも「ON」ならば何れかのRAIDグループに暗号化が設定されていると判定する。
S1103の判定の結果、何れかのRAIDグループに暗号化が設定されている場合に、SVP22は、指定されたディスクアダプタ40が属するRAIDグループを削除するか否かを確認するリプレース確認要求を、ネットワーク12を介して管理端末13に送信する(S1104)。
図23は、管理端末に表示する確認画面の一例を説明するイメージ図である。リプレース確認要求を受信した管理端末13は、モニタなどに図23に示す確認画面G02を表示する。確認画面G02はリプレースを続行するか否かを問う旨のメッセージG02Aを表示し、管理者は「はい」ボタンG02B又は「いいえ」ボタンG02Cの一方を操作する。次いで管理端末13は、「はい」ボタンG02B又は「いいえ」ボタンG02Cの一方の操作に基づくリプレース確認要求に対する応答を、ネットワーク12を介してSVP22に送信する。
応答を受信したSVP22は、当該応答に基づいてリプレースを続行するか否かを判定する(S1105)。なお、確認画面G02で「はい」ボタンG02Bが操作されたときはリプレースを続行すると判定し、確認画面G02で「いいえ」ボタンG02Cが操作されたときはリプレースを続行しない(中止する)と判定する。
S1105の判定の結果、リプレースを続行する場合に、SVP22は最初に指定された応答を受信したSVP22は、S1101の処理で取得したRAIDグループ番号(識別子)を有するRAIDグループを全て削除する(S1106)。
S1106の処理後、SVP22は、暗号化ディスクアダプタ40をディスクアダプタ40に交換する所定のリプレース処理を行い(S1107)、SVP22はディスクアダプタリプレース処理S1100を終了する。
一方、S1105の判定の結果、リプレースを続行しない場合に、SVP22は所定のリプレース中断処理を行い(S1108)、SVP22はディスクアダプタリプレース処理S1100を終了する。
また、S1103の判定の結果、全てのRAIDグループに暗号化が設定されていない場合、すなわちリプレース対象のディスクアダプタ40が接続するHDD50に記憶されるデータが全て暗号化されていないデータの場合に、SVP22は、S1104〜S1106の処理を行わずに、前述の所定のリプレース処理を行い(S1107)、SVP22はディスクアダプタリプレース処理S1100を終了する。このように、暗号化ディスクアダプタ40に接続されるHDDが属するRAIDグループに設定された暗号化状態が、全てデータを暗号化しない場合に、暗号化ディスクアダプタ40がディスクアダプタ40に交換されるので、暗号化されたデータが暗号化できないディスクアダプタ40に接続されるHDD50に格納され、1つのHDD50内に暗号化されたデータが記憶される暗号化領域と、暗号されないデータが記憶される非暗号化領域とが混在することがない。これにより、HDD50の盗難や持ち出しなどによるデータ漏えいを防止することができる。
なお、本発明の構成は、前述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
1…ストレージシステム、10,10A,10B,10C…ホスト計算機、20…ストレージ装置、22…SVP、23…キャッシュメモリ、24…共有メモリ、40,40A,40B,40C…ディスクアダプタ、41…MP、50…HDD、200…ディスクアダプタ管理テーブル、300…RAIDグループ管理テーブル。