(57)【特許請求の範囲】
【請求項１】
ホスト装置に接続された第１のストレージ装置と、
前記第１のストレージ装置に接続された第２のストレージ装置と、を備えたストレージシステムであって、
前記第１のストレージ装置は、
第１のコントローラと、
前記第１のコントローラによって制御される、第１のデータボリューム及び第１のジャーナルボリュームを形成した、第１のディスクドライブと、を備え、
前記第１のコントローラは、
前記第１のデータボリューム及び前記第１のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第１の暗号管理テーブルを備え、
前記ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータに基づいて更新ログを作成し、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームに対する暗号化状態及び暗号鍵に従って、該作成した更新ログを暗号化して、該暗号化された更新ログを前記第１のジャーナルボリュームの領域に、順次に、格納し、
前記第１のジャーナルボリュームに格納された前記暗号化された更新ログを、順次に、読み出して復号化し、該復号化した更新ログを前記第２のストレージ装置に送信し、
前記第１のストレージ装置に接続された管理装置から前記第１のジャーナルボリュームに対する暗号鍵更新要求を受け付けた場合に、新たなジャーナルボリュームを確保して、前記新たなジャーナルボリュームに対する新たな暗号鍵を生成し、
該暗号鍵更新要求受付後に前記ホスト装置から受け付けた書き込み要求に従うデータに基づいて作成した更新ログを、前記新たな暗号鍵で暗号化して前記新たなジャーナルボリュームに格納することを特徴とするストレージシステム。
【請求項２】
前記第１のコントローラは、
前記第１の暗号管理テーブルで管理される前記第１のデータボリュームに対する暗号化状態及び暗号鍵に従って、前記書き込み要求に従うデータを暗号化して、前記第１のデータボリュームに格納することを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記第１のコントローラは、
前記暗号鍵更新要求に基づいて確保された前記新たなジャーナルボリューム及び前記新たなジャーナルボリュームに対する新たな暗号鍵を、前記第１の暗号管理テーブルに登録することを特徴とする請求項１又は２に記載のストレージシステム。
【請求項４】
前記第１のコントローラは、
所定のジャーナルボリュームにおける更新ログの格納位置及び読み出し位置を管理する第１のジャーナルボリューム管理テーブルを備え、
前記第１のジャーナルボリューム管理テーブルに従って、前記更新ログを前記第１のジャーナルボリューム又は前記新たなジャーナルボリュームのいずれかの領域に格納することを特徴とする請求項１から３のうちのいずれか１項に記載のストレージシステム。
【請求項５】
前記第１のコントローラは、
前記第１のジャーナルボリュームについての暗号鍵更新状態を管理する第１の暗号鍵更新管理テーブルをさらに備え、
前記暗号鍵更新要求に基づいて、前記第１のジャーナルボリュームに対する切り替えポインタを前記第１の暗号鍵更新管理テーブルに登録し、前記切り替えポインタに従って、前記新たなジャーナルボリュームに格納された前記更新ログを復号化し、該復号化した更新ログを前記第２のストレージ装置に送信することを特徴とする請求項１から４のうちのいずれか１項に記載のストレージシステム。
【請求項６】
前記第１のコントローラは、
前記暗号鍵更新要求に基づいて、前記第１のジャーナルボリュームの所定の領域に、前記新たなジャーナルボリュームの領域に切り替えるための切り替え制御コマンドを格納し、前記第１のジャーナルボリュームに格納された更新ログの復号化の後に前記切り替え制御コマンドに従って前記新たなジャーナルボリュームに格納された更新ログを復号化して前記第２のストレージ装置に送信することを特徴とする請求項１から４のうちのいずれか１項に記載のストレージシステム。
【請求項７】
前記第２のストレージ装置は、
第２のコントローラと、
前記第２のコントローラによって制御される、前記第１のデータボリュームとペア関係が定義された第２のデータボリューム及び第２のジャーナルボリュームを形成した、第２のディスクドライブと、を備え、
前記第２のコントローラは、
前記第２のデータボリューム及び前記第２のジャーナルボリュームのそれぞれに対する暗号化状態及び暗号鍵を管理する第２の暗号管理テーブルを備え、
前記第１のコントローラから送信された更新ログを、前記第２の暗号管理テーブルで管理される前記第２のジャーナルボリュームに対する暗号化状態及び暗号鍵に従って、該送信された更新ログを暗号化して、前記第２のジャーナルボリュームに格納することを特徴とする請求項１から６のうちのいずれか１項に記載のストレージシステム。
【請求項８】
前記第２のコントローラは、
前記第２のジャーナルボリュームに格納された前記暗号化された更新ログを、順次に、復号化し、
前記第２の暗号管理テーブルで管理される前記第２のデータボリュームに対する暗号化状態及び暗号鍵に従って、前記復号化されたデータを暗号化して、前記第２のデータボリュームに格納することを特徴とする請求項７記載のストレージシステム。
【請求項９】
前記第２のコントローラは、
前記第１のストレージ装置にリモートコピー要求を送信し、
前記第１のコントローラは、前記リモートコピー要求に基づいて、前記復号化された更新ログを前記第２のストレージ装置に送信することを特徴とする請求項７又は８に記載のストレージシステム。
【請求項１０】
前記ストレージシステムは、前記第２のストレージ装置に接続された管理装置をさらに備え、
前記第２のコントローラは、
前記管理装置から前記第１のジャーナルボリュームに対する暗号鍵更新要求を受け付けた場合に、新たなジャーナルボリュームを確保して、前記新たなジャーナルボリュームに対する新たな暗号鍵を生成することを特徴とする請求項７から９のうちのいずれか１項に記載のストレージシステム。
【請求項１１】
前記第２のコントローラは、
前記第２のジャーナルボリュームに対する暗号鍵更新状態を管理する第２の暗号鍵更新管理テーブルをさらに備え、
前記暗号鍵更新要求に基づいて、前記第１の暗号鍵更新管理テーブルにおける前記第１のジャーナルボリュームに対する暗号鍵更新状態を更新することを特徴とする請求項７から１０のうちのいずれか１項に記載のストレージシステム。
【請求項１２】
前記第１のコントローラは、
前記暗号鍵更新要求に基づいて確保された前記新たなジャーナルボリューム及び前記新たなジャーナルボリュームに対する新たな暗号鍵を、前記第２の暗号管理テーブルに登録することを特徴とする請求項７から１１のうちのいずれか１項に記載のストレージシステム。
【請求項１３】
前記第２のコントローラは、
所定のジャーナルボリュームにおける更新ログの格納位置及び読み出し位置を管理する第２のジャーナルボリューム管理テーブルを備え、
前記第２のジャーナルボリューム管理テーブルに従って、前記送信された更新ログを前記第２のジャーナルボリューム又は前記新たなジャーナルボリュームのいずれかの領域に格納することを特徴とする請求項１２記載のストレージシステム。
【請求項１４】
ホスト装置に接続された第１のストレージ装置と、前記第１のストレージ装置に接続された第２のストレージ装置と、を備えたストレージシステムにおけるデータの管理方法であって、
前記第１のストレージ装置は、第１のコントローラと、第１のデータボリューム及び第１のジャーナルボリュームが形成された第１のディスクドライブとを有し、
前記第１のコントローラは、前記第１のデータボリューム及び前記第１のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第１の暗号管理テーブルを有し、
前記第１のコントローラが、前記ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータに基づいて更新ログを作成するステップと、
前記第１のコントローラが、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームについての暗号化状態及び暗号鍵に従い、該作成した更新ログを暗号化して、前記第１のジャーナルボリュームに格納するステップと、
前記第１のコントローラが、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームについての暗号化状態及び暗号鍵に従って暗号化され前記第１のジャーナルボリュームに格納された更新ログを、順次に、復号化し、該復号化した更新ログを前記第２のストレージ装置に送信するステップと、
前記第１のコントローラが、前記第１のストレージ装置に接続された管理装置から前記第１のジャーナルボリュームに対する暗号鍵更新要求を受け付けた場合に、新たなジャーナルボリュームを確保して、前記新たなジャーナルボリュームに対する新たな暗号鍵を生成するステップと、
前記第１のコントローラが、該暗号鍵更新要求受付後に前記ホスト装置から受け付けた書き込み要求に従うデータに基づいて作成した更新ログを、前記新たな暗号鍵で暗号化して前記新たなジャーナルボリュームに格納するステップと、を含むことを特徴とするストレージシステムにおけるデータの管理方法。
【請求項１５】
前記第２のストレージ装置に設けられた第２のコントローラが、第２のディスクドライブに、前記第１のデータボリュームとペア関係が定義された第２のデータボリューム及び第２のジャーナルボリュームを形成するステップと、
前記第２のコントローラが、前記第２のデータボリューム及び前記第２のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第２の暗号管理テーブルに従い、前記第１のコントローラから送信された更新ログを、該送信された更新ログを暗号化して、前記第２のジャーナルボリュームに格納するステップと、をさらに含むことを特徴とする請求項１４記載のストレージシステムにおけるデータの管理方法。
【請求項１６】
ホスト装置に接続された第１のストレージ装置と、
前記第１のストレージ装置に接続された第２のストレージ装置と、を備えたストレージシステムであって、
前記第１のストレージ装置は、
第１のコントローラと、
前記第１のコントローラによって制御される、第１のデータボリューム及び第１のジャーナルボリュームを形成した、第１のディスクドライブと、を備え、
前記第１のコントローラは、
前記第１のデータボリューム及び前記第１のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第１の暗号管理テーブルを備え、
前記ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータに基づいて更新ログを作成し、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームに対する暗号化状態及び暗号鍵に従って、該作成した更新ログを暗号化して、該暗号化された更新ログを前記第１のジャーナルボリュームの領域に、順次に、格納し、
前記第１のジャーナルボリュームに格納された前記暗号化された更新ログを、順次に、読み出して復号化し、該復号化した更新ログを前記第２のストレージ装置に送信し、
前記第１のジャーナルボリュームについての暗号鍵更新状態を管理する第１の暗号鍵更新管理テーブルをさらに備え、
前記暗号鍵更新要求に基づいて新たな暗号鍵を生成し、
前記第１の暗号鍵更新管理テーブルにおける前記第１のジャーナルボリュームに対する暗号鍵更新状態をＯＮに更新し、
該暗号鍵更新要求受付後に前記ホスト装置から受け付けた書き込み要求に従うデータに基づいて作成した更新ログを、前記新たな暗号鍵で暗号化して前記第１のジャーナルボリュームに格納することを特徴とするストレージシステム。
【請求項１７】
前記第１のコントローラは、
前記暗号鍵更新要求を受け付けた場合に、新たな暗号鍵を生成し、該生成した新たな暗号鍵を前記暗号管理テーブルに登録するとともに、前記第１のジャーナルボリュームの所定の領域を示す切り替えポインタを前記第１の暗号鍵更新管理テーブルに登録することを特徴とする請求項１６記載のストレージシステム。
【請求項１８】
前記第１のコントローラは、
前記第１の暗号鍵更新管理テーブルにおける前記第１のジャーナルボリュームに対する暗号鍵更新状態がＯＦＦで、かつ、前記暗号管理テーブルにおける前記第１のジャーナルボリュームに対する暗号化状態がＯＮである場合には、新たな暗号鍵で前記第１のジャーナルボリュームに格納された前記更新ログを復号化し、該復号化した更新ログを前記第２のストレージ装置に送信することを特徴とする請求項１６又は１７に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びこれを用いたストレージデータの管理方法に関し、特に、データ暗号化／復号化機能を備えたストレージ装置間におけるジャーナルを利用したストレージデータのリモートコピー技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおけるストレージ装置の障害によるデータの消失を防止するため、ストレージ装置内のある論理ボリュームに格納されたデータは、通常、冗長的に構成された遠隔地のストレージ装置内の論理ボリュームにバックアップされる。例えば、「リモートコピー」（又はリモートミラーリング）は、論理ボリューム上のデータのバックアップを行う技術の一つとして知られている。具体的には、リモートコピーは、主系のストレージ装置内の論理ボリューム（主論理ボリューム）と副系のストレージ装置内の論理ボリューム（副論理ボリューム）とをペアボリュームとして定義し、主ボリューム上のデータを副ボリュームに同期あるいは非同期にコピーすることにより、データのバックアップを行うものである。これによって、主系のストレージ装置に障害が発生した場合であっても、副系のストレージ装置は、ホスト装置上のアプリケーションからのＩ／Ｏアクセス要求を引き継ぐことができるようになる。
【０００３】
また、データのバックアップ／リストアの高速化を図る技術として、「ジャーナリング」が知られている。ジャーナリングは、データの書き込み要求（命令）があると、書き込まれるデータ及びその時刻等のメタデータをジャーナル（更新ログ）として保存するものである。一般に、ジャーナルを保存するための論理ボリュームは、ジャーナルボリュームと呼ばれている。
【０００４】
下記特許文献１は、リモートコピーにおいてジャーナリング技術を利用する記憶システムを開示している。具体的には、特許文献１における第１の記憶システムは、自身のボリューム上のデータに対するライト命令を受信すると、当該ボリューム上のデータを更新するとともに、ライトデータに受信時刻を付与したジャーナルを作成し、当該作成したジャーナルを第２の記憶システムに転送する。第２の記憶システムは、転送されたジャーナルに基づいて、自身のボリューム上のデータを更新する。これにより、第２の記憶システム内には、第１の記憶システムのボリュームの複製が作成されることになる。
【０００５】
ところで、データセキュリティの観点から、データは、しばしば暗号化されて、ストレージ装置に格納される。しかしながら、時間が経過し古くなった暗号化されたデータは、暗号化のために使用した暗号鍵や暗号化アルゴリズムが弱体化している可能性がある。特に、政府の規制等により、電子メールといったある種のデータに対して長期的な保存が要求される昨今では、データを長期に亘り安全に保存するための技術が必要とされる。
【０００６】
下記特許文献２は、データの機密性を保証するために、データを暗号化して格納するストレージシステムを開示している。また、特許文献２では、暗号化データは、ストレージシステムの中でより強固な新しい暗号化基準セットに従って再暗号化される。これにより、暗号鍵や暗号化アルゴリズムの弱体化による問題を回避でき、データの機密性を維持しつつ、長期に亘り安全に保存することができる。
【特許文献１】特開２００５−１８５０６号公報
【特許文献２】特開２００５−３０３９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
データセキュリティの観点からデータの暗号化／再暗号化を行う場合、その処理のためにプロセッサに高い負荷がかかるため、システムパフォーマンスが低下するおそれがある。一方で、リモートコピーにおいては、ストレージシステムは、ホスト装置からの書き込み要求に対して高いレスポンス性能を維持することが要求される。従って、リモートコピー時に、処理負荷の高い暗号化／再暗号化をさらに行うストレージシステムは提案されてこなかった。
【０００８】
特に、上述した特許文献２のストレージシステムは、ボリューム全体を再暗号化しているためプロセッサの負担が大きく、これをリモートコピー技術を採用したストレージシステムに単に適用することはできなかった。
【０００９】
そこで、本発明は、データセキュリティを考慮しつつ、効率的なデータのバックアップを行うことができるストレージシステム及びデータの管理方法を提案することを目的としている。
【００１０】
より具体的には、本発明の課題は、システム性能を低下させることなく、暗号化／復号化処理が要求されるデータをリモートコピーできるようにすることである。
【００１１】
また、本発明の課題は、データを格納する論理ボリュームに対する暗号鍵が更新された場合であっても、更新された暗号鍵によって暗号化されたデータを論理ボリュームに効率的に格納し、また、論理ボリュームから効率的に読み出して、復号化できるようにすることである。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明は、以下の発明特定事項を含む。
【００１３】
すなわち、ある観点に従えば、本発明は、ホスト装置に接続された第１のストレージ装置と、前記第１のストレージ装置に接続された第２のストレージ装置と、を備えたストレージシステムであって、前記第１のストレージ装置は、第１のコントローラと、前記第１のコントローラによって制御される、第１のデータボリューム及び第１のジャーナルボリュームを形成した、第１のディスクドライブと、を備えている。前記第１のコントローラは、前記第１のデータボリューム及び前記第１のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第１の暗号管理テーブルを備え、前記ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータに基づいて更新ログを作成し、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームに対する暗号化状態及び暗号鍵に従って、該作成した更新ログを暗号化して、該暗号化された更新ログを前記第１のジャーナルボリュームの領域に、順次に、格納し、前記第１のジャーナルボリュームに格納された前記暗号化された更新ログを、順次に、読み出して復号化し、該復号化した更新ログを前記第２のストレージ装置に送信し、前記第１のストレージ装置に接続された管理装置から前記第１のジャーナルボリュームに対する暗号鍵更新要求を受け付けた場合に、新たなジャーナルボリュームを確保して、前記新たなジャーナルボリュームに対する新たな暗号鍵を生成し、該暗号鍵更新要求受付後に前記ホスト装置から受け付けた書き込み要求に従うデータに基づいて作成した更新ログを、前記新たな暗号鍵で暗号化して前記新たなジャーナルボリュームに格納する。
【００１４】
また、別の観点に従えば、本発明は、方法の発明として把握される。すなわち、本発明は、ホスト装置に接続された第１のストレージ装置と、前記第１のストレージ装置に接続された第２のストレージ装置と、を備えたストレージシステムにおけるデータの管理方法であって、前記第１のストレージ装置は、第１のコントローラと、第１のデータボリューム及び第１のジャーナルボリュームが形成された第１のディスクドライブとを有し、前記第１のコントローラは、前記第１のデータボリューム及び前記第１のジャーナルボリュームのそれぞれについての暗号化状態及び暗号鍵を管理する第１の暗号管理テーブルを有し、前記第１のコントローラが、前記ホスト装置から書き込み要求を受け付けた場合に、前記書き込み要求に従うデータに基づいて更新ログを作成するステップと、前記第１のコントローラが、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームについての暗号化状態及び暗号鍵に従い、該作成した更新ログを暗号化して、前記第１のジャーナルボリュームに格納するステップと、前記第１のコントローラが、前記第１の暗号管理テーブルで管理される前記第１のジャーナルボリュームについての暗号化状態及び暗号鍵に従って暗号化され前記第１のジャーナルボリュームに格納された更新ログを、順次に、復号化し、該復号化した更新ログを前記第２のストレージ装置に送信するステップと、前記第１のコントローラが、前記第１のストレージ装置に接続された管理装置から前記第１のジャーナルボリュームに対する暗号鍵更新要求を受け付けた場合に、新たなジャーナルボリュームを確保して、前記新たなジャーナルボリュームに対する新たな暗号鍵を生成するステップと、前記第１のコントローラが、該暗号鍵更新要求受付後に前記ホスト装置から受け付けた書き込み要求に従うデータに基づいて作成した更新ログを、前記新たな暗号鍵で暗号化して前記新たなジャーナルボリュームに格納するステップと、を含む。
【００１５】
さらに、本発明は、上記方法をストレージ装置に実行させるプログラムの発明としても把握できる。
【発明の効果】
【００１６】
本発明によれば、データセキュリティを確保しつつ、高いシステムパフォーマンスで、データのリモートコピーを行うことができるようになる。
【００１７】
また、本発明によれば、データを格納する論理ボリュームに対する暗号鍵が更新された場合に、更新された暗号鍵によって暗号化されたデータを論理ボリュームに効率的に格納し、また、論理ボリュームから効率的に読み出して、復号化することができるようになる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
［第１の実施形態］
【００１９】
図１は、本発明の第１の実施形態に係るコンピュータシステムの概略構成を示す図である。同図に示すように、コンピュータシステム１は、ストレージネットワーク２Ａを介して相互に接続された複数のホスト装置３及び複数のストレージ装置４を含んで構成される。複数のストレージ装置４は、１つのストレージシステムＳとして見ることができる。コンピュータシステム１はまた、管理ネットワーク２Ｂを介して複数のストレージ装置４のそれぞれに接続された管理装置５を含んでいる。コンピュータシステム１は、例えば、銀行の業務システムや航空機の座席予約業務システム等として具現化される。
【００２０】
ストレージネットワーク２Ａは、主として、ホスト装置３とストレージ装置４との間のＩ／Ｏアクセスに基づく通信に使用されるネットワークシステムである。ストレージネットワーク２Ａはまた、ストレージ装置４間のリモートコピーに基づく通信にも使用される。ストレージネットワーク２Ａには、例えばＬＡＮ、インターネット、又はＳＡＮ（Storage Area Network）のいずれかを採用することができ、典型的には、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、ストレージネットワーク２Ａは、ファイバーチャネルプロトコルベースのＳＡＮ（ＦＣ−ＳＡＮ）で構成されているものとする。
【００２１】
管理ネットワーク２Ｂは、管理装置５がホスト装置３及びストレージ装置４の管理を行う際の通信に使用されるネットワークである。本実施形態では、管理ネットワーク２Ｂは、ＩＰプロトコルベースのＬＡＮで構成されているものとする。ただし、これは、ストレージネットワーク２Ａと管理ネットワーク２Ｂとが物理的に常に別個のものとして構成されることを意味するものではない。例えば、ストレージネットワーク２ＡがＩＰプロトコルベースのネットワークで構成された場合には、両者は一つのネットワークシステム上に形成されるかも知れない。
【００２２】
ホスト装置３は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。すなわち、ホスト装置３は、プロセッサやメインメモリ、ネットワークインターフェース、ローカル入出力デバイス等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備えている。これによって、ホスト装置３は、プロセッサの制御の下、各種のプログラムを実行して、他のハードウェア資源との協働作用により、所望の処理を実現する。典型的には、ホスト装置３は、プロセッサの制御の下、ＯＳ上で業務アプリケーションプログラムを実行することにより、以下で詳述されるストレージ装置４内の論理ユニット乃至は論理ボリューム（ＶＯＬ：以下、単に「ボリューム」という）にアクセスし、所望の業務システムを実現する。本例では、２台のホスト装置３ａ及び３ｂが図示され、ホスト装置３ａ及び３ｂのそれぞれは、ストレージ装置４ａ及び４ｂのそれぞれに対してアクセスするように構成されている。
【００２３】
ストレージ装置４は、ホスト装置３にデータストレージサービスを提供するためのサブシステムであり、このために、１つ又は複数のボリュームをホスト装置３に提供する。ストレージ装置４は、データを担持する記憶媒体を含む物理デバイス（ＰＤＥＶ）としての１つ又は複数のディスクドライブ４１と、ディスクドライブ４１に対する書き込み要求又は読み出し要求に基づくＩ／Ｏアクセスを制御するコントローラ４２と、を備える。
【００２４】
ストレージ装置４ａ及び４ｂの内部構成は、基本的に同じであるが、運用上、異なる役割が割り当てられる。すなわち、ストレージ装置４ａは、通常の運用時に稼働する主系のストレージ装置であり、ストレージ装置４ｂは、障害や保守作業の発生によるストレージ装置４ａの停止に備えて待機する副系のストレージ装置４ｂである。従って、主系ストレージ装置４ａ及び副系ストレージ装置４ｂ内の一対のボリューム上のデータは、後述するリモートコピー（ミラーリング）によって、その同一性が維持される。
【００２５】
ボリュームは、ホスト装置３上のアプリケーションプログラムが認識しうる「論理的なストレージ」である。ボリュームは、コントローラ４２の制御の下、１つ又は複数のディスクドライブ４１（物理デバイス）上に形成される。典型的な実装例では、ボリュームは、論理的な中間デバイスを介して物理デバイス上に形成される。具体的には、大容量化、高信頼化等の観点から、ＲＡＩＤ（Redundant Arrays of Independence Disks）技術を用いて、いくつかの物理デバイスに基づくＲＡＩＤグループ乃至はアレイグループと呼ばれる仮想デバイスが定義される。そして、当該仮想デバイスに対して１つ又は複数の論理デバイス乃至は論理ユニットが割り当てられ、さらに、当該論理デバイスのそれぞれに対して論理ボリュームが割り当てられる。本発明の理解を容易にする目的として、本明細書では、１つの論理デバイスに対して、１つの論理ボリュームが割り当てられているものとし、また、論理的な中間デバイスを省略し、論理ボリュームは、物理デバイス上に形成されたものとして説明する。
【００２６】
ボリュームには、論理ユニット番号（ＬＵＮ）が割り当てられ、従って、ホスト装置３は、論理ユニット番号を用いて特定のボリューム（つまり、論理デバイス）を認識することができる。また、ボリュームは、Ｉ／Ｏアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス（ＬＢＡ）が割り当てられる。これにより、ホスト装置３は、論理ユニット番号及び論理ブロックアドレスを含む論理アドレスをストレージ装置４に与えることにより、特定のボリュームにおける特定のブロックに格納されたデータセットに対してアクセスを行うことができる。
【００２７】
ストレージ装置４には、その目的・用途に応じたさまざまなボリュームが用意される。本実施形態では、ホスト装置３によるＩ／Ｏアクセスに基づくデータを格納する１つ又は複数のデータボリューム（Ｄ−ＶＯＬ）と、ジャーナリングによるジャーナルエントリ（更新ログ）を格納する１つ又は複数のジャーナルボリューム（Ｊ−ＶＯＬ）とが形成されている。
【００２８】
ジャーナリングは、当該データを高速にバックアップするためのストレージ装置４に実装された機能の一つである。ジャーナリング機能により、ストレージ装置４は、ホスト装置３による書き込み要求があると、当該書き込み要求に関わるメタデータと当該書き込み要求に従うデータとを更新ログとして、ジャーナルボリュームに格納する。メタデータは、例えば、当該書き込み要求があった時点の時刻情報（タイムスタンプ）や当該書き込み要求によって指定されるデータボリュームの識別子（論理ユニット番号）、当該データボリュームが属するグループのグループ識別子、当該グループにおける更新順序を示すシーケンシャル番号、当該書き込み要求に従うデータのサイズ、及び当該書き込み要求に従うデータを格納したジャーナルボリュームの記憶領域の論理アドレスを含む。本実施形態のジャーナルボリュームはまた、リモートコピーを行う際に、中間的なバッファとして使用される。
【００２９】
リモートコピーは、ストレージ装置４に実装された機能の一つであり、ペア関係が定義されたボリューム（ペアボリューム）間で、ホスト装置３を介在させることなく、同期・非同期にデータのコピーを行って、ボリューム上のデータを二重化する機能である。リモートコピー機能は、例えば、ストレージ装置４に実装されたリモートコピープログラムにより実現される。ストレージ装置４ａ及び４ｂの各ボリューム間で新たなペア関係が定義された場合には、初期コピーとして、主系のストレージ装置４ａのボリュームから副系のストレージ装置４ｂの新たにペア関係が定義されたボリュームにデータが転送される。
【００３０】
同期式リモートコピーでは、ホスト装置３から書き込み要求を受領した主系のストレージ装置４ａは、自身のボリュームに当該書き込み要求に従うデータを格納するとともに、ペア関係が定義された副系ストレージ装置４ｂのボリュームに対して当該書き込み要求に従うデータを転送し、これを受けた副系のストレージ装置４ｂにおいて当該データの格納が完了した時点で、ホスト装置３に当該書き込み要求に対する完了を応答する。
【００３１】
一方、非同期式リモートコピーでは、ホスト装置３からの書き込み要求とは独立（非同期）に、ペアボリューム間でコピーが行われる。本実施形態では、副系のストレージ装置４ｂが、主系のストレージ装置４ａに対してリモートコピー要求を行う非同期式リモートコピーが採用されている。
【００３２】
また、本実施形態では、リモートコピーに際して、ジャーナリングを利用している。すなわち、主系のストレージ装置４ａは、副系のストレージ装置４ｂからのリモートコピー要求に応じて、更新ログをストレージ装置４ｂに転送する。
【００３３】
なお、本実施形態では、ストレージ装置４ａを主系のストレージ装置とし、ストレージ装置４ｂを副系のストレージ装置として扱っているが、ストレージ装置４内のボリューム単位で主系のボリュームと副系のボリュームとに分けてもよい。
【００３４】
さらに、ストレージ装置４は、ボリュームに対する暗号化／復号化機能を備える。暗号化／復号化機能は、例えば、ストレージ装置４に実装された暗号／復号プログラムにより実現される。ストレージ装置４は、暗号化状態にあるボリュームに対してデータを書き込む場合には、当該データを暗号化した上で、書き込む。
【００３５】
管理装置５は、ストレージ装置４を管理するためのコンピュータであって、典型的には、汎用のコンピュータが用いられる。すなわち、管理装置５は、プロセッサやメインメモリ、ネットワークインターフェース、ローカル入出力デバイス等のハードウェア資源を備え、また、デバイスドライバやＯＳ、管理プログラム等のソフトウェア資源を備えている。管理装置５は、プロセッサの制御の下、ＯＳ上で各種の管理プログラムを実行することにより、システム管理者にストレージ装置４を管理するためのユーザインターフェースを提供し、システム管理者の操作を介して、ストレージ装置４に対する設定や実行指示、運用状況の監視といった管理を行う。例えば、管理装置４は、システム管理者の操作に基づいて、リモートコピーの設定（ペアボリュームの定義、初期コピーの実行等）や、データボリュームに対する暗号化状態の設定（暗号化機能の有効化／無効化）を行う。
【００３６】
図２は、本発明の一実施形態に係るストレージ装置４の構成を示す図である。上述したように、ストレージ装置４は、１つ又は複数のディスクドライブ４１と、これらを制御するコントローラ４２とによって構成される。ディスクドライブ４１は、例えば、ハードディスクドライブやフラッシュメモリといった記憶媒体を含む物理デバイスである。ディスクドライブ４１とコントローラ４２とは、例えば、ディスクチャネルを介して接続される。
【００３７】
コントローラ４２は、同図に示すように、プロセッサ４２１と、メモリ４２２と、ホストインターフェース４２３と、キャッシュメモリ４２４と、ディスクインターフェース４２５と、ストレージインターフェース４２６と、管理インターフェース４２７と、を備え、これらのコンポーネントは、内部データ線４２８を介して相互に接続されている。これらコンポーネントは、冗長化構成により、それぞれ多重化されていてもよい。
【００３８】
プロセッサ４２１は、そのメインメモリとして機能するメモリ４２２に記憶された各種のプログラムを実行することにより、ストレージ装置４を統括的に制御する。メモリ４２２には、例えば、Ｉ／Ｏ処理プログラムＰ１００、ジャーナリングプログラムＰ２００、リモートコピープログラムＰ３００、及び暗号／復号プログラムＰ４００等が記憶される。Ｉ／Ｏ処理プログラムＰ１００は、ホスト装置３からの書き込み要求又は読み出し要求に基づくＩ／Ｏアクセスを統括的に制御して、ストレージ装置４にデータストレージサービスを実現させるプログラムである。ジャーナリングプログラムＰ２００は、ホスト装置３からの書き込み要求があった場合に、当該書き込み要求に従うデータに基づいてジャーナルエントリ（更新ログ）を作成するプログラムである。リモートコピープログラムＰ３００は、ストレージ装置４間のリモートコピー処理を実現するプログラムである。リモートコピープログラムＰ３００は、リモートコピーを要求する側及び要求される側のサブプログラムを含む。暗号／復号プログラムＰ４００は、ディスクドライブ４１上のボリュームに格納されるべきデータを暗号し、暗号化され格納されたデータが読み出される際に、これを復号する。
【００３９】
メモリ４２２には、また、ペア管理テーブルＴ１００、ジャーナルボリューム管理テーブルＴ２００、暗号管理テーブルＴ３００、及び暗号鍵更新管理テーブルを含むシステム構成情報並びにキャッシュディレクトリ情報等が記憶される。これらのプログラム及びテーブルの一部又は全部は、プロセッサ４２２の制御の下、図示しない補助記憶装置から、適宜、メモリ４２２にロードされ、プロセッサ５１の利用に供される。また、管理装置５は、メモリ４２２に記憶されたシステム構成情報を取得して、その設定・変更のために、ユーザインターフェースを介して、システム管理者に提供する。
【００４０】
ホストインターフェース４２３は、プロトコルデバイス（図示せず）を備え、ストレージネットワーク２Ａを介して接続されたホスト装置３との間で通信を行うためのシステム回路である。プロトコルデバイスは、個々のプロトコルに応じたプロトコル処理を行うためのプロセッサを備えている。ホストインターフェース４２３は、ホスト装置３から例えば書き込み要求を受け付けると、プロセッサ４２１の制御の下、当該書き込み要求に従うデータをキャッシュメモリ４２４に書き込む。
【００４１】
キャッシュメモリ４２４は、ホスト装置３とディスクドライブ４１との間でやり取りされるデータを一時的に記憶（キャッシュ）するメモリモジュールである。つまり、キャッシュメモリ４２４は、ホストインターフェース４２３とディスクインターフェース４２５との間のデータの受け渡しに利用される。キャッシュメモリ４２４は、例えば、揮発性メモリとして知られるＤＲＡＭや不揮発性メモリとして知られるフラッシュＲＡＭによって構成される。
【００４２】
ディスクインターフェース４２５は、キャッシュメモリ４２４に格納されたデータを取り出して、ディスクドライブ４１に格納し（デステージング）、また、ディスクドライブ４１からデータを読み出して、キャッシュメモリ４２４に書き込む（ステージング）。例えば、ホスト装置３からの読み出し要求を受け付けた場合、ディスクインターフェース４２５は、要求されたデータがキャッシュメモリ４２４に存在しない場合、必要に応じてデステージングを行ってキャッシュ領域を確保した後、キャッシュメモリ４２４に要求されたデータをステージングする。
【００４３】
ストレージインターフェース４２６は、ホストインターフェース４２３と同様、プロトコルデバイス（図示せず）を備え、ストレージネットワーク２Ａを介して接続された他のストレージ装置４との間で通信を行うためのシステム回路である。例えば、ストレージ装置４間のリモートコピーでは、ストレージインターフェース４２６を通じてデータが転送される。
【００４４】
管理インターフェース４２７もまた、プロトコルデバイス（図示せず）を備え、管理ネットワーク２Ｂを介して接続された管理装置５との間で通信を行うためのシステム回路である。管理ネットワーク２ＢがＴＣＰ／ＩＰベースのＬＡＮで構築されている場合、管理インターフェース４２７は、イーサネット（登録商標）ボードを使用することができる。
【００４５】
図３は、本発明の一実施形態に係るストレージ装置４におけるペア管理テーブルＴ１００の構造を説明するための図である。ペア管理テーブルＴ１００は、リモートコピーが行われるべきデータボリュームのペア関係を管理するテーブルである。ペア管理テーブルＴ１００は、管理装置５を操作するシステム管理者によって、作成され、更新される。
【００４６】
同図に示すように、ペア管理テーブルＴ１００の各エントリは、複製元ストレージ装置識別子欄Ｔ１０１欄、複製元データボリューム識別子欄Ｔ１０２、複製先ストレージ装置識別子欄Ｔ１０３、複製先データボリューム識別子欄Ｔ１０４、及びグループ識別子欄Ｔ１０５を含む。
【００４７】
複製元ストレージ装置識別子欄Ｔ１０１には、複製対象であるデータボリュームを有するストレージ装置を識別するためのストレージ装置識別子が登録される。ストレージ装置識別子は、例えば、ストレージ装置４のベンダー名や製造番号である。
【００４８】
複製元データボリューム識別子Ｔ１０２には、複製対象であるデータボリュームを識別するためのボリューム識別子が登録される。当該ボリューム識別子は、複製元ストレージ装置識別子によって識別されるストレージ装置が有するボリュームの中から特定のボリュームを一意に特定できる識別子であればよく、例えば、論理ユニット番号を用いることができる。つまり、ボリューム識別子は、ボリュームの種類（つまり、データボリュームであるかジャーナルボリュームであるか）を問わず、一意の識別子が割り当てられている。
【００４９】
複製先ストレージ装置識別子欄Ｔ１０３には、複製されたデータを格納するデータボリュームを有するストレージ装置を識別するためのストレージ装置識別子が登録される。
【００５０】
複製先データボリューム識別子欄Ｔ１０４には、複製されたデータを格納するデータボリュームを識別するボリューム識別子が登録される。複製先データボリューム識別子もまた、複製先ストレージ装置識別子によって識別されるストレージ装置が有するボリュームの中からデータボリュームを一意に特定できる識別子であればよい。
【００５１】
グループ識別子欄Ｔ１０５には、各エントリ内のデータボリュームが属するグループを識別するためのグループ識別子が登録される。グループ識別子は、ペア関係が定義されたデータ間の更新順序を保証するために、１つ又は複数のデータボリューム（及びこれとペア関係が定義された１つ又は複数のデータボリューム）をグループという単位で管理するためのものである。１つのグループには複数のデータボリュームが属することもあり、従って、この場合には、複数のデータボリュームが１つのジャーナルボリュームを共有することになる。すなわち、複製元のストレージ装置４におけるいくつかのデータボリュームに対するデータの更新順序が、リモートコピー時に、複製先のストレージ装置４における対応するデータボリュームに対しても保証されるように、１つ又は複数のデータボリュームに対してグループが定義される。同一のグループ内では、データの更新順に、一意な更新番号が割り当てられる。
【００５２】
図４は、本発明の一実施形態に係るストレージ装置４におけるジャーナルボリューム管理テーブルＴ２００の構造を説明するための図である。ジャーナルボリューム管理テーブルＴ２００は、更新ログを格納するジャーナルボリュームを管理するためのテーブルである。
【００５３】
同図に示すように、ジャーナルボリューム管理テーブルの各エントリは、グループ識別子欄Ｔ２０１、格納先ジャーナルボリューム識別子欄Ｔ２０２、更新ログ末尾ポインタ欄Ｔ２０３、読み出し元ジャーナルボリューム識別子欄Ｔ２０４、及び更新ログ先頭ポインタ欄Ｔ２０５を含む。
【００５４】
グループ識別子欄Ｔ２０１には、上述したグループを識別するためのグループ識別子が登録される。つまり、同一のグループに属する１つ又は複数のデータボリュームに対する書き込み要求に基づいて作成される更新ログは、当該グループに属するジャーナルボリュームに格納される。
【００５５】
格納先ジャーナルボリューム識別子欄Ｔ２０２には、グループ識別子によって識別されるグループに属するデータボリュームが更新される場合、その更新ログを格納するジャーナルボリュームを識別するボリューム識別子が登録される。
【００５６】
更新ログ末尾ポインタ欄Ｔ２０３には、直近に作成された更新ログを格納した記憶領域の末尾アドレスの次アドレスが登録される。つまり、更新ログ末尾ポインタは、次に更新ログが格納されるべき記憶領域の位置を示す。
【００５７】
読み出し元ジャーナルボリューム識別子欄Ｔ２０４には、更新ログの読み出し元のジャーナルボリュームを識別するボリューム識別子が登録される。更新ログ先頭ポインタ欄Ｔ２０５には、未だ転送されておらず、かつ、最も古い更新ログを格納する記憶領域の先頭アドレスが登録される。つまり、更新ログ先頭ポインタは、次に更新ログが読み出されるべき記憶領域の位置を示す。
【００５８】
図５は、本発明の一実施形態に係るストレージ装置４におけるジャーナルボリュームに対する更新ログ先頭ポインタ及び更新ログ末尾ポインタの関係を説明する図である。
【００５９】
すなわち、同図（Ａ）に示すように、更新ログ先頭ポインタは、ジャーナルボリュームに格納された更新ログのうち、未転送更新ログが格納された記憶領域の先頭アドレスを示す。また、更新ログ末尾ポインタは、ジャーナルボリュームに格納された更新ログのうち、未転送更新ログが格納された記憶領域の末尾アドレスの次のアドレスを示す。
【００６０】
また、ジャーナルボリュームに未転送ログがない場合は、同図（Ｂ）に示すように、更新ログ先頭ポインタ及び更新ログ末尾ポインタのそれぞれが示すアドレスは一致する。従って、更新ログ先頭ポインタと更新ログ末尾ポインタとを比較することによって、ジャーナルボリューム上に未転送ログが存在するか否かを判断することができる。
【００６１】
更新ログは、書き込み要求があるごとに作成され、ジャーナルボリュームの先頭記憶領域から、更新ログ末尾ポインタに従って、順番に格納される。更新ログ末尾ポインタがジャーナルボリュームの記憶領域の最終アドレスまで到達した場合、更新ログ末尾ポインタは、再び、記憶領域の先頭アドレスに戻る。
【００６２】
図６は、本発明の一実施形態に係るストレージ装置４における暗号管理テーブルＴ３００の構造を説明するための図である。暗号管理テーブルＴ３００は、ストレージ装置４内のボリューム（すなわち、データボリューム及びジャーナルボリューム）の暗号化の状態を管理するテーブルである。
【００６３】
同図に示すように、暗号管理テーブルＴ３００のエントリは、ボリューム識別子欄Ｔ３０１、暗号化状態欄Ｔ３０２、暗号鍵欄Ｔ３０３、及び鍵更新時刻欄Ｔ３０４を含む。
【００６４】
ボリューム識別子欄Ｔ３０１には、ボリュームを識別するためのボリューム識別子が登録される。
【００６５】
暗号化状態欄Ｔ３０２には、ボリューム識別子によって識別されるボリュームが暗号化されているか否かを示すフラグが登録される。ボリュームが暗号化されている場合には、暗号化状態は「オン」となり、暗号化されていない場合には、「オフ」となる。
【００６６】
暗号鍵欄Ｔ３０３は、暗号化状態が「オン」の場合、ボリュームを暗号化／復号化するための暗号鍵が登録される。暗号鍵は、管理装置５を操作するシステム管理者の指示に従って、更新される。暗号鍵は、所定の暗号化／復号化アルゴリズムで用いられる、例えば１２８ビットの数値からなる。暗号と復号とは相補関係にあり、従って、本明細書では、暗号鍵というときは、復号鍵を含む意味で用いている。また、ボリュームが暗号化されているとは、暗号鍵（復号鍵）を使用しなければ、ボリューム上のデータを意味のある形で利用できない状態をいい、典型的には、暗号鍵を使用して暗号化されたデータがボリュームに格納されている状態をいう。
【００６７】
なお、あるボリュームの暗号化状態が「オン」に設定されると、当該ボリュームに関連付けられたボリュームの暗号化状態が自動的に「オン」に設定されてもよい。例えば、システム管理者が、管理装置５上のユーザインターフェースを介して、データボリュームの暗号化状態を「オン」に設定すると、管理装置５の管理プログラムは、当該データボリュームに対応付けられたジャーナルボリュームを特定し、当該特定したジャーナルボリュームの暗号化状態を自動的に「オン」に設定する。
【００６８】
また、複数のボリュームに対して、同一の暗号鍵が使用されてもよい。例えば、同一のグループに属するデータボリュームに対して、同一の暗号鍵が使用されてもよいし、データボリュームに対応するジャーナルボリュームに対して、同一の暗号鍵が使用されてもよい。
【００６９】
鍵更新時刻欄Ｔ３０４には、暗号鍵欄Ｔ３０３に登録された暗号鍵が別の新しいものに更新された時刻が登録される。長期間変更されない暗号鍵を使用することは、データのセキュリティの観点から好ましくなく、従って、システム管理者は、管理装置５を操作して、新たな暗号鍵の生成を指示し、これを受けて新たな暗号鍵が生成された時刻が登録されることになる。
【００７０】
図７は、本発明の一実施形態に係るストレージ装置４における暗号鍵更新管理テーブルＴ４００の構造を説明するための図である。暗号鍵更新管理テーブルＴ４００は、ジャーナルボリュームに対して使用される暗号鍵の更新状態を管理するテーブルである。
【００７１】
同図に示すように、暗号鍵更新管理テーブルＴ４００の各エントリは、ジャーナルボリューム識別子欄Ｔ４０１、鍵更新状態欄Ｔ４０２、及び切り替えポインタ欄Ｔ４０３を含む。
【００７２】
ジャーナルボリューム識別子欄Ｔ４０１には、ストレージ装置４内のジャーナルボリュームを識別するためのボリューム識別子が登録される。
【００７３】
暗号鍵更新状態欄Ｔ４０２には、ジャーナルボリューム識別子で識別されるジャーナルボリュームに対して使用される暗号鍵が更新された否かを示すフラグが登録される。暗号鍵が更新されたジャーナルボリュームに対しては、暗号鍵更新状態は「オン」となり、更新されていないジャーナルボリュームに対しては、暗号鍵更新状態は「オフ」となる。
【００７４】
切り替えポインタ欄Ｔ４０３には、暗号鍵更新状態が「オン」である場合に、暗号鍵の更新が指示された時点における図４に示すジャーナルボリューム管理テーブルＴ２００における対応するエントリの更新ログ末尾ポインタ欄Ｔ２０３が示すアドレスが切り替えポインタとして登録される。つまり、切り替えポインタは、暗号鍵更新の指示に基づいて、ジャーナルボリュームの領域を切り替えるためのポインタである。
【００７５】
図８は、本発明の一実施形態に係るストレージ装置４における書き込み要求に基づく処理を説明するためのフローチャートであり、具体的には、同図は、主系のストレージ装置４ａが、ホスト装置３ａからデータボリュームに対する書き込みコマンドを受信した場合の、ストレージ装置４ａの動作を説明している。当該書き込み要求に基づく処理は、コントローラ４２内のプロセッサ４２１の制御の下、各コンポーネントが協働することで、遂行される。
【００７６】
すなわち、ストレージ装置４ａのコントローラ４２（これを「コントローラ４２ａ」と呼ぶことにする。）は、ホスト装置３ａから書き込みコマンドを受信すると、メモリ４２２に記憶されている暗号管理テーブルＴ３００を参照して、当該書き込みコマンドで指定されたデータボリューム（Ｄ−ＶＯＬ）の暗号化状態が「ＯＮ」であるか否か、すなわち、データボリュームが暗号化されているか否か、を判断する（ＳＴＥＰ８０１）。
【００７７】
コントローラ４２ａは、当該データボリュームの暗号化状態が「ＯＮ」である、すなわち、当該データボリュームが暗号化されていると判断する場合（ＳＴＥＰ８０１のＹｅｓ）、暗号管理テーブルＴ３００を参照して、当該データボリュームに対する暗号鍵を取得する（ＳＴＥＰ８０２）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の暗号化アルゴリズムに従って、当該書き込みコマンドに従うデータを暗号化し（ＳＴＥＰ８０３）、暗号化したデータを当該データボリュームに格納する（ＳＴＥＰ８０４）。より具体的なレベルで説明すれば、プロセッサ４２１は、暗号鍵を使用して、所定の暗号化アルゴリズムに従い、キャッシュメモリ４２４に書き込まれたデータを暗号化し、再び、キャッシュメモリ４２４に書き込む。これによって、キャッシュメモリ４２２上の暗号化されたデータは、適宜のタイミングで、メモリ４２２上のキャッシュディレクトリ情報に従って、ディスクインターフェース４２５によりデステージングされることになる。また、コントローラ４２ａは、キャッシュメモリ４２４上のデータをディスクドライブ４１にデステージングする際に暗号化し、暗号化したデータをキャッシュメモリ４２４に戻さないようにしてもよい。
【００７８】
これに対して、コントローラ４２ａは、当該書き込みコマンドで指定されたデータボリュームが暗号化されていないと判断する場合（ＳＴＥＰ８０１のＮｏ）、コントローラ４２ａは、当該書き込みコマンドに従うデータを、そのままの形で（暗号化せずに）、当該データボリュームに格納する（ＳＴＥＰ８０４）。
【００７９】
コントローラ４２ａは、次に、ペア管理テーブルＴ１００を参照し、当該書き込みコマンドで指定されたデータボリュームが複製元データボリュームに設定されているか否かを判断する（ＳＴＥＰ８０５）。当該データボリュームが複製元データボリュームに設定されていないと判断する場合（ＳＴＥＰ８０５のＮｏ）、当該書き込みコマンドに対する処理を終了する。この場合、コントローラ４２ａは、当該書き込みコマンドを送信したホスト装置３ａに対して完了ステータスを送信する。
【００８０】
これに対して、当該データボリュームが複製元データボリュームに設定されていると判断する場合（ＳＴＥＰ８０５のＹｅｓ）、コントローラ４２ａは、ジャーナル管理テーブルＴ２００を参照して、格納先ジャーナルボリューム識別子欄Ｔ２０２に登録されたボリューム識別子及び更新ログ末尾ポインタ欄Ｔ２０３に登録された更新ログ末尾ポインタをそれぞれ取得する（ＳＴＥＰ８０８）。つまり、コントローラ４２ａは、当該書き込みコマンドに基づく更新ログを格納すべきジャーナルボリューム及びその記憶領域の先頭アドレスを特定する。続いて、コントローラ４２ａは、当該書き込みコマンドに基づいて更新ログを作成する（ＳＴＥＰ８０７）。更新ログは、上述したように、メタデータと書き込みデータとからなる。メタデータは、例えば、当該書き込み要求があった時点の時刻情報や当該書き込み要求によって指定されるデータボリュームのボリューム識別子、当該データボリュームが属するグループのグループ識別子、当該グループにおける更新順序を示すシーケンシャル番号、当該書き込み要求に従うデータのサイズ、及び当該書き込み要求に従う書き込みデータを格納したジャーナルボリュームの記憶領域のアドレスを含む。
【００８１】
さらに、コントローラ４２ａは、暗号管理テーブルＴ３００を参照し、作成された更新ログを格納すべきジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ８０８）。当該更新ログを格納すべきジャーナルボリュームの暗号化状態が「ON」であると判断する場合（ＳＴＥＰ８０８のＹｅｓ）、コントローラ４２ａは、暗号管理テーブルＴ３００を参照して、当該ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ８０９）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の暗号化アルゴリズムに従って、当該更新ログを暗号化し（ＳＴＥＰ８１０）、暗号化した更新ログを当該ジャーナルボリュームに格納する（ＳＴＥＰ８１１）。
【００８２】
これに対して、コントローラ４２ａが当該更新ログを格納すべきジャーナルボリュームの暗号状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ８０８のＮｏ）、コントローラ４２は、当該更新ログを、そのままの形で（暗号化せずに）、当該ジャーナルボリュームに格納する（ＳＴＥＰ８１１）。
【００８３】
そして、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ末尾ポインタ欄Ｔ２０３を更新する（ＳＴＥＰ８１２）。つまり、コントローラ４２ａは、更新ログ末尾ポインタを、作成された更新ログを格納したジャーナルボリュームの領域の末尾アドレスの次アドレスにセットする。
【００８４】
以上により、コントローラ４２ａは、当該書き込みコマンドに対する処理を終了する。この場合、コントローラ４２ａは、典型的には、当該書き込みコマンドを送信したホスト装置３ａに対して完了ステータスを送信する。
【００８５】
なお、図８に示したフローチャートでは、コントローラ４２ａは、データボリュームに対する書き込みデータの格納処理に同期して、ジャーナルボリュームに対する更新ログの格納処理を行っているが、特にこれに限定するものではない。コントローラ４２ａは、データボリュームに対する格納処理とジャーナルボリュームに対する格納処理とを、非同期で行ってもよい。
【００８６】
図９は、本発明の一実施形態に係るストレージ装置４における読み出し要求に基づく処理を説明するためのフローチャートであり、具体的には、同図は、主系のストレージ装置４ａがホスト装置３ａからデータボリュームに対する読み出しコマンドを受信した場合の、ストレージ装置４ａの動作を説明している。当該読み出し要求に基づく処理は、コントローラ４２内のプロセッサ４２１の制御の下、各コンポーネントが協働することで、遂行される。
【００８７】
すなわち、ストレージ装置４ａのコントローラ４２ａは、ホスト装置３ａからデータの読み出しコマンドを受信すると、当該読み出しコマンドで指定されたデータボリュームからデータを読み出す（ＳＴＥＰ９０１）。より具体的なレベルで説明すれば、プロセッサ４２１は、当該読み出しコマンドが指定するデータが、キャッシュメモリ４２４に存在しないと判断する場合、当該データをステージングするようにディスクインターフェース４２を制御する。これにより、読み出されたデータは、暗号化されたままで、キャッシュメモリ４２４に書き込まれることになる。あるいは、コントローラ４２ａは、暗号データと平文データがキャッシュメモリ４２４上に混在することを避けるため、ディスクドライブ４１からステージングする際にデータを復号化してもよい
【００８８】
次に、コントローラ４２ａは、メモリ４２２に記憶されている暗号管理テーブルＴ３００を参照して、当該当該読み出しコマンドで指定されたデータボリュームの暗号化状態が「ＯＮ］であるか否かを判断する（ＳＴＥＰ９０２）。当該読み出しコマンドによって指定されたデータボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ９０２のＹｅｓ）、コントローラ４２ａは、当該データボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ９０３）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の復号化アルゴリズムに従って、当該読み出したデータを復号化する（ＳＴＥＰ９０４）。これにより、コントローラ４２ａは、復号化されたデータを、当該読み出し要求に対する応答として、ホスト装置３ａに送信し（ＳＴＥＰ９０５）、処理を終了する。
【００８９】
これに対して、コントローラ４２ａは、当該読み出しコマンドで指定されたデータボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ９０２のＮｏ）、当該データボリュームから読み出したデータを、そのまま、当該読み出し要求に対する応答として、ホスト装置３ａに送信し（ＳＴＥＰ９０５）、処理を終了する。
【００９０】
図１０は、本発明の一実施形態に係るストレージ装置４における暗号鍵更新処理を説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ａが管理装置５Ａから暗号鍵更新要求（以下の「暗号鍵更新コマンド」に相当する。）を受信した場合の、ストレージ装置４ａの動作を説明している。なお、ストレージ装置４ｂが管理装置５Ｂから暗号鍵更新コマンドを受信した場合も同様である。
【００９１】
システム管理者は、管理装置５ａを操作して、ストレージ装置４ａに対して暗号鍵の更新を指示すると、これを受けて、管理装置５ａは、暗号鍵更新コマンドをストレージ装置４ａに送信する。暗号鍵更新コマンドは、暗号鍵の更新対象であるジャーナルボリューム（これを「旧ジャーナルボリューム」と呼ぶことにする。）を識別するためのボリューム識別子及び暗号鍵更新コマンドの発行時刻を含んでいる。
【００９２】
ストレージ装置４ａのコントローラ４２ａは、管理ネットワーク２Ｂを介して、管理装置５ａから暗号鍵更新コマンドを受信すると、別の新たなジャーナルボリューム（これを「新ジャーナルボリューム」と呼ぶことにする。）をディスクドライブ４１上に確保する（ＳＴＥＰ１００１）。典型的には、コントローラ４２ａは、ディスクドライブ４１上にジャーナルボリュームを新規に作成する。新ジャーナルボリュームには新たなボリューム識別子が割り当てられる。
【００９３】
次に、コントローラ４２ａは、例えば発行時刻や乱数関数を使用して、所定の暗号鍵生成アルゴリズムに従って、新たな暗号鍵を生成し（ＳＴＥＰ１００２）、メモリ４２２に記憶された暗号管理テーブルＴ３００を更新する（ＳＴＥＰ１００３）。具体的には、コントローラ４２ａは、暗号管理テーブルＴ３００の対応するエントリにおける暗号化状態欄Ｔ３０２を「オン」にして、生成した暗号鍵を暗号鍵欄Ｔ３０３に登録する。
【００９４】
コントローラ４２ａは、続いて、暗号鍵更新管理テーブルＴ４００における対応するエントリ（旧ジャーナルボリュームを含むエントリ）の暗号鍵更新状態欄Ｔ４０２に「オン」を設定する（ＳＴＥＰ１００４）。また、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ末尾ポインタ欄Ｔ２０３に登録されているアドレスを、当該暗号鍵更新管理テーブルＴ４００の対応するエントリにおける切り替えポインタ欄Ｔ４０３に登録する（ＳＴＥＰ１００５）。
【００９５】
さらに、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００を参照し、格納先ジャーナルボリューム識別子欄Ｔ２０１が旧ジャーナルボリュームを示すエントリを抽出し、当該エントリにおける格納先ジャーナルボリューム識別子欄Ｔ２０１に新ジャーナルボリュームのボリューム識別子を登録する（ＳＴＥＰ１００６）。つまり、格納先ジャーナルボリュームは、旧ジャーナルボリュームから新ジャーナルボリュームに置き換わる。そして、コントローラ４２は、ジャーナルボリューム管理テーブルＴ２００における当該エントリの更新ログ末尾ポインタ欄Ｔ２０３に、新ジャーナルボリュームの記憶領域の先頭アドレスを登録する（ＳＴＥＰ１００７）。
【００９６】
例えば、図４（Ｂ）に示すように、旧ジャーナルボリュームのボリューム識別子が「００３」であり、新ジャーナルボリュームのボリューム識別子に「００５」が割り当てられた場合、ジャーナルボリューム管理テーブルＴ２００の格納先ジャーナルボリューム識別子欄Ｔ２０２の「００３」は、「００５」に置き換えられ、また、更新ログ末尾ポインタ欄Ｔ２０３には、先頭アドレス「０」が登録される。
【００９７】
すなわち、暗号鍵の更新指示の直前において、旧ジャーナルボリュームが図１１（Ａ）に示される状態であったとする。そして、ストレージ装置４が管理装置５から暗号鍵更新コマンドを受信し、上述した一連の処理を実行すると、旧ジャーナルボリューム及び新ジャーナルボリュームの状態はそれぞれ、図１１（Ｂ）及び（Ｃ）に示される状態になる。つまり、旧ジャーナルボリューム上の更新ログ末尾ポインタは、切り替えポインタに置き換えられ（図１１(Ｂ)）、新ジャーナルボリューム上に更新ログ末尾ポインタが設定される。暗号鍵更新コマンドを受信し、処理した直後であって、まだ、書き込みコマンドを受信していない状態では、更新ログ末尾ポインタは、新ジャーナルボリューム上の未使用記憶領域の先頭アドレスになる。
【００９８】
図１２及び図１３は、本発明の一実施形態に係るストレージシステムにおけるリモートコピー処理を説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ａがストレージ装置４ｂからリモートコピー要求（以下の更新ログ読み出しコマンドに相当する。）を受け付けた場合のストレージ装置４ａにおける動作を説明している。
【００９９】
ストレージ装置４ａは、通常運用時、ホスト装置４Ａに対してデータストレージサービスを提供するとともに、ストレージ装置４ｂからのリモートコピー要求に応答して、送信側リモートコピー処理を行う。
【０１００】
まず、図１２を参照して、ストレージ装置４ａのコントローラ４２ａは、ペアボリュームを有するストレージ装置４ｂから更新ログ読み出しコマンドを受信すると、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ読み出しコマンドに含まれるグループ識別子に基づいて対応するエントリを抽出し、当該エントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０２に登録されたボリューム識別子を抽出する（ＳＴＥＰ１２０１）。つまり、コントローラ４２ａは、ストレージ装置４ｂに転送すべき更新ログを格納しているジャーナルボリューム（読み出し元ジャーナルボリューム）を特定する。コントローラ４２ａは、次に、当該読み出し元ジャーナルボリュームに格納された未転送の更新ログの有無をチェックするため、当該エントリにおける更新ログ末尾ポインタ欄Ｔ２０３に示されるアドレス（更新ログ末尾ポインタ）と更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレス（更新ログ先頭ポインタ）とが一致しているか否かを判断する（ＳＴＥＰ１２０２）。
【０１０１】
コントローラ４２ａは、更新ログ末尾ポインタと更新ログ先頭ポインタとが一致している、すなわち、未転送更新ログがないと判断する場合（ＳＴＥＰ１２０２のＮｏ）、転送すべき更新ログがない旨の応答をストレージ装置４ｂのコントローラに送信し（ＳＴＥＰ１２０８）、当該送信側リモートコピー処理を終了する。
【０１０２】
これに対して、更新ログ末尾ポインタと更新ログ先頭ポインタとが一致しない、すなわち、未転送更新ログがあると判断する場合（ＳＴＥＰ１２０２のＹｅｓ）、コントローラ４２ａは、更新ログ先頭ポインタに従って、当該読み出し元ジャーナルボリュームの記憶領域から更新ログを、順次、読み出す（ＳＴＥＰ１２０３）。
【０１０３】
コントローラ４２ａは、次に、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１２０４）。コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ１２０４のＮｏ）、当該読み出した更新ログをそのままストレージ装置４ｂに送信する（ＳＴＥＰ１２０７）。
【０１０４】
これに対して、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ１２０４のＹｅｓ）、コントローラ４２ａは、暗号管理テーブルＴ３００を参照して、当該読み出し元ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ１２０５）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ１２０６）、復号化した更新ログをストレージ装置４ｂに送信する（ＳＴＥＰ１２０７）。
【０１０５】
さらに、コントローラ４２ａは、読み出して転送した更新ログのデータサイズに従って、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄を更新する（図１３のＳＴＥＰ１３０１）。つまり、更新ログ先頭ポインタ欄には、未転送更新ログを格納している当該読み出し元ジャーナルボリュームの記憶領域の先頭アドレスが登録される。
【０１０６】
続いて、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００を参照し、当該読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１３０２）。つまり、コントローラ４２ａは、暗号鍵が更新されることによって作成された新ジャーナルボリュームが存在するか否かを判断し、切り替えポインタの有無を確認する。コントローラ４２ａは、暗号鍵の更新状態が「ＯＮ」でない、すなわち、新ジャーナルボリュームが存在しないと判断する場合（ＳＴＥＰ１３０２のＮｏ）、当該送信側リモートコピー処理を終了する。コントローラ４２ａは、次の更新ログ読み出しコマンドを受信した場合に、更新ログ先頭ポインタで示される更新ログから、同様の処理により、転送を行う。
【０１０７】
コントローラ４２ａは、暗号鍵更新状態が「ＯＮ」、つまり、新ジャーナルボリュームが存在すると判断する場合（ＳＴＥＰ１３０２のＹｅｓ）、さらに、暗号鍵更新管理テーブルＴ４００における切り替えポインタ欄Ｔ４０３に示されるアドレス（切り替えポインタ）とジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレス（更新ログ先頭ポインタ）とが一致しているか否かを判断する（ＳＴＥＰ１３０３）。
【０１０８】
コントローラ４２ａは、切り替えポインタと更新ログ先頭ポインタとが一致しないと判断する場合（ＳＴＥＰ１３０３のＮｏ）、本処理を終了する。
【０１０９】
これに対して、切り替えポインタと更新ログ先頭ポインタとが一致すると判断する場合（ＳＴＥＰ１３０３のＹｅｓ）、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００の対応するエントリにおける暗号鍵更新状態欄Ｔ４０２を「ＯＦＦ」に設定し（ＳＴＥＰ１３０４）、暗号管理テーブルＴ３００において旧ジャーナルボリュームに割り当てられている暗号鍵を削除する（ＳＴＥＰ１３０５）。
【０１１０】
そして、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０４に、格納先ジャーナルボリューム識別子欄Ｔ２０２に登録されたボリューム識別子を登録するとともに（ＳＴＥＰ１３０６）、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄Ｔ２０５に、格納先ジャーナルボリューム識別子欄Ｔ２０２によって識別されるジャーナルボリュームの先頭アドレスを登録し（ＳＴＥＰ１３０７）、本処理を終了する。
【０１１１】
例えば、図４（Ｂ）に示したように、新ジャーナルボリュームのボリューム識別子が「００５」であれば、図４（Ｃ）に示すように、ジャーナルボリューム管理テーブルＴ２００の読み出し元ジャーナルボリューム識別子欄Ｔ２０２の「００３」は、「００５」に置き換えられ、また、更新ログ先頭ポインタ欄Ｔ２０３には、先頭アドレス「０」が登録される。
【０１１２】
なお、本実施形態では、ストレージ装置４ａは、ストレージ装置４ｂからの更新ログ読み出しコマンドに応じて、更新ログの転送処理を行っているが、特にこれにこだわるものでなく、例えば、ストレージ装置４ａが、定期的に、更新ログの転送処理を行うようにしてもよい。あるいは、ストレージ装置４ａは、ホスト装置３ａからの書き込み要求があるごとに、これに伴って作成される更新ログをストレージ装置４ｂに転送してもよい。
【０１１３】
また、ＳＴＥＰ１３０５において、コントローラ４２は、暗号管理テーブルＴ３００の対応するエントリにおける暗号鍵を直ちに削除せずに、管理装置５ａを操作するシステム管理者の指示に基づいて、これを削除するようにしてもよい。
【０１１４】
図１４は、本発明の一実施形態に係るストレージシステムにおけるリモートコピーを説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ｂがストレージ装置４ａにリモートコピー要求を送出した場合のストレージ装置４ｂにおける動作を説明している。
【０１１５】
すなわち、同図に示すように、ストレージ装置４ｂのコントローラ４２（これを「コントローラ４２ｂ」と呼ぶことにする。）は、更新ログ読み出しコマンドをストレージ装置４ａに送信する（ＳＴＥＰ１４０１）。コントローラ４２ａは、ストレージ装置４ａから送信される更新ログ読み出しコマンドに対する応答を受信し（ＳＴＥＰ１４０２）、当該応答が更新ログであるか否かを判断する（ＳＴＥＰ１４０３）。
【０１１６】
コントローラ４２ｂは、当該応答が更新ログでない、すなわち、当該応答が未転送更新ログがない旨である、と判断する場合（ＳＴＥＰ１４０３のＮｏ）、そのまま処理を終了する。これに対して、当該応答が更新ログである場合（ＳＴＥＰ１４０３のＹｅｓ）、コントローラ４２ｂは、ジャーナルボリューム管理テーブルＴ２００を参照し、当該応答に含まれるグループ識別子で特定される対応するエントリの格納先ジャーナルボリューム欄Ｔ２０１からボリューム識別子を、更新ログ末尾ポインタ欄Ｔ２０３から更新ログ末尾ポインタをそれぞれ取得する（ＳＴＥＰ１４０４）。つまり、コントローラ４２ｂは、転送されてきた更新ログを格納すべき、ジャーナルボリューム及び当該ジャーナルボリュームにおける領域の先頭アドレスを特定する。次に、コントローラ４２ｂは、暗号管理テーブルＴ３００を参照し、作成された更新ログを格納すべきジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１４０５）。
【０１１７】
当該更新ログを格納すべきジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ１４０５のＹｅｓ）、コントローラ４２ｂは、暗号管理テーブルＴ３００を参照して、当該ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ１４０６）。続いて、コントローラ４２は、取得した暗号鍵を使用して、所定の暗号化アルゴリズムに従って、当該更新ログを暗号化し（ＳＴＥＰ１４０７）、暗号化した更新ログを当該ジャーナルボリュームに格納する（ＳＴＥＰ１４０８）。そして、コントローラ４２ｂは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ末尾ポインタ欄Ｔ２０３を更新する（ＳＴＥＰ１４０９）。
【０１１８】
コントローラ４２ｂは、当該更新ログを格納すべきジャーナルボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ１４０５のＮｏ）、当該更新ログを、そのままの形で（暗号化せずに）、当該ジャーナルボリュームに格納し（ＳＴＥＰ１４０８）、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ末尾ポインタ欄Ｔ２０３を更新する（ＳＴＥＰ１４０９）。
【０１１９】
図１５及び図１６は、本発明の一実施形態に係るストレージシステムにおけるリモートコピー処理を説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ｂが、ストレージ装置４ａから受信した更新ログに基づいて、データボリュームの複製を作成する処理（リストア処理）を説明する。
【０１２０】
コントローラ４２ｂは、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ読み出し元ジャーナルボリューム欄Ｔ２０４に登録されたボリューム識別子及び更新ログ先頭ポインタ欄Ｔ２０５に登録された更新ログ先頭ポインタを抽出し（ＳＴＥＰ１５０１）、抽出したボリューム識別子及び更新ログ先頭ポインタで示される領域から更新ログを読み出す（ＳＴＥＰ１５０２）。
【０１２１】
コントローラ４２ｂは、次に、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの暗号状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１５０３）。コントローラ４２ｂは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ１５０３のＹｅｓ）、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ１５０４）。続いて、コントローラ４２ｂは、取得した暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ１５０５）、復号化した更新ログからデータ（元の書き込みデータ）を取得する（ＳＴＥＰ１５０６）。当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ１５０３のＮｏ）、コントローラ４２ｂは、読み出した更新ログから、直接、書き込みデータを取得する（ＳＴＥＰ１５０６）。
【０１２２】
コントローラ４２ｂは、更新ログに含まれるメタデータに基づいて、ペア管理テーブルＴ１００の対応するエントリにおける複製先データボリューム識別子欄Ｔ１０２に登録されたボリューム識別子を抽出し、さらに、暗号管理テーブルＴ３００を参照し、当該ボリューム識別子で特定される複製先データボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１５０７）。
【０１２３】
複製先データボリュームの暗号化状態が「ＯＮ」であると判断される場合（ＳＴＥＰ１５０７のＹｅｓ）、コントローラ４２ｂは、暗号管理テーブルＴ３００から当該データボリュームに対する暗号鍵を取得する（ＳＴＥＰ１５０８）。続いて、コントローラ４２ｂは、取得した暗号鍵を使用して、所定の暗号化アルゴリズムに従って、当該書き込みコマンドに従うデータを暗号化し（ＳＴＥＰ１５０９）、暗号化したデータを当該データボリュームに格納する（ＳＴＥＰ１５１０）。これに対して、複製先データボリュームが暗号化されていないと判断される場合（ＳＴＥＰ１５０７のＮｏ）、コントローラ４２ｂは、当該書き込みコマンドに従うデータを、そのままの形で（暗号化せずに）、当該データボリュームに格納する（ＳＴＥＰ１５１０）。
【０１２４】
次に、コントローラ４２ｂは、格納した更新ログのデータサイズに従って、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄Ｔ２０５の更新ログ先頭ポインタを更新する（図１６のＳＴＥＰ１６０１）。コントローラ４２ｂは、さらに、暗号鍵更新管理テーブルＴ４００を参照し、当該ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１６０２）。
【０１２５】
コントローラ４２ｂは、暗号鍵更新状態が「ＯＮ」でない、つまり、新ジャーナルボリュームが存在しないと判断する場合（ＳＴＥＰ１６０２のＮｏ）、リストア処理を終了する。コントローラ４２ａは、次の更新ログ読み出しコマンドを受信した場合に、更新ログ先頭ポインタで示される更新ログから、同様の処理により、転送を行う。
【０１２６】
これに対して、コントローラ４２ｂは、暗号鍵の更新状態が「ＯＮ」である、つまり、新ジャーナルボリュームが存在すると判断する場合（ＳＴＥＰ１６０２のＹｅｓ）、さらに、暗号鍵更新管理テーブルＴ４００における切り替えポインタ欄Ｔ４０３に示されるアドレス（切り替えポインタ）とジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄に示されるアドレス（更新ログ先頭ポインタ）とが一致しているか否かを判断する（ＳＴＥＰ１６０３）。つまり、コントローラ４２ｂは、旧ジャーナルボリュームに処理すべき更新ログがあるか否かを判断する。
【０１２７】
コントローラ４２ｂは、切り替えポインタと更新ログ先頭ポインタとが一致していない、すなわち、旧ジャーナルボリュームに処理すべき更新ログがある、と判断する場合（ＳＴＥＰ１６０３のＹｅｓ）、本処理を終了する。
【０１２８】
これに対して、コントローラ４２ｂは、切り替えポインタと更新ログ先頭ポインタとが一致している、すなわち、旧ジャーナルボリュームに処理すべき更新ログがない、と判断する場合（ＳＴＥＰ１６０３のＮｏ）暗号鍵更新管理テーブルＴ４００の対応するエントリにおける暗号鍵更新状態欄Ｔ４０２を「ＯＦＦ」に設定し（ＳＴＥＰ１６０４）、暗号管理テーブルＴ３００の旧ジャーナルボリュームに割り当てられている暗号鍵を削除する（ＳＴＥＰ１６０５）。
【０１２９】
次に、コントローラ４２ｂは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０４に、格納先ジャーナルボリューム識別子欄に登録されたボリューム識別子を登録する（ＳＴＥＰ１６０６）。そして、コントローラ４２は、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄に、格納先ジャーナルボリューム識別子欄によって識別されるジャーナルボリュームの先頭アドレスを登録し（ＳＴＥＰ１６０７）、本処理を終了する。
【０１３０】
以上のように、本実施形態では、ストレージ装置４は、管理装置５から暗号鍵更新コマンドを受信すると、新ジャーナルボリュームを確保し、新ジャーナルボリュームに新たに生成した暗号鍵を割り当て、これ以降に作成された更新ログを新ジャーナルボリュームに格納する。そして、ストレージ装置４は、ペア関係が定義されたボリュームを有する他のストレージ装置４からの更新ログ読み出しコマンドに従い、旧ジャーナルボリュームに旧暗号鍵で暗号化され格納された更新ログの復号化、転送が完了すると、新ジャーナルボリュームに新暗号鍵で暗号化され格納された更新ログを復号化、転送する。
［第２の実施形態］
【０１３１】
本実施形態は、暗号鍵更新管理テーブルにおいて管理される切り替えポインタに代えて、更新ログ末尾ポインタが示すジャーナルボリュームの記憶領域に、切り替え制御コマンドを書き込んで、これによって、更新ログの格納先を新たなジャーナルボリュームの記憶領域に切り替えることを特徴としている。以下では、第１の実施形態と異なる点を中心に説明する。
【０１３２】
図１７は、本発明の一実施形態に係るストレージ装置４における暗号鍵更新処理を説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ａが管理装置５ａから暗号鍵更新コマンドを受信した場合の、ストレージ装置４ａの動作を説明している。
【０１３３】
システム管理者は、管理装置５ａを操作して、ストレージ装置４ａに対して暗号鍵の更新を指示し、これを受けて管理装置５ａは、暗号鍵更新コマンドをストレージ装置４ａに送信する。暗号鍵更新コマンドは、暗号鍵の更新対象であるジャーナルボリューム（旧ジャーナルボリューム）を識別するためのボリューム識別子及び暗号鍵更新コマンドの発行時刻を含んでいる。
【０１３４】
ストレージ装置４ａのコントローラ４２ａは、管理ネットワーク２Ｂを介して、管理端末５Ａから暗号鍵更新コマンドを受信すると、別の新たなジャーナルボリューム（新ジャーナルボリューム）をディスクドライブ４１上に確保する（ＳＴＥＰ１７０１）。
【０１３５】
次に、コントローラ４２は、例えば暗号鍵更新コマンドの発行時刻や乱数関数を使用して、所定の暗号鍵生成アルゴリズムに従って、新たな暗号鍵を生成し（ＳＴＥＰ１７０２）、暗号管理テーブルＴ３００を更新する（ＳＴＥＰ１７０３）。具体的には、コントローラ４２ａは、暗号管理テーブルＴ３００の対応するエントリにおける暗号化状態欄Ｔ３０２を「オン」にして、生成した暗号鍵を暗号鍵欄に登録する。
【０１３６】
コントローラ４２ａは、続いて、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ末尾ポインタが示す記憶領域に切り替え制御コマンドを書き込む（ＳＴＥＰ１７０４）。切り替え制御コマンドは、新ジャーナルボリューム識別子及び新ジャーナルボリュームの記憶領域の先頭アドレスが含まれる。
【０１３７】
また、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００を参照し、格納先ジャーナルボリューム識別子Ｔ２０２が旧ジャーナルボリュームを示すエントリを抽出し、当該エントリにおける格納先ジャーナルボリューム識別子欄Ｔ２０１に新ジャーナルボリュームのボリューム識別子を登録する（ＳＴＥＰ１７０５）。つまり、格納先ジャーナルボリュームは、旧ジャーナルボリュームから新ジャーナルボリュームに置き換わる。そして、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の当該エントリにおける更新ログ末尾ポインタ欄Ｔ２０３に、新ジャーナルボリュームの記憶領域の先頭アドレスを登録する（ＳＴＥＰ１７０６）。
【０１３８】
すなわち、暗号鍵の更新指示の直前において、旧ジャーナルボリュームが図１８(Ａ)に示される状態であったとする。そして、ストレージ装置４が管理装置５から暗号鍵更新コマンドを受信し、上述した一連の処理を実行すると、旧ジャーナルボリューム及び新ジャーナルボリュームの状態はそれぞれ、図１８(Ｂ)及び(Ｃ)に示される状態になる。つまり、旧ジャーナルボリューム上の更新ログ末尾ポインタが示す記憶領域には、切り替え制御コマンドが書き込まれ（図１８(Ｂ)）、新ジャーナルボリュームの記憶領域に更新ログ末尾ポインタが設定される。暗号鍵更新コマンドを受信し、処理した直後であって、まだ、書き込みコマンドを受信していない状態では、更新ログ末尾ポインタは、新ジャーナルボリューム上の未使用記憶領域の先頭アドレスになる。
【０１３９】
図１９は、本発明の一実施形態に係るストレージシステムにおけるリモートコピーを説明するためのフローチャートであり、具体的には、ストレージ装置４ａがストレージ装置４ｂからリモートコピー要求（更新ログ読み出しコマンド）を受け付けた場合のストレージ装置４ａにおける動作を説明している。
【０１４０】
まず、図１９を参照して、ストレージ装置４ａのコントローラ４２は、ペアボリュームを有するストレージ装置４ｂから更新ログ読み出しコマンドを受信すると、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ読み出しコマンドに含まれるグループ識別子に基づいて対応するエントリを抽出し、当該エントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０４に登録されたボリューム識別子を取得する（ＳＴＥＰ１９０１）。つまり、コントローラ４２ａは、ストレージ装置４ｂに転送すべき更新ログを格納しているジャーナルボリューム（読み出し元ジャーナルボリューム）を特定する。コントローラ４２は、次に、当該読み出し元ジャーナルボリューム上の未転送更新ログの有無をチェックするため、当該エントリにおける更新ログ末尾ポインタ欄に示されるアドレス（更新ログ末尾ポインタ）と更新ログ先頭ポインタに示されるアドレス（更新ログ先頭ポインタ）とが一致しているか否かを判断する（ＳＴＥＰ１９０２）。
【０１４１】
コントローラ４２ａは、更新ログ末尾ポインタと更新ログ先頭ポインタとが一致している、すなわち、未転送更新ログがないと判断する場合（ＳＴＥＰ１９０２のＹｅｓ）、転送すべき更新ログがない旨の応答をストレージ装置４ｂのコントローラに送信し（ＳＴＥＰ１９１１）、当該送信側リモートコピー処理を終了する。
【０１４２】
これに対して、更新ログ末尾ポインタ欄に示されるアドレスと更新ログ先頭ポインタ欄に示されるアドレスとが一致しない、すなわち、未転送更新ログがあると判断する場合（ＳＴＥＰ１９０２のＮｏ）、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ先頭ポインタが示す記憶領域に格納されたデータを読み出して（ＳＴＥＰ１９０３）、読み出したデータが切り替え制御コマンドであるか否かを判断する（ＳＴＥＰ１９０４）。
【０１４３】
コントローラ４２ａは、読み出したデータが切り替え制御コマンドでないと判断する場合（ＳＴＥＰ１９０４のＮｏ）、続いて、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ１９０５）。コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ１９０５のＮｏ）、読み出した更新ログをそのままストレージ装置４ｂに転送する（ＳＴＥＰ１９０８）。
【０１４４】
これに対して、コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ１９０５のＹｅｓ）、暗号管理テーブルＴ３００から当該読み出し元ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ１９０６）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ１９０７）、復号化した更新ログをストレージ装置４ｂに送信する（ＳＴＥＰ１９０８）。
【０１４５】
また、コントローラ４２ａは、読み出したデータが切り替え制御コマンドであると判断する場合（ＳＴＥＰ１９０４のＹｅｓ）、当該切り替えコマンドに含まれるボリューム識別子及び更新ログ末尾ポインタを取得する（ＳＴＥＰ１９０９）。当該ボリューム識別子及び更新ログ末尾ポインタは、新ジャーナルボリュームにおける更新ログが格納される記憶領域の先頭アドレスを示している。続いて、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０４に、取得したボリューム識別子を登録するとともに、更新ログ先頭ポインタ欄Ｔ２０５に取得した更新ログ末尾ポインタを登録する（ＳＴＥＰ１９１０）。その後、コントローラ４２ａは、Ｓ８０１の処理に戻る。
【０１４６】
以上のように、本実施形態では、ストレージ装置４は、管理装置５から暗号鍵更新コマンドを受信すると、新たなジャーナルボリュームを確保して、当該確保したジャーナルボリュームに新たな暗号鍵を割り当る。ストレージ装置４はまた、旧ジャーナルボリュームの更新ログ末尾ポインタが示す記憶領域に、切り替え制御コマンドを格納し、これによって、これ以降に作成された更新ログを新ジャーナルボリュームに格納する。そして、ストレージ装置４は、ペア関係が定義されたボリュームを有する他のストレージ装置４からの更新ログ読み出しコマンドに従い、旧ジャーナルボリュームに旧暗号鍵で暗号化され格納された更新ログの復号化、転送が完了すると、切り替え制御コマンドに従って、新ジャーナルボリュームに新ａ号鍵で暗号化され格納された更新ログを復号化、転送する。
［第３の実施形態］
【０１４７】
本実施形態は、暗号鍵を更新する場合、新たなジャーナルボリュームを確保せずに、既存のジャーナルボリュームに続けて更新ログを格納するメカニズムを提供する。
【０１４８】
図２０は、本発明の一実施形態に係るストレージ装置４における暗号鍵更新管理テーブルＴ４００の構造を説明するための図である。
【０１４９】
同図に示すように、本実施形態の暗号鍵更新管理テーブルＴ４００’は、ジャーナルボリューム識別子欄Ｔ４０１、暗号鍵更新状態欄Ｔ４０２、切り替えポインタ欄Ｔ４０３、旧暗号化状態欄Ｔ４０４、及び旧暗号鍵欄Ｔ４０５を含む。つまり、図７に示した暗号鍵更新管理テーブルＴ４００と比較して、旧暗号化状態欄Ｔ４０４及び旧暗号鍵欄Ｔ４０５が追加されている。
【０１５０】
旧暗号化状態欄Ｔ４０２には、暗号鍵更新コマンドで指定されたジャーナルボリュームの暗号鍵更新コマンド受信前の暗号化状態が登録される。また、旧暗号鍵欄には、鍵更新コマンドの受信前に当該ジャーナルボリュームに割り当てられていた暗号鍵が登録される。
【０１５１】
図２１は、本発明の一実施形態に係るストレージ装置４における暗号鍵更新処理を説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ａが管理装置５ａから暗号鍵更新コマンドを受信した場合の、ストレージ装置４ａの動作を説明している。
【０１５２】
まず、ストレージ装置４ａのコントローラ４２ａは、管理ネットワーク２Ｂを介して、管理端末５Ａから暗号鍵更新コマンドを受信すると、例えば発行時刻や乱数関数を使用して、所定の暗号鍵生成アルゴリズムに従って、新たな暗号鍵を生成する（ＳＴＥＰ２１０１）。
【０１５３】
続いて、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００’を参照し、暗号鍵更新コマンドで指定されたジャーナルボリュームの暗号鍵状態欄Ｔ４０２を「オン」に設定し、切り替えポインタ欄Ｔ４０３に更新ログ末尾ポインタが示すアドレスを登録する（ＳＴＥＰ２１０２）。
【０１５４】
コントローラ４２ａはさらに、暗号鍵更新管理テーブルＴ４００’の旧暗号化状態欄Ｔ４０４に、暗号管理テーブルＴ３００の対応するエントリにおける暗号化状態Ｔ３０２の現在の暗号鍵更新状態を登録する。また、コントローラ４２ａは、当該暗号鍵更新状態が「オン」である場合には、旧暗号鍵欄Ｔ４０５に、暗号管理テーブルＴ３００の対応するエントリにおける暗号鍵欄Ｔ３０３に登録されている暗号鍵を登録する（ＳＴＥＰ２１０３）。つまり、コントローラ４２ａは、暗号鍵更新コマンドの受信直前のジャーナルボリュームの暗号化状態及びその暗号鍵を保存する。これにより暗号管理テーブルＴ３００が更新された場合であっても、古い更新ログを復号化するための情報が保存されることになる。
【０１５５】
次に、コントローラ４２ａは、暗号管理テーブルＴ３００を参照し、暗号鍵更新コマンドで指定されたジャーナルボリュームの暗号化状態欄Ｔ３０２を「オン」にして、新たに生成した暗号鍵を暗号鍵欄に登録する（ＳＴＥＰ２１０４）。
【０１５６】
すなわち、暗号鍵の更新指示の直前において、ジャーナルボリュームが図２２(ａ)に示される状態であったとする。そして、ストレージ装置４が管理装置５から暗号鍵更新コマンドを受信し、上述した一連の処理を実行すると、ジャーナルボリュームの状態は、同図(ｂ)に示される状態になる。つまり、暗号鍵の更新直後は、ジャーナルボリュームの更新ログ末尾ポインタによって示される記憶領域は、同時に、切り替えポインタによって示されることになる。そして、これ以降、書き込み要求に基づいて更新ログが作成され、格納されるごとに、更新ログ末尾ポインタが示すアドレスは、更新されることになる。
【０１５７】
図２３及び図２４は、本発明の一実施形態に係るストレージシステムにおけるリモートコピーを説明するためのフローチャートである。具体的には、同図は、ストレージ装置４ａがストレージ装置４ｂからリモートコピー要求（更新ログ読み出しコマンド）を受け付けた場合のストレージ装置４ａにおける動作を説明している。
【０１５８】
図２３を参照して、ストレージ装置４ａのコントローラ４２ａは、ペアボリュームを有するストレージ装置４ｂから更新ログ読み出しコマンドを受信すると、ジャーナルボリューム管理テーブルＴ２００を参照し、更新ログ読み出しコマンドに含まれるグループ識別子に基づいて、対応するエントリにおける読み出し元ジャーナルボリューム識別子欄Ｔ２０４に登録されたボリューム識別子を取得する（ＳＴＥＰ２３０１）。つまり、コントローラ４２は、ストレージ装置４ｂに転送すべき更新ログを格納しているジャーナルボリューム（読み出し元ジャーナルボリューム）を特定する。
【０１５９】
コントローラ４２ａは、次に、当該読み出し元ジャーナルボリューム上の未転送更新ログの有無をチェックするため、当該エントリにおける更新ログ末尾ポインタと更新ログ先頭ポインタとが一致しているか否かを判断する（ＳＴＥＰ２３０２）。
【０１６０】
コントローラ４２ａは、更新ログ末尾ポインタと更新ログ先頭ポインタとが一致している、すなわち、未転送更新ログがないと判断する場合（ＳＴＥＰ２３０２のＮｏ）、コントローラ４２ａは、転送すべき更新ログがない旨の応答をストレージ装置４ｂのコントローラに送信し（ＳＴＥＰ２３０４）、当該送信側リモートコピー処理を終了する。
【０１６１】
これに対して、更新ログ末尾ポインタと更新ログ先頭ポインタとが一致しない、すなわち、未転送更新ログがあると判断する場合（ＳＴＥＰ２３０２のＹｅｓ）、コントローラ４２ａは、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタが示す記憶領域に格納されたデータを読み出す（ＳＴＥＰ２３０３）。続いて、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００’を参照し、読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＦＦ」であるか否かを判断する（ＳＴＥＰ２３０５）。
【０１６２】
コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＦＦ」であると判断する場合（ＳＴＥＰ２３０５のＹｅｓ）、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２３０６）。コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ２３０６のＮｏ）、読み出した更新ログをそのままストレージ装置４ｂに送信する（ＳＴＥＰ２３１２）。
【０１６３】
これに対して、コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ２３０６のＹｅｓ）、暗号管理テーブルＴ３００から当該読み出し元ジャーナルボリュームに割り当てられている現在の暗号鍵を取得する（ＳＴＥＰ２３０７）。続いて、コントローラ４２ａは、取得した暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ２３０８）、復号化した更新ログをストレージ装置４ｂに送信する（ＳＴＥＰ２３１２）。
【０１６４】
また、コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＦＦ」でないと判断する場合（ＳＴＥＰ２３０５のＮｏ）、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの旧暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２３０９）。コントローラ４２ａは、当該旧暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ２３０９のＮｏ）、読み出した更新ログをそのままストレージ装置４ｂに送信する（ＳＴＥＰ２３１２）。
【０１６５】
これに対して、コントローラ４２ａは、当該読み出し元ジャーナルボリュームの旧暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ２３０９のＹｅｓ）、暗号管理テーブルＴ３００から当該読み出し元ジャーナルボリュームに割り当てられている旧暗号鍵を取得する（ＳＴＥＰ２３１０）。続いて、コントローラ４２ａは、取得した旧暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ２３１１）、復号化した更新ログをストレージ装置４ｂに送信する（ＳＴＥＰ２３１２）。
【０１６６】
コントローラ４２ａは、次に、読み出して転送した更新ログのデータサイズに従って、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄Ｔ２０５を更新する（図２４のＳＴＥＰ２４０１）。つまり、更新ログ先頭ポインタ欄には、未転送更新ログを格納している当該読み出し元ジャーナルボリュームの記憶領域の先頭アドレスが登録される。
【０１６７】
続いて、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００’を参照し、当該読み出し元ジャーナルボリュームについて暗号鍵の更新状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２４０２）。コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ２４０２のＮｏ）、当該送信側リモートコピー処理を終了する。この場合、更新ログが未だ残っている場合には、次の更新ログ送信コマンドに応答して、転送されることになる。
【０１６８】
これに対して、コントローラ４２ａは、当該読み出し元ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」であると判断する場合（ＳＴＥＰ２４０２のＹｅｓ）、さらに、暗号鍵更新管理テーブルＴ４００’における切り替えポインタ欄Ｔ４０３に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレスとが一致しているか否かを判断する（ＳＴＥＰ２４０３）。つまり、コントローラ４２ａは、当該読み出し元ジャーナルボリュームに旧暗号鍵で暗号化された未転送更新ログがあるか否かを判断する。
【０１６９】
コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００’における切り替えポインタ欄Ｔ４０３に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレスとが一致していない、すなわち、当該読み出し元ジャーナルボリュームに旧暗号鍵で暗号化された未転送更新ログがある、と判断する場合（ＳＴＥＰ２４０３のＹｅｓ）、本処理を終了する。
【０１７０】
これに対して、暗号鍵更新管理テーブルＴ４００’における切り替えポインタ欄Ｔ４０３に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレスとが一致している、すなわち、当該読み出し元ジャーナルボリュームに旧暗号鍵で暗号化された未転送更新ログがない、と判断する場合（ＳＴＥＰ２４０３のＮｏ）、コントローラ４２ａは、暗号鍵更新管理テーブルＴ４００の対応するエントリにおける暗号鍵更新状態を「ＯＦＦ」に設定し（ＳＴＥＰ２４０４）、暗号管理テーブルＴ３００のジャーナルボリュームに割り当てられている暗号鍵を削除する（ＳＴＥＰ２４０５）。
【０１７１】
図２５及び図２６は、本発明の一実施形態に係るストレージシステムにおけるリモートコピーを説明するためのフローチャートであり、具体的には、同図は、ストレージ装置４ｂが、ストレージ装置４ａから受信した更新ログに基づいて、データボリュームの複製を作成する処理（リストア処理）を説明する。
【０１７２】
ストレージ装置４ｂのコントローラ４２ｂは、ジャーナルボリューム管理テーブルＴ２００を参照し、読み出し元ジャーナルボリュームのボリューム識別子及び更新ログ先頭ポインタを抽出し（ＳＴＥＰ２５０１）、抽出したボリューム識別子及び更新ログ先頭ポインタで示される領域から更新ログを読み出す（ＳＴＥＰ２５０２）。続いて、コントローラ４２ｂは、暗号鍵更新管理テーブルＴ４００’を参照し、当該ジャーナルボリュームの暗号鍵更新状態が「ＯＦＦ」であるか否かを判断する（ＳＴＥＰ２５０３）。
【０１７３】
コントローラ４２ｂは、当該ジャーナルボリュームの暗号鍵更新状態が「ＯＦＦ」であると判断する場合（ＳＴＥＰ２５０３のＹｅｓ）、さらに、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２５０４）。
【０１７４】
コントローラ４２ｂは、当該読み出し元ジャーナルボリュームの暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ２５０４のＹｅｓ）、暗号管理テーブルＴ３００から当該読み出し元ジャーナルボリュームに割り当てられている暗号鍵を取得する（ＳＴＥＰ２５０５）。続いて、コントローラ４２ｂは、取得した暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ２５０６）、復号化した更新ログから書き込みデータを取得する（ＳＴＥＰ２５１０）。一方、当該読み出し元ジャーナルボリュームが暗号化されていないと判断する場合（ＳＴＥＰ２５０４のＮｏ）、コントローラ４２ｂは、読み出した更新ログから、直接、書き込みデータを取得する（ＳＴＥＰ１９１０）。
【０１７５】
また、コントローラ４２ｂは、当該ジャーナルボリュームの鍵更新状態が「ＯＦＦ」でないと判断する場合（ＳＴＥＰ２５０３のＮｏ）、暗号管理テーブルＴ３００を参照し、当該読み出し元ジャーナルボリュームの旧暗号化状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２５０７）。
【０１７６】
コントローラ４２ｂは、当該読み出し元ジャーナルボリュームの旧暗号化状態が「ＯＮ」であると判断する場合（ＳＴＥＰ２５０７のＹｅｓ）、暗号管理テーブルＴ３００から当該読み出し元ジャーナルボリュームに割り当てられていた旧暗号鍵を取得する（ＳＴＥＰ２５０８）。続いて、コントローラ４２は、取得した旧暗号鍵を使用して、所定の復号アルゴリズムに従って、読み出した更新ログを復号化し（ＳＴＥＰ２５０９）、復号化した更新ログから書き込みデータを取得する（ＳＴＥＰ２５１０）。一方、当該読み出し元ジャーナルボリュームの旧暗号化状態が「ＯＮ」でないと判断する場合（ＳＴＥＰ２５０７のＮｏ）、コントローラ４２ｂは、読み出した更新ログから、直接、書き込みデータを取得する（ＳＴＥＰ２５１０）。
【０１７７】
次に、コントローラ４２ｂは、更新ログに含まれるメタデータに基づいて、ペア管理テーブルＴ１００の対応するエントリにおける複製先データボリューム識別子欄に登録されたボリューム識別子を抽出し、さらに、暗号管理テーブルＴ３００を参照し、当該ボリューム識別子で特定される複製先データボリュームが暗号化されているか否かを判断する（図２６のＳＴＥＰ２６０１）。
【０１７８】
複製先データボリュームの暗号化状態が「ＯＮ」であると判断される場合（ＳＴＥＰ２６０１のＹｅｓ）、コントローラ４２ｂは、暗号管理テーブルＴ３００から当該データボリュームに対する暗号鍵を取得する（ＳＴＥＰ２６０２）。続いて、コントローラ４２ｂは、取得した暗号鍵を使用して、所定の暗号化アルゴリズムに従って、当該書き込みコマンドに従うデータを暗号化し（ＳＴＥＰ２６０３）、暗号化したデータを当該データボリュームに格納する（ＳＴＥＰ２６０４）。これに対して、複製先データボリュームの暗号化状態が「ＯＮ」でないと判断される場合（ＳＴＥＰ２６０１のＮｏ）、コントローラ４２ｂは、当該書き込みコマンドに従うデータを、そのままの形で（暗号化せずに）、当該データボリュームに格納する（ＳＴＥＰ２６０４）。
【０１７９】
次に、コントローラ４２ｂは、格納した更新ログのデータサイズに従って、ジャーナルボリューム管理テーブルＴ２００の対応するエントリにおける更新ログ先頭ポインタ欄Ｔ２０５を更新する（ＳＴＥＰ２６０５）。コントローラ４２ｂは、さらに、暗号鍵更新管理テーブルＴ４００'を参照し、当該ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」であるか否かを判断する（ＳＴＥＰ２６０６）。コントローラ４２ｂは、暗号鍵の更新状態が「ＯＮ」でない、つまり、切り替えポインタが存在しないと判断する場合（ＳＴＥＰ２６０６のＮｏ）、リストア処理を終了する。この場合、更新ログが未だ残っている場合には、次の更新ログ送信コマンドに応答して、転送されることになる。
【０１８０】
これに対して、コントローラ４２ｂは、当該ジャーナルボリュームの暗号鍵更新状態が「ＯＮ」である、つまり、切り替えポインタが存在すると判断する場合（ＳＴＥＰ２６０６のＹｅｓ）、さらに、暗号鍵更新管理テーブルＴ４００’における切り替えポインタ欄Ｔ４０３に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレスとが一致しているか否かを判断する（ＳＴＥＰ２６０７）。つまり、コントローラ４２ｂは、当該読み出し元ジャーナルボリュームに旧暗号鍵で暗号化された更新ログがまだ存在するか否かを判断する。
【０１８１】
コントローラ４２ｂは、暗号鍵更新管理テーブルＴ４００’における切り替えポインタ欄Ｔ４０３に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄Ｔ２０５に示されるアドレスとが一致していない、すなわち、当該ジャーナルボリュームに旧暗号鍵で暗号化された更新ログが存在する、と判断する場合（ＳＴＥＰ２６０７のＹｅｓ）、本処理を終了する。
【０１８２】
これに対して、コントローラ４２ｂは、暗号鍵更新管理テーブルＴ４００における切り替えポインタ欄に示されるアドレスとジャーナルボリューム管理テーブルＴ２００における更新ログ先頭ポインタ欄に示されるアドレスとが一致している、すなわち、当該ジャーナルボリュームに旧暗号鍵で暗号化された更新ログが存在する、と判断する場合（ＳＴＥＰ２６０７のＮｏ）暗号鍵更新管理テーブルＴ４００’の対応するエントリにおける暗号鍵更新状態を「ＯＦＦ」に設定し（ＳＴＥＰ２６０８）、暗号管理テーブルＴ３００の旧ジャーナルボリュームに割り当てられている暗号鍵を削除して（ＳＴＥＰ２６０５）、処理を終了する。
【０１８３】
以上のように、本実施形態では、ストレージ装置４は、暗号鍵更新コマンドを受信すると、更新ログ末尾ポインタが示す記憶領域に切り替えポインタを設定し、切り替えポインタより前に格納された更新ログについては古い暗号鍵で復号化し、切り替えポインタより後に格納された更新ログについて新しい暗号鍵で復号化する。そのため、ジャーナルボリュームで使用する暗号鍵を更新することができる。
【産業上の利用可能性】
【０１８４】
本発明は、リモートコピー機能を備えるストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１８５】
【図１】本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。
【図２】本発明の一実施形態に係るストレージ装置の構成を示す図である。
【図３】本発明の一実施形態に係るストレージ装置におけるペア管理テーブルの構造を説明するための図である。
【図４】本発明の一実施形態に係るストレージ装置におけるジャーナルボリューム管理テーブルの構造を説明するための図である。
【図５】本発明の一実施形態に係るストレージ装置におけるジャーナルボリュームに対する更新ログ先頭ポインタ及び更新ログ末尾ポインタの関係を説明する図である。
【図６】本発明の一実施形態に係るストレージ装置における暗号管理テーブルの構造を説明するための図である。
【図７】本発明の一実施形態に係るストレージ装置における暗号鍵更新管理テーブルの構造を説明するための図である。
【図８】本発明の一実施形態に係るストレージ装置における書き込み要求に基づく処理を説明するためのフローチャートである。
【図９】本発明の一実施形態に係るストレージ装置における読み出し要求に基づく処理を説明するためのフローチャートである。
【図１０】本発明の一実施形態に係るストレージ装置における暗号鍵更新処理を説明するためのフローチャートである。
【図１１】本発明の一実施形態に係るストレージ装置における旧ジャーナルボリュームと新ジャーナルボリュームとの関係を説明するための図である。
【図１２】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１３】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１４】本発明の一実施形態に係るストレージシステムの複製先ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１５】本発明の一実施形態に係るストレージシステムの複製先ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１６】本発明の一実施形態に係るストレージシステムの複製先ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１７】本発明の一実施形態に係るストレージ装置における暗号鍵更新処理を説明するためのフローチャートである。
【図１８】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図１９】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図２０】本発明の一実施形態に係るストレージ装置における暗号鍵更新管理テーブルの構造を説明するための図である。
【図２１】本発明の一実施形態に係るストレージ装置における暗号鍵更新処理を説明するためのフローチャートである。
【図２２】本発明の一実施形態に係るストレージ装置における更新ログが格納されるべきジャーナルボリューム上の記憶領域を説明するための図である。
【図２３】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図２４】本発明の一実施形態に係るストレージシステムの複製元ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図２５】本発明の一実施形態に係るストレージシステムの複製先ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【図２６】本発明の一実施形態に係るストレージシステムの複製先ストレージ装置におけるリモートコピー処理を説明するためのフローチャートである。
【符号の説明】
【０１８６】
１…コンピュータシステム
２Ａ…ストレージネットワーク
２Ｂ…管理ネットワーク
３…ホスト装置
４…ストレージ装置
４１…ディスクドライブ
４２…コントローラ
【図１】
0004964714.tif 000002
【図２】
0004964714.tif 000003
【図３】
0004964714.tif 000004
【図４】
0004964714.tif 000005
【図５】
0004964714.tif 000006
【図６】
0004964714.tif 000007
【図７】
0004964714.tif 000008
【図８】
0004964714.tif 000009
【図９】
0004964714.tif 000010
【図１０】
0004964714.tif 000011
【図１１】
0004964714.tif 000012
【図１２】
0004964714.tif 000013
【図１３】
0004964714.tif 000014
【図１４】
0004964714.tif 000015
【図１５】
0004964714.tif 000016
【図１６】
0004964714.tif 000017
【図１７】
0004964714.tif 000018
【図１８】
0004964714.tif 000019
【図１９】
0004964714.tif 000020
【図２０】
0004964714.tif 000021
【図２１】
0004964714.tif 000022
【図２２】
0004964714.tif 000023
【図２３】
0004964714.tif 000024
【図２４】
0004964714.tif 000025
【図２５】
0004964714.tif 000026
【図２６】
0004964714.tif 000027