(57)【要約】【課題】第一のストレージサブシステムのストレージ装置の内外に格納されるデータを暗号化するのに必要な、コントローラの処理負担を抑える。【解決手段】第一のストレージサブシステムに、暗号処理部を内蔵した第一のストレージ装置と、暗号処理部及びアクセス制御部を有したコントローラとを備える。アクセス制御部は、上位装置からのライト要求を処理した場合の書込み先が、第一の論理ボリュームと第二の論理ボリュームのいずれになるかを判断し、第一の論理ボリュームになると判断した場合、ライト対象データを、コントローラの暗号処理部で暗号化することなく、第一の論理ボリュームに対応した第一のストレージ装置に送信し、一方、第二の論理ボリュームになると判断した場合、ライト対象データを、コントローラの暗号処理部によって暗号化した上で、第二のストレージサブシステムに送信する。【選択図】図３６
2008108039.tif 000002
【特許請求の範囲】
【請求項１】
ライト対象データのライト要求を送信する上位装置と、複数の第二のストレージ装置を基に用意された一以上の第二の論理ボリュームを備える第二のストレージサブシステムとに接続される第一のストレージサブシステムであって、
複数の第一のストレージ装置と、
前記複数の第一のストレージ装置を基に用意された一以上の第一の論理ボリュームと、
前記上位装置からライト要求を受信し処理するコントローラと
を備え、
前記複数の第一のストレージ装置の各々が、ストレージ媒体と、該ストレージ媒体に書かれるデータを暗号化する装置暗号処理部とを有し、
前記コントローラが、データを暗号化するコントローラ暗号処理部と、前記上位装置から受信したライト要求に従うデータの書込みを制御するアクセス制御部とを備え、
前記アクセス制御部が、前記受信したライト要求を処理した場合の書込み先が、いずれかの前記第一の論理ボリュームとなるか、或いは、いずれかの前記第二の論理ボリュームとなるかを判断し、前記書込み先が、前記第一の論理ボリュームとなるならば、該ライト要求に従うライト対象データを、前記コントローラ暗号処理部で暗号化することなく、前記書込み先の第一の論理ボリュームに対応した第一のストレージ装置に送信し、一方、前記書込み先が、前記第二の論理ボリュームとなるならば、該ライト要求に従うライト対象データを、前記コントローラ暗号処理部によって暗号化し、該暗号化されたライト対象データを、前記第二のストレージサブシステムに送信する、
ストレージサブシステム。
【請求項２】
前記コントローラが、前記ライト対象データを一時的に記憶するキャッシュ記憶域を更に備え、
前記アクセス制御部が、該キャッシュ領域上のライト対象データを前記第二のストレージサブシステムに送信する場合に、該ライト対象データを前記コントローラ暗号処理部によって暗号化する、
請求項１記載のストレージサブシステム。
【請求項３】
前記各第一のストレージ装置が、物理アドレス範囲及び暗号鍵が設定される暗号鍵記憶域を有し、前記装置暗号処理部は、前記ストレージ媒体の或る物理アドレス範囲に書かれるライト対象データを、前記暗号鍵記憶域で該或る物理アドレス範囲に対応した暗号鍵を用いて暗号化するように構成されており、
前記コントローラが、物理アドレス範囲及び暗号鍵を前記暗号鍵記憶域に設定する暗号鍵設定部を有し、
前記暗号鍵設定部が、前記複数の第一のストレージ装置の前記暗号鍵記憶域に、複数の論理アドレス範囲の各々に対応した物理アドレス範囲と該論理アドレス範囲に対応した暗号鍵とを設定する、
請求項１記載のストレージサブシステム。
【請求項４】
一つの前記論理アドレス範囲で表される記憶空間部分が一つの前記第一の論理ボリュームである、
請求項３記載のストレージサブシステム。
【請求項５】
二以上の前記論理アドレス範囲でそれぞれ表される二以上の記憶空間部分により、一つの前記第一の論理ボリュームが構成されている、
請求項３記載のストレージサブシステム。
【請求項６】
前記各第一のストレージ装置が、装置復号処理部を備え、該装置復号処理部が、該第一のストレージ装置の前記ストレージ媒体における或る物理アドレス範囲から読み出された暗号化済みデータを、前記暗号鍵記憶域で該物理アドレス範囲に対応付けられている暗号鍵で復号化するよう構成されており、
前記コントローラが、前記第一のストレージサブシステムを管理するための管理情報を記憶する管理記憶域を有し、該管理情報は、前記複数の論理アドレス範囲の各々に対応付けられた暗号鍵を含み、
前記アクセス制御部が、
前記第一のストレージサブシステムの第一の論理アドレス範囲に格納されるライト対象データを、前記第二のストレージサブシステムの第二の論理アドレス範囲に格納するために該第二のストレージサブシステムに送信するように構成されており、
前記第一の論理アドレス範囲に対応した、第一のストレージ装置のストレージ媒体における物理アドレス範囲から、暗号化済みデータを読み出して前記第二のストレージサブシステムに送信する場合には、該第一のストレージ装置の前記装置復号処理部による復号化をさせることなく、該暗号化済みデータを該第一のストレージ装置から読出し、前記コントローラ暗号処理部で暗号化することなく、該暗号化済みデータを送信し、
前記第一の論理アドレス範囲に新たにライト対象データを書く場合に、該第一の論理アドレス範囲に対応した暗号鍵を前記管理情報から特定し、該特定された暗号鍵で前記コントローラ暗号処理部により該ライト対象データを暗号化し、該暗号化されたライト対象データを前記第二のストレージサブシステムに送信する、
請求項３記載のストレージサブシステム。
【請求項７】
前記複数の第一のストレージ装置を基に用意されたものではない仮想的な論理ボリュームである仮想ボリュームがあり、該仮想ボリュームには、前記一以上の第二の論理ボリュームが対応付けられており、
前記アクセス制御部が、前記仮想ボリュームに対するライト要求を処理する場合、該ライト要求に従うライト対象データを、前記コントローラ暗号処理部によって暗号化し、一方、実体のある前記第一の論理ボリュームに対するライト要求を処理する場合、該ライト要求に従うライト対象データを、前記コントローラ暗号処理部で暗号化することなく、該実体のある第一の論理ボリュームに対応した第一のストレージ装置に送信する、
請求項１記載のストレージサブシステム。
【請求項８】
前記アクセス制御部が、前記書込み先となる第二の論理ボリュームを有する前記第二のストレージサブシステムに、データを暗号化する暗号処理部が備えられているか否かを判断し、備えられている場合には、前記ライト対象データを前記コントローラ暗号処理部で暗号化することなく該第二のストレージサブシステムに送信する、
請求項１記載のストレージサブシステム。
【請求項９】
前記各第一のストレージ装置が、装置復号処理部を備え、該装置復号処理部が、該第一のストレージ装置の前記ストレージ媒体から読み出された暗号化済みデータを復号化するよう構成されており、
前記アクセス制御部が、或る第一の論理ボリュームをコピー元ボリュームとし或る第二の論理ボリュームをコピー先ボリュームとしたボリュームペアを形成し、該コピー元ボリュームに格納済みのデータを該コピー元ボリュームに対応した第一のストレージ装置から読み出して前記第二のストレージサブシステムに送信する第一のコピーを実行するように構成されている場合、該第一のコピーでは、前記コピー元ボリュームに対応した第一のストレージ装置に格納済みの暗号化されているライト対象データを、該第一のストレージ装置の前記装置復号処理部で復号化させることなく読出し、前記コントローラ暗号処理部で暗号化することなく、前記第二のストレージサブシステムに送信する、
請求項１記載のストレージサブシステム。
【請求項１０】
前記アクセス制御部が、前記第一のコピーの後、前記コピー元ボリュームに新たにライト対象データが書込まれる場合に、該新たに書込まれるライト対象データを前記第二のストレージサブシステムに送信する第二のコピーを実行するように構成されている場合、該更新コピーでは、前記新たに書かれるライト対象データを、前記コントローラ暗号処理部で暗号化して前記第二のストレージサブシステムに送信する、
請求項９記載のストレージサブシステム。
【請求項１１】
前記コントローラ暗号処理部は、前記コピー先ボリューム又は前記コピー元ボリュームに対応付けられている、データの暗号化に用いる暗号鍵で、前記新たに書かれるライト対象データを暗号化する、
請求項９記載のストレージサブシステム。
【請求項１２】
前記コントローラが、データを復号化するコントローラ復号処理部を更に備え、
前記アクセス制御部は、前記第二の論理ボリュームをコピー元ボリュームとし、前記第一の論理ボリュームをコピー先ボリュームとしてデータコピーを実行する場合、該コピー元ボリューム内のデータが暗号化済みの場合には、前記コントローラ復号処理部による復号化を行うことなく、且つ、前記装置暗号処理部による暗号化を行うことなく、該暗号済みデータをそのまま前記コピー先ボリュームに対応する第一のストレージ装置に書込む、
請求項１記載のストレージサブシステム。
【請求項１３】
前記アクセス制御部が、或る第一の論理ボリュームをコピー元ボリュームとし或る第二の論理ボリュームをコピー先ボリュームとしたボリュームペアを形成し、該コピー元ボリュームにライト対象データを書く場合、該ライト対象データを含んだジャーナルデータを生成し、別の或る第一の論理ボリュームであるジャーナルボリュームに、該生成したジャーナルデータを書込み、該ジャーナルボリュームに格納されているジャーナルデータを、該ジャーナルデータのある第一のストレージ装置から読出し、該読み出したジャーナルデータ又は該ジャーナルデータ中のライト対象データを、前記第二のストレージサブシステムに送信することで、前記コピー元ボリューム内のライト対象データを前記コピー先ボリュームにコピーするように構成されており、
前記各第一のストレージ装置が、物理アドレス範囲及び暗号鍵が設定される暗号鍵記憶域と、装置復号処理部とを有し、前記装置暗号処理部は、前記ストレージ媒体の或る物理アドレス範囲に書かれるライト対象データを、前記暗号鍵記憶域で該或る物理アドレス範囲に対応した暗号鍵を用いて暗号化するように構成されており、前記装置復号処理部が、該第一のストレージ装置の前記ストレージ媒体における或る物理アドレス範囲から読み出された暗号化済みデータを、前記暗号鍵記憶域で該或る物理アドレス範囲に対応付けられている暗号鍵で復号化するよう構成されており、
前記コントローラが、前記第一のストレージサブシステムを管理するための管理情報を記憶する管理記憶域と、暗号鍵を前記暗号鍵記憶域に設定する暗号鍵設定部とを有し、
前記管理情報は、複数のコピー元ボリュームの各々に対応付けられた暗号鍵を含み、
前記暗号鍵設定部が、前記ジャーナルデータの書込み先に対応した物理アドレス範囲と、該ジャーナルデータ中のライト対象データが書かれるコピー元ボリュームに対応した暗号鍵とを、該物理アドレス範囲のある第一のストレージ装置の前記装置コントローラの記憶域に設定する、
請求項１記載のストレージサブシステム。
【請求項１４】
前記アクセス制御部が、前記ジャーナルデータを前記第一のストレージ装置の前記装置復号処理部で復号化させることなく読出して前記第二のストレージサブシステムに送信する、
請求項１３記載のストレージサブシステム。
【請求項１５】
前記アクセス制御部が、仮想的な論理ボリュームである仮想ボリュームに、前記一以上の第一の論理ボリュームで構成される論理的な記憶空間を構成する複数の論理領域のうちの未割当ての論理領域を割り当てたり、割当て済みの論理領域の割当てを解除して未割当てにしたりするように構成されており、前記仮想ボリュームに対するライト要求で指定されている、前記仮想ボリュームにおける場所に、前記論理領域が未割当てであれば、前記複数の論理領域のうちの未割当ての論理領域を割り当て、該割り当てた論理領域に対応する物理アドレス範囲を有した第一のストレージ装置に、該ライト要求に従うライト対象データを送信するようになっており、
前記各第一のストレージ装置が、物理アドレス範囲及び暗号鍵が設定される暗号鍵記憶域を有し、前記装置暗号処理部は、前記ストレージ媒体の或る物理アドレス範囲に書かれるライト対象データを、前記暗号鍵記憶域で該或る物理アドレス範囲に対応した暗号鍵を用いて暗号化するように構成されており、
前記コントローラが、物理アドレス範囲及び暗号鍵を前記暗号鍵記憶域に設定する暗号鍵設定部を有し、
前記仮想ボリュームは複数個あり、
前記暗号鍵設定部が、割当てられた論理領域に対応した物理アドレス範囲と、該論理領域の割当て先の仮想ボリュームに対応した暗号鍵とを、該物理アドレス範囲のある第一のストレージ装置の前記暗号鍵記憶域に設定する、
請求項１記載のストレージサブシステム。
【請求項１６】
前記各第一のストレージ装置が、装置復号処理部を備え、該装置復号処理部が、該第一のストレージ装置の前記ストレージ媒体における或る物理アドレス範囲から読み出された暗号化済みデータを、前記暗号鍵記憶域で該物理アドレス範囲に対応付けられている暗号鍵で復号化するよう構成されており、
前記アクセス制御部が、前記上位装置から前記仮想ボリュームに対するリード要求を受信した場合、該リード要求で指定されている、前記仮想ボリュームにおける場所に、割当て済みの前記論理領域を特定し、該論理領域に対応した物理アドレス範囲を特定し、前記第一のストレージ装置の前記ストレージ媒体における該特定された物理アドレス範囲からデータを読み出し、前記上位装置に提供する、
請求項１５記載のストレージサブシステム。
【請求項１７】
前記各第一のストレージ装置が、装置復号処理部を備え、該装置復号処理部が、該第一のストレージ装置の前記ストレージ媒体から読み出された暗号化済みデータを復号化するよう構成されており、
前記コントローラが、暗号化済みのデータを復号化するサブシステム復号処理部を有し、
前記アクセス制御部が、
前記上位装置からのリード要求を処理した場合の読み出し元がいずれかの前記第二の論理ボリュームとなる場合、前記第二の論理ボリュームから読み出された暗号化済みデータを前記サブシステム復号処理部により復号化して前記上位装置に送信するように構成されており、
前記第一又は第二の論理ボリューム内のデータを読み出す処理を必要とするバックアップ要求を受信した場合には、前記装置復号処理部又は前記サブシステム復号処理部を実行させないことで、暗号化済みのデータを取得し、該取得した暗号化済みデータを、前記上位装置に送信する、
請求項１記載のストレージサブシステム。
【請求項１８】
前記複数の第一のストレージ装置の各々の記憶空間の集合であるトータル記憶空間を区切ることにより複数の前記第一の論理ボリュームが形成され、一つの第一の論理ボリュームが、各第一のストレージ装置の記憶空間の一部分により構成されており、
前記各第一のストレージ装置が、物理アドレス範囲及び暗号鍵が設定される暗号鍵記憶域を有し、前記装置暗号処理部は、前記ストレージ媒体の或る物理アドレス範囲に書かれるライト対象データを、前記暗号鍵記憶域で該或る物理アドレス範囲に対応した暗号鍵を用いて暗号化するように構成されており、
前記コントローラが、前記ライト対象データを一時的に記憶するキャッシュ記憶域と、物理アドレス範囲及び暗号鍵を前記暗号鍵記憶域に設定する暗号鍵設定部とを備え、
前記アクセス制御部が、該キャッシュ領域上のライト対象データを前記第二のストレージサブシステムに送信する場合に、該ライト対象データを前記コントローラ暗号処理部によって暗号化し、
前記暗号鍵設定部が、前記各第一のストレージ装置の前記暗号鍵記憶域に、該第一のストレージ装置の記憶空間の複数の一部分をそれぞれ有する複数の第一の論理ボリュームにそれぞれ対応した複数の暗号鍵と、前記複数の一部分にそれぞれ対応した複数の物理アドレス範囲とを設定する、
請求項１記載のストレージサブシステム。
【請求項１９】
ライト対象データのライト要求を送信する上位装置と、複数の第二のストレージ装置を基に用意された一以上の第二の論理ボリュームを備える第二のストレージサブシステムと、前記上位装置及び前記第二のストレージサブシステムに接続され、複数の第一のストレージ装置を基に用意された一以上の第一の論理ボリュームを備える第一のストレージシステムとを備えた計算機システムで実現される記憶制御方法であって、
前記上位装置から送信されたライト要求を前記第一のストレージサブシステムが受信し、
該ライト要求を処理した場合の書込み先が、いずれかの前記第一の論理ボリュームであるか、或いは、いずれかの前記第二の論理ボリュームであるかを判断し、
前記書き込み先が、前記第一の論理ボリュームであれば、該ライト要求に従うライト対象データを、前記第一のストレージサブシステムのコントローラに設けられた暗号処理部で暗号化することなく、前記書込み先の第一の論理ボリュームに対応した第一のストレージ装置に送信し、それにより、該第一のストレージ装置の暗号化処理部により該ライト対象データが暗号化され、
前記書き込み先が、前記第二の論理ボリュームであれば、該ライト対象データを、前記コントローラに設けられた前記暗号処理部によって暗号化し、該暗号化されたライト対象データを、前記第二のストレージサブシステムに送信する、
記憶制御方法。
【請求項２０】
前記第一の論理ボリュームをコピー元ボリュームとし前記第二の論理ボリュームをコピー先ボリュームとしたボリュームペアを形成し、
該コピー元ボリュームに格納されている暗号済みデータを、前記第一のストレージ装置の復号処理部による復号化を行わせることなく読出し、
該暗号済みデータを、前記コントローラに設けられた前記暗号処理部による暗号化をすることなく、前記第二の論理ボリュームに格納する、
請求項１９記載の記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージ装置を備えたストレージサブシステムに関する。
【背景技術】
【０００２】
企業等の組織では、多量のデータを管理するために、ホスト計算機（以下「ホスト」）とは別に構成されたストレージサブシステムを用いている。このようなストレージサブシステムは、例えば、ハードディスクドライブ等のストレージ装置を多数内蔵しており、コントローラにより、大容量の記憶領域をホストに提供することができる。
【０００３】
ストレージサブシステムには、例えば、個人の住所及び氏名等の個人情報や信用状態に関する情報等のような各種の重要な情報が記憶される。従って、重要情報を秘密に管理して、不正なアクセス等を防止するための技術が求められている。
【０００４】
データを保護するために、暗号化技術を用いる場合がある。ホストの内部でデータを暗号化して、この暗号化されたデータをストレージサブシステムに送信して記憶させることにより、暗号化されたデータの第三者による不正な使用を防止することができる。
【０００５】
しかし、ホストの内部でデータを暗号化すると、ホストのデータ処理負荷が大きくなってしまい、ホスト上で動作しているアプリケーションプログラムの性能等にも悪影響を与えることになる。
【０００６】
そこで、例えば文献１（特開２００５−３２２２０１号）に、ストレージサブシステムの内部でデータの暗号化を行うことができるようにした技術が提案されている。
【０００７】
【特許文献１】特開２００５−３２２２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ストレージサブシステムのコントローラが、ホストからライト要求を受信する都度に、該ライト要求に従うライト対象データを暗号化して、ストレージ装置に格納する方法が考えられる。しかし、この方法では、ストレージサブシステムが暗号化をせずにライト対象データを格納する場合に比して、コントローラの負荷が大きく、コントローラの性能（例えばライト要求の処理速度）が劣化してしまう。ストレージサブシステムは、大容量の記憶領域を提供することから、短い時間にたくさんのデータを受けることがあり、特にその場合には、それらたくさんのデータをコントローラの性能劣化を抑えて暗号化するのは困難である。
【０００９】
また、ホストからライト要求を受信する第一のストレージサブシステムに、第二のストレージサブシステムを接続し、第一のストレージサブシステムから第二のストレージサブシステムにデータをコピーする技術が知られている。この他にも、第一のストレージサブシステムがホストから受けたデータを、第二のストレージサブシステムに送信する場合がある。これらのケースでは、該第二のストレージサブシステムでも、データの保護のために、該データが暗号化されていることが望ましい。
【００１０】
従って、本発明の目的は、第一のストレージサブシステムのストレージ装置の内外に格納されるデータを暗号化するのに必要な、コントローラの処理負担を抑えることにある。
【００１１】
本発明のさらなる目的は、後の記載から明らかになるであろう。
【課題を解決するための手段】
【００１２】
第一のストレージサブシステムに備える複数の第一のストレージ装置は、暗号処理部を内蔵したストレージ装置にする。それら複数の第一のストレージ装置を基に、第一の論理ボリュームを用意する。一方、第二のストレージサブシステムには、複数の第二のストレージ装置があり、該複数の第二のストレージ装置を基に、第二の論理ボリュームが用意されている。
【００１３】
第一のストレージサブシステムに、暗号処理部及びアクセス制御部を有したコントローラを備える。アクセス制御部は、上位装置（例えばホスト計算機或いは他のストレージサブシステム）から受信したライト要求に従うデータの書込みを制御するものである。
【００１４】
アクセス制御部は、上位装置からのライト要求を処理した場合の書込み先が、第一の論理ボリュームと第二の論理ボリュームのいずれになるかを判断する。
【００１５】
書込み先が第一の論理ボリュームになると判断した場合、アクセス制御部は、該ライト要求に従うライト対象データを、コントローラの暗号処理部で暗号化することなく、第一の論理ボリュームに対応した第一のストレージ装置に送信する。これにより、そのライト対象データは、該第一のストレージ装置の暗号化処理部により暗号化されて、該第一のストレージ装置に格納される。
【００１６】
一方、書込み先が第二の論理ボリュームになると判断した場合、アクセス制御部は、ライト対象データを、コントローラの暗号処理部によって暗号化した上で、第二のストレージサブシステムに送信する。
【００１７】
アクセス制御部及び暗号処理部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【００１８】
本発明によれば、第一のストレージサブシステムのストレージ装置の内外に格納されるデータを暗号化するのに必要な、コントローラの処理負担を抑えることができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の幾つかの実施形態を説明する。
【００２０】
＜第一の実施形態＞。
【００２１】
図３６は、本発明の第一の実施形態の概念の説明図である。
【００２２】
第一のストレージサブシステム９７３は、第二のストレージサブシステム１９７３と通信可能に接続されている。第二のストレージサブシステム１９７３は、複数の第二のストレージ装置１９７９と、複数の第二のストレージ装置１９７９を基に用意された第二の論理ボリューム１９８５と、第二のコントローラ１９７４とを備える。第二のコントローラ１９７４は、第二の論理ボリューム１９８５に対するアクセス要求（ライト要求／リード要求）を処理することにより、該第二の論理ボリューム１９８５の基になっている各第二のストレージ装置１９７９に対しデータのライト或いはリードを要求する。それにより、各第二のストレージ装置１９７９にデータをライトする或いはリードすることができる。
【００２３】
第一のストレージサブシステム９７３は、複数の第一のストレージ装置９７９と、複数の第一のストレージ装置９７９を基に用意された第一の論理ボリューム９８５と、第一のコントローラ９７４とを備える。
【００２４】
各第一のストレージ装置９７９には、装置暗号／復号処理部（以下、暗号化（encryption）／復号化（decryption）を略して「装置Ｅ／Ｄ部」と略記する）９８１が内蔵されている。第一のストレージ装置９７９がライトの要求と共に受信したデータ（後述の平文）は、装置Ｅ／Ｄ部９８１によって暗号化されてから、該第一のストレージ装置９７９のストレージ媒体９８９に書かれるようになっている。また、第一のストレージ装置９７９が受信したリードの要求に従ってストレージ媒体９８９から読み出されたデータ（後述の暗号文）は、装置Ｅ／Ｄ部９８１によって復号化されてから、該第一のストレージ装置９７９から第一のコントローラ９７４に送られるようになっている。
【００２５】
第一のコントローラ９７４は、キャッシュ領域９７７と、コントローラ暗号／復号処理部（以下、「コントローラＥ／Ｄ部」と略記する）９７５とを有する。第一のコントローラ９７４は、上位装置９７１からライト要求を受信し処理する。以下の説明では、その受信したライト要求のライト対象データを、「平文」と呼ぶことにする。該ライト対象データは、上位装置９７１の特定のレイヤ（例えばアプリケーションプログラム或いはオペレーティングシステム）で何らかの暗号化処理が施されているかもしれないが、それでも、第一のストレージサブシステム９７３が受信してから未だ暗号化されていないという意味で、上記のように、「平文」と呼ぶことにする。それに対し、該平文が、第一のストレージサブシステム９７３で暗号化されたものを、「暗号文」と呼ぶことにする。
【００２６】
第一のコントローラ９７４は、上位装置９７１から受信したライト要求に従う平文を、キャッシュ領域９７７に一時格納する。第一のコントローラ９７４は、該ライト要求を処理した場合の書込み先が、第一の論理ボリューム９８５と第二の論理ボリューム１９８５のいずれになるかを判断する。
【００２７】
第一のコントローラ９７４は、書込み先が第一の論理ボリューム９８５になると判断したならば、キャッシュ領域９７７上の平文を、コントローラＥ／Ｄ部９７５で暗号化することなく、第一の論理ボリューム９８５の基になっている第一のストレージ装置９７９に送信する。これにより、該第一のストレージ装置９７９が受信した平文が、該第一のストレージ装置９７９の装置Ｅ／Ｄ部９８１によって暗号化されることで暗号文となり、該暗号文が、該第一のストレージ装置９７９のストレージ媒体９８９に書かれる。
【００２８】
一方、第一のコントローラ９７４は、書込み先が第二の論理ボリューム１９８５になると判断したならば、キャッシュ領域９７７上の平文を、コントローラＥ／Ｄ部９７５で暗号化し（つまり、平文を暗号文にし）、第二の論理ボリューム１９８５を指定したライト要求と該暗号文とを、第二のストレージサブシステム１９７３に送信する。これにより、第二のコントローラ１９７４が、該ライト要求を処理することで、該暗号文が、該ライト要求で指定した第二の論理ボリューム１９８５の基になっている第二のストレージ装置１９７９に書かれる。
【００２９】
以上の処理により、第一のコントローラ９７４による暗号化の処理負担をなるべく低減させることができる。
【００３０】
第一のコントローラ９７４は、第一の論理ボリューム９８５と第二の論理ボリューム１９８５とでボリュームペアを形成し、第一の論理ボリューム９８５に格納済みの暗号文を、第二の論理ボリューム１９８５にコピーすることができる。具体的には、第一のコントローラ９７４は、該第一の論理ボリューム９８５の基になっている各第一のストレージ装置９７９の装置Ｅ／Ｄ部９８１に復号化を行わせないで各第一のストレージ装置９７９からデータ（暗号文）を読み出し、キャッシュ領域９７７に一時格納する。そして、第一のコントローラ９７４は、キャッシュ領域９７７上のその暗号文を、コントローラＥ／Ｄ部９７５で暗号化することなく、第二の論理ボリューム１９８５にコピーする。これにより、第一のコントローラ９７４による暗号化のオーバーヘッドを減らすことができる。なお、第一のストレージ装置９７９からの暗号文の読出しや第二の論理ボリューム１９８５への該暗号文の格納は、第二のコントローラ１９７４が主体になって実行しても良い。
【００３１】
以上が、第一の実施形態の概要である。なお、前述したＥ／Ｄ部９７５、９８１は、暗号化を行う部分と復号化を行う部分が物理的に分離していても良い。Ｅ／Ｄ部９７５、９８１は、ハードウェア（例えばＬＳＩ（Large Scale Integration）等の回路）、コンピュータプログラム、又はそれらの組み合わせで実現したエンジンとすることができる。
【００３２】
以下、第一の実施形態について詳細に説明する。なお、以下の説明では、Ｅ／Ｄ部は、ハードウェアであるとする。また、以下の説明では、第一のストレージ装置も第二のストレージ装置も、ハードディスクドライブ（以下、ＨＤＤ）とし、それ故、ストレージ媒体は、ハードディスクとする。しかし、いずれのストレージ装置も、ＨＤＤに限らず、他種のストレージ装置、例えば、ＤＶＤ（Digital Versatile Disks）ドライブ、磁気テープドライブ、或いはフラッシュメモリデバイスなどを採用することができる。そのため、ストレージ媒体としても、ハードディスクに限らず、他種のストレージ媒体、例えば、ＤＶＤ、磁気テープ或いはフラッシュメモリなどを採用することができる。
【００３３】
図１は、本発明の第一実施形態に係る計算機システムの物理的な構成例を示す。
【００３４】
複数のＦＣ（Fibre Channel）スイッチ５、５´によりＳＡＮ（Storage Area Network）が構築されている。ＦＣスイッチ５に、複数（又は一つ）のホスト計算機（以下、ホスト）４と、ストレージサブシステム１のホストアダプタ１１と、ＦＣスイッチ５´とが接続されている。ＦＣスイッチ５´に、ストレージサブシステム１の外部アダプタ１２と、セカンダリストレージサブシステム３と、外部ストレージサブシステム２とが接続されている。セカンダリストレージサブシステム３及び外部ストレージサブシステム２は、それぞれ、第二のストレージサブシステム１９７３の一種である。
【００３５】
ストレージサブシステム１は、例えば、アレイ状に配列された多数のＨＤＤ１６を備えるＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）システムとすることができる。但し、これに限らず、ストレージサブシステム１を、通信ネットワークを構成するスイッチ、例えば、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成することもできる。
【００３６】
ストレージサブシステム１は、複数のＨＤＤ１６に接続されたコントローラ９７４を有する。コントローラ９７４の機能が、ＦＣスイッチ５に搭載され、それにより、ＦＣスイッチ５と複数のＨＤＤ１６の組み合わせによりストレージサブシステム１が実現されても良い。コントローラ９７４は、例えば、複数のチャネルアダプタ（以下、ＣＨＡ）１１、１２と、複数のディスクアダプタ（以下、ＤＫＡ）１３と、キャッシュ／制御メモリ１４と、内部スイッチ１５とを備えている。
【００３７】
ＣＨＡ１１、１２は、外部の装置（例えばホスト計算機或いは他のストレージサブシステム）と通信可能に接続される一又は複数のＩ／Ｆ（例えば、通信ポート或いは通信ポートを備えた通信制御回路）１１３、１２３を有し、外部の装置との間のデータ通信を行うものである。本実施形態では、ＣＨＡ１１は、ホスト計算機１４と通信するアダプタということで、「ホストアダプタ」と呼ぶ。ＣＨＡ１２は、外部ストレージサブシステム２やセカンダリストレージサブシステム３等の外部に存在するストレージサブシステムと通信するアダプタということで、「外部アダプタ」と呼ぶ。ホストアダプタ１１や外部アダプタ１２は、ＣＰＵ１１１、１２１やメモリ１１２、１２２等を備えたマイクロコンピュータシステム（例えば回路基盤）として構成されている。ホストアダプタ１１及び外部アダプタ１２は、一体になっていてもよい。
【００３８】
外部アダプタ１２のＩ／Ｆ１２３には、この外部アダプタ１２に入力されたデータの暗号化及び復号化を行うコントローラＥ／Ｄ部１２４が設けられる。コントローラＥ／Ｄ部１２４は、例えば、ストレージサブシステム１の内部（例えば内部スイッチ１５）から入力されたデータを暗号化し、ストレージサブシステム１の外部（例えばＦＣスイッチ５´）から入力されたデータを復号化するように構成されている。
【００３９】
ホストアダプタ１１も、外部アダプタ１２と同じハードウェア構成であっても良い。その際、ホストアダプタ１１に、該ホストアダプタ１１に入出力されるデータを暗号化／復号化しないような設定をしておく（例えば、メモリ１１２或いはコントローラＥ／Ｄ部に所定のフラグをセットする）ことで、ホストアダプタ１１の該コントローラＥ／Ｄ部に、該ホストアダプタ１１に入出力されるデータを暗号化及び復号化しないようにすることができる。
【００４０】
ＤＫＡ１３は、各ＨＤＤ１６に接続するための通信ポート（例えばＦＣポート）１３３を有し、その通信ポート１３３を介して、ＨＤＤ１６と通信することができる。ＤＫＡ１３は、ＣＰＵ１３１やメモリ１３２等を備えたマイクロコンピュータシステム（例えば回路基盤）として構成されている。ＤＫＡ２２は、ＣＨＡ１１、１２からキャッシュ／制御メモリ１４のキャッシュ領域に書かれたデータをＨＤＤ１６に書込んだり、ＨＤＤ１６から読み出したデータをキャッシュ領域に書込んだりすることができる。
【００４１】
キャッシュ／制御メモリ１４は、例えば揮発性又は不揮発性のメモリである。キャッシュ／制御メモリ１４は、キャッシュ領域と制御領域とを有したメモリである。キャッシュ領域を有したメモリと制御領域を有したメモリとに分離していても良い。キャッシュ領域には、外部の装置（例えばホスト４や外部ストレージサブシステム２など）から受信したデータや、ＨＤＤ１６から読出されたデータが一時的に格納される。制御領域には、ストレージサブシステム１での制御に関する情報（以下、制御情報）が格納される。制御情報には、後述する各種テーブルがある。
【００４２】
内部スイッチ１５は、例えばクロスバスイッチであり、ＣＨＡ１１，１２、ＤＫＡ１３、キャッシュ／制御メモリ１４を相互に接続させる。内部スイッチ１５に代えて、バスなどの他種の接続部が採用されても良い。
【００４３】
内部スイッチ１５には、例えば管理端末６が接続される。管理端末６は、ストレージサブシステム１を管理するための計算機である。管理端末６は、例えば、キャッシュ／制御メモリ１４の制御領域に、後述する各種テーブルを格納することができる。なお、管理端末６が行う機能は、ホスト４に搭載されても良い。すなわち、ホスト４から、後述する各種テーブルを格納しても良い。
【００４４】
以上が、本発明の第一実施形態に係る計算機システムの物理的な構成例の説明である。これは、例であり、この計算機システムの構成に限定する必要は無い。例えば、コントローラ９７４は、もっと簡易な構成、例えば、一つの回路基盤にＣＰＵとメモリを備えた構成となっていても良い。
【００４５】
図２は、本発明の第一実施形態に係る計算機システムの論理的な構成例を示す。
【００４６】
ホストアダプタ１１には、ＣＰＵ１１１に実行されるコンピュータプログラムとして、例えば、コマンド処理部９０１とリモートコピー処理部９０２とがある。外部アダプタ１２には、ＣＰＵ１２１に実行されるコンピュータプログラムとして、例えば、外部Ｉ／Ｏ処理部９０３がある。ＤＫＡ１３には、ＣＰＩ１３１に実行されるコンピュータプログラムとして、例えば、論理物理変換部９１１とディスクＩ／Ｏ処理部９１３とがある。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。各コンピュータプログラムの動作については後に詳述する。
【００４７】
図３Ａは、ＨＤＤ１６の構成例を示す。
【００４８】
ＨＤＤ１６は、ハードディスク９２７と、該ハードディスク９２７に対するデータの読み書きを制御するＨＤＤコントローラ９２５とを備える。ＨＤＤコントローラ９２５には、例えば、ハードディスク９２７に対するデータの読み書きを制御するＩ／Ｏ処理部９２３に加えて、装置Ｅ／Ｄ部９２１が備えられている。この実施形態では、Ｉ／Ｏ処理部９２３は、ＨＤＤコントローラ９２５上の図示しないＣＰＵによって実行されるコンピュータプログラムとすることができる。装置Ｅ／Ｄ部９２１は、内部に記憶域（図示せず）を有しており、該記憶域に、図３Ｂに例示する鍵管理テーブル１６０が記憶される。
【００４９】
図３Ｂは、鍵管理テーブル１６０の構成例を示す。
【００５０】
鍵管理テーブル１６０は、この鍵管理テーブル１６０を備えるＨＤＤ１６のハードディスク９２７における各物理アドレス範囲（例えば論理ブロックアドレス（ＬＢＡ）範囲）と、各物理アドレス範囲に対応した暗号鍵との対応関係を管理するためのテーブルである。具体的には、このテーブル１６０には、インデックス番号が書かれるカラム１６１と、電子的な情報である暗号鍵が格納されるカラム１６２と、物理アドレス範囲の先頭アドレスが書かれるカラム１６３と、物理アドレス範囲の終端アドレスがカラム１６４とがある。
【００５１】
装置Ｅ／Ｄ部９２１は、内部の記憶域に設定されているこの鍵管理テーブル１６０から、ハードディスク９２７のアクセス先場所を含む物理アドレス範囲に対応した暗号鍵を特定することができる。装置Ｅ／Ｄ部９２１は、そのアクセス先場所に書かれるデータを、特定された暗号鍵で暗号化したり、そのアクセス先場所から読み出された暗号化済みデータを、特定された暗号鍵で復号化したりすることができる。
【００５２】
図４は、複数のＨＤＤ１６と論理ボリュームとの関係性の一例を示す図である。
【００５３】
複数（例えば４台）のＨＤＤ１６−１、１６−２、１６−３及び１６−４により一つのＲＡＩＤグループが構成される。この例では、３つのデータが３つのＨＤＤ１６に格納され、それら３つのデータを基に生成されたパリティデータが、他の１つのＨＤＤ１６に格納される。
【００５４】
このＲＡＩＤグループにより提供される記憶空間（各ＨＤＤ１６の記憶空間の集合）を、本実施形態では、Virtual Deviceを略して「ＶＤＥＶ」と呼ぶ。このＶＤＥＶを区切ることにより得られた複数のＶＤＥＶ部分の各々が、本実施形態で言う論理ボリュームである。論理ボリュームは、ホスト４から指定され、ストレージサブシステム１内部でも識別される。そこで、以下、ホスト４から指定される論理ボリュームを、「ＬＵ」（Logical Unit）と称し、ストレージサブシステム１内部で識別される論理ボリュームを、「ＬＤＥＶ」（Logical Device）と呼ぶ場合がある。この図の例では、１つのＶＤＥＶから３つのＬＤＥＶが形成されているが、ＬＤＥＶの数は、それより多くても少なくても良い（例えば、１つのＶＤＥＶに１つのＬＤＥＶでも良い）。
【００５５】
一つのＬＤＥＶが、４つのＨＤＤ１６−１〜１６−４のそれぞれ同じ物理アドレス範囲にある４つの記憶空間部分により構成されている。このため、例えば、ＬＤＥＶ毎に１つの暗号鍵が対応付けられる場合、４つのＨＤＤ１６−１〜１６−４の各々の鍵管理テーブル１６０には、ＬＤＥＶに対応した物理アドレス範囲と、該ＬＤＥＶに対応した暗号鍵とが設定される。この図４の例では、３つのＬＤＥＶがあるので、各鍵管理テーブル１６０には、物理アドレス範囲及び暗号鍵のセットが３つ登録される。一つのＬＤＥＶに複数の暗号鍵が対応付けられる場合には、そのセットの数は３よりも多くなる。
【００５６】
本実施形態では、データの書込み先及び読出し元が、ストレージサブシステム１の外になる場合として、外部接続技術による外部接続で外部ストレージサブシステム２になる場合と、リモートコピー技術によるリモートコピーでセカンダリストレージサブシステム３になる場合とがある。
【００５７】
本実施形態で言う「外部接続技術」とは、コントローラ９７４が、外部ストレージサブシステム２の有する記憶資源をストレージサブシステム１の記憶資源としてホスト４に提供する技術である。以下に説明する外部接続技術は、一例であり、他種の外部接続技術、例えば、特開２００５−１０７６４５号公報（ＵＳ出願番号１０／７６９８０５号、ＵＳ出願番号１１／４７１５５６号）に開示の技術を援用することができる。
【００５８】
本実施形態で言う「リモートコピー技術」とは、ストレージサブシステム１内の第一の論理ボリュームとセカンダリストレージサブシステム３内の第二の論理ボリュームとでボリュームペアを構成し、第一の論理ボリュームに格納されるデータを第二の論理ボリュームにコピーする技術である。以下に説明するリモートコピー技術も、一例であり、他種のリモートコピー技術が採用されても良い。
【００５９】
以下、図５〜図９を参照して、キャッシュ／制御メモリ１４に格納される制御情報に含まれる種々のテーブルを説明する。
【００６０】
図５は、ＲＡＩＤ構成テーブルの構成例を示す。
【００６１】
ＲＡＩＤ構成テーブル４００は、各ＶＤＥＶ毎のＲＡＩＤ構成を管理するためのテーブルである。具体的には、例えば、このテーブル４００には、ＶＤＥＶの識別番号が書かれるカラム４０１と、ＨＤＤの識別番号が書かれるカラム４０２と、ＲＡＩＤレベルが書かれるカラム４０３と、ストライプサイズが書かれるカラム４０４とがある。すなわち、このテーブル４００には、各ＶＤＥＶ毎に、ＶＤＥＶの識別番号と、該ＶＤＥＶを構成する複数のＨＤＤの識別番号と、該ＶＤＥＶのＲＡＩＤレベルと、ストライプサイズとが書かれる。
【００６２】
図６は、ＶＤＥＶ構成テーブルの構成例を示す。
【００６３】
ＶＤＥＶ構成テーブル５００は、ＶＤＥＶの構成を管理するためのテーブルである。具体的には、例えば、このテーブル５００には、ＶＤＥＶの識別番号が書かれるカラム５０１と、ＬＤＥＶの識別番号が書かれるカラム５０２と、ＬＤＥＶのＶＤＥＶにおける論理アドレス範囲の先頭アドレスが書かれるカラム５０３と、ＬＤＥＶのＶＤＥＶにおける論理アドレス範囲の終端アドレスが書かれるカラム５０４とがある。すなわち、このテーブル５００には、どのＶＤＥＶのどの論理アドレス範囲にどんな識別番号のＬＤＥＶが存在するかが書かれる。
【００６４】
図７は、ＬＵ構成テーブルの構成例を示す。
【００６５】
ＬＵ構成テーブル６００は、各ＬＵの構成を管理するためのテーブルである。具体的には、例えば、このテーブル６００には、ＬＤＥＶの識別番号が書かれるカラム６０１と、ＷＷＮ（World Wide Name）が書かれるカラム６０２と、ＬＵＮ（Logical Unit Number）が書かれるカラム６０３と、ＬＤＥＶの記憶容量が書かれるカラム６０４と、暗号鍵が書かれるカラム６０５とがある。すなわち、このテーブル６００には、各ＬＵ毎に、ＬＤＥＶの識別番号と、該ＬＤＥＶに対応付けられたＷＷＮ及びＬＵＮと、そのＬＤＥＶの記憶容量と、そのＬＤＥＶに対応付けられている暗号鍵とが書かれる。
【００６６】
この実施形態では、前述したように、ホスト４から指定される論理ボリュームを「ＬＵ」と言うが、具体的には、例えば、Fibre ChannelプロトコルでのＷＷＮ及びＬＵＮが対応付けられた論理ボリュームをＬＵと言う。なお、例えば、メインフレームでは、ＷＷＮ及びＬＵＮのカラム６０２及び６０３は設けられなくても良い。
【００６７】
図８Ａは、ポート構成テーブルの構成例を示す。
【００６８】
ポート構成テーブル４５０は、各Ｉ／Ｆ１１３、１２３の通信ポートの構成を管理するためのテーブルである。具体的には、例えば、このテーブル４５０には、通信ポートの識別子（例えばＷＷＮ）が書かれるカラム４５１と、通信ポートのステータスが書かれるカラム４５２とがある。ステータス"TARGET"とは、ホストアダプタ１１のＩ／Ｆ１１３にある通信ポートを表し、ステータス"EXTERNAL"とは、外部アダプタ１２のＩ／Ｆ１２３にある通信ポートを表す。一つのアダプタ１１、１２に、Ｉ／Ｆ１１３、１２３は、複数個存在しても良い。また、一つのＩ／Ｆ１１３、１２３に、通信ポートは複数個存在しても良い。
【００６９】
また、もし、ホストアダプタ１１のＩ／Ｆ１１３にコントローラＥ／Ｄ部がある場合には、そのＩ／Ｆ１１３の通信ポートのステータスが"TARGET"になっているならば、該コントローラＥ／Ｄ部に暗号化及び復号化を実行させないようにすることができる。例えば、該コントローラＥ／Ｄ部の記憶域に、暗号化及び復号化の実行を禁止するためのフラグを設定しておくことで、該コントローラＥ／Ｄ部に暗号化及び復号化を実行させないようにすることができる。
【００７０】
図８Ｂは、ＥＤＥＶ情報テーブルの構成例を示す。
【００７１】
ＥＤＥＶ情報テーブル２５０は、各ＥＤＥＶに関する情報を管理するためのテーブルである。具体的には、例えば、このテーブル２５０には、ＥＤＥＶの識別番号が書かれるカラム２５１と、ＥＤＥＶに対応付けられたＷＷＮ及びＬＵＮがそれぞれ書かれるカラム２５２及び２５３とがある。
【００７２】
ここで、ＥＤＥＶとは、External Deviceの略であり、外部ストレージサブシステム２に存在する一又は複数のＨＤＤにより提供される記憶空間である。具体的には、例えば、ＥＤＥＶは、外部ストレージサブシステム２に存在するＶＤＥＶのことである。ＥＤＥＶは、本実施形態では、ＷＷＮ及びＬＵＮが対応付けられているため、ストレージサブシステム１においては、ＨＤＤ１６を基に用意されたものではない仮想的なＬＵである。
【００７３】
図９は、ＥＤＥＶ構成テーブルの構成例を示す。
【００７４】
ＥＤＥＶ構成テーブル６５０は、ＥＤＥＶの構成を管理するためのテーブルである。具体的には、例えば、このテーブル６５０には、ＥＤＥＶの識別番号が書かれるカラム６５１と、ＬＤＥＶの識別番号が書かれるカラム６５２と、ＬＤＥＶのＥＤＥＶにおける論理アドレス範囲の先頭アドレスが書かれるカラム６５３と、ＬＤＥＶのＥＤＥＶにおける論理アドレス範囲の終端アドレスが書かれるカラム６５４とがある。すなわち、このテーブル６５０には、どのＥＤＥＶのどの論理アドレス範囲にどんな識別番号のＬＤＥＶが存在するかが書かれる。以下の説明では、ＥＤＥＶ内のＬＤＥＶとＶＤＥＶ内のＬＤＥＶとを区別するために、ＥＤＥＶ内のＬＤＥＶを「外部ＬＤＥＶ」と呼び、ＶＤＥＶ内のＬＤＥＶを「内部ＬＤＥＶ」と呼ぶことがある。
【００７５】
外部ＬＤＥＶの識別番号と、内部ＬＤＥＶの識別番号は、それぞれ異なる番号が使用される。コマンド処理部９０１は、ＨＤＥＶ構成テーブル５００及びＥＤＥＶ構成テーブル６５０を参照することで、内部ＬＤＥＶ及び外部ＬＤＥＶを識別することができる。
【００７６】
以上が、各種テーブルについての説明である。以下、本実施形態で行われる種々の処理の流れを説明する。
【００７７】
図１０は、ＬＤＥＶ作成処理の流れの一例を示す。なお、図では、番号を「＃」という記号で略記することがある（これは他の図についても同様）。
【００７８】
管理端末６の記憶資源は、ストレージサブシステム１や外部ストレージサブシステム２について種々の構成に関する情報（例えば、未使用のＨＤＤの番号、サブシステムにおけるＨＤＤ全体の空き記憶容量、ＶＤＥＶやＥＤＥＶの空き容量など）が記憶されている。
【００７９】
ステップ１００１では、管理端末６のＣＰＵで実行される所定のコンピュータプログラム（以下、管理プログラム）が、未使用領域（空き容量）のあるＶＤＥＶ及びＥＤＥＶを、管理端末６のディスプレイ画面に表示する。或いは、管理プログラムは、ＨＤＤ全体の空き空き記憶容量以下の容量を有したＶＤＥＶ及び／又はＥＤＥＶの新規構築の指示を管理者から受け付けても良い。
【００８０】
ステップ１００２では、管理プログラムは、ＶＤＥＶ或いはＥＤＥＶの選択と、容量、ＷＷＮ及びＬＵＮの指定とを受け付ける。
【００８１】
ステップ１００３では、新規に作成するＬＤＥＶ（以下、この図１０の説明において「対象ＬＤＥＶ」と言う）のエントリがＬＵ構成テーブル６００に作成される。具体的には、例えば、管理プログラムが、選択されたＶＤＥＶ或いはＥＤＥＶの識別番号、容量、ＷＷＮ及びＬＵＮと共に設定命令を送信する。ストレージサブシステム１におけるＣＰＵで実行される所定のコンピュータプログラム（以下、便宜上、「テーブル構築プログラム」と言う）が、該設定命令に従って、容量、ＷＷＮ及びＬＵＮを、ＬＵ構成テーブル６００に設定する。容量、ＷＷＮ及びＬＵＮが設定されたエントリを含む行における、ＬＤＥＶ番号（ＬＤＥＶの識別番号）に対応したセルには、例えば、管理者により或いは自動で、管理者所望の或いは未使用のＬＤＥＶ番号が書かれる。ここで書かれるＬＤＥＶ番号は、内部ＬＤＥＶ或いは外部ＬＤＥＶのＬＤＥＶ番号である。対象ＬＤＥＶが外部ＬＤＥＶの場合、ＷＷＮ及びＬＵＮは、該外部ＬＤＥＶを含むＥＤＥＶに対応付けられたＷＷＮ及びＬＵＮとすることができる。
【００８２】
ステップ１００４では、管理プログラム及び／又はテーブル構築プログラムが、対象ＬＤＥＶについて、暗号化を選択するか否かを判断する（例えば、対象ＬＤＥＶについて暗号化を選択するか否かを管理者から受け付ける）。暗号化を選択の場合、ステップ１００５にすすみ、非暗号化を選択の場合、終了となる。
【００８３】
ステップ１００５では、暗号鍵が指定される。ここで指定される暗号鍵は、管理プログラムが管理者から受け付けた暗号鍵であっても良いし、テーブル構築プログラムが所定の計算を行うことで決定した暗号鍵であっても良い。
【００８４】
ステップ１００６では、テーブル構築プログラムが、管理者に選択されたものがＶＤＥＶであるかＥＤＥＶであるかを判断する。これは、例えば、管理プログラムからの上記通知から、選択されたＶＤＥＶ或いはＥＤＥＶの識別番号を取得し、該識別番号が、ＶＤＥＶ構成テーブル５００とＥＤＥＶ構成テーブル６５０のどちらにあるのかを判断することで、行うことができる。ＶＤＥＶと判断した場合、ステップ１００７にすすみ、ＥＤＥＶと判断した場合、ステップ１００８にすすむ。
【００８５】
ステップ１００７では、テーブル構築プログラムが、選択されたＶＤＥＶの空き領域と対象ＬＤＥＶの容量とを基に、該ＶＤＥＶにおける対象ＬＤＥＶの論理アドレス範囲（例えば、ＶＤＥＶにおける先頭ＬＢＡと終端ＬＢＡ）を決定する。テーブル構築プログラムが、該ＶＤＥＶを構成する各ＨＤＤ１６（ＶＤＥＶ構成テーブル５００から特定されるＨＤＤ１６）に接続されたＤＫＡ１３のディスクＩ／Ｏ処理部９１３に、上記決定した論理アドレス範囲及び上記指定された暗号鍵を通知する。ディスクＩ／Ｏ処理部９１３が、論理物理変換部９１１に、通知された論理アドレス範囲を各ＨＤＤ１６の物理アドレス範囲に変換させる。ディスクＩ／Ｏ制御部９１３は、それにより得られた物理アドレス範囲（暗号化範囲）と、上記通知された暗号鍵と、インデックス番号（例えばディスクＩ／Ｏ処理部９１３によって決定されたインデックス番号）とを、各ＨＤＤ１６に送信する。それにより、各ＨＤＤ１６のＩ／Ｏ処理部９２３が、受信したインデックス番号、物理アドレス範囲及び暗号鍵を、鍵管理テーブル１６０に登録する。なお、ディスクＩ／Ｏ制御部９１３は、物理アドレス範囲及びインデックス番号を、ＤＫＡ１３のメモリ１３２に記憶しておき、ＨＤＤ１６にデータのリード要求を送信する場合には、読出し元の物理アドレスを含む物理アドレス範囲に対応したインデックス番号を指定することで、該指定したインデックス番号に対応する暗号鍵を用いた復号化を実行させても良い。また、「暗号化範囲」とは、ＨＤＤ１６のハードディスク９２７全体の物理アドレス範囲うち、暗号化する必要のある物理アドレス範囲、つまり、鍵管理テーブル１６０に設定されている物理アドレス範囲のことである。
【００８６】
ステップ１００８では、テーブル構築プログラムが、ステップ１００５で指定された暗号鍵を、ＬＵ構成テーブル６００における、対象ＬＤＥＶに対応したセルに登録する。
【００８７】
図１１は、ホストアダプタ１１がホスト４からＩ／Ｏ要求を受信した場合に実行される処理の流れの一例を示す。
【００８８】
ステップ１１０２では、コマンド処理部９０１が、ホスト４からのＩ／Ｏ要求（ライト要求或いはリード要求）で指定されているＬＵＮ及びＷＷＮに対応したＬＤＥＶ番号を特定する。ＬＵＮ及びＷＷＮが、内部ＬＤＥＶに対応したものであれば、ＨＤＥＶ構成テーブル５００（図６参照）から、ＬＤＥＶ番号を特定することができる。一方、ＬＵＮ及びＷＷＮが、ＥＤＥＶに対応したものであれば、該ＥＤＥＶをＥＤＥＶ情報テーブル２５０（図８Ｂ参照）から特定し、且つ、受信したＩ／Ｏ要求で指定されている、該特定されたＥＤＥＶにおけるＬＢＡを基に、該ＬＢＡを論理アドレス範囲として含む外部ＬＤＥＶのＬＤＥＶ番号を、ＥＤＥＶ構成テーブル６５０（図９参照）から特定することができる。
【００８９】
ステップ１１０３では、コマンド処理部９０１が、特定されたＬＤＥＶ番号に対応するＬＤＥＶが、外部ＬＤＥＶであるか内部ＬＤＥＶであるかを判断する。外部ＬＤＥＶであれば（ステップ１１０３でＹＥＳ）、ステップ１１０４に進み、それにより、外部ＬＤＥＶ Ｉ／Ｏ処理が実行される。一方、内部ＬＤＥＶであれば（ステップ１１０３でＮＯ）、ステップ１１０５に進み、それにより、内部ＬＤＥＶ Ｉ／Ｏ処理が実行される。
【００９０】
図１２は、内部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。これは、内部ＬＤＥＶが、ＲＡＩＤ５のＶＤＥＶに含まれている場合の例である。この図１２の説明では、該内部ＬＤＥＶを「対象内部ＬＤＥＶ」と言い、該ＶＤＥＶに属する各ＨＤＤを「対象ＨＤＤ」と言い、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡから算出される物理アドレス（ＨＤＤでのアドレス）を「対象物理アドレス」と言う。
【００９１】
ステップ１２０１では、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡが対象物理アドレスに変換される。具体的には、例えば、コマンド処理部９０１が、ＤＫＡ１３に、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡを含んだＩ／Ｏ要求を出し、ディスクＩ／Ｏ処理部９１３が、そのＩ／Ｏ要求を受ける。その要求は、キャッシュ／制御メモリ１４の制御領域に書かれても良いし、ＤＫＡ１３に送信されても良い。そのＤＫＡ１３は、各対象ＨＤＤ１６に接続されたＤＫＡ１３である。該ＤＡＫ１３のディスクＩ／Ｏ処理部９１３が、受けたＩ／Ｏ要求中のＬＢＡを対象物理アドレスに変換することを論理物理変換部９１１に実行させる。
【００９２】
ステップ１２０２では、コマンド処理部９０１が、受けたＩ／Ｏ処理が、ライト要求であるかリード要求であるかを判断する。ライト要求である場合には、ステップ１２０３に進み、リード要求である場合には、ステップ１２０６に進む。なお、このステップ１２０２は、ステップ１２０１が終了する前に完了されても良い。
【００９３】
ステップ１２０３では、コマンド処理部９０１が、ホスト４からのライト要求に従う平文（ライト対象データ）を、キャッシュ／制御メモリ１４のキャッシュ領域に格納する。
【００９４】
ステップ１２０４では、ディスクＩ／Ｏ処理部９１３が、対象内部ＬＤＥＶから取得されたデータ及びパリティ（旧データ及び旧パリティ）と、キャッシュ領域上の平文（新規データ）を基に、新規パリティが生成される。
【００９５】
ステップ１２０５では、ディスクＩ／Ｏ処理部９１３が、対象物理アドレスを指定した、新規データ及び新規パリティのライト要求を、各対象ＨＤＤ１６に送信することにより、新規データ及び新規パリティを書込む。
【００９６】
ステップ１２０６では、ディスクＩ／Ｏ処理部９１３が、各対象ＨＤＤ１６に、対象物理アドレスを指定した通常リード要求を送信する。これにより、各対象ＨＤＤ１６から、暗号文が平文に変換されて読み出される。
【００９７】
ステップ１２０７では、ディスクＩ／Ｏ処理部９１３が、読み出されたデータ（平文）を、キャッシュ領域に格納する。
【００９８】
ステップ１２０８では、コマンド処理部９０１が、キャッシュ領域に格納されたデータを、ホスト４（図１１のステップ１１０２で受信したリード要求の送信元）に送信する。
【００９９】
図１３は、外部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。この図１３の説明では、アクセス先となる外部ＬＤＥＶを「対象外部ＬＤＥＶ」と言い、対象外部ＬＤＥＶを含むＥＤＥＶを「対象ＥＤＥＶ」と言い、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡから算出される、対象ＥＤＥＶにおけるアドレスを「対象ＥＤＥＶアドレス」と言う。
【０１００】
ステップ１３０１では、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡが対象ＥＤＥＶアドレスに変換される。具体的には、例えば、コマンド処理部９０１が、ホスト４からのＩ／Ｏ要求で指定されているＬＵＮ、ＷＷＮ及びＬＢＡを基に、対象ＥＤＥＶアドレスとして、外部ストレージサブシステム２に対するＩ／Ｏ要求で指定するＬＵＮ、ＷＷＮ及びＬＢＡを求める。このアドレス変換は、例えば、前述した特開２００５−１０７６４５号公報（ＵＳ出願番号１０／７６９８０５号、ＵＳ出願番号１１／４７１５５６号）に開示の方法で行うことができる。
【０１０１】
ステップ１３０２では、コマンド処理部９０１が、受けたＩ／Ｏ処理が、ライト要求であるかリード要求であるかを判断する。ライト要求である場合には、ステップ１３０３に進み、リード要求である場合には、ステップ１３０６に進む。
【０１０２】
ステップ１３０３では、コマンド処理部９０１が、ホスト４からのライト要求に従う平文（ライト対象データ）を、キャッシュ／制御メモリ１４のキャッシュ領域に格納する。
【０１０３】
ステップ１３０４では、コマンド処理部９０１が、対象外部ＬＤＥＶに対応する暗号鍵をＬＵ構成テーブル６００から特定し、特定した暗号鍵を、外部アダプタ１２のコントローラＥ／Ｄ部１２４に通知する。これにより、コントローラＥ／Ｄ部１２４に、暗号鍵が設定される。
【０１０４】
ステップ１３０５では、キャッシュ領域に格納された平文が、コントローラＥ／Ｄ部１２４によって暗号文にされ、該暗号文が外部ストレージサブシステム２に格納される。具体的には、例えば、コマンド処理部９０１が、対象ＥＤＥＶアドレスと共に、外部ストレージサブシステム２へのライト要求の発行を、外部Ｉ／Ｏ処理部９０３に指示する。外部Ｉ／Ｏ処理部９０３が、キャッシュ領域から平文を読出し、対象ＥＤＥＶアドレスを指定した、読み出した平文のライト要求を発行する。そのライト要求が、コントローラＥ／Ｄ部１２４を通過して外部ストレージサブシステム２に送信される。コントローラＥ／Ｄ部１２４は、例えば、Ｉ／Ｏ要求のデータ部分を暗号化／復号化するように構成されており、それ故、該ライト対象の対象ＥＤＥＶアドレスは暗号化されず、データ部分である平文が暗号化されて、出力される。
【０１０５】
ステップ１３０６では、ステップ１３０４と同じ処理が実行される。
【０１０６】
ステップ１３０７では、外部ストレージサブシステム２からのデータリードが実行される。具体的には、例えば、コマンド処理部９０１が、対象ＥＤＥＶアドレスと共に、外部ストレージサブシステム２へのリード要求の発行を、外部Ｉ／Ｏ処理部９０３に指示する。外部Ｉ／Ｏ処理部９０３が、対象ＥＤＥＶアドレスを指定したリード要求を発行する。そのリード要求に応答して、外部アダプタ１２のＩ／Ｆ１２３が、外部ストレージサブシステム２から暗号文を受信し、コントローラＥ／Ｄ部１２４により、上記設定された暗号鍵を用いた復号化が実行される。それにより、受信した暗号文が平文に変換される。外部Ｉ／Ｏ処理部９０３が、平文を、キャッシュ領域に格納する。
【０１０７】
ステップ１３０８では、コマンド処理部９０１が、キャッシュ領域上のデータ（平文）を、ホスト４に送信する。
【０１０８】
図１４は、ＨＤＤ１６の書込み処理の一例を示す。
【０１０９】
ステップ２０００では、Ｉ／Ｏ処理部９２３が、対象物理アドレス（ＬＢＡ）を指定したライト要求を受け、該ライト要求が、通常ライト要求か、非復号化ライト要求かを判断する。通常ライト要求とは、暗号化してライトすることの要求であり、非暗号化ライト要求とは、暗号化しないでライトすることの要求である。通常ライト要求であるか非暗号化ライト要求であるかは、例えば、ＤＫＡ１３から受信するライト要求(ライトコマンド（ＣＤＢ（Command Descriptor Block）とも呼ばれる）中の特定バイト位置に、非暗号化ライト要求を意味するフラグが設定されているか否かにより、判断することが出来る。この場合には、ディスクＩ／Ｏ処理部９１３は、通常ライト要求を発行する場合には、ライト要求にそのフラグを設定しないで送信し、非暗号化ライト要求を発行する場合には、ライト要求にそのフラグを設定して送信することができる。上記受けたライト要求が、通常ライト要求の場合には、ステップ２００１にすすみ、非暗号化ライト要求の場合には、ステップ２００３に進む。また、通常ライト要求であるか非暗号化ライト要求であるかを判別するための、別の方法として、ライト要求で指定された物理アドレス範囲が、鍵管理テーブル１６０に登録されているか否かにより判定することも可能である。
【０１１０】
ステップ２００１では、Ｉ／Ｏ処理部９２３が、対象物理アドレスを指定したライト要求を受け、対象物理アドレスが暗号化範囲に属するか否かを、鍵管理テーブル１６０（図３Ｂ参照）を参照することにより判断する。対象物理アドレスが暗号化範囲であれば、ステップ２００２にすすみ、対象物理アドレスが暗号化範囲でなければ、ステップ２００３にすすむ。
【０１１１】
ステップ２００２では、Ｉ／Ｏ処理部９２３が、データ（平文）を装置Ｅ／Ｄ部９２１を通じてハードディスク９２７に書込む。これにより、平文が装置Ｅ／Ｄ部９２１により暗号文に変換されてハードディスク９２７に書込まれる。
【０１１２】
ステップ２００３では、Ｉ／Ｏ処理部９２３が、データを装置Ｅ／Ｄ部９２１に暗号化させることなくハードディスク９２７に書込む。暗号化させない方法としては、例えば、装置Ｅ／Ｄ部９２１に暗号化不要を表すフラグを設定した後にデータを装置Ｅ／Ｄ部９２１を経由させる方法や、装置Ｅ／Ｄ部９２１を経由しないデータ送信ラインを選択し該データ送信ラインを通じてデータをハードディスク９２７に書込む方法がある。これは、復号化させない方法にも適用することができる。
【０１１３】
図１５は、ＨＤＤ１６の読出し処理の一例を示す。
【０１１４】
ステップ２１０１では、Ｉ／Ｏ処理部９２３が、対象物理アドレスを指定したリード要求を受け、該リード要求が、通常リード要求か、非復号化リード要求かを判断する。通常リード要求とは、復号化してリードすることの要求であり、非復号化リード要求とは、復号化しないでリードすることの要求である。通常リード要求であるか非復号化リード要求であるかは、例えば、リード要求中の所定位置に、非復号化リード要求を意味するフラグが設定されているか否かにより、判断することができる。この場合には、ディスクＩ／Ｏ処理部９１３は、通常リード要求を発行する場合には、リード要求にそのフラグを設定しないで送信し、非復号化リード要求を発行する場合には、リード要求にそのフラグを設定して送信することができる。上記受けたリード要求が、通常リード要求の場合には、ステップ２１０２にすすみ、非復号化リード要求の場合には、ステップ２１０４に進む。
【０１１５】
ステップ２１０２では、Ｉ／Ｏ処理部９２３が、通常リード要求で指定されている対象物理アドレス（ＬＢＡ）が暗号化範囲に属するか否かを、鍵管理テーブル１６０（図３Ｂ参照）を参照することにより判断する。対象物理アドレスが暗号化範囲であれば、ステップ２１０３にすすみ、対象物理アドレスが暗号化範囲でなければ、ステップ２１０４にすすむ。
【０１１６】
ステップ２１０３では、Ｉ／Ｏ処理部９２３が、データを装置Ｅ／Ｄ部９２１を通じてハードディスク９２７から読み出す。これにより、暗号文が装置Ｅ／Ｄ部９２１により平文に変換されたものが、Ｉ／Ｏ処理部９２３に取得される。Ｉ／Ｏ処理部９２３は、その取得された平文を、ディスクＩ／Ｏ処理部９１３に送信する。
【０１１７】
ステップ２１０４では、Ｉ／Ｏ処理部９２３が、データを装置Ｅ／Ｄ部９２１に復号化させることなくハードディスク９２７から読み出す。
【０１１８】
図１６は、ペア構成テーブルの構成例を示す。
【０１１９】
ペア構成テーブル７００は、キャッシュ／制御メモリ１４に格納される制御情報に含まれるものであり、ボリュームペアの構成を管理するためのテーブルである。ペア構成テーブル７００には、プライマリＬＤＥＶのＬＤＥＶ番号が書かれるカラム７０１と、セカンダリＬＤＥＶのＬＤＥＶ番号が書かれるカラム７０２と、コピーステータスが書かれるカラム７０３と、セカンダリＬＤＥＶの暗号鍵が書かれるカラム７０４とがある。すなわち、このテーブル７００には、各ボリュームペア毎に、コピー元のＬＤＥＶであるプライマリＬＤＥＶのＬＤＥＶ番号と、コピー先のＬＤＥＶであるセカンダリＬＤＥＶのＬＤＥＶ番号と、コピーステータスと、該セカンダリＬＤＥＶの暗号鍵とが書かれる。
【０１２０】
コピーステータスは、プライマリＬＤＥＶとセカンダリＬＤＥＶとがミラー状態になっているか否かを示す。ミラー状態とは、プライマリＬＤＥＶ内の全データがセカンダリＬＤＥＶにコピーされている、すなわち、プライマリＬＤＥＶとセカンダリＬＤＥＶが同じになっている状態である。コピーステータス"PAIR"は、ミラー状態を意味し、コピーステータス"COPY"は、ミラー状態ではなく、プライマリＬＤＥＶ内の全てのデータがコピーされセカンダリＬＤＥＶにされきっていない状態を意味する。
【０１２１】
本実施形態では、例えば、テーブル構築プログラムが、管理者からセカンダリＬＤＥＶも暗号化したいとの指定を受けた場合には、該セカンダリＬＤＥＶとボリュームペアを構成するプライマリＬＤＥＶに対応した暗号鍵をＬＵ管理テーブル６００から取得し、取得した暗号鍵を、ペア構成テーブル７００のカラム７０４における、該セカンダリＬＤＥＶに対応したセル（領域）に登録することができる。その際、もし、プライマリＬＤＥＶに対応した暗号鍵が無い場合には、テーブル構築プログラムが、暗号鍵指定処理（例えば図１０のステップ１００５）を実行し、それにより得られた暗号鍵を、上記セルに登録しても良い。
【０１２２】
図１７は、ペア形成処理の流れの一例を示す。
【０１２３】
ステップ３００１では、ストレージサブシステム１のＣＰＵで実行されるテーブル構築プログラムが、新規に形成するボリュームペア（以下、対象ボリューム）に関する情報を、管理端末６の管理プログラムから受ける。具体的には、例えば、管理プログラムが、管理端末６の記憶資源に記憶されている情報を基に、ストレージサブシステム１における複数のＬＤＥＶと、セカンダリストレージサブシステム３における複数のＬＤＥＶとを選択可能に表示することで、プライマリＬＤＥＶとセカンダリＬＤＥＶの選択を受け、該選択された各ＬＤＥＶに関する情報（例えばＬＤＥＶ番号）を、テーブル構築プログラムに通知する。
【０１２４】
ステップ３００２では、初期コピー処理が開始される。この所期コピー処理は、例えば、テーブル構築プログラムがリモートコピー処理部９０２に初期コピー処理開始を指示することを契機に開始される。初期コピー処理については、図１８を参照して後に詳述する。
【０１２５】
ステップ３００３では、テーブル構築プログラムが、初期コピー処理の開始を契機に、対象ボリュームペアのコピーステータス（ペア構成テーブル７００におけるエントリ）を"COPY"にする。
【０１２６】
ステップ３００４では、テーブル構築プログラムが、初期コピー処理が完了したか否かを判断する。完了していれば、ステップ３００５にすすみ、完了していなければ、再びステップ３００４を実行する。
【０１２７】
ステップ３００５では、テーブル構築プログラムが、初期コピー処理の開始を契機に、対象ボリュームペアのコピーステータスを"PAIR"にする。
【０１２８】
図１８は、初期コピー処理の流れの一例を示す。なお、以下、この図１８の説明において、プライマリＬＤＥＶを含むＶＤＥＶに対応した各ＨＤＤを「対象ＨＤＤ」と言う。
【０１２９】
この初期コピー処理では、プライマリＬＤＥＶの先頭アドレスから終端アドレスまでシーケンシャルにコピーが実行される。
【０１３０】
具体的には、ステップ３１０１において、リモートコピー処理部９０２が、ディスクＩ／Ｏ処理部９１３に、プライマリＬＤＥＶのアドレスＡ（例えば初期コピー処理開始直後は先頭アドレス）を物理アドレス（対象ＨＤＤにおけるアドレス）に変換させる。
【０１３１】
ステップ３１０２では、リモートコピー処理部９０２が、コピー先に暗号文と平文のどちらを送信するのかを判断する。これは、例えば、ペア構成テーブル７００において、セカンダリＬＤＥＶに暗号鍵が対応付けられているか否かにより判断することができる。なお、一度ペア構成テーブル７００を参照してこの判断を行ったならば、次回以降のこのステップ３１０２では、いちいちそのテーブル７００を参照しなくて良い。平文を送信する場合には、ステップ３１１１にすすみ、暗号文を送信する場合には、ステップ３１０３に進む。
【０１３２】
ステップ３１１１では、リモートコピー処理部９０２が、ディスクＩ／Ｏ処理部９１３に、ステップ３１０１で得られた変換後の物理アドレスを指定した通常リード要求を、各対象ＨＤＤ１６に送信させる。これにより、各対象ＨＤＤ１６から平文（格納されている暗号文が復号されて読み出されたもの）が読み出される。
【０１３３】
一方、ステップ３１０３では、リモートコピー処理部９０２が、ディスクＩ／Ｏ制御部９１３に、ステップ３１０１で得られた変換後の物理アドレスを指定した非復号化リード要求を、各対象ＨＤＤ１６に送信させる。これにより、各対象ＨＤＤ１６から暗号文（格納されている暗号文が復号化されることなくそのまま読み出されたもの）が読み出される。
【０１３４】
ステップ３１０４では、リモートコピー処理部９０２が、リードデータ（ステップ３１０３の後であれば暗号文、ステップ３１１１の後であれば平文）を、セカンダリストレージサブシステム３に送信する。その送信では、例えば、セカンダリＬＤＥＶのＬＵＮ及びＷＷＮとＬＢＡとを指定した、リードデータのライト要求を送信することができる。
【０１３５】
ステップ３１０５では、リモートコピー処理部９０２が、次の読出し元とする、プライマリＬＤＥＶのアドレスＡを１増やす。
【０１３６】
ステップ３１０６では、リモートコピー処理部９０２が、更新後のアドレスＡが、プライマリＬＤＥＶの終端であるか否かを判断する。終端であれば、終了となり、終端でなければ、ステップ３１０１に戻る。
【０１３７】
図１９は、更新コピー処理の流れの一例を示す。なお、この図１９は、前述した種々の処理で説明済みの事項については、図示を省略している。
【０１３８】
更新コピー処理とは、ボリュームペアのコピーステータスが"PAIR"或いは"COPY"であるプライマリＬＤＥＶに対し、新たにデータが格納される場合に、実行される処理である。
【０１３９】
例えば、コマンド処理部９０１が、ホスト４から受けた平文（ライト対象データ）をキャッシュ領域に格納したときに、該平文がＨＤＤ１６に送信されていなくても、ホスト４に、Ｉ／Ｏ完了を通知することができる（ステップ３５００）。
【０１４０】
ステップ３５０１では、コマンド処理部９０１が、特定されたＬＤＥＶ番号のＬＤＥＶが、コピー対象であるか否かを判断する。具体的には、例えば、特定されたＬＤＥＶ番号を用いて、ペア構成テーブル７００を参照し、該ＬＤＥＶ番号に対応したＬＤＥＶが、プライマリＬＤＥＶのＬＤＥＶ番号であって、コピーステータスが"PAIR"或いは"COPY"であるか否かを判断する。コピー対象であるならば、コマンド処理部９０１が、コピー指示をリモートコピー処理部９０２に出してステップ３５０２に進み、コピー対象でないならば、更新コピー処理は不要のため、この処理は終了となる。
【０１４１】
ステップ３５０３では、リモートコピー処理部９０２が、キャッシュ領域上の平文を二重化することでミラーデータ（平文の複製）を作成し、作成したミラーデータをキャッシュ領域に格納する。
【０１４２】
ステップ３５０４では、リモートコピー処理部９０２が、コピー先のセカンダリＬＤＥＶが暗号化対象か否か（例えば、セカンダリＬＤＥＶに対応した暗号鍵がペア構成テーブル７００に登録されているか否か）を判断する。暗号化対象であれば、ステップ３５０６にすすみ、暗号化対象でなければ、ステップ３５０７にすすむ。
【０１４３】
ステップ３５０６では、ミラーデータの暗号化転送が実行される。具体的には、例えば、リモートコピー処理部９０２が、セカンダリＬＤＥＶに対応した暗号鍵をペア構成テーブル７００から取得し、取得した暗号鍵を、コントローラＥ／Ｄ部１２４に通知する。そして、リモートコピー処理部９０２が、該セカンダリＬＤＥＶのＬＵＮ及びＷＷＮ等を指定した、該ミラーデータのライト要求を、外部アダプタ１２のＩ／Ｆ１２３を通じて、セカンダリストレージサブシステム３に送信する。それにより、該ミラーデータである平文が暗号文に変換されて、セカンダリストレージサブシステム３に送信される。
【０１４４】
一方、ステップ３５０７では、ミラーデータの非暗号化転送が実行される。具体的には、例えば、リモートコピー処理部９０２が、コントローラＥ／Ｄ部１２４に非暗号化を意味するフラグを通知する。そして、リモートコピー処理部９０２が、該セカンダリＬＤＥＶのＬＵＮ及びＷＷＮ等を指定した、該ミラーデータのライト要求を、外部アダプタ１２のＩ／Ｆ１２３を通じて、セカンダリストレージサブシステム３に送信する。それにより、該ミラーデータである平文がコントローラＥ／Ｄ部１２４による暗号化が行われずに、該平文のまま、セカンダリストレージサブシステム３に送信される。
【０１４５】
図２０は、フェイルバック処理の一例を示す。なお、以下、この図２０の説明において、プライマリＬＤＥＶを含むＶＤＥＶに対応した各ＨＤＤを「対象ＨＤＤ」と言う。
【０１４６】
フェイルバック処理とは、セカンダリストレージサブシステム３のセカンダリＬＤＥＶ内のデータを、プライマリＬＤＥＶに戻す処理である。具体的には、例えば、ストレージサブシステム１が災害などでダウンした際、セカンダリストレージサブシステム３で、業務が継続される。その場合、ストレージサブシステム１の復旧処理が完了したならば、セカンダリストレージサブシステム３からストレージサブシステム１にデータをコピーすることで、データの復旧を行うことができる。その際のデータコピー処理が、このフェイルバック処理である（災害などでストレージサブシステム１を交換してフェイルバック処理を行う場合には、管理者がＬＵ構成テーブル６００を再構築することができる）。
【０１４７】
このフェイルバック処理では、例えば、プライマリＬＤＥＶがコピー先とされ、セカンダリＬＤＥＶがコピー元とされて、データコピーが実行される。
【０１４８】
具体的には、例えば、ステップ４００１で、リモートコピー処理部９０２が、ディスクＩ／Ｏ処理部９１３に、プライマリＬＤＥＶのアドレスＡ（例えば開始時点では先頭アドレス）を、物理アドレス（対象ＨＤＤにおけるアドレス）に変換させる。
【０１４９】
ステップ４００２では、リモートコピー処理部９０２が、平文受信モードであるか否かを判断する。平文受信モードとは、平文で受信することを意味する状態であり、セカンダリＬＤＥＶに暗号文が格納されている場合（例えば、セカンダリＬＤＥＶに暗号鍵が対応付けられている場合）には、平文受信モードではないモードとして動作する。
【０１５０】
平文受信モードではない場合、コントローラＥ／Ｄ部１２４による復号化がされることなく、セカンダリＬＤＥＶから暗号文が取得され、キャッシュ領域に格納される。具体的には、例えば、リモートコピー処理部９０２が、復号化不要を意味する値をコントローラＥ／Ｄ部１２４に設定して、セカンダリＬＤＥＶに対するリード要求をセカンダリストレージサブシステム３に送信することで、コントローラＥ／Ｄ部１２４による復号化がされない暗号文が取得され、キャッシュ領域に格納される。この場合、ステップ４００３にすすむ。ステップ４００３では、リモートコピー処理部９０３が、ディスクＩ／Ｏ処理部９１３に、キャッシュ領域上の暗号文の非暗号化ライト要求を各対象ＨＤＤ１６に送信させる。
【０１５１】
一方、平文受信モードの場合、コントローラＥ／Ｄ部１２４による復号化がされることにより、セカンダリＬＤＥＶからの暗号文が変換された平文が取得され、キャッシュ領域に格納される。具体的には、例えば、リモートコピー処理部９０２が、復号化不要を意味する値をコントローラＥ／Ｄ部１２４に設定せず、セカンダリＬＤＥＶに対するリード要求をセカンダリストレージサブシステム３に送信することで、コントローラＥ／Ｄ部１２４によって暗号文が復号化された平文が取得され、キャッシュ領域に格納される。この場合、ステップ４０１１にすすむ。ステップ４０１１では、リモートコピー処理部９０３が、ディスクＩ／Ｏ処理部９１３に、キャッシュ領域上の平文の通常ライト要求を各対象ＨＤＤ１６に送信させる。
【０１５２】
ステップ４００４では、リモートコピー処理部９０２が、次の書込み先とする、プライマリＬＤＥＶのアドレスＡを１増やす。
【０１５３】
ステップ４００５では、リモートコピー処理部９０２が、更新後のアドレスＡが、プライマリＬＤＥＶの終端であるか否かを判断する。終端であれば、ステップ４００４にすすみ、該プライマリＬＤＥＶを含んだボリュームペアのコピーステータスを"PAIR"とし、終端でなければ、ステップ４００１に戻る。
【０１５４】
以上が、第一実施形態の説明である。
【０１５５】
この第一実施形態によれば、ストレージサブシステム１には、装置Ｅ／Ｄ部９２１を有したＨＤＤ１６が搭載される。そして、ホスト４からのライト要求を処理した場合の書込み先が、外部ＬＤＥＶ或いはセカンダリＬＤＥＶ（本実施形態では更新コピー処理）の場合に、コントローラＥ／Ｄ部１２４で平文を暗号化するが、内部ＬＤＥＶの場合には、コントローラＥ／Ｄ部１２４での暗号化を行わず、平文のままＨＤＤ１６に送信する。その場合でも、ＨＤＤ１６に装置Ｅ／Ｄ部９２１があるので、装置Ｅ／Ｄ部９２１に暗号文にされて格納される。これにより、データ保護を実現しつつ、コントローラ９７４の性能劣化を抑えることができる。
【０１５６】
また、この第一実施形態によれば、更新コピー処理では、コントローラＥ／Ｄ部１２４による暗号化が実行されるが、初期コピー処理では、コントローラＥ／Ｄ部１２４にる暗号化を不要とし、ＨＤＤ１６内の暗号文がそのままセカンダリストレージサブシステム３に送信される。このため、データ保護を実現しつつ、初期コピー処理でのコントローラ９７４の性能劣化を抑えることができる。
【０１５７】
＜第二の実施形態＞。
【０１５８】
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する。
【０１５９】
図２１は、本発明の第二実施形態に係る計算機システムの物理的な構成例を示す。
【０１６０】
この図によれば、ストレージサブシステム１の外部に存在するストレージサブシステムとして、Ｅ／Ｄ（暗号化／復号化）部８を有したストレージサブシステム１´がある。ストレージサブシステム１´は、外部ストレージサブシステム２やセカンダリストレージサブシステム３の一種とすることができる。
【０１６１】
この場合、リモートコピー処理部９０２或いはコマンド処理部９０１が、ライト要求或いはリード要求の送信先となる外部のストレージサブシステムが、Ｅ／Ｄ部８を有するか否かを判断することができる。これは、例えば、各種外部のストレージサブシステム毎にＥ／Ｄ部を有するか否かを表すテーブルを用意しておき、リモートコピー処理部９０２或いはコマンド処理部９０１が、そのテーブルを参照することにより、判別することができる。リモートコピー処理部９０２或いはコマンド処理部９０１が、送信先となる外部のストレージサブシステムが、Ｅ／Ｄ部８を有すると判断した場合には、コントローラＥ／Ｄ部１２４による暗号化をさせることなく平文を送信することができる。この場合には、その外部のストレージサブシステム１´のＥ／Ｄ部８により、平文が暗号化されて格納されることになる。Ｅ／Ｄ部８は、コントローラに搭載されたＥ／Ｄ部でも良いし、ＨＤＤに搭載されたＥ／Ｄ部でもよい。暗号化をせずに送信する場合、例えば、リモートコピー処理部９０２或いはコマンド処理部９０１は、外部ＬＤＥＶ、プライマリＬＤＥＶ或いはセカンダリＬＤＥＶに対応付けられた暗号鍵を、外部のストレージサブシステム１´に通知し、その暗号鍵で、暗号化させても良い。
【０１６２】
図２２は、第二の実施形態におけるＬＵ構成テーブルの構成例を示す。
【０１６３】
このＬＵ構成テーブル６００´では、一つのＬＤＥＶに、複数の暗号鍵が対応付けられている。そして、それら複数の暗号鍵毎に、論理アドレス範囲が設定されている。具体的には、論理アドレス範囲の先頭アドレスが書かれるカラム６０６´と、論理アドレス範囲の後端アドレスが書かれるカラム６０７´とが設けられている。
【０１６４】
つまり、この第二の実施形態では、一つのＬＤＥＶを複数の領域に細分化し、各領域に、暗号鍵を対応付けることができる。
【０１６５】
図２３は、第二の実施形態でのＬＤＥＶ作成処理の流れの一例を示す。以下、第一の実施形態でのＬＤＥＶ作成処理（図１０）との違いを主に説明する。
【０１６６】
図１０のステップ１００５が、この図２３ではステップ１００５´となっている。すなわち、暗号鍵だけでなく、各暗号鍵が対象ＬＤＥＶのどの論理アドレス範囲に対応付けるのかが指定される。そのため、ステップ１００７では、各論理アドレス範囲に対応した物理アドレス範囲が暗号化範囲として各対象ＨＤＤ１６に通知される。
【０１６７】
また、図１０のステップ１００６でＮＯの場合、この第二実施形態では、ステップ１０１１´及びステップ１０１２´が実行される。
【０１６８】
ステップ１０１１´では、テーブル構築プログラムが、ＥＤＥＶの属するストレージサブシステムが暗号化機能付きかどうか（Ｅ／Ｄ部があるかどうか）を判断する。暗号化付きの場合には、ステップ１０１２´に進み、そうではない場合には、終了となる。
【０１６９】
ステップ１０１２´では、テーブル構築プログラムが、ステップ１００５´で指定された暗号鍵を、該暗号鍵が対応付けられる対象ＬＤＥＶを、ＥＤＥＶの属するストレージサブシステム１´に通知する。これにより、ストレージサブシステム１´に平文が送信された場合、そのストレージサブシステム１´のＥ／Ｄ部８では、外部ＬＤＥＶに対応付けられた暗号鍵で平文が暗号化されて格納される。
【０１７０】
以上が、第二の実施形態の説明である。なお、図示は省略しているが、前述したように、コマンド処理部９０１或いはリモートコピー処理部９０２が、外部接続或いはリモートコピーにおけるライト要求或いはリード要求の送信先のストレージサブシステムが、暗号化機能付きか否かを判別し、暗号化機能が付いていない場合には、コントローラＥ／Ｄ部１２４による暗号化により得られた暗号文を送信するが、暗号化機能が付いている場合には、コントローラＥ／Ｄ部１２４による暗号化を行わせず平文のまま送信する。これにより、コントローラ９７４の性能劣化を抑えることができる。
【０１７１】
＜第三の実施形態＞。
【０１７２】
図２４は、本発明の第三の実施形態における自動容量拡張技術の説明図である。
【０１７３】
自動容量拡張技術とは、ＨＤＥＶに対するライトに応じて、プール領域内のディスクブロックを動的に割当てたり、該割当てを解除したりすることで、ＨＤＥＶの使用容量を動的に拡張することができる技術である。この技術は、Thin Provisioning技術と呼ばれることもある。以下、その一例を簡単に説明するが、自動容量拡張技術として、例えば、特開２００３−１５９１５号公報（ＵＳ特許番号６７２５３２８号、ＵＳ特許番号６８３６８１９号、ＵＳ出願番号１０／９９１４２１号）に開示の技術を援用することもできる。
【０１７４】
ストレージサブシステム１（例えばホストアダプタ１１）により、ホスト４に、ＨＤＥＶが提供される。ＨＤＥＶとは、Higher Deviceを略したものである。ＨＤＥＶは、前述したＶＤＥＶより上位に位置するという意味で付与した便宜上の名称である。ＨＤＥＶは、仮想的な論理ボリュームとすることができる。この実施形態では、ホスト４にとってのＬＵは、その仮想的な論理ボリュームであるＨＤＥＶである。
【０１７５】
ストレージサブシステム１には、プール領域が用意されている。プール領域は、ＶＤＥＶやＥＤＥＶの集合である。プール領域は、多数のディスクブロック（ディスクブロックに限らない論理領域でも良い）で構成されている。それら多数のディスクブロックのうちの未割当てのディスクブロックが、ＨＤＥＶに動的に割当てられる。
【０１７６】
図２５は、ＨＤＥＶ構成テーブルの構成例を示す。
【０１７７】
ＨＤＥＶ構成テーブル６００Ａは、ＨＤＥＶの構成に関する情報を管理するためのテーブルであり、例えばキャッシュ／制御メモリ１４に格納される。このテーブル６００Ａの構成は、図７を参照して説明したＬＵ構成テーブル６００と略同様である。相違点としては、ＬＤＥＶ番号が書かれるカラム６０１に代えて、ＨＤＥＶ番号（ＨＤＥＶの識別子）が書かれるカラム６０１´が用意される点である。この実施形態では、ＨＤＥＶに暗号キーが対応付けられている。
【０１７８】
図２６は、割当て管理テーブルの構成例を示す。
【０１７９】
割当て管理テーブル６０００は、ＨＤＥＶに対するどの部分にどのディスクブロックが割当て（アサイン）されているかを管理するためのテーブルであり、例えばキャッシュ／制御メモリ１４に格納される。具体的には、例えば、このテーブル６０００には、ＨＤＥＶ番号が書かれるカラム６００１と、ＨＤＥＶの論理アドレス範囲（ＨＤＥＶの一領域を表す、ＨＤＥＶのアドレス範囲）の先頭アドレスが書かれるカラム６００２と、ＨＤＥＶの論理アドレス範囲の終端アドレスが書かれるカラム６００３と、ＨＤＥＶに割当てられているディスクブロックを有したＶＤＥＶ或いはＥＤＥＶの番号が書かれるカラム６００４と、割当てられているディスクブロックの先頭アドレスが書かれるカラム６００５と、割当てられているディスクブロックの終端アドレスが書かれるカラム６００６とがある。
【０１８０】
図２７は、プール領域管理テーブルの構成例を示す。
【０１８１】
プール領域管理テーブル６５００は、プール領域のうちの未割当てのディスクブロックを管理するためのテーブルであり、例えばキャッシュ／制御メモリ１４に格納される。具体的には、例えば、このテーブル６５００には、ＨＤＥＶに未割当てのディスクブロックを有したＶＤＥＶ或いはＥＤＥＶの番号が書かれるカラム６５０１と、未割当てのディスクブロックの先頭アドレスが書かれるカラム６５０２と、未割当てのディスクブロックの終端アドレスが書かれるカラム６５０３とがある。
【０１８２】
未割当てのディスクブロックがＨＤＥＶに割当てられると、このプール領域管理テーブル６５００から、そのディスクブロックに対応する各エントリが削除され、そして、その各エントリが、割当て管理テーブル６０００に追加される。逆に、ＨＤＥＶに対するディスクブロックの割当てが解除されると、そのディスクブロックに対応する各エントリが、割当て管理テーブル６０００から削除され、そして、その各エントリが、プール領域管理テーブル６５００に追加される。この一連の動的割り当て及び解除は、例えば、コマンド処理部９０１やリモートコピー処理部９０２が実行することができる。
【０１８３】
図２８は、ＨＤＥＶ作成処理の流れの一例を示す。以下、第一の実施形態でのＬＤＥＶ作成処理（図１０）との違いを主に説明する。
【０１８４】
図１０のステップ１００１は不要となる。ＶＤＥＶ或いはＥＤＥＶからＨＤＥＶが作成されるわけではないためである。
【０１８５】
ステップ１００３では、ＨＤＥＶ構成テーブル６００Ａが構築される。
【０１８６】
ステップ１００４にて暗号化が選択された場合、ステップ１００５では、領域（例えばＨＤＥＶ番号）と暗号鍵が指定される。暗号鍵は、自動で生成されても良いし、管理者から鍵を受け取るのでも良い。
【０１８７】
ステップ１００８では、ＨＤＥＶ構成テーブル６００Ａに、指定された領域に対して指定された暗号鍵が対応付けられる。
【０１８８】
図２９は、第三の実施形態において、ホストアダプタ１１がホスト４からＩ／Ｏ要求を受信した場合に実行される処理の流れの一例を示す。以下、図１１との相違点を主に説明する。
【０１８９】
ステップ１１０２とステップ１１０３との間に、新たなステップ１０００１´〜ステップ１０００３´が実行される。
【０１９０】
ステップ１０００１´では、コマンド処理部９０１が、Ｉ／Ｏ要求で指定されているＬＢＡに、ディスクブロックが割当て済みであるか否かを、割当て管理テーブル６０００を参照することにより判断する。割当て済みであれば、ステップ１０００３´に進み、割り当て済みでなければ、ステップ１０００２´に進む。
【０１９１】
ステップ１０００２´では、コマンド処理部９０１が、プール領域管理テーブル６５００から、必要なサイズ分の数の未割当てのディスクブロックを特定し、特定したディスクブロックを、ＨＤＥＶに割当てる。
【０１９２】
ステップ１０００３´では、コマンド処理部９０１が、Ｉ／Ｏ要求で指定されているＬＢＡを、割当てたディスクブロックのＬＢＡに変換する。
【０１９３】
ステップ１１０３では、Ｉ／Ｏ要求で指定されているＬＢＡに割当てられたディスクブロック（つまりアクセス対象ブロック）が、ＨＤＥＶとＥＤＥＶのどちらに属するものであるかが判別される。ＨＤＥＶに属する場合には、内部ＬＤＥＶ Ｉ／Ｏ処理が実行され、ＥＤＥＶに属する場合には、外部ＬＤＥＶ Ｉ／Ｏ処理が実行される。
【０１９４】
図３０は、第三の実施形態での内部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。以下、図１２との相違点を主に説明する。
【０１９５】
ステップ１２０１では、アクセス対象ブロックのＬＢＡのアドレス変換が実行される。ステップ１２０４とステップ１２０５との間に、ステップ１２００１´及びステップ１２００４´が実行され、ステップ１２０５では、ステップ１２００５´が実行される。また、ステップ１２０２でＮＯの場合、ステップ１２０６に代えてステップ１２００６´が実行される。
【０１９６】
ステップ１２００１´では、コマンド処理部９０１が、対象ＨＤＤ１６の鍵管理テーブル１６０に、新たに割当てられたディスクブロックＬＢＡに対応する物理アドレスを含む物理アドレス範囲と、該物理アドレス範囲に対応付けられた暗号鍵とが登録済みか否かを判断する。ここでは、例えば、図２９のステップ１０００１´で割当て済みだった場合には、登録済みと判断し、未割当ての場合には、登録済みでないと判断することができる。登録済みの場合、ステップ１２００５´に進み、登録済みではない場合、ステップ１２００４´に進む。
【０１９７】
ステップ１２００４´では、コマンド処理部９０１が、ディスクＩ／Ｏ処理部９１３に、ステップ１０００２´で新たに割当てられたディスクブロックに対応する物理アドレス範囲を有するＨＤＤ１６に、インデックス番号と暗号鍵との組を通知させる。このような処理により、該ＨＤＤ１６の鍵管理テーブル１６０おいて、同一の物理アドレス範囲に対応付けられる暗号鍵が、動的に変えることができる。ここでは、例えば、各ディスクブロック毎に対応付けられたインデックス番号が記録されているテーブルがあり、ディスクＩ／Ｏ処理部９１３が、そのテーブルから、割当てられたディスクブロックに対応するインデックス番号を特定し、インデックス番号と、割当て先のＨＤＥＶに対応した暗号鍵とを通知することができる。なお、この方法に代えて、第一の実施形態と同様の方法、すなわち、物理アドレス範囲を指定する方法が採られても良い。
【０１９８】
ステップ１２００５´では、ディスクＩ／Ｏ処理部９１３が、ステップ１０００３´により得られたＬＢＡを含むディスクブロックに対応するインデックス番号を指定した、新規データ及び新規パリティのライト要求を、各対象ＨＤＤ１６に送信する。なお、この実施形態では、インデックス番号を指定したライト要求が、通常ライト要求となり、インデックス番号が指定されていない（代わりに例えば物理アドレス範囲が指定されている）ライト要求が、非暗号化ライト要求となる。
【０１９９】
ステップ１２００６´では、ディスクＩ／Ｏ処理部９１３が、ステップ１０００３´により得られたＬＢＡを含むディスクブロックに対応するインデックス番号を指定したリード要求を、各対象ＨＤＤ１６に送信する。なお、この実施形態では、インデックス番号を指定したリード要求が、通常リード要求となり、インデックス番号が指定されていない（代わりに例えば物理アドレス範囲が指定されている）リード要求が、非復号化リード要求となる。
【０２００】
図３１は、第三の実施形態での外部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。以下、図１３との相違点を主に説明する。
【０２０１】
ステップ１３０１の処理が不要となる。既に、図２９のステップ１０００３´で、ホスト４からのＩ／Ｏ要求で指定されているＬＢＡに対応した、ＥＤＥＶにおけるＬＢＡが得られているためである。
【０２０２】
以上が、第三の実施形態の説明である。この第三の実施形態によれば、自動容量拡張技術においても、データ保護を実現しつつ、コントローラ９７４の性能劣化を抑えることができる。
【０２０３】
＜第四の実施形態＞。
【０２０４】
第四の実施形態では、ジャーナルデータを利用したリモートコピーが実行される。以下に説明するのは、ジャーナルデータを利用したリモートコピー技術の一例であり、それに限定する必要は無い。
【０２０５】
ジャーナルデータには、例えば、プライマリＬＤＥＶに書かれる平文と、更新順序（例えば番号或いはタイムスタンプ）と、プライマリＬＤＥＶのＬＤＥＶ番号とが含まれる。例えば、このようなジャーナルデータが、プライマリＬＤＥＶに対する平文のライト要求を受信した場合に、生成され、ジャーナルＬＤＥＶに書かれる。ジャーナルＬＤＥＶ内のジャーナルデータが、セカンダリストレージサブシステム３に送信される。ジャーナルＬＤＥＶは、本実施形態では内部ＬＤＥＶであるが、外部ＬＤＥＶであっても良い。
【０２０６】
図３２は、第四の実施形態でのＶＤＥＶ構成テーブルの構成例を示す。
【０２０７】
ＶＤＥＶ構成テーブル５００´には、ジャーナルＬＤＥＶか否かを表す値が書かれるカラム５０５がある。その値が１の場合に、対応するＬＤＥＶがジャーナルＬＤＥＶであることを示す。
【０２０８】
図３３は、ジャーナルＬＤＥＶについてのポインタの説明図である。
【０２０９】
本実施形態では、セカンダリサブストレージシステム３に転送されるジャーナルデータは、このジャーナルＬＤＥＶに先頭から順に書き込まれる。また、ジャーナルＬＤＥＶの先頭から順に、ジャーナルデータが読み出されセカンダリサブストレージシステム３に転送されていく。この処理は、リモートコピー処理部９０２が実行することができる。
【０２１０】
本実施形態では、ジャーナルＬＤＥＶに対して、２種類のポインタ（以下、ジャーナルポインタ１、２）が用意される。
【０２１１】
ジャーナルポインタ２は、新規のジャーナルデータの書込み先位置を表す。すなわち、本実施形態では、新規のジャーナルデータを書き込むべき位置を把握するため、リモートコピー処理部９０２では「ジャーナルポインタ２」という変数を持ち、ジャーナルポインタ２が新規ジャーナル書き込み位置を指すように維持管理される。ジャーナルポインタ２がジャーナルＬＤＥＶ終端までくると、ジャーナルポインタ２は先頭に戻る。
【０２１２】
一方、ジャーナルポインタ１は、読出し元位置の先頭を表す。ジャーナルデータが読み出されてセカンダリストレージサブシステム３に転送される都度に、ジャーナルポインタ１が次のアドレスに更新される。
【０２１３】
図３４は、ジャーナル書込み処理の一例を示す。
【０２１４】
この実施形態では、図１９の更新コピー処理に代えて、この図３４のジャーナル書込み処理が実行される。
【０２１５】
具体的には、コマンド処理部９０１により、ホスト４からの平文がキャッシュ領域に格納されたならば、Ｉ／Ｏ完了がホスト４に通知される（ステップ２０００２）。
【０２１６】
リモートコピー処理部９０２が、その平文の書込み先がプライマリＬＤＥＶであれば（ステップ２０００３でＹＥＳ）、該平文を含んだジャーナルデータを作成する（ステップ２０００４）。
【０２１７】
次に、リモートコピー処理部９０２が、ディスクＩ／Ｏ処理部９１３に、ジャーナルポインタ２の指すＬＢＡを物理アドレス（ジャーナルＬＤＥＶを含むＶＤＥＶに対応した各ＨＤＤ１６におけるアドレス）に変換させる（ステップ２０００５）。
【０２１８】
次に、リモートコピー処理部９０２が、ディスクＩ／Ｏ制御部９１３に、プライマリＬＤＥＶの暗号鍵と、該変換後の物理アドレスを含む物理アドレス範囲とを、鍵管理テーブル１６０で対応付けさせ、更に、作成されたジャーナルデータを、その物理アドレスに格納させる。それにより、ＨＤＤ１６の装置Ｅ／Ｄ部９２１により、その暗号鍵でジャーナルデータが暗号化されて格納される。
【０２１９】
最後に、リモートコピー処理部９０２は、ジャーナルポインタ２を更新する。
【０２２０】
なお、ステップ２０００６において、装置Ｅ／Ｄ部９２１では、ジャーナルデータの全部が暗号化されるのではなく、平文の部分のみ（例えばジャーナルデータにおけるヘッダ部分以降）が暗号化されるようにしても良い。それにより、暗号化されたジャーナルデータが読み出された場合、平文以外は暗号化されていないので、該ジャーナルデータ中の暗号文がどのプライマリＬＤＥＶに存在するものであるか等を特定することができる。
【０２２１】
図３５は、ジャーナルコピー処理の一例を示す。
【０２２２】
このジャーナルコピー処理は、例えば、図３４のジャーナル書込み処理と独立して定期的に実行される。
【０２２３】
ステップ２１００１では、リモートコピー処理部９０２が、ディスクＩ／Ｏ処理部９１３に、ジャーナルポインタ１の指すＬＢＡを物理アドレスに変換させる。
【０２２４】
ステップ２１００２では、リモートコピー処理部９０２が、ディスクＩ／Ｏ制御部９１３に、ジャーナルデータを復号化することなく、その物理アドレスから読み出すよう指示する。それにより、暗号化されたままのジャーナルデータが読み出されたならば、そのジャーナルデータを、セカンダリストレージサブシステム３に送信する。
【０２２５】
最後に、リモートコピー処理部９０２は、ジャーナルポインタ１を更新する。
【０２２６】
以上が、第四の実施形態である。なお、この第四の実施形態では、セカンダリストレージサブシステム３は、その暗号化されているジャーナルデータ中の暗号文を、セカンダリＬＤＥＶにリストアしていくことができる。
【０２２７】
この第四の実施形態によれば、ジャーナルを利用したリモートコピー技術でも、データ保護を実現しつつ、コントローラ９７４の性能劣化を抑えることができる。
【０２２８】
＜第五の実施形態＞。
【０２２９】
第五の実施形態では、図３７Ａに示すように、ホスト４に、データのバックアップ装置９９９が接続されている。バックアップ装置９９９は、例えば、磁気テープ装置（例えば複数のテープ媒体を備えたテープライブラリ装置）であるが、他種の装置であっても良い。
【０２３０】
図３７Ｂに示すように、ホスト４は、所望のＬＵを指定したバックアップ要求をストレージサブシステム１に送信する（ステップ３０００１）。
【０２３１】
この場合、そのＬＵに対応したＬＤＥＶ内にある全データが、暗号文のまま読み出され（ステップ３０００２）、ホスト４に送信される（ステップ３０００３）。
【０２３２】
ホスト４は、読み出された暗号文を、バックアップ装置９９９に格納する（ステップ３０００４）。
【０２３３】
以上、本発明の幾つかの実施形態を説明したが、これらの実施形態は本発明の説明のための例示にすぎず、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。例えば、暗号化及び復号化の両方で同じ暗号鍵が使用されるが、それに代えて、暗号化用の鍵と復号化用の鍵とが別々に用意されても良い。
【図面の簡単な説明】
【０２３４】
【図１】図１は、本発明の第一実施形態に係る計算機システムの物理的な構成例を示す。
【図２】図２は、本発明の第一実施形態に係る計算機システムの論理的な構成例を示す。
【図３】図３Ａは、ＨＤＤ１６の構成例を示す。図３Ｂは、鍵管理テーブル１６０の構成例を示す。
【図４】図４は、複数のＨＤＤ１６と論理ボリュームとの関係性の一例を示す図である。
【図５】図５は、ＲＡＩＤ構成テーブルの構成例を示す。
【図６】図６は、ＶＤＥＶ構成テーブルの構成例を示す。
【図７】図７は、ＬＵ構成テーブルの構成例を示す。
【図８】図８Ａは、ポート構成テーブルの構成例を示す。図８Ｂは、ＥＤＥＶ情報テーブルの構成例を示す。
【図９】図９は、ＥＤＥＶ構成テーブルの構成例を示す。
【図１０】図１０は、ＬＤＥＶ作成処理の流れの一例を示す。
【図１１】図１１は、ホストアダプタ１１がホスト４からＩ／Ｏ要求を受信した場合に実行される処理の流れの一例を示す。
【図１２】図１２は、内部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。
【図１３】図１３は、外部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。
【図１４】図１４は、ＨＤＤ１６の書込み処理の一例を示す。
【図１５】図１５は、ＨＤＤ１６の読出し処理の一例を示す。
【図１６】図１６は、ペア構成テーブルの構成例を示す。
【図１７】図１７は、ペア形成処理の流れの一例を示す。
【図１８】図１８は、初期コピー処理の流れの一例を示す。
【図１９】図１９は、更新コピー処理の流れの一例を示す。
【図２０】図２０は、フェイルバック処理の一例を示す。
【図２１】図２１は、本発明の第二実施形態に係る計算機システムの物理的な構成例を示す。
【図２２】図２２は、第二の実施形態におけるＬＵ構成テーブルの構成例を示す。
【図２３】図２３は、第二の実施形態でのＬＤＥＶ作成処理の流れの一例を示す。
【図２４】図２４は、本発明の第三の実施形態における自動容量拡張技術の説明図である。
【図２５】図２５は、ＨＤＥＶ構成テーブルの構成例を示す。
【図２６】図２６は、割当て管理テーブルの構成例を示す。
【図２７】図２７は、プール領域管理テーブルの構成例を示す。
【図２８】図２８は、ＨＤＥＶ作成処理の流れの一例を示す。
【図２９】図２９は、第三の実施形態において、ホストアダプタ１１がホスト４からＩ／Ｏ要求を受信した場合に実行される処理の流れの一例を示す。
【図３０】図３０は、第三の実施形態での内部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。
【図３１】図３１は、第三の実施形態での外部ＬＤＥＶ Ｉ／Ｏ処理の流れの一例を示す。
【図３２】図３２は、第四の実施形態でのＶＤＥＶ構成テーブルの構成例を示す。
【図３３】図３３は、ジャーナルＬＤＥＶについてのポインタの説明図である。
【図３４】図３４は、ジャーナル書込み処理の一例を示す。
【図３５】図３５は、ジャーナルコピー処理の一例を示す。
【図３６】図３６は、本発明の第一の実施形態の概念の説明図である。
【図３７】図３７Ａは、第五の実施形態でホストにバックアップ装置が接続されていることを示す。図３７Ｂは、バックアップ処理の流れの一例を示す。
【符号の説明】
【０２３５】
９７１…上位装置、９７３…第一のストレージサブシステム、９７４…第一のコントローラ、９７５…コントローラＥ／Ｄ（暗号化／復号化）部、９７７…キャッシュ領域、９７９…第一のストレージ装置、９８１…装置Ｅ／Ｄ部、９８５…第一の論理ボリューム、９８９…ストレージ媒体、１９７３…第二のストレージサブシステム、１９７４…第二のコントローラ、１９７９…第二のストレージ装置、１９８５…第二の論理ボリューム
【図１】
2008108039.tif 000003
【図２】
2008108039.tif 000004
【図３】
2008108039.tif 000005
【図４】
2008108039.tif 000006
【図５】
2008108039.tif 000007
【図６】
2008108039.tif 000008
【図７】
2008108039.tif 000009
【図８】
2008108039.tif 000010
【図９】
2008108039.tif 000011
【図１０】
2008108039.tif 000012
【図１１】
2008108039.tif 000013
【図１２】
2008108039.tif 000014
【図１３】
2008108039.tif 000015
【図１４】
2008108039.tif 000016
【図１５】
2008108039.tif 000017
【図１６】
2008108039.tif 000018
【図１７】
2008108039.tif 000019
【図１８】
2008108039.tif 000020
【図１９】
2008108039.tif 000021
【図２０】
2008108039.tif 000022
【図２１】
2008108039.tif 000023
【図２２】
2008108039.tif 000024
【図２３】
2008108039.tif 000025
【図２４】
2008108039.tif 000026
【図２５】
2008108039.tif 000027
【図２６】
2008108039.tif 000028
【図２７】
2008108039.tif 000029
【図２８】
2008108039.tif 000030
【図２９】
2008108039.tif 000031
【図３０】
2008108039.tif 000032
【図３１】
2008108039.tif 000033
【図３２】
2008108039.tif 000034
【図３３】
2008108039.tif 000035
【図３４】
2008108039.tif 000036
【図３５】
2008108039.tif 000037
【図３６】
2008108039.tif 000038
【図３７】
2008108039.tif 000039