JP4833273B2 - ストレージ装置、リストア方法およびリストアプログラム - Google Patents

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

Info

Publication number
JP4833273B2
JP4833273B2 JP2008312824A JP2008312824A JP4833273B2 JP 4833273 B2 JP4833273 B2 JP 4833273B2 JP 2008312824 A JP2008312824 A JP 2008312824A JP 2008312824 A JP2008312824 A JP 2008312824A JP 4833273 B2 JP4833273 B2 JP 4833273B2
Authority
JP
Japan
Prior art keywords
generation
data
update
restore
management area
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.)
Active
Application number
JP2008312824A
Other languages
English (en)
Other versions
JP2010140065A (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 JP2008312824A priority Critical patent/JP4833273B2/ja
Priority to US12/606,246 priority patent/US8229892B2/en
Publication of JP2010140065A publication Critical patent/JP2010140065A/ja
Application granted granted Critical
Publication of JP4833273B2 publication Critical patent/JP4833273B2/ja
Active 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/1456Hardware arrangements for backup
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

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

この発明は、ストレージ装置、リストア方法およびリストアプログラムに関し、特に、リストアに要する時間を最適化できるストレージ装置、リストア方法およびリストアプログラムに関するものである。
従来、ストレージ装置におけるデータのバックアップ手法の一つとして、SnapOPC(Snapshot One Point Copy)が知られている。SnapOPCとは、バックアップデータを作成する際、コピー元ボリュームのデータのうち、更新された部分のみをバックアップする手法である。
さらに、近年、SnapOPCの拡張機能として、バックアップデータを世代ごとに作成するSnapOPC+という手法が提案されている。具体的には、SnapOPC+では、バックアップボリュームであるSnap Data Volume(以下、SDVとする。)を世代ごと(例えば、曜日ごと)に作成し、このSDVに対して各世代間の差分データのみをコピーする。
例えば、SnapOPC+を実装するストレージ装置は、図19に示すように、コピー元であるソースボリュームのバックアップボリュームとして、月曜日、火曜日、水曜日のSDVをそれぞれ月曜日、火曜日、水曜日に作成する。このとき、月曜日のSDVには月曜日からのデータの更新部分のみが記憶され、火曜日のSDVには火曜日からのデータの更新部分のみが記憶される。また、水曜日のSDVには水曜日からのデータの更新部分のみが記憶される。
ところで、このようなストレージ装置において、コピー元ボリュームの現在の状態を任意の世代の状態へリストアする場合は、先ず、図20に示すように、このストレージ装置に接続するホスト装置3からリストアの実行指示がなされる。ここでは、コピー元の現在の状態を火曜日の状態に戻す旨の指示がなされたとする。
このリストア実行指示を受けたストレージ装置は、コピー元であるソースボリュームに記憶されたデータ(現時点のデータ)と、火曜日のSDV及び水曜日のSDVにそれぞれ記憶された差分データとに基づいて、火曜日の時点におけるデータの状態を復元する。そして、ホスト装置3は、この復元されたデータを読み出すとともに、当該読み出したデータでソースボリュームを更新する。これにより、コピー元の現在の状態を火曜日の時点におけるデータにリストアすることができる(例えば、特許文献1参照。)。
特開2006−107162号公報
しかしながら、図20に示すように、ホスト装置3は、実際のボリュームサイズとは異なり、各世代のバックアップボリュームに当該世代の全てのデータが記憶されているとしか認識できない。そのため、ホスト装置3を介してリストアを実行する場合、更新部分のみを書き換えるといった処理ができず、上記のようにコピー元のデータの全面的な書き換えが行われる。したがって、更新されていない部分においても書き換えが行われるため、リストアに無駄な時間がかかるおそれがある。また、データの読み出し処理や書き出し処理によりホスト装置に負荷がかかる。
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、リストアに要する時間を最適化できるストレージ装置、リストア方法およびリストアプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本件に開示するストレージ装置は、ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、リストア実行指示を前記ホスト装置から受け付ける受付手段と、前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段とを有する。
本件に開示するストレージ装置、リストア方法およびリストアプログラムによれば、リストアに要する時間を最適化できるという効果を奏する。
以下に添付図面を参照して、本件に開示するストレージ装置、リストア方法およびリストアプログラムにかかる実施例について詳細に説明する。
まず、本実施例にかかるデータのバックアップ方法及びリストア方法について、図面を参照して説明する。図1は、実施例1にかかるバックアップ方法及びリストア方法の概要を説明するための図である。
本実施例にかかるストレージ装置は、データバックアップ機能として、SnapOPCをベースとしてバックアップデータの世代管理を実現するSnapOPC+を実装する。ここで、SnapOPCとは、データのバックアップを作成する際、コピー元ボリュームのデータのうち、更新された部分のみをバックアップする手法である。
例えば、図1に示すように、コピー元ボリュームであるソースボリューム310に対して、SnapOPC+によるバックアップが曜日ごとに行われた場合、各曜日(ここでは、月曜日から水曜日)に対応するSDV(Snap Data Volume)320a〜320cが作成される。
具体的には、ストレージ装置は、月曜日の時点において、ソースボリューム310に記憶されたデータのうち、月曜日の時点から更新された部分のみを差分データとしてコピーし、月曜日用のSDV320aに記憶する。同様に、ストレージ装置は、火曜日の時点において、火曜日からの更新部分のみを差分データとして火曜日用のSDV320bに記憶し、水曜日の時点において、水曜日からの更新部分のみを差分データとして水曜日用のSDV320cに記憶する。これにより、各SDV320a〜320cには、ソースボリューム310に記憶されたデータのうち、前世代からの更新部分のみが差分データとして記憶される。
なお、SnapOPC+によるバックアップ処理の開始前においては、ホスト装置により世代設定(世代数や世代の切替え間隔等の設定)が行われる。そして、ストレージ装置は、この世代設定に従って各世代のSDV320a〜320cを予め用意する。図1においては、世代数は3(月曜日〜水曜日)であり、世代切替え間隔は一日である。
続いて、SnapOPC+によるバックアップ処理を開始すると、ストレージ装置は、ソースボリューム310に対して更新(書き込み)がなされると、更新データを直ぐに最初のSDV320(ここでは、月曜日のSDV320a)へバックアップする。そして、ソースボリューム310に対して次の更新がなされると、更新データを引き続き月曜日のSDV320aへバックアップする。
そして、バックアップ処理の開始から世代切替え間隔が経過すると、ストレージ装置は、自動的に次のSDV320(ここでは、火曜日のSDV320b)へ切り替え、このSDV320bへのバックアップを次の世代切替え間隔に達するまで続ける。このようにして、ストレージ装置は、世代切替え間隔毎にSDV320を切替えてバックアップ処理を行う。なお、最後のSDV320(ここでは、水曜日のSDV320c)へのバックアップ中に世代切替え間隔に達した場合、ストレージ装置は、最初のSDV320へバックアップを行う。
また、本実施例にかかるストレージ装置は、ソースボリューム310の状態を任意の世代の状態にリストアする場合、当該リストアの対象となる世代であるリストア世代から最新世代までの各SDV320に記憶されたデータに基づき、リストア処理を実行する。例えば、水曜日の時点において、ソースボリューム310の状態を火曜日の状態にリストアする場合、ストレージ装置は、火曜日用のSDV320bに格納された差分データ及び水曜日用のSDV320cに格納された差分データに基づきリストア処理を実行する。ここで、本実施例にかかるストレージ装置は、現在(木曜日)のソースボリューム310に記憶されているデータのうち、火曜日の時点から更新された部分のみを書き換える。これにより、リストア処理に要する時間を最適化できる。
続いて、本実施例にかかるストレージ装置の概要について、図面を参照して説明する。図2は、実施例1にかかるストレージ装置の構成を説明するためのブロック図である。
なお、本実施例においてストレージ装置は、ハードディスク装置とする。ただし、本実施例にかかるストレージ装置は、ハードディスク装置に限らず、熱磁気ディスク装置や半導体不揮発メモリのような他のストレージ装置であってもよい。
図2示すように、本実施例にかかるストレージ装置20は、CA(Channel Adapter)100と、CM(Centralized Module)200と、Disk300とを有し、CA100を介してホスト装置10と接続している。
ホスト装置10は、オペレータによって使用される装置であり、例えば、このストレージ装置20を管理するユーザによって使用されるコンピュータ端末などが該当し、CA100を経由して、ストレージ装置20にバックアップやリストアの実行指示を送信する。
CA100は、ホスト装置10とのI/F制御部であり、ホスト装置10との間における情報の送受信を制御する。具体的には、ホスト装置10から、バックアップやリストアの実行指示を受信したり、当該指示に対する応答をホスト装置10に送信したりする。このCA100は、ソースボリューム310に記憶された元データに対するリストアの実行指示をホスト装置10から受け付ける受付手段として機能する。
Disk300は、バックアップ処理やリストア処理に関するデータを記憶する記憶媒体であり、特に、ソースボリューム310及び曜日ごとのSDV320a〜320cを記憶する。ソースボリューム310は、ホスト装置10によりデータの読み出しや書き込みが行われる業務ボリュームである。SDV320は、ある曜日におけるソースボリューム310のバックアップデータを格納するバックアップボリュームである。
CM200は、バックアップ処理やリストア処理を実行する処理部であり、制御部210と、記憶部220と、DA230(Disk Adapter)とを備える。なお、ストレージ装置20は、一つまたは複数のCM200を備え、各CM200は、一つまたは複数のDisk300と対応する。各CM200は、対応するDisk300に記憶されているSDV320について処理を行う。
制御部210は、ストレージ装置20のうち、対応するCM200やCA100の動作を制御する。この制御部210は、バックアップ部211と、更新情報生成部212と、抽出部213と、更新部214とを備える。
バックアップ部211は、バックアップ手段として機能し、ソースボリューム310に記憶されている元データについて、前世代からの更新部分における更新前データを、現在の世代に対応するSDV320にバックアップする。また、バックアップ部211は、バックアップ情報生成手段として機能し、バックアップが行われた各世代について、ソースボリューム310に割り当てられた複数の管理領域ごとに、元データがバックアップされたか否かを示すバックアップ情報を生成する。以下に、このバックアップ部211のバックアップ手段およびバックアップ情報生成手段について、図面を用いて詳細に説明する。図3−1は月曜日のSDVを作成する様子を説明するための図、図3−2は火曜日のSDVを作成する様子を説明するための図、図3−3は水曜日のSDVを作成する様子を説明するための図である。
図3−1に示すように、ソースボリューム310には、3つの管理領域311〜313が割り当てられており、バックアップ部211は、これら管理領域311〜313ごとに、元データがバックアップされたか否かを管理する。例えば、図3−1に示すように、月曜日において、管理領域311にあるデータAがデータDに更新された場合、バックアップ部211は、当該更新の際に更新前のデータであるデータAをコピーし、月曜日用のSDV320aの所定の領域321aに記憶する。また、管理領域313にあるデータCがデータEに更新された場合、バックアップ部211は、当該更新の際にデータCをコピーし、月曜日用のSDV320aの所定の領域323aに記憶する。
さらに、バックアップ部211は、月曜日用のバックアップ情報として、月曜日において、ソースボリューム310に記憶された元データがコピーされたか否かを各管理領域311〜313ごとに示すバックアップ情報400aを生成する。本実施例において、バックアップ情報400aは、図3−1に示すように、データがコピーされた場合を「0」で示し、データがコピーされていない場合を「1」で示すビットマップである。
具体的には、バックアップ部211は、データAがデータDに更新された場合は、バックアップ情報400aにおける、当該データAの属する管理領域311に対応する領域410aの情報を「0」とする。また、同様に、データCがデータEに更新された場合は、バックアップ情報400aにおける、当該データCの属する管理領域313に対応する領域430aの情報を「0」とする。一方、管理領域312に属するデータBは更新されていないため、バックアップ情報400aにおける、当該管理領域312に対応する領域420aの情報を「1」とする。
同様に、図3−2に示すように、火曜日において、管理領域313にあるデータEがデータFに更新された場合、バックアップ部211は、当該更新の際に更新前のデータEをコピーし、火曜日用のSDV320bの所定の領域323bに記憶する。また、バックアップ部211は、火曜日のバックアップ情報400bにおける、データが更新された管理領域313に対応する領域430bの値を「0」とし、その他の領域410b、420bの値を「1」とする。
同様に、図3−3に示すように、水曜日において、管理領域312にあるデータBがデータGに更新された場合、バックアップ部211は、当該更新の際にデータBをコピーし、水曜日用のSDV320cの所定の領域322cに記憶する。また、バックアップ部211は、水曜日のバックアップ情報400cにおける、データが更新された管理領域312に対応する領域420cの値を「0」とし、その他の領域410c、430cの値を「1」とする。このようにして生成されたバックアップ情報400a〜400cは、記憶部220のバックアップ情報記憶領域221に各曜日と対応付けられて記憶される。
なお、本実施例にかかるストレージ装置20は、リストア処理を行う際、ソースボリューム310をコピー先ボリュームとするとともに、リストア世代のSDV320をコピー元ボリュームとしてOPCを起動することにより行う。これにより、ソースボリューム310をリストアするだけでなく、現時点におけるソースボリューム310の状態を最新世代としてバックアップすることができる。
更新情報生成部212は、更新情報生成手段として機能し、ホスト装置10からのリストア実行指示に応じて、リストア世代から最新の世代までの各世代について、元データの更新が行われたか否かを管理領域ごとに示す更新情報を、当該世代に対応するバックアップ情報に基づきそれぞれ生成する。以下、本実施例にかかる更新情報生成部212による更新情報生成処理について、図面を用いて詳細に説明する。図4−1は火曜日のSDV用のビットマップを作成する様子を説明するための図、図4−2は水曜日のSDV用のビットマップを作成する様子を説明するための図である。なお、以下では、図3−1〜図3−3で示したように、月曜日から水曜日までのSDV320a〜320cが作成された場合において、ソースボリューム310の状態を火曜日の状態にリストアする場合について説明する。
ソースボリューム310の状態を火曜日の状態にリストアする場合、更新情報生成部212は、リストア世代である火曜日から最新の世代である水曜日までの更新情報を、各曜日に対応するバックアップ情報400b、400cに基づきそれぞれ生成する。この際、更新情報生成部212は、各曜日のバックアップ情報400の値を反転させた値を当該曜日の更新情報500とする。
例えば、図4−1に示すように、火曜日の更新情報を生成する場合、更新情報生成部212は、管理領域311に対応するバックアップ情報400bの領域410bの値「1」を反転させ、当該値「0」を管理領域311に対応する更新情報500bの領域510bの値とする。同様に、更新情報生成部212は、管理領域312、313に対応するバックアップ情報400bの領域420b、430bの値「1」、「0」をそれぞれ反転させ、管理領域312、313に対応する更新情報500bの領域520b、530bの値「0」、「1」とする。このように、更新情報500において、「1」は、対応するソースボリューム310の管理領域311〜313において、データの更新がなされたことを示し、「0」は、データの更新がなされていないことを示す。
また、図4−2に示すように、水曜日の更新情報を生成する場合、更新情報生成部212は、管理領域311に対応するバックアップ情報400cの領域410cの値「1」を反転させ、当該値「0」を管理領域311に対応する更新情報500cの領域510cの値とする。同様に、更新情報生成部212は、管理領域312、313に対応するバックアップ情報400cの領域420c、430cの値「0」、「1」をそれぞれ反転させ、管理領域312、313に対応する更新情報500cの領域520c、530cの値とする。このようにして生成された更新情報500a〜500cは、記憶部220の更新情報記憶領域222に各曜日と対応付けられて記憶される。
抽出部213は、抽出手段として機能し、リストア世代から最新の世代までの各世代の更新情報500b、500cに基づき、ソースボリューム310の管理領域311〜313ごとに、各世代のSDV320b、320cに記憶された差分データの中からリストア世代のデータに該当する差分データを抽出する。以下、本実施例にかかる抽出部213による抽出処理について、図面を参照して具体的に説明する。図5は、各曜日の更新情報の論理和を取る様子を示す図である。
抽出部213は、先ず、図5に示すように、リストア世代から最新の世代までの各世代の更新情報500b、500cの値の論理和を各領域ごとに取る。すなわち、抽出部213は、管理領域311に対応する更新情報500b、500cの領域510b、510cの値「0」、「0」の論理和を取ることにより、論理和情報600における管理領域311に対応する領域610の値「0」とする。同様に、抽出部213は、管理領域312に対応する更新情報500b、500cの領域520b、520cの値「0」、「1」の論理和を取ることにより、論理和情報600における管理領域312に対応する領域620の値「1」とする。また、同様に、抽出部213は、管理領域313に対応する更新情報500b、500cの領域530b、530cの値「1」、「0」の論理和を取ることにより、論理和情報600における管理領域313に対応する領域630の値「1」とする。
続いて、抽出部213は、論理和情報600の各領域610〜630の値に応じて、火曜日の時点において、ソースボリューム310に記憶されていたデータ(差分データ)をSDV320から抽出する。具体的には、論理和情報600の領域610のように論理和が「0」の場合、リストア世代から最新世代までの各世代において、当該管理領域311のデータの更新はなされなかったことを示す。そのため、抽出部213は、論理和が「0」の場合、当該領域610に対応するデータの抽出は行わない。
一方、論理和情報600における領域620や領域630のように、論理和が「1」である場合、抽出部213は、各更新情報500b、500cの値により、火曜日の時点においてソースボリューム310に記憶されていたデータ(差分データ)を特定する。具体的には、抽出部213は、各更新情報500b、500cを世代の古い順に確認していく。例えば、論理和情報600における領域620についての処理を行う場合(管理領域312に記憶されていた差分データを特定する場合)、抽出部213は、先ず、最も古い世代である火曜日の更新情報500bの領域520bを確認する。
このとき、領域520bの値は「0」であり、火曜日の時点において当該領域520bに対応するソースボリューム310の管理領域312内でデータの更新が行われていないことを示している。そこで、抽出部213は、次に古い世代である水曜日の更新情報500cの領域520cを確認する。このとき、当該領域520cの値は「1」であり、水曜日の時点において当該領域520cに対応する管理領域312内でデータの更新が行われたことを示しているため、抽出部213は、当該領域520cに対応する差分データBをSDV320cから抽出する。
同様に、論理和情報600における領域630についての処理を行う場合(管理領域313に記憶されていた差分データを特定する場合)、抽出部213は、先ず、最も古い世代である火曜日の更新情報500bの領域530bを確認する。
ここで、火曜日の更新情報500bの領域530bの値は「1」であり、火曜日の時点において当該領域530bに対応するソースボリューム310の管理領域313においてデータの更新が行われたことを示している。そこで、抽出部213は、当該領域530bに対応する差分データEをSDV500bから抽出する。なお、火曜日のSDV320bに、管理領域313に記憶されていたデータ(差分データ)が格納されていることが特定されたため、水曜日の更新情報500cの領域530cについては、処理を行わない。
このように、抽出部213は、論理和情報600のある領域の値が「0」である場合(すなわち、当該領域に対応するソースボリューム310の管理領域においてデータの更新がなされていない場合)、当該管理領域については、処理を行わない。また、抽出部213は、論理和情報600のある領域の値が「1」である場合(すなわち、当該領域に対応するソースボリューム310の管理領域においてデータの更新がなされた場合)、当該管理領域に対応する更新情報500の領域の値を確認する。そして、抽出部213は、当該管理領域に対応する各更新情報500のうち、値が「1」であり、かつ、最も古い世代のものを、リストア世代のデータが格納されている世代の更新情報500と判定し、当該世代のSDV320から該当する差分データを抽出する。この際、抽出部213は、更新情報500の領域の値を確認する際、リストア世代から最新世代までの更新情報500のうち、より世代の古い更新情報500から順に確認するため、抽出処理を効率的に行うことができる。
なお、本実施例においては、上述したように、リストア世代から最新世代までの更新情報500の論理和を取ることにより、ソースボリューム310の各管理領域311〜313のうち、データの更新がなされていない管理領域を特定できる。データの更新がなされていないと特定された管理領域については、対応する更新情報の領域の値を確認する必要がないため、このように論理和を取ることにより、リストア処理に要する時間をさらに最適化できる。ただし、必ずしも論理和を取る必要はない。
更新部214は、更新手段として機能し、抽出部213により抽出した差分データにより、当該差分データが記憶されていたソースボリューム310の管理領域311〜313に現在記憶されているデータを更新する。具体的には、更新部214は、水曜日のSDV320cから抽出したデータBにより、管理領域312に現在記憶されているデータGを更新する。また、更新部214は、火曜日のSDV320bから抽出したデータEにより、管理領域313に現在記憶されているデータFを更新する。ソースボリューム310は、現在記憶されているデータD、G、Fのうち、更新が行われたデータG、Fのみが差分データB、Eにより更新され、火曜日の状態(データD、B、Eが記憶された状態)にリストアされる。
記憶部220は、OS(Operating System)などの制御プログラム、バックアップやリストアの処理手順などを規定したプログラムおよび所要データを格納する。特に、記憶部220は、バックアップ情報を記憶する領域であるバックアップ情報記憶領域221と、更新情報を記憶する領域である更新情報記憶領域222とを含む。
DA230は、Disk300とのI/F制御部であり、Disk300との間において、差分データをSDV320に格納する場合やSDV320から差分データを抽出する場合等に用いられる。
次に、本実施例にかかるストレージ装置20の具体的動作について、図面を用いて詳細に説明する。図6は、実施例1にかかるストレージ装置20のリストア処理の処理手順の一例を示すフローチャートである。なお、図6においては、ストレージ装置20が実行する処理手順のうち、ソースボリューム310に対するリストア処理に関連する処理手順のみを示している。
ストレージ装置20の制御部210は、CA100を介してホスト装置10からリストアの実行指示を受けると、図6に示すように、先ず、更新情報生成処理を行う(ステップS11)。更新情報生成処理は、リストア世代から最新の世代までのバックアップ情報に基づき、これらの世代に対応する更新情報を生成する処理である。この処理は、図7のステップS21〜24までの処理であり、後述する。なお、リストア実行指示には、リストアの対象となる世代(リストア世代)を指定する情報が含まれている。
続いて、制御部210は、差分データ抽出処理を行う(ステップS12)。差分データ抽出処理は、リストア世代から最新の世代までの更新情報に基づき、ソースボリューム310の管理領域311〜313ごとに、各世代のSDV320に記憶された差分データの中からリストア世代のデータに該当する差分データを抽出する処理である。この処理は、図8のステップS31〜S37までの処理であり、後述する。
続いて、制御部210は、更新処理として、ステップS12の差分データ抽出処理で抽出した差分データにより、当該差分データが記憶されていたソースボリューム310の管理領域に現在記憶されているデータを更新する(ステップS13)。この処理を終えたとき、制御部210は、リストア処理に関する処理を終了する。
続いて、ステップS11の更新情報生成処理について、図7を参照して説明する。図7は、実施例1にかかるストレージ装置20の更新情報生成処理の処理手順の一例を示すフローチャートである。
図7に示すように、更新情報生成処理を開始すると、更新情報生成部212は、リストア世代から最新世代までの各世代のバックアップ情報400の中から1つのバックアップ情報400を取り出す(ステップS21)。次に、更新情報生成部212は、取り出したバックアップ情報400の各領域410〜430の値を反転させることにより、更新情報500を生成し(ステップS22)、生成した更新情報500を対応する世代と関連付けて記憶部220の更新情報記憶領域222に記憶する(ステップS23)。
ステップS23の処理を終えると、更新情報生成部212は、リストア世代から最新世代までのバックアップ情報400全てについて処理を行ったか否かを判定する(ステップS24)。この処理において、全てのバックアップ情報400について処理を行っていないとき(ステップS24否定)、更新情報生成部212は、処理をステップS21へ移行する。一方、全てのバックアップ情報400について処理を行ったと判定すると(ステップS24肯定)、更新情報生成部212は、更新情報生成処理を終了する。
続いて、ステップS12の差分データ抽出処理について、図8を参照して説明する。図8は、実施例1にかかるストレージ装置20の差分データ抽出処理の処理手順の一例を示すフローチャートである。
図8に示すように、差分データ抽出処理を開始すると、抽出部213は、リストア世代から最新世代までの更新情報500の論理和を取る(ステップS31)。次に、抽出部213は、ステップS31の処理により生成した論理和情報600の複数の領域610〜630の中から1つの領域の値を取り出す(ステップS32)。次に、抽出部213は、ステップS32において取り出した領域の値が「1」であるか否かを判定する(ステップS33)。この処理において、値が「1」であると判定すると(ステップS33肯定)、抽出部213は、処理をステップS34へ移行する。
ステップS34において、抽出部213は、ステップS32において取り出した領域に対応するリストア世代の更新情報500の領域の値が「1」であるか否かを判定する。この判定において、対応するリストア世代の更新情報500の領域の値が「1」でないとき(ステップS34否定)、抽出部213は、処理をステップS35へ移行する。
ステップS35において、抽出部213は、次に古い世代の更新情報500の該当領域の値が「1」であるか否かを判定する。この処理において、次に古い世代の更新情報500の該当領域の値が「1」でないとき(ステップS35否定)、抽出部213は、再度ステップS35の処理を行う。一方、ステップS35において次に古い世代の更新情報500の該当領域の値が「1」であると判定したとき(ステップS35肯定)、あるいは、ステップS34において対応するリストア世代の更新情報500の領域の値が「1」であると判定したとき(ステップS34肯定)、抽出部213は、処理をステップS36に移行する。すなわち、抽出部213は、ステップS32において取り出した領域に対応する各更新情報500の領域を古い世代から順に確認していくことにより、リストア世代に対応する差分データが格納されているSDV320を特定する。
ステップS36において、抽出部213は、ステップS34又はステップS35において判定された更新情報500と同世代のSDV320から当該領域に対応する差分データを抽出する。ステップS36の処理を終えたとき、あるいは、ステップS33において、ステップS32で取り出した領域の値が「1」でないとき(ステップS33否定)、抽出部213は、論理和情報600の全ての領域610〜630に対して処理を行ったか否かを判定する。この処理において、論理和情報600の全ての領域610〜630に対して処理を行っていないとき(ステップS37否定)、抽出部213は、処理をステップS32に移行する。一方、論理和情報600の全ての領域610〜630に対して処理を行ったと判定すると(ステップS37肯定)、抽出部213は、差分データ抽出処理を終了する。
上述してきたように、実施例1にかかるストレージ装置20、リストア方法によれば、ソースボリューム310における更新された部分のみをリストア世代のデータに置き換えることにより、リストアに要する時間を最適化することができる。また、従来のリストア方法とは異なり、ホスト装置を介することなくストレージ装置20内だけでリストア処理を行うことができるため、ホスト装置10への負担を軽減することができる。
ところで、バックアップ情報400のようなビットマップによりソースボリューム310に記憶されたデータがバックアップされたか否かを管理する際、1Byteのデータのコピー状況を1Bitで管理することとすると、管理するBitの容量が膨大となり、ディスク容量を圧迫してしまう。そこで、実施例1にかかるストレージ装置20では、図9に示すように、ソースボリューム310に8KBごとの管理領域を割り当てることで、8KBのディスク容量のコピー状況をビットマップの1Bitで管理するようにしている。
しなしながら、上記のように、あるまとまったディスク容量のコピー状況を1Bitで管理した場合、差分データがSDV320に格納される際に、当該差分データが、ソースボリューム310の管理領域311〜313に対応するSDV320の領域の先頭からずれて格納される場合がある。この状態において、当該差分データを用いたリストア処理が実行されると、リストア後のソースボリューム310にコピー漏れが生じ、正常なリストアがなされないおそれがある。そこで、本実施例では、かかるコピー漏れを防止する。
先ず、リストア後のソースボリューム310にコピー漏れが生じる場合について、図面を参照して具体的に説明する。図10は、セッションの開始アドレスがLBAの先頭からずれる様子を示す図である。
図10に示すように、ソースボリューム310には、当該ソースボリューム310のアドレスを示すLBA(Logical Block Address)が割り当てられている。また、各曜日のSDV320も同様に、当該ソースボリューム310のアドレスを示すLBAが割り当てられている。また、8KBの容量は16LBAに相当し、ストレージ装置20は、バックアップ情報400によりソースボリューム310のデータのコピー状況を16LBAごとに管理する。
ここで、月曜日の時点において、ソースボリューム310のLBA=16からLBA=32までの管理領域311に記憶されているデータHに対して更新がなされ、月曜日のSDV320aに当該データHが差分データとして格納されたとする。このとき、図10に示すように、差分データHが、SDV320aのLBA=16の位置を先頭にして記憶された場合、管理領域311におけるリストア処理を行う際のセッションの開始位置であるSLBA(Start Logical Block Address)は、SDV320aにおける領域の先頭位置(LBA=16)と一致する。そのため、かかる場合、この差分データHを用いたリストア処理を行ってもリストア後のソースボリューム310にコピー漏れは生じない。
一方、火曜日の時点において、LBA=48からLBA=64までの管理領域313に記憶されているデータIに対して更新がなされ、火曜日のSDV320bに当該データIが差分データとして格納されたとする。このとき、図10に示すように、差分データIのセッション開始位置はSLBA=40であり、差分データIは、管理領域313に対応するSDV320bの領域の先頭位置(LBA=32)からずれて格納されていることとなる。かかる場合、この差分データIを用いたリストア処理を行うと、差分データIのうち、SDV320bのLBA=32からLBA=48までの領域からはみ出た部分のデータは、ソースボリューム310にリストアされず、コピー漏れが生じる。
以下に、リストア後のソースボリューム310にコピー漏れが生じる場合についてさらに具体的に説明する。図11−1は月曜日のSDVを作成する様子を説明するための図、図11−2は火曜日のSDVを作成する様子を説明するための図、図11−3はデータを月曜日の状態にリストアする様子を示す図である。また、図12−1は月曜日のSDVに記憶される差分データと更新情報との対応関係を説明するための図、図12−2は火曜日のSDVに記憶される差分データと更新情報との対応関係を説明するための図である。また、図13はリストア後のソースボリュームにおいてコピー漏れが生じた状態を説明するための図である。
図11−1に示すように、ソースボリューム310に4つの管理領域311〜314が割り当てられており、月曜日の時点において、管理領域313に記憶されたデータ700aがデータ800aに更新されたとする。この場合、ストレージ装置20のバックアップ部211は、ソースボリューム310の管理領域313に対応する月曜日用のSDV320aの領域321aに差分データ700aを格納する。なお、このときのバックアップ情報400aは、管理領域313に対応する領域430aの値が「0」となり、その他の領域410a、420a、440aの値は「1」となる。
また、図11−2に示すように、火曜日の時点において、管理領域311に記憶されたデータ700bがデータ800bに更新された場合、バックアップ部211は、ソースボリューム310の管理領域311に対応する火曜日用のSDV320bの領域321bに差分データ700bを格納する。ここで、SDV320の先頭には、OSの管理情報が記憶されている。そのため、差分データ700が格納される領域321によっては、当該差分データを当該領域321の先頭から格納することができない場合がある。また、差分データ700を格納する領域は、ストレージ装置20を管理するソフトウェアにより決定される。ところが、このソフトウェアは、バックアップ情報400の管理を意識せずに差分データの格納場所を指定するため、これによっても差分データ400がSDV320の先頭からずれて格納される場合がある。このような理由により、差分データ700bは、領域321bの先頭ではなく、当該先頭からずれた位置に記憶されることがある。
そして、火曜日の時点において、ソースボリューム310の状態を月曜日の状態にリストアする場合、先ず、更新情報生成部212により、月曜日の更新情報500aおよび火曜日の更新情報500bが生成される。なお、このとき、火曜日のSDV320bの領域の区切り方は、最も古い世代(ここでは、月曜日)のSDV320aの領域の区切り方に従う。そして、抽出部213は、この更新情報500a、500bに基づき、差分データ700a、700bの抽出を行う。
ここで、図12−1に示すように、月曜日のSDV320aにおいて、差分データ700aは、領域530aの先頭から記憶されているため、すべてのデータが当該領域530a内に収まっている。そのため、抽出部213は、差分データ700aの全てを抽出することができる。一方、図12−2に示すように、火曜日のSDV320bにおいて、差分データ700bは、領域510bの先頭からずれた位置に記憶されており、当該領域510bだけでなく隣接する領域520bにも属している。しかしながら、抽出部213は、値が「1」を示している領域510bに格納されているデータのみを抽出するため、差分データ700bのうち、領域520bに属するデータは抽出されない。
したがって、このような場合、リストア後のソースボリューム310は、図13に示すように、管理領域311において、差分データ700bのうち抽出されなかった部分650においてコピー漏れが生じる。
そこで、本実施例にかかるストレージ装置20は、再構成部215を設けることにより、かかるコピー漏れを防止する。以下、本実施例にかかるストレージ装置20の構成について、図面を参照して説明する。図14は実施例2にかかるストレージ装置の構成を説明するためのブロック図、図15は実施例2にかかる更新情報再構成方法の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
図14に示すように、本実施例にかかるストレージ装置20は、制御部210に再構成部215を備える。再構成部215は、再構成手段として機能し、リストア世代から最新の世代までの各更新情報を、ソースボリューム310の全ての管理領域311〜314においてデータの更新が行われたことを示すように再構成する。
具体的には、図15に示すように、再構成部215は、火曜日の更新情報500bの各領域510b〜540bの値を全て「1」とする。これにより、差分データ700bが領域510bからずれた位置に記憶された場合であっても、抽出部213は、当該領域510b以外の領域520bにあるデータも抽出することができる。
上述してきたように、実施例2にかかるストレージ装置20、リストア方法によれば、リストア後のソースボリューム310のコピー漏れを防止することができる。
実施例2では、再構成部215が、更新情報500の全ての領域の値を「1」に再構成することにより、リストア後のソースボリューム310のコピー漏れを防止する。しかしながら、更新情報500の全ての領域の値を「1」に再構成した場合、論理和情報600により、ソースボリューム310のうちリストア世代から更新されていない領域を特定することができず、リストア処理に余分な時間がかかるおそれがある。
そこで、本実施例では、判定部を設けることにより、SDV320の各領域のうち必要な領域の値のみを再構成することとした。以下、実施例3にかかるストレージ装置20の構成について、図面を参照して説明する。図16は実施例3にかかるストレージ装置の構成を説明するためのブロック図、図17は実施例3にかかる更新情報再構成方法の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
図16に示すように、本実施例にかかるストレージ装置20は、制御部210に判定部216と再構成部217とを備える。判定部216は、判定手段として機能し、リストア世代から最新の世代までのSDV320に格納された差分データが、当該バックSDV320における、ソースボリューム310のどの管理領域311〜313に対応する領域に格納されているかを判定する。また、再構成部217は、再構成手段として機能し、リストア世代から最新の世代までの更新情報500を、当該更新情報500に対応するSDV320における、判定部216により判定された領域に対応するソースボリューム310の管理領域においてデータの更新がなされたことを示すように再構成する。
具体的には、判定部216は、差分データのSLBAと、SDV320において当該SLBAの属する領域の先頭のLBAとの間に差があるか否かを判定する。例えば、図10に示すように、ソースボリューム310の管理領域313に記憶されていたデータIが、火曜日のSDV320bにおけるSLBA=40からSLBA=48までの領域に格納されたとする。この場合、判定部216は、差分データIのSLBAが属する領域(LBA=32〜48の領域)の先頭のLBA=32と当該SLBA=40との差であるextBound=SLBA−LBA=8を算出する。
ここで、算出したextBoundが0であるとき、判定部216は、差分データが、当該差分データのSLBAが属する領域内のみに格納されていると判定する。一方、算出したextBoundが0でないとき、判定部216は、差分データが、当該差分データのSLBAが属する領域及び当該領域に連続する次の領域に格納されていると判定する。したがって、図12−2に示す場合においては、判定部216は、差分データ700bが、領域510b及び520bに格納されていると判定する。
そして、再構成部217は、図17に示すように、火曜日の更新情報500bの各領域510b〜540bのうち、判定部216により判定された領域510b、520bの値を「1」とする。これにより、差分データ700bが領域510bからずれた位置に記憶された場合であっても、抽出部213は、当該領域510b以外の領域520bにあるデータも抽出することができる。
上述してきたように、実施例2にかかるストレージ装置20、リストア方法によれば、リストア後のソースボリューム310のコピー漏れを防止することができる。しかも、判定部216により、再構成する必要のある領域を判定することにより、各更新情報の論理和を取ることで、ソースボリューム310のうちリストア世代から更新されていない領域を特定することができ、リストア処理に要する時間が長くなるのを防止できる。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図21を用いて、上記実施例に示したストレージ装置20と同様の機能を有するリストアプログラムを実行するコンピュータの一例を説明する。図18は、リストアプログラムを実行するコンピュータを示す図である。
図18に示すように、ストレージ装置20としてのコンピュータ900は、HDD910、CPU920、ROM930及びRAM940をバス950で接続して構成される。
ROM930には、上記の実施例と同様の機能を発揮するリストアプログラム、つまり、図18に示すように、バックアッププログラム931、バックアップ情報生成プログラム932、更新情報生成プログラム933、抽出プログラム934及び更新プログラム935が予め記憶されている。
そして、CPU920が、これらのプログラム931〜935をROM930から読み出して実行することにより、各プログラム931〜935は、それぞれバックアッププロセス921、バックアップ情報生成プロセス922、更新情報生成プロセス923、抽出プロセス924及び更新プロセス925として機能する。このようにCPU920は、図2に示す制御部210に相当する。
なお、HDD910には、プロセス921〜925によって利用される各種データが格納されている。CPU920は、HDD910に格納された各種データを読み出して、RAM940に格納し、プロセス921〜925が、RAM940に格納された各種データを利用して、更新情報生成処理などの各種処理を実行する。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、
リストア実行指示を前記ホスト装置から受け付ける受付手段と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、
前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段と
を有することを特徴とするストレージ装置。
(付記2)前記抽出手段は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記1に記載のストレージ装置。
(付記3)前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手段を有することを特徴とする付記1に記載のストレージ装置。
(付記4)前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手段と、
前記更新情報を、前記判定手段により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手段と
を有することを特徴とする付記1に記載のストレージ装置。
(付記5)ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストア方法であって、
前記ストレージ装置が、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップステップと、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成ステップと、
リストア実行指示を前記ホスト装置から受け付ける受付ステップと、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成ステップと、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出ステップと、
前記抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新ステップと
を含むことを特徴とするリストア方法。
(付記6)前記抽出ステップは、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記5に記載のリストア方法。
(付記7)前記ストレージ装置が、前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手段を有することを特徴とする付記5に記載のリストア方法。
(付記8)前記ストレージ装置が、
前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定ステップと、
前記更新情報を、前記判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成ステップと
をさらに含むこと特徴とする付記5に記載のリストア方法。
(付記9)ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストアプログラムであって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手順と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手順と、
リストア実行指示を前記ホスト装置から受け付ける受付手順と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手順と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手順と、
前記抽出手順で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手順と
をコンピュータに実行させることを特徴とするリストアプログラム。
(付記10)前記抽出手順は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記9に記載のリストアプログラム。
(付記11)前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手順をさらにコンピュータに実行させることを特徴とする付記9に記載のリストアプログラム。
(付記12)前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手順と、
前記更新情報を、前記判定手順により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手順と
をさらにコンピュータに実行させることを特徴とする付記9に記載のリストアプログラム。
実施例1にかかるバックアップ方法及びリストア方法の概要を説明するための図である。 実施例1にかかるストレージ装置の構成を説明するためのブロック図である。 月曜日のSDVを作成する様子を説明するための図である。 火曜日のSDVを作成する様子を説明するための図である。 水曜日のSDVを作成する様子を説明するための図である。 火曜日のSDV用のビットマップを作成する様子を説明するための図である。 水曜日のSDV用のビットマップを作成する様子を説明するための図である。 各曜日の更新情報の論理和を取る様子を示す図である。 実施例1にかかるストレージ装置のリストア処理の処理手順の一例を示すフローチャートである。 実施例1にかかるストレージ装置の更新情報生成処理の処理手順の一例を示すフローチャートである。 実施例1にかかるストレージ装置の差分データ抽出処理の処理手順の一例を示すフローチャートである。 8KBのデータのコピー状況を1Bitで管理する様子を示す図である。 セッションの開始アドレスがLBAの先頭からずれる様子を示す図である。 月曜日のSDVを作成する様子を説明するための図である。 火曜日のSDVを作成する様子を説明するための図である。 データを月曜日の状態にリストアする様子を示す図である。 月曜日のSDVに記憶される差分データと更新情報との対応関係を説明するための図である。 火曜日のSDVに記憶される差分データと更新情報との対応関係を説明するための図である。 リストア後のソースボリュームにおいてコピー漏れが生じた状態を説明するための図である。 実施例2にかかるストレージ装置の構成を説明するためのブロック図である。 実施例2にかかる更新情報再構成方法の一例を示す図である。 実施例3にかかるストレージ装置の構成を説明するためのブロック図である。 実施例3にかかる更新情報再構成方法の一例を示す図である。 リストアプログラムを実行するコンピュータを示す図である。 SnapOPC+により世代ごとのバックアップデータを作成する様子を示す図である。 従来のリストア方法を説明するための図である。
符号の説明
10 ホスト装置
20 ストレージ装置
100 CA
200 CM
210 制御部
211 バックアップ部
212 更新情報生成部
213 抽出部
214 更新部
215、217 再構成部
216 判定部
220 記憶部
230 DA
300 Disk
310 ソースボリューム
320 SDV
400 バックアップ情報
500 更新情報
600 論理和情報

Claims (9)

  1. ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、
    前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、
    前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、
    リストア実行指示を前記ホスト装置から受け付ける受付手段と、
    前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、
    前記リストア世代から最新の世代までの各世代の更新情報の論理和を前記ソースボリュームの管理領域ごとに取ることにより、前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたか否かを示す論理和情報を生成する論理和情報生成手段と、
    前記ソースボリュームの各管理領域について、前記論理和情報が前記リストア世代から最新の世代までのいずれの世代においても当該管理領域内のデータが更新されていないことを示す場合には、前記リストア世代のデータを抽出する処理を実行せず、前記論理和情報が前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたことを示す場合には、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、
    前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段と
    を有することを特徴とするストレージ装置。
  2. 前記抽出手段は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする請求項1に記載のストレージ装置。
  3. 前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手段と、
    前記更新情報を、前記判定手段により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手段と
    を有することを特徴とする請求項1に記載のストレージ装置。
  4. 前記更新情報生成手段は、前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報の値を反転させることにより生成することを特徴とする請求項1〜3のいずれか一つに記載のストレージ装置。
  5. ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストア方法であって、
    前記ストレージ装置が、
    前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップステップと、
    前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成ステップと、
    リストア実行指示を前記ホスト装置から受け付ける受付ステップと、
    前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成ステップと、
    前記リストア世代から最新の世代までの各世代の更新情報の論理和を前記ソースボリュームの管理領域ごとに取ることにより、前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたか否かを示す論理和情報を生成する論理和情報生成ステップと、
    前記ソースボリュームの各管理領域について、前記論理和情報が前記リストア世代から最新の世代までのいずれの世代においても当該管理領域内のデータが更新されていないことを示す場合には、前記リストア世代のデータを抽出する処理を実行せず、前記論理和情報が前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたことを示す場合には、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出ステップと、
    前記抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新ステップと
    を含むことを特徴とするリストア方法。
  6. 前記ストレージ装置が、
    前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定ステップと、
    前記更新情報を、前記判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成ステップと
    をさらに含むこと特徴とする請求項に記載のリストア方法。
  7. ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストアプログラムであって、
    前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手順と、
    前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手順と、
    リストア実行指示を前記ホスト装置から受け付ける受付手順と、
    前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手順と、
    前記リストア世代から最新の世代までの各世代の更新情報の論理和を前記ソースボリュームの管理領域ごとに取ることにより、前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたか否かを示す論理和情報を生成する論理和情報生成手段と、
    前記ソースボリュームの各管理領域について、前記論理和情報が前記リストア世代から最新の世代までのいずれの世代においても当該管理領域内のデータが更新されていないことを示す場合には、前記リストア世代のデータを抽出する処理を実行せず、前記論理和情報が前記リストア世代から最新の世代までの少なくとも一つの世代において当該管理領域内のデータが更新されたことを示す場合には、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手順と、
    前記抽出手順で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手順と
    をコンピュータに実行させることを特徴とするリストアプログラム。
  8. 前記抽出手順は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする請求項に記載のリストアプログラム。
  9. 前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手順と、
    前記更新情報を、前記判定手順により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手順と
    をさらにコンピュータに実行させることを特徴とする請求項に記載のリストアプログラム。
JP2008312824A 2008-12-09 2008-12-09 ストレージ装置、リストア方法およびリストアプログラム Active JP4833273B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008312824A JP4833273B2 (ja) 2008-12-09 2008-12-09 ストレージ装置、リストア方法およびリストアプログラム
US12/606,246 US8229892B2 (en) 2008-12-09 2009-10-27 Storage apparatus and data restoring method used therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008312824A JP4833273B2 (ja) 2008-12-09 2008-12-09 ストレージ装置、リストア方法およびリストアプログラム

Publications (2)

Publication Number Publication Date
JP2010140065A JP2010140065A (ja) 2010-06-24
JP4833273B2 true JP4833273B2 (ja) 2011-12-07

Family

ID=42232179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008312824A Active JP4833273B2 (ja) 2008-12-09 2008-12-09 ストレージ装置、リストア方法およびリストアプログラム

Country Status (2)

Country Link
US (1) US8229892B2 (ja)
JP (1) JP4833273B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014286A (ja) * 2010-06-29 2012-01-19 Toshiba Corp ストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラム
US9208071B2 (en) * 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
JP2013029911A (ja) * 2011-07-27 2013-02-07 Fujitsu Ltd 制御装置、制御方法およびストレージ装置
JP5772443B2 (ja) * 2011-09-22 2015-09-02 富士通株式会社 ストレージ装置及びプログラム
JP6064608B2 (ja) 2013-01-17 2017-01-25 富士通株式会社 ストレージ装置、バックアッププログラム、およびバックアップ方法
CN106033452B (zh) * 2015-03-17 2019-06-25 阿里巴巴集团控股有限公司 一种数据更新方法及装置
JP7225852B2 (ja) * 2019-01-31 2023-02-21 富士通株式会社 ストレージ制御装置、ストレージシステムおよびバックアップ制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62210552A (ja) * 1986-03-11 1987-09-16 Nec Corp フアイルリカバリ方式
JP3260923B2 (ja) 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
JP4115060B2 (ja) 2000-02-02 2008-07-09 株式会社日立製作所 情報処理システムのデータ復旧方法及びディスクサブシステム
JP2005235058A (ja) 2004-02-23 2005-09-02 Hitachi Ltd スナップショット取得方法、スナップショット取得装置及びスナップショット取得機能を備えたコンピュータシステム
JP4550541B2 (ja) 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP4749112B2 (ja) 2005-10-07 2011-08-17 株式会社日立製作所 記憶制御システム及び方法
JP4890048B2 (ja) * 2006-02-24 2012-03-07 株式会社日立製作所 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
US7685171B1 (en) * 2006-09-22 2010-03-23 Emc Corporation Techniques for performing a restoration operation using device scanning

Also Published As

Publication number Publication date
US8229892B2 (en) 2012-07-24
US20100145915A1 (en) 2010-06-10
JP2010140065A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
JP4833273B2 (ja) ストレージ装置、リストア方法およびリストアプログラム
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
CN102165422B (zh) 固件更新装置以及方法
JP4419884B2 (ja) データ複製装置、方法及びプログラム並びに記憶システム
JP4385215B2 (ja) スナップショットシミュレーション機能を有するディスクアレイ装置
US20070245069A1 (en) Storage Device, Memory Management Method and Program
JP5669823B2 (ja) チェンジトラッキングを用いたシステムリカバリ方法
JP2007140746A (ja) 計算機システム及び管理計算機並びにリカバリ管理方法
JP2006107162A (ja) ストレージシステム
CN105988895B (zh) 快照处理方法及装置
JP6011272B2 (ja) ストレージ装置、復旧方法、および復旧プログラム
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
WO2006011186A1 (ja) コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
CN111966531A (zh) 数据快照方法、装置、计算机设备及存储介质
JP2010009553A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP4741976B2 (ja) ディスクアレイ装置およびデータ管理方法
JP2007328438A (ja) 情報処理装置、そのデータバックアップ及び復旧方法
JPH08212142A (ja) データベースのデータバックアップシステム
JP7214381B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP7246869B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP4143952B2 (ja) メモリバックアップ方法および装置
TWI416319B (zh) 使用獨立磁碟備援陣列之電腦系統的開機方法
JPH10260859A (ja) コンピュータシステム
JP2006040065A (ja) データ記憶装置およびデータ記憶方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101224

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4833273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3