JP6155769B2 - ストレージ制御装置、制御プログラム及び制御方法 - Google Patents

ストレージ制御装置、制御プログラム及び制御方法 Download PDF

Info

Publication number
JP6155769B2
JP6155769B2 JP2013074825A JP2013074825A JP6155769B2 JP 6155769 B2 JP6155769 B2 JP 6155769B2 JP 2013074825 A JP2013074825 A JP 2013074825A JP 2013074825 A JP2013074825 A JP 2013074825A JP 6155769 B2 JP6155769 B2 JP 6155769B2
Authority
JP
Japan
Prior art keywords
data
information
address
storage area
control unit
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.)
Active
Application number
JP2013074825A
Other languages
English (en)
Other versions
JP2014199583A5 (ja
JP2014199583A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013074825A priority Critical patent/JP6155769B2/ja
Priority to EP14161259.8A priority patent/EP2784685B1/en
Priority to US14/225,493 priority patent/US9430161B2/en
Publication of JP2014199583A publication Critical patent/JP2014199583A/ja
Publication of JP2014199583A5 publication Critical patent/JP2014199583A5/ja
Application granted granted Critical
Publication of JP6155769B2 publication Critical patent/JP6155769B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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

Description

この発明は、ストレージ制御装置に関する。
ストレージ装置は、多数のハードディスクドライブと大容量キャッシュメモリを搭載し、例えばサーバで用いられるデータを保存する装置である。ストレージ装置は、ある瞬間のデータのイメージを保持するスナップショットの機能を提供する。スナップショットは、例えばサーバからの要求を契機に実行される。スナップショット機能には、例えばCopy−On−Write(以下、COWと記す)方式がある。スナップショットは、スナップショットのコピー元となるデータをそのままコピーするという処理は行わない。スナップショットは、コピー元のデータに関するメタ情報を取得する処理を行うので、バックアップに費やす時間は短いという利点を持つ。しかし、メタ情報がバックアップされた状態では、コピー元のデータが更新されると、スナップショットを取った時点でのデータが上書きされてしまい、あとから参照することができなくなる。そのため、COW方式のスナップショットを導入しているストレージ装置は、スナップショット取得後にあるデータを更新する際、更新前のデータを含むデータブロックを別のアドレスに退避する。ストレージ装置は、データブロックを退避させた場所に対応するメタ情報を取得し、退避したデータに更新するデータを上書きする。
COW方式のスナップショットを導入しているストレージ装置は、コピー元となるデータをマスタースライスと称し、チャンクと呼ばれる区切りで管理している。また、ストレージ装置は、スナップショットで使用されるデータを保持するCOWスライスを有する。スナップショットにおいて、あるデータが更新された場合、ストレージ装置は、マスタースライスのデータを更新したデータをCOWスライスのデータ領域に保存する。その際に、ストレージ装置は、マスタースライスのあるデータが格納されていたアドレス(物理)と、退避先であるCOWスライスのアドレス(論理)とを関連づけたマッピング情報をメタ情報として、COWスライスに保存する。
ストレージ装置の大規模化及びシステムの大規模化に伴い、COWスライスのチャンクを管理するマッピング情報の量は増大する傾向にある。マッピング情報の量が増えると、COWスライスへのアクセス回数が増え、ストレージ装置のメモリ使用量が増えてしまう。それに伴い、スナップショットの性能も低下してしまう。マッピング情報の量が増えても、スナップショットの性能を維持するのが好ましい。
スナップショットの性能を維持する技術として、ホストと記憶装置とでスナップショット作成の負荷を分散する技術が知られている。(例えば特許文献1参照)。
特開2004−118413号公報
上述した背景技術では以下のような問題がある。
マッピング情報の量が増えると、スナップショットの性能が低下してしまう。
ストレージ制御装置は、第1〜第3の格納領域、制御部を備える。第1の格納領域は、ホストにより更新がなされる更新対象の元データを格納する。制御部は、第1の格納領域に格納された更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに複数の更新データを振り分ける。第2の格納領域は、制御部により振り分けられた複数の更新データを格納する。第3の格納領域は、更新対象の元データの複数の更新データによって上書きされるべき第1の格納領域のアドレスである更新領域アドレスを、複数の更新データを格納している第2の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する。
大規模なストレージ装置であっても、スナップショットの性能を維持できる。
ストレージ装置を説明する例を示す図である。 マッピング情報の例を示す図である。 ストレージ装置の構成の例を示す図である。 メタスライスの例を詳細に説明した図である。 同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。 同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。 連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。 連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。 連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。 スナップショットの処理の例を説明する図である。 スナップショットの処理の例を説明する図である。 複数のチャンクに跨るデータの書き込み要求に関する処理の例を示す図である。 データスライスへの書き込み要求を一括処理する例を説明する図である。 データスライスへの書き込み要求を一括処理する例を説明する図である。 履歴情報のダウンリカバリーの例を示す図である。 メタデータのプリフェッチの例を示す図である。

IO要求を受領した制御部の処理の例を説明するフローチャートである。 制御部がマッピング情報を参照する処理の例を説明するフローチャートである。 データのコピーに関する処理の例を説明するフローチャートである。 制御部がメタスライスにメタ情報を書き込む処理を説明するフローチャートである。 同一のキャッシュページを保持する書き込み要求を一括化する例を説明するフローチャートである。 連続した物理アドレスへの書き込み要求を一括化する例を説明するフローチャートである。 データスライスへの書き込み要求を一括処理する例を説明するフローチャートである。 履歴情報のダウンリカバリーの例を説明するフローチャートである。
以下、本実施形態について、図面を参照しながら詳細に説明する。
図1は、ストレージ装置を説明する例を示す図である。図1のストレージ装置200は、制御部201、メタスライス202、データスライス203、マスタースライス204を備える。制御部201は、ストレージ装置に接続されるホストとなるサーバの要求を契機に、スナップショットの処理を制御する。サーバの要求は、サーバのデータが更新された場合に通知される。マスタースライス203は、ホストにより更新がなされる更新対象の元データを格納する。また、マスタースライス203は、ある時点でのホストが保持する何らかのデータをバックアップしたものであり、。マスタースライス204は、スナップショットのコピー元となるデータ群である。実施形態に係るマスタースライス204の各データは、4KBのチャンクサイズで区切られて管理される。図1のストレージ装置200は、COW方式で用いられるCOWスライスを、メタスライス202とデータスライス203とに分割したものである。メタスライス202は、ヘッダチャンク及びメタチャンクなどスナップショットの処理に用いられるメタ情報を保存する領域である。データスライス203は、スナップショットの更新データを保存するデータ領域である。メタスライス202は、アクセスに使用されるマッピング情報を有する。マッピング情報は、適宜キャッシュに格納され使用される。制御部201は、ホストからの書き込み要求であるIO要求(Input Output)に応じて、マッピング情報を参照する。キャッシュに格納されたマッピング情報を参照することで、メタスライスからマッピング情報を参照する場合よりも高速に処理を行うことができ、スナップショットの性能を向上できる。IO要求は、更新するデータ、更新するデータのサイズ、更新するデータを書き込む先のマスタースライスのアドレス番号の情報が含まれる。図1のデータスライス203は、中間にメタスライスなどの割り込みとなるスライスがない。そのため、制御部201は、更新をするデータをデータスライス203のスライスを連続的に書き込むことができる。そのため、制御部201は、データスライス203の書き込みに用いるシーク時間を軽減することができ、かつ一括でIO要求を行うことができる。
スケールアウト型のストレージ装置では、容量が大規模であるため、1MBのチャンクサイズが用いられている。しかし、チャンクサイズが大きいとスナップショットのコピー速度が低下する。そのため、チャンクサイズを小さくすることで、コピー速度を改善することができる。例えば、チャンクサイズを4KBとすることで、スナップショットのコピー速度は改善される。しかし、チャンクサイズを小さくした場合、チャンクを管理するマッピング情報の量が増え、マッピング情報をオンメモリにすることが困難になり、キャッシュなどの方法を取り工夫することになる。チャンクサイズの具体的な数値は、一例であり、何ら限定するものではない。
図2は、マッピング情報の例を示す図である。マッピング情報は、マスタースライスのアドレスとCOWスライスのアドレスとを対応づけた情報である。図2(a)のマッピング情報は、COW方式を用いたストレージ装置で用いられるマッピング情報である。図2(a)のマッピング情報では、例えば、マスタースライスのアドレス8番のデータは、COWスライスのアドレス2番に保存されることを示す。なお、マスタースライスのアドレスは、物理アドレスであり、COWスライスのアドレスは、論理アドレスが用いられる。マッピング情報が少ないときはオンメモリとし、ハッシュ探索を利用して高速にアドレス変換できる。しかし、マッピング情報が増えるとオンメモリにすることは困難となるため、実施形態ではキャッシュを利用する方法を取る。キャッシュ上にのせられる情報を増やすため、実施形態ではCOWスライスのアドレスのみを持つ構造とする。この構造であれば、マスタースライスのアドレスから対応するCOWスライスのアドレスを検索することも容易である。
図2(b)のマッピング情報は、実施形態に係るマッピング情報である。図2(b)の例は、図2(a)のマッピング情報を、実施形態に係るマッピング情報に置き換えた図である。図2(b)のマッピング情報は、マスタースライスのアドレスの順に連続して並べられ、COWスライスのアドレス情報を保持している。マスタースライスのアドレスは0から始まるため、例えば、マスタースライスのアドレス8番のデータであるCOWスライスのアドレス2番は、9番目に保持されている。実施形態に係るマッピング情報は、マスタースライスのアドレスとデータスライスのアドレスとを対応づけた情報であり、マスタースライスのアドレスを連続的に羅列した順に、データスライスのアドレスを格納している。図2(b)のようにマッピング情報を作成することによって、マッピング情報に使用されるデータサイズを削減することができる。また、マスタースライスのアドレスの順のマッピング情報を用いることで、マスタースライスのアドレスからCOWスライスへのアドレス変換の時間を短縮することができる。制御部201は、実施形態に係るマッピング情報をキャッシュに読み込んで使用する。更に、キャッシュページを複数作ることで、キャッシュヒット率を上げることができ、スナップショットの性能は向上する。なお、図2(b)のマッピング情報に格納されている数字0は、何も割り当てられていないことを示す。数字の0が格納されている領域は、実際のメモリは割り当てられない。そのため、マッピング情報のメモリ領域を小さくできる。ストレージ装置は、未書き込みのマッピング情報を実際にはメモリ領域を割り当てないように使用するため、メタスライスにシンプロビジョニング機構を利用するのが好ましい。
図3は、ストレージ装置の構成の例を示す図である。ストレージ装置300は、サーバ340と接続されており、サーバ340で使用されるデータを保存する装置である。ストレージ装置300は、制御装置310、制御装置320、記憶装置330を有する。制御装置320は、制御部321、CPU(Central Processing Unit)322、メモリ323、VDISK(Virtual Disk)324、HDD(Hard Disk Drive)325を備える。制御部321は、ストレージシステム内に複数あってもよい。制御部321は、制御装置320に関係するストレージ装置を制御し、図1の制御部201の一例である。CPU322は、制御部321の処理を実行する。CPU322で使用される各種データは、メモリ323及びHDD325に保存される。VDISK324は、記憶装置330の物理的な記憶領域を統合した仮想的な記憶領域であり、制御部321によって制御される。VDISK324は、メタスライス202、データスライス203、マスタースライス204を有する。制御装置310は、管理部311、CPU312、メモリ313、HDD314、制御部315、VDISK316、管理用DB(Data Base)317を備える。制御装置310は、制御装置320を管理するために、管理部311と管理用DB317を備えている。管理部311は、ストレージシステム内の1つの制御装置に存在し、全制御装置のハードウェアの割り当て情報や状態の情報に関して管理用DB317を用いて管理する。制御装置310は、制御装置320の親となる制御装置である。CPU312は、管理部311と制御部315の処理を実行する。CPU312で使用される各種データはメモリ313、HDD314に保存される。VDISK316は、記憶装置330を用いた仮想的な記憶領域であり、制御部315によって制御される。記憶装置330は、複数のハードディスクを備え、各ハードディスクはLUN(Logical Unit Number)によって識別される。LUNは、各ハードディスクを識別するための数字である。図3のストレージ装置は、LUN331a〜LUN331nを備え、LUN331b〜LUN331mがVDISK324に割り当てられており、LUN331a及びLUN331nがVDISK316に割り当てられている。VDISKは、シンプロビジョニング機構を用いる。図1の制御部201は、制御部315であってもよい。また、メタスライス202、データスライス203、マスタースライス204は、VDISK316が有してもよい。
図4は、メタスライスの例を詳細に説明した図である。メタスライス202は、8KBのチャンクサイズを持つデータ群である。チャンクサイズは、変更することができ、データのサイズを限定するものではない。制御部201は、メタスライス202を参照することで、スナップショットの制御を行う。メタスライス202のチャンク0の領域は、メタスライスに関するヘッダ情報が格納している。メタスライス202のチャンク1の領域は、メタスライスに関するマッピング情報を格納している。メタスライス202のチャンク2の領域は、スナップショットに用いられる後述する(図10)履歴情報、後述する(図11)プリフェッチ情報が格納している。メタスライス202のチャンク3以降の領域は、本実施形態に用いられるマッピング情報であるアドレスが格納される。
<メタスライスへの書き込み要求の一括化>
制御部201は、サーバ340からの書き込み要求を受け取る。書き込み要求は、データを更新するために用いられるデータやメタ情報が含まれる。制御部201は、受領した要求を所定のサイズに分割し、処理を行う。制御部201は、分割された各々のIO要求に応じて、データスライス、メタスライスにアクセスを行う。制御部201は、例えば、連続した物理アドレスに書き込みを行う場合、IO要求をまとめて1度で実行したほうが効率的であり、データスライス又はメタスライスへのアクセス回数も減らすことができる。そこで、実施形態に係るストレージ装置は、メタスライスへのIO要求に対して、同一のキャッシュページを保持するIO要求を一括化する。更に、実施形態に係るストレージ装置は、メタスライスへのIO要求に対して、連続した物理アドレスへのIO要求を一括化する。
同一のキャッシュページの情報を保持するIO要求を一括化し、更に、連続した物理アドレスへのIO要求を一括化することで、制御部201は、キャッシュへのアクセス回数を減らすことができる。スナップショットの処理に時間がかかる原因には、アクセスごとにアクセス先のアドレスを特定する処理が発生することが挙げられる。本実施形態にかかる方法では、同一のキャッシュページに関する複数のIO要求が1つのIO要求にまとめられる、更に、連続した物理アドレスへのIO要求にまとめられるため、スナップショットの性能を向上させることができる。なお、IO要求は、書き込みをするデータサイズ、書き込みをする対象となるマスタースライスのアドレス番号、キャッシュページに関する情報などの付加情報を持つので制御部はこれらの情報を用いて一括化を行う。
図5は、同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。図5は、書き込み要求を一括化する例を、図5A(1)〜図5B(7)を用いて説明している。図5の例を、キュー401a〜キュー401b、ジョブ402a〜ジョブ402e、付加情報403a〜付加情報403fを用いて説明する。キュー401aは、ジョブ402a、ジョブ402b・・・ジョブ402eの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたIO要求である。図5A(1)では、ジョブ402a〜ジョブ402eが、キュー401aの処理を待機している状態である。各ジョブ402a〜ジョブ402eは、各ジョブ402a〜ジョブ402eに対応した付加情報403a〜403eを備える。図5の例では、付加情報403bと付加情報403dとが同一のキャッシュページの情報を持っている。
図5A(1) 制御部201は、キュー401aの処理を待っている末尾のジョブ402eから順に各ジョブに関連づいている付加情報をチェックする。
図5A(2) 制御部201は、同一のキャッシュページの情報を持つジョブを見つける。図5の例では、付加情報403bと付加情報403dとが同一のキャッシュページの情報を持っている。
図5A(3) 制御部201は、同一のキャッシュページの情報を持つジョブを対象にした専用の付加情報を作成する。図5A(3)では、付加情報403dを対象にした専用の付加情報403fを作成する。
図5A(4) 制御部201は、同一のキャッシュページの情報を持つ後続のジョブが実行される際に、並列して同一のキャッシュページの情報を持つ先頭のジョブが実行されるよう設定する。図5A(4)では、キュー401bに、ジョブ402bを割り当てる。付加情報403dは、所定のキューに格納される。
図5B(5) 制御部201は、付加情報403fをジョブ402dの付加情報として設定する。
図5B(6) 制御部201は、非同期IOを実行する。
図5B(7) 制御部201は、終了した各ジョブの付加情報の情報を集める。なお、図5A(3)で作成された付加情報403fは、破棄される。
図6は、連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。図6は、連続した物理アドレスへの書き込み要求を一括化する例を、図6A(1)〜図6C(9)を用いて説明している。図6の例を、キュー411a〜キュー411c、ジョブ412a〜ジョブ412f、付加情報413a〜付加情報413hを用いて説明する。キュー411aは、ジョブ412a、ジョブ412b・・・ジョブ412eの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたIO要求である。なお、図6の連続した物理アドレスへの書き込み要求を一括化する処理は、図5の同一のキャッシュページを保持する書き込み要求を一括化する処理と併せて実施される。連続した物理アドレスへのIO要求を一括処理することで、制御部201は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。図6A(1)に示す図は、図5B(5)の処理後の例である。図6A(1)では、ジョブ412a〜ジョブ412eが、キュー411aの処理を待機している状態である。ジョブ412fは、ジョブ412dの処理と並列してキュー411bに実行されるように設定されている。付加情報413dは、図5A(3)で作成される付加情報の例である。付加情報413fは、所定のキューに格納された付加情報である。各ジョブ412a〜ジョブ412eは、各ジョブ412a〜ジョブ412eに対応した付加情報を備える。図6の例では、付加情報413bと付加情報413fとが連続した物理アドレスの情報を持っている。
図6A(1) 制御部201は、キュー411aの処理を待っている先頭のジョブ412aから順に各ジョブに関連づいている付加情報をチェックする。
図6A(2) 制御部201は、連続した物理アドレスの情報を持つジョブを見つける。図6の例では、付加情報413bと付加情報413fとが連続した物理アドレスの情報を持っている。
図6A(3) 制御部201は、連続した物理アドレスの情報を持つジョブを対象にした専用の付加情報を作成する。図56(3)では、付加情報413bと付加情報413dを対象にした専用の付加情報413hを作成する。
図6B(4) 制御部201は、連続した物理アドレスの情報を持つ先頭のジョブが実行される際に、並列して連続した物理アドレスの情報を持つ後続のジョブが実行されるよう設定する。図6A(4)では、キュー411cに、ジョブ412dを割り当てる。付加情報413bは、所定のキューに格納される。
図6B(5) 制御部201は、ジョブ412dの付加情報413dを削除し、ジョブ412fをジョブ412dの後続のジョブと設定する。
図6B(6) 制御部201は、付加情報413hをジョブ412bの付加情報として設定する。
図6C(7) 制御部201は、非同期IOを実行する。
図6C(8) 制御部201は、終了した各ジョブの付加情報の情報を集める。なお、付加情報413hは、破棄される。
同一のキャッシュページを持つジョブを一括化する処理及び連続した物理アドレスの情報を持つジョブを一括化する処理について、制御部201は、どちらか一方を行うようにしてもよく、両方の処理を行うようにしてもよい。
<スナップショットの書き込み方法>
図7は、スナップショットの処理の例を説明する図である。図7Aは、COW方式のスナップショットの処理の例を説明する図である。図7は、サーバから、データb及びデータcを書き込みする要求がきた場合の例である。この例では、データb及びデータcは、マスタースライス102のデータaのチャンクを更新するためのデータである。COW方式のスナップショットの処理を、図7Aの(1)〜(3)を用いて説明する。図7Aは、制御部101、マスタースライス102、COWスライス103を備える。図7Aの(1)に例示するように、サーバから書き込み要求があると、制御部101は、更新用のデータb及びデータcをメモリに保存する。制御部101は、データb及びデータcがデータを書き込む対象のデータチャンクであるデータaを、マスタースライス102から読み取る。制御部101は、データaをメモリに保存する。図7Aの(2)では、制御部101は、読み出したデータaをCOWスライス103に書き込む。図7Aの(3)において、制御部101は、データb及びデータcをCOWスライスのデータaに書き込み、データa´を作成する。
図7Bは、実施形態に係るスナップショットの処理の例を説明する図である。図7Bにおいて、図1と同じものは、同一の番号を付している。実施形態に係るスナップショットの処理を図7Bの(4)〜(6)を用いて説明する。図7Bの(4)に例示するように、サーバから書き込み要求があると、制御部201は、データb及びデータcをメモリに保存する。制御部201は、データb及びデータcがデータを書き込む対象であるデータaを、マスタースライス204から読み取る。制御部201は、データaをメモリに保存する。図7Bの(5)において、制御部201は、データb及びデータcをデータaに書き込み、データa´を作成する。図7Bの(6)において、制御部201は、データa´をデータスライス203に書き込む。図7Aのスナップショットでは、COWスライスへの書き込みをするIO要求は、データaの書き込み、データbの書き込み、及び、データcの書き込みの3回発生する。一方、図7Bのスナップショットでは、データスライスへの書き込みをするIO要求は、データa´の一回である。そのため、図7Bに示すスナップショットの方法で書き込みを行うことで、データスライスへのアクセスの回数を減らすことがで、スナップショットの処理速度が向上する。
<制御部の読み込み処理の削減>
図8は、複数のチャンクに跨るデータの書き込み要求に関する処理の例を示す図である。図8は、チャンク1〜チャンク3に跨ったデータに対して書き込み要求があった場合の例を示している。チャンク1及びチャンク3への書き込み要求は、チャンク1、チャンク3の一部分のデータを更新する要求である。チャンク2への書き込み要求は、チャンク2全体のデータを更新する要求である。図7Bに示すスナップショットの方法では、制御部は、チャンク1〜チャンク3のデータをマスタースライスから読み取る。次に、制御部は、チャンク1〜チャンク3のデータをCOWスライスに書き込む。その後、制御部は、COWスライスに書き込んだチャンク1〜チャンク3のデータに対して、更新用のデータを上書きする。
実施形態に係るスナップショットでは、制御部201は、チャンク全体のデータが更新されるチャンクのデータの読み込みを行わない。ここでは、チャンク2のデータを制御部201は読み込まない。チャンク2のデータは、制御部201でデータを更新される際に全部のデータが更新されてしまう。そのため、制御部201がチャンク2のデータを読み込む処理は不要である。このような、全体が更新されるチャンクの読み込みを行わないことで、無駄な読み込み処理を削減することができ、スナップショットの性能が向上する。
<データスライスへの書き込み要求の一括化>
制御部201は、サーバ340からの書き込み要求を受け取ると、受領した要求を所定のサイズに分割し、処理を行う。制御部201は、分割された各々のIO要求に応じて、データスライスにアクセスを行う。制御部201は、例えば、連続した物理アドレスに書き込みを行う場合、IO要求をまとめて1度で実行したほうが効率的であり、データスライスへのアクセス回数を減らすことができる。そこで、実施形態に係るストレージ装置は、データスライスへのIO要求に対して、連続した物理アドレスへのIO要求を一括化して処理を行う。連続した物理アドレスへのIO要求を一括化することで、制御部201は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。なお、IO要求は、書き込みをするデータサイズ、書き込みをする対象となるマスタースライスのアドレス番号、キャッシュページに関する情報などの付加情報を持つので制御部はこれらの情報を用いて一括化を行う。
図9は、データスライスへの書き込み要求を一括処理する例を説明する図である。図9は、データスライスへの書き込み要求を一括化する例を、図9A(1)〜図9B(7)を用いて、説明する。図9の例を、キュー421a〜キュー421b、ジョブ422a〜ジョブ422e、付加情報413a〜付加情報413fを用いて説明する。キュー421aは、ジョブ422a、ジョブ422b・・・ジョブ422eの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたIO要求である。連続した物理アドレスに書き込みをするデータを一括処理することで、制御部201は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。図9A(1)では、ジョブ422a〜ジョブ422eが、キュー421aの処理を待機している状態である。各ジョブ422a〜ジョブ422eは、各ジョブ422a〜ジョブ422eに対応した付加情報423a〜付加情報423eを備える。図9の例では、付加情報423bと付加情報423dとが、同じマスタースライスのアドレスの情報を持っている。
図9A(1) 制御部201は、キュー421aの処理を待っている先頭のジョブ422aから順に各ジョブに関連づいている付加情報をチェックする。
図9A(2) 制御部201は、同じマスタースライスのアドレスの情報を持つジョブを見つける。図5(2)では、付加情報423bと付加情報423dは、同じマスタースライスのアドレス番号の情報を持っている。
図9A(3) 制御部201は、同じマスタースライスのアドレスの情報を持つジョブを対象にした専用の付加情報を作成する。図9(3)では、付加情報423bと付加情報423dとを対象にした専用の付加情報423fを作成する。
図9A(4) 制御部201は、同じマスタースライスのアドレスの情報を持つジョブのうち、後続にあるジョブを先頭のジョブが実行される際に、並列して処理されるよう設定する。図9(4)では、キュー421bに、ジョブ422dを割り当てる。付加情報423bは、処理が終了した付加情報として、他のキューに保存される。
図9B(5) 制御部201は、付加情報423fをジョブ422bの付加情報として設定する。
図9B(6) 制御部201は、非同期IOを実行する。
図9B(7) 制御部201は、終了した各ジョブの付加情報の情報を集める。なお、図9(3)で作成する付加情報は、破棄される。
<ダウンリカバリーについて>
実施形態に係るメタスライス202は、データスライスのどこのアドレスまでデータを書き込みしたかを示す、データ書き込み処理の進行具合を示す情報である履歴情報を保存している。履歴情報は、更に、メタスライスへの書き込み処理の進行具合を示す情報を保存している。制御部201は、データスライスの書き込み処理が終了し、その後、メタスライスへの書き込み処理を行う際に、履歴情報を更新する。制御部201が、履歴情報を更新中に何らかの障害が発生し、履歴情報が更新できなかった場合、履歴情報と実際の状態にずれが発生する可能性がある。何らかの障害が発生しても、履歴情報のリカバリーができるのが好ましい。なお、履歴情報は、制御部201を停止する際にも更新される。
図10は、履歴情報のダウンリカバリーの例を示す図である。図10は、図1と同じものは、同一の番号を付している。図10は、制御部201がデータ1〜データ9をデータスライスに書き込み済みであるにも関わらず、何らかの障害によりデータ7に関するメタ情報のメタスライスへの書き込みが失敗した例である。なお、データ1〜データ6、データ8〜データ9のメタ情報は、メタスライス202への書き込みが成功している。図10(a)は、障害発生後に、制御部201を起動した際のストレージ装置の例である。図10(a)のデータスライス203は、データ1〜データ9を保存している。図10(a)のメタスライス202は、データ1〜データ6、データ8〜データ9のメタ情報を保存している。メタスライス202のアドレス3が示す領域には、データ1とデータ4のメタ情報が格納されている。メタスライス202のアドレス4が示す領域には、データ2とデータ3のメタ情報が格納されている。メタスライス202のアドレス5が示す領域には、データ8とデータ9のメタ情報が格納されている。メタスライス202のアドレス6が示す領域には、データ5とデータ6のメタ情報が格納されている。メタスライス202のアドレス7が示す領域は、データ7のメタ情報を格納する領域である。
履歴情報は、既にデータスライスに書き込み済みのデータチャンク数、メタスライスに更新中のメタチャンクの数、メタスライスに更新中のメタチャンクのアドレス情報を有する。履歴情報の既にデータスライスに書き込み済みのデータチャンク数は、データスライスへのデータ書き込み処理の進行具合を示す情報である。履歴情報のメタスライスに更新中のメタチャンクの数と、メタスライスに更新中のメタチャンクのアドレス情報とは、メタスライスへの書き込み処理の進行具合を示す情報である。図10(a)の履歴情報の例は、既にデータスライスに書き込み済みのデータチャンク数が4、メタスライスに更新中のメタチャンクの数が3、メタスライスに更新中のメタチャンクのアドレス情報が5,6,7を保持している。データスライス203では、データ1〜データ9までの書き込みが成功しているにも関わらず、履歴情報には、書き込み済みのデータチャンク数が4となっており、履歴情報と実際の状態にずれが生じている。そのため、制御部201は、履歴情報のリカバリーを行う。なお、ストレージ装置の制御部201が正常に停止された場合、更新中のメタチャンクの数は0が格納される。そのため、制御部201は、起動したときに取得した履歴情報の更新中のメタチャンクの数が0でなかった場合、リカバリーを行う。
制御部201は、データスライスに書き込みが成功したデータのメタ情報をリストアップする。ここで、履歴情報は、データ1〜データ4までのデータが、データスライスに書き込みが成功していること示している。そのため、履歴情報に含まれる情報は、リストアップの対象から外す。制御部201は、データスライスに書き込みが成功したデータは、データ5、データ6、データ8、データ9と判断する。制御部201は、障害によってメタスライスに書き込みが失敗したデータを、履歴情報が有するメタスライスに更新中のメタチャンクのアドレス情報を用いてメタスライスから探す。制御部201は、書き込みが失敗したデータよりも前に書き込まれたデータ5,データ6を正常に書き込みが成功したデータと判断する。制御部201は、データ6までが正常に処理が行われたことを、履歴情報に書き込む。図10(b)は、履歴情報のリカバリーが行われた後の例を示すストレージ装置の図である。制御部201によって、履歴情報の書き込み済みのデータチャンク数は、6となっている。逆に、制御部201は、データ7よりも後に書き込まれるデータ8,データ9は正常に書き込みがされたとは判断せず、無効なデータと判断する。そのため、メタスライス202からデータ8、データ9に関するメタ情報を削除する。制御部201は、書き込みが失敗したデータからバックアップを再開する。
<メタデータのプリフェッチ>
図11は、メタデータのプリフェッチの例を示す図である。本実施形態では、マッピング情報の一部をキャッシュ上で扱うことによって、スナップショットの性能向上が見込まれる。しかしながら、キャッシュヒットした場合以外は、キャッシュを用いたマッピング情報はスナップショットの性能向上の効果を得られない。シーケンシャルアクセスでは、複数のマッピング情報を取得する。連続した全てのマッピング情報に対してキャッシュヒットをしない限り、データスライスへの書き込み要求のたびに、メタスライスのマッピング情報をキャッシュに読み込む処理をすることになる。書き込み処理及び、読み込む処理が増えると、スナップショットの性能は劣化してしまう。メタ情報のキャッシュで参照の可能性の高いマッピング情報をプリフェッチすることで、キャッシュヒットする確率を向上させ、スナップショットの性能劣化を緩和する。
制御部201は、物理アドレスを閾値以上の数備え、連続した物理アドレスへのIO要求を一括化したデータをシーケンシャルアクセスと判定する。連続した物理アドレスへのIO要求を一括化したデータは、制御部に用いられるキャッシュページに関する情報を有している。制御部は、使用すると予想されるキャッシュページの情報をキャッシュが持っているかを判定する。制御部は、キャッシュが使用すると予想されるキャッシュページを持っていなかった場合、先にキャッシュページをキャッシュに読込むプリフェッチを実行する。図11は、図1と同一のものは、同一の番号を付している。図11のストレージ装置は、メタスライス202が読み込むキャッシュ領域210を有する。マスタースライス204は、チャンク0〜チャンクnを備えるデータ群であり、図11は、チャンク0〜チャンク8までのシーケンシャルアクセスがあった場合の例である。図11のメタスライス202が備えるマッピング情報は、キャッシュページ00〜キャッシュページ08を持つ。シーケンシャルアクセスで使用されるチャンク0〜チャンク5のデータは、キャッシュページ04を使用するもので、チャンク6〜チャンク8のデータは、キャッシュページ05を使用するものとする。図11のキャッシュ領域210は、キャッシュページ02〜キャッシュページ04までを保持しているとする。制御部201は、シーケンシャルアクセスによって、チャンク0〜チャンク5にアクセスが発生した場合、次に使用されると予想されるキャッシュページ05を予めキャッシュ領域210に読み込むプリフェッチを行う。プリフェッチを行うことで、次にキャッシュ領域210で参照される可能性の高い情報をキャッシュ領域に読み込むことができ、キャッシュヒットする確率が高くなり、スナップショットの性能が向上する。また、キャッシュ領域のキャッシュページはアクセスの統計情報を取得し、使用頻度の少ないキャッシュページを削除していくようにしてもよい。
図12は、IO要求を受領した制御部の処理の例を説明するフローチャートである。制御部201は、サーバよりIO要求を受領する(ステップS101)。制御部201は、サーバより受領したIO要求のデータサイズが閾値以上かを判断する(ステップS102)。制御部201は、IO要求を分割する(ステップS103、ステップS102でYES)。制御部201は、分割されたIO要求が書き込みを行う予定のデータが、現在使用中であるかを判断する(ステップS104、S103の処理後及びS102でNO)。制御部201は、分割されたIO要求を後続のキューとして設定する(ステップS106)。制御部201は、ステップS106の処理が終わると、処理をS104に返す。制御部201は、マッピング情報を参照する(ステップS105、ステップS104でNO)。ステップS105は、図13のフローチャートで詳細を示す。
図13は、制御部がマッピング情報を参照する処理の例を説明するフローチャートである。制御部201は、IO要求が書き込みを行うデータのマスタースライスのアドレスがキャッシュに含まれるかを判断する(ステップS201)。制御部201は、メタスライスからキャッシュ領域にマッピング情報を読み込む(ステップS202、ステップS201でNO)。制御部201は、IO要求が更新するマスタースライスのアドレスに、データスライスのチャンクのアドレスが割り当てられているかを判断する(ステップS203、ステップS202の後又はステップS201でYES)。制御部201は、IO要求のマスタースライスのアドレスをデータスライスのチャンクアドレスに変換する(ステップS204、ステップS203でYES)。制御部201は、IO要求が使用するマスタースライスのアドレスを使用中とする(ステップS205)。制御部201は、データのコピーに関する処理を行う(ステップS206)。ステップS206は、図14にフローチャートで詳細を示す。
図14は、データのコピーに関する処理の例を説明するフローチャートである。制御部201は、IO要求で更新するデータが、各チャンクにおいて一部コピーかを判断する(ステップS301)。ステップS301の処理は、図8の説明に該当する。ステップS301でNOと判断されるチャンクは、図8のチャンク2のように全体を更新対象とされるチャンクであり、この場合、制御部201へのチャンク2のコピーはしなくてよい。一方、一部コピーは、図8のチャンク1,3であり、制御部201へチャンクをコピーする。制御部201は、チャンクを制御部201に読み込む(ステップS302、ステップS301でYES)。制御部201は、図12のS103で分割したIO要求を一括化する(ステップS303、ステップS301でNO)。ステップS303の一括化処理は、図5,図6,図9で説明した処理である。制御部201は、IO要求の更新用データを制御部内で更新し、更新後のデータをデータスライス203に書き込む(ステップS304)。制御部201は、マッピング情報の書き込み処理を行う(ステップS305)。マッピングの書き込み処理は、図15で詳細に説明する。
図15は、制御部がメタスライスにメタ情報を書き込む処理を説明するフローチャートである。制御部201は、履歴情報及びプリフェッチに関する情報をメタスライス202に書き込む(ステップS401)。制御部201は、マッピング情報をメタスライス202に書き込む(ステップS402)。ステップS402の処理が終了すると、制御部201は処理を終了する。
図16は、同一のキャッシュページを保持する書き込み要求を一括化する例を説明するフローチャートである。制御部201は、キューイングされているジョブの付加情報を末尾にキューイングされているジョブからチェックする(ステップS501)。制御部201は、同一のキャッシュページを持つジョブがあるかを判断する(ステップS502)。制御部201は、同一のキャッシュページを持つジョブのうち、後続側にキューイングされているジョブの付加情報を対象にした専用の付加情報を作成する(ステップS503、ステップS502でYES)。制御部201は、同一のキャッシュページを持つジョブのうち、後続にキューイングされているジョブが実行される際に、前方にキューイングされているジョブが実行されるよう設定する(ステップS504)。制御部201は、専用の付加情報を後続にキューイングされているジョブに設定する(ステップS505)。制御部201は、非同期IOを実行する(ステップS506、ステップS502でNO)。制御部201は、全ジョブの付加情報を収集する(ステップS507)。制御部201は、同一のキャッシュページを保持する書き込み要求を一括化する処理を終了する。
図17は、連続した物理アドレスへの書き込み要求を一括化する例を説明するフローチャートである。制御部201は、キューイングされているジョブの付加情報を先頭にキューイングされているジョブからチェックする(ステップS601)。制御部201は、連続した物理アドレスを持つジョブがあるかを判断する(ステップS602)。制御部201は、連続した物理アドレスを持つジョブを対象にした専用の付加情報を作成する(ステップS603、ステップS602でYES)。制御部201は、連続した物理アドレスの情報を持つ先頭のジョブが実行される際に、並列して連続した物理アドレスの情報を持つ後続のジョブが実行されるよう設定する(ステップS604)。制御部201は、連続した物理アドレスの情報を持つ後続のジョブが、更に並列して実行されるジョブを保持しているかを判断する(ステップS605)。制御部201は、連続した物理アドレスの情報を持つ後続のジョブの更に後続に、並列して実行されるジョブをキューイングする(ステップS606、ステップS605でYES)。制御部201は、専用の付加情報を、連続した物理アドレスの情報を持つ先頭のジョブに設定する(ステップS607、ステップS605でNO)。制御部201は、非同期IOを実行する(ステップS608、ステップS602でNO)。制御部201は、全ジョブの付加情報を収集する(ステップS609)。制御部201は、連続した物理アドレスへの書き込み要求を一括化する処理を終了する。
図18は、データスライスへの書き込み要求を一括処理する例を説明するフローチャートである。制御部201は、キューイングされているジョブの付加情報を先頭にキューイングされているジョブからチェックする(ステップS701)。制御部201は、同じマスタースライスのアドレスの情報を持つジョブがあるかを判断する(ステップS702)制御部201は、同じマスタースライスのアドレスの情報を持つジョブを対象にした専用の付加情報を作成する(ステップS703、ステップS702でYES)。制御部201は、同じマスタースライスのアドレスの情報を持つジョブのうち、前方にキューイングされているジョブが実行される際に、後方にキューイングされているジョブが実行されるよう設定する(ステップS704)。制御部201は、専用の付加情報を前方にキューイングされているジョブに設定する(ステップS705)。制御部201は、非同期IOを実行する(ステップS706、ステップS702でNO)。制御部201は、全ジョブの付加情報を収集する(ステップS707)。制御部201は、データスライスへの書き込み要求を一括化する処理を終了する。
図19は、履歴情報のダウンリカバリーの例を説明するフローチャートである。制御部201は、起動するとメタスライスから履歴情報を読み込む(ステップS801)。制御部201は、履歴情報に含まれる既に書き込み済みのデータチャンク数と、更新中のメタチャンクの数の情報を取得する(ステップS802)。制御部201は、更新中のメタチャンクの数が0かどうかを判断する(ステップS803)。制御部201は、データスライスに書き込みが成功したデータのメタ情報をリストアップする(ステップS804、ステップS803でNO)。制御部201は、障害によってメタスライスに書き込みが失敗したデータを抽出する(ステップS805)。制御部201は、書き込みが失敗したデータよりも前に書き込まれたデータを、正常に書き込みが成功したデータと判断する(ステップS806)。制御部201は、正常に書き込みが成功したデータを用いて履歴情報を修復する(ステップS807)。制御部201は、S804でリストアップされたメタ情報のうち、書き込みが失敗したデータよりも後に書き込まれたメタ情報を、メタスライスから削除する(ステップS808)。制御部201は、履歴情報をメタスライスに書き込む(ステップS809)。制御部201は、既に書き込み済みのデータチャンク数の情報を取得する(ステップS810、ステップS803でYES)。
以上、説明したように、実施形態にかかる方法では、ストレージ装置の大規模化及びシステムの大規模化に伴い、マッピング情報の量が増えても、スナップショットの性能を維持することができる。
上述の実施形態に関し、さらに以下の付記を開示する。
(付記1)
ホストにより更新がなされる更新対象の元データを格納する第1の格納領域と、
前記第1の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分ける制御部と、
前記制御部により振り分けられた前記複数の更新データを格納する第2の格納領域と、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第1の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第2の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する第3の格納領域を備える、
ことを特徴とするストレージ制御装置。
(付記2)
前記更新領域アドレスと前記格納先アドレスを対応付けた情報は、前記更新領域アドレスが示す数の順に前記格納先アドレスを格納することにより示された情報であり、前記第3の格納領域及びキャッシュに保存される
ことを特徴とする付記1記載のストレージ制御装置。
(付記3)
前記更新領域アドレスと前記格納先アドレスを対応付けた情報を前記第3の格納領域に格納する際に、
前記制御部は、前記複数の更新データを、更に、同一のキャッシュページごとに振り分ける
ことを特徴とする付記1又は付記2記載のストレージ制御装置。
(付記4)
前記第3の格納領域は、前記第2の格納領域への前記複数の更新データの書き込み処理の進行具合を示す情報と、前記更新領域アドレスと前記格納アドレスを対応付けた情報である対応情報の書き込み処理の進行具合を示す情報とを、履歴情報として保存しており、
前記制御部は、起動する際に前記履歴情報を参照し、前記履歴情報に、前記制御部が停止する前に前記対応情報の書き込み処理が終了していない更新データに関する情報が含まれていた場合、
前記対応情報の書き込み処理が終了していない更新データよりも先に処理されたデータを正常に実行された更新データであると判定し、前記正常に実行された更新データに関する情報を、前記履歴情報に保存し、
前記対応情報の書き込み処理が終了していない更新データからバックアップを再開する
ことを特徴とする付記1〜3のいずれかに記載のストレージ制御装置。
(付記5)
前記制御部は、前記複数の更新データを、シーケンシャルアクセスを行うデータか、ランダムアクセスを行うデータか判定し、
前記複数の更新データがシーケンシャルアクセスを行うデータであった場合、
前記複数の更新データが上書きする領域を指定するアドレスを含むキャッシュページの次のキャッシュページをあらかじめ前記キャッシュに保存する
ことを特徴とする付記2に記載のストレージ制御装置。
(付記6)
ホストにより更新がなされる更新対象の元データを第1の格納領域に格納し、
前記第1の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分け、
振り分けられた前記複数の更新データを第2の格納領域に格納し、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第1の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第2の格納領域のアドレスである格納先アドレスに対応付けた情報を、第3の格納領域に格納する処理をストレージ装置に実行させる
ことを特徴とする制御プログラム。
(付記7)
ホストにより更新がなされる更新対象の元データを第1の格納領域に格納し、
前記第1の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分け、
振り分けられた前記複数の更新データを第2の格納領域に格納し、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第1の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第2の格納領域のアドレスである格納先アドレスに対応付けた情報を、第3の格納領域に格納する処理をストレージ装置に実行させる
ことを特徴とする制御方法。
101 制御部
102 マスタースライス
103 COWスライス
200 ストレージ装置
201 制御部
202 メタスライス
203 データスライス
204 マスタースライス
210 キャッシュ領域
300 ストレージ装置
310 制御装置
311 管理部
312 CPU
313 メモリ
314 HDD
315 制御部
316 VDISK
317 管理用DB
320 制御装置
321 制御部
322 CPU
323 メモリ
324 VDISK
325 HDD
330 記憶装置
331a〜331n LUN
340 サーバ
401a〜401b キュー
402a〜402e ジョブ
403a〜403f 付加情報
411a〜411c キュー
412a〜412f ジョブ
413a〜413h 付加情報
421a〜421b キュー
422a〜422e ジョブ
413a〜413f 付加情報

Claims (7)

  1. ホストにより更新がなされる更新対象の元データを格納する第1の格納領域と、
    前記更新対象の元データの更新後のデータを、前記第1の格納領域のアドレスを含む複数のデータに分割し、分割後の複数のデータを、前記第1の格納領域内の連続したアドレスを含む複数の更新データにまとめる制御部と、
    前記第1の格納領域内の連続したアドレスにまとめられた前記複数の更新データを格納する第2の格納領域と、
    前記更新対象の元データのうち更新対象の前記第1の格納領域のアドレスである更新領域アドレス、前記複数の更新データを格納する前記第2の格納領域のアドレスである格納先アドレスとを対応付けたマッピング情報前記制御部から格納される第3の格納領域を備える、
    ことを特徴とするストレージ制御装置。
  2. 前記マッピング情報は、前記更新領域アドレスが示す数の順に前記格納先アドレスを格納することにより示された情報であり、前記第3の格納領域及びキャッシュに保存される
    ことを特徴とする請求項1記載のストレージ制御装置。
  3. 前記マッピング情報を前記第3の格納領域に格納する際に、
    前記制御部は、前記複数の更新データを、キャッシュページごとに纏める
    ことを特徴とする請求項2記載のストレージ制御装置。
  4. 前記第3の格納領域は、前記第2の格納領域への前記複数の更新データの書き込み処理の進行具合を示す情報と、前記更新領域アドレスと前記格納アドレスを対応付けた情報である対応情報の書き込み処理の進行具合を示す情報とを、履歴情報として保存しており、
    前記制御部は、起動する際に前記履歴情報を参照し、前記履歴情報に、前記制御部が停止する前に前記対応情報の書き込み処理が終了していない更新データに関する情報が含まれていた場合、
    前記対応情報の書き込み処理が終了していない更新データよりも先に処理されたデータを正常に実行された更新データであると判定し、前記正常に実行された更新データに関する情報を、前記履歴情報に保存し、
    前記対応情報の書き込み処理が終了していない更新データからバックアップを再開する
    ことを特徴とする請求項1〜3のいずれかに記載のストレージ制御装置。
  5. 前記制御部は、前記複数の更新データを、シーケンシャルアクセスを行うデータか、ランダムアクセスを行うデータか判定し、
    前記複数の更新データがシーケンシャルアクセスを行うデータであった場合、
    前記複数の更新データが上書きする領域を指定するアドレスを含むキャッシュページの次のキャッシュページをあらかじめ前記キャッシュに保存する
    ことを特徴とする請求項2に記載のストレージ制御装置。
  6. ホストにより更新がなされる更新対象の元データを第1の格納領域に格納し、
    前記更新対象の元データの更新後のデータを、前記第1の格納領域のアドレスを含む複数のデータに分割し、分割後の複数のデータを、前記第1の格納領域内の連続したアドレスを含む複数の更新データにまとめ、
    前記第1の格納領域内の連続したアドレスにまとめられた前記複数の更新データを第2の格納領域に格納し、
    前記更新対象の元データのうち更新対象の前記第1の格納領域のアドレスである更新領域アドレス、前記複数の更新データを格納する前記第2の格納領域のアドレスである格納先アドレスとを対応付けたマッピング情報を、第3の格納領域に格納する処理をストレージ装置に実行させる
    ことを特徴とする制御プログラム。
  7. ホストにより更新がなされる更新対象の元データを第1の格納領域に格納し、
    前記更新対象の元データの更新後のデータを、前記第1の格納領域のアドレスを含む複数のデータに分割し、分割後の複数のデータを、前記第1の格納領域内の連続したアドレスを含む複数の更新データにまとめ、
    前記第1の格納領域内の連続したアドレスにまとめられた前記複数の更新データを第2の格納領域に格納し、
    前記更新対象の元データのうち更新対象の前記第1の格納領域のアドレスである更新領域アドレス、前記複数の更新データを格納する前記第2の格納領域のアドレスである格納先アドレスとを対応付けたマッピング情報を、第3の格納領域に格納する処理をストレージ装置に実行させる
    ことを特徴とする制御方法。
JP2013074825A 2013-03-29 2013-03-29 ストレージ制御装置、制御プログラム及び制御方法 Active JP6155769B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013074825A JP6155769B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、制御プログラム及び制御方法
EP14161259.8A EP2784685B1 (en) 2013-03-29 2014-03-24 Storage control device, control program, and control method
US14/225,493 US9430161B2 (en) 2013-03-29 2014-03-26 Storage control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013074825A JP6155769B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、制御プログラム及び制御方法

Publications (3)

Publication Number Publication Date
JP2014199583A JP2014199583A (ja) 2014-10-23
JP2014199583A5 JP2014199583A5 (ja) 2016-01-07
JP6155769B2 true JP6155769B2 (ja) 2017-07-05

Family

ID=50486748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013074825A Active JP6155769B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、制御プログラム及び制御方法

Country Status (3)

Country Link
US (1) US9430161B2 (ja)
EP (1) EP2784685B1 (ja)
JP (1) JP6155769B2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6723941B2 (ja) * 2017-02-15 2020-07-15 株式会社デンソーテン 制御装置および制御プログラム更新方法
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
CN110033799A (zh) 2018-01-12 2019-07-19 三星电子株式会社 基于屏障命令按顺序存储数据的存储设备
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10892782B2 (en) * 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US10768840B2 (en) 2019-01-04 2020-09-08 EMC IP Holding Company LLC Updating protection sets in a geographically distributed storage environment
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085785B2 (en) * 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
JP2004118413A (ja) 2002-09-25 2004-04-15 Hitachi Ltd ストレージシステム、記憶装置、ホスト計算機、および、スナップショット作成方法。
JP4153324B2 (ja) * 2003-01-31 2008-09-24 松下電器産業株式会社 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
JP2010020570A (ja) * 2008-07-11 2010-01-28 Hitachi Ltd 情報処理システム及びデータ回復方法
JP4908481B2 (ja) * 2008-11-17 2012-04-04 株式会社東芝 データ記憶装置及び筐体内レプリケーション方法
JP4924645B2 (ja) 2009-03-31 2012-04-25 富士通株式会社 ストレージ制御装置、ストレージシステム及びコピー方法。
CN102598019B (zh) * 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
TWI413897B (zh) * 2010-01-20 2013-11-01 Silicon Motion Inc 快閃記憶體之資料存取方法以及快閃記憶體裝置
US8370593B2 (en) * 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
EP2793130B1 (en) * 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
US8539150B2 (en) * 2010-12-27 2013-09-17 Hitachi, Ltd. Storage system and management method of control information using a cache memory with multiple cache partitions
US20140181042A1 (en) * 2012-12-26 2014-06-26 Kabushiki Kaisha Toshiba Information processor, distributed database system, and backup method
TWI506430B (zh) * 2013-03-20 2015-11-01 Phison Electronics Corp 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置

Also Published As

Publication number Publication date
EP2784685B1 (en) 2019-06-05
US20140297955A1 (en) 2014-10-02
EP2784685A1 (en) 2014-10-01
US9430161B2 (en) 2016-08-30
JP2014199583A (ja) 2014-10-23

Similar Documents

Publication Publication Date Title
JP6155769B2 (ja) ストレージ制御装置、制御プログラム及び制御方法
US9507732B1 (en) System and method for cache management
US9547591B1 (en) System and method for cache management
US9135119B1 (en) System and method for data management
JP7315130B2 (ja) システムガベージコレクションの方法およびソリッドステートディスクにおけるガベージコレクションの方法
US11347725B2 (en) Efficient handling of highly amortized metadata page updates in storage clusters with delta log-based architectures
US9747357B2 (en) Fast snapshots
EP2711841A1 (en) Data processing method, device and system based on block storage
WO2018029820A1 (ja) 計算機システム
CN112114753B (zh) 一种数据写入方法、装置及设备
WO2011036015A1 (en) Data storage using bitmaps
US20160357672A1 (en) Methods and apparatus for atomic write processing
US20170262220A1 (en) Storage control device, method of controlling data migration and non-transitory computer-readable storage medium
US11144222B2 (en) System and method for auto-tiering data in a log-structured file system based on logical slice read temperature
US10884924B2 (en) Storage system and data writing control method
US9286219B1 (en) System and method for cache management
US8990615B1 (en) System and method for cache management
US20180307427A1 (en) Storage control apparatus and storage control method
US9779002B2 (en) Storage control device and storage system
WO2018055686A1 (ja) 情報処理システム
US9128854B1 (en) System and method for data prediction
US20160357479A1 (en) Storage control apparatus
US9098204B1 (en) System and method for improving cache performance
US11269516B1 (en) Pattern detection system and method
US11847346B2 (en) System and method for cooperative tail promotion in a log buffer

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170522

R150 Certificate of patent or registration of utility model

Ref document number: 6155769

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150