JP4809040B2 - ストレージ装置及びスナップショットのリストア方法 - Google Patents

ストレージ装置及びスナップショットのリストア方法 Download PDF

Info

Publication number
JP4809040B2
JP4809040B2 JP2005323323A JP2005323323A JP4809040B2 JP 4809040 B2 JP4809040 B2 JP 4809040B2 JP 2005323323 A JP2005323323 A JP 2005323323A JP 2005323323 A JP2005323323 A JP 2005323323A JP 4809040 B2 JP4809040 B2 JP 4809040B2
Authority
JP
Japan
Prior art keywords
volume
restore
data
data block
differential
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
JP2005323323A
Other languages
English (en)
Other versions
JP2007133471A (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 JP2005323323A priority Critical patent/JP4809040B2/ja
Priority to US11/331,087 priority patent/US7437603B2/en
Publication of JP2007133471A publication Critical patent/JP2007133471A/ja
Application granted granted Critical
Publication of JP4809040B2 publication Critical patent/JP4809040B2/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/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
    • 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)
  • 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

本発明は、ストレージ装置のデータのスナップショット及びそのリストア方法に関する。
企業のデータを格納するストレージとして、LAN(Local Area Network)に接続し安価且つ容易にファイルを管理できるNAS(Network Attached Storage)が多く使われている。NASの主要サービスとしてファイル共有サービスとスナップショットサービスがある。ファイル共有サービスとは、LANに接続された複数のNASに対してNASのファイルシステムを公開し、ファイルの作成及びファイルの読み書きを可能とするサービスである。スナップショットサービスとは、運用中のファイルシステム(運用ファイルシステム)のある時点の静止化イメージであるスナップショットをNASクライアントに提供するサービスである。運用ファイルシステムのファイルが人為ミスやアプリケーションの障害等によって消失または破壊された場合、スナップショットに残されたファイルを運用ファイルシステムに書き戻すことによってスナップショット生成時点のデータに復旧することができる。
近年、NASは企業の基幹システムや大規模なWebシステムなどにも多く使用されている。このようなシステムではデータの可用性が重要となるため、運用中のファイルシステムのデータが消失又は破壊された場合、これまで運用してきたファイルシステムを一貫性を保ったデータセットで、可能な限り早くに復旧したいという要求が高まっている。
NASにおいて、上記の要求を満たすには、一貫性を保ったデータセットであるスナップショットのデータを運用ファイルシステムに瞬時に反映させる機能が必要である。以下ではこの機能を瞬間リストアと呼ぶ。瞬間リストアを実現する技術として、例えば、特許文献1に記載の技術が知られている。この技術は、運用中のファイルシステム(運用ファイルファイルシステム)を親とした書き込み可能なスナップショットを瞬時に作成する技術である。これによって運用ファイルシステムのデータが破壊されても、書き込み可能なスナップショットを運用ファイルシステムにマウントしなおすことによって、スナップショット作成時点の一貫性のあるデータで運用を瞬時に再開することができる。また、非特許文献1に記載されている親ボリュームとスナップショットボリュームを物理的に引き離すスプリット処理を使用することによって、スナップショットボリュームを元の運用ボリュームと同じボリュームに昇格させることができる。この二つの機能によって、瞬間リストアを実現している。
次に特許文献1と非特許文献1に記載の技術を用いて瞬間リストアを実現するために、管理者が必要とする手順を説明する。まず管理者は、NASの運用中に通常の読み取り専用のスナップショットの場合と同様に、運用ファイルシステムのデータを格納している運用ボリュームの複製であるスナップショットボリュームを定期的に作成しておく。そして何らかの障害によって運用ボリュームのデータが破壊された場合、復旧したいデータセットを持つスナップショットボリュームを選択し、運用ファイルシステムをスナップショットボリュームにマウントしなおす。
これによって運用ファイルシステムが過去のスナップショットによって、瞬時に復旧された様に見える。その後、管理者は明示的にスプリット処理を起動する。スプリット処理は親ボリュームとスナップショットが共有している親ボリューム内のデータを、スナップショットボリュームへコピーする。この処理が完了した後、運用ファイルシステムをマウントしているスナップショットボリュームは、障害発生前の運用ボリュームと同様の状態で使用できるようになる。
米国特許第6,771,843号 「Flex Cloneボリュームの概説」、第4頁〜第6頁、[online]、「平成17年9月17日検索」、インターネット<http://www-jp.netapp.com/tech_library/ftp/3347.pdf>
しかしながら、上記のような特許文献1の書き込み可能なスナップショット作成技術において、スナップショットボリュームは作成後にそのボリュームに対して書かれたデータのみを格納しており、そのほかのデータは親ボリュームである運用ボリュームに格納されているデータを運用ボリュームと共有している。また、前記非特許文献1に記載のスプリット処理は、親ボリュームとクローンボリュームが共有している親ボリューム内のデータをクローンボリュームへコピーする処理である。そのため、運用ボリュームに格納されているデータが多ければ多いほど、また、クローン作成から運用ボリュームに対するデータ更新量が少なければ少ないほど、スプリット処理は大量の共有データを運用ボリュームからクローンボリュームへコピーすることになる。
その結果、長期間にわたってNAS全体は高負荷の状態が継続することになる。このため、瞬時に運用を復旧したにもかかわらず、長時間に渡ってサービスレベルが低下した状態が続く。また、スプリット処理はデータのコピーであるため、リストア処理中にNAS全体のディスク容量が足りなくなり、途中で処理が失敗する場合も出てくる。すなわち、前記非特許文献1では、親ボリュームのクローンを定期的に作成し、リストアする際にはクローンを選択して、親ボリュームと選択したクローンが共有しているデータをクローンボリュームにコピーする。この場合では、親ボリュームから消失したデータが少ないほど(親ボリュームとクローンの共有データが多いほど)、バックグラウンドのコピー処理の負荷が高くなる。そして、親ボリュームコピー先のクローンボリュームが同一容量であっても、選択したクローンのデータが多ければ、コピー先のクローンボリュームが容量不足となってリストアが停止することになる。
そこで本発明は、上記問題点に鑑みてなされたもので、ストレージ装置のスナップショットの瞬間リストアにおいて、サービス復旧後のサービスレベルが長時間に渡って低下する問題の防止と、運用ボリューム復旧時のディスク容量不足による失敗を防止することを目的とする。
本発明は、クライアントコンピュータからアクセス可能なデータを格納する運用ボリュームと、前記運用ボリュームと仮想スナップショットボリュームの差分データを格納する差分ボリュームと、を備えたストレージ装置が前記仮想スナップショットボリュームの差分データを前記運用ボリュームに上書きしてリストア処理を行うスナップショットのリストア方法において、前記ストレージ装置は、管理コンピュータからリストア元の仮想スナップショットボリュームの識別子を含むリストア開始指令を受け付ける手順と、前記リストア開始指令を受け付けると、リストアの完了を前記管理コンピュータに応答してリストア処理の完了に見せかける手順と、前記リストア開始指令の受付に基づいて、前記リストア元の仮想スナップショットボリュームのデータブロックが前記差分ボリュームと運用ボリュームのいずれのデータブロックにあるかを仮想スナップショットボリュームの識別子毎に予め設定した差分ブロック管理部を参照して、前記リストア対象のデータブロックについて実際のデータを格納したボリュームが前記運用ボリュームと差分ボリュームのいずれであるかを特定し、前記リストア対象のデータブロックが差分ボリュームにある場合には、前記差分ブロック管理部が指し示す差分ボリュームのデータブロックに格納されたデータを前記運用ボリュームの前記データブロックにコピーしてリストアを実行する手順と、リストア処理の期間中に前記クライアントコンピュータから前記運用ボリュームに対するアクセス要求を受け付ける手順と、前記リストア処理の期間中に前記アクセス要求を受け付けたときには、前記リストア処理の進行状況に基づいて運用ボリュームのデータと差分ボリュームのデータとを組み合わせたリストア後の仮想的な運用ボリュームである仮想運用ボリュームへのアクセスに切り換えて、想運用ボリュームに対して前記クライアントコンピュータからのアクセス要求を実施する手順と、を含み、前記リストアを実行する手順は、前記リストア先の運用ボリュームの前記データブロック毎にリストアによるアクセスの履歴を保持するアクセス管理部を参照して、該当するデータブロックについてアクセスの履歴の有無を判定する手順と、前記データブロックについてアクセスの履歴が無い場合には、当該データブロックのリストアを実行し、前記データブロックについてアクセスの履歴がある場合には、当該データブロックのリストアを終了する手順と、前記アクセス管理部の当該データブロックについてアクセスの履歴を設定する手順と、を含み、前記仮想運用ボリュームに対して前記クライアントコンピュータからのアクセス要求を実施する手順は、前記アクセス要求が読み込みである場合には、前記アクセス管理部を参照して読み込み対象のデータブロックについてアクセスの履歴があれば、前記運用ボリュームの当該データブロックからデータを読み込む手順と、前記アクセス要求が読み込みである場合には、前記アクセス管理部を参照して読み込み対象のデータブロックについてアクセスの履歴が無い場合には、前記差分ブロック管理部を参照してリストア元のスナップショットボリュームの識別子のデータブロックに対応する差分ボリュームまたは運用ボリュームの何れかよりデータを読み込む手順と、を含む。
したがって、本発明によれば、リストア開始直後からクライアントコンピュータはリストア完了後の状態でストレージ装置にアクセスを行うことができる。そして、リストア処理は差分ボリュームから更新差分のデータのみについて運用ボリュームへコピーすればよいので、転送するデータ量を削減してリストア中のストレージ装置の負荷を低減することができ、前記従来例のようにストレージ装置の高負荷によりアクセス性能が低下するのを防止することができる。また、差分ボリュームから運用ボリュームにリストアするデータは過去の運用ボリュームの更新差分であるので、前記従来例のようにリストア中に、運用ボリュームのディスク容量が不足するのを確実に回避できる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
(システムの全体構成)
図1は本発明の第1実施形態を含む情報システムの全体構成を示すブロック図である。NASクライアント101はネットワーク103を介してNAS統合装置104に接続されている。ここでネットワーク103はLANでも良いし、インターネットやWANでも良い。また、NAS統合装置104を制御するNAS管理端末102がネットワーク103が接続される。
NAS統合装置104はNASクライアント101に対して、公知の技術によって実現されるファイル共有サービスとスナップショットサービス、及び本発明によって実現される瞬間リストアを提供する。以下では、これらのサービスを総称してNASサービスと呼ぶ。
NAS統合装置104は、複数のディスクドライブを備えたディスク装置120と、ディスク装置120を制御するコントローラ10を含んで構成されている。なお、コントローラ10は後述するNASサーバ装置110を構成する。
NAS統合装置104のコントローラ10には、CPU11、メモリ12、データ転送コントローラ13、ネットワークインターフェース14及びストレージ用のインターフェース15が設けられている。なお、メモリ12にデータキャッシュ(図示省略)を設けても良く、あるいは、データキャッシュをデータ転送コントローラ13側に設けても良い。
メモリ12には後述する制御プログラム(図2参照)がロードされており、CPU11が制御プログラムを呼び出して実行することによって後述する各種処理が行われる。
データ転送コントローラ13は、CPU11、ネットワークインターフェース14、ストレージインターフェース15及びメモリ12の間でデータを転送する。
ディスク装置120には、NASクライアント101がデータの読み書きを行う運用ボリューム(Primary Volume)141と、運用ボリューム(主ボリューム)141とスナップショットボリューム(仮想スナップショットボリューム)の更新差分データを格納する差分ボリューム142が設定される。なお、差分ボリューム(Differential Volume)142には、図2で示すように、運用ボリューム141のスナップショット(スナップショットボリューム)を管理する差分ブロック管理テーブル(Copy On Write TABLE)203が格納される。また、図示はしないが、NASクライアント101がアクセスを行う運用ボリューム141と差分ボリューム142は複数存在するものとする。
図2は、NAS統合装置104の機能を示すブロック図である。NAS統合装置104は、NASサービスのための処理を実行するNASサーバプログラム群115を搭載するNASサーバ装置110、実データを格納するボリューム121を搭載したディスク装置120、及びこれらの構成要素を接続する内部ネットワーク130から構成される。ここで内部ネットワーク130は、システム内に内蔵した専用バスでも良いし、SANやLANなどの汎用ネットワークでも良い。
NASサーバプログラム群115は、公知の技術であるNASサーバプログラム111、ファイルシステム処理プログラム112、スナップショット管理プログラム(スナップショット管理部)113、及び本発明の瞬間リストア管理プログラム114から構成される。このプログラム群115は、ネットワーク103を介してNAS管理端末102からのコマンドを受け付けて、サービスを提供するための処理を行う。
NASサーバプログラム111は、NASクライアント101が要求するファイルのアクセス要求に応じて、ファイルシステム処理プログラム112に対してファイルやディレクトリの読み出し及び書き込み処理を実行し、その結果を要求元であるクライアント101に送り返す。
ファイルシステム処理プログラム112は、NASサーバプログラム111が発行するファイルやディレクトリの読み出し及び書き込み処理の要求に応じて、ファイルやディレクトリを格納しているボリュームと、アクセスするブロック(データブロック)位置、サイズを指定した、データの読み出しや、書き込み処理をスナップショット管理プログラム113に対して発行する。
スナップショット管理プログラム113は、ディスク装置120のディスク領域をボリュームという論理的な領域で管理し、スナップショットの処理を行う。図3に物理的なボリュームとスナップショット管理プログラム113が提供する仮想的なボリューム群の関係を示す。このスナップショット管理プログラム113は、運用ファイルシステムを格納するボリュームである運用ボリューム141に加え、スナップショットの維持に必要な差分データを格納するボリュームである差分ボリューム142を管理する。そして運用ボリューム141と差分ボリューム142のデータを合成することにより、運用ボリューム141の過去の静止化イメージを提供する仮想的なボリュームである仮想スナップショットボリューム152を構成する。
このため、スナップショット管理プログラム113は、差分ボリューム142に格納した差分ブロック管理テーブル(差分ブロック管理部)203を管理し、運用ボリューム141と差分ボリューム142に格納されたデータのうち、差分ブロック管理テーブル203が指し示すブロックのデータを読み込むことで仮想スナップショットボリューム(Virtual Volume)152を生成する。このスナップショット管理プログラム113は、ファイルシステムから各ボリュームへの書き込み/読み出し要求を受け、それに応じた処理を行う。
また、スナップショット管理プログラム113は、定期的(例えば、1時間毎)にスナップショットを取得して、図3で示すように、仮想スナップショットボリューム152としてVVOL(No1)〜(Non)の複数の仮想スナップショットボリュームを生成する。なお、これら仮想スナップショットボリューム152の実体は、物理的なボリュームではなく差分ブロック管理テーブル(図中COW TABLE)203で管理される仮想的なボリュームである。
瞬間リストア管理プログラム114は、差分ブロック管理テーブル203に基づいて差分ボリューム142から運用ボリューム141へのデータのリストアを行うと共に、スナップショットから運用ボリューム141へのリストアが瞬時に完了したと見せかけるため、運用ボリューム141とスナップショットボリューム152を合成したイメージである書き込み可能な仮想ボリューム(仮想運用ボリューム151)を構成する。瞬間リストア管理プログラム114の実行時、メモリ12上にあるリストアプロセス数カウンタ216の値を変える事によって、運用ボリューム141から仮想運用ボリューム151の移行をファイルシステムから見て透過的に行う。
(スナップショット管理プログラムの構成)
図4は公知の技術であるスナップショット管理プログラム113を示した図である。スナップショット管理プログラム113は、ファイルシステム処理プログラム112が発行する処理要求に応じて書き込み処理サブプログラム201、読み出し処理サブプログラム202の何れかを呼び出す。これらのサブプログラムは仮想スナップショットボリューム152と、運用ボリューム141または差分ボリューム142の何れかに存在する実データの配置の対応関係を示したテーブルである差分ブロック管理テーブル203を参照・更新することによって、スナップショットを提供する。
スナップショット管理プログラム113は、運用ボリューム141に対して書き込み(更新)があると、図5で示すようにコピーオンライト処理により、更新前のデータを差分ボリューム142に退避させ、その後、運用ボリューム141に新たなデータを書き込む。図5は、データBを運用ボリューム141に書き込む場合を示している。そして、更新差分の情報を差分ブロック管理テーブル203に書き込んで、差分スナップショットを仮想スナップショットボリュームとして管理する。この場合、書き込み処理サブプログラム201が次のように機能する。
データBを書き込む運用ボリューム141のブロック#123にある古いデータAを退避させるため、差分ボリューム142に退避用のブロック#456を確保する。運用ボリューム141のブロック#123のデータAを、差分ボリューム142のブロック#456に書き込んで退避させる。古いデータAの退避が完了した後に、新たなデータBを運用ボリューム141のブロック#123に書き込む。さらに、書き込み処理サブプログラム201は、差分ブロック管理テーブル203に現在のスナップショットの位置に、差分ボリューム142のブロック#456を書き込んで、処理を終了する。
差分ブロック管理テーブル203は、図6で示すように、スナップショットボリューム152の世代を示すVVOL番号2031と、各スナップショットボリューム152のブロック位置を示すブロックアドレス2032と、VVOL番号2031とブロックアドレス2032が示す位置のデータ状態2033から構成される。また、差分ブロック管理テーブル203は、各VVOL番号2031毎に、運用ボリューム141と差分ボリューム142の識別子を保持する。
データ状態2033は、値が0の場合は運用ボリューム(PVOL)141の同一ブロックアドレスのデータを指し示し、値が0でない場合には差分ボリューム142のブロックアドレスを示す。例えば、上記図5のように、データBの更新をスナップショットボリュームNo.3で取得した場合には、VVOL番号2031がNo.3でブロックアドレス2032が123のデータ状態2033に差分ボリューム142のブロックアドレスとして456が書き込まれる。したがって、スナップショットボリュームVVOL No.3のデータを読み込むと、ブロックアドレスが1〜122、124〜nは運用ボリューム141の同一ブロックアドレスのデータを読み込み、ブロックアドレス123のデータは差分ボリューム142のブロックアドレス456から読み込むことになる。このように、差分ブロック管理テーブル203は、更新差分データを格納した差分ボリューム142のデータブロックと、更新差分データのあった運用ボリューム121のデータブロックと、スナップショットボリューム152のデータブロックの対応関係を設定するものである。
(瞬間リストア管理プログラムの構成)
図7は本発明の瞬間リストア管理プログラム114の構成を示したブロック図である。瞬間リストア管理プログラム114は、瞬間リストア制御サブプログラム211、バックグラウンドリストアサブプログラム212、オンデマンドサブリストアプログラム213、ブロックアドレス変換サブプログラム214、リストア管理情報215から構成される。
瞬間リストア制御サブプログラム211は、管理者がNAS管理端末102から指令した瞬間リストアの要求を受け付け、瞬間リストアの処理全体の流れを制御するサブプログラムである。
バックグラウンドサブプログラム212は、リストア元として指示された仮想スナップショットボリューム152の中から差分ボリューム142に格納されているブロックのデータを、指定された運用ボリュームへ定められた順番に従ってリストアしていくサブプログラムである。
ここで、リストアするブロックの順序は、ブロック番号の昇順、降順でも良いし、アクセス頻度などの統計値の大小の順であっても良い。またリストア対象のブロックが他のサブプログラムによって既にリストアされている場合は、選択したブロックのリストアを行わずに次のブロックのリストアに移る。
オンデマンドリストアサブプログラム213は、仮想運用ボリューム151への書き込みを実現するめに、バックグラウンドリストアサブプログラム212の稼動中に書き込み処理サブプログラム201によって呼び出されるサブプログラムである。オンデマンドリストアサブプログラム213は、後述するように、書き込むデータがリストアが完了していないブロック上にある場合に、そのブロックに対してオンデマンドでリストアを実行する。これによって書き込み処理後の最新のデータがバックグラウンドで実行されるリストアによって書きつぶされることを防ぐ。尚、このオンデマンドのリストアは書き込み対象のデータとブロックが一致している場合は不要であるが、本実施形態では制御を簡便化するため、データとブロックの一致/不一致に関わらずオンデマンドのリストアを行う。
ブロックアドレス変換サブプログラム214は、仮想運用ボリューム151からの読み出しを実現するために、バックグラウンドのリストア稼動中に読み出し処理サブプログラム202によって呼び出されるサブプログラムである。仮想運用ボリューム151において、既にリストアが完了したブロックの実体は運用ボリューム141の同ブロック番号内に格納されており、未だリストアが完了していないブロックの実体はリストア元のスナップショットボリューム152の同ブロック番号に格納されている。このため、ブロックアドレス変換サブプログラム214は、読み出し対象のブロックが未だリストアが完了していないものである場合、読み出し対象のボリュームを運用ボリューム141からリストア元のスナップショットボリューム152へ変更し、読み出し処理サブプログラムに渡す。
リストア管理情報215は、瞬間リストアを管理するために瞬間リストア制御サブプログラム211内のサブプログラム群が使用する情報であり、リストア処理の進行状況を示すものである。通常はNASサーバ装置110のメモリ12上に格納される情報であるが、信頼性のことを考慮してディスク装置120のボリューム上に配置する場合もある。
(瞬間リストア管理プログラムが扱うデータ構造)
図8は瞬間リストア管理情報215の構成を示したブロック図である。瞬間リストア管理情報215は、リストアプロセス数カウンタ216、リストア管理テーブル217、及びアクセス済みブロックビットマップ218から構成される。
リストアプロセス数カウンタ216は、バックグラウンドリストアサブプログラム212が起動している数を示す。このリストアプロセス数カウンタ216はバックラウンドリストアサブプログラム212の開始/終了によってインクリメント/デクリメントされる。このカウンタ216は、書き込み処理サブプログラム201、読み出し処理サブプログラム202が、それぞれオンデマンドリストアサブプログラム213、ブロックアドレス変換サブプログラム214を呼び出す必要があるかを判定するために使用される。
リストア管理テーブル217は、複数のバックラウンドリストアがそれぞれ異なる運用ボリューム141に対してリストアすることを管理するために使用される。このリストア管理テーブル217は、バックグラウンドリストアの番号を示す列301、リストア先の運用ボリュームの識別子を示す列302、リストア元のスナップショットボリュームの識別子を示す列303、リストア中のリストア元ボリューム(スナップショットボリューム152)のブロック番号を示す列304、及びアクセス済みブロックビットマップ218(後述)のポインタから構成される。リストア管理テーブル217を参照することにより、バックグラウンドリストア番号301で示されるリストア処理が、現在どのブロックについて処理を実行しているのかを把握することができる。
アクセス済みブロックビットマップ218は、バックグラウンドリストア番号301毎に設定されるもので、運用ボリューム141(リストア先ボリューム)のどのブロックがリストア済みであり、どのブロックが未だリストアされていないかを管理するためのアクセス済みブロックビットマップ218(アクセス管理部)であり、メモリ12上に配置される管理マップまたは管理表である。すなわち、アクセス済みブロックビットマップ218は、リストア先の運用ボリュームのデータブロック単位でリストアの履歴(リストアによるアクセスの履歴)を保持する。アクセス済みブロックビットマップ218の1ビットが運用ボリューム141の1ブロックに対応する。そのため本ビットマップ218は、ボリュームを構成するブロック数に相当するビット幅を持つ。本実施形態ではビットの値が1であるときに対応するブロックがリストア済みであることを示し、逆にビットの値が0のときに対応するブロックがリストアされていないことを示す。
(瞬間リストア制御サブプログラムの処理フロー)
図9は瞬間リストア制御サブプログラム211が実施する瞬間リストアの処理全体のフローチャートである。瞬間リストア制御サブプログラム211は、NAS管理端末102から瞬間リストアの開始指示を受けると、まずリストア元の仮想スナップショットボリューム152とリストア先の運用ボリューム141が共に正常かを調べる(501)。なお、リストア元の仮想スナップショットボリューム152は、NAS管理端末102から管理者が指示するものであり、リストア先ボリュームは、仮想スナップショットボリューム152が指し示す運用ボリューム141となる。
どちらか一つのボリューム、又は両方のボリュームが異常な場合は以降の処理を行わず瞬間リストアを終了する。どちらのボリュームも正常の場合は、リストア先ボリューム141がリストア管理テーブル217に未登録かどうかを調べる(502)。リストア先ボリューム141が未登録ではなく、既にリストア管理テーブル217に登録されている場合、他の瞬間リストアがリストア先の運用ボリュームをバックグラウンドでリストア中であるため、以降の処理を行わず瞬間リストアを終了する。一方、リストア先ボリュームがリストア管理テーブル217に未登録である場合、リストア先の運用ボリュームのブロック数以上のビット数を持つアクセス済みブロックビットマップ218をメモリ12上に確保し、全てのビットを‘0’に初期化する(503)。
アクセス済みブロックビットマップ218の全てのビットを初期化し終わると、このサブプログラム211は、リストア管理テーブル217に、リストア先の運用ボリューム141の識別子を図8に示すリストア管理テーブル217の列302へ設定し、リストア元の仮想スナップショットボリューム152の識別子を同じくテーブル217の列303に設定し、アクセス済みブロックビットマップ218のポインタを列305に登録する。そして最後にバックグラウンドリストアサブプログラム212を起動し(505)、処理を終了する(505)。
(バックグラウンドリストアサブプログラムの処理フロー)
図10はバックグラウンドリストアサブプログラム212の処理全体のフローチャートである。バックグラウンドリストアサブプログラム212は、瞬間リストア制御サブプログラム211より起動されると、まず、リストアプロセス数カウンタ216をインクリメントする(511)。このカウンタ216が1以上であるとき、オンデマンドリストアサブプログラム213やブロックアドレス変換サブプログラム214は有効化されており、これらを書き込み処理サブプログラム201や読み出し処理サブプログラム202が呼び出す。次に自サブプログラム212をバックラウンド処理化する(512)。このステップ512の完了後、瞬間リストア制御サブプログラム211の応答がNAS管理端末102に対して返る。そのため、管理者から見ると、コマンド投入後直ぐにリストアが完了した様に見える。
次に、バックグラウンドリストアサブプログラム212は、リストア対象のブロック番号を決定する(513)。ブロック番号の決定方法はボリュームの先頭から番号をインクリメントしても良いし、ボリュームの最後からデクリメントしても良い。あるいは、ブロックへのアクセス頻度の統計をとり、アクセス頻度の低いブロック番号から決めていってもよい。
次に、決定したブロック番号をリストア管理テーブル217のリストア中ブロック番号304に登録する(514)。次にアクセス済みブロックビットマップ218の中でリストア対象ブロックのブロック番号に対応するビットが0かをチェックする(515)。対応するビットが1の場合(0ではない場合)、選択したブロックは自サブプログラム又はオンデマンドリストアサブプログラム213によって既にアクセスされているため以降の処理は行わずに、次のリストア対象ブロック番号を決定するステップ(513)に戻る。一方、バックグラウンドリストアサブプログラム212の対応するビットが0の場合、選択したブロックは自サブプログラム212又はオンデマンドリストアサブプログラム213によってまだ一度もアクセスされていないため、リストア実行のための処理を継続する。
次に差分ブロック管理テーブル203からリストア対象ブロックに対応するエントリを読みだし(516)、エントリ内にあるリストア対象ブロックの配置アドレスを参照することによって、リストア元スナップショットのリストア対象ブロックの実データが差分ボリューム142にあるか否かを調べる(517)。リストア対象ブロックの実データが差分ボリューム412に格納されている場合、このサブプログラム212は実データを差分ボリューム142の格納先ブロックから運用ボリューム141のリストア対象ブロックへコピーする(518)。リストア対象ブロックの実データが差分ボリューム142に格納されていなかった場合、実データは運用ボリューム141上にあるためステップ518をスキップする。これでリストア又はリストアのチェックが完了したため、アクセス済みブロックビットマップ218のリストア対象ブロックに対応するビットを1にする。
次に全てのブロックに対してリストアが完了したかを判定する(520)。つまり、アクセス済みブロックビットマップ218の全ビットが1になったかを判定し、0のビットがあれば全てのブロックに対してリストアが完了していないので、ステップ513に戻り、データブロックのリストアを続行する。全てのブロックに対してリストアが完了した場合、リストア管理テーブル217の自プロセスのエントリを初期化し(521)、アクセス済みブロックビットマップ218をメモリ12から解放し(522)、最後にリストア中プロセス数カウンタをデクリメントして、処理を終了する。
以上の図9、図10の処理により、NAS統合装置104はリストアの指令を受けると、リストア済みブロックビットマップ208と、差分ブロック管理テーブル203及びリストア管理テーブル217を用いて、指定された仮想スナップショットボリューム152の内容となるように、差分ボリューム142から運用ボリューム141にデータの複写を実行する。そして、本発明のリストアでは、仮想スナップショットボリューム152と運用ボリューム141の差分データのみを転送すればよいので、差分ボリューム142から運用ボリューム141へのデータ転送量を大幅に低減することができ、リストア処理に要する負荷を低減できる。
前記非特許文献1では、親ボリュームのクローンを定期的に作成し、リストアする際には選択したクローンと親ボリュームが共有しているデータをクローンボリュームにコピーする場合では、親ボリュームから消失したデータが少ないほど(親ボリュームとクローンの共有データが多いほど)、バックグラウンドのコピー処理の負荷が高くなる。
これに対して、本願発明では、スナップショットボリューム152と運用ボリューム141の差分データのみをコピーするので、前記従来例に比して低負荷でリストア処理を実現できるのである。
また、前記非特許文献1では、親ボリュームと選択したクローンのデータをクローンボリュームへコピーするため、クローンの容量が大きい場合には、コピー先のクローンボリュームの容量が不足してリストアが中断する場合がある。
これに対して、本願発明では、仮想スナップショットボリューム152に基づいて、差分ボリューム142から更新差分のブロックを運用ボリューム141に戻すだけであるので、運用ボリューム141のデータ量はスナップショットボリューム152が示すブロックのデータ量と同一であり、運用ボリューム141より大きくなることはない。このため、前記従来例のようにリストア処理によって容量が不足するような事態を確実に回避でき、リストア処理の信頼性を高めることができるのである。
(書き込み処理サブプログラムとオンデマンドリストア処理プログラムの処理フロー)
図11は書き込み処理サブプログラム201の処理フローを示す図である。書き込み処理サブプログラム201は、運用ボリューム141に対する書き込み要求を受けると、まず初めにリストア中プロセス数カウンタ216の値が1以上であるかを調べる(531)。カウンタの値が1以上でない(0である)場合、リストアが行われていないので通常のデータ書き込みを行い(533)、処理を終了する。カウンタの値が1以上の場合、リストア中であるためオンデマンドリストアサブプログラム213を実行した後(532)、通常のデータ書き込みを行い(533)、処理を終了する。
図12はオンデマンドリストアサブプログラム213の処理フローを示す図である。オンデマンドリストアサブプログラム213は、書き込み処理サブプログラム201に呼び出されると、まず、書き込み対象のボリュームがリストア管理テーブル217に登録されているかを調べる(541)。登録されていない場合、その運用ボリューム141はリストア元ではないため、何も行わずにサブプログラムを終了する。登録されている場合、その運用ボリュームはリストア元としてバックグラウンドでリストアされている最中であることがわかる。この場合、オンデマンドリストアサブプログラム213は、書き込み要求のデータを含むデータブロックのアドレスを求め、リストア対象ブロックとする(542)。次にリストア管理テーブル217に登録されているポインタからアクセス済みビットマップ218を参照し(544)、同ビットマップ218のリストア対象ブロックに対応するビットが0か1かをチェックする(545)。リストア対象ブロックに対応するビットマップ218のビットが1の場合、そのブロックはもうすでにリストア済みであるため、以降の処理を行わずにそのまま処理を終了する。リストア対象ブロックに対応するビットマップ218のビットが0の場合、差分ブロック管理テーブル203からリストア対象ブロックのエントリを読み出す(545)。そして、読み出したエントリからリストア対象ブロックのデータが差分管理ボリューム142に退避されているかを調べる(546)。リストア対象データブロックの実データが差分管理ボリューム142に格納されている場合、その実データを差分ボリューム142から運用ボリューム141のリストア対象データブロックへコピーする(547)。リストア対象データブロックの実データが差分管理ボリューム142に格納されていない場合、実データは運用ボリュームにあるためステップ547は行わずその次のステップに移る。その次のステップ548ではアクセス済みブロックビットマップ218のリストア対象ブロックに対応するビットを1にセットする(548)。次にリストア管理テーブル217の該当エントリのリストア中ブロック番号304とリストア対象ブロックが一致しないかを調べる(549)。両ブロック番号が一致した場合、リストア中ブロック番号304が別の値になるまでウェイトする(550)。これは、このオンデマンドリストアサブプログラム213の次に控えている通常の書き込みが、ステップ549でバックラウンドリストアサブプログラム213が実行中のデータブロックへのリストアを追い越してしまい、その後、通常書き込みによって書いたデータが古いリストアデータによって上書きされてしまうことを防止するためである。そして、ステップ550のウェイトが終わると、オンデマンドリストア処理が終了する。
以上の図11、図12の処理により、リストア中にNASクライアント101から書き込み要求があると、NAS統合装置104のスナップショット管理プログラム113は、リストア元の仮想スナップショットボリューム152から、運用ボリューム141と差分ボリューム142の内容をリストア処理の進行状況に応じて組み合わせてリストア後の仮想的な運用ボリューム151に見せかけてアクセスを行う。このため、リストア開始と同時に、NASクライアント101からはリストア完了後の状態でアクセスを受け付けることができる。
すなわち、書き込み対象のブロックが、リストア完了であれば運用ボリューム141に書き込みを行う。一方、書き込み対象のブロックリストア前であれば差分ボリューム142からスナップショットボリューム152が指し示すデータを運用ボリューム141へ書き込んでから書き込み要求のデータを運用ボリューム141に書き込む。この場合、一旦、差分ボリューム142の古いデータで運用ボリューム141を更新してから新たなデータを書き込むのは、リストアの単位が1ブロック単位ではないためである。このため、オンデマンドリストアサブプログラム213は、新たな書き込みを行うブロックを含む位置をリストアし、その後、新たなデータを運用ボリューム141に書き込む。これにより、複数ブロック単位でリストアを行ってリストア処理の速度を向上させながら、新たなデータがリストア処理により上書きされるのを確実に防ぐことができる。
(読み出し処理サブプログラムとブロックアドレス変換サブプログラムの処理フロー)
図13は読み出し処理サブプログラム202の処理を示すフローチャートである。読み出し処理サブプログラム202は、運用ボリューム141に対する読み出し要求を受けると、まず初めにリストア中プロセス数カウンタ216の値が1以上であるかを調べる(551)。カウンタの値が1以上でない(0である)場合、リストア処理は行われていないので、通常のデータ読み出しを行い(553)、処理を終了する。カウンタの値が1以上の場合、リストア中であるので、ブロックアドレス変換サブプログラム214を実行した後(532)、通常のデータ読み出しを行い(553)、処理を終了する。
図14はブロックアドレス変換サブプログラム214の処理を示すフローチャートである。ブロックアドレス変換サブプログラム214は、読み出し処理サブプログラム202に呼び出されると、まず、読み出し対象ボリュームがリストア管理テーブル217に登録されているかを調べる(561)。登録されていない場合は、該当ボリュームはリストア中でないので、ブロックアドレス変換サブプログラム214は何もせずに終了する。登録されている場合、該当ボリュームがリストア中であるため、読み出し対象データを含むブロックのアドレスを求める。そしてリストア管理テーブル217から読み出し対象ボリュームに対応するアクセス済みブロックビットマップ218のポインタを読み出す(563)。そしてアクセス済みブロックビットマップ218の読み出し対象ブロックに対応するビットが0か否かを調べる。ビットが0でない場合(1の場合)、もうそのブロックはリストア済みであり、運用ボリューム141にマッピングされているため、ブロックアドレス変換は行わず処理を終了する。一方、対応するビットが1の場合、読み出し対象ボリュームを、リストア管理テーブル217の該当エントリのリストア元ボリュームの欄に登録されている仮想スナップショットボリューム152とする(565)。
以上の図13、図14の処理により、リストア中にNASクライアント101から参照要求があると、NAS統合装置104のスナップショット管理プログラム113は、リストア元の仮想スナップショットボリューム152に基づいて、運用ボリューム141と差分ボリューム142の内容をリストア処理の進行状況に応じて組み合わせた仮想的な運用ボリューム151に見せかけてアクセスを受け付ける。したがって、リストア開始と同時にNASクライアント101からはリストア完了後の状態でアクセスを受け付けることができる。
(全体的な作用)
図15は、リストア処理の開始後にNASクライアント101から書き込み要求があった場合の処理の流れを示す説明図である。この例では、複数の世代のスナップショット(9時、10時、11時)のうち、時刻11:00の時点の仮想スナップショットボリューム152(VVOL3)を用いて運用ボリューム141をリストアする場合を示している。
NAS管理端末102が仮想スナップショットボリューム152(VVOL3)を指定して、NAS統合装置104にリストア開始を指定する。NAS統合装置104のNASサーバ装置110は瞬間リストア管理プログラム114を起動し、アクセス済みブロックビットマップ218を確保して、リストア管理テーブル217に対象ボリュームの設定を行う。
瞬間リストア管理プログラム114は、差分ブロック管理テーブル203を参照して、リストア元の仮想スナップショットボリューム152の識別子(この例では、0005)と、運用ボリューム141の識別子(この例では、0001)を上述のように設定して、差分ボリューム142から運用ボリューム141へのリストアを開始する。
リストア処理では、上述したように、リストア管理テーブル217のリストア中ブロック番号304に対応するリストア済みブロックビットマップ218を参照し(S1)、リストアが必要であれば差分ブロック管理テーブル203を参照して(S2)このブロックに対応するデータを差分ボリューム142から取得する。そして、取得したデータをブロック番号304に対応する運用ボリューム141のブロック番号にコピーする(S3)。なお、リストア中ブロック番号304で指示されたブロックが、差分ブロック管理テーブル203で0であれば、運用ボリューム141のデータがリストアするデータであるので、コピーは行わずに次の処理に進む。この処理を運用ボリューム141の所定の位置(例えば、先頭)から実施して、リストア済みブロックビットマップ218の全ビットが1になるまで繰り返す。
上記リストア中にNASクライアント101からデータCを運用ボリューム141に書き込む指令をNASサーバ装置110が受信すると、スナップショット管理プログラム113を起動する。スナップショット管理プログラム113は、オンデマンドリストアサブプログラム213により差分ボリューム142から時刻11:00の時点の仮想スナップショットボリューム152(VVOL3)に対応するデータAを差分ボリューム142のブロック456から運用ボリューム141のブロック123にコピーする(S3)。
書き込むブロックのリストアが完了すると、スナップショット管理プログラム113は運用ボリューム141のブロック123にデータCを書き込んで、処理を終了する。なお、上述したように、参照する場合もリストア済みブロックビットマップ218と差分ブロック管理テーブル203から、対象ブロックのデータを差分ボリューム142または運用ボリューム141の何れかより読み出すことができる。
以上のように、本発明によればリストア開始直後からNASクライアント101はリストア完了後の状態でアクセスを行うことができる。そして、リストア処理は差分ボリューム142から更新差分のデータのみについて運用ボリューム141へコピーすればよいので、転送するデータ量を削減してリストア中のNAS統合装置104の負荷を低減することができ、前記従来例のようにNASの高負荷によりアクセス性能が低下するのを防止することができる。特に更新差分データが少ないときには、差分ボリューム142から運用ボリュームに転送するデータ量も少なくなり、見かけ上リストアが完了した後のNAS統合装置104の負荷を低減できる。
以上のように、本発明によれば、NASのスナップショットの瞬間リストアにおいて、スナップショット取得後の運用ボリュームのデータ更新量が少ないにもかかわらずサービス復旧後のサービスレベルが長時間に渡って低下する問題を防止するとともに、運用ボリューム復旧(リストア)中のディスク容量不足による失敗を防止することができる。
なお、上記実施形態においては、NAS統合装置104に本発明を適用した例を示したが、SANに接続されるストレージ装置に適用しても良い。
また、上記実施形態では運用ボリューム141と差分ボリューム142が同一のストレージ装置内に配置された例を示したが、運用ボリューム141と差分ボリューム142が異なるストレージ装置に配置される場合も、本発明を適用することができる。
以上のように、本発明は差分スナップショットを利用する機能とリストア機能を備えたを備えたストレージ装置に適用することができる。
本発明の実施形態を示す情報システムの全体構成を示すブロック図。 NAS統合装置の機能を示すブロック図。 物理的なボリュームとスナップショット管理プログラムが提供する仮想的なボリューム群の関係を示す説明図。 スナップショット管理プログラムの構成を示すブロック図。 差分スナップショットの例を示す説明図。 差分ブロック管理テーブルの一例を示す説明図。 瞬間リストア管理プログラムの構成を示すブロック図。 瞬間リストア管理情報215の構成を示したブロック図。 瞬間リストア制御サブプログラムの一例を示す瞬間リストア処理のフロー。 バックグラウンドリストアサブプログラムの処理を示すフローチャート。 書き込み処理サブプログラムの処理を示すフローチャート。 オンデマンドリストアサブプログラムの処理を示すフローチャート。 読み出し処理サブプログラムの処理を示すフローチャート。 ブロックアドレス変換サブプログラムの処理を示すフローチャート。 リストア処理の開始後にNASクライアントから書き込み要求があった場合の処理の流れを示す説明図。
符号の説明
103 ネットワーク
104 NAS統合装置
113 スナップショット管理プログラム
114 瞬間リストア管理プログラム
120 ディスク装置
141 運用ボリューム
142 差分ボリューム
151 仮想スナップショットボリューム
203 差分ブロック管理テーブル
216 リストアプロセス数カウンタ
217 リストア管理テーブル
218 リストア済みブロックビットマップ

Claims (8)

  1. クライアントコンピュータからアクセス可能なデータを格納する運用ボリュームと、前記運用ボリュームと仮想スナップショットボリュームの差分データを格納する差分ボリュームと、を備えたストレージ装置が前記仮想スナップショットボリュームの差分データを前記運用ボリュームに上書きしてリストア処理を行うスナップショットのリストア方法において、
    前記ストレージ装置は、管理コンピュータからリストア元の仮想スナップショットボリュームの識別子を含むリストア開始指令を受け付ける手順と、
    前記リストア開始指令を受け付けると、リストアの完了を前記管理コンピュータに応答してリストア処理の完了に見せかける手順と、
    前記リストア開始指令の受付に基づいて、前記リストア元の仮想スナップショットボリュームのデータブロックが前記差分ボリュームと運用ボリュームのいずれのデータブロックにあるかを仮想スナップショットボリュームの識別子毎に予め設定した差分ブロック管理部を参照して、前記リストア対象のデータブロックについて実際のデータを格納したボリュームが前記運用ボリュームと差分ボリュームのいずれであるかを特定し、前記リストア対象のデータブロックが差分ボリュームにある場合には、前記差分ブロック管理部が指し示す差分ボリュームのデータブロックに格納されたデータを前記運用ボリュームの前記データブロックにコピーしてリストアを実行する手順と、
    リストア処理の期間中に前記クライアントコンピュータから前記運用ボリュームに対するアクセス要求を受け付ける手順と、
    前記リストア処理の期間中に前記アクセス要求を受け付けたときには、前記リストア処理の進行状況に基づいて運用ボリュームのデータと差分ボリュームのデータとを組み合わせたリストア後の仮想的な運用ボリュームである仮想運用ボリュームへのアクセスに切り換えて、想運用ボリュームに対して前記クライアントコンピュータからのアクセス要求を実施する手順と、を含み、
    前記リストアを実行する手順は、
    前記リストア先の運用ボリュームの前記データブロック毎にリストアによるアクセスの履歴を保持するアクセス管理部を参照して、該当するデータブロックについてアクセスの履歴の有無を判定する手順と、
    前記データブロックについてアクセスの履歴が無い場合には、当該データブロックのリストアを実行し、前記データブロックについてアクセスの履歴がある場合には、当該データブロックのリストアを終了する手順と、
    前記アクセス管理部の当該データブロックについてアクセスの履歴を設定する手順と、を含み、
    前記仮想運用ボリュームに対して前記クライアントコンピュータからのアクセス要求を実施する手順は、
    前記アクセス要求が読み込みである場合には、前記アクセス管理部を参照して読み込み対象のデータブロックについてアクセスの履歴があれば、前記運用ボリュームの当該データブロックからデータを読み込む手順と、
    前記アクセス要求が読み込みである場合には、前記アクセス管理部を参照して読み込み対象のデータブロックについてアクセスの履歴が無い場合には、前記差分ブロック管理部を参照してリストア元のスナップショットボリュームの識別子のデータブロックに対応する差分ボリュームまたは運用ボリュームの何れかよりデータを読み込む手順と、
    を含むことを特徴とするスナップショットのリストア方法。
  2. 前記リストア元の仮想スナップショットボリュームの識別子を含むリストア開始指令を受け付ける手順は、
    リストア中の仮想スナップショットボリュームの識別子と運用ボリューム及びリストアの進行状況を管理するリストア管理テーブルを参照して、前記仮想スナップショットボリュームの識別子に対応する運用ボリュームが前記リストア管理テーブルに登録されているか否かを判定する手順と、
    前記仮想スナップショットボリュームの識別子に対応する運用ボリュームが前記リストア管理テーブルに登録されていなければ、前記リストア管理テーブルに当該仮想スナップショットボリュームをリストア元として設定し、前記運用ボリュームをリストア先として設定する手順と、
    前記仮想スナップショットボリュームに対応する運用ボリュームが前記リストア管理テーブルに登録されていた場合には、当該リストア処理を終了する手順と、
    を含むことを特徴とする請求項1に記載のスナップショットのリストア方法。
  3. 前記アクセス管理部にアクセスの履歴を設定する手順は、
    前記リストア対象のデータブロックが差分ボリュームにある場合には、前記コピーを行った後に前記アクセス管理部の該当するデータブロックにアクセスした履歴を設定し、前記リストア対象のデータブロックが差分ボリュームにない場合には、前記アクセス管理部の該当するデータブロックにアクセスした履歴を設定することを特徴とする請求項1に記載のスナップショットのリストア方法。
  4. 前記リストア元の仮想スナップショットボリュームの識別子のデータブロックに対応する差分ボリュームまたは運用ボリュームの何れかよりデータを読み出す手順は、
    前記差分ブロック管理部を参照して、前記読み込み対象のデータブロックが運用ボリュームにあれば、当該運用ボリュームの当該データブロックからデータを読み出し、前記読み込み対象のデータブロックが差分ボリュームにあれば、前記差分ブロック管理部が指し示す差分ボリュームのデータブロックからデータを読み出すことを特徴とする請求項1に記載のスナップショットのリストア方法。
  5. 前記仮想運用ボリュームに対して前記クライアントコンピュータからのアクセス要求を実施する手順は、
    前記アクセス要求が書き込みである場合には、前記アクセス管理部を参照して書き込み対象のデータブロックについてアクセスの履歴があれば、前記運用ボリュームの当該データブロックにデータを書き込む手順と、
    前記アクセス要求が書き込みである場合には、前記アクセス管理部を参照して書き込み対象のデータブロックについてアクセスの履歴が無い場合には、前記差分ブロック管理部を参照して当該データブロックのリストアを実行する手順と、
    前記リストアが完了した後に、新たなデータを前記運用ボリュームの前記書き込み対象のデータブロックに書き込む手順と、
    を含むことを特徴とする請求項4に記載のスナップショットのリストア方法。
  6. 前記差分ブロック管理部を参照して当該データブロックのリストアを実行する手順は、
    前記差分ブロック管理部を参照して、前記リストア対象のデータブロックについて実際のデータを格納したボリュームが前記運用ボリュームと差分ボリュームのいずれであるかを特定する手順と、
    前記リストア対象のデータブロックが差分ボリュームにある場合には、前記差分ブロック管理部が指し示す差分ボリュームのデータブロックに格納されたデータを、前記運用ボリュームの前記データブロックにコピーしてリストアを実行する手順と、
    を含むことを特徴とする請求項5に記載のスナップショットのリストア方法。
  7. クライアントコンピュータからアクセス可能なデータを格納する運用ボリュームと、
    前記運用ボリュームのスナップショットを作成し、前記運用ボリュームとこのスナップショットとの差分データを差分ボリュームに格納し、前記スナップショットを仮想スナップショットボリュームの識別子で管理するスナップショット管理部と、
    リストア開始指令を受け付けたときには、前記差分ボリュームの内容を運用ボリュームへ書き込むリストア制御部と、を備えたストレージ装置において、
    前記スナップショット管理部は、
    前記運用ボリュームの更新差分データを前記差分ボリュームに格納するスナップショット作成部と、
    前記更新差分データを格納した差分ボリュームのデータブロックと、前記更新差分データのあった運用ボリュームのデータブロックと、前記仮想スナップショットボリュームの識別子のデータブロックの対応関係を設定する差分ブロック管理部と、を有し、
    前記リストア制御部は、
    前記リストア開始指令を受け付けると、リストアの完了を前記管理コンピュータに応答してリストア処理の完了に見せかけた後、前記リストア開始指令で指定されたリストア元の仮想スナップショットボリュームの識別子から前記差分ブロック管理部を参照して、差分ブロック管理部が指し示す差分ボリュームのデータブロックをリストア先の運用ボリュームのデータブロックに書き込んでリストアを行うリストア実行部と、
    リストア中の仮想スナップショットボリュームと運用ボリューム及びリストアの進行状況を管理するリストア管理テーブルと、前記リストア先の運用ボリュームの前記データブロック毎にリストアによるアクセスの履歴を保持するアクセス管理部と、を含んで前記リストアの進行状況を管理するリストア状況管理部と、を有し、
    前記リストアの期間中にクライアントコンピュータからのアクセス要求を受け付けて、前記リストア状況管理部の進行状況に応じて前記運用ボリュームと差分ボリュームとを組み合わせたリストア後の仮想運用ボリュームに対して前記アクセス要求を実行するリストア中アクセス制御部と、を備え、
    前記リストア実行部は、
    前記差分ブロック管理部を参照して、リストア対象の仮想スナップショットボリュームの識別子のデータブロックについて実際のデータを格納したボリュームが前記運用ボリュームと差分ボリュームのいずれであるかを特定するリストア対象特定部と、
    前記リストア対象のデータブロックが差分ボリュームにある場合には、前記差分ブロック管理部が指し示す差分ボリュームのデータブロックに格納されたデータを、前記運用ボリュームの前記データブロックにコピーしてリストアを実行するリストアデータ転送部と、を有し、
    前記リストアデータ転送部は、
    前記リストア対象のデータブロックについて前記アクセス管理部を参照し、アクセスの履歴が無い場合には、当該データブロックのリストアを実行し、前記アクセス管理部の当該データブロックについてアクセスの履歴を設定し、
    前記リストア中アクセス制御部は、
    前記アクセス要求が読み込みである場合には、前記アクセス管理部を参照して読み込み対象のデータブロックについてアクセスの履歴があれば、前記運用ボリュームの当該データブロックからデータを読み込む一方、前記アクセスの履歴が無い場合には、前記差分ブロック管理部を参照してリストア元の仮想スナップショットボリュームの識別子のデータブロックに対応する差分ボリュームまたは運用ボリュームの何れかよりデータを読み込むことを特徴とするストレージ装置。
  8. 前記リストア中アクセス制御部は、
    前記アクセス要求が書き込みである場合には、前記アクセス管理部を参照して書き込み対象のデータブロックについてアクセスの履歴があれば、前記運用ボリュームの当該データブロックにデータを書き込む一方、前記アクセスの履歴が無い場合には、前記運用ボリュームの当該データブロックに対してリストアを実行した後に、新たなデータを前記運用ボリュームの前記書き込み対象のデータブロックに書き込むことを特徴とする請求項7に記載のストレージ装置。
JP2005323323A 2005-11-08 2005-11-08 ストレージ装置及びスナップショットのリストア方法 Expired - Fee Related JP4809040B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005323323A JP4809040B2 (ja) 2005-11-08 2005-11-08 ストレージ装置及びスナップショットのリストア方法
US11/331,087 US7437603B2 (en) 2005-11-08 2006-01-13 Method for restoring snapshot in a storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005323323A JP4809040B2 (ja) 2005-11-08 2005-11-08 ストレージ装置及びスナップショットのリストア方法

Publications (2)

Publication Number Publication Date
JP2007133471A JP2007133471A (ja) 2007-05-31
JP4809040B2 true JP4809040B2 (ja) 2011-11-02

Family

ID=38155110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005323323A Expired - Fee Related JP4809040B2 (ja) 2005-11-08 2005-11-08 ストレージ装置及びスナップショットのリストア方法

Country Status (2)

Country Link
US (1) US7437603B2 (ja)
JP (1) JP4809040B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014054078A1 (en) 2012-10-05 2014-04-10 Hitachi, Ltd. Restoring method and computer system
US11442895B2 (en) * 2020-07-27 2022-09-13 EMC IP Holding Company LLC Method for copying data, electronic device and computer program product

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US8732136B2 (en) * 2006-05-22 2014-05-20 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
JP4464378B2 (ja) * 2006-09-05 2010-05-19 株式会社日立製作所 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US8285953B2 (en) 2007-10-24 2012-10-09 Hitachi, Ltd. Storage system group
US9164941B2 (en) 2007-10-24 2015-10-20 Hitachi, Ltd. Storage system group
US20090125692A1 (en) * 2007-10-24 2009-05-14 Masayuki Yamamoto Backup system and method
US7831861B1 (en) 2008-02-07 2010-11-09 Symantec Corporation Techniques for efficient restoration of granular application data
US7979735B2 (en) * 2008-08-15 2011-07-12 International Business Machines Corporation Data storage with snapshot-to-snapshot recovery
JP5023018B2 (ja) * 2008-08-21 2012-09-12 株式会社日立製作所 ストレージシステム及びデータ管理方法
JP5366480B2 (ja) 2008-08-27 2013-12-11 株式会社日立製作所 計算機システム及びそのバックアップ方法
JP5257672B2 (ja) 2008-09-25 2013-08-07 株式会社日立製作所 ジャーナルの階層を管理する計算機システム及び方法
US8732417B1 (en) * 2008-10-15 2014-05-20 Symantec Corporation Techniques for creating snapshots of a target system
ATE535867T1 (de) * 2008-10-30 2011-12-15 Ibm Flashcopy-handling
KR101562973B1 (ko) * 2009-05-22 2015-10-26 삼성전자 주식회사 메모리 장치 및 메모리 장치의 동작 방법
JP5367086B2 (ja) 2009-05-25 2013-12-11 株式会社日立製作所 計算機システムとそのデータ制御方法
US8204860B1 (en) * 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US8473777B1 (en) 2010-02-25 2013-06-25 Netapp, Inc. Method and system for performing recovery in a storage system
JP5742614B2 (ja) * 2011-09-14 2015-07-01 富士通株式会社 リストア処理プログラム、リストア方法、及び情報処理装置
US9311014B2 (en) 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US9430333B2 (en) * 2013-03-14 2016-08-30 Microsoft Technology Licensing, Llc Recovery of application from snapshot
US9529809B2 (en) * 2013-10-17 2016-12-27 International Business Machines Corporation Managing log data using a circular fixed size file
US9323764B2 (en) * 2013-11-12 2016-04-26 International Business Machines Corporation Copying volumes between storage pools
US10120617B2 (en) 2013-11-12 2018-11-06 International Business Machines Corporation Using deterministic logical unit numbers to dynamically map data volumes
JP6023733B2 (ja) * 2014-02-20 2016-11-09 日本電信電話株式会社 サービス提供システム及びデータ復旧方法
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US9971525B2 (en) * 2015-02-26 2018-05-15 Red Hat, Inc. Peer to peer volume extension in a shared storage environment
WO2017023339A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Snapshot storage management
EP3274896B1 (en) 2016-04-22 2019-08-21 Hewlett-Packard Enterprise Development LP Configuration of a memory controller for copy-on-write with a resource controller
CN109960602B (zh) * 2017-12-26 2023-02-10 ***通信集团四川有限公司 信息管理方法、装置、设备及介质
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182198B1 (en) * 1998-06-05 2001-01-30 International Business Machines Corporation Method and apparatus for providing a disc drive snapshot backup while allowing normal drive read, write, and buffering operations
US6771843B1 (en) 2001-05-11 2004-08-03 Lsi Logic Corporation Data timeline management using snapshot volumes
US6957362B2 (en) * 2002-08-06 2005-10-18 Emc Corporation Instantaneous restoration of a production copy from a snapshot copy in a data storage system
JP4122956B2 (ja) * 2002-12-09 2008-07-23 日本電気株式会社 複製ボリューム生成方法およびディスク装置
JP4292882B2 (ja) * 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
JP4515132B2 (ja) * 2004-03-31 2010-07-28 株式会社日立製作所 ストレージシステム、ストレージ装置及びリモートコピー方法
US20050223180A1 (en) * 2004-03-31 2005-10-06 Philip Derbeko Accelerating the execution of I/O operations in a storage system
JP2006302015A (ja) * 2005-04-21 2006-11-02 Hitachi Ltd ストレージシステム及びデータ管理方法
JP4783076B2 (ja) * 2005-07-08 2011-09-28 株式会社日立製作所 ディスクアレイ装置及びその制御方法
JP4800056B2 (ja) * 2006-02-09 2011-10-26 株式会社日立製作所 ストレージシステム及びその制御方法
JP2007219609A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd スナップショット管理装置及び方法
JP4839133B2 (ja) * 2006-05-22 2011-12-21 株式会社日立製作所 ストレージ装置のデータ管理方法及び計算機システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014054078A1 (en) 2012-10-05 2014-04-10 Hitachi, Ltd. Restoring method and computer system
US9015526B2 (en) 2012-10-05 2015-04-21 Hitachi, Ltd. Restoring method and computer system
US11442895B2 (en) * 2020-07-27 2022-09-13 EMC IP Holding Company LLC Method for copying data, electronic device and computer program product

Also Published As

Publication number Publication date
US7437603B2 (en) 2008-10-14
US20070174669A1 (en) 2007-07-26
JP2007133471A (ja) 2007-05-31

Similar Documents

Publication Publication Date Title
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
US7069393B2 (en) Storage system providing file aware caching and file aware remote copy
JP4199993B2 (ja) スナップショット取得方法
US8732121B1 (en) Method and system for backup to a hidden backup storage
US7865772B2 (en) Management device and management method
US7103713B2 (en) Storage system, device and method using copy-on-write for synchronous remote copy
US7844643B2 (en) Storage management system with integrated continuous data protection and remote copy
US20060047926A1 (en) Managing multiple snapshot copies of data
JP4825433B2 (ja) 比較的限られた記憶スペースを備えたコンピューティング装置およびそのオペレーティングシステム/ファイルシステム
JP2005532611A (ja) 仮想記憶装置
JP2008524724A (ja) クラスタ・ストレージ環境内で並列データ移行を実施する方法
US11509716B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
JP2009527847A (ja) Fatボリュームにおけるファイルベースの圧縮
JP2008225616A (ja) ストレージシステム、リモートコピーシステム、及びデータ復元方法
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
CN110413694A (zh) 元数据管理方法及相关装置
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
JP6653370B2 (ja) ストレージシステム
US11003541B2 (en) Point-in-time copy on a remote system
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
US20080005745A1 (en) Management server and server system
WO2018055686A1 (ja) 情報処理システム
CN113568567B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
WO2018055751A1 (ja) 計算機システム及び記憶制御方法
JPH0497413A (ja) 多重化ファイル復旧方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

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

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

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

Free format text: PAYMENT UNTIL: 20140826

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