(57)【要約】      （修正有）【課題】マッピング情報の量が増加してもスナップショットの性能が低下しないストレージ制御装置、制御プログラム及び方法を提供する。【解決手段】ストレージ制御装置は、第１〜第３の格納領域、制御部を備える。第１の格納領域は、ホストにより更新がなされる更新対象の元データを格納する。制御部は、第１の格納領域に格納された更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに複数の更新データを振り分ける。第２の格納領域は、制御部により振り分けられた複数の更新データを格納する。第３の格納領域は、更新対象の元データの複数の更新データによって上書きされるべき第１の格納領域のアドレスである更新領域アドレスを、複数の更新データを格納している第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する。【選択図】図３
2014199583.tif 000002
【特許請求の範囲】
【請求項１】
ホストにより更新がなされる更新対象の元データを格納する第１の格納領域と、
前記第１の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分ける制御部と、
前記制御部により振り分けられた前記複数の更新データを格納する第２の格納領域と、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第１の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する第３の格納領域を備える、
ことを特徴とするストレージ制御装置。
【請求項２】
前記更新領域アドレスと前記格納先アドレスを対応付けた情報は、前記更新領域アドレスが示す数の順に前記格納先アドレスを格納することにより示された情報であり、前記第３の格納領域及びキャッシュに保存される
ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記更新領域アドレスと前記格納先アドレスを対応付けた情報を前記第３の格納領域に格納する際に、
前記制御部は、前記複数の更新データを、更に、同一のキャッシュページごとに振り分ける
ことを特徴とする請求項１又は請求項２記載のストレージ制御装置。
【請求項４】
前記第３の格納領域は、前記第２の格納領域への前記複数の更新データの書き込み処理の進行具合を示す情報と、前記更新領域アドレスと前記格納アドレスを対応付けた情報である対応情報の書き込み処理の進行具合を示す情報とを、履歴情報として保存しており、
前記制御部は、起動する際に前記履歴情報を参照し、前記履歴情報に、前記制御部が停止する前に前記対応情報の書き込み処理が終了していない更新データに関する情報が含まれていた場合、
前記対応情報の書き込み処理が終了していない更新データよりも先に処理されたデータを正常に実行された更新データであると判定し、前記正常に実行された更新データに関する情報を、前記履歴情報に保存し、
前記対応情報の書き込み処理が終了していない更新データからバックアップを再開する
ことを特徴とする請求項１〜３のいずれかに記載のストレージ制御装置。
【請求項５】
前記制御部は、前記複数の更新データを、シーケンシャルアクセスを行うデータか、ランダムアクセスを行うデータか判定し、
前記複数の更新データがシーケンシャルアクセスを行うデータであった場合、
前記複数の更新データが上書きする領域を指定するアドレスを含むキャッシュページの次のキャッシュページをあらかじめ前記キャッシュに保存する
ことを特徴とする請求項２に記載のストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージ制御装置に関する。
【背景技術】
【０００２】
ストレージ装置は、多数のハードディスクドライブと大容量キャッシュメモリを搭載し、例えばサーバで用いられるデータを保存する装置である。ストレージ装置は、ある瞬間のデータのイメージを保持するスナップショットの機能を提供する。スナップショットは、例えばサーバからの要求を契機に実行される。スナップショット機能には、例えばＣｏｐｙ−Ｏｎ−Ｗｒｉｔｅ（以下、ＣＯＷと記す）方式がある。スナップショットは、スナップショットのコピー元となるデータをそのままコピーするという処理は行わない。スナップショットは、コピー元のデータに関するメタ情報を取得する処理を行うので、バックアップに費やす時間は短いという利点を持つ。しかし、メタ情報がバックアップされた状態では、コピー元のデータが更新されると、スナップショットを取った時点でのデータが上書きされてしまい、あとから参照することができなくなる。そのため、ＣＯＷ方式のスナップショットを導入しているストレージ装置は、スナップショット取得後にあるデータを更新する際、更新前のデータを含むデータブロックを別のアドレスに退避する。ストレージ装置は、データブロックを退避させた場所に対応するメタ情報を取得し、退避したデータに更新するデータを上書きする。
【０００３】
ＣＯＷ方式のスナップショットを導入しているストレージ装置は、コピー元となるデータをマスタースライスと称し、チャンクと呼ばれる区切りで管理している。また、ストレージ装置は、スナップショットで使用されるデータを保持するＣＯＷスライスを有する。スナップショットにおいて、あるデータが更新された場合、ストレージ装置は、マスタースライスのデータを更新したデータをＣＯＷスライスのデータ領域に保存する。その際に、ストレージ装置は、マスタースライスのあるデータが格納されていたアドレス（物理）と、退避先であるＣＯＷスライスのアドレス（論理）とを関連づけたマッピング情報をメタ情報として、ＣＯＷスライスに保存する。
【０００４】
ストレージ装置の大規模化及びシステムの大規模化に伴い、ＣＯＷスライスのチャンクを管理するマッピング情報の量は増大する傾向にある。マッピング情報の量が増えると、ＣＯＷスライスへのアクセス回数が増え、ストレージ装置のメモリ使用量が増えてしまう。それに伴い、スナップショットの性能も低下してしまう。マッピング情報の量が増えても、スナップショットの性能を維持するのが好ましい。
【０００５】
スナップショットの性能を維持する技術として、ホストと記憶装置とでスナップショット作成の負荷を分散する技術が知られている。（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１１８４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した背景技術では以下のような問題がある。
マッピング情報の量が増えると、スナップショットの性能が低下してしまう。
【課題を解決するための手段】
【０００８】
ストレージ制御装置は、第１〜第３の格納領域、制御部を備える。第１の格納領域は、ホストにより更新がなされる更新対象の元データを格納する。制御部は、第１の格納領域に格納された更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに複数の更新データを振り分ける。第２の格納領域は、制御部により振り分けられた複数の更新データを格納する。第３の格納領域は、更新対象の元データの複数の更新データによって上書きされるべき第１の格納領域のアドレスである更新領域アドレスを、複数の更新データを格納している第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する。
【発明の効果】
【０００９】
大規模なストレージ装置であっても、スナップショットの性能を維持できる。
【図面の簡単な説明】
【００１０】
【図１】ストレージ装置を説明する例を示す図である。
【図２】マッピング情報の例を示す図である。
【図３】ストレージ装置の構成の例を示す図である。
【図４】メタスライスの例を詳細に説明した図である。
【図５Ａ】同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。
【図５Ｂ】同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。
【図６Ａ】連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。
【図６Ｂ】連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。
【図６Ｃ】連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。
【図７Ａ】スナップショットの処理の例を説明する図である。
【図７Ｂ】スナップショットの処理の例を説明する図である。
【図８】複数のチャンクに跨るデータの書き込み要求に関する処理の例を示す図である。
【図９Ａ】データスライスへの書き込み要求を一括処理する例を説明する図である。
【図９Ｂ】データスライスへの書き込み要求を一括処理する例を説明する図である。
【図１０】履歴情報のダウンリカバリーの例を示す図である。
【図１１】メタデータのプリフェッチの例を示す図である。
【００１１】
【図１２】ＩＯ要求を受領した制御部の処理の例を説明するフローチャートである。
【図１３】制御部がマッピング情報を参照する処理の例を説明するフローチャートである。
【図１４】データのコピーに関する処理の例を説明するフローチャートである。
【図１５】制御部がメタスライスにメタ情報を書き込む処理を説明するフローチャートである。
【図１６】同一のキャッシュページを保持する書き込み要求を一括化する例を説明するフローチャートである。
【図１７】連続した物理アドレスへの書き込み要求を一括化する例を説明するフローチャートである。
【図１８】データスライスへの書き込み要求を一括処理する例を説明するフローチャートである。
【図１９】履歴情報のダウンリカバリーの例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施形態について、図面を参照しながら詳細に説明する。
図１は、ストレージ装置を説明する例を示す図である。図１のストレージ装置２００は、制御部２０１、メタスライス２０２、データスライス２０３、マスタースライス２０４を備える。制御部２０１は、ストレージ装置に接続されるホストとなるサーバの要求を契機に、スナップショットの処理を制御する。サーバの要求は、サーバのデータが更新された場合に通知される。マスタースライス２０３は、ホストにより更新がなされる更新対象の元データを格納する。また、マスタースライス２０３は、ある時点でのホストが保持する何らかのデータをバックアップしたものであり、。マスタースライス２０４は、スナップショットのコピー元となるデータ群である。実施形態に係るマスタースライス２０４の各データは、４ＫＢのチャンクサイズで区切られて管理される。図１のストレージ装置２００は、ＣＯＷ方式で用いられるＣＯＷスライスを、メタスライス２０２とデータスライス２０３とに分割したものである。メタスライス２０２は、ヘッダチャンク及びメタチャンクなどスナップショットの処理に用いられるメタ情報を保存する領域である。データスライス２０３は、スナップショットの更新データを保存するデータ領域である。メタスライス２０２は、アクセスに使用されるマッピング情報を有する。マッピング情報は、適宜キャッシュに格納され使用される。制御部２０１は、ホストからの書き込み要求であるＩＯ要求（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）に応じて、マッピング情報を参照する。キャッシュに格納されたマッピング情報を参照することで、メタスライスからマッピング情報を参照する場合よりも高速に処理を行うことができ、スナップショットの性能を向上できる。ＩＯ要求は、更新するデータ、更新するデータのサイズ、更新するデータを書き込む先のマスタースライスのアドレス番号の情報が含まれる。図１のデータスライス２０３は、中間にメタスライスなどの割り込みとなるスライスがない。そのため、制御部２０１は、更新をするデータをデータスライス２０３のスライスを連続的に書き込むことができる。そのため、制御部２０１は、データスライス２０３の書き込みに用いるシーク時間を軽減することができ、かつ一括でＩＯ要求を行うことができる。
【００１３】
スケールアウト型のストレージ装置では、容量が大規模であるため、１ＭＢのチャンクサイズが用いられている。しかし、チャンクサイズが大きいとスナップショットのコピー速度が低下する。そのため、チャンクサイズを小さくすることで、コピー速度を改善することができる。例えば、チャンクサイズを４ＫＢとすることで、スナップショットのコピー速度は改善される。しかし、チャンクサイズを小さくした場合、チャンクを管理するマッピング情報の量が増え、マッピング情報をオンメモリにすることが困難になり、キャッシュなどの方法を取り工夫することになる。チャンクサイズの具体的な数値は、一例であり、何ら限定するものではない。
【００１４】
図２は、マッピング情報の例を示す図である。マッピング情報は、マスタースライスのアドレスとＣＯＷスライスのアドレスとを対応づけた情報である。図２（ａ）のマッピング情報は、ＣＯＷ方式を用いたストレージ装置で用いられるマッピング情報である。図２（ａ）のマッピング情報では、例えば、マスタースライスのアドレス8番のデータは、ＣＯＷスライスのアドレス2番に保存されることを示す。なお、マスタースライスのアドレスは、物理アドレスであり、ＣＯＷスライスのアドレスは、論理アドレスが用いられる。マッピング情報が少ないときはオンメモリとし、ハッシュ探索を利用して高速にアドレス変換できる。しかし、マッピング情報が増えるとオンメモリにすることは困難となるため、実施形態ではキャッシュを利用する方法を取る。キャッシュ上にのせられる情報を増やすため、実施形態ではＣＯＷスライスのアドレスのみを持つ構造とする。この構造であれば、マスタースライスのアドレスから対応するＣＯＷスライスのアドレスを検索することも容易である。
【００１５】
図２（ｂ）のマッピング情報は、実施形態に係るマッピング情報である。図２（ｂ）の例は、図２（ａ）のマッピング情報を、実施形態に係るマッピング情報に置き換えた図である。図２（ｂ）のマッピング情報は、マスタースライスのアドレスの順に連続して並べられ、ＣＯＷスライスのアドレス情報を保持している。マスタースライスのアドレスは０から始まるため、例えば、マスタースライスのアドレス8番のデータであるＣＯＷスライスのアドレス2番は、9番目に保持されている。実施形態に係るマッピング情報は、マスタースライスのアドレスとデータスライスのアドレスとを対応づけた情報であり、マスタースライスのアドレスを連続的に羅列した順に、データスライスのアドレスを格納している。図２（ｂ）のようにマッピング情報を作成することによって、マッピング情報に使用されるデータサイズを削減することができる。また、マスタースライスのアドレスの順のマッピング情報を用いることで、マスタースライスのアドレスからＣＯＷスライスへのアドレス変換の時間を短縮することができる。制御部２０１は、実施形態に係るマッピング情報をキャッシュに読み込んで使用する。更に、キャッシュページを複数作ることで、キャッシュヒット率を上げることができ、スナップショットの性能は向上する。なお、図２（ｂ）のマッピング情報に格納されている数字０は、何も割り当てられていないことを示す。数字の０が格納されている領域は、実際のメモリは割り当てられない。そのため、マッピング情報のメモリ領域を小さくできる。ストレージ装置は、未書き込みのマッピング情報を実際にはメモリ領域を割り当てないように使用するため、メタスライスにシンプロビジョニング機構を利用するのが好ましい。
【００１６】
図３は、ストレージ装置の構成の例を示す図である。ストレージ装置３００は、サーバ３４０と接続されており、サーバ３４０で使用されるデータを保存する装置である。ストレージ装置３００は、制御装置３１０、制御装置３２０、記憶装置３３０を有する。制御装置３２０は、制御部３２１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２２、メモリ３２３、ＶＤＩＳＫ（Ｖｉｒｔｕａｌ  Ｄｉｓｋ）３２４、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３２５を備える。制御部３２１は、ストレージシステム内に複数あってもよい。制御部３２１は、制御装置３２０に関係するストレージ装置を制御し、図１の制御部２０１の一例である。ＣＰＵ３２２は、制御部３２１の処理を実行する。ＣＰＵ３２２で使用される各種データは、メモリ３２３及びＨＤＤ３２５に保存される。ＶＤＩＳＫ３２４は、記憶装置３３０の物理的な記憶領域を統合した仮想的な記憶領域であり、制御部３２１によって制御される。ＶＤＩＳＫ３２４は、メタスライス２０２、データスライス２０３、マスタースライス２０４を有する。制御装置３１０は、管理部３１１、ＣＰＵ３１２、メモリ３１３、ＨＤＤ３１４、制御部３１５、ＶＤＩＳＫ３１６、管理用ＤＢ（Ｄａｔａ  Ｂａｓｅ）３１７を備える。制御装置３１０は、制御装置３２０を管理するために、管理部３１１と管理用ＤＢ３１７を備えている。管理部３１１は、ストレージシステム内の１つの制御装置に存在し、全制御装置のハードウェアの割り当て情報や状態の情報に関して管理用ＤＢ３１７を用いて管理する。制御装置３１０は、制御装置３２０の親となる制御装置である。ＣＰＵ３１２は、管理部３１１と制御部３１５の処理を実行する。ＣＰＵ３１２で使用される各種データはメモリ３１３、ＨＤＤ３１４に保存される。ＶＤＩＳＫ３１６は、記憶装置３３０を用いた仮想的な記憶領域であり、制御部３１５によって制御される。記憶装置３３０は、複数のハードディスクを備え、各ハードディスクはＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）によって識別される。ＬＵＮは、各ハードディスクを識別するための数字である。図３のストレージ装置は、ＬＵＮ３３１ａ〜ＬＵＮ３３１ｎを備え、ＬＵＮ３３１ｂ〜ＬＵＮ３３１ｍがＶＤＩＳＫ３２４に割り当てられており、ＬＵＮ３３１ａ及びＬＵＮ３３１ｎがＶＤＩＳＫ３１６に割り当てられている。ＶＤＩＳＫは、シンプロビジョニング機構を用いる。図１の制御部２０１は、制御部３１５であってもよい。また、メタスライス２０２、データスライス２０３、マスタースライス２０４は、ＶＤＩＳＫ３１６が有してもよい。
【００１７】
図４は、メタスライスの例を詳細に説明した図である。メタスライス２０２は、８ＫＢのチャンクサイズを持つデータ群である。チャンクサイズは、変更することができ、データのサイズを限定するものではない。制御部２０１は、メタスライス２０２を参照することで、スナップショットの制御を行う。メタスライス２０２のチャンク０の領域は、メタスライスに関するヘッダ情報が格納している。メタスライス２０２のチャンク１の領域は、メタスライスに関するマッピング情報を格納している。メタスライス２０２のチャンク２の領域は、スナップショットに用いられる後述する（図１０）履歴情報、後述する（図１１）プリフェッチ情報が格納している。メタスライス２０２のチャンク３以降の領域は、本実施形態に用いられるマッピング情報であるアドレスが格納される。
【００１８】
＜メタスライスへの書き込み要求の一括化＞
制御部２０１は、サーバ３４０からの書き込み要求を受け取る。書き込み要求は、データを更新するために用いられるデータやメタ情報が含まれる。制御部２０１は、受領した要求を所定のサイズに分割し、処理を行う。制御部２０１は、分割された各々のＩＯ要求に応じて、データスライス、メタスライスにアクセスを行う。制御部２０１は、例えば、連続した物理アドレスに書き込みを行う場合、ＩＯ要求をまとめて1度で実行したほうが効率的であり、データスライス又はメタスライスへのアクセス回数も減らすことができる。そこで、実施形態に係るストレージ装置は、メタスライスへのＩＯ要求に対して、同一のキャッシュページを保持するＩＯ要求を一括化する。更に、実施形態に係るストレージ装置は、メタスライスへのＩＯ要求に対して、連続した物理アドレスへのＩＯ要求を一括化する。
【００１９】
同一のキャッシュページの情報を保持するＩＯ要求を一括化し、更に、連続した物理アドレスへのＩＯ要求を一括化することで、制御部２０１は、キャッシュへのアクセス回数を減らすことができる。スナップショットの処理に時間がかかる原因には、アクセスごとにアクセス先のアドレスを特定する処理が発生することが挙げられる。本実施形態にかかる方法では、同一のキャッシュページに関する複数のＩＯ要求が１つのＩＯ要求にまとめられる、更に、連続した物理アドレスへのＩＯ要求にまとめられるため、スナップショットの性能を向上させることができる。なお、ＩＯ要求は、書き込みをするデータサイズ、書き込みをする対象となるマスタースライスのアドレス番号、キャッシュページに関する情報などの付加情報を持つので制御部はこれらの情報を用いて一括化を行う。
【００２０】
図５は、同一のキャッシュページを保持する書き込み要求を一括化する例を説明する図である。図５は、書き込み要求を一括化する例を、図５Ａ（１）〜図５Ｂ（７）を用いて説明している。図５の例を、キュー４０１ａ〜キュー４０１ｂ、ジョブ４０２ａ〜ジョブ４０２ｅ、付加情報４０３ａ〜付加情報４０３ｆを用いて説明する。キュー４０１ａは、ジョブ４０２ａ、ジョブ４０２ｂ・・・ジョブ４０２ｅの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたＩＯ要求である。図５Ａ（１）では、ジョブ４０２ａ〜ジョブ４０２ｅが、キュー４０１ａの処理を待機している状態である。各ジョブ４０２ａ〜ジョブ４０２ｅは、各ジョブ４０２ａ〜ジョブ４０２ｅに対応した付加情報４０３ａ〜４０３ｅを備える。図５の例では、付加情報４０３ｂと付加情報４０３ｄとが同一のキャッシュページの情報を持っている。
【００２１】
図５Ａ（１）    制御部２０１は、キュー４０１ａの処理を待っている末尾のジョブ４０２ｅから順に各ジョブに関連づいている付加情報をチェックする。
図５Ａ（２）    制御部２０１は、同一のキャッシュページの情報を持つジョブを見つける。図５の例では、付加情報４０３ｂと付加情報４０３ｄとが同一のキャッシュページの情報を持っている。
図５Ａ（３）    制御部２０１は、同一のキャッシュページの情報を持つジョブを対象にした専用の付加情報を作成する。図５Ａ（３）では、付加情報４０３ｄを対象にした専用の付加情報４０３ｆを作成する。
図５Ａ（４）    制御部２０１は、同一のキャッシュページの情報を持つ後続のジョブが実行される際に、並列して同一のキャッシュページの情報を持つ先頭のジョブが実行されるよう設定する。図５Ａ（４）では、キュー４０１ｂに、ジョブ４０２ｂを割り当てる。付加情報４０３ｄは、所定のキューに格納される。
図５Ｂ（５）    制御部２０１は、付加情報４０３ｆをジョブ４０２ｄの付加情報として設定する。
図５Ｂ（６）    制御部２０１は、非同期ＩＯを実行する。
図５Ｂ（７）    制御部２０１は、終了した各ジョブの付加情報の情報を集める。なお、図５Ａ（３）で作成された付加情報４０３ｆは、破棄される。
【００２２】
図６は、連続した物理アドレスを保持する書き込み要求を一括化する例を説明する図である。図６は、連続した物理アドレスへの書き込み要求を一括化する例を、図６Ａ（１）〜図６Ｃ（９）を用いて説明している。図６の例を、キュー４１１ａ〜キュー４１１ｃ、ジョブ４１２ａ〜ジョブ４１２ｆ、付加情報４１３ａ〜付加情報４１３ｈを用いて説明する。キュー４１１ａは、ジョブ４１２ａ、ジョブ４１２ｂ・・・ジョブ４１２ｅの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたＩＯ要求である。なお、図６の連続した物理アドレスへの書き込み要求を一括化する処理は、図５の同一のキャッシュページを保持する書き込み要求を一括化する処理と併せて実施される。連続した物理アドレスへのＩＯ要求を一括処理することで、制御部２０１は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。図６Ａ（１）に示す図は、図５Ｂ（５）の処理後の例である。図６Ａ（１）では、ジョブ４１２ａ〜ジョブ４１２ｅが、キュー４１１ａの処理を待機している状態である。ジョブ４１２ｆは、ジョブ４１２ｄの処理と並列してキュー４１１ｂに実行されるように設定されている。付加情報４１３ｄは、図５Ａ（３）で作成される付加情報の例である。付加情報４１３ｆは、所定のキューに格納された付加情報である。各ジョブ４１２ａ〜ジョブ４１２ｅは、各ジョブ４１２ａ〜ジョブ４１２ｅに対応した付加情報を備える。図６の例では、付加情報４１３ｂと付加情報４１３ｆとが連続した物理アドレスの情報を持っている。
【００２３】
図６Ａ（１）    制御部２０１は、キュー４１１ａの処理を待っている先頭のジョブ４１２ａから順に各ジョブに関連づいている付加情報をチェックする。
図６Ａ（２）    制御部２０１は、連続した物理アドレスの情報を持つジョブを見つける。図６の例では、付加情報４１３ｂと付加情報４１３ｆとが連続した物理アドレスの情報を持っている。
図６Ａ（３）    制御部２０１は、連続した物理アドレスの情報を持つジョブを対象にした専用の付加情報を作成する。図５６（３）では、付加情報４１３ｂと付加情報４１３ｄを対象にした専用の付加情報４１３ｈを作成する。
図６Ｂ（４）    制御部２０１は、連続した物理アドレスの情報を持つ先頭のジョブが実行される際に、並列して連続した物理アドレスの情報を持つ後続のジョブが実行されるよう設定する。図６Ａ（４）では、キュー４１１ｃに、ジョブ４１２ｄを割り当てる。付加情報４１３ｂは、所定のキューに格納される。
図６Ｂ（５）    制御部２０１は、ジョブ４１２ｄの付加情報４１３ｄを削除し、ジョブ４１２ｆをジョブ４１２ｄの後続のジョブと設定する。
図６Ｂ（６）    制御部２０１は、付加情報４１３ｈをジョブ４１２ｂの付加情報として設定する。
図６Ｃ（７）    制御部２０１は、非同期ＩＯを実行する。
図６Ｃ（８）    制御部２０１は、終了した各ジョブの付加情報の情報を集める。なお、付加情報４１３ｈは、破棄される。
【００２４】
同一のキャッシュページを持つジョブを一括化する処理及び連続した物理アドレスの情報を持つジョブを一括化する処理について、制御部２０１は、どちらか一方を行うようにしてもよく、両方の処理を行うようにしてもよい。
【００２５】
＜スナップショットの書き込み方法＞
図７は、スナップショットの処理の例を説明する図である。図７Ａは、ＣＯＷ方式のスナップショットの処理の例を説明する図である。図７は、サーバから、データｂ及びデータｃを書き込みする要求がきた場合の例である。この例では、データｂ及びデータｃは、マスタースライス１０２のデータａのチャンクを更新するためのデータである。ＣＯＷ方式のスナップショットの処理を、図７Ａの（１）〜（３）を用いて説明する。図７Ａは、制御部１０１、マスタースライス１０２、ＣＯＷスライス１０３を備える。図７Ａの（１）に例示するように、サーバから書き込み要求があると、制御部１０１は、更新用のデータｂ及びデータｃをメモリに保存する。制御部１０１は、データｂ及びデータｃがデータを書き込む対象のデータチャンクであるデータａを、マスタースライス１０２から読み取る。制御部１０１は、データａをメモリに保存する。図７Ａの（２）では、制御部１０１は、読み出したデータａをＣＯＷスライス１０３に書き込む。図７Ａの（３）において、制御部１０１は、データｂ及びデータｃをＣＯＷスライスのデータａに書き込み、データａ´を作成する。
【００２６】
図７Ｂは、実施形態に係るスナップショットの処理の例を説明する図である。図７Ｂにおいて、図１と同じものは、同一の番号を付している。実施形態に係るスナップショットの処理を図７Ｂの（４）〜（６）を用いて説明する。図７Ｂの（４）に例示するように、サーバから書き込み要求があると、制御部２０１は、データｂ及びデータｃをメモリに保存する。制御部２０１は、データｂ及びデータｃがデータを書き込む対象であるデータａを、マスタースライス２０４から読み取る。制御部２０１は、データａをメモリに保存する。図７Ｂの（５）において、制御部２０１は、データｂ及びデータｃをデータａに書き込み、データａ´を作成する。図７Ｂの（６）において、制御部２０１は、データａ´をデータスライス２０３に書き込む。図７Ａのスナップショットでは、ＣＯＷスライスへの書き込みをするＩＯ要求は、データａの書き込み、データｂの書き込み、及び、データｃの書き込みの3回発生する。一方、図７Ｂのスナップショットでは、データスライスへの書き込みをするＩＯ要求は、データａ´の一回である。そのため、図７Ｂに示すスナップショットの方法で書き込みを行うことで、データスライスへのアクセスの回数を減らすことがで、スナップショットの処理速度が向上する。
【００２７】
＜制御部の読み込み処理の削減＞
図８は、複数のチャンクに跨るデータの書き込み要求に関する処理の例を示す図である。図８は、チャンク１〜チャンク３に跨ったデータに対して書き込み要求があった場合の例を示している。チャンク１及びチャンク３への書き込み要求は、チャンク１、チャンク３の一部分のデータを更新する要求である。チャンク２への書き込み要求は、チャンク２全体のデータを更新する要求である。図７Ｂに示すスナップショットの方法では、制御部は、チャンク１〜チャンク３のデータをマスタースライスから読み取る。次に、制御部は、チャンク１〜チャンク３のデータをＣＯＷスライスに書き込む。その後、制御部は、ＣＯＷスライスに書き込んだチャンク１〜チャンク３のデータに対して、更新用のデータを上書きする。
【００２８】
実施形態に係るスナップショットでは、制御部２０１は、チャンク全体のデータが更新されるチャンクのデータの読み込みを行わない。ここでは、チャンク２のデータを制御部２０１は読み込まない。チャンク２のデータは、制御部２０１でデータを更新される際に全部のデータが更新されてしまう。そのため、制御部２０１がチャンク２のデータを読み込む処理は不要である。このような、全体が更新されるチャンクの読み込みを行わないことで、無駄な読み込み処理を削減することができ、スナップショットの性能が向上する。
【００２９】
＜データスライスへの書き込み要求の一括化＞
制御部２０１は、サーバ３４０からの書き込み要求を受け取ると、受領した要求を所定のサイズに分割し、処理を行う。制御部２０１は、分割された各々のＩＯ要求に応じて、データスライスにアクセスを行う。制御部２０１は、例えば、連続した物理アドレスに書き込みを行う場合、ＩＯ要求をまとめて1度で実行したほうが効率的であり、データスライスへのアクセス回数を減らすことができる。そこで、実施形態に係るストレージ装置は、データスライスへのＩＯ要求に対して、連続した物理アドレスへのＩＯ要求を一括化して処理を行う。連続した物理アドレスへのＩＯ要求を一括化することで、制御部２０１は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。なお、ＩＯ要求は、書き込みをするデータサイズ、書き込みをする対象となるマスタースライスのアドレス番号、キャッシュページに関する情報などの付加情報を持つので制御部はこれらの情報を用いて一括化を行う。
【００３０】
図９は、データスライスへの書き込み要求を一括処理する例を説明する図である。図９は、データスライスへの書き込み要求を一括化する例を、図９Ａ（１）〜図９Ｂ（７）を用いて、説明する。図９の例を、キュー４２１ａ〜キュー４２１ｂ、ジョブ４２２ａ〜ジョブ４２２ｅ、付加情報４１３ａ〜付加情報４１３ｆを用いて説明する。キュー４２１ａは、ジョブ４２２ａ、ジョブ４２２ｂ・・・ジョブ４２２ｅの順にジョブを順次処理する。ジョブ及びジョブに関連づけられた付加情報は、制御部によって分割されたＩＯ要求である。連続した物理アドレスに書き込みをするデータを一括処理することで、制御部２０１は、キャッシュへのアクセス回数を減らすことができ、スナップショットの性能を向上させることができる。図９Ａ（１）では、ジョブ４２２ａ〜ジョブ４２２ｅが、キュー４２１ａの処理を待機している状態である。各ジョブ４２２ａ〜ジョブ４２２ｅは、各ジョブ４２２ａ〜ジョブ４２２ｅに対応した付加情報４２３ａ〜付加情報４２３ｅを備える。図９の例では、付加情報４２３ｂと付加情報４２３ｄとが、同じマスタースライスのアドレスの情報を持っている。
【００３１】
図９Ａ（１）    制御部２０１は、キュー４２１ａの処理を待っている先頭のジョブ４２２ａから順に各ジョブに関連づいている付加情報をチェックする。
図９Ａ（２）    制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブを見つける。図５（２）では、付加情報４２３ｂと付加情報４２３ｄは、同じマスタースライスのアドレス番号の情報を持っている。
図９Ａ（３）    制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブを対象にした専用の付加情報を作成する。図９（３）では、付加情報４２３ｂと付加情報４２３ｄとを対象にした専用の付加情報４２３ｆを作成する。
図９Ａ（４）    制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブのうち、後続にあるジョブを先頭のジョブが実行される際に、並列して処理されるよう設定する。図９（４）では、キュー４２１ｂに、ジョブ４２２ｄを割り当てる。付加情報４２３ｂは、処理が終了した付加情報として、他のキューに保存される。
図９Ｂ（５）    制御部２０１は、付加情報４２３ｆをジョブ４２２ｂの付加情報として設定する。
図９Ｂ（６）    制御部２０１は、非同期ＩＯを実行する。
図９Ｂ（７）    制御部２０１は、終了した各ジョブの付加情報の情報を集める。なお、図９（３）で作成する付加情報は、破棄される。
【００３２】
＜ダウンリカバリーについて＞
実施形態に係るメタスライス２０２は、データスライスのどこのアドレスまでデータを書き込みしたかを示す、データ書き込み処理の進行具合を示す情報である履歴情報を保存している。履歴情報は、更に、メタスライスへの書き込み処理の進行具合を示す情報を保存している。制御部２０１は、データスライスの書き込み処理が終了し、その後、メタスライスへの書き込み処理を行う際に、履歴情報を更新する。制御部２０１が、履歴情報を更新中に何らかの障害が発生し、履歴情報が更新できなかった場合、履歴情報と実際の状態にずれが発生する可能性がある。何らかの障害が発生しても、履歴情報のリカバリーができるのが好ましい。なお、履歴情報は、制御部２０１を停止する際にも更新される。
【００３３】
図１０は、履歴情報のダウンリカバリーの例を示す図である。図１０は、図１と同じものは、同一の番号を付している。図１０は、制御部２０１がデータ１〜データ９をデータスライスに書き込み済みであるにも関わらず、何らかの障害によりデータ７に関するメタ情報のメタスライスへの書き込みが失敗した例である。なお、データ１〜データ６、データ８〜データ９のメタ情報は、メタスライス２０２への書き込みが成功している。図１０（ａ）は、障害発生後に、制御部２０１を起動した際のストレージ装置の例である。図１０（ａ）のデータスライス２０３は、データ１〜データ９を保存している。図１０（ａ）のメタスライス２０２は、データ１〜データ６、データ８〜データ９のメタ情報を保存している。メタスライス２０２のアドレス３が示す領域には、データ１とデータ４のメタ情報が格納されている。メタスライス２０２のアドレス４が示す領域には、データ２とデータ３のメタ情報が格納されている。メタスライス２０２のアドレス５が示す領域には、データ８とデータ９のメタ情報が格納されている。メタスライス２０２のアドレス６が示す領域には、データ５とデータ６のメタ情報が格納されている。メタスライス２０２のアドレス７が示す領域は、データ７のメタ情報を格納する領域である。
【００３４】
履歴情報は、既にデータスライスに書き込み済みのデータチャンク数、メタスライスに更新中のメタチャンクの数、メタスライスに更新中のメタチャンクのアドレス情報を有する。履歴情報の既にデータスライスに書き込み済みのデータチャンク数は、データスライスへのデータ書き込み処理の進行具合を示す情報である。履歴情報のメタスライスに更新中のメタチャンクの数と、メタスライスに更新中のメタチャンクのアドレス情報とは、メタスライスへの書き込み処理の進行具合を示す情報である。図１０（ａ）の履歴情報の例は、既にデータスライスに書き込み済みのデータチャンク数が４、メタスライスに更新中のメタチャンクの数が３、メタスライスに更新中のメタチャンクのアドレス情報が５，６，７を保持している。データスライス２０３では、データ１〜データ９までの書き込みが成功しているにも関わらず、履歴情報には、書き込み済みのデータチャンク数が４となっており、履歴情報と実際の状態にずれが生じている。そのため、制御部２０１は、履歴情報のリカバリーを行う。なお、ストレージ装置の制御部２０１が正常に停止された場合、更新中のメタチャンクの数は０が格納される。そのため、制御部２０１は、起動したときに取得した履歴情報の更新中のメタチャンクの数が０でなかった場合、リカバリーを行う。
【００３５】
制御部２０１は、データスライスに書き込みが成功したデータのメタ情報をリストアップする。ここで、履歴情報は、データ１〜データ４までのデータが、データスライスに書き込みが成功していること示している。そのため、履歴情報に含まれる情報は、リストアップの対象から外す。制御部２０１は、データスライスに書き込みが成功したデータは、データ５、データ６、データ８、データ９と判断する。制御部２０１は、障害によってメタスライスに書き込みが失敗したデータを、履歴情報が有するメタスライスに更新中のメタチャンクのアドレス情報を用いてメタスライスから探す。制御部２０１は、書き込みが失敗したデータよりも前に書き込まれたデータ５，データ６を正常に書き込みが成功したデータと判断する。制御部２０１は、データ６までが正常に処理が行われたことを、履歴情報に書き込む。図１０（ｂ）は、履歴情報のリカバリーが行われた後の例を示すストレージ装置の図である。制御部２０１によって、履歴情報の書き込み済みのデータチャンク数は、６となっている。逆に、制御部２０１は、データ７よりも後に書き込まれるデータ８，データ９は正常に書き込みがされたとは判断せず、無効なデータと判断する。そのため、メタスライス２０２からデータ８、データ９に関するメタ情報を削除する。制御部２０１は、書き込みが失敗したデータからバックアップを再開する。
【００３６】
＜メタデータのプリフェッチ＞
図１１は、メタデータのプリフェッチの例を示す図である。本実施形態では、マッピング情報の一部をキャッシュ上で扱うことによって、スナップショットの性能向上が見込まれる。しかしながら、キャッシュヒットした場合以外は、キャッシュを用いたマッピング情報はスナップショットの性能向上の効果を得られない。シーケンシャルアクセスでは、複数のマッピング情報を取得する。連続した全てのマッピング情報に対してキャッシュヒットをしない限り、データスライスへの書き込み要求のたびに、メタスライスのマッピング情報をキャッシュに読み込む処理をすることになる。書き込み処理及び、読み込む処理が増えると、スナップショットの性能は劣化してしまう。メタ情報のキャッシュで参照の可能性の高いマッピング情報をプリフェッチすることで、キャッシュヒットする確率を向上させ、スナップショットの性能劣化を緩和する。
【００３７】
制御部２０１は、物理アドレスを閾値以上の数備え、連続した物理アドレスへのＩＯ要求を一括化したデータをシーケンシャルアクセスと判定する。連続した物理アドレスへのＩＯ要求を一括化したデータは、制御部に用いられるキャッシュページに関する情報を有している。制御部は、使用すると予想されるキャッシュページの情報をキャッシュが持っているかを判定する。制御部は、キャッシュが使用すると予想されるキャッシュページを持っていなかった場合、先にキャッシュページをキャッシュに読込むプリフェッチを実行する。図１１は、図１と同一のものは、同一の番号を付している。図１１のストレージ装置は、メタスライス２０２が読み込むキャッシュ領域２１０を有する。マスタースライス２０４は、チャンク０〜チャンクｎを備えるデータ群であり、図１１は、チャンク０〜チャンク８までのシーケンシャルアクセスがあった場合の例である。図１１のメタスライス２０２が備えるマッピング情報は、キャッシュページ００〜キャッシュページ０８を持つ。シーケンシャルアクセスで使用されるチャンク０〜チャンク５のデータは、キャッシュページ０４を使用するもので、チャンク６〜チャンク８のデータは、キャッシュページ０５を使用するものとする。図１１のキャッシュ領域２１０は、キャッシュページ０２〜キャッシュページ０４までを保持しているとする。制御部２０１は、シーケンシャルアクセスによって、チャンク０〜チャンク５にアクセスが発生した場合、次に使用されると予想されるキャッシュページ０５を予めキャッシュ領域２１０に読み込むプリフェッチを行う。プリフェッチを行うことで、次にキャッシュ領域２１０で参照される可能性の高い情報をキャッシュ領域に読み込むことができ、キャッシュヒットする確率が高くなり、スナップショットの性能が向上する。また、キャッシュ領域のキャッシュページはアクセスの統計情報を取得し、使用頻度の少ないキャッシュページを削除していくようにしてもよい。
【００３８】
図１２は、ＩＯ要求を受領した制御部の処理の例を説明するフローチャートである。制御部２０１は、サーバよりＩＯ要求を受領する（ステップＳ１０１）。制御部２０１は、サーバより受領したＩＯ要求のデータサイズが閾値以上かを判断する（ステップＳ１０２）。制御部２０１は、ＩＯ要求を分割する（ステップＳ１０３、ステップＳ１０２でＹＥＳ）。制御部２０１は、分割されたＩＯ要求が書き込みを行う予定のデータが、現在使用中であるかを判断する（ステップＳ１０４、Ｓ１０３の処理後及びＳ１０２でＮＯ）。制御部２０１は、分割されたＩＯ要求を後続のキューとして設定する（ステップＳ１０６）。制御部２０１は、ステップＳ１０６の処理が終わると、処理をＳ１０４に返す。制御部２０１は、マッピング情報を参照する（ステップＳ１０５、ステップＳ１０４でＮＯ）。ステップＳ１０５は、図１３のフローチャートで詳細を示す。
図１３は、制御部がマッピング情報を参照する処理の例を説明するフローチャートである。制御部２０１は、ＩＯ要求が書き込みを行うデータのマスタースライスのアドレスがキャッシュに含まれるかを判断する（ステップＳ２０１）。制御部２０１は、メタスライスからキャッシュ領域にマッピング情報を読み込む（ステップＳ２０２、ステップＳ２０１でＮＯ）。制御部２０１は、ＩＯ要求が更新するマスタースライスのアドレスに、データスライスのチャンクのアドレスが割り当てられているかを判断する（ステップＳ２０３、ステップＳ２０２の後又はステップＳ２０１でＹＥＳ）。制御部２０１は、ＩＯ要求のマスタースライスのアドレスをデータスライスのチャンクアドレスに変換する（ステップＳ２０４、ステップＳ２０３でＹＥＳ）。制御部２０１は、ＩＯ要求が使用するマスタースライスのアドレスを使用中とする（ステップＳ２０５）。制御部２０１は、データのコピーに関する処理を行う（ステップＳ２０６）。ステップＳ２０６は、図１４にフローチャートで詳細を示す。
【００３９】
図１４は、データのコピーに関する処理の例を説明するフローチャートである。制御部２０１は、ＩＯ要求で更新するデータが、各チャンクにおいて一部コピーかを判断する（ステップＳ３０１）。ステップＳ３０１の処理は、図８の説明に該当する。ステップＳ３０１でＮＯと判断されるチャンクは、図８のチャンク２のように全体を更新対象とされるチャンクであり、この場合、制御部２０１へのチャンク２のコピーはしなくてよい。一方、一部コピーは、図８のチャンク１，３であり、制御部２０１へチャンクをコピーする。制御部２０１は、チャンクを制御部２０１に読み込む（ステップＳ３０２、ステップＳ３０１でＹＥＳ）。制御部２０１は、図１２のＳ１０３で分割したＩＯ要求を一括化する（ステップＳ３０３、ステップＳ３０１でＮＯ）。ステップＳ３０３の一括化処理は、図５，図６，図９で説明した処理である。制御部２０１は、ＩＯ要求の更新用データを制御部内で更新し、更新後のデータをデータスライス２０３に書き込む（ステップＳ３０４）。制御部２０１は、マッピング情報の書き込み処理を行う（ステップＳ３０５）。マッピングの書き込み処理は、図１５で詳細に説明する。
【００４０】
図１５は、制御部がメタスライスにメタ情報を書き込む処理を説明するフローチャートである。制御部２０１は、履歴情報及びプリフェッチに関する情報をメタスライス２０２に書き込む（ステップＳ４０１）。制御部２０１は、マッピング情報をメタスライス２０２に書き込む（ステップＳ４０２）。ステップＳ４０２の処理が終了すると、制御部２０１は処理を終了する。
【００４１】
図１６は、同一のキャッシュページを保持する書き込み要求を一括化する例を説明するフローチャートである。制御部２０１は、キューイングされているジョブの付加情報を末尾にキューイングされているジョブからチェックする（ステップＳ５０１）。制御部２０１は、同一のキャッシュページを持つジョブがあるかを判断する（ステップＳ５０２）。制御部２０１は、同一のキャッシュページを持つジョブのうち、後続側にキューイングされているジョブの付加情報を対象にした専用の付加情報を作成する（ステップＳ５０３、ステップＳ５０２でＹＥＳ）。制御部２０１は、同一のキャッシュページを持つジョブのうち、後続にキューイングされているジョブが実行される際に、前方にキューイングされているジョブが実行されるよう設定する（ステップＳ５０４）。制御部２０１は、専用の付加情報を後続にキューイングされているジョブに設定する（ステップＳ５０５）。制御部２０１は、非同期ＩＯを実行する（ステップＳ５０６、ステップＳ５０２でＮＯ）。制御部２０１は、全ジョブの付加情報を収集する（ステップＳ５０７）。制御部２０１は、同一のキャッシュページを保持する書き込み要求を一括化する処理を終了する。
【００４２】
図１７は、連続した物理アドレスへの書き込み要求を一括化する例を説明するフローチャートである。制御部２０１は、キューイングされているジョブの付加情報を先頭にキューイングされているジョブからチェックする（ステップＳ６０１）。制御部２０１は、連続した物理アドレスを持つジョブがあるかを判断する（ステップＳ６０２）。制御部２０１は、連続した物理アドレスを持つジョブを対象にした専用の付加情報を作成する（ステップＳ６０３、ステップＳ６０２でＹＥＳ）。制御部２０１は、連続した物理アドレスの情報を持つ先頭のジョブが実行される際に、並列して連続した物理アドレスの情報を持つ後続のジョブが実行されるよう設定する（ステップＳ６０４）。制御部２０１は、連続した物理アドレスの情報を持つ後続のジョブが、更に並列して実行されるジョブを保持しているかを判断する（ステップＳ６０５）。制御部２０１は、連続した物理アドレスの情報を持つ後続のジョブの更に後続に、並列して実行されるジョブをキューイングする（ステップＳ６０６、ステップＳ６０５でＹＥＳ）。制御部２０１は、専用の付加情報を、連続した物理アドレスの情報を持つ先頭のジョブに設定する（ステップＳ６０７、ステップＳ６０５でＮＯ）。制御部２０１は、非同期ＩＯを実行する（ステップＳ６０８、ステップＳ６０２でＮＯ）。制御部２０１は、全ジョブの付加情報を収集する（ステップＳ６０９）。制御部２０１は、連続した物理アドレスへの書き込み要求を一括化する処理を終了する。
【００４３】
図１８は、データスライスへの書き込み要求を一括処理する例を説明するフローチャートである。制御部２０１は、キューイングされているジョブの付加情報を先頭にキューイングされているジョブからチェックする（ステップＳ７０１）。制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブがあるかを判断する（ステップＳ７０２）制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブを対象にした専用の付加情報を作成する（ステップＳ７０３、ステップＳ７０２でＹＥＳ）。制御部２０１は、同じマスタースライスのアドレスの情報を持つジョブのうち、前方にキューイングされているジョブが実行される際に、後方にキューイングされているジョブが実行されるよう設定する（ステップＳ７０４）。制御部２０１は、専用の付加情報を前方にキューイングされているジョブに設定する（ステップＳ７０５）。制御部２０１は、非同期ＩＯを実行する（ステップＳ７０６、ステップＳ７０２でＮＯ）。制御部２０１は、全ジョブの付加情報を収集する（ステップＳ７０７）。制御部２０１は、データスライスへの書き込み要求を一括化する処理を終了する。
【００４４】
図１９は、履歴情報のダウンリカバリーの例を説明するフローチャートである。制御部２０１は、起動するとメタスライスから履歴情報を読み込む（ステップＳ８０１）。制御部２０１は、履歴情報に含まれる既に書き込み済みのデータチャンク数と、更新中のメタチャンクの数の情報を取得する（ステップＳ８０２）。制御部２０１は、更新中のメタチャンクの数が０かどうかを判断する（ステップＳ８０３）。制御部２０１は、データスライスに書き込みが成功したデータのメタ情報をリストアップする（ステップＳ８０４、ステップＳ８０３でＮＯ）。制御部２０１は、障害によってメタスライスに書き込みが失敗したデータを抽出する（ステップＳ８０５）。制御部２０１は、書き込みが失敗したデータよりも前に書き込まれたデータを、正常に書き込みが成功したデータと判断する（ステップＳ８０６）。制御部２０１は、正常に書き込みが成功したデータを用いて履歴情報を修復する（ステップＳ８０７）。制御部２０１は、Ｓ８０４でリストアップされたメタ情報のうち、書き込みが失敗したデータよりも後に書き込まれたメタ情報を、メタスライスから削除する（ステップＳ８０８）。制御部２０１は、履歴情報をメタスライスに書き込む（ステップＳ８０９）。制御部２０１は、既に書き込み済みのデータチャンク数の情報を取得する（ステップＳ８１０、ステップＳ８０３でＹＥＳ）。
【００４５】
以上、説明したように、実施形態にかかる方法では、ストレージ装置の大規模化及びシステムの大規模化に伴い、マッピング情報の量が増えても、スナップショットの性能を維持することができる。
【００４６】
上述の実施形態に関し、さらに以下の付記を開示する。
（付記１）
ホストにより更新がなされる更新対象の元データを格納する第１の格納領域と、
前記第１の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分ける制御部と、
前記制御部により振り分けられた前記複数の更新データを格納する第２の格納領域と、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第１の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、格納する第３の格納領域を備える、
ことを特徴とするストレージ制御装置。
（付記２）
前記更新領域アドレスと前記格納先アドレスを対応付けた情報は、前記更新領域アドレスが示す数の順に前記格納先アドレスを格納することにより示された情報であり、前記第３の格納領域及びキャッシュに保存される
ことを特徴とする付記１記載のストレージ制御装置。
（付記３）
前記更新領域アドレスと前記格納先アドレスを対応付けた情報を前記第３の格納領域に格納する際に、
前記制御部は、前記複数の更新データを、更に、同一のキャッシュページごとに振り分ける
ことを特徴とする付記１又は付記２記載のストレージ制御装置。
（付記４）
前記第３の格納領域は、前記第２の格納領域への前記複数の更新データの書き込み処理の進行具合を示す情報と、前記更新領域アドレスと前記格納アドレスを対応付けた情報である対応情報の書き込み処理の進行具合を示す情報とを、履歴情報として保存しており、
前記制御部は、起動する際に前記履歴情報を参照し、前記履歴情報に、前記制御部が停止する前に前記対応情報の書き込み処理が終了していない更新データに関する情報が含まれていた場合、
前記対応情報の書き込み処理が終了していない更新データよりも先に処理されたデータを正常に実行された更新データであると判定し、前記正常に実行された更新データに関する情報を、前記履歴情報に保存し、
前記対応情報の書き込み処理が終了していない更新データからバックアップを再開する
ことを特徴とする付記１〜３のいずれかに記載のストレージ制御装置。
（付記５）
前記制御部は、前記複数の更新データを、シーケンシャルアクセスを行うデータか、ランダムアクセスを行うデータか判定し、
前記複数の更新データがシーケンシャルアクセスを行うデータであった場合、
前記複数の更新データが上書きする領域を指定するアドレスを含むキャッシュページの次のキャッシュページをあらかじめ前記キャッシュに保存する
ことを特徴とする付記２に記載のストレージ制御装置。
（付記６）
ホストにより更新がなされる更新対象の元データを第１の格納領域に格納し、
前記第１の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分け、
振り分けられた前記複数の更新データを第２の格納領域に格納し、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第１の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、第３の格納領域に格納する処理をストレージ装置に実行させる
ことを特徴とする制御プログラム。
（付記７）
ホストにより更新がなされる更新対象の元データを第１の格納領域に格納し、
前記第１の格納領域に格納された前記更新対象の元データに対して書き込むべきデータを複数の更新データに分割することにより、連続したアドレスごとに前記複数の更新データを振り分け、
振り分けられた前記複数の更新データを第２の格納領域に格納し、
前記更新対象の元データの前記複数の更新データによって上書きされるべき前記第１の格納領域のアドレスである更新領域アドレスを、前記複数の更新データを格納している前記第２の格納領域のアドレスである格納先アドレスに対応付けた情報を、第３の格納領域に格納する処理をストレージ装置に実行させる
ことを特徴とする制御方法。
【符号の説明】
【００４７】
１０１  制御部
１０２  マスタースライス
１０３  ＣＯＷスライス
２００  ストレージ装置
２０１  制御部
２０２  メタスライス
２０３  データスライス
２０４  マスタースライス
２１０  キャッシュ領域
３００  ストレージ装置
３１０  制御装置
３１１  管理部
３１２  ＣＰＵ
３１３  メモリ
３１４  ＨＤＤ
３１５  制御部
３１６  ＶＤＩＳＫ
３１７  管理用ＤＢ
３２０  制御装置
３２１  制御部
３２２  ＣＰＵ
３２３  メモリ
３２４  ＶＤＩＳＫ
３２５  ＨＤＤ
３３０  記憶装置
３３１ａ〜３３１ｎ  ＬＵＮ
３４０  サーバ
４０１ａ〜４０１ｂ  キュー
４０２ａ〜４０２ｅ  ジョブ
４０３ａ〜４０３ｆ  付加情報
４１１ａ〜４１１ｃ  キュー
４１２ａ〜４１２ｆ  ジョブ
４１３ａ〜４１３ｈ  付加情報
４２１ａ〜４２１ｂ  キュー
４２２ａ〜４２２ｅ  ジョブ
４１３ａ〜４１３ｆ  付加情報
【図１】
2014199583.tif 000003
【図３】
2014199583.tif 000004
【図４】
2014199583.tif 000005
【図８】
2014199583.tif 000006
【図１１】
2014199583.tif 000007
【図１２】
2014199583.tif 000008
【図１３】
2014199583.tif 000009
【図１４】
2014199583.tif 000010
【図１５】
2014199583.tif 000011
【図１６】
2014199583.tif 000012
【図１７】
2014199583.tif 000013
【図１８】
2014199583.tif 000014
【図１９】
2014199583.tif 000015
【図２】
2014199583.tif 000016
【図５Ａ】
2014199583.tif 000017
【図５Ｂ】
2014199583.tif 000018
【図６Ａ】
2014199583.tif 000019
【図６Ｂ】
2014199583.tif 000020
【図６Ｃ】
2014199583.tif 000021
【図７Ａ】
2014199583.tif 000022
【図７Ｂ】
2014199583.tif 000023
【図９Ａ】
2014199583.tif 000024
【図９Ｂ】
2014199583.tif 000025
【図１０】
2014199583.tif 000026