(57)【要約】【課題】ハードディスクが故障していないにも関わらず、ハードディスク障害が誤って検出された場合に、ハードディスクの交換を行わずに復旧する【解決手段】障害検出部１１は、ハードディスク装置２０−１〜２０−Ｎに発生した障害を検出する。再起動部１４は、障害検出部１１がハードディスク装置２０−１〜２０−Ｎの障害を所定の時間内に複数検出した場合にＲＡＩＤコントローラ装置１０を再起動させ、再構築部１６は、ＲＡＩＤコントローラ装置１０の再起動時にハードディスク装置２０−１〜２０−Ｎが記憶する論理ドライブの構成情報に基づいて論理ドライブを再構築する。【選択図】図１
2010134696.tif 000002
【特許請求の範囲】
【請求項１】
予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置であって、
前記複数のハードディスクそれぞれの障害を検出する障害検出手段と、
前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動手段と、
再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築手段と、
を備えることを特徴とするＲＡＩＤコントローラ装置。
【請求項２】
前記障害検出手段は、前記再起動手段による再起動後に、前記所定の時間内に障害を検出した複数のハードディスクの障害を検出し、
前記再起動手段は、前記所定の時間内に障害を検出した複数のハードディスクの障害を検出した場合に、再度再起動を実行し、
前記再起動手段が再起動を実行する回数は、所定の回数未満である、
ことを特徴とする請求項１に記載のＲＡＩＤコントローラ装置。
【請求項３】
予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置を用いた処理方法であって、
障害検出手段は、前記複数のハードディスクそれぞれの障害を検出し、
再起動手段は、前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させ、
再構築手段は、再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する、
ことを特徴とする処理方法。
【請求項４】
予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ回路であって、
前記複数のハードディスクそれぞれの障害を検出する障害検出回路と、
前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動回路と、
再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築回路と、
を備えることを特徴とするＲＡＩＤコントローラ回路。
【請求項５】
予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置を、
前記複数のハードディスクそれぞれの障害を検出する障害検出手段、
前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動手段、
再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築手段、
として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長性を有する複数のハードディスクの配列を１つの仮想的記憶手段として運用するＲＡＩＤコントローラ装置、処理方法、ＲＡＩＤコントローラ回路及びプログラムに関する。
【背景技術】
【０００２】
従来、ハードディスク等の記憶媒体の故障によるデータの損失防止、及び入出力の処理性能の向上のために、ＲＡＩＤ（Redundant Array of Inexpensive Disks）という技術が用いられている（例えば、特許文献１を参照）。ＲＡＩＤは、冗長性を有する複数のハードディスクを仮想的に１つのハードディスクとして運用する技術であり、データを冗長化することで、あるハードディスクが故障しても全体としてのデータの損失がないようにする技術である。
【０００３】
通常、コンピュータにＲＡＩＤを適用する場合、ＲＡＩＤコントローラという装置がハードディスクのデータ構成及び管理を行う。ＲＡＩＤコントローラは、ハードディスクが故障した場合、ハードディスクの故障を検知し、故障したハードディスクを論理的に切り離し、他のハードディスクを用いてコンピュータを運用する。また、切り離したハードディスクをユーザが故障していないハードディスクに取り替えると、ＲＡＩＤコントローラは、他のハードディスクの情報から元のハードディスクの情報を再生し、再生した情報を取り替えたハードディスクに書き込むことで、データの再構成を行う。
【特許文献１】特開２００２−３７３０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のＲＡＩＤコントローラでは、ハードディスクが故障していないにも関わらず、ＲＡＩＤコントローラとハードディスク間の通信経路の一時的な異常等により、一時的にハードディスクにアクセスできなくなった場合に、ハードディスクが故障していると誤った判定を行ってしまう場合があった。この場合、ユーザは、ハードディスクが故障していないにも関わらず、障害が検出された全てのハードディスクを交換し、データの再構成を行う必要があり、長時間の復旧作業を実行する必要があった。
本発明は上記の点に鑑みてなされたものであり、その目的は、ハードディスクが故障していないにも関わらず、ハードディスク障害が誤って検出された場合に、ハードディスクの交換を行わずに復旧するＲＡＩＤコントローラ装置、処理方法、ＲＡＩＤコントローラ回路及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は上記の課題を解決するためになされたものであり、予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置であって、前記複数のハードディスクそれぞれの障害を検出する障害検出手段と、前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動手段と、再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築手段と、を備えることを特徴とする。
【０００６】
また、本発明は、予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置を用いた処理方法であって、障害検出手段は、前記複数のハードディスクそれぞれの障害を検出し、再起動手段は、前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させ、再構築手段は、再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する、ことを特徴とする。
【０００７】
また、本発明は、予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ回路であって、前記複数のハードディスクそれぞれの障害を検出する障害検出回路と、前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動回路と、再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築回路と、を備えることを特徴とする。
【０００８】
また、本発明は、予め仮想記憶手段の構成情報を記憶するハードディスクを複数組み合わせ、１つの論理的な仮想記憶手段として動作させるＲＡＩＤコントローラ装置を、前記複数のハードディスクそれぞれの障害を検出する障害検出手段、前記障害検出手段が所定の時間内に複数のハードディスクの障害を検出した場合に自装置を再起動させる再起動手段、再起動時に、前記構成情報に基づいて前記仮想記憶手段を再構築する再構築手段、として動作させるためのプログラムである。
【発明の効果】
【０００９】
本発明によれば、再起動手段は、ハードディスクの障害を所定の時間内に複数検出した場合にＲＡＩＤコントローラ装置を再起動させる。複数のハードディスクが近いタイミングで故障する可能性は低いため、この場合、ノイズの混入等による障害検出手段とハードディスク間の通信経路の一時的な異常等、ハードディスクの故障以外の原因である可能性が高い。そのため、ＲＡＩＤコントローラ装置を再起動させることにより、再構築手段が、構成情報に基づいて前記仮想記憶手段を再構築することで、仮想的な記憶手段の復旧を試みることができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるＲＡＩＤコントローラ装置の構成を示す概略ブロック図である。
ＲＡＩＤコントローラ装置１０は、複数のハードディスク装置２０−１〜２０−Ｎに接続経路３（バス）を介して接続されている。また、ＲＡＩＤコントローラ装置１０は、ハードディスク装置２０−１〜２０−Ｎを組み合わせて論理ドライブ（仮想記憶手段）を構築し、当該論理ドライブをコンピュータ１に認識させて運用する。
また、ＲＡＩＤコントローラ装置１は、障害検出部１１と、障害検出パターン監視部１２と、ハードディスク情報記憶部１３と、再起動部１４と、再起動回数記憶部１５と、再構築部１６と、を備える。
障害検出部１１は、接続経路３０を介して、ハードディスク装置２０−１〜２０−Ｎに発生した障害を検出する。
障害検出パターン監視部１２は、ハードディスク装置２０−１〜２０−Ｎの障害を所定の時間内に複数検出しているか否かを判定する。
ハードディスク情報記憶部１３は、障害を検出したハードディスク装置２０−１〜２０−Ｎの識別番号と、障害を検出した時間とを関連付けて記憶する。
再起動部１４は、ＲＡＩＤコントローラ装置１を再起動させる。
再起動回数記憶部１５は、再起動部１４がＲＡＩＤコントローラ装置１を再起動させた回数を示す再起動回数を記憶する。
再構築部１６は、ハードディスク装置２０−１〜２０−Ｎが記憶する論理ドライブの構成情報に基づいて論理ドライブを再構築する。
また、ハードディスク装置２０−１〜２０−Ｎは、ハードディスク２１と制御部２２２２とを備える。
ハードディスク２１は、予めＲＡＩＤの仕様や論理ドライブが記憶するデータ等の論理ドライブの構成情報を記憶する。
制御部２２２２は、ハードディスク２１の障害検出を行う。
【００１１】
そして、本実施形態のＲＡＩＤコントローラ装置１においては、障害検出部１１がハードディスク装置２０−１〜２０−Ｎに発生した障害を検出し、障害検出部１１がハードディスク装置２０−１〜２０−Ｎの障害を所定の時間内に複数検出した場合に再起動部１４が自装置を再起動させ、再構築部１６が再起動時にハードディスク装置２０−１〜２０−Ｎのハードディスク２１が記憶する論理ドライブの構成情報に基づいて論理ドライブを再構築する。
これにより、ハードディスク装置２０−１〜２０−Ｎが故障していないにも関わらず、ハードディスク障害が誤って検出された場合に、ＲＡＩＤコントローラ装置１は、ハードディスクの交換を行わずに論理ドライブの復旧を行う。
【００１２】
次に、ＲＡＩＤコントローラ装置１の動作を説明する。
図２は、ＲＡＩＤコントローラ装置の動作を示すフローチャートである。
まず、障害検出部１１は、ハードディスク装置２０−１〜２０−Ｎと通信を行い、ハードディスク装置２０−１〜２０−Ｎの障害の有無を判定する（ステップＳ１）。
障害の有無の判定は、例えば以下のように行う。
障害検出部１１は、接続経路３０を介して、各ハードディスク装置２０−１〜２０−Ｎの制御部２２に障害検出信号を送信する。各ハードディスク装置２０−１〜２０−Ｎの制御部２２は、障害検出信号を受信すると、対応するハードディスク２１の障害判定を行う。
制御部２２は、障害判定の結果、ハードディスク２１に障害が発生していないと判定した場合、障害検出部１１に障害検出信号に対する応答信号を送信する。他方、制御部２２は、障害判定の結果、ハードディスク２１に障害が発生していると判定した場合、障害検出部１１に障害検出信号に対する応答信号を送信しない。
障害検出部１１は、ハードディスク装置２０−１〜２０−Ｎの制御部２２から応答信号を受信した場合、障害が発生していないと判定し、ハードディスク装置２０−１〜２０−Ｎの制御部２２から応答信号を受信できない場合、障害が発生していると判定する。
このとき、ノイズの混入等によって接続経路３０に一時的な異常が発生した場合にも、障害検出部１１は、応答信号を受信できないため、応答信号を受信できなかったハードディスク装置２０−１〜２０−Ｎに障害が発生していると判定する。
【００１３】
ステップＳ１により、障害検出部１１が、全てのハードディスク装置２０−１〜２０−Ｎに障害が発生していないと判定した場合（ステップＳ１：ＮＯ）、ＲＡＩＤコントローラ装置１０は、ステップＳ１に戻り、引き続きハードディスク装置２０−１〜２０−Ｎの障害の検出を継続する。なお、障害の検出は、所定の間隔毎に行われる。
他方、障害検出部１１は、少なくとも１つのハードディスク装置２０−１〜２０−Ｎに障害が発生していると判定した場合（ステップＳ１：ＹＥＳ）、障害が発生していると判定したハードディスク装置２０−１〜２０−ＮをＲＡＩＤの構成から論理的に切り離す（ステップＳ２）。
【００１４】
障害検出部１１がハードディスク装置２０−１〜２０−Ｎの切り離しを行うと、障害検出パターン監視部１２は、障害検出部１１から障害を検出したハードディスク装置２０−１〜２０−Ｎの識別番号と、障害を検出した時刻とを取得する（ステップＳ３）。
障害検出パターン監視部１２は、識別番号と時刻とを取得すると、ハードディスク情報記憶部１３が記憶する他のハードディスク装置２０−１〜２０−Ｎの障害を検出した時刻と、取得した時刻とを比較し、所定の時間内に既に障害を検出されているハードディスクがあるか否かを判定する（ステップＳ４）。ここで、所定の時間とは、例えば１０ミリ秒や１秒など、当該時間内に複数のハードディスク装置２０−１〜２０−Ｎに障害が発生することが稀となる短い時間であり、障害検出部１１とハードディスク装置２０−１〜２０−Ｎとの間の接続経路３０に異常によって、各ハードディスク装置２０−１〜２０−Ｎの障害が誤検出されるまでの時間差よりも長い時間であるものとする。
【００１５】
障害検出パターン監視部１２は、所定の時間内に障害を検出されたハードディスク装置２０−１〜２０−Ｎがないと判定した場合（ステップＳ４：ＮＯ）、ステップＳ３で障害を検出したハードディスク装置２０−１〜２０−Ｎの識別番号と、障害を検出した時刻とを関連付けてハードディスク情報記憶部１３に登録する（ステップＳ５）。ここでハードディスク装置２０−１〜２０−Ｎの識別番号と時刻とを登録する理由は、次回に障害検出部１１がステップＳ１でハードディスク２０−１〜２０−Ｎの障害を検出した際に、障害検出パターン監視部１２がステップＳ４で、障害を検出したハードディスク装置２０−１〜２０−Ｎの障害を検出した時刻と、今回障害を検出したハードディスク装置２０−１〜２０−Ｎの障害を検出した時刻とを比較するためである。
障害検出パターン監視部１２がハードディスク装置２０−１〜２０−Ｎの識別番号と障害を検出した時刻とを登録すると、ＲＡＩＤコントローラ装置１０は、ステップＳ１に戻り、引き続きハードディスク装置２０−１〜２０−Ｎの障害の検出を継続する。
なお、障害検出パターン監視部１２が所定の時間内に障害を検出されたハードディスク装置２０−１〜２０−Ｎがあると判定した場合（ステップＳ４：ＹＥＳ）は、後述する処理により、ＲＡＩＤコントローラ装置１０の再起動を実行するが、障害検出パターン監視部１２が所定の時間内に障害を検出されたハードディスク装置２０−１〜２０−Ｎがないと判定した場合（ステップＳ４：ＮＯ）は、再起動を実行しない。この理由を以下に説明する。所定の時間内に他のハードディスク装置２０−１〜２０−Ｎの障害が検出されない場合、ステップＳ１で障害を検出されたハードディスク装置２０−１〜２０−Ｎは、単独で障害を検出されている。そのため、ノイズの混入等による接続経路３０の一時的な異常によって障害が誤検出された可能性は低く、障害を検出されたハードディスク装置２０−１〜２０−Ｎに実際に障害がある可能性が高い。再起動の実行は、接続経路３０の一時的な異常によって切り離しが行われたハードディスク装置２０−１〜２０−Ｎとの再接続を行うためであるため、ハードディスク装置２０−１〜２０−Ｎに実際に障害がある場合は、再起動を実行する必要が無い。以上が再起動を実行しない理由である。
【００１６】
障害検出パターン監視部１２が所定の時間内に障害を検出されたハードディスク装置２０−１〜２０−Ｎがあると判定した場合（ステップＳ４：ＹＥＳ）、再起動部１４は、再起動回数記憶部１５に記憶されている再起動回数が予め決定した最大繰返し回数（所定の回数）未満であるか否かを判定する（ステップＳ６）。なお、上述したように、再起動回数は、再起動部１４がＲＡＩＤコントローラ装置１を再起動させた回数を示す。
再起動部１４が、再起動回数が最大繰返し回数以上であると判定した場合（ステップＳ６：ＮＯ）、ＲＡＩＤコントローラ装置１０は、ステップＳ１に戻り、引き続きハードディスク装置２０−１〜２０−Ｎの障害の検出を継続する。再起動回数が最大繰返し回数以上であると判定した場合に再起動を実行しない理由は、後述する。
再起動部１４は、再起動回数が最大繰返し回数未満であると判定した場合（ステップＳ６：ＹＥＳ）、ＲＡＩＤコントローラ装置１０の再起動を実行する（ステップＳ７）。ここで、障害検出部１１が、ノイズの混入等による接続経路３０の一時的な異常によって、誤って障害の発生を検出した場合、ＲＡＩＤコントローラ装置１０の再起動時にその一時的な異常が解消されていると、障害が発生していると判定されていたハードディスク装置２０−１〜２０−Ｎとの通信を正常に行うことができるようになり、障害が検出されなくなる。従って、ステップＳ７で再起動をおこなっている。
再起動部１４は、再起動を実行すると、再起動回数記憶部１５が記憶する再起動回数を、当該再起動回数に１を加えた値に書き換える（ステップＳ８）。但し、再起動部１４が実行した再起動が１回目である場合、再起動回数記憶部１５は再起動回数を記憶していない場合であれば、再起動部１４は、再起動回数記憶部１５に再起動回数として「１」を登録するものとする。
【００１７】
再起動部１４が再起動回数を書き換えると、障害検出部１１は、ステップＳ４で所定時間内に障害を検出したと判定されたハードディスク装置２０−１〜２０−Ｎと通信を行い、障害の有無を判定する（ステップＳ９）。このとき、ステップＳ４で所定時間内に障害を検出したと判定されたハードディスク装置２０−１〜２０−Ｎに障害がなく、ステップＳ１の判定がノイズの混入等による接続経路３０の一時的な異常による誤判定であった場合、通常、ＲＡＩＤコントローラ装置１０の再起動によって正常に通信が行われる可能性が高い。そのため、ステップＳ９では、障害検出部１１がステップＳ４で所定時間内に障害を検出したと判定されたハードディスク装置２０−１〜２０−Ｎと通信を行い、障害の有無を判定することで、正常に通信が行われるようになったか否かを判定している。
例えば、ステップＳ４で、障害検出パターン監視部１２が、所定時間内にハードディスク装置２０−１とハードディスク装置２０−２の障害が検出されていると判定した場合、ステップＳ９で障害検出部１１は、ハードディスク装置２０−１とハードディスク装置２０−２の障害の有無を判定する。当該障害の有無の判定は、ステップＳ１で実行した判定と同様の処理によって行う。
【００１８】
ステップＳ９で、障害検出部１１が、ステップＳ４で所定時間内に障害を検出されたと判定された全てのハードディスク装置２０−１〜２０−Ｎに障害があると判定した場合（ステップＳ９：ＹＥＳ）、ステップＳ６に戻り、再起動を実行する。ステップＳ６に戻る理由は以下の通りである。
ステップＳ４で所定時間内に障害を検出したと判定されたハードディスク装置２０−１〜２０−Ｎに実際に障害があった場合や、接続経路３０の切断などの障害が発生している場合等は、ステップＳ７、Ｓ８が繰り返されるので、再起動が実行され続けることになってしまう。そのため、ステップＳ６で再起動回数が最大繰返し回数以上となった場合は、障害検出部１１による障害発生の判定が、接続経路３０の一時的な異常による誤判定ではなく、ハードディスク装置２０−１〜２０−Ｎに実際に障害が発生していたり、接続経路３０の切断などの障害が発生していたりする可能性が高いため、それ以上再起動を実行せずに、ステップＳ１に戻り、ハードディスク装置２０−１〜２０−Ｎの障害検出を継続する。
【００１９】
ステップＳ９で、障害検出部１１が、ステップＳ４で所定時間内に障害を検出されたと判定されたハードディスク装置２０−１〜２０−Ｎの少なくとも１つに障害がないと判定された場合（ステップＳ９：ＮＯ）、再構築部１５は、ハードディスク装置２０−１〜２０−Ｎから論理ドライブの構成情報を取得する（ステップＳ１０）。再構築部１５は、論理ドライブの構成情報を取得すると、取得した論理ドライブの構成情報に基づいて、ハードディスク装置２０−１〜２０−Ｎを組み合わせて論理ドライブを再構築する（ステップＳ１１）。
【００２０】
このように、本実施形態によれば、障害検出部１１がハードディスク装置２０−１〜２０−Ｎに発生した障害を検出し、再起動部１４がハードディスク装置２０−１〜２０−Ｎの障害を所定の時間内に複数検出した場合に自装置を再起動させ、再構築部１６が再起動時にハードディスク装置２０−１〜２０−Ｎが記憶する論理ドライブの構成情報に基づいて論理ドライブを再構築する。
これにより、障害検出部１１が、複数のハードディスク装置２０−１〜２０−Ｎが近いタイミングで故障していると判定した場合に、論理ドライブの復旧を試みることができる。このとき、通信経路３０の一時的な異常等によってハードディスク装置２０−１〜２０−Ｎが故障していると判定した場合に、論理ドライブを復旧させることができる。
【００２１】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００２２】
上述のＲＡＩＤコントローラ装置１０は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００２３】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態によるＲＡＩＤコントローラ装置の構成を示す概略ブロック図である。
【図２】ＲＡＩＤコントローラ装置の動作を示すフローチャートである。
【符号の説明】
【００２５】
１…コンピュータ  １０…ＲＡＩＤコントローラ装置  １１…障害検出部  １２…障害検出パターン監視部  １３…ハードディスク情報記憶部  １４…再起動部  １５…再起動回数記憶部  １６…再構築部  ２０−１〜２０−Ｎ…ハードディスク装置  ２１…ハードディスク  ２２…制御部  ３０…接続経路
【図１】
2010134696.tif 000003
【図２】
2010134696.tif 000004