JP5313600B2 - ストレージシステム、及びストレージシステムの運用方法 - Google Patents

ストレージシステム、及びストレージシステムの運用方法 Download PDF

Info

Publication number
JP5313600B2
JP5313600B2 JP2008236980A JP2008236980A JP5313600B2 JP 5313600 B2 JP5313600 B2 JP 5313600B2 JP 2008236980 A JP2008236980 A JP 2008236980A JP 2008236980 A JP2008236980 A JP 2008236980A JP 5313600 B2 JP5313600 B2 JP 5313600B2
Authority
JP
Japan
Prior art keywords
data
vol
storage area
stored
address
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
JP2008236980A
Other languages
English (en)
Other versions
JP2010072746A (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 JP2008236980A priority Critical patent/JP5313600B2/ja
Priority to US12/289,134 priority patent/US8332600B2/en
Publication of JP2010072746A publication Critical patent/JP2010072746A/ja
Application granted granted Critical
Publication of JP5313600B2 publication Critical patent/JP5313600B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/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/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージシステム、及びストレージシステムの運用方法に関し、とくにスナップショット機能を提供するにあたり保持しなければならない差分データを効率よく管理し、記憶領域の有効利用を図るための技術に関する。
ストレージシステムの機能として、運用中のボリューム(以下、運用ボリュームと称する。)のある時点の状態(以下、スナップショットと称する。)を、ユーザ等からの要求に応じて提供する機能(以下、スナップショット機能と称する。)がある。このスナップショット機能は、通常は運用ボリュームのある時点のスナップショットを再現するためのデータ(以下、差分データと称する。)を運用ボリュームとは別のボリューム(以下、差分ボリュームと称する。)に退避しておき、ユーザ等からの要求に応じて、現在の運用ボリュームのデータと差分ボリュームに退避しておいた差分データとによってある時点のスナップショットを再現するという方法で実現される(例えば特許文献1〜3を参照)。
米国特許第5649152号明細書 米国特許第7120768号明細書 米国特許第7237076号明細書
上記方法によるスナップショット機能の実現に際しては、差分ボリュームに蓄積される差分データの管理が問題となる。即ち、ストレージシステムが差分ボリュームとして提供可能な記憶領域は限られるので、差分データは可能な限り効率よく差分ボリュームに管理することが望ましい。
そこで本発明は、スナップショット機能を提供するにあたり保持しなければならない差分データを効率よく管理し、記憶領域の有効利用を図ることが可能な、ストレージシステム、及びストレージシステムの運用方法を提供することを目的とする。
上記の課題を解決するための本発明のうちの一つは、ストレージシステムであって、
外部装置からの要求に応じて第1の論理ボリュームであるP−VOLへのデータI/O処理を行うI/O処理部と、
ある時点における前記P−VOLの状態であるスナップショットを再現すべく、前記P−VOLのデータが更新されることにより生じた差分データを第2の論理ボリュームであるD−VOLに格納し、前記P−VOLの第1の記憶領域を特定する第1のアドレスに対応づけて、当該第1のアドレスについて取得した前記差分データが格納される前記D−VOLの第2の記憶領域を特定する第2のアドレスが登録されるスナップショット管理テーブルを管理するスナップショット処理部と、
前記P−VOLのデータが更新された場合に、当該更新により生じた前記差分データについて前記D−VOLの前記第2のアドレスの前記第2の記憶領域に格納されるべきデータである対象データと同一のデータが、前記D−VOLの記憶領域に格納されているか否かを判断し、
格納されていない場合には、前記D−VOLの未使用の前記第2の記憶領域に前記対象データを記憶するとともに、前記スナップショット管理テーブルに、当該対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、当該対象データを格納した前記第2の記憶領域を特定する前記第2のアドレスを登録し、
格納されている場合には、当該対象データを前記D−VOLに格納せずに、前記スナップショット管理テーブルに、当該対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、当該対象データと同一のデータが格納されている前記第2の記憶領域を特定する前記第2のアドレスを登録する差分データ管理部と
を備え、
前記差分データ管理部は、
前記対象データと同一のデータが前記D−VOLの前記第2のアドレスで特定される前記第2の記憶領域に格納されているか否かの前記判断を、前記対象データに対応する、前記第1の記憶領域に格納されているデータについて求めた第1のハッシュ値と、前記第2の記憶領域に格納されているデータについて求めた第2のハッシュ値とを比較することにより行い、
前記第1のハッシュ値を、前記P−VOLへのデータの書き込みがなされるタイミングで計算して保持しておく。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
本発明によれば、スナップショットの実現にあたり、記憶資源を有効に利用することができる。
以下、図面を参照しつつ実施の形態について説明する。
図1Aに一実施形態として説明する情報処理システム1のハードウエア構成を示している。同図に示すように、情報処理システム1は、ストレージシステム5を構成するサーバ装置10及びストレージ装置20、クライアント装置30(外部装置、ホスト装置)、及び管理装置40を含む。サーバ装置10、クライアント装置30、及び管理装置40は、パーソナルコンピュータやワークステーション、メインフレーム等のコンピュータ(情報処理装置)である。
サーバ装置10とストレージ装置20とは、LAN(Local Area Network)やSAN(Storage Area Network)等の通信ネットワークを介して通信可能に接続している。サーバ装置10は、LANやインターネット、公衆通信網、専用線等を介して、クライアント装置30及び管理装置40と通信可能に接続している。
クライアント装置30は、ストレージシステム5が提供する記憶領域を利用する。管理装置40は、オペレータ等がサーバ装置10やストレージ装置20の設定機能、管理機能等を提供する。
尚、サーバ装置10とストレージ装置20は、同一筐体に収容される等して一体的に構成されていてもよいし、別筐体に収容される等して別体として構成されていてもよい。管理装置40はクライアント装置30であってもよいし、サーバ装置10又はストレージ装置の一部として構成されていてもよい。
サーバ装置10は、クライアント装置30から送られてくるデータ入出力要求を受け付けた場合にストレージ装置20の記憶領域にアクセスする。ストレージ装置20は、ハードディスクドライブ等の物理記憶媒体21を有している。ストレージ装置20は、物理記憶媒体21を例えばRAID(Redundant Array of Inexpensive Disks)方式で運用する。
尚、ストレージ装置20の一例として、クライアント装置30との間で通信を行うチャネル制御部、物理記憶媒体21へのアクセスを行うディスク制御部、チャネル制御部とディスク制御部とのデータの受け渡し等に利用されるキャッシュメモリ、各部を通信可能に接続する通信機構を備えるディスクアレイ装置がある。
ストレージ装置20は、サーバ装置10に論理的な記憶領域たる論理ボリューム(Logical Volume(以下、LVと称する。))を提供する。尚、後述するスナップショット機能における第1の論理ボリューム(プライマリボリューム)(以下、P−VOL22(P-VOL : Primary Volume)と称する。)、及び第2の論理ボリューム(差分ボリューム)(以下、D−VOL23(D-VOL:Differential Volume)と称する。)は、いずれもLVである。
図1Bは、サーバ装置10、クライアント装置30、又は管理装置40として利用可能なコンピュータの一例である。このコンピュータ100は、中央処理装置101(例えばCPU(Central Processing Unit)やMPU(Micro Processing Unit))、主記憶装置102(例えばRAM(Random Access Memory)やROM(Read Only Memory))、補助記憶装置103(例えばハードディスク)、ユーザの操作入力を受け付ける入力装置104(例えばキーボードやマウス)、出力装置105(例えば液晶モニタ)、他の装置との間の通信を実現する通信インタフェース106(例えばNIC(Network Interface Card)やHBA(Host Bus Adapter))を備えている。
図2にサーバ装置10の主な機能、及びサーバ装置10が管理するデータを示している。サーバ装置10は、I/O処理部121、スナップショット処理部122、及び差分データ管理部120の各機能を有する。このうち差分データ管理部120は、さらに差分重複管理部123、差分退避管理部124、ハッシュ値生成部125、ディスク制御部126、差分データ削除部127、及び重複防止機能導入部128の各機能を提供する。
尚、サーバ装置10の上記各機能は、サーバ装置10のCPU11が、メモリ12に読み出されているプログラムを実行することによって、もしくは、サーバ装置10のハードウエアによって実現される。また上記各機能の実現に際しては、サーバ装置10において動作するオペレーティングシステムやデバイスドライバ等の他のソフトウエアによって実現される機能が関与することがある。
図2に示すI/O処理部121は、クライアント装置30から送信されてくるI/O要求(データ書き込み要求、データ読み出し要求)を受け付け、ストレージ装置20へのデータの書き込み又はデータの読み出しを行う。またI/O処理部121は、データの書き込み完了報告、読み出したデータ等をクライアント装置30に送信する。
尚、サーバ装置10がNAS(Network Attached Storage)である場合には、I/O処理部121はさらにNFS(Network File System)やCIFS(Common Internet File System)等のファイル共用機能、及びファイルシステム等のNASの特徴的な機能を有する。
スナップショット処理部122は、クライアント装置30から送信されてくるスナップショット取得要求の受け付け、ある時点のスナップショットの取得、スナップショットの参照要求の受け付け、クライアント装置30へのスナップショットの提供、スナップショットの削除を行う。
ここでスナップショットの取得とは、P−VOL22において更新されたブロックのデータ(以下、差分データと称する。)をD−VOL23に退避することをいう。またスナップショットの提供とは、現在のP−VOL22のデータとD−VOL23に退避された差分データとに基づいて、過去のある時点におけるP−VOL22の状態を再現することをいう。またスナップショットの削除とは、D−VOL23から削除対象の差分データを削除することをいう。
図2に示す差分データ管理部120の詳細については後述する。
図2に示しているように、サーバ装置10は、CoWテーブル131(CoW:Copy On Write)、ハッシュ値テーブル132、差分データ管理テーブル133、及び既存データ重複排除テーブル134(図では重複排除テーブルと略記している。)を管理している。尚、以下の説明ではハッシュ値テーブル132はP−VOL22に、CoWテーブル131、差分データ管理テーブル133、及び既存データ重複排除テーブル134はD−VOL23に、夫々格納されているものとしているが、各テーブルの格納位置は必ずしもこれに限定されない。
図3AにCoWテーブル131の一例を示す。CoWテーブル131は、スナップショットの管理に際し利用されるテーブルである。CoWテーブル131は、スナップショットの各世代に対応する一つ以上の個別のテーブル群(以下、世代別テーブル1311〜131nと称する。)で構成される。
CoWテーブル131には、P−VOL22の記憶領域(第1の記憶領域)を特定するブロックアドレス13111(第1のアドレス)に対応づけて、スナップショットの取得によって退避されるべき差分データが格納されるD−VOL23の記憶領域(第2の記憶領域)を特定するブロックアドレス13112(第2のアドレス)が管理されている。
尚、差分データが取得されていない場合には、対応するD−VOL23のブロックアドレス13112に例えば「0」や「NONE」といった実データでないことを意味するデータが格納される。
図3Bにハッシュ値テーブル132の一例を示す。同図に示すように、ハッシュ値テーブル132には、P−VOL22のブロックアドレス1321に対応づけて、そのP−VOL22のブロックアドレス1321に格納されているデータから生成されるハッシュ値1322が管理される。
図3Cに差分データ管理テーブル133の一例を示す。同図に示すように、差分データ管理テーブル133には、D−VOL23のブロックアドレス1321に対応づけて、参照カウンタ1322、及び対応するD−VOL23のブロックアドレス1321に格納されている差分データのハッシュ値1323が管理される。
図3Dに既存データ重複排除テーブル134の一例を示す。同図に示すように、既存データ重複排除テーブル134には、D−VOL23のブロックアドレス1341とP−VOL22のブロックアドレス1342の組み合わせに対応づけて、始点世代1342及び終点世代1344が管理される。既存データ重複排除テーブル134の詳細については後述する。
次に以上に説明した情報処理システム1において行われる処理について説明する。
<差分データのD−VOL23への重複格納防止>
情報処理システム1では、差分データがD−VOL23に重複して格納されてしまわないようにするために、スナップショットの取得に際し特有の処理が行われる。以下、この処理について図4に示すフローチャートとともに説明する。尚、以下の説明において符号の前に付した文字「S」はステップを意味する。
まずサーバ装置10のI/O処理部121がクライアント装置30からP−VOL22へのデータの書き込み要求を受け付ける(S411)。するとI/O処理部121は、差分データ管理部120に対し、データが書き込まれるP−VOL22のブロックアドレス(以下、対象ブロックアドレスと称する。)と、書き込み対象のデータ(以下、対象データと称する。)を指定してデータの書き込みを指示する(S412)。
差分データ管理部120の差分重複管理部123は、上記指示を受けると、D−VOL23にP−VOL22が現在利用中の差分データが存在するか否かを判断する(S413)。この判断は、例えばスナップショットを管理している少なくとも一世代分のCoWテーブル131が存在するか否かを調べることにより行われる。利用中のスナップショットが存在すれば(S413:YES)S414に進み、利用中のスナップショットが存在しなければ(S413:NO)S423に進む。
次に差分退避管理部124が、対象データのP−VOL22への書き込みに伴って生じたD−VOL23に退避すべき差分データが、D−VOL23に既に格納済か否かを判断する。ここでこの判断は、最新のスナップショット世代のCoWテーブル131の対象ブロックアドレスにD−VOL23のブロックアドレスが格納されているか否かを調べることにより行われる。退避済でなければ(S414:NO)S415に進む。退避済であれば(S414:YES)S423に進む。
S415では、差分重複管理部123は、ハッシュ値テーブル132から、対象ブロックアドレスのハッシュ値を取得する。そして差分重複管理部123は、ハッシュ値テーブル132から取得したハッシュ値に一致するハッシュ値が差分データ管理テーブル133に存在するか否かを調べる(S416)。存在すれば(S416:YES)S417に進み、存在しなければ(S416:NO)S420に進む。
S417では、差分重複管理部123は、一致したハッシュ値に対応するD−VOL23のブロックアドレスを差分データ管理テーブル133から取得する。そして差分重複管理部123は、CoWテーブル131の対象ブロックアドレスの該当世代に、差分データ管理テーブル133から取得したD−VOL23のブロックアドレスを格納する(S418)。またこのとき、差分重複管理部123は、差分データ管理テーブル133の当該D−VOL23のブロックアドレスに対応する参照カウンタ1322に1を加算(インクリメント)する(S419)。S419の後は、S423に進む。
S420では、差分重複管理部123が、差分データの退避先となるD−VOL23のブロックアドレス(以下、退避先ブロックアドレスと称する。)を決定し、決定した退避先ブロックアドレスに差分データを格納する(S421)。またこのとき、差分重複管理部123は、CoWテーブル131の対象ブロックアドレスの該当世代に当該退避先ブロックアドレスを格納する(S422)。
S423以降の処理は、P−VOL22に対象データを格納する処理であり、差分重複管理部123が対象データをP−VOL22の対象ブロックアドレスに格納し(S423)、さらに対象データのハッシュ値をハッシュ値テーブル132に格納する。
このように、スナップショットの取得に際し、差分データ管理部120は、D−VOL23に既に差分データが格納されているか否かを判断し、格納されていれば既に格納されている差分データのブロックアドレスをCoWテーブル131に格納し、これによりP−VOL22の複数のブロックアドレスにD−VOL23の同一のブロックアドレスの差分データが対応付けられることになる。このため、D−VOL23の異なるブロックに同一のデータが書き込まれないようになり、D−VOL23の記憶領域を有効に利用することができる。
尚、以上では、差分データをD−VOL23に退避させる前に重複チェック(ハッシュ値の比較)を行っているが、差分データをD−VOL23に退避した後に重複チェックを行って、重複するデータをD−VOL23から削除するようにしてもよい。
またP−VOL22の各ブロックアドレスのデータのハッシュ値は、差分データのD−VOL23への退避が発生する際に計算してもよいし、退避前の例えばP−VOL22へのデータの格納時等に計算してハッシュ値テーブル132に予め格納しておくようにしてもよい。後者の場合、P−VOL22のデータのハッシュ値を計算する期間と差分データを退避する期間の重複を避けることができ、特定の期間に負荷が集中するのを効果的に避けることができる。
<差分データの削除>
以上の仕組みによれば同一の差分データがD−VOL23に重複して格納されるのを防ぐことができる。しかしこの仕組みを導入すればD−VOL23に格納されている一の差分データが、P−VOL22の複数のブロックアドレスに対応づけられることが生じ得る。このため、あるスナップショットを削除しようとする場合には、その差分データがCoWテーブル131においてP−VOL22のいずれのブロックアドレスにも対応づけられていないことを確認しなければならない。以下、この確認に関する処理について、図5に示すフローチャートとともに説明する。
まずサーバ装置10のI/O処理部121が、クライアント装置30から、あるP−VOL22についてのスナップショット(以下、削除対象スナップショットと称する。)の削除要求(以下、スナップショット削除要求と称する。)を受け付ける(S511)。するとI/O処理部121は、差分データ管理部120に、削除対象スナップショットを指定して(特定世代(ここでは一例としてx世代とする)の指定を含む。)、スナップショットの削除を指示する(S512)。
次に差分データ管理部120の差分データ削除部127は、CoWテーブル131から、削除対象スナップショット(世代x)の差分データを格納しているD−VOL23のブロックアドレス(以下、削除候補ブロックアドレスと称する。)を全て取得する(S513)。
次に差分データ削除部127は、全ての削除候補ブロックアドレス(世代x)について、差分データ管理テーブル133の参照カウンタ1322の値を減算したか否かを判断する(S514)。減算していない場合には(S514:NO)S515に進み、減算している場合には(S514:YES)、S519に進む。
続くS515では、差分データ削除部127が、参照カウンタ1322の減算が済んでいない削除候補ブロックアドレスを一つ選択する。
S516において、差分データ削除部127は、S515で選択した削除候補ブロックアドレスについて、参照カウンタ1322の値を1だけ減算(デクリメント)する。
S517において、差分データ削除部127は、S516で参照カウンタ1322の値を減算した後の削除候補ブロックアドレスの参照カウンタの値が「0」(下限値)か否かを判断する。参照カウンタ1322の値が「0」であれば(S517:YES)、S517に進み、「0」でなければ(S517:NO)S514に戻る。
S518において、差分データ削除部127は、D−VOL23の選択されている削除候補ブロックアドレスで指定される記憶領域に格納されている差分データを削除する。尚、ここでいう削除とは、その削除候補ブロックアドレスの記憶領域に新たなデータの書き込みができる状態にすることである。
S519において、差分データ削除部127は、選択されている削除候補ブロックアドレスについて、その差分データ管理テーブル133のハッシュ値1333を削除する。その後はS514に戻る。
尚、悪意の第三者の閲覧を防ぐ等、セキュリティを確保すべく、削除した差分データが格納されていた記憶領域や、削除した差分管理テーブル133のハッシュ値1333の記憶領域に例えば「0」や「NONE」といった実データとして意味を持たないデータを書き込むようにしてもよい。
S520では、差分データ削除部127が、削除対象スナップショット(世代x)のCoWテーブル131を削除する。
以上に説明したように、D−VOL23の削除候補ブロックアドレスの記憶領域に格納されている差分データは、当該削除候補ブロックアドレスの差分データ管理テーブル133の参照カウンタ1322の値が「0」(下限値)になった場合、即ち、その差分データがいずれのP−VOL22のブロックアドレスにも対応づけられていない(差分データとして利用されない)ことが確認された場合に限り、差分データがD−VOL23から削除される。
以上の方法によれば、スナップショットの削除に際し、D−VOL23から差分データを安全に削除することができる。そして差分データが削除されたD−VOL23の記憶領域は、新たに生じた差分データの退避先として再利用可能となり、D−VOL23の効率的な運用が可能となる。
<既存環境への導入方法>
次に、スナップショット機能が既に導入されている既存のシステムに対し、図4に示したD−VOL23の差分データの重複格納を防ぐ仕組みを導入する方法について、図6A、図6Bに示すフローチャートとともに説明する。尚、以下に説明する処理は、例えば管理装置40やクライアント装置30から送られてくる指示を受け付けたことを契機として開始される。
図6Aに示すように、まず差分データ管理部120の重複防止機能導入部128が、ハッシュ値テーブル132を生成するとともに(S611)、差分データ管理部120のハッシュ値生成部125にハッシュ値の計算を指示する。
ハッシュ値生成部125は、上記指示を受けると、P−VOL22の各ブロックアドレスに格納されているデータのハッシュ値を求め、求めたハッシュ値をP−VOL22のブロックアドレス1321に対応づけて、ハッシュ値テーブル132に格納する(S612)。
次に重複防止機能導入部128は、差分データ管理テーブル133を生成し(S613)、ハッシュ値生成部125に対し、D−VOL23の各ブロックに格納されている差分データのハッシュ値の計算を指示する。
ハッシュ値生成部125は、上記指示を受けると、D−VOL23の各ブロックに格納されている差分データのハッシュ値を求め、求めたハッシュ値をD−VOL23のブロックアドレス1331に対応づけて差分データ管理テーブル133に格納する(S614)。
次に重複防止機能導入部128は、全世代のCoWテーブル131を参照して差分データ管理テーブル133の参照カウンタ1322の値を設定する。具体的には、重複防止機能導入部128は、各世代のCoWテーブル131のD−VOL23のブロックアドレスの記憶領域の内容を順に調べ、その記憶領域に有意な値(差分データが格納されているブロックアドレス)が設定されていれば、差分データ管理テーブル133の該当のD−VOL23のブロックアドレス1321の参照カウンタ1322に1を加算(インクリメント)する(S615)。尚、P−VOL22が複数存在する場合には、上記参照カウンタ1322の設定は、存在する全てのP−VOL22について行われる。
次に重複防止機能導入部128は、既存データ重複排除テーブル134を生成する。図3Dに示すように、既存データ重複排除テーブル134には、D−VOL23の各ブロックアドレス1341に対応づけて、P−VOL22のブロックアドレス1342、始点世代1343、及び終点世代1344が管理される。このうち始点世代1343には、CoWテーブル131において、該当のD−VOL23のブロックアドレス1341が格納されている最古のスナップショット世代の世代数が設定される。また終点世代1344には、CoWテーブル131において、該当のD−VOL23のブロックアドレス1341が格納されている最新のスナップショット世代の世代数が設定される。
この既存データ重複排除テーブル134の生成方法について、図6A(S616以降)とともに説明する。
まず重複防止機能導入部128は、CoWテーブル131から、P−VOL22のブロックアドレスとD−VOL23のブロックアドレスの組み合わせを一つ選択する(S616)。
次に重複防止機能導入部128は、選択した組み合わせが既存データ重複排除テーブル134に存在するか否かを判断する(S617)。存在しない場合は(S617:NO)S618に進み、存在する場合は(S617:YES)S619に進む。
次に重複防止機能導入部128は、既存データ重複排除テーブル134に上記組み合わせを格納する。また重複防止機能導入部128は、上記組み合わせに対応する始点世代1343及び終点世代1344に、上記組み合わせの世代(当該組み合わせを選択したCoWテーブル131の世代)を格納する(S618)。
次に重複防止機能導入部128は、既存データ重複排除テーブル134の、選択されている組み合わせの終点世代1344に、当該組み合わせの世代数を格納する(S619)。その後はS620に進む。
次に重複防止機能導入部128は、全世代のCoWテーブル131から全ての上記組み合わせを選択したか否かを判断する(S620)。選択済でない場合は(S620:NO)未選択の組み合わせについてS617からの処理を行うべく、S616に戻る。選択済である場合は(S620:YES)S621に進む。
以上の処理により、既存のP−VOL22及びD−VOL23の状態が反映された既存データ重複排除テーブル134が生成される。
次に重複防止機能導入部128は、CoWテーブル131のD−VOL23のブロックアドレス1341を、重複を排除した状態に設定する。この処理について、以下図6Bとともに説明する。
まず重複防止機能導入部128は、差分データ管理テーブル133から、D−VOL23のブロックアドレスを2つ選択し(以下、選択したブロックアドレスを、夫々、第1ブロックアドレス、第2ブロックアドレスと称する。)、両者のハッシュ値を照合する(S621)。照合の結果、両者のハッシュ値が一致する場合には(S621:YES)S622に進み、両者のハッシュ値が一致しない場合には(S621:NO)S624に進む。
S622において、重複防止機能導入部128は、既存データ重複排除テーブル134の、第2のブロックアドレスに対応づけられている、P−VOL22のブロックアドレス1342、始点世代1343、及び終点世代1344を取得する。そして重複防止機能導入部128は、取得した始点世代1343から終点世代1344までの各CoWテーブル131について、S622で取得したP−VOL22のブロックアドレスに対応づけられているD−VOL23のブロックアドレスを第2のブロックアドレスに置換する(S623)。これにより複数のP−VOL22のブロックアドレスがD−VOL23の所定のブロックアドレスに格納されている一の差分データに対応づけられることになる。S623の後はS624に進む。
S624において、重複防止機能導入部128は、差分データ管理テーブル133の全てのD−VOL23のブロックアドレスの組み合わせについてハッシュ値の比較が済んでいるか否かを判断する。済んでいなければ(S624:NO)S621に戻って他の組み合わせについて照合を行う。済んでいれば(S624:YES)処理は終了する。
尚、S621におけるハッシュ値の照合は、例えば既存データ重複排除テーブル134に比較処理済か否かを示すフラグを設け、毎回の比較に先立ち当該フラグから比較済か否かを判断し、比較済である場合はハッシュ値の比較の対象から除外するようにしてもよい。このようにすることで、重複してハッシュ値が比較されなくなり、処理の高速化を図ることができる。
以上によれば、運用中のP−VOL22の状態に対応したCoWテーブル131、ハッシュ値テーブル132、及び差分データ管理テーブル133を生成することができ、既存のシステムを、前述したD−VOL23に差分データが重複して格納されるのを防ぐ図4のフローチャートに示した運用形態にスムーズに移行させることができる。
尚、以上の実施形態の説明は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれることは勿論である。
例えば、以上ではCoWテーブル131がブロックアドレス単位で差分データを管理しブロック単位で重複有無を判断する場合について説明したが、ファイル単位、ファイルを一定サイズのデータに分割したチャンク単位等、他の単位量(固定サイズ)ごとに重複有無を判断するようにしてもよい。
またデータが同一か否かの判断を、ハッシュ値を比較することにより行っているが、ハッシュ値を用いずにデータそのものを比較して行ってもよいし、他の特徴量に基づき判断するようにしてもよい。
またデータセンタ等では多数のD−VOL23が運用されているが、このように複数のD−VOL23が存在する場合には、D−VOL23ごとに前述の重複排除機能を適用するか否かをユーザが指定できるようにしてもよい。
図7にそのような指定を行う際にユーザに提示される重複排除機能設定画面700の一例を示す。例えば同図に表示されているD−VOL23に重複排除機能を適用する場合には、重複排除指示のチェックボックス713をチェックした後、OKボタン714をクリックする。
このようにすれば、例えば高速なレスポンスが要求されるD−VOL23については重複排除機能を適用しないようにするなど、D−VOL23の使用状況等に応じて柔軟な運用が可能となる。
情報処理システム1のハードウエアを示す図である。 サーバ装置10、クライアント装置30、管理装置40として利用可能なコンピュータのハードウエア構成の一例を示す図である。 サーバ装置10の主な機能を示す図である。 CoWテーブル131の一例である。 ハッシュ値テーブル132の一例である。 差分データ管理テーブル133の一例である。 既存データ重複排除テーブル134の一例である。 スナップショットの取得に際し行われる処理を説明するフローチャートである。 D−VOL23から差分データを削除する際に行われる処理を説明するフローチャートである。 既存のストレージシステムに、前述したD−VOL23に差分データが重複して格納されるのを防ぐ仕組みを導入する際の手順を説明するフローチャートである。 既存のストレージシステムに、前述したD−VOL23に差分データが重複して格納されるのを防ぐ仕組みを導入する際の手順を説明するフローチャートである。 重複排除機能設定画面700の一例である。
符号の説明
1 情報処理システム
5 ストレージシステム
10 サーバ装置
20 ストレージ装置
22 P−VOL
23 D−VOL
30 クライアント装置
40 管理装置
121 I/O処理部
122 スナップショット処理部
120 差分データ管理部
123 差分重複管理部
124 差分退避管理部
125 ハッシュ値生成部
126 ディスク制御部
127 差分データ削除部
128 重複防止機能導入部
131 CoWテーブル
132 ハッシュ値テーブル
133 差分データ管理テーブル
134 重複排除テーブル

Claims (11)

  1. 外部装置からの要求に応じて第1の論理ボリュームであるP−VOLへのデータI/O処理を行うI/O処理部と、
    ある時点における前記P−VOLの状態であるスナップショットを再現すべく、前記P−VOLのデータが更新されることにより生じた差分データを第2の論理ボリュームであるD−VOLに格納し、前記P−VOLの第1の記憶領域を特定する第1のアドレスに対応づけて、当該第1のアドレスについて取得した前記差分データが格納される前記D−VOLの第2の記憶領域を特定する第2のアドレスが登録されるスナップショット管理テーブルを管理するスナップショット処理部と、
    前記P−VOLのデータが更新された場合に、当該更新により生じた前記差分データについて前記D−VOLの前記第2のアドレスの前記第2の記憶領域に格納されるべきデータである対象データと同一のデータが、前記D−VOLの記憶領域に格納されているか否かを判断し、
    格納されていない場合には、前記D−VOLの未使用の前記第2の記憶領域に前記対象データを記憶するとともに、前記スナップショット管理テーブルに、当該対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、当該対象データを格納した前記第2の記憶領域を特定する前記第2のアドレスを登録し、
    格納されている場合には、当該対象データを前記D−VOLに格納せずに、前記スナップショット管理テーブルに、当該対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、当該対象データと同一のデータが格納されている前記第2の記憶領域を特定する前記第2のアドレスを登録する差分データ管理部と
    を備え、
    前記差分データ管理部は、
    前記対象データと同一のデータが前記D−VOLの前記第2のアドレスで特定される前記第2の記憶領域に格納されているか否かの前記判断を、前記対象データに対応する、前記第1の記憶領域に格納されているデータについて求めた第1のハッシュ値と、前記第2の記憶領域に格納されているデータについて求めた第2のハッシュ値とを比較することにより行い、
    前記第1のハッシュ値を、前記P−VOLへのデータの書き込みがなされるタイミングで計算して保持しておく
    ことを特徴とするストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記差分データ管理部は、
    前記第2のアドレスに対応づけられている、前記P−VOLの前記第1のアドレスの数を管理し、
    スナップショットの削除要求があった場合に、前記数に基づき、前記第2のアドレスに対応づけられている前記第1のアドレスが存在しないことを確認した場合にのみ、前記D−VOLから前記差分データを削除すること
    を特徴とするストレージシステム。
  3. 請求項1に記載のストレージシステムであって、
    前記差分データ管理部は、
    前記差分データについて前記第2のハッシュ値を保持し、
    前記第2のアドレスに対応づけられている前記第1のアドレスの数を管理し、
    スナップショットの削除要求があった場合に、前記数に基づき、前記第2のアドレスに対応づけられている前記第1のアドレスが存在しないと判断した場合、前記差分データを前記D−VOLから削除するとともに当該差分データについて保持している前記第2のハッシュ値を削除する
    ことを特徴とするストレージシステム。
  4. 請求項2または3のいずれか一項に記載のストレージシステムであって、
    前記差分データ管理部は、
    前記P−VOLのデータが更新され、当該更新により生じた前記差分データについて前記D−VOLの前記第2のアドレスの前記第2の記憶領域に格納されるべきデータである対象データと同一のデータが、前記他の第2のアドレスで特定される前記第2の記憶領域に既に格納されていると判断した場合に前記数をインクリメントし、
    前記P−VOLの一つがスナップショットの削除により前記差分データの利用を停止した場合に前記数をデクリメントし、
    前記数が所定の下限値となった場合に、前記第2のアドレスに対応づけられている前記第1のアドレスが存在しないと判断すること
    を特徴とするストレージシステム。
  5. 請求項4に記載のストレージシステムであって、
    前記差分データ管理部は、前記差分データが削除された前記第2のアドレスの前記第2の記憶領域を前記対象データの格納先として再利用することを特徴とするストレージシステム。
  6. 請求項1に記載のストレージシステムであって、
    前記スナップショット処理部は、前記スナップショットの世代別に前記スナップショット管理テーブルを管理することを特徴とするストレージシステム。
  7. 外部装置からの要求に応じて第1の論理ボリュームであるP−VOLへのデータI/O処理を行うI/O処理部と、
    ある時点における前記P−VOLの状態であるスナップショットを再現すべく、前記P−VOLのデータが更新されることにより生じた差分データを第2の論理ボリュームであるD−VOLに格納し、前記P−VOLの第1の記憶領域を特定する第1のアドレスに対応づけて、当該第1のアドレスについて取得した前記差分データが格納される前記D−VOLの第2の記憶領域を特定する第2のアドレスが登録されるスナップショット管理テーブルを管理するスナップショット処理部と、
    を備えるストレージシステムの運用方法であって、
    前記ストレージシステムが、
    前記P−VOLへのデータの書き込みがなされるタイミングで、書き込まれる前記データの第1のハッシュ値を計算して保持しておくステップと、
    前記P−VOLのデータが更新された場合に、当該更新により生じた前記差分データについて前記D−VOLの前記第2のアドレスの前記第2の記憶領域に格納されるべきデータである対象データと同一のデータが、前記D−VOLの記憶領域に格納されているか否かを、前記対象データに対応する、前記第1の記憶領域に格納されているデータについて求めた前記第1のハッシュ値と、前記第2の記憶領域に格納されているデータについて求めた第2のハッシュ値とを比較することにより判断するステップと、
    前記対象データと同一のデータが前記D−VOLの前記第2の記憶領域に格納されていないと判断した場合には、前記D−VOLの未使用の前記第2の記憶領域に前記対象データを記憶するとともに、前記スナップショット管理テーブルに、当該対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、当該対象データを格納した前記第2の記憶領域を特定する前記第2のアドレスを登録するステップと、
    前記対象データと同一のデータが前記D−VOLの前記第2の記憶領域に既に格納されていると判断した場合には、前記対象データを前記D−VOLに格納せずに、前記スナップショット管理テーブルに、前記対象データが格納されている前記第1の記憶領域の前記第1のアドレスに対応づけて、前記対象データと同一のデータが格納されている前記第2の記憶領域を特定する前記第2のアドレスを登録するステップと
    を実行することを特徴とするストレージシステムの運用方法。
  8. 請求項7に記載のストレージシステムの運用方法であって、
    前記ストレージシステムが、
    前記対象データと同一のデータが前記D−VOLの前記第2の記憶領域に既に格納されていると判断した場合に、更に前記第2のアドレスに対応づけられる、前記P−VOLの前記第1のアドレスの数をインクリメントして記録し、スナップショットの削除要求があった場合に、前記記録した数に基づき、前記第2のアドレスに対応づけられている前記第1のアドレスが存在しないことを確認した場合にのみ、前記D−VOLから前記差分データを削除するステップ
    を更に実行することを特徴とするストレージシステムの運用方法。
  9. 請求項に記載のストレージシステムの運用方法であって、
    前記ストレージシステムが
    記P−VOLの一つがスナップショットの削除により前記差分データの利用を停止した場合に前記数をデクリメントするステップと、
    前記数が所定の下限値となった場合に、前記第2のアドレスに対応づけられている前記第1のアドレスが存在しないと判断するステップと
    を更に実行することを特徴とするストレージシステムの運用方法。
  10. 請求項に記載のストレージシステムの運用方法であって、
    前記ストレージシステムが、前記差分データが削除された前記第2のアドレスの前記第2の記憶領域を前記対象データの格納先として再利用するステップを更に実行することを特徴とするストレージシステムの運用方法。
  11. 請求項7に記載のストレージシステムの運用方法であって、
    前記スナップショット処理部により管理される前記スナップショット管理テーブルは、前記スナップショットの各世代に対応する一つ以上のテーブルにより構成されることを特徴とするストレージシステムの運用方法。
JP2008236980A 2008-09-16 2008-09-16 ストレージシステム、及びストレージシステムの運用方法 Expired - Fee Related JP5313600B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008236980A JP5313600B2 (ja) 2008-09-16 2008-09-16 ストレージシステム、及びストレージシステムの運用方法
US12/289,134 US8332600B2 (en) 2008-09-16 2008-10-21 Storage system and method for operating storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008236980A JP5313600B2 (ja) 2008-09-16 2008-09-16 ストレージシステム、及びストレージシステムの運用方法

Publications (2)

Publication Number Publication Date
JP2010072746A JP2010072746A (ja) 2010-04-02
JP5313600B2 true JP5313600B2 (ja) 2013-10-09

Family

ID=42008259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008236980A Expired - Fee Related JP5313600B2 (ja) 2008-09-16 2008-09-16 ストレージシステム、及びストレージシステムの運用方法

Country Status (2)

Country Link
US (1) US8332600B2 (ja)
JP (1) JP5313600B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211516A (ja) * 2009-03-10 2010-09-24 Toshiba Corp 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
US9141289B2 (en) * 2010-03-30 2015-09-22 Os Nexus, Inc. Intelligent data storage utilizing one or more records
US9311482B2 (en) * 2010-11-01 2016-04-12 CounterTack, Inc. Inoculator and antibody for computer security
JP2013543198A (ja) * 2010-11-16 2013-11-28 アクティフィオ インコーポレイテッド データ管理仮想化のためのシステムおよび方法
WO2012101983A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 ストレージシステム
JP5657801B2 (ja) * 2011-05-31 2015-01-21 株式会社日立製作所 ストレージシステムおよび記憶制御方法
US9009437B1 (en) * 2011-06-20 2015-04-14 Emc Corporation Techniques for shared data storage provisioning with thin devices
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
WO2016121024A1 (ja) * 2015-01-28 2016-08-04 富士通株式会社 通信方法、プログラム及び通信装置
CN106484453B (zh) * 2015-09-02 2021-04-20 中兴通讯股份有限公司 一种实现系统升级的方法及装置
JP6579149B2 (ja) 2017-04-20 2019-09-25 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
CN107391312B (zh) * 2017-07-31 2020-11-24 苏州浪潮智能科技有限公司 数据云备份方法及系统
US11579892B2 (en) 2019-05-29 2023-02-14 Lg Electronics Inc. Digital device for performing booting process and control method therefor
KR20230057210A (ko) 2021-10-21 2023-04-28 주식회사 엠엠티 배기가스 중에 포함된 질소산화물의 제거 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP4846156B2 (ja) * 2000-02-18 2011-12-28 イーエムシー コーポレイション 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法
JP2003280964A (ja) * 2002-03-22 2003-10-03 Hitachi Ltd スナップショット取得方法、ストレージシステム及びディスク装置
JP4292882B2 (ja) * 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US7111136B2 (en) * 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
JP2006209636A (ja) * 2005-01-31 2006-08-10 Hitachi Ltd スナップショット維持方法
JP4749112B2 (ja) * 2005-10-07 2011-08-17 株式会社日立製作所 記憶制御システム及び方法
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
JP2007200182A (ja) * 2006-01-30 2007-08-09 Hitachi Ltd ストレージ装置、及びストレージシステム
US7457934B2 (en) * 2006-03-22 2008-11-25 Hitachi, Ltd. Method and apparatus for reducing the amount of data in a storage system
US20070245107A1 (en) * 2006-04-14 2007-10-18 Hitachi, Ltd. System and method for processing a plurality kinds of event markers of a continuous data protection
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication

Also Published As

Publication number Publication date
US20100070724A1 (en) 2010-03-18
JP2010072746A (ja) 2010-04-02
US8332600B2 (en) 2012-12-11

Similar Documents

Publication Publication Date Title
JP5313600B2 (ja) ストレージシステム、及びストレージシステムの運用方法
US11132338B1 (en) Sharing services between deduplication systems
US9792306B1 (en) Data transfer between dissimilar deduplication systems
EP3035197B1 (en) File migration method and apparatus and storage device
JP5434705B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US9396198B2 (en) Computer system, file management method and metadata server
JP6420253B2 (ja) 互換性を保つオフロード・トークン・サイズの拡大
US7827368B2 (en) Snapshot format conversion method and apparatus
US10983867B1 (en) Fingerprint change during data operations
US8700570B1 (en) Online storage migration of replicated storage arrays
JP5650982B2 (ja) ファイルの重複を排除する装置及び方法
KR20090117919A (ko) 플래시 드라이브 수명 연장
JP6350090B2 (ja) ストレージ制御装置、コピー制御プログラム、およびコピー制御方法
JP5464269B2 (ja) ファイルストレージ装置、データ格納方法およびデータ格納プログラム
JP4917102B2 (ja) ローカル・ストレージおよびリモート・ストレージの混合環境におけるデータ・セット・バージョンのカウントのための方法、プログラム、およびシステム
US8848918B2 (en) Method and system for deleting data
JP2004164318A (ja) バックアップデータの世代管理方法およびこの方法に用いる記憶制御装置
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
JP2009064055A (ja) 計算機システム及びセキュリティ管理方法
US11163748B1 (en) Fingerprint backward compatibility in deduplication backup systems
US8516212B2 (en) Data processing apparatus, computer program therefor, and data processing method
JP5751041B2 (ja) ストレージ装置、ストレージ方法およびプログラム
JP2007172021A (ja) ファイル操作装置、ファイル操作方法、およびプログラム
US20240004575A1 (en) Storage system and data management method of storage system
US20160357470A1 (en) Computer readable medium, information processing apparatus, and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130704

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees