(57)【特許請求の範囲】
【請求項１】
Ｎ台のディスク装置と、
前記Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラと、
を具備し、
前記ＲＡＩＤコントローラは、
前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行する第１の制御手段と、
前記第１の制御手段によるデータの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させる第２の制御手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
前記ＲＡＩＤコントローラの前記第１の制御手段は、前記データが前記メディアエラーを発生させているディスク装置の領域に記録されるべきものであった場合、前記データの書き込みを実行することによって、前記ディスク装置のメディアエラーを解消させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラにおいて、
前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行する第１の制御手段と、
前記第１の制御手段によるデータの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させる第２の制御手段と、
を具備することを特徴とするＲＡＩＤコントローラ。
【請求項４】
前記第１の制御手段は、前記データが前記メディアエラーを発生させているディスク装置の領域に記録されるべきものであった場合、前記データの書き込みを実行することによって、前記ディスク装置のメディアエラーを解消させることを特徴とする請求項３記載のＲＡＩＤコントローラ。
【請求項５】
Ｎ台のディスク装置と、前記Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラとを有する情報処理装置のディスク制御方法であって、
前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行するステップと、
前記データの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させるステップと、
を具備することを特徴とする情報処理装置のディスク制御方法。
【請求項６】
前記データが前記メディアエラーを発生させているディスク装置の領域に記録されるべきものであった場合、前記データの書き込みを実行することによって、前記ディスク装置のメディアエラーを解消させることを特徴とする請求項１記載の情報処理装置のディスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＲＡＩＤを構成するディスク装置群にて故障が発生した場合であってもデータライト処理を継続可能なディスク制御技術に関する。
【背景技術】
【０００２】
ＬＡＮ（local area network）やイントラネットなどを構築して社内のデータを一元管理する企業は多く、この種のネットワークシステムのサーバに、冗長化されたＲＡＩＤを適用する企業も少なくない。冗長化されたＲＡＩＤは、１点故障が発生してもデータのライト／リード処理を継続できるので、システム全体の信頼性を飛躍的に向上させる。
【０００３】
そして、ＲＡＩＤについては、１点故障が発生した場合に、いかに効率的に以降の処理を再開するか等、これまでも種々の提案がなされている（例えば特許文献１等参照）。
【特許文献１】特開平１１−１４３６４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、ＲＡＩＤを構成する複数のディスク装置の中の１台のディスク装置が故障を発生させている状態で、さらに、その他のあるディスク装置が一部の領域にメディアエラーを発生させた場合を考える。つまり、２点故障が発生した場合を考える。
【０００５】
この場合、このメディアエラーを発生させている領域を含むストライプに対してデータのライト処理を行おうとすると、パリティを再計算するためのリード処理が２箇所で行えないことから、その実行を禁止するのが一般的である。
【０００６】
しかしながら、２点故障が発生した場合であっても、その実行を一律に禁止してしまうのではなく、データの整合性を損なわない範囲内で可能な限り継続してほしいという要望も強い。
【０００７】
この発明はこのような事情を考慮してなされたものであり、ＲＡＩＤを構成するディスク装置群にて故障が発生した場合にデータの整合性を損なわない範囲内でデータライト処理を実行する情報処理装置、ＲＡＩＤコントローラおよび情報処理装置のディスク制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、この発明は、Ｎ台のディスク装置と、前記Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラと、を具備し、前記ＲＡＩＤコントローラは、前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行する第１の制御手段と、前記第１の制御手段によるデータの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させる第２の制御手段と、を具備することを特徴とする。
【０００９】
また、この発明は、Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラにおいて、前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行する第１の制御手段と、前記第１の制御手段によるデータの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させる第２の制御手段と、を具備することを特徴とする。
【００１０】
また、この発明は、Ｎ台のディスク装置と、前記Ｎ台のディスク装置をストライピングし、各ストライプ毎に、Ｎ−１台のディスク装置のデータからパリティデータを生成して当該Ｎ−１台のディスク装置以外のディスク装置に記録するＲＡＩＤコントローラとを有する情報処理装置のディスク制御方法であって、前記Ｎ台のディスク装置の中の１台のディスク装置が故障している状態で、この故障中のディスク装置以外のディスク装置上のメディアエラーを発生させている領域を含むストライプへのデータの書き込みが要求された場合に、このデータが前記故障中のディスク装置に記録されるべきものか否かを判定し、前記故障中のディスク装置に記録されるべきものでなければ、前記要求されたデータの書き込みを実行するステップと、前記データの書き込みが実行されたストライプのパリティデータが前記故障中のディスク装置および前記メディアエラーを発生させているディスク装置以外のディスク装置に記録されている場合、このパリティデータが記録されたディスク装置上の領域をメディアエラー状態に移行させるステップと、を具備することを特徴とする。
【発明の効果】
【００１１】
この発明においては、ＲＡＩＤを構成するディスク装置群にて故障が発生した場合にデータの整合性を損なわない範囲内でデータライト処理を実行する情報処理装置、ＲＡＩＤコントローラおよび情報処理装置のディスク制御方法を提供できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、この発明の実施の形態を説明する。図１は、この発明の実施形態に係る情報処理装置のディスク制御に関わる構成を示す図である。
【００１３】
この情報処理装置１は、多数の他の情報処理装置２からのデータアクセスを受け付けるサーバとして動作する高性能コンピュータであり、図１に示すように、ＲＡＩＤコントローラ１１と、複数のディスク装置１２とを有している。ＲＡＩＤコントローラ１１は、この複数のディスク装置１２を並列に接続し、たとえ１台のディスク装置が故障しても残りのディスク装置を使ってデータアクセスを継続可能とするための冗長化をストライピングおよびパリティ計算によって実現している。従って、クライアントとして動作する他の情報処理装置２からは、複数のディスク装置１２全体があたかも１台の大容量ディスク装置のように見えていることになる。
【００１４】
ここで、この情報処理装置１が実行するディスク制御の理解を助けるために、まず、ディスク制御の一般的な動作原理について説明する。
【００１５】
いま、図２に示すように、ＨＤＤ０，ＨＤＤ１，ＨＤＤ２の３台のディスク装置１２がＲＡＩＤコントローラ１１の配下に置かれているものと想定し、かつ、この中のＨＤＤ０が故障している状態であるとする。なお、図２中、ＨＤＤ０上の０と記された領域は、論理ブロックアドレス（ＬＢＡ）０の領域であり、ＨＤＤ１上のＬＢＡ１の領域およびＨＤＤ２上のＰ（０，１）と記された領域と共に１つのストライプを形成している。つまり各行の横一列で１つのストライプが形成されているわけである。このＰ（０，１）と記された領域には、ＬＢＡ０のデータとＬＢＡ１のデータとから生成されるパリティデータが記録されており、同様に、Ｐ（２，３）と記された領域には、ＬＢＡ２のデータとＬＢＡ３のデータとから生成されるパリティデータが記録されている。
【００１６】
このような状況において、故障中のＨＤＤ０上のＬＢＡ０へのデータライトが要求されると、パリティデータを再生成するためのＬＢＡ１のリードが行われ、ライトデータ（ＬＢＡ０’）と共に新しいパリティデータＰ（０，１）’が生成されリライトされる。
【００１７】
ＬＢＡ１へのデータライトが要求された場合には、まず、ＬＢＡ１とＰ（０，１）のリードが行われて故障中のＨＤＤ０上のＬＢＡ０のデータが修復される。そして、修復されたＬＢＡ０のデータとライトデータ（ＬＢＡ１’）とから新しいパリティデータＰ（０，１）’が生成され、ＬＢＡ１’およびＰ（０，１）’のライトが実行される。
【００１８】
一方、リードについては、ＬＢＡ１のリードが要求された場合、そのままＬＢＡ１のデータがリードされて要求元に返却され、故障中のＨＤＤ０上のＬＢＡ０のリードが要求された場合には、ＬＢＡ１とＰ（０，１）のリードが行われてＬＢＡ０のデータが修復されて返却されることになる。
【００１９】
次に、図３を参照して、ＨＤＤ０の故障に加えて、ＨＤＤ１上のＬＢＡ１がメディアエラーを発生させている場合の一般的な動作原理についてさらに説明する。
【００２０】
故障中のＨＤＤ０上のＬＢＡ０へのデータライトが要求されると、前述のように、パリティデータを再生成するためのＬＢＡ１のリードが行われることになるが、メディアエラーで不可能なため、このデータライトは行われない。
【００２１】
また、メディアエラー中のＬＢＡ１へのデータライトが要求された場合も、前述のように、故障中のＨＤＤ０上のＬＢＡ０のデータを修復するためのＬＢＡ１とＰ（０，１）のリードが行われることになるが、ＬＢＡ１がメディアエラーで不可能なため、このデータライトは行われない。
【００２２】
さらに、リードについても、メディアエラー中のＬＢＡ１のリードが行えないことは勿のこと、故障中のＨＤＤ０上のＬＢＡ０のリードが要求された場合も、その修復のためのＬＢＡ１とＰ（０，１）のリードのうち、ＬＢＡ１がメディアエラーで不可能なため、ＬＢＡ０のリードも行えないこととなる。
【００２３】
つまり、あるディスク装置が故障したことに加え、それ以外のディスク装置でメディアエラーを起こしたという２点故障が発生すると、すべての処理が一律に禁止されてしまうことになっていた。
【００２４】
これに対して、本実施形態の情報処理装置１では、ＲＡＩＤコントローラ１１が、データの整合性を損なわない範囲内でデータライト処理を可能な限り継続できるようにするために、次のようにディスク制御を実行する。
【００２５】
図３に示す状況において、ＬＢＡ１へのデータライトが要求されると、ＲＡＩＤコントローラ１１は、故障中のＨＤＤ０上のＬＢＡ０のデータを修復するために、ＬＢＡ１とＰ（０，１）のリードを行おうとするが、ＬＢＡ１がメディアエラーで不可能なため、ＬＢＡ０のデータの修復を断念する。しかし、ここで、ＲＡＩＤコントローラ１１は、要求されたデータライトをそのまま実行する。このデータライトの結果、ＬＢＡ１のメディアエラーは解消されることになる。ＨＤＤ１上の新たな物理領域がＬＢＡ１として割り当てられるからである。
【００２６】
一方、このデータライトを行ったＲＡＩＤコントローラ１１は、これにより再生成されるべきパリティデータＰ（０，１）を記録するＨＤＤ２の領域をメディアエラー状態に移行させる。そのままにしておくと、ＬＢＡ０のデータが誤った内容でリード可能となってしまうからである。図４は、この時の各ディスク装置の状態を示している。この結果、その後のリードについては、ＬＢＡ１のみ可能で、ＬＢＡ０は行えないことになる。
【００２７】
つまり、ＲＡＩＤコントローラ１１が、（１）パリティデータを再生成できない状態でのデータライトの強制実行、（２）パリティデータを記録する領域のメディアエラー状態への移行、の２つの処理をセットにして行うことで、本実施形態の情報処理装置１は、ＲＡＩＤを構成するディスク装置群にて２点故障が発生した場合に、データライトを一律に禁止してしまうのではなく、データの整合性を損なわない範囲内でデータライト処理を可能な限り継続することを実現する。
【００２８】
図５は、本実施形態の情報処理装置１が実行するディスク制御の動作手順を示すフローチャートである。この図５に示す動作手順は、ＲＡＩＤを構成する複数のディスク装置の中の１台のディスク装置が故障を発生させている状態を前提としたものである。
【００２９】
ＲＡＩＤコントローラ１１は、データライト要求を受けると（ステップＡ１）、パリティ生成のためのリードを実行する（ステップＡ２）。このリードが成功すると（ステップＡ３のＹｅｓ）、ＲＡＩＤコントローラ１１は、故障中のディスク装置のデータをリードしたデータから生成し（ステップＡ４）、パリティを再生成した後（ステップＡ５）、要求されたデータと再生成したパリティのライトを実行する（ステップＡ６）。
【００３０】
一方、パリティ生成のためのリードが失敗、つまり故障中のディスク装置以外のディスク装置の領域がメディアエラーを発生させていると（ステップＡ３のＮｏ）、ＲＡＩＤコントローラ１１は、このデータライトが故障中のディスク装置に対するものかどうかを調べ（ステップＡ７）、もし、故障中のディスク装置に対するものであれば（ステップＡ７のＹｅｓ）、ＲＡＩＤコントローラ１１は、このデータライト要求をライトエラーの返答によって終了させる（ステップＡ８）。
【００３１】
また、このデータライトが故障中のディスク装置に対するものでなければ（ステップＡ７のＮｏ）、ＲＡＩＤコントローラ１１は、そのままそのデータライトを実行し（ステップＡ９）、続いて、失敗したリードがパリティデータを記録する領域についてのものであったかどうかを調べる（ステップＡ１０）。そして、パリティデータを記録する領域についてのものでなかった場合（ステップＡ１０のＮｏ）、ＲＡＩＤコントローラ１１は、パリティデータを記録する領域をメディアエラー状態に移行させる（ステップＡ１１）。
【００３２】
このように、本実施形態の情報処理装置１は、ＲＡＩＤを構成するディスク装置群にて２点故障が発生した場合に、データライトを一律に禁止してしまうのではなく、データの整合性を損なわない範囲内でデータライト処理を可能な限り継続することを実現する。
【００３３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３４】
【図１】この発明の実施形態に係る情報処理装置のディスク制御に関わる構成を示す図
【図２】ＲＡＩＤを構成する複数のディスク装置の中の１台のディスク装置が故障を発生させている状態を示す図
【図３】図２に示す状態から故障中のディスク装置以外のディスク装置がさらにメディアエラーを発生させた状態を示す図
【図４】本実施形態の情報処理装置が図３に示す状態においてもデータライト処理を可能な限り継続するための動作原理を説明するための図
【図５】本実施形態の情報処理装置が実行するディスク制御の動作手順を示すフローチャート
【符号の説明】
【００３５】
１…情報処理装置（サーバ）、２…情報処理装置（クライアント）、１１…ＲＡＩＤコントローラ、１２…ディスク装置。
【図１】
0004630828.tif 000002
【図２】
0004630828.tif 000003
【図３】
0004630828.tif 000004
【図４】
0004630828.tif 000005
【図５】
0004630828.tif 000006