JP4972457B2 - 記憶制御装置、記憶制御装置の制御方法及び情報処理システム - Google Patents

記憶制御装置、記憶制御装置の制御方法及び情報処理システム Download PDF

Info

Publication number
JP4972457B2
JP4972457B2 JP2007126347A JP2007126347A JP4972457B2 JP 4972457 B2 JP4972457 B2 JP 4972457B2 JP 2007126347 A JP2007126347 A JP 2007126347A JP 2007126347 A JP2007126347 A JP 2007126347A JP 4972457 B2 JP4972457 B2 JP 4972457B2
Authority
JP
Japan
Prior art keywords
volume
journal data
journal
storage
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007126347A
Other languages
English (en)
Other versions
JP2008282241A (ja
Inventor
俊二 川村
久雄 本間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007126347A priority Critical patent/JP4972457B2/ja
Priority to EP08250139A priority patent/EP1990721A1/en
Priority to US12/013,631 priority patent/US8046549B2/en
Publication of JP2008282241A publication Critical patent/JP2008282241A/ja
Application granted granted Critical
Publication of JP4972457B2 publication Critical patent/JP4972457B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶制御装置、記憶制御装置の制御方法及び情報処理システムに関する。
日々増大する多量のデータを効率的に管理するために、例えば、企業や医療機関、政府機関、教育機関等の各種組織では、記憶制御装置を使用する。記憶制御装置には、例えば、売上げデータ、顧客データ、研究データ等のような重要なデータも記憶されるため、人為的ミス等によるデータの消失に備える必要がある。データ消失に対する防衛策として、ボリュームのバックアップを定期的に作成する方法が挙げられる。
しかし、バックアップ作成及びリストアにはそれぞれ長い時間がかかる。また、バックアップが作成された時点にしかデータを戻すことができないため、使い勝手が悪い。そこで、他の防衛策として、ボリュームのスナップショットを作成し、かつ、ボリュームへの更新が発生するたびにジャーナルデータを取得し、このジャーナルデータを管理するようにした第1従来技術も知られている(特許文献1)。しかし、この従来技術でも、スナップショットを作成する必要があり、使い勝手の点で改善の余地がある。
そこで、ジャーナルデータを用いて任意時点にリストアさせることができるようにした第2従来技術も知られている(特許文献2)。
特開2005−18738号公報 米国特許出願公開第2005/0028022号明細書
前記第2従来技術では、保護対象のデータボリュームと、保護対象のデータボリュームのある時点での記憶内容がコピーされたセカンダリボリュームと、ジャーナルデータを記憶するジャーナルボリュームとを用意している。リストア時には、第2従来技術は、セカンダリボリュームからデータボリュームにデータをコピーさせ、データボリュームの記憶内容をセカンダリボリュームの記憶内容に一致させる。次に、第2従来技術では、指定された時点までのジャーナルデータをジャーナルボリュームから読み出して、データボリュームに書き込む。従って、第2従来技術によれば、更新された単位で(ジャーナルデータ単位で)、任意の時点にリストアでき、ユーザの使い勝手は改善される。
しかし、ジャーナルボリュームの容量が一定の場合、いずれジャーナルボリュームはジャーナルデータで満杯になるため、リストア可能な期間を長くするのは難しい。ジャーナルボリュームの容量を拡張可能な構成とした場合、記憶制御装置の有する記憶容量の多くがジャーナルデータの管理に消費されてしまう可能性がある。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、保護対象ボリュームのデータを効率良く保護することができる記憶制御装置、記憶制御装置の制御方法及び情報処理システムを提供することにある。本発明の他の目的は、ジャーナルデータを効率よく管理し、より高速なリストアを可能とする記憶制御装置、記憶制御装置の制御方法及び情報処理システムを提供することにある。本発明の別の目的は、ジャーナルデータを効率良く管理し、リストア可能な時点の選択範囲を広げることができる記憶制御装置、記憶制御装置の制御方法及び情報処理システムを提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明に従う、上位装置により利用されるデータを記憶するための記憶制御装置は、上位装置からのライトデータを記憶する第1記憶領域と、第1記憶領域の所定時点における記憶内容がコピーされる第2記憶領域と、第1記憶領域と第2記憶領域との間の記憶内容の差分が生じた位置を、複数の差分ビットマップを予め定められる複数の所定期間毎に切り替えて使用することにより、管理する制御部と、を備える。
本発明の別の観点に従う、上位装置により利用されるデータを記憶するための記憶制御装置は、上位装置からのライトデータを記憶する第1ボリュームと、第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、第1ボリュームと第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、第1ボリューム、第2ボリューム、第3ボリューム及び各第1差分ビットマップを制御するための制御部とを備える。
そして、制御部は、(1)第1ボリュームの所定時点における記憶内容を第2ボリュームに記憶させるための形成コピー機能と、(2)上位装置からのライト要求に基づいてジャーナルデータを生成し、生成したジャーナルデータを第3ボリュームに記憶させるジャーナル生成機能と、(3)所定時点以降に上位装置から発行されるライト要求によって第1ボリュームと第2ボリュームとの間に生じる差分の位置を、所定区間毎に選択される一つの第1差分ビットマップに記憶させる差分管理機能と、(4)第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを第2ボリュームに反映させる反映機能と、(5)第2ボリュームに反映された所定のジャーナルデータを破棄するジャーナル破棄機能と、(6)各第1差分ビットマップのうち、対応する全てのジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用する再利用機能と、をそれぞれ実行する。
本発明の実施形態では、制御部は、さらに、第1リストア機能(7)を実行する。この第1リストア機能は、(7)第1リストアの実行が指示された場合、(7−2)各第1差分ビットマップの記憶内容をマージして第2差分ビットマップを生成し、(7−3)この生成された第2差分ビットマップに基づいて第2ボリュームの記憶内容を第1ボリュームに差分コピーさせることにより、第1ボリュームの記憶内容を所定時点まで戻し、(7−4)第3ボリュームに記憶された各ジャーナルデータのうち、指定される第1復元点までのジャーナルデータを第1ボリュームに反映させることにより、第1ボリュームの記憶内容を第1復元点における記憶内容に復元させるものである。
本発明の実施形態では、第1リストア機能(7)は、第1リストアの実行が指示された場合に、(7−1)上位装置から第1ボリュームへのライト要求を禁止し、かつ、反映機能(4)の作動を停止させた後で、(7−2)〜(7−4)をそれぞれ実行する。
本発明の実施形態では、第1リストア機能(7)は、(7−2)〜(7−4)をそれぞれ実行した後において、(7−5)上位装置から第1ボリュームへのライト要求の禁止を解除させることにより、ジャーナル生成機能(2)により生成される新たなジャーナルデータを第3ボリュームに記憶させ、(7−6)所定時点の記憶内容に復元された第1ボリュームと第2ボリュームとの間に生じる差分の位置を、第3差分ビットマップに記憶させる。
本発明の実施形態では、第1リストア機能(7)は、(7−2)〜(7−6)をそれぞれ実行した後において、(7−7)第1復元点とは別の第1復元点を指定する第1リストアの実行が指示された場合には、新たなジャーナルデータを破棄させ、(7−8)各第1差分ビットマップ及び第3差分ビットマップの記憶内容をマージして別の第2差分ビットマップを生成し、(7−9)この生成された別の第2差分ビットマップに基づいて第2ボリュームの記憶内容を第1ボリュームにコピーさせることにより、第1ボリュームの記憶内容を所定時点まで戻し、(7−10)第3ボリュームに記憶された各ジャーナルデータのうち、別の第1復元点までのジャーナルデータを第1ボリュームに反映させることにより、第1ボリュームの記憶内容を別の第1復元点における記憶内容に復元させる。
本発明の実施形態では、第1リストア機能(7)は、(7−8)において、第2差分ビットマップを生成した後で、第3差分ビットマップを消去させる。
本発明の実施形態では、制御部は、さらに、第2リストア機能(8)を実行する。この第2リストア機能は、(8)第2リストアの実行が指示された場合、(8−1)第3ボリュームに記憶されている各ジャーナルデータのうち、指定される第2復元点以降の連続する全てのジャーナルデータを無効化し、(8−2)上位装置から第1ボリュームへのライト要求の禁止を解除し、かつ、反映機能(4)の作動を再開させる。
本発明の実施形態では、制御部は、(7−1)〜(7−6)をそれぞれ実行した後で、(8)第2リストアの実行が指示された場合は、(8−1A)第3ボリュームに記憶されている各ジャーナルデータのうち、(7−5)において生成される新たなジャーナルデータはそのまま維持し、指定される第2復元点以降の連続する全てのジャーナルデータは無効化し、(8−2A)第3差分ビットマップを第1差分ビットマップとして利用するための、第2リストア機能を実行する。
本発明の実施形態では、第1復元点は、第3ボリュームに記憶されている各ジャーナルデータによって管理される期間内から選択される。
本発明の実施形態では、第1復元点または第2復元点は、第2リストアの実行前から第3ボリュームに記憶されており、かつ、第2リストアの実行後も第3ボリュームに記憶されている各ジャーナルデータによって管理される第1期間内、または、第2リストアの実行後から第3ボリュームに新たに記憶されるジャーナルデータによって管理される第2期間内のいずれかから選択可能である。
本発明の実施形態では、第3ボリュームの使用率が予め設定される第1閾値に達した場合、反映機能(4)は、目標保護期間を経過する前のジャーナルデータも第2ボリュームに反映し、かつ、ジャーナル破棄機能(5)は、第2ボリュームに反映されたジャーナルデータを破棄する。
本発明の実施形態では、第3ボリュームの使用率が予め設定される第2閾値に達した場合、制御部は、上位装置から第1ボリュームへのライト要求の発行量を制限させる。例えば、ライト要求に対する応答を遅らせることにより、上位装置から発行されるライト要求の量を減少させることができる。
本発明の他の観点に従う、上位装置により利用されるデータを記憶するための記憶制御装置を制御するための方法では、記憶制御装置は、上位装置からのライトデータを記憶する第1ボリュームと、第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、第1ボリュームと第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、第1ボリューム、第2ボリューム、第3ボリューム及び各第1差分ビットマップを制御するための制御部とを備えており、制御部は、下記の第1制御モードを実行する。第1制御モードは、(1S)第1ボリュームの所定時点における記憶内容を第2ボリュームに記憶させるステップと、(2S)上位装置からのライト要求に基づいてジャーナルデータを生成し、生成したジャーナルデータを第3ボリュームに記憶させるステップと、(3S)所定時点以降に上位装置から発行されるライト要求によって第1ボリュームと第2ボリュームとの間に生じる差分の位置を、所定区間毎に選択される一つの第1差分ビットマップに記憶させるステップと、(4S)第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを第2ボリュームに反映させるステップと、(5S)所定のジャーナルデータを破棄するステップと、(6S)各第1差分ビットマップのうち、対応する全てのジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用するステップと、を含む。
本発明の実施形態では、制御部は、第2制御モードを実行する。第2制御モードは、(6S)に続けて、(7S)第1復元点を指定して第1リストアの実行が指示された場合は、上位装置からのライト要求を禁止し、かつ、各第1差分ビットマップの記憶内容をマージして第2差分ビットマップを生成するステップと、(8S)生成された第2差分ビットマップに基づいて第2ボリュームの記憶内容を第1ボリュームにコピーさせることにより、第1ボリュームの記憶内容を所定時点まで戻すステップと、(9S)第3ボリュームに記憶された各ジャーナルデータのうち、第1復元点までのジャーナルデータを第1ボリュームに反映させることにより、第1ボリュームの記憶内容を第1復元点における記憶内容に復元させるステップと、(10S)ライト要求の禁止を解除するステップと、(11S)ライト要求の禁止が解除されることにより生成される新たなジャーナルデータを第3ボリュームに記憶させるステップと、(12S)所定時点の記憶内容に復元された第1ボリュームと第2ボリュームとの間に生じる差分の位置を、第3差分ビットマップに記憶させるステップと、(13S)第1復元点が第2復元点として確定された場合には、第3ボリュームに記憶されている各ジャーナルデータのうち、新たなジャーナルデータはそのまま維持し、確定された第2復元点以降の連続する全てのジャーナルデータを無効化させるステップと、(14S)第3差分ビットマップを第1差分ビットマップとして利用するステップと、(15S)目標保護期間を経過した所定のジャーナルデータを第2ボリュームに反映させるステップと、を含む。
本発明の実施形態では、制御部は、第1制御モードの実行停止が指示された場合に、第3制御モードを実行する。第3制御モードは、(16S)上位装置から第1ボリュームへのライト要求に基づくジャーナルデータの生成を中止させるステップと、(17S)上位装置から第1ボリュームへのライト要求による差分の発生を第4差分ビットマップに記憶させるステップと、を含む。
本発明の実施形態では、第3制御モードは、(18S)目標保護期間を経過した所定のジャーナルデータの、第2ボリュームへの反映を中止させるステップを、さらに含むこともできる。
本発明のさらに別の観点に従う、情報処理システムは、上位装置からのライトデータを記憶する第1ボリュームと、第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、第1ボリュームと第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、第1ボリューム、第2ボリューム、第3ボリューム及び各第1差分ビットマップを制御するための制御部であって、(1)第1ボリュームの所定時点における記憶内容を第2ボリュームに記憶させるための形成コピー機能と、(2)上位装置からのライト要求に基づいてジャーナルデータを生成し、生成したジャーナルデータを第3ボリュームに記憶させるジャーナル生成機能と、(3)所定時点以降に上位装置から発行されるライト要求によって第1ボリュームと第2ボリュームとの間に生じる差分の位置を、所定区間毎に選択される一つの第1差分ビットマップに記憶させる差分管理機能と、(4)第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを第2ボリュームに反映させる反映機能と、(5)第2ボリュームに反映された所定のジャーナルデータを破棄するジャーナル破棄機能と、(6)各第1差分ビットマップのうち、対応する全てのジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用する再利用機能と、をそれぞれ実行する制御部と、を備える。
本発明の各部、各機能、各ステップの少なくとも一部は、コンピュータプログラムにより実現可能な場合がある。このようなコンピュータプログラムは、例えば、記憶デバイスに記憶されて、あるいは、通信ネットワークを介して、流通される。
図1は、本発明の実施形態の概要を示す説明図である。図1には、本実施形態に係る記憶制御装置1を含む情報処理システムの概要が示されている。図1(a)は、通常運用時の動作を示し、図1(b)は、リストア時の動作を示す。
まず図1(a)を参照する。この情報処理システムは、例えば、記憶制御装置1と、ホスト2とを備える。後述の実施例から明らかなように、情報処理システムは、管理サーバ30や別の記憶制御装置40をさらに備えることもできる。
記憶制御装置1は、例えば、ハードディスクドライブやフラッシュメモリデバイス等のような物理的記憶デバイスを複数備えている。この物理的記憶デバイスの有する物理的記憶領域を仮想化することにより、論理的記憶デバイスが作成される。この論理的記憶デバイスを、以下の説明では、論理ボリューム、またはボリュームと呼ぶ。
記憶制御装置1は、例えば、保護対象ボリューム(図中「PVOL」)3と、基底ボリューム(図中「BVOL」)4と、ジャーナルボリューム5と、区間差分ビットマップ6とを備えることができる。
保護対象ボリューム3は、その記憶内容がジャーナルデータによって連続的に保護されるボリュームである。保護対象ボリューム3に記憶されるデータを、連続的に指定可能な任意の復元点によって復元させる技術を、本明細書では、CDP(Continuous Data Protection)と呼ぶ。以下、説明の便宜上、保護対象ボリューム3を、正ボリューム3と呼ぶ場合がある。
正ボリューム3は、ホスト2に接続されており、ホスト2から書き込まれるデータを記憶する。ホスト2は、正ボリューム3にデータを書き込んだり、正ボリューム3からデータを読み出すことができる。基底ボリューム4は、ある所定時点において正ボリュームに記憶されていたデータを記憶する。後述のように、基底ボリューム4には、目標保護期間を経過したジャーナルデータが順番に書き込まれていく。従って、基底ボリューム4は、正ボリューム3の最新の記憶内容から所定時間(目標保護期間)だけ前の記憶内容を記憶する。基底ボリューム4が示している正ボリューム3の過去の時点を基底点と呼ぶ。基底点は、実時間の経過に応じて変化していく。基底点の変化を、基底点シフトと呼ぶ場合がある。
基底ボリューム4と正ボリューム3の記憶内容の時間差が常に一定であるわけではなく、後述の実施例のように、基底ボリューム4と正ボリューム3の記憶内容の時間差に変化を生じる場合がある。
ジャーナルボリューム5は、ジャーナルデータ5Aを保存するボリュームである。ジャーナルデータ5Aは、ホスト2によって正ボリューム3が更新された履歴を管理するためのデータである。従って、ジャーナルデータ5Aは、更新履歴管理データと呼ぶことができ、ジャーナルボリューム5は、更新履歴管理用ボリュームと呼ぶことができる。
区間差分ビットマップ6は、予め設定される所定の区間毎にそれぞれ用意される差分ビットマップである。区間差分ビットマップ6は、例えば、正ボリューム3の各論理トラック単位のような所定単位で、更新の有無を管理する。区間は、時間やジャーナルボリューム5の使用率等に応じて定めることができる。更新された位置にはビット1が設定され、更新されていない位置にはビット0が設定される。差分の発生位置を示すビットを差分ビットと呼ぶ。
一つの例では、所定時間(図1中では「1時間」)毎に、それぞれ別々の差分ビットマップ6Aを使用することができる。即ち、9時−10時では、差分ビットマップ6A(9:00-10:00)を使用して差分を管理し、これに続く10時−11時では、別の差分ビットマップ6A(10:00-11:00)を使用して差分を管理することができる。
別の一つの例では、差分ビットマップ6Aの切替後に蓄積されたジャーナルデータ量を別途管理しておき、その管理されるジャーナルデータ量がジャーナルボリューム5の全容量の所定割合に達した場合に、別の差分ビットマップ6Aに切り替える。
目標保護期間とは、正ボリューム3の記憶内容を過去に戻すことが可能な期間を意味し、例えば、「3時間」のように予め設定される。正ボリューム3の記憶内容が実際に保護される時間と目標保護期間とは基本的に一致するが、後述の実施例のように、目標保護期間と実際の保護期間とか不一致の場合もある。
目標保護期間を経過したジャーナルデータ5Aは、順番に基底ボリューム4に書き込まれていく。これにより、基底ボリューム4の記憶内容は、正ボリューム3の記憶内容から目標保護期間だけ遅れて追従することになる。
通常運用時の動作を説明する。まず最初に、ユーザは、保護対象となる正ボリューム3及び目標保護期間を指定する。記憶制御装置1は、正ボリューム3に記憶されている全データを基底ボリューム4にコピーする。図1(a)に示す例では、9時の時点におけるデータが基底ボリューム4にコピーされたものとする。即ち、図1(a)では、CDP開始時刻が9時の場合を示す。
ホスト2は、正ボリューム3にアクセスし、データを読み書きする。ホスト2から送信されたライトデータが正ボリューム3に書き込まれた場合(S1)、つまり、正ボリューム3を対象とするライト要求がホスト2から発行された場合、記憶制御装置1は、そのライト要求に基づいてジャーナルデータ5Aを生成する。生成されたジャーナルデータ5Aは、ジャーナルボリューム5に保存される(S2)。
なお、正ボリューム3のある時点の記憶内容を基底ボリューム4にコピーさせる形成コピー中に、ホスト2が正ボリューム3にデータを書き込む場合もある。正ボリューム3から基底ボリューム4へのコピーが完了していない未コピー領域について、ホスト2が新たなデータの書込みを要求した場合を説明する。
この場合、一つの例として、記憶制御装置1は、未コピー領域に記憶されているデータ(旧データ)を正ボリューム3から基底ボリューム4にコピーさせた後で、ホスト2からの新たなデータを正ボリューム3に書き込む。
別の一つの例として、形成コピー中に発行された新たなライト要求のライトデータを「新データ」のような属性をつけてキャッシュメモリ上で管理し、未コピー領域に記憶されている旧データと別に管理する方法もある。この例では、正ボリューム3から基底ボリューム4への旧データのコピーと、ホスト2からのライト要求の処理(新データの上書き)とを非同期で行うことができる。なお、さらに別の方法もある。
ホスト2によって正ボリューム3が更新された位置(例えば、論理トラック)は、ライト要求の発行時刻が含まれる期間(区間)を担当する差分ビットマップ6Aに記憶される(S3)。時間が経過して、最初の差分ビットマップ6Aの担当期間を過ぎた場合、記憶制御装置1は、別の新たな差分ビットマップ6Aに切り替えて、ホスト2によって正ボリューム3が更新された位置を管理する。
CDP開始時刻から目標保護期間を経過すると、目標保護期間を経過したジャーナルデータ5Aは、基底ボリューム4に順番に書き込まれる(S4)。つまり、現在時刻が12時を過ぎた場合、現在時刻(12時)よりも目標保護期間(3時間)だけ前に生成されたジャーナルデータは、生成された順番で基底ボリューム4に書き込まれる。基底ボリューム4に書き込まれたジャーナルデータ5Aは、破棄される。
本明細書では、ジャーナルデータ5Aを基底ボリューム4または正ボリューム3に書き込んで、基底ボリューム4または正ボリューム3の記憶内容を更新させる動作を、「格上げ」または「反映」と呼ぶ場合がある。
図1ではさらに時間が経過した様子が示されている。現在時刻が「13:05」になった場合、「9:55」から「10:05」までに作成されたジャーナルデータ5Aは、目標保護期間を経過したことになるので、基底ボリューム4に書き込まれる。これにより、基底ボリューム4の記憶内容は、現在時刻から3時間前の「10:05」における正ボリューム3の記憶内容と一致する。このように、通常運用時には、基底ボリューム4の記憶内容は、目標保護期間だけ遅れて、正ボリューム3の記憶内容に追従する。
各区間の差分ビットマップ6Aのうち、自身の管理下にあるジャーナルデータ5Aが全て基底ボリューム4に書き込まれた区間差分ビットマップ6Aは、その記憶内容が消去されて再利用される。例えば、現在時刻が「13:05」の場合、基底点は3時間前の「10:05」となっている。「9:00−10:00」の区間を担当する差分ビットマップ6A(9:00-10:00)に関連する各ジャーナルデータ5Aは、既に基底ボリューム4に書き込まれている。
従って、この差分ビットマップ6A(9:00-10:00)は、既に用済みであり、保存しておく必要がない。そこで、差分ビットマップ6A(9:00-10:00)の記憶内容は消去され、別の新たな区間の差分を管理するために再利用される。
図1(b)を参照して、リストア時の動作を説明する。例えば、ホスト2上のアプリケーションプログラムで発生した障害やユーザの誤操作等により、正ボリューム3の記憶内容に誤りを生じる可能性がある。
正ボリューム3の記憶内容に誤りを生じた場合、ユーザは、正ボリューム3の記憶内容を所望の時点まで復元させるための指示を発行する。ユーザは、保護期間内の任意の時刻を復元点(リストア点)として選択することができる。図1(b)の例では、ユーザは、10:05−13:05の期間内の任意時刻を選択できる。ここでは、ユーザは、復元点として「12:30」を指定したものとする。
正ボリューム3をリストアする場合、ホスト2から正ボリューム3へのアクセスは禁止される(S5)。即ち、記憶制御装置1は、ホスト2からライト要求が発行された場合、ホスト2にエラーを返す。なお、リストアの開始に先立って、ユーザがホスト2を停止させることもできる。S5に続いて、基底ボリューム4へのジャーナルデータ5Aの書込みも停止させる(S6)。基底ボリューム4へのジャーナルデータ5Aの書込みを停止させることにより、基底点の変化によって復元可能な期間が短縮されてしまうのを防止することができる。なお、基底ボリューム4へのジャーナルデータ5Aの書込みを、リストアの実行とは無関係に停止させることもできる。
記憶制御装置1は、リストアが指定された時刻に存在する各区間差分ビットマップ6Aの記憶内容をマージすることによって、差分コピー用の差分ビットマップ6Bを生成する(S7)。即ち、記憶制御装置1は、各区間差分ビットマップ6Aの論理和(OR)を求めることにより、差分コピー用の差分ビットマップ6Bを得る。この差分ビットマップ6Bには、基底点から現在時刻までの間に更新された全ての位置が記憶されている。
記憶制御装置1は、差分コピー用の差分ビットマップ6Bを用いて、基底ボリューム4から正ボリューム3にデータを差分コピーする(S8)。つまり、記憶制御装置1は、差分ビットマップ6Bにビット1が設定されている位置についてのみ、基底ボリューム4に記憶されているデータを正ボリューム3にコピーする。
差分コピー用の差分ビットマップ6Bは、正ボリューム3の記憶内容を基底ボリューム4の記憶内容に一致させるためのリストアコピーを実行するために使用される。従って、差分ビットマップ6Bは、リストアコピー用差分ビットマップと呼ぶこともできる。
基底点の記憶内容から更新されたデータだけをコピーするため、基底ボリューム4の全データを正ボリューム3にコピーする場合よりも速やかに、正ボリューム3の記憶内容を基底ボリューム4の記憶内容に一致させることができる。
このように、記憶制御装置1は、まず最初に、正ボリューム3の記憶内容を基底ボリューム4で管理されている基底点の記憶内容まで戻し(S8)、次に、指定された復元点までのジャーナルデータ5Aを正ボリューム3に書き込む(S9)。これにより、正ボリューム3の記憶内容は、指定された復元点まで戻る。
その後、ホスト2から正ボリューム3へのアクセス禁止が解除される。ホスト2は、復元点にリストアされた正ボリューム3にアクセスし、アプリケーションプログラムが正ボリューム3を使用するために必要なリカバリ処理を実施する。リカバリ処理としては、例えば、ファイルシステムにおけるfsckコマンドの実行、DBMS(DataBase Management System)におけるクラッシュリカバリ処理やロールフォワード処理等が挙げられる。リカバリ処理の終了後に、ユーザやアプリケーションプログラムは、正ボリューム3が障害直前の状態に回復したか否かを確認する。正ボリューム3の回復が確認された場合、ホスト2のアプリケーションプログラムは、正ボリューム3を使用する。本明細書では、リカバリ処理及びリカバリ処理の確認を合わせて「リカバリ」と呼ぶ場合がある。
本実施形態は、上述のように構成されるため、以下の効果を奏する。本実施形態では、通常運用時には、目標保護期間を経過したジャーナルデータ5Aを基底ボリューム4に書き込むことにより、基底ボリューム4の記憶内容を正ボリューム3から目標保護期間だけ遅れた記憶内容として、遷移させることができる。従って、リストア可能な期間の始点である基底点を、現在時刻から一定時間だけ遅らせて追従させることができる。基底ボリューム4に書き込まれたジャーナルデータ5Aは破棄されるため、ジャーナルボリューム5がジャーナルデータ5Aで満杯になる可能性を低減することができる。
本実施形態では、予め設定される複数の区間毎にそれぞれ別々の差分ビットマップ6Aを割り当てて、正ボリューム3と基底ボリューム4との間の差分を各区間毎に管理する構成である。従って、差分ビットマップ6Aに対応付けられる全てのジャーナルデータ5Aが基底ボリューム4に書き込まれた後で、その差分ビットマップ6Aの記憶内容を消去して(ゼロクリアして)、再利用することができる。これにより、不要な差分ビットマップ6Aが記憶制御装置1のメモリ領域に記憶されたままになるのを防止し、かつ、記憶制御装置1のメモリ領域を効率的に使用することができる。
これに対し、もしも、全区間を通じて一つの差分ビットマップを用いる場合、つまり、単一の差分ビットマップによって正ボリューム3と基底ボリューム4との間の差分を管理する場合を考える。この場合、いったんビット1に設定されると、ビット0に戻すことはできず、余計な差分ビット(ビット1に設定されているビット)が時間の経過につれて蓄積されていく。
基底ボリューム4に書き込まれたジャーナルデータ5Aに対応する差分ビットは「0」に戻しても構わないが、その後に同一の場所に別のデータが上書きされる可能性があるため、ビット1からビット0に戻すことはできない。
従って、単一の差分ビットマップを用いる場合、時間の経過につれて余分な差分ビットが蓄積されていくため、リストア時に基底ボリューム4から正ボリューム3にコピーされるデータ量が増大する。この結果、正ボリューム3の記憶内容を基底点まで戻すための時間が長くなり、リカバリに長時間を必要とする。本実施形態では、区間毎にそれぞれ別々の差分ビットマップ6Aを用いるため、不要な差分ビットが蓄積されるのを防止し、リストア時のコピー量を低減し、リカバリ時間を短縮することができる。さらに、本実施形態では、不要な差分ビットマップ6Aの記憶内容を消去して再利用できるため、記憶制御装置1のメモリ領域を効率的に使用できる。
本実施形態の記憶制御装置1は、図1に示す構成に限られず、後述の実施例で明らかにされる構成を含むこともできる。また、ジャーナルデータ5Aの管理や差分ビットマップ6Aの管理は、記憶制御装置1の外部で行うこともできる。例えば、ホスト2やホスト2に接続された別のコンピュータ装置によって、ジャーナル管理及び/または差分管理を行う構成とすることもできる。以下、本発明の実施例を詳細に説明する。
図2は、本実施例による記憶制御装置10を含む情報処理システムのハードウェア構成を模式的に示す説明図である。説明の前に、図1に示す実施形態と以下に述べる実施例との対応関係を明らかにする。
「記憶制御装置」としての記憶制御装置10は図1中の記憶制御装置1に、「上位装置」としてのホスト20は図1中のホスト2に、それぞれ対応する。「管理装置」と表現可能な管理サーバ30は、図1では省略されている。
「第1ボリューム」としての正ボリューム230P(図4参照)は、図1中の正ボリューム3に対応する。「第2ボリューム」としての基底ボリューム230B(図4参照)は、図1中の基底ボリューム4に対応する。「第3ボリューム」としてのジャーナルボリューム230J(図4参照)は、図1中のジャーナルボリューム5に対応する。
「ジャーナルデータ」としてのジャーナルデータJD(図4参照)は、図1中のジャーナルデータ5Aに対応する。「第1差分ビットマップ」としての区間差分ビットマップBM20(図4参照)は、図1中の区間差分ビットマップ6Aに対応する。「制御部」としてのコントローラ100は、図1中では図示を省略されている。
図4に示される「第2差分ビットマップ」としての差分コピー用差分ビットマップ(あるいは形成コピー用差分ビットマップ)BM10は、図1中の差分ビットマップ6Bに対応する。
図4に示される「第3差分ビットマップ」としてのリカバリ中の差分ビットマップBM30は、図1では省略されている。同様に、図4に示す「第4差分ビットマップ」としてのCDP停止中の差分ビットマップBM40も、図1では省略されている。
なお、後述のテンポラリリストアは「第1リストア」に、後述の「コンプリートリストア」は「第2リストア」に、それぞれ対応する。
図1に戻る。ホスト20と記憶制御装置10とは、例えば、SAN(Storage Area Network)のような通信経路CN1を介して、双方向通信可能に接続されている。ホスト20は、例えば、サーバコンピュータ、メインフレームコンピュータ、ワークステーション等のようなコンピュータ装置として構成される。
ホスト20がメインフレームコンピュータである場合、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って、データ転送が行われる。
上述の専用プロトコル以外に、ホスト20と記憶制御装置10とは、例えば、iSCSI(internet Small Computer System Interface)、TCP/IP(Transmission Control Protocol/Internet Protocol)、FCP(Fibre Channel Protocol)のような各種通信プロトコルを用いてデータ転送を行うこともできる。
記憶制御装置10は、システム内の記憶資源を一元的に管理する役割を果たすこともできる。例えば、記憶制御装置10は、システム内に散在する物理的な記憶資源を仮想化して、ホスト20に提供する機能を備えることができる。即ち、記憶制御装置10は、外部記憶制御装置40内の記憶資源を、それがあたかも記憶制御装置10内の記憶資源であるかのように、ホスト20に見せかけることができる。このように、記憶制御装置10は、システム内に散在する記憶資源を仮想化するための仮想化装置としての側面を備えることができる。この側面に注目するならば、記憶制御装置10は、必ずしもディスクアレイ装置等のように構成される必要はなく、例えば、ファイバチャネルスイッチ等のような別の装置として構成することもできる。
記憶制御装置10の構成を説明する。記憶制御装置10は、コントローラ100と記憶装置ユニット(以下、HDU)とに大別することができる。コントローラ100は、記憶制御装置10の動作を制御するものである。コントローラ100は、例えば、チャネルアダプタ(以下、CHA)110,ディスクアダプタ(以下、DKA)120,キャッシュメモリ(図中、CM)130,共有メモリ(図中、SM)140,接続制御部150及びサービスプロセッサ(以下、SVP)160を備えて構成される。
CHA110は、ホスト20との間のデータ通信を制御するためのもので、例えば、マイクロプロセッサやローカルメモリ等を備えたコンピュータ装置として構成される。各CHA110は、少なくとも一つ以上の通信ポート111を備えている。通信ポート111には、例えば、WWN(World Wide Name)のような識別情報が設定される。ホスト20と記憶制御装置10とが、iSCSI(internet Small Computer System Interface)等を用いてデータ通信を行う場合、通信ポート111には、IP(Internet Protocol)アドレス等の識別情報が設定される。
図2中には、2種類のCHA110が示されている。図2中左側に位置する一方のCHA110は、ホスト20からのコマンドを受信して処理するためのものであり、その通信ポート111は、ターゲットポートとなっている。図2中右側に位置する他方のCHA110は、外部記憶制御装置40にコマンドを発行するためのものであり、その通信ポート111は、イニシエータポートとなっている。
DKA120は、HDU200内の各ディスクドライブ210との間のデータ通信を制御するためのもので、CHA110と同様に、マイクロプロセッサやローカルメモリ等を備えたコンピュータ装置として構成される。
各DKA120と各ディスクドライブ210とは、例えば、ファイバチャネルプロトコルに従って、ブロック単位のデータ転送を行う。コントローラ100が各ディスクドライブ210にアクセスするための経路は、冗長化されている。いずれか一方のDKA120や通信経路に障害が発生した場合でも、コントローラ100は、他方のDKA120や通信経路を用いて、ディスクドライブ210にアクセス可能である。同様に、ホスト20とコントローラ100との間の経路、外部記憶制御装置40とコントローラ100との間の経路も冗長化することができる。
CHA110及びDKA120の動作を簡単に説明する。CHA110は、ホスト20から発行されたリードコマンドを受信すると、リードコマンドを共有メモリ140に記憶させる。DKA120は、共有メモリ140を随時参照しており、未処理のリードコマンドを発見すると、ディスクドライブ210からデータを読み出して、キャッシュメモリ130に記憶させる。CHA110は、キャッシュメモリ130に移されたデータを読み出し、ホスト20に送信する。
CHA110は、ホスト20から発行されたライトコマンドを受信すると、ライトコマンドを共有メモリ140に記憶させる。CHA110は、受信したライトデータをキャッシュメモリ130に記憶させる。CHA110は、キャッシュメモリ130にライトデータを記憶させた後、ホスト20に書込み完了を報告する。DKA120は、共有メモリ140に記憶されたライトコマンドに従って、キャッシュメモリ130に記憶されたライトデータを読出し、書込み対象のボリューム230Pに対応するディスクドライブ210に記憶させる。
キャッシュメモリ130は、例えば、ホスト20から受信したライトデータ等を記憶するものである。キャッシュメモリ130は、例えば不揮発メモリから構成される。共有メモリ140は、例えば不揮発メモリから構成される。共有メモリ140には、制御情報や管理情報等が記憶される。
共有メモリ140及びキャッシュメモリ130は、同一のメモリ基板上に混在して設けることができる。あるいは、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。
接続制御部150は、各CHA110と、各DKA120と、キャッシュメモリ130及び共有メモリ140をそれぞれ接続させるものである。これにより、全てのCHA110,DKA120は、キャッシュメモリ130及び共有メモリ140にそれぞれアクセス可能である。なお、接続制御部150は、例えばクロスバスイッチ等として構成することができる。
SVP160は、LAN等の内部ネットワークCN4を介して、各CHA110にそれぞれ接続されている。また、SVP160は、LAN等の通信ネットワークCN2を介して、管理サーバ30に接続可能である。SVP160は、記憶制御装置10内部の各種状態を収集し、管理サーバ30に提供する。なお、SVP160は、CHA110及びDKA120の両方に接続されてもよい。SVP160は、共有メモリ140を介して、各種のステータス情報を収集可能であるため、SVP160とCHA110とを接続するだけでも良い。
コントローラ100の構成は、上述した構成に限定されない。例えば、一つまたは複数の制御基板上に、ホスト20との間のデータ通信を行う機能と、外部記憶制御装置40との間のデータ通信を行う機能と、ディスクドライブ210との間のデータ通信を行う機能と、データを一時的に保存する機能と、構成情報等を書換可能に保存する機能とを、それぞれ設ける構成でもよい。
HDU200の構成について説明する。HDU200は、複数のディスクドライブ210を備えている。各ディスクドライブ210は、例えば、ハードディスクドライブ、フラッシュメモリデバイス、光ディスクドライブ、光磁気ディスクドライブ、ホログラフィックメモリデバイス等として実現される。要するに、HDU200は、書換可能な不揮発性の記憶装置を備えている。
RAID構成等によっても相違するが、例えば、3個1組や4個1組等の所定数のディスクドライブ210によって、パリティグループ220が構成される。パリティグループ220は、パリティグループ220内の各ディスクドライブ210がそれぞれ有する物理的記憶領域を仮想化したものである。パリティグループ220の有する物理的記憶領域には、所定サイズまたは可変サイズの論理デバイス(LDEV:Logigal DEVice)230を設定できる。論理デバイス230は、LUN(Logical Unit Number )に対応付けられて、ホスト20に論理ボリュームとして提供される。以下の説明では、論理デバイス230を論理ボリューム230またはボリューム230と呼ぶ。
外部記憶制御装置40は、記憶制御装置10と同様に、例えば、コントローラ41とHDU42とを備えている。HDU42の有する一つまたは複数のディスクドライブを用いて、論理ボリュームが設けられる。外部記憶制御装置40は、記憶制御装置10から見た場合に記憶制御装置10の外部に存在するため、外部記憶制御装置と呼ばれる。
外部記憶制御装置40の有する論理ボリュームを、記憶制御装置10内に仮想的に設けられる中間記憶デバイスにマッピングし、この中間記憶デバイス上に論理ボリューム230を設定することにより、記憶制御装置10は、外部記憶制御装置40の有する論理ボリュームを自分自身の内部に取り込んで利用することができる。
管理サーバ30は、記憶制御装置10の設定や構成等を管理する装置である。ユーザは、管理サーバ30を介して、例えば、CDP対象のボリュームの設定、目標保護期間の設定等を記憶制御装置10に指示する。なお、管理サーバ30の機能を、ホスト20内に設ける構成でもよい。
図3は、ソフトウェア構成を模式的に示す説明図である。ホスト20内には、不図示のアプリケーションプログラムの他に、例えば、管理部21を設けることができる。管理部21は、CDPに関する種々の設定を行うためのプログラムである。管理サーバ30内にも、CDPに関する種々の設定を行うための管理部31が設けられている。図3に示すように、ホスト20及び管理サーバ30の両方が記憶制御装置10の設定変更等を行うことができるように構成してもよいし、いずれか一方のみが記憶制御装置10の設定変更等を行うことができるように構成してもよい。
図4は、記憶制御装置10の論理的構成を模式的に示す説明図である。記憶制御装置10内には、複数種類のボリューム230P,230B,230Jがそれぞれ少なくとも一つ以上設けられる。これらの各ボリューム230P,230B,230Jは、それぞれディスクドライブ210の有する物理的記憶領域を仮想化することにより生成される。
正ボリューム230Pは、CDP機能によって保護されるボリュームである。正ボリューム230Pは、ホスト20によって使用される。基底ボリューム230Bは、正ボリューム230Pの過去の所定時点の記憶内容を維持するボリュームである。ジャーナルボリューム230Jは、正ボリューム230Pの更新時に生成されるジャーナルデータJDを記憶するためのボリュームである。
なお、ジャーナルボリューム230Jには、チェックポイントマーカ(以下、CPM)を記憶させることもできる。CPMとは、ユーザやアプリケーションプログラムが、復元可能点を予め明示的に指示するために使用するデータである。従って、ユーザやアプリケーションプログラムは、時刻またはCPMのいずれかを用いて復元点を指定することができる。ユーザは、CPMを設定する場合に、任意の情報(例えば、ラベル)をCPMに付けることができる。
なお、CPMとジャーナルデータJDとを一緒に管理する場合でも、CPMに設定されているジャーナルシーケンス番号をメモリに記憶しておくことにより、速やかにCPMを検索することができる。なお、設定されたCPMを削除することもできる。例えば、CPMを設定可能な数に上限がある場合、ユーザは、削除対象のCPMの番号を指定することにより、その指定されたCPMを削除させることができる。
CPMに付与されるCPM番号は、ユーザによって手動で指定される場合と、記憶制御装置10が自動的に指定する場合とがある。ユーザが手動でCPM番号を指定する場合、例えば、使用中のCPM番号の一覧を予め取得し、ユーザは、未使用のCPM番号を選択する。もしもユーザによって選択されたCPM番号が使用中の番号である場合、エラーが返される。記憶制御装置10が自動的にCPM番号を設定する場合、例えば、未使用の番号から順番に使用される。未使用の番号が存在しない場合、エラーが返される。
CPMの一覧を参照する操作の例を説明する。ユーザは、CDPグループを指定して、使用中のCPM番号の一覧を管理画面に表示させることができる。ユーザは、表示された一覧の中から所望のCPM番号を指定することにより、そのCPMの詳細な情報を管理画面に表示させることができる。詳細な情報としては、例えば、CPMの設定された時刻や、CPMに付与されたラベル等を挙げることができる。なお、ユーザは、CPMの一覧の中から所望のCPMを削除することもできる。
本実施例では、一つまたは複数のボリューム230PをCDP対象として保護することができる。つまり、一つのボリューム230Pだけを単独で保護することもできるし、あるいは、複数のボリューム230Pをグループ化し、グループ全体として保護することもできる。例えば、互いに関連するデータを記憶する複数のボリューム230Pをグループ化し、CDPによる保護動作を同期させることができる。
基底ボリューム230Bは、正ボリューム230Pに一対一で対応付けられる。これに対し、一つのジャーナルボリューム230Jは、複数の正ボリューム230Pにそれぞれ対応付けることができる。
記憶制御装置10は、複数種類の差分ビットマップBM10〜BM40を備える。差分コピー用の差分ビットマップBM10は、リストア時に、基底ボリューム230Bから正ボリューム230Pにデータを差分コピーする場合に使用される。このBM10は、リストアコピー用差分ビットマップと呼ぶこともできる。
なお、差分コピー用のBM10は、正ボリューム230Pから基底ボリューム230Bに差分データをコピーする場合にも使用することができる。さらに、正ボリューム230Pから基底ボリューム230Bにデータをコピーする際に使用する形成コピー用差分ビットマップと、基底ボリューム230Bから正ボリューム230Pにデータをコピーする際に使用するリストアコピー用差分ビットマップとを別々に用意することもできる。
さらに、基底ボリューム230Bから正ボリューム230Pにデータをコピーするリストアコピーに使用する差分ビットマップと、正ボリューム230Pから基底ボリューム230Bにデータをコピーする形成/再開コピー(形成コピーまたは再開コピー)に使用する差分ビットマップとを、別々に用意することもできる。両コピーで使用する差分ビットマップをそれぞれ別々にすることにより、形成/再開コピーが終了していなくても、リストアコピーを行うことができる。つまり、形成/再開コピーとリストアコピーとを同時に実行させることができる。
リストアコピーに使用する差分ビットマップは、形成コピーまたは再開コピーにより基底ボリューム230Bから正ボリューム230Pにデータコピーの完了した領域のうち、リストアのために基底ボリューム230Bから正ボリューム230Pにデータコピーが完了したか否かを判別するために使用することができる。
区間差分ビットマップBM20は、予め設定される各区間毎に、正ボリューム230Pと基底ボリューム230Bとの間に生じる差分の位置をそれぞれ管理する。区間差分ビットマップBM20が使用されていた時間帯(例えば、ジャーナルシーケンス番号の範囲)を、その区間差分ビットマップBM20の属性として管理する。リカバリ中に使用される差分ビットマップBM30は、リカバリ中に発生する差分を管理するために使用される。リカバリ中であっても、ホスト20はライト要求を発行する場合があり、このライト要求によって生じる正ボリューム230Pと基底ボリューム230Bとの間の差分は、差分ビットマップBM30により記憶される。この差分ビットマップBM30は、リカバリ中差分ビットマップと呼ぶこともできる。
CDP停止中に使用される差分ビットマップBM40は、CDP停止中に発行されるライト要求によって発生する差分を管理するために使用される。この差分ビットマップBM40は、CDP停止中差分ビットマップと呼ぶこともできる。
図5は、ジャーナルボリューム230Jの記憶構成を模式的に示す説明図である。ジャーナルボリューム230Jの記憶領域は、管理領域とデータ領域とに大別される。管理領域には、ジャーナルデータJDを管理するためのデータやCPMが記憶される。データ領域には、ジャーナルデータJDのデータ本体が記憶される。
管理データ(メタデータ)としては、例えば、ボリューム番号(図中「VOL#」)、スタートLBA、ブロック数、シーケンス番号(図中「SEQ#」)、時刻、データ、フラグ等を挙げることができる。
「ボリューム番号」とは、正ボリューム230Pを特定するための情報である。「スタートLBA」とは、正ボリューム230Pに書き込まれるライトデータの先頭を示す論理ブロックアドレスである。「ブロック数」とは、ライトデータのデータサイズを示す情報である。「シーケンス番号」とは、ジャーナルデータJDに連番で設定される識別番号である。「時刻」とは、ライト要求が発行された時刻である。「データ」とは、データ本体の位置を示すポインタである。「フラグ」とは、そのジャーナルデータJDを有効なものとして扱うか無効として扱うかを示すための制御情報である。なお、ジャーナルデータの有効または無効を示すためのフラグに代えて、例えば、無効とするジャーナルデータのシーケンス番号を別に管理する方法でもよい。この場合、管理領域内の管理データ(メタデータ)を書き換える必要がないので、処理負荷を軽減することができる。
フラグの値が有効に設定されているジャーナルデータJDは、目標保護期間を経過した後で、基底ボリューム230Bに書き込まれる。フラグの値が無効に設定されているジャーナルデータJDは、目標保護期間を経過した後でも、基底ボリューム230Bに書き込まれない。即ち、無効なジャーナルデータJDは、格上げ処理の対象外となる。格上げ処理とは、ジャーナルデータをボリュームに書き込んで、そのボリュームの記憶内容をアップデートさせる処理である。
なお、CPMは、ジャーナルデータJDを管理する管理データと一緒に管理することもできるし、別のテーブルで管理することもできる。
図6は、区間差分ビットマップBM20の使用方法を示す説明図である。例えば、「1時間」等のような、予め設定される所定の区間毎に、それぞれ一つずつの差分ビットマップBM20が使用される。
図6に示す例では、「9:00-10:00」の区間でBM20(09:00-10:00)が、「10:00-11:00」の区間でBM20(10:00-11:00)が、「11:00-12:00」の区間でBM20(11:00-12:00)が、「12:00-13:00」の区間でBM20(12:00-13:00)が、「13:00-」の区間でBM20(13:00-)が、それぞれ使用されている。
目標保護期間が「3時間」に設定される場合、現在時刻から3時間を経過したジャーナルデータJDは、基底ボリューム230Bに書き込まれる。基底ボリューム230Bに書き込まれたジャーナルデータJDは、破棄される。なお、本実施例では、経過時間に応じて格上げ処理を行う場合を説明しているが、これに代えて、上述のように、ジャーナルボリューム230Jの使用率に応じて格上げ処理を行うこともできる。
差分ビットマップBM20(09:00-10:00)で管理されている全てのジャーナルデータJD(09:01-09:55)が、基底ボリューム230Bに書き込まれて破棄された場合、その差分ビットマップBM20(09:00-10:00)は、不要となる。この不要となる差分ビットマップBM20を、空きビットマップと呼ぶことがある。従って、差分ビットマップBM20(09:00-10:00)の記憶内容は消去され、別の新たな区間(14:00-15:00)を管理するための差分ビットマップBM20として再利用される。
なお、通常運用中に目標保護期間TPTを変更することも可能である。例えば、通常運用中に目標保護期間が延長された場合、延長された時間分のジャーナルデータJDがジャーナルボリューム230Jに蓄積されるまで、格上げ処理は停止される。格上げ処理が停止される期間中、空きビットマップ(自分の管理下にある全てのジャーナルデータが格上げ処理された差分ビットマップBM20である)は生じない。また、目標保護期間の延長により、区間差分ビットマップBM20を切り替えるタイミングも変化する。
そこで、第1の方法として、空きビットマップが生じるまで、現在使用中の区間差分ビットマップBM20を使用し続ける方法がある。
第2の方法として、最も古い区間差分ビットマップBM20を2つ選択し、この選択された各区間差分ビットマップBM20をマージして一つの区間差分ビットマップBM20にまとめることにより、空きビットマップを一つ生成する方法がある。
第3の方法として、目標保護期間TPTの延長の度合に応じて、所定個数ずつの区間差分ビットマップBM20を1つの差分ビットマップBM20にまとめることにより、空きビットマップを得る方法がある。例えば、目標保護期間TPTが2倍になった場合(TPT=2×TPT)、2面ずつの区間差分ビットマップBM20をマージして1つにまとめ、目標保護期間TPTが3倍になった場合(TPT=3×TPT)、3面ずつの区間差分ビットマップBM20をマージして1つにまとめる。目標保護期間TPTが1.5倍になった場合(TPT=1.5×TPT)、3面の区間差分ビットマップBM20のうち2面の区間差分ビットマップBM20をマージして1つにまとめ、残りの区間差分ビットマップBM20はそのままとする。
ここで、区間差分ビットマップBM20は、区間の数よりも2つ多い数だけ用意するのが好ましい。つまり、n個の区間に分けて差分を管理する場合、差分ビットマップBM20の総数は、n+2個に設定されるのが好ましい。最古の差分ビットマップBM20を消去して再利用するには、幾らかの処理時間を必要とするためである。差分ビットマップBM20の切替タイミングに発行されるライト要求を確実に管理するために、区間数よりも2つだけ多い数の差分ビットマップBM20を用意するのが好ましい。
図6に点線で示すように、基底ボリューム230Bには、差分ビットマップBM20(09:00-10:00)で管理される区間内のジャーナルデータJD(09:01-09:55)が全て書き込まれる。これにより、基底ボリューム230Bの記憶内容は、「09:55」の時点における正ボリューム230Pの記憶内容に一致する。その後、時間が進んで「13:05」になると、その3時間前である「10:05」までのジャーナルデータJDが、基底ボリューム230Bに書き込まれる。これにより、基底ボリューム230Bの記憶内容は、正ボリューム230Pの「10:05」における記憶内容に一致する。
このように、基底ボリューム230Bの記憶内容は、対応する正ボリューム230Pの記憶内容に、目標保護時間分だけ遅れて追従する。即ち、基底ボリューム230Bが示す記憶内容の時刻(この時刻を基底点と呼ぶ)は、実時間の進行につれてシフトする。基底点は、正ボリューム230Pの記憶内容を復元可能な期間の始点を示している。CDP機能だけでは、基底点より過去に遡って正ボリューム230Pの記憶内容を復元させることはできない。なお、基底ボリューム230BへのジャーナルデータJDの書込みを停止させると、基底点のシフトも停止する。
図7は、記憶制御装置10により実行される制御モードを示す説明図である。記憶制御装置10は、後述のように、例えば、CDP形成及びCDP削除モード(S11)と、リカバリモード(S12)と、CDP停止及びCDP再開モード(S13)とを備える。ここで、後述のS16は「第1制御モード」に、S18,S19,S20,S21は「第2制御モード」に、S23は「第3制御モード」に、それぞれ対応する。
CDP形成及びCDP削除モード(S11)の概要を説明する。詳細は図8と共に後述する。CDP形成及びCDP削除モード(S11)は、初期状態(S14)から始まり、CDPを形成して(S15)、通常運用処理を行う(S16)。
CDPを形成するとは、CDPにより保護される正ボリューム230Pを指定し、この保護対象の正ボリューム230Pに記憶されているデータを基底ボリューム230Bにコピー等する処理を意味する。即ち、S15は、CDP機能を利用するための環境を整える処理である。
通常運用処理(S16)では、ホスト20からライト要求が発行される度にジャーナルデータJDを生成して、ジャーナルボリューム230Jに記憶させる。そして、通常運用処理(S16)では、目標保護期間を経過したジャーナルデータJDを基底ボリューム230Bに書き込むことにより、基底ボリューム230Bの記憶内容を更新させ、基底点をシフトさせる。
CDP機能を解除する場合、CDP削除処理(S17)が実行される。CDP削除処理(S17)では、正ボリューム230Pに設定されていた「CDPによる保護対象」という属性を解除し、通常のボリュームに戻す。その正ボリューム230Pとコピーペアを形成していた基底ボリューム230Bも、通常のボリュームに戻される。また、CDP削除処理(S17)では、CDPが解除された正ボリューム230Pに関するジャーナルデータJDを破棄する。
なお、一つのジャーナルボリューム230Jによって複数の正ボリューム230Pの更新履歴を管理することもできる。この場合、一つの正ボリューム230Pに関するCDPが削除されても、ジャーナルボリューム230J内のジャーナルデータJDを破棄することはできない。この場合、削除されたCDPに関連するジャーナルデータJDは、破棄せずに無効化する。即ち、削除されたCDPに関するジャーナルデータJDを無効なものとして取り扱う。ジャーナルデータJDが無効であるか否かは、管理データ中のフラグを用いて管理してもよいし、ジャーナルデータのシーケンス番号で管理してもよい。
例えば、複数のジャーナルボリューム230Jに跨って設けられるジャーナル領域を複数の正ボリューム230Pが共用しており、異なる正ボリューム230Pの更新履歴がランダムにジャーナルボリューム230Jに書き込まれているような場合、その中の一つの正ボリューム230Pに関するCDPを削除しても、その削除されたCDPに関するジャーナルデータJDは破棄することができない。ジャーナル領域内に各正ボリューム230Pに関するジャーナルデータJDが混在しているためである。従って、この場合、その削除されたCDPに関するジャーナルデータJDは、無効化する。
これに対し、ジャーナルボリューム230Pと正ボリューム230Pとが一対一で対応しているような場合、その正ボリューム230Pに関するCDPが削除されたときは、その正ボリューム230Pに対応付けられているジャーナルボリューム230Jは、未使用ボリュームに戻される。
リカバリモード(S12)を説明する。通常運用処理(S16)の実行中に、何らかの障害が発生すると、この障害は、ユーザまたはアプリケーションプログラムに認識され、障害調査が行われる(S18)。障害を回避すべく、ユーザは、テンポラリリストア(S19)及びリカバリ(S20)を少なくとも一回ずつ実行する。
テンポラリリストア(S19)とは、CDPによる保護対象である正ボリューム230Pの記憶内容を、ユーザの指定する復元点の記憶内容に一時的に戻す処理である。リカバリ(S20)とは、復元された正ボリューム230Pにfsck等のような処理を実施することにより、アプリケーションプログラムが利用可能な状態にするための処理である。
リカバリが正常に完了したことが確認された場合、ユーザは、コンプリートリストア(S21)の実行を指示する。コンプリートリストア(S21)とは、リカバリされた記憶内容を確定させるための処理である。そして、コンプリートリストア(S21)の終了後に、通常運用処理(S16)に移行する。
なお、テンポラリリストア及びリストアを介さずに、直接コンプリートリストアすることもできる。この場合、テンポラリリストアの完了時に復元点以降のジャーナルデータJDを無効化し、リストア後に生じる更新位置をリストア中差分ビットマップBM30ではなく、区間差分ビットマップBM20によって管理する。
テンポラリリストアを取り消すこともできる。テンポラリリストアを取り消すためのコマンドが発行された場合、例えば、テンポラリリストアを開始した時点(ライト要求の受付が禁止された時点である)まで再度テンポラリリストアして、次にコンプリートリストアを実行する。これにより、いったん指示したテンポラリリストアを取り消して、テンポラリリストアの実行を指示するための状態に戻すことができる。
テンポラリリストアをやり直す場合に用いる差分コピー用の差分ビットマップBM10は、基底点からテンポラリリストアをやり直す前の復元点までの各区間差分ビットマップBM20と、リカバリ中差分ビットマップBM30とをマージすることにより、得ることができる。
CDP停止及びCDP再開モード(S13)を説明する。CDP停止及びCDP再開モード(S13)は、CDP機能の実行に何らかの障害が発生した場合に実施される。例えば、ホスト20が正ボリューム230Pへライトアクセスする頻度が大きく、ジャーナルボリューム230Jが満杯になった場合に、CDP停止及びCDP再開モード(S13)が実行される。
CDP停止処理(S23)では、ホスト20が正ボリューム230Pにライトアクセスした場合でも、ジャーナルデータJDの新規生成を中止し、かつ、ジャーナルボリューム230Jに蓄積されているジャーナルデータJDの基底ボリューム230Bへの書込み処理(格上げ処理)を停止させる。その後、S18〜S21で述べたと同様に、障害調査(S24)、テンポラリリストア(S25)、リカバリ(S26)及びコンプリートリストア(S27)が実行される。障害が回復すると、ユーザは、CDPを再開させることができる(S22)。CDP再開処理(S22)では、再開が指示された時点における正ボリューム230Pの記憶内容を基底ボリューム230Bにコピーし、CDP停止前に蓄積された過去のジャーナルデータJDは破棄される。
なお、CDP停止処理(S23)と格上げ処理の停止とは、必ずしも連動して行われる必要はない。CDPの停止とは無関係に格上げ処理のみを停止させることもできる。また、CDPを停止する場合でも、格上げ処理を停止させる必要がない場合もある。
CDP停止後にリカバリすることなく、CDPを再開させることもできる。障害発生時にリカバリを行えばよい。
図8は、CDP形成及びCDP削除モード(S11)の処理の流れを模式的に示す説明図である。図8(1)に示す初期状態では、CDP機能は作動しておらず、ホスト20は通常のボリューム230にアクセスしている(S31)。
図8(2)に示すCDP形成状態では、通常のボリューム230の属性をCDPにより保護される正ボリューム230Pに、別の通常ボリューム230の属性を基底ボリューム230Bに、それぞれ変更する。
記憶制御装置10は、正ボリューム230Pの記憶内容を基底ボリューム230Bに全てコピーする(S32)。これにより、基底ボリューム230Bの記憶内容は、CDP開始時の時刻における正ボリューム230Pの記憶内容に一致する。基底点は、CDP開始時刻(図8の例では「09:00」)となる。記憶制御装置10は、ホスト20によって正ボリューム230Pが更新されると、ジャーナルデータJDを生成してジャーナルボリューム230Jに記憶させる(S33)。なお、正ボリューム230Pから基底ボリューム230Bへのコピー中において、ホスト20が、正ボリューム230Pから基底ボリューム230Bへのコピーが完了していない未コピー領域にデータを書き込もうとした場合、その未コピー領域に記憶されているデータを正ボリューム230Pから基底ボリューム230Bにコピーさせてから、ホスト20からのライト要求を受け付ける。
図8(3)に示す通常運用状態では、記憶制御装置10は、ジャーナルボリューム230Jに記憶されている各ジャーナルデータJDのうち、目標保護期間を経過したジャーナルデータJDを基底ボリューム230Bに書き込む。即ち、目標保護期間を経過したジャーナルデータJDは、基底ボリューム230Bに反映され、基底点が変更される。基底ボリューム230Bに書き込まれたジャーナルデータJDは、破棄される。
CDPでは、ホスト20からライト要求が発行される度に自動的にジャーナルデータJDが生成されて蓄積される。従って、ユーザは、ライト要求の発行単位で(ジャーナルデータ単位で)、正ボリューム230Pの記憶内容を復元可能である。さらに、ユーザまたはアプリケーションプログラムは、CPMの挿入を明示的に指示することにより、任意の復元可能点を予め用意させることもできる(S35)。有効なCPMが存在する場合、ユーザまたはアプリケーションプログラムは、その有効なCPMを指定することにより、正ボリューム230Pの記憶内容を所望の時点まで回復させることができる。
なお、通常運用状態では、所定の区間毎にそれぞれ一つの差分ビットマップBM20が、正ボリューム230Pと基底ボリューム230Bとの間の差分を管理する。
図8(4)に示すCDP削除状態では、記憶制御装置10は、CDPによる保護対象に設定されていた正ボリューム230Pを通常ボリューム230に(S36)、基底ボリューム230Bを通常ボリューム230に(S38)、それぞれ変更する。また、記憶制御装置10は、ジャーナルボリューム230Jに記憶されているジャーナルデータJDを、無効化する(S37)。これにより、初期状態に戻る。
ジャーナルデータJDを無効化するとは、通常ボリューム230に変更される正ボリューム230Pに関して取得されたジャーナルデータJDを、無効なジャーナルデータとして扱うことを意味する。無効化されたジャーナルデータJDは、格上げ処理の対象外として扱われる。ジャーナルデータが有効であるか否かは、ジャーナルデータJDを管理するためのデータ中に含まれるフラグによって示される。一つのジャーナルボリューム230Jが複数の正ボリューム230Pに対応付けられている場合、各正ボリューム230Pに関するジャーナルデータJDがジャーナルボリューム230Jに混在している。このように、ある時点以降のジャーナルデータJDを単純に破棄することができない場合、ジャーナルデータJDを破棄する代わりに無効化する。
図9は、リカバリモード(S12)の処理の流れを模式的に示す説明図である。図9(1)に示す通常運用中に何らかの障害が発生すると、この障害はユーザまたはアプリケーションプログラムによって検出される。
通常運用状態から図9(2)に示すテンポラリリストア状態に移行する。テンポラリリストア状態に移行するに際して、ホスト20による正ボリューム230Pへのアクセスが禁止される(S41)。記憶制御装置10は、目標保護期間を経過したジャーナルデータJDが存在する場合であっても、そのジャーナルデータJDを基底ボリューム230Bに書き込む処理を停止させる(S42)。即ち、記憶制御装置10は、ジャーナルデータJDの格上げを停止し、現在の基底点を維持する。図9では、現在の基底点は「10:00」となっている。
記憶制御装置10は、差分コピー用の差分ビットマップBM10を用いて、基底ボリューム230Bの記憶内容を正ボリューム230Pに差分コピーする(S43)。これにより、正ボリューム230Pの記憶内容は、基底ボリューム230Bで維持されていた基底点まで復帰する。
記憶制御装置10は、ジャーナルボリューム230Jに記憶されているジャーナルデータJDのうち、指定された復元点までの各ジャーナルデータJDを順番に読み出して、正ボリューム230Pに書き込む(S44)。これにより、正ボリューム230Pの記憶内容は、指定された復元点まで復帰する。図9では、復元点として「12:30」が指定された様子を示す。
図9(3)に示すリカバリ状態では、ホスト20による正ボリューム230Pへのライトアクセスの禁止が解除され(S45)、ホスト20からリカバリ内容を確認するためのデータが記憶制御装置10に入力される。記憶制御装置10は、リカバリ後に発行されるライトデータに基づいてジャーナルデータJDを生成し、このジャーナルデータJDをジャーナルボリューム230Jに記憶させる(S46)。
ホスト20からのライトアクセス禁止が解除されることにより、正ボリューム230Pの記憶内容及びジャーナルボリューム230Jの記憶内容は、それぞれ更新される。図9(3)において、リカバリ直後の正ボリューム230Pの記憶内容は、「12:30」の時点に復帰しているが、実時間は「13:30」である。
さらに、リカバリ後のライトアクセスによって、正ボリューム230Pの記憶内容は、「12:30」の時点の記憶内容から多少変化する。この変化を、図9(3)では「12':30’」として示している。かっこ内の値は実時間である。
ジャーナルボリューム230Jは、最初「10:00-13:00」の期間内に生成されたジャーナルデータJDが蓄積されている。リカバリ後のライトアクセスによって、ジャーナルボリューム230Jには、既存のジャーナルデータ(10:00-13:00)に加えて、リカバリ後に生成されるジャーナルデータ(12:30-12':30')も蓄積される。
図9(4)に示すように、リカバリ内容に不満のあるユーザは、別の復元点を指定して、再度テンポラリリストアを実行させることもできる。再度のテンポラリリストアでは、図9(2)で述べたテンポラリリストアと同様に、ホスト20による正ボリューム230Pへのアクセスを禁止させ(S47)、図9(3)で取得されたリカバリ後のジャーナルデータJD(12:30-12':30')を破棄する(S48)。そして、記憶制御装置10は、基底ボリューム230Bから正ボリューム230Pに、両ボリューム230P,230B間の差分をコピーする(S49)。記憶制御装置10は、正ボリューム230Pの記憶内容が再指定された復元点(12:10)の記憶内容に一致するまで、ジャーナルデータJDを正ボリューム230Pに書き込んでいく(S50)。
なお、1つのジャーナルボリューム230Jが複数の正ボリューム230Pに対応付けられており、かつ、その中の一つの正ボリューム230Pについてリストアされる場合は、テンポラリリストアをやり直すときにジャーナルデータJDを破棄できない。この場合は、ジャーナルデータJDを無効化する。ジャーナルボリューム230Jと正ボリューム230Pとが一対一で対応している場合や、グループ単位で一括してリストアを実行する場合には、ジャーナルデータJDを破棄することができる。
例えば、複数のジャーナルボリューム230Jに跨って設けられるジャーナル領域を複数の正ボリューム230Pが共用しており、異なる正ボリューム230Pの更新履歴がランダムにジャーナルボリューム230Jに書き込まれているような場合、その中の一つの正ボリューム230Pに関してリストアを行う場合、そのリストアされる正ボリューム230Pに関するジャーナルデータJDは破棄することができない。ジャーナル領域内に各正ボリューム230Pに関するジャーナルデータJDが混在しているためである。従って、この場合、そのリストアされる正ボリューム230Pに関するジャーナルデータJDは、無効化する。
ユーザは、図9(3)に示すリカバリと図9(4)に示す再度のテンポラリリストアとを複数回繰り返すことができる。これにより、ユーザは、所望の時点を検出する。そして、所望の時点を発見したユーザは、記憶制御装置10にコンプリートリストアの実行を指示する。図9では、「12:30」が所望の時点として選択されたものとする。
図9(5)に示すコンプリートリストアでは、リカバリされた記憶内容が確定され、ホスト20からのアクセス禁止が解除される(S51)。図9(5)では、正ボリューム230Pの記憶内容は、「13:45」の時点の内容に変化している。現在時刻よりも目標保護期間だけ前のジャーナルデータ(図9(5)の例では、「10:00-10:45」までのジャーナルデータ)JDは、基底ボリューム230Bに書き込まれ、その後破棄される(S52)。なお、格上げ処理の再開とコンプリートリストアとを別々に行うこともできる。つまり、例えば、コンプリートリストアの実行後に直ちに格上げ処理を再開すると、保護期間が短縮されるため、格上げ処理の再開を遅らせる場合もある
ジャーナルボリューム230Jに保存されるジャーナルデータJDの範囲は、「10:00-13:00,12:00-12':30'」から「10:45-12:30,13:30-13:45」に変化する(S53)。リカバリ確認によって生成されたジャーナルデータ(12:30-12':30')は、コンプリートリストアの実行に際して破棄される。リカバリ前に蓄積されていたジャーナルデータ(10:00-13:00)のうち、確定された復元点(12:30)以降のジャーナルデータ(12:30-13:00)も、コンプリートリストアの実行によって破棄される。
従って、ジャーナルボリューム230Jには、「10:45-12:30」の範囲のジャーナルデータJDと、「13:30-13:45」の範囲のジャーナルデータJDとがそれぞれ記憶される。つまり、コンプリートリストアの実行によって、CDPで復元可能な期間は、リカバリ前から存在する第1期間(10:45-12:30)と、リカバリ後に発生する第2期間(13:30-13:45)との2つの期間に分断される。
コンプリートリストアの完了後は、図9(6)に示す通常運用状態に移行する。通常運用状態では、上述のように、記憶制御装置10は、ホスト20から正ボリューム230Pへのライトアクセス(S55)に基づいてジャーナルデータJDを生成し、生成したジャーナルデータJDをジャーナルボリューム230Jに記憶させる(S56)。記憶制御装置10は、ジャーナルボリューム230J内に、目標保護期間分のジャーナルデータJDを記憶させ(S57)、目標保護期間を経過したジャーナルデータJDを基底ボリューム230Bに書き込む(S58)。基底ボリューム230Bに反映されたジャーナルデータJDは、破棄される。
図10は、図7中のCDP停止(S23)及びCDP再開(S22)の処理の流れを模式的に示す説明図である。図10(1)に示す通常運用中に、例えば、ジャーナルボリューム230JがジャーナルデータJDで満杯になったものと仮定する。なお、ジャーナルボリューム230Jが満杯になる場合のほかに、ユーザの指示によってCDPが停止される場合もある。例えば、正ボリューム230Pの性能低下を避ける場合や、正ボリューム230Pのフォーマット時に保護不要なライトデータが多量に発生するような場合、ユーザは、CDPを停止させることができる。
ジャーナルボリューム230Jが満杯になった場合、図10(2)に示すCDP停止状態に移行する。CDP停止状態においても、ホスト20は正ボリューム230Pにアクセスして書き込むことができる(S61)。しかし、記憶制御装置10は、ジャーナルデータJDを生成しない。記憶制御装置10は、基底ボリューム230Bへのジャーナルデータの書込み処理を停止し(S62)、ジャーナルボリューム230Jに記憶されているジャーナルデータJDをそのまま保持する(S63)。
CDPの再開が指示されると、図9(3)に示すCDP再開状態に移行する。記憶制御装置10は、正ボリューム230Pの記憶内容を基底ボリューム230Bに全てコピーし(S64)、基底点をCDP再開が指示された時刻に変更する。記憶制御装置10は、ホスト20から正ボリューム230Pへのライトアクセス(S65)に基づいて、ジャーナルデータJDを生成し、生成したジャーナルデータJDをジャーナルボリューム230Jに記憶させる(S66)。記憶制御装置10は、CDP再開前に記憶されていた古いジャーナルデータJDを全て破棄し、CDP再開後に取得されたジャーナルデータJDのみをジャーナルボリューム230Jに保存させる(S67)。
図11は、図7中のCDP停止後におけるリカバリ処理(S23〜S27)の流れを模式的に示す説明図である。図11(1)に示すCDP停止状態では、上述のように、ジャーナルデータJDの取得及び保存は停止されており(S81)、かつ、既に蓄積されているジャーナルデータJDを基底ボリューム230Bに書き込む処理も停止されている(S82)。
CDP停止状態において、何らかの障害が発生した場合、ユーザは、図11(2)に示すように、テンポラリリストアを実行させる。テンポラリリストアの実行に先立って、ホスト20による正ボリューム230Pへのアクセスは停止される(S83)。記憶制御装置10は、差分コピー用の差分ビットマップBM10を用いて、基底ボリューム230Bの記憶内容と正ボリューム230Pの記憶内容との差分を、基底ボリューム230Bから正ボリューム230Pにコピーさせる(S84)。続いて、記憶制御装置10は、正ボリューム230Pの記憶内容が指定された復元点の記憶内容になるまで、ジャーナルデータJDを正ボリューム230Pに書き込む(S85)。
図11(3)に示すリカバリ状態では、ホスト20による正ボリューム230Pへのアクセス禁止が解除される(S86)。記憶制御装置10は、リカバリ後に発行されるライトデータの書込み位置(更新位置)を、CDP停止中の差分ビットマップBM40を用いて管理する(S86)。
なお、CDP停止後のテンポラリリストアによって差分コピー用差分ビットマップBM10を作成した後は、いったんCDP停止中の差分ビットマップBM40の記憶内容を消去する。即ち、差分ビットマップBM40において更新位置を示すために「1」がセットされた箇所を、「0」に戻す。そして、テンポラリリストア後のリカバリにおいて、差分ビットマップBM40を再使用する。
図11(4)に示すコンプリートリストアでは、リカバリされた記憶内容が確定され、ホスト20からのアクセスはそのまま継続される(S87)。記憶制御装置10は、確定された復元点以降のジャーナルデータJDを無効化する(S88)。そして、図11(5)に示すCDP停止状態に移行し、ホスト20によって更新された位置を差分ビットマップBM40を用いて管理する。
図12〜図18に基づいて、CDPによって保護される期間の変化を説明する。図12は、CDPによる保護の開始から通常運用状態に移行するまでの保護期間の変化を示す説明図である。図12〜図18において、ジャーナルデータJDの蓄積状態を斜線部で示し、削除されたジャーナルデータJDの範囲を黒く塗りつぶして示す。つまり、図中の斜線部は、ジャーナルデータJDによって回復可能な保護期間PTを示す。
初期状態では、正ボリューム230P及び基底ボリューム230Bはいずれも設定されておらず、CDPによる保護は行われていない。CDP形成の指示が与えられると、正ボリューム230P及び基底ボリューム230Bがそれぞれ設定され、CDP形成が指示された時刻td1における正ボリューム230Pの記憶内容を基底ボリューム230Bにコピーするための形成コピーが開始される。
形成コピー中に、ホスト20は、正ボリューム230Pを対象とするライト要求を発行できる。上述の通り、形成コピー中に、正ボリューム230Pから基底ボリューム230Bへのコピーが完了していない未コピー領域についてライト要求が発行された場合、例えば、一つの方法として、未コピー領域に記憶されているデータを基底ボリューム230Bにコピーした後で、そのライト要求を受け付ける。記憶制御装置10は、ライト要求に基づいてジャーナルデータJDを生成し、ジャーナルボリューム230Jに記憶させる。形成コピーの完了時刻td2において、ジャーナルボリューム230Jには、CDP形成時刻td1から形成コピー完了時刻td2までの間に発行されたライト要求に関するジャーナルデータJDが保存される。従って、この場合の保護期間PT1は、td1からtd2までの期間となる。保護期間PT1は、未だ目標保護期間TPTに達していない。
形成コピー完了後、記憶制御装置10は通常運用状態1に移行する。ここで、通常運用状態の時間変化を分かり易く示すために、「通常運用1」、「通常運用2」、「通常運用3」のように、時間の経過に応じて番号を添えている。
通常運用1では、ジャーナルボリューム230Jには、td1からtd3までに発行されたライト要求に関するジャーナルデータJDが保存される。この場合の保護期間PT2は、td1からtd3までの期間である。保護期間PT2は、未だ目標保護期間TPTに達していない。
通常運用2では、td1からtd4までに発行されたライト要求に関するジャーナルデータJDがジャーナルボリューム230Jに保存されている。この場合の保護期間PT3は、td1からtd4までの期間である。保護期間PT3は、目標保護期間TPTに一致したものとする。
さらに時刻の進んだ通常運用3では、目標保護期間TPTを経過したジャーナルデータJDは、基底ボリューム230Bに書き込まれ、そして破棄される。即ち、最新のデータ時刻td5から目標保護期間TPTだけ前の時刻以前の範囲に蓄積されたジャーナルデータJD(Δtda=(td5−TPT)−td1)は、基底ボリューム230Bに順番に書き込まれていく。基底ボリューム230Bに書き込まれたジャーナルデータJDは、破棄される。ジャーナルボリューム230Jには、目標保護期間TPT分のジャーナルデータJDが蓄積されているため、ユーザまたはアプリケーションプログラムは、現在時刻td5から目標保護期間TPTだけ前の時刻の範囲内で、任意の時刻を復元点として指定することができる。
図13は、コンプリートリストア後に保護期間が分断される様子を示す。図13の最上段に示すように、通常運用状態において何らかの障害が発生し、その障害発生がユーザまたはアプリケーションプログラムに認識されたと仮定する。
ジャーナルボリューム230Jには、最古時刻td9から最新時刻td11までの期間内に発行されたライト要求に関するジャーナルデータJDが保存されている。障害発生が認識された場合、テンポラリリストアの実行に先立って、ホスト20から正ボリューム230Pへのアクセスは停止され、かつ、ジャーナルデータJDを基底ボリューム230Bに書き込む処理も停止される。
なお、必要に応じて、テンポラリリストアの実行の有無とは別に、ジャーナルデータJDを基底ボリューム230Bに書き込む処理のみを停止させることもできる。例えば、図7中のS18に示す障害調査を実行する前に、格上げ処理を停止させるのが好ましい。格上げ処理を停止しない場合、障害を調査している間に保護期間が短縮されてしまうためである。従って、障害調査を開始する前に、格上げ処理を停止して保護期間が短縮されるのを防止する方が望ましい。但し、例えば、目標保護期間が十分長く設定されているような場合は、障害調査の開始前に格上げ処理を停止させる必要はない。
時刻td11を復元点としてテンポラリリストアの実行が指示される。各区間差分ビットマップBM20をマージして差分コピー用差分ビットマップBM10が生成され、この差分ビットマップBM10を用いて、基底ボリューム230Bから正ボリューム230Pにデータが差分コピーされる。その後、最古時刻td9から復元点td11までの間のジャーナルデータJDが基底ボリューム230Bに順番に書き込まれ、テンポラリリストアが完了する。
時刻td12においてテンポラリリストアが完了し、リカバリされた記憶内容を確認するためのコマンドやデータがホスト20から発行される。記憶制御装置10は、テンポラリリストア後にホスト20から発行されたライトデータに関するジャーナルデータJDを生成し、ジャーナルボリューム230Jに記憶させる。
復元点td11のテンポラリリストアによるリカバリ内容に不満のある、ユーザやアプリケーションプログラムは、別の時刻td13を復元点として2度目のテンポラリリストアの実行を指示する。時刻td14において、2度目のテンポラリリストアの実行が指示されると、1度目のテンポラリリストア後に蓄積されていたジャーナルデータJD(td12−td14の範囲内のジャーナルデータJD)は、破棄される。
2度目のテンポラリリストアが完了すると、ユーザまたはアプリケーションプログラムは、リカバリされた記憶内容を確認する。リカバリ後の時刻td15以降に、ホスト20から発行されたライトデータに関してジャーナルデータJDが生成され、ジャーナルボリューム230Jに記憶される。
ユーザまたはアプリケーションプログラムが2度目のテンポラリリストアの結果に満足した場合、td17において、コンプリートリストアの実行が指示される。コンプリートリストアの実行が指示されることにより、正ボリューム230Pの記憶内容は、復元点td13における記憶内容に確定される。記憶制御装置10は、確定された復元点td13以降に蓄積された連続するジャーナルデータJDを全て破棄する。即ち、図示の例では、td13からtd10までの期間内のジャーナルデータJDが全て破棄される。
記憶制御装置10は、現在時刻td17から目標保護期間TPTだけ前の時刻td16以前に蓄積されたジャーナルデータJDは、順番に基底ボリューム230Bに書き込まれて破棄される。即ち、目標保護期間TPTを外れた範囲(td16−td10の範囲)のジャーナルデータJDは、格上げ処理された後で破棄される。
コンプリートリストアの完了後に通常運用が開始される。通常運用では、td15以降に発行されるライト要求に関するジャーナルデータJDがジャーナルボリューム230Jに蓄積されていく。その一方、目標保護期間TPTを過ぎたジャーナルデータJD(td18−td16)は、順番に基底ボリューム230Bに書き込まれて破棄される。
ここで注目すべき点は、コンプリートリストアの実行によって、CDPによる保護期間PTが2つに分断されるという点である。保護期間PTは、より古い期間である第1期間(td16−td13)と、より新しい期間である第2期間(td15−td17)とに分割される。
コンプリートリストアの実行後に、復元点td13以前のジャーナルデータJD(td16−td13の範囲のジャーナルデータJD)を、直ちに基底ボリューム230Bに書き込んで破棄するという構成も可能である。つまり、第1期間(td16−td13)内のジャーナルデータJDについて直ちに格上げ処理を実施し、基底点をtd16からtd13に進めることも可能である。
しかし、本実施例のように、コンプリートリストアの復元点td13以前のジャーナルデータJDを保持しておくことにより、ユーザは、コンプリートリストアの実行後においても、td13以前の時刻へのリカバリを指示することができ、ユーザの使い勝手が向上する。
複数の正ボリューム230PがCDPグループとしてグループ化されている場合、2つの方法のいずれかでリカバリさせることができる。第1方法は、グループ単位でリストア制御を実施する方法である。第1方法では、CDPグループ内の全ての正ボリューム230Pについて、各保護期間PTがそれぞれ一致するように、同期して制御する。
第1方法では、CDPグループ内の全ての正ボリューム230Pは、同一時刻の記憶内容に復元され、かつ、ジャーナルデータJDの格上げ処理の停止及び再開も同時に実施される。第1方法の場合、CDPグループ内の全ての正ボリューム230Pの保護期間PTは、図13で説明したように遷移する。
第2方法は、ボリューム単位でリストア制御を実施する方法である。第2方法では、CDPグループ内の各正ボリューム230Pは、それぞれ個別にテンポラリリストア及びコンプリートリストアを行うことができる。なお、CDPグループ内の複数の正ボリューム230Pについて、ボリューム単位のリストア制御を行うこともできる。
ところで、CDPグループ内のある正ボリューム230Pについて、テンポラリリストアを行う場合、コンプリートリストアについて説明したのと同様に、リカバリ処理中のジャーナルデータJDを破棄することはできない。従って、そのジャーナルデータJDは、無効化される。
第2方法の場合、CDPグループ内の一方の正ボリューム230Pについて図13に示すようなリストアが実施された場合、同一CDPグループ内の他方の正ボリューム230Pについては、図14に示す制御が実施される。ここでは、説明の便宜上、一方の正ボリューム230P及び基底ボリューム230Bには(1)を添え、他方の正ボリューム230P及び基底ボリューム230Bには(2)を添える。
図13で述べたように、一方の正ボリューム230P(1)についてテンポラリリストアの実行が指示されると、一方の基底ボリューム230B(1)へのジャーナルデータJDの書込みは停止され、一方の基底点は一時的に固定される。これと同時に、他方の基底ボリューム230B(2)へのジャーナルデータJDの書込みも停止され、他方の基底点も一時的に固定される。
その後、一方の正ボリューム230P(1)のコンプリートリストアが完了すると、一方の基底点の進行が再開される。これと同時に、他方の基底ボリューム230B(2)の基底点についても進行が再開される。
ここで、正ボリューム230Pに物理的な障害が発生した場合の処理を説明する。この場合、まず最初に、故障したディスクドライブ210を正常なディスクドライブ210と交換する。そして、ディスクドライブ交換後の1回目のテンポラリリストアでは、基底ボリューム230Bから正ボリューム230Pに全データをコピーし、さらに、ジャーナルデータJDを正ボリューム230Pに書き込む。2回目のテンポラリリストアからは、上述の通り、複数の区間差分ビットマップBM20をマージして差分コピー用の差分ビットマップBM10を生成し、この差分ビットマップBM10を用いて差分コピーを行うことにより、テンポラリリストアを実行する。
なお、正ボリューム230Pとは別のボリュームにリストアすることもできる。例えば、1回目のテンポラリリストアでは、基底ボリューム230Bの全データを別ボリュームにコピーした後、ジャーナルデータJDを別ボリュームに書き込む。2回目のテンポラリリストアでは、上述した通り、区間差分ビットマップBM20をマージして得られる差分コピー用の差分ビットマップBM10を用いて差分コピーを行うことにより、テンポラリリストアを実行する。
それぞれ保護期間の異なる複数の正ボリューム230PからCDPグループが構成されている場合、幾つかの方法でリストアを管理することができる。例えば、第1の方法では、CDPグループ内の各正ボリューム230Pの保護期間が重なっている時点のみ、復元可能とする。第2の方法では、指定された復元点が保護期間に含まれている正ボリューム230Pのみ、復元させる。第3の方法では、指定された復元点が保護期間に含まれている正ボリューム230Pのみ、その指定された復元点に復元し、指定された復元点が保護期間に含まれていない他の正ボリューム230Pについては、それぞれの保護期間内で最も指定された復元点に近い時点に復元させる。
ここで、CDPグループ内の一部の正ボリューム230Pについて、CDPを停止したり、CDPを再開したりする場合について説明する。CDPグループ内のボリューム単位でCDPを停止させる場合、停止対象の正ボリューム230Pに関するジャーナルデータJDの取得のみを停止させる。CDPグループ内のボリューム単位でCDPを再開させる場合、再開対象の正ボリューム230Pに関して過去に取得されたジャーナルデータJDのみを無効化し、さらに、差分コピー等を行う。CDPグループ内のボリューム単位でCDPを削除する場合、削除対象の正ボリューム230Pに関するジャーナルデータJDのみを無効化する。なお、ジャーナルデータJDを破棄可能な場合、そのジャーナルデータJDを無効化せずに破棄することもできる。
図15は、CDPを停止させた後でCDPを再開させる場合の、保護期間PTの変化を示す説明図である。時刻td21において、CDPの停止が指示されると、新規のジャーナルデータJDの生成は停止される。
CDP停止の指示が発行された時点で、目標保護期間TPTから外れた古いジャーナルデータJD(td22−td20の期間内のジャーナルデータ)は、基底ボリューム230Bに書き込む必要はない。つまり、ジャーナルデータの取得停止とジャーナルデータの格上げ停止とは、同時に実行する必要はない。
CDP停止中は、ジャーナルデータJDを基底ボリューム230Bに書き込む処理は、停止される。そして、時刻td25において、CDP再開が指示されると、ジャーナルボリューム230Jに蓄積されていたジャーナルデータは全て破棄される。同時に、時刻td25以降に生じる新たなジャーナルデータJDの蓄積が開始される。
時刻td26において、CDPを再開させるための、基底ボリューム230Bから正ボリューム230Pへの形成コピーが完了し、通常運用状態に移行する。以後、ジャーナルボリューム230Jには、目標保護期間TPT分のジャーナルデータJDが次第に蓄積されていく。
なお、CDPグループ内の一部の正ボリューム230Pについてのみ、CDPの停止、CDPの再開及びCDPの削除を行うことができる。
図16は、ジャーナルボリューム230Jが満杯状態となるのを抑制するための、連続格上げ処理の様子を示す説明図である。連続格上げ処理とは、目標保護期間TPTから外れたジャーナルデータJDに加えて、目標保護期間TPT内のジャーナルデータJDも基底ボリューム230Bに書込んで破棄させる処理である。連続格上げ処理は、ジャーナルボリューム230Jの使用率UJが連続格上げ処理の開始閾値Th1に達した場合(UJ=Th1)に開始される。
図16の最上段に示すように、通常運用状態において、ジャーナルボリューム230Jには、時刻td30から最新時刻td31までに発行されたライト要求に関するジャーナルデータJDが保存されている。即ち、目標保護期間TPTは、td30からtd31までの期間である。
次の段に示すように、ジャーナルボリューム230Jの使用率UJが開始閾値Th1に達したと仮定する。目標保護期間TPTを外れた範囲のジャーナルデータJD(td32−td30)は、通常通り、基底ボリューム230Bに書き込まれて破棄される。
さらに次の段に示すように、連続格上げ処理が開始されると、目標保護期間TPTから外れたジャーナルデータJD及び目標保護期間TPT内のジャーナルデータJDの一部が、それぞれ基底ボリューム230Bに書き込まれて破棄される。図16では、時刻td16までのジャーナルデータJDが基底ボリューム230Bに書き込まれて破棄される様子が示されている。
連続格上げ処理を開始することにより、ジャーナルボリューム230Jが満杯になる時期を遅らせることができる。しかし、例えば、ホスト20が正ボリューム230Pを短時間で多量に更新したような場合、ジャーナルボリューム230JはジャーナルデータJDで満杯となる。
ジャーナルボリューム230Jが満杯になった場合(UJ=100%)、次の段に示すように、連続格上げ処理は停止される。従って、目標保護期間TPTに含まれる時刻td34以降のジャーナルデータJDは、基底ボリューム230Bに書き込まれない。
ジャーナルボリューム230Jが満杯になると、CDPは停止される。その後、ユーザまたはアプリケーションプログラムからCDP再開が明示的に指示された場合、CDPが再開される。CDP停止及びCDP再開に関する保護期間PTの変化は、図15で述べたので省略する。
図17は、連続格上げ処理を実行した場合の、別の変化を示す説明図である。図16では、連続格上げ処理を実行することにより、目標保護期間TPT内のジャーナルデータJDを基底ボリューム230Bに書き込んで破棄することができた。
しかし、ホスト20による正ボリューム230Pの更新量(ライト要求の発行頻度)が多い場合、図17に示すように、連続格上げ処理を実施しても、目標保護期間TPT内のジャーナルデータJDを書き込むことができない可能性がある。この場合は、結果的に、目標保護期間TPTよりも実際の保護期間PTの方が長くなる。
図18は、流入制限処理を実行した場合の保護期間PTの変化を示す説明図である。流入制限処理とは、ホスト20による正ボリューム230Pへの書込みを制限させる処理である。流入制限処理は、ジャーナルボリューム230Jの使用率UJが流入制限処理の開始閾値Th2に達した場合(UJ=Th2)に開始される。
図18の上から2番目の段に示すように、使用率UJが閾値Th1に達すると(UJ=Th1)、まず最初に、上述の連続格上げ処理が開始される。これにより、次の段に示すように、目標保護期間TPT内の時刻td40までのジャーナルデータが基底ボリューム230Bに書き込まれて破棄される。しかし、ホスト20からの多量のライト要求発行が停止せず、使用率UJが閾値Th2に達すると(UJ=Th2)、流入制限処理が開始される。
次の段に示すように、流入制限処理が開始されると、ホスト20から発行されるライト要求の量(即ち、流入量)とジャーナルデータJDを基底ボリューム230Bに書き込んで破棄する処理(即ち、格上げ処理)の処理量とがバランスする点で、保護期間PTが定まる。
記憶制御装置10は、ホスト20から発行されるライト要求の量を抑制しつつ、ジャーナルボリューム230J内のジャーナルデータJDの格上げ処理を実行する。そして、使用率UJが連続格上げ処理を停止させるための閾値Th3まで低下すると(UJ=Th3)、連続格上げ処理は停止され、通常運用状態に移行する。通常運用状態に移行した直後は、目標保護期間TPTよりも実際の保護期間PTの方が短い(TPT>PT)。連続格上げ処理の実施によって、目標保護期間TPT内のジャーナルデータJDについても格上げ処理を行ったためである。以後、目標保護期間TPTと保護期間PTとが一致するまで、ジャーナルデータJDがジャーナルボリューム230Jに蓄積されていく。
なお、流入制限を行わず、連続格上げ処理のみを実行した場合でも、保護期間が図18に示すような変化を見せる場合がある。
図19〜図22のフローチャートに基づいて、記憶制御装置10の動作の一部を別の観点から説明する。以下の各フローチャートは、処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、いわゆる当業者であれば、フローチャート中のステップを別のステップに変更したり、削除等することができるであろう。
図19は、通常運用状態の処理を示すフローチャートである。記憶制御装置10は、ホスト20からライトデータを受領すると(S100:YES)、ライトデータを正ボリューム230Pに書込む(S101)。
記憶制御装置10は、受信したライトデータに関するジャーナルデータJDを生成し(S102)、このジャーナルデータJDをジャーナルボリューム230Jに記憶させる(S103)。一方、ホスト20からCPMが発行された場合(S100:NO,S104:YES)、記憶制御装置10は、CPMをジャーナルボリューム230Jに記憶させる(S105)。
記憶制御装置10は、ジャーナルボリューム230Jに記憶されている各ジャーナルデータJDに設定されている時刻情報と現在時刻とを比較することにより、目標保護期間TPTを過ぎたジャーナルデータJDが存在するか否か、つまり、目標保護期間TPTから外れたジャーナルデータJDが存在するか否かを判定する(S106)。
目標保護期間TPTから外れたジャーナルデータJDが存在する場合(S106:YES)、記憶制御装置10は、目標保護期間TPTから外れたジャーナルデータJDを基底ボリューム230Bに書込み、書き込んだ後で破棄する(S107)。
図20は、区間差分ビットマップBM20を切替ながら使用する処理を示すフローチャートである。記憶制御装置10は、ホスト20からライトデータを受領したか否かを判定する(S110)。つまり、記憶制御装置10は、ホスト20からライト要求が発行されたか否かを監視している(S110)。
ライトデータを受領した場合(S110:YES)、記憶制御装置10は、現在使用中の差分ビットマップBM20に、そのライトデータの書込み位置を記憶させる(S111)。即ち、記憶制御装置10は、そのライトデータによって更新される論理トラックに対応する差分ビットに「1」を設定する。
記憶制御装置10は、差分ビットマップBM20を切り替える時期が到来したか否かを判定する(S112)。例えば、区間を所定時間として定義している場合、記憶制御装置10は、所定時間が経過したか否かを判定する。これに代えて、例えば、ジャーナルボリューム230Jの使用率UJで区間を定義している場合、記憶制御装置10は、所定の使用率に達したか否かを判定する。
切替時期が到来したと判定された場合(S112:YES)、記憶制御装置10は、次の差分ビットマップBM20に切り替えて、ホスト20による正ボリューム230Pの更新を管理する(S113)。
記憶制御装置10は、使用済の各差分ビットマップBM20について、その管理下にあるジャーナルデータJDが全て基底ボリューム230Bに書き込まれた差分ビットマップBM20が存在するか否かを判定する(S114)。つまり、記憶制御装置10は、使用済差分ビットマップBM20に対応付けられている全てのジャーナルデータJDについて格上げ処理が完了している使用済差分ビットマップBM20が存在するか否かを判定する(S114)。
対応する全てのジャーナルデータJDが基底ボリューム230Bに書き込まれて破棄されている、使用済の差分ビットマップBM20が検出された場合(S114:YES)、記憶制御装置10は、その使用済の差分ビットマップBM20の記憶内容を消去し(S115)、その差分ビットマップBM20を次の区間での差分管理に使用する。
図21は、リカバリ処理を示すフローチャートである。テンポラリリストアの実行に先立って、ホスト20から正ボリューム230Pへのアクセスが禁止される(S120)。このホストアクセスの禁止は、ユーザまたはアプリケーションプログラムによって実行させることができる。
記憶制御装置10は、目標保護期間TPTを外れたジャーナルデータJDを基底ボリューム230Bに書き込んでから破棄する処理(格上げ処理)を停止する(S121)。これにより、基底ボリューム230Bの示す基底点は固定され、進行を停止する。
記憶制御装置10は、選択可能な保護期間PT及び設定済のCPMについて、ホスト20に通知する(S122)。ホスト20は、この通知された情報に基づいて、テンポラリリストアさせる復元点を選択する。
記憶制御装置10は、各区間差分ビットマップBM20をマージして、差分コピー用の差分ビットマップBM10を生成する(S123)。即ち、記憶制御装置10は、各区間差分ビットマップBM20の論理和を求めることにより、差分コピー用の差分ビットマップBM10を生成する。記憶制御装置10は、この差分ビットマップBM10を用いて、基底ボリューム230Bと正ボリューム230Pとの間の差分データのみを、基底ボリューム230Bから正ボリューム230Pにコピーさせる(S124)。これにより、正ボリューム230Pの記憶内容は、基底ボリューム230Bの記憶内容に一致する。
記憶制御装置10は、ジャーナルボリューム230Jに記憶されている各ジャーナルデータJDのうち、最古のジャーナルデータから指定された復元点のジャーナルデータまでを順番に読み出して、正ボリューム230Pに書き込む(S125)。
記憶制御装置10は、差分コピー用の差分ビットマップBM10からリカバリ中差分ビットマップBM30に切り替える(S126)。ホスト20による正ボリューム230Pへのアクセス禁止が解除されると、ホスト20による正ボリューム230Pの更新位置を差分ビットマップBM30で管理する。また、記憶制御装置10は、ホスト20から発行されたライト要求に関するジャーナルデータJDを生成し、ジャーナルボリューム230Jに記憶させる(S127)。
再度のテンポラリリストアの実行が指示された場合(S128:YES)、記憶制御装置10は、最初のリカバリ後に蓄積されたジャーナルデータJDを破棄する(S129)。そして、記憶制御装置10は、各区間差分ビットマップBM20及びリカバリ中差分ビットマップBM30をマージして、差分コピー用の差分ビットマップBM10を改めて生成する(S130)。ユーザまたはアプリケーションプログラムは、テンポラリリストアによって復元された記憶内容に満足するまで、S124〜S130のステップを繰り返し実行させることができる。
テンポラリリストアによってリカバリされた記憶内容をユーザまたはアプリケーションプログラムが承認し、コンプリートリストアの実行が指示された場合(S128:NO,S131:YES)、記憶制御装置10は、確定された復元点から「I/O停止点」までのジャーナルデータJDを無効化または破棄する(S132)。「I/O停止点」までのジャーナルデータJDとは、S120で停止されるホスト20からのライト要求について生成されたジャーナルデータJDである。
記憶制御装置10は、S126で使用を開始したリカバリ中差分ビットマップBM30を区間差分ビットマップBM20として使用する(S133)。そして、記憶制御装置10は、S132で無効化または破棄されたジャーナルデータJDに対応付けられている区間差分ビットマップBM20を破棄する(S134)。なお、S134等では、便宜上、「破棄する」ものとして述べるが、区間差分ビットマップBM20の記憶内容を消去する行為も含む。つまり、S134では、不要となった各区間差分ビットマップBM20を破棄し、再利用に備える。記憶制御装置10は、無効化または破棄されたジャーナルデータJDの範囲内に含まれるCPMを破棄する(S135)。
記憶制御装置10は、ジャーナルデータJDの格上げ処理を再開し(S136)、通常運用状態へ移行する(S137)。
図22は、ジャーナルボリューム230Jの使用率を管理する処理を示すフローチャートである。記憶制御装置10は、ジャーナルボリューム230Jの使用率UJを取得し(S140)、使用率UJが連続格上げ処理の開始閾値Th1に達したか否かを判定する(S141)。使用率UJが開始閾値Th1に達した場合(S141:YES)、記憶制御装置10は、上述の連続格上げ処理を実行する(S142)。
記憶制御装置10は、使用率UJが流入制限処理の開始閾値Th2に達したか否かを判定する(S143)。使用率UJが流入制限処理の開始閾値Th2に達した場合(S143:YES)、流入制限処理の実行についてユーザまたはアプリケーションプログラムの許可を得られているか否かが判定される(S144)。流入制限処理を行うと、アプリケーションプログラムの処理時間が長くなる。従って、ユーザまたはアプリケーションプログラムによる事前の許可を得てから流入制限処理を開始するのが好ましい。
流入制限処理の開始について許可を得た場合(S144:YES)、記憶制御装置10は、ホスト20から正ボリューム230Pに書き込まれるライトデータの量を制限し、ジャーナルデータJDの生成量を抑制する(S145)。正ボリューム230Pに流入するライトデータの量を制限する方法としては、例えば、ホスト20から発行されたライト要求に対する応答を遅延させる方法が挙げられる。
記憶制御装置10は、使用率UJが連続格上げ処理を停止させるための閾値Th3に達したか否かを判定する(S146)。使用率UJが停止閾値Th3に達したと判定された場合(S146:YES)、記憶制御装置10は、連続格上げ処理を停止し(S147)、S140に戻る。
使用率UJが停止閾値Th3に達していないと判定された場合(S146:NO)、記憶制御装置10は、使用率UJが100%に達したか否かを判定する(S148)。使用率UJが100%に達していない場合(S148:NO)、S140に戻る。使用率UJが100%に達した場合(S148:YES)、記憶制御装置10は、CDPを停止させる(S149)。
図23は、CDP機能を設定するための画面例を示す説明図である。CDP設定画面は、例えば、ホスト20や管理サーバ30の端末画面に表示させることができる。CDP設定画面には、例えば、CDPグループ指定部G11と、正ボリューム指定部G12と、基底ボリュームG13と、ジャーナルボリューム指定部G14と、目標保護期間指定部G15と、流入制限指定部G16と、確定ボタンB11及び取消ボタンB12とを含めることができる。
なお、図23に示す要素以外に、例えば、ジャーナルボリューム230Jを登録するための指定部、ジャーナルボリューム230Jを削除するための指定部、CDPグループ単位で一括してテンポラリリストアまたはコンプリートリストアを実行させるための指定部、ボリューム単位でテンポラリリストアまたはコンプリートリストアを実行させるための指定部、テンポラリリストアを取り消すための指定部、テンポラリリストアを介さずに直接コンプリートリストアを実行させるための指定部、CPMを設定するための指定部等を設けることができる。なお、ここでは、GUI(Graphical User Interface)を用いる場合を説明するが、コマンドラインによって各種指示を与えることもできる。
ジャーナルボリューム登録操作の例を説明する。ユーザは、CDPグループを指定し、指定したボリュームをジャーナルボリュームとして追加登録することができる。
ジャーナルボリューム削除操作の例を説明する。ユーザがCDPグループを指定すると、そのCDPグループ内のジャーナルボリュームの一覧が表示される。ユーザによって指定されたジャーナルボリュームは、そのCDPグループから外される。
CDPグループ内の複数の正ボリュームによってジャーナルボリュームを共用している場合、ジャーナルデータの破棄は、CDPグループ単位でしか行うことができない。従って、「目標保護期間」は、CDPグループの属性となる。
CDPグループ指定部G11は、CDPグループを指定するためのものである。正ボリューム指定部G12は、CDPによる保護対象となる正ボリューム230Pを指定するためのものである。基底ボリューム指定部G13は、基底ボリューム230Bを指定するためのものである。ジャーナルボリューム指定部G14は、G12で指定された正ボリューム230Pに関するジャーナルデータJDを格納するための、ジャーナルボリューム230Jを指定するためのものである。目標保護期間指定部G15は、目標保護期間TPTの値を指定するためのものである。流入制限指定部G16は、流入制限処理の可否、流入制限を許可する場合の開始閾値Th2の値をそれぞれ指定するためのものである。
なお、既存のCDPグループを指定して、CDPによる保護対象となる正ボリューム230Pを新たに設定する場合は、ジャーナルボリューム230Jを改めて指定する必要はない。CDPグループを設定するときに、ジャーナルボリューム230Jを指定済だからである。
図24は、リカバリ設定を行うための画面例を示す説明図である。このリカバリ設定画面には、CDP設定画面と同様に、例えば、ホスト20や管理サーバ30の端末画面に表示される。
リカバリ設定画面には、例えば、CDPグループ指定部G21と、正ボリューム指定部G22と、復元可能点表示部G23と、復元点指定部G24と、ボタンB21〜B23とを含めることができる。なお、これら以外に、グループ単位でリカバリするか、ボリューム単位でリカバリするか等を指定するための指定部を備えることもできる。
CDPグループ指定部G21は、リカバリ対象の正ボリューム230Pが含まれているCDPグループを指定するものである。正ボリューム指定部G22は、リカバリ対象の正ボリューム230Pを指定するためのものである。復元可能点表示部G23は、復元可能な期間やCPMを表示させるものである。この表示部G23には、ジャーナルデータJDで保護されている一つまたは複数の期間やCPMが表示される。復元点指定部G24は、リカバリ可能な期間またはCPMから選択される復元点を指定するものである。なお、ボタンB21は、テンポラリリストアの実行を指示するものである。ボタンB22は、コンプリートリストアの実行を指示するものである。
本実施例は、上述のように構成されるため、以下の効果を奏する。本実施例では、通常運用時には、目標保護期間TPTを経過したジャーナルデータJDを基底ボリューム230Bに書き込むことにより、基底ボリューム230Bの記憶内容を正ボリューム230Pから目標保護期間だけ遅れた記憶内容として、遷移させることができる。
従って、本実施例では、リストア可能な期間の始点である基底点を、現在時刻から一定時間だけ遅らせて追従させることができる。そして、基底ボリューム230Bに書き込まれたジャーナルデータJDは破棄されるため、ジャーナルボリューム230JがジャーナルデータJDで満杯になる可能性を低減することができる。
本実施例では、予め設定される複数の区間毎にそれぞれ別々の差分ビットマップBM20を割り当てて、正ボリューム230Pと基底ボリューム230Bとの間の差分を各区間毎に管理する。従って、差分ビットマップBM20に対応付けられる全てのジャーナルデータJDが基底ボリューム230Bに書き込まれた後で、その差分ビットマップBM20の記憶内容を消去して、再利用できる。これにより、不要な差分ビットマップBM20が記憶制御装置10のメモリ領域に記憶されたままになるのを防止し、記憶制御装置10のメモリ領域を効率的に使用できる。
さらに、本実施例では、各区間差分ビットマップBM20をマージして差分コピー用の差分ビットマップBM10を生成し、リストア時には、基底ボリューム230Bから正ボリューム230Pに差分コピーする構成である。これにより、基底ボリューム230Bから正ボリューム230Pにコピーするデータ量を少なくすることができ、リカバリ時間を短縮することができる。
本実施例では、ユーザは、複数回のリカバリを実行させることができるため、使い勝手が向上する。さらに、本実施例では、リカバリが複数回実施された場合でも、後日利用可能なジャーナルデータJDを破棄せずに残しておくため、ユーザの選択可能な復元点の範囲を広げることができ、より一層使い勝手が向上する。
図25に基づいて本発明の第2実施例を説明する。本実施例を含む下記の各実施例は、前記第1実施例の変形例に該当する。図25は、本実施例による記憶制御装置10により実行される、ライト処理を示すフローチャートである。本実施例では、正ボリューム230Pへのライトデータの書込と、差分ビットの設定及びジャーナルデータの作成とを、同期させる。
記憶制御装置10は、ホスト20からライトコマンドを受領すると(S200)、そのライトコマンドで書込みの要求されたボリュームが、CDPによる保護対象のボリュームであるか否かを判定する(S201)。CDPによる保護対象ボリュームについてのライトコマンドではない場合(S201:NO)、記憶制御装置10は、通常の書込み処理を行う(S202)。
S200で受領したライトコマンドがCDPによる保護対象ボリュームへの書込みを要求するものである場合(S201:YES)、記憶制御装置10は、書込み対象のボリュームに関する状態を取得する(S203)。記憶制御装置10は、書込み対象のボリュームの状態が「ライト禁止」であるか否かを判定する(S204)。ライト禁止とは、そのボリュームへの書込みが禁止されている状態であることを意味する。書込み対象のボリュームがライト禁止状態の場合(S204:YES)、記憶制御装置10は、ホスト20にエラー応答を送信する(S215)。
書込み対象ボリュームがライト禁止状態ではない場合(S204:NO)、記憶制御装置10は、差分ビットマップBM20の切替時期が到来したか否かを判定する(S205)。切替時期が到来した場合(S205:YES)、記憶制御装置10は、差分ビットマップBM20を別の差分ビットマップBM20に切り替え、ジャーナルデータ量の値を0にリセットする(S206)。差分ビットマップBM20の切替時期ではない場合(S205:NO)、S206はスキップされてS207に移る。
記憶制御装置10は、S200で受領したライトコマンドで要求された書込み位置に対応する差分ビットを、オンに設定する(S207)。次に、記憶制御装置10は、ジャーナルデータを取得するか否かを判定し(S208)、ジャーナルデータを取得すると判定した場合(S208:YES)、流入制限を実行するか否かを判定する(S209)。流入制限を行う場合(S209:YES)、記憶制御装置10は、予め設定された所定時間だけ待機する(S210)。
所定時間待機した後、記憶制御装置10は、現在時刻及びシーケンス番号(Seq#)を取得し、ジャーナル管理情報及びジャーナルデータをそれぞれ作成し、これらジャーナル管理情報及びジャーナルデータをジャーナルボリュームに記憶させる(S211)。なお、流入制限を行わない場合(S209:NO)、記憶制御装置10は、S210をスキップしてS211を実行する。
記憶制御装置10は、ジャーナルボリュームに蓄積されたジャーナルデータ量を更新する(S212)。なお、記憶制御装置10は、差分ビットマップBM20を切り替る場合、差分ビットマップBM20を別の差分ビットマップBM20に切り替えた後で、ジャーナルデータ量を更新する。
記憶制御装置10は、ホスト20から受領したライトデータを正ボリューム230Pに書込み(S213)、ホスト20にライトコマンドの処理が完了した旨を報告する(S214)。なお、書込み対象のボリュームの状態が「ライト禁止」である場合(S204:YES)、記憶制御装置10は、ホスト20にエラーである旨を応答する(S215)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図26に基づいて本発明の第3実施例を説明する。本実施例では、正ボリューム230Pへのライトデータの書込とは、非同期で、ジャーナルデータを作成する。図26は、本実施例によるライト処理等のフローチャートである。以下の各フローチャートでも同様であるが、既に述べたステップと同様のステップについては説明を省略し、特徴的なステップを中心に説明する。
記憶制御装置10は、流入制限を実行するか否かを判断した後で(S209,S210)、ライトデータが書き込まれる領域について、未作成のジャーナルデータが存在するか否かを判定する(S220)。即ち、本実施例では、ライトデータの処理とジャーナルデータの処理とを非同期で実行するため、S220では、以前のライトデータに関するジャーナルデータを作成しているか否かを判定する。このため、本実施例では、正ボリューム230Pの更新位置を管理する差分ビットマップのような、ジャーナルデータが作成されているか否かを管理するためのジャーナルデータ作成管理用ビットマップを有する。以前に受領したライトデータに関するジャーナルデータが未だ作成されていない領域には、未作成ビットがオン状態にセットされる。
今回受領したライトデータが書き込まれる領域に関して、未作成のジャーナルデータが存在する場合(S220:YES)、記憶制御装置10は、未作成のジャーナルデータを作成し、未作成ビットをオフにする(S221)。
記憶制御装置10は、前記S221と同様に、ジャーナル管理情報及びジャーナルデータを作成して、ジャーナルボリュームに書込み(S222)、今回受領したライトデータに関するジャーナルデータについて、未作成ビットをオンに設定する(S223)。S220で「NO」と判定された場合、S221をスキップしてS222に移る。
記憶制御装置10は、ライト処理とはタイミングにおいて、未作成のジャーナルデータに関するジャーナル管理情報を取得し(S224)、ジャーナルデータを作成してジャーナルボリュームに記憶させる(S225)。記憶制御装置10は、未作成ビットをオフに設定する(S225)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
本実施例では、ライト処理とは別のタイミングでジャーナルデータを作成するため、第2実施例に比べて、ライトコマンドの処理に要する時間を短縮することができ、ホストへの応答時間を短くすることができる。
図27に基づいて本発明の第4実施例を説明する。本実施例では、ライトデータの書込み処理とは非同期で、差分ビットマップBM20に差分ビットを設定する。図27は、本実施例によるライト処理等を示すフローチャートである。
記憶制御装置10は、ライトデータを受領した後、そのライトデータに関するジャーナルデータ管理情報及びジャーナルデータを作成し、ジャーナルボリュームに書き込む(S230)。記憶制御装置10は、ジャーナルデータ量を更新する(S231)。
ライト処理とは別のタイミングにおいて、記憶制御装置10は、ジャーナル管理情報を取得し(S232)、差分ビットマップBM20の切替タイミングが到来したか否かを判定する(S233)。切替タイミングが到来した場合(S233:YES)、記憶制御装置10は、現在使用中の差分ビットマップBM20を別の差分ビットマップBM20に切り替え、ジャーナルデータ量を消去する(S234)。即ち、記憶制御装置10は、ジャーナルデータ量を「0」に戻す(S234)。
記憶制御装置10は、S232で取得したジャーナルデータ管理情報に対応するライトデータについて、差分ビットをオンに設定する(S235)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。また、本実施例では、差分ビットマップの更新をライト処理とは別のタイミングで非同期に行うため、前記第2実施例に比較して、ライトコマンドの処理時間を短縮することができ、ライトコマンドの処理完了をホストに速やかに通知することができる。
図28に基づいて本発明の第5実施例を説明する。本実施例では、目標保護期間よりも古いジャーナルデータを、基底ボリューム230Bに書き込む。図28は、本実施例による格上げ処理のフローチャートである。
記憶制御装置10は、ジャーナルデータ管理情報を取得し(S240)、連続格上げを行うか否かを判定する(S241)。連続格上げを行わない場合(S241:NO)、記憶制御装置10は、現在時刻を取得し(S242)、S240で取得したジャーナル管理情報が目標保護期間を経過した古い情報であるか否かを判定する(S243)。
目標保護期間より古い場合(S243:YES)、ジャーナル管理情報に対応するジャーナルデータを基底ボリューム230Bに書き込む(S244)。記憶制御装置10は、格上げ済のジャーナルデータを特定するためのシーケンス番号及びジャーナルデータ量をそれぞれ更新する(S245)。
連続格上げを行う場合(S241:YES)、記憶制御装置10は、S242及びS243をスキップして、S244に移る。目標保護期間よりも古いジャーナル管理情報ではない場合(S243:NO)、記憶制御装置10は、そのジャーナル管理情報が目標保護期間よりも古くなるまで待機する。
記憶制御装置10は、基底ボリューム230Bに格上げされた範囲のCPMを破棄し(S245)、差分ビットマップを0にリセットする(S246)。
記憶制御装置10は、ジャーナルデータ量が連続格上げ処理を停止させるための閾値以下になったか否かを判定する(S246)。ジャーナルデータ量、つまり、ジャーナルボリュームの使用率が停止閾値以下になった場合(S246:YES)、記憶制御装置10は、連続格上げ処理を停止させる(S247)。
記憶制御装置10は、未だ格上げされていないジャーナルデータが存在するか否かを判定する(S248)。格上げされていないジャーナルデータが存在する場合(S24:YES)、S240に戻る。S246で「NO」と判定された場合、S247をスキップしてS248に移る。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図29に基づいて本発明の第6実施例を説明する。本実施例では、ジャーナルデータ量(即ち、これはジャーナルボリュームの使用率でもある)に基づいて、格上げ処理を行うようになっている。
記憶制御装置10は、ジャーナルデータ量を取得し(S250)、現在のジャーナルデータ量が格上げ実行を判定するための閾値以上であるか否かを判定する(S251)。即ち、記憶制御装置10は、ジャーナルデータ量が閾値に達するまで、格上げ処理の実行を待つ(S251:NO,S250)。
ジャーナルデータ量が閾値に達した場合(S251:YES)、記憶制御装置10は、ジャーナル管理情報を取得する(S252)。記憶制御装置10は、基底ボリューム230Bにジャーナルデータを書込み、格上げ済のジャーナルデータを管理するためのシーケンス番号を更新する(S253)。さらに、記憶制御装置10は、格上げされたジャーナルデータを破棄し、ジャーナルデータ量を更新する(S253)。
記憶制御装置10は、基底ボリューム230Bに格上げされた範囲のCPMを破棄し、差分ビットマップを0にリセットする(S254)。記憶制御装置10は、未だ格上げされていないジャーナルデータが存在するか否かを判定し(S255)、格上げされていないジャーナルデータが存在する場合(S255:YES)、S250に戻る。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図30に基づいて本発明の第7実施例を説明する。本実施例では、正ボリューム230Pにライトデータが書き込まれる際に、その書込み対象の領域に記憶されている古いデータを基底ボリューム230Bにコピーさせる。図30は、本実施例によるライト処理を簡略化して示すフローチャートである。図30では、流入制限の制御や、差分ビットマップの切替等を省略している。本実施例では、新たなライトデータを正ボリューム230Pに書き込む前に、書込み対象領域に記憶されている古いデータを基底ボリューム230Bに書き込むことにより、その古いデータを基底ボリューム230Bに退避させる処理を「追い出しコピー」と呼ぶ場合がある。
記憶制御装置10は、ホスト20からライトコマンドを受領すると(S260)、書込み対象の領域について形成コピーが完了しているか否かを判定する(S261)。形成コピーが完了していない場合(S261:NO)、記憶制御装置10は、その書込み対象の領域に記憶されているデータを、正ボリューム230Pから基底ボリューム230Bにコピーし、さらに、形成コピーを管理するための差分ビットマップの差分ビットをオフに設定する(S262)。つまり、記憶制御装置10は、その書込み対象の領域について形成コピーが完了した旨を差分ビットマップに記録する。
記憶制御装置10は、シーケンス番号及びタイムスタンプを取得して(S263)、ジャーナル管理情報及びジャーナルデータを生成し、作成したジャーナル管理情報及びジャーナルデータをジャーナルボリュームに記憶させる(S263)。また、記憶制御装置10は、ジャーナルデータ量を更新する(S263)。
記憶制御装置10は、現在の区間を担当する差分ビットマップBM20において、S260で受領したライトコマンドに対応する領域の差分ビットをオンに設定し(S264)、ライトデータを正ボリューム230Pに書き込む(S265)。記憶制御装置10は、ホスト20にライトコマンドの処理が完了した旨を報告する(S266)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図31に基づいて本発明の第8実施例を説明する。本実施例では、「追い出しコピー」を行わずに形成コピーを行う。図31は、本実施例による形成コピー処理のフローチャートである。
記憶制御装置10は、形成コマンドを受領すると(S270)、形成コピーを制御するための差分ビットマップを生成する(S271)。記憶制御装置10は、形成コピーを開始するためのシーケンス番号を取得し(S272)、正ボリューム230Pから基底ボリューム230Bに差分データをコピーする(S273)。記憶制御装置10は、差分コピーの終了した領域について、S271で生成した差分ビットマップの差分ビットをオフに設定する(S274)。
記憶制御装置10は、形成コピーが完了したか否かを判定し(S275)、形成コピーが完了するまで(S275:NO)、S273及びS274を繰り返し実行する。形成コピーが完了すると(S275:YES)、記憶制御装置10は、形成コピーの終了位置を示すシーケンス番号を取得する(S276)。形成コピーの終了位置は、保護期間の開始位置を示す。記憶制御装置10は、形成コピー中の差分データを管理するための差分ビットマップから区間を管理するための差分ビットマップに切り替えて、本処理を終了する(S277)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図32に基づいて本発明の第9実施例を説明する。本実施例では、形成コピー中に発行されたライトコマンドを、「追い出しコピー」せずに処理する。図32には、形成コピーの実行中におけるライト処理のフローチャートである。
記憶制御装置10は、形成コピー中にホスト20からライトコマンドを受領すると(S280)、形成コピー済の領域への書込み要求であるか否かを判定する(S281)。形成コピーが完了している領域に関するライトコマンドである場合(S281:YES)、記憶制御装置10は、シーケンス番号及びタイムスタンプを取得し、ジャーナル管理情報及びジャーナルデータを生成し、生成したジャーナル管理情報及びジャーナルデータをジャーナルボリュームに記憶させる(S282)。また、記憶制御装置10は、ジャーナルデータ量を更新する(S282)。
記憶制御装置10は、形成中の更新位置を管理するための差分ビットマップにおいて、書込み対象領域に対応する差分ビットをオンに設定する(S283)。記憶制御装置10は、正ボリューム230Pにライトデータを書込み(S284)、ホスト20にライトコマンドの処理が完了した旨を報告する(S285)。
一方、形成コピーが終了していない領域への書込み要求の場合(S281:NO)、記憶制御装置10は、S282及びS283をスキップし、S284に移る。即ち、書込み対象領域に記憶されている古いデータを基底ボリューム230Bに退避させることなく、上書きするようになっている。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
図33に基づいて本発明の第10実施例を説明する。本実施例では、前記第9実施例による形成コピーが行われる場合において、テンポラリリストアを実行する。図33は、本実施例によるテンポラリリストア処理のフローチャートである。
記憶制御装置10は、格上げ処理を停止させる命令を受けて、基底ボリューム230Bへのジャーナルデータの書込みを停止させる(S290)。記憶制御装置10は、保護期間の表示を要求する命令を受けて、保護期間及びCPMを通知する(S291)。
記憶制御装置10は、テンポラリリストアを実行させる命令を受けて、正ボリューム230Pの状態を「ライト禁止」に設定し、これにより、ホスト20からのI/O受付を禁止する(S292)。
記憶制御装置10は、形成コピー中の差分を管理するビットマップと、各区間毎の差分を管理するビットマップとをマージすることにより、コピー用の差分ビットマップを生成する(S293)。記憶制御装置10は、コピー用の差分ビットマップを用いて、基底ボリューム230Bから正ボリューム230Pにデータをコピーする(S294)。記憶制御装置10は、形成コピー開始時のシーケンス番号から復元点のシーケンス番号までのジャーナルデータを、正ボリューム230Pに書き込む(S295)。このように構成される本実施例も前記第1実施例と同様の効果を奏する。
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、CDPの停止、CDPの再開、CDPの削除、テンポラリリストア及びコンプリートリストアの各処理は、CDPグループ単位で一括して行うこともできるし、ボリューム単位で行うこともできる。
また、ボリューム単位で各処理を行う場合、複数のボリュームについて同時に前記各処理を行わせることもできる。また、ユーザは、CPMや時刻によって復元点を指定することにより、テンポラリリストアを経由せずに、直接コンプリートリストアを実行させることもできる。また、テンポラリリストアやCDPの停止処理とは独立して、格上げ停止処理を行うこともできる。コンプリートリストアと独立して、格上げ処理を再開させることもできる。
本発明の実施形態の概略を示す説明図である。 本発明の実施例に係る記憶制御装置を含む情報処理システムの全体構成を示す説明図である。 記憶制御装置等のプログラム構成の概要を示す説明図である。 記憶制御装置の論理構成の概要を示す説明図である。 ジャーナルデータの構成の概要を示す説明図である。 区間毎に差分ビットマップを切り替えて差分を管理する様子を示す説明図である。 制御モードの遷移を示す説明図である。 初期状態からCDPを形成して運用状態に移行し、CDPを削除するまでの処理の流れを示す説明図である。 テンポラリリストア及びコンプリートリストアを行う場合の処理の流れを示す説明図である。 CDPをいったん停止させた後でCDPを再開させる場合の処理の流れを示す説明図である。 CDP停止中にテンポラリリストア及びコンプリートリストアを行う場合の処理の流れを示す説明図である。 通常運用状態における保護期間の変化を示す説明図である。 リカバリ時における保護期間の変化を示す説明図である。 ボリューム単位の制御を行う場合に、リカバリ対象のボリュームとは別のボリュームに関する保護期間の変化を示す説明図である。 CDPの停止後にCDPを再開させる場合の保護期間の変化を示す説明図である。 目標保護期間内のジャーナルデータも基底ボリュームに反映させる場合の保護期間の変化を示す説明図である。 図16と同様の説明図であって、ホストからのライトアクセスが大きい場合の保護期間の変化を示す説明図である。 ホストからのライトアクセスを制限する場合の保護期間の変化を示す説明図である。 通常運用状態の処理を示すフローチャートである。 区間差分ビットマップを切り替えて使用する処理を示すフローチャートである。 リカバリ処理を示すフローチャートである。 ジャーナルボリュームを管理する処理を示すフローチャートである。 CDP設定画面を示す説明図である。 リカバリ設定画面を示す説明図である。 本発明の第2実施例に係るライト処理のフローチャートである。 本発明の第3実施例に係るライト処理のフローチャートである。 本発明の第4実施例に係るライト処理のフローチャートである。 本発明の第5実施例に係る格上げ処理のフローチャートである。 本発明の第6実施例に係る格上げ処理のフローチャートである。 本発明の第7実施例に係るライト処理のフローチャートである。 本発明の第8実施例に係る形成コピー処理のフローチャートである。 本発明の第9実施例に係るライト処理のフローチャートである。 本発明の第10実施例に係るテンポラリリストア処理のフローチャートである。
符号の説明
1…記憶制御装置、2…ホスト、3…正ボリューム(保護対象ボリューム)、4…基底ボリューム、5…ジャーナルボリューム、5A…ジャーナルデータ、6,6A…区間差分ビットマップ、6B…差分コピー用の差分ビットマップ、10…記憶制御装置、20…ホスト、21…管理部、30…管理サーバ、31…管理部、40…外部記憶制御装置、41…コントローラ、42…HDU、100…コントローラ、110…チャネルアダプタ(CHA)、111…通信ポート、120…ディスクアダプタ(DKA)、130…キャッシュメモリ、140…共有メモリ、150…接続制御部、160…サービスプロセッサ(SVP)、200…HDU、210…ディスクドライブ、220…パリティグループ、230…ボリューム、230B…基底ボリューム、230J…ジャーナルボリューム、230P…正ボリューム、BM10…差分コピー用差分ビットマップ、BM20…区間差分ビットマップ、BM30…リカバリ中差分ビットマップ、BM40…リカバリ中差分ビットマップ、JD…ジャーナルデータ、PT…保護期間、TPT…目標保護期間

Claims (17)

  1. 上位装置により利用されるデータを記憶するための記憶制御装置であって、
    前記上位装置からのライトデータを記憶する第1ボリュームと、
    前記第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、
    前記第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、
    前記第1ボリュームと前記第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、
    前記第1ボリューム、前記第2ボリューム、前記第3ボリューム及び前記各第1差分ビットマップを制御するための制御部であって、
    (1)前記第1ボリュームの前記所定時点における記憶内容を前記第2ボリュームに記憶させるための形成コピー機能と、
    (2)前記上位装置からの前記ライト要求に基づいて前記ジャーナルデータを生成し、生成した前記ジャーナルデータを前記第3ボリュームに記憶させるジャーナル生成機能と、(3)前記所定時点以降に前記上位装置から発行される前記ライト要求によって前記第1ボリュームと前記第2ボリュームとの間に生じる差分の位置を、前記所定区間毎に選択される一つの前記第1差分ビットマップに記憶させる差分管理機能と、
    (4)前記第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを前記第2ボリュームに反映させる反映機能と、
    (5)前記第2ボリュームに反映された前記所定のジャーナルデータを破棄するジャーナル破棄機能と、
    (6)前記各第1差分ビットマップのうち、対応する全ての前記ジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用する再利用機能と、をそれぞれ実行する制御部と、
    を備える記憶制御装置。
  2. 前記制御部は、さらに、
    (7)第1リストアの実行が指示された場合は、
    (7−2)前記各第1差分ビットマップの記憶内容をマージして第2差分ビットマップを生成し、
    (7−3)この生成された第2差分ビットマップに基づいて前記第2ボリュームの記憶内容を前記第1ボリュームに差分コピーさせることにより、前記第1ボリュームの記憶内容を前記所定時点まで戻し、
    (7−4)前記第3ボリュームに記憶された前記各ジャーナルデータのうち、指定される第1復元点までのジャーナルデータを前記第1ボリュームに反映させることにより、前記第1ボリュームの記憶内容を前記第1復元点における記憶内容に復元させるための、第1リストア機能を実行する請求項に記載の記憶制御装置。
  3. 前記第1リストア機能(7)は、前記第1リストアの実行が指示された場合に、(7−1)前記上位装置から前記第1ボリュームへのライト要求を禁止し、かつ、前記反映機能(4)の作動を停止させた後で、前記(7−2)〜(7−4)をそれぞれ実行する請求項に記載の記憶制御装置。
  4. 前記第1リストア機能(7)は、前記(7−2)〜(7−4)をそれぞれ実行した後において、
    (7−5)前記上位装置から前記第1ボリュームへのライト要求の禁止を解除させることにより、前記ジャーナル生成機能(2)により生成される新たなジャーナルデータを前記第3ボリュームに記憶させ、
    (7−6)前記所定時点の記憶内容に復元された前記第1ボリュームと前記第2ボリュームとの間に生じる差分の位置を、第3差分ビットマップに記憶させる、請求項に記載の記憶制御装置。
  5. 前記第1リストア機能(7)は、前記(7−2)〜(7−6)をそれぞれ実行した後において、
    (7−7)前記第1復元点とは別の第1復元点を指定する第1リストアの実行が指示された場合には、前記新たなジャーナルデータを破棄させ、
    (7−8)前記各第1差分ビットマップ及び前記第3差分ビットマップの記憶内容をマージして別の第2差分ビットマップを生成し、
    (7−9)この生成された別の第2差分ビットマップに基づいて前記第2ボリュームの記憶内容を前記第1ボリュームにコピーさせることにより、前記第1ボリュームの記憶内容を前記所定時点まで戻し、
    (7−10)前記第3ボリュームに記憶された前記各ジャーナルデータのうち、前記別の第1復元点までのジャーナルデータを前記第1ボリュームに反映させることにより、前記第1ボリュームの記憶内容を前記別の第1復元点における記憶内容に復元させる、請求項に記載の記憶制御装置。
  6. 前記第1リストア機能(7)は、前記(7−8)において、前記第2差分ビットマップを生成した後で、前記第3差分ビットマップを消去させる、請求項に記載の記憶制御装置。
  7. 前記制御部は、さらに、
    (8)第2リストアの実行が指示された場合は、
    (8−1)前記第3ボリュームに記憶されている前記各ジャーナルデータのうち、指定される第2復元点以降の連続する全てのジャーナルデータを無効化し、
    (8−2)前記上位装置から前記第1ボリュームへのライト要求の禁止を解除し、かつ、前記反映機能(4)の作動を再開させるための、第2リストア機能を実行する請求項に記載の記憶制御装置。
  8. 前記制御部は、前記(7−1)〜(7−6)をそれぞれ実行した後で、(8)第2リストアの実行が指示された場合は、
    (8−1A)前記第3ボリュームに記憶されている前記各ジャーナルデータのうち、前記(7−5)において生成される前記新たなジャーナルデータはそのまま維持し、指定される第2復元点以降の連続する全てのジャーナルデータは無効化し、
    (8−2A)前記第3差分ビットマップを前記第1差分ビットマップとして利用するための、第2リストア機能を実行する請求項に記載の記憶制御装置。
  9. 前記第1復元点は、前記第3ボリュームに記憶されている前記各ジャーナルデータによって管理される期間内から選択される請求項に記載の記憶制御装置。
  10. 前記第1復元点または前記第2復元点は、前記第2リストアの実行前から前記第3ボリュームに記憶されており、かつ、前記第2リストアの実行後も前記第3ボリュームに記憶されている前記各ジャーナルデータによって管理される第1期間内、または、前記第2リストアの実行後から前記第3ボリュームに新たに記憶されるジャーナルデータによって管理される第2期間内のいずれかから選択可能である請求項に記載の記憶制御装置。
  11. 前記第3ボリュームの使用率が予め設定される第1閾値に達した場合、前記反映機能(4)は、前記目標保護期間を経過する前のジャーナルデータも前記第2ボリュームに反映し、かつ、前記ジャーナル破棄機能(5)は、前記第2ボリュームに反映された前記ジャーナルデータを破棄する、請求項に記載の記憶制御装置。
  12. 前記第3ボリュームの使用率が予め設定される第2閾値に達した場合、前記制御部は、前記上位装置から前記第1ボリュームへのライト要求の発行量を制限させる、請求項に記載の記憶制御装置。
  13. 上位装置により利用されるデータを記憶するための記憶制御装置を制御するための方法であって、
    前記記憶制御装置は、前記上位装置からのライトデータを記憶する第1ボリュームと、前記第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、前記第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、前記第1ボリュームと前記第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、前記第1ボリューム、前記第2ボリューム、前記第3ボリューム及び前記各第1差分ビットマップを制御するための制御部とを備えており、
    前記制御部は、
    (1S)前記第1ボリュームの前記所定時点における記憶内容を前記第2ボリュームに記憶させるステップと、
    (2S)前記上位装置からの前記ライト要求に基づいて前記ジャーナルデータを生成し、生成した前記ジャーナルデータを前記第3ボリュームに記憶させるステップと、
    (3S)前記所定時点以降に前記上位装置から発行される前記ライト要求によって前記第1ボリュームと前記第2ボリュームとの間に生じる差分の位置を、前記所定区間毎に選択される一つの前記第1差分ビットマップに記憶させるステップと、
    (4S)前記第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを前記第2ボリュームに反映させるステップと、
    (5S)前記所定のジャーナルデータを破棄するステップと、
    (6S)前記各第1差分ビットマップのうち、対応する全ての前記ジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用するステップと、
    を含む第1制御モードを実行する、記憶制御装置の制御方法。
  14. 前記制御部は、前記(6S)に続けて、
    (7S)第1復元点を指定して第1リストアの実行が指示された場合は、前記上位装置からのライト要求を禁止し、かつ、前記各第1差分ビットマップの記憶内容をマージして第2差分ビットマップを生成するステップと、
    (8S)生成された前記第2差分ビットマップに基づいて前記第2ボリュームの記憶内容を前記第1ボリュームにコピーさせることにより、前記第1ボリュームの記憶内容を前記所定時点まで戻すステップと、
    (9S)前記第3ボリュームに記憶された前記各ジャーナルデータのうち、前記第1復元点までのジャーナルデータを前記第1ボリュームに反映させることにより、前記第1ボリュームの記憶内容を前記第1復元点における記憶内容に復元させるステップと、
    (10S)前記ライト要求の禁止を解除するステップと、
    (11S)前記ライト要求の禁止が解除されることにより生成される新たなジャーナルデータを前記第3ボリュームに記憶させるステップと、
    (12S)前記所定時点の記憶内容に復元された前記第1ボリュームと前記第2ボリュームとの間に生じる差分の位置を、第3差分ビットマップに記憶させるステップと、
    (13S)前記第1復元点が第2復元点として確定された場合には、前記第3ボリュームに記憶されている前記各ジャーナルデータのうち、前記新たなジャーナルデータはそのまま維持し、前記確定された第2復元点以降の連続する全てのジャーナルデータを無効化させるステップと、
    (14S)前記第3差分ビットマップを前記第1差分ビットマップとして利用するステップと、
    (15S)前記目標保護期間を経過した前記所定のジャーナルデータを前記第2ボリュームに反映させるステップと、
    を含む第2制御モードを実行する、請求項13に記載の記憶制御装置の制御方法。
  15. 前記制御部は、前記第1制御モードの実行停止が指示された場合に、
    (16S)前記上位装置から前記第1ボリュームへのライト要求に基づく前記ジャーナルデータの生成を中止させるステップと、
    (17S)前記上位装置から前記第1ボリュームへのライト要求による差分の発生を第4差分ビットマップに記憶させるステップと、
    を含む第3制御モードを実行する、請求項14に記載の記憶制御装置の制御方法。
  16. 前記第3制御モードは、
    (18S)前記目標保護期間を経過した前記所定のジャーナルデータの、前記第2ボリュームへの反映を中止させるステップを、さらに含む請求項15に記載の記憶制御装置の制御方法。
  17. 上位装置からのライトデータを記憶する第1ボリュームと、
    前記第1ボリュームの所定時点における記憶内容がコピーされる第2ボリュームと、
    前記第1ボリュームを対象とするライト要求に基づいて生成されるジャーナルデータを記憶する第3ボリュームと、
    前記第1ボリュームと前記第2ボリュームとの間の記憶内容の差分が生じた位置を、予め定められる複数の所定区間毎にそれぞれ管理する複数の第1差分ビットマップと、
    前記第1ボリューム、前記第2ボリューム、前記第3ボリューム及び前記各第1差分ビットマップを制御するための制御部であって、
    (1)前記第1ボリュームの前記所定時点における記憶内容を前記第2ボリュームに記憶させるための形成コピー機能と、
    (2)前記上位装置からの前記ライト要求に基づいて前記ジャーナルデータを生成し、生成した前記ジャーナルデータを前記第3ボリュームに記憶させるジャーナル生成機能と、(3)前記所定時点以降に前記上位装置から発行される前記ライト要求によって前記第1ボリュームと前記第2ボリュームとの間に生じる差分の位置を、前記所定区間毎に選択される一つの前記第1差分ビットマップに記憶させる差分管理機能と、
    (4)前記第3ボリュームに記憶される各ジャーナルデータのうち、予め指定される目標保護期間を経過した所定のジャーナルデータを前記第2ボリュームに反映させる反映機能と、
    (5)前記第2ボリュームに反映された前記所定のジャーナルデータを破棄するジャーナル破棄機能と、
    (6)前記各第1差分ビットマップのうち、対応する全ての前記ジャーナルデータが破棄された所定の第1差分ビットマップの記憶内容を消去して、新たな第1差分ビットマップとして再利用する再利用機能と、をそれぞれ実行する制御部と、
    を備える情報処理システム。
JP2007126347A 2007-05-11 2007-05-11 記憶制御装置、記憶制御装置の制御方法及び情報処理システム Expired - Fee Related JP4972457B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007126347A JP4972457B2 (ja) 2007-05-11 2007-05-11 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
EP08250139A EP1990721A1 (en) 2007-05-11 2008-01-11 Storage controller, control method of the same, and information processing system
US12/013,631 US8046549B2 (en) 2007-05-11 2008-01-14 Storage controller, control method of the same, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007126347A JP4972457B2 (ja) 2007-05-11 2007-05-11 記憶制御装置、記憶制御装置の制御方法及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2008282241A JP2008282241A (ja) 2008-11-20
JP4972457B2 true JP4972457B2 (ja) 2012-07-11

Family

ID=39689429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007126347A Expired - Fee Related JP4972457B2 (ja) 2007-05-11 2007-05-11 記憶制御装置、記憶制御装置の制御方法及び情報処理システム

Country Status (3)

Country Link
US (1) US8046549B2 (ja)
EP (1) EP1990721A1 (ja)
JP (1) JP4972457B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5156518B2 (ja) * 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
US8250031B2 (en) * 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
TWI526823B (zh) * 2009-01-23 2016-03-21 普安科技股份有限公司 單一架構下進行資料卷複製的方法及其裝置
JP5251690B2 (ja) * 2009-04-02 2013-07-31 日本電気株式会社 遠隔コピーシステムおよび遠隔コピー方法
US10447474B2 (en) 2009-04-20 2019-10-15 Pure Storage, Inc. Dispersed data storage system data decoding and decryption
US9483656B2 (en) * 2009-04-20 2016-11-01 International Business Machines Corporation Efficient and secure data storage utilizing a dispersed data storage system
US8225146B2 (en) * 2009-09-01 2012-07-17 Lsi Corporation Method for implementing continuous data protection utilizing allocate-on-write snapshots
JP5998806B2 (ja) 2012-09-28 2016-09-28 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びコピー方法
CN104281500B (zh) * 2013-07-04 2017-12-26 北京中科同向信息技术有限公司 数据任意时刻恢复点(rpo)构建技术
JP6194784B2 (ja) * 2013-12-13 2017-09-13 富士通株式会社 ストレージ制御装置、制御方法および制御プログラム
US11169731B2 (en) * 2016-10-31 2021-11-09 International Business Machines Corporation Managing storage resources in a dispersed storage network
US10884884B2 (en) * 2017-03-23 2021-01-05 International Business Machines Corporation Reversal of the direction of replication in a remote copy environment by tracking changes associated with a plurality of point in time copies
JP7304215B2 (ja) 2019-06-18 2023-07-06 株式会社日立製作所 ストレージシステムおよび履歴情報管理方法
US11086853B1 (en) * 2020-10-12 2021-08-10 iodyne, LLC Method and system for streaming data from portable storage devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3785074B2 (ja) * 2001-10-05 2006-06-14 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7398422B2 (en) 2003-06-26 2008-07-08 Hitachi, Ltd. Method and apparatus for data recovery system using storage based journaling
US7111136B2 (en) * 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US7325159B2 (en) * 2004-02-04 2008-01-29 Network Appliance, Inc. Method and system for data recovery in a continuous data protection system
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP2006302015A (ja) * 2005-04-21 2006-11-02 Hitachi Ltd ストレージシステム及びデータ管理方法
JP2007066162A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd ストレージシステム及びストレージシステムの管理方法
JP2007126347A (ja) 2005-10-04 2007-05-24 Nippon Sheet Glass Co Ltd 複層ガラス
US7647466B1 (en) * 2006-09-28 2010-01-12 Emc Corporation Linear space allocation mechanisms in data space

Also Published As

Publication number Publication date
EP1990721A1 (en) 2008-11-12
EP1990721A8 (en) 2009-03-04
JP2008282241A (ja) 2008-11-20
US8046549B2 (en) 2011-10-25
US20080282049A1 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
JP4972457B2 (ja) 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
JP4900816B2 (ja) 記憶制御装置、記憶制御装置の制御方法
US8001344B2 (en) Storage control apparatus, storage control program, and storage control method
EP1818828B1 (en) Storage system and control method thereof
EP1959346B1 (en) Methods and apparatus for adjusting a journal area for continuous data protection
US8661215B2 (en) System and method of acquiring and copying snapshots
JP4387116B2 (ja) ストレージシステムの制御方法、及びストレージシステム
EP2161661B1 (en) Computer system and backup method therefor
US20070198604A1 (en) Computer system, computer system management console, and data recovery management method
JP2006215954A (ja) ストレージシステム及びストレージ装置のアーカイブ管理方法
CN106919471B (zh) 用于快照建立的方法和系统
JP2010079526A (ja) ジャーナルの階層を管理する計算機システム及び方法
WO2009145928A1 (en) Ranking and prioritizing point in time snapshots
JP4508798B2 (ja) ストレージリモートコピー方式
JP4804218B2 (ja) 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
JP2009146389A (ja) バックアップシステム及び方法
US20060221721A1 (en) Computer system, storage device and computer software and data migration method
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
US9563383B2 (en) Storage system with primary and secondary data storage groups and control method thereof
JP6579149B2 (ja) ストレージ制御装置、及びストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120409

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees