(57)【特許請求の範囲】
【請求項１】
論理ボリュームと論理ボリュームに対するアクセス要求元とを備えたシステムで実現される記憶制御方法において、
アクセス要求元から書込み要求が発行される都度に、発行された書込み要求に含まれているデータを第一の論理ボリュームに書くことで、前記第一の論理ボリュームを更新し、
前記第一の論理ボリュームに対する書込み要求の発行頻度と、バックアップにかかる時間であるバックアップ実行時間長を算出し、
バックアップモードがスナップショットモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも高いとき又は前記バックアップ実行時間長が所定の時間長よりも長いときは前記バックアップモードをジャーナルモードに変更し、
前記バックアップモードが前記ジャーナルモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも低いとき及び前記バックアップ実行時間長が所定の時間長よりも短いときは前記バックアップモードをスナップショットモードに変更し、
前記バックアップモードが前記スナップショットモードの場合、バックアップの実行の際には、定期的に又は不定期的に、その時点の前記第一の論理ボリュームのスナップショットを第二の論理ボリュームに書込み、リストアの実行の際には、前記第二の論理ボリュームに書込まれたスナップショットをリストアされたデータとし、
前記バックアップモードが前記ジャーナルモードの場合、前記書込み要求が発行される都度に、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルを第三の論理ボリュームに書込み、リストアの実行の際には、前記第三の論理ボリュームに書込まれたジャーナル中のデータが適用されたデータをリストアされたデータとする、
記憶制御方法。
【請求項２】
前記バックアップモードが前記ジャーナルモードの場合、所定のタイミングで、その時点の前記第一の論理ボリュームのスナップショットを第四の論理ボリュームに取得し、定期的に又は不定期的に、前記第三の論理ボリュームにおけるジャーナル内のデータを、前記第四の論理ボリューム内のスナップショットに適用することで、更新後のスナップショットを取得し、更新後のスナップショットを前記第二の論理ボリューム内に生成し、リストアの際には、前記第二の論理ボリューム内に生成されたスナップショットをリストアされたデータとする、
請求項１記載の記憶制御方法。
【請求項３】
前記バックアップモードが前記スナップショットモードの場合、前記アクセス要求元から書込み要求が発行されないよう前記アクセス要求元を静止化し、その静止化後に、前記第一の論理ボリュームのスナップショットを前記第二の論理ボリュームに取得し、
前記バックアップモードが前記ジャーナルモードの場合、前記アクセス要求元の静止化を行うことなく、前記第一の論理ボリュームのスナップショットを前記第四の論理ボリュームに取得する、
請求項２記載の記憶制御方法。
【請求項４】
前記バックアップモードが前記ジャーナルモードの場合、バックアップの時点、及び、エラーが検知された時点のうちの少なくとも一方の時点において、その時点を表すデータであるチェックポイントを所定の記憶域に書き、リストアの際、前記チェックポイントが表す時点までのジャーナル内のデータが適用されデータをリストアされたデータとする、
請求項１記載の記憶制御方法。
【請求項５】
前記バックアップモードが前記スナップショットモード及び前記ジャーナルモードのうちの少なくとも一方の場合、エラーが検知された時点で、前記第三の論理ボリュームにジャーナルが追記されないように制御することで、前記第三の論理ボリューム内のジャーナルを確保し、その時点から一定時間よりも過去のジャーナル内のデータを適用したものを取得する、
請求項１記載の記憶制御方法。
【請求項６】
少なくとも複数の第二の論理ボリュームがあり、
前記ジャーナル内のデータを適用したものをどの第二の論理ボリュームに適用するかを記録したテーブルとは別のテーブルに、エラーが検知された時点でジャーナルの確保を行うか否かを記録する、
請求項１記載の記憶制御方法。
【請求項７】
複数の論理ボリュームの候補の中から論理ボリュームを選択し、選択された論理ボリュームを前記第三の論理ボリュームとする、
請求項１記載の記憶制御方法。
【請求項８】
前記選択される論理ボリュームの容量又は数を、バックアップ実行時間長の確保に関する状態に応じた容量又は数とする、
請求項７記載の記憶制御方法。
【請求項９】
論理ボリュームを備えるストレージシステムと通信可能な計算機において、
第一の論理ボリュームに対する書込み要求を前記ストレージシステムに発行し、
前記第一の論理ボリュームに対する書込み要求の発行頻度と、バックアップにかかる時間であるバックアップ実行時間長を算出し、
バックアップモードがスナップショットモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも高いとき又は前記バックアップ実行時間長が所定の時間長よりも長いときは前記バックアップモードをジャーナルモードに変更し、
前記バックアップモードが前記ジャーナルモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも低いとき及び前記バックアップ実行時間長が所定の時間長よりも短いときは前記バックアップモードをスナップショットモードに変更し、
前記バックアップモードが前記スナップショットモードの場合、バックアップの実行の際には、定期的に又は不定期的に、その時点の前記第一の論理ボリュームのスナップショットを取得するよう前記ストレージシステムに要求し、リストアの実行の際には、前記第一の論理ボリュームに対応する第二の論理ボリューム内のスナップショットを前記リストアされたデータとし、
前記バックアップモードが前記ジャーナルモードの場合、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルの記録を開始するよう前記ストレージシステムに要求する、
計算機。
【請求項１０】
論理ボリュームを備えるストレージシステムと通信可能な計算機が備えるプロセッサが読み込んで実行することができるコンピュータプログラムにおいて、
前記第一の論理ボリュームに対する書込み要求の発行頻度と、バックアップにかかる時間であるバックアップ実行時間長を算出し、
バックアップモードがスナップショットモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも高いとき又は前記バックアップ実行時間長が所定の時間長よりも長いときは前記バックアップモードをジャーナルモードに変更し、
前記バックアップモードが前記ジャーナルモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも低いとき及び前記バックアップ実行時間長が所定の時間長よりも短いときは前記バックアップモードをスナップショットモードに変更し、
前記バックアップモードが前記スナップショットモードの場合、バックアップの実行の際には、定期的に又は不定期的に、その時点の前記第一の論理ボリュームのスナップショットを取得するよう前記ストレージシステムに要求し、リストアの実行の際には、前記第一の論理ボリュームに対応する第二の論理ボリューム内のスナップショットを前記リストアされたデータとし、
前記バックアップモードが前記ジャーナルモードの場合、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルの記録を開始するよう前記ストレージシステムに要求する、
コンピュータプログラム。
【請求項１１】
論理ボリュームと論理ボリュームに対するアクセス要求元とを備えたシステムで実現される記憶制御方法において、
アクセス要求元から書込み要求が発行される都度に、発行された書込み要求に含まれているデータを第一の論理ボリュームに書くことで、前記第一の論理ボリュームを更新し、
前記第一の論理ボリュームに対する書込み要求の発行頻度と、バックアップにかかる時間であるバックアップ実行時間長を算出し、
バックアップモードがスナップショットモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも高いとき又は前記バックアップ実行時間長が所定の時間長よりも長いときは前記バックアップモードをジャーナルモードに変更し、
前記バックアップモードが前記ジャーナルモードの場合であって、前記書込み要求の発行頻度が或る頻度閾値よりも低いとき及び前記バックアップ実行時間長が所定の時間長よりも短いときは前記バックアップモードをスナップショットモードに変更し、
前記バックアップモードが前記スナップショットモードの場合、バックアップの実行の際には、定期的に又は不定期的に、前記アクセス要求元から書込み要求が発行されないよう前記アクセス要求元を静止化し、その静止化後に、その時点の前記第一の論理ボリュームのスナップショットを第二の論理ボリュームに取得し、リストアの実行の際には、前記第二の論理ボリューム内のスナップショットをリストアされたデータとし、
前記バックアップモードが前記ジャーナルモードの場合、所定のタイミングで、前記アクセス要求元の静止化を行うことなく、その時点の前記第一の論理ボリュームのスナップショットを第四の論理ボリュームに取得し、そのスナップショットを基準として、前記書込み要求が発行される都度に、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルを第三の論理ボリュームに書き、バックアップの時点、及び、エラーが検知された時点のうちの少なくとも一方の時点において、その時点を表すデータであるチェックポイントを所定の記憶域に書き、定期的に又は不定期的に、前記チェックポイントが表す時点までのジャーナル内のデータを、前記第四の論理ボリューム内のスナップショットに適用することで、更新後のスナップショットを取得できるようにする、
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの記憶技術に関し、具体的には、データのバックアップやリストアの制御に関する。
【背景技術】
【０００２】
例えば、論理ボリュームのスナップショットとその論理ボリュームへの書込みの履歴（以下、ジャーナル）とを組み合わせて任意時点のデータを復元する技術がある（例えば、特開２００５−１８７３８号公報）。
【０００３】
【特許文献１】特開２００５−１８７３８号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データのバックアップやリストアのために採られる技術として、例えば、スナップショットを取得しそのスナップショットを使用してデータをリストアする技術（以下、便宜上「スナップショット技術」と言う）と、ジャーナルを取得しそのジャーナルを利用してデータをリストアする技術（以下、便宜上「ジャーナル技術」と言う）とがある。スナップショットとは、論理ボリュームの或る時点でのイメージのことである。ジャーナルとは、論理ボリュームへの書込みの履歴のことである。
【０００５】
スナップショット技術によれば、一般に、スナップショットそれ自体をリストアされたデータとして使用することができるため、リストアを短時間で行うことができる。しかし、多くの時点のどの時点にもリストアできるようにするためには、多数のスナップショットを取得する必要が生じるので、負荷が大きい。
【０００６】
一方、ジャーナル技術によれば、多くの時点のどの時点にもリストアできるようにしたい場合であっても、論理ボリュームへの書込みのジャーナルを記録すれば良いので、スナップショット技術に比べて負荷は小さい。しかし、過去の或る時点のデータをリストアするためには、その時点までの各時点のジャーナルを順次に利用しリストアしていく必要があるため、一般に、スナップショット技術よりもリストアに長い時間がかかってしまう。また、リストア対象とするデータが、アプリケーション及びデータベース等のようにデータ間で関連を持っている場合、リストアされたデータは、アプリケーション、およびデータベースのレベルで整合性が確保されていなくてはならないが、ストレージのジャーナルで任意の時点に回復したデータでは、上記の整合性は必ずしも保証されていない。
【０００７】
このように、スナップショット技術とジャーナル技術には、それぞれ短所があり、単独では、必ずしも効果的なバックアップやリストアを行うことはできない。また、互いの短所を補うため、スナップショット技術とジャーナル技術を常に併用するという方法も考え得るが、常に併用するとなると、負荷やコストの面で問題がある。
【０００８】
本発明の一つの目的は、従来よりも効果的なバックアップ及びリストアを行えるようにすることにある。
【０００９】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本発明に従う記憶制御方法は、論理ボリュームと論理ボリュームに対するアクセス要求元とを備えたシステムで実現されるものである。この記憶制御方法は、以下の処理、
（Ａ）アクセス要求元から書込み要求が発行される都度に、発行された書込み要求に含まれているデータを第一の論理ボリュームに書くことで、前記第一の論理ボリュームを更新し、
（Ｂ）スナップショットモードとなり、
（Ｃ）バックアップ実行時間長の確保に関する状態を監視し、アクセス要求元を停止或いは静止化しておくことができる時間長であるバックアップウィンドウが減少することによって、或る状態よりもバックアップのための時間長を確保しづらい状態になった場合には（例えば、バックアップウィンドウよりもバックアップに要する時間長の方が長い場合には）、前記スナップショットモードに変えてジャーナルモードとなり、
（Ｄ）前記スナップショットモードとなっている場合、バックアップの実行の際には、定期的に又は不定期的に、その時点の前記第一の論理ボリュームのスナップショットを第二の論理ボリュームに取得し、リストアの実行の際には、前記第二の論理ボリューム内のスナップショットをリストアされたデータとし、
（Ｅ）前記ジャーナルモードとなっている場合、前記書込み要求が発行される都度に、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルを第三の論理ボリュームに書き、リストアの実行の際には、前記第三の論理ボリュームに書かれたジャーナル中のデータを適用したものを取得する、
を実行する。
【００１１】
第一の態様では、前記バックアップ実行時間長の確保に関する状態の監視として、前記第一の論理ボリュームに対する書込み要求の発行頻度を求め、求められた発行頻度と或る頻度閾値とを比較することができる。前記或る状態よりもバックアップのための時間長を確保しづらい状態になった場合とは、前記発行頻度が前記或る頻度閾値を超えた場合であるとすることができる。また、前記発行頻度が前記或る頻度閾値以下になった場合に、前記ジャーナルモードに変えて元の前記スナップショットモードとなることもできる。
【００１２】
第二の態様では、前記バックアップ実行時間長の確保に関する状態の監視として、所定の方法により（例えば、バックアップの開始時と終了時のそれぞれの時刻から）バックアップ実行時間長を算出し、算出されたバックアップ実行時間長と或る時間長閾値とを比較することができる。前記或る状態よりもバックアップのための時間長を確保しづらい状態になった場合とは、算出されたバックアップ実行時間長が所定の時間長を超えている場合であるとすることができる。
【００１３】
第三の態様では、前記ジャーナルモードとなった場合、所定のタイミングで、その時点の前記第一の論理ボリュームのスナップショットを第四の論理ボリュームに取得し、定期的に又は不定期的に、前記第三の論理ボリュームにおけるジャーナル内のデータを、前記第四の論理ボリューム内のスナップショットに適用することで、更新後のスナップショットを取得し、更新後のスナップショットを前記第二の論理ボリューム内に生成し、リストアの際には、前記第二の論理ボリューム内に生成されたスナップショットをリストアされたデータとすることができる。また、前記スナップショットモードの場合、前記アクセス要求元から書込み要求が発行されないよう前記アクセス要求元を静止化し、その静止化後に、前記第一の論理ボリュームのスナップショットを前記第二の論理ボリュームに取得することができる。前記ジャーナルモードの場合、前記アクセス要求元の静止化を行うことなく、前記第一の論理ボリュームのスナップショットを前記第四の論理ボリュームに取得することができる。
【００１４】
第四の態様では、前記ジャーナルモードの場合、バックアップの時点、及び、エラーが検知された時点のうちの少なくとも一方の時点において、その時点を表すデータであるチェックポイントを所定の記憶域に書き、リストアの際、前記チェックポイントが表す時点までのジャーナル内のデータを適用したものを取得することができる。なお、このジャーナルモードの場合、アクセス要求元の静止化を行ってから、チェックポイントを書き、その後、アクセス要求元の静止化の解除を行うことができる。
【００１５】
第五の態様では、前記スナップショットモード及び前記バックアップモードのうちの少なくとも一方になっている場合、エラーが検知された時点で、前記第三の論理ボリュームにジャーナルが追記されないように制御することで、前記第三の論理ボリューム内のジャーナルを確保し、その時点から一定時間よりも過去のジャーナル内のデータを適用したものを取得することができる。
【００１６】
第六の態様では、少なくとも複数の第二の論理ボリュームがあってもよい。この場合、前記ジャーナル内のデータを適用したものをどの第二の論理ボリュームに適用するかを記録したテーブルとは別のテーブルに、エラーが検知された時点でジャーナルの確保を行うか否かを記録することができる。
【００１７】
第七の態様では、複数の論理ボリュームの候補の中から論理ボリュームを選択し、選択された論理ボリュームを前記第三の論理ボリュームとすることができる。ここで、前記選択される論理ボリュームの容量又は数を、バックアップ実行時間長の確保に関する状態に応じた容量又は数とすることができる。
【００１８】
本発明に従う計算機は、以下の処理、
（ｂ）第一の論理ボリュームに対する書込み要求をストレージシステムに発行し、
（ｃ）スナップショットモードとなり、
（ｄ）バックアップ実行時間長の確保に関する状態を監視し、アクセス要求元を停止或いは静止化しておくことができる時間長であるバックアップウィンドウが減少することによって、或る状態よりもバックアップのための時間長を確保しづらい状態になった場合には、前記スナップショットモードに変えてジャーナルモードとなり、
（ｅ）前記スナップショットモードとなっている場合、バックアップの実行の際には、定期的に又は不定期的に、その時点の前記第一の論理ボリュームのスナップショットを取得するよう前記ストレージシステムに要求し、リストアの実行の際には、前記第一の論理ボリュームに対応する第二の論理ボリューム内のスナップショットを前記リストアされたデータとし、
（ｆ）前記ジャーナルモードとなった場合、前記書込み要求中のデータを含んだ書込み履歴であるジャーナルの記録を開始するよう前記ストレージシステムに要求する、
を実行することができる。（ｂ）〜（ｆ）の各々の処理は、所定の手段によって実行することもできるし、複数のコンピュータプログラムを読み込んだ一又は複数のプロセッサ（例えばＣＰＵ）によって実行することもできる。各コンピュータプログラムは、計算機に備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭ等の記録媒体を介してインストールすることもできるし、インターネット等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００１９】
本発明によれば、従来よりも効果的なバックアップ及びリストアを行うことができる。
【発明を実施するための最良の形態】
【００２０】
図１Ａは、本発明の一実施形態に係るシステムのハードウェア構成の概要を示す。
【００２１】
業務サーバ１と、ストレージシステム２１と、管理サーバ１１とが、第一の通信ネットワーク、例えばＬＡＮ（Local Area Network）１２に接続されている。業務サーバ１とストレージシステム２１とが、第二の通信ネットワーク、例えばＳＡＮ（Storage Area Network）２に接続されている。なお、第一及び第二の通信ネットワークは、一つの通信ネットワークであっても良い。また、業務サーバ１もストレージシステム２１も、複数台存在しても良いが、説明を分かり易くするため、それぞれ一台のみを図示している。
【００２２】
業務サーバ１は、ユーザの業務（以下、ユーザ業務）を実行するためのサーバである。業務サーバ１は、種々のコンピュータプログラムを記憶することができる記憶資源（例えばメモリやハードディスクドライブ）５や、記憶資源５からコンピュータプログラムを読込んで実行するＣＰＵ３や、ＳＡＮ２を介した通信を制御するためのインターフェース装置（以下、インターフェース装置を「I/F」と略記）９や、ＬＡＮ１２を介した通信を制御するためのLAN I/F７等のハードウェア資源を備えるコンピュータマシンである。
【００２３】
管理サーバ１１は、ストレージシステム２１を管理及び監視するためのサーバである。管理サーバ１１は、種々のコンピュータプログラムを記憶することができる記憶資源１５や、記憶資源１５からコンピュータプログラムを読込んで実行するＣＰＵ１３や、ＬＡＮ１２を介した通信を制御するためのLAN I/F１７等のハードウェア資源を備えるコンピュータマシンである。なお、この実施形態では、管理サーバ１１と業務サーバ１は別々のサーバとなっているが、それに代えて、管理サーバ１１は業務サーバ１とは同一のものであっても良い。また、管理サーバ１１が有する機能（例えば、後述のストレージ管理プログラム４９の実行によって発揮される機能）が、ストレージシステム２１に搭載され、管理サーバ１１が存在しない形態が採用されても良い。
【００２４】
ストレージシステム２１は、例えば、データを記憶することができる記憶メディア（例えばハードディスク）を備えた複数のメディアドライブ（例えばハードディスクドライブ）３３を備えたＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）システムとすることができる。ストレージシステム２１は、複数のメディアドライブ３３の他に、例えば、コントローラ２２を備える。
【００２５】
コントローラ２２は、ストレージシステム２１の動作を制御する装置である。コントローラ２２は、ＳＡＮ２を介した通信を制御するSAN I/F２９や、ＬＡＮ１２を介した通信を制御するLAN I/F２７や、各メディアドライブ３３を介した通信を制御するドライブI/F３１を備えることができる。また、コントローラ２２は、メディアドライブ３３と業務サーバ１との間で授受されるデータを一時的に記憶することができるキャッシュメモリ２６や、ストレージシステム２１を制御するためのデータやコンピュータプログラムを記憶することができるメモリ（以下、制御メモリ）２５や、制御メモリ２５からコンピュータプログラムを読み込んで実行するＣＰＵ２３を備えることができる。
【００２６】
図１Ｂは、本発明の一実施形態に係るシステムを構成する各サーバやストレージシステムで実行されるコンピュータプログラムの一例を示す。なお、以下、便宜上、コンピュータプログラムを読み込んで実行するＣＰＵが行う動作の主体を、「ＣＰＵが」ではなく「プログラムが」と記載することにする。
【００２７】
業務サーバ１のＣＰＵ３は、一又は複数のアプリケーションプログラム（以下、「アプリケーション」と略記）４７と、バックアップ管理プログラム４５と、エラー検知プログラム４４とを実行することができる。
【００２８】
アプリケーション４７は、ユーザ業務を遂行するためのプログラムである。このプログラム４７は、ストレージシステム２１のメディアドライブ３３に格納されたデータを読み出して使用することができる。なお、図１Ｂでは、二つのアプリケーションＡ，Ｂが例示されているが、実際には動作するアプリケーションの数は幾つでも良い。
【００２９】
バックアップ管理プログラム４５は、ストレージシステム２１に存在する論理ボリューム（メディアドライブ３３上に設定された論理的な記憶デバイス）４３のコピーペア制御、アプリケーション４７の静止化、アプリケーション４７のデータのバックアップ及びリストアを行うことができる（コピーペア制御及び静止化については後述する）。また、バックアップ管理プログラム４５は、バックアップ時に後述のジャーナルボリューム４３Ｊを使用している場合、対象となるアプリケーション４７の整合性が確保されている時点をチェックポイント（例えばフラグ）としてジャーナルボリューム４３Ｊに記録することができる。また、このプログラム４５は、後述する種々のテーブルを保持している。
【００３０】
エラー検知プログラム４４は、アプリケーションプラグラム４７の実行により出力されたエラー情報を検知するためのプログラムである。本プログラム４４は、エラー情報を検知した場合（例えばエラー情報を検知したら即時に）、バックアップ管理プログラム４５に、エラーを検知したことを通知することができる。
【００３１】
管理サーバ１１のＣＰＵ１３は、ストレージ管理プログラム４９を実行することができる。ストレージ管理プログラム４９は、ストレージシステム２１の稼動状況を監視することができる。また、ストレージ管理プログラム４９は、定期的に（又は不定期的に）、ストレージシステム２１内の各論理ボリューム４３に対するアクセス頻度を取得し、取得したアクセス頻度を所定のテーブルに記録することができる。
【００３２】
ストレージシステム２１のＣＰＵ２３は、制御プログラム４１を実行することができる。制御プログラム４１は、業務サーバ１からのアクセス要求（例えば、データの書込み要求或いは読出し要求）を処理したり、論理ボリューム４３間のコピーを制御したりすることができる。制御プログラム４１は、例えば、業務サーバ１から書き込み要求を受信した場合、その書込み要求で指定されている論理ボリューム４３に対して、その書き込み要求に含まれているデータを書き込み、且つ、それと実質的に同時に、ジャーナルボリューム４３Ｊに対して書き込み履歴（つまりジャーナル）を記録することができる。また、制御プログラム４１は、バックアップ管理プログラム４５からの要求に応じて、所定の処理を行うことにより、後述のセカンダリボリューム４３Ｓにスナップショットを作成することができる。
【００３３】
ストレージシステム２１には、複数の論理ボリューム４３を設定することができる。そして、複数の論理ボリューム４３には、例えば、プライマリボリューム（以下、ＰＶＯＬ）４３Ｐと、セカンダリボリューム（以下、ＳＶＯＬ）４３Ｓと、ジャーナルボリューム（以下、ＪＶＯＬ）４３Ｊと、ジャーナル適用ボリューム４３Ｉとが含まれている。
【００３４】
ＰＶＯＬ４３Ｐは、アプリケーション４７で使用されるデータを記憶することができ、且つ、コピー元となる論理ボリュームである。例えば、業務サーバ１から書き込み要求があった場合、制御プログラム４１の制御により、その書込み要求に含まれているデータがＰＶＯＬ４３Ｐに書き込まれる。
【００３５】
ＳＶＯＬ４３Ｓは、ＰＶＯＬ４３Ｐのコピー先となる論理ボリューム、別の言い方をすれば、ＰＶＯＬ４３Ｐのスナップショットイメージを記憶することができる論理ボリュームである。ＳＶＯＬ４３Ｓは、ＰＶＯＬ４３Ｐとコピーペアになることができ、バックアップ管理プログラム４５からの要求によって、コピーペアのスプリットが行われた時点のスナップショットイメージをバックアップデータとして保持することができる。
【００３６】
ＪＶＯＬ４３Ｊは、ＰＶＯＬ４３Ｐに対する書き込みの履歴（ジャーナル）を記憶することができる論理ボリュームである。ＪＶＯＬ４３Ｊにジャーナルが記録されていれば、ジャーナルを利用したリストアが可能である。なお、ジャーナルを利用してデータのリストを行うためには、ジャーナルの基点となるスナップショットが別途必要になる。
【００３７】
ジャーナル適用ボリューム４３Ｉは、ＪＶＯＬ４３Ｊに記録されたジャーナルを適用するためのスナップショットを記憶することができる論理ボリュームである。本ボリューム４３Ｉは、リストア用のスナップショットをＳＶＯＬ４３Ｓ上に作成するため、内部的に使用されるものである。このため、以下、便宜上、ジャーナル適用ボリュームを「ＩＶＯＬ」と略記する。
【００３８】
ところで、この実施形態では、バックアップ管理プログラム４５は、ボリューム管理テーブル、バックアップ設定テーブル、バックアップ管理テーブル及びジャーナル管理テーブルを記憶資源５上に保持することができる。また、ストレージ管理プログラム４９は、アクセス頻度履歴テーブル及びジャーナルボリューム管理テーブルを記憶資源１５上に保持することができる。以下、各テーブルについて説明する。
【００３９】
図２Ａは、ボリューム管理テーブルの構成例を示す。
【００４０】
ボリューム管理テーブル５１は、バックアップ管理プログラム４５がバックアップ対象のアプリケーションとボリュームの対応関係を把握するために使用するものである。具体的には、例えば、ボリューム管理テーブル５１は、バックアップ管理プログラム４５と同一の業務サーバ１に存在する各アプリケーション４７毎に、「バックアップ対象」、「マウントポイント」及び「ボリュームＩＤ」が登録される。「バックアップ対象」とは、バックアップ対象となるデータを使用するアプリケーション４７のＩＤ（例えば名称）である。「マウントポイント」とは、アプリケーション４７に認識される仮想的なドライブのパス名であり、「ボリュームＩＤ」とは、そのドライブに割り当てられた論理ボリューム４３（典型的にはＰＶＯＬ４３Ｐ）のＩＤ（例えば番号）である。
【００４１】
図２Ｂは、バックアップ設定テーブルの構成例を示す。
【００４２】
バックアップ設定テーブル５３は、ユーザによって定義されたバックアップの設定に関する情報を記録するためのテーブルである。具体的には、例えば、バックアップ設定テーブル５３には、バックアップ管理プログラム４５と同一の業務サーバ１に存在する各アプリケーション４７毎に、「バックアップ対象」、「バックアップスケジュール」、「許容アクセス頻度」、「許容バックアップ時間長」及び「バックアップモード」が登録される。「バックアップ対象」は、ボリューム管理テーブル５１に登録されている「バックアップ対象」と同じ意味である。「バックアップスケジュール」とは、バックアップを実行するタイミングを表す（例えば、"毎日０２：００"であれば、毎日０２：００にバックアップが実行されることになる）。「許容アクセス頻度」とは、通常状態（これについては後述する）でバックアップすることが許されるアクセス頻度の最大値である。「許容バックアップ時間長」とは、通常状態でバックアップすることが許される、バックアップに要する時間長の最大値である。「バックアップモード」とは、どのような方法でバックアップするかを表しており、本実施形態では、スナップショットをバックアップとして取得する「スナップショットバックアップ」と、ジャーナルを記録する「ジャーナルバックアップ」との２種類がある。
【００４３】
図２Ｃは、バックアップ管理テーブルの構成例を示す。
【００４４】
バックアップ管理テーブル５５は、バックアップ管理プログラム４５が実行したバックアップの処理状況を記録するためのものである。具体的には、例えば、バックアップ管理テーブル５５には、バックアップ管理プログラム４５と同一の業務サーバ１に存在する各アプリケーション４７毎に、「バックアップ対象」、「バックアップ開始時刻」、「バックアップ終了時刻」、「リストアボリュームＩＤ」、「ジャーナル適用ボリュームＩＤ」及び「ジャーナルボリュームＩＤ」が登録される。「バックアップ対象」は前述の「バックアップ対象」と同義である。「バックアップ開始時刻」とは、バックアップの実行が開始された時刻であり、「バックアップ終了時刻」とは、そのバックアップの実行が終了した時刻である。「リストアボリュームＩＤ」とは、スナップショットが作成されたＳＶＯＬ４３ＳのＩＤであり、「ジャーナル適用ボリュームＩＤ」とは、バックアップの際に利用されたＩＶＯＬ４３ＩのＩＤであり、「ジャーナルボリュームＩＤ」とは、バックアップの際にジャーナルの記録先となったＪＶＯＬ４３ＪのＩＤである。
【００４５】
図２Ｄは、ジャーナル管理テーブルの構成例を示す。
【００４６】
ジャーナル管理テーブル５７は、ユーザによって定義された情報であって、ジャーナルリストア（ジャーナルを用いたリストア）用の設定に関する情報や、バックアップの処理状況に関する情報を記録するためのものである。具体的には、例えば、ジャーナル管理テーブル５７には、バックアップ管理プログラム４５と同一の業務サーバ１に存在する各アプリケーション４７毎に、「バックアップ対象」、「エラー発生時のジャーナル確保」、「ジャーナル保有期間」、「ジャーナル適用ボリュームＩＤ」、「ジャーナルボリュームＩＤ」及び「ジャーナル確保時刻」が登録される。「バックアップ対象」は前述の「バックアップ対象」と同義である。「エラー発生時のジャーナル確保」とは、エラー検知プログラム４４によってエラー情報が検知されたときに、そのエラー情報を出力したアプリケーション４７による書込みについてのジャーナルを確保するか否かを表す。それが、否であれば、「ジャーナル保有期間」、「ジャーナル適用ボリュームＩＤ」、「ジャーナルボリュームＩＤ」及び「ジャーナル確保時刻」のそれぞれの情報は登録されない。「ジャーナル保有期間」とは、どの時点のジャーナルまでを残しておくかであり、例えば、"発生前１時間"であれば、エラー情報が検知された時点よりも１時間前までのジャーナルを残しておき他を削除することを意味する。「ジャーナル適用ボリュームＩＤ」及び「ジャーナルボリュームＩＤ」については、前述のものと同義である。「ジャーナル確保時刻」とは、ジャーナルの確保が行われた時刻である。
【００４７】
図３Ａは、アクセス頻度履歴テーブルの構成例を示す。
【００４８】
アクセス頻度履歴テーブル５９は、バックアップ対象のアプリケーション４７によって使用されている論理ボリューム４３のアクセス頻度を記録するためのものである。具体的には、例えば、アクセス頻度履歴テーブル５９には、「測定時刻」と「アクセス頻度」とが登録される。「測定時刻」とは、アクセス頻度が取得された時刻である。「アクセス頻度」とは、各アプリケーション４７が使用する各論理ボリューム４３毎のアクセス頻度である。
【００４９】
なお、ここでの「アクセス頻度」とは、単位時間当たりに書かれたデータのサイズとすることができる。例えば、制御プログラム４１が、各アプリケーション４７別に、ＰＶＯＬ４３Ｐの更新履歴（例えばどの時刻からどれだけの時間をかけて何メガバイトのデータを書いたか）を所定の記憶域に書くことができる。ストレージ管理プログラム４９は、定期的に、所定の要求を制御プログラム４１に出すことができる。制御プログラム４１は、その要求を受けた時点から所定時間前までの更新履歴をストレージ管理プログラム４９に送ることができる。ストレージ管理プログラム４９は、受けた各更新履歴を基に、直前回の要求発行時（測定時刻）から今回の測定時刻までに書かれたデータの総サイズを、直前回の測定時刻から今回の測定時刻までの時間長（例えば単位は「秒」）で割ることで、図３Ａのようなアクセス頻度を求めることができる。
【００５０】
勿論、上記のアクセス頻度は一例にすぎない。例えば、「アクセス頻度」は、単位時間当たりに何回書き込み要求が発行されたかという意味であっても良い。
【００５１】
図３Ｂは、ジャーナルボリューム管理テーブルの構成例を示す。
【００５２】
ジャーナルボリューム管理テーブル６１は、ユーザに定義されたＪＶＯＬ４３Ｊの候補のうち、どのＪＶＯＬ４３Ｊの候補がどのアプリケーションに割り当てられているか（つまり、実際にＪＶＯＬ４３Ｊとして使用されているのはどれか）を管理するためのものである。具体的には、例えば、ジャーナルボリューム管理テーブル６１には、各ＪＶＯＬ４３Ｊ毎に、「ボリュームＩＤ」、「ボリューム容量」、「割り当ての有無」及び「対象アプリケーション」が登録される。「ボリュームＩＤ」は、ＪＶＯＬ４３ＪのＩＤを表す。「ボリューム容量」は、ＪＶＯＬ４３Ｊの記憶容量を表す。「割り当ての有無」は、ＪＶＯＬ４３Ｊが割り当てられたか否かを表す。「対象アプリケーション」は、ＪＶＯＬ４３Ｊが割り当てられたアプリケーション４７のＩＤを表す。
【００５３】
以上が、各テーブルについての説明である。
【００５４】
以下、図４を参照して、この実施形態の要部の概要を説明する。
【００５５】
この実施形態では、基本的には、バックアップ管理プログラム４５は、定期的に（又は不定期的に）、ＳＶＯＬ４３Ｓにスナップショットを生成することで、バックアップを行う。この状態を、本実施形態において「通常状態」と言う。通常状態では、スナップショットによるリストアが実行される。
【００５６】
通常状態において、アプリケーション４７によるアクセス頻度が増大すると、スナップショット取得のためのバックアップウィンドウの確保が困難になり、その結果として、バックアップのための時間長の確保が困難となる。ここで、この実施形態で言う「バックアップウィンドウ」とは、バックアップの取得のためにアクセス要求元（この実施形態ではアプリケーション）を停止或いは静止化させることが可能な時間長を意味する。データのバックアップ実行中は、そのデータが変更されないことが望ましい。このため、バックアップ実行中は、アプリケーション４７によって少なくともデータが更新されてしまうことを防ぐことが望ましく、そうすると、バックアップウィンドウは、アプリケーション４７によるアクセスができない時間長となる。しかし、アクセス頻度が増大しているときに、アクセスを止めてしまうと、業務のスループットが低下する。
【００５７】
そこで、本実施形態では、通常状態においてアクセス頻度が増大した場合には、バックアップ管理プログラム４５が、アプリケーション４７の可用性を確保するために、スナップショットによるバックアップからジャーナルによるバックアップに切り替える。なお、バックアップ管理プログラム４５は、バックグラウンド的に、チェックポイント（対象となるアプリケーション４７の整合性が確保されている時点）までのジャーナルをスナップショットに適用している。そのため、上記切り替え時点では、通常状態と同様に、スナップショットによるリストアを行うことができる。
【００５８】
一方、通常状態において、何らかの原因（例えば、論理的なデータ破壊）によってアプリケーション４７でエラー情報が発生しそれが検知された場合、バックアップ管理プログラム４５は、エラー情報発生前の一定期間のジャーナルを確保することができる。また、このとき、確保されたジャーナル群のうち、どの時点でアプリケーション（及び／又はデータベース）のレベルでデータの整合性（本実施形態の説明では単に「アプリケーションの整合性」と言うことがある）が確保されているかというチェックポイントを記録しておく。チェックポイントは、ユーザのバックアップ管理プログラム４５に対するバックアップ操作によって、明示的にアプリケーションの整合性が確保された時点で記録されても良い。また、チェックポイントは、アプリケーション４７が、定期的に又は不定期的に、データの整合性が確保された時点を検知し、ストレージシステム２１に通知することにより、制御プログラム４１によって記録されても良い。
【００５９】
なお、アプリケーション４７のエラー情報発生時にバックアップ管理プログラム４５がジャーナルの確保を行う理由は、例えば以下のとおりである。すなわち、アプリケーション４７で発生した論理的なデータ破壊が局所的なものであり、そのデータ破壊の発生後も、ストレージシステム２１が継続して稼動することが可能な場合、データ破壊が実際のエラーとして発見されるまでにタイムラグが発生し得る。エラー発生とエラー検知にタイムラグがある場合、エラーが検知された時点では、ユーザは、エラーが発生した時刻、換言すれば、データをリストアすべき正確なポイントを特定することができていない。この場合、ユーザは、エラー発生を基点として時間を遡りながらリストアを行ってゆき、リストアすべきポイントを特定するため、ジャーナルによるリストア作業を行う必要がある。このような非効率さを解消するために、上記のようなチェックポイントの記録が行われるのである。この場合には、取得されたスナップショットに、記録されたチェックポイントとそれに直近のチェックポイントとの間のジャーナルが適用されることで、リストアが行われる（このリストアについては、後に説明する）。
【００６０】
以上が、本実施形態における要部の概要の説明である。すなわち、図４において、通常状態において、アプリケーション４７のアクセス頻度が増大した場合には、高可用状態に状態が遷移する。また、通常状態において、アプリケーション４７のエラー情報の発生が検知された場合には、通常状態から、通常状態のエラー発生時に遷移する。なお、図４において、高可用状態のエラー発生時とは、高可用状態において、アプリケーション４７のエラー情報の発生が検知された場合に遷移される状態である。この状態の場合、アプリケーション４７の可用性の確保とジャーナルを利用したリストアの両方が可能になるが、ＪＶＯＬ４３Ｊの使用量（換言すればＪＶＯＬ４３Ｊへのアクセス頻度）は最も多くなる。
【００６１】
以下、本実施形態で行われる処理の流れについて詳細に説明するが、その前に、その処理流れにおける前提事項を述べておく。
【００６２】
第一に、バックアップ管理プログラム４５が、同一の業務サーバ１上で動作しているアプリケーション４７と論理ボリューム４３の関係を表したボリューム管理テーブル５１（図２Ａ参照）を保持している。
【００６３】
第二に、ユーザは、アプリケーションＡ及びＢのバックアップスケジュールをバックアップ管理プログラム４５に対して独立に定義しており、バックアップ管理プログラム４５は、その定義されたバックアップスケジュールを、バックアップ設定テーブル５３（図２Ｂ参照）の「バックアップスケジュール」に保持している。また、同テーブル５３には、各アプリケーション４７毎に、バックアップモードをスナップショットバックアップからジャーナルバックアップに切り替えるための閾値情報として「許容アクセス頻度」及び「許容バックアップ時間長」が設定されている。
【００６４】
第三に、アプリケーションＢ４７は、重要度の高い業務を実行するためのプログラムである。このため、ユーザは、バックアップ管理プログラム４５に対して、通常のバックアップに加えて、論理的なデータ破壊が発生した場合に備えて、エラー発生前の１時間の範囲でジャーナルリストア（ジャーナルを利用したリストア）をできるように設定が行われている。なお、この設定は、ジャーナル管理テーブル５７（図２Ｄ参照）に記録されている。
【００６５】
第四に、ストレージ管理プログラム４５は、ボリューム管理テーブル５１から各アプリケーションが使用している論理ボリューム４３のボリュームＩＤを取得し、取得したボリュームＩＤ（つまり、監視対象となる論理ボリュームのＩＤ）を、アクセス頻度履歴テーブル５９（図３Ａ参照）に登録する。また、ユーザは、ＪＶＯＬ４３Ｊの候補となる論理ボリューム４３に関する情報をストレージ管理プログラム４９に対して入力し、ストレージ管理プログラム４９は、入力された情報をジャーナルボリューム管理テーブル６１に登録する。
【００６６】
第五に、制御プログラム４１は、スナップショットを取得できるようになっている。以下、具体例を説明する。なお、その際、コピーペアの状態として、「コピー状態」、「同期化状態」及び「非同期化状態」という言葉を用いるが、各言葉の意味は以下の通りである。
【００６７】
すなわち、「コピー状態」とは、コピーペアが「同期化状態」に至る過程で、ＰＶＯＬ４３ＰとＳＶＯＬ４３Ｓとの差分を管理するための図示しないビットマップ（例えば、ＰＶＯＬの各場所に対応した各ビットから成るビットマップ、以下、差分ビットマップ）を基に、ＰＶＯＬ４３Ｐ内のデータとＳＶＯＬ４３Ｓ内のデータとの差分（以下、差分データ）が、ＳＶＯＬ４３Ｓに対してコピーされている状態である。差分データがなくなった時に、自動的に、コピーペアの状態が、「コピー状態」から「同期化状態」に遷移する。
【００６８】
「同期化状態」とは、ＰＶＯＬ４３ＰとＳＶＯＬ４３Ｓのデータが同期している状態である。この状態では、ＰＶＯＬ４３Ｐのデータが更新された場合、その更新（ＰＶＯＬ４３Ｐに新たに書かれたデータ）は、即座に（例えば、ＰＶＯＬ４３Ｐの更新と実質的に同時に）、ＳＶＯＬ４３Ｓに反映される。
【００６９】
「非同期化状態」とは、ＰＶＯＬ４３ＰとＳＶＯＬ４３Ｓのデータが非同期になっている状態であり、ＰＶＯＬ４３Ｐに対するデータ更新はＳＶＯＬ４３Ｓのデータに影響を与えない（すなわち、ＰＶＯＬ４３Ｐに新たにデータが書かれてもそれがＳＶＯＬ４３Ｓに書かれることはない）。この時に、ＰＶＯＬ４３Ｐに新たにデータが書かれた場合、それが、差分データとして所定の記憶域に保存され、且つ、新たにデータが書かれた場所で更新があったことがビットマップに記録される（例えば、すなわち、その場所に対応したビットが０から１に変わる）。
【００７０】
制御プログラム４１は、ＰＶＯＬ４３ＰとＳＶＯＬ４３Ｓのデータを同期させるため、スナップショット取得指示を受けた時点での差分ビットマップに基づいて、ＰＶＯＬ４３ＰからＳＶＯＬ４３Ｓにコピーする必要がある差分データを特定した上で、同期化の処理を開始する。またこれと同時に、コピーペアの状態を「コピー状態」に変更する。
【００７１】
制御プログラム４１は、特定された差分データのコピーをビットマップ単位で実行し、データコピー後に差分ビットマップ上の該当箇所の更新を行う（例えば、差分データのコピーが完了したら、それに対応するビットを１から０に変える）。制御プログラム４１は、差分データがなくなるまで、この処理を繰り返す。この時、ビットマップの差分がなくなった時点で、コピーペアの状態が自動的に「同期化状態」に遷移する。
【００７２】
制御プログラム４１は、差分データのコピーの完了後、スナップショット作成のために（つまり、ＰＶＯＬ４３Ｐの更新をＳＶＯＬ４３Ｓに反映させないようにするために）、コピーペアの状態を「非同期化状態」に変更する。
【００７３】
制御プログラム４１は、その後、バックアップ管理プログラム４５から所定の問い合わせを受けたならば、完了報告を返すことができる。この一連の処理により、バックアップ管理プログラム４５からスナップショット取得指示を受けた時点のＰＶＯＬ４３ＰのスナップショットをＳＶＯＬ４３Ｓに生成することができる。
【００７４】
第六に、制御プログラム４１は、ＰＶＯＬ４３Ｐにデータが書き込まれた場合に、ジャーナルボリューム４３Ｊに対してジャーナルを記録することができる。そのジャーナルには、例えば、ＰＶＯＬ４３Ｐに書かれたデータと同一のデータと、更新情報とが含まれている。「更新情報」とは、ＰＶＯＬ４３Ｐに書かれたデータを管理するための情報であり、例えば、書き込み要求を受信した時刻（或いは受信した順序を表す番号）、書かれたデータのデータサイズ等の情報要素を含んでいる。つまり、制御プログラム４１は、ジャーナルから特定される順序に従って、そのジャーナル中のデータをスナップショットに反映していくことで、そのジャーナルが書かれた各時点にデータをリストアしていくことができる。
【００７５】
以下、本実施形態で行われる処理の流れについて説明する。
【００７６】
図５は、通常状態において行われるバックアップ処理の流れの一例を示す。
【００７７】
バックアップ管理プログラム４５は、現在の時刻（例えば所定のタイマから取得される時刻）に一致する「バックアップスケジュール」（バックアップ設定テーブル５３に設定されている時刻）があれば（ステップＳ３１でＹＥＳ）、その「バックアップスケジュール」に対応するアプリケーション４７の「バックアップ開始時刻」の欄（バックアップ管理テーブル５５上の欄）に、バックアップ開始時刻（つまりここでは現在時刻）を記録する（Ｓ３２）。
【００７８】
次に、バックアップ管理プログラム４５は、その「バックアップスケジュール」に対応するアプリケーション４７の静止化を行う（Ｓ３３）。アプリケーション４７の静止化とは、そのアプリケーション４７に所定のコマンドを発行する等の方法により、そのアプリケーション４７に、少なくとも書き込み要求を発行しないようにさせる処理である。この処理を行うのは、書込み要求によってバックアップ対象のデータが更新されてしまうことを防ぐためである。
【００７９】
バックアップ管理プログラム４５は、バックアップ設定テーブル５３を参照し、静止化されたアプリケーション４７に対応する「バックアップモード」を判別する（Ｓ３４）。
【００８０】
Ｓ３４の結果、「バックアップモード」が「スナップショットバックアップ」であると判別された場合には（Ｓ３４でＹＥＳ）、バックアップ管理プログラム４５は、スナップショット取得指示を制御プログラム４１に対して送信することにより、スナップショットの取得を行う（Ｓ３５）。
【００８１】
完了報告を制御プログラム４１から受けた場合に、バックアップ管理プログラム４５は、スナップショットが生成されたＳＶＯＬ４３ＳのＩＤを「リストアボリュームＩＤ」としてバックアップ管理テーブル５５に書き込むことができる（Ｓ３６）。なお、ここで書かれるＩＤは、制御プログラム４１から完了報告と共に通知されたＩＤとすることができる。制御プログラム４１は、例えば、各ＰＶＯＬ４３ＰのＩＤと各ＳＶＯＬ４３ＳのＩＤとの対応関係が書かれたテーブルを保持していて、そのテーブルに書かれたＩＤであって、スナップショット取得の際にデータのコピー先となったＳＶＯＬ４３ＳのＩＤを、完了報告と共にバックアップ管理プログラム４５に通知することができる。
【００８２】
Ｓ３６の後、バックアップ管理プログラム４５は、静止化されているアプリケーション４７に対して所定のコマンドを発行することにより、アプリケーション４７の静止化を解除することができる（Ｓ３９）。
【００８３】
バックアップ管理プログラム４５は、Ｓ３９の終了した時点の現在時刻を、静止化が解除されたアプリケーション４７に対応する「バックアップ終了時刻」として、バックアップ管理テーブル５５に記録することができる（Ｓ４０）。なお、「バックアップ終了時刻」は、同一のアプリケーション４７について、履歴として、複数個記録されても良い。
【００８４】
以上が、通常状態において行われるバックアップ処理の流れの一例である。なお、Ｓ３４において、「バックアップモード」が「ジャーナルバックアップ」であると判別された場合には、バックアップ管理プログラム４５は、静止化されたアプリケーション４７に対応する「ジャーナルボリュームＩＤ」をバックアップ管理テーブル５５から取得し（Ｓ３７）、そのＩＤに対応するＪＶＯＬ４３Ｊ内の最新のジャーナルに対してチェックポイントを記録することを制御プログラム４１に要求する（Ｓ３８）。これにより、制御プログラム４１によって、その要求を受けた時点でデータの整合性がとれていることを意味するチェックポイントをＪＶＯＬ４３Ｊに記録する。
【００８５】
図６は、リストア処理の流れの一例を示す。
【００８６】
バックアップ管理プログラム４５は、ユーザから、リストアの指示を受付けることができる（Ｓ４１）。具体的には、例えば、バックアップ管理プログラム４５は、スナップショットとジャーナルのどちらによるリストアを実行するかということと、アプリケーション４７の指定とを受けることができる。
【００８７】
バックアップ管理プログラム４５は、スナップショットによるリストアの指定を受けた場合（Ｓ４１でＮＯ）、指定されたアプリケーション４７の「バックアップ終了時刻」に対応する「リストアボリュームＩＤ」をバックアップ管理テーブル５５から取得する（Ｓ４２）。次に、バックアップ管理プログラム４５は、取得した「リストアボリュームＩＤ」に対応するＳＶＯＬ４３Ｓ内のスナップショット（つまり全データ）を、指定されたアプリケーション４７のＰＶＯＬ４３Ｐに反映することで、データをリストアする（例えば、そのＳＶＯＬ４３ＳをＰＶＯＬ４３Ｐとすることでリストアしても良い）（Ｓ４３）。この後、バックアップ管理プログラム４５は、その指定されたアプリケーション４７を起動することができる。
【００８８】
一方、Ｓ４１で、バックアップ管理プログラム４５は、ジャーナルによるリストアの指定を受けた場合（Ｓ４１でＹＥＳ）、Ｓ４５〜Ｓ４８を実行する。これらについては後で説明する。
【００８９】
図７は、通常状態から高可用状態に遷移する際に行われる処理流れの一例を示す。
【００９０】
バックアップ管理プログラム４５は、図５のＳ４０まで終えたら、バックアップ設定テーブル５３を参照し、或るアプリケーション４７の「バックアップモード」を判別する（Ｓ５１）。
【００９１】
Ｓ５１の結果、判別された「バックアップモード」が「スナップショットバックアップ」であれば（Ｓ５１でＮＯ）、バックアップ管理プログラム４５は、そのアプリケーション４７の「許容アクセス頻度」と「許容バックアップ時間長」をバックアップ設定テーブル５３から取得する（Ｓ５２）。そして、バックアップ管理プログラム４５は、そのアプリケーション４７の「バックアップ開始時刻」及び「バックアップ終了時刻」をバックアップ管理テーブル５５から取得し、それらの差分であるバックアップ実行時間長を算出する（Ｓ５３）。
【００９２】
バックアップ管理プログラム４５は、バックアップ実行時間長と「許容バックアップ時間長」とを比較する（Ｓ５４）。
【００９３】
Ｓ５４の結果、バックアップ実行時間長が「許容バックアップ時間長」以下であれば（Ｓ５４でＮＯ）、バックアップ管理プログラム４５は、ストレージ管理プログラム４９に所定の要求（例えば、取得された「バックアップ開始時刻」及び「バックアップ終了時刻」を含んだ要求）を出すことにより、バックアップ実行時間中のアクセス頻度の平均値を取得する（Ｓ５５）。この平均値は、バックアップ管理プログラム４５が、ストレージ管理プログラム４９から受けた情報を用いて算出しても良いし、ストレージ管理プログラム４９が算出しても良い。具体的には、例えば、ストレージ管理プログラム４９が、「バックアップ開始時刻」と「バックアップ終了時刻」との間に測定された一以上のアクセス頻度の平均値を算出することができる。
【００９４】
バックアップ管理プログラム４５は、取得されたアクセス頻度の平均値と「許容アクセス頻度」とを比較し、取得されたアクセス頻度の平均値が「許容アクセス頻度」以下の場合（Ｓ５６でＮＯ）、終了となる。
【００９５】
バックアップ管理プログラム４５は、バックアップ実行時間長が「許容バックアップ時間長」よりも長い（Ｓ５４でＹＥＳ）、又は、取得されたアクセス頻度の平均値が「許容アクセス頻度」よりも大きい場合（Ｓ５６でＹＥＳ）、ストレージ管理プログラム４９にＪＶＯＬ４３Ｊの割り当てを要求する（Ｓ５７）。この場合、図８の処理が行われる。
【００９６】
すなわち、ストレージ管理プログラム４９は、ジャーナルボリューム管理テーブル６１上で「未割り当て」の「ボリュームＩＤ」を取得し（Ｓ７１）、その「ボリュームＩＤ」を対象となっているアプリケーション４７用のＪＶＯＬ４３Ｊとして設定するよう制御プログラム４１に要求する（Ｓ７２）。そして、ストレージ管理プログラム４９は、Ｓ７１で取得した「ボリュームＩＤ」を「割り当て済み」に更新し（Ｓ７３）、対象となっているアプリケーション４７の「対象アプリケーション」の欄にアプリケーション名を書く（Ｓ７４）。その後、ストレージ管理プログラム４９は、割り当てたジャーナルボリュームの「ボリュームＩＤ」をバックアップ管理プログラム４５に通知することができる（Ｓ７５）。
【００９７】
再び図７を参照する。「ボリュームＩＤ」の通知を受けたバックアップ管理プログラム４５は、アプリケーション４７の使用する論理ボリューム４３に対してジャーナル適用のためのスナップショット（以下、初期スナップショット）を取得することができる（Ｓ５８）。ここでは、例えば、バックアップ管理プログラム４５は、所定の要求を出すことで、制御プログラム４１が、その要求を受けた時点のＰＶＯＬ４３Ｐのスナップショット（つまり初期スナップショット）をＩＶＯＬ４３Ｉに生成することができる。ここで着目すべきは、図５のＳ３３のように、アプリケーション４７の静止化が行われることなく、このＳ５８の処理が実行される点である。
【００９８】
バックアップ管理プログラム４５は、割り当てられたＪＶＯＬ４３Ｊにジャーナルを書いていくよう制御プログラム４１に指示すると共に（Ｓ５９）、バックアップ設定テーブル５３の「バックアップモード」を「ジャーナルバックアップ」に設定する（Ｓ６０）。また、バックアップ管理プログラム４５は、割り当てられたＪＶＯＬ４３Ｊの「ジャーナルボリュームＩＤ」や、ジャーナル適用のための新規スナップショットに使用したＩＶＯＬ４３Ｉの「ジャーナル適用ボリュームＩＤ」を、それぞれ、バックアップ管理テーブル５５に記録する（Ｓ６１）。
【００９９】
なお、ここで、ＩＶＯＬ４３ＩをＳＶＯＬ４３Ｓとは別に用意する理由は、スナップショットを作成するためのジャーナル適用中に障害が発生した場合に備えて、ＳＶＯＬ４３Ｓを、アプリケーションの静止点が確保されたリストア用のデータとして確保しておく必要があるからである。
【０１００】
以上の状態遷移（別の言い方をすればバックアップモードの切り替え）により、バックアップ時にスナップショットを作成する必要がなくなり、ＪＶＯＬ４３Ｊに対してチェックポイントを記録するだけでバックアップの取得できるようになる。このため、バックアップ取得時に必要なアプリケーションの静止化時間を極小（実質的にゼロ）にすることができる。
【０１０１】
これ以降、制御プログラム４１は、ＪＶＯＬ４３Ｊに記録されたジャーナルを、逐次、バックグラウンドで（別の言い方をすれば、アプリケーション４７からのアクセス要求を受付けながら、アプリケーション４７に対して認識されない処理として）、ＩＶＯＬ４３Ｉに適用するとともに、適用済みのジャーナルをＪＶＯＬ４３Ｊから消去する（消去せず残しておいても良い）。なお、この時、ＪＶＯＬ４３Ｊの未使用容量が不足してきた場合、バックアップ管理プログラム４５は、ストレージ管理プログラム４９に、ＪＶＯＬ４３Ｊの追加割り当ての要求を出すことができる。或いは、ＪＶＯＬ４３Ｊの未使用要領が増えてきた場合、バックアップ管理プログラム４５は、ストレージ管理プログラム４９に、ジャーナルボリュームの割り当て解除の要求を出すことができる。それらの要求に応じて、ストレージ管理プログラム４９は、ＪＶＯＬ４３Ｊの候補を「未割り当て」から「割り当て済み」に更新したり、逆に、「割り当て済み」から「未割り当て」に更新したりすることができる。また、ストレージ管理プログラム４９は、その更新に伴い、制御プログラム４１に対し、ボリューム管理の更新を要求することもできる。
【０１０２】
以下、図９Ａを参照して、アプリケーション４７によるデータ書き込みからＩＶＯＬ４３Ｉに対するジャーナル適用までの処理の流れの一例を説明する。
【０１０３】
バックアップ管理プログラム４５が、制御プログラム４１に対してジャーナル適用開始要求を発行する（Ｓ１）。これは、例えば、図７のＳ６０のときに行うことができる。
【０１０４】
制御プログラム４１は、その要求を受けた以後、アプリケーション４７から書込み要求を受けたならば（Ｓ２）、その書込み要求中のデータを含んだジャーナルをＪＶＯＬ４３Ｊに書き（Ｓ３）、且つ、そのデータをＰＶＯＬ４３Ｐに書く（Ｓ４）。なお、書き込み要求元のアプリケーション４７のデータを含んだジャーナルをどの論理ボリューム４３に書くべきかは、例えば、図８のＳ７２での要求に応答して行った設定により、判別することができる。また、そのアプリケーション４７のデータをどの論理ボリューム４３に書くべきかは、例えば、論理ボリューム４３のＩＤとアプリケーションのＩＤとの対応関係が記録された図示しないテーブルを参照することにより、判別することができる。
【０１０５】
制御プログラム４１は、Ｓ３及びＳ４を終えたら、データ書込み終了通知を、書込み要求元のアプリケーション４７に返す（Ｓ５）。
【０１０６】
その後、所定のタイミングで、制御プログラム４１は、ジャーナル適用を行い（Ｓ６）、それが完了したら、ジャーナル適用を行ったことの通知をバックアップ管理プログラム４５に行う（Ｓ７）。
【０１０７】
以上の図９Ａの処理では、アプリケーション４７によるデータ書き込みとＩＶＯＬ４３Ｉへのジャーナル適用は非同期で行われているが、これらの処理はストレージシステム２１上の制御プログラム４１で制御されているため、業務サーバ１でエラーが発生した場合にもジャーナルの適用を保障することができる。
【０１０８】
図９Ｂは、バックアップモードが「ジャーナルバックアップ」の場合にスナップショットが取得されるために行われる処理の流れの一例を示す。また、図１３Ａは、ジャーナルのＩＶＯＬ４３Ｉへの適用と、ＩＶＯＬ４３ＩからＳＶＯＬ４３Ｓへのコピーの概要を示す図である。図１３Ａにおいて、ＪＶＯＬに対応したブロックは、ジャーナルを示し、ＩＶＯＬに対応したブロックは、初期スナップショットを示す。
【０１０９】
バックアップ管理プログラム４５が、アプリケーション４７の静止化を行い（Ｓ１１）、制御プログラム４１にチェックポイント記録要求を出す（Ｓ１２）。制御プログラム４１は、その要求に応答して、静止化されたアプリケーション４７に対応するＪＶＯＬ４３Ｊ内のジャーナル群のうちその要求を受けた時刻までのジャーナルについて整合性がとれていることを意味するチェックポイントを記録し（Ｓ１３）、その記録が終了したことをバックアップ管理プログラム４５に通知する（Ｓ１４）。バックアップ管理プログラム４５は、その通知を受けたことに応答して、アプリケーション４７の静止化を解除する（Ｓ１５）。
【０１１０】
その後、制御プログラム４１は、図１３Ａにも示す通り、静止化の解除されたアプリケーション４７に対応するＪＶＯＬ４３Ｊ内の未適用のジャーナル群のうち、チェックポイントが記録されたジャーナルまでをＩＶＯＬ４３Ｉに適用する（Ｓ１６）。具体的には、例えば、制御プログラム４１は、適用するジャーナル群のうち、より過去のジャーナル内のデータをＩＶＯＬ４３Ｉに書くことで、ＩＶＯＬ４３Ｉ内のスナップショットを更新していく。これにより、或る時点のジャーナル内のデータがＩＶＯＬ４３Ｉ内のスナップショットに反映された後のスナップショットは、その時点のＰＶＯＬ４３Ｐのスナップショットになる。
【０１１１】
Ｓ１６が完了したら、制御プログラム４１は、ジャーナル適用を一旦停止し（Ｓ１７）、ＩＶＯＬ４３ＩとＳＶＯＬ４３Ｓとを同期化状態にし、図１３Ａに示す要に、ＩＶＯＬ４３Ｉ内のスナップショットをＳＶＯＬ４３Ｓにコピーする（Ｓ１８）。そのコピーが完了したら、制御プログラム４１は、ＩＶＯＬ４３ＩとＳＶＯＬ４３Ｓとを非同期化状態にした上で、ジャーナル適用を再開し（Ｓ１９）、スナップショットの更新が終了したことをバックアップ管理プログラム４５に通知する（Ｓ２０）。なお、Ｓ１９のジャーナル適用の再開とは、具体的には、制御プログラム４１がＪＶＯＬ４３Ｊに記録されたジャーナルをＩＶＯＬ４３Ｉに適用する処理（図９ＡのＳ６及びＳ７）を再開することである。より具体的には、図９Ａにおいて、Ｓ２〜Ｓ５は、アプリケーション４７による業務の遂行に伴って常に行われているが、Ｓ６及びＳ７の停止及び再開は、Ｓ１７及びＳ１９により行われる。
【０１１２】
以上の図９Ｂの処理では、バックアップ取得時のチェックポイント記録とＳＶＯＬ４３Ｓ上のスナップショット更新は非同期で行われる。しかし、これらの処理は、ストレージシステム２１上の制御プログラム４５で制御されているため、業務サーバ１にエラーが発生した場合にもスナップショットの更新を保障することができる。
【０１１３】
また、上記の図９Ａ及び図９Ｂのいずれも、高可用状態において行われる処理である。
【０１１４】
また、図９ＡのＳ６は、アプリケーション４７からの書き込み要求によって、ＪＶＯＬ４３Ｊに記録されたジャーナルをＩＶＯＬ４３Ｉに適用する処理であり、アプリケーションの書き込み要求が原因となって発生する処理である。一方、図９ＢのＳ１６は、バックアップ管理プログラム４５（又はアプリケーション４７）によって、ＪＶＯＬ４３Ｊに記録されたチェックポイントをＩＶＯＬ４３Ｉに適用する処理で、アプリケーション４７の静止化が原因で発生する処理である。なお、上記のＳ６とＳ１６は独立したタイミングで行われるため、図９ＡのＳ６ではチェックポイントを利用する必要は無い。
【０１１５】
ところで、通常状態から高可用状態への遷移は、アクセス頻度の増大を契機に行われるが、逆に、アクセス頻度が減少したことを契機に、高可用状態から通常状態に戻ることもできる。以下、図１０及び図１１を参照して、その際に行われる処理の流れの一例を説明する。
【０１１６】
バックアップ管理プログラム４５は、図５のＳ４０まで終えたら、バックアップ設定テーブル５３を参照し、或るアプリケーション４７の「バックアップモード」を判別する（Ｓ８１）。
【０１１７】
Ｓ８１の結果、判別された「バックアップモード」が「ジャーナルバックアップ」であれば（Ｓ８１でＮＯ）、バックアップ管理プログラム４５は、そのアプリケーション４７の「許容アクセス頻度」をバックアップ設定テーブル５３から取得する（Ｓ８２）。また、バックアップ管理プログラム４５は、そのアプリケーション４７の「バックアップ開始時刻」及び「バックアップ終了時刻」をバックアップ管理テーブル５５から取得し、それらの差分であるバックアップ実行時間長を算出する（Ｓ８３）。そして、バックアップ管理プログラム４５は、図７のＳ５５と同様の方法で、バックアップ実行時間中のアクセス頻度の平均値を取得する（Ｓ８４）。
【０１１８】
バックアップ管理プログラム４５は、取得されたアクセス頻度の平均値と「許容アクセス頻度」とを比較し（Ｓ８５）、取得されたアクセス頻度の平均値が「許容アクセス頻度」以上の場合（Ｓ８５でＮＯ）、終了となる。
【０１１９】
一方、バックアップ管理プログラム４５は、取得されたアクセス頻度の平均値が「許容アクセス頻度」よりも小さい場合（Ｓ８５でＹＥＳ）、ストレージ管理プログラム４９にＪＶＯＬ４３Ｊの割り当て解除を要求する（Ｓ８６）。この場合、図１１の処理が行われる。
【０１２０】
すなわち、ストレージ管理プログラム４９は、対象のアプリケーション４７に対応した「割り当て済み」の「ボリュームＩＤ」を取得し（Ｓ９１）、その「ボリュームＩＤ」を対象となっているアプリケーション４７用のＪＶＯＬ４３Ｊとして設定しないよう制御プログラム４１に要求する（Ｓ９２）。これにより、そのＪＶＯＬ４３Ｊがストレージシステム２１においてＪＶＯＬ４３Ｊでなくなる。ストレージ管理プログラム４９は、Ｓ９１で取得した「ボリュームＩＤ」を「未割り当て」に更新し（Ｓ９３）、対象となっているアプリケーション４７の「対象アプリケーション」の欄を「−」に設定する（つまり、書かれていたアプリケーション名を消す）（Ｓ９４）。その後、ストレージ管理プログラム４９は、ジャーナルボリュームの割り当てを解除したことをバックアップ管理プログラム４５に通知することができる（Ｓ９５）。
【０１２１】
再び図１０を参照する。ジャーナルボリュームの解除通知を受けたバックアップ管理プログラム４５は、バックアップ設定テーブル５３の「バックアップモード」を「スナップショットバックアップ」に設定する（Ｓ８７）。また、バックアップ管理プログラム４５は、割り当て解除された論理ボリューム４３にジャーナルを書かないよう制御プログラム４１に要求する（Ｓ８８）。また、バックアップ管理プログラム４５は、割り当て解除されたＪＶＯＬ４３Ｊの「ジャーナルボリュームＩＤ」やそれに対応する「ジャーナル適用ボリュームＩＤ」を、それぞれ、バックアップ管理テーブル５５から削除する（Ｓ８９）。
【０１２２】
以上の図１０及び図１１に記載の処理流れが行われることにより、高可用状態から通常状態へと遷移する。
【０１２３】
ところで、この実施形態では、図２Ｄに記載した通り、例えばアプリケーションＢについては、論理的なデータ破壊に備えてジャーナルによるリストアができるように設定されている。これは、例えば、図１Ａ及び図１Ｂに記載のシステム全体の稼動開始前に、予め、ストレージ管理プログラム４９が、特定のＪＶＯＬ４３ＪのＩＤ及びＩＶＯＬ４３ＩのＩＤをアプリケーションＢ用に割り当てている。なお、ここで述べているＪＶＯＬ４３ＪのＩＤ及びＩＶＯＬ４３ＩのＩＤは、バックアップ管理テーブル５５に記録されているものと同じ種類であるが、バックアップ管理プログラム４５は、これらのＩＤを、バックアップ管理テーブル５５とは別のテーブルであるジャーナル管理テーブル５７上で管理している。ＩＶＯＬ４３Ｉには、ジャーナル適用のためのスナップショットが書かれ、ＪＶＯＬ４３Ｊには、ＰＶＯＬ４３Ｐが更新される都度に、ジャーナルが記録される。
【０１２４】
このような状況において、アプリケーションＢでエラーが発生した場合、ジャーナルを確保するために行われる処理が行われる。以下、図１２及び図１３Ｂを参照して、その処理の流れの一例を説明する（図１３Ｂは、エラー発生時のバックアップの概要を示す図である）。
【０１２５】
バックアップ管理プログラム４５は、ジャーナル管理テーブル５７の「エラー発生時のジャーナル確保」が「あり」であって（Ｓ１０１でＹＥＳ）、エラー検知プログラム４４からエラーが検知されたことの通知を受けた場合（Ｓ１０２でＹＥＳ）、上記「あり」に対応したアプリケーションＢに対応するＪＶＯＬ４３Ｊにジャーナルを書くこと及びジャーナルをＩＶＯＬ４３Ｉに適用することを停止するよう制御プログラム４１に要求する（Ｓ１０３）。具体的には、例えば、バックアップ管理プログラム４５は、アプリケーションＢに対応した「ジャーナルボリュームＩＤ」及び「ジャーナル適用ボリュームＩＤ」を含んだジャーナル記録停止要求を制御プログラム４１に発行する。制御プログラム４１は、その要求を応答して、以後、停止解除の指令を受けるまで、ＰＶＯＬ４３Ｐが更新されてもジャーナルを記録したり、ジャーナルを適用したりしない。バックアップ管理プログラム４５は、例えば、この図１２の処理流れを終えたときに、上記の停止解除の指令を制御プログラム４１に出すことにより、ジャーナルの書込み及び適用を再開させることができる。
【０１２６】
このＳ１０３の処理により、バックアップ管理プログラム４５は、エラー検知時点から「ジャーナル保有期間」（ジャーナル管理テーブル５７に記録されている期間）だけ前のスナップショットと、エラー検知時点までのジャーナルとを、リストア用のデータとして確保することができる。
【０１２７】
また、このとき、バックアップ管理プログラム４５は、ジャーナル管理テーブルの「ジャーナル確保時刻」に、Ｓ１０３を行った時刻（つまり、リストア用のデータを確保した時刻）を記録し、且つ、その時刻を表すチェックポイントを記録するよう制御プログラム４１に指示する（Ｓ１０４）。これにより、制御プログラム４１によって、エラー発生時にジャーナルの確保された時点を表すチェックポイントがＪＶＯＬ４３Ｊに記録される。
【０１２８】
Ｓ１０２でＮＯ又はＳ１０４の後、バックアップ管理プログラム４５は、ジャーナル管理テーブル５７から「ジャーナル保有期間」、「ジャーナル適用ボリュームＩＤ」及び「ジャーナルボリュームＩＤを取得する（Ｓ１０５、Ｓ１０６）。そして、バックアップ管理プログラム４５は、「ジャーナルボリュームＩＤ」に対応したＪＶＯＬ４３Ｊ内に、上記確保された時刻から「ジャーナル保有期間」より過去のジャーナルが存在するか否かを判断する（Ｓ１０７）。その結果、存在すれば（Ｓ１０７でＮＯ）、バックアップ管理プログラム４５は、「ジャーナル保有期間」より過去のジャーナルを「ジャーナル適用ボリュームＩＤ」に対応したＩＶＯＬ４３Ｉに適用するよう制御プログラム４１に要求する（Ｓ１０８）。このＳ１０８により、図１３Ｂに示す様に、制御プログラム４１によって、「ジャーナル保有期間」より過去のジャーナルがＩＶＯＬ４３Ｉに適用される。つまり、上記確保された時刻から「ジャーナル保有期間」前までのスナップショットがＩＶＯＬ４３Ｉに生成される。
【０１２９】
なお、ここで、制御プログラム４１は、ジャーナルをＩＶＯＬ４３Ｉに適用していく都度に、その適用したジャーナルをＪＶＯＬ４３Ｊから削除することができる（適用後直ちに削除せず、ＪＶＯＬ４３Ｊの未使用容量が僅かになったときに削除するようにしても良い）。
【０１３０】
ジャーナルを利用したリストアは、例えば、図６に記載の処理流れで行うことができる。以下、それについて、図６を参照して説明する。
【０１３１】
例えば、バックアップ管理プログラム４５が、制御プログラム４１にチェックポイントを問い合わせ、制御プログラム４１が、それに応答して、ＪＶＯＬ４３Ｊ内の最近のチェックポイント（現在時刻に最も近いチェックポイント）を特定し、特定されたチェックポイント以内の各ジャーナルに対応した各時刻をバックアップ管理プログラム４５に回答する。バックアップ管理プログラム４５は、回答された全ての時刻を、ユーザが選択可能な態様で、図示しない表示装置に表示する。つまり、ここでは、ユーザが選択することができるリカバリポイント目標（ＲＰＯ（Recovery Point Objective））が表示される。
【０１３２】
バックアップ管理プログラム４５は、ジャーナルによるリストア、ＲＰＯ、及びリストアの対象とされるアプリケーション４７とが指定された場合（Ｓ４１でＹＥＳ）、指定されたアプリケーション４７の「ジャーナル適用ボリュームＩＤ」をジャーナル管理テーブル５７から取得し、取得したＩＤを含んだジャーナルリストア指示を制御プログラム４１に出す（Ｓ４５）。それにより、制御プログラム４１は、通知されたＩＤに対応するＩＶＯＬ４３Ｉからスナップショットを取得することができる（Ｓ４６）
また、バックアップ管理プログラム４５は、指定されたアプリケーション４７の「ジャーナルボリュームＩＤ」をジャーナル管理テーブル５７から取得し、そのＩＤと、指定されたＲＰＯとを制御プログラム４１に通知することができる（Ｓ４７）。
【０１３３】
これにより、制御プログラム４１は、Ｓ４６で取得されたスナップショットに対し、指定されたＲＰＯまでの各ジャーナル内のデータを順次に適用していく（Ｓ４８）。この結果、ユーザから指定されたＲＰＯにおけるＰＶＯＬ４３Ｐのスナップショットがリストアされる。なお、Ｓ４８において、制御プログラム４１は、各ジャーナル内のデータを上記スナップショットに適用することでスナップショットを更新する都度に、更新後のスナップショットで良いか否かを、バックアップ管理プログラム４５を介してユーザに問い合わせても良い。
【０１３４】
以上、上述した実施形態によれば、基本的には、スナップショットバックアップが行われているが、データの書き込みアクセス頻度の増大を契機に、ジャーナルバックアップに切り替わる。ジャーナルバックアップでは、ＰＶＯＬ４３Ｐの更新の都度にジャーナルがＪＶＯＬ４３Ｊに書かれ、バックアップの際には、その時点でのチェックポイントがＪＶＯＬ４３Ｊに書かれるだけであり、バックアップウィンドウは実質的にゼロとすることができる。また、ジャーナルバックアップでは、所定のタイミングで（例えば、スナップショットバックアップからジャーナルバックアップにモードが切り替わったときに）、その時点のＰＶＯＬ４３Ｐのスナップショット（初期スナップショット）がＩＶＯＬ４３Ｉに書かれ、バックグラウンドで、ＪＶＯＬ４３Ｊ内のジャーナル内のデータが、ＩＶＯＬ４３Ｉ内のスナップショットに反映される。これにより、アプリケーションの可用性を維持することができる。適用されたジャーナルを所定のタイミングでＪＶＯＬ４３Ｊから削除すれば、ＪＶＯＬ４３Ｊにおける使用量を抑えることもできる。
【０１３５】
また、上述した実施形態によれば、アプリケーション４７のエラー発生を検知したことを契機に、その検知された時点のチェックポイントがＪＶＯＬ４３Ｊに記録される。すなわち、エラー検知時には、アプリケーション４７で整合性のとれたジャーナルが確保される。確保されたジャーナルとＩＶＯＬ４３Ｉ内のスナップショットとを利用することにより、エラーが検知された時点のデータをリストアすることができる。
【０１３６】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１３７】
例えば、図８のＳ７１では、アクセス頻度に応じた容量又は数のＪＶＯＬ４３ＪのＩＤが取得されてもよい。つまり、アクセス頻度が高ければ高いほど、大容量の或いは多くの数の論理ボリューム４３をＪＶＯＬ４３Ｊとして割り当てることができる。
【０１３８】
また、例えば、検知されるエラー情報は、必ずしもアプリケーション４７から出力されたものに限らない。具体的には、例えば、エラー検知プログラム４３が、自分を備える業務サーバ１内の図示しないＯＳ（オペレーティングシステム）が管理している情報を参照することで、アプリケーション４７でエラーが発生したか否かを検知してもよい。
【０１３９】
また、例えば、図６のＳ４１で、ＪＶＯＬ４３Ｊ内の全てのチェックポイントが選択可能に表示され、或るチェックポイントが選択された場合には、その選択されたチェックポイントの時点のデータをリストアするための処理が行われてもよい。
【０１４０】
また、例えば、制御プログラム４１は、図５のＳ３８で書くチェックポイント（以下、第一のチェックポイント）と図１２のＳ１０４で書くチェックポイント（以下、第二のチェックポイント）とを区別できるような態様で書くことができる。この場合、バックアップ管理プログラム５１は、第一のチェックポイントと第二のチェックポイントとをユーザが区別できるように選択可能に表示しても良いし、第一及び第二のチェックポイントのいずれか一方を選択可能に表示し他方を表示しないようにしても良い。
【０１４１】
また、例えば、一又は複数のＩＶＯＬ４３Ｉで、同一のアプリケーション４７について複数世代のスナップショットが管理されていてもよい。この場合、例えば、リストアの際、ＲＰＯの指定を受けたら、そのＲＰＯに最も近い時点のスナップショットを取得し、そのスナップショットに対しジャーナルを適用していくことができる。つまり、リストアに要する時間の短縮化が図れる。
【０１４２】
また、例えば、バックアップ管理プログラム４５は、スナップショットとジャーナルのどちらを利用したリストアを行うかをユーザに選択させなくても良い。具体的には、例えば、バックアップ管理プログラム４５は、リストア指示をユーザから受けた場合には、上述した４種類の状態（すなわち、通常状態、高可用状態など）のうち現在どの状態かに応じて、図６のＳ４２〜Ｓ４４を行うか或いはＳ４５〜Ｓ４８を行うかを決定してもよい。
【０１４３】
また、例えば、ＪＶＯＬ４３Ｊに代えて又は加えて、ＩＶＯＬ４３Ｉも、ＪＶＯＬ４３Ｊと同様に、複数の候補の中から選択されて割り当てられても良い。なお、ＪＶＯＬ４３Ｊは、ジャーナルが追加或いは削除されたりすることに応じて（つまり、ジャーナル群の総量の増減に応じて）、未割り当てのＶＯＬを新たにＪＶＯＬ４３としたり或いはＪＶＯＬとして割り当て済みのＶＯＬを未割り当てとしたりすることができるが、ＩＶＯＬ４３Ｉについては、そうしなくても良い。ＩＶＯＬ４３Ｉに取得されたスナップショットには、適宜データが上書きされていくので、そのスナップショットのサイズそれ自体が変動することはないからである。
【０１４４】
また、例えば、各アプリケーション４７毎の管理に代えて又は加えて、業務サーバ１毎に管理されても良い。具体的には、例えば、図２Ａ〜図２Ｄや図３Ａ及び図３Ｂのテーブルにおいて、「バックアップ対象」や「対象アプリケーション」が、業務サーバ１のＩＤであってもよい。
【図面の簡単な説明】
【０１４５】
【図１】図１Ａは、本発明の一実施形態に係るシステムのハードウェア構成の概要を示す。図１Ｂは、本発明の一実施形態に係るシステムを構成する各サーバやストレージシステムで実行されるコンピュータプログラムの一例を示す。
【図２】図２Ａは、ボリューム管理テーブルの構成例を示す。図２Ｂは、バックアップ設定テーブルの構成例を示す。図２Ｃは、バックアップ管理テーブルの構成例を示す。図２Ｄは、ジャーナル管理テーブルの構成例を示す。
【図３】図３Ａは、アクセス頻度履歴テーブルの構成例を示す。図３Ｂは、ジャーナルボリューム管理テーブルの構成例を示す。
【図４】図４は、本発明の一実施形態の要部の概要の説明図。
【図５】図５は、通常状態において行われるバックアップ処理の流れの一例を示す。
【図６】図６は、リストア処理の流れの一例を示す。
【図７】図７は、通常状態から高可用状態に遷移する際に行われる処理流れの一例を示す。
【図８】図８は、ジャーナルボリュームの割り当て処理の流れの一例を示す。
【図９】図９Ａは、アプリケーション４７によるデータ書き込みからＩＶＯＬ４３Ｉに対するジャーナル適用までの処理の流れの一例を示す。図９Ｂは、バックアップモードが「ジャーナルバックアップ」の場合にスナップショットが取得されるために行われる処理の流れの一例を示す。
【図１０】図１０は、高可用状態から通常状態に遷移する際に行われる処理流れの一例を示す。
【図１１】図１１は、ジャーナルボリュームの割り当て解除処理の流れの一例を示す。
【図１２】図１２は、アプリケーションでエラーが発生した場合にジャーナルを確保するために行われる処理の流れの一例を示す。
【図１３】図１３Ａは、ジャーナルのＩＶＯＬ４３Ｉへの適用と、ＩＶＯＬ４３ＩからＳＶＯＬ４３Ｓへのコピーとの概要を例示した図。図１３Ｂは、エラー発生時のバックアップの概要を例示した図。
【符号の説明】
【０１４６】
１…業務サーバ  ２…ＳＡＮ  ３…ＣＰＵ  ５…記憶資源  １１…管理サーバ  １２…ＬＡＮ  １３…ＣＰＵ  １５…記憶資源  ２１…ストレージシステム  ２２…コントローラ  ２３…ＣＰＵ  ２５…制御メモリ  ２６…キャッシュメモリ  ３３…メディアドライブ  ４１…制御プログラム  ４３…論理ボリューム  ４３Ｐ…プライマリボリューム  ４３Ｓ…セカンダリボリューム  ４３Ｊ…ジャーナルボリューム  ４３Ｉ…ジャーナル適用ボリューム  ４４…エラー検知プログラム  ４５…バックアップ管理プログラム  ４７…アプリケーション  ４９…ストレージ管理プログラム
【図１】
0004688617.tif 000002
【図２】
0004688617.tif 000003
【図３】
0004688617.tif 000004
【図４】
0004688617.tif 000005
【図５】
0004688617.tif 000006
【図６】
0004688617.tif 000007
【図７】
0004688617.tif 000008
【図８】
0004688617.tif 000009
【図９】
0004688617.tif 000010
【図１０】
0004688617.tif 000011
【図１１】
0004688617.tif 000012
【図１２】
0004688617.tif 000013
【図１３】
0004688617.tif 000014