JP2006011811A - 記憶制御システム及び記憶制御方法 - Google Patents

記憶制御システム及び記憶制御方法 Download PDF

Info

Publication number
JP2006011811A
JP2006011811A JP2004187905A JP2004187905A JP2006011811A JP 2006011811 A JP2006011811 A JP 2006011811A JP 2004187905 A JP2004187905 A JP 2004187905A JP 2004187905 A JP2004187905 A JP 2004187905A JP 2006011811 A JP2006011811 A JP 2006011811A
Authority
JP
Japan
Prior art keywords
data
storage area
storage
management information
empty
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.)
Withdrawn
Application number
JP2004187905A
Other languages
English (en)
Inventor
Takashi Suzuki
高 鈴木
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 JP2004187905A priority Critical patent/JP2006011811A/ja
Priority to US10/918,719 priority patent/US7152147B2/en
Publication of JP2006011811A publication Critical patent/JP2006011811A/ja
Withdrawn 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/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
    • 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

Abstract

【課題】 ホスト装置にとって不要なデータを記憶制御システムが管理しなくて済むようにする。
【解決手段】 複数の記憶ブロックPを有するプライマリボリューム22Pと、複数の記憶ブロックDを有する差分ボリューム22Dとが備えられる。複数の記憶ブロックDの少なくとも一つに、複数の記憶ブロックPのいずれか一つに対応する差分データが記憶される。制御装置210は、どの記憶ブロックPからホスト装置100によりデータが読出されることが無いかを表すスナップショット管理テーブルS又はCと、どの記憶ブロックPに対応する差分データがどの記憶ブロックDに記憶されているかが表された差分管理テーブル400とに基づいて、ホスト装置100にとって不要な差分データを特定し、特定された差分データを差分ボリューム22Dから削除することと、差分管理テーブル400から不要な情報要素を削除することとの少なくとも一方を行う。
【選択図】図1

Description

本発明は、記憶制御システム及び記憶制御方法に関する。
例えば、RAID(Redundant Array of Independent Inexpensive Disks)システム等のような、アレイ状に配列された複数の物理的な記憶デバイス(例えばハードディスクドライブ)を備える記憶制御システムが知られている。その記憶制御システムが備える複数の記憶デバイスには、論理的な記憶デバイスである論理ボリュームが1又は複数個準備される。記憶制御システムには、一般に、ホスト装置が接続される。記憶制御システムは、ホスト装置からライト要求を受信し、そのライト要求に応答して、ホスト装置から受信したデータを論理ボリュームに書き込んだり、リード要求を受信し、そのリード要求に応答して、論理ボリュームから読み出したデータをホスト装置に送信したりする。
記憶制御システムとホスト装置とを備えるコンピュータシステムにおいては、記憶制御システムに記憶されるデータをバックアップする場合などに、元のデータを記憶した論理ボリュームの複製を生成する場合がある。この場合の複製ボリュームの生成において、費用面からの複製のための記憶領域の抑制や、更新されたボリュームを複製ボリュームより元に戻す場合(リストア)の運用面からの時間短縮などを目的として、更新された差分データを複製として記憶制御システム内に記憶するスナップショットと呼ばれる技術が知られている。すなわち、このような記憶制御システムは、或る時点における論理ボリューム内のデータ構成を管理するために、その論理ボリュームのスナップショットを作成することがある(例えば特開2001−216185号公報)。
特開2001−216185号公報。
論理ボリュームには、例えば、プライマリボリュームとセカンダリボリュームとの2種類がある。プライマリボリュームとセカンダリボリュームとは、互いに関連付けられることがある(例えばペア状態にされることがある)。スナップショットの作成では、例えば、記憶制御システムは、ホスト装置から新たなデータ(以下、更新データ)を受信して論理ボリュームに書込む場合、その更新データそれ自体、或いは、更新データに上書きされる元のデータを、差分データとして、特定のセカンダリボリューム(以下、便宜上「差分ボリューム」と呼ぶ)に書込む。このような方法でスナップショットを作成していく場合、更新データが書き込まれる都度に、差分データが履歴として差分ボリュームに蓄積されていくことになる(或いは、旧い差分データが新しい差分データに上書きされて消去されることがある)。このため、スナップショットの作成が開始されてから、スナップショットが解除される(換言すれば、全ての差分データが破棄される)までは、差分データが保持されている。
一方、プライマリボリューム内のデータを、ホスト装置がそのプライマリボリュームのファイルシステムを用いて管理する場合があるが、その場合、例えば、プライマリボリューム内のデータの破棄は、ホスト装置では、ファイルシステムの変更のみが実施され、記憶制御システムでは、そのファイルシステムに対応するデータの破棄のみが実施される。このため、ホスト装置にとって不要になったデータが、記憶制御システムでは差分ボリューム内に差分データとして残ったままになってしまうことがある。このような状況は、上記のようにデータの破棄に限らず、データの更新の場合(例えば、大サイズのデータを小サイズのデータに更新する場合)にも生じ得る。
従って、本発明の目的は、ホスト装置にとって不要なデータを記憶制御システムが管理しなくて済むようにすることにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明に従う記憶制御システムは、データの読出しや書込みを行う外部装置に接続される記憶制御システムであって、複数の第一記憶領域を有する第一の記憶デバイスと、複数の第二記憶領域を有する第二の記憶デバイスと、前記第一と第二の記憶デバイスのうちの少なくとも一つと前記外部装置との間で行われるデータのやり取りを制御する制御装置とを備える。前記複数の第二記憶領域の少なくとも一つに、前記複数の第一記憶領域のいずれか一つに対応する対応データが記憶される。前記制御装置は、どの第一記憶領域から前記外部装置によりデータが読出されることが無いかを表す読出し管理情報を取得する。また、制御装置は、どの第一記憶領域に対応する対応データがどの第二記憶領域に記憶されているかが表された対応管理情報を取得する(例えば、記憶制御システム内の所定の記憶域(例えばメモリ)から取得する)。また、制御装置は、前記取得した読出し管理情報及び対応管理情報に基づいて、前記複数の第一記憶領域のうちのどの第一記憶領域に対応したどの第二記憶領域に、前記外部装置にとっての不要な対応データが記憶されているかを特定する。また、制御装置は、前記特定された第二記憶領域が記憶する対応データをその第二記憶領域から除去することと、前記対応管理情報における前記特定された第二記憶領域を表す情報要素を前記対応管理情報から除去することとののうちの少なくとも一方を行う。
なお、前記第一と第二の記憶デバイスのうちの少なくとも一つは、例えば、物理的な記憶デバイスであっても良いし(例えばメモリ或いはハードディスク)、その物理的な記憶デバイスに用意される論理的な記憶デバイス(例えば論理ボリューム)であっても良い。
また、前記第一記憶領域及び前記第二記憶領域のうちの少なくとも一つは、例えば、ハードディスク上で管理されるセクタ或いはトラックであっても良いし、論理ボリュームにおける1以上のロジカルブロックであっても良い。
また、制御装置は、例えば、コンピュータプログラムを記憶した記憶媒体(例えばメモリ)と、そのコンピュータプログラムを読込むことによって動作するプロセッサ(例えばCPU)とを備えた装置とすることができる。また、制御装置が行う上述した処理は、1又は複数のコンピュータプログラムを読込んだプロセッサによって行われても良い。
また、前記対応データは、例えば、後に詳述する差分データであっても良い。
また、前記読出し管理情報は、例えば、それが生成される時点における、各第一記憶領域毎のデータの有無情報であっても良い。具体的には、例えば、前記読出し管理情報は、後に詳述するスナップショット取得時のスナップショット管理テーブル及び余剰差分管理破棄時(例えば現時点)のスナップショット管理テーブルのうちの一方又は双方であっても良い。
また、前記対応管理情報は、例えば、各第一記憶領域毎に、その第一記憶領域の位置と、その第一記憶領域に対応する対応データが記憶された第二記憶領域の位置とが記録された情報であっても良い。具体的には、例えば、前記対応管理情報は、後に詳述する差分管理テーブルであっても良い。
また、前記読出し管理情報及び前記対応管理情報のうちの少なくとも一方は、例えば、前記外部装置及び前記記憶制御システムの一方又は双方が生成しても良い。
上記記憶制御システムの第一の実施態様では、前記外部装置は、書込み対象データを前記記憶制御システムに送信するようになっている。また、前記書込み対象データの書込み先が、空きを表す空きデータが記憶されている第一記憶領域である。この場合、前記制御装置は、以下の処理を実行する。例えば、制御装置は、第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データの書込み先となる第一記憶領域の空きデータを書込み、且つ、前記受信した書込み対象データを、前記書込み先の第一記憶領域に書込む。また、制御装置は、前記空きデータが書き込まれた第二記憶領域であって、前記空きデータを記憶していた第一記憶領域に対応した第二記憶領域が、前記複数の第二記憶領域のうちのどれであるかを表す情報要素を前記対応管理情報に書込む。また、制御装置は、前記第一のタイミングのときにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記第一のタイミングのときに空きデータを記憶していた第一記憶領域が前記複数の第一記憶領域のうちのどれであるかを特定する。また、制御装置は、前記取得した対応管理情報の中に、前記空きデータを記憶していた第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去する。
なお、第一のタイミングは、例えば、スナップショット取得処理が開始されて以降のどのスナップショット取得時であってもよい。また、第一のタイミングにおける前記読出し管理情報は、例えば、前記外部装置及び前記記憶制御システムの一方又は双方が生成しても良い。
上記記憶制御システムの第二の実施態様では、前記外部装置は、書込み対象データを前記記憶制御システムに送信するようになっており、前記制御装置は、第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データを書込む。また、制御装置は、前記書込み対象データに対応するデータが前記複数の第一の記憶領域のどの第一記憶領域に存在するかを特定し、前記特定された第一記憶領域に前記書込み対象データが書き込まれた第二記憶領域が対応することを表す情報要素(例えば位置情報)を前記対応管理情報に書込む。また、制御装置は、前記第一のタイミングのときにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記第一のタイミングのときに空きであった第一記憶領域が前記複数の第一記憶領域のうちのどれであるかを特定する。また、制御装置は、前記取得した対応管理情報の中に、前記空きであった第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内の書込み対象データを前記第二記憶領域から除去する。この場合、その書込み対象データは、その第二記憶領域に対応する第一記憶領域にコピーされることで、その第二記憶領域から除去されても良い。
上記記憶制御システムの第三の実施態様では、前記外部装置が、書込み対象データを前記記憶制御システムに送信し、且つ、データの更新要求(例えばデータファイルの上書き要求)或いは削除要求(例えばデータファイルの削除要求)を前記記憶制御システムに送信するようになっている。前記制御装置は、第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記書込み対象データの書込み先となる第一記憶領域の第一データを書込み、且つ、前記受信した書込み対象データを、前記書込み先の第一記憶領域に書込む。また、制御装置は、前記第一データが書き込まれた第二記憶領域であって、前記第一データを記憶していた第一記憶領域に対応した第二記憶領域が前記複数の第二記憶領域のうちのどれであるかを表す情報要素を前記対応管理情報に書込む。また、制御装置は、前記第一のタイミングの後の第二のタイミングにおいて、データの更新要求或いは削除要求を前記外部装置から受信した場合、前記受信した更新要求或いは削除要求に応答して、前記第一記憶領域に記憶されているデータを消去する。また、制御装置は、前記第二のタイミング以降のタイミングにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記複数の第一記憶領域のうちデータが記憶されていない空きの第一記憶領域を特定する。また、制御装置は、前記取得した対応管理情報の中に、前記空きの第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内のデータを前記第二記憶領域から除去する。
なお、前記第一のタイミングとは、例えば、第一記憶領域に存在するデータのバックアップを取ることを指定された時点であってもよい(具体的には、例えば、スナップショット取得処理が開始された以降のどのスナップショット取得時点であってもよい)。また、前記第二のタイミングとは、例えば、前記制御装置が前記外部装置からデータの更新要求或いは削除要求を受信する等により、前記制御装置が前記複数の第一記憶領域の少なくとも1つからデータを消去した時点であっても良い。また、前記第二のタイミング以降のタイミングとは、例えば、後述する余剰差分管理破棄時であっても良い。
上記記憶制御システムの第四の実施態様では、前記外部装置が、書込み対象データを前記記憶制御システムに送信し、且つ、データの更新要求或いは削除要求を前記記憶制御システムに送信するようになっている。前記制御装置は、第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データを書込む。また、制御装置は、前記書込み対象データに対応するデータが前記複数の第一の記憶領域のどの第一記憶領域に存在するかを特定し、前記特定された第一記憶領域に前記書込み対象データが書き込まれた第二記憶領域が対応することを表す情報要素を前記対応管理情報に書込む。また、制御装置は、前記第一のタイミングの後の第二のタイミングにおいて、データの更新要求或いは削除要求を前記外部装置から受信した場合、前記受信した更新要求或いは削除要求に応答して、前記第一記憶領域に記憶されているデータを消去する。また、制御装置は、前記第二のタイミング以降のタイミングにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記複数の第一記憶領域のうちデータが記憶されていない空きの第一記憶領域を特定する。また、制御装置は、前記取得した対応管理情報の中に、前記空きの第一記憶領域に対応付けられた第二記憶領域の情報要素が含まれていれば、前記含まれている情報を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内の書込み対象データを前記第二記憶領域から除去する。この場合、その書込み対象データは、その第二記憶領域に対応する第一記憶領域にコピーされることで、その第二記憶領域から除去されても良い。
本発明に従う記憶制御方法は、複数の第一記憶領域を有する第一の記憶デバイスと、複数の第二記憶領域を有する第二の記憶デバイスとが備えられている場合、前記複数の第二記憶領域の少なくとも一つに、前記複数の第一記憶領域のいずれか一つに対応する対応データを記憶するステップと、どの第一記憶領域から前記外部装置によりデータが読出されることが無いかを表す読出し管理情報を作成するステップと、前記読出し管理情報を取得するステップと、どの第一記憶領域に対応する対応データがどの第二記憶領域に記憶されているかが表された対応管理情報を取得するステップと、前記取得した読出し管理情報及び対応管理情報に基づいて、前記複数の第一記憶領域のうちのどの第一記憶領域に対応したどの第二記憶領域に、前記外部装置にとっての不要な対応データが記憶されているかを特定するステップと、前記特定された第二記憶領域が記憶する対応データ、及び、前記対応管理情報における前記特定された第二記憶領域を表す情報のうちの少なくともいずれかを破棄するステップとを有する。
本発明によれば、ホスト装置にとって不要なデータを記憶制御システムが管理しなくて済む。
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るコンピュータシステムの構成例を示す。
このコンピュータシステム1には、ホスト装置100と、そのホスト装置100に通信ネットワークCNを介して接続された記憶制御システム200とが備えられる。ホスト装置100も記憶制御システム200も、便宜上1台しか図示しないが、いずれも、1台に限らず複数台備えられていても良い。
ホスト装置100は、例えば、CPU(Central Processing Unit)101、記憶装置(例えばメモリ或いはハードディスク)102、通信ネットワークCNに接続されるインターフェース装置(I/Fと図示)103等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。記憶装置102には、所定の制御を行う制御プログラム106や、オペレーティングシステム(以下、OS)107が格納されており、CPU101が、制御プログラム106やOS107を読込むことにより、ホスト装置100が、スナップショットに関する制御を行うことができる。具体的には、例えば、CPU101に読み込まれた制御プログラム106が、スナップショット取得時及び余剰差分管理破棄時の各々の時点で、後述するスナップショット管理テーブルを作成して記憶装置102に登録し、それらをI/F103を介して記憶制御システム200に送信する。なお、以下、スナップショット取得時点のスナップショット管理テーブルを「スナップショット管理テーブルS」と言い、余剰差分管理破棄時点のスナップショット管理テーブルを「スナップショット管理テーブルC」と言う。また、上記のOS107としては、ウィンドウズ(登録商標)或いはリナックス(登録商標)等を採用することができる。また、余剰差分管理破棄時とは、例えば、後述する余剰差分管理破棄のための処理を行おうとする現時点のことを言う。
通信ネットワークCNは、どのような種類の通信ネットワークでも良く、例えば、LAN或いはSANを採用することができる。
記憶制御システム200は、複数の物理的な記憶デバイス220と、それらの記憶デバイス220に対するデータの書込みや読出し等を制御する制御装置210とを備えている。
複数の記憶デバイス220上には、複数の論理的な記憶デバイス(以下、論理ボリューム)が備えられる。複数の論理ボリュームには、ホスト装置100がデータの記憶に使用する第一の記憶ボリュームであるプライマリボリューム22Pと、スナップショット取得時以降に更新データの差分を記憶するための第二の記憶ボリュームである差分ボリューム(セカンダリボリューム)23Dとがある。プライマリボリューム22Pと差分ボリューム23Dとは互いに関連付けられており、それに関する情報は、例えば、制御装置210のメモリ212で管理されている(例えば、プライマリボリューム22PのボリュームIDと、差分ボリューム23DのボリュームIDとが互いにメモリ212上で対応付けられている)。プライマリボリューム22Pには、プライマリボリューム22P内のデータを管理するためのファイルシステム25Pが格納されている。差分ボリューム22Dにも、同様に、差分ボリューム22D内のデータを管理するためのファイルシステム25Dが格納されている。
制御装置210には、通信ネットワークCNを介してホスト装置100に接続されるホストインターフェース装置(ホストI/Fと図示)213と、複数の記憶デバイス220に接続されデータの書き込みや読出しを行うディスクインターフェース装置(ディスクI/Fと図示)214と、メモリ212と、記憶制御システム200の各種制御を実施するCPU211とが備えられる。メモリ212には、例えば、スナップショットの制御のためのコンピュータプログラムであるスナップショット制御プログラム300、差分管理テーブル400、ホスト装置100から受信したスナップショット管理テーブルS及びCなどの情報が格納される。なお、スナップショット管理テーブルS及びCは、ホスト装置100において保持することも可能であり、さらに、スナップショット取得時および余剰差分管理破棄時に限らず、スナップショット取得後のある時間経過後の時点など、複数持つ場合もある。
以上が、コンピュータシステム1の概要である。なお、このコンピュータシステム1において、例えば、メモリ212は、装置に対して着脱自在であっても良いし、メモリに限らずハードディスク等の別種の記憶装置であっても良い。また、CPU101及び211の少なくとも一方は、一つ又は複数個のCPUで構成されていても良い。
図2Aは、差分管理テーブル400の構成例を示す。
本実施形態では、記憶制御システム200は、論理ボリューム(少なくともプライマリボリューム22P)のデータ記憶領域を、所定のデータサイズ(例えば512バイト)の記憶ブロックに区分し管理している。その記憶ブロックは、論理ボリュームのLBA(Logical Block Address)そのものであったり、LBAの幾つかの組み合わせであったりする。
図2Aに示す差分管理テーブル400は、プライマリボリューム22Pの記憶ブロック全てに且つ一義に対応したテーブルブロックTB1を持つ。各テーブルブロックTB1は、図2Aでは、横軸xおよび縦軸yの組み合わせで表現されており、例えば、(x2:y4)のように表現される。テーブルブロックTB1に記録されるデータ(例えば、(x2:y4)に書き込まれたデータi)は、プライマリボリューム22P上の或る記憶ブロックのスナップショット取得後の差分データとして差分ボリューム22D上のどの記憶ブロックに格納されたかを表す位置座標(差分ボリューム22Dにおける位置座表)をしめす。なお、差分管理テーブル400において、データが存在しないテーブルブロックTB1(例えば(x4:y1))は、そのテーブルブロックTB1に対応するプライマリボリューム22Pの記憶ブロックに対応した差分データが差分ボリューム22D内に存在しないことを示す。
本実施形態におけるスナップショット管理では、上述のような差分管理テーブル400をスナップショット管理プログラム300が利用することで、バックアップ或いはリストアが実現される。以下、その具体例を説明する。
例えば、スナップショット取得時点後、ホスト装置100からライト要求を受信した場合(換言すれば、ホスト装置100においてデータ更新が発生した場合)、CPU211に読込まれたスナップショット制御プログラム300が、プライマリボリューム22Pに記憶される或るデータに対応した差分データを作成し、差分ボリューム22Dに書込む。また、このとき、スナップショット制御プログラム300は、その差分データに対応するデータを記憶しているプライマリボリューム22Pの記憶ブロックに対応した差分管理テーブル400上のテーブルブロックTB1(例えば(x3:y2))に、その差分データの書込み先となった差分ボリューム22D上の記憶ブロックの位置座標を記録する。また、その際、一旦差分管理されたプライマリボリューム22P上の記憶ブロックに対応した差分データについては、それ以降の更新の場合にも、前回使用された差分ボリューム22Dの位置座標が使用され、且つ、差分管理テーブル400上の異なるテーブルブロックTB1に記録される位置座標(差分ボリューム23Dの記憶ブロックの位置座標)は、重複しないように、スナップショット制御プログラム300により制御される。
なお、本実施形態では、差分データとしては、以下の2種類のうち少なくとも一方を採用することができる。例えば、第1種の差分データは、ホスト装置100からの新たなデータ(以下、更新データ)がプライマリボリューム22P上の或る記憶ブロックに書き込まれる場合、その記憶ブロックに書き込まれていた元のデータのことである。第2種の差分データは、更新データが差分ボリューム22Dの或る記憶ブロックに書き込まれる場合、その更新データそれ自体である。すなわち、第1種の差分データが採用される場合は、ホスト装置100からの更新データはプライマリボリューム22Pに記憶されるが、第2種の差分データが採用される場合は、更新データはプライマリボリューム22Pに記憶されず、差分ボリューム22Dに記憶される。
さて、スナップショットの解除(換言すれば、差分管理情報の破棄)は、スナップショット制御プログラム300が、差分管理テーブル400上の全てのテーブルブロックTB1内の位置座標を破棄する(或いは、それに加えて、更に、差分ボリューム22D内のデータを全て削除する)ことで行われる。これにより、次のスナップショット取得時点からは、差分データ無しの状態から、再度、差分管理が実行される。
次に、上記のスナップショット管理処理と、バックアップ処理或いはリストア処理との関連を説明する。
スナップショット取得後、制御装置210は、ホスト装置100からリード要求を受けた場合、上記の差分管理方法において更新データをプライマリボリューム22Pに書き込んだ場合には(つまり、第1種の差分データが採用された場合には)、ホスト装置100からリード要求されたデータをプライマリボリューム22Pから読み出してホスト装置100に返信する。
一方、制御装置210は、ホスト装置100からリード要求を受けた場合、上記の差分管理方法において差分ボリューム22Dに更新データを書込んだ場合には(つまり、第2種の差分データが採用された場合には)、以下のような処理を行う。すなわち、制御装置210は、ホスト装置100からリード要求されたプライマリボリューム22Pの記憶ブロックに対応する差分管理テーブル400上のテーブルブロックTB1をチェックし、そのテーブルブロックTB1に、差分ボリューム22Dの位置座標が記録されていれば、その位置座標が表す差分ボリューム22Dの記憶ブロックからデータを読み出してホスト装置100に返信する。もし、上記対応するテーブルブロックTB1に、差分ボリューム22Dの位置座標が記録されていなければ、制御装置210は、上記リード要求されたプライマリボリューム22Pの記憶ブロックからデータを読み出してホスト装置100に返信する。
以上のようにして、スナップショット取得後も、ホスト装置100は、最新の更新データを記憶制御システム200(具体的は、プライマリボリューム22P及び差分ボリューム22Dのいずれか一方)から読み出すことが可能となっている。
ところで、スナップショット取得時点以降の差分管理により、更新データによって更新されていない元のデータ(例えば、スナップショット取得時点の元のデータ)が、バックアップとして、記憶制御システム200に保持されている。この元のデータは、例えば、ホスト装置100からのリード要求に対する返信の方法を変更したり、更新データを破棄したりすることにより、リストアすることが可能である。以下、更新データを破棄することで上記元のデータをリストアする場合の一例を説明する。
例えば、更新データを差分ボリューム22Dに記憶する差分管理方法においては、スナップショット管理プログラム300が、リストア処理として、差分管理テーブル400に記録されている全ての位置座標をリセット(破棄)することで、プライマリボリューム22Pから元のデータ(スナップショット取得時点以降の特定の時点のデータ)をバックアップとして読出すことができる。
また、例えば、更新データをプライマリボリューム22Pの記憶ブロックに書込み、その記憶ブロックに記憶されていた元のデータを差分ボリューム22Dに記憶する差分管理方法においては、スナップショット管理プログラム300が、リストア処理として、差分管理テーブル400から識別される差分ボリューム22D内の全ての元のデータを、プライマリボリューム22Pにコピーすることにより、スナップショット取得時点以降の元のデータをプライマリボリューム22Pに復元される。そして、その後、スナップショット管理プログラム300が、差分管理テーブル400に記録されている全ての位置座標を破棄することで、プライマリボリューム22Pから元のデータをバックアップデータとして読み出すことが可能になる。
以上、本実施形態におけるスナップショット管理の概要である。このスナップショット管理の説明によれば、差分データの管理は記憶制御システム200内でのみ行われているため、ホスト装置100にとって不要となったデータがどれかについてまでは判別することができない。そのため、不要なデータに記憶リソースが費やされ、さらに、リストア処理の場合には、処理に余計な時間がかかったりする場合がある。
以下、ホスト装置100にとって不要となるデータが如何にして発生するかを、ホスト装置100のデータ管理方法を述べた上で説明する。なお、ホスト装置100が行うデータ管理には、データベースなどのアプリケーションによるものや、OS107が管理しているファイルシステム25P、25Dによるもの等があるが、以下、ファイルシステム25P、25Dを用いる場合を例にとり説明する。
図2Bは、本実施形態におけるファイルシステムの構造例を示す。なお、ファイルシステム25Pも25Dも構成は実質的に同じなので、25Pを代表的に例に採り説明する。
図2Bに示すような構造をしたファイルシステム25Pがプライマリボリューム22Pに記録されることにより、ホスト装置100のOS107は、プライマリボリューム22P内のデータを管理することができる。ファイルシステム25Pには、例えば、スーパーブロック900、ブロックグループディスクリプタ910、データブロックビットマップ920、iノードビットマップ930、iノードテーブル940及びデータブロック950が備えられている。スーパーブロック900やブロックグループディスクリプタ910などに、そのファイルシステム25Pに関する情報が記録され、関連する一連のデータ、すなわちファイルの情報がiノードテーブル940に記録される。また、そのファイルの具体的なデータは、データブロック950に記録される。iノードテーブル930内の一つ一つのiノード情報が、一つのファイルに対応し、そのファイルの具体的なデータのデータブロック950での位置情報が、iノードに記録される。データブロック950は、ファイルの具体的なデータを格納するために一定のサイズを有し、例えば、論理ボリュームのLBAのサイズを幾つか集めた単位に分割されるブロックから構成されている。データブロックビットマップ920には、そのブロックの使用有無が、そのブロックに対応したビットマップとして記録される。
ホスト装置100のOS107が、ファイルシステム25P上にデータを記録する場合、iノードテーブル940の一つのiノードをファイルとして割り当て、ファイルに関する属性(例えばファイル名)をそのiノードに記録し、データブロックビットマップ920よりデータブロック950上の空きブロックを探し、探し出されたその空きブロックにデータを記録する。そして、OS107は、その空きブロックの位置情報をiノードに記録し、データの更新時には、iノードに記録されている情報からデータの記録位置を割り出して、データの更新を実行する。
また、OS107が、ファイルそれ自体を削除(又はファイルの一部を削除)する場合、iノードそれ自体の情報を削除(又は、iノードに記録されている、削除するデータに対応した位置情報)を削除し、且つ、その処理により空きエリアとなったデータブロック950内のブロックに対応するデータブロックビットマップ920上の情報を使用無し(空き)に変更する。
以上のようなOS107の処理によって、データブロック950上の空きである位置のデータは、次にデータを書き込むまでは使用されない状態となり、そこにどのようなデータが記録されても良いことになる。
ここで、上述したスナップショット管理において、データブロック950上の空きエリアに、スナップショット取得時点以降にホスト装置100上でのファイルの更新によりデータが記録された場合、記憶制御システム200によって、そのデータに関する差分データが差分ボリューム22Dに記憶される。
図3Aは、更新前の元のデータが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の一例を示す。
図3Aに示すように、更新データD1をプライマリボリューム22Pの記憶ブロックPに書込むスナップショット管理処理では、更新前の空きエリアのデータD2が、差分データとして差分ボリューム22Dの記憶ブロックDに書き込まれる。また、スナップショット制御プログラム300によって、その空きエリア(例えばx3:y2)に対応した、差分管理テーブル400上のテーブルブロックTB1(例えば(x3:y2))に、その差分データD2の書込み先である差分ボリューム22Dにおける記憶ブロック位置座標(例えば(x2:y3))が書き込まれる。また、スナップショット制御プログラム300によって、更新データD1が、プライマリボリューム22Pの上記空き記憶ブロックに書き込まれる。それにより、OS107によって、データブロックビットマップ920上のその空きエリアに対応するビットマップが、空き状態(例えば0)から使用状態(例えば1)に変更される。
なお、図3Aにおけるスナップショット管理処理では、差分ボリューム22Dに格納された差分データD2は、ファイルシステム25Pにおいてはデータブロック950の空きエリアのデータなので、実際にはリストア処理においてリードされることは無い。また、例えば、プライマリボリューム22Pにおける同一の記憶ブロックPに、新たな更新データD1が書き込まれる都度に、更新前のデータD2は、差分ボリューム22Dの或る記憶ブロックDに格納されている旧い更新前データD2を上書きするか、或いは、上書きすることなく別の記憶ブロックDに格納されても良い。後者の場合、それに伴い、新たな差分管理テーブル400が準備されて、各データの更新時毎に、差分管理が行われても良い。
図3Bは、更新データが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の一例を示す。
図3Bに示すように、更新データD1を差分ボリューム22Dに書込むスナップショット管理処理では、プライマリボリューム22Pに空きエリアのデータD2が保持されたままになる。一方、そのデータD2に対応した更新データD1は、スナップショット制御プログラム300によって、差分ボリューム22Dの或る記憶ブロック(例えば空き状態の記憶ブロック)に書き込まれる。その際、スナップショット制御プログラム300は、更新データD1に対応したデータD2を有する空きエリア(プライマリボリューム22Pの空きエリア、例えばx3:y2)に対応した、差分管理テーブル400上のテーブルブロックTB1(例えば(x3:y2))に、その差分データD1の書込み先である差分ボリューム22Dにおける記憶ブロック位置座標(例えば(x2:y3))を書き込む。
なお、図3Bに示すスナップショット管理処理が行われた場合、リストア処理では、空きエリアのデータD2はリードされることは無い。また、リストア処理以外の通常のホスト装置100からのリード処理では、更新データD1がリードされることになるので、空きエリアのデータD2は必要ない。
以上のように、スナップショット管理処理において、ファイルシステム25Pのデータブロック950上で空きであったエリアのデータについて差分管理することは、余剰な差分管理となる。
図4Aは、更新前の元のデータが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の別の例を示す。具体的には、図4Aは、その場合において、スナップショット取得時に、ファイルシステム25Pのデータブロック950上のあるエリアが使用中であり、且つ、スナップショット取得後に、差分管理されていた、プライマリボリューム22Pの記憶ブロック(以下、プライマリ記憶ブロック)が、その後にファイルの更新(例えば削除)で空きとなった場合の例を示す。
更新前の元のデータが差分ボリューム22Dに書き込まれる場合、更新データD1はプライマリボリューム22Pに書き込まれる。その後、図4Aに示すように、ホスト装置100のOS107が、例えば更新データD1をプライマリ記憶ブロックから削除する場合、そのプライマリ記憶ブロックに対応したデータブロック950のエリアを空きエリアとし、その空きエリアに対応したビットマップを使用中から空き状態に変更する。この結果、その後、通常時(例えばリストア時ではない場合)には、ホスト装置100のOS107は、空きとなったプライマリ記憶ブロックから、データをリードすることは無い。このため、その空きとなったプライマリ記憶ブロックについて、差分ボリューム22Dにおける位置座標(以下、差分位置座標)が差分管理テーブル400で管理されていても、通常時には、その差分位置座標に対応する、差分ボリューム22D内の記憶ブロック(以下、差分記憶ブロック)から、更新前の元のデータD2がOS107に読出されることも無い。
図4Bは、更新データが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の別の例を示す。具体的には、図4Bは、その場合において、その場合において、スナップショット取得時に、ファイルシステム25Pのデータブロック950上のあるエリアが使用中であり、且つ、スナップショット取得後に、差分管理されていた記憶ブロック(プライマリボリューム22Pの記憶ブロック)がその後にファイルの更新(例えば削除)で空きとなった場合の例を示す。
図4Bに示すように、ホスト装置100のOS107が、例えば更新前の元のデータD2をプライマリボリューム22Pから削除する場合、元のデータD2の記憶ブロックに対応したデータブロック950のエリアを空きエリアとし、その空きエリアに対応したビットマップを使用中から空き状態に変更する。この結果、その後、通常時(例えばリストア時ではない場合)には、ホスト装置100のOS107は、その空きエリアに対応したプライマリ記憶ブロックから、データをリードすることは無い。このため、その空きとなったプライマリ記憶ブロックについて差分位置座標が差分管理テーブル400で管理されていても、通常時には、その差分位置座標に対応する差分記憶ブロックから、削除された元のデータD2に対応する更新データD1がOS107に読み出されることも無い。また、リストア時のホスト装置100からのリード要求では、更新前の元のデータD2をリードさせるので、やはり、更新データD1は必要ない。
以上のように、スナップショット取得時に、ファイルシステム25Pにおけるデータブロック950の或るエリアが使用中になっていたとしても、その後にそのエリアが空きエリアとなった場合には、その空きエリアに対応したプライマリ記憶ブロックについて、差分管理テーブル400で差分管理することは、無駄となる。
そこで、本実施形態では、以下に詳述するようなスナップショット管理テーブルを準備し、且つ、そのスナップショット管理テーブルを用いて後述する処理を行うことにより、上記のような無駄な差分管理を行うことを解消することができる。以下、その仕組みについて詳細に説明する。
図5は、スナップショット管理テーブルの構成例を示す。なお、スナップショット取得時のスナップショット管理テーブルSも余剰差分管理破棄時のスナップショット管理テーブルCも、同様の構成なので、スナップショット取得時のスナップショット管理テーブルSを代表的に例に採り説明する。
スナップショット管理テーブルSは、横軸m、縦軸nで表現されるセルTB2を備える。本実施形態では、例えば、それぞれのセルTB2は、ファイルシステム25Pのデータブロックビットマップ920の構成要素に、一義的に関連づけられている。また、そのファイルシステム25Pにおけるデータブロック950とデータブロックビットマップ920との関連性から、スナップショット管理テーブルSの各セルTB2は、データブロック950上の各データにも間接的且つ一義的に関連付けられている。また、詳細な説明は省略するが、複数のデータブロックビットマップ920の構成要素とスナップショット管理テーブルSの一つのセルTB2を重複しないように対応させる方式も考えられる。
スナップショット管理テーブルSの各セルTB2に記録されている情報、たとえば、座標m1:n1のセルに記録されている「0」や、座標m2:n1のセルに記録されている「1」は、ファイルシステム25P上のデータブロックビットマップ920及びそれに対応するデータブロック950上のデータの有無を表す。具体的には、例えば、データブロック950上の空きエリアに対応するセル(例えば座標m1:n1のセル)には「0」が記録され、逆に、データブロック950上の使用中エリアに対応するセル(例えば座標m2:n1のセル)には「1」が記録される。
また、本実施形態においては、差分管理テーブル400の各テーブルブロックTB1も、スナップショット管理テーブルSの各セルTB2も、ファイルシステム25P上のデータブロック950上のブロックと1対1になるように対応付けられている。本実施形態以外での場合についての詳細な説明は省略するが、例えば、同一のプライマリ記憶ブロック内のデータについて複数個の差分データが差分ボリューム22Dに登録されることにより、差分管理テーブル400が複数個生成されて備えられる場合、データブロック950上の各ブロックにおいて、複数の差分管理テーブル400のテーブルブロックTB1と、一つのスナップショット管理テーブルSのセルTB2とが重複しないように対応させる方式も考えられる。
以下、本実施形態において行われる処理について説明する。
図6Aは、ホスト装置100がスナップショット取得時のスナップショット管理テーブルSを作成する場合の処理流れを示す。
ホスト装置100の制御プログラム106は、スナップショット取得時を検出した場合(ステップS1でYES)、その時点のファイルシステム25Pに記録されている情報(例えばデータブロックビットマップ920及びデータブロック950)に基づいて、その時点におけるスナップショット管理テーブルSを作成して記憶装置102に登録し、そのスナップショット管理テーブルSを記憶制御システム200に送信する(S2)。なお、制御プログラム106は、例えば、以下の(A)〜(C)、
(A)ホスト装置100内の図示しないタイマ等により、ユーザ等によって設定された所定のタイミング(例えば時刻)を検出したとき、
(B)記憶制御システム200から第1の所定信号(例えばスナップショット取得命令)を受信したとき、
(C)ホスト装置100の図示しない入力装置を介してユーザからスナップショット取得命令を受けたとき、
のうちの少なくともいずれかのときに、そのときを、スナップショット取得時として検出することができる。また、制御プログラム106は、差分管理が開始されて以降(例えば、最初のスナップショット取得時以降)、新たにスナップショット取得時を検出する都度に、上述したS2の処理を実行しても良い。また、上記のように、スナップショット取得時のファイルシステム25Pに基づいてスナップショット管理テーブルSが作成された場合には、例えば、図3Aのように、プライマリボリューム22Pの空きの記憶ブロックに更新データD1が書き込まれる場合、その記憶ブロックに対応した、スナップショット管理テーブルSのセルTB2には、空きを表す「0」が記述される。すなわち、例えば、スナップショット取得時において、更新データD1がプライマリボリューム22Pの空きの記憶ブロックに書き込まれる場合には、その空きの記憶ブロックに対応する空きエリア(ファイルシステム25Pのデータブロック950の空きエリア)が空き状態から使用中に切り替わる前に、ファイルシステム25Pに基づいてスナップショット管理テーブルSが作成される。
図6Bは、ホスト装置100が余剰差分管理破棄時のスナップショット管理テーブルCを作成する場合の処理流れを示す。
ホスト装置100の制御プログラム106は、差分管理が行われている期間において、余剰差分管理破棄時を検出した場合(S3でYES)、その時点のファイルシステム25Pに記録されている情報(例えばデータブロックビットマップ920及びデータブロック950)に基づいて、その時点におけるスナップショット管理テーブルCを作成して記憶装置102に登録し、そのスナップショット管理テーブルCを記憶制御システム200に送信する(S4)。なお、制御プログラム106は、例えば、例えば、以下の(A)〜(D)、
(A)ホスト装置100内の図示しないタイマ等により、ユーザ等によって予め設定された所定のタイミング(例えば時刻)を検出したとき、
(B)記憶制御システム200から第2の所定信号(例えば余剰差分管理破棄命令)を受信したとき、
(C)ホスト装置100の図示しない入力装置を介してユーザから余剰差分管理破棄命令を受けたとき、
(D)ホスト装置100がリード要求或いはライト要求を発行するとき、
のうちの少なくともいずれのときに、そのときを、余剰差分管理破棄時として検出することができる。「余剰差分管理破棄」とは、余剰な差分管理が行われていればそれをしないようにすることを意味し、具体的には、例えば、差分管理テーブル400において無駄に差分位置座標が記録されていればそれを破棄することを言う。すなわち、余剰差分管理破棄とは、リストア処理において行われる差分位置座標破棄、つまり、差分管理テーブル400に記録されている全ての差分位置座標を破棄することとは意味が異なる。
図7は、記憶制御システム200の制御装置210が余剰差分管理破棄を行う場合の処理流れを示す。
制御装置210のメモリ212には、ホスト装置100から送信されたスナップショット管理テーブルS及びCが、制御装置210のCPU211によって登録される。また、CPU211に読込まれたスナップショット制御プログラム300は、以下の(A)〜(C)の場合、
(A)ホスト装置100或いはそれとは別の図示しない情報処理端末から、余剰に差分管理されている差分位置座標を破棄することの余剰差分管理破棄命令を受信したとき、
(B)記憶制御システム200に搭載されている図示しないタイマ等により所定の時刻を検出したとき、
(C)余剰差分管理破棄時のスナップショット管理テーブルであることを示すテーブル属性を持ったスナップショット管理テーブルC(このような属性を持ったテーブルCは、ホスト装置100の制御プログラム106が生成しても良い)を受信して、そのテーブルCから上記テーブル属性を検出したとき
の少なくともいずれかのときに、以下のS12の処理を開始することができる。
まず、スナップショット制御プログラム300は、スナップショット管理テーブルS上の複数のセルTB2の中から一つのセルTB2を選択し、そのセルTB2に記録されている情報が「1」か「0」か、すなわち、そのセルTB2に対応するエリア(スナップショット取得時のファイルシステム25Pのデータブロック950のエリア)が使用中か空きのどちらであるかをチェックする(S12)。
S12の結果、空きであることが判別された場合(S13でYES)、スナップショット制御プログラム300は、第1の方法で余剰の差分位置座標を破棄する(S14)。具体的には、例えば、スナップショット制御プログラム300は、更新データをプライマリボリューム22Pに記憶させた場合には、上記空きエリア(つまり空きのプライマリ記憶ブロック)に対応した、差分管理テーブル400のテーブルブロックTB1を特定し、そのテーブルブロックTB1に、差分位置座標が記録されていれば、その差分位置座標を消去する(それに加えて、差分位置座標が表す場所に存在するデータを消去しても良い)。或いは、例えば、スナップショット制御プログラム300は、更新データを差分ボリューム22Dに記憶させた場合には、空きのプライマリ記憶ブロックに対応した、差分管理テーブル400のテーブルブロックTB1を特定し、そのテーブルブロックTB1に、差分位置座標が記録されていれば、その差分位置座標が表す記憶ブロックに存在する更新データを、それに対応する空きプライマリ記憶ブロックにコピーし、その後、その差分位置座標を差分管理テーブル400から削除する。以上のS14の処理により、図4A及び図4Bを参照して説明した不要データD2、すなわち、スナップショット取得時のファイルシステム25P上のデータブロック950で空きエリアとなっていたためにホスト装置100にリードされることの無い不要データD2が破棄されたことになる。
S12の結果、使用中であることが判別された場合(S13でNO)、スナップショット制御プログラム300は、余剰差分管理破棄時のスナップショット管理テーブルC上の複数のセルTB2の中から、上記S12で選択したセルに対応するセルTB2を選択し、そのセルTB2に記録されている情報が「1」か「0」か、すなわち、そのセルTB2に対応するエリア(余剰差分管理破棄時のファイルシステム25Pのデータブロック950のエリア)が使用中か空きのどちらであるかをチェックする(S15)。
S15の結果、空きであることが判別された場合(S16でYES)、スナップショット制御プログラム300は、第2の方法で余剰の差分位置座標を破棄する(S17)。具体的には、例えば、スナップショット制御プログラム300は、更新データをプライマリボリューム22Pに記憶させた場合には、空きのプライマリ記憶ブロックに対応した、差分管理テーブル400のテーブルブロックTB1を特定し、そのテーブルブロックTB1に、差分位置座標が記録されていれば、その差分位置座標が表す記憶ブロックに存在する更新前の元のデータD2を、それに対応する空きプライマリ記憶ブロックにコピーし、その後、その差分位置座標を差分管理テーブル400から削除する。或いは、スナップショット制御プログラム300は、更新データを差分ボリューム22Dに記憶させた場合には、空きプライマリ記憶ブロックに対応した、差分管理テーブル400のテーブルブロックTB1を特定し、そのテーブルブロックTB1に、差分位置座標が記録されていれば、その差分位置座標を消去する(それに加えて、差分位置座標が表す場所に存在する更新データD1を消去しても良い)。以上のS17の処理により、図5A及び図5Bを参照して説明した不要データD1、すなわち、スナップショット取得時はデータが存在しても、その後のファイルの更新(例えば削除)によって余剰差分管理破棄時では空きエリアとなった、その時時のファイルシステム25P上のデータブロック950上のリードされない更新データD1が破棄されたことになる。
S15の結果でも、使用中であることが判別された場合(S16でNO)、スナップショット制御プログラム300は、スナップショット管理テーブルS及びCの全てのセルについてS12或いはS15の処理を行っていなければ、S12に戻り、未だチェックして無い別のセルについて上記チェックを行う。
以上の処理において、例えば、スナップショット取得時でも余剰差分管理破棄時でも、ファイルシステム25Pのデータブロック950にデータが存在するような場合や、余剰差分管理破棄時点では、そのデータブロック950に空きエリアがあっても、その空きエリアに一度もデータが更新されない場合、すなわち、その空きエリアに対応する差分データが存在しない場合には、差分位置座標の破棄のための処理は行われなくても良く、その場合には、そのまま差分位置座標が差分管理テーブル400に存在しても良いし、差分データそれ自体がない状態が続いても良い。
また、図6に示した処理流れは、ほんの一例であって、その流れに限定する必要は無い。例えば、スナップショット制御プログラム300は、スナップショット取得時のスナップショット管理テーブルSの全てのセルについてS12〜S14の処理を行った後に、余剰差分管理破棄時のスナップショット管理テーブルCの全てのセル(或いは、S13でNOとなったセルに対応するセルのみ)について、S15〜S17の処理を行っても良い。また、上記の処理において、スナップショット制御プログラム300は、差分管理テーブル400に記録されている差分位置座標を削除する場合、その差分位置座標が表す記憶ブロックに格納されているデータも削除しても良い。
以上、本発明の好適な実施形態を説明したが、これら本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、スナップショット管理テーブルS及びCの少なくとも一つは、制御装置210が、プライマリボリューム22Pのファイルシステム25Pに記録されている情報に基づいて生成してメモリ212に登録しても良い。また、記憶制御システム200は、NAS(Network Attached Storage)であっても良い。また、図7に示した処理の一部又は全部を、ホスト装置100(例えばそれの制御プログラム106)が実行しても良い。また、スナップショット制御プログラム300は、差分管理テーブル400の各テーブルブロックTB1毎に、差分位置座標の更新の履歴(例えば、各スナップショット取得時点毎や、余剰差分管理破棄時の差分位置座標)をメモリ212等に記憶させていっても良い。
本発明の一実施形態に係るコンピュータシステムの全体構成を示す。 図2Aは、差分管理テーブル400の構成例を示す。図2Bは、本実施形態におけるファイルシステムの構造例を示す。 図3Aは、更新前の元のデータが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の一例を示す。図3Bは、更新データが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の一例を示す。 図4Aは、更新前の元のデータが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の別の例を示す。図4Bは、更新データが差分ボリューム22Dに書き込まれる場合に、ホスト装置100にとって不要なデータが発生してしまう場合の別の例を示す。 スナップショット管理テーブルの構成例を示す。 図6Aは、ホスト装置100がスナップショット取得時のスナップショット管理テーブルSを作成する場合の処理流れを示す。図6Bは、ホスト装置100が余剰差分管理破棄時のスナップショット管理テーブルCを作成する場合の処理流れを示す。 記憶制御システム200の制御装置210が余剰差分管理破棄を行う場合の処理流れを示す。
符号の説明
1…コンピュータシステム 22P…プライマリボリューム 22D…差分ボリューム 25P、25D…ファイルシステム 100…ホスト装置 101…CPU 102…記憶装置 103…インターフェース装置(I/F) 106…制御プログラム 200…記憶制御システム 210…制御装置 211…CPU 212…メモリ 213…ホストインターフェース装置(ホストI/F) 214…ディスクインターフェース装置(ディスクI/F) 300…スナップショット制御プログラム 400…差分管理テーブル S…スナップショット取得時のスナップショット管理テーブル C…余剰差分管理破棄時のスナップショット管理テーブル P…プライマリボリュームの記憶ブロック D…差分ボリュームの記憶ブロック

Claims (6)

  1. データの読出しや書込みを行う外部装置に接続される記憶制御システムにおいて、
    複数の第一記憶領域を有する第一の記憶デバイスと、
    複数の第二記憶領域を有する第二の記憶デバイスと、
    前記第一と第二の記憶デバイスのうちの少なくとも一つと前記外部装置との間で行われるデータのやり取りを制御する制御装置と
    を備え、
    前記複数の第二記憶領域の少なくとも一つに、前記複数の第一記憶領域のいずれか一つに対応する対応データが記憶され、
    前記制御装置は、
    どの第一記憶領域から前記外部装置によりデータが読出されることが無いかを表す読出し管理情報を取得し、
    どの第一記憶領域に対応する対応データがどの第二記憶領域に記憶されているかが表された対応管理情報を取得し、
    前記取得した読出し管理情報及び対応管理情報に基づいて、前記複数の第一記憶領域のうちのどの第一記憶領域に対応したどの第二記憶領域に、前記外部装置にとっての不要な対応データが記憶されているかを特定し、
    前記特定された第二記憶領域が記憶する対応データをその第二記憶領域から除去することと、前記対応管理情報における前記特定された第二記憶領域を表す情報要素を前記対応管理情報から除去することとののうちの少なくとも一方を行う、
    記憶制御システム。
  2. 前記外部装置が、書込み対象データを前記記憶制御システムに送信し、且つ、前記書込み対象データの書込み先が、空きを表す空きデータが記憶されている第一記憶領域である場合において、
    前記制御装置は、
    第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データの書込み先となる第一記憶領域の空きデータを書込み、且つ、前記受信した書込み対象データを、前記書込み先の第一記憶領域に書込み、
    前記空きデータが書き込まれた第二記憶領域であって、前記空きデータを記憶していた第一記憶領域に対応した第二記憶領域が、前記複数の第二記憶領域のうちのどれであるかを表す情報要素を前記対応管理情報に書込み、
    前記第一のタイミングのときにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記第一のタイミングのときに空きデータを記憶していた第一記憶領域が前記複数の第一記憶領域のうちのどれであるかを特定し、
    前記取得した対応管理情報の中に、前記空きデータを記憶していた第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去する、
    請求項1記載の記憶制御システム。
  3. 前記外部装置は、書込み対象データを前記記憶制御システムに送信し、
    前記制御装置は、
    第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データを書込み、
    前記書込み対象データに対応するデータが前記複数の第一の記憶領域のどの第一記憶領域に存在するかを特定し、前記特定された第一記憶領域に前記書込み対象データが書き込まれた第二記憶領域が対応することを表す情報要素を前記対応管理情報に書込み、
    前記第一のタイミングのときにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記第一のタイミングのときに空きであった第一記憶領域が前記複数の第一記憶領域のうちのどれであるかを特定し、
    前記取得した対応管理情報の中に、前記空きであった第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内の書込み対象データを前記第二記憶領域から除去する、
    請求項1記載の記憶制御システム。
  4. 前記外部装置が、書込み対象データを前記記憶制御システムに送信し、且つ、データの更新要求或いは削除要求を前記記憶制御システムに送信するようになっている場合、
    前記制御装置は、
    第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記書込み対象データの書込み先となる第一記憶領域内の第一データを書込み、且つ、前記受信した書込み対象データを、前記書込み先の第一記憶領域に書込み、
    前記第一データが書き込まれた第二記憶領域であって、前記第一データを記憶していた第一記憶領域に対応した第二記憶領域が前記複数の第二記憶領域のうちのどれであるかを表す情報要素を前記対応管理情報に書込み、
    前記第一のタイミングの後の第二のタイミングにおいて、データの更新要求或いは削除要求を前記外部装置から受信した場合、前記受信した更新要求或いは削除要求に応答して、前記第一記憶領域に記憶されているデータを消去し、
    前記第二のタイミング以降のタイミングにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記複数の第一記憶領域のうちデータが記憶されていない空きの第一記憶領域を特定し、
    前記取得した対応管理情報の中に、前記空きの第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内のデータを前記第二記憶領域から除去する、
    請求項1記載の記憶制御システム。
  5. 前記外部装置が、書込み対象データを前記記憶制御システムに送信し、且つ、データの更新要求或いは削除要求を前記記憶制御システムに送信するようになっている場合、
    前記制御装置は、
    第一のタイミングにおいて、前記外部装置から書込み対象データを受信した場合、前記複数の第二記憶領域の中から空きの第二記憶領域を選択し、前記選択した空きの第二記憶領域に、前記受信した書込み対象データを書込み、
    前記書込み対象データに対応するデータが前記複数の第一の記憶領域のどの第一記憶領域に存在するかを特定し、前記特定された第一記憶領域に前記書込み対象データが書き込まれた第二記憶領域が対応することを表す情報要素を前記対応管理情報に書込み、
    前記第一のタイミングの後の第二のタイミングにおいて、データの更新要求或いは削除要求を前記外部装置から受信した場合、前記受信した更新要求或いは削除要求に応答して、前記第一記憶領域に記憶されているデータを消去し、
    前記第二のタイミング以降のタイミングにおける前記読出し管理情報を取得し、前記取得した読出し管理情報から、前記複数の第一記憶領域のうちデータが記憶されていない空きの第一記憶領域を特定し、
    前記取得した対応管理情報の中に、前記空きの第一記憶領域に対応付けられた第二記憶領域を表す情報要素が含まれていれば、前記含まれている情報要素を前記対応管理情報の中から除去し、且つ、前記含まれている情報要素が表す第二記憶領域内の書込み対象データを前記第二記憶領域から除去する、
    請求項1記載の記憶制御システム。
  6. 複数の第一記憶領域を有する第一の記憶デバイスと、複数の第二記憶領域を有する第二の記憶デバイスとが備えられており、
    前記複数の第二記憶領域の少なくとも一つに、前記複数の第一記憶領域のいずれか一つに対応する対応データを記憶するステップと、
    どの第一記憶領域から前記外部装置によりデータが読出されることが無いかを表す読出し管理情報を作成するステップと、
    前記読出し管理情報を取得するステップと、
    どの第一記憶領域に対応する対応データがどの第二記憶領域に記憶されているかが表された対応管理情報を取得するステップと、
    前記取得した読出し管理情報及び対応管理情報に基づいて、前記複数の第一記憶領域のうちのどの第一記憶領域に対応したどの第二記憶領域に、前記外部装置にとっての不要な対応データが記憶されているかを特定するステップと、
    前記特定された第二記憶領域が記憶する対応データその第二記憶領域から除去することと、前記対応管理情報における前記特定された第二記憶領域を表す情報要素を前記対応管理情報から除去することとののうちの少なくとも一方を行うステップと
    を有する記憶制御方法。
JP2004187905A 2004-06-25 2004-06-25 記憶制御システム及び記憶制御方法 Withdrawn JP2006011811A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004187905A JP2006011811A (ja) 2004-06-25 2004-06-25 記憶制御システム及び記憶制御方法
US10/918,719 US7152147B2 (en) 2004-06-25 2004-08-13 Storage control system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004187905A JP2006011811A (ja) 2004-06-25 2004-06-25 記憶制御システム及び記憶制御方法

Publications (1)

Publication Number Publication Date
JP2006011811A true JP2006011811A (ja) 2006-01-12

Family

ID=35507442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004187905A Withdrawn JP2006011811A (ja) 2004-06-25 2004-06-25 記憶制御システム及び記憶制御方法

Country Status (2)

Country Link
US (1) US7152147B2 (ja)
JP (1) JP2006011811A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114583B2 (en) 2015-03-24 2018-10-30 Nec Corporation Storage system, storage management method, and storage medium

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617259B1 (en) * 2004-12-31 2009-11-10 Symantec Operating Corporation System and method for managing redundant storage consistency at a file system level
US7415488B1 (en) * 2004-12-31 2008-08-19 Symantec Operating Corporation System and method for redundant storage consistency recovery
US7836266B2 (en) * 2005-09-19 2010-11-16 International Business Machines Corporation Managing snapshot history in a data storage system
JP4993913B2 (ja) * 2006-01-13 2012-08-08 株式会社日立製作所 記憶制御装置及びそのデータ管理方法
US7509467B2 (en) * 2006-01-13 2009-03-24 Hitachi, Ltd. Storage controller and data management method
JP4800056B2 (ja) * 2006-02-09 2011-10-26 株式会社日立製作所 ストレージシステム及びその制御方法
JP4927408B2 (ja) * 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
US8533409B2 (en) * 2006-01-26 2013-09-10 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
US7603392B2 (en) * 2006-06-05 2009-10-13 International Business Machines Corporation System, method and computer program product for storing transient state information
NZ548528A (en) * 2006-07-14 2009-02-28 Arc Innovations Ltd Text encoding system and method
CN101211252B (zh) * 2006-12-26 2012-05-23 劲永国际股份有限公司 存储器储存装置
JP2008217209A (ja) * 2007-03-01 2008-09-18 Hitachi Ltd 差分スナップショット管理方法、計算機システム及びnas計算機
TWI366100B (en) * 2007-11-02 2012-06-11 Compal Electronics Inc Method for storing data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5901327A (en) * 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6081875A (en) * 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
JP4128641B2 (ja) * 1997-10-13 2008-07-30 株式会社東芝 データ退避方法
US6321239B1 (en) * 1998-09-28 2001-11-20 International Business Machines Corporation Efficient volume copy using pre-configuration of log structured target storage
US6631478B1 (en) * 1999-06-18 2003-10-07 Cisco Technology, Inc. Technique for implementing high performance stable storage hierarchy in a computer network
JP4115060B2 (ja) 2000-02-02 2008-07-09 株式会社日立製作所 情報処理システムのデータ復旧方法及びディスクサブシステム
US6473775B1 (en) * 2000-02-16 2002-10-29 Microsoft Corporation System and method for growing differential file on a base volume of a snapshot
US6594744B1 (en) 2000-12-11 2003-07-15 Lsi Logic Corporation Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US20030177306A1 (en) * 2002-03-14 2003-09-18 Cochran Robert Alan Track level snapshot
US7478096B2 (en) 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
JP4292882B2 (ja) 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US7155465B2 (en) 2003-04-18 2006-12-26 Lee Howard F Method and apparatus for automatically archiving a file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114583B2 (en) 2015-03-24 2018-10-30 Nec Corporation Storage system, storage management method, and storage medium

Also Published As

Publication number Publication date
US20050289309A1 (en) 2005-12-29
US7152147B2 (en) 2006-12-19

Similar Documents

Publication Publication Date Title
US8271444B2 (en) Storage control device to backup data stored in virtual volume
JP5346536B2 (ja) 情報バックアップ/リストア処理装置、及び情報バックアップ/リストア処理システム
JP4550541B2 (ja) ストレージシステム
CN106055431B (zh) 基于快照在线回滚的数据备份与恢复的方法及装置
US8255647B2 (en) Journal volume backup to a storage device
US8271753B2 (en) Storage controller and storage control method for copying a snapshot using copy difference information
JP4890160B2 (ja) ストレージシステム及びバックアップ/リカバリ方法
JP4990066B2 (ja) 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP4900811B2 (ja) 記憶システムおよび記憶制御方法
US9501231B2 (en) Storage system and storage control method
US8200631B2 (en) Snapshot reset method and apparatus
US7783603B2 (en) Backing store re-initialization method and apparatus
US20060047926A1 (en) Managing multiple snapshot copies of data
JP5984151B2 (ja) データの復旧方法、プログラムおよびデータ処理システム
US7383465B1 (en) Undoable volume using write logging
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
CN106776147B (zh) 一种差异数据备份方法和差异数据备份装置
JP2010079526A (ja) ジャーナルの階層を管理する計算機システム及び方法
JP5275692B2 (ja) ストレージシステム群
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
US8131958B2 (en) Storage system, storage device, and data updating method using a journal volume
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
JP5275691B2 (ja) ストレージシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904