JP2006209636A - スナップショット維持方法 - Google Patents

スナップショット維持方法 Download PDF

Info

Publication number
JP2006209636A
JP2006209636A JP2005023546A JP2005023546A JP2006209636A JP 2006209636 A JP2006209636 A JP 2006209636A JP 2005023546 A JP2005023546 A JP 2005023546A JP 2005023546 A JP2005023546 A JP 2005023546A JP 2006209636 A JP2006209636 A JP 2006209636A
Authority
JP
Japan
Prior art keywords
snapshot
volume
data
storage
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.)
Pending
Application number
JP2005023546A
Other languages
English (en)
Inventor
Atsushi Sudo
敦之 須藤
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 JP2005023546A priority Critical patent/JP2006209636A/ja
Priority to US11/065,247 priority patent/US20060174075A1/en
Publication of JP2006209636A publication Critical patent/JP2006209636A/ja
Pending legal-status Critical Current

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

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

Abstract

【課題】 スナップショットを複製するために必要となるボリュームの容量を低減する。
【解決手段】 運用ボリュームと差分格納ボリュームとを使用して、運用ボリュームに更新が発生した場合に更新前のデータを差分格納ボリュームに退避し、これら二個のボリュームのデータを組み合わせてスナップショットを構成する。スナップショットを構成するために運用ボリュームと差分格納ボリュームのデータ配置を記録したブロックコピー管理テーブルを利用して、スナップショット保存ボリュームにスナップショットを構成するのに必要なデータをコピーし、さらに、コピーした後のデータ配置を保持する別のブロックコピー管理テーブルをボリュームに保存する。スナップショットを構成するデータをコピーしたスナップショット保存ボリュームを、スナップショット読み込みプログラムを使用してアクセスすることで、保存したスナップショットを参照することができる。
【選択図】 図1

Description

本発明は、ストレージシステムにおけるスナップショット機能の実現技術に関し、特に、論理ボリュームマネージャによりスナップショットを作成し維持する方法に適用して有効な技術に関するものである。
情報システムの利用が拡大するにつれ、そのデータを保存するストレージの容量も拡大を続けている。これに伴い、ストレージに保存されたデータの価値が高まり、データへの不正アクセスや誤操作によるデータの破壊は、情報システムを運営する上で大きな損失となる。そのため、データの破壊を防止する目的で、またデータを破壊した場合に復旧を行えるようにする目的でデータ保護機能が重要になっている。
スナップショット機能は、ストレージシステムのデータ保護機能の一つとして使用する。スナップショット機能を用いれば、ストレージシステム内でデータを保存して運用中のボリュームのデータをある時点で静止化したイメージであるスナップショットを作成し維持することができる。スナップショットは、運用中のボリュームとは別の手段でアクセス可能であり、作成した時点のデータを参照することができる。そのため、運用中のボリュームのデータを破壊してしまった場合、スナップショット作成時点のデータを復元することができる。
スナップショットの作成と維持を実現する方法として、データの処理や制御を行うサーバ装置上の論理ボリューム機能を利用する方法、ファイルシステム機能を利用する方法がある。
論理ボリューム機能を利用する方法では、例えばLinuxカーネルのLogical Volume Manager(LVM)が上げられる(非特許文献1参照)。LVMで、運用中のボリューム、つまり運用論理ボリュームのスナップショットを作成する場合、もう一つ別の論理ボリュームを差分格納用論理ボリュームとして用意する必要がある。そして、スナップショットを作成した後に、運用論理ボリュームで更新(書き込み)が発生すると、更新前のデータを差分格納用論理ボリュームにコピーする。LVMは運用論理ボリュームのデータと差分格納用論理ボリュームのデータとを組み合わせて、スナップショット作成時のボリュームイメージを仮想的な論理ボリュームの形式でスナップショットとして構成可能にする機能を持つ。この機能は、スナップショットのデータが運用論理ボリュームに存在するか、差分格納用論理ボリュームに存在するかを表すテーブルを保持することで実現している。
また、ファイルシステム機能を利用する方法では、Write−anywhereファイルシステムがある(例えば、特許文献1)。Write−anywhereファイルシステムでは、以下のようにスナップショットを作成する。ファイルシステムは、inodeにファイルのデータ配置ブロックを保持しているが、スナップショットを作成した後にファイルが変更されると、inodeを複製してデータの変更部分の配置を複製した新しいinodeに保持する。そして、変更前のinodeをスナップショット用のinodeとして利用する。運用中のファイルシステムへのアクセスの際には、最新のinodeによってデータの配置を認識し、スナップショットへのアクセスの際には、スナップショット用のinodeによってデータの配置を認識するようにして、それぞれのデータのアクセスを可能にする。
このようにスナップショットを作成すると、運用中のボリュームやファイルシステムへのアクセスを継続したまま、過去のボリュームイメージやファイルシステムイメージを保存することが出来る。そして、スナップショットを参照して、誤って削除したデータを復旧したり、ディスク以外のメディアへのデータのバックアップをしたりできる。
さらに、スナップショットの時系列順の並びを保存したまま、別のメディアに複製して、データの保護を行う方法がある。
例えば、LVMによってスナップショットを作成した場合、運用論理ボリュームと差分格納用論理ボリュームを、ストレージ装置のボリュームコピー機能(例えば、非特許文献2)によって複製することで、スナップショットを維持するのに必要なボリュームのデータを複製することができる。
また、ファイルシステムでスナップショットを作成している場合、2つのスナップショット間の変化を判定して、別のサーバに送信することでスナップショットを複製する方法がある(例えば、特許文献2)。
米国特許第5819292号 特開2004−38928公報 AJ Lewis著 「LVM HOWTO」 http://ibiblio.org/pub/Linux/docs/HOWTO/other−formats/pdf/LVM−HOWTO.pdf 株式会社日立製作所 「Hitachi ShadowImage」 http://www.hitachi.co.jp/Prod/comp/storage/diskarray/products/software/r_shadow/index.html
スナップショットを運用中のボリュームや差分格納用ボリューム以外に複製するためには、スナップショットを1個のボリュームとして別ボリュームにコピーする方法、運用中のボリュームや差分格納用ボリューム全てを別ボリュームにコピーする方法、あるいはファイル毎に差分を検索してコピーする方法があった。
スナップショップを1個のボリュームとして別ボリュームにコピーする方法では、スナップショットをコピーするためにボリュームを1個用意してそこに格納する。そのため、ボリュームの容量はスナップショットと同量必要となり、格納するスナップショットの数が増えると多数のボリュームを必要とするという課題がある。
また、運用中のボリュームと差分ボリューム全てを別ボリュームにコピーする方法も、同様にボリュームを大量に必要とする課題がある。論理ボリューム機能によって作成したスナップショットでは、スナップショットを作成した後では参照を必要としない最新の運用中のボリュームのデータもある。また、あるデータについて、スナップショットを構成するための差分データがあれば、同じデータの運用ボリュームに存在する部分は参照しないためコピーする必要がない。しかし、ボリュームごとコピーする方法であるため、それら本来コピーの必要がないデータも格納する必要がある。そのため、ボリュームの消費量が多量になる。
ファイル毎に差分を検索する方法は、上記二点の課題は発生しない。しかし、ファイル毎の差分を検索する必要がある。そのため、ファイルが大量にあるファイルシステムである場合、差分を検索する処理の時間が多量に必要になるという課題がある。
そこで、本発明の目的は、スナップショットの複製を保存するのに必要なボリューム容量を低減し、かつファイルシステムのファイル数に依存しない処理量でスナップショットを複製する技術を提供することにある。
本発明は、論理ボリュームによりスナップショットを作成して維持する方法を持つストレージシステムに適用される。
スナップショットの維持は、ファイルシステムの運用を行う運用ボリュームと、スナップショット作成後に運用ボリュームのデータを更新した際に生じる差分を格納する差分格納ボリュームと、スナップショットの差分を移動してスナップショットを保存するためのスナップショット保存ボリュームを組み合わせて行う。
スナップショットを作成して維持している間は、運用ボリュームと差分格納ボリュームと、それらのデータの配置状態を保存してスナップショットを構成するために用いるブロックコピー管理テーブルを用いて稼動する。ブロックコピー管理テーブルは、運用ボリュームの差分を差分格納ボリュームに格納する際、差分格納ボリュームのどのブロックにコピーしたか、どのスナップショットに属するのかを保存している。そして、スナップショットを参照するとこのブロックコピー管理テーブルの情報を用いて、運用ボリュームと差分格納ボリュームのデータを組み合わせてスナップショットを構成する。
あるスナップショットをスナップショット保存ボリュームに移動する場合には、コマンドなどでデータの移動を指示する。すると、ブロックコピー管理テーブルを参照して、差分格納ボリュームに格納してあるデータを、スナップショット保存ボリュームにコピーしてから、ブロックコピー管理テーブルの情報を変更する。つまり、ブロックコピー管理テーブルには、差分格納ボリュームからスナップショット保存ボリュームに、かつコピーしたブロックが変わったことを反映する。また、データのコピーを開始した後で運用ボリュームとの差分が発生した場合、差分データの格納先をスナップショット保存ボリュームに変更する。この手順は、スナップショット1個について指定することも出来るが、複数のスナップショットを指定しても良い。このように、差分の格納を行うデバイスを変更して、スナップショットを維持したまま、スナップショット保存ボリュームへスナップショットを移動する。
さらに、スナップショット保存ボリュームをスナップショットの運用から切り離し、独立して参照することを可能にするため、さらに処理を行う。運用ボリュームのデータをブロックコピー管理テーブルを参照して、必要なものを選択してスナップショット保存ボリュームに格納する。このとき、差分の格納先と、運用ボリュームのデータをコピーした先の配置を管理する、ブロックコピー管理テーブルも同時にスナップショット保存ボリュームに保存する。これにより、スナップショットの構築に必要なデータをすべてスナップショット保存ボリュームに格納する。
スナップショット保存ボリュームを独立して参照するには、スナップショット保存ボリュームから、ブロックコピー管理テーブルを読み出し、その情報を使ってボリューム上のデータにアクセスする。
本発明によれば、スナップショットを保存する場合に、ブロックコピー管理テーブルの情報を用いてスナップショット保存に必要なデータを選択する。つまり、差分としてスナップショットのデータが保存してあれば、運用ボリュームから重複してデータを保存する必要がない。そのため、ボリューム全体の複製を作る方法と比較して、スナップショットの保存に必要なボリュームの容量を低減することが出来る。
また、本発明によれば、差分を保存する際に検索する情報は、運用ボリュームの大きさ、つまりブロック数に依存しており、ファイル数には影響を受けない。つまり、大量のファイルが存在するファイルシステムにおいても、差分の検索に必要な処理はボリュームとブロックのサイズにのみ依存する。そのため、ファイルシステムによる方法と比較して、多数のファイルが保存されている場合に、差分の検索に必要な処理を低減することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明は、スナップショットの複製を保存するのに必要なボリューム容量を低減するという目的を、スナップショットを作成して維持するのに必要なブロックコピー管理テーブルの情報を利用することで実現可能にするものである。スナップショットの複製を保存する際、ブロックコピー管理テーブルを参照して必要な情報を選択して、スナップショットを保存するボリュームにコピーして処理することを特徴とする。
本発明において、保存したスナップショットの複製を参照するためにスナップショットを保存したボリューム上のブロックコピー管理テーブルを利用する方法(実施の形態1)と、スナップショットを保存したボリューム上のブロックコピー管理テーブルと論理ボリュームマネージャが保持するブロックコピー管理テーブルとの両方を利用する方法(実施の形態2)とがあり、以下において具体的に説明する。
(実施の形態1)
本実施の形態は、スナップショットを保存したボリューム上のブロックコピー管理テーブルを利用して、保存したスナップショットを参照する例である。
図1は、本発明の実施の形態1におけるストレージシステムのシステム構成の一例を示す構成図である。
本実施の形態におけるストレージシステムは、サーバ装置100とストレージ装置110とストレージ装置120から構成される。
サーバ装置100は、処理を行う制御部としての機能を持つCPU101、サーバ装置100の処理に必要なデータおよびCPU101が実行するソフトウェアを保持するメモリ102、サーバ装置100とストレージ装置110とストレージ装置120とを接続してそれぞれの間でデータ転送を行うための接続装置としての機能を持つインタフェース103を備える。
通常、サーバ装置上では様々なプログラムが動作している。例えば、Network Attached StorageとしてNFSサーバプログラムやデータベースの管理を行うData Base Management Systemのように様々なサービスを提供するプログラムが挙げられる。しかし、ここではボリュームのスナップショットを説明することを主眼におくため、これらのプログラムを図示していない。
これらサービスを提供するプログラムに加えて、サーバ装置100で動作するソフトウェアとして、メモリ102上には、スナップショット管理プログラム104とストレージ装置110とストレージ装置120にブロックI/Oを発行するブロックI/O管理プログラム105がある。
スナップショット管理プログラム104は、運用ボリュームや差分格納ボリューム、そしてスナップショット保存ボリュームを管理し、スナップショットを作成して維持し、各ボリュームやスナップショットへのアクセスを可能にする。さらにスナップショット管理プログラム104は、スナップショットをスナップショット保存ボリュームに格納し、スナップショット保存ボリュームに格納したスナップショットへのアクセスを可能にする。
ブロックI/O管理プログラム105は、スナップショット管理プログラム104のボリュームへのアクセス要求を、インタフェース103を経由してストレージ装置110やストレージ装置120のコマンドへと変換して、ボリュームのデータアクセスを実行する。例えば、ブロックI/O管理プログラム105は、LinuxカーネルではブロックデバイスドライバやSCSIドライバに相当する。
ストレージ装置110は、データを保持するための記憶装置としての機能を持つディスクドライブ111,112、ストレージ装置110とサーバ装置100を接続してそれぞれの間でデータ転送を行うための接続装置としての機能を持つインタフェース113を備える。
また、ストレージ装置120は、データを保持するための記憶装置としての機能を持つディスクドライブ121、ストレージ装置120とサーバ装置100を接続してそれぞれの間でデータ転送を行うための接続装置としての機能を持つインタフェース122を備える。
それぞれのディスクドライブ111,112、およびディスクドライブ121は、一定のサイズをデータの管理単位であるブロックとして、ブロック単位でアクセス可能である。つまり、データの読み出しや書き込み、さらに他のデータに関するアクセス時には、ブロック単位で指定をする必要がある。これら、データを保存し、後に参照可能にする記憶媒体であるディスクドライブ111,112,121は それぞれ単体のディスクドライブ装置や、ディスクドライブ装置を複数のパーティションと呼ばれる領域に分割したものである。あるいは、複数のディスクドライブ装置を統合して管理するRAID(Redundant Arrays of Inexpensive Disks)を用いる方法もある。また、複数のディスクドライブを論理的に1個のディスクドライブとして用いる方法もある。
本実施の形態では、サーバ装置100上で動作するスナップショット管理プログラム104は、ディスクドライブ111を運用ボリュームとして、ディスクドライブ112を差分格納ボリュームとして、ディスクドライブ121をスナップショット保存ボリュームとして使用しているものとする。このような構成は、スナップショット保存ボリュームを通常の運用ボリュームとは別のストレージ装置とすることで、スナップショットの管理を容易にすることを想定している。しかし、運用ボリューム、差分格納ボリューム、スナップショット保存ボリュームは、スナップショット管理プログラム104でそれぞれ別のボリュームとして識別できればよいので、本発明を実施する上では同一ストレージ装置上に全ボリュームを配置しても良い。また、ボリュームはそれぞれ別のディスクドライブである必要はなく、ディスクドライブのパーティションや、複数のディスクドライブを組み合わせてボリュームとして実施することもできる。
さらに、本実施の形態では、スナップショットへの書き込みはできず、読み出し専用のボリュームとして説明する。ただし、スナップショット管理プログラム104を変更することで、スナップショットが書き込み可能なボリュームとして実施することもできる。
次に、サーバ装置100で動作するスナップショット管理プログラム104について、図2から図6を用いて説明する。
図2は、スナップショット管理プログラム104の構成の一例を示す説明図である。スナップショット管理プログラム104は、サーバ装置100で動作するソフトウェアから、運用ボリューム、差分格納ボリューム、スナップショット保存ボリュームへのアクセスを制御し、スナップショットの作成を行うプログラムである。スナップショット管理プログラム104を構成するソフトウェアモジュールおよびデータ構造について図2を用いて説明する。
スナップショット管理プログラム104は、初期化サブプログラム201、読み出し処理サブプログラム202、書き込み処理サブプログラム203、スナップショット作成サブプログラム204、スナップショット削除サブプログラム205、スナップショット移動サブプログラム206、保存ボリューム切離しサブプログラム207、および、保存ボリューム再接続サブプログラム208のサブプログラム群と、ブロックコピー管理テーブル211、使用ブロック管理テーブル212およびコピー先管理テーブル213のデータ管理テーブル群からなる。
まず、スナップショット管理プログラム104を構成するサブプログラム群について説明する。
初期化サブプログラム201は、スナップショット管理プログラム104の保持するテーブル群の管理を行う。例えば、ディスクドライブ111,112,121をそれぞれ運用ボリューム、差分格納ボリューム、スナップショット保存ボリュームで使用する場合、それぞれを管理するスナップショット管理プログラム104の保持するデータ管理テーブル群の初期化を行う。これは、図7を用いて後に説明する。
読み出し処理サブプログラム202は、ブロックコピー管理テーブル211とコピー先管理テーブル213とを用いて運用ボリュームやスナップショットへのデータ参照を行うために使用する。詳細な処理については、図10を用いて後に説明する。
書き込み処理サブプログラム203は、運用ボリュームへの書き込みを制御し、スナップショットの維持をするために必要な処理である。運用ボリュームへの書き込みが発生するたびに呼び出され、運用ボリュームへの書き込みとスナップショットの維持を行う。その際、差分データを差分格納ボリュームへとコピーし、ブロックコピー管理テーブル211を更新する。処理の詳細は、図11を用いて後に説明する。
スナップショット作成サブプログラム204は、運用ボリュームのスナップショットを作成する時点で実行する。この実行後、スナップショットへのアクセスが可能になる。このプログラムは、ブロックコピー管理テーブル211とコピー先管理テーブル213を更新する。詳細な処理については、図8を用いて後に説明する。
スナップショット削除プログラム205は、作成したスナップショットを削除する場合に実行する。このプログラムは、ブロックコピー管理テーブル211とコピー先管理テーブル213を更新し、差分格納ボリュームやスナップショット保存ボリュームで差分を保存していた領域を解放する処理を行う。詳細な処理手順については、図9を用いて後に説明する。
スナップショット移動サブプログラム206は、差分格納ボリュームに差分を保存しているスナップショットを、スナップショット保存ボリュームに移動する。このとき、差分データを差分格納ボリュームからスナップショット保存ボリュームにコピーし、同時にブロックコピー管理テーブル211とコピー先管理テーブル213を更新する処理を行う。差分データをコピーする際には、使用ブロック管理テーブル212の更新を行う。詳細な処理については、図12を用いて後に説明する。
保存ボリューム切離しサブプログラム207は、スナップショット保存ボリュームを運用から切り離して、スナップショットを独立して参照できるようにする。このプログラムは、運用ボリュームにあるデータをスナップショット保存ボリュームにコピーし、ブロックコピー管理テーブル211と使用ブロック管理テーブル212の更新を行う。さらに、ブロックコピー管理テーブル211をスナップショット保存ボリュームに書き込む。詳細な処理については、図13,図14を用いて後に説明する。
保存ボリューム再接続サブプログラム208は、保存ボリューム切離しサブプログラム207で切り離したスナップショット保存ボリュームを認識してスナップショットを参照するための処理を行う。このプログラムは、スナップショット保存ボリュームからブロックコピー管理テーブル211を読み出してメモリ102に展開する。同時に、データ管理テーブル群を構築してスナップショットの参照に必要な情報を作成する。これの実行後は、運用ボリュームと差分格納ボリュームの組を用いた場合と同様に、スナップショット保存ボリューム上のデータのみを使用してスナップショットの参照が可能になる。詳細な処理については、図15を用いて後に説明する。
次に、スナップショット管理プログラム104を構成するデータ管理テーブル群について、図3から図6を用いて説明する。
ブロックコピー管理テーブル211は、スナップショットを維持するため、運用ボリュームのデータを差分格納ボリュームやスナップショット保存ボリュームにコピーしたブロックを保存するテーブルである。図3を用いて詳細を説明する。ブロックコピー管理テーブル211は、運用ボリュームのブロックアドレス311と、それに対応するスナップショットの差分データのコピー先を各スナップショット毎に表す列からなる。本実施の形態では、運用ボリュームがブロック数m個、スナップショットを最大n個作成できるものとして述べる。そのため、ブロックアドレス311は0からm−1まで、スナップショット毎の情報を表す列が1からnまでのn列ある。また、各列に存在するボリュームは、使用しているボリュームを表すために数字を割り当てることとし、ボリューム0は運用ボリューム、ボリューム1は差分格納ボリューム、ボリューム2はスナップショット保存ボリュームを表す。
例えば、スナップショット1は列312と行321の交わる部分を見ると、ボリュームが「2」でありブロックが「32」である。つまり、スナップショット1のブロックアドレス0を参照する際には、スナップショット保存ボリュームのブロックアドレス32を参照すればよいことが分かる。同様に、スナップショット2のブロックアドレスtを参照する際は列313と行322の部分を見ると、差分格納ボリュームのブロックアドレス「94」のデータを参照することになる。スナップショット2のブロックアドレス0は、列313と行321の部分を見ると、ボリュームもブロックも「0」となっている。この場合、差分データが発生していないことを表し、運用ボリュームからデータを参照すればよいことが分かる。また、スナップショットnは列314すべての値が「なし」になっている。これは、スナップショットnを作成していない状態を表す。
使用ブロック管理テーブル212は、差分格納ボリュームとスナップショット保存ボリュームで差分データをコピーしたブロックやブロックコピー管理テーブル211を保存するために使用したブロックを重複して使用しないために、使用状況を管理するテーブルである。図2では、使用ブロック管理テーブル212を一つのオブジェクトとして記述しているが、必ずしも一つであるわけではない。本実施の形態では、差分格納ボリュームとスナップショット保存ボリュームそれぞれについて、テーブルを作成する。図4は差分格納ボリュームの使用ブロック管理テーブル212、図5はスナップショット保存ボリュームの使用ブロック管理テーブル212の一例である。
本実施の形態では、図4のように、差分格納ボリュームのブロックは0からp−1までのp個である。それぞれの差分ボリュームブロックアドレス401について、使用しているか否かを表す使用状態フラグ402を記録しておく。例えば、差分ボリュームブロックアドレス401が0である行411やブロックアドレスがrである行412は、そのブロックが使用中であることを表すため、使用状態フラグ402が「1」になっている。一方、使用していないブロックは、ブロックアドレスがp−1である行413のように、使用状態フラグ402は「0」になっている。
同様に、スナップショット保存ボリュームが0からq−1までのq個のブロックである場合、図5のような例になる。保存ボリュームブロックアドレス501それぞれについて、使用状態フラグ502を保存している。ブロックアドレスが0である行511は、ブロック0が使用中であることをあらわすため、使用状態フラグ502が「1」になっており、ブロックアドレスsとq−1のブロックは、使用していないため、使用状態フラグ502が「0」になっている。これら、使用状態フラグ402,502はスナップショット管理プログラム104の各サブプログラムが動作する際に更新する。
コピー先管理テーブル213は、スナップショットを維持する際に発生する差分データのコピー先ボリュームを保持するテーブルである。スナップショットを作成したときには差分格納ボリュームに差分データをコピーするが、スナップショットをスナップショット保存ボリュームに移動した後に差分データが発生した場合、コピー先はスナップショット保存ボリュームにする必要がある。その処理のために、このテーブルが必要である。図6はその一例である。各ボリュームを表すため、ブロックコピー管理テーブル211の例と同様に各ボリュームを数字で表すことにする。
例えば、スナップショット1のコピー先を知るには、列601を参照すればよい。すると、ボリュームが「2」であることが分かるので、スナップショット保存ボリュームに差分をコピーすることがわかる。同様に、スナップショット2は列602を参照するとボリューム「1」なので、差分格納ボリュームにコピーすればよい。また、スナップショットnは列603が「なし」となっているので、スナップショットを作成していないことが分かる。
以下では、スナップショット管理プログラム104を構成するサブプログラム群の処理フローについて、図7から図15を用いて説明する。
図7は、初期化サブプログラム201の動作を表す処理フローの一例である。初期化サブプログラム201は、運用ボリュームと差分格納ボリューム、そしてスナップショット保存ボリュームを指定して実行する。そして、ボリュームの構成に合わせた管理テーブル群を初期化する。
まず、運用ボリュームの大きさに合わせてブロックコピー管理テーブルを初期化する(S701)。このとき、各スナップショットに対応する列のエントリは、すべて「なし」の状態にする。次に、使用ブロック管理テーブルを初期化する(S702)。このとき、差分格納ボリュームとスナップショット保存ボリュームの双方について使用ブロック管理テーブルを初期化する。そして、コピー先管理テーブルを初期化する(S703)。コピー先管理テーブルの各スナップショットに対応する内容は、すべて「なし」としておく。これらのテーブルの初期化を実行して終了する。
図8は、スナップショット作成サブプログラム204の動作を表す処理フローの一例である。スナップショット作成サブプログラム204を実行する際は、作成するスナップショットの番号を指定する。この番号を用いて、各テーブルの操作を行う列が決定する。
まず、ブロックコピー管理テーブルに初期値を設定する(S801)。つまり、実行時に指定されたスナップショットの番号に対応する列について、ボリュームとブロックの部分を全てのブロックアドレスについて「0」を設定する。そして、コピー先管理テーブルに差分格納ボリュームを設定する(S802)。つまり、実行時に指定されたスナップショットの番号に対応する列に、差分格納ボリュームを表す「1」を設定する。ただし、ここではスナップショット作成時には必ず差分格納ボリュームに差分データをコピーするため、このような処理にしている。スナップショット作成時から、スナップショット保存ボリュームに差分データをコピーするように指定する方法も可能である。その場合、スナップショット作成サブプログラム204を実行時に、差分データをコピーする先のボリュームを指定できるようにすればよい。
図9は、スナップショット削除プログラム205の動作を表す処理フローの一例である。スナップショット削除プログラム205を実行する際は、削除するスナップショットの番号を指定する。
まず、ブロックコピー管理テーブルに初期化時の値を設定する(S901)。つまり、削除するスナップショットの番号に対応する列について、ボリューム、ブロックとも「なし」を設定する。このとき、スナップショットで使用していたブロックを解放することになるので、使用ブロック管理テーブルの状態フラグを更新する(S902)。つまり、スナップショットの削除によって不要になった差分データをコピーしたブロックを再利用できるようにする。次に、コピー先管理テーブルに初期化時の値を設定する(S903)。つまり、削除するスナップショットの番号に対応する列に「なし」を設定する。これらの処理により、管理テーブル群をスナップショット作成前の状態に戻して終了する。
図10は読み出し処理サブプログラム202の動作を表す処理フローの一例である。読み出し処理は、運用ボリュームと、スナップショット作成サブプログラム204によって作成したスナップショットに対して実行可能である。
まず、読み出し要求を受け取り、その要求がスナップショットからの読み出しかを判定する(S1001)。スナップショットからの読み出し要求でなければ(NO)、運用ボリュームの指定されたブロックからデータを読み出して(S1003)、終了する。スナップショットからの読み出し要求であれば(YES)、要求されたスナップショットのブロックに該当するブロックコピー管理テーブルを参照して、コピー先アドレスの値が「0」かを判定する(S1102)。「0」であれば(YES)、差分データがコピーされていないので、運用ボリュームの指定されたブロックからデータを読み出して(S1003)、終了する。「0」でなければ(NO)、差分データがコピーされているので、ブロックコピー管理テーブルのコピー先にあるボリューム・ブロックからデータを読み出して(S1004)、終了する。
図11は書き込み処理サブプログラム203の動作を表す処理フローの一例である。運用ボリュームへのデータの書き込み処理を行い、同時に、スナップショットの差分データを差分格納ボリュームやスナップショット保存ボリュームにコピーすることでスナップショットの維持を行う。書き込みは、書き込むデータとボリュームとブロックアドレスを指定した要求に従って行う。
まず、書き込み要求を受け取ると、ブロックコピー管理テーブル211からスナップショットを一つ選択する(S1101)。そして、書き込み要求にあるブロックについてブロックコピー管理テーブル211を参照し、書き込むブロックのコピー先アドレスは「0」であるかを判定する(S1102)。コピー先アドレスが「0」であれば(YES)、差分データのコピーが必要なので続いて処理を行う。コピー先管理テーブルからコピー先のボリュームを認識し、その使用ブロック管理テーブルからコピー先ボリュームで状態フラグが「0」であるブロックを選択する(S1103)。そして、そのブロックを差分データのコピー先として使用するために、使用ブロック管理テーブルの状態フラグを「1」に変更する(S1104)。
そして、データを書き込む先のブロックにある運用ボリュームのデータを選択したブロックにコピーする(S1105)。ブロックコピー管理テーブルのボリュームとブロックを選択したボリュームとブロック番号に変更する(S1106)。そして全てのスナップショットについて処理したかを判定し(S1107)、まだ処理が終わっていなければ(NO)、再びスナップショットを選択する処理(S1101)から繰り返し実行する。全てのスナップショットについて処理が完了していれば(YES)、データの運用ボリュームへの書き込みを実行して(S1108)、終了する。また、S1102でコピー先アドレスが「0」でなければ(NO)、既に差分データをコピー済みであるか、スナップショットを作成していないので、S1107から処理を行う。
本実施の形態では、差分データのコピーが必要な全てのスナップショットについてコピーを実行することになるが、このコピーの数を削減することができる。そのためには、コピー先管理テーブルで同じボリュームが指定されているスナップショットについては、一つのコピーについてブロックをブロックコピー管理テーブル211に保存すればよい。これを各コピー先ボリュームで実行すれば、スナップショットは維持可能である。ただし、この場合、スナップショット削除サブプログラムを変更する必要がある。スナップショットを削除する際、各ブロックについて他の作成済みのスナップショットでブロックコピー管理テーブルに保存されていないかを判定し、保存されていれば使用ブロック管理テーブルを変更しないようにすればよい。
図12は、スナップショット移動サブプログラム206の動作を表す処理フローの一例である。差分格納ボリュームにあるスナップショットをスナップショット保存ボリュームに保存する処理を行う。実行する際は、差分格納ボリュームに格納されたスナップショットの番号を指定する。
まず、移動するスナップショットについてコピー先管理テーブルのコピー先ボリュームを変更する(S1201)。これより以後、移動するスナップショットの差分データのコピーがある場合、差分格納ボリュームではなくスナップショット保存ボリュームにコピーするようになる。そして、移動するスナップショットについてブロックコピー管理テーブルからブロックを選択する(S1202)。つまり、スナップショットの全てのブロックについて以下の処理を行う。選択したブロックについて、ブロックコピー管理テーブルのコピー先ブロックが「0」であるかを判定する(S1203)。「0」であれば(YES)、このブロックの差分データはコピーされていないので、S1209の処理に飛ぶ。一方「0」でない場合(NO)、S1204からS1208の処理を行う。
まず、スナップショット保存ボリュームの使用ブロック管理テーブルから状態フラグが「0」のブロックを選択し(S1204)、選択した使用ブロック管理テーブルの状態フラグを更新する(S1205)。つまり、使用状態である「1」に変更する。次に、差分格納ボリュームにある差分データをスナップショット保存ボリュームに移動するため、ブロックコピー管理テーブルにあるブロックから選択したブロックにデータをコピーする(S1206)。そして、ブロックコピー管理テーブルのボリュームとブロックを更新し(S1207)、スナップショット保存ボリューム上のデータを参照するようにする。
この後、差分格納ボリュームのデータを参照することはないので差分格納ボリュームのブロックを解放するため、コピー元の使用ブロック管理テーブルの状態フラグを更新する(S1208)。つまり、状態フラグを「0」にする。スナップショットのサイズ分のブロックを処理するため、全てのブロックを処理したかを判定し(S1209)、全て処理していれば(YES)終了し、そうでなければ(NO)、S1202に戻ってブロック数分の処理を繰り返す。
図13,図14は保存ボリューム切離しサブプログラム207の動作を表す処理フローの一例である。これは、スナップショット保存ボリュームを一時運用から切り離すために実行する。
まず、保存ボリュームにブロックコピー管理テーブルを格納する領域を作成する(S1301)。格納する領域は、例えばボリュームの先頭ブロックにあらかじめ保存することにしておき、読み出す際にそこから読み出すようにすればよい。次に、コピー先がスナップショット保存ボリュームであるスナップショットを選択する(S1302)。以降、選択したスナップショットについて、全てのブロックに関する処理を繰り返し行う。そのため、まずブロックコピー管理テーブルからブロックを選択する(S1303)。そして、そのコピー先ブロックが「0」かを判定する(S1304)。このとき、「0」でなければ(NO)、次のブロックを処理するためS1309の処理に移る。「0」であれば(YES)、スナップショット保存ボリュームにコピーしていないデータをコピーするための処理を行う。
まず、コピーする先のブロックを確保するため、使用ブロック管理テーブルで状態フラグが「0」のブロックを選択する(S1305)。選択したブロックの使用ブロック管理テーブルの状態を「1」に変更して(S1306)、他のデータがコピーされないようにする。運用ボリュームの該当ブロックのデータを選択したブロックにコピーして(S1307)、保存する。さらに、コピーした先のブロックの情報を用いて、ブロックコピー管理テーブルのデバイスとブロックを更新する。これにより、スナップショット保存ボリュームを切り離した後もデータにアクセスすることができる。そして、全てのブロックを処理したかを判定し(S1309)、処理していなければ(NO)、S1303に戻りブロックごとの処理を繰り返す。処理が完了していれば(YES)、S1401に進む。
スナップショット保存ボリュームを切り離すためには、スナップショット保存ボリュームに差分データを保持するスナップショット全てについてデータをコピーする処理が必要である。そのため、ブロックコピー管理テーブルの全てのスナップショットを処理したかを判定し(S1401)、処理していなければ(NO)、S1302に戻って全てのスナップショットを処理するまで繰り返す。全て処理していれば(YES)、ブロックコピー管理テーブルをスナップショット保存ボリュームに書き込む(S1402)。このとき、差分格納ボリュームに差分データを保存しているスナップショットについては、テーブルの各ブロックについて、コピー先であるボリュームとブロックの値は「なし」にしておく。
そして、スナップショット保存ボリュームにあるスナップショットへのアクセスがなくなるため、ブロックコピー管理テーブルとコピー先管理テーブルを変更する(S1403)。この変更は、スナップショットを削除したときと同様、対応するスナップショットのボリュームとブロック、コピー先を「なし」にすればよい。そして、保存ボリュームを使用しなくなるため、保存ボリュームの使用ブロック管理テーブルを変更して(S1404)、終了する。この変更は、使用ブロック管理テーブルをメモリ上から削除すればよい。
図15は保存ボリューム再接続サブプログラム208の動作を表す処理フローの一例である。これを実行すると、保存ボリューム切離しサブプログラム207で切り離したスナップショット保存ボリュームにあるスナップショットにアクセス可能になる。
まず、保存ボリュームからブロックコピー管理テーブルを読み出す(S1501)。読み出しは、保存ボリューム切離しサブプログラム207で保存する箇所をあらかじめ決めておけば、そこから読み出せばよい。そして、読み出したら、再接続した保存ボリュームのためのブロックコピー管理テーブルを作成する(S1502)。つまり、他の運用ボリュームや差分格納ボリュームさらに、スナップショット保存ボリュームとは無関係に、再接続したスナップショット保存ボリュームのブロックコピー管理テーブルを作成することで、他のスナップショットとは独立してアクセス可能にする。
このように、スナップショット保存ボリュームを再接続して、スナップショットのアクセスを可能にすることで、スナップショットから運用ボリュームにデータを回復することが出来る。例えば、スナップショットの全ブロックを読み出して、運用ボリュームに書き込むことで、運用ボリュームにデータを回復できる。または、運用ボリューム上にファイルシステムを作成して使用していた場合、スナップショットもファイルシステムとして認識可能であるため、ファイル単位で運用ボリューム上のファイルシステムにデータを回復できる。
本実施の形態は、スナップショット保存ボリュームを1個使用するようになっているが、簡単な変更を加えることで複数のスナップショット保存ボリュームを使用可能になる。例えば、使用ブロック管理テーブルをスナップショット保存ボリューム毎に作成するようにし、スナップショット移動サブプログラムでスナップショットを移動するボリュームを指定できるようにすればよい。そして、ブロックコピー管理テーブルで保存するボリュームをスナップショット保存ボリューム毎に番号を決めて書き込むことにする。こうすることで、本実施の形態で説明した処理を利用しつつ、複数のスナップショット保存ボリュームを使用できる。
また、スナップショット保存ボリュームに新たなボリュームを追加するようにできる。例えば、スナップショット再接続サブプログラムで、ブロックコピー管理テーブルを読み出せなかった場合には、新たなスナップショット保存ボリュームとして認識し、使用ブロック管理テーブルなどを新規に作成するようにし、スナップショット移動サブプログラムで使用できるように変更可能である。
このように、複数のボリューム間でスナップショットのデータを複製可能になる。
(実施の形態2)
本実施の形態では、差分コピー以外の運用ボリュームからのデータのコピーを削減したスナップショットの保存方法について述べる。
システムの構成は、実施の形態1と同様であるが、スナップショット保存ボリュームに参照先スナップショットを保存するように変更する。また、保存ボリューム切離しサブプログラムと保存ボリューム再接続サブプログラムを以下のように変更する。
保存ボリューム切離しサブプログラムは、切り離しの際、差分データとしてコピーされていないブロックを運用ボリュームからコピーしていた。これを止め、代わりに、スナップショット保存ボリュームにある最新のスナップショットの番号をブロックコピー管理テーブルと一緒に保存しておく。そして、メモリ上のブロックコピー管理テーブルでは、保存した番号のスナップショットを削除不可として、差分データのコピーを継続するようにしておく。
保存ボリューム再接続サブプログラムは、再接続したスナップショット保存ボリュームから、保存されていたスナップショットの番号を読み出す処理を追加する。そして、この番号をスナップショット保存ボリュームと関連付けてメモリ上に保持する。また、再接続していない、運用開始から接続していたスナップショット保存ボリュームについては、参照先スナップショットが運用ボリュームであることを示す値を、同様にメモリ上に保持することにする。
読み出し処理サブプログラムは、スナップショットからの読み出しであり、かつブロックコピー管理テーブルのブロックが「0」である場合に処理を追加する。実施の形態1では、ブロックが「0」である場合、無条件に運用ボリュームからデータを読み出していたが、まず、参照先スナップショットの番号をメモリから読み出し、それに該当するスナップショットのブロックからデータを読み出すようにする。これにより、再接続したスナップショット保存ボリュームにあるスナップショットを参照する際、差分データのコピーを継続しているスナップショットのデータを組み合わせているため、スナップショットの整合性を保つことができる。
このように、スナップショット保存ボリュームの切り離しの際に発生するデータのコピーを削減することが可能になる。
本発明による、スナップショットのデータ移行を用いることで、ストレージシステムに格納された様々なデータ保護が可能になる。特に、長期間にわたってスナップショットを保持し続ける場合、複数のボリュームにスナップショットを多量に保存できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、ストレージシステムにおけるスナップショット機能の実現技術に関し、特に、論理ボリュームマネージャによりスナップショットを作成し維持する方法に適用して有効である。
本発明の実施の形態1におけるストレージシステムのシステム構成の一例を示す構成図である。 本発明の実施の形態1において、スナップショット管理プログラムの構成の一例を示す説明図である。 本発明の実施の形態1において、ブロックコピー管理テーブルの一例を示す説明図である。 本発明の実施の形態1において、使用ブロック管理テーブル(差分格納ボリューム)の一例を示す説明図である。 本発明の実施の形態1において、使用ブロック管理テーブル(スナップショット保存ボリューム)の一例を示す説明図である。 本発明の実施の形態1において、コピー先管理テーブルの一例を示す説明図である。 本発明の実施の形態1において、初期化サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、スナップショット作成サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、スナップショット削除サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、読み出し処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、書き込み処理サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、スナップショット移動サブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、保存ボリューム切離しサブプログラムの動作の一例を示すフロー図である。 本発明の実施の形態1において、保存ボリューム切離しサブプログラムの動作(図13に続く)の一例を示すフロー図である。 本発明の実施の形態1において、保存ボリューム再接続サブプログラムの動作の一例を示すフロー図である。
符号の説明
100 サーバ装置
101 CPU
102 メモリ
103 インタフェース
104 スナップショット管理プログラム
105 ブロックI/O管理プログラム
110,120 ストレージ装置
111,112,121 ディスクドライブ
113,122 インタフェース
201 初期化サブプログラム
202 読み出し処理サブプログラム
203 書き込み処理サブプログラム
204 スナップショット作成サブプログラム
205 スナップショット削除サブプログラム
206 スナップショット移動サブプログラム
207 保存ボリューム切離しサブプログラム
208 保存ボリューム再接続サブプログラム
211 ブロックコピー管理テーブル
212 使用ブロック管理テーブル
213 コピー先管理テーブル

Claims (7)

  1. サーバ装置と複数の記憶媒体を持つストレージ装置とから構成されるストレージシステムで実行するスナップショット維持方法であって、
    サーバ装置はストレージ装置が持つ第1の記憶媒体を運用ボリュームとして使用し、
    前記第1の記憶媒体とは異なる第2の記憶媒体を差分ボリュームとして使用し、
    前記第1の記憶媒体とは異なる第3の記憶媒体を保存ボリュームとして使用し、
    サーバ装置上で運用ボリュームのデータ更新の差分を差分ボリュームと保存ボリュームに保存して、そのデータの配置を管理することで運用ボリュームのスナップショットを作成して維持するものであって、
    データの配置を管理するテーブルの情報に基いて、差分ボリュームのデータを保存ボリュームに移動してスナップショットを保存ボリュームに複製可能であることを特徴とするスナップショット維持方法。
  2. 請求項1記載のスナップショット維持方法において、
    運用ボリュームの中で保存ボリュームに格納していないデータを、保存ボリュームにコピーして、
    データの配置を管理するテーブルをスナップショットの整合性を維持するように変更したものを保存ボリュームに格納して、
    スナップショットを複製した保存ボリュームをストレージシステムから切り離し可能であることを特徴とするスナップショット維持方法。
  3. 請求項2記載のスナップショット維持方法において、
    スナップショットを複製した保存ボリュームを切り離したものを、再度接続してスナップショットに参照可能であることを特徴とするスナップショット維持方法。
  4. 請求項3記載のスナップショット維持方法において、
    再度接続した保存ボリュームから、運用ボリュームにスナップショットのデータを復元可能であることを特徴とするスナップショット維持方法。
  5. 請求項1記載のスナップショット維持方法において、
    データの配置を管理するテーブルをスナップショットの整合性を維持するように変更したものを保存ボリュームに格納して、
    保存ボリュームに複製したスナップショットは、運用ボリュームと差分ボリュームによって構成するスナップショットを参照することで整合性を維持し、
    スナップショットを複製した保存ボリュームをストレージシステムから切り離し可能であることを特徴とするスナップショット維持方法。
  6. 請求項5記載のスナップショット維持方法において、
    スナップショットを複製した保存ボリュームを切り離したものを、再度接続してスナップショットに参照可能であることを特徴とするスナップショット維持方法。
  7. 請求項6記載のスナップショット維持方法において、
    再度接続した保存ボリュームから、運用ボリュームにスナップショットのデータを復元可能であることを特徴とするスナップショット維持方法。
JP2005023546A 2005-01-31 2005-01-31 スナップショット維持方法 Pending JP2006209636A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005023546A JP2006209636A (ja) 2005-01-31 2005-01-31 スナップショット維持方法
US11/065,247 US20060174075A1 (en) 2005-01-31 2005-02-25 Method for creating and preserving snapshots in a storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005023546A JP2006209636A (ja) 2005-01-31 2005-01-31 スナップショット維持方法

Publications (1)

Publication Number Publication Date
JP2006209636A true JP2006209636A (ja) 2006-08-10

Family

ID=36758023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005023546A Pending JP2006209636A (ja) 2005-01-31 2005-01-31 スナップショット維持方法

Country Status (2)

Country Link
US (1) US20060174075A1 (ja)
JP (1) JP2006209636A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146228A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd バックアップ装置、バックアップ方法およびバックアッププログラム
WO2009153917A1 (ja) * 2008-06-18 2009-12-23 富士通株式会社 仮想計算機システム、仮想計算機システムを提供する情報処理装置およびプログラム
JP2010072746A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd ストレージシステム、及びストレージシステムの運用方法
JP2010514031A (ja) * 2006-12-20 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・コピーのシステム、装置、方法、およびプログラム
US7890716B2 (en) 2007-03-01 2011-02-15 Hitachi, Ltd. Method of managing time-based differential snapshot
JP2015501960A (ja) * 2012-03-13 2015-01-19 株式会社日立製作所 不揮発半導体メモリを含んだ不揮発半導体記憶デバイスを有するストレージシステム

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266406B2 (en) 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
US7343459B2 (en) 2004-04-30 2008-03-11 Commvault Systems, Inc. Systems and methods for detecting & mitigating storage risks
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
AU2006331932B2 (en) 2005-12-19 2012-09-06 Commvault Systems, Inc. Systems and methods for performing data replication
US8572330B2 (en) 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US8661216B2 (en) * 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US7603392B2 (en) * 2006-06-05 2009-10-13 International Business Machines Corporation System, method and computer program product for storing transient state information
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US20080147878A1 (en) * 2006-12-15 2008-06-19 Rajiv Kottomtharayil System and methods for granular resource management in a storage network
US8285758B1 (en) 2007-06-30 2012-10-09 Emc Corporation Tiering storage between multiple classes of storage on the same container file system
JP2009217404A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd ストレージシステム
JP5156518B2 (ja) 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
US7979735B2 (en) * 2008-08-15 2011-07-12 International Business Machines Corporation Data storage with snapshot-to-snapshot recovery
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US8484164B1 (en) 2009-10-23 2013-07-09 Netapp, Inc. Method and system for providing substantially constant-time execution of a copy operation
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8489656B2 (en) 2010-05-28 2013-07-16 Commvault Systems, Inc. Systems and methods for performing data replication
WO2012164627A1 (en) 2011-06-02 2012-12-06 Hitachi, Ltd. Information storage system, snapshot acquisition method, and data storage medium
US10635128B1 (en) * 2012-10-29 2020-04-28 Veritas Technologies Llc Storing backup data using snapshots
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
JP2023001471A (ja) * 2021-06-21 2023-01-06 株式会社日立製作所 ストレージシステム、計算機システム及び制御方法
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1003103B1 (en) * 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
JP3856855B2 (ja) * 1995-10-06 2006-12-13 三菱電機株式会社 差分バックアップ方式
US6618794B1 (en) * 2000-10-31 2003-09-09 Hewlett-Packard Development Company, L.P. System for generating a point-in-time copy of data in a data storage system
US6728736B2 (en) * 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010514031A (ja) * 2006-12-20 2010-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・コピーのシステム、装置、方法、およびプログラム
US7890716B2 (en) 2007-03-01 2011-02-15 Hitachi, Ltd. Method of managing time-based differential snapshot
JP2009146228A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd バックアップ装置、バックアップ方法およびバックアッププログラム
WO2009153917A1 (ja) * 2008-06-18 2009-12-23 富士通株式会社 仮想計算機システム、仮想計算機システムを提供する情報処理装置およびプログラム
JP2010072746A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd ストレージシステム、及びストレージシステムの運用方法
JP2015501960A (ja) * 2012-03-13 2015-01-19 株式会社日立製作所 不揮発半導体メモリを含んだ不揮発半導体記憶デバイスを有するストレージシステム

Also Published As

Publication number Publication date
US20060174075A1 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
JP2006209636A (ja) スナップショット維持方法
US10795788B2 (en) Remote data replication method and system
JP4550541B2 (ja) ストレージシステム
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
JP4581518B2 (ja) スナップショット取得方法
US7415488B1 (en) System and method for redundant storage consistency recovery
JP5984151B2 (ja) データの復旧方法、プログラムおよびデータ処理システム
JP5164980B2 (ja) 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法
US8438136B2 (en) Backup catalog recovery from replicated data
JP4704161B2 (ja) ファイルシステムの構築方法
US20060047926A1 (en) Managing multiple snapshot copies of data
JP2006268829A (ja) ストレージシステム間でオブジェクトをミラー化する方法と装置
JP2003280964A (ja) スナップショット取得方法、ストレージシステム及びディスク装置
US8375181B1 (en) System and method for performing replication based on change tracking information
JP2010026939A (ja) 記憶制御装置及び方法
JP2010191647A (ja) ファイル共有システム、ファイルサーバ、ファイル管理方法
US7979651B1 (en) Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot
JP2005332067A (ja) バックアップ取得方法及びディスクアレイ装置
JP2008269374A (ja) ストレージシステムおよびその制御方法
JP4937863B2 (ja) 計算機システム、管理計算機及びデータ管理方法
CN106528338A (zh) 一种远程数据复制方法、存储设备及存储系统
WO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
US20060085663A1 (en) Method for keeping snapshot image in a storage system
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法