(57)【特許請求の範囲】
【請求項１】
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、
前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新するボリュームコピー制御部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するデータ修復制御部と、を備えるストレージ装置。
【請求項２】
前記ボリュームコピー制御部は、前記第１の差分情報の参照、前記第１ボリュームに含まれるハードディスクに格納されたデータの前記第２のボリュームに含まれるハードディスクへの格納、および、前記第１の差分情報の更新を定期的に行う、請求項１に記載のストレージ装置。
【請求項３】
前記第１のボリュームは複数のハードディスクを含み、前記複数のハードディスクのうちのいずれか１台が故障した場合、故障したハードディスク以外のハードディスクに格納されたデータに基づいて、故障したハードディスクに格納されたデータを修復する、請求項１または２に記載のストレージ装置。
【請求項４】
前記データ修復制御部は、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスク以外のハードディスクからのデータ読み出しにおいてエラーが生じた場合、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失したものと判定する、請求項３に記載のストレージ装置。
【請求項５】
前記データ修復制御部は、前記第２のボリュームに含まれるハードディスクに格納されたデータを、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスクを代替する予備のハードディスクに書き込むことで、損失したデータを修復する、請求項４に記載のストレージ装置。
【請求項６】
１以上のハードディスクを含む第３のボリュームを有する第２のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第３のボリュームに含まれるハードディスクに格納されたデータの差分を表す第２の差分情報を保持する第２の差分情報保持部と、を備え、
前記ボリュームコピー制御部は、前記第２の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第３のボリュームに含まれるハードディスクに格納するとともに、前記第２の差分情報を更新し、
前記データ修復制御部は、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報および前記第２のボリュームに含まれるハードディスクに格納されたデータ、または、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する、請求項１ないし５のいずれか１項に記載のストレージ装置。
【請求項７】
前記データ修復制御部は、前記第１の差分情報において差分が存在し、前記第２の差分情報において差分が存在しない場合、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する、請求項６に記載のストレージ装置。
【請求項８】
前記データ修復制御部は、前記第１の差分情報および前記第２の差分情報において差分が存在しない場合において、前記第２のボリュームに含まれるハードディスクに格納されたデータが読み出せないときに、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する、請求項６に記載のストレージ装置。
【請求項９】
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、前記第１のボリュームに含まれるハードディスクに格納されたデータと前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、を備えたストレージ装置が、前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新する工程と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する工程と、を含むデータ復旧方法。
【請求項１０】
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、前記第１のボリュームに含まれるハードディスクに格納されたデータと前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、を備えたストレージ装置を制御するコンピュータに対して、
前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新する処理と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、データ復旧方法およびプログラムに関し、特に、データ復旧機能を備えたストレージ装置、ストレージ装置におけるデータ復旧方法、および、ストレージ装置の動作を制御するプログラムに関する。
【背景技術】
【０００２】
ストレージ装置の冗長性を確保する技術として、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks, Redundant Arrays of Independent Disks）と呼ばれる技術が知られている。ＲＡＩＤとは、複数台のハードディスクを組み合わせることで仮想的な１台のハードディスクとして運用することで、ストレージ装置の信頼性および可用性を向上させる技術をいう。ＲＡＩＤは、その構成および機能に応じて、ＲＡＩＤレベルと呼ばれる複数のレベルに分類されている。
【０００３】
例えば、ＲＡＩＤレベルがＲＡＩＤ５であるストレージ装置では、データをディスクに記録する際、複数のディスクにデータを分散して書き込むとともに、書き込まれるデータのパリティも生成してディスクに書き込む。なお、パリティは、すべてのディスクに分散して書き込まれる。ＲＡＩＤ５に基づくストレージ装置では、１台のディスクが故障しても、それ以外のディスクのデータとパリティ情報から、元のデータを生成して回復することができる。
【０００４】
なお、特許文献１には、ストレージ装置に冗長度がない状態で障害が発生した場合に、データを復旧する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８７９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明者によってなされたものである。
【０００７】
上述のストレージ装置においては、次のような問題がある。例えば、ＲＡＩＤ５で構築されている論理ボリュームにおいて、１台のディスクが故障して縮退している状態（すなわち、冗長度がない状態）で、同一のＲＡＩＤを構成する別のディスクで読み出しエラー（メディアエラー等）が発生すると、その領域はデータが再生成できないため、データ損失となる。
【０００８】
データ損失となった領域は上位から読み出しができない状態となるため、バックアップデータからの復旧が必要となる。バックアップデータが存在しない場合には、そもそもデータの復旧ができず、業務に多大な影響が生じる。一方、バックアップデータが存在する場合においても、人手により複製ボリュームからデータを復旧する作業が必要となるため、業務が長時間停止するおそれがある。
【０００９】
一方、特許文献１に記載されたストレージ装置によると、ストレージ装置に冗長度がない状態で障害が発生した場合においても、ストレージ装置の構築時に初期フォーマット等によりディスクに設定された初期データについては回復することができる。しかしながら、ストレージ装置の運用を開始してから長期間が経過し、ストレージデータが保持するデータが初期データから大きく変動しているような場合には、初期データへの回復を行っても、業務を継続することは困難となるおそれがある。
【００１０】
そこで、故障により冗長性を失った状態のストレージ装置において、さらに故障が生じた場合に、故障直前のデータに基づいてストレージ装置を復旧できるようにすることが課題となる。本発明の目的は、かかる課題を解決するストレージ装置、データ復旧方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点に係るストレージ装置は、
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、
前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新するボリュームコピー制御部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するデータ修復制御部と、を備える。
【００１２】
本発明の第２の視点に係るデータ復旧方法は、
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、前記第１のボリュームに含まれるハードディスクに格納されたデータと前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、を備えたストレージ装置が、前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新する工程と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する工程と、を含む。
【００１３】
本発明の第３の視点に係るプログラムは、
１以上のハードディスクを含む第１のボリュームと、１以上のハードディスクを含む第２のボリュームとを有する第１のディスク部と、前記第１のボリュームに含まれるハードディスクに格納されたデータと前記第２のボリュームに含まれるハードディスクに格納されたデータの間において所定のデータ単位ごとの差分の有無を表す第１の差分情報を保持する第１の差分情報保持部と、を備えたストレージ装置を制御するコンピュータに対して、
前記第１の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第２のボリュームに含まれるハードディスクに格納するとともに、前記第１の差分情報を更新する処理と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報に基づいて、損失したデータを含むデータ単位において差分が存在しないと判定したとき、前記第２のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する処理と、を実行させる。なお、プログラムは、非トランジエントなコンピュータ読み取り可能な記録媒体（non-transient computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００１４】
本発明に係るストレージ装置、データ復旧方法およびプログラムによると、故障により冗長性を失った状態のストレージ装置において、さらに故障が生じた場合に、故障直前のデータに基づいてストレージ装置を復旧することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係るストレージ装置の構成を一例として示すブロック図である。
【図２】第１の実施形態に係るストレージ装置の動作を一例として示すフロー図である。
【図３】第２の実施形態に係るストレージ装置（システム）の構成を一例として示すブロック図である。
【図４】関連技術のストレージ装置の動作を示すフロー図である。
【発明を実施するための形態】
【００１６】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
一実施形態に係るストレージ装置は、ビットマップ等で差分情報を管理して複製ボリュームを作成する機能を持つストレージ装置であって、業務ボリュームにおいて複数のディスクの故障等が発生して一部のデータが損失した際、複製ボリュームと業務ボリュームとの差分状態を確認し、差分がない（すなわち、データが一致している）領域であれば、複製ボリュームから当該データを読み出して業務ボリュームにコピーし、業務ボリュームを修復する。これにより、人手でのデータ復旧作業は不要となり、業務を停止することなくデータを修復することが可能となる。
【００１８】
以下では、図面を参照しつつさらに詳細に説明する。図１は、一実施形態に係るストレージ装置の構成を一例として示すブロック図である。図１を参照すると、ストレージ装置（２０）は、１以上のハードディスクを含む第１のボリューム（業務ボリューム２１）と、１以上のハードディスクを含む第２のボリューム（複製ボリューム２２）とを有する第１のディスク部（２３）と、第１のボリューム（２１）に含まれるハードディスクに格納されたデータと、第２のボリューム（２２）に含まれるハードディスクに格納されたデータの差分を表す第１の差分情報（差分ビットマップ１７）を保持する第１の差分情報保持部（１８）と、第１の差分情報（１７）を参照して、第１のボリューム（２１）に含まれるハードディスクに格納されたデータを、第２のボリューム（２２）に含まれるハードディスクに格納するとともに、第１の差分情報（１７）を更新するボリュームコピー制御部（１５）と、第１のボリューム（２１）に含まれるハードディスクに格納されたデータが損失した場合、第１の差分情報（１７）および第２のボリューム（２２）に含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するデータ修復制御部（１９）と、を備える。
【００１９】
ここで、ボリュームコピー制御部（１５）は、第１の差分情報（１７）の参照、第１ボリューム（２１）に含まれるハードディスクに格納されたデータの第２のボリューム（２２）に含まれるハードディスクへの格納、および、第１の差分情報（１７）の更新を定期的に行うようにしてもよい。
【００２０】
また、第１のボリューム（２１）は複数のハードディスクを含み、複数のハードディスクのうちのいずれか１台が故障した場合、故障したハードディスク以外のハードディスクに格納されたデータに基づいて、故障したハードディスクに格納されたデータを修復するようにしてもよい。第１のボリューム（２１）は、一例として、ＲＡＩＤ５の冗長性を有していてもよい。
【００２１】
データ修復制御部（１９）は、第１のボリューム（２１）に含まれる複数のハードディスクのうちの故障したハードディスク以外のハードディスクからのデータ読み出しにおいてエラーが生じた場合、第１のボリューム（２１）に含まれるハードディスクに格納されたデータが損失したものと判定するようにしてもよい。第１のボリューム（２１）が例えばＲＡＩＤ５の冗長性を有している場合には、データ損失データ修復制御部（１９）は、かかる判定方法に基づいてデータ損失の有無を判定することができる。
【００２２】
データ修復制御部（１９）は、第２のボリューム（２２）に含まれるハードディスクに格納されたデータを、第１のボリューム（２１）に含まれる複数のハードディスクのうちの故障したハードディスクを代替する予備のハードディスク（ホットスペアディスク）に書き込むことで、損失したデータを修復してもよい。
【００２３】
かかるストレージ装置（２０）によると、故障により冗長性を失った状態のストレージ装置において、さらに故障が生じた場合に、故障直前のデータに基づいてストレージ装置を復旧することが可能となる。なぜなら、第１のボリューム（２１）に含まれるハードディスクのうちの１台が故障して冗長性が失われた状態において、第１のボリューム（２１）に含まれる他のハードディスクがさらに故障した場合であっても、第２のボリューム（２２）に格納されたデータを用いて、データの損失を防ぐことができるからである。また、第１のボリューム（２１）に格納されたデータと第２のボリューム（２２）に格納されたデータとの間に差分が存在する場合に、第１のボリューム（２１）に格納されたデータを定期的に第２のボリューム（２２）にコピーすることで、故障直前のデータへの回復が可能となる。
【００２４】
図３を参照すると、ストレージ装置（２０、４０）は、１以上のハードディスクを含む第３のボリューム（複製ボリューム４２）を有する第２のディスク部（４３）と、第１のボリューム（２１）に含まれるハードディスクに格納されたデータと、第３のボリューム（４２）に含まれるハードディスクに格納されたデータの差分を表す第２の差分情報（差分ビットマップ３７）を保持する第２の差分情報保持部（３８）と、をさらに備えていてもよい。また、ボリュームコピー制御部（１５）は、第２の差分情報（３７）を参照して、第１のボリューム（２１）に含まれるハードディスクに格納されたデータを、第３のボリューム（４２）に含まれるハードディスクに格納するとともに、第２の差分情報（３７）を更新してもよい。さらに、データ修復制御部（１９）は、第１のボリューム（２１）に含まれるハードディスクに格納されたデータが損失した場合、第１の差分情報（差分ビットマップ１７）および第２のボリューム（２２）に含まれるハードディスクに格納されたデータ、または、第２の差分情報（３７）および第３のボリューム（４２）に含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復してもよい。なお、図３においては、ストレージシステムを、２台のストレージ装置（２０、４０）から構成したが、１台のストレージ装置によって構成してもよいし、３台以上のストレージ装置によって構成してもよい。
【００２５】
ここで、データ修復制御部（１９）は、第１の差分情報（１７）において差分が存在し、第２の差分情報（３７）において差分が存在しない場合、第２の差分情報（３７）および第３のボリューム（４２）に含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
【００２６】
また、データ修復制御部（１９）は、第１の差分情報（１７）および第２の差分情報（３７）において差分が存在しない場合において、第２のボリューム（２２）に含まれるハードディスクに格納されたデータが読み出せないときに、第２の差分情報（３７）および第３のボリューム（４２）に含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復してもよい。
【００２７】
図３の構成に基づくストレージ装置によると、図１の構成に基づくストレージ装置と比較して、さらに可用性を向上させることができる。
【００２８】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係るストレージ装置のとおりである。
［形態２］
ボリュームコピー制御部は、前記第１の差分情報の参照、前記第１ボリュームに含まれるハードディスクに格納されたデータの前記第２のボリュームに含まれるハードディスクへの格納、および、前記第１の差分情報の更新を定期的に行うようにしてもよい。
［形態３］
前記第１のボリュームは複数のハードディスクを含み、前記複数のハードディスクのうちのいずれか１台が故障した場合、故障したハードディスク以外のハードディスクに格納されたデータに基づいて、故障したハードディスクに格納されたデータを修復するようにしてもよい。
［形態４］
前記データ修復制御部は、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスク以外のハードディスクからのデータ読み出しにおいてエラーが生じた場合、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失したものと判定するようにしてもよい。
［形態５］
前記データ修復制御部は、前記第２のボリュームに含まれるハードディスクに格納されたデータを、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスクを代替する予備のハードディスクに書き込むことで、損失したデータを修復するようにしてもよい。
［形態６］
前記ストレージ装置は、１以上のハードディスクを含む第３のボリュームを有する第２のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第３のボリュームに含まれるハードディスクに格納されたデータの差分を表す第２の差分情報を保持する第２の差分情報保持部と、を備え、
前記ボリュームコピー制御部は、前記第２の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第３のボリュームに含まれるハードディスクに格納するとともに、前記第２の差分情報を更新し、
前記データ修復制御部は、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報および前記第２のボリュームに含まれるハードディスクに格納されたデータ、または、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
［形態７］
前記データ修復制御部は、前記第１の差分情報において差分が存在し、前記第２の差分情報において差分が存在しない場合、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
［形態８］
前記データ修復制御部は、前記第１の差分情報および前記第２の差分情報において差分が存在しない場合において、前記第２のボリュームに含まれるハードディスクに格納されたデータが読み出せないときに、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
［形態９］
上記第２の視点に係るデータ復旧方法のとおりである。
［形態１０］
前記ストレージ装置は、前記第１の差分情報の参照、前記第１ボリュームに含まれるハードディスクに格納されたデータの前記第２のボリュームに含まれるハードディスクへの格納、および、前記第１の差分情報の更新を定期的に行うようにしてもよい。
［形態１１］
前記第１のボリュームは複数のハードディスクを含み、前記複数のハードディスクのうちのいずれか１台が故障した場合、故障したハードディスク以外のハードディスクに格納されたデータに基づいて、故障したハードディスクに格納されたデータを修復するようにしてもよい。
［形態１２］
前記ストレージ装置は、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスク以外のハードディスクからのデータ読み出しにおいてエラーが生じた場合、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失したものと判定するようにしてもよい。
［形態１３］
前記ストレージ装置は、前記第２のボリュームに含まれるハードディスクに格納されたデータを、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスクを代替する予備のハードディスクに書き込むことで、損失したデータを修復するようにしてもよい。
［形態１４］
前記ストレージ装置は、１以上のハードディスクを含む第３のボリュームを有する第２のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第３のボリュームに含まれるハードディスクに格納されたデータの差分を表す第２の差分情報を保持する第２の差分情報保持部と、を備え、
前記データ復旧方法は、前記ストレージ装置が、前記第２の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第３のボリュームに含まれるハードディスクに格納するとともに、前記第２の差分情報を更新する工程と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報および前記第２のボリュームに含まれるハードディスクに格納されたデータ、または、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する工程と、を含んでいてもよい。
［形態１５］
前記ストレージ装置は、前記第１の差分情報において差分が存在し、前記第２の差分情報において差分が存在しない場合、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
［形態１６］
前記ストレージ装置は、前記第１の差分情報および前記第２の差分情報において差分が存在しない場合において、前記第２のボリュームに含まれるハードディスクに格納されたデータが読み出せないときに、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復するようにしてもよい。
［形態１７］
上記第３の視点に係るプログラムのとおりである。
［形態１８］
前記プログラムは、前記第１の差分情報の参照、前記第１ボリュームに含まれるハードディスクに格納されたデータの前記第２のボリュームに含まれるハードディスクへの格納、および、前記第１の差分情報の更新を、前記コンピュータに定期的に実行させるようにしてもよい。
［形態１９］
前記第１のボリュームは複数のハードディスクを含み、
前記プログラムは、前記複数のハードディスクのうちのいずれか１台が故障した場合、故障したハードディスク以外のハードディスクに格納されたデータに基づいて、故障したハードディスクに格納されたデータを修復する処理を前記コンピュータに実行させるようにしてもよい。
［形態２０］
前記プログラムは、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスク以外のハードディスクからのデータ読み出しにおいてエラーが生じた場合、前記第１のボリュームに含まれるハードディスクに格納されたデータが損失したものと判定する処理を、前記コンピュータに実行させるようにしてもよい。
［形態２１］
前記第２のボリュームに含まれるハードディスクに格納されたデータを、前記第１のボリュームに含まれる複数のハードディスクのうちの故障したハードディスクを代替する予備のハードディスクに書き込むことで、損失したデータを修復するようにしてもよい。
［形態２２］
前記ストレージ装置は、１以上のハードディスクを含む第３のボリュームを有する第２のディスク部と、
前記第１のボリュームに含まれるハードディスクに格納されたデータと、前記第３のボリュームに含まれるハードディスクに格納されたデータの差分を表す第２の差分情報を保持する第２の差分情報保持部と、を備え、
前記コンピュータは、前記第２の差分情報を参照して、前記第１のボリュームに含まれるハードディスクに格納されたデータを、前記第３のボリュームに含まれるハードディスクに格納するとともに、前記第２の差分情報を更新する処理と、
前記第１のボリュームに含まれるハードディスクに格納されたデータが損失した場合、前記第１の差分情報および前記第２のボリュームに含まれるハードディスクに格納されたデータ、または、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する処理と、を前記コンピュータに実行させるようにしてもよい。
［形態２３］
前記プログラムは、前記第１の差分情報において差分が存在し、前記第２の差分情報において差分が存在しない場合、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する処理を、前記コンピュータに実行させるようにしてもよい。
［形態２４］
前記プログラムは、前記第１の差分情報および前記第２の差分情報において差分が存在しない場合において、前記第２のボリュームに含まれるハードディスクに格納されたデータが読み出せないときに、前記第２の差分情報および前記第３のボリュームに含まれるハードディスクに格納されたデータに基づいて、損失したデータを修復する処理を、前記コンピュータに実行させるようにしてもよい。
【００２９】
（実施形態１）
第１の実施形態に係るストレージ装置について、図面を参照して説明する。図１は、本実施形態に係るストレージ装置の構成を一例として示すブロック図である。図１を参照すると、ストレージ装置２０は、ホストインタフェース制御部１１、キャッシュメモリ１２、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks, Redundant Arrays of Independent Disks）制御部１３、ディスク制御部１４、ボリュームコピー制御部１５、差分情報保持部１８、データ修復制御部１９、および、ディスク部２３を備える。また、差分情報保持部１８はボリューム差分情報管理部１６および差分ビットマップ１７を備え、ディスク部２３は業務ボリューム２１および複製ボリューム２２を備える。
【００３０】
ホストインタフェース制御部１１は、ホストコンピュータ１０からの書き込み要求を受けた場合には、ホストコンピュータ１０から転送されたデータをキャッシュメモリ１２に書き込む。また、ホストインタフェース制御部１１は、ホストコンピュータ１０からの読み出し要求を受けた場合、キャッシュメモリ１２上にデータが存在するときには、ホストコンピュータ１０にデータを転送する。一方、キャッシュメモリ１２上にデータが存在しないときには、ホストインタフェース制御部１１は、ＲＡＩＤ制御部１３に読み出し要求を指示し、読み出し完了の通知を受けると、キャッシュメモリ１２上のデータをホストコンピュータ１０に転送する。
【００３１】
ＲＡＩＤ制御部１３は、キャッシュメモリ１２上のディスクに未書き込みのデータを、定期的にディスク部２３に書き込む。また、ＲＡＩＤ制御部１３は、ホストインタフェース制御部１１から読み出し要求を受けた場合には、ディスク制御部１４を介してディスク部２３からデータを読み出してキャッシュメモリ１２上に格納し、ホストインタフェース制御部１１に通知する。さらに、ＲＡＩＤ制御部１３は、ディスクが故障して使用できなくなった際、そのディスクをＲＡＩＤ構成から切り離して、ホットスペアディスク（予備ディスク）へのＲＡＩＤ再構成処理を実施する。
【００３２】
ボリュームコピー制御部１５は、業務ボリューム２１と複製ボリューム２２間のデータコピー処理を行う。
【００３３】
差分情報保持部１８は、業務ボリューム２１と複製ボリューム２２の間のデータの差分情報を、あるまとまった単位のデータを１ビットとする差分ビットマップ１７として記憶し、ボリューム差分情報管理部１６によって差分ビットマップ１７を管理する。なお、差分ビットマップ１７は、キャッシュメモリ１２上で管理してもよい。
【００３４】
データ修復制御部１９は、ＲＡＩＤ制御部１３からデータ再生成不能によるデータ損失の通知を受けると、ボリューム差分情報管理部１６に差分情報を問い合わせ、データ修復が可能であれば、ボリュームコピー制御部１５にデータコピーの指示を出す。
【００３５】
次に、本実施形態のストレージ装置２０の動作について説明する。
【００３６】
はじめに、業務ボリューム２１と複製ボリューム２２の間のボリュームコピー動作について説明する。
【００３７】
まず、ストレージ装置２０が、ホストコンピュータ１０から書き込み要求を受けた際、業務ボリューム２１と複製ボリューム２２の間で常に同期する複製モード（「同期複製モード」という。）である場合について説明する。同期複製モードにおいては、ホストインタフェース制御部１１が業務ボリューム２１のデータをキャッシュメモリ１２に書き込むと、ボリュームコピー制御部１５は複製ボリュームに対しても同一のデータをキャッシュメモリ１２上で書き込む。この場合には、業務ボリューム２１と複製ボリューム２２との間で差分が発生しないため、差分ビットマップ１７には差分ビットをセットしない。
【００３８】
次に、ストレージ装置２０が、ホストコンピュータ１０からの書き込み要求を受けた際、業務ボリューム２１と複製ボリューム２２が非同期に複製されるモード（「非同期複製モード」という。）にある場合について説明する。非同期複製モードにおいては、ホストインタフェース制御部１１が業務ボリューム２１のデータをキャッシュメモリ１２上に書き込むと、差分ビットマップ１７の該当ビットをセットする。ボリュームコピー制御部１５は、定期的にボリューム差分情報管理部１６に問い合わせ、差分が発生したことを検出すると、非同期に複製ボリューム２２へのコピー処理を実施し、コピー処理が正常に完了した場合には差分ビットマップ１７の当該ビットをリセットする。
【００３９】
図４は、比較例として、関連技術のストレージ装置の動作を示すフロー図である。図４は、ストレージ装置においてハードディスクが故障して使用できなくなった際、故障したハードディスクをＲＡＩＤ構成から切り離し、ホットスペアディスクへのＲＡＩＤ再構成処理を実施する動作を示す。
【００４０】
図４を参照すると、ＲＡＩＤの再構成処理が開始されると（ステップＳ１０１）、縮退ディスク（すなわち、故障したディスク）以外のディスクからデータが読み出される（ステップＳ１０２）。
【００４１】
縮退ディスク以外のディスクからのデータ読み出しで、読み出しエラーが発生しなければ（ステップＳ１０３のＮｏ）、縮退ディスクのデータを他のディスクのデータから生成して（ステップＳ１０４）、生成したデータをホットスペアディスクに書き込む（ステップＳ１０５）。
【００４２】
一方、縮退ディスク以外のディスクからのデータ読み出しでエラーが発生した場合（ステップＳ１０３のＹｅｓ）、データ再生成が不可能となるため、エラー箇所を読み出し不可の領域として登録する（ステップＳ１０９）。
【００４３】
次に、全アドレスの再構成処理が終了したかどうかを判定し（ステップＳ１０６）、終了した場合（ステップＳ１０６のＹｅｓ）、ＲＡＩＤの再構成処理を終了する（ステップＳ１０７）。
【００４４】
一方、全アドレスの再構成処理が終了していない場合（ステップＳ１０６のＮｏ）、アドレス加算して（ステップＳ１０８）、ステップＳ１０２に戻り、次のアドレスのＲＡＩＤ再構成処理に進む。
【００４５】
図２は、本実施形態に係るストレージ装置２０の動作を一例として示すフロー図である。図２は、ストレージ装置２０においてディスクが故障して使用できなくなった際、そのディスクをＲＡＩＤ構成から切り離し、ホットスペアディスクへのＲＡＩＤ再構成処理を実施する動作を一例として示す。
【００４６】
ＲＡＩＤの再構成処理が開始されると（ステップＳ１）、縮退ディスク（故障したディスク）以外のディスクからデータが読み出される（ステップＳ２）。
【００４７】
縮退ディスク以外のディスクからのデータ読み出しでエラーが発生した場合（ステップＳ３のＹｅｓ）、ＲＡＩＤ制御部１３は、データ修復制御部１９にデータ再生成不能によるデータ損失の通知を出す。データ修復制御部１９は、この通知を受けると、ボリューム差分情報管理部１６に差分情報を問い合わせ、エラー箇所の複製ボリューム２２との差分情報を確認する（ステップＳ９）。
【００４８】
データ修復制御部１９は、データに差分がない場合（ステップＳ１０のＹｅｓ）、ボリュームコピー制御部１５に、当該領域の複製ボリューム２２から業務ボリューム２１へのキャッシュメモリ１２上でのデータコピー処理を指示する（ステップＳ１１）。データコピー処理が正常に完了すると、ボリュームコピー制御部１５はデータ修復制御部１９にコピー完了を通知し、データ修復制御部１９はＲＡＩＤ制御部１３に通知する。ＲＡＩＤ制御部１３は、コピーにより修復されたキャッシュメモリ１２上のデータをホットスペアディスクに書き込む（ステップＳ１２）。
【００４９】
一方、データに差分がある場合（ステップＳ１０のＮｏ）、データ再生成が不可能となるため、エラー箇所を読み出し不可の領域として登録する（ステップＳ１３）。
【００５０】
次に、全アドレスの再構成処理が終了したかどうかを判定し（ステップＳ６）、終了した場合（ステップＳ６のＹｅｓ）、ＲＡＩＤの再構成処理を終了する（ステップＳ７）。
【００５１】
一方、全アドレスの再構成処理が終了していない場合（ステップＳ６のＮｏ）、アドレスを加算して（ステップＳ８）、ステップＳ２に戻り、次のＲＡＩＤ再構成処理に進む。
【００５２】
以上のフローによると、ＲＡＩＤ構成が冗長でない状態において、さらにディスクの読み出しエラーが発生した場合でも、データ損失することなく修復し、業務ボリューム２１を用いて業務を継続することができる。
【００５３】
本実施形態のストレージ装置２０によると、次の効果がもたらされる。すなわち、業務ボリューム２１において、複数のディスク故障等によりデータ損失が発生した場合でも、速やかに人手に依ることなく自動的にデータを修復して業務を継続することができるため、可用性の高いストレージシステムを提供することができる。
【００５４】
（実施形態２）
第２の実施形態に係るストレージ装置について、図面を参照して説明する。図３は、本実施形態に係るストレージ装置の構成を一例として示すブロック図である。図３を参照すると、ストレージ装置２０は、外部に設けられたストレージ装置４０に接続されている。ストレージ装置２０の構成は、第１の実施形態のストレージ装置（図１）の構成と同様であることから、図３においては、ストレージ装置２０の構成を略記した。図３を参照すると、ストレージ装置２０は、ディスク部２３および差分情報保持部１８を備える。また、ディスク部２３は業務ボリューム２１とその複製ボリューム２２を有する。さらに、差分情報保持部１８は、業務ボリューム２１と複製ボリューム２２の差分情報を、差分ビットマップ１７として管理する。
【００５５】
一方、ストレージ装置４０は、ストレージ装置２０内の業務ボリューム２１の複製データを持つ複製ボリューム４２を有する。
ストレージ装置４０は、ディスク部４３および差分情報保持部３８を備える。また、ディスク部４３は、業務ボリューム２１の複製ボリューム４２を備える。さらに、差分情報保持部３８は、業務ボリューム２１と複製ボリューム４２の差分情報を、差分ビットマップ３７として管理する。
【００５６】
本実施形態では、ストレージ装置２０の外部のストレージ装置４０に設けられた複製ボリューム４２から、業務ボリューム２１のデータを修復する。
【００５７】
業務ボリューム２１において複数のディスクの故障等が発生してデータ損失が発生した際に、データ修復制御部１９は、まず、同一のストレージ装置２０内の複製ボリューム２２との差分があるかどうかを調べるために、差分ビットマップ１７を参照する。当該領域の差分ビットがセットされている場合、業務ボリューム２１のデータと複製ボリューム２２のデータとの間に差分が存在するため、複数ボリューム２２のデータを用いて業務ボリューム２１のデータを修復することができない。
【００５８】
次に、データ修復制御部１９は、ストレージ装置４０内の複製ボリューム４２との差分があるかどうかを調べるために、差分ビットマップ３７を参照する。当該領域の差分ビットがセットされていない場合には、業務ボリューム２１のデータと複製ボリューム４２のデータとの間に差分がないため、複製ボリューム４２のデータを用いて業務ボリューム２１のデータを修復する。
【００５９】
なお、同一ストレージ装置２０内の複製ボリューム２２のデータと業務ボリューム２１のデータとの差分がない場合においても、複製ボリューム２２の当該領域のデータも読み出せない場合は、外部のストレージ装置４０内の複製ボリューム４２から業務ボリューム２１のデータを修復するようにしてもよい。また、このとき、複製ボリューム２２の当該領域のデータも、複製ボリューム４２のデータに基づいて修復するようにしてもよい。
【００６０】
本実施形態のストレージ装置によると、複数の複製ボリュームおよび差分ビットマップを設けたことにより、第１の実施形態のストレージ装置よりもさらに可用性を向上させることができる。
【００６１】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６２】
１０    ホストコンピュータ
１１    ホストインタフェース制御部
１２    キャッシュメモリ
１３    ＲＡＩＤ制御部
１４    ディスク制御部
１５    ボリュームコピー制御部
１６    ボリューム差分情報管理部
１７、３７    差分ビットマップ
１８、３８    差分情報保持部
１９    データ修復制御部
２０、４０    ストレージ装置
２１    業務ボリューム
２２、４２    複製ボリューム
２３、４３    ディスク部
【図１】
0005644795.tif 000002
【図２】
0005644795.tif 000003
【図３】
0005644795.tif 000004
【図４】
0005644795.tif 000005