(57)【特許請求の範囲】
【請求項１】
ホスト計算機から送信されるデータを記憶領域に書き込むストレージシステムであって、
前記ホスト計算機から送信される前記データを書き込むための第１のボリューム、前記第１のボリュームに書き込まれた前記データをジャーナルデータとして時系列に識別可能に書き込むための第２のボリューム、前記第１のボリュームに対するスナップショットのデータを書き込むための第３のボリューム、とを設定する記憶領域設定部と、
所定のタイミングで、前記第１のボリュームに対するスナップショットを取得し、前記スナップショットのデータを前記第３のボリュームに書き込み、前記スナップショットのスナップショットジャーナルを前記第２のボリュームに書き込むと共に、前記スナップショットの管理情報を管理するスナップショット取得管理部と、
前記ホスト計算機から指定されたリカバリボリュームを作成するときのリカバリポイントジャーナルを取得し、前記リカバリポイントジャーナルを前記第２のボリュームに書き込むリカバリポイント取得部と、
前記リカバリボリュームを作成するときに、前記指定されたリカバリボリュームに対応するリカバリポイントジャーナルより前で、かつ当該リカバリポイントジャーナルに一番近い前記スナップショットジャーナルに対応する前記スナップショットの管理情報をリカバリボリューム管理情報として複製するスナップショット管理テーブル複製部と、
前記複製されたリカバリボリューム管理情報が管理するアドレスを、前記スナップショットジャーナルから、前記指定されたリカバリボリュームまでの、前記第２のボリュームに書き込まれた前記ジャーナルデータが書き込まれたアドレスに変更して、前記複製されたリカバリボリューム管理情報を更新することにより、仮想的に前記リカバリボリュームを作成するリカバリボリューム作成部と
を備え、
前記リカバリボリュームへの読み出し要求があった場合、前記リカバリボリューム作成部は、前記更新されたリカバリボリューム管理情報に基づいて、前記読み出し要求の対象となるデータを、前記第２のボリューム又は、前記第３のボリュームから読み出し、前記第２のボリュームから、前記リカバリポイントジャーナルを読むまで、前記ジャーナルデータを読み出すことによって、前記読み出し要求の対象となるデータを読み出すことを特徴とするストレージシステム。
【請求項２】
前記リカバリボリューム作成部は、
前記ホスト計算機から前記リカバリボリュームへの書込み要求があった場合には、新たに前記リカバリボリュームの記憶領域を割り当てて、前記ホスト計算機から送信される前記データを書き込む
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記リカバリボリューム作成部は、
前記リカバリボリュームの作成中に前記リカバリボリュームへの書込み要求があった場合には、当該書込み要求があったアドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを前記アドレスに対応する記憶領域に順次書き込み、当該アドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを書き込み終わった後に、前記ホスト計算機から送信される前記データを前記アドレスに対応する記憶領域に書き込む
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記リカバリボリューム作成部は、
前記リカバリボリュームの作成中に前記リカバリボリュームへの読出し要求があった場合には、当該書込み要求があったアドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを前記アドレスに対応する記憶領域に順次書き込み、当該アドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを書き込み終わった後に、前記アドレスに対応する記憶領域に書き込まれている前記ジャーナルデータを前記ホスト計算機に読み出す
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記スナップショット管理テーブル複製部は、
前記スナップショットの管理情報をリカバリボリューム管理情報として複製すると、前記ホスト計算機に前記リカバリボリュームの作成を完了した旨の応答を送信し、
前記リカバリボリューム作成部は、
前記スナップショット管理テーブル複製部により前記ホスト計算機に前記リカバリボリュームの作成を完了した旨の応答を送信した後、前記リカバリボリュームを作成する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記リカバリポイント取得部は、
前記ホスト計算機からの要求に基づいて作成される第１のリカバリジャーナル及び前記ホスト計算機からの要求を伴わずに作成される第２のリカバリポイントジャーナルを識別して取得し、
自システム内に、
前記第２のボリュームの使用容量の閾値を予め所定の閾値に設定する閾値設定部と、
前記リカバリボリュームを作成することが可能な一番古い時間であるリカバリ可能時間を管理するリカバリ可能時間管理部と、
前記閾値設定部により設定された前記閾値を越えたときに、前記リカバリ可能時間の一番近くであり、かつ前記第２のリカバリポイントジャーナル以前の前記ジャーナルデータ、前記スナップショットジャーナル及び前記リカバリポイントジャーナルを前記第２のボリュームから削除するジャーナル削除部と
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項７】
ホスト計算機から送信されるデータを記憶領域に書き込むストレージシステムのリカバリボリューム作成方法であって、
前記ホスト計算機から送信される前記データを書き込むための第１のボリューム、前記第１のボリュームに書き込まれた前記データをジャーナルデータとして時系列に識別可能に書き込むための第２のボリューム、前記第１のボリュームに対するスナップショットのデータを書き込むための第３のボリュームを設定する第１のステップと、
所定のタイミングで、前記第１のボリュームに対するスナップショットを取得し、前記スナップショットのデータを前記第３のボリュームに書き込み、前記スナップショットのスナップショットジャーナルを前記第２のボリュームに書き込むと共に、前記スナップショットの管理情報を管理する第２のステップと、
前記ホスト計算機から指定されたリカバリボリュームを作成するときのリカバリポイントジャーナルを取得し、前記リカバリポイントジャーナルを前記第２のボリュームに書き込む第３のステップと、
前記リカバリボリュームを作成するときに、前記指定されたリカバリボリュームに対応するリカバリポイントジャーナルより前で、かつ当該リカバリポイントジャーナルに一番近い前記スナップショットジャーナルに対応する前記スナップショットの管理情報をリカバリボリューム管理情報として複製する第４のステップと、
前記複製されたリカバリボリューム管理情報が管理するアドレスを、前記スナップショットジャーナルから、前記指定されたリカバリボリュームまでの、前記第２のボリュームに書き込まれた前記ジャーナルデータが書き込まれたアドレスに変更して、前記複製されたリカバリボリューム管理情報を更新することにより、仮想的に前記リカバリボリュームを作成する第５のステップと、
前記リカバリボリュームへの読み出し要求があった場合、前記更新されたリカバリボリューム管理情報に基づいて、前記読み出し要求の対象となるデータを、前記第２のボリューム又は、前記第３のボリュームから読み出し、前記第２のボリュームから、前記リカバリポイントジャーナルを読むまで、前記ジャーナルデータを読み出すことによって、前記読み出し要求の対象となるデータを読み出す第６のステップと、
を備えることを特徴とするストレージシステムのリカバリボリューム作成方法。
【請求項８】
前記第５のステップでは、
前記ホスト計算機から前記リカバリボリュームへの書込み要求があった場合には、新たに前記リカバリボリュームの記憶領域を割り当てて、前記ホスト計算機から送信される前記データを書き込む
ことを特徴とする請求項７に記載のストレージシステムのリカバリボリューム作成方法。
【請求項９】
前記第５のステップでは、
前記リカバリボリュームの作成中に前記リカバリボリュームへの書込み要求があった場合には、当該書込み要求があったアドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを前記アドレスに対応する記憶領域に順次書き込み、当該アドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを書き込み終わった後に、前記ホスト計算機から送信される前記データを前記アドレスに対応する記憶領域に書き込む
ことを特徴とする請求項７に記載のストレージシステムのリカバリボリューム作成方法。
【請求項１０】
前記第５のステップでは、
前記リカバリボリュームの作成中に前記リカバリボリュームへの読出し要求があった場合には、当該書込み要求があったアドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを前記アドレスに対応する記憶領域に順次書き込み、当該アドレスに対応する前記第２のボリュームに書き込まれた前記ジャーナルデータを書き込み終わった後に、前記アドレスに対応する記憶領域に書き込まれている前記ジャーナルデータを前記ホスト計算機に読み出す
ことを特徴とする請求項７に記載のストレージシステムのリカバリボリューム作成方法。
【請求項１１】
前記第４のステップでは、
前記スナップショットの管理情報をリカバリボリューム管理情報として複製すると、前記ホスト計算機に前記リカバリボリュームの作成を完了した旨の応答を送信し、
前記第５のステップでは、
前記第４のステップにおいて前記ホスト計算機に前記リカバリボリュームの作成を完了した旨の応答を送信した後、前記リカバリボリュームを作成する
ことを特徴とする請求項７に記載のストレージシステムのリカバリボリューム作成方法。
【請求項１２】
前記第３のステップでは、
前記ホスト計算機からの要求に基づいて作成される第１のリカバリジャーナル及び前記ホスト計算機からの要求を伴わずに作成される第２のリカバリポイントジャーナルを識別して取得し、
自システム内において、
前記第２のボリュームの使用容量の閾値を予め所定の閾値に設定する閾値設定ステップと、
前記リカバリボリュームを作成することが可能な一番古い時間であるリカバリ可能時間を管理するリカバリ可能時間管理ステップと、
前記閾値設定ステップにおいて設定した前記閾値を越えたときに、前記リカバリ可能時間の一番近くであり、かつ前記第２のリカバリポイントジャーナル以前の前記ジャーナルデータ、前記スナップショットジャーナル及び前記リカバリポイントジャーナルを前記第２のボリュームから削除するジャーナル削除ステップと
を備えることを特徴とする請求項７に記載のストレージシステムのリカバリボリューム作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット機能及びジャーナル機能を有するストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
企業情報システムのデータを格納するストレージシステムは、従来からデータ保護という役割を担っている。データ保護へのニーズなどから、ストレージシステムの分野では、企業情報システムを停止することなく、データのコピーであるレプリケーションを取得し、災害やオペレーションミスが発生した場合に、瞬時にレプリケーションからデータを修復し、ある過去の運用状態に再形成（以下、この処理を「リカバリ」と呼ぶ）するためのスナップショット機能やジャーナル機能などが提案されている。
【０００３】
スナップショット機能とは、ストレージシステムが、ホスト計算機からスナップショット指示を受領すると、その時刻の記憶領域のデータを別の記憶領域へコピーすることによって、レプリケーションを作成する機能である。ストレージシステムでは、定期的にスナップショット機能を実行することにより、データのレプリケーションを間欠的に取得しておくことが可能となる。また、スナップショット機能を用いた場合、ユーザは、スナップショットを取得したポイントにおいてリカバリを行なうことが可能となる。
【０００４】
ジャーナル機能とは、ストレージシステムがホスト計算機から書込み要求を受領すると、書込みに関する制御情報や書込み対象のデータからなるジャーナルを作成し、保存する機能である。特許文献１には、スナップショット機能によって取得したスナップショットに、ジャーナル内の書込み対象のデータを書き込むことによって、スナップショットを作成したポイント以外のポイントにおいて実行されるリカバリ処理について開示されている。このように、ジャーナル機能とスナップショット機能を併用することで、少数のスナップショットから多数のポイントにおけるリカバリが可能となる。
【特許文献１】特開２００５−１８７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のストレージシステムでは、ホスト計算機から指定されたポイントへのリカバリ処理を実行する際に、ホスト計算機から指定されたポイントまでのリカバリを実現するために、リカバリ対象のすべてのデータを書き込むための物理的な記憶領域を確保しなければならず、この結果、膨大な記憶領域が必要となるという問題がある。
【０００６】
また、特許文献１のストレージシステムでは、ホスト計算機から指定されたポイントへのリカバリ処理を実行する際に、スナップショットに対して、ホスト計算機から指定されたポイントまで直接リカバリ処理を実行するため、当該スナップショットを破壊することとなると共に、同一のスナップショットから、リカバリ処理を実行することができなくなるという問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、記憶領域の運用効率を格段的に向上させ得る信頼性の高いストレージシステム及びそのリカバリボリューム作成方法を提案するものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するために本発明においては、ホスト計算機から送信されるデータを記憶領域に書き込むストレージシステムであって、ホスト計算機から送信されるデータを書き込むための第１の記憶領域、第１の記憶領域に書き込まれたデータをジャーナルデータとして時系列に識別可能に書き込むための第２の記憶領域、第１の記憶領域のデータに対するホスト計算機からの書込み要求があったときに、当該第１の記憶領域のデータを書き込むための第３の記憶領域を設定する記憶領域設定部と、所定のタイミングで、第１の記憶領域に対するスナップショットを取得し、スナップショットのスナップショットジャーナルを第２の記憶領域に書き込むと共に、スナップショットの管理テーブルを管理するスナップショット取得管理部と、ホスト計算機から指定されたリカバリボリュームを作成するときのリカバリポイントジャーナルを取得し、リカバリポイントジャーナルを第２の記憶領域に書き込むリカバリポイント取得部と、リカバリボリュームを作成するときに、指定されたリカバリボリュームに対応するリカバリポイントジャーナルより前で、かつ当該リカバリポイントジャーナルに一番近いスナップショットジャーナルに対応するスナップショットの管理テーブルを複製するスナップショット管理テーブル複製部と、スナップショット管理テーブル複製部により複製されたスナップショットの管理テーブルを、スナップショットジャーナルから、指定されたリカバリボリュームに対応するリカバリポイントジャーナルまでの、第２の記憶領域に書き込まれたジャーナルデータに基づいて更新することにより、リカバリボリュームを作成するリカバリボリューム作成部とを備える。
【０００９】
従って、第１の記憶領域及び第３の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することなく、スナップショットジャーナルから、指定されたリカバリボリュームまでの第２の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することで、リカバリボリュームを作成することができると共に、スナップショットの管理テーブルを破壊することなく、同一のスナップショットの管理テーブルから、何度でもリカバリボリュームを作成することができる。
【００１０】
また、本発明においては、ホスト計算機から送信されるデータを記憶領域に書き込むストレージシステムのリカバリボリューム作成方法であって、ホスト計算機から送信されるデータを書き込むための第１の記憶領域、第１の記憶領域に書き込まれたデータをジャーナルデータとして時系列に識別可能に書き込むための第２の記憶領域、第１の記憶領域のデータに対するホスト計算機からの書込み要求があったときに、当該第１の記憶領域の前記データを書き込むための第３の記憶領域を設定する第１のステップと、所定のタイミングで、第１の記憶領域に対するスナップショットを取得し、スナップショットのスナップショットジャーナルを第２の記憶領域に書き込むと共に、スナップショットの管理テーブルを管理する第２のステップと、ホスト計算機から指定されたリカバリボリュームを作成するときのリカバリポイントジャーナルを取得し、リカバリポイントジャーナルを第２の記憶領域に書き込む第３のステップと、リカバリボリュームを作成するときに、指定されたリカバリボリュームに対応するリカバリポイントジャーナルより前で、かつ当該リカバリポイントジャーナルに一番近いスナップショットジャーナルに対応するスナップショットの管理テーブルを複製する第４のステップと、第４のステップにおいて複製したスナップショットの管理テーブルを、スナップショットジャーナルから、指定されたリカバリボリュームに対応するリカバリポイントジャーナルまでの、第２の記憶領域に書き込まれたジャーナルデータに基づいて更新することにより、リカバリボリュームを作成する第５のステップとを備える。
【００１１】
従って、第１の記憶領域及び第３の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することなく、スナップショットジャーナルから、指定されたリカバリボリュームまでの第２の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することで、リカバリボリュームを作成することができると共に、スナップショットの管理テーブルを破壊することなく、同一のスナップショットの管理テーブルから、何度でもリカバリボリュームを作成することができる。
【発明の効果】
【００１２】
本発明によれば、リカバリボリュームを作成するときに、指定されたリカバリボリュームに対応するリカバリポイントジャーナルより前で、かつ当該リカバリポイントジャーナルに一番近いスナップショットジャーナルに対応するスナップショットの管理テーブルを複製し、複製したスナップショットの管理テーブルを、スナップショットジャーナルから、指定されたリカバリボリュームに対応するリカバリポイントジャーナルまでの、第２の記憶領域に書き込まれたジャーナルデータに基づいて更新することにより、リカバリボリュームを作成することにより、第１の記憶領域及び第３の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することなく、スナップショットジャーナルから、指定されたリカバリボリュームまでの第２の記憶領域に書き込まれているデータ分の物理的な記憶領域を確保することで、リカバリボリュームを作成することができると共に、スナップショットの管理テーブルを破壊することなく、同一のスナップショットの管理テーブルから、何度でもリカバリボリュームを作成することができ、かくして、記憶領域の運用効率を格段的に向上させ得る信頼性の高い記憶システム並びにストレージシステム及びそのリカバリボリューム作成方法を実現できる。
【発明を実施するための最良の形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）本実施の形態による記憶システムの構成
図１は、本実施の形態による記憶システム１の構成を示す。この記憶システム１は、複数のホスト計算機２がネットワーク３を介してストレージシステム４に接続されることにより構成されている。また、記憶システム１は、複数のホスト計算機２、管理端末５及び管理サーバ６が第２のネットワーク７を介して接続されることにより構成されている。
【００１５】
上位装置としてのホスト計算機２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームコンピュータなどから構成される。ホスト計算機２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えている。
【００１６】
第１のネットワーク３は、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。この第１のネットワーク３を介したホスト計算機２及びストレージシステム４間の通信は、例えば、第１のネットワーク３がＳＡＮである場合には、ファイバーチャネルプロトコルに従って行われ、第１のネットワーク３がＬＡＮである場合には、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。第２のネットワーク７は、例えば、ＬＡＮ、インターネット、公衆回線又は専用回線などから構成される。この第２のネットワーク７を介したホスト計算機２、管理端末５及び管理サーバ６間の通信は、例えば、第２のネットワーク７がＬＡＮである場合には、ＴＣＰ／ＩＰプロトコルに従って行われる。
【００１７】
ストレージシステム４は、データの入出力を制御するコントロール部１０と、データを記憶する複数のディスクデバイス２１からなる記憶デバイス部２０とを備えて構成されている。
【００１８】
コントロール部１０は、複数のチャネルアダプタ１１、接続部１２、共有メモリ１３、キャッシュメモリ１４及び複数のディスクアダプタ１５を備えて構成されている。
【００１９】
各チャネルアダプタ１１は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、それぞれ第１のネットワーク３や他のストレージシステム等に接続するためのポートを備える。チャネルアダプタ１１は、ホスト計算機２から第１のネットワーク３を介して送信される各種コマンドを解釈して対応する処理を実行する。各チャネルアダプタ１１のポートには、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられており、これにより各チャネルアダプタ１１がそれぞれ個別にＮＡＳ（Network Attached Storage）として振る舞うことができるようになされている。
【００２０】
接続部１２は、チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５と接続されている。チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５間でのデータやコマンドの授受は、この接続部１２を介して行われる。接続部１２は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ等で構成されている。
【００２１】
共有メモリ１３及びキャッシュメモリ１４は、チャネルアダプタ１１及びディスクアダプタ１５により共有される記憶メモリである。共有メモリ１３には、図２に示すように、ストレージシステム４全体の構成に関する種々のシステム構成情報、各種プログラムや各種テーブルを記憶されている。また、共有メモリ１３は、書込み要求や読出し要求等のコマンドを記憶するために利用される。なお、本実施の形態において、共有メモリ１３に記憶されている各種プログラムや各種テーブルについては、後述する。また、キャッシュメモリ１４は、主に、ストレージシステム４に入出力する書込み対象や読出し対象のデータを一時的に記憶するために利用される。
【００２２】
各ディスクアダプタ１５は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成され、記憶デバイス部２０内のディスクデバイス２１との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ１５は、例えば、ファイバーチャネルケーブルを介して記憶デバイス部２０内の対応するディスクデバイス２１と接続されており、ファイバーチャネルプロトコルに従って、これらディスクデバイス２１との間のデータの授受を行う。
【００２３】
一方、記憶デバイス部２０のディスクデバイス２１としては、例えば、ＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクが適用される他、ディスクデバイス以外のフラッシュメモリ等の半導体メモリにも適用することもできる。
【００２４】
記憶デバイス部２０の各ディスクデバイス２１は、コントロール部１０によりＲＡＩＤ（Redundant Array of Independent Disks）方式で運用される。１又は複数のディスクデバイス２１により提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）が設定される。そしてデータは、この論理ボリューム内に所定大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。また、１又は複数の論理ボリューム上に、さらに、１又は複数の論理ボリュームが設定されることもある。
【００２５】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit Number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２６】
管理端末５は、ストレージシステム４全体の動作を制御する端末装置であり、例えば、ノート型のパーソナルコンピュータから構成される。管理端末５は、ＬＡＮ１６を介して各チャネルアダプタ１１及び各ディスクアダプタ１５とそれぞれ接続されている。オペレータは、管理端末５を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ１１又はディスクアダプタ１５と接続部１２とを経由して、共有メモリ１３に書き込むことができる。
【００２７】
管理サーバ６は、ホスト計算機２、及び管理端末５を介してストレージシステム４の状態や構成変更等を管理するコンピュータシステムである。管理サーバ６は、ホスト計算機２及び管理端末１６と第２のネットワーク７を介して接続されており、ホスト計算機２、及び管理端末５を介してストレージシステム４の各制御状態を示す情報を取得し、また、ホスト計算機２、及び管理端末５を介してストレージシステム４に各種の指示を与えるようになされている。
【００２８】
ここで、この記憶システム１におけるホスト計算機２及びストレージシステム４間のデータの入出力の流れについて説明する。ホスト計算機２は、ユーザ操作によりストレージシステム４に設定された論理ボリュームに対してデータを書き込むべき旨の指令が入力されると、これに応じた書込み要求及び書込み対象のデータを、ストレージシステム４の所定のチャネルアダプタ１１に送信する。かかる書込み要求には、ストレージシステム４がそれぞれ提供する記憶領域上に設定された各論理ボリュームにそれぞれ付与された仮想的なＬＵと、当該記憶領域内の全ての論理ブロックに通し番号で付与された仮想的なＬＢＡとを組み合わせでなる、書込み対象のデータを書き込むべき仮想的なアドレスが含まれる。
【００２９】
この書込み要求を受信したストレージシステム４のチャネルアダプタ１１は、当該書込み要求において指定された、データを書き込むべき仮想的なアドレスを、ストレージシステム４が認識している実際のアドレスに変更する。そのための手段として、ストレージシステム４の共有メモリ１３には、ストレージシステム４が提供する記憶領域の実際のアドレスと、ホスト計算機２が認識している当該記憶領域の仮想的なアドレスとを対応付けたアドレス変換テーブル（図示せず）が格納されている。そしてチャネルアダプタ１１は、このアドレス変換テーブルを参照して、書込み要求に含まれる、データを書き込むべき仮想的なアドレスを、ストレージシステム４が認識する実際のアドレスに書き換える。
【００３０】
そして、かかるチャネルアダプタ１１は、この書き換えたデータ書込み要求を、共有メモリ１３に書き込む。また、チャネルアダプタ１１は、データを書き込むべきスロット領域をキャッシュメモリ１４に確保して、書込み対象のデータをキャッシュメモリ１４に書き込む。
【００３１】
このときディスクアダプタ１５は、共有メモリ１３を常時監視しており、適当なタイミングで、仮想的な論理アドレス指定による書込み要求を、実際の物理アドレス指定による書込み要求に変換し、さらにキャッシュメモリ１４から書込み対象のデータを読み出して、これを対応するディスクデバイス２１の対応するアドレス位置に書き込む。
【００３２】
一方、ホスト計算機２は、ユーザ操作によりストレージシステム４内の所定の論理ボリュームに記憶されているデータを読み出すべき旨の指令が入力されると、これに応じた読出し要求を、ストレージシステム４内の所定のチャネルアダプタ１１に送信する。この場合にも、かかる読出し要求には、読出し対象のデータが書き込まれている位置の仮想的なアドレスが含まれる。
【００３３】
このデータ読出し要求を受信したストレージシステム４のチャネルアダプタ１１は、当該読出し要求に含まれる、データを読み出すべき仮想的なアドレスを、上述のアドレス変換テーブルを用いて、ストレージシステム４が認識している実際のアドレスに書き換える。
【００３４】
そして、かかるチャネルアダプタ１１は、この書き換えた読出し要求を、共有メモリ１３に書き込む。また対応するディスクアダプタ１５は、共有メモリ１３に読出しコマンドが書き込まれたことを検出すると、キャッシュメモリ１４内に読出し対象のデータが書き込まれているか否かを判断し、読出し対象のデータが書き込まれている場合には、読出し要求完了応答を共有メモリ１３に書き込む。これに対して、ディスクアダプタ１５は、読出し対象のデータが書き込まれていない場合には、論理アドレス指定による読出し要求を物理アドレス指定による読出し要求に変換して、このアドレスに基づいて、対応するディスクデバイス２０の対応するアドレス位置から指定された読出し対象のデータを読み出す。
【００３５】
また、かかるディスクアダプタ１５は、このディスクデバイス２１から読み出した読出し対象のデータをキャッシュメモリ１４に書き込むと共に、読出し要求完了応答を共有メモリ１３に書き込む。
【００３６】
そして、チャネルアダプタ１１は、共有メモリ１３を常時監視しており、共有メモリ１３に読出し要求完了応答が書き込まれたことを検出すると、この読出し要求完了応答に従って、キャッシュメモリ１４から読出し対象のデータを読み出し、第１のネットワーク３を介して対応するホスト計算機２に送信する。
【００３７】
このようにしてこの記憶システム１では、ホスト計算機２から送信された書込み要求又は読出し要求に応じて、ホスト計算機２から送信されるデータを、ストレージシステム４が提供する記憶領域に読み書きし得るようになされている。
【００３８】
（２）本実施の形態によるリカバリボリュームへの読書き処理
次に、本実施の形態の論理ボリュームの構成について説明する。図３は、本実施の形態における論理ボリュームの構成を示している。この場合、ストレージシステム４には、当該ストレージシステム４内のあるホスト計算機２から送信される書込み対象のデータが書き込まれる論理ボリューム４１(以下、「データボリューム」と呼ぶ)と、ジャーナルが書き込まれる論理ボリューム４２（以下、「ジャーナルボリューム」と呼ぶ）と、ある時刻のデータボリューム４１のデータが書き込まれる論理ボリューム４３（以下、「スナップショットボリューム」と呼ぶ）と、ホスト計算機２から指定される任意の時点の論理ボリューム４４（以下、「リカバリボリューム」と呼ぶ）が設定される。この場合、ジャーナルボリューム４２、スナップショットボリューム４３及びリカバリボリューム４４については、プールボリューム４５上に設定される。また、データボリューム４１及びプールボリューム４５については、複数のディスクデバイス２１により提供される物理的な記憶領域上に設定される。
【００３９】
ストレージシステム４は、ホスト計算機２から書込み要求を受信すると、データボリューム４１に書込み対象のデータを書き込んで、データボリューム４１に書き込まれたデータをジャーナルボリューム４２にジャーナルとして書き込み、ホスト計算機２からスナップショット作成要求を受信すると、データボリューム４１のスナップショットボリューム４３を取得する（後述）。また、ストレージシステム４は、リカバリボリューム作成要求に基づいて、リカバリボリューム４４を作成し、書込み要求及び読出し要求に基づいて、データボリューム４１、ジャーナルボリューム４２及びスナップショットボリューム４３からデータを読み出して、当該リカバリボリューム４４への読書きをする（後述）。
【００４０】
このとき、ストレージシステム４では、ホスト計算機２から指定されたリカバリボリューム４４を作成するときに、指定されたリカバリポイントジャーナル２３０（後述）より前で、かつ当該指定されたリカバリポイントジャーナル２３０に一番が近いスナップショットジャーナル２２０（後述）に対応するスナップショット管理テーブル３３（後述）を複製し、スナップショット管理テーブル３３を、スナップショットジャーナル２２０から、指定されたリカバリポイントジャーナル２３０までのジャーナルボリューム４２に書き込まれたジャーナルデータ２１４（後述）に基づいて更新することにより、リカバリボリューム４４を作成する。
【００４１】
次に、本実施の形態のリカバリボリューム４４を構成するための構成情報について説明する。図４は、本実施の形態におけるリカバリボリューム構成情報３１を示している。リカバリボリューム構成情報３１は、図２に示すように、共有メモリ１３に書き込まれている。リカバリボリューム構成情報３１は、図４のようにリカバリボリュームグループ番号５１、データボリューム情報５２、ジャーナルボリューム情報５３、スナップショットボリューム情報５４、リカバリボリューム情報５５、プールボリューム情報５６及びリカバリ可能時間５７を有している。
【００４２】
リカバリボリュームグループ番号５１は、各リカバリボリューム４４が使用する論理ボリュームのグループその他の構成情報を一意に識別するための識別番号を有している。データボリューム情報５２は、リカバリボリューム４４が使用するデータボリューム４１を一意に識別するための識別番号を示すデータボリューム番号等を有している。ジャーナルボリューム情報５３は、リカバリボリューム４４が使用するジャーナルボリューム４２を一意に識別するための識別番号を示すジャーナルボリューム番号等を有している。
【００４３】
スナップショットボリューム情報５４は、図５に示すように、リカバリボリューム４４が使用するスナップショットボリューム４３を一意に識別するための識別番号を示すスナップボリューム番号６１、スナップショットボリューム４３のプールボリューム４５の使用容量を示すプールボリューム使用容量６２、スナップショットボリューム４３を作成した時間を示すスナップショット作成時間６３及びスナップショットボリューム４３のスナップショットジャーナルのアドレスを示すスナップショットジャーナルアドレス６４を有している。
【００４４】
リカバリボリューム情報５５は、図６に示すように、リカバリボリューム４４を一意に識別するための識別番号を示すリカバリボリューム番号７１、リカバリボリューム４４がスナップショットボリューム、記憶領域を動的に割り当てるボリューム、ホスト計算機２により任意の時点に指定されたボリューム等、どのような用途のボリュームとして使用されているかを示すボリューム使用用途７２、リカバリボリューム４４のプールボリューム４５の使用容量を示すプールボリューム使用容量７３、リカバリボリューム４４を使用するホスト計算機２のエミュレーションタイプを示すエミュレーションタイプ７４、リカバリボリューム４４がスナップショットボリュームである場合にはスナップショットボリューム番号、リカバリボリューム４４がホスト計算機２により任意の時点に指定されたボリュームである場合には指定された時間等、用途の詳細に示すボリューム用途詳細７５を有している。
【００４５】
プールボリューム情報５６は、リカバリボリューム４４が使用するプールボリューム４５を一意に識別するための識別番号を示すプールボリューム番号等を有している。リカバリ可能時間５７は、リカバリボリューム４４を作成することが可能な一番古い時間を有している。
（２−１）本実施の形態による各種機能
次に、本実施の形態の各種機能について説明する。図７は、本実施の形態におけるスナップショット機能、ジャーナル機能及びリカバリポイントを用いたバックアップ方法について模式的に述べ、本実施の形態の基本概要を示している。
【００４６】
図７の矢印１００は、ジャーナルボリューム４２の内容を時系列で示しており、矢印１１０はスナップショット取得状況を時系列に示している。
【００４７】
矢印１００に重ねて示しているブロック１０１、１０２及び１０３は、ジャーナルを示しており、１つのブロックが１つのジャーナルに対応する。ブロック１０１の中に示している「ＪＮＬ」は、あるデータボリューム４１に対して、その時点でホスト計算機２からの書込み要求に対して作成したジャーナルであることを意味する。ブロック１０２の中に示している「ＳＳ」は、その時点で、あるデータボリューム４１に対するスナップショットを取得した場合に、スナップショットに関する情報として、スナップショットボリューム４３の識別情報などを格納する特殊なジャーナル（以下、「スナップショットジャーナル」と呼ぶ）であることを意味する。ブロック１０３の中に示している「ＲＰ」は、その時点で、あるデータボリューム４１に対するリカバリポイントを取得した場合に、リカバリポイントの情報として、リカバリボリューム４４の識別情報などを格納する特殊なジャーナル（以下、「リカバリポイントジャーナル」と呼ぶ）であることを意味する。なお、ジャーナル、スナップショットジャーナル、リカバリポイントジャーナルに格納される情報の詳細については、図９を用いて後述する。
【００４８】
また、図７の各ブロックにおいて、「ＳＳ」、「ＪＮＬ」、「ＲＰ」の前に示す数字は、それぞれのジャーナルに付与された連続番号であるシーケンス番号（以下、「ＳＥＱ番号」と呼ぶ）の値を示す。ホスト計算機２及びストレージシステム４は、ＳＥＱ番号によって、各ジャーナルを一意に識別することが可能となる。
【００４９】
次に、図７の矢印１１０に重ねて示しているスナップショットボリューム１１１、１１３（４３）及びリカバリボリューム１１２（４４）について説明する。スナップショットボリューム１１１、１１３（４３）は、それぞれ、そのポイントにおいて、あるデータボリューム４１に対するスナップショットを取得済みであり、この時刻のデータボリューム４１のデータイメージを再形成できることを意味している。つまり、スナップショットボリューム１１１（４３）は、ＳＥＱ番号が「１」のスナップショットジャーナルに対応してスナップショットが取得され、作成される論理ボリュームであり、スナップショットボリューム１１３（４３）は、ＳＥＱ番号が「６」のスナップショットジャーナルに対応してスナップショットが取得され、作成される論理ボリュームであることを意味する。
【００５０】
そして、矢印１１０に重ねて示しているリカバリボリューム１１２（４４）は、そのポイントでのリカバリ処理に備えてリカバリポイントを取得済みであり、リカバリ処理においてこのリカバリボリューム４４のデータイメージを再形成できることを意味している。つまり、リカバリボリューム１１２（４４）は、ＳＥＱ番号が「４」のリカバリポイントジャーナルに対応して、そのポイントでデータを復元する場合に作成される論理ボリュームである。例えば、ホスト計算機２のユーザ等からリカバリ処理の要求を受けた場合、当該リカバリポイントのデータ（リカバリボリューム１１２（４４））は、スナップショットボリューム１１１（４３）に対してＳＥＱ番号が「２」及び「３」にジャーナルされているジャーナルデータを順次書き込むことによって生成される。
【００５１】
次に、本実施の形態のソフトウェア機能であるスナップショット機能について説明する。図８は、スナップショット機能の詳細について示している。スナップショット機能は、前述のように、ストレージシステム４が、データボリューム４１に含まれるデータを、スナップショットボリューム４３へコピーすることによって、ある時刻のデータボリュームのレプリケーションを作成する機能である。このレプリケーションのことを単にスナップショットと呼ぶこともある。
【００５２】
図８に示すスナップショット作成に関する概念図を用いて、スナップショット作成の動作を簡単に説明する。ストレージシステム４は、図８に示すように、スナップショットを作成するスナップショット作成プログラム３２、作成したスナップショット情報を管理するスナップショット管理テーブル３３及びコピー済みビットマップ３４を有している。コピー済みビットマップとは、データボリューム４１内のアドレスごとに、当該アドレスに格納されているデータがスナップショットボリューム４３にコピー済みか否かを示す情報である。ここでは、あるアドレスのコピー済みビットマップの値が「オフ（OFF）」の場合はコピー済み、「オン（ON）」の場合は未コピーを表すものとする。この場合、スナップショット作成プログラム３２及びスナップショット管理テーブル３３及びコピー済みビットマップ３４は、図２に示すように、共有メモリ１３に書き込まれている。
【００５３】
ここで、スナップショットを取得する動作について説明する。ストレージシステム４は、ホスト計算機２から、データボリューム４１とコピー対象となるスナップショットボリューム４３とが指定されたスナップショット作成要求を受信すると、コピー済みビットマップ３４の内容を全て「オン」とする。次に、ストレージシステム４は、データボリューム４１からスナップショットボリューム４３へデータをコピーするとき、コピーが完了したアドレスに対するコピー済みビットマップの値を「オフ」へと変更する。さらに、ストレージシステム４は、ホスト計算機２から書込み要求受信したときにも、コピー済みビットマップ３４を参照し、書込み対象のアドレスに対するコピー済みビットマップの値が「オン」であれば、その時点でデータボリューム４１からスナップショットボリューム４３へ書込み対象のアドレスに書き込まれているデータをコピーし、コピー済みビットマップを「オフ」へ変更する。ストレージシステム４は、そのコピー完了後、ホスト計算機２からの書込み対象のデータをデータボリューム４１に書き込む。
【００５４】
これにより、ストレージシステム４は、ホスト計算機２からの書込み要求を受信しつつ、スナップショット作成要求を受信した時刻におけるデータボリューム４１のスナップショットを作成することができる。
【００５５】
また、ストレージシステム４は、ホスト計算機２からのスナップショット作成要求に基づきスナップショット作成したが、当該ストレージシステム４からのスナップショット作成要求に基づいてスナップショットを作成することも可能である。
【００５６】
また、ストレージシステム４は、コピー済みビットマップ３４をスナップショットボリューム情報５４として有してもよい。これにより、ストレージシステム４では、１つのデータボリューム４１から複数のスナップショットボリューム４３を作成する場合、コピー済みビットマップ３４をそれぞれのスナップショットが保持することで、コピー済みビットマップ３４の管理を単純化することができる。
【００５７】
図８は、スナップショット管理テーブル３３を示している。スナップショット管理テーブル３３は、スナップショットボリュームのアドレスを示すスナップショットアドレス１２１及びスナップショットアドレス１２１のデータが実際に書き込まれているアドレスを示すデータ書込みアドレス１２２を有している。これにより、ストレージシステム４では、例えば、所定のスナップショットボリューム４３に対する読出し要求があった場合には、スナップショット管理テーブル３３を参照し、データボリューム４１又はプールボリューム４５からデータを読み出すことによって、ホスト計算機２に対して、当該スナップショットボリューム４３を提供することができるようになされている。
【００５８】
次に、本実施の形態のソフトウェア機能であるジャーナル機能の詳細について説明する。ストレージシステム４では、スナップショット機能を用いると、スナップショットを作成したポイントのデータ（スナップショットボリューム４３）のみをリカバリできるが、ジャーナル機能をスナップショット機能と併用することで、少数のスナップショットから多数のポイントのデータ（リカバリボリューム４４）をリカバリすることができる。以下に、実現方法の概要を述べる。
【００５９】
ストレージシステム４は、ホスト計算機２から書込み要求を受信すると、ジャーナル機能によって、書き込みに関する制御情報(時刻や書込み対象のアドレスなど)及び書込み対象のデータからなるジャーナルを作成し、記憶しておく。そして、ストレージシステム４は、データをリカバリする際には、スナップショットに対してジャーナルデータを書き込むことで(以後、スナップショットにジャーナルを適用すると表現する)、スナップショットを作成したポイント以外のデータのリカバリも行なうことができる。
【００６０】
さらに、ストレージシステム４では、例えば、ホスト計算機２が有するアプリケーションにエラーが検出された場合やホスト計算機２のユーザにより、特定のリカバリポイントを作成するように指示される場合がある。これに対して、ストレージシステム４では、ストレージシステム４が検出したイベントに基づいて、特定のリカバリポイントを作成する場合がある。このように、ストレージシステム４では、ホスト計算機２からの書込み要求以外のポイントにおいて、ホスト計算機２又は当該ストレージシステム４がリカバリポイントの取得を要求する場合について説明する。（詳細については、図１３を用いて後述する）。
【００６１】
まず、ホスト計算機２は、ストレージシステム４に対して、リカバリポイント作成要求を発行する。そして、ストレージシステム４は、当該リカバリポイント作成要求に基づき、リカバリポイントを管理し、当該リカバリポイントへのリカバリを制御する。
【００６２】
ストレージシステム４は、図７において説明したように、書込み要求に対応するジャーナル、スナップショット作成要求を受信したポイントにおいて作成したスナップショットジャーナル、リカバリポイント作成要求を受信したポイントにおいて作成したリカバリポイントジャーナルに対してシーケンシャル番号（ＳＥＱ番号）を付与する。以上の処理によって、例えば、スナップショットは、１０時、１１時のように１時間おきにしか取得しないが、１０時３０分にリカバリポイントを作成しておけば、１０時に取得しておいたスナップショットボリューム４３に対して、１０時のスナップショットジャーナルの直後のジャーナル（ＳＥＱ番号が次のジャーナル）から１０時３０分のリカバリポイントジャーナルの直前のジャーナルまでを適用することで１０時３０分のデータボリューム４１のデータをリカバリすることが可能となる。
【００６３】
ストレージシステム４は、ジャーナル機能によるリカバリのため、次のプログラム及び管理情報を有する。ストレージシステム４は、書込み要求に対してジャーナル、スナップショット作成要求に対してスナップショットジャーナル及びリカバリポイント作成要求に対してリカバリポイントジャーナルの作成を制御し、ジャーナル、スナップショットジャーナル及びリカバリポイントジャーナルの削除を制御するジャーナル制御プログラム３５、リカバリポイントを管理するリカバリポイント管理テーブル３６、ジャーナルが有するシーケンシャルな番号を管理するＳＥＱ番号管理テーブル３７、リカバリポイントに割り当てられる番号を管理するリカバリポイント番号管理テーブル３８及びホスト計算機２からのリカバリボリューム作成要求に基づいてリカバリ処理を制御し、リカバリボリューム４４への読書き処理を制御するリカバリ制御プログラム３９を有している。この場合、ジャーナル制御プログラム３５、リカバリポイント管理テーブル３６、ＳＥＱ番号管理テーブル３７、リカバリポイント番号管理テーブル３８及びリカバリ制御プログラム３９は、図２に示すように、共有メモリ１３に書き込まれている。
【００６４】
次に、ジャーナルのフォーマットに関して説明する。図１０は、本実施の形態によるジャーナルフォーマットの構成を示している。ジャーナルには、上述のように、書込み要求に対するジャーナル、スナップショット作成要求に対するスナップショットジャーナル、リカバリポイント作成要求に対するリカバリポイントジャーナルの３種類があるが、いずれのジャーナルについてもフォーマットは同様である。ジャーナルフォーマットは、図１０（Ａ）に示すように、ジャーナル２００の属性として、ＳＥＱ番号２０１、時刻２０２、種別２０３、データ２０４、ボリューム番号２０５、アドレス２０６、データ長２０７及びコメント２０８を有している。
【００６５】
ＳＥＱ番号２０１は、書込み要求に対応するジャーナル、スナップショットジャーナル、リカバリポイントジャーナルに対して一意に付与される連続番号であるシーケンス番号が格納である。時刻２０２は、それぞれのジャーナルに対して、ストレージシステム４が書込み要求に対応する書込み対象のデータを更新した時刻情報、ストレージシステム４がスナップショットを取得した時刻情報、ストレージシステム４がリカバリポイントを作成した時刻情報である。
【００６６】
種別２０３は、ジャーナル、スナップショットジャーナル、リカバリポイントジャーナルのいずれであるかを識別するための情報である。データボリューム番号２０５には、それぞれのジャーナルに対して、書込み要求の対象となるデータボリューム３１の識別情報、スナップショットを作成する対象のデータボリューム３１の識別情報、リカバリポイントを作成する対象のリカバリボリューム４４の識別情報である。
【００６７】
データ２０４、アドレス２０６及びデータ長２０７は、書込み要求に対応するジャーナルを作成する場合、それぞれ、書込み要求によって更新されたデータ、データボリューム３１に書き込まれたデータのアドレス情報、当該データのデータ長である。なお、種別２０３がスナップショットジャーナル、リカバリポイントジャーナルの場合には、データ２０４、アドレス２０６及びデータ長２０７は、何も書き込まれない。コメント２０８は、例えば、ホスト計算機２のユーザにより入力されたコメント等である。
【００６８】
ジャーナルフォーマットには、前述の属性以外にも、例えば、スナップショットジャーナルに対してコピー先のスナップショットボリューム４３の識別情報を付与しても良い。
【００６９】
図６（Ｂ）、（Ｃ）、（Ｄ）は、書込み要求に対するジャーナル２１０、スナップショットジャーナル２２０及びリカバリポイントジャーナル２３０の具体例を示している。例えば、図６（Ｃ）のスナップショットジャーナル２２０は、ＳＥＱ番号２０１が「１００」のスナップショットジャーナルであり、「2005/10/21 14:50:46」の時刻において、ボリューム番号２０５が「２」であるデータボリューム３１に対して、スナップショットを取得したことを示している。これらのジャーナルは、ジャーナル制御プログラム３５が作成し、ジャーナルボリューム４２に書き込まれる。
【００７０】
次に、本実施の形態におけるストレージシステム４のホスト計算機２からの書込み要求に基づいてジャーナルを作成するジャーナル作成処理について説明する。図１１は、このストレージシステム４におけるジャーナル作成処理に関する具体的な処理手順を示したフローチャートである。
【００７１】
ストレージシステム４のチャネルアダプタ１１は、初期時、ジャーナル制御プログラム３５を実行することにより、図１１に示すジャーナル作成処理手順ＲＴ１に従って、ホスト計算機２から書込み要求を受信するのを待機モードで待ち受ける（Ｓ１）。
【００７２】
やがて、チャネルアダプタ１１は、ホスト計算機２から書込み要求を受信する（Ｓ１：ＹＥＳ）と、書込み要求に対応する書込み対象のデータを、データボリューム４１に書き込む（Ｓ２）。
【００７３】
続いて、チャネルアダプタ１１は、ＳＥＱ番号管理テーブル３７からＳＥＱ番号を取得し、その後、後続のジャーナル作成のためのＳＥＱ番号を用意しておくため、当該取得したＳＥＱ番号に「１」を加えて、ＳＥＱ番号管理テーブル３７を更新する（Ｓ３）。
【００７４】
続いて、チャネルアダプタ１１は、取得したＳＥＱ番号及びデータボリューム４１に書き込んだデータ等に基づいてジャーナルを作成し、ジャーナルボリューム４２に書き込む（Ｓ４）。続いて、チャネルアダプタ１１は、書込み要求完了応答をホスト計算機２に送信する（Ｓ５）。やがて、チャネルアダプタ１１は、この後、図１１に示すジャーナル成処理手順ＲＴ１を終了する（Ｓ６）。
【００７５】
次に、本実施の形態におけるストレージシステム４のホスト計算機２からのリカバリポイント作成要求に基づいてリカバリポイントジャーナルを作成するリカバリポイントジャーナル作成処理について説明する。ストレージシステム４では、ホスト計算機２からのリカバリポイント作成要求に基づいて、リカバリポイントジャーナルを作成する場合と、ホスト計算機２からのリカバリポイント作成要求を伴わずに（ストレージシステム４が検出したイベントに基づいて）リカバリポイントを作成する場合とに分かれている。
【００７６】
図１２は、リカバリポイント管理テーブル３６を示している。リカバリポイント管理テーブル３６は、リカバリポイントを一意に識別するための識別番号を示すリカバリポイント番号２４１、ストレージシステム４がリカバリポイントを作成した時刻を示す作成時刻２４２、リカバリポイントジャーナルが対象とするリカバリボリュームを一意に識別するための識別番号を示すリカバリボリューム番号２４３、リカバリポイントジャーナルのＳＥＱ番号を示すリカバリポイントジャーナルＳＥＱ番号２４４及びストレージシステム４が検出したイベントを示すイベント２４５を有している。なお、ホスト計算機２からのリカバリポイント作成要求に基づいて、リカバリポイントジャーナルを作成する場合には、「ホスト計算機要求」と書き込まれる。
【００７７】
これにより、ストレージシステム４では、いつ、どのようなイベントを契機として、どのリカバリボリューム４４のリカバリポイントを作成したかを認識することができるようになされている。なお、リカバリボリューム４４の作成前には、リカバリボリューム番号２４３は、何も書き込まれない。
【００７８】
ここで、本実施の形態におけるストレージシステム４のホスト計算機２からの書込み要求、又はイベントの検出に基づいてリカバリポイントジャーナルを作成するリカバリポイントジャーナル作成処理について説明する。図１３は、このストレージシステム４におけるリカバリポイントジャーナル作成処理に関する具体的な処理手順を示したフローチャートである。
【００７９】
チャネルアダプタ１１は、初期時、ジャーナル制御プログラム３５を実行することにより、図１３に示すリカバリポイントジャーナル作成処理手順ＲＴ２に従って、ホスト計算機２からリカバリポイント作成要求を受信、又はイベントを検出するのを待機モードで待ち受ける（Ｓ１１）。
【００８０】
やがて、チャネルアダプタ１１は、ホスト計算機２からリカバリポイント作成要求を受信、又はイベントを検出する（Ｓ１１：ＹＥＳ）と、作成するリカバリポイントに割り当てるリカバリポイント番号をリカバリポイント番号管理テーブル３８から取得し、その後、後続のリカバリポイントジャーナル作成のためのリカバリポイント番号を用意しておくため、当該取得したリカバリポイント番号に「１」を加えて、リカバリポイント番号管理テーブル３８を更新する（Ｓ１２）。
【００８１】
続いて、チャネルアダプタ１１は、ＳＥＱ番号管理テーブル３７からＳＥＱ番号を取得し、その後、後続のジャーナル作成のためのＳＥＱ番号を用意しておくため、当該取得したＳＥＱ番号に「１」を加えて、ＳＥＱ番号管理テーブル３７を更新する（Ｓ１３）
【００８２】
続いて、チャネルアダプタ１１は、取得したＳＥＱ番号等に基づいてリカバリポイントジャーナルを作成し、ジャーナルボリューム４２に書き込む（Ｓ１４）。続いて、チャネルアダプタ１１は、取得したリカバリポイント番号等に基づいて図１２に示したリカバリポイントの情報をリカバリポイント管理テーブル３６に追加する（Ｓ１５）。続いて、チャネルアダプタ１１は、ホスト計算機２からリカバリポイント作成要求を受信した場合には、リカバリポイント作成要求完了応答をホスト計算機２に送信する（Ｓ１６）。やがて、チャネルアダプタ１１は、この後、図１３に示すリカバリポイントジャーナル作成処理手順ＲＴ２を終了する（Ｓ１７）。
【００８３】
（２−２）本実施の形態によるリカバリボリューム作成処理
次に、本実施の形態におけるストレージシステム４のホスト計算機２からのリカバリボリューム作成要求に基づいてリカバリボリューム４４を作成するリカバリボリューム作成処理について説明する。図１４及び図１５は、このストレージシステム４におけるリカバリボリューム作成処理に関する具体的な処理手順を示したフローチャートである。また、図１６は、かかるリカバリボリューム作成処理の内容を概略的に示した概念図である。
【００８４】
チャネルアダプタ１１は、初期時、リカバリ制御プログラム３９を実行することにより、図１４及び図１５に示すリカバリボリューム作成処理手順ＲＴ３に従って、ホスト計算機２からリカバリボリューム作成要求を受信するのを待機モードで待ち受ける（Ｓ２１）。
【００８５】
やがて、チャネルアダプタ１１は、ホスト計算機２からリカバリボリューム作成要求を受信する（Ｓ２１：ＹＥＳ）と、リカバリボリューム作成要求により指定されたリカバリボリューム番号が正常であるか否かをチェックする（Ｓ２２）。そして、チャネルアダプタ１１は、リカバリボリューム作成要求により指定されたリカバリボリューム番号が正常である場合（Ｓ２２：ＹＥＳ）には、リカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０がリカバリボリューム構成情報３１のリカバリ可能時間５７の範囲内であるか否かをチェックする（Ｓ２３）。そして、チャネルアダプタ１１は、リカバリボリューム４４の作成する時間が、リカバリボリューム構成情報３１のリカバリ可能時間５７の範囲内である場合（Ｓ２３：ＹＥＳ）には、リカバリボリューム作成要求のその他のパラメータが正常であるか否かをチェックする（Ｓ２４）。
【００８６】
そして、チャネルアダプタ１１は、リカバリボリューム作成要求のその他のパラメータが正常である場合（Ｓ２４：ＹＥＳ）には、リカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０より前で、かつ当該指定されたリカバリポイントジャーナル２３０に一番位置が近いスナップショットジャーナル２２０のスナップショット管理テーブル３３を、リカバリボリューム管理テーブル４０として複製する（Ｓ２５）。この場合、リカバリボリューム管理テーブル４０は、図２及び図１６に示すように、共有メモリ１３に書き込まれる。
【００８７】
図１７は、リカバリボリューム管理テーブル４０を示している。リカバリボリューム管理テーブル４０は、リカバリボリューム４４のアドレスを示すリカバリボリュームアドレス３０１及びスナップショットアドレス３０１のデータが実際に書き込まれているアドレスを示すデータ書込みアドレス３０２を有している。なお、リカバリボリューム管理テーブル４０は、スナップショット管理テーブル３３を複製しているため、リカバリボリュームアドレス３０１及びデータ書込みアドレス３０２の対応については、スナップショットボリュームアドレス１２１及びデータ書込みアドレス１２２の対応と変わらないこととなる。
【００８８】
続いて、チャネルアダプタ１１は、リカバリボリューム作成要求完了応答をホスト計算機２に送信する（Ｓ２６）。このように、チャネルアダプタ１１は、リカバリボリューム管理テーブル４０として複製した後に、リカバリボリューム作成要求完了応答をホスト計算機２に送信し、その後、実際のリカバリボリューム作成処理を実行することにより、リカバリボリューム４４を迅速に作成することができ、かくして、ホスト計算機２に対する応答性を向上することができる。
【００８９】
これに対して、チャネルアダプタ１１は、リカバリボリューム作成要求により指定されたリカバリボリューム番号が正常でない場合（Ｓ２２：ＮＯ）、リカバリボリューム４４の作成する時間が、リカバリボリューム構成情報３１のリカバリ可能時間５７の範囲内でない場合（Ｓ２３：ＮＯ）又はリカバリボリューム作成要求のその他のパラメータが正常でない場合（Ｓ２４：ＮＯ）には、リカバリボリューム作成要求エラー応答をホスト計算機２に送信し（Ｓ３５）、この後、図１４及び図１５に示すリカバリボリューム作成処理手順ＲＴ３を終了する（Ｓ３６）。
【００９０】
続いて、チャネルアダプタ１１は、リカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０より前で、かつ当該指定されたリカバリポイントジャーナル２３０に一番位置が近いスナップショットポイントジャーナル２２０より後のジャーナルを検索し、ジャーナル２１０のジャーナルデータ２１４をジャーナルボリューム４２から読み出す（Ｓ２７）。
【００９１】
続いて、チャネルアダプタ１１は、ジャーナルボリューム４２から読み出したジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されているか否かをチェックする（Ｓ２８）。そして、チャネルアダプタ１１は、ジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されていない場合（Ｓ２８：ＮＯ）には、ジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域をプールボリューム４５に確保する（Ｓ２９）。
【００９２】
これに対して、チャネルアダプタ１１は、ジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されている場合（Ｓ２８：ＹＥＳ）、又はジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域をプールボリューム４５に確保した場合（Ｓ２９）には、プールボリューム４５に確保されたリカバリボリューム４４のスロット領域に対応させて、リカバリボリューム４４のスロット領域をキャッシュメモリ１４に確保する（Ｓ３０）。
【００９３】
続いて、チャネルアダプタ１１は、ジャーナルボリューム４２から読み出したジャーナル２１０のジャーナルデータ２１４を、キャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ３１）。
【００９４】
続いて、チャネルアダプタ１１は、リカバリボリューム管理テーブル４０のデータ書込みアドレス３０２を、書き込まれたキャッシュメモリ１４の領域に対応するリカバリボリューム４４のスロット領域におけるプールボリューム４５のアドレスに変更することにより、リカバリボリューム管理テーブル４０を更新する（Ｓ３２）。
【００９５】
例えば、書き込まれたキャッシュメモリ１４の領域に対応するリカバリボリューム４４のスロット領域のリカバリボリュームアドレス３０１が「２」であり、書き込まれたキャッシュメモリ１４の領域に対応するリカバリボリューム４４のスロット領域におけるプールボリューム４５のアドレスが「プールボリューム「４」」である場合、リカバリボリューム管理テーブル４０のデータ書込みアドレス３０２の「プールボリューム「２０」」を「プールボリューム「４」」に変更することにより、リカバリボリューム管理テーブル４０を更新するようになされている。
【００９６】
これにより、チャネルアダプタ１１は、リカバリボリューム４４のリカバリボリュームアドレス３０１が「２」のデータに対する読出し要求があった場合には、リカバリボリューム管理テーブル４０を参照し、リカバリボリューム４４のスロット領域に対応して確保したデータ書込みアドレス３０２が「プールボリューム「４」」のプールボリューム４５からデータを読み出すことができるようになされている。
【００９７】
続いて、チャネルアダプタ１１は、ジャーナルデータ２１４を読み出したジャーナル２１０の次のジャーナルを検索し、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０であるか否かをチェックする（Ｓ３３）。
【００９８】
そして、チャネルアダプタ１１は、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０でない場合（Ｓ３３：ＮＯ）には、次のジャーナル２１０のジャーナルデータ２１４をジャーナルボリューム４２から読み出し（Ｓ３４）、この後、再び、ジャーナルボリューム４２から読み出したジャーナル２１０のジャーナルデータ２１４を書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されているか否かをチェックし（Ｓ２８）、この後、同様の処理を繰り返す（Ｓ２８〜Ｓ３４−Ｓ２８）。
【００９９】
これに対して、チャネルアダプタ１１は、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０である場合（Ｓ３３：ＹＥＳ）には、リカバリボリューム４４の作成が完了し、この後、図１４及び図１５に示すリカバリボリューム作成処理手順ＲＴ３を終了する（Ｓ３６）。
【０１００】
（２−３）本実施の形態によるリカバリボリュームへの書込み処理
次に、本実施の形態におけるストレージシステム４のホスト計算機２からのリカバリボリューム４４への書込み要求に基づいて、書込み対象のデータをリカバリボリューム４４に書き込むリカバリボリューム書込み処理について説明する。図１９及び図２０は、このストレージシステム４におけるリカバリボリューム書込み処理に関する具体的な処理手順を示したフローチャートである。また、図２１は、かかるリカバリボリューム書込み処理の内容を概略的に示した概念図である。
【０１０１】
チャネルアダプタ１１は、初期時、リカバリ制御プログラム３９を実行することにより、図１９及び図２０に示すリカバリボリューム書込み処理手順ＲＴ４に従って、ホスト計算機２からリカバリボリューム４４への書込み要求を受信するのを待機モードで待ち受ける（Ｓ４１）。
【０１０２】
やがて、チャネルアダプタ１１は、ホスト計算機２からリカバリボリューム４４への書込み要求を受信する（Ｓ４１：ＹＥＳ）と、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されているか否かをチェックする（Ｓ４２）。そして、チャネルアダプタ１１は、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されていない場合（Ｓ４２：ＮＯ）には、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域をプールボリューム４５に確保する（Ｓ４３）。
【０１０３】
これに対して、チャネルアダプタ１１は、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されている場合（Ｓ４２：ＹＥＳ）、又は書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域をプールボリューム４５に確保した場合（Ｓ４３）には、プールボリューム４５に確保されたリカバリボリューム４４のスロット領域に対応させて、リカバリボリューム４４のスロット領域をキャッシュメモリ１４に確保する（Ｓ４４）。
【０１０４】
続いて、チャネルアダプタ１１は、リカバリボリューム管理テーブル４０を参照し、リカバリボリューム４４のスロット領域に対応するデータがデータボリューム４１に書き込まれているか否かをチェックする（Ｓ４５）。そして、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域に対応するデータがデータボリューム４１に書き込まれている場合（Ｓ４５：ＹＥＳ）には、対応するデータボリューム４１のデータを読み出して、キャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ４６）。
【０１０５】
これに対して、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域に対応するデータがデータボリューム４１に書き込まれていない場合（Ｓ４５：ＮＯ）、又は対応するデータボリューム４１のデータをキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込んだ場合（Ｓ４６）には、リカバリボリューム管理テーブル４０を参照し、リカバリボリューム４４のスロット領域に対応するデータがプールボリューム４５に書き込まれているか否かをチェックする（Ｓ４７）。そして、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域に対応するデータがプールボリューム４５に書き込まれている場合（Ｓ４７：ＹＥＳ）には、対応するプールボリューム４５のデータを読み出して、キャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ４８）。
【０１０６】
これに対して、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域に対応するデータがプールボリューム４５に書き込まれていない場合（Ｓ４７：ＮＯ）、又は対応するプールボリューム４５のデータをキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込んだ場合（Ｓ４８）には、リカバリボリューム４４のスロット領域に対応するジャーナル２１０のジャーナルデータ２１４を、ジャーナルボリューム４２からキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ４９）。
【０１０７】
続いて、チャネルアダプタ１１は、ジャーナルデータ２１４を読み出したジャーナル２１０の次のジャーナルを検索し、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０であるか否かをチェックする（Ｓ５０）。
【０１０８】
そして、チャネルアダプタ１１は、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０でない場合（Ｓ５０：ＮＯ）には、ジャーナルボリューム４２に次のジャーナルがあるか否かをチェックする（Ｓ５１）。そして、チャネルアダプタ１１は、ジャーナルボリューム４２に次のジャーナルがある場合（Ｓ５１：ＹＥＳ）には、この後、再び、次のリカバリボリューム４４のスロット領域に対応するジャーナル２１０のジャーナルデータ２１４を、ジャーナルボリューム４２からキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込み（Ｓ４９）、この後、同様の処理を繰り返す（Ｓ４９〜Ｓ５１−Ｓ４９）。
【０１０９】
これに対して、チャネルアダプタ１１は、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されている場合（Ｓ４２：ＹＥＳ）には、リカバリボリューム４４が作成中であり、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域について、リカバリ処理を終了しているか否かをチェックする（Ｓ５２）。
【０１１０】
そして、チャネルアダプタ１１は、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域について、リカバリ処理を終了していない場合（Ｓ５２：ＮＯ）には、プールボリューム４５に確保されたリカバリボリューム４４のスロット領域に対応させて、リカバリボリューム４４のスロット領域をキャッシュメモリ１４に確保し（Ｓ４４）、この後、同様の処理を繰り返す（Ｓ４４〜Ｓ５１−Ｓ４９）。
【０１１１】
これに対して、チャネルアダプタ１１は、書込み対象のデータを書き込むためのリカバリボリューム４４のスロット領域について、リカバリ処理を終了している場合（Ｓ５２：ＹＥＳ）には、リカバリボリューム４４のスロット領域がキャッシュメモリ１４に確保されているか否かをチェックする（Ｓ５３）。そして、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域がキャッシュメモリ１４に確保されていない場合（Ｓ５３：ＮＯ）には、リカバリボリューム４４のスロット領域をキャッシュメモリ１４に確保する（Ｓ５４）。
【０１１２】
これに対して、チャネルアダプタ１１は、リカバリボリューム４４のスロット領域がキャッシュメモリ１４に確保されている場合（Ｓ５３：ＹＥＳ）、又はリカバリボリューム４４のスロット領域をキャッシュメモリ１４に確保した場合（Ｓ５４）には、リカバリボリューム管理テーブル４０を参照し、リカバリボリューム４４のスロット領域に対応するプールボリューム４５のデータをキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ５５）。
【０１１３】
そして、チャネルアダプタ１１は、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０である場合（Ｓ５０：ＹＥＳ）、ジャーナルボリューム４２に次のジャーナルがない場合（Ｓ５１：ＮＯ）、又はリカバリボリューム４４のスロット領域に対応するプールボリューム４５のデータをキャッシュメモリ１４に書き込んだ場合（Ｓ５５）には、ホスト計算機２から送信された書込み対象のデータをキャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込む（Ｓ５６）。
【０１１４】
続いて、チャネルアダプタ１１は、リカバリボリューム管理テーブル４０のデータ書込みアドレス３０２を、書き込まれたキャッシュメモリ１４の領域に対応するリカバリボリューム４４のスロット領域におけるプールボリューム４５のアドレスに変更することにより、リカバリボリューム管理テーブル４０を更新する（Ｓ５７）。
【０１１５】
続いて、チャネルアダプタ１１は、リカバリボリューム４４への書込み要求完了応答をホスト計算機２に送信する（Ｓ５８）。やがて、チャネルアダプタ１１は、この後、図１９及び図２０に示すリカバリボリューム書込み処理手順ＲＴ４を終了する（Ｓ５９）。
【０１１６】
（２−４）本実施の形態によるリカバリボリュームへの読出し処理
次に、本実施の形態におけるストレージシステム４のホスト計算機２からのリカバリボリューム４４への読出し要求に基づいて、読出し対象のデータをリカバリボリューム４４から読み出すリカバリボリューム読出し処理について説明する。図２２及び図２３は、このストレージシステム４におけるリカバリボリューム読出し処理に関する具体的な処理手順を示したフローチャートである。また、図２４は、かかるリカバリボリューム読出し処理の内容を概略的に示した概念図である。
【０１１７】
チャネルアダプタ１１は、初期時、リカバリ制御プログラム３９を実行することにより、図２２及び図２３に示すリカバリボリューム読出し処理手順ＲＴ５に従って、ホスト計算機２からリカバリボリューム４４への読出し要求を受信するのを待機モードで待ち受ける（Ｓ６１）。
【０１１８】
やがて、チャネルアダプタ１１は、ホスト計算機２からリカバリボリューム４４への読出し要求を受信する（Ｓ６１：ＹＥＳ）と、読出し対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されているか否かをチェックする（Ｓ４２）。そして、チャネルアダプタ１１は、読出し対象のデータを書き込むためのリカバリボリューム４４のスロット領域がプールボリューム４５に確保されていない場合（Ｓ４２：ＮＯ）には、図１９及び図２０において上述したリカバリボリューム書込み処理手順ＲＴ４のステップＳ４３〜ステップＳ５５と同様の処理を実行する（Ｓ６３〜ＳＰ７５）。
【０１１９】
そして、チャネルアダプタ１１は、次のジャーナルがリカバリボリューム作成要求により指定されたリカバリポイントジャーナル２３０である場合（Ｓ５０：ＹＥＳ）、ジャーナルボリューム４２に次のジャーナルがない場合（Ｓ５１：ＮＯ）、又はリカバリボリューム４４のスロット領域に対応するプールボリューム４５のデータをキャッシュメモリ１４に書き込んだ場合（Ｓ７５）には、キャッシュメモリ１４のリカバリボリューム４４のスロット領域に対応する領域に書き込まれた読出し対象のデータをキャッシュメモリ１４からホスト計算機２に送信する（Ｓ７６）。
【０１２０】
続いて、チャネルアダプタ１１は、リカバリボリューム４４への読出し要求完了応答をホスト計算機２に送信する（Ｓ７７）。やがて、チャネルアダプタ１１は、この後、図２２及び図２３に示すリカバリボリューム読出し処理手順ＲＴ５を終了する（Ｓ７８）。
【０１２１】
（２−４）本実施の形態によるジャーナル削除処理
次に、本実施の形態におけるストレージシステム４のジャーナルボリューム４２内のジャーナルを削除するジャーナル削除処理について説明する。図２５は、このストレージシステム４におけるジャーナル削除処理に関する具体的な処理手順を示したフローチャートである。
【０１２２】
チャネルアダプタ１１は、初期時、ジャーナル制御プログラム３５を実行することにより、図２５に示すジャーナル削除処理手順ＲＴ６に従って、ジャーナルボリューム４２の使用容量が所定の閾値を越えるのを待機モードで待ち受ける（Ｓ８１）。この場合、チャネルアダプタ１１は、ジャーナルボリューム４２内のジャーナル２１０、スナップショットジャーナル２２０、リカバリポイントジャーナル２３０の合計使用容量を認識することができ、予め所定の閾値を設定することができるようになされている。
【０１２３】
やがて、チャネルアダプタ１１は、ジャーナルボリューム４２の使用容量が所定の閾値を越える（Ｓ８１：ＹＥＳ）と、リカバリポイント管理テーブル３６を参照し、リカバリボリューム構成情報３１のリカバリ可能時間５７の時間に対応するリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０であるか否かをチェックする（Ｓ８２）。
【０１２４】
そして、チャネルアダプタ１１は、リカバリボリューム構成情報３１のリカバリ可能時間５７の時間に対応するリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０でない場合（Ｓ８２：ＮＯ）には、次のリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０であるか否かをチェックする（Ｓ８３）。
【０１２５】
そして、チャネルアダプタ１１は、次のリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０でない場合（Ｓ８３：ＮＯ）には、ジャーナルボリューム４２に次のリカバリポイントジャーナル２３０があるか否かをチェックする（Ｓ８４）。そして、チャネルアダプタ１１は、ジャーナルボリューム４２に次のリカバリポイントジャーナル２３０がある場合（Ｓ８４：ＹＥＳ）には、この後、再び、次のリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０であるか否かをチェックし（Ｓ８３）、この後、同様の処理を繰り返す（Ｓ８３、Ｓ８４）。
【０１２６】
これに対して、チャネルアダプタ１１は、ジャーナルボリューム４２に次のリカバリポイントジャーナル２３０がない場合（Ｓ８４：ＮＯ）には、リカバリボリューム構成情報３１のリカバリ可能時間５７の時間に対応するリカバリポイントジャーナル２３０以前のジャーナルを削除する（Ｓ８５）。
【０１２７】
これに対して、チャネルアダプタ１１は、リカバリボリューム構成情報３１のリカバリ可能時間５７の時間に対応するリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０である場合（Ｓ８２：ＹＥＳ）、又は次のリカバリポイントジャーナル２３０が、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０でない場合（Ｓ８３：ＹＥＳ）には、当該リカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０以前のジャーナルを削除する（Ｓ８６）。
【０１２８】
続いて、チャネルアダプタ１１は、リカバリボリューム構成情報３１のリカバリ可能時間５７を、対応するリカバリポイントジャーナル２３０の時間に更新する（Ｓ８７）。やがて、チャネルアダプタ１１は、この後、図２５に示すジャーナル削除処理手順ＲＴ６を終了する（Ｓ８８）。
【０１２９】
このように、チャネルアダプタ１１では、予め設定された所定の閾値を越えたときに、ホスト計算機２からのリカバリポイント作成要求に基づいて作成されたリカバリポイントジャーナル２３０及びホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０を識別し、ホスト計算機２からのリカバリポイント作成要求を伴わずに作成されたリカバリポイントジャーナル２３０であり、かつリカバリボリューム構成情報３１のリカバリ可能時間５７以降であるリカバリポイントジャーナル２３０以前のジャーナルを削除することにより、リカバリボリューム構成情報３１のリカバリ可能時間５７において、ホスト計算機２からのリカバリポイント作成要求に基づいて作成されたリカバリポイントジャーナル２３０を取得することができないといったことを未然かつ有効に防止すると共に、ジャーナルボリューム４２の容量を解放することができ、かくして、ホスト計算機２に対して一段と信頼性の高いストレージステム４を提供することができる。
【０１３０】
このようにして、記憶システム１では、ホスト計算機２から指定されたリカバリボリューム４４を作成するときに、指定されたリカバリポイントジャーナル２３０より前で、かつ当該指定されたリカバリポイントジャーナル２３０に一番近いスナップショットジャーナル２２０に対応するスナップショット管理テーブル３３を複製し、スナップショット管理テーブル３３を、スナップショットジャーナル２２０から、指定されたリカバリポイントジャーナル２３０までのジャーナルボリューム４２に書き込まれたジャーナルデータ２１４に基づいて更新することにより、リカバリボリューム４４を作成する。
【０１３１】
従って、記憶システム１では、データボリューム４１及びスナップショットボリューム４３に書き込まれているデータ分の物理的な記憶領域を確保することなく、スナップショットジャーナル２２０から、指定されたリカバリポイントジャーナル２３０までのジャーナルボリューム４２に書き込まれているジャーナルデータ分の物理的な記憶領域を確保することで、リカバリボリューム４４を作成することができる。
【０１３２】
また、記憶システム１では、指定されたリカバリポイントジャーナル２３０より前で、かつ当該指定されたリカバリポイントジャーナル２３０に一番近いスナップショットジャーナル２２０に対応するスナップショット管理テーブル３３を複製するため、当該スナップショット管理テーブル３３を破壊することなく、同一のスナップショット管理テーブル３３から、何度でもリカバリボリューム４４を作成することができる。
【０１３３】
なお本実施の形態においては、データボリューム４１に書き込まれたデータをジャーナルボリューム４２にジャーナルを書き込み、データボリューム４１のスナップショットボリューム４３を取得した場合について述べたが、本発明はこれに限らず、この他様々な形態の記憶システム１に適用することができる。
【０１３４】
例えば、記憶システム１では、図２６に示すように、ジャーナルボリューム４２のジャーナル２１０に含まれるジャーナルデータ２１４をベースボリューム４６へコピーすることによって、データボリュームのレプリケーションを作成し、ホスト計算機２からスナップショット作成要求を受信すると、データボリューム４１に代えて、ベースボリューム４６スナップショットボリューム４３を取得するようにしても良い。これにより、記憶システム１では、データボリューム４１へのアクセスを低減することができるため、ホスト計算機２に対しての応答性を向上すると共に、ストレージシステム４の信頼性を向上することができる。
【０１３５】
また、記憶システム１では、１つのストレージシステム４内で本発明を適用する場合に限らず、２つのストレージシステム４間においても、本発明を適用することができる。例えば、記憶システム１では、図２７に示すように、一方のストレージシステム４に、データボリューム４１を有し、他方のストレージシステム４に、ジャーナルボリューム４２、スナップショットボリューム４３、リカバリボリューム４４、プールボリューム４５及びベースボリューム有するようになされている。この場合、記憶システム１では、データボリューム４１に書き込まれたデータ等を、リモートコピー機能等によって転送し、ジャーナルボリューム４２にジャーナルとして書き込むことにより、本発明を実現することができるようになされている。なお、リモートコピー機能とは、一方のストレージシステムの論理ボリュームに書き込まれているデータを、他方のストレージシステムの論理ボリュームにコピーし、データを２重化する機能である。
【０１３６】
また、例えば、記憶システム１では、図２８に示すように、一方のストレージシステム４に、データボリューム４１、ジャーナルボリューム４２及びプールボリューム４５を有し、他方のストレージシステム４に、ジャーナルボリューム４２、スナップショットボリューム４３、リカバリボリューム４４、プールボリューム４５及びベースボリューム有するようになされている。この場合、記憶システム１では、一方のストレージシステム４のジャーナルボリューム４２に書き込まれたデータ等を、リモートコピー機能等によって転送し、他方のストレージシステム４のジャーナルボリューム４２にジャーナルとして書き込むことにより、本発明を実現することができるようになされている。これにより、記憶システム１では、データボリューム４１に書込み対象のデータを書き込んで、データボリューム４１に書き込まれたデータ等をジャーナルボリューム４２にジャーナルとして書き込む一連の処理を、一方のストレージシステム４において完結することができるため、ホスト計算機２に対しての応答性を向上することができる。
【産業上の利用可能性】
【０１３７】
本発明は、スナップショット機能及びジャーナル機能を有する種々の装置に適用することができる。
【図面の簡単な説明】
【０１３８】
【図１】本実施の形態による記憶システムの構成を示す略線図である。
【図２】共有メモリの構成の内容を概略的に示す概念図である。
【図３】論理ボリュームの構成の説明に供する概念図である。
【図４】リカバリボリューム構成情報の説明に供する概念図である。
【図５】スナップショットボリューム情報の説明に供する概念図である。
【図６】リカバリボリューム情報の説明に供する概念図である。
【図７】スナップショット機能、ジャーナル機能及びリカバリポイントを用いたバックアップ方法の説明に供する概念図である。
【図８】スナップショット機能を概略的に示す概念図である。
【図９】スナップショット管理テーブルの構成の説明に供する概念図である。
【図１０】ジャーナルフォーマットの説明に供する概念図である。
【図１１】ジャーナル作成処理の説明に供するフローチャートである。
【図１２】リカバリポイント管理テーブルの構成の説明に供する概念図である。
【図１３】リカバリポイント作成処理の説明に供するフローチャートである。
【図１４】リカバリボリューム作成処理の説明に供するフローチャートである。
【図１５】リカバリボリューム作成処理の説明に供するフローチャートである。
【図１６】リカバリボリューム作成処理の内容を概略的に示す概念図である。
【図１７】リカバリボリューム管理テーブルの構成の説明に供する概念図である。
【図１８】リカバリボリューム管理テーブルの構成の説明に供する概念図である。
【図１９】リカバリボリューム書込み処理の説明に供するフローチャートである。
【図２０】リカバリボリューム書込み処理の説明に供するフローチャートである。
【図２１】リカバリボリューム書込み処理の内容を概略的に示す概念図である。
【図２２】リカバリボリューム読出し処理の説明に供するフローチャートである。
【図２３】リカバリボリューム読出し処理の説明に供するフローチャートである。
【図２４】リカバリボリューム読出し処理の内容を概略的に示す概念図である。
【図２５】ジャーナル削除処理の説明に供するフローチャートである。
【図２６】他の実施の形態による論理ボリュームの構成の説明に供する概念図である。
【図２７】他の実施の形態による論理ボリュームの構成の説明に供する概念図である。
【図２８】他の実施の形態による論理ボリュームの構成の説明に供する概念図である。
【符号の説明】
【０１３９】
１……記憶システム、２……ホスト計算機、４……ストレージシステム、５……管理端末、６……管理サーバ、１０……コントロール部、１１……チャネルアダプタ、１２……接続部、１３……共有メモリ、１４……キャッシュメモリ、１５……ディスクアダプタ、２０……記憶デバイス部、２１……ディスクデバイス、３１……リカバリボリューム構成情報、３２……スナップショット作成テーブル、３３……スナップショット管理テーブル、３４……コピー済みビットマップ、３５……ジャーナル制御プログラム、３６……リカバリポイント管理テーブル、３７……ＳＥＱ番号管理テーブル、３８……リカバリポイント番号管理テーブル、３９……リカバリ制御プログラム、４０……リカバリボリューム管理テーブル、４１……データボリューム、４２……ジャーナルボリューム、４３……スナップショットボリューム、４４……リカバリボリューム、４５……プールボリューム、４６……ベースボリューム
【図１】
0004842703.tif 000002
【図２】
0004842703.tif 000003
【図３】
0004842703.tif 000004
【図４】
0004842703.tif 000005
【図５】
0004842703.tif 000006
【図６】
0004842703.tif 000007
【図７】
0004842703.tif 000008
【図８】
0004842703.tif 000009
【図９】
0004842703.tif 000010
【図１０】
0004842703.tif 000011
【図１１】
0004842703.tif 000012
【図１２】
0004842703.tif 000013
【図１３】
0004842703.tif 000014
【図１４】
0004842703.tif 000015
【図１５】
0004842703.tif 000016
【図１６】
0004842703.tif 000017
【図１７】
0004842703.tif 000018
【図１８】
0004842703.tif 000019
【図１９】
0004842703.tif 000020
【図２０】
0004842703.tif 000021
【図２１】
0004842703.tif 000022
【図２２】
0004842703.tif 000023
【図２３】
0004842703.tif 000024
【図２４】
0004842703.tif 000025
【図２５】
0004842703.tif 000026
【図２６】
0004842703.tif 000027
【図２７】
0004842703.tif 000028
【図２８】
0004842703.tif 000029