JP6064608B2 - ストレージ装置、バックアッププログラム、およびバックアップ方法 - Google Patents

ストレージ装置、バックアッププログラム、およびバックアップ方法 Download PDF

Info

Publication number
JP6064608B2
JP6064608B2 JP2013005850A JP2013005850A JP6064608B2 JP 6064608 B2 JP6064608 B2 JP 6064608B2 JP 2013005850 A JP2013005850 A JP 2013005850A JP 2013005850 A JP2013005850 A JP 2013005850A JP 6064608 B2 JP6064608 B2 JP 6064608B2
Authority
JP
Japan
Prior art keywords
backup
volume
generation
data
data block
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
JP2013005850A
Other languages
English (en)
Other versions
JP2014137711A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013005850A priority Critical patent/JP6064608B2/ja
Priority to US14/097,426 priority patent/US9152351B2/en
Publication of JP2014137711A publication Critical patent/JP2014137711A/ja
Application granted granted Critical
Publication of JP6064608B2 publication Critical patent/JP6064608B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/1448Management of the data involved in backup or backup restore
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

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

Description

本発明は、ストレージ装置、バックアッププログラム、およびバックアップ方法に関する。
ストレージ装置におけるソースボリューム(例えば業務ボリューム)をバックアップする手法の一つとして、OPC(One Point Copy)が知られている。OPCとは、バックアップ対象となるデータについて所定時点におけるデータであるスナップショットを作成するものである。OPCを実行するストレージ装置は、ユーザからOPC指示を受けると、当該OPC指示を受けた時点におけるソースボリュームの全データをコピーしスナップショット(バックアップデータ)として格納することにより、ソースボリュームのバックアップを行なう。
このようなOPCの拡張機能として、QOPC(Quick One Point Copy),SnapOPC(Snapshot One Point Copy),SnapOPC+などが知られている。
QOPCは、OPCによる全データの物理コピーを実施してバックアップボリュームを作成したあとに、ホスト装置からリスタート(restart)指示を受けると、当該リスタート指示を受けるまでの更新分データ(差分データ)のみをバックアップボリュームに反映する機能である。QOPCは、以下の2つの特徴(1), (2)を有する。
特徴(1):OPCによるコピー処理が完了したあと、コピー元ボリューム(ソースボリューム)に対する更新箇所を記憶しておき、リスタート依頼時(リスタート指示時)に、当該リスタート依頼時までに更新された箇所における更新データのみをバックアップボリュームにコピーする。そのため、QOPCでは、全データの物理コピーを行なったあとは、リスタートによる差分のみのコピーを行なえばよく、コピーデータ量の削減やコピーの高速化を実現することが可能になる。
特徴(2):セッションは、OPCによるコピー処理が完了したあとも自動的に消去されることはなく、ソフトウエアによって停止することで消去される。つまり、セッションが消去されてしまうと、リスタートを行なうことができなくなるので、セッションは簡単に消去することができないようになっている。
SnapOPCは、バックアップデータを作成する際、コピー元ボリュームのデータのうち、更新された部分のみをバックアップすることで、コピー先(バックアップ先)の物理領域を縮小化しコピーに要するコストの削減を実現するものである。
SnapOPCの拡張機能であるSnapOPC+は、バックアップボリュームを世代毎に作成し、ソースボリュームの全面コピーを行なわず、ソースボリュームの更新があった場合に、更新対象箇所の更新前のデータ(旧データ)を、対応する世代のバックアップボリュームにコピーする。つまり、SnapOPC+では、世代別バックアップボリュームであるSDV(Snap Data Volume)が世代毎(例えば曜日毎)に作成され、各SDVに対し各世代間の差分データのみがコピーされる。
例えば、SnapOPC+を実装するストレージ装置は、図10に示すように、コピー元であるソースボリューム100の世代別バックアップボリュームとして、月曜日,火曜日,水曜日のSDV201,202,203をそれぞれ月曜日,火曜日,水曜日に作成する。このとき、月曜日のSDV201には、月曜日に更新されたデータの更新前データのみが記憶され、火曜日のSDV202には、火曜日に更新されたデータの更新前データのみが記憶され、水曜日のSDV203には、水曜日に更新されたデータの更新前データのみが記憶される。
これにより、SnapOPC+による世代管理では、ソースボリューム100について少ない物理ボリューム容量で複数世代のバックアップを実現することができる。図10や図11に示す例では、物理ボリュームとして、ソースボリューム100と、各世代の差分データを保存する、ソースボリューム100よりも少容量のSDV201〜203とがそなえられる。そして、ストレージ装置は、ソースボリューム100と世代別のSDV201〜203とを組み合わせることで、各世代のバックアップボリューム(月曜日データ,火曜日データ,水曜日データ)を、論理ボリュームとしてホスト装置2に見せ、ホスト装置2にアクセスさせることができる。
特開2005−292865号公報 特開2004−341840号公報 特開2010−140065号公報
しかしながら、ソースボリューム100とストレージ装置に接続されるホスト装置2との間では、運用上、極めて頻繁に、I/O(Input/Output)のやり取り、つまり入出力要求および当該入出力要求に応じた入出力データのやり取りが行なわれる。このため、ソースボリューム100は、QOPCによって作成されるバックアップボリュームや、SnapOPC+によって作成される世代別のSDV201〜203と比べ、故障・損傷する可能性が高い。ソースボリューム100が故障すると、図12に示すように、SDV201〜203が故障していなくても、論理ボリュームとしての全世代のバックアップボリュームが失われてしまった状態となる。したがって、ホスト装置2からのI/Oが全てエラーとなり、システム運用に支障を来たす。
一つの側面で、本発明は、バックアップ対象のソースボリュームが故障しても全ての世代のバックアップボリュームを復元できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
本件のストレージ装置は、バックアップ対象となるソースボリュームを有し、第1バックアップ処理部,第2バックアップ処理部および制御部を備えている。第1バックアップ処理部は、前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて当該データブロック内のデータが更新されたか否かを示す更新情報を参照して、前記ソースボリュームで更新されたデータブロックを前記ソースボリュームから前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう。第2バックアップ処理部は、前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックに対応する更新前データブロックのデータを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう。制御部は、前記第2バックアップ処理部による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理部による前記差分コピー処理を実行させる。
一実施形態によれば、バックアップ対象のソースボリュームが故障しても全ての世代のバックアップボリュームを復元することができる。
本実施形態のストレージ装置のハードウエア構成を示すブロック図である。 本実施形態のストレージ装置の機能構成を示すブロック図である。 本実施形態のストレージ装置における物理ボリュームと、ホスト装置側から見える論理ボリュームとの関係を示す図である。 本実施形態のストレージ装置による、更新前データブロックの保存領域の自動割当処理および解放処理を説明する図である。 本実施形態のストレージ装置におけるスタート/リスタート要求時の処理(第1バックアップ処理)を説明するフローチャートである。 本実施形態のストレージ装置に対するホスト装置からの書込I/O要求時の処理(第2バックアップ処理)を説明するフローチャートである。 本実施形態のストレージ装置に対するホスト装置からの世代データ読出要求時の処理(復元処理)を説明するフローチャートである。 (A)〜(C)は本実施形態のストレージ装置によるバックアップ処理を具体的に説明する図である。 本実施形態のストレージ装置による世代データ読出処理(復元処理)を具体的に説明する図である。 SnapOPC+により世代別バックアップボリュームを作成する様子を示す図である。 SnapOPC+を実装するストレージ装置における物理ボリュームと、ホスト装置側から見える論理ボリューム(各世代のバックアップボリューム)との関係を示す図である。 SnapOPC+を実装するストレージ装置における課題を説明する図である。
以下、図面を参照して実施の形態を説明する。
〔1〕本実施形態の構成
〔1−1〕ストレージ装置のハードウエア構成
図1は、本実施形態のストレージ装置1のハードウエア構成を示すブロック図である。
図1に示すように、ストレージ装置1は、オペレータが使用する業務サーバ等のホスト装置(ホストコンピュータ)2に接続され、ホスト装置2からの各種要求を受け、当該要求に応じた各種処理を行なう。
ストレージ装置1は、4つのCA(Channel Adapter)11,2組のCM(Centralized Module)12および4つのディスク(Disk;HDD(Hard Disk Drive))13を同一筐体内にそなえて構成されている。なお、本実施形態のストレージ装置1では、記憶装置として、ディスク(HDD)13が用いられているが、SSD(Solid State Device)等の記憶装置が用いられてもよい。
各CA11は、ホスト装置2とのインタフェース制御を行ない、ホスト装置2との間でデータ通信を行なう。
各CM12は、2つのCA11,11と2つのディスク13,13との間に介装され、本ストレージ装置1における資源の管理を行なう。各CM12によって管理される資源は、例えば、CA11およびディスク13のほか、後述するメモリ22,DA23およびコピー制御部24などである。そして、各CM12は、ホスト装置2や他のCM12からの要求に応じ、2つのディスク13,13に対する各種処理(データ書込処理,データ更新処理,データ読出処理,データコピー処理など)を行なう。また、2組のCM12は、バスなどによって相互に接続され、他のCM12によって管理されるディスク13に対するアクセスが可能に構成されている。
各ディスク13は、ユーザデータや制御情報などを格納・記憶する。本実施形態のストレージ装置1では、一方のCM12によって管理される一のディスク13に、ホスト装置2からアクセスされるソースボリューム13aがバックアップ対象ボリュームとして割り当てられる。また、他方のCM12によって管理される一のディスク13のバックアップボリューム用領域13bに、ソースボリューム13aのデータについてのバックアップボリューム130(図2,図4参照)と複数世代のSDV131〜133(図2,図4参照)のデータとが格納される。
なお、ソースボリューム13aは、一のディスク13の全てのデータ領域であってもよいし、一のディスク13の一部のデータ領域であってもよい。同様に、バックアップボリューム用領域13bは、一のディスク13の全てのデータ領域であってもよいし、一のディスク13の一部のデータ領域であってもよい。また、本実施形態において、ソースボリューム13aおよびバックアップボリューム用領域13bは、それぞれ異なるCM12,12に接続されたディスク13,13に属しているが、同じCM12に接続された異なるディスク13,13に属していてもよいし、同じディスク13に属していてもよい。さらに、本実施形態において、ソースボリューム13aとバックアップボリューム用領域13bとは、同一筐体内に属しているが、それぞれ異なる筐体に属していてもよい。
各CM12は、CPU(Central Processing Unit)21,メモリ22,DA(Device Adapter)23およびコピー制御部24を有する。2つのDA23,23は、それぞれ当該CM12によって管理される2つのディスク13,13とのインタフェース制御を行ない、各ディスク13との間でデータ通信を行なう。メモリ(Memory)22は、ユーザデータや制御データなどを格納するほか、ホスト装置2から各ディスク13へ書き込まれるデータや各ディスク13からホスト装置2や他のCM12へ読み出されるデータを一時的に格納する。
さらに、メモリ22は、図2や図5〜図9を参照しながら後述するごとく、コピービットマップ221を記憶するほか、トラッキングビットマップ(更新情報)222を記憶する第1記憶部、および、SDV用ビットマップ(世代別データブロック情報)2231〜2233を記憶する第2記憶部として機能する。
CPU21は、メモリ22,DA23および後述するコピー制御部24を管理する。
〔1−2〕ストレージ装置の機能構成
次に、図2〜図4を参照しながら、本実施形態のストレージ装置1(コピー制御部24)の機能構成について説明する。ここで、図2は、本実施形態のストレージ装置1(コピー制御部24)の機能構成を示すブロック図である。図3は、本実施形態のストレージ装置1における物理ボリュームと、ホスト装置2側から見える論理ボリュームとの関係を示す図である。図4は、本実施形態のストレージ装置1による、更新前データブロックの保存領域の自動割当処理および解放処理を説明する図である。
図2に示すように、コピー制御部(処理部)24は、第1バックアップ処理部241,第2バックアップ処理部242,制御部243および復元部244としての機能を有している。これらの機能は、少なくとも、ソースボリューム13aを保存するディスク13を管理する一方のCM12のコピー制御部24にそなえられるが、2つのCM12,12の両方にそなえられていてもよい。なお、第1バックアップ処理部241,第2バックアップ処理部242,制御部243および復元部244としての機能は、コピー制御部24を成す処理部が所定のアプリケーションプログラム(バックアッププログラム)を実行することにより実現される。
第1バックアップ処理部241は、QOPCを実行する。つまり、第1バックアップ処理部241は、ソースボリューム13aについてのフルコピー処理を行なった後、ソースボリューム13aで更新されたデータブロックをバックアップボリューム130の対応領域にコピーする差分コピー処理を行なう。フルコピー処理では、ソースボリューム13aについて、OPCによる全データの物理コピーが実施され、バックアップボリューム用領域13bにバックアップボリューム130が作成される。フルコピー処理の後、差分コピー処理では、ソースボリューム13aで更新された部分を含むデータブロックが、バックアップボリューム130の対応領域にコピーされる。
このとき、ソースボリューム13aに対する更新箇所は、メモリ(第1記憶部)22のトラッキングビットマップ222に、更新情報として記憶される。つまり、トラッキングビットマップ(更新情報)222には、ソースボリューム13aの各データブロックについて、各データブロック内のデータが更新されたか否かを示す更新情報が設定される。なお、トラッキングビットマップ222に対する更新情報の設定は、図6を参照しながら後述するように、第2バックアップ処理部242によって行なわれる。
トラッキングビットマップ222における各ビットは、ソースボリューム13aの各データブロックに対応付けられる。各データブロック内のデータが更新されていない場合、トラッキングビットマップ222において、当該データブロックに対応するビットには、“0”が更新情報として設定される。一方、各データブロック内のデータが更新された場合、トラッキングビットマップ222において、当該データブロックに対応するビットには、“1”(オン)が更新情報として設定される。なお、トラッキングビットマップ222の具体的な例については、図8を参照しながら後述する。
第1バックアップ処理部241は、図5や図8を参照しながら後述するごとく、上述したトラッキングビットマップ(更新情報)222を、メモリ22のコピービットマップ221にマージし、マージしたコピービットマップ221に基づき差分コピー処理を行なう。つまり、第1バックアップ処理部241は、コピービットマップ221において“1”を設定されたビットに対応するデータブロック、即ちソースボリューム13aで更新された部分を含むデータブロックを、バックアップボリューム130の対応領域にコピー(上書き)する。第1バックアップ処理部241は、当該データブロックを対応領域にコピーすると、コピービットマップ221における当該データブロックに対応するビットを“1”から“0”に書き換える。
第2バックアップ処理部242は、SnapOPC+を実行する。つまり、第2バックアップ処理部242は、ホスト装置2からソースボリューム13aのデータブロックに対する書込I/O要求(更新要求)があった場合、以下のような世代別バックアップ処理を行なう。世代別バックアップ処理では、ソースボリューム13aにおける、前世代からの更新領域を含むデータブロックの更新前データブロック(旧データ)が、現在の世代に対応する世代別バックアップボリュームに退避保存される。図2〜図4に示す例では、バックアップボリューム用領域13bにおいて、世代別バックアップボリュームであるSDV131〜133が世代毎(例えば曜日毎)に作成され、各SDV131〜133に対し各世代間の差分データのみがコピーされる。なお、本実施形態において、第2バックアップ処理部242による世代別バックアップ処理の世代切替は、例えば、曜日つまり日付が変わるタイミング(世代切替タイミング)で行なわれるものとする。
より具体的に、図2〜図4に示す例において、ソースボリューム13aの世代別バックアップボリュームとして、月曜日,火曜日,水曜日のSDV131,132,133がそれぞれ月曜日,火曜日,水曜日に作成される。このとき、月曜日のSDV(差分データ(月))131には、月曜日に更新されたデータを含むデータブロックの更新前データブロックのみが記憶され、火曜日のSDV(差分データ(火))132には、火曜日に更新されたデータを含むデータブロックの更新前データブロックのみが記憶され、水曜日のSDV(差分データ(水))133には、水曜日に更新されたデータを含むデータブロックの更新前データのみが記憶される。
このとき、第2バックアップ処理部242は、世代毎にSDV131〜133を作成する際に、SDV131〜133のそれぞれについて、SDV用ビットマップ(差分データ用ビットマップ)2231〜2233を、メモリ(第2記憶部)22のSDV用ビットマップ領域223に世代別データブロック情報として作成する。つまり、各SDV用ビットマップ2231〜2233には、各SDV131〜133に保存されている更新前データブロックが、ソースボリューム13aに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を設定される。
SDV用ビットマップ2231〜2233における各ビットは、ソースボリューム13aの各データブロックに対応付けられる。SDV131〜133に更新前データブロックが保存されている場合、ビットマップ2231〜2233において、当該更新前データブロックが保存されていたソースボリューム13aのデータブロックに対応するビットに、“1”が世代別データブロック情報として設定される。ビットマップ2231〜2233において、上述のように“1”が設定されるビット以外のビットには、“0”(オフ)が設定される。また、各SDV131〜133に複数の更新前データブロックが保存される場合、各更新前データブロックが、ビットマップ2231〜2233におけるどのビットに対応するかに関する対応情報も、併せてSDV用ビットマップ領域223に保存される。なお、SDV用ビットマップ2231〜2233の具体的な例については、図8や図9を参照しながら後述する。
また、第2バックアップ処理部242は、更新前データブロックを保存する際、図2や図4に示すように、プール領域13cから、当該更新前データブロックに応じた容量の未割り当て(未使用)領域をSDV131〜133として確保し更新前データブロックに割り当てる。例えば図2や図4では、データブロックの単位容量を有する6個のプールボリュームPV1〜PV6が、バックアップボリューム用領域13bのプール領域13cに用意されている。そして、プールボリュームPV1〜PV3がそれぞれSDV131〜133として割り当てられ、プールボリュームPV4〜PV6が、未使用領域としてプール領域13cに確保されている。なお、プール領域13cは、制御部においてデータブロックとして割り当て可能な未割り当て領域として管理されている記憶領域である。
さらに、第2バックアップ処理部242は、所定の解放条件を満たした場合、SDV131〜133として確保された領域を解放しプール領域13cに戻す。例えば、第2バックアップ処理部242は、保存すべきSDVの世代数が所定数を超えた場合、最古のSDVとして確保された領域を解放しプール領域13cに戻す。図4に示す例では、保存すべきSDVの世代数が所定数3を超えた場合、つまりSDVの世代数が4になった場合、最古のSDV134として確保された領域が、解放され、プール領域13cに未使用領域のプールボリュームPV4として戻される。なお、SDVの解放処理は、本実施形態では、例えば図5を参照しながら後述するように、世代切替タイミング(リスタートコマンドの発行タイミング)で実行される。
一方、制御部243は、第2バックアップ処理部242による世代別バックアップ処理の世代切替タイミング(本実施形態では曜日が変わるタイミング)で、第1バックアップ処理部241による差分コピー処理を実行させる。このとき、制御部243は、スタートコマンドに応じて第1バックアップ処理部241にフルコピー処理を実行させた後、世代切替タイミング毎に発行されるリスタートコマンドに応じて第1バックアップ処理部241に差分コピー処理を実行させる。なお、スタートコマンド(スタート要求)およびリスタートコマンド(リスタート要求)は、制御部243が自律的に発行してもよいし、ホスト装置2が発行してもよい。
第1バックアップ処理部241は、世代切替タイミング(リスタートコマンドの発行タイミング)で、トラッキングビットマップ222に基づき、上述した差分コピー処理を行なうとともに、トラッキングビットマップ222をリセットする。具体的には、図5や図8を参照しながら後述するごとく、第1バックアップ処理部241は、世代切替タイミングでリスタートコマンドに応じて、コピービットマップ221に対するトラッキングビットマップ222のマージ処理(論理和演算)を行なう。この後、第1バックアップ処理部241は、マージしたコピービットマップ221に基づき差分コピー処理を行なうとともに、トラッキングビットマップ222の各ビットを“0”にリセットする。
復元部244は、ホスト装置2から世代データ読出要求を受けると、当該要求で指定される復元(読出)対象世代のバックアップボリュームを、バックアップボリューム130と、復元対象世代以降のSDV131〜133およびSDV用ビットマップ2231〜2233とに基づき復元する。これにより、図3に示すように、本実施形態のストレージ装置1では、ソースボリューム13aを用いることなく復元対象世代のバックアップボリュームを復元することができる。したがって、ソースボリューム13aが壊れても、各世代のバックアップボリューム(月曜日データ,火曜日データ,水曜日データ)を、論理ボリュームとしてホスト装置2に見せ、ホスト装置2にアクセスさせることができる。なお、具体的な復元処理については、図6や図9を参照しながら後述する。また、本実施形態において、復元部244による処理は、コピー制御部24で実行されているが、CPU21で実行されてもよい。
〔2〕本実施形態のストレージ装置の動作
上述のごとく構成された本実施形態のストレージ装置1では、SnapOPC+(第2バックアップ処理部242)の世代切替タイミングで、ソースボリューム13aから差分データが取得され、QOPC(第1バックアップ処理部241)によって差分データがバックアップボリューム130にコピーされる。ただし、QOPCの開始時に、一度、スタートコマンドに応じてソースボリューム13aのフルコピー処理を行なう必要があり、フルコピー処理後は、世代切替タイミングで発行されるリスタートコマンドに応じて差分コピー処理が実行され、差分データが取得される。これにより、図3に示すように、ソースボリューム13aにおいて故障が発生した時でも、バックアップボリューム130に対し各世代のSDV(月曜データ〜水曜データ)131〜133を書き戻すことで、各世代の論理ボリュームを作成することができる。したがって、ユーザデータを守ることができるとともに、ホスト装置2に影響を与えずに運用を継続することができる。
また、本実施形態のストレージ装置1では、図4に示すように、更新前データブロック(旧データ)を保存する際、差分データ用ボリューム(プールボリュームPV1〜PV6のいずれか)が、プール領域13cから更新前データブロックに対し自動的に割り当てられるように制御される。そして、SDVの世代数が所定数を超えた場合、最古のSDVの領域は解放されてプール領域13cに戻されるように制御される。これにより、バックアップボリューム用領域13bとして用いられるディスクの使用効率を高めることができる。
以下、本実施形態のストレージ装置1の動作について、図5〜図9を参照しながら説明する。
〔2−1〕スタート/リスタート要求時の処理(第1バックアップ処理)
まず、図5に示すフローチャート(ステップS11〜S19)に従って、本実施形態のストレージ装置1におけるスタート/リスタート要求時の処理(第1バックアップ処理)について説明する。
コピー制御部24(制御部243)において、スタートコマンド(スタート要求)またはリスタートコマンド(リスタート要求)を受けると、図5に示す処理が起動され、まず、当該要求がスタート要求であるか否かが判定される(ステップS11)。当該要求がスタート要求である場合(ステップS11のYESルート)、QOPCの開始時であり、ソースボリューム13aのフルコピー処理を行なう必要がある。このため、第1バックアップ処理部241は、コピービットマップ221の全ビットに“1”(オン)を設定するとともに(ステップS12)、トラッキングビットの全ビットに“0”(オフ)を設定する(ステップS13)。
この後、第2バックアップ処理部242において、SnapOPC+で保存すべきSDVの世代数が所定数(例えば3)を超えたか否かが判定される(ステップS14)。保存すべきSDVの世代数が所定数を超えた場合(ステップS14のYESルート)、最古のSDVとして確保された領域が、解放されプール領域13cに戻される(ステップS15)。一方、保存すべきSDVの世代数が所定数を超えていない場合(ステップS14のNOルート)、ステップS15の処理はスキップされる。初回の処理に際しては、まだSDVは確保されていないので、ステップS14では、保存すべきSDVの世代数が所定数を超えていないと判定される(ステップS14のNOルート)。
そして、第1バックアップ処理部241は、コピービットマップ221に対するトラッキングビットマップ222のマージ処理(論理和演算)を行なう(ステップS16)。初回の処理に際しては、全ビットに“0”を設定されたトラッキングビットマップ222が、全ビットに“1”を設定されたコピービットマップ221にマージされるので、コピービットマップ221の全ビットは“1”を設定された状態のままである。この後、第1バックアップ処理部241は、トラッキングビットマップ222の全ビットに“0”を設定する、つまりトラッキングビットマップ222の全ビットを“0”にリセットする(ステップS17)。
ついで、第1バックアップ処理部241は、コピービットマップ221に“1”を設定されたビットが存在するか否かを判定する(ステップS18)。“1”を設定されたビットが存在する場合(ステップS18のYESルート)、第1バックアップ処理部241は、コピービットマップ221において“1”を設定されたビットに対応するデータブロックを、バックアップボリューム130の対応領域にコピーする(ステップS19)。即ち、初回の処理に際して、第1バックアップ処理部241は、ソースボリューム13aの全てのデータブロックを、バックアップボリューム130の対応領域にコピーする。
そして、第1バックアップ処理部241は、各データブロックを対応領域にコピーすると、コピービットマップ221における当該データブロックに対応するビットを“1”から“0”に書き換える。したがって、ソースボリューム13aの全データブロックがバックアップボリューム130の対応領域にコピーされると、コピービットマップ221の全ビットは“0”にリセットされ、第1バックアップ処理部241は処理を終了する。
このようにして、スタートコマンドに応じて開始される初回の処理に際しては、第1バックアップ処理部241によって、ソースボリューム13aの全データをバックアップボリューム130にコピーするフルコピー処理が実行される。
フルコピー処理の後、コピー制御部24(制御部243)において、スタートコマンド(スタート要求)またはリスタートコマンド(リスタート要求)を受けると、図5に示す処理が起動され、初回の処理と同様、当該要求がスタート要求であるか否かが判定される(ステップS11)。フルコピー処理後に受ける要求は、基本的に、世代切替タイミング毎に発行されるリスタート要求であるため、ステップS11では、受けた要求がスタート要求でないと判定され(ステップS11のNOルート)、ステップS14〜S19の処理が実行される。このとき、2回目以降の処理は、第1バックアップ処理部241による差分コピー処理である。
ステップS14においては、初回の処理と同様、第2バックアップ処理部242において、SnapOPC+で保存すべきSDVの世代数が所定数(例えば3)を超えたか否かが判定される。保存すべきSDVの世代数が所定数を超えた場合(ステップS14のYESルート)、最古のSDVとして確保された領域が、解放されプール領域13cに戻される(ステップS15)。一方、保存すべきSDVの世代数が所定数を超えていない場合(ステップS14のNOルート)、ステップS15の処理はスキップされる。
そして、第1バックアップ処理部241は、初回の処理と同様、コピービットマップ221に対するトラッキングビットマップ222のマージ処理(論理和演算)を行なう(ステップS16)。2回目以降の処理に際しては、今回のリスタート要求が発行されるまでの間にソースボリューム13aで更新されたデータブロックに対応するビットに“1”を設定されたトラッキングビットマップ222が、全ビットに“0”を設定されたコピービットマップ221にマージされる。この後、第1バックアップ処理部241は、トラッキングビットマップ222の全ビットを“0”にリセットする(ステップS17)。
ついで、第1バックアップ処理部241は、初回の処理と同様、コピービットマップ221に“1”を設定されたビットが存在するか否かを判定する(ステップS18)。“1”を設定されたビットが存在しない場合(ステップS18のNOルート)、第1バックアップ処理部241は、処理を終了する。一方、“1”を設定されたビットが存在する場合(ステップS18のYESルート)、第1バックアップ処理部241は、コピービットマップ221において“1”を設定されたビットに対応するデータブロックを、バックアップボリューム130の対応領域にコピーする(ステップS19)。即ち、2回目以降の処理に際して、第1バックアップ処理部241は、コピービットマップ221において“1”を設定されたビットに対応するデータブロック、即ちソースボリューム13aで更新された部分を含むデータブロックを、バックアップボリューム130の対応領域にコピー(上書き)する。
そして、第1バックアップ処理部241は、各データブロックを対応領域にコピーすると、コピービットマップ221における当該データブロックに対応するビットを“1”から“0”に書き換える。したがって、コピービットマップ221によって指定されたデータブロックが全てバックアップボリューム130の対応領域にコピーされると、コピービットマップ221の全ビットは“0”にリセットされ、第1バックアップ処理部241は処理を終了する。
このようにして、リスタートコマンドに応じて開始される2回目の処理に際しては、ソースボリューム13aで更新されたデータブロックをバックアップボリューム130の対応領域にコピーする差分コピー処理が実行される。
〔2−2〕書込I/O要求時の処理(第2バックアップ処理)
次に、図6に示すフローチャート(ステップS21〜S25)に従って、本実施形態のストレージ装置1に対するホスト装置2からの書込I/O要求時の処理(第2バックアップ処理)について説明する。
コピー制御部24(第2バックアップ処理部242)において、ホスト装置2からソースボリューム13aに対する書込I/O要求を受けると、図6に示す処理が起動され、まず、当該要求の書込対象の領域を含む更新前データブロック(旧データ)が、既にSDVに保存済みであるか否かが判定される(ステップS21)。当該更新前データブロックが保存済みでない場合(ステップS21のNOルート)、第2バックアップ処理部242は、プール領域13cから、当該更新前データブロックに応じた容量の未使用領域をSDV(SnapOPC+用ボリューム)として確保し更新前データブロックに割り当てる(ステップS22)。
この後、第2バックアップ処理部242は、更新前データブロックを割り当てられた領域に退避保存し、現在の世代に対応するSDVを作成する(ステップS23)。そして、第2バックアップ処理部242は、SDV用ビットマップおよびトラッキングビットマップ222において、SDVに書き込まれたデータブロックに応じたビットに“1”(オン)を設定する(ステップS24)。つまり、SDV用ビットマップにおいては、更新前データブロックが保存されていたソースボリューム13aのデータブロックに対応するビットに、“1”が世代別データブロック情報として設定される。また、トラッキングビットマップ222においては、書込I/O要求によってソースボリューム13aで更新されるデータブロックに対応するビットに、“1”が更新情報として設定される。
以上のようにして、更新前データブロック(旧データ)をSDVに退避保存する世代別バックアップ処理を行なうとともに、SDV用ビットマップおよびトラッキングビットマップ222に対する設定を行なった後、第2バックアップ処理部242は、書込I/O要求に応じた、ソースボリューム13aに対する書込を許可する(ステップS25)。これにより、ホスト装置2からの書込I/O要求が実行される。
なお、更新前データブロックが保存済みである場合(ステップS21のYESルート)、更新前データブロックは既にSDVに退避保存されている。このため、第2バックアップ処理部242は、ステップS22〜S24の処理をスキップし、直ちに、書込I/O要求に応じた、ソースボリューム13aに対する書込を許可する(ステップS25)。これにより、ホスト装置2からの書込I/O要求が直ちに実行される。
〔2−3〕世代データ読出要求時の処理(復元処理)
次に、図7に示すフローチャート(ステップS31〜S38)に従って、本実施形態のストレージ装置1に対するホスト装置2からの世代データ読出要求時の処理(復元処理)について説明する。
ソースボリューム13aの故障時等に、コピー制御部24(復元部244)において、ホスト装置2から世代データ読出要求を受けると、図7に示す処理が起動され、まず、当該要求の読出(復元)対象世代(以下、要求世代という)が最新世代であるか否かが判定される(ステップS31)。当該要求世代が最新世代である場合(ステップS31のYESルート)、現在のバックアップボリューム130が要求世代のバックアップボリュームである。したがって、復元部244は、現在のバックアップボリューム130をホスト装置2に読ませる(ステップS38)。これにより、要求世代のバックアップボリュームが復元される。
一方、当該要求世代が最新世代でない場合(ステップS31のNOルート)、復元部244は、ステップS32〜S37による復元処理を実行する。
まず、復元部244は、処理世代として当該要求世代を設定する(ステップS32)。この後、復元部244は、処理世代のSDV用ビットマップにおいて“1”(オン)を設定されているビットに対応する差分データ(更新前データブロック,旧データ)を、処理世代のSDVから読み出し、バックアップボリューム130の対応領域に書き戻す(ステップS33)。
そして、復元部244は、バックアップボリューム130の全領域に対し差分データが書き戻されたか否かを判定する(ステップS34)。バックアップボリューム130の全領域に対し差分データが書き戻された場合(ステップS34のYESルート)、その時点でのバックアップボリューム130が要求世代のバックアップボリュームである。したがって、復元部244は、ステップS33で差分データを書き戻されたバックアップボリューム130をホスト装置2に読ませる(ステップS38)。これにより、要求世代のバックアップボリュームが復元される。
バックアップボリューム130の全領域に対し差分データが書き戻されていない場合(ステップS34のNOルート)、復元部244は、処理世代が最新世代であるか否かを判定する(ステップS35)。処理世代が最新世代である場合(ステップS35のYESルート)、その時点でのバックアップボリューム130が要求世代のバックアップボリュームである。したがって、復元部244は、ステップS33で差分データを書き戻されたバックアップボリューム130をホスト装置2に読ませる(ステップS38)。これにより、要求世代のバックアップボリュームが復元される。
処理世代が最新世代でない場合(ステップS35のNOルート)、復元部244は、ステップS33で用いたSDV用ビットマップにおいて“0”(オフ)が設定されている領域を残領域として求める(ステップS36)。また、復元部244は、処理世代として、現在の世代よりも一つ新しい世代を設定する(ステップS37)。この後、復元部244は、処理世代のSDV用ビットマップのうちの前記残領域において“1”を設定されているビットに対応する差分データを、処理世代のSDVから読み出し、バックアップボリューム130の対応領域に書き戻す(ステップS33)。以下同様に復元部244がステップS33〜S38の処理を実行することにより、要求世代のバックアップボリュームが復元される。
〔2−4〕ストレージ装置による具体的なバックアップ処理
次に、図8(A)〜図8(C)を参照しながら、本実施形態のストレージ装置1によるバックアップ処理について具体的に説明する。ここでは、バックアップ処理が、月曜日に開始され水曜日まで実行された場合について説明する。図8(A)〜図8(C)は、それぞれ月曜日〜水曜日の状態を示す。また、図8(A)〜図8(C)に示す例では、ソースボリューム13aおよびバックアップボリューム130には、3つのデータブロックが割り当てられている。また、コピービットマップ221およびトラッキングビットマップ222のそれぞれは、前記3つのデータブロックに対応する3つのビットを有している。さらに、曜日毎に作成されるSDV131〜133のそれぞれに対しては、前述の通り、SDV用ビットマップ2231〜2233が作成され、各ビットマップ2231〜2233は、前記3つのデータブロックに対応する3つのビットを有している。
まず、図8(A)を参照しながら、月曜日の状態について説明する。バックアップ処理開始時点で、バックアップ対象のソースボリューム13aには3つのデータブロックA,B,Cが保存されている。この時点で、スタートコマンドが発行され、バックアップ処理が開始されると、ソースボリューム13aからバックアップボリューム130へのQOPCセッションが開始され、図5を参照しながら前述したフルコピー処理が実行される。
このとき、コピービットマップ221の全ビットに“1”が設定され、トラッキングビットの全ビットに“0”が設定され、コピービットマップ221に対するトラッキングビットマップ222のマージ処理が行なわれる。そして、コピービットマップ221において“1”を設定されたビットに対応するデータブロックを、バックアップボリューム130の対応領域にコピーすることで、フルコピー処理が実行される。フルコピー処理終了時にはコピービットマップ221およびトラッキングビットマップ222の全ビットは0にリセットされる。
この状態で、ホスト装置2からの書込I/O要求によりソースボリューム13aのデータブロックAがデータブロックDに更新される場合、SnapOPC+セッションが開始され、更新前データブロック(差分データ)Aが、プール領域13cから割り当てられたSDV(月)131に退避保存される。そして、SDV用ビットマップ2231のデータブロックAに対応するビットに“1”が設定されるとともに、トラッキングビットマップ222のデータブロックAに対応するビットに“1”が設定される。この後、ソースボリューム13aに対する書込が許可され、ソースボリューム13aのデータブロックAがデータブロックDに書き換えられる。
ついで、図8(B)を参照しながら、火曜日の状態について説明する。世代切替タイミング(曜日が変わるタイミング)でリスタートコマンドが発行されると、ソースボリューム13aからバックアップボリューム130へのQOPCセッションがリスタートされ、図5を参照しながら前述した差分コピー処理が実行される。
このとき、コピービットマップ221に対するトラッキングビットマップ222のマージ処理が行なわれ、コピービットマップ221において“1”を設定されたビットに対応するデータブロックDを、バックアップボリューム130の対応領域にコピーすることで、差分コピー処理が実行される。差分コピー処理終了時にはコピービットマップ221およびトラッキングビットマップ222の全ビットは0にリセットされる。
この状態で、ホスト装置2からの書込I/O要求によりソースボリューム13aのデータブロックD,CがそれぞれデータブロックE,Fに更新される場合、SnapOPC+セッションが開始され、更新前データブロック(差分データ)D,Cが、プール領域13cから割り当てられたSDV(火)132に退避保存される。そして、SDV用ビットマップ2232のデータブロックD,Cに対応するビットに“1”が設定されるとともに、トラッキングビットマップ222のデータブロックD,Cに対応するビットに“1”が設定される。この後、ソースボリューム13aに対する書込が許可され、ソースボリューム13aのデータブロックD,CがそれぞれデータブロックE,Fに書き換えられる。
ついで、図8(C)を参照しながら、水曜日の状態について説明する。世代切替タイミング(曜日が変わるタイミング)でリスタートコマンドが発行されると、ソースボリューム13aからバックアップボリューム130へのQOPCセッションがリスタートされ、図5を参照しながら前述した差分コピー処理が実行される。
このとき、コピービットマップ221に対するトラッキングビットマップ222のマージ処理が行なわれ、コピービットマップ221において“1”を設定されたビットに対応するデータブロックE,Fを、それぞれバックアップボリューム130の対応領域にコピーすることで、差分コピー処理が実行される。差分コピー処理終了時にはコピービットマップ221およびトラッキングビットマップ222の全ビットは0にリセットされる。
この状態で、ホスト装置2からの書込I/O要求によりソースボリューム13aのデータブロックE,B,FがそれぞれデータブロックG,H,Iに更新される場合、SnapOPC+セッションが開始され、更新前データブロック(差分データ)E,B,Fが、プール領域13cから割り当てられたSDV(水)133に退避保存される。そして、SDV用ビットマップ2233のデータブロックE,B,Fに対応するビットに“1”が設定されるとともに、トラッキングビットマップ222のデータブロックE,B,Fに対応するビットに“1”が設定される。この後、ソースボリューム13aに対する書込が許可され、ソースボリューム13aのデータブロックE,B,FがそれぞれデータブロックG,H,Iに書き換えられる。
木曜日以降は、上述と同様の手順で、リスタートコマンドによる差分コピー処理と、SnapOPC+による世代別バックアップ処理とを繰り返し実行することで、世代バックアップが行なわれる。ただし、本実施形態では、リスタートコマンドによる差分コピー処理時に、SnapOPC+で保存すべきSDVの世代数が所定数を超えたか否かが判定される。そして、保存すべきSDVの世代数が所定数を超えた場合、最古のSDVとして確保された領域が、解放されプール領域13cに戻される(図5のステップS14,S15参照)。
〔2−5〕ストレージ装置による具体的な世代データ読出処理(復元処理)
次に、図9を参照しながら、本実施形態のストレージ装置1による世代データ読出処理(復元処理)について具体的に説明する。ここでは、図8(A)〜図8(C)に示すように、QOPCによりデータブロックE,B,Fを保存するバックアップボリューム130と、SDV131〜133と、SDV用ビットマップ2231〜2233とが作成されているものとする。このような状態でソースボリューム13aが故障した際に、各世代データ(各曜日データ)を復元してホスト装置2に読ませる処理について、以下に説明する。
ホスト装置2から、月曜日のデータを読み出す世代データ読出要求を受けると、月曜日のSDV用ビットマップ2231が参照される。そして、ビットマップ2231において“1”を設定されているビット(領域1)に対応する差分データAが見出され、矢印A1に示すように、差分データAがバックアップボリューム130の対応領域に書き戻され、データブロックEがデータブロックAに書き換えられる。
この後、月曜日のSDV131にデータが保存されていない領域、つまり月曜日のSDV用ビットマップ2231において“0”が設定されている領域2,3が残領域として求められる。この残領域について、月曜日よりも一世代新しい火曜日のSDV用ビットマップ2232が参照される。すると、ビットマップ2232において“1”が設定されているビット(領域3)に対応する差分データCが見出され、矢印A2に示すように、差分データCがバックアップボリューム130の対応領域に書き戻され、データブロックFがデータブロックCに書き換えられる。
さらに、月曜日および火曜日のSDV用ビットマップ2231,2232において“0”が設定されている領域2が残領域として求められる。この残領域について、火曜日よりも一世代新しい水曜日のSDV用ビットマップ2233が参照される。すると、ビットマップ2233において“1”が設定されているビット(領域2)に対応する差分データBが見出され、矢印A3に示すように、差分データBがバックアップボリューム130の対応領域に書き戻され、データブロックBがデータブロックBに書き換えられる。
このようにして、バックアップボリューム130の全領域に対し差分データが書き戻されると、バックアップボリューム130において月曜日データが復元されたものと判断され、復元部244は、ホスト装置2にバックアップボリューム130(月曜日データ)を読ませる。なお、復元部244は、差分データBをバックアップボリューム130へ書き戻す前に、バックアップボリューム130の領域2に差分データBと同じデータが保存されていることを判別できたならば、差分データBを書き戻す処理を中止してもよい。
ホスト装置2から、火曜日のデータを読み出す世代データ読出要求を受けると、火曜日のSDV用ビットマップ2232が参照される。そして、ビットマップ2232において“1”を設定されているビット(領域1,3)に対応する差分データD,Cが見出され、矢印A4,A5に示すように、差分データD,Cがそれぞれバックアップボリューム130の対応領域に書き戻され、データブロックE,FがそれぞれデータブロックD,Cに書き換えられる。
この後、火曜日のSDV132にデータが保存されていない領域、つまり火曜日のSDV用ビットマップ2232において“0”が設定されている領域2が残領域として求められる。この残領域について、火曜日よりも一世代新しい水曜日のSDV用ビットマップ2233が参照される。すると、ビットマップ2233において“1”が設定されているビット(領域2)に対応する差分データBが見出され、矢印A6に示すように、差分データBがバックアップボリューム130の対応領域に書き戻され、データブロックBがデータブロックBに書き換えられる。
このようにして、バックアップボリューム130の全領域に対し差分データが書き戻されると、バックアップボリューム130において火曜日データが復元されたものと判断され、復元部244は、ホスト装置2にバックアップボリューム130(火曜日データ)を読ませる。なお、復元部244は、差分データBをバックアップボリューム130へ書き戻す前に、バックアップボリューム130の領域2に差分データBと同じデータが保存されていることを判別できたならば、差分データBを書き戻す処理を中止してもよい。
ホスト装置2から、水曜日のデータを読み出す世代データ読出要求を受けると、要求世代の水曜日は最新世代であるので、現在のバックアップボリューム130が要求世代のバックアップボリュームである。したがって、復元部244は、現在のバックアップボリューム130をそのままホスト装置2に読ませる。
〔3〕本実施形態の情報処理装置の効果
このように、本実施形態のストレージ装置1によれば、SnapOPC+の世代切替タイミングでQOPCを用いて自動的に差分コピー処理が行なわれる。そして、当該世代切替タイミングから次の世代切替タイミングまでの間のI/O更新によって発生した差分データは、世代別バックアップボリュームであるSDVによって自動的にバックアップされる。なお、QOPCは、開始時にスタートコマンドでソースボリューム13aのフルコピー処理を行ない、フルコピー以降はリスタートコマンドで差分コピー処理を行なう。
したがって、ホスト装置2の運用ボリュームであるソースボリューム13aが故障した時に、ホスト装置2から復元したい世代が指定されると、QOPCによって作成されたバックアップボリューム130とSnapOPC+によって作成された各世代のSDV131〜133との組み合わせで、任意の世代データを復元することができる。このため、差分世代バックアップ運用環境の中でソースボリューム13aが壊れたとしても、迅速に各世代の運用データを復元できるので、全世代のバックアップボリュームは確実に保存されるとともに、任意の世代へのI/Oがエラーにならずシステムの運用に影響を与えることがない。
また、本実施形態のストレージ装置1では、図4に示すように、更新前データブロックを保存する際、差分データ用ボリュームが、プール領域13cから更新前データブロックに対し自動的に割り当てられるように制御される。そして、SDVの世代数が所定数を超えた場合、最古のSDVの領域は解放されてプール領域13cに戻される。これにより、バックアップボリューム用領域13bとして用いられるディスクの使用効率を高めることができる。
〔4〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、本実施形態では、ストレージ装置1が、4つのCA11,2組のCM12および4つのディスク13をそなえている場合について説明しているが、本発明は、これらの数に限定されるものでない。同様に、本実施形態では、プール領域13cのプールボリュームが6個であり、SDVの解放基準の所定数が3である場合について説明しているが、本発明は、これらの数に限定されるものでない。
また、上述した第1バックアップ処理部241,第2バックアップ処理部242,制御部243および復元部244としての機能の全部もしくは一部は、コピー処理部24として機能するコンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(バックアッププログラム)を実行することによって実現される。
また、上記アプリケーションプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記アプリケーションプログラムは、上述のようなコンピュータに、第1バックアップ処理部241,第2バックアップ処理部242,制御部243および復元部244としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔5〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
バックアップ対象となるソースボリュームを有するストレージ装置であって、
前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームで更新されたデータブロックを前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理部と、
前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックの更新前データブロックを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理部と、
前記第2バックアップ処理部による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理部による前記差分コピー処理を実行させる制御部と、を備えた、ストレージ装置。
(付記2)
前記制御部は、スタートコマンドに応じて前記第1バックアップ処理部に前記フルコピー処理を実行させた後、前記世代切替タイミング毎に発行されるリスタートコマンドに応じて前記第1バックアップ処理部に前記差分コピー処理を実行させる、付記1記載のストレージ装置。
(付記3)
前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて、当該データブロック内のデータが更新されたか否かを示す更新情報を記憶する第1記憶部を備え、
前記第1バックアップ処理部は、前記世代切替タイミングで前記更新情報に基づき前記差分コピー処理を行なうとともに、前記更新情報をリセットする、付記1または付記2に記載のストレージ装置。
(付記4)
前記第2バックアップ処理部は、前記更新前データブロックに応じた容量の記憶領域を前記世代別バックアップボリュームとして確保し前記更新前データブロックに割り当てる、付記1〜付記3のいずれか一項に記載のストレージ装置。
(付記5)
前記第2バックアップ処理部は、所定の解放条件を満たした場合、前記世代別バックアップボリュームとして確保された記憶領域を解放する、付記4記載のストレージ装置。
(付記6)
前記第2バックアップ処理部は、保存すべき前記世代別バックアップボリュームの世代数が所定数を超えた場合、最古の世代別バックアップボリュームとして確保された記憶領域を解放する、付記5記載のストレージ装置。
(付記7)
複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶する第2記憶部と、
復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する復元部と、を備えた、付記1〜付記6のいずれか一項に記載のストレージ装置。
(付記8)
バックアップ対象となるソースボリュームを有するストレージ装置を構成するコンピュータに、
前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームで更新されたデータブロックを前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理と、
前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックの更新前データブロックを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理と、を実行させるとともに、
前記第2バックアップ処理による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理による前記差分コピー処理を実行する、
処理を、前記コンピュータに実行させる、バックアッププログラム。
(付記9)
スタートコマンドに応じて前記フルコピー処理を実行した後、前記世代切替タイミング毎に発行されるリスタートコマンドに応じて前記差分コピー処理を実行する、
処理を、前記コンピュータに実行させる、付記8記載のバックアッププログラム。
(付記10)
前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて、当該データブロック内のデータが更新されたか否かを示す更新情報を記憶し、
前記第1バックアップ処理に際し、前記世代切替タイミングで前記更新情報に基づき前記差分コピー処理を行なうとともに、前記更新情報をリセットする、
処理を、前記コンピュータに実行させる、付記8または付記9に記載のバックアッププログラム。
(付記11)
前記第2バックアップ処理に際し、前記更新前データブロックに応じた容量の記憶領域を前記世代別バックアップボリュームとして確保し前記更新前データブロックに割り当てる、
処理を、前記コンピュータに実行させる、付記8〜付記10のいずれか一項に記載のバックアッププログラム。
(付記12)
前記第2バックアップ処理に際し、所定の解放条件を満たした場合、前記世代別バックアップボリュームとして確保された記憶領域を解放する、
処理を、前記コンピュータに実行させる、付記11記載のバックアッププログラム。
(付記13)
前記第2バックアップ処理に際し、保存すべき前記世代別バックアップボリュームの世代数が所定数を超えた場合、最古の世代別バックアップボリュームとして確保された記憶領域を解放する、
処理を、前記コンピュータに実行させる、付記12記載のバックアッププログラム。
(付記14)
複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶し、
復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する、
処理を、前記コンピュータに実行させる、付記8〜付記13のいずれか一項に記載のバックアッププログラム。
(付記15)
バックアップ対象となるソースボリュームを有するストレージ装置におけるバックアップ方法であって、
前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームで更新されたデータブロックを前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理と、
前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックの更新前データブロックを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理と、を実行するとともに、
前記第2バックアップ処理による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理による前記差分コピー処理を実行する、バックアップ方法。
(付記16)
スタートコマンドに応じて前記フルコピー処理を実行した後、前記世代切替タイミング毎に発行されるリスタートコマンドに応じて前記差分コピー処理を実行する、付記15記載のバックアップ方法。
(付記17)
前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて、当該データブロック内のデータが更新されたか否かを示す更新情報を記憶し、
前記第1バックアップ処理に際し、前記世代切替タイミングで前記更新情報に基づき前記差分コピー処理を行なうとともに、前記更新情報をリセットする、付記15または付記16に記載のバックアップ方法。
(付記18)
前記第2バックアップ処理に際し、前記更新前データブロックに応じた容量の記憶領域を前記世代別バックアップボリュームとして確保し前記更新前データブロックに割り当てる、付記15〜付記17のいずれか一項に記載のバックアップ方法。
(付記19)
前記第2バックアップ処理に際し、所定の解放条件を満たした場合、前記世代別バックアップボリュームとして確保された記憶領域を解放する、付記18記載のバックアップ方法。
(付記20)
複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶し、
復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する、付記15〜付記19のいずれか一項に記載のバックアップ方法。
1 ストレージ装置
100 バックアップ装置
2 ホスト装置(業務サーバ,ホストコンピュータ)
11 CA(Channel Adapter)
12 CM(Centralized Module)
13 ディスク(HDD;Disk)
13a ソースボリューム(バックアップ対象ボリューム;業務ボリューム)
13b バックアップボリューム用領域
13c プール領域
130 バックアップボリューム
131〜134 世代別バックアップボリューム(SDV;Snap Data Volume)
21 CPU(Central Processing Unit)
22 メモリ(第1記憶部,第2記憶部)
221 コピービットマップ
222 トラッキングビットマップ(更新情報)
223 SDV用ビットマップ領域
2231〜2233 SDV用ビットマップ(世代別データブロック情報,差分データ用ビットマップ)
23 DA(Disk Adapter)
24 コピー制御部(処理部)
241 第1バックアップ処理部
242 第2バックアップ処理部
243 制御部
244 復元部

Claims (9)

  1. バックアップ対象となるソースボリュームを有するストレージ装置であって、
    前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて当該データブロック内のデータが更新されたか否かを示す更新情報を参照して、前記ソースボリュームで更新されたデータブロックを前記ソースボリュームから前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理部と、
    前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックに対応する更新前データブロックのデータを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理部と、
    前記第2バックアップ処理部による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理部による前記差分コピー処理を実行させる制御部と、を備えた、ストレージ装置。
  2. 前記制御部は、スタートコマンドに応じて前記第1バックアップ処理部に前記フルコピー処理を実行させた後、前記世代切替タイミング毎に発行されるリスタートコマンドに応じて前記第1バックアップ処理部に前記差分コピー処理を実行させる、請求項1記載のストレージ装置。
  3. 前記第2バックアップ処理部は、前記更新前データブロックに応じた容量の記憶領域を前記世代別バックアップボリュームとして確保し前記更新前データブロックに割り当てる、請求項1または請求項2に記載のストレージ装置。
  4. 前記第2バックアップ処理部は、保存すべき前記世代別バックアップボリュームの世代数が所定数を超えるという所定の解放条件を満たした場合、最古の世代別バックアップボリュームとして確保された記憶領域を解放する、請求項記載のストレージ装置。
  5. 複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶する記憶部と、
    復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する復元部と、を備えた、請求項1〜請求項のいずれか一項に記載のストレージ装置。
  6. バックアップ対象となるソースボリュームを有するストレージ装置を構成するコンピュータに、
    前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて当該データブロック内のデータが更新されたか否かを示す更新情報を参照して、前記ソースボリュームで更新されたデータブロックを前記ソースボリュームから前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理と、
    前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックに対応する更新前データブロックのデータを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理と、を実行させるとともに、
    前記第2バックアップ処理による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理による前記差分コピー処理を実行する、
    処理を、前記コンピュータに実行させる、バックアッププログラム。
  7. 複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶し、
    復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する、
    処理を、前記コンピュータに実行させる、請求項6記載のバックアッププログラム。
  8. バックアップ対象となるソースボリュームを有するストレージ装置におけるバックアップ方法であって、
    前記ソースボリュームの全データをコピーしてバックアップボリュームを作成するフルコピー処理の後、前記ソースボリュームに割り当てられた複数のデータブロックのそれぞれについて当該データブロック内のデータが更新されたか否かを示す更新情報を参照して、前記ソースボリュームで更新されたデータブロックを前記ソースボリュームから前記バックアップボリュームの対応領域にコピーする差分コピー処理を行なう第1バックアップ処理と、
    前記ソースボリュームにおける、前世代からの更新領域を含むデータブロックに対応する更新前データブロックのデータを、現在の世代に対応する世代別バックアップボリュームに保存する世代別バックアップ処理を行なう第2バックアップ処理と、を実行するとともに、
    前記第2バックアップ処理による前記世代別バックアップ処理の世代切替タイミングで、前記第1バックアップ処理による前記差分コピー処理を実行する、バックアップ方法。
  9. 複数の前記世代別バックアップボリュームのそれぞれについて、当該世代別バックアップボリュームに保存されている前記更新前データブロックが、前記ソースボリュームに割り当てられた複数のデータブロックのうちのいずれのデータブロックに対応するかを示す世代別データブロック情報を記憶し、
    復元対象世代のバックアップボリュームを、前記バックアップボリュームと、前記復元対象世代以降の前記世代別バックアップボリュームおよび前記世代別データブロック情報とに基づき復元する、請求項8記載のバックアップ方法。
JP2013005850A 2013-01-17 2013-01-17 ストレージ装置、バックアッププログラム、およびバックアップ方法 Expired - Fee Related JP6064608B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013005850A JP6064608B2 (ja) 2013-01-17 2013-01-17 ストレージ装置、バックアッププログラム、およびバックアップ方法
US14/097,426 US9152351B2 (en) 2013-01-17 2013-12-05 Storage device and method for backing up source volume

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013005850A JP6064608B2 (ja) 2013-01-17 2013-01-17 ストレージ装置、バックアッププログラム、およびバックアップ方法

Publications (2)

Publication Number Publication Date
JP2014137711A JP2014137711A (ja) 2014-07-28
JP6064608B2 true JP6064608B2 (ja) 2017-01-25

Family

ID=51166174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013005850A Expired - Fee Related JP6064608B2 (ja) 2013-01-17 2013-01-17 ストレージ装置、バックアッププログラム、およびバックアップ方法

Country Status (2)

Country Link
US (1) US9152351B2 (ja)
JP (1) JP6064608B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6350090B2 (ja) * 2014-08-06 2018-07-04 富士通株式会社 ストレージ制御装置、コピー制御プログラム、およびコピー制御方法
JP6609918B2 (ja) 2014-12-17 2019-11-27 富士通株式会社 ストレージシステム、ストレージ管理装置およびストレージ管理プログラム
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US10521135B2 (en) * 2017-02-15 2019-12-31 Amazon Technologies, Inc. Data system with data flush mechanism
US10754735B2 (en) * 2017-11-20 2020-08-25 Salesforce.Com, Inc. Distributed storage reservation for recovering distributed data
US10698637B2 (en) * 2018-07-03 2020-06-30 Oracle International Corporation Stale block resynchronization in NVM based systems
CN110209527B (zh) 2018-11-30 2023-05-05 腾讯科技(深圳)有限公司 数据恢复方法、装置、服务器以及存储介质
JP7225852B2 (ja) * 2019-01-31 2023-02-21 富士通株式会社 ストレージ制御装置、ストレージシステムおよびバックアップ制御プログラム
US11169723B2 (en) 2019-06-28 2021-11-09 Amazon Technologies, Inc. Data storage system with metadata check-pointing
US11182096B1 (en) 2020-05-18 2021-11-23 Amazon Technologies, Inc. Data storage system with configurable durability
US11681443B1 (en) 2020-08-28 2023-06-20 Amazon Technologies, Inc. Durable data storage with snapshot storage space optimization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341840A (ja) 2003-05-15 2004-12-02 Shinano Kenshi Co Ltd バックアップ方法及びそのシステム並びに復元方法
JP2005292865A (ja) 2004-03-31 2005-10-20 Hitachi Ltd ストレージシステム及びストレージシステムのバックアップ方法
US7756833B2 (en) * 2004-09-22 2010-07-13 Microsoft Corporation Method and system for synthetic backup and restore
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP2006164162A (ja) * 2004-12-10 2006-06-22 Fujitsu Ltd コピー制御装置および方法
JP4750169B2 (ja) * 2008-10-14 2011-08-17 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
JP4833273B2 (ja) * 2008-12-09 2011-12-07 富士通株式会社 ストレージ装置、リストア方法およびリストアプログラム
JP5581776B2 (ja) * 2010-03-31 2014-09-03 富士通株式会社 バックアップ装置,バックアップ方法およびバックアッププログラム

Also Published As

Publication number Publication date
US20140201483A1 (en) 2014-07-17
US9152351B2 (en) 2015-10-06
JP2014137711A (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
US9053075B2 (en) Storage control device and method for controlling storages
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US8904129B2 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
JP3856855B2 (ja) 差分バックアップ方式
JP4990066B2 (ja) 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP4078039B2 (ja) スナップショットイメージの世代管理方法及び世代管理装置
JP3316500B2 (ja) 移動されたデータの完全性を維持しながらraidセットにおけるドライブ数の拡張
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US8271444B2 (en) Storage control device to backup data stored in virtual volume
US7383465B1 (en) Undoable volume using write logging
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
KR20050015972A (ko) 컴퓨터 시스템의 부팅 제어 장치 및 방법
JP2005011317A (ja) ストレージシステムを初期化する方法と装置
JP2005310159A (ja) スナップショットに分散されたデータを使用するデータ保護
JP2012507788A (ja) ストレージ・エリア・ネットワークを使用してコンピュータシステムを復旧するための方法およびシステム
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP2009104369A (ja) ディスクサブシステム
US20130031320A1 (en) Control device, control method and storage apparatus
JP2007034551A (ja) データの二重化管理方法
JP2010152781A (ja) バックアップサーバ装置、バックアップ/リストアプログラム、およびバックアップ/リストア方法
US8667218B2 (en) Storage apparatus comprising RAID groups of RAID 1 series and control method of writing to RAID group of RAID 1 series
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置
JP7225852B2 (ja) ストレージ制御装置、ストレージシステムおよびバックアップ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161102

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: 20161122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R150 Certificate of patent or registration of utility model

Ref document number: 6064608

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees