JP4550541B2 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP4550541B2
JP4550541B2 JP2004293464A JP2004293464A JP4550541B2 JP 4550541 B2 JP4550541 B2 JP 4550541B2 JP 2004293464 A JP2004293464 A JP 2004293464A JP 2004293464 A JP2004293464 A JP 2004293464A JP 4550541 B2 JP4550541 B2 JP 4550541B2
Authority
JP
Japan
Prior art keywords
volume
generation
data
copy
snapshot
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
JP2004293464A
Other languages
English (en)
Other versions
JP2006107162A (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 JP2004293464A priority Critical patent/JP4550541B2/ja
Priority to US10/998,755 priority patent/US7356658B2/en
Priority to EP05255988A priority patent/EP1645960B1/en
Priority to EP08004760A priority patent/EP1942414B1/en
Priority to EP09015053A priority patent/EP2163988B1/en
Priority to DE602005007052T priority patent/DE602005007052D1/de
Priority to EP07007309A priority patent/EP1804165B1/en
Priority to DE602005018974T priority patent/DE602005018974D1/de
Priority to DE602005027138T priority patent/DE602005027138D1/de
Priority to DE602005001041T priority patent/DE602005001041T2/de
Publication of JP2006107162A publication Critical patent/JP2006107162A/ja
Priority to US12/054,846 priority patent/US7606990B2/en
Priority to US12/576,621 priority patent/US7890720B2/en
Application granted granted Critical
Publication of JP4550541B2 publication Critical patent/JP4550541B2/ja
Priority to US13/013,183 priority patent/US8103843B2/en
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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/99953Recoverability
    • 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/99955Archiving or backup

Description

本発明は、ストレージを利用するコンピュータシステムにおけるボリュームイメージのスナップショットを取得するストレージシステムに関し、特に、任意の世代のボリュームイメージの取得技術に関する。
情報化社会において、情報を蓄積するストレージシステムの重要な役割の一つに、データ保護がある。データ保護のもっとも一般的な方法は、テープをはじめとするバックアップ・メディアにストレージ上のデータを保存するバックアップである。バックアップは、故障や障害、或いは、操作ミスなどによって、万が一、運用中のストレージ上のデータを失ったとしても、バックアップを復元することで、保存した時点のデータに回復することを可能にし、被害を最小限に抑えることができる。
しかし、ストレージの大容量化に伴い、バックアップに要する時間が問題となってきている。さらに、データの更新頻度が高い用途では、一度バックアップを生成しても、すぐにバックアップとの差が拡大し、万が一の際、被害が増大してしまうため、頻繁にバックアップを生成する必要がある。また、操作ミスなどによるファイル紛失や、ファイルの内容を過去の状態と比較したい場合などに備えて、定期的なバックアップを容易に参照したいという要求がある。
このような用途に応える機能として、スナップショットが注目されている。スナップショットは、取得時点の運用中のストレージ上のデータイメージを維持する。取得したスナップショットイメージは、運用中のストレージとは別のボリュームとしてアクセス可能となる。
このスナップショット機能として、データ保持部1が、通常の読み書きを行い、データ保持部2が、ある時点でのデータ保持部1のスナップショットイメージを保存し、データ保持部3が、データ保持部2にスナップショットイメージを保存した時点以降のデータ保持部1へのデータ書替えに伴う更新データと、その世代を示す情報と、その更新領域を示す情報とを含む履歴情報を保存し、データ読出し元選択部が、読出されるべきスナップショットイメージの世代及び領域の指定に応じて、データ保持部3に保存される各履歴情報を参照し、読出されるべきスナップショットイメージの保存場所を知得し、その保存場所に応じてデータの読出し元をデータ保持部2及びデータ保持部3のいずれかに切替えるスナップショットイメージの世代管理方法が提案されている(例えば、特許文献1参照。)。
特開2002−278819公報
スナップショット機能は、運用ボリュームの差分情報のみを保存するものであるため、多くの世代を保存するためには多くのスナップショットの保存が必要となり、ストレージの容量が増大する。
一方、テープ装置に多世代のバックアップを保存することも可能である。しかし、テープ装置は一般的にアクセス速度が極めて遅いため、時間的に古いため、アクセス頻度が低いデータの保存に適している。そのため多く世代のデータのアクセスやリストアの要求を高速に行うためには、ストレージ装置にバックアップデータを保存することが望ましい。
本発明はこのような問題点に鑑みてなされたものであり、ストレージ装置のストレージ内に多世代のバックアップを保存でき、データのアクセスやリストア(復旧)ができるストレージシステムを提供することを目的とする。
本発明は、ホスト計算機からデータが読み書きされる運用ボリュームと、所定のタイミングにおける前記運用ボリュームの複製が保存されるコピーボリュームと、差分データが保存される差分ボリュームとが設けられるディスク装置と、ストレージ管理装置を制御するためのプログラムを実行するプロセッサと、前記ホスト計算機と接続されるチャネルI/Fと、前記ディスク装置と接続されるストレージI/Fとを有するストレージ管理装置と、を備えるストレージシステムにおいて、前記プロセッサは、メモリに保存されたプログラムを実行することによって、生成されたスナップショットの世代及び前記コピーボリュームの世代を管理するスナップショット管理手段と、前記ホストコンピュータから指定された世代の仮想ボリュームへのアクセス要求に対する処理をする指定世代ボリューム生成手段と、を構成し、前記スナップショット管理手段は、前記運用ボリュームに格納されたデータを所定のタイミングで前記コピーボリュームに複製するコピーボリューム生成手段と、前記運用ボリュームへの書き込み要求に対応して、当該データが書き込まれる領域に記憶されたデータを前記差分ボリュームに複製して前記差分データを生成し、当該データが書き込まれる前記運用ボリュームの領域のアドレスと前記差分データを記憶するための領域のアドレスとを対応付けるスナップショット管理情報を前記メモリに記録することによって前記差分データの生成を制御するデータ書込手段と前記プロセッサが、前記ホストコンピュータからスナップショットの生成の要求を受け取ったときに、新たな世代の前記スナップショット管理情報に運用ボリュームからデータの更新がされていないことを示す情報を設定し、前記運用ボリュームの指定された領域に保存されたデータを前記差分ボリュームに複写することによってスナップショットを生成するスナップショット生成手段と、を含み、生成された前記スナップショットの世代及び前記コピーボリュームの世代を管理し、前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と同じ場合は、前記コピーボリュームへアクセスし、前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と異なる場合は、前記差分ボリューム及び前記コピーボリュームにおける当該要求された世代のデータが保存されているアドレスを指定することによって、当該要求された世代のボリュームへアクセスし、前記運用ボリュームと同じ世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、前記スナップショットの生成の要求を受け取った後に前記運用ボリュームに書き込み要求があった場合は、前記運用ボリュームの内容と前記コピーボリュームの内容とを同期させ、当該同期完了後に同期を分離し、前記コピーボリュームへアクセスする。
本発明によると、差分ボリュームとコピーボリュームとを保存することで、任意の複数の世代のボリュームを取得することが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の第1の実施の形態のストレージシステムの構成を示すブロック図である。
ストレージ管理装置200は、チャネルインターフェース(チャネルI/F)210を介して接続されたホスト計算機100に対してファイル共有サービスを提供する。
ストレージ管理装置200は、チャネルI/F210、CPU220、ストレージインターフェース(ストレージI/F)230、及びメモリ240を備える。
チャネルI/F210は、ホスト計算機100とネットワークで接続され、所定の信号(コマンド、データ)を送受信する。
ストレージI/F230は、ストレージ300との間でSCSI(Small Computer System Interface)に基づく信号(コマンド、データ)を送受信する。
ストレージ300は、複数のディスク装置が備えられており、これらは、運用ボリューム310、コピーボリューム320及び差分ボリューム330の3つの論理的な領域(ボリューム)に分割されている。
運用ボリューム310は、ホスト計算機100の要求に従ってデータの読み書きを行う論理ボリュームである。コピーボリューム320は、ある時点での運用ボリューム310のフルコピーを保存するためのバックアップとして機能する。差分ボリューム330は、運用ボリューム310への書き込みデータのスナップショットを保存する。
メモリ240には、スナップショット管理プログラム241、世代ボリューム生成プログラム242、運用ボリューム復旧プログラム243及び差分ボリューム容量管理プログラム244が保存されており、CPU220がこれらのプログラムを呼び出して実行することによって、各種の処理が行われる。
メモリ240にはキャッシュメモリ250と共有メモリ260が備えられている。キャッシュメモリ250は、ストレージ300へのデータの読み出し、書き込みの際に用いるキャッシュとして機能する。共有メモリ260は、ストレージ管理装置200が各種処理を行うために用いる制御情報等が保存される。この共有メモリ260には、差分ビットマップ261、コピーボリューム世代管理情報262、スナップ情報263及び容量管理情報264等が保存されている。
差分ビットマップ261は、後に説明するスナップショット管理テーブル2610及び差分ブロック管理テーブル2620が含まれる。コピーボリューム世代数管理情報262は、コピーボリューム320にコピーされた内容がどの世代であるかを示す情報が登録される。スナップ情報263は、差分ボリューム330にスナップショットを保存した時刻及び当該スナップショットがどの世代であるかを示す情報が登録される。容量管理情報264は、世代毎の差分ボリュームの使用容量、最終アクセス日時及びアクセス頻度を示す情報が登録される。
スナップショット管理プログラム241は、ホスト計算機100からスナップショットの生成要求を受信すると、ストレージ管理装置200の運用ボリューム310に対するスナップショットを生成する。このスナップショットの生成処理は、スナップショット管理プログラム241が、後述するスナップショット管理テーブル2610を用いて、運用ボリューム310及び差分ボリューム330に保存されたデータを、スナップショットの生成要求の受信時に運用ボリューム310に保存されていたデータにアクセス可能となるように管理し、生成した運用ボリューム310のスナップショットを提供するための仮想ボリュームをアクセス可能にする。
ここで、仮想ボリュームとは、一又は複数のディスク装置内の保存領域からなる仮想的なボリュームであって、実際には運用ボリューム310内の一部ブロックと差分ボリューム330内の一部ブロックから構成されている。
スナップショット管理プログラム241は、ファイルシステムなどが保存されるボリューム(運用ボリューム310)に加え、差分データ、すなわちスナップショットの維持に必要な差分データを保存するボリューム(差分ボリューム330)を管理し、ホスト計算機100の要求に応じたデータ入出力処理、スナップショットを維持する処理、及び、スナップショットを利用可能にする処理を行う。
具体的には、スナップショット管理プログラム241は、スナップショットの生成要求を受信すると、まず後述するスナップショット管理テーブル2610に新しい仮想ボリュームの識別情報を登録する。この仮想ボリュームのブロックは、最初はスナップショット管理テーブル2610によって、運用ボリューム310のブロックと一対一で対応付けられている。しかし、その後運用ボリューム310内のデータが更新される際には、スナップショット管理プログラム241は、後述するように運用ボリューム310内の更新前のデータを差分ボリュームに複写し、この複写後に運用ボリューム310の保存内容を更新する。そして、スナップショット管理プログラム241は、更に、データが更新された運用ボリューム310内のブロックに対応する仮想ボリューム内のブロックを、スナップショット生成要求を受信した時点で運用ボリューム310に保存されていたデータ(すなわち更新前のデータ)が保存されている差分ボリューム上のブロックと対応付けるようスナップショット管理テーブル2610を更新する。
ホスト計算機100からの仮想ボリュームに対するアクセス要求をスナップショット管理プログラム241が受信すると、スナップショット管理プログラム241はスナップショット管理テーブル2610を参照して、仮想ボリュームのブロックと対応付けられている運用ボリューム310のブロック又は差分ボリューム330のブロックへのアクセスをホスト計算機100に指示する。従って、ホスト計算機100は、仮想ボリュームにアクセスすることによって、スナップショットの生成要求が発行された時点での運用ボリューム310内の情報が利用できる。よって、ストレージ管理装置200はファイルシステムのスナップショットイメージを提供することが可能になる。
なお、これらの処理に関しては後に詳述する。
ストレージ300は、独立した複数の物理ディスクドライブを用いてもよいし、物理的に一つのディスクドライブを論理区画によって分割してもよい。また、複数のディスク装置から構成され一つのディスクとして論理的に設定された論理ボリュームとしてもよい。さらに、論理ボリュームを構成する複数の物理ディスクドライブによってRAID装置を構成してもよい。
テープ装置400は、ストレージ管理装置200に接続されたストレージ300に保存されているデータの複製を保存する装置である。テープ装置400はチャネルI/F210を介してストレージ管理装置200に接続される。
ホスト計算機100は、プログラム110を備えている。また、ストレージ管理装置200は、I/F270を備えている。I/F270は、LAN501を介して端末500に接続される。I/F270は、例えばSCSIインターフェースで構成される。
ユーザは、ホスト計算機100のプログラム110によって、ストレージ管理装置200に指示を送ることができる。
また、ユーザは、端末500からストレージ管理装置200に指示を送ることができる。
図2A、図2Bは、本発明の第1の実施の形態の差分ビットマップ261の説明図である。
差分ビットマップ261には、スナップショット管理テーブル2610(図2A)と、差分ブロック管理テーブル2620(図2B)とで構成される。
図2Aに示すスナップショット管理テーブル2610は、運用ボリュームブロックアドレス2611、世代管理ビットマップ2612及び仮想ボリューム世代アクセステーブルから構成される。
列2611は、運用ボリューム310のブロックアドレスが登録されており、最初の行(第1行)には運用ボリューム310の1番目のブロックアドレス0番が割り当てられ、第2行には運用ボリューム310のブロックアドレス1番が割り当てられ、以下順に運用ボリューム310のブロックアドレスが割り当てられ、最後の行である第m行には運用ボリューム310のブロックアドレス(m−1)番が割り当てられる。
列2612は、世代管理ビットマップであり、この運用ボリュームブロックアドレスに対応する差分データがあるか否かを示す。なお、この詳細は後述する。
列2613〜列2615は、世代ごとの仮想ボリュームの各ブロックアドレスに対応するデータの保存位置が登録される。例えば、列2613にはスナップショット番号1(世代1)のデータの保存位置が登録される。この場合、スナップショット番号と仮想ボリュームの番号は同一であり、その数字が世代を示す。例えば、スナップショット番号1には仮想ボリューム1が対応しており、仮想ボリューム1の世代は「1」である。
列2613の第1行には世代1の仮想ボリューム1のブロックアドレス0番に対応するデータが保存されている保存領域を識別する情報が登録され、以降順番に、第2行目には仮想ボリューム1のブロックアドレス1番、第3行目にはブロックアドレス2番・・・に対応するデータの保存位置が登録される。
より具体的には、第1行に仮想ボリューム1のブロックアドレス0番のデータの保存位置として登録されている0番は、差分ボリューム330のブロックアドレス0番に対応している。
スナップショット管理プログラム241がスナップショット生成要求を受信した後に、運用ボリューム310のブロックアドレス0番のデータが更新されるとき、スナップショット管理プログラム241は、運用ボリューム310のブロックアドレス0番に保存されている更新前のデータを、差分ボリューム330のブロックアドレス0番に書き込み、その後に運用ボリューム310のブロックアドレス0番のデータを更新する。スナップショットへのアクセスを提供するためには、スナップショット生成要求を受信した際に運用ボリューム310に保存されていたデータをディスク装置内のいずれかの保存領域に保存しておくことが必要だからである。
このように、スナップショット管理テーブル2610において仮想ボリューム1のブロックアドレス0番と差分ボリューム330のブロックアドレス0番を対応づけておく。スナップショット管理プログラム241は、仮想ボリューム1の第1行のブロックアドレス0番(すなわち、差分ボリューム330のブロックアドレス0番に)アクセスすることによって、運用ボリューム310のブロックアドレス0番の更新前のデータ(世代1の仮想ボリューム)が得られる。
このように、スナップショット管理プログラム241は、世代1の仮想ボリューム1のブロックアドレス0番に対するアクセス要求があった場合には、スナップショット管理テーブル2610を参照することによって、差分ボリューム330のブロックアドレス0番をアクセスすることができる。この結果、スナップショット管理プログラム241は、ホスト計算機100に対して、運用ボリューム310のブロックアドレス0番の更新前のデータ(即ちスナップショット生成要求を受信した時点で運用ボリューム310のブロックアドレス0番に保存されていた世代1のデータ)が仮想ボリューム1のブロックアドレス0番に書き込まれているのと同様の状態で、世代1の仮想ボリューム1に対するアクセス環境を提供することができる。
同様に、第2行に、世代1の仮想ボリューム1のブロックアドレスのデータの保存位置として登録されている1番は、差分ボリューム330のブロックアドレス1番に対応している。スナップショット生成要求受信後に運用ボリューム310のブロックアドレス1番のデータが更新されるとき、スナップショット管理プログラム241は、運用ボリューム310のブロックアドレス1番に保存されている更新前のデータを、差分ボリューム330のブロックアドレス1番に書き込み、その後に運用ボリューム310のブロックアドレス1番のデータを更新する。このように、スナップショット管理テーブル2610において世代1の仮想ボリューム1のブロックアドレス1番と差分ボリューム330のブロックアドレス1番を対応づけておく。スナップショット管理プログラム241は、ホスト計算機100に対して、運用ボリューム310のブロックアドレス1番の更新前のデータ(世代1のデータ)が仮想ボリューム1のブロックアドレス1番に仮想的に書き込まれているのと同様の状態で、世代1の仮想ボリューム1に対するアクセスを提供することができる。
第3行〜第m行には、仮想ボリューム1のブロックアドレス2番から(m−1)番のデータに対応する保存位置情報として「なし」が登録されている。この「なし」とは運用ボリューム310の対応するブロックアドレスを示している。従って、仮想ボリューム1のブロックアドレス2番〜(m−1)番については、それぞれ運用ボリューム310のブロックアドレス2番〜(m−1)番が対応する。すなわち、「なし」は、最後にスナップショット生成要求を受信した後、運用ボリューム310の当該ブロックは更新(書き替え)がされていないことを示す。
従って、スナップショット管理プログラム241は、仮想ボリューム1のブロックアドレス0番のデータと、仮想ボリューム1のブロックアドレス1番のデータと、運用ボリューム310のブロックアドレス2〜(m−1)番のデータとによって、運用ボリューム310のブロックアドレス0番及び1番のデータが更新される前の時点における運用ボリューム310のスナップショットイメージ(世代1の仮想ボリューム1)を提供することが可能になる。
列2614には世代2の仮想ボリューム2のデータの保存位置が登録される。
スナップショット管理プログラム241は、スナップショット生成要求を受信する毎に、生成要求受信時におけるスナップショットを取得すべく新たな世代の仮想ボリュームをスナップショット管理テーブルに登録する。仮想ボリューム2はスナップショット番号1のスナップショット(世代1の仮想ボリューム1に対応)が生成された後に再びスナップショット生成要求(世代2のスナップショット要求)を受信した際、スナップショット管理プログラム241によって生成されるスナップショット番号2(世代2)のスナップショットに対応する世代の仮想ボリュームである。
列2614の第1行に仮想ボリューム2のブロックアドレス0番のデータ保存位置として登録されている0番は、差分ボリューム330のブロックアドレス0番に対応している。
2番目のスナップショット生成要求の受信後に運用ボリューム310のブロックアドレス0番のデータが更新されるとき、スナップショット管理プログラム241は、前述したように運用ボリューム310のブロックアドレス0番に保存されている更新前のデータを、差分ボリューム330のブロックアドレス0番に複写し、その後に運用ボリューム310のブロックアドレス0番のデータを更新する。すると、仮想ボリューム1及び仮想ボリューム2のブロックアドレス0番に対応するデータは、差分ボリューム330のブロックアドレス0番に保存されたこととなるから、仮想ボリューム1及び仮想ボリューム2のブロックアドレス0番は共に、差分ボリューム330のブロックアドレス0番と対応付けられるよう、スナップショット管理プログラム241がスナップショット管理テーブルを書き換える。
列2614の第2行に仮想ボリューム2のブロックアドレス1番のデータの保存位置として登録されている2番は、差分ボリューム330のブロックアドレス2番に対応している。これは、2番目のスナップショット生成要求受信後、運用ボリューム310のブロックアドレス1番のデータが更新されたことを示している。すなわち、2番目(世代2)のスナップショット生成要求を受信した後に生じた運用ボリューム310のブロックアドレス1番のデータ更新に際しては、更新前のデータは差分ボリューム330のブロックアドレス2番に複写されている。これは、差分ボリューム330の1番に複写すると、仮想ボリューム1のブロックアドレス1番と対応付けられているデータが変更され、1番目のスナップショットデータが壊れてしまうからである。
列2614の第3行から第m行に、仮想ボリューム2のブロックアドレス2番から第(m−1)番のデータの保存位置として「なし」が登録されている。この「なし」は、前述したように、仮想ボリュームの当該ブロックアドレスが、運用ボリューム310の対応するブロックアドレスに対応付けられていることを示す。
仮想ボリュームnについての説明は、上記仮想ボリューム1、2についての説明と同様なので、省略する。
列2612は、世代管理ビットマップであり、そのビット数は仮想ボリュームの数と同じである。図2Aに示す場合では、仮想ボリュームの数はnであるので、世代管理ビットマップはnビットを有する。世代管理ビットマップの第1ビットは世代1の仮想ボリューム1に対応し、第2ビットは世代2の仮想ボリューム2に対応し、以後同様にして、第nビットは世代nの仮想ボリュームnに対応する。仮想ボリュームの第k行のブロックアドレスに更新の登録がある場合(すなわち、差分ボリューム330のブロックアドレスが登録されている場合)には、第k行の世代管理ビットマップ中の、この仮想ボリュームに対応するビットを「0」とする。また、この仮想ボリュームの第k行のブロックアドレスに更新の登録がない場合(すなわち、「なし」が登録されている場合)には、第k行の世代管理ビットマップ中の、この仮想ボリュームに対応するビットを「1」とする。
図2Aに示すスナップショット管理テーブル2610では、各仮想ボリュームの第1行のブロックアドレス0番には「0」が割り当てられているので、第1行の世代管理ビットマップの各ビットは全て「0」になる。また、各仮想ボリュームの第m行のブロックアドレス(m−1)番には「なし」が割り当てられているので、第m行の世代管理ビットマップの各ビットは全て1になる。
なお、図2Aに示すスナップショット管理テーブル2610では、運用ボリューム310のサイズをmブロック、スナップショットの最大数をnとしている。例えば、ブロックサイズを512バイト、運用ボリューム310のサイズを128ギガバイト、スナップショットの最大数を64とすると、m=250000000、n=64となる。なお、ブロックサイズや運用ボリューム310のサイズ、スナップショットの最大数は、本発明の効果に影響しないため、任意に設定してよい。
図2Aに示すスナップショット管理テーブル2610では、第1行(行2616)は、列2611が運用ボリューム310のブロックアドレス0番を示す。列2612は、世代管理ビットマップが00…0であることを示す。列2613、列2614、・・・列2615の「0」は、スナップショット1、2、・・・n番に対応する仮想ボリューム1、2、・・・nのブロックアドレス0番の内容(すなわち、各仮想ボリュームに対応するスナップショットの生成要求発行時に、運用ボリューム310のブロックアドレス0番に保存されていたデータ)が、差分ボリューム330のブロックアドレス0番に保存されていることを示す。
第2行(行2617)は、列2611が運用ボリューム310のブロックアドレス1番を示す。列2612は、世代管理ビットマップが00…1であることを示す。列2613の「1」は、スナップショット1番に対応する仮想ボリューム1のブロックアドレス1番の内容が差分ボリューム330のブロックアドレス1番に保存されていることを示す。列2614の「2」は、スナップショット2番に対応する仮想ボリューム2のブロックアドレス1番の内容が差分ボリューム330のブロックアドレス2番に保存されていることを示す。列2614の「なし」は、スナップショットn番に対応する仮想ボリュームnのブロックアドレス1番の内容が運用ボリューム310のブロックアドレス1番に保存されていることを示す。
仮想ボリュームnのブロックアドレス1番に「なし」が割り当てられていることは、世代nの仮想ボリュームnのブロックアドレス1番の内容が、運用ボリューム310のブロックアドレス1番に保存されいること、及び、仮想ボリュームnに対応するn番目のスナップショットの生成要求を受信した後、運用ボリューム310のブロックアドレス1番のデータが更新されていないことを示している。
第3行(行2618)は、列2611が運用ボリューム310のブロックアドレス2番を示す。列2612は、世代管理ビットマップが11…1であることを示す。列2613、列2614、・・・列2615は、スナップショット1、2、・・・n番に対応する仮想ボリューム1、2、・・・nのブロックアドレス2番の内容が、運用ボリューム310のブロックアドレス2番に保存されていること(すなわち、運用ボリューム310の更新されていないこと)を示す。
第m行(列2619)は、列2611が運用ボリューム310のブロックアドレス(m−1)番を示す。列2612は、世代管理ビットマップは、11…1であることを示す。列2613、列2614、・・・列2615は、スナップショット1、2、・・・n番に対応する仮想ボリューム1、2、nのブロックアドレス(m−1)番の内容が、運用ボリューム310のブロックアドレス(m−1)番に保存されていること(すなわち、運用ボリューム310の更新(書き替え)が行われていないこと)を示す。
換言すると、列2612の各エントリに示されている世代管理ビットマップは、少なくともスナップショットの最大数を示すnビットを備える保存領域であり、各ビットがスナップショットの番号と対応し、スナップショットを維持し始めてからの更新の有無を示す。図2に示す場合、「0」は更新あり、「1」は更新なしを示す。
この世代管理ビットマップは、スナップショット管理プログラム241が運用ボリューム310にブロックデータを書き込む際に参照され、データを書き込むアドレスの更新前のデータを差分ボリューム330に複写するか否かを決定するために利用される。この世代管理ビットマップによって、データ書き込み毎に、どのスナップショットの仮想ボリュームのブロックアドレスを書き換えるかを知るために、スナップショット管理テーブルをたどる必要がなくなり、データの書き込み速度を向上させることができる。
図2Bは、差分ブロック管理テーブル2620を示す。
差分ブロック管理テーブル2620は、差分ボリューム330のブロックの使用状況を管理するため、差分ボリューム330に設けられたブロック各々に対して、差分ボリュームブロックアドレス2621と世代所有ビットマップ2622との対応を示す。
各列の世代所有ビットマップ2622は、少なくともスナップショットの世代の最大数を示すnビットを備える保存領域であり、各ビットがスナップショットの番号(世代数)と対応している。各ビットは、対応するスナップショットデータにアクセスするための仮想ボリュームを構成するブロックとして、対応する差分ボリューム330上のブロックが参照されるか否か(「1」は参照あり、「0」は参照なし)を示す。
ホスト計算機100からの要求による運用ボリューム310への書き込みに伴い、差分ボリューム330に運用ボリューム310のブロックデータを複写する際に、そのブロックを参照するスナップショット番号に対応する世代所有ビットマップ2622内のビットを1に更新する。また、差分ボリューム330から空きブロックを得る際には、世代所有ビットマップ2622の全てのビットが0のブロックを選択する。
また、スナップショットを削除する際は、削除されるスナップショットに対応する仮想ボリュームを構成している全てのブロックについて、削除されるスナップショットに対応する所有ビットマップ内のビットを「0」に更新する。
より具体的に図2Bに示す差分ブロック管理テーブル2620の内容を説明すると、第1行(2623)には、差分ボリューム330のブロックアドレス0番の所有ビットマップとして「11…1」が登録されており、これは、差分ボリューム330のブロックアドレス0番のブロックが、全てのスナップショットにおいて使用されていることを示している。これは、スナップショット管理テーブル2610(図2A)の第1行(2616)に規定されるように、スナップショット1、2、・・・n番に対応する仮想ボリューム1、2、・・・nのブロックアドレス0番の内容が、差分ボリューム330のブロックアドレス0番に保存されていることに対応している。
第2行(2624)には、差分ボリューム330のブロックアドレス1番の所有ビットマップとして「10…0」が登録されており、これは、差分ボリューム330のブロックアドレス1番のブロックが、所有ビットマップの第1ビットに対応するスナップショット1番において使用されている(すなわち、仮想ボリューム1を構成している)が、他のスナップショットにおいては使用されていないことを示している。これは、スナップショット管理テーブル2610(図2A)の第2行(2617)に規定されるように、スナップショット1番に対応する仮想ボリューム1のブロックアドレス1番の内容が、差分ボリューム330のブロックアドレス1番に保存されていることに対応している。
第3行(2625)には、差分ボリューム330のブロックアドレス2番の所有ビットマップとして「01…0」が登録されている。これは、差分ボリューム330のブロックアドレス2番のブロックが、所有ビットマップの第2ビットに対応するスナップショット2番において使用されている(すなわち、仮想ボリューム2を構成している)ことを示している。これは、スナップショット管理テーブル2610(図2A)の第2行(2618)に規定されるように、スナップショット2番に対応する仮想ボリューム2のブロックアドレス1番の内容が、差分ボリューム330のブロックアドレス2番に保存されていることに対応している。
以後、第(p−1)行(2626)まで同様に設定される。
すなわち、所有ビットマップ2622の少なくとも一つのビットが「1」であれば、差分ボリューム330の当該ブロックはスナップショットに利用されている。また、所有ビットマップ2622の全てのビットが「0」であれば、差分ボリューム330のそのブロックはスナップショットに利用されていない空きブロックである。
次に、スナップショット管理プログラム241の処理を説明する。
図3は、本発明の第1の実施の形態のスナップショット管理プログラム241による書き込み処理のフローチャートである。
書き込み処理では、まず、スナップショット管理テーブル2610を参照して、書き込み処理の対象となっているブロックアドレスに対応する世代管理ビットマップ2612の全てのビットが「0」であるか否かを判定する(ステップ1001)。
全ビットが「0」であれば、該ブロックのデータは、最後のスナップショット生成要求が発行された後、更新されており、既にこのブロックについては全ての仮想ボリュームが差分ボリューム330と対応づけられていることとなる。従って、世代管理ビットマップ2612の全てのビットが「0」であれば、更新前のデータを差分ボリューム330に複写する必要はないので、ステップ1006に進み、指定された運用ボリューム310のブロックにデータを書き込む。
一方、少なくとも一つのビットが「1」であれば、書き込み処理によって更新される運用ボリューム310上のデータを参照しているスナップショット(仮想ボリューム)が存在するので、ステップ1002に進む。
ステップ1002では、差分ブロック管理テーブル2620(図2B)を参照して、書き込みを行う運用ボリューム310のブロックに保存されている更新前のデータを差分ボリューム330の空きブロックに複写する。
そして、ステップ1002にてデータの複写先となった差分ボリューム330内のブロックのアドレスに対応する差分ブロック管理テーブル2620の世代所有ビットマップ2622に、ステップ1001にて参照した世代管理ビットマップの値を保存する(ステップ1003)。
そして、スナップショット管理テーブル2610に登録されている仮想ボリュームのうち、ステップ1001において参照した世代管理ビットマップ中の「1」の値を有するビットに対応する仮想ボリュームを特定する。そして特定された仮想ボリューム内の書き込み対象ブロックに対応するブロックが、ステップ1002においてデータの複写先となった差分ボリューム330と対応するように、スナップショット管理テーブル2610を更新する(1004)。すなわち、スナップショット管理テーブル2610内の特定された仮想ボリュームに対応する列の、書き込み対象ブロックアドレスに対応する行に、ステップ1002においてデータの複写先となった差分ボリューム330のブロックのアドレスを登録する。
次に、ステップ1001において参照した世代管理ビットマップの全ビットの値を「0」に更新する(1005)。
その後、指定されたブロックアドレスが示す運用ボリューム310のブロックに、指定されたデータを書き込み(ステップ1006)、処理を終了する。
図4は、本発明の第1の実施の形態のスナップショット管理プログラム241による読み出し処理のフローチャートである。
読み出し処理では、まず、ホスト計算機100から指定された読み出し対象のボリュームが、運用ボリューム310であるか、仮想ボリュームであるかによって、スナップショットからの読み出しであるか否かを判定する(1101)。
その結果、ホスト計算機100から受信した読み出し要求が運用ボリューム310に対するものであれば、スナップショットに対する読み出し要求ではないと判定し、運用ボリューム310の、指定されたブロックアドレスからデータを読み出す(1103)。
一方、ホスト計算機100から受信した読み出し要求が仮想ボリュームに対するものであれば、スナップショットに対する読み出し要求であると判定して、ステップ1103に進む。そして、さらに、スナップショット管理テーブル2610(図2A)を用いて、読み出し対象の仮想ボリュームの、ホスト計算機100によって指定されたブロックアドレスに対応する値を参照し、その値が「なし」であるか否かを判定する(1102)。
その結果、当該仮想ボリュームのブロックアドレスに対応する値が「なし」であれば、読み出し対象のスナップショットに対応する仮想ボリュームの、読み出し対象のブロックのデータは、差分ボリューム330には保存されていないので、運用ボリューム310の指定されたブロックアドレスからデータを読み出す(1103)。
一方、ステップ1102で参照したブロックアドレスの値が「なし」でなければ、読み出し対象の仮想ボリュームのブロックアドレスは、差分ボリューム330内のブロックアドレスと対応付けられている。すなわち、読み出し対象の仮想ボリュームのブロックアドレスのデータは、差分ボリューム330に保存されている。そこで、ステップ1102にて参照した差分ボリューム330のブロックアドレスからデータを読み出す(1104)。
その後、読み出したブロックデータをホスト計算機100に返送して、読み出し処理を終了する。
図5は、本発明の第1の実施の形態のスナップショット管理プログラム241のスナップショット生成処理のフローチャートである。
スナップショットの生成は、ホスト計算機100又はCPU220からスナップショットの生成要求を受信すると、スナップショット管理テーブル2610(図2A)に新たな世代の仮想ボリュームを登録する。そして、スナップショット管理テーブル2610に登録されている全ての世代管理ビットマップ2612の、新たに生成されるスナップショットに対応して新たに登録された仮想ボリュームに対応するビットを「1」に設定し、新たに生成されるスナップショットに対応する仮想ボリュームのブロックアドレスを全て「なし」に設定する(1201)。
その後、スナップショット生成の対象として指定された運用ボリューム310の領域から読み出したデータを差分ボリューム330に書き込んで、指定された領域に保存されたデータを運用ボリューム310から差分ボリューム330に複写する。(1202)。
その後、スナップショットの生成処理を終了する。
なお、前述したステップ1201では、スナップショット管理テーブル2610に登録されている全ての世代管理ビットマップ2612の、新たに生成された仮想ボリュームに対応するビットの値を「1」と設定している。しかし、運用ボリューム310上に未使用ブロックが存在する場合、この未使用ブロックに対応する仮想ボリューム内のブロックも未使用ブロックとなる。このとき、新たに生成された仮想ボリューム内に存在する未使用ブロックには、世代管理ビットマップの未使用ブロック以外のブロックにのみ、新たに生成された仮想ボリュームに対応するビットを「1」と設定するように構成してもよい。ここで、未使用ブロックとは、データ(ファイルやディレクトリ等)の保存のために割り当てられていないブロックで、今後ファイルやディレクトリを新規生成したり、サイズを拡張したりする際に、データを保存するために用意しているブロックである。
未使用ブロックに対する書き込み要求が発行され、未使用ブロックに保存されているデータが更新されても、ファイルシステムのスナップショットは未使用ブロックのデータを参照することがないため、当該データの更新はファイルシステムのスナップショットには影響を与えない。従って、スナップショット生成後に未使用部分が更新された場合、スナップショット生成の際に未使用ブロックに対する世代管理ビットマップが「0」になっていると差分ボリューム330に更新前のデータが複写されず、未使用ブロック内のデータ更新がスナップショットに反映され、スナップショット生成時と内容が変化してしまう。しかし、当該スナップショットを用いたファイルシステムでは、ファイルシステム内のファイルやディレクトリの内容には影響がない。従って、スナップショットを生成する際、未使用ブロックに対する世代管理ビットマップを「0」にしておけば、差分の発生量を削減することが可能となる。
次に、コピーボリューム320の生成処理を示す。
図6は、本発明の第1の実施の形態のスナップショット管理プログラム241によるコピーボリューム生成処理のフローチャートである。
本実施の形態では、ある時点での運用ボリューム310のフルコピーをコピーボリューム320としてストレージに保存する。
まず、ホスト計算機100から、コピーボリューム320に設定する世代を指定して、運用ボリュームのコピー要求を送る(ステップ2001)。この世代の指定は、例えば任意の世代(第1世代、第2世代・・・など)やスナップショット要求の世代の一つ前の世代を指定することができる。
これを受けて、スナップショット管理プログラム241は、現時点での運用ボリューム310の全データをコピーボリューム320にコピー(複写)する(ステップ2002)。具体的には、まず運用ボリューム310とコピーボリューム320とを同期する。そして運用ボリューム310の各ブロックを全てコピーボリューム320にコピーすることで、運用ボリューム310のレプリケーションを生成する。
運用ボリューム310のコピーボリューム320へのコピーが完了した後、ホスト計算機100がスナップショット要求を送ると(ステップ2003)、スナップショット管理プログラム241は、まず、運用ボリューム310とコピーボリューム320を分離する(ステップ2004)。これによって、運用ボリューム310とコピーボリューム320とのそれぞれがアクセスを受け付け可能となる。なお、ホスト計算機100側から運用ボリューム310とコピーボリューム320との分離を指示してもよい。
次に、差分ビットマップ261を参照して、一世代分の差分ボリュームの情報を初期化する(ステップ2005)。次に、コピーボリューム320に設定した世代の情報をコピーボリューム世代数管理情報262に設定する(ステップ2006)。
次に、ホスト計算機100から、書き込み要求又は次回のスナップショット要求があったか否かを判定する(ステップ2007)。
ホストからの書き込み要求があった場合は、ステップ2008に移行し、書き込み処理(図3参照)を行う。すなわち、差分ビットマップ261の世代管理ビットマップ2612を参照し、全ビットが「0」であれば、該ブロックのデータは既に更新されているので、運用ボリューム310の指定されたブロックにデータを書き込む。
一方、少なくとも一つのビットが「1」であれば、そのブロックの書き込み前のデータを差分ボリュームに複写し、運用ボリューム310の指定されたブロックにデータを書き込む。
ステップ2007において、ホスト計算機100から次回のスナップショット要求、すなわち、ステップ2003において要求されたスナップショット要求とは異なる世代を指示するスナップショット要求があった場合には、ステップ2009に移行する。何れの要求もない場合には、この処理を待機する。
ステップ2009では、本処理を終了する指示があったか否かを判定する。処理を終了しない場合は、ステップ2010に移行し、ホスト計算機100のスナップショット要求によって指示された世代が、コピーボリューム320に設定された世代と異なるか否かを判定する。
現在のコピーボリューム320の世代が指定された世代と同じである場合は、ステップ2014に移行する。
一方、現在のコピーボリューム320の世代が指定された世代と異なる場合は、ステップ2011に移行し、前回のスナップショット要求以降に書き込み要求があったか否かを判定する。
書き込み要求がなかった場合はステップ2014に移行する。書き込み要求があった場合は、ステップ2012に移行し、運用ボリューム310とコピーボリューム320とを再同期して、運用ボリューム310の全データをコピーボリューム320にコピーする。コピーが完了すると、運用ボリューム310とコピーボリューム320とを分離する(ステップ2013)。
このステップ2010乃至ステップ2013の処理は、例えばステップ2001において、スナップショット要求の世代の一つ前の世代となるようにコピーボリューム320が指示された場合は、新たなスナップショット要求後の書き込み要求が発生したことによってコピーボリューム320が二世代前となってしまう。そこで、コピーボリューム320の再同期を行って、指示された一世代前のコピーを持つ。
ステップ2014では、差分ビットマップ261から、一世代分の差分ボリュームの情報を初期化する。そして、コピーボリューム320の情報をコピーボリューム世代数管理情報262に登録する。
以上の処理によって、指定した世代のコピーボリューム320が生成される。
図7は、本発明の第1の実施の形態の世代ボリューム生成プログラム242よる、指定世代のボリューム(仮想ボリューム)の生成処理のフローチャートである。
ホスト計算機100から、世代Nを指定した仮想ボリュームのアクセス要求を受信すると、世代ボリューム生成プログラム242は、指定された世代Nが、現在のコピーボリューム320の世代と同じであるか否かを判定する(ステップ2201)。コピーボリューム320の世代の情報はコピーボリューム世代数管理情報262に保存されているので、これを参照することで、現在のコピーボリュームの世代を取得できる。
指定された世代Nがコピーボリューム320の世代と同じであると判定した場合は、アクセス要求のあった内容がコピーボリューム320の内容と同じであるため、ホスト計算機100に対して、コピーボリューム320のアクセスを指示し(ステップ2209)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
指定された世代Nがコピーボリューム320の世代とは異なると判定した場合は、指定された世代Nが、最新の世代であるか否かを判定する(ステップ2202)。コピーボリューム320の世代の情報はコピーボリューム世代数管理情報262を参照する。
指令された世代Nが最新の世代でないと判定した場合は、ステップ2208において、コピーボリューム320と差分ボリューム330とから指定世代の仮想ボリュームを指示し、処理を終了する。具体的には、差分ビットマップ261を参照して、指定世代の仮想ボリュームを取得する。この場合、運用ボリューム310とコピーボリューム320とはブロックアドレスは同一であるため、指定世代のブロックのうち、運用ボリューム310を参照するブロックは、運用ボリュームブロックアドレス2611で示される当該ブロックのブロックアドレスを用いて、コピーボリューム320のブロックを参照する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
ステップ2202において、指定された世代Nが最新の世代であると判定した場合は、最新の世代のスナップショット要求があった後に、運用ボリューム310に書き込みがされたか否かを判定する(ステップ2203)。
運用ボリューム310に書き込みがされたと判定した場合は、運用ボリューム310とコピーボリューム320とで再同期処理を行い、コピーボリューム320を運用ボリュームの内容と同一にする(ステップ2204)。そして、運用ボリューム310とコピーボリューム320とを分離する(ステップ2205)。この時点で、コピーボリューム320の内容は、運用ボリューム310と同じ、すなわち最新の状態である。次に、コピーボリューム320の情報をコピーボリューム世代数管理情報262に登録する(ステップ2206)。次に、コピーボリューム320のアクセスを指示し(ステップ2207)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
ステップ2203において、書き込みがされていないと判定した場合は、アクセス要求のあった内容がコピーボリューム320の内容と同じであるため、ホスト計算機100に対して、コピーボリューム320のアクセスを指示し(ステップ2207)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
図8は、本発明の第1の実施の形態の世代ボリューム生成プログラム242よる、指定世代のボリューム(仮想ボリューム)の生成処理のフローチャートである。この処理は、コピーボリューム320に障害が発生した場合などに、当該コピーボリューム320の内容を新たなドライブ(論理ボリューム)に生成し、コピーボリューム320を復旧するための処理である。
コピーボリューム320の障害等の発生等を検知し、当該コピーボリューム320の世代Nを新たなボリュームとして生成するための要求を受信すると、まず、指定された世代Nが最新の世代であるか否かを判定する(ステップ2401)。指定された世代Nが最新の世代であると判定した場合は、運用ボリューム310の内容がコピーボリューム320の内容と同じであるため、運用ボリューム310の内容を復旧先の論理ボリュームにコピーする。このとき、当該論理ボリュームの情報をコピーボリューム320の情報として、差分ビットマップ261、コピーボリューム世代数管理情報262等のマッピング情報を変更し、処理を終了する(ステップ2402)。
一方、指定された世代Nが最新の世代でないと判定した場合は、運用ボリューム310と差分ボリューム330とから、最後にスナップ要求があった時点より前の世代のボリュームを新たな論理ボリュームに生成する(ステップ2403)。具体的には、まず、現在の運用ボリューム310と差分ボリューム330とから最後のスナップショット時の世代の仮想ボリュームを新たな論理ボリュームにコピーする。
次に、当該論理ボリュームの内容、すなわち、最後のスナップショット時の世代の運用ボリューム310の内容と、差分ボリューム330との内容から、指定世代の仮想ボリュームを生成し、コピーボリューム320復旧先の論理ボリュームにコピーする(ステップ2404)。
具体的には、差分ビットマップ261を参照して、指定世代の仮想ボリュームを取得する。この場合、最後のスナップショット時の世代の論理ボリュームの内容と運用ボリューム310とはブロックアドレスは同一であるため、指定世代のブロックのうち、運用ボリューム310を参照するブロックは、運用ボリュームブロックアドレス2611で示される当該ブロックのブロックアドレスを用いて、論理ボリュームのブロックを参照する。
この処理によって、指定世代の仮想ボリュームが取得可能となるので、当該仮想ボリュームをコピーボリューム320復旧先の論理ボリュームにコピーする。
以上の仮想ボリューム生成処理によって、コピーボリュームに障害が発生した場合に、運用ボリューム310と差分ボリューム330とから、コピーボリュームを新たな論理ボリュームに復旧することができる。
図9は、運用ボリューム復旧プログラム243よる、運用ボリューム310の復旧処理のフローチャートである。この処理は、運用ボリューム310に障害が発生した場合などに、当該運用ボリューム310の内容を復旧するための処理である。
運用ボリューム310の障害等が発生等によって、運用ボリューム復旧プログラム243が、当該運用ボリューム310を指定された世代Nの新たなボリュームとして生成するための要求を受信すると、まず、指定された世代Nがコピーボリューム320の世代であるか否かを判定する(ステップ2601)。指定された世代Nがコピーボリューム320の世代と同じであると判定した場合は、コピーボリューム320の内容を、そのまま運用ボリューム310として利用できる。そこで、コピーボリューム320を運用ボリューム310の情報に変更して、差分ビットマップ261、コピーボリューム世代数管理情報262等のマッピング情報を変更し、処理を終了する(ステップ2606)。
一方、コピーボリューム320の世代が、指定された世代Nとは異なる場合は、まず、差分ビットマップ261を参照して、指定世代Nのうち、差分ボリューム330が示されているブロックアドレスは、当該ブロックアドレスの内容をコピーボリューム320に上書きする(ステップ2602)。
次に、現状の運用ボリューム310の世代番号を保存する(ステップ2603)。
次に、コピーボリューム320及び差分ボリューム330の、指定された世代Nよりも新しい世代(N+1世代以降)のデータを破棄する。さらに、差分ビットマップ261の内容を破棄する(ステップ2604)。
次に、差分ビットマップ261の情報を、現状のコピーボリューム320のブロックアドレスに更新する。運用ボリューム310とコピーボリューム320とはブロックアドレスは同一であるため、結果として復旧した新たな運用ボリュームのブロックアドレスとなる(ステップ2605)。
次に、コピーボリューム320のマッピング情報を運用ボリューム310の情報に変更する。具体的には、差分ビットマップ261、コピーボリューム世代数管理情報262等のマッピング情報を変更することで、コピーボリューム320を運用ボリューム310に変更する。その後、処理を終了する(ステップ2606)。
以上の処理によって、運用ボリューム310に障害が発生した場合に、コピーボリューム320と差分ボリューム330とから、運用ボリューム310を新たな論理ボリュームに復旧することができる。
図10は、本発明の第1の実施の形態の世代ボリューム生成プログラム242による、指定世代のボリューム(仮想ボリューム)の生成処理のフローチャートである。この処理は、差分ボリューム330に障害が発生した場合などに、差分ボリュームを用いずに、指定世代の仮想ボリュームへのアクセスを行う処理である。
ホスト計算機100から、世代Nを指定した仮想ボリュームのアクセス要求を受信すると、世代ボリューム生成プログラム242は、指定された世代Nが、最新の世代であるか否かを判定する(ステップ2701)。なお、コピーボリューム320の世代の情報はコピーボリューム世代数管理情報262を参照する。
ステップ2701において、指定された世代Nが最新の世代であると判定した場合は、当該最新の世代のスナップショット要求があった後に、運用ボリューム310に書き込みがされたか否かを判定する(ステップ2702)。
運用ボリューム310に書き込みがされたと判定した場合は、運用ボリューム310とコピーボリューム320とで再同期処理を行い、コピーボリューム320を運用ボリュームの内容と同一にする(ステップ2703)。そして、運用ボリューム310とコピーボリューム320とを分離する(ステップ2704)。この時点で、コピーボリューム320の内容は、運用ボリューム310と同じ、すなわち最新の状態である。
次に、コピーボリューム320の情報をコピーボリューム世代数管理情報262に登録する(ステップ2705)。次に、コピーボリューム320のアクセスを指示し(ステップ2706)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
ステップ2702において、書き込みがされていないと判定した場合は、アクセス要求のあった内容がコピーボリューム320の内容と同じであるため、ホスト計算機100に対して、コピーボリューム320のアクセスを指示し(ステップ2703)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
ステップ2701において、指令された世代Nが最新の世代でないと判定した場合は、ステップ2707に移行し、指定された世代Nが、現在のコピーボリューム320の世代と同じであるか否かを判定する。
指定世代Nが、現在のコピーボリューム320の世代と同じであると判定した場合は、コピーボリューム320の情報をコピーボリューム世代数管理情報262に登録する(ステップ2705)。
次に、コピーボリューム320のアクセスを指示し(ステップ2706)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
一方、ステップ2707において、指定された世代Nが現在のコピーボリューム320の世代ではないと判定した場合は、当該世代Nは、差分ボリューム330に保存されたブロックアドレスに存在するが、当該差分ボリューム330は障害のため読み込みができない。そこで、世代ボリューム生成プログラム242は、アクセス元のホスト計算機100に、当該世代Nの仮想ボリュームは生成不可能である旨のメッセージを送信し(ステップ2708)、処理を終了する。
図11は、本発明の第1の実施の形態の差分ボリューム容量管理プログラム244による、差分ボリューム330の容量管理処理のフローチャートである。
差分ボリューム容量管理プログラム244は、差分ボリューム330への書き込み(更新)要求があったときに起動する。そして、差分ボリューム330全体の使用量が、予め定めた閾値を超えないように監視する。超えた場合は、テープ装置400にバックアップを行うなどの処理をする。
まず、差分ボリューム330への書き込みがあったか否かを判定する(ステップ2901)。書き込みがない場合は、書き込みがあるまで待機する。
書き込みがあったと判定した場合は、差分ボリューム330の全体の使用量が、予め定めた閾値以上となったか否かを判定する(ステップ2902)。差分ボリューム330の使用量は、差分ボリューム330へのアクセスがあった時点で登録される容量管理情報264に保存されている。差分ボリュームの全体の使用量が予め定めた閾値に満たない場合は、ステップ2901に戻る。差分ボリュームの全体の使用量が予め定めた閾値以上となった場合は、差分ボリューム330のデータうち、優先度の低い世代(世代M)を検索する。
優先度の判定には、最後のアクセスから時間がたっているデータを含む世代、アクセス頻度が低いデータを含む世代、当該データ容量の多い世代、を優先度の低いものと判断する。
次に、検索した優先度の低い世代Mのボリュームを生成する(ステップ2904)。この場合、仮想ボリュームとしてアクセスを受け付けてもよいし、新たな論理ボリュームにコピーしてもよい。そして、当該世代Mのボリュームをテープ装置400にバックアップを行う(ステップ2905)。
次に、世代Mの情報を削除する(ステップ2906)。具体的には、差分ブロック管理テーブル2620を参照して、世代Mのみが参照するデータを特定する。そして、世代Mのみが参照すると特定されたデータを差分ボリューム330から削除する。その後、差分ビットマップ261から、当該世代Mの情報を削除する。
以上の処理によって、差分ボリューム330の使用量を、予め定めた閾値を超えない容量に設定することができる。
ユーザの指示によって、動的に差分ボリューム330の容量を管理することもできる。例えば、ユーザによって世代数が指示された場合は、指示された世代数より少ない世代で容量が上限に達した場合は、古い世代のデータをテープ装置400にバックアップする。また、ユーザによって容量を指示された場合は、指示された容量を確保できるまで、古い世代のデータをテープ装置400にバックアップする。なお、テープ装置400へのバックアップではなく、その世代のデータを削除してもよい。また、ユーザの指示によって、テープ装置400へのバックアップをしてもよい。また、ユーザの指示によって、その世代のデータを削除してもよい。
次に、本発明の第1の実施の形態のストレージシステムを応用した運用例を説明する。
図12は、本発明の第1の実施の形態のストレージ管理装置200において、過去に不正な書き込みがあったことを発見した場合に、その不正な書き込みのあった時点よりも前の状態に運用ボリューム310の内容を復旧する処理の例を示す。
不正な書き込みがあったことをユーザが発見した場合、次のような処理を行う。
まず、ユーザは、ホスト計算機100つの管理用端末から、ストレージ管理装置200の共有メモリにあるスナップ情報263を参照する。スナップ情報263には、スナップショットがあった時刻とその世代番号が保存されているので、ユーザは不正な書き込みがあった時刻から、その時点よりも前の世代番号(世代L)を取得する(3001)。
次に、ユーザは、ストレージ管理装置200に対して、運用ボリューム310を、世代Lに戻す要求を送る(ステップ3002)。
要求を受けたストレージ管理装置200では、運用ボリューム復旧プログラム243が、指示された世代Lの運用ボリュームを復旧する。具体的には、まず、差分ビットマップ261を参照して、世代Lの仮想ボリュームを取得する。そして、当該世代Lの仮想ボリュームのうち、差分ボリューム330のブロックアドレスが示されているものは、そのブロックアドレスを運用ボリューム310にコピーする。このようにすることで指定世代Lの運用ボリューム310が生成される(ステップ3003)。
運用ボリューム310が世代Lとなった後に、世代Lよりも新しい世代の情報を削除する(ステップ3004)。
そして、運用ボリューム310とコピーボリューム320とで再同期処理を行い、コピーボリューム320を運用ボリュームの内容と同一にする(ステップ3005)。そして、運用ボリューム310とコピーボリューム320とを分離する(ステップ3006)。このようにすることで、コピーボリューム320の内容は、運用ボリューム310と同じとなる。
以上の処理によって、ユーザの指示により、運用ボリューム310を過去の任意の世代に復旧することができる。なお、運用ボリューム310を指定世代に復旧するのではなく、まずコピーボリューム320を指定世代Lに設定した後、マッピング情報を変更して、世代Lのコピーボリュームを運用ボリューム310に変更してもよい。
図13は、本発明の第1の実施の形態のストレージシステムを応用した別の運用例である。
ユーザは、ホスト計算機100を介して、ユーザから不正な書き込みのあった時刻と運用ボリュームを復旧する要求とを送る。この要求を受けて、ストレージ管理装置200は、自動的に、その不正な書き込みのあった時点よりも前の状態に運用ボリューム310の内容を復旧する。
不正な書き込みがあったことをユーザが発見した場合、次のような処理を行う。
まず、ユーザは、ホスト計算機100つの管理用端末から、不正な書き込みがあった時刻と共に運用ボリュームを当該時刻の直前の世代に復旧する要求を送信する(ステップ3101)。
要求を受けたストレージ管理装置200では、運用ボリューム復旧プログラム243が、指示された時刻を取得し、当該時刻以前で直近の世代を検索する(ステップ3102)。具体的には、指示された時刻を「T3」とし、世代Kがスナップショットされた時刻をTKとすると、以下の式を満足する世代Kを検索する。
K<T3<TK+1
この式によって、世代Kがスナップショットされた時刻が、指示された時刻T3以前である、かつ、世代Kの次の世代である世代K+1がスナップショットされた時刻が、指示された時刻T3以降である世代Kが導かれる。
又は、
K=T3
この式によって、世代Kがスナップショットされた時刻は、指示された時刻T3と同じ時刻である世代Kが導かれる。
従って、指示された時刻T3以前で直近の世代である世代Kが取得される。
次に、運用ボリューム310を、取得した世代Kに復旧する。
具体的には、まず、差分ビットマップ261を参照して、世代Kの仮想ボリュームを取得する。そして、当該世代Kの仮想ボリュームのうち、差分ボリューム330のブロックアドレスが示されているものは、そのブロックアドレスを運用ボリューム310にコピーする。このようにすることで指定世代Kの運用ボリューム310が生成される(ステップ3103)。
運用ボリューム310が世代Kとなった後に、世代Kよりも新しい世代の情報を削除する(ステップ3104)。
そして、運用ボリューム310とコピーボリューム320とで再同期処理を行い、コピーボリューム320を運用ボリュームの内容と同一にする(ステップ3105)。そして、運用ボリューム310とコピーボリューム320とを分離する(ステップ3106)。このようにすることで、コピーボリューム320の内容は、運用ボリューム310と同じとなる。
以上の処理によって、ユーザが時刻を指示することにより、運用ボリューム310を過去の任意の世代に自動的に復旧することができる。なお、運用ボリューム310を指定世代に復旧するのではなく、まずコピーボリューム320を指定世代Kに設定した後、マッピング情報を変更して、世代Kのコピーボリュームを運用ボリューム310に変更してもよい。
以上のように、本発明の第1の実施の形態のストレージシステムでは、ストレージ300に、運用ボリューム310、ある時点での運用ボリューム310のフルコピーを保存するコピーボリューム320、及び、運用ボリューム310への書き込みデータのスナップショットを保存する差分ボリューム330を備えたので、指定された世代のボリュームを取得することが可能となる。従って、ストレージシステム内に指定世代のバックアップを保存することが可能となり、ストレージの容量を低く抑えつつも、テープ装置等の通信速度の遅いテープ装置を用いることなく、指定世代へのデータのアクセス、バックアップができる。
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施の形態では、コピーボリューム320は、指定された世代のデータのコピーを持つのではなく、運用ボリュームにアクセスがあった時点で、リアルタイムにデータをバックアップする。なお、第1の実施の形態と同一の構成には同一の符号を付し、その説明は省略する。
図14は、本発明の第2の実施の形態のスナップショット管理プログラム241によるコピーボリューム生成処理のフローチャートである。図14は図6に類似しているが、ホスト計算機100からの書き込み要求があった際に、常にコピーボリューム320のデータも更新されるように処理する。
処理を開始すると、スナップショット管理プログラム241は、現時点での運用ボリューム310の全データをコピーボリューム320にコピー(複写)する(ステップ2101)。具体的には、運用ボリューム310とコピーボリューム320とを同期する。そして運用ボリューム310の各ブロックを全てコピーボリューム320にコピーすることで、運用ボリューム310のレプリケーションを生成する。
運用ボリューム310のコピーボリューム320へのコピーが完了した後、ホスト計算機100がスナップショット要求を送ると(ステップ2102)、スナップショット管理プログラム241は、まず、運用ボリュームとコピーボリュームを分離する。そして、差分ビットマップ261を参照して、一世代分の差分ボリュームの情報を初期化する(ステップ2103)。
次に、ホスト計算機100から、書き込み要求又は次回のスナップショット要求があったか否かを判定する(ステップ2104)。
ホストからの書き込み要求があった場合は、ステップ2105に移行し、書き込み処理(図3参照)を行う。すなわち、差分ビットマップ261の世代管理ビットマップ2612を参照し、全ビットが「0」であれば、該ブロックのデータは既に更新されているので、運用ボリューム310の指定されたブロックにデータを書き込む。
一方、少なくとも一つのビットが「1」であれば、そのブロックの書き込み前のデータを差分ボリュームに複写し、運用ボリューム310の指定されたブロックにデータを書き込む。
書き込み処理が終了すると、運用ボリューム310に書き込まれたデータ(更新されたブロック)を、コピーボリューム320に対しても書き込む(ステップ2106)。
ステップ2104において、ホスト計算機100から次回のスナップショット要求、すなわち、ステップ2102において要求されたスナップショット要求とは異なる世代を指示するスナップショット要求があった場合には、ステップ2107に移行する。何れの要求もない場合には、この処理を繰り返し、待機する。
ステップ2107では、本処理を終了するか否かを判定する。処理を終了しない場合は、ステップ2104に戻り、ホスト計算機100からのホストからの書き込み要求に備える。
以上の処理によって、ホスト計算機100から運用ボリューム310のブロックに書き込み要求があった際にコピーボリューム320にも同じブロックに対して書き込みがされ、常に運用ボリューム310と同じ状態のコピーが保存されることになる。
図15は、本発明の第2の実施の形態の世代ボリューム生成プログラム242よる、指定世代のボリューム(仮想ボリューム)の生成処理のフローチャートである。図15は図7に類似しているが、運用ボリューム310のデータのコピーを常にコピーボリューム320が保持している場合の処理である。
ホスト計算機100から、世代Nを指定した仮想ボリュームのアクセス要求を受信すると、運用ボリューム310とコピーボリューム320とを分離する(ステップ2301)。
次に、現在のコピーボリューム320の世代情報を、コピーボリューム世代数管理情報262に登録する(ステップ2302)。そして、差分ビットマップ261の内容を更新する。
次に、ホスト計算機100から指定された世代Nが最新の世代であるか否かを判定する(ステップ2303)。指定された世代Nが最新の世代であると判定した場合は、アクセス要求のあった内容がコピーボリューム320の内容と同じであるため、ホスト計算機100に対して、コピーボリューム320のアクセスを指示し(ステップ2304)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
一方、指定された世代Nが最新の世代でないと判定した場合は、コピーボリューム320と差分ボリューム330とから、指定世代の仮想ボリュームを指示し、処理を終了する(ステップ2305)。具体的には、差分ビットマップ261を参照して、指定世代の仮想ボリュームを取得する。この場合、運用ボリューム310とコピーボリューム320とはブロックアドレスは同一であるため、指定世代のブロックのうち、運用ボリューム310を参照するブロックは、運用ボリュームブロックアドレス2611で示される当該ブロックのブロックアドレスを用いて、コピーボリューム320のブロックを参照する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
以上の処理によって、常に運用ボリューム310とコピーボリューム320とのデータを同期すように構成されている場合でも、ホスト計算機から指定された世代のボリュームへのアクセスが可能となる。
図16は、本発明の第2の実施の形態の世代ボリューム生成プログラム242よる、指定世代のボリューム(仮想ボリューム)の生成処理を示すフローチャートである。この処理は、コピーボリューム320に障害が発生した場合などに、当該コピーボリューム320の内容を新たなドライブ(論理ボリューム)に生成し、コピーボリューム320を復旧するための処理である。図16は図8に類似しているが、運用ボリューム310のデータのコピーを常にコピーボリューム320がもっている場合の処理である。
コピーボリューム320の障害等が発生等を検知し、当該コピーボリューム320の世代Nを新たなボリュームとして生成するための要求を受信すると、まず、指定された世代Nが最新の世代であるか否かを判定する(ステップ2501)。指定された世代Nが最新の世代であると判定した場合は、運用ボリューム310の内容がコピーボリューム320の内容と同じであるため、運用ボリューム310の内容を復旧先の論理ボリュームにコピーする。
このとき、当該論理ボリュームの情報をコピーボリューム320の情報として、差分ビットマップ261、コピーボリューム世代数管理情報262等のマッピング情報を変更し、処理を終了する(ステップ2502)。
一方、指定された世代Nが最新の世代でないと判定した場合は、運用ボリューム310と差分ボリューム330とから、指定世代Nのボリュームを新たな論理ボリュームに生成する(ステップ2503)。
すなわち、運用ボリューム310の内容と差分ボリューム330の内容とから、指定世代の仮想ボリュームを生成し、コピーボリューム320復旧先の論理ボリュームにコピーする。具体的には、差分ビットマップ261を参照して、指定世代の仮想ボリュームを取得する。
この処理によって、指定世代の仮想ボリュームが取得可能となるので、当該仮想ボリュームをコピーボリューム320復旧先の論理ボリュームにコピーする。
以上のボリューム生成処理によって、コピーボリュームに障害が発生した場合に、運用ボリューム310と差分ボリューム330とから、コピーボリュームを新たな論理ボリュームに復旧することができる。
図17は、本発明の第2の実施の形態の世代ボリューム生成プログラム242による、指定世代のボリューム(仮想ボリューム)の生成処理を示すフローチャートである。この処理は、差分ボリューム330に障害が発生した場合などに、差分ボリュームを用いずに、指定世代の仮想ボリュームへのアクセスを行う処理である。図17は図10に類似しているが、運用ボリューム310のデータのコピーを常にコピーボリューム320が保持している場合の処理である。
ホスト計算機100から、世代Nを指定した仮想ボリュームのアクセス要求を受信すると、世代ボリューム生成プログラム242は、指定された世代Nが、最新の世代であるか否かを判定する(ステップ2801)。なお、コピーボリューム320の世代の情報はコピーボリューム世代数管理情報262を参照する。
ステップ2801において、指定された世代Nが最新の世代であると判定した場合は、コピーボリューム320の情報をコピーボリューム世代数管理情報262に登録する(ステップ2802)。次に、コピーボリューム320のアクセスを指示し(ステップ2803)、処理を終了する。この処理によって、ホスト計算機100は、指定した世代Nの仮想ボリュームへのアクセスが可能となる。
ステップ2801において、指令された世代Nが最新の世代でないと判定した場合は、当該世代Nは、差分ボリューム330に保存されたブロックアドレスに存在するが、差分ボリューム330は障害のため読み込みができない。そこで、世代ボリューム生成プログラム242は、アクセス元のホスト計算機100に、当該世代Nにはアクセス不可能である旨のメッセージを送信し(ステップ2804)、処理を終了する。
以上のように、本発明の第2の実施の形態のストレージシステムでは、ストレージ300に、運用ボリューム310、運用ボリューム310のフルコピーを常に保存するコピーボリューム320、及び、運用ボリューム310への書き込みデータのスナップショットを保存する差分ボリューム330を備えたので、第1の実施の形態と同様に、指定された世代のボリュームを取得することが可能となる。従って、ストレージシステム内に指定世代のバックアップを保存することが可能となり、ストレージの容量を低く押させつつも、テープ装置等の通信速度の遅いテープ装置を用いることなく、指定世代へのデータのアクセス、バックアップができる。特に、リアルタイムで運用ボリュームのデータのバックアップを持つので、ストレージの障害発生時にもデータを復旧が迅速となる。
本発明の第1の実施の形態のストレージシステムの構成のブロック図である。 本発明の第1の実施の形態の差分ビットマップのスナップショット管理テーブルの説明図である。 本発明の第1の実施の形態の差分ビットマップの差分ブロック管理テーブルの説明図である。 本発明の第1の実施の形態の書き込み処理のフローチャートである。 本発明の第1の実施の形態の読み出し処理のフローチャートである。 本発明の第1の実施の形態のスナップショット生成処理のフローチャートである。 本発明の第1の実施の形態のコピーボリューム生成処理のフローチャートである。 本発明の第1の実施の形態の指定世代のボリュームの生成処理のフローチャートである。 本発明の第1の実施の形態の指定世代の仮想ボリュームへのアクセス処理のフローチャートである。 本発明の第1の実施の形態の運用ボリュームの復旧処理のフローチャートである。 本発明の第1の実施の形態の指定世代のボリュームの生成処理のフローチャートである。 本発明の第1の実施の形態の差分ボリュームの容量管理処理のフローチャートである。 本発明の第1の実施の形態の運用ボリュームの内容を復旧する処理のフローチャートである。 本発明の第1の実施の形態の運用ボリュームの内容を復旧する処理のフローチャートである。 本発明の第2の実施の形態のコピーボリューム生成処理のフローチャートである。 本発明の第2の実施の形態の指定世代のボリュームの生成処理のフローチャートである。 本発明の第2の実施の形態の指定世代のボリュームの生成処理のフローチャートである。 本発明の第2の実施の形態の指定世代のボリュームの生成処理のフローチャートである。
符号の説明
100 ホスト計算機
200 ストレージ装置
210 チャネルI/F
220 CPU
230 ストレージI/F
240 メモリ
250 キャッシュメモリ
260 共有メモリ
300 ストレージ
310 運用ボリューム
320 コピーボリューム
330 差分ボリューム
400 テープ装置

Claims (10)

  1. ホスト計算機からデータが読み書きされる運用ボリュームと、所定のタイミングにおける前記運用ボリュームの複製が保存されるコピーボリュームと、差分データが保存される差分ボリュームとが設けられるディスク装置と、
    ストレージ管理装置を制御するためのプログラムを実行するプロセッサと、前記ホスト計算機と接続されるチャネルI/Fと、前記ディスク装置と接続されるストレージI/Fとを有するストレージ管理装置と、を備えるストレージシステムにおいて、
    前記プロセッサは、メモリに保存されたプログラムを実行することによって、
    生成されたスナップショットの世代を管理するスナップショット管理手段と、
    前記ホストコンピュータから指定された世代の仮想ボリュームへのアクセス要求に対する処理をする指定世代ボリューム生成手段と、を構成し、
    前記スナップショット管理手段は、
    前記運用ボリュームに格納されたデータを所定のタイミングで前記コピーボリュームに複製するコピーボリューム生成手段と
    前記運用ボリュームへの書き込み要求に対応して、当該データが書き込まれる領域に記憶されたデータを前記差分ボリュームに複製して前記差分データを生成し、当該データが書き込まれる前記運用ボリュームの領域のアドレスと前記差分データを記憶するための領域のアドレスとを対応付けるスナップショット管理情報を前記メモリに記録することによって前記差分データの生成を制御するデータ書込手段と
    前記プロセッサが、前記ホストコンピュータからスナップショットの生成の要求を受け取ったときに、新たな世代の前記スナップショット管理情報に運用ボリュームからデータの更新がされていないことを示す情報を設定し、前記運用ボリュームの指定された領域に保存されたデータを前記差分ボリュームに複写することによってスナップショットを生成するスナップショット生成手段と、を含み
    前記指定世代ボリューム生成手段は、
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と同じ場合は、前記コピーボリュームへアクセスし、
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と異なる場合は、前記差分ボリューム及び前記コピーボリュームにおける当該要求された世代のデータが保存されているアドレスを指定することによって、当該要求された世代のボリュームへアクセスし、
    前記運用ボリュームと同じ世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、前記スナップショットの生成の要求を受け取った後に前記運用ボリュームに書き込み要求があった場合は、前記運用ボリュームの内容と前記コピーボリュームの内容とを同期させ、当該同期完了後に同期を分離し、前記コピーボリュームへアクセスすることを特徴とするストレージシステム。
  2. 前記指定世代ボリューム生成手段は、
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と異なる場合は、
    前記スナップショット管理情報に運用ボリュームのデータが更新されていないことを示す情報が設定されているアドレスについては、前記コピーボリュームの当該アドレスへアクセスし、
    前記スナップショット管理情報に運用ボリュームのデータが更新されていることを示す情報が設定されているアドレスについては、前記差分ボリュームの前記スナップショット管理情報によって指示されるアドレスへアクセスすることを特徴とする請求項1に記載のストレージシステム。
  3. 前記指定世代ボリューム生成手段は、前記スナップショットの要求があった以前の前記運用ボリュームの複製を、前記コピーボリュームに保存することを特徴とする請求項1又は2に記載のストレージシステム。
  4. 前記指定世代ボリューム生成手段は、前記運用ボリュームに対する書き込み要求があったときに、当該書き込みデータを前記コピーボリュームに保存することを特徴とする請求項1から3のいずれか一つに記載のストレージシステム。
  5. ホスト計算機からデータが読み書きされる運用ボリュームと、所定のタイミングにおける前記運用ボリュームの複製を保存するコピーボリュームと、差分データを保存する差分ボリュームとが設けられるディスク装置と、
    ストレージ管理装置を制御するためのプログラムを実行するプロセッサと、前記ホスト計算機と接続されるチャネルI/Fと、前記ディスク装置と接続されるストレージI/Fとを有するストレージ管理装置と、を備えるストレージシステムにおいてボリュームを管理する方法であって、
    前記プロセッサは、
    前記運用ボリュームに格納されたデータを所定のタイミングで前記コピーボリュームに複製するコピーボリューム生成ステップと
    前記運用ボリュームへの書き込み要求に対応して、当該データが書き込まれる領域に記憶されたデータを前記差分ボリュームに複製して前記差分データを生成し、当該データが書き込まれる前記運用ボリュームの領域のアドレスと前記差分データを記憶するための領域のアドレスとを対応付けるスナップショット管理情報を前記メモリに記録することによって前記差分データの生成を制御するデータ書込ステップと
    記プロセッサが、前記ホストコンピュータからスナップショットの生成の要求を受け取ったときに、新たな世代の前記スナップショット管理情報に運用ボリュームからデータの更新がされていないことを示す情報を設定し、前記運用ボリュームの指定された領域に保存されたデータを前記差分ボリュームに複写することによってスナップショットを生成するスナップショット生成ステップと
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と同じ場合は、前記コピーボリュームへアクセスする第1のステップと
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と異なる場合は、前記差分ボリューム及び前記コピーボリュームにおける当該要求された世代のデータが保存されているアドレスを指定することによって、当該要求された世代のボリュームへアクセスする第2のステップと
    前記運用ボリュームと同じ世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、前記スナップショットの生成の要求を受け取った後に前記運用ボリュームに書き込み要求があった場合は、前記運用ボリュームの内容と前記コピーボリュームの内容とを同期させ、当該同期完了後に同期を分離し、前記コピーボリュームへアクセスすることによって、生成された前記スナップショットの仮想ボリュームを提供するする第3のステップと、を実行することを特徴とするボリューム管理方法。
  6. 前記第2のステップは
    前記スナップショット管理情報に運用ボリュームのデータが更新されていないことを示す情報が設定されているアドレスについては、前記コピーボリュームの当該アドレスへアクセスするステップと
    前記スナップショット管理情報に運用ボリュームのデータが更新されていることを示す情報が設定されているアドレスについては、前記差分ボリュームの前記スナップショット管理情報によって指示されるアドレスへアクセスするステップと、を含むことを特徴とする請求項5に記載のボリューム管理方法。
  7. 前記プロセッサは、
    指定された世代の運用ボリュームの復旧を前記ホスト計算機から受け付けるステップと
    当該読み出しが要求された世代の内容が保存されている前記差分ボリュームのブロックを、前記コピーボリュームに複写するステップと
    当該複写されたコピーボリュームを、前記運用ボリュームに変更するステップと、を実行することを特徴とする請求項5又は6に記載のボリューム管理方法。
  8. 前記プロセッサは、
    前記差分ボリュームに対する書き込みがあったときに、前記差分ボリュームの総使用容量を取得するステップと
    前記取得した総使用容量が予め定めた閾値を超えた場合に、前記差分ボリュームに保存されているデータのうち、最も優先度の低い世代を検索するステップと
    前記検索した世代のデータを外部バックアップ装置に複製するステップと
    当該複製し世代の情報を削除するステップと、を実行することを特徴とする請求項5から7のいずれか一つに記載のボリューム管理方法。
  9. ホスト計算機からデータが読み書きされる運用ボリュームと、所定のタイミングにおける前記運用ボリュームの複製を保存するコピーボリュームと、前記運用ボリュームのスナップショットの差分データを保存する差分ボリュームとが設けられるディスク装置と、
    ストレージ管理装置を制御するためのプログラムを実行するプロセッサと、前記ホスト計算機と接続されるチャネルI/Fと、前記ディスク装置と接続されるストレージI/Fとを有するストレージ管理装置と、を備えるストレージシステムに、以下の手順を実行させボリュームを管理させるプログラムであって、
    前記運用ボリュームに格納されたデータを所定のタイミングで前記コピーボリュームに複製するコピーボリューム生成手段と
    前記運用ボリュームへの書き込み要求に対応して、当該データが書き込まれる領域に記憶されたデータを前記差分ボリュームに複製して前記差分データを生成し、当該データが書き込まれる前記運用ボリュームの領域のアドレスと前記差分データを記憶するための領域のアドレスとを対応付けるスナップショット管理情報を前記メモリに記録することによって前記差分データの生成を制御するデータ書込手段と、を備え
    前記プログラムは、
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と同じ場合は、前記コピーボリュームへアクセスを指示する第1の手順と、
    前記運用ボリュームと異なる世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、当該要求された世代が前記コピーボリュームの世代と異なる場合は、前記差分ボリューム及び前記コピーボリュームにおける当該要求された世代のデータが保存されているアドレスを指定することによって、当該要求された世代のボリュームへアクセスを指示する第2の手順と、
    前記運用ボリュームと同じ世代のボリュームに対する読み出し要求を前記ホスト計算機から受け取ったときに、前記スナップショットの生成の要求を受け取った後に前記運用ボリュームに書き込み要求があった場合は、前記運用ボリュームの内容と前記コピーボリュームの内容とを同期させ、当該同期完了後に同期を分離し、前記コピーボリュームへのアクセスを指示する第3の手順として、前記ストレージ管理装置を機能させるプログラム。
  10. 前記第2の手順において
    前記スナップショット管理情報に運用ボリュームのデータが更新されていないことを示す情報が設定されているアドレスについては、前記コピーボリュームの当該アドレスへアクセスする手順と
    前記スナップショット管理情報に運用ボリュームのデータが更新されていることを示す情報が設定されているアドレスについては、前記差分ボリュームの前記スナップショット管理情報によって指示されるアドレスへアクセスを指示する手順を、含む請求項9に記載のプログラム。
JP2004293464A 2004-10-06 2004-10-06 ストレージシステム Expired - Fee Related JP4550541B2 (ja)

Priority Applications (13)

Application Number Priority Date Filing Date Title
JP2004293464A JP4550541B2 (ja) 2004-10-06 2004-10-06 ストレージシステム
US10/998,755 US7356658B2 (en) 2004-10-06 2004-11-30 Snapshot system
DE602005001041T DE602005001041T2 (de) 2004-10-06 2005-09-26 Speicherauszugssystem
EP09015053A EP2163988B1 (en) 2004-10-06 2005-09-26 Snapshot system and method
DE602005007052T DE602005007052D1 (de) 2004-10-06 2005-09-26 Schnappschuss-System
EP07007309A EP1804165B1 (en) 2004-10-06 2005-09-26 Snapshot system
EP05255988A EP1645960B1 (en) 2004-10-06 2005-09-26 Snapshot system
DE602005027138T DE602005027138D1 (de) 2004-10-06 2005-09-26 Schnappschuss-System und Verfahren
EP08004760A EP1942414B1 (en) 2004-10-06 2005-09-26 Snapshot system and method
DE602005018974T DE602005018974D1 (de) 2004-10-06 2005-09-26 Schnappschuss-System und Verfahren
US12/054,846 US7606990B2 (en) 2004-10-06 2008-03-25 Snapshot system
US12/576,621 US7890720B2 (en) 2004-10-06 2009-10-09 Snapshot system
US13/013,183 US8103843B2 (en) 2004-10-06 2011-01-25 Snapshot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004293464A JP4550541B2 (ja) 2004-10-06 2004-10-06 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2006107162A JP2006107162A (ja) 2006-04-20
JP4550541B2 true JP4550541B2 (ja) 2010-09-22

Family

ID=35519979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004293464A Expired - Fee Related JP4550541B2 (ja) 2004-10-06 2004-10-06 ストレージシステム

Country Status (4)

Country Link
US (4) US7356658B2 (ja)
EP (4) EP2163988B1 (ja)
JP (1) JP4550541B2 (ja)
DE (4) DE602005027138D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014522006A (ja) * 2011-11-25 2014-08-28 株式会社日立製作所 ストレージ装置及びその制御方法

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP2006209636A (ja) * 2005-01-31 2006-08-10 Hitachi Ltd スナップショット維持方法
JP4799936B2 (ja) * 2005-07-11 2011-10-26 株式会社日立製作所 条件別スナップショット取得方法及びシステム
US7325111B1 (en) 2005-11-01 2008-01-29 Network Appliance, Inc. Method and system for single pass volume scanning for multiple destination mirroring
JP2007219609A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd スナップショット管理装置及び方法
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
JP4842703B2 (ja) 2006-05-18 2011-12-21 株式会社日立製作所 ストレージシステム及びそのリカバリボリューム作成方法
JP2007334709A (ja) 2006-06-16 2007-12-27 Fujitsu Ltd ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
JP2008009485A (ja) 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
JP5222469B2 (ja) 2006-10-11 2013-06-26 株式会社日立製作所 記憶システム及びデータ管理方法
JP5031341B2 (ja) * 2006-11-30 2012-09-19 株式会社日立製作所 記憶システム及びデータ管理方法
JP4845724B2 (ja) * 2006-12-28 2011-12-28 株式会社日立製作所 バックアップ機能を備えたストレージシステム
CN100456255C (zh) * 2007-04-29 2009-01-28 华为技术有限公司 一种取快照数据的装置及方法
JP4900816B2 (ja) * 2007-05-11 2012-03-21 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法
JP4972457B2 (ja) * 2007-05-11 2012-07-11 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
US8818936B1 (en) * 2007-06-29 2014-08-26 Emc Corporation Methods, systems, and computer program products for processing read requests received during a protected restore operation
JP5142629B2 (ja) 2007-08-22 2013-02-13 株式会社日立製作所 仮想ボリュームのバックアップを行うストレージシステム及び方法
JP4898609B2 (ja) * 2007-09-11 2012-03-21 株式会社日立製作所 ストレージ装置、データ回復方法及び計算機システム
JP5228466B2 (ja) 2007-12-14 2013-07-03 富士通株式会社 バックアップ装置、バックアップ方法およびバックアッププログラム
US8284198B1 (en) * 2008-03-03 2012-10-09 Network Appliance, Inc. Method for visualizing space utilization in storage containers
CN100570575C (zh) * 2008-04-18 2009-12-16 成都市华为赛门铁克科技有限公司 一种数据备份的方法和装置
US7831682B2 (en) * 2008-08-08 2010-11-09 Amazon Technologies, Inc. Providing a reliable backing store for block data storage
US7979735B2 (en) 2008-08-15 2011-07-12 International Business Machines Corporation Data storage with snapshot-to-snapshot recovery
JP4893716B2 (ja) 2008-08-28 2012-03-07 富士通株式会社 バックアップ装置、バックアップ方法およびバックアッププログラム
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
JP2010092177A (ja) * 2008-10-06 2010-04-22 Hitachi Ltd 情報処理装置、及びストレージシステムの運用方法
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
JP4750169B2 (ja) * 2008-10-14 2011-08-17 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
US8732417B1 (en) * 2008-10-15 2014-05-20 Symantec Corporation Techniques for creating snapshots of a target system
WO2010049314A1 (en) 2008-10-30 2010-05-06 International Business Machines Corporation Flashcopy handling
KR101033523B1 (ko) * 2008-11-10 2011-05-09 고려대학교 산학협력단 선형 태양광 집광기 및 이의 응용장치
JP4833273B2 (ja) * 2008-12-09 2011-12-07 富士通株式会社 ストレージ装置、リストア方法およびリストアプログラム
US8539179B1 (en) * 2009-03-31 2013-09-17 Symantec Corporation Methods and systems for creating full backups
US8823323B2 (en) 2009-04-16 2014-09-02 Valence Technology, Inc. Batteries, battery systems, battery submodules, battery operational methods, battery system operational methods, battery charging methods, and battery system charging methods
US8370302B2 (en) * 2009-06-02 2013-02-05 Hitachi, Ltd. Method and apparatus for block based volume backup
US9256598B1 (en) 2009-08-19 2016-02-09 Emc Corporation Systems, methods, and computer readable media for copy-on-demand optimization for large writes
DE112010003794B4 (de) 2009-09-24 2022-01-27 International Business Machines Corporation Datenspeicherung unter Verwendung von Bitmaps
GB2485696B (en) 2009-09-25 2016-10-19 Ibm Data storage
US8417907B2 (en) * 2009-10-29 2013-04-09 Symantec Corporation Synchronizing snapshot volumes across hosts
US8341370B2 (en) * 2009-11-16 2012-12-25 Symantec Corporation Restricting access to object based storage
US9176853B2 (en) * 2010-01-29 2015-11-03 Symantec Corporation Managing copy-on-writes to snapshots
US8745002B2 (en) * 2010-02-04 2014-06-03 Symantec Corporation Mounting applications on a partially replicated snapshot volume
US8533411B2 (en) 2010-03-11 2013-09-10 International Business Machines Corporation Multiple backup processes
JP2011210056A (ja) * 2010-03-30 2011-10-20 Sanyo Electric Co Ltd バックアップデータ管理装置
JP5581776B2 (ja) 2010-03-31 2014-09-03 富士通株式会社 バックアップ装置,バックアップ方法およびバックアッププログラム
US8315991B2 (en) * 2010-04-20 2012-11-20 International Business Machines Corporation Detecting inadvertent or malicious data corruption in storage subsystems and recovering data
US8788770B2 (en) * 2010-05-25 2014-07-22 International Business Machines Corporation Multiple cascaded backup process
US9146822B2 (en) 2010-06-30 2015-09-29 Symantec Corporation Cluster configuration systems and methods
US8341364B2 (en) * 2010-08-12 2012-12-25 International Business Machines Corporation Maintaining asynchronous mirroring
US8306950B2 (en) * 2010-08-26 2012-11-06 International Business Machines Corporation Managing data access requests after persistent snapshots
WO2012120667A1 (ja) * 2011-03-09 2012-09-13 株式会社日立製作所 計算機システム、データ複製スケジューリング方法及び計算機読み取り可能な非一時的記憶媒体
WO2012168966A1 (en) * 2011-06-07 2012-12-13 Hitachi, Ltd. Storage apparatus and method of controlling storage apparatus
US8862546B1 (en) * 2011-06-30 2014-10-14 Emc Corporation Virtual access roll
JP5816303B2 (ja) * 2011-09-13 2015-11-18 株式会社日立製作所 フラッシュメモリを含むストレージシステム、及び記憶制御方法
US8868860B2 (en) 2011-09-23 2014-10-21 International Business Machines Corporation Restore in cascaded copy environment
US8719523B2 (en) 2011-10-03 2014-05-06 International Business Machines Corporation Maintaining multiple target copies
WO2013121465A1 (en) * 2012-02-16 2013-08-22 Hitachi, Ltd. Storage system, management server, storage apparatus, and data management method
US9031911B2 (en) 2012-06-05 2015-05-12 International Business Machines Corporation Preserving past states of file system nodes
US8972350B2 (en) 2012-06-05 2015-03-03 International Business Machines Corporation Preserving a state using snapshots with selective tuple versioning
US9311014B2 (en) 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US9098461B2 (en) * 2012-12-05 2015-08-04 Red Hat Israel, Ltd. Live snapshots of multiple virtual disks
GB2509057A (en) * 2012-12-18 2014-06-25 Ibm Predictive point-in-time copy for storage systems
US9977813B2 (en) * 2013-01-17 2018-05-22 Hitachi, Ltd. Storage device and data migration method
JP6064608B2 (ja) * 2013-01-17 2017-01-25 富士通株式会社 ストレージ装置、バックアッププログラム、およびバックアップ方法
US9152338B2 (en) 2013-02-21 2015-10-06 International Business Machines Corporation Snapshot management in hierarchical storage infrastructure
US9740701B1 (en) * 2013-09-13 2017-08-22 EMC IP Holding Company Snapshot cauterization
US9619473B1 (en) * 2013-11-18 2017-04-11 EMC IP Holding Company LLC Backup configuration using snapshot map
US9600203B2 (en) * 2014-03-11 2017-03-21 Amazon Technologies, Inc. Reducing data volume durability state for block-based storage
JP6291977B2 (ja) * 2014-03-31 2018-03-14 日本電気株式会社 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
US20170220275A1 (en) * 2014-12-26 2017-08-03 Hitachi, Ltd. Computer system and management program
US10546144B2 (en) * 2016-05-05 2020-01-28 International Business Machines Corporation Dynamically excluding sensitive information from system snapshot
CN106407040B (zh) * 2016-09-05 2019-05-24 华为技术有限公司 一种远程数据复制方法及系统
US11068500B1 (en) * 2016-09-29 2021-07-20 EMC IP Holding Company LLC Remote snapshot access in a replication setup
CN108874583A (zh) * 2017-05-15 2018-11-23 中兴通讯股份有限公司 一种数据保护方法、装置及计算机可读存储介质
CN109032507B (zh) * 2018-06-28 2021-11-19 郑州云海信息技术有限公司 一种生成源卷存储快照的方法、系统及相关组件
US20210224161A1 (en) * 2020-01-21 2021-07-22 Nebulon, Inc. Efficient io processing in a storage system with instant snapshot, xcopy, and unmap capabilities
JP7103671B2 (ja) * 2020-03-17 2022-07-20 Necプラットフォームズ株式会社 情報処理装置
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11656949B2 (en) * 2021-09-13 2023-05-23 Rubrik, Inc. Snapshot range filters
US11886226B2 (en) 2021-11-29 2024-01-30 Rubrik, Inc. Consolidating snapshots using partitioned patch files

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278819A (ja) * 2001-03-21 2002-09-27 Toshiba Corp スナップショットイメージの世代管理方法、記憶媒体、及び世代管理装置
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP2004164318A (ja) * 2002-11-13 2004-06-10 Hitachi Ltd バックアップデータの世代管理方法およびこの方法に用いる記憶制御装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
JP3868708B2 (ja) * 2000-04-19 2007-01-17 株式会社日立製作所 スナップショット管理方法及び計算機システム
JP2003202964A (ja) 2002-01-09 2003-07-18 Hitachi Ltd 計算機システムの制御方法、計算機システム、記憶装置の制御方法及び記憶装置
JP4170056B2 (ja) * 2002-03-29 2008-10-22 株式会社日立製作所 複製ボリューム間でのバックアップ・リストア管理方法およびこの方法に用いる記憶制御装置
US7055010B2 (en) 2002-11-06 2006-05-30 Synology Inc. Snapshot facility allowing preservation of chronological views on block drives
JP2004258944A (ja) 2003-02-26 2004-09-16 Hitachi Ltd ストレージ装置およびその管理方法
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
JP4454342B2 (ja) * 2004-03-02 2010-04-21 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP4439960B2 (ja) * 2004-03-22 2010-03-24 株式会社日立製作所 ストレージ装置
JP4456909B2 (ja) * 2004-03-29 2010-04-28 株式会社日立製作所 バックアップ方法、ストレージシステム及びそのプログラム
JP4681247B2 (ja) * 2004-04-08 2011-05-11 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP2006048300A (ja) * 2004-08-03 2006-02-16 Hitachi Ltd ディスクアレイ装置群およびそのコピー処理方法
JP4545529B2 (ja) * 2004-08-27 2010-09-15 株式会社日立製作所 スナップショットの作成方法及びプログラム並びにストレージシステム
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
JP2006113927A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd ストレージ装置、ストレージシステム、スナップショット維持方法、およびコマンド
US7325111B1 (en) * 2005-11-01 2008-01-29 Network Appliance, Inc. Method and system for single pass volume scanning for multiple destination mirroring

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278819A (ja) * 2001-03-21 2002-09-27 Toshiba Corp スナップショットイメージの世代管理方法、記憶媒体、及び世代管理装置
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP2004164318A (ja) * 2002-11-13 2004-06-10 Hitachi Ltd バックアップデータの世代管理方法およびこの方法に用いる記憶制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014522006A (ja) * 2011-11-25 2014-08-28 株式会社日立製作所 ストレージ装置及びその制御方法

Also Published As

Publication number Publication date
DE602005001041D1 (de) 2007-06-14
US20110119459A1 (en) 2011-05-19
US20060075200A1 (en) 2006-04-06
DE602005001041T2 (de) 2008-01-10
DE602005027138D1 (de) 2011-05-05
EP2163988B1 (en) 2011-03-23
US7606990B2 (en) 2009-10-20
US7890720B2 (en) 2011-02-15
US20080183995A1 (en) 2008-07-31
EP1942414A1 (en) 2008-07-09
DE602005018974D1 (de) 2010-03-04
EP1645960A1 (en) 2006-04-12
US7356658B2 (en) 2008-04-08
US20100030959A1 (en) 2010-02-04
US8103843B2 (en) 2012-01-24
EP1804165B1 (en) 2008-05-21
EP1942414B1 (en) 2010-01-13
EP1804165A3 (en) 2007-07-18
DE602005007052D1 (de) 2008-07-03
EP2163988A1 (en) 2010-03-17
EP1804165A2 (en) 2007-07-04
EP1645960B1 (en) 2007-05-02
JP2006107162A (ja) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4550541B2 (ja) ストレージシステム
US8656123B2 (en) Snapshot preserved data cloning
US8204858B2 (en) Snapshot reset method and apparatus
US7266654B2 (en) Storage system, server apparatus, and method for creating a plurality of snapshots
EP2161661B1 (en) Computer system and backup method therefor
US7836266B2 (en) Managing snapshot history in a data storage system
JP4292882B2 (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US20040254964A1 (en) Data replication with rollback
US7831565B2 (en) Deletion of rollback snapshot partition
JP5984151B2 (ja) データの復旧方法、プログラムおよびデータ処理システム
US20130318318A1 (en) Storage controller and storage control method
JP2007133471A (ja) ストレージ装置及びスナップショットのリストア方法
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100518

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees