JP2012505461A - ストレージシステムおよびその制御方法 - Google Patents

ストレージシステムおよびその制御方法 Download PDF

Info

Publication number
JP2012505461A
JP2012505461A JP2011530651A JP2011530651A JP2012505461A JP 2012505461 A JP2012505461 A JP 2012505461A JP 2011530651 A JP2011530651 A JP 2011530651A JP 2011530651 A JP2011530651 A JP 2011530651A JP 2012505461 A JP2012505461 A JP 2012505461A
Authority
JP
Japan
Prior art keywords
data
differential
difference
backward
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.)
Granted
Application number
JP2011530651A
Other languages
English (en)
Other versions
JP5244979B2 (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
Publication of JP2012505461A publication Critical patent/JP2012505461A/ja
Application granted granted Critical
Publication of JP5244979B2 publication Critical patent/JP5244979B2/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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems

Landscapes

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

Abstract

本発明は、プロダクションLUへのアクセス時の性能が低下するのを防止することを目的とする。
スナップショット処理部1154は、各世代の論理ユニットのデータを更新するときに、この更新に伴う更新データを前方差分データ221としてベースボリューム222にライトし、ベースボリューム222に更新データがライトされる前に存在した旧データを後方差分データ223として後方差分データプール32に退避し、各世代の論理ユニットのデータを更新したときには、プロダクションLUおよびこのプロダクションLUとともに前方差分グループ210を構成するスナップショット212の前方差分データ221を削除する。これにより、前方差分方式によるスナップショットを適用したプロダクションLUについて、ホストコマンド実行に必要なメタデータを削減することができる。

Description

本発明は、データのバックアップに差分スナップショットを用いて、データ保護を効率的に行う技術に関する。
ストレージシステムや、ストレージコントローラ、オペレーティングシステムのファイルシステムにおいては、ある指定された時点における静止状態のボリュームコピー(スナップショット)を作成し、データのバックアップ等のために用いるスナップショット技術が知られている。
また、最新データが存在する論理ユニット(LU)であるプロダクションLUと、スナップショットとの間に差異があるときに、差異がある領域のデータのみをコピーすることにより、LU全体の物理コピーを作成する方式や、更新データを時系列に全て記録するジャーナル方式よりも少ない容量でスナップショットを取得する差分スナップショット技術が知られている。
差分スナップショット技術として、スナップショット取得以降にLUが更新されるときに、更新前のデータ(後方差分データ)を他の領域にコピー(Copy-on-Write)することにより、スナップショットのデータを保持する、Copy-on-Write方式(米国特許5,649,152号公報)と、LUが更新されるときに、元のデータを上書きせず、更新データ(前方差分データ)を他の領域にライトすることによりスナップショットのデータを保持する、Redirect-on-Write方式(米国特許5,819,292号公報、米国特許7,174,352号公報)が知られている。
米国特許5,649,152号公報 米国特許5,819,292号公報 米国特許7,174,352号公報
差分スナップショット技術をストレージシステムなどに適用するに際して、スナップショットの取得によって、プロダクションLU(オリジナルデータが存在するLU)へのアクセス時の性能が低下しないことが望ましいが、既知の差分スナップショット技術の適用によって、性能が低下するケースが存在する。
例えば、Copy-on-Write方式では、プロダクションLU内のあるアドレスに対して、スナップショット取得後に最初のライトが行われたときに、通常のライト処理に加えて、Copy-on-Write処理に伴う、ドライブからの後方差分データのリード、および、他の領域へのライト処理が行われる。これによりスループットが低下し、ライトバックキャッシュに空きが無いときはホストへの応答性能もまた低下する。
また、Redirect-on-Write方式では、プロダクションLUに対して、少なくともスナップショット取得以降に更新されたデータについては、ホストコマンドに用いるボリューム内アドレス(ホストLBA)と、実際にデータが存在するアドレス(内部アドレス)とを関連付けるメタデータを持つ必要がある。また、プロダクションLUへのリード/ライト時にはメタデータを参照する必要がある。メタデータの総量が、コントローラのMPUから高速アクセスが可能なメモリ上に格納しきれなくなったケースでは、プロダクションLUへのリード/ライト時に、ドライブ上に格納されたメタデータを読み出さなければならないことがあり、これによりスループット・応答性能ともに低下する。
そこで、本発明は、スナップショットの取得によって、オリジナルデータが存在する論理ユニットへのアクセス時の性能が低下するのを防止することができるストレージシステムおよびその制御方法を提供することを目的とする。
前記目的を達成するために、本発明は、データを格納する記憶装置と、前記記憶装置をアクセス対象とするコントローラとを備え、前記コントローラは、前記記憶装置に格納されたデータのうち論理ユニットのデータを複数の世代のスナップショットに関連づけて管理するとともに、前記複数の世代の論理ユニットのデータを、前記各世代共通の共通データと前記各世代の論理ユニット間で相違がある差分データとして管理し、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、当該更新に伴う更新データを前方差分データ格納領域にライトする前方差分方式または更新前のデータを旧データとして後方差分データ格納領域にコピーする後方差分方式を選択することを特徴とする。
本発明によれば、スナップショットの取得によって、オリジナルデータが存在する論理ユニットへのアクセス時の性能が低下するのを防止することができる。
ストレージシステムの構成図。 スナップショット機能における差分管理方式の概要の説明図。 ドライブ部に含まれるデータの論理的内訳を示す図。 プロダクションLUのスナップショットの関する状態遷移図。 前方差分方式で取得したスナップショットLUの状態遷移図。 LU構成テーブルの構成図。 プール構成テーブルの構成図。 図9より図12におけるアドレス変換情報の例を説明するための概略図。 アドレス変換テーブルの構成図。 インデックス領域の構成説明図。 (a)差分リスト領域の構成図、(b)差分リストの構成図。 (a)エクステント情報領域の構成図、(b)エクステントリストテーブルの構成図。 (a)後方差分データ管理領域の構成図、(b)差分ブロック情報の構成図。 リードコマンド実行時のドライブ部からのリード処理のフローチャート。 ライトコマンド実行時のライト方式の選択処理のフローチャート。 前方差分方式におけるライトコマンド実行時のドライブ部へのライト処理のフローチャート。 後方差分方式で、プロダクションLUに対するライトコマンド実行時のドライブ部へのライト処理のフローチャート。 後方差分方式で、スナップショットLUに対するライトコマンド実行時のドライブ部へのライト処理のフローチャート。 スナップショット取得処理のフローチャート。 差分変換処理を実行するLUの順序を決定するフローチャート。 LU内差分データ変換処理のフローチャート。
11 ストレージシステム
12 ホスト
13 管理端末
14 SAN
110 ストレージコントローラ
111 MPU
112 管理端末I/F部
113 ホストI/F部
114 ドライブI/F部
115 メモリ
116 ドライブ部
21 仮想ボリューム
210 前方差分グループ
213 後方差分グループ
22 実データ
221 前方差分データ
222 ベースボリューム
223 後方差分データ
31 前方差分データプール
32 後方差分データプール
33 構成情報領域
91 前方差分データ管理領域
911 インデックス領域
912 差分リスト領域
913 エクステント情報領域
92 後方差分データ管理領域
以下に図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の実施の形態のストレージシステムの構成を示す図である。ストレージシステム11は、記憶領域を含み、SAN(Storage Area Network)14に接続されたホスト12からのコマンドによって、記憶領域のデータ(ユーザデータ)へのリード/ライトを実行する。ストレージシステム11とホストとの接続形態は、ある1台のホストに直接接続される形態でも良いし、また、ホストに内蔵される形態でも良い。また、ストレージシステム11は、管理端末13からのコマンドによって、記憶領域内の論理ユニット(LU)の構成等のパラメータを変更する。
ストレージコントローラ110は、ストレージシステム11を構成し、ホスト12から受領したコマンドを解釈し、ドライブ部116に含まれる記憶領域へのリード/ライトを実行する。ストレージコントローラ110は、MPU(Micro Processing Unit)111によって制御され、ホストI/F(Interface)部113によってSAN14と、ドライブI/F部114によってドライブ部116と接続される。また、管理端末I/F112によって、管理端末13と接続される。メモリ115は、MPU111からの高速なアクセスが可能であり、MPU111で実行されるストレージ制御プログラム1151、ストレージシステム11の各種のパラメータを含む構成情報1156、ユーザデータを一時的に記憶するキャッシュ領域1159を含む。
ストレージ制御プログラム1151を構成するプログラムモジュールについて説明する。構成管理部1152は、管理端末13からのコマンドや、他のプログラムモジュールからの指示等によって、構成情報1156の更新及び参照を行う。入出力処理部1153は、ホスト12からのコマンドを解釈し、リード/ライトを実行する記憶領域を決定し、ドライブ部116とキャッシュ領域1159の間、及び、キャッシュ領域1159とホスト12の間のデータ転送を実行する。スナップショット処理部1154は、スナップショットの取得(後述)および削除に関する処理を実行する。差分変換処理部1155は、スナップショットに関連する、差分変換処理(後述)を実行する。
構成情報1156に含まれる、LU構成テーブル1157は、LUのリストおよびそれらの各種属性情報を含む。プール構成テーブル1150は、スナップショットにおける差分データを格納するプールのリストおよびそれらの各種属性情報を含む。アドレス変換テーブル1158は、スナップショットの適用に必要な、ホストLBA(Logical Block Address)と内部アドレスとを関連付ける情報を含む。
ドライブ部116には、最終的な記憶媒体であるドライブ1161を1台ないし複数台含む。記憶装置としてのドライブ1161には、磁気記憶装置(ハードディスク)やフラッシュメモリ等があり、ドライブの識別子、及びドライブ内部のアドレスによって、記憶先を指定することができる。
図2は、本発明の実施の形態のスナップショット機能における差分管理方式の概要の説明図である。実データ22は、ドライブ部116に含まれる物理的な記憶領域(複数のブロックで構成される記憶領域)に格納される実際のデータである。これに対して、仮想ボリューム21は、ドライブ部116の記憶領域上に物理的な連続領域を持たないLUであって、実データ22に含まれる小ブロックの組み合わせへのマッピングによって成り立っているLUを表す。スナップショット機能の使用時には、プロダクションLU、および、そのスナップショットとしては、仮想ボリューム21が用いられる。
図2の例では、オリジナルデータが存在するオリジナル論理ユニットとしてのプロダクションLU211に対して、取得時刻が新しい順(スナップショットの世代順)に、スナップショットA212、スナップショットB214、スナップショットC215が存在する。このうち、プロダクションLU211とスナップショットA212は、前方差分グループ210に属する。これらLUのホストLBAは、ベースボリューム222と、それよりも新しい部分のデータ群を示す前方差分データ221のいずれかへマッピングされる。
また、スナップショットB214とスナップショットC215は、後方差分グループ213に含まれる。これらLUのホストLBAは、ベースボリューム222と、それよりも古い部分のデータ群を示す後方差分データ223のいずれかへマッピングされる。すなわち、プロダクションLU、および、そのスナップショットは、取得時刻がより新しい前方差分グループ210と、より早い取得時効の後方差分グループ213のいずれかに含まれる。
この際、前方差分グレープ210に属するLUと後方差分グループ213に属するLUを各世代の論理ユニットとした場合、各世代の論理ユニットは、各世代で共通の論理ユニットであるベースラインボリューム222と、前方差分方式で管理するための前方差分データ221または後方差分方式で管理するための後方差分データ223である差分データとの組み合わせで構成される。
図3は、ドライブ部116に含まれるデータの論理的内訳を示している。ベースボリューム222は、各世代共通の共通データを格納するボリュームとしてそれぞれがプロダクションLUに対応しており、プロダクションLUと同数存在する。前方差分データプール31は、前方差分データ221を格納する領域である。後方差分データプール32は、後方差分データ223を格納する領域である。前方差分データプール31、及び、後方差分データプール32は、1個を複数のプロダクションLUおよびそのスナップショットで共有することもできる。構成情報領域33は、構成情報1156をドライブで保管するための領域である。
図4は、プロダクションLUのスナップショットに関する状態遷移を示す。プロダクションLUのスナップショットに関する状態遷移は、MPU111の処理状態を示すものであり、プロダクションLUの初期状態(LU作成時の状態)は、「スナップショット適用なし41」である。
MPU111は、管理端末13からの指示等によりスナップショットの取得を行うが、このとき、プロダクションLUを前方差分方式(従来技術のRedirect-on-Write方式に分類される)で管理するか、または後方差分方式(従来技術のCopy-on-Write方式に分類される)で管理するかを選択可能とすることもできる。前方差分方式の選択時には、プロダクションLUの性能低下が全般的に少なくできるが、比較的ライトコマンドが少なく、特にリードコマンドの性能に最適化したいLUは、後方差分方式を選択することが考えられる。
前方差分方式によるスナップショット取得を選択した場合、MPU111は、「スナップショット適用あり(前方)42」に遷移する。この状態では、前方差分データ221をベースボリューム222にコピーすることで前方差分データ221の量を削減する差分変換処理を実行することができ、その実行中には、「差分変換処理中43」に遷移し、実行完了時には状態42に戻る。42、43の状態において、スナップショットをさらに取得することができる。また、全てのスナップショットを削除することにより、41に遷移する。
後方差分方式によるスナップショット取得を選択した場合、MPU111は、「スナップショット適用あり(後方)44」に遷移し、全てのスナップショットを削除することにより、状態41に遷移する。
図5は、前方差分方式で取得したスナップショットLUの状態遷移を示す。MPU111は、スナップショットLUの初期状態では、「存在せず51」として処理するが、あるプロダクションLUにおいて前方差分方式でスナップショットが取得されたときには、「前方差分方式スナップショット52」状態へ遷移する。この後、MPU111は、プロダクションLUに対して差分変換処理が実行されると、当該スナップショットの前方差分データ221についても差分変換処理が開始され、「差分変換処理中53」に遷移する。
この状態において当該スナップショットへのライトが行われた場合は、MPU111は、前方差分データ221としてライトデータを記録する。さらに、差分変換完了によって、「後方差分方式スナップショット54」に遷移し、この状態において当該スナップショットへのライトを実行した場合は、後方差分データ223としてライトデータを記録する。当該スナップショットが削除された場合には、「存在せず51」へ遷移する。
図6は、LU構成テーブル1157の一例を示す。LU構成テーブル1157の属性について説明する。LUN61は、LUの識別番号を示す。種別62は、プロダクションLUか、またはスナップショットLUかの別を示す。スナップショットLUは、必ず元となるプロダクションLUが存在しており、対応するプロダクションLU66によって、元となるプロダクションLUと関連付けられている。
容量63は、ホスト12から使用可能な容量を示す。スナップショットLUは、対応するプロダクションLUと必ず容量が一致するため、値を持たない。
ベースボリューム構成64は、プロダクションLUに対応するベースボリューム222の構成(含まれるドライブ、アドレス範囲、RAIDレベル)を示す。スナップショットLUは、対応するプロダクションLUを備えるベースボリューム222を共有するため、値を持たない。
世代番号65は、同一のプロダクションLUから取得されたスナップショットLUの識別番号であり、取得時刻が古い方が小さい値を持つ。差分管理方式67は、LUが、前方差分方式、後方差分方式のいずれによって差分管理されているかを示す。
プールID68は、前方差分データプール31、後方差分データプール32のそれぞれについて、どのデータプールを使用するかを示す。同一のプロダクションLUに属するプロダクションLU群は、同一データプールを共有するため、値を持たない。
差分変換ポリシ69は、プロダクションLUに対して、差分変換処理を実行する契機を定める。アドレス変換テーブル1158に含まれる、前方差分データ管理領域91(図9、後述)のデータ量を、メモリ上に格納可能な量以下に抑え、プロダクションLUアクセス時の構成情報領域33へのアクセスを不要とすることで、プロダクションLUの性能低下を抑えることができる。このため、差分変換処理は、前方差分データ管理領域91のデータ量が、メモリ容量から決定する閾値を超えた契機で実行するのが、最適である。閾値を決定するときに、差分変換処理に要する時間を考慮して、メモリ容量よりもある程度低めに閾値を設定するといった考慮も含める。
また、差分変換処理は、前方差分データ管理領域91のデータ量が、メモリ容量から決定する閾値を超えるよりも早いタイミングで実行したり、あるいは、MPU111からドライブ部116へのリードアクセスとライトアクセスとの比を基に実行したりすることもできる。
前方差分データ管理領域91のデータ量の計測は、同領域からのメモリ確保・解放に伴ってメモリ使用量を計測しても良いし、プール構成テーブル1150に含まれ、使用中の差分データ量を表す差分量カウンタ74(図7)の、ストレージシステム11全体の前方差分データプールの総計から、前方差分データ管理領域91のデータ量を算出することもできる。
差分変換ポリシ69として、その他には、定期実行という選択肢も考えられる。これは、ストレージシステム11が使用される業務の性質上、負荷が少ない時間帯に、差分変換処理を実行したい、といったケースで有効である。
また、差分変換処理は、プロダクションLUの差分管理方式が前方であるときのみ実行できるため、差分管理方式が後方であるプロダクションLUに差分変換ポリシ69を設定しても無効である。
差分変換ポリシ69に設定した契機以外に、管理端末13を介してユーザがコマンドを与えることにより差分変換処理を実行するという契機も考えられる。
図7は、プール構成テーブル1150の一例を示す。プール構成テーブル1150は、前方差分データプール31、及び、後方差分データプール32のリストを含む。以下、その属性について説明する。
プールID71は、プールの識別番号を示し、LU構成テーブルのプールID68に対応する。ボリューム構成72は、ベースボリューム構成64と同様に、プールの構成(含まれるドライブ、アドレス範囲、RAIDレベル)を示す。
差分管理方式73は、各プールが、前方差分データプール31、または、後方差分データプール32、のいずれであるかを示す。差分量カウンタ74は、プール内で、いずれかのLUにより使用中の領域の総容量を示す。
図8より図12までを用いて、前方差分方式スナップショットを実現するアドレス変換情報の一実施形態を説明する。図8は、図9より図12までに示すアドレス変換情報の一例について、その例を説明するための概略図である。
LUN=0であるプロダクションLU81は、ベースボリューム82と、前方差分データプール83を実データとして構成されている。プロダクションLU81のうち、ホストLBAが0100h、0380h、0400h、1520hで開始する部分領域については、実データが前方差分データプール83に存在し、それ以外の領域については、ベースボリューム82に存在する。
図9は、アドレス変換テーブル1158の構成を示す。アドレス変換テーブル1158には、前方差分方式スナップショットに関するアドレス変換情報を持つ前方差分データ管理領域91と、後方差分方式スナップショットに関するアドレス変換情報を持つ後方差分データ管理領域92を含む。
前方差分データ管理領域91には、インデックス領域911、差分リスト領域912、エクステント情報領域913を含む。それぞれの役割については、図10〜図12を用いて説明する。
図10は、インデックス領域911の構成及び例を示す。インデックス領域の役割は、アドレス変換元となるホストLBAから、差分リスト領域912の対応するエントリを高速に検索する支援を行うことである。そのため、一般的に知られた効率の良い探索アルゴリズムを用いることが望ましい。本実施例では、B+Treeアルゴリズム(Organization and Maintenance of Large Ordered Indexes by R. Bayer and E. McCreight In: Acta Informatica, Vol. 1, Fasc. 3, 1972, pp. 173-189)を用いた例を示している。
差分インデックス100は、差分管理方式67が“前方”である各LUに対応して存在する、探索の出発点となる最上部の内部ノード101へのポインタである。
内部ノード101は、他の内部ノード101への複数のポインタ、および、各ポインタへの探索条件となるホストLBA範囲を持つ。内部ノード101は木構造に構成されており、探索対象となるホストLBAの範囲を狭めていくために用いる。内部ノード101が指すポインタは、差分リスト102を指すこともある。差分リスト102は、ある定められた数(本実施例では、図11の差分リスト2の例に示したように、4個)のエントリを持ち、内部ノード101に含まれるあるホストLBA範囲について、その範囲の差分エントリの数が差分リストが含むことができるエントリの数以下となることが、差分リストに記述できる数となることが、内部ノード101のポインタが差分リスト102を指す条件となる。
次に、LUN0のホストLBA0400hに対応する差分リスト102を探索する例を説明する。まず、LUN0の差分インデックス100Aより探索を開始し、内部ノード101Aを参照する。内部ノード101Aでは、4000hより小さいホストLBAは、内部ノード101Bを次の探索先として指している。0400hはこれに該当するため、次に、内部ノード101Bを探索する。内部ノード101Bでは、0050h以上で、2000hより小さいホストLBAは、差分リスト2 102Bを探索先として指している。0400hはこれに該当するため、差分リスト2 102Bが探索結果となる。
図11は、差分リスト領域の構成、及び、差分リストの例を示す。差分リスト領域912には、複数の差分リスト102が含まれている。差分リスト102は、差分データの生成/削除に応じて、入出力処理部1153やスナップショット処理部1154から確保・解放されるため、空き差分リストをリスト化したフリーリストに接続されて管理されている。フリーリスト用ポインタ1101は、フリーリストを構成するためのポインタである。内部ノード101も同様に、差分データの量に応じて動的に確保・解放されるため、フリーリスト等による管理を要する。
差分リスト102に含まれる属性を説明する。開始LBA1102は、差分データに対応するホストLBAの開始値を示す。Length1103は、差分データ長を示す。Extent ID1104は、開始LBA1102・Length1103によって表されたホストLBA範囲に対応する実データであるエクステント(後述)の識別番号を示す。Offset1105は、前記エクステント内で、前記実データが開始するオフセットアドレスを示す。
差分リスト2 102Bの例では、第1のエントリは、ホストLBA範囲0100h〜0179hに対応する実データが、Extent ID=1、Offset=0の実データであることを示している。
図12は、エクステント情報領域913の構成、及び、エクステントリストテーブル1201の例を示している。エクステントとは、前方差分データプール31に含まれる、任意のセクタ数のサイズを取ることができる可変長のデータブロックである。前方差分方式が適用されたLUにおいて生じた差分データは、エクステントとして前方差分データプール31に格納される。エクステントリストテーブル1201には、エクステント毎の属性を示す情報が含まれる。
また、前方差分データプール31のうち、エクステント未確保の領域は、フリーインデックス1202によって管理される。
エクステントリストテーブル1201に含まれる属性を説明する。Extent ID1203は、前方差分データプール31内におけるエクステントの識別番号を示し、差分リスト102のExtent ID1104と対応している。プール内開始LBA1204は、前方差分データプール31内において、当該エクステントの実データが開始するLBAを示す。Length1205は、当該エクステントのデータ長を示す。参照カウンタ1206は、当該エクステントを差分データとして含んでいるLUの数を示す。
図13は、後方差分データ管理領域92の構成を示す。後方差分方式スナップショットの実現方式の一例として、固定長の差分ブロックにより差分データを実現する方式を示す。差分ブロック管理テーブル1301は、ある同一のプロダクションLUに属し、差分管理方式67が“後方”であるLU群に対応して存在し、ホストLBAと、差分ブロック情報1302のリストとの対応関係を示す。差分ブロック情報1302のリストは、後方差分データが存在するLUについて、LUNと、プール内の差分ブロックとの対応関係を示す。プール内ブロックID1303は、プール内における差分ブロックの識別番号を示し、当該差分ブロックに差分データを持つLUのリストを、LUN1304が示す。リストポインタ1305は、差分ブロック情報1302のリストを構成するために必要なポインタである。
図9から図13に関して、アドレス変換テーブル1158が、メモリ115の許可された領域を上回るサイズであるときは、仮想記憶等の仕組みにより、構成情報領域33に全体が含まれるアドレス変換テーブル1158の一部をメモリ115に配置する方式を取ることが考えられる。
図14は、リードコマンド実行時のドライブ部116からのリード処理のフローチャートを示す。以下の処理は、MPU111によって実行される。
ステップS141において、リードコマンドの対象となるLUの差分管理方式による分岐を行う。
前方差分方式であった場合、ステップS142において、リードコマンドのホストLBAに基づいて、インデックス領域911に含まれるインデックスの探索を、対象LUの差分インデックス100を出発点として実行する。これによって、対象ホストLBAに対応するエクステントの存否、及び、存在するならば、そのExtent ID1203を求める。
後方差分方式であった場合、ステップS143において、リードコマンドのホストLBAに基づいて、後方差分データ管理領域92を探索し、対象ホストLBAに対応する差分ブロックの存否、及び、存在するならば、そのプール内ブロックID1303を求める。
ステップS144において、対象ホストLBAに対応する差分データ(エクステントまたは差分ブロック)の存否による分岐を行う。差分データが存在するならば、ステップS145、S146の差分データリードを実行する。
ステップS145において、前記差分データに対応する、差分データプール内のアドレス(ドライブ1161、及び、その内部のLBA)を、ステップS143またはS144で求めた差分データの情報に基づいて決定する。アドレスを決定するにあたっては、RAIDが適用されたボリュームであれば、RAID方式に基づいたアドレス変換もまた行われる。
ステップS146において、差分データプール内のドライブ1161にリードコマンドを発行し、ドライブ1161からキャッシュ領域1159へのデータ転送を実行する。
ステップS147において、対象ホストLBAの範囲に、差分データが含まれていない部分が存在するかどうかを判断する。存在する場合、ステップS148を実行する。また、ステップS144において、対象ホストLBAの範囲に差分データが含まれていないと判断された場合も、ステップS148を実行する。
ステップS148において、ベースボリューム222内のドライブ1161にリードコマンドを発行し、ドライブ1161からキャッシュ領域1159へのデータ転送を実行する。
以上のステップにより、リードコマンド実行時のドライブ部116からのリード処理を実行する。
図15から図18は、ライトコマンド実行時のドライブ部116へのライト処理のフローチャートを示す。図15は、ライトコマンド実行時のライト方式の選択処理のフローチャートを示す。ライト処理は、対象LUの差分管理方式および種別によって異なるため、Write処理1(対象LUが前方差分方式のとき。ステップS153)、Write処理2(対象LUが後方差分方式で、かつプロダクションLUのとき。ステップS154)、Write処理3(対象LUが後方差分方式で、かつスナップショットLUのとき。ステップS155)として図16から図18でそれぞれ説明する。以下の処理は、MPU111によって実行される。
後方差分方式においては、プロダクションLUに対しては、ライトデータがベースボリューム222に書き込まれるのに対して、スナップショットLUに対しては、ライトデータが後方差分データプール32に書き込まれるという方式の違いがある。
まず、ライト方式の選択処理を行うに際して、MPU111は、ステップS151において、差分管理方式による分岐を行い、さらに、差分管理方式が後方差分方式のときは、ステップS152において、LUの種別による分岐を行う。
図16は、前方差分方式におけるライトコマンド実行時のドライブ部116へのライト処理のフローチャートを示す。以下の処理は、MPU111によって実行される。
ステップS161において、リード処理におけるステップS142と同様に、対象ホストLBAに対応するエクステントの存否、及び、存在するならば、そのExtent ID1203を求める。
ステップS162において、ステップS161の結果に基づいて、対象ホストLBAに対応するエクステントが存在するならば、ステップS163へ、存在しないならば、ステップS167への分岐を行う。
ステップS163において、当該エクステントの参照カウンタ1206に基づいた分岐を行う。参照カウンタ=1のエクステントであれば、ライト対象のLU以外のLUと共有されていないため、ステップS164に進み、エクステントに対してライトデータを上書きする。対象ホストLBAの範囲に複数のエクステントが含まれているケースもあるが、そのうちの参照カウンタ=1である全てのエクステントに対して、ステップS164の処理を実行する。
ステップS165において、S163と同様に、当該エクステントの参照カウンタ1206に基づいた分岐を行う。参照カウンタ>1のエクステントは、ライト対象のLU以外のLUと共有されているため、エクステントに上書きをすると、エクステントを共有している他のLUのデータもまた変更されてしまう。これを防ぐために、ステップS166に進み、新たなエクステントを確保し、ライトデータを書き込む。
ステップS167において、対象ホストLBA範囲のうち、エクステントではなくベースボリューム222に実データが存在する範囲、すなわち、ステップS164、ステップS166のいずれにおいてもライトされていない範囲が存在するかどうかを判断する。存在するときは、ステップS168に進み、前期範囲に対応する新たなエクステントを確保し、ライトデータを書きこむ。
以上のステップにより、前方差分方式におけるライトコマンド実行時のドライブ部116へのライト処理を実行する。
図17は、後方差分方式で、プロダクションLUに対するライトコマンド実行時のドライブ部116へのライト処理のフローチャートを示す。以下の処理は、MPU111がスナップショット処理部1154を起動することによって実行される。
プロダクションLUへのライト時には、ベースボリューム222がライト先となるが、このとき、スナップショットLUの保存のため、更新前のデータが差分ブロックとして後方差分データプール32に退避されていなければならない。まだ退避されていないスナップショットLUのデータが存在すれば、退避処理を実行する必要がある。
このような観点により、MPU111は、ステップS171において、対象ホストLBAについて、全てのスナップショットLUが既に差分ブロックを持っているかどうか、すなわち、差分ブロック管理テーブル1301において、対象ホストLBAのいずれかの差分ブロック情報1302のLUNリスト1304に含まれているかどうかを判断する。全てのスナップショットLUが既に差分ブロックを持っていて、退避処理の必要が無ければ、ステップS174に進む。そうでなければ、退避処理を実行するため、ステップS172に進む。
S172において、新たに差分ブロック情報1302を作成し、対象ホストLBAのリストポインタに接続する。さらに前記差分ブロック情報のLUNリスト1304には、全てのスナップショットLUのLUNを含める。
S173において、ベースボリューム222にある対象ホストLBAの更新前のデータを、差分ブロックにコピーする。
S174において、ベースボリューム222の対象ホストLBAにライトデータを書き込む。
以上のステップにより、後方差分方式で、プロダクションLUに対するライトコマンド実行時のドライブ部116へのライト処理を実行する。
図18は、後方差分方式で、スナップショットLUに対するライトコマンド実行時のドライブ部116へのライト処理のフローチャートを示す。以下の処理は、MPU111がスナップショット処理部1154を起動することによって実行される。
スナップショットLUへのライト時には、後方差分データプール32がライト先になるが、差分ブロックが確保されていないか、または差分ブロックを他のスナップショットLUと共有しているケースでは、新規差分ブロックを確保し、更新前データのコピーを実行する必要がある。
このような観点により、MPU111は、ステップS181において、対象ホストLBAについて既に差分ブロックが存在するかどうか、かつ、その差分ブロックが当該スナップショットLUのみ参照しているかどうかを判断する。条件を満足した場合、新規差分ブロックの確保は不要であるため、ステップS184に進む。条件を満足しない場合、ステップS182に進む。
ステップS182において、新たに差分ブロック情報1302を作成し、対象ホストLBAのリストポインタに接続する。さらに前記差分ブロック情報のLUNリスト1304には、当該スナップショットLUのLUNのみを含め、既存の差分ブロック情報があれば当該スナップショットLUのLUNを削除する。
ステップS183において、ベースボリューム222または後方差分データプール32にある更新前のデータを、旧データとして前記差分ブロックにコピーする。次に、ステップS184において、ライトデータを差分ブロックに上書きする。
以上のステップにより、後方差分方式で、スナップショットLUに対するライトコマンド実行時のドライブ部116へのライト処理を実行する。
図19は、スナップショット取得処理のフローチャートを示す。以下の処理は、MPU111がスナップショット処理部1154を起動することによって実行される。先ず、MPU111は、ステップS191において、スナップショット取得の対象となるプロダクションLUの差分管理方式による分岐を行う。
前方差分方式であった場合、LUには個別に差分インデックス100、及び、内部ノード101、差分リスト102で構成されるインデックス情報が必要であるため、ステップS192において、プロダクションLUのインデックス情報を、新規のスナップショットLUのインデックス情報としてコピーを行う。
ステップS193において、プロダクションLUに含まれる全てのエクステントについて、参照カウンタ1206を加算する。参照カウンタ1206は、スナップショットLUを消去するときには、そのスナップショットLUに含まれる全てのエクステントについて、減算する。
ステップS192、及び、S193は、ホストコマンドの実行とは排他的に実行されなければならない。
ステップS194において、LU構成テーブル1157に対して、新規のスナップショットLUを示すエントリを追加する。
図20及び図21は、差分変換処理のフローチャートを示す。差分変換処理とは、前方差分データ221をベースボリューム222にライトし、ベースボリューム222のライト前のデータを後方差分データ223として退避させることによって、前方差分方式のプロダクションLU及びスナップショットLUに属する前方差分データ221を削除する処理である。
図20は、差分変換処理を実行するLUの順序を決定するフローチャートを示す。差分変換処理は、対象となるプロダクションLUに属し、かつ前方差分方式である全てのスナップショットLUについて、取得時刻が最も古いものから順に実行する。次に、プロダクションLUに対して実行する。以下の処理は、MPU111が差分変換処理部1155を起動することで実行される。
先ず、MPU111は、ステップS201において、対象となるプロダクションLUに属し、かつ差分管理方式が前方差分方式であるスナップショットLUの存否を、LU構成テーブル1157に基づいて判断する。存在するときは、ステップS202へ、存在しないときは、ステップS205へ進む。
ステップS202において、対象となるプロダクションLUに属し、かつ差分管理方式67が前方差分方式であるスナップショットLUのうち、世代番号65が最も大きいもの、すなわち、取得時刻が最も古いものを探索する。
ステップS203において、ステップS202で探索したLUを対象に、LU内差分データ変換処理を実行する。LU内差分データ変換処理の詳細は、図21を参照して後述する。
ステップS204において、LU内差分データ変換処理がステップS203で完了した、スナップショットLUの差分管理方式67を、“後方”に変更する。
前方差分方式のスナップショットLUが、差分変換処理の開始前から存在しないか、または全てLU内差分データ変換処理が完了したときに、ステップS205に進み、プロダクションLUを対象として選択する。
ステップS206において、ステップS205で選択したプロダクションLUを対象に、LU内差分データ変換処理を実行する。
また、差分変換処理を実行する目的として、これまで説明した、前方差分データ221の削減以外に、プロダクションLUの差分管理方式を、前方差分方式から後方差分方式に変更することが考えられる。差分管理方式の前方差分方式から後方差分方式への変更は、プロダクションLUのアクセスパターンが、時間の経過により、前方差分方式が適した、比較的ライトが多いものから、後方差分方式が適した、ライトが少ないものに変わってきたときに有効である。この目的での差分変換処理は、管理端末13を介して、ユーザがコマンドを与えた契機で実行されることが考えられる。
図21は、LU内差分データ変換処理のフローチャートを示す。LU内差分データ変換処理は、対象LUに属する全ての前方差分データ221をベースボリューム222に反映させる。以下の処理は、MPU111が差分変換処理部1155を起動することで実行される。
まず、MPU111は、ステップS211において、前方差分データ管理領域91を探索し、対象LUに属するエクステントを1個選択する。
次に、MPU111は、ステップS212において、対象LUに属するエクステントの存否による分岐を行う。エクステントが存在しない場合、LU内差分データ変換処理を完了する。エクステントの存否確認を高速に行うため、特定のLUに属するエクステント数のカウンタを設け、エクステント割り当て時に加算、削除時に減算する、といった方法が考えられる。
また、例えばホストLBAの昇順でエクステントの探索を行った場合、LU内差分データ変換処理の途中で新規に割り当てられたエクステントが、変換対象から漏れてしまうため、前記のようなエクステントについては、リスト化して、ホストLBAに基づいた探索・変換の完了後に、前記リストが持つ全てのエクステントの変換処理を行う、といった方式が考えられる。
次に、MPU111は、ステップS213において、ステップS211で選択されたエクステントのホストLBA範囲のベースボリューム222を参照する、他の前方差分方式のLUが存在するかどうかを判断する。存在する場合、エクステントのデータをベースボリューム222に反映させると、反映前のデータを参照しているLUのデータを破壊してしまうことになる。この破壊から逃れるため、MPU111は、エクステントのデータをベースボリューム222に反映する前に、ステップS214において、データ退避を目的として、新規エクステントの当該LUへの割り当て、及び、前記エクステントへのベースボリューム222のデータのコピーを行う。
この後、MPU111は、ステップS215において、図17を用いて説明したWrite処理2を実行する。Write処理2は、ベースボリューム222のデータを後方差分データ223に退避させ、その後でベースボリューム222にライトする処理である。ライトするデータは、ステップS211で選択されたエクステントのデータである。
ステップS216において、エクステントを削除する前処理として、差分リスト102から前記エクステントを指す差分管理情報を削除し、エクステントリストテーブル1201から、前記エクステントに対応する参照カウンタ1206を減算する。
ステップS217において、前記参照カウンタ1206が0であるかどうか判定する。0であれば、前記エクステントを参照する他のLUは無く、削除可能であるため、ステップS218に進み、エクステントリストテーブル1201を更新し、エクステントの削除を行う。
ステップS217またはS218が完了すると、対象LUに属する全てのエクステントに対する差分変換処理をループ実行するため、ステップS211に戻る。
ステップS212において、対象LUに属する未処理のエクステントが残っているかどうかをチェックし、そして、前記チェックの開始から、図20のステップS204における差分管理方式の変更までの間に、新規のエクステントが割り当てられないようにライトを抑止する必要がある。
本実施形態によれば、ストレージコントローラ110は、ドライブ部116に格納されたデータのうち論理ユニットのデータを複数の世代のスナップショット212、214、215に関連づけて管理するスナップショット処理部1154を備え、スナップショット処理部1154は、複数の世代の論理ユニットのデータを、各世代共通の共通データであるベースボリューム222と各世代の論理ユニット間で相違がある差分データ(221、223)として管理し、各世代のスナップショットに伴って各世代の論理ユニットのデータを更新するときに、この更新に伴う更新データを、前方差分データ格納領域である前方差分データプール31にライトする前方差分方式または更新前のデータを旧データとして後方差分データ格納領域である後方差分データプール32にコピーする後方差分方式を選択するようにしたため、スナップショットの取得によって、プロダクションLUへのアクセス時の性能が低下するのを防止することができる。
本実施形態によれば、スナップショット処理部1154は、各世代のスナップショットに伴って各世代の論理ユニットのデータを更新するときに、この更新に伴う更新データを前方差分データ221としてベースボリューム222にライトし、ベースボリューム222に更新データがライトされる前に存在した旧データを後方差分データ223として後方差分データプール32に退避し、各世代の論理ユニットのデータを更新したときには、各世代の論理ユニットのうちプロダクションLUおよびこのプロダクションLUとともに前方差分グループ210を構成するスナップショット212の前方差分データ221を削除するようにしたため、前方差分方式によるスナップショットを適用したプロダクションLUについて、ホストコマンド実行に必要なメタデータを、差分変換処理の実行によって削減することができる。
これによって、メタデータの総量を一定以下に抑えることができ、例えばメモリ容量以下に抑えることで、メタデータ読み込みのためのドライブアクセスを不要にすることができ、スナップショット適用による性能低下を防ぐことができる。
また、プロダクションLUは前方差分方式であるため、後方差分方式のような更新前データの退避のためのドライブアクセスを不要にすることができ、スナップショット適用による性能低下を防ぐことができる。
本発明の実施の形態によれば、差分変換処理を実行するタイミングを選択することができるため、負荷の少ない時間帯に差分変換処理を実行することができ、性能低下を防ぐことができる。
本発明の実施の形態によれば、リード/ライトが行われるプロダクションLUには前方差分方式を、リードがほとんどを占めるプロダクションLUには後方差分方式を、といったように、アクセスパターンに最適な差分管理方式を選択することができる。
本発明の実施の形態によれば、プロダクションLUへのアクセスパターンが、前方差分方式に適したものから、後方差分方式に適したものに変わってきたときに、差分管理方式を前方差分方式から後方差分方式に変更することができる。

Claims (15)

  1. データを格納する記憶装置と、前記記憶装置をアクセス対象とするコントローラとを備え、
    前記コントローラは、前記記憶装置に格納されたデータのうち論理ユニットのデータを複数の世代のスナップショットに関連づけて管理するスナップショット処理部を備え、
    前記スナップショット処理部は、前記複数の世代の論理ユニットのデータを、前記各世代共通の共通データと前記各世代の論理ユニット間で相違がある差分データとして管理し、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、当該更新に伴う更新データを前方差分データ格納領域にライトする前方差分方式または更新前のデータを旧データとして後方差分データ格納領域にコピーする後方差分方式を選択する、ストレージシステム。
  2. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記スナップショット処理部は、前記各世代の論理ユニットのうち、前方差分方式で管理する、オリジナルデータが存在するオリジナル論理ユニットと当該オリジナル論理ユニットとともに前方差分グループを構成するスナップショットに生じた更新データである前方差分データをベースボリュームにライトし、前記ベースボリュームに前記更新データがライトされる前に存在した旧データを後方差分データとして後方差分データプールに退避し、ベースボリュームへのライト完了後に前方差分データを削除することにより、前方差分データを後方差分データに変換する差分変換を行う、請求項1に記載のストレージシステム。
  3. 前記スナップショット処理部は、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、当該更新に伴う更新データを前方差分データとしてベースボリュームにライトし、前記ベースボリューム)に前記更新データがライトされる前に存在した旧データを後方差分データとして後方差分データプールに退避し、前記各世代の論理ユニットのデータを更新したときには、前記更新データを前記各世代の論理ユニットから削除する、請求項1に記載のストレージシステム。
  4. 前記スナップショット処理部は、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、オリジナルデータが存在するオリジナル論理ユニットを含むものまたは前記オリジナル論理ユニットとスナップショットを含むもののうち、データの取得時刻が新しい世代群のデータを前記前方差分方式で管理し、データの取得時刻が古い世代群のデータを前記後方差分方式で管理する、請求項1に記載のストレージシステム。
  5. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記コントローラは、前記前方差分データを前記後方差分データに変換する差分変換処理部を備え、
    前記スナップショット処理部は、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、前記前方差分データを前記共通の論理ユニットにライトし、当該ライトする前に前記共通の論理ユニットに存在した差分データを前記差分変換処理部で変換された前記後方差分データとして管理する、請求項1に記載のストレージシステム。
  6. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記コントローラは、前記前方差分データを前記後方差分データに変換する差分変換処理部を備え、
    前記スナップショット処理部は、前記各世代のスナップショップまたはオリジナルデータが存在するオリジナル論理ユニットのうち前記差分変換処理部の変換処理により、前記共通の論理ユニットと全てのデータが一致した世代のスナップショットまたはオリジナル論理ユニットのデータを業務中に前記後方差分方式の管理対象に切り替える、請求項1に記載のストレージシステム。
  7. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記コントローラは、前記前方差分データを前記後方差分データに変換する差分変換処理部を備え、
    前記差分変換処理部は、前記前方差分データのデータ量が閾値を超えたことを契機に前記前方差分データを前記後方差分データに変換する、請求項1に記載のストレージシステム。
  8. 前記各世代の論理ユニットは、ベースラインであり、そしえ、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記コントローラは、前記前方差分データを定期的な契機で前記後方差分データに変換する差分変換処理部を備えてなる、請求項1に記載のストレージシステム。
  9. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記コントローラは、管理端末からの指示に応答して、前記前方差分データを前記後方差分データに変換する差分変換処理部を備えてなる、請求項1に記載のストレージシステム。
  10. 前記各世代の論理ユニットは、ベースラインであり、そして、前記各世代で共通の論理ユニットと、前記差分データのうち前記更新データを前記前方差分方式で管理するための前方差分データまたは前記旧データを後方差分方式で管理するための後方差分データとの組み合わせで構成され、
    前記前方差分データは、可変長のデータの集まりと、前記各世代の論理ユニット内のアドレスに対応する各差分データを探索するためのインデックスから構成されてなる、請求項1に記載のストレージシステム。
  11. 前記スナップショット処理部は、オリジナルデータが存在するオリジナル論理ユニットに対して最初にスナップショットを取得したときには、当該スナップショットおよび前記オリジナル論理ユニットを管理するための方式として、前記前方差分方式または前記後方差分方式のいずれか一方を、前記コントローラに接続された管理端末からの指定に従って選択する、請求項1に記載のストレージシステム。
  12. 前記スナップショット処理部は、前記記憶装置に対するリードアクセスとライトアクセスとの比を基に、前記前方差分方式または前記後方差分方式のいずれか一方を選択する、請求項1に記載のストレージシステム。
  13. データを格納する記憶装置と、前記記憶装置をアクセス対象とするコントローラとを備え、
    前記コントローラは、前記記憶装置に格納されたデータのうち論理ユニットのデータを複数の世代のスナップショットに関連づけて管理するステップと、
    前記複数の世代の論理ユニットのデータを、前記各世代共通の共通データと前記各世代の論理ユニット間で相違がある差分データとして管理するステップと、
    前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、当該更新に伴う更新データを前方差分データ格納領域にライトする前方差分方式または更新前のデータを旧データとして後方差分データ格納領域にコピーする後方差分方式を選択するステップを実行する、ストレージシステムの制御方法。
  14. 前記コントローラは、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、当該更新に伴う更新データを前方差分データとしてベースボリュームにライトするステップと、
    前記ベースボリュームに前記更新データがライトされる前に存在した旧データを後方差分データとして後方差分データプールに退避するステップと、
    前記各世代の論理ユニットのデータを更新したときには、前記更新データを前記各世代の論理ユニットから削除するステップを実行する、請求項13に記載のストレージシステムの制御方法。
  15. 前記コントローラは、前記各世代のスナップショットに伴って前記各世代の論理ユニットのデータを更新するときに、オリジナルデータが存在するオリジナル論理ユニットを含むものまたは前記オリジナル論理ユニットとスナップショットを含むもののうち、データの取得時刻が新しい世代群のデータを前記前方差分方式で管理するステップと、
    前記オリジナル論理ユニットを含むものまたは前記オリジナル論理ユニットとスナップショットを含むもののうち、データの取得時刻が古い世代群のデータを前記後方差分方式で管理するステップを実行する、請求項13に記載のストレージシステムの制御方法。
JP2011530651A 2009-02-23 2009-02-23 ストレージシステムおよびその制御方法 Expired - Fee Related JP5244979B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/053776 WO2010095275A1 (en) 2009-02-23 2009-02-23 Storage system and method using snapshots involving little metadata

Publications (2)

Publication Number Publication Date
JP2012505461A true JP2012505461A (ja) 2012-03-01
JP5244979B2 JP5244979B2 (ja) 2013-07-24

Family

ID=41258765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011530651A Expired - Fee Related JP5244979B2 (ja) 2009-02-23 2009-02-23 ストレージシステムおよびその制御方法

Country Status (3)

Country Link
US (2) US8229894B2 (ja)
JP (1) JP5244979B2 (ja)
WO (1) WO2010095275A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013210704A (ja) * 2012-03-30 2013-10-10 Nec Corp データ複製システム、データ複製方法、及びそのプログラム
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法
JP2017537397A (ja) * 2014-12-27 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理方法、装置、およびシステム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010005172B4 (de) * 2010-01-20 2016-01-14 Siemens Aktiengesellschaft Verfahren zum Betreib eines Archivierungssystems für medizinische Bilddatensätze und Archivierungssystem
US8244685B2 (en) * 2010-02-24 2012-08-14 Autonomy, Inc. Data restoration utilizing forward and backward deltas
US8626713B2 (en) * 2010-12-08 2014-01-07 International Business Machines Corporation Multiple contexts in a redirect on write file system
US9158828B1 (en) * 2011-12-19 2015-10-13 Emc Corporation Techniques using associated object properties
US8856078B2 (en) * 2012-02-21 2014-10-07 Citrix Systems, Inc. Dynamic time reversal of a tree of images of a virtual hard disk
US10268418B1 (en) * 2016-03-31 2019-04-23 EMC IP Holding Company LLC Accessing multiple data snapshots via one access point
CN108460045B (zh) 2017-02-21 2022-11-18 中兴通讯股份有限公司 一种快照的处理方法及分布式块存储系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327991A (ja) * 1998-03-20 1999-11-30 Lucent Technol Inc ホットスペアシステムおよびデ―タベ―ス管理システム
JP2005038176A (ja) * 2003-07-15 2005-02-10 Nec Corp コンピュータシステムおよびファイル管理方法
JP2007199920A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd ストレージ装置及びその制御方法
JP2007334709A (ja) * 2006-06-16 2007-12-27 Fujitsu Ltd ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174352B2 (en) * 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
ATE195825T1 (de) * 1993-06-03 2000-09-15 Network Appliance Inc Anordnung eines dateisystems zum beschreiben beliebiger bereiche
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
WO1999063441A1 (en) * 1998-06-05 1999-12-09 Mylex Corporation Snapshot backup strategy
US6665815B1 (en) * 2000-06-22 2003-12-16 Hewlett-Packard Development Company, L.P. Physical incremental backup using snapshots
US7802134B1 (en) * 2005-08-18 2010-09-21 Symantec Corporation Restoration of backed up data by restoring incremental backup(s) in reverse chronological order
JP4993913B2 (ja) * 2006-01-13 2012-08-08 株式会社日立製作所 記憶制御装置及びそのデータ管理方法
US8176272B2 (en) * 2008-09-04 2012-05-08 International Business Machines Corporation Incremental backup using snapshot delta views

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327991A (ja) * 1998-03-20 1999-11-30 Lucent Technol Inc ホットスペアシステムおよびデ―タベ―ス管理システム
JP2005038176A (ja) * 2003-07-15 2005-02-10 Nec Corp コンピュータシステムおよびファイル管理方法
JP2007199920A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd ストレージ装置及びその制御方法
JP2007334709A (ja) * 2006-06-16 2007-12-27 Fujitsu Ltd ストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013210704A (ja) * 2012-03-30 2013-10-10 Nec Corp データ複製システム、データ複製方法、及びそのプログラム
US9235349B2 (en) 2012-03-30 2016-01-12 Nec Corporation Data duplication system, data duplication method, and program thereof
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法
JP2017537397A (ja) * 2014-12-27 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理方法、装置、およびシステム
US11032368B2 (en) 2014-12-27 2021-06-08 Huawei Technologies Co., Ltd. Data processing method, apparatus, and system
US11799959B2 (en) 2014-12-27 2023-10-24 Huawei Technologies Co., Ltd. Data processing method, apparatus, and system

Also Published As

Publication number Publication date
US8478727B2 (en) 2013-07-02
US8229894B2 (en) 2012-07-24
JP5244979B2 (ja) 2013-07-24
US20120324185A1 (en) 2012-12-20
US20110137867A1 (en) 2011-06-09
WO2010095275A1 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
JP5244979B2 (ja) ストレージシステムおよびその制御方法
US9311015B2 (en) Storage system capable of managing a plurality of snapshot families and method of operating thereof
US11023318B1 (en) System and method for fast random access erasure encoded storage
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US9405473B2 (en) Dense tree volume metadata update logging and checkpointing
US9317218B1 (en) Memory efficient sanitization of a deduplicated storage system using a perfect hash function
US9836229B2 (en) N-way merge technique for updating volume metadata in a storage I/O stack
US9430164B1 (en) Memory efficient sanitization of a deduplicated storage system
JP5066209B2 (ja) コントローラ、データ記憶装置、及びプログラム
EP2176795B1 (en) Hierarchical storage management for a file system providing snapshots
EP2691886B1 (en) Time-based data partitioning
US20160077744A1 (en) Deferred reference count update technique for low overhead volume metadata
US20170097771A1 (en) Transaction log layout for efficient reclamation and recovery
US20160077746A1 (en) Optimized segment cleaning technique
WO2013035295A1 (en) Storage system
KR20090046567A (ko) 반도체 디스크 및 그것의 동작 방법
US10789134B2 (en) NVRAM loss handling
CN105912475A (zh) 用于ssd上的写时复制的系统和方法
US11841826B2 (en) Embedded reference counts for file clones
US20100250626A1 (en) Storage apparatus and its file control method and storage system
KR20140121013A (ko) 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치
US9513826B2 (en) Storage apparatus and storage apparatus control method
KR20120039166A (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
US9646012B1 (en) Caching temporary data in solid state storage devices
US20240176520A1 (en) Storage system and storage control method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130408

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

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5244979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees