(57)【特許請求の範囲】
【請求項１】
冗長データによりディスクの耐障害性を実現したディスクアレイ装置に於いて、
書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで記憶する不揮発性の記憶手段と、
前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプの領域に既定値を書き込み、その既定値と、それに対応する他のデータストライプのデータとから冗長データを再構成して、対応するパリティストライプに書き込む手段と
を具備したことを特徴とするディスクアレイ装置。
【請求項２】
冗長データによりディスクの耐障害性を実現したディスクアレイ装置に於いて、
書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで記憶する不揮発性の記憶手段と、
前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプのデータ領域に対応するパリティストライプの冗長データ領域に既定値を書き込み、その既定値と、それに対応する他のデータストライプのデータとから前記書き込み処理を中断した領域のデータを再構成して、前記データストライプの前記データ領域に書き込む手段とを具備したことを特徴とするディスクアレイ装置。
【請求項３】
前記論理アドレスおよびサイズによって示されるデータストライプのデータ領域が複数のデータストライプ領域に跨っている場合、各データストライプ毎に分けて、前記データまたは前記冗長データの再構成を行うことを特徴とする請求項１または２記載のディスクアレイ装置。
【請求項４】
複数の物理ドライブから構成され、ストライプグループごとに冗長データをもつことにより耐障害機能を実現した論理ドライブの一貫性回復方法に於いて、
書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで不揮発性の記憶手段に記憶させ、
前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプの領域に既定値を書き込み、
その既定値と、それに対応する他のデータストライプのデータとから冗長データを再構成して、対応するパリティストライプに書き込む
ことを特徴とする論理ドライブの一貫性回復方法。
【請求項５】
複数の物理ドライブから構成され、ストライプグループごとに冗長データをもつことにより耐障害機能を実現した論理ドライブの一貫性回復方法に於いて、
書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで不揮発性の記憶手段に記憶させ、
前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプのデータ領域に対応するパリティストライプの冗長データ領域に既定値を書き込み、
その既定値と、それに対応する他のデータストライプのデータとから前記書き込み処理を中断した領域のデータを再構成して、前記データストライプの前記データ領域に書き込む
ことを特徴とする冗長データをもつ論理ドライブの一貫性回復方法。
【請求項６】
前記論理アドレスおよびサイズによって示されるデータストライプのデータ領域が複数のデータストライプ領域に跨っている場合、各データストライプ毎に分けて、前記データまたは前記冗長データの再構成を行うことを特徴とする請求項４または５記載の論理ドライブの一貫性回復方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、冗長データによりディスクの耐障害性を実現したディスクアレイ装置、および冗長データをもつ論理ドライブの一貫性回復方法に関する。
【０００２】
【従来の技術】
複数の小型ディスクを用いて構成されたディスクアレイシステムに於いて、冗長データをもつことによりディスクの耐障害性を実現する技術としてＲＡＩＤ技術が知られている。
【０００３】
このＲＡＩＤ技術を適用したＲＡＩＤシステム上に於いては、ディスクへの書き込み途中に、停電などにより、ＲＡＩＤコントローラが停止した場合、ディスク装置上のデータと冗長データの一貫性が失われる場合がある。例えばＲＡＩＤレベル３またはＲＡＩＤレベル５等により冗長データをもたせて耐障害性を実現した論理ドライブの場合、ディスクにデータとパリティ（冗長データ）を書き込んでいる途中で処理が停止すると、一部のデータの更新を完了したにも拘わらず、パリティが更新されず、ディスクアレイのパリティグループでデータとパリティの一貫性が失われる可能性がある。この状態でシステムを再起動して処理を継続してしまうと、論理ドライブに属するディスクドライブが故障して論理ドライブが縮退状態になった場合に、不正なパリティを用いて故障したディスクドライブ上のデータを復元してしまうため、誤ったデータを復元してしまうことになる。
【０００４】
ある種のＲＡＩＤコントローラでは、論理ドライブに書き込み処理を実行する際に、不揮発性メモリに現在更新中の領域を登録しておき、書き込み処理が中断した際、次回の再起動時に、更新中であった領域に関してストライプグループの一貫性の回復処理を行った後に、通常動作に戻る。この際の際の書き込み処理の中断に伴う一貫性回復処理技術として特許第３０７１０１７号が知られている。ここでは、書き込み処理が中断した場合、次回の再起動時に、更新中であったデータ領域に該当するデータディスクのデータから冗長データを再構成するものである。
【０００５】
この従来技術では、書き込み処理が中断した際、その領域は書き込み途中の状態のまま、動作が終了してしまうことから、再起動時にセクタ不良等のメディアエラーになる虞がある。即ち、上記した書き込み処理中断後の再起動時に於いて、書き込み途中の状態のままにある領域を含んで書き込み、その後、読み出し要求があった際、この時点では未だデータとパリティの一貫性が失われた状態のままであることから、そのＩ／Ｏアクセスが無効（エラー）となり、データの読み書きができない。この際は、一旦、上記した一貫性回復処理によって、更新中であったデータ領域に該当するデータディスクのデータから冗長データを再構成して一貫性の回復処理を行い、その後に、要求に従う処理を実行しなければならない。
【０００６】
従って書き込み処理中断後の再起動時に於いて、書き込み途中の状態のままにある領域を含む書き込み要求があった際、その書き込み処理に先立って、一旦、もとのデータおよび冗長データから新たに冗長データを生成して一貫性回復処理を行なわなければならないという無駄な処理が介在する。
【０００７】
【発明が解決しようとする課題】
上述したように従来では、書き込み処理が中断した際、その領域は書き込み途中の状態のまま、動作が終了してしまうことから、書き込み処理中断後の再起動時に於いてメディアエラーになる虞があり、更に、これを回避しようとすると、アクセス要求処理に先立って、更新中であったデータ領域に該当するデータディスクのデータから冗長データを再構成する無駄な処理が介在するという問題があった。
【０００８】
本発明は上記実情に鑑みなされたもので、冗長データによりディスクの耐障害性を実現したディスクアレイに於いて、書き込み途中での処理中断に伴うメディアエラーを確実に回避して再起動後に於ける円滑な処理が期待できるディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、冗長データによりディスクの耐障害性を実現したディスクアレイに於いて、書き込み処理中にその処理が中断した際、再起動時に於いて、書き込み途中の状態のままにある領域に既定値、若しくは既存データを用いて一貫性回復のための強制書き込み（上書き処理）を行うことで、再起動後に於けるメディアエラー等のアクセス障害を回避したことを特徴とする。
【００１０】
また、本発明は、上記した従来の一貫性回復処理とは異なる方法で、冗長データの一貫性を回復することを特徴とする。
【００１１】
即ち、本発明は、冗長データによりディスクの耐障害性を実現したディスクアレイ装置に於いて、書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで記憶する不揮発性の記憶手段と、前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプの領域に既定値を書き込み、その既定値と、それに対応する他のデータストライプのデータとから冗長データを再構成して、対応するパリティストライプに書き込む手段とを具備したことを特徴とする。
【００１２】
また、本発明は、冗長データによりディスクの耐障害性を実現したディスクアレイ装置に於いて、書き込み要求された時の少なくとも論理アドレスおよびサイズを当該要求に従う処理が完了するまで記憶する不揮発性の記憶手段と、前記書き込み要求に従う書き込み処理が中断した際に、前記記憶手段に記憶された前記論理アドレスおよびサイズによって示されるデータストライプのデータ領域に対応するパリティストライプの冗長データ領域に既定値を書き込み、その既定値と、それに対応する他のデータストライプのデータとから前記書き込み処理を中断した領域のデータを再構成して、前記データストライプの前記データ領域に書き込む手段とを具備したことを特徴とする。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を説明する。
【００１５】
図１は、本発明の実施形態を説明するためのディスクアレイシステムの構成を示すブロック図である。
【００１６】
ここでは、ホスト装置１０に設けられたＲＡＩＤコントローラ１１に、複数のハードディスクドライブ（ＨＤＤ０，ＨＤＤ１，ＨＤＤ２）でなるディスクアレイ１４がＲＡＩＤレベル５でＳＣＳＩバスを介して接続されている構成を例に示している。ＲＡＩＤコントローラ１１内には、不揮発性メモリ１２、およびキャッシュ１３が設けられている。
【００１７】
不揮発性メモリ１２には、後述する一貫性回復処理に於いて参照される、書き込み要求された論理アドレス範囲（アドレスとサイズ（Ｘ，Ｙ））が書き込み処理完了まで登録される。キャッシュ１３には、既存のシステムと同様に、高速アクセスを実現するために、ディスクアレイ１４より読み出されたデータが一時記憶される。
【００１８】
図２は、上記ＲＡＩＤコントローラ１１に於いて実行される書き込み処理の動作説明図であり、ここでは、論理ドライブのある領域（オフセットＸ、サイズＹ）に、書き込み処理が実行される様子を示している。この書き込み処理の際に、そのアクセス範囲を示す領域（Ｘ，Ｙ）が不揮発性メモリ１２に登録され、書き込み完了まで保持される。この不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）を用いて、書き込み処理中断後の再起動時に、後述する一貫性回復処理が実行される。
【００１９】
図３乃至図９は、それぞれ本発明の各実施形態に於ける一貫性回復処理動作を説明するための動作説明図およびフローチャートであり、ここでは、説明を分かり易くするため、１つのパリティグループ（ＰＧ）を２つのデータストライプ（ＤＳ）と１つのパリティストライプ（ＰＳ）で構成し、各実施形態に於いて、それぞれデータストライプ（ＤＳ）とパリティストライプ（ＰＳ）とを同一配置で示している。
【００２０】
このうち、図３および図４は、それぞれ本発明の第１実施形態による一貫性回復処理動作を説明するためのもので、図３は動作説明図、図４は処理手順を示すフローチャートである。ここでは、書き込み処理中断後の再起動時に、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）に、既定値（例えば０）を書き込み、そのデータ領域を含んだデータストライプから、対応するパリティを生成し上書きすることによって一貫性回復を行っている。
【００２１】
図５および図６は、それぞれ本発明の第２実施形態による一貫性回復処理動作を説明するためのもので、図５は動作説明図、図６は処理手順を示すフローチャートである。ここでは、書き込み処理中断後の再起動時に、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）に対応するパリティ領域に、既定値（例えば０）を書き込み、このパリティと上記領域（Ｘ，Ｙ）以外の同一ストライプのデータを用いて上記領域（Ｘ，Ｙ）のデータを再構成することによって一貫性回復を行っている。
【００２２】
図７および図８は、それぞれ本発明の第３実施形態による一貫性回復処理動作を説明するためのもので、図７は動作説明図、図８は処理手順を示すフローチャートである。ここでは、書き込み処理中断後の再起動時に、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）に、対応するパリティグループの他のストライプから生成したデータを上書きすることによって一貫性回復を行っている。
【００２３】
図９は、本発明の第４実施形態による一貫性回復処理の動作説明図であり、ここでは、書き込み処理中断後の再起動時に、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）が２つのデータストライプにまたがった場合、各パリティグループ毎に、それぞれ上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）のデータを別個に生成しそれぞれ上書きすることによって一貫性回復を行っている。
【００２４】
ここで、上記各図を参照して本発明の実施形態に於ける動作を説明する。
【００２５】
ホスト装置１０の制御の下にＲＡＩＤコントローラ１１が論理ドライブのある領域（オフセットＸ、サイズＹ）の領域に、書き込み処理を実行する際の処理手順を以下に示す。
【００２６】
ａ．書き込み要求された論理アドレスとサイズ（Ｘ，Ｙ）を不揮発性メモリ１２に登録する。
【００２７】
ｂ．更新するデータに対応するパリティ（Ｐ）を生成する。
【００２８】
ｃ．データ（Ｄ）とパリティ（Ｐ）をディスクアレイ１４のディスクドライブに書き込む。
【００２９】
ｄ．書き込み処理が完了したら不揮発性メモリ１２上の登録（Ｘ，Ｙ）を抹消する。
【００３０】
ＲＡＩＤ５の論理ドライブでは、データの更新を行うとともに、対応するパリティデータも更新する必要があるため、書き込むべき領域は、データ領域とパリティ領域である。
【００３１】
ここで、データまたはパリティの書き込みが完了する前に、例えばＲＡＩＤコントローラ１１が電源供給を失って処理が停止したとする。
【００３２】
この状態では、書き込みを中断したパリティグループに関して、冗長データの一貫性がとれなくなっているため、次に、ＲＡＩＤコントローラ１１への電源供給が再開されたときに、該当するパリティグループの一貫性を復元する。
【００３３】
即ち、本発明の実施形態に於いては、書き込み処理中断後の再起動時に於いて、不揮発性メモリ１２に登録された論理アドレス／サイズ（Ｘ，Ｙ）を用いて、書き込み（上書き）処理を伴う一貫性回復処理を実行し、この際の書き込み（上書き）処理によって、以後のアクセス時に於ける、メディアエラーを確実に排除し、更に再起動後に於ける書き込み処理の際の、既存システムで行われる無駄な一時的冗長データの一貫性回復処理を回避している。
【００３４】
以下に、本発明の各実施形態に於ける一貫性回復処理動作を図３乃至図９を参照して説明する。
【００３５】
（第１の実施形態）
先ず、図３および図４を参照して、本発明の第１の実施形態に於ける一貫性回復処理動作を説明する。
【００３６】
システム起動時に於いて、不揮発性メモリ１２をアクセスし、書き込みが中断したディスクＩ／Ｏがあるか否かを判断する（図４ステップＳ１１）。書き込み処理中断後の再起動時に於いては、不揮発性メモリ１２に書き込み処理中断時の領域（Ｘ，Ｙ）が登録されていることから、書き込みの中断があったことを判定できる（図４ステップＳ１１  ＹＥＳ）。
【００３７】
この際は、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）が示すデータストライプのデータ領域に、既定値（例えば０）を書き込む（図４ステップＳ１２ａ）。そして、そのデータ領域の既定値（０）と、そのデータ領域に対応する同一パリティグループ（ＰＧ）内の各データストライプ（ＤＳ）のデータとを読み出して、対応するパリティ（Ｐ）を生成する。その生成されたパリティ（Ｐ）をパリティストライプ（ＰＳ）の対応するパリティ領域に書き込む（図４ステップＳ１２ｂ）。この再構成の書き込み処理が完了に伴い不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）の値を抹消する（図４ステップＳ１３）。これによって一貫性回復処理が終了する。
【００３８】
（第２の実施形態）
次に、図５および図６を参照して、本発明の第２の実施形態に於ける一貫性回復処理動作を説明する。
【００３９】
書き込み処理中断後の再起動時に於いて（図６ステップＳ２１  ＹＥＳ）、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）によって示されるデータストライプ（Ｄ）のデータに対応するパリティストライプのパリティ領域に既定値（例えば０）を書き込む（図６ステップＳ２２ａ）。このパリティ領域の既定値（０）と、これに対応する同一パリティグループ（ＰＧ）内の他のデータストライプ（ＤＳ）のデータとを読み出し、上記データストライプ（Ｄ）のデータを再構成して、データ領域（Ｘ，Ｙ）に書き込む（図６ステップＳ２２ｂ）。この再構成の書き込み処理が完了に伴い不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）の値を抹消する（図６ステップＳ２３）。これによって一貫性回復処理が終了する。
【００４０】
（第３の実施形態）
次に、図７および図８を参照して、本発明の第３の実施形態に於ける一貫性回復処理動作を説明する。
【００４１】
書き込み処理中断後の再起動時に於いて（図８ステップＳ３１  ＹＥＳ）、上記不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）によって示されるデータストパイプのデータに対応する同じパリティグループ（ＰＧ）のパリティストライプのパリティ領域からパリティ、および他のデータストライプのデータ領域からデータを読み出し、データを復元する。その復元されたデータを領域（Ｘ，Ｙ）で示すデータストライプのデータ領域に書き込み復元処理を完了する（図８ステップＳ３２）。この再構成の書き込み処理が完了に伴い不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）の値を抹消する（図８ステップＳ３３）。これによって一貫性回復処理が終了する。
【００４２】
（第４の実施形態）
次に、図９を参照して、本発明の第４の実施形態に於ける一貫性回復処理動作を説明する。
【００４３】
この図９に示すデータ再構成は、上記不揮発性メモリ１２に登録された領域が複数のデータストライプ（ＤＳ）にまたがった場合の一貫性回復処理例を示している。不揮発性メモリ１２に登録された領域（Ｘ，Ｙ）が複数のデータストライプ（ディスクドライブ）にまたがる範囲であるときは、書き込みアクセス範囲をストライプ境界で分割し、第３の実施形態の処理と同じ方法により、ステップ１では、第１のデータストライプ（ＤＳ）に対応するパリティおよびデータから第１のデータ（Ｄ）を復元して、領域（Ｘ，Ｙ）で指定される一方のドライブの領域に書き込む。次にステップ２では、第２のデータストライプ（ＤＳ）に対応するパリティおよびデータからデータ（Ｄ）を復元して、領域（Ｘ，Ｙ）で指定される他のドライブの領域に書き込む。こうして、上記ディスクドライブをまたがる領域（Ｘ，Ｙ）の各書き込みデータを復元する。なお、この第４の実施形態では第３の実施形態の復元処理を適用したが、上述した第１、第２の実施形態も同様に適用する事ができる。
【００４４】
上記したように、本発明の各実施形態によれば、書き込み処理中断後の再起動時に於いて、不揮発性メモリ１２に登録された少なくとも論理アドレス／サイズ（Ｘ，Ｙ）を用いて、書き込み（上書き）処理を伴う一貫性回復処理を実行し、この際の書き込み（上書き）処理によって、以後のアクセス時に於ける、メディアエラーを確実に排除し、更に再起動後に於ける書き込み処理の際の、既存システムで行われる無駄な一時的冗長データの一貫性回復処理を回避している。これにより書き込み途中での処理中断に伴うメディアエラーを確実に回避して再起動後に於ける円滑な処理が期待できる
【００４５】
【発明の効果】
以上詳記したように本発明によれば、書き込み途中での処理中断に伴うメディアエラーを確実に回避して再起動後に於ける円滑な処理が期待できる。
【図面の簡単な説明】
【図１】本発明の実施形態を説明するためのディスクアレイシステムの構成を示すブロック図。
【図２】上記実施形態に於けるＲＡＩＤコントローラの書き込み処理動作を説明する動作説明図。
【図３】本発明の第１の実施形態に於ける一貫性回復処理の動作説明図。
【図４】本発明の第１の実施形態に於ける一貫性回復処理の手順を示すフローチャート。
【図５】本発明の第２の実施形態に於ける一貫性回復処理の動作説明図。
【図６】本発明の第２の実施形態に於ける一貫性回復処理の手順を示すフローチャート。
【図７】本発明の第３の実施形態に於ける一貫性回復処理の動作説明図。
【図８】本発明の第３の実施形態に於ける一貫性回復処理の手順を示すフローチャート。
【図９】本発明の第４の実施形態に於ける一貫性回復処理の動作説明図。
【符号の説明】
１０…ホスト装置
１１…ＲＡＩＤコントローラ
１２…不揮発性メモリ
１３…キャッシュ（キャッシュメモリ）
１４…ディスクアレイ
ＰＧ…パリティグループ
ＤＳ…データストライプ
ＰＳ…パリティストライプ
【図１】
0003590015.tif 000002
【図２】
0003590015.tif 000003
【図３】
0003590015.tif 000004
【図４】
0003590015.tif 000005
【図５】
0003590015.tif 000006
【図６】
0003590015.tif 000007
【図７】
0003590015.tif 000008
【図８】
0003590015.tif 000009
【図９】
0003590015.tif 000010