(57)【要約】      （修正有）【課題】スナップショットもしくはジャーナルを開放する方法を提供。【解決手段】ホスト計算機１１００と、データボリューム１０１１を有するディスク装置１０１０を備えるストレージシステム１０００と、管理計算機１２００とを具備する計算機システムにおいて、ストレージシステム１０００は、データボリューム１０１１の特定の時点のスナップショットを取得し、特定時点以降の書込みをジャーナルとして保持し、リカバリ時にリカバリポイントの近傍の時点で取得されたスナップショットを基底にして、ジャーナルを適用することでリカバリを行い、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定し、開放対象スナップショットもしくはジャーナルとともに開放する。【選択図】        図１
2007140698.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のホスト計算機と、該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備えるストレージシステムと、前記ホスト計算機及び前記ストレージシステムと接続する管理計算機とを具備する計算機システムにおいて、
前記ストレージシステムは、前記データボリュームの特定の時点のスナップショットを取得し、前記特定時点以降の書込みをジャーナルとして保持し、リカバリ時にリカバリポイントの近傍の時点で取得されたスナップショットを基底にして、該スナップショットに前記ジャーナルを適用することでリカバリを行い、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定し、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放すること特徴とする計算機システム。
【請求項２】
請求項１記載の計算機システムにおいて、
前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持するか否を判断することを特徴とする計算機システム。
【請求項３】
請求項１記載の計算機システムにおいて、
前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持することを特徴とする計算機システム。
【請求項４】
請求項１記載の計算機システムにおいて、
前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持することを特徴とする計算機システム。
【請求項５】
請求項１記載の計算機システムにおいて、
前記管理計算機は、前記ジャーナルの使用量が所定の値を越えているか否かを判断し、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求することを特徴とする計算機システム。
【請求項６】
請求項１記載の計算機システムにおいて、
前記管理計算機は、前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求することを特徴とする計算機システム。
【請求項７】
１または複数のホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備え、前記ホスト計算機及び管理計算機とで計算機システムを構成するストレージシステムにおいて、
ＣＰＵ、メモリ及び接続用のインタフェースを備え、前記データボリュームの特定の時点のスナップショットを取得し、前記特定時点以降の書込みをジャーナルとして保持し、リカバリ時にリカバリポイントの近傍の時点で取得されたスナップショットを基底にして、該スナップショットに前記ジャーナルを適用することでリカバリを行い、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定し、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放すること特徴とするストレージシステム。
【請求項８】
請求項７記載のストレージシステムにおいて、
前記依存するジャーナルが持つリカバリポイントを維持するか否を判断することを特徴とするストレージシステム。
【請求項９】
請求項７記載のストレージシステムにおいて、
前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持することを特徴とするストレージシステム。
【請求項１０】
請求項７記載のストレージシステムにおいて、
前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持することを特徴とするストレージシステム。
【請求項１１】
１または複数のホスト計算機、及び該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備え、かつ、開放対象スナップショットもしくはジャーナルと依存するジャーナルを開放するストレージシステムに接続する管理計算機において、
ＣＰＵ、メモリ及び接続用のインタフェースを備え、前記ストレージシステムが保持するジャーナルの使用量が所定の値を越えているか否かを判断し、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求することを特徴とする管理計算機。
【請求項１２】
請求項１１記載の管理計算機において、
前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求することを特徴とする管理計算機。
【請求項１３】
１または複数のホスト計算機と、該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備えるストレージシステムと、前記ホスト計算機及び前記ストレージシステムと接続する管理計算機とを具備する計算機システムにおけるバックアップを管理する方法において、
スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定することと、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放することを有することを特徴とするバックアップ管理方法。
【請求項１４】
請求項１３記載のバックアップ管理方法において、
前記依存するジャーナルが持つリカバリポイントを維持するか否を判断することを有することを特徴とするバックアップ管理開放方法。
【請求項１５】
請求項１３記載のバックアップ管理方法において、
前記依存するジャーナルが持つリカバリポイントを維持すると判断することと、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させることと、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持することを有することを特徴とするバックアップ管理方法。
【請求項１６】
請求項１３記載のバックアップ管理において、
前記依存するジャーナルが持つリカバリポイントを維持すると判断することと、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させることと、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持することを有することを特徴とするバックアップ管理方法。
【請求項１７】
請求項１３記載のバックアップ管理方法において、
前記ジャーナルの使用量が所定の値を越えているか否かを判断することと、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求することを有することを特徴とするバックアップ管理方法。
【請求項１８】
請求項１３記載のバックアップ管理において、
前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求することを有することを特徴とするバックアップ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機とストレージシステムと管理計算機とからなる計算機システムに関し、特に計算機システムの構成とこの構成におけるバックアップ管理方法に関する。
【背景技術】
【０００２】
一般的に情報システムでは、バックアップを取得することで、ストレージ装置の障害、コンピュータウィルスによるデータ破壊、ユーザによる誤操作などによってデータが喪失した場合に喪失したデータをリカバリできるようにしている。
【０００３】
また、ジャーナリングを用いたバックアップ及びリカバリ技術が提案されている（例えば、特許文献１を参照）。この特許文献１には、一つ以上のデータボリュームで構成される論理的なグループ（以降、「ジャーナルグループ」と呼ぶ）の特定時点のスナップショット（フルバックアップ、あるいは差分バックアップなどの論理的なイメージ）を取得し、ジャーナルグループに属するデータボリュームへのそれ以降の書込みデータをジャーナル（「Ａｆｔｅｒジャーナル」又は「事後ジャーナル」と呼ばれる）として保持すること、及び、取得したスナップショットに対し、書き込まれた順序どおりに一連のＡｆｔｅｒジャーナルを適用することで、特定時点のデータをリカバリすることが開示されている。これは一般にＣｏｎｔｉｎｕｏｕｓ  Ｄａｔａ  Ｐｒｏｔｅｃｔｉｏｎ（ＣＤＰ）と呼ばれる技術の一例である。
【０００４】
また、上記Ａｆｔｅｒジャーナル適用によってリカバリしたデータが既に破壊されている場合に、Ａｆｔｅｒジャーナル適用を取り消す方法も提案されている（例えば、特許文献１）。この特許文献１には、Ａｆｔｅｒジャーナル適用によって上書きされる箇所のデータを退避させておき、Ａｆｔｅｒジャーナル適用を取り消す場合、Ａｆｔｅｒジャーナル適用後のスナップショットに前記退避させたデータをもとの箇所へ適用する（退避したデータを書き戻す）ことで、短時間でＡｆｔｅｒジャーナル適用以前のスナップショットへ復元することが開示されている。なお、この退避させたデータを「Ｂｅｆｏｒｅジャーナル」と呼ぶ。また、ＡｆｔｅｒジャーナルとＢｅｆｏｒｅジャーナルを区別しない場合は「ジャーナル」と呼ぶ。
【０００５】
上記のようなジャーナル適用によるリカバリにかかる時間は、適用するジャーナルのデータ量に依存する。前記の特許文献１には、複数世代のスナップショットを周期的に取得し、特定時点のデータをリカバリする際、その時点の近傍で取得されたスナップショットを起点に一連のジャーナルを適用していくことで、リカバリ時間を短縮することが開示されている。
【０００６】
また、ジャーナリングを用いたバックアップでは、書き込まれたデータ量に依存して、保持すべきジャーナルが増える。一方、ジャーナルを格納しておくジャーナルボリュームの容量は有限であるため、いずれジャーナルボリュームを使い切ってしまう。このため、古いジャーナルを開放（削除）する技術が提案されている。前記の特許文献１には、不要なジャーナルを開放する際、その不要なジャーナルを直前のスナップショットに適用してから開放することで、不要なジャーナル以降のジャーナルをスナップショットに適用できる状態を維持するジャーナル開放方式が開示されている。
【特許文献１】米国特許公開明細書２００５／００１５４１６
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一般に、ジャーナリングによるバックアップでは、ジャーナルを用いたリカバリが可能な期間の長さ（たとえば、過去２４時間など）に応じて保持すべきジャーナルが増大するため、ジャーナリングによるバックアップは中長期のバックアップには適さない。そこで、一定容量のジャーナルボリュームにジャーナルを格納しきれなくなった場合、古いジャーナルから開放し、リカバリ時には、残ったジャーナルによって可能な範囲においてのみジャーナルを用いたリカバリを行い、それ以前のデータのリカバリに関しては特定の時点に取得したスナップショットのみを利用して行うといった、フルバックアップや差分バックアップとの連携運用が望まれる。たとえば、１０Ｇバイトの容量を持つジャーナルボリュームに格納できる範囲でジャーナルを用いたリカバリを行い、それ以前のデータは毎日１２時に取得されたスナップショット（たとえば、フルバックアップ）によりリカバリを行うといった連携運用である。上記の特許文献１によるジャーナル開放方式は、特定の時点のジャーナルグループのスナップショットを他時点のスナップショットへ更新してしまうため、前記連携運用には適用できない。一方、スナップショットを更新せずにジャーナルを開放すると、開放対象ジャーナルが適用された後のスナップショットにのみ適用できるジャーナル（以降、「開放対象ジャーナルに依存するジャーナル」もしくは「開放対象ジャーナル依存ジャーナル」と呼ぶ）が利用不可能なジャーナルとなり、このようなジャーナルがジャーナルボリュームを無駄に占有してしまうという問題が発生する。
【０００８】
同様に、ジャーナリングを用いたバックアップでは、複数世代のスナップショットを周期的に取得するが、スナップショットを格納するボリュームは有限であるため、新規スナップショットを取得する際、古いスナップショットは開放される必要がある。しかし、単純に古いスナップショットを開放すると、そのスナップショットにのみ適用可能なジャーナル（以降、「開放対象スナップショットに依存するジャーナル」もしくは「開放対象スナップショット依存ジャーナル」と呼ぶ）は適用先を持たない利用不可能なジャーナルとなり、このようなジャーナルがジャーナルボリュームを無駄に占有してしまうという問題が発生する。
【課題を解決するための手段】
【０００９】
本発明は、前記の課題を解決するためになされたものであり、スナップショットもしくはジャーナルを開放する際、開放対象依存ジャーナル（開放対象ジャーナル依存ジャーナル又は開放対象スナップショット依存ジャーナル）を一緒に開放するか、もしくは、リカバリポイントを維持するために開放対象依存ジャーナルに対応するジャーナルを作成してから、開放対象依存ジャーナルを一緒に開放することで、効率的なジャーナルボリュームの利用を可能とする計算機システム及びバックアップ管理方法を提供することを目的とする。
【００１０】
本発明は、１または複数のホスト計算機と、該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備えるストレージシステムと、前記ホスト計算機及び前記ストレージシステムと接続する管理計算機とを具備する計算機システムにおいて、前記ストレージシステムは、前記データボリュームの特定の時点のスナップショットを取得し、前記特定時点以降の書込みをジャーナルとして保持し、リカバリ時にリカバリポイントの近傍の時点で取得されたスナップショットを基底にして、該スナップショットに前記ジャーナルを適用することでリカバリを行い、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定し、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放する計算機システムである。
【発明の効果】
【００１１】
本発明によると、ジャーナルもしくはスナップショットを開放する際、利用不可能なジャーナルがジャーナルボリュームに残らなくなるため、効率的なジャーナルボリュームの利用が可能となる。
【発明を実施するための最良の形態】
【００１２】
本発明を実施するための最良の形態を説明する。
以下、本発明の計算機システム及びストレージシステムと管理計算機並びにバックアップ管理方法の実施形態及び実施例について、図面を参照しながら説明する。なお、これにより本発明が限定されるものではない。
【００１３】
本発明の実施形態において、ジャーナリングを用いたバックアップ及びリストアを制御する制御部を有するストレージシステムに、スナップショット・ＪＮＬ管理プログラムとリカバリポイント管理情報を搭載する。また、ジャーナリングを用いたバックアップ及びリストアを管理する管理計算機に設定プログラム、バックアッププログラム、ＪＮＬ開放プログラムを搭載する。本発明のストレージシステムは、１または複数のストレージ装置からなり、以下、ストレージ装置で説明する場合がある。
【００１４】
前記設定プログラムによって、スナップショットもしくはジャーナル開放時に、開放対象に依存するジャーナルが持つリカバリポイントを維持するために対応するジャーナルを作成するかを判定するルールを前記リカバリポイント管理情報に登録する。
【００１５】
新規スナップショットを取得する際に、前記バックアッププログラムは前記スナップショット・ＪＮＬ管理プログラムに既存のスナップショットの開放を要求する。前記スナップショット・ＪＮＬ管理プログラムは、この要求を受け付け、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットに依存するジャーナルを特定し、前記リカバリポイント管理情報に登録されたルールに従いリカバリポイントを維持する場合は対応するジャーナルを作成し、開放対象スナップショットとともに依存するジャーナルを開放する。
【００１６】
また、ジャーナル開放時には、前記ＪＮＬ開放プログラムは前記スナップショット・ＪＮＬ管理プログラムにジャーナルの開放を要求する。前記スナップショット・ＪＮＬ管理プログラムは、この要求を受け付け、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象ジャーナルに依存するジャーナルを特定し、前記リカバリポイント管理情報に登録されたルールに従いリカバリポイントを維持する場合は対応するジャーナルを作成し、開放対象スナップショットとともに依存するジャーナルを開放する。
【００１７】
本発明の実施形態におけるジャーナルを開放する際の処理の一例について、図１９を用いて説明する。図１９（ａ）は、Ｂｅｆｏｒｅジャーナルを作成しない場合であり、開放対象のジャーナルに対し、依存するジャーナル（ＪＮＬ）を特定し、同時に開放する。依存するジャーナルは、開放対象のジャーナルが開放されることで利用不可能となるジャーナルである。これにより、保持するジャーナル量を削減することができる。図１９（ｂ）は、Ｂｅｆｏｒｅジャーナルを作成する場合であり、開放対象のジャーナルに対し、依存するジャーナル（ＪＮＬ）を特定し、開放する際に、Ｂｅｆｏｒｅジャーナルを作成する。その後、依存するジャーナル開放する。上記２つの処理は、ユーザのポリシーやジャーナルボリュームの空き容量などに応じて切り替えることもできる。
【００１８】
本発明の実施形態におけるスナップショットを開放する際の処理の一例について、図２０を用いて説明する。図２０（ａ）は、Ｂｅｆｏｒｅジャーナルを作成しない場合であり、開放対象のスナップショットに対し、依存するジャーナル（ＪＮＬ）を特定し、同時に開放する。依存するジャーナルは、開放対象のスナップショットが開放されることで利用不可能となるジャーナルである。これにより、保持するジャーナル量を削減することができる。図２０（ｂ）は、Ｂｅｆｏｒｅジャーナルを作成する場合であり、開放対象のスナップショットに対し、依存するジャーナル（ＪＮＬ）を特定し、開放する際に、Ｂｅｆｏｒｅジャーナルを作成する。その後、依存するジャーナル開放する。上記２つの処理は、ユーザのポリシーやジャーナルボリュームの空き容量などに応じて切り替えることもできる。開放対象スナップショットは、新しいスナップショットを作成する際などに開放される。
【００１９】
なお、実施例の説明では、特定時点のデータをリカバリする際に管理者が指定する時点のことを「リカバリポイント」と呼ぶ。また、スナップショットに一連のジャーナルを適用して指定されたリカバリポイントのデータをリカバリするときに、最後に適用するジャーナルと指定されたリカバリポイントとの関係を、「（前記）ジャーナルが（前記）リカバリポイントを持つ」と言う。スナップショットにジャーナルを適用せずにリカバリできる場合は、前記スナップショットと指定されたリカバリポイントの関係は、「（前記）スナップショットが（前記）リカバリポイントを持つ」と言う。さらに、特定のジャーナルを適用する際に、適用を取り消すために上書きされる箇所のデータを退避させて作成したジャーナルを、「対応するジャーナル」又は「退避ジャーナル」と呼ぶ。
【実施例１】
【００２０】
（１）実施例１のシステム構成
図１は、本発明の第１の実施形態の計算機システムの構成を示すブロック図である。本システムでは、ストレージ装置１０００とホスト計算機１１００がデータネットワーク１３００で互いに接続される。本実施例では、データネットワーク１３００はストレージエリアネットワークとするが、ＩＰネットワークであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。
【００２１】
ストレージ装置１０００とホスト計算機１１００は、管理ネットワーク１４００を介して管理計算機１２００と接続される。本実施例では、管理ネットワーク１４００はＩＰネットワークとするが、ストレージエリアネットワークであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。また、データネットワーク１３００と管理ネットワーク１４００が同一ネットワークであってもよいし、管理計算機１２００とホスト計算機１１００は同一計算機であってもかまわない。なお、説明の都合上、図１では、ストレージ装置１０００を１台、ホスト計算機１１００を１台、管理計算機１２００を１台としたが、本発明では、これらの数は問わない。
【００２２】
ストレージ装置１０００は、データを格納するディスク装置１０１０、ストレージ内の制御を行うディスクコントローラ１０２０で構成されている。
【００２３】
ディスク装置１０１０は、ジャーナルグループ１０１４、ＳＳＶＯＬグループ１０１５、ジャーナルボリューム１０１３を備えている。
【００２４】
ジャーナルグループ１０１４は、一つ以上のデータボリューム１０１１により構成される。データボリューム１０１１は、ホスト計算機１１００によって利用されるデータを格納する論理ボリュームである。ホスト計算機１１００からジャーナルグループ１０１４に属するデータボリューム１０１１への書き込みは、後述するストレージマイクロプログラム１０２８により、書き込まれた順序に従い適切な順序番号を付与されたＡｆｔｅｒジャーナルとして、ジャーナルグループ１０１４に関連付けられたジャーナルボリューム１０１３に格納される。
【００２５】
ＳＳＶＯＬグループ１０１５は、ある時点におけるジャーナルグループ１０１４の複製イメージ（スナップショット）を格納する。図１において、単一のジャーナルグループ１０１４に対して、ＳＳＶＯＬグループ１０１５は一つ（１世代）しか示されていないが、管理者の要求に応じて、単一のジャーナルグループ１０１４に対して複数個（複数世代）設置することができる。ＳＳＶＯＬグループ１０１５は、一つ以上のスナップショットボリューム１０１２で構成される。スナップショットボリューム１０１２は、ある時点におけるデータボリューム１０１１の複製イメージを格納する。なお、スナップショットボリューム１０１２に格納される複製イメージは、システムに対する要求や実装等に応じて、データボリューム１０１１のフルバックアップであっても、差分バックアップのような論理的なイメージでも良い。
【００２６】
ジャーナルボリューム１０１３は、Ａｆｔｅｒジャーナル及びＢｅｆｏｒｅジャーナルを格納するボリュームである。ジャーナルボリューム１０１３の構成は後述する。
【００２７】
なお、説明の都合上、図１では、ジャーナルグループ１０１４を一つ、ジャーナルボリューム１０１３を一つとしたが、本発明では、これらの数は問わない。
【００２８】
ディスクコントローラ１０２０には、ホストＩ／Ｆ１０２２、管理Ｉ／Ｆ１０２６、ディスクＩ／Ｆ１０２５、メインメモリ１０２１、ＣＰＵ１０２３、タイマ１０２４が設けられている。
【００２９】
メインメモリ１０２１には、管理テーブル１０２９、ストレージマイクロプログラム１０２８、スナップショット・ＪＮＬ管理プログラム１０３０、リカバリポイント管理情報１０３１が記憶されている。ＣＰＵ１０２３は、メインメモリ１０２１に記憶された各種プログラムを実行する。
【００３０】
ストレージマイクロプログラム１０２８は、スナップショットの取得、ＡｆｔｅｒジャーナルとＢｅｆｏｒｅジャーナルの生成、ジャーナルを用いたリカバリ、ジャーナルの開放など従来技術で述べたジャーナリングを用いたバックアップ及びリカバリの各種機能を制御する。このとき、ストレージマイクロプログラム１０２８は、管理テーブル１０２９の情報を参照または更新しながら制御を行う。また、ストレージマイクロプログラム１０２８は、管理計算機１２００やホスト計算機１１００からの要求に基づき、ディスク装置１０１０に対するデータの入出力の制御、ストレージ装置１０００内の制御情報の設定や提供などの各種制御を行う。なお、実施例において、プログラムを主語にして説明する場合が有るが、実際には、そのプログラムを実行する処理部（ストレージ装置１０００におけるＣＰＵ１０２３、ホスト計算機１１００のＣＰＵ１１３０、管理計算機１２００のＣＰＵ１２４０）が処理を実行している。
【００３１】
タイマ１０２４は、現在時刻を提供する機能を持つ一般的なタイマである。Ａｆｔｅｒジャーナル作成時やスナップショット取得時に、ストレージマイクロプログラム１０２８によって参照される。
【００３２】
スナップショット・ＪＮＬ管理プログラム１０３０は、後述するバックアッププログラム１２６３及びＪＮＬ開放プログラム１２６２の要求に応じて、スナップショットもしくはジャーナルを開放する。このとき、スナップショット・ＪＮＬ管理プログラム１０３０は、開放対象に依存するジャーナルを特定し、後述するリカバリポイント管理情報１０３１に応じて、特定したジャーナルを開放対象と一緒に開放するか、リカバリポイントを維持するために特定したジャーナルに対応するジャーナルを作成した後に特定したジャーナルを開放対象と一緒に開放する。
【００３３】
ホストＩ／Ｆ１０２２は、データネットワーク１３００に対するインタフェースであって、ホスト計算機１１００とデータや制御命令の送受信を行う。管理Ｉ／Ｆ１０２６は、管理ネットワーク１４００とのインタフェースであって、ホスト計算機１１００及び管理計算機１２００とデータや制御命令の送受信を行う。ディスクＩ／Ｆ１０２５は、ディスク装置１０１０に対するインタフェースであって、データや制御命令の送受信を行う。
【００３４】
管理テーブル１０２９の構成及びリカバリポイント管理情報１０３１の構成については後述する。
【００３５】
ホスト計算機１１００は、キーボードやマウスなどの入力装置１１４０、ＣＰＵ１１３０、ＣＲＴなどの表示装置１１２０、メモリ１１６０、ストレージＩ／Ｆ１１１０、管理Ｉ／Ｆ１１５０、及びローカルディスク１１７０からなる。
【００３６】
ストレージＩ／Ｆ１１１０は、データネットワーク１３００に対するインタフェースであって、ストレージ装置１０００とデータや制御命令の送受信を行う。管理Ｉ／Ｆ１１５０は、データネットワーク１３００に対するインタフェースであって、システム管理のために管理計算機１２００及びストレージ装置１０００とデータや制御命令の送受信を行う。
【００３７】
メモリ１１６０には、アプリケーション１１６３、リカバリマネージャ１１６２、情報収集エージェント１１６１が搭載されており、ＣＰＵ１１３０がこれらを実行する。
【００３８】
アプリケーション１１６３は、データボリューム１０１１に対してデータを読み書きするアプリケーションであり、たとえば、ＤＢＭＳやファイルシステムなどである。
【００３９】
リカバリマネージャ１１６２は、ストレージマイクロプログラム１０２８に対するスナップショット取得の要求、ストレージマイクロプログラム１０２８に対する特定時点のデータのリカバリの要求、アプリケーション１１６３の静止化を行う。これらの機能は、管理者や他のプログラムから実行できるようにコマンドラインインターフェース（以降、「ＣＬＩ」と呼ぶ）などで提供される。また、リカバリマネージャ１１６２は、ジャーナリングを用いたバックアップに関する設定を、データネットワーク１３００を介して管理テーブル１０２９に設定する機能も有しており、管理者がこの機能を利用するためのＣＬＩも提供する。
【００４０】
ローカルディスク１１７０は、ホスト計算機１１００に直接接続されたハードディスクなどのディスク装置であり、図示していないシステム構成定義ファイルなどを格納している。このシステム構成定義ファイルは、アプリケーション１１６３がどのデータボリューム１０１１利用するか、データボリューム１０１１がどのジャーナルグループ１０１４に属すかといったシステムの構成定義が記述してある。このシステム構成定義ファイルは、管理者がシステム構築時に記述するものであり、たとえば、一般的なＬｉｎｕｘ（登録商標）オペレーティングシステムで用いられる／ｅｔｃ／ｆｓｔａｂファイル等である。
【００４１】
情報収集エージェント１１６１は、ホスト計算機１１００のシステム構成情報を収集するプログラムである。情報収集エージェント１１６１は、後述する管理計算機１２００の設定プログラム１２６５の要求に応じて、前記ローカルディスク１１７０に格納されるシステム構成定義ファイルからアプリケーション１１６３が利用しているジャーナルグループ１０１４が属するストレージ装置１０００とジャーナルグループ１０１４を特定し、特定したストレージ装置１０００の識別子とジャーナルグループ１０１４の識別子を設定プログラム１２６５に返す。
【００４２】
なお、説明の都合上、図１では、アプリケーション１１６３を一つとしたが、本発明では、この数は問わない。
【００４３】
管理計算機１２００は、キーボードやマウスなどの入力装置１２４０、ＣＰＵ１２３０、ＣＲＴなどの表示装置１２２０、メモリ１２５０、ローカルディスク１２６０、システム管理のためにホスト計算機１２００及びストレージ装置１０００とデータや制御命令を送受信する管理Ｉ／Ｆ１２１０からなる。
【００４４】
管理計算機１２００のメモリ１２５０には、設定プログラム１２６５、バックアップ管理情報１２６４、バックアッププログラム１２６３、ＪＮＬ開放プログラム１２６２が記憶されている。ＣＰＵ１２３０は、メモリ１２５０に記憶された各プログラムを実行することで各機能を実現する。
【００４５】
設定プログラム１２６５は、本システムの管理情報を設定するためのグラフィカルユーザインタフェース（ＧＵＩ）を提供し、そこで入力された値を元に、リカバリポイント管理情報１０３１、バックアップ管理情報１２６４を設定するプログラムである。
【００４６】
バックアッププログラム１２６３は、従来のバックアップソフトウェアと同様に、管理者により定義されたバックアップスケジュールに従い、新規スナップショットを取得する。ただし、新規スナップショットの格納先となるＳＳＶＯＬグループ１０１５に既にスナップショットが格納されている場合、バックアッププログラム１２６３は、格納されているスナップショットの開放をスナップショット・ＪＮＬ管理プログラム１０３０に要求してから、新規スナップショットを取得する。
【００４７】
ＪＮＬ開放プログラム１２６２は、周期的に、ストレージマイクロプログラム１０２８にジャーナルボリュームの利用量を問い合わせ、利用量が一定の閾値を超えていた場合、ジャーナルを開放するようスナップショット・ＪＮＬ管理プログラム１０３０に要求する。
【００４８】
ローカルディスク１２６０は、管理計算機１２００に直接接続されたハードディスクなどのディスク装置であり、図示していないルール定義ファイルなどを格納している。前記ルール定義ファイルは、スナップショットやジャーナルを開放する際に、リカバリポイントを維持するために開放対象に依存するジャーナルに対応するジャーナルを作成するか否かを決定するルールが定義されているファイルである。たとえば、「ＣＤＰ適用時間＝過去２４時間」などと記述され、これは、「現在から見て過去２４時間以内のリカバリポイントを持つジャーナルが開放対象に依存している場合、対応するジャーナルを作成する」ということを意味する。
【００４９】
バックアップ管理情報１２６４の構成は後述する。
【００５０】
図２は、本実施の形態におけるジャーナルボリューム１０１３の構成の一例である。ジャーナルボリューム１０１３は、論理的にジャーナルヘッダ領域２０１０とジャーナルデータ領域２０２０に分割される。
【００５１】
ジャーナルボリューム１０１３に格納される際、ジャーナルは、ジャーナルヘッダ２０１１とジャーナルデータ２０２１に分割され、ジャーナルボリューム１０１３に格納される。ジャーナルヘッダ２０１１はジャーナルヘッダ領域２０１０に格納され、ジャーナルデータ２０２１はジャーナルデータ領域２０２０に格納される。
【００５２】
ジャーナルデータ２０２１は、ジャーナルを適用する際にデータボリューム１０１１に書き込むデータであり、ジャーナルヘッダ２０１１は、このジャーナルデータ２０２１に関する情報を保持する。
【００５３】
ジャーナルヘッダ２０１１は、データボリュームＩＤ２１０１、書き込み先アドレス２１０２、データ長２１０３、生成時刻２１０４、順序番号２１０５、ＡＪＮＬボリュームＩＤ２１０６、ＡＪＮＬ格納アドレス２１０７、ＢＪＮＬボリュームＩＤ２１０８、ＢＪＮＬ格納アドレス２１０９を持つ。
【００５４】
データボリュームＩＤ２１０１は、ジャーナル適用時のジャーナルデータの書き込み先となるデータボリューム１０１１の識別子を保持する。書き込み先アドレス２１０２は、ジャーナル適用時のジャーナルデータの書き込み先となるアドレスを保持する。データ長２１０３は、書き込みデータの長さを保持する。これらの値は、ストレージマイクロプログラム１０２８が、ホスト計算機１１００からの書込み要求を解析することで取得し、設定する値である。
【００５５】
生成時刻２１０４は、ホスト計算機１１００からの書込み要求がストレージ装置１０００に到着した時刻を保持する。生成時刻２１０４の値は、ストレージマイクロプログラム１０２８が、ディスクコントローラ１０２０のタイマ１０２４から取得し、設定するものである。生成時刻２１０４は、リカバリを行う際、管理者が指定するリカバリポイントとなる。なお、別の実施形態として、本値は書込み要求内に含まれる書込み発行時刻でも良い。たとえば、メインフレーム環境では、複数のメインフレームホストがタイマを共有しており、書き込みコマンドを発行する時刻を提供することができるため、これを利用することも可能である。
【００５６】
順序番号２１０５は、リカバリの際に、どのスナップショットにどのジャーナルを適用すべきかを決定するための順序番号を保持する。順序番号２１０５の値は、ホスト計算機１１００からの書込みに対してＡｆｔｅｒジャーナルを作成する際、ストレージマイクロプログラム１０２８が、後述するジャーナルグループテーブル３０００の順序カウンタ３００３が保持する値を取得し、設定するものである。
【００５７】
ＡＪＮＬボリュームＩＤ２１０６は、Ａｆｔｅｒジャーナルのジャーナルデータを格納しているボリュームの識別子を保持する。ＡＪＮＬ格納アドレス２１０７は、Ａｆｔｅｒジャーナルのジャーナルデータが格納されているアドレスを保持する。これらの値は、Ａｆｔｅｒジャーナル作成時に、ストレージマイクロプログラム１０２８が設定するものである。また、Ａｆｔｅｒジャーナルのジャーナルデータを開放した場合、ストレージマイクロプログラム１０２８が、ＡＪＮＬボリュームＩＤ２１０６にＮＵＬＬを、ＡＪＮＬ格納アドレス２１０７にＮＵＬＬを設定する。
【００５８】
ＢＪＮＬボリュームＩＤ２１０８は、Ｂｅｆｏｒｅジャーナルのジャーナルデータを格納しているボリュームの識別子を保持する。ＢＪＮＬ格納アドレス２１０９は、Ｂｅｆｏｒｅジャーナルのジャーナルデータが格納されているアドレスを保持する。これらの値は、Ｂｅｆｏｒｅジャーナル作成時に、ストレージマイクロプログラム１０２８が設定するものである。また、Ｂｅｆｏｒｅジャーナルのジャーナルデータを開放した場合、ストレージマイクロプログラム１０２８が、ＢＪＮＬボリュームＩＤ２１０８にＮＵＬＬを、ＢＪＮＬ格納アドレス２１０９にＮＵＬＬを設定する。
【００５９】
ＡＪＮＬボリュームＩＤ２１０６、ＡＪＮＬ格納アドレス２１０７、ＢＪＮＬボリュームＩＤ２１０８、ＢＪＮＬ格納アドレス２１０９の全てがＮＵＬＬの場合、ストレージマイクロプログラム１０２８が当該ジャーナルヘッダを開放する。
【００６０】
ジャーナルヘッダ２０１１は、ホスト計算機１１００から書込みに対して、後述するストレージマイクロプログラム１０２８がＡｆｔｅｒジャーナルを作成した時にのみ作成される。すなわち、Ｂｅｆｏｒｅジャーナル作成時には、Ｂｅｆｏｒｅジャーナルのジャーナルデータ２０２１が格納されたボリュームの識別子をＢＪＮＬボリュームＩＤ２１０８に、格納されたアドレスをＢＪＮＬ格納アドレス２１０９に設定することになる。同様に、一度開放したＡｆｔｅｒジャーナルを再作成する場合、Ａｆｔｅｒジャーナルのジャーナルデータ２０２１が格納されたボリュームの識別子をＡＪＮＬボリュームＩＤ２１０６に、格納されたアドレスをＡＪＮＬ格納アドレス２１０７に設定することとなる。
【００６１】
図３から図５は管理テーブル１０２９を構成するテーブル群である。図３は、管理テーブル１０２９を構成するジャーナルグループテーブル３０００である。ジャーナルグループテーブル３０００は、ジャーナルグループの識別子を保持するＪＮＬグループＩＤ３００１、順序カウンタ３００３、最新のジャーナルヘッダの格納先ボリュームの識別子を保持する最新ＪＮＬヘッダ格納ＶＯＬＩＤ３００４、最新のジャーナルヘッダの格納先アドレスを保持する最新ＪＮＬヘッダ格納アドレス３００５、最古のジャーナルヘッダの格納先ボリュームの識別子を保持する最古ＪＮＬヘッダ格納ＶＯＬＩＤ３００６、最古のジャーナルヘッダの格納先アドレスを保持する最古ＪＮＬヘッダ格納アドレス３００７を持つ。
【００６２】
ＪＮＬグループＩＤ３００１の値は、リカバリマネージャ１１６２が提供するＣＬＩを用いて、管理者が設定するものである。たとえば、管理者は「ＣｒｅａｔｅＪＧ−ｉｄ  ＪＮＬＧ＿０１」のようなコマンドを発行する。これは、ＪＮＬＧ＿０１という識別子のジャーナルグループを作成するという要求になる。このＪＮＬＧ＿０１という値がＪＮＬグループＩＤ３００１に格納される。
【００６３】
順序カウンタ３００３は、ジャーナル及びスナップショット作成順序を管理するための番号である。順序カウンタ３００３の値は、ホスト計算機１１００からの書込みに対してＡｆｔｅｒジャーナルが生成されるたびに、ストレージマイクロプログラム１０２８によって１だけ加算され、加算後の値が順序番号２１０５にコピーされる。また、順序カウンタ３００３の値は、スナップショットを取得するたびに、ストレージマイクロプログラム１０２８によって、後述するスナップショットテーブル５０００の順序番号５００３にコピーされる。この処理により、スナップショットと各ジャーナルの順序関係が記録され、リカバリの際にスナップショットに適用すべきジャーナルが特定できる。具体的には、特定のスナップショットにＡｆｔｅｒジャーナルを適用してリカバリを行う場合、スナップショットの順序番号より大きく且つ指定されたリカバリポイントを持つジャーナルの順序番号以下の順序番号を持つジャーナルを順序番号に従って適用することでリカバリが行われる。逆に、特定のスナップショットにＢｅｆｏｒｅジャーナルを適用する場合、スナップショットの順序番号以下且つ指定されたリカバリポイントを持つジャーナルの順序番号より大きな順序番号を持つジャーナルを順序番号の大きい順に適用することでリカバリが行われる。
【００６４】
最新ＪＮＬヘッダ格納ＶＯＬＩＤ３００４、最新ＪＮＬヘッダ格納アドレス３００５、最古ＪＮＬヘッダ格納ＶＯＬＩＤ３００６、最古ＪＮＬヘッダ格納アドレス３００７は、新規ジャーナルヘッダを格納するボリュームやアドレスの決定、削除するジャーナルの特定のために利用され、新規ジャーナルヘッダ作成時やジャーナル削除時にストレージマイクロプログラム１０２８によって更新される。
【００６５】
図４は、管理テーブル１０２９を構成するジャーナルボリュームテーブル４０００の一例である。ジャーナルボリュームテーブル４０００は、ジャーナルグループに関連付けられるジャーナルボリュームを示すテーブルである。ジャーナルボリュームテーブル４０００は、ジャーナルグループの識別子を保持するＪＮＬグループＩＤ４００１、そのジャーナルグループに関連付けられたボリュームの識別子を保持するボリュームＩＤ４００２、そのボリュームの記憶容量を保持する容量４００３、順序４００４からなる。
【００６６】
順序４００４の値は、ＪＮＬグループＩＤ４００１に対応付けられたジャーナルボリュームを利用する順序を規定している。図４のＪＮＬＧ＿０１において、ストレージマイクロプログラム１０２８は、Ｊ−ＶＯＬ＿０１を使い終わった後、次にＪ−ＶＯＬ＿０３を利用することになる。また、最後のボリュームを使い切った場合、ストレージマイクロプログラム１０２８は、最初のボリュームを再利用するようにして、循環して各ボリュームを使いまわす。
【００６７】
ボリュームＩＤ４００２とＪＮＬグループＩＤ４００１は、リカバリマネージャ１１６２が提供するＣＬＩを用いて、管理者が関連付ける。たとえば、管理者は「ａｄｄＪＶＯＬ−ｊｇｉｄ  ＪＮＬＧ＿０１  −ｊｖｏｌｉｄ  Ｊ−ＶＯＬ＿０１」のようなコマンドを発行する。これはＪＮＬＧ＿０１という識別子のジャーナルグループにＪ−ＶＯＬ＿０１という識別子を持つボリュームを追加するという要求になる。このＪＮＬＧ＿０１がＪＮＬグループＩＤ４００１に格納され、Ｊ−ＶＯＬ＿０１の値がボリュームＩＤ４００２に格納される。複数のボリュームを単一のジャーナルグループに関連付ける場合は、上記のコマンドをボリュームのＩＤを変えて複数回実行する。なお、順序４００４の値は、ジャーナルグループ毎にボリュームを関連付けた（コマンドを発行した）順番どおりに、１、２、３・・・と１から順番に自然数が振り振られる。容量４００３は、ボリュームＩＤ４００２の値で識別されるボリュームの容量を、ストレージマイクロプログラム１０２８から取得することで、設定する。
【００６８】
図５は、管理テーブル１０２９を構成するスナップショットテーブル５０００の一例である。スナップショットテーブル５０００は、取得したスナップショットを管理するためのテーブルである。スナップショットテーブル５０００は、取得対象のジャーナルグループの識別子を保持するＪＮＬグループＩＤ５００１、スナップショットを格納するＳＳＶＯＬグループの識別子を保持するＳＳＶＯＬグループＩＤ５００２、スナップショットが取得された順序を示す順序番号５００３、取得時刻５００４を持つ。
【００６９】
ＪＮＬグループＩＤ５００１とＳＳＶＯＬグループＩＤ５００２との対応関係は、リカバリマネージャ１１６２が提供するＣＬＩを用いて、管理者が関連付ける。たとえば、管理者は「ａｄｄＳＳＶＯＬＧ−ｊｇｉｄ  ＪＮＬＧ＿０１−ｓｓｖｏｌｇｉｄ  ＳＳ＿０１」のようなコマンドを発行する。これは、ＪＮＬＧ＿０１という識別子のジャーナルグループにＳＳ＿０１という識別子を持つＳＳＶＯＬグループを追加するという要求になる。このＪＮＬＧ＿０１がＪＮＬグループＩＤ５００１に格納され、ＳＳ＿０１の値がＳＳＶＯＬグループＩＤ５００２に格納される。なお、複数世代のスナップショットを設定する場合は、上記コマンドを複数回実行する。順序番号５００３は、スナップショットを取得するたびに、ストレージマイクロプログラム１０２８によってジャーナルグループテーブル３０００の順序カウンタ３００３からコピーされる。
【００７０】
取得時刻５００４は、リカバリマネージャ１１６２からのスナップショット取得要求がストレージ装置１０００に到着した時刻を保持する。取得時刻５００４の値は、ジャーナルヘッダの生成時刻２１０４と同様に、ストレージマイクロプログラム１０２８が、ディスクコントローラ１０２０のタイマ１０２４から、あるいはスナップショット取得要求から取得し、設定するものである。
なお、スナップショットを開放する際には、ストレージマイクロプログラム１０２８が順序番号５００３及び取得時刻５００４にＮＵＬＬを設定する。
以上が、管理テーブル１０２９を構成するテーブル群の一例である。
【００７１】
図６から図８は、バックアップ管理情報１２６４を構成するテーブル群の一例である。図６は、バックアップ管理情報１２６４を構成するアプリケーションテーブル６０００である。アプリケーションテーブル６０００は、バックアップ管理を行うための情報を格納するテーブルであり、バックアップ対象アプリケーションの識別子を保持するアプリケーションＩＤ６００１、ＩＰアドレスなどのアプリケーションが起動しているホスト計算機の識別子を保持するホストアドレス６００２、アプリケーションが利用するジャーナルグループが属しているストレージの識別子を保持するストレージＩＤ６００３、アプリケーションが利用するジャーナルグループの識別子を保持するＪＮＬグループＩＤ６００４、ジャーナルボリュームの使用量を監視する周期を保持するＪＶＯＬ監視周期６００５、ジャーナル開放を始めるジャーナルボリューム使用量を示す値を保持するＪＶＯＬ閾値６００６を持つ。
【００７２】
アプリケーションＩＤ６００１、ホストアドレス６００２、ＪＶＯＬ監視周期６００５、ＪＶＯＬ閾値６００６の値は、設定プログラム１２６５が提供するＧＵＩを介して管理者によって設定される。
【００７３】
ストレージＩＤ６００３及びＪＮＬグループＩＤ６００４は、アプリケーションが利用するジャーナルグループの対応関係を示しており、設定プログラム１２６５が情報収集エージェント１１６１から取得する情報である。ストレージＩＤ６００３は、シリアル番号等のストレージ装置を一意に識別するためのＩＤである。
【００７４】
図７は、バックアップ管理情報１２６４を構成するスナップショット管理テーブル７０００の一例である。スナップショット管理テーブル７０００は、スナップショットの管理を行うための情報を格納するテーブルである。スナップショット取得対象となるアプリケーションの識別子を保持するアプリケーションＩＤ７００４、ＩＰアドレスなどのアプリケーションが起動しているホスト計算機を識別する識別子を保持するホストアドレス７００１、スナップショットを格納するボリュームを示すＳＳＶＯＬグループＩＤ７００２、スナップショットの取得時刻７００３を持つ。
【００７５】
アプリケーションＩＤ７００４及びホストアドレス７００１とＳＳＶＯＬグループＩＤ７００２の対応関係は、設定プログラム１２６５が設定する。
【００７６】
取得時刻７００３の値は、バックアッププログラム１２６３が管理者指定のバックアップスケジュールに基づきスナップショットを取得した時に、バックアッププログラム１２６３によって設定される。なお、スナップショットが格納されていない場合（初期状態で）は、０が設定されている。
【００７７】
図８は、バックアップ管理情報１２６４を構成するストレージテーブル８０００の一例である。ストレージテーブル８０００は、ストレージＩＤ８００１、ＩＰアドレス８００２からなる。ストレージＩＤ８００１は、シリアルナンバーなどのストレージ装置を一意に識別するための識別子を保持する。ＩＰアドレス８００２は、管理Ｉ／Ｆのネットワークのアドレスを保持する。この二つの値はどちらとも、設定プログラム１２６５が提供するＧＵＩを介して管理者によって設定される。
【００７８】
図９は、リカバリポイント管理情報１０３１を構成するルールテーブル９０００の一例である。ルールテーブル９０００は、ＪＮＬグループＩＤ９００１、ルール９００２からなる。ＪＮＬグループＩＤ９００１は、ルールを適用するジャーナルグループの識別子を保持する。ルール９００２は、ローカルディスク１２６０に格納されているルール定義ファイルの内容を表した文字列を保持する。これらの値は、設定プログラム１２６５によって設定される。
【００７９】
（２）実施例１の動作
まず、設定プログラム１２６５の動作について説明する。図１０Ａ及び図１０Ｂは設定プログラム１２６５がシステム設定用に提供するＧＵＩの一例である。図１０Ａのストレージ装置情報設定画面１０１００は、管理者がストレージ装置の情報を設定する際に、設定プログラム１２６５にＣＬＩなどで要求し表示させる画面の一例である。ストレージ装置ＩＤ１０１０１は、シリアルナンバーなどのストレージ装置を識別するＩＤを入力するフィールドである。ＩＰアドレス１０１０２は、ストレージ装置ＩＤ１０１０１で示されるストレージ装置の管理Ｉ／Ｆに接続するためのＩＰアドレスを入力するフィールドである。
【００８０】
追加１０１１０、削除１０１１１、実行１０１１２、取り消し１０１１３は、ボタンである。
【００８１】
ストレージ装置情報設定画面１０１００において、ストレージ装置ＩＤ１０１０１、ＩＰアドレス１０１０２、削除１０１１１は三つで一つのカラムを構成する。削除１０１１１を押下すると、押下された削除１０１１１が属するカラムをストレージ装置情報設定画面１０１００から削除することができる。追加１０１１０を押下すると、ストレージ装置情報設定画面１０１００上に前記カラムをストレージ装置情報設定画面１０１００上に増加させることができる。取り消し１０１１３を押下すると、設定プログラム１２６５は何もせずに終了する。実行１０１１２を押下すると、設定プログラム１２６５が、入力されているストレージ装置ＩＤ１０１０１の値とＩＰアドレス１０１０２の値の組を、ストレージテーブル８０００のストレージＩＤ８００１とＩＰアドレス８００２に設定する。
【００８２】
図１０Ｂのバックアップ対象アプリケーション情報設定画面１０２００は、管理者がバックアップ対象アプリケーションの情報を設定する際に、設定プログラム１２６５にＣＬＩなどで要求し表示させる画面の一例である。アプリケーションＩＤ１０２０１は、バックアップ対象となるアプリケーションを一意に識別するためのＩＤを入力するフィールドである。ホストアドレス１０２０２は、バックアップ対象となるアプリケーションが起動しているホスト計算機のＩＰアドレスを入力するフィールドである。ＪＶＯＬ監視周期（秒）１０２０３は、ジャーナルボリューム監視周期を入力するフィールドである。ここでは、単位を秒としているが、これ以外の単位であってもよい。ＪＶＯＬ利用量閾値１０２０４は、ジャーナル開放を実行するトリガとなる閾値を入力するフィールドである。ルール１０２０５は、前記ローカルディスク１２６０に格納されたルール定義ファイル名を入力するフィールドである。実行１０２１０、取り消し１０２１１は、ボタンである。
【００８３】
取り消し１０２１１を押下すると、設定プログラム１２６５は何もせずに終了する。実行１０２１０を押下すると、図１１に示すフローで情報の設定を行う。
【００８４】
次に、図１１を参照しながら、図１０Ｂの画面において、実行１０２１０ボタンを押下したときの設定プログラム１２６５と、設定プログラム１２６５によって途中で呼び出される情報収集エージェント１１６１の動作の一例を説明する。まず、設定プログラム１２６５は、アプリケーション１０２０１の値をアプリケーションテーブル６０００のアプリケーションＩＤ６００１に、ホストアドレス１０２０２の値をアプリケーションテーブル６０００のホストアドレス６００２に、ＪＶＯＬ監視周期（秒）１０２０３の値をアプリケーションテーブル６０００のＪＶＯＬ監視周期（秒）６００５に、ＪＶＯＬ利用量閾値１０２０４の値をアプリケーションテーブル６０００のＪＶＯＬ閾値６００６に設定する（ステップ１１０１０）。
【００８５】
次に、設定プログラム１２６５は、ホストアドレス６００２で示されるホスト計算機に接続し、情報収集エージェント１１６１にアプリケーションとジャーナルグループの対応情報を要求する（ステップ１１０２０）。
【００８６】
情報収集エージェント１１６１は、前記ローカルディスク１１７０に格納されたシステム構成定義ファイルからアプリケーションが利用するデータボリュームを特定し、そのデータボリュームが属するジャーナルグループとそのジャーナルグループが属するストレージ装置を特定する。その後、アプリケーションの識別子、そのアプリケーションが利用するデータボリュームが属するジャーナルグループの識別子、そのジャーナルグループが属するストレージ装置の識別子を設定プログラム１２６５に返す（ステップ１１０３０）。
【００８７】
設定プログラム１２６５は、そのアプリケーションが利用するデータボリュームが属するジャーナルグループの識別子をＪＮＬグループＩＤ６００４へ、そのジャーナルグループが属するストレージ装置をストレージＩＤ６００３に設定する（ステップ１１０４０）。
【００８８】
次に、ストレージＩＤ６００３の値をキーにストレージテーブル８０００から、ストレージ装置の管理Ｉ／ＦのＩＰアドレスを取得し、ルール１０２０５で示されたルール定義ファイルの内容を、ＪＮＬグループＩＤ６００４の値と対応させてルールテーブル９０００に設定するようにストレージマイクロプログラム１０２８に要求する（ステップ１１０５０）。
【００８９】
最後に、ストレージ装置へ接続し、スナップショットテーブル５０００のジャーナルグループ５００１とＳＳＶＯＬグループＩＤ５００２の対応関係をストレージマイクロプログラム１０２８から取得し、スナップショット管理テーブル７０００に設定する（ステップ１１０６０）。以上が、設定プログラムの動きである。
【００９０】
次に、図１２を参照しながら、バックアッププログラム１２６３の動作の一例について説明する。まず、バックアッププログラム１２６３は、バックアップスケジュールに従い、スナップショット取得タイミングまで待機する（ステップ１２０１０）。
【００９１】
スナップショット取得タイミングになると、バックアッププログラム１２６３は、バックアップスケジュールに定義されている新規スナップショット格納先ＳＳＶＯＬグループに既存のスナップショットが格納されているか判定する（ステップ１２０２０）。ここでは、新規スナップショット格納先ＳＳＶＯＬグループの識別子を用いてスナップショット管理テーブル７０００の取得時刻７００３の値を取得し、この値が０であれば格納されておらず、０以外の場合格納されていると判定する。
【００９２】
既存のスナップショットが格納されている場合、スナップショット・ＪＮＬ管理プログラム１０３０に対して既存のスナップショットの開放を要求する（ステップ１２０３０）。このとき、接続先となるストレージ装置のＩＰアドレスは、アプリケーションテーブル６０００及びストレージテーブル８０００を利用して算出できることは明らかである。なお、本要求を受け付けたときのスナップショット・ＪＮＬ管理プログラム１０３０の動作については後述する。一方、既存のスナップショットが格納されていない場合、ステップ１２０３０をスキップする。
【００９３】
その後、バックアッププログラム１２６３は、新規スナップショットを取得する（ステップ１２０４０）。ここでの処理は、リカバリマネージャ１１６２に対する、アプリケーションの静止化、新規スナップショットの取得、静止化の解除といった、従来のバックアッププログラムでも行われる一連の要求の発行となる。
【００９４】
新規スナップショット取得が終了すると、ステップ１２０１０へ戻り、次のスナップショット取得タイミングまで待機する。以上が、バックアッププログラム１２６３の動作の説明である。
【００９５】
次に、図１３を用いて、バックアッププログラム１２６３にスナップショット開放を要求されたときのスナップショット・ＪＮＬ管理プログラム１０３０の動作の一例について説明する。
【００９６】
スナップショット開放要求を受け付けたスナップショット・ＪＮＬ管理プログラム１０３０は、まず、開放対象スナップショットに依存するＡｆｔｅｒジャーナルを特定する（ステップ１３０１０）。開放対象スナップショットと同等のイメージを持つ他のスナップショットが存在する場合か、もしくは、開放対象スナップショットより一つ古いスナップショット（以降、「直前のスナップショット」と呼ぶ）にＡｆｔｅｒジャーナルを適用することで開放対象スナップショットと同等のイメージを作成できる場合、開放処理によって利用不可能になるＡｆｔｅｒジャーナルは存在しない。これら以外の場合は、開放対象スナップショット取得後から、開放対象スナップショット取得より一つ新しいスナップショット（以降、「直後のスナップショット」と呼ぶ）取得以前のリカバリポイントを持つＡｆｔｅｒジャーナルは利用できなくなる。このようなＡｆｔｅｒジャーナルが開放対象スナップショットに依存するＡｆｔｅｒジャーナルとなる。
【００９７】
すなわち、開放対象のスナップショットと同一の順序番号５００３を持つ他のスナップショットがある場合、依存するＡｆｔｅｒジャーナルは存在しない。また、直前のスナップショットが存在し、且つ、開放対象のスナップショットの順序番号５００３と同一の順序番号２１０５を持つＡｆｔｅｒジャーナルが存在する場合、依存するＡｆｔｅｒジャーナルは存在しない。これ以外の場合は、開放対象スナップショットの順序番号５００３より大きく、直後のスナップショットの順序番号以下の順序番号５００３以下の順序番号２１０５を持つＡｆｔｅｒジャーナルは、開放対象スナップショットに依存するＡｆｔｅｒジャーナルとなる。なお、本実施例では、直後のスナップショットが存在することを前提としているが、他の実施形態において直後のスナップショットが存在しない場合、開放対象のスナップショットの順序番号５００３より大きな順序番号２１０５を持つ全Ａｆｔｅｒジャーナルは開放対象スナップショットに依存するＡｆｔｅｒジャーナルとなる。
【００９８】
次に、開放対象スナップショットに依存するＢｅｆｏｒｅジャーナルを特定する（ステップ１３０２０）。前記の考え方と同様に、開放対象スナップショットと同等のイメージを持つ他のスナップショットが存在する場合か、もしくは、直後のスナップショットにＢｅｆｏｒｅジャーナルを適用することで開放対象スナップショットと同等のイメージを作成できる場合、開放処理によって利用不可能になるＢｅｆｏｒｅジャーナルは存在しない。一方、これら以外の場合は、直前のスナップショット取得後から開放対象スナップショット取得以前のリカバリポイントを持つＢｅｆｏｒｅジャーナルは利用できなくなる。このようなＢｅｆｏｒｅジャーナルが、開放対象スナップショットに依存するＢｅｆｏｒｅジャーナルとなる。
【００９９】
すなわち、開放対象のスナップショットと同一の順序番号５００３を持つスナップショットがある場合、依存するＢｅｆｏｒｅジャーナルは存在しない。また、直後のスナップショットが存在し、且つ、開放対象スナップショットの順序番号５００３と同一の順序番号２１０５を持つＢｅｆｏｒｅが存在する場合、依存するＢｅｆｏｒｅジャーナルは存在しない。これ以外の場合は、開放対象スナップショットの順序番号５００３以下で、直前のスナップショットの順序番号５００３より大きい順序番号２１０５を持つＢｅｆｏｒｅジャーナルは、開放対象スナップショットに依存するジャーナルとなる。なお、直前のスナップショットが存在しない場合、開放対象スナップショットの順序番号５００３以下の順序番号２１０５を持つ全Ｂｅｆｏｒｅジャーナルは開放対象スナップショットに依存するＢｅｆｏｒｅジャーナルとなる。
【０１００】
次に、特定した開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持するために対応するジャーナルを作成するかを、ルールテーブル９０００のルール９００２に設定されたルールを用いて判定する（ステップ１３０３０）。この一例として、「ＣＤＰ適用時間＝過去２４時間」と設定されていた場合の処理を図１４に示す。この説明については後述する。
【０１０１】
この判定において維持しないと判定した場合、開放対象スナップショットに依存するジャーナルを開放するように、ストレージマイクロプログラム１０２８へ要求する（ステップ１３０４０）。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象スナップショットに依存するジャーナルのうちＡｆｔｅｒジャーナルに関して、そのジャーナルの順序番号と等しい値を順序番号２１０５に持つジャーナルヘッダ２０１１のＡＪＮＬボリュームＩＤ２１０６及びＡＪＮＬ格納アドレス２１０７にＮＵＬＬを設定する。また、開放対象スナップショットに依存するジャーナルのうちＢｅｆｏｒｅジャーナルに関して、そのジャーナルの順序番号と等しい値を順序番号２１０５に持つジャーナルヘッダ２０１１のＢＪＮＬボリュームＩＤ２１０８及びＢＪＮＬ格納アドレス２１０９にＮＵＬＬを設定する。
この結果、ＡＪＮＬボリュームＩＤ２１０６、ＡＪＮＬ格納アドレス２１０７、ＢＪＮＬボリュームＩＤ２１０８、ＢＪＮＬ格納アドレス２１０９すべてがＮＵＬＬとなった場合、ストレージマイクロプログラム１０２８はそのジャーナルヘッダ２０１１を開放する。その後、ジャーナルヘッダ２０１１の中で最も小さい順序番号２１０５を持つものを検索し、そのジャーナルヘッダ２０１１が格納されているボリュームのボリュームＩＤ４００２を最古ＪＮＬヘッダ格納ＶＯＬＩＤ３００６に設定する。さらに、前記ジャーナルヘッダ２０１１が格納されているアドレスを最古ＪＮＬヘッダ格納アドレス３００７に設定する。
【０１０２】
次に、開放対象スナップショットを開放するようにストレージマイクロプログラム１０２８へ要求し（ステップ１３０５０）、処理を終了する。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象スナップショットの順序番号５００３及び取得時刻５００４にＮＵＬＬを設定する。
【０１０３】
一方、ステップ１３０３０の判定において維持すると判定された場合、開放対象スナップショットに依存するＡｆｔｅｒジャーナルに対応するジャーナルを作成するようにストレージマイクロプログラム１０２８へ要求する（ステップ１３０６０）。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象スナップショットに依存するジャーナルのうちＡｆｔｅｒジャーナルに関して、順序番号に従って、前記開放対象スナップショットに前記Ａｆｔｅｒジャーナルを適用し、上書きされるデータをジャーナルデータ領域２０２０に退避させる。その後、適用したＡｆｔｅｒジャーナルごとに、前記退避データを格納したボリュームのボリュームＩＤ４００２を前記Ａｆｔｅｒジャーナルのジャーナルヘッダ２０１１のＢＪＮＬボリュームＩＤ２１０８に設定する。また、前記退避データを格納したアドレスを前記Ａｆｔｅｒジャーナルのジャーナルヘッダ２０１１のＢＪＮＬ格納アドレス２１０９に設定する。
【０１０４】
次に、開放対象スナップショットに依存するＡｆｔｅｒジャーナルのみを開放するようにストレージマイクロプログラム１０２８へ要求する（ステップ１３０７０）。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象スナップショットに依存するジャーナルのうちＡｆｔｅｒジャーナルに関して、そのジャーナルの順序番号と等しい値を順序番号２１０５に持つジャーナルヘッダ２０１１のＡＪＮＬボリュームＩＤ２１０６及びＡＪＮＬ格納アドレス２１０７にＮＵＬＬを設定する。
この結果、ＡＪＮＬボリュームＩＤ２１０６、ＡＪＮＬ格納アドレス２１０７、ＢＪＮＬボリュームＩＤ２１０８、ＢＪＮＬ格納アドレス２１０９すべてがＮＵＬＬとなった場合、ストレージマイクロプログラム１０２８はそのジャーナルヘッダ２０１１を開放する。その後、ジャーナルヘッダ２０１１の中で最も小さい順序番号２１０５を持つものを検索し、そのジャーナルヘッダ２０１１が格納されているボリュームのボリュームＩＤ４００２を最古ＪＮＬヘッダ格納ＶＯＬＩＤ３００６に設定する。さらに、前記ジャーナルヘッダ２０１１が格納されているアドレスを最古ＪＮＬヘッダ格納アドレス３００７に設定する。ここで開放対象スナップショットに依存するＢｅｆｏｒｅジャーナルを開放しないのは、ステップ１３０６０で作成したジャーナルを直後のスナップショットに適用することで、開放対象スナップショットと同等のイメージを作成することができ、開放対象スナップショットに依存するＢｅｆｏｒｅジャーナルが再び利用可能となるためである。
【０１０５】
最後に、開放対象スナップショットを開放するようにストレージマイクロプログラム１０２８へ要求し（ステップ１３０５０）、処理を終了する。
【０１０６】
以上が、バックアッププログラム１２６３にスナップショット開放を要求されたときのスナップショット・ＪＮＬ管理プログラム１０３０の動作となる。なお、本動作のステップ１３０３０において、依存するジャーナルが持つリカバリポイントを維持しないと判定した場合の模式図が図２０（ａ）である。このようにストレージマイクロプログラム１０２８は、依存するジャーナルを開放対象と一緒に開放する。一方、本動作のステップ１３０３０において、依存するジャーナルが持つリカバリポイントを維持すると判定した場合の模式図が図２０（ｂ）である。このようにストレージマイクロプログラム１０２８は、依存するＢｅｆｏｒｅジャーナルを作成した後に依存するＡｆｔｅｒジャーナルを開放対象と一緒に開放する。
【０１０７】
なお、本実施例では、直後のスナップショットが存在することを前提に動作するが、他の実施形態において前記前提が満たされない場合は、ステップ１３０６０の直前に、直後のスナップショットが存在することを確認し、存在しなければステップ１３０４０へジャンプする判定を追加することで対応することができる。
【０１０８】
また、本実施例では、開放対象スナップショットを直後のスナップショットのイメージに更新できるようにＡｆｔｅｒジャーナルを保持することを前提としているが、前記前提が満たされない場合は、二つのスナップショット間のＡｆｔｅｒジャーナルの順序番号の連続性を確認し、連続性がない場合、１３０４０にジャンプするような判定をステップ１３０６０の直前に追加することで対応することができる。すなわち、開放対象スナップショットの順序番号に１を加算した値から直後のスナップショットの順序番号までの整数のうち一つでもＡｆｔｅｒジャーナルの順序番号となっていない整数がある場合は、１３０４０にジャンプする判定を追加することで対応できる。
【０１０９】
次に、図１４を用いて、図１３のステップ１３０３０において利用されるルールの一例を説明する。この例では、まず、現在時刻を取得し（ステップ１４０１０）、その時刻から過去２４時間以内のリカバリポイントが失われるかを確認し（ステップ１４０２０）、失われない場合は維持せずに開放すると判定し（１４０３０）、失われる場合はリカバリポイントを維持すると判定している（ステップ１４０４０）。すなわち、過去２４時間は可能な限りジャーナリングを用いたリカバリを有効にするというポリシーとなっている。
【０１１０】
次に、図１５を用いてＪＮＬ開放プログラム１２６２の動作の一例を説明する。ＪＮＬ開放プログラム１２６２は、アプリケーションテーブル６０００のＪＶＯＬ監視周期（秒）６００５に設定された間隔で、ジャーナル使用量の監視と開放を行う。このタイミングに達するまで、ＪＮＬ開放プログラム１２６２は待機する（ステップ１５０１０）。
【０１１１】
監視のタイミングになると、ＪＮＬ開放プログラム１２６２は、バックアップ対象アプリケーションが利用するストレージ装置のＩＰアドレスを、ストレージテーブル８０００から取得する。ＪＮＬ開放プログラム１２６２は、このＩＰアドレスを用いてストレージ装置に接続し、ストレージマイクロプログラム１０２８にジャーナルの使用率を問い合わせる（ステップ１５０２０）。
【０１１２】
取得した値が、アプリケーションテーブル６０００のＪＶＯＬ閾値６００６を越えているか判定し（ステップ１５０３０）、越えている場合、スナップショット・ＪＮＬ管理プログラムに、全ジャーナルの中で最古のリカバリポイントを持つジャーナル（以降、「最古のジャーナル」と呼ぶ）を開放するように要求する（ステップ１５０４０）。その後、ジャーナルの使用量がジャーナル開放処理により閾値を下回ったことを確認するために、再びステップ１５０２０にジャンプする。
【０１１３】
ステップ１５０３０の判定の結果、越えていない場合は、次回の監視周期まで待機するためステップ１４０１０にジャンプする。以上が、ＪＮＬ開放プログラム１２６２の動作である。
【０１１４】
なお、このＪＮＬ開放プログラムは周期的にジャーナルの利用量を取得し、閾値を越えた場合に最古のジャーナルの開放をスナップショット・ＪＮＬ管理プログラム１０３０に要求するが、最古のジャーナルの開放要求をスナップショット・ＪＮＬ管理プログラム１０３０に要求する機能のみをＣＬＩなどの管理者に実行可能な形態で提供することもできる。管理者は、これを用いることでジャーナルの管理を行うことができる。
【０１１５】
図１６は、図１５のステップ１５０４０において、ＪＮＬ開放プログラム１２６２から最古のジャーナルの開放処理を要求されたときのスナップショット・ＪＮＬ管理プログラム１０３０の動作を示したフローの一例である。
【０１１６】
スナップショット・ＪＮＬ管理プログラム１０３０は要求を受け付けると、まず、開放対象ジャーナルである最古のジャーナルがＡｆｔｅｒジャーナルであるかを判定する。（ステップ１６０１０）。ここでは、最も小さな順序番号を持つジャーナルヘッダを特定し、Ａｆｔｅｒジャーナルのジャーナルデータを持つかを確認し、持つ場合、最古のジャーナルはＡｆｔｅｒジャーナルであると判定する。持たない場合は、Ｂｅｆｏｒｅジャーナルであると判定する。
【０１１７】
この判定の結果Ａｆｔｅｒジャーナルである場合、開放対象ジャーナルに依存するＡｆｔｅｒジャーナルを特定する（ステップ１６０２０）。開放対象ジャーナルの開放によって、最古のジャーナルが持つリカバリポイント以外で、且つ、最古のジャーナルが持つリカバリポイントより新しいリカバリポイントを持つ最初のスナップショット（以降、「次のスナップショット」と呼ぶ）取得以前のリカバリポイントを持つＡｆｔｅｒジャーナルは利用できなくなる。このようなＡｆｔｅｒジャーナルが、開放対象ジャーナルに依存するＡｆｔｅｒジャーナルとなる。
【０１１８】
すなわち、開放対象ジャーナルの順序番号２１０５に１だけ加算した値から次のスナップショットの順序番号５００３までの整数を順序番号２０１５として持つ全てのＡｆｔｅｒジャーナルは、開放対象ジャーナルに依存するＡｆｔｅｒジャーナルとなる。
【０１１９】
次に、特定したＡｆｔｅｒジャーナルが持つリカバリポイントを維持するかを、ルールテーブル９０００のルール９００２に設定されたルールを用いて判定する（ステップ１６０３０）。このルールの一例は、図１４で既に説明したものである。
【０１２０】
判定の結果、リカバリポイントを維持する場合、特定したＡｆｔｅｒジャーナルに対応するジャーナルを作成する（ステップ１６０４０）。ここでは、開放対象のジャーナルの直前のスナップショットに開放対象ジャーナル及び開放対象ジャーナルに依存するＡｆｔｅｒジャーナルを適用することで対応するＢｅｆｏｒｅジャーナルを作成し、その後、作成したＢｅｆｏｒｅジャーナルを前記スナップショットに適用し、元の状態に戻すようにストレージマイクロプログラム１０２８へ要求する。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象ジャーナル及び開放対象スナップショットに依存するＡｆｔｅｒジャーナルに関して、順序番号に従って、前記直前のスナップショットに前記Ａｆｔｅｒジャーナルを適用し、上書きされるデータをジャーナルデータ領域２０２０に退避させる。その後、適用したＡｆｔｅｒジャーナルごとに、前記退避データを格納したボリュームのボリュームＩＤ４００２を前記Ａｆｔｅｒジャーナルのジャーナルヘッダ２０１１のＢＪＮＬボリュームＩＤ２１０８に設定する。また、前記退避データを格納したアドレスを前記Ａｆｔｅｒジャーナルのジャーナルヘッダ２０１１のＢＪＮＬ格納アドレス２１０９に設定する。これにより、開放対象ジャーナル及び開放対象ジャーナルに依存するＡｆｔｅｒジャーナルに対応するＢｅｆｏｒｅジャーナルが利用可能となる。その後、前記利用可能となったＢｅｆｏｒｅジャーナルを前記直前のスナップショットに適用することで、前記スナップショットを元の状態に戻す。さらに、開放対象ジャーナルに対応するジャーナルを削除するようにストレージマイクロプログラム１０２８へ要求する。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象ジャーナルの順序番号２１０５を持つジャーナルヘッダ２０１１のＢＪＮＬボリュームＩＤ２１０８及びＢＪＮＬ格納アドレス２１０９にＮＵＬＬを設定する。
【０１２１】
次に、開放対象ジャーナルに依存するジャーナルをすべて開放するようにストレージマイクロプログラム１０２８に要求する（ステップ１６０５０）。
【０１２２】
最後に、直前のスナップショットを更新せずに、最古のジャーナルを開放するようにストレージマイクロプログラム１０２８に要求する（ステップ１６０６０）。この要求を受け付けたストレージマイクロプログラム１０２８は、開放対象スナップショットに依存するジャーナルのうちＡｆｔｅｒジャーナルに関して、そのジャーナルの順序番号と等しい値を順序番号２１０５に持つジャーナルヘッダ２０１１のＡＪＮＬボリュームＩＤ２１０６及びＡＪＮＬ格納アドレス２１０７にＮＵＬＬを設定する。
この結果、ＡＪＮＬボリュームＩＤ２１０６、ＡＪＮＬ格納アドレス２１０７、ＢＪＮＬボリュームＩＤ２１０８、ＢＪＮＬ格納アドレス２１０９すべてがＮＵＬＬとなった場合、ストレージマイクロプログラム１０２８はそのジャーナルヘッダ２０１１を開放する。その後、ジャーナルヘッダ２０１１の中で最も小さい順序番号２１０５を持つものを検索し、そのジャーナルヘッダ２０１１が格納されているボリュームのボリュームＩＤ４００２を最古ＪＮＬヘッダ格納ＶＯＬＩＤ３００６に設定する。さらに、前記ジャーナルヘッダ２０１１が格納されているアドレスを最古ＪＮＬヘッダ格納アドレス３００７に設定する。
【０１２３】
ステップ１６０１０の判定において、最古のジャーナルがＢｅｆｏｒｅジャーナルである場合、開放対象ジャーナルに依存するジャーナルは存在し得ないため、ステップ１６０２０〜１６０５０をスキップし、このＢｅｆｏｒｅジャーナルのみを開放する。（ステップ１６０６０）。
【０１２４】
以上が、ＪＮＬ開放プログラム１２６２から最古のジャーナル開放処理を要求されたときのスナップショット・ＪＮＬ管理プログラム１０３０の動作の一例の説明である。なお、本動作のステップ１６０３０において、依存するＡｆｔｅｒジャーナルが持つリカバリポイントを維持しないと判定した場合の模式図が図１９（ａ）である。このようにストレージマイクロプログラム１０２８は、依存するジャーナルを開放対象と一緒に開放する。一方、本動作のステップ１６０３０において、依存するＡｆｔｅｒジャーナルが持つリカバリポイントを維持すると判定した場合の模式図が図１９（ｂ）である。このようにストレージマイクロプログラム１０２８は、依存するＢｅｆｏｒｅジャーナルを作成した後に依存するＡｆｔｅｒジャーナルを開放対象と一緒に開放する。
【０１２５】
なお、最古のジャーナルを開放することにより、前のスナップショットが不必要となる場合は、ステップ１５０５０において元の状態に戻さずに前のスナップショットを開放してもかまわない。ただし、この場合は、前のスナップショットが必要か不必要かを判断するフラグを、スナップショットテーブル５０００に追加し、値を設定しておく必要がある。
【０１２６】
また、本ジャーナル開放処理は従来方式と選択して利用してもよい。ただし、この場合は、どちらの方式でジャーナルを開放するかを判断するフラグをルールテーブル９０００に追加し、値を設定しておく必要がある。そして、ステップ１５０１０の前に従来方式を利用するかの判定を追加することで実現可能である。
【０１２７】
また、本実施例では、開放対象ジャーナルの直前のスナップショットを次のスナップショットのイメージに必ず更新できるようなＡｆｔｅｒジャーナルの保持方法を前提としているが、前記前提が満たされない場合は、ステップ１６０４０の直前に、二つのスナップショット間のＡｆｔｅｒジャーナルの順序番号の連続性を確認し、連続性がない場合、ステップ１６０５０にジャンプするようにすることで対応することができる。すなわち、直前のスナップショットの順序番号に１を加算した値から直後のスナップショットの順序番号までの整数のうち一つでもＡｆｔｅｒジャーナルの順序番号となっていないものがある場合は、ステップ１６０５０にジャンプすることで対応できる。
【０１２８】
以上、実施例１によれば、ジャーナルもしくはスナップショットを開放する際、利用不可能なジャーナルがジャーナルボリュームに残らなくなるため、効率的なジャーナルボリュームの利用が可能となる。
【実施例２】
【０１２９】
（１）実施例２のシステム構成
本発明の第２の実施形態のシステム構成図を図１７に示す。本構成の大部分は実施例１の構成と同等であるため、以降は相違点を中心に説明する。本構成では、ストレージ装置１０００のメインメモリ１２０１に書き込み監視プログラム１０３２が記憶されている。書き込み監視プログラム１０３２は、ホスト計算機１１００からの書き込みを監視し、ストレージマイクロプログラム１０２８のジャーナル作成処理の直前にジャーナル格納領域の確保を行う。また、本構成では、管理計算機１２００のメモリ１２５０にＪＮＬ開放プログラムは記憶されない。これに伴い、アプリケーションテーブル６０００のＪＶＯＬ監視周期（秒）６００５及びＪＶＯＬ閾値６００６は利用しなくなるため、削除してよい。
【０１３０】
（２）実施例２の動作
本実施例の動作の大部分は実施例１の動作と同じであるため、以降は相違点を中心に説明する。設定プログラム１２６５の動作では、バックアップ対象アプリケーション設定画面１０２００において、ＪＶＯＬ監視周期（秒）１０２０３及びＪＶＯＬ利用料閾値１０２０４を表示する必要は無い。また、これに伴い、図１１のステップ１１０１０における、上記二つのフィールドの値をアプリケーションテーブル６０００に設定するステップを省略することができる。
【０１３１】
次に、図１８を用いて、書き込み監視プログラム１０３２の動作の一例を説明する。まず、ＪＮＬ作成監視プログラム１０３２は、ホスト計算機１１００からの書き込みがストレージ装置１０００に到達するまで待機する（ステップ１８０１０）。書き込みが到達すると、ＪＮＬ作成監視プログラム１０３２は、ストレージマイクロプログラム１０２８が新規ジャーナルを作成する前に制御を奪い、ストレージマイクロプログラム１０２８にジャーナルボリュームのジャーナルボリューム１０１３の総量と使用量を問い合わせる（ステップ１８０２０）。ストレージマイクロプログラム１０２８がジャーナルボリュームテーブル４０００及びジャーナルヘッダ２０１１からこれらの値を算出できることは明らかである。
【０１３２】
次に、書き込まれるデータの長さを書き込み要求から取得し、ジャーナルヘッダ及びジャーナルデータを作成する余裕があるかを、上記ジャーナルボリュームの総量及び使用量から判定する（ステップ１８０３０）。
【０１３３】
判定の結果、余裕がある場合は、制御をストレージマイクロプログラム１０２８へ返し（ステップ１８０４０）、次の書き込みが発生するまで待機する（ステップ１８０１０）。
【０１３４】
一方、余裕が無い場合は、スナップショット・ＪＮＬ管理プログラム１０３０に最古のジャーナルを開放するように要求する（ステップ１８０５０）。なお、この要求に応じたスナップショット・ＪＮＬ管理プログラム１０３０の動作は、図１６で説明したものと同等である。その後、開放の結果、ジャーナルを作成する余裕ができたかを確認するため、ステップ１８０２０へ戻る。以上が、書き込み監視プログラム１０３２の動作の説明である。
【０１３５】
以上、実施例２によれば、ホスト計算機からの書き込みに同期したジャーナルの開放、及び、スナップショットの開放において、利用不可能なジャーナルがジャーナルボリュームに残らなくなるため、効率的なジャーナルボリュームの利用が可能となる。
【０１３６】
以上実施例で説明したが、本発明の他の実施形態１は、前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持するか否を判断する計算機システムである。
【０１３７】
本発明の他の実施形態２は、前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持する計算機システムである。
【０１３８】
本発明の他の実施形態３は、前記ストレージシステムは、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持する計算機システムである。
【０１３９】
本発明の他の実施形態４は、前記管理計算機は、前記ジャーナルの使用量が所定の値を越えているか否かを判断し、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求する計算機システムである。
【０１４０】
本発明の他の実施形態５は、前記管理計算機は、前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求する計算機システムである。
【０１４１】
本発明の他の実施形態６は、１または複数のホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備え、前記ホスト計算機及び管理計算機とで計算機システムを構成するストレージシステムにおいて、ＣＰＵ、メモリ及び接続用のインタフェースを備え、前記データボリュームの特定の時点のスナップショットを取得し、前記特定時点以降の書込みをジャーナルとして保持し、リカバリ時にリカバリポイントの近傍の時点で取得されたスナップショットを基底にして、該スナップショットに前記ジャーナルを適用することでリカバリを行い、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定し、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放するストレージシステムである。
【０１４２】
本発明の他の実施形態７は、前記依存するジャーナルが持つリカバリポイントを維持するか否を判断するストレージシステムである。
【０１４３】
本発明の他の実施形態８は、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持するストレージシステムである。
【０１４４】
本発明の他の実施形態９は、前記依存するジャーナルが持つリカバリポイントを維持すると判断し、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させ、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持するストレージシステムである。
【０１４５】
本発明の他の実施形態１０は、１または複数のホスト計算機、及び該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備え、かつ、開放対象スナップショットもしくはジャーナルと依存するジャーナルを開放するストレージシステムに接続する管理計算機において、ＣＰＵ、メモリ及び接続用のインタフェースを備え、前記ストレージシステムが保持するジャーナルの使用量が所定の値を越えているか否かを判断し、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求する管理計算機である。
【０１４６】
本発明の他の実施形態１１は、前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求する管理計算機である。
【０１４７】
本発明の他の実施形態１２は、１または複数のホスト計算機と、該ホスト計算機がデータの読み書きを行うデータボリュームを有するディスク装置を備えるストレージシステムと、前記ホスト計算機及び前記ストレージシステムと接続する管理計算機とを具備する計算機システムにおけるバックアップを管理する方法において、スナップショットもしくはジャーナルを開放する際に、リカバリ時に基底となるスナップショットとそれに適用するジャーナルの順序の決定に用いる順序関係を用いて、開放対象スナップショットもしくはジャーナルに依存するジャーナルを特定することと、特定した依存するジャーナルを前記開放対象スナップショットもしくはジャーナルとともに開放することを有するバックアップ管理方法である。
【０１４８】
本発明の他の実施形態１３は、前記依存するジャーナルが持つリカバリポイントを維持するか否を判断することを有するバックアップ管理開放方法である。
【０１４９】
本発明の他の実施形態１４は、前記依存するジャーナルが持つリカバリポイントを維持すると判断することと、前記開放対象スナップショットに依存するジャーナルを前記開放対象スナップショットに適用する際に上書きされるデータを退避させることと、前記開放対象スナップショットに依存するジャーナルが持つリカバリポイントを維持するバックアップ管理方法である。
【０１５０】
本発明の他の実施形態１５は、前記依存するジャーナルが持つリカバリポイントを維持すると判断することと、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルを前記スナップショットに適用する際に上書きされるデータを退避させることと、前記開放対象ジャーナルが適用されるべきスナップショットに依存するジャーナルが持つリカバリポイントを維持することを有するバックアップ管理方法である。
【０１５１】
本発明の他の実施形態１６は、前記ジャーナルの使用量が所定の値を越えているか否かを判断することと、越えている場合に、前記ストレージシステムに対し、最古のジャーナルの開放を要求することを有するバックアップ管理方法である。
【０１５２】
本発明の他の実施形態１７は、前記ストレージシステムに対し、スナップショットの取得と最古のスナップショットの開放を要求することを有するバックアップ管理方法である。
【図面の簡単な説明】
【０１５３】
【図１】実施例１におけるシステム構成を示す図。
【図２】実施例１におけるジャーナルボリュームの構成の一例を示す図。
【図３】実施例１におけるジャーナルグループテーブルの一例を示す図。
【図４】実施例１におけるジャーナルボリュームテーブルの一例を示す図。
【図５】実施例１におけるスナップショットテーブルの一例を示す図。
【図６】実施例１におけるアプリケーションテーブルの一例を示す図。
【図７】実施例１におけるスナップショット管理テーブルの一例を示す図。
【図８】実施例１におけるストレージテーブルの一例を示す図。
【図９】実施例１におけるルールテーブルの一例を示す図。
【図１０Ａ】実施例１における設定プログラムが表示するストレージ装置情報設定画面の一例を示す図。
【図１０Ｂ】実施例１における設定プログラムが表示するバックアップ対象アプリケーション情報設定画面の一例を示す図。
【図１１】実施例１における設定プログラムのバックアップ対象アプリケーション情報設定処理の動作を示す図。
【図１２】実施例１におけるバックアッププログラム１２６３のスナップショット取得処理を示す図。
【図１３】実施例１におけるスナップショット・ＪＮＬ管理プログラム１０３０のスナップショット開放処理を示す図。
【図１４】実施例１におけるリカバリポイント維持判定ルールの一例を示す図。
【図１５】実施例１におけるＪＮＬ開放プログラム１２６２のジャーナル利用量監視処理を示す図。
【図１６】実施例１におけるスナップショット・ＪＮＬ管理プログラム１０３０の最古のジャーナル開放処理を示す図。
【図１７】実施例２におけるシステム構成を示す図。
【図１８】実施例２における書き込み監視プログラム１０３２のジャーナル格納領域確保処理を示す図。
【図１９】本発明の実施形態における開放対象ジャーナルの開放処理の一例の説明図。
【図２０】本発明の実施形態における開放対象スナップショットの開放処理の一例の説明図。
【符号の説明】
【０１５４】
１０００：ストレージ装置
１０１０：ディスク装置
１０２０：ディスクコントローラ
１１００：ホスト計算機
１２００：管理計算機
【図１】
2007140698.tif 000003
【図２】
2007140698.tif 000004
【図３】
2007140698.tif 000005
【図４】
2007140698.tif 000006
【図５】
2007140698.tif 000007
【図６】
2007140698.tif 000008
【図７】
2007140698.tif 000009
【図８】
2007140698.tif 000010
【図９】
2007140698.tif 000011
【図１０Ａ】
2007140698.tif 000012
【図１０Ｂ】
2007140698.tif 000013
【図１１】
2007140698.tif 000014
【図１２】
2007140698.tif 000015
【図１３】
2007140698.tif 000016
【図１４】
2007140698.tif 000017
【図１５】
2007140698.tif 000018
【図１６】
2007140698.tif 000019
【図１７】
2007140698.tif 000020
【図１８】
2007140698.tif 000021
【図１９】
2007140698.tif 000022
【図２０】
2007140698.tif 000023