(57)【要約】    【課題】  複数のディスク装置から構成されるディスクアレイにおいて、ディスクアレイを構成するディスク装置の少なくともひとつに障害が発生し、データの冗長性が消失したときに、多重障害の発生を防止し、データを強固に保護することが可能であり、かつ使い勝手のよい、コストパフォーマンスに優れたディスクアレイシステムを提供する。    【解決手段】  アレイコントローラ１６０は、ディスクアレイ１８０を構成する複数のディスク装置１８１〜１８４のうち、障害発生の少なくとも１つのディスク装置が検出され、ディスクアレイ１８０がデータの冗長性を消失したと判定された場合、ディスク装置１８１〜１８４の全てを停止した後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理のみを実行する。【選択図】      図１
2005275813.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムであって、
上位装置からの要求に応じた処理を実行する処理手段と、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定手段と、前記ディスク装置のそれぞれを停止させるディスク装置停止手段とを備え、
前記ディスク装置障害検出手段により、前記複数のディスク装置に障害が発生したディスク装置が検出され、前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理手段は、前記ディスク装置停止手段により他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とするディスクアレイシステム。
【請求項２】
時間の計時をする時計手段を備え、
前記ディスク装置障害検出手段により障害が発生したディスク装置が検出され、前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記計時手段が起動され、該時計手段により所定時間が計時された後に、前記ディスク装置停止手段は、他のディスク装置の全てを停止することを特徴とする請求項１記載のディスクアレイシステム。
【請求項３】
前記上位装置に対して終了処理要求を行う終了処理要求手段を備え、
前記ディスク装置障害検出手段により障害が発生したディスク装置が検出され、前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記終了処理要求手段により前記上位装置に対して終了処理要求が行われ、前記上位装置から前記終了処理要求に対応する終了処理の完了通知を受け取ると、前記ディスク装置停止手段は、他のディスク装置を停止することを特徴とする請求項１記載のディスクアレイシステム。
【請求項４】
前記ディスク装置障害検出手段により障害が発生したディスク装置が検出され、前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理手段による終了処理を実行した後に、前記ディスク装置停止手段は、他のディスク装置を停止させることを特徴とする請求項１記載のディスクアレイシステム。
【請求項５】
複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムであって、
上位装置からの要求に応じた処理を実行する処理手段と、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスク装置障害検出手段による検出結果を保持する不揮発性の保持手段と、前記保持手段に保持されている前記ディスク装置障害検出手段による検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定手段と、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定手段と、前記ディスク装置のそれぞれを停止させるディスク装置停止手段とを備え、
システム起動時に、前記障害発生判定手段により障害が発生したディスク装置があると判定され、かつ前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理手段は、前記ディスク装置停止手段により他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とするディスクアレイシステム。
【請求項６】
複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムの制御方法であって、
前記ディスクアレイの各ディスク装置の障害発生を検出する工程と、
前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定工程と、
前記ディスク装置障害検出工程で前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定工程で前記ディスクアレイがデータの冗長性を消失したと判定された場合、他のディスク装置を停止させるディスク装置停止工程と、
前記他のディスク装置が停止された後に、前記障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行する特定処理実行工程と
を有することを特徴とするディスクアレイシステムの制御方法。
【請求項７】
前記ディスク装置障害検出工程で前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定工程で前記ディスクアレイがデータの冗長性を消失したと判定された場合、時計手段を起動する工程を有し、
前記ディスク装置停止工程では、前記時計手段により所定時間が計時された後に、他のディスク装置を停止することを特徴とする請求項６記載のディスクアレイシステムの制御方法。
【請求項８】
前記ディスク装置障害検出工程で前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定工程で前記ディスクアレイがデータの冗長性を消失したと判定された場合、上位装置に対して終了処理要求を行う終了処理要求工程を有し、
前記ディスク装置停止工程では、前記上位装置から前記終了処理要求に対応する終了処理の完了通知を受け取ると、他のディスク装置を停止させることを特徴とする請求項６記載のディスクアレイシステムの制御方法。
【請求項９】
前記ディスク装置障害検出工程で前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定工程で前記ディスクアレイがデータの冗長性を消失したと判定された場合、終了処理要を実行する終了処理工程を有し、
前記ディスク装置停止工程では、前記終了処理工程での終了処理の実行後に、他のディスク装置を停止させることを特徴とする請求項６記載のディスクアレイシステム。
【請求項１０】
複数のディスク装置から構成されるディスクアレイにおける各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスク装置障害検出手段による検出結果を保持する不揮発性の保持手段とを備え、前記ディスクアレイにデータを、冗長性を持たせて記憶するディスクアレイシステムの制御方法であって、
システム起動時に、前記保持手段に保持されている前記検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定工程と、
前記障害発生判定工程により障害が発生したディスク装置があると判定された場合、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定工程と、
前記冗長性判定工程により前記ディスクアレイがデータの冗長性を消失した状態にあると判定された場合、他のディスク装置のそれぞれを停止させるディスク装置停止工程と、
前記ディスク装置停止工程で前記他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行する特定処理実行工程と
を有することを特徴とするディスクアレイシステムの制御方法。
【請求項１１】
複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムを制御するスためのプログラムであって、
上位装置からの要求に応じた処理を実行する処理モジュールと、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出モジュールと、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定モジュールと、前記ディスク装置のそれぞれを停止させるディスク装置停止モジュールとを有し、
前記ディスク装置障害検出モジュールにより前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定モジュールにより前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理モジュールは、前記ディスク装置停止モジュールにより他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とするプログラム。
【請求項１２】
複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムを制御するためのプログラムであって、
上位装置からの要求に応じた処理を実行する処理モジュールと、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出モジュールと、前記ディスク装置障害検出モジュールによる検出結果を不揮発性の保持手段に保持される保持モジュールと、前記保持手段に保持されている前記ディスク装置障害検出モジュールによる検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定モジュールと、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定モジュールと、前記ディスク装置のそれぞれを停止させるディスク装置停止モジュールとを有し、
システム起動時に、前記障害発生判定モジュールにより障害が発生したディスク装置があると判定され、かつ前記冗長性判定モジュールにより前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理モジュールは、前記ディスク装置停止モジュールにより他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とするプログラム。
【請求項１３】
請求項１１記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。
【請求項１４】
請求項１２記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のディスク装置からなるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステム、その制御方法、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ等の情報処理機器の高性能化、通信インフラの高速化に伴い、高品位動画、静止画、音声等を含む大容量マルチメディアデータを個人や比較的小規模なグループで扱う機会が増大しており、それらを蓄積、管理する高速、大容量で信頼性が高く、さらに使い勝手とコストパフォーマンスに優れたストレージ装置が求められている。
【０００３】
高速、大容量でかつ信頼性が高いストレージを実現する技術のひとつとしてD．Pattersonなどにより提案されたＲＡＩＤが知られている（例えば非特許文献１を参照）。
【０００４】
このＲＡＩＤでは、例えば、ディスクアレイ装置において、データからパリティデータを生成し、複数のディスク装置にデータとパリティデータを分散して格納することにより、記憶容量を比較的有効に利用しながら耐障害性を向上させる方法がレベル３（ＲＡＩＤ３）、レベル４（ＲＡＩＤ４）、またはレベル５（ＲＡＩＤ５）として定義されている。
【０００５】
一般に、実質的に１台のパリティディスクを有するディスクアレイ装置においては、ディスクアレイを構成する複数のディスク装置の内、１台のディスク装置に障害が発生したとしても、パリティ演算により他の正常なディスク装置のデータから障害が発生したディスク装置のデータを回復することができる。しかし、複数のディスク装置に障害が発生した場合、いわゆる多重障害の場合には、データを回復することはできず、ディスクアレイ装置に記憶されていたデータは消失することになる。
【０００６】
そこで、市販のディスクアレイ装置においては、予備ディスク装置が設けられ、ディスク装置に障害が発生した際には、新たなディスク装置の障害により冗長性が失われる前に、予備ディスクに障害の発生したディスク装置のデータを回復し、冗長性を確保することが広く行われている。
【０００７】
また、予備ディスク装置を設けることなく、多重障害に対する耐性を向上するディスクアレイ装置も提案されている（例えば特許文献１および２を参照）。このディスク装置によれば、ディスク装置に障害が発生した際に、障害の発生したディスク装置のデータを他の正常なディスク装置のデータから回復し、回復したデータから新たなパリティデータを生成し、回復したデータと新たなパリティデータを正常な複数のディスク装置の空き領域に分散して格納することにより、予備ディスク装置を設けることなく冗長性が確保され、多重障害に対する耐性が向上される。
【特許文献１】特開平６−２３０９０３号公報
【特許文献２】特開平８−１９０４６１号公報
【非特許文献１】D.Patterson et al.  A Case for Redundant Arrays ofInexpensive Disks (RAID), inACM，SIGMOD Conference, Chicago, IL, June 1988
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、予備ディスク装置を備えることは、装置の大型化とコストの増大を招くため、個人や比較的小規模なグループにおいてニーズが高く、コストパフォーマンスに優れた比較的小規模なストレージ装置に対しては、好適なものとはいえない。
【０００９】
また、上記の提案されたディスク装置においては、正常なディスク装置が４台以上設けられており、かつそれらのディスク装置に十分な空き領域がある場合には有効であるが、正常なディスク装置が３台以下となる場合、または正常なディスク装置に十分な空き領域がない場合に、新たなディスク装置の障害が発生したときには、冗長性を確保することができないので、冗長性が失われた状態での運転、いわゆる縮退運転を行うか、または装置を停止する必要がある。
【００１０】
そこで、本発明は、複数のディスク装置から構成されるディスクアレイにおいて、ディスクアレイを構成するディスク装置の少なくともひとつに障害が発生し、データの冗長性が消失したときに、多重障害の発生を防止し、データを強固に保護することが可能であり、かつ使い勝手が良い、コストパフォーマンスに優れたディスクアレイシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムであって、上位装置からの要求に応じた処理を実行する処理手段と、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定手段と、前記ディスク装置のそれぞれを停止させるディスク装置停止手段とを備え、前記ディスク装置障害検出手段により前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理手段は、前記ディスク装置停止手段により他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とする。
【００１２】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムであって、上位装置からの要求に応じた処理を実行する処理手段と、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスク装置障害検出手段による検出結果を保持する不揮発性の保持手段と、前記保持手段に保持されている前記ディスク装置障害検出手段による検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定手段と、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定手段と、前記ディスク装置のそれぞれを停止させるディスク装置停止手段とを備え、システム起動時に、前記障害発生判定手段により障害が発生したディスク装置があると判定され、かつ前記冗長性判定手段により前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理手段は、前記ディスク装置停止手段により他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とする。
【００１３】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムの制御方法であって、前記ディスクアレイの各ディスク装置の障害発生を検出する工程と、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定工程と、前記ディスク装置障害検出工程で前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定工程で前記ディスクアレイがデータの冗長性を消失したと判定された場合、他のディスク装置を停止させるディスク装置停止工程と、前記他のディスク装置が停止された後に、前記障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行する特定処理実行工程とを有することを特徴とする。
【００１４】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイにおける各ディスク装置の障害発生を検出するディスク装置障害検出手段と、前記ディスク装置障害検出手段による検出結果を保持する不揮発性の保持手段とを備え、前記ディスクアレイにデータを、冗長性を持たせて記憶するディスクアレイシステムの制御方法であって、システム起動時に、前記保持手段に保持されている前記検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定工程と、前記障害発生判定工程により障害が発生したディスク装置があると判定された場合、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定工程と、前記冗長性判定工程により前記ディスクアレイがデータの冗長性を消失した状態にあると判定された場合、他のディスク装置のそれぞれを停止させるディスク装置停止工程と、前記ディスク装置停止工程で前記他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行する特定処理実行工程とを有することを特徴とする。
【００１５】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムを制御するスためのプログラムであって、上位装置からの要求に応じた処理を実行する処理モジュールと、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出モジュールと、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定モジュールと、前記ディスク装置のそれぞれを停止させるディスク装置停止モジュールとを有し、前記ディスク装置障害検出モジュールにより前記複数のディスク装置のうち、障害が発生したディスク装置が検出され、前記冗長性判定モジュールにより前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理モジュールは、前記ディスク装置停止モジュールにより他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とする。
【００１６】
本発明は、上記目的を達成するため、複数のディスク装置から構成されるディスクアレイに、データに冗長性を持たせて記憶するディスクアレイシステムを制御するためのプログラムであって、上位装置からの要求に応じた処理を実行する処理モジュールと、前記ディスクアレイの各ディスク装置の障害発生を検出するディスク装置障害検出モジュールと、前記ディスク装置障害検出モジュールによる検出結果を不揮発性の保持手段に保持される保持モジュールと、前記保持手段に保持されている前記ディスク装置障害検出モジュールによる検出結果に基づいて障害が発生したディスク装置があるか否かを判定する障害発生判定モジュールと、前記ディスクアレイがデータの冗長性を消失した状態にあるか否かを判定する冗長性判定モジュールと、前記ディスク装置のそれぞれを停止させるディスク装置停止モジュールとを有し、システム起動時に、前記障害発生判定モジュールにより障害が発生したディスク装置があると判定され、かつ前記冗長性判定モジュールにより前記ディスクアレイがデータの冗長性を消失したと判定された場合、前記処理モジュールは、前記ディスク装置停止モジュールにより他のディスク装置が停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理を実行することを特徴とする。
【００１７】
本発明は、上記目的を達成するため、上記プログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体を提供する。
【発明の効果】
【００１８】
本発明によれば、複数のディスク装置から構成されるディスクアレイにおいて、ディスクアレイを構成するディスク装置の少なくともひとつに障害が発生し、データの冗長性が消失したときに、多重障害の発生を防止し、データを強固に保護することが可能であり、かつ使い勝手のよい、コストパフォーマンスに優れたディスクアレイシステムを提供することできる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００２０】
図１は本発明の一実施の形態に係るディスクアレイシステムが搭載される情報処理装置の構成を示すブロック図である。
【００２１】
ディスクアレイシステムが搭載される情報処理装置は、図１に示すように、本体装置１００、表示装置１２０、入力装置１４０、アレイコントローラ１６０、およびディスクアレイ１８０を備える。
【００２２】
本体装置１００は、接続されるデバイスの制御を行う、パーソナルコンピュータまたはサーバを構成するＣＰＵ１０１とその周辺チップセット、またはそれらを実装したマザーボードである。本体装置１００は、具体的には、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ブリッジ部１０４、表示装置インターフェース部（以下、表示装置Ｉ／Ｆ部という）１０５、入力装置インターフェース部（以下、入力装置Ｉ／Ｆ部という）１０６、および記憶装置インターフェース部（以下、記憶装置Ｉ／Ｆ部という）１０７を有する。ＣＰＵ１０１は、プログラムを実行することによりデータの処理や接続されるデバイスの制御を行うプロセッサである。ＲＯＭ１０２は、ＣＰＵ１０１により実行されるプログラムや各種パラメータなどを記憶する不揮発性メモリである。ＲＡＭ１０３は、ＣＰＵ１０１によるプログラム実行時に使用されるパラメータなどを一時的に記憶する揮発性メモリである。
【００２３】
ブリッジ部１０４、表示装置Ｉ／Ｆ部１０５、入力装置Ｉ／Ｆ部１０６および記憶装置Ｉ／Ｆ部１０７は、それぞれに接続されるデバイス間の信号の変換や接続を行うインターフェース手段である。ブリッジ部１０４は、ＣＰＵ１０１、ＲＯＭ１０２およびＲＡＭ１０３が接続されたＣＰＵ内部バスと、表示装置Ｉ／Ｆ部１０５、入力装置Ｉ／Ｆ部１０６および記憶装置Ｉ／Ｆ部１０７との接続を行う。表示装置Ｉ／Ｆ部１０５は、ブリッジ部１０４と表示装置１２０の接続を行う。入力装置Ｉ／Ｆ部１０６は、ブリッジ部１０４と入力装置１４０の接続を行う。記憶装置Ｉ／Ｆ部１０７は、ブリッジ部１０４とアレイコントローラ１６０の接続を行う。
【００２４】
表示装置１２０は本体装置１００から出力された画像データを表示する、例えばＣＲＴ、液晶パネルなどから構成されるディスプレイである。
【００２５】
入力装置１４０は、ユーザにより入力されたデータを本体装置１００に出力する、例えばキーボード、マウスなどから構成される。
【００２６】
アレイコントローラ１６０は、本体装置１００に、配下に接続される複数のディスク装置１８１〜１８４からなるディスクアレイ１８０を一つの論理ディスクとして認識させるインターフェースを提供する。そして、アレイコントローラ１６０は、本体装置１００からディスクアレイ１８０への書き込み要求を受信すると、書き込みデータをディスク装置１８１〜１８４の構成に基づいて再構成し、個々のディスク装置１８１〜１８４に書き込む。また、アレイコントローラ１６０は、本体装置１００からディスクアレイ１８０からの読み出し要求を受信すると、個々のディスク装置１８１〜１８４からデータを読み出し、ディスク装置１８１〜１８４の構成に基づき再構成し、本体装置１００に送信する。
【００２７】
アレイコントローラ１６０は、ＭＰＵ１６１、ＲＯＭ１６２、ＲＡＭ１６３、フラッシュメモリ１７２、キャッシュメモリ１６４、パリティ演算部１６５、本体装置インターフェース部（以下、本体装置Ｉ／Ｆ部という）１６６、ディスク装置インターフェース部（以下、ディスク装置Ｉ／Ｆ部という）１６７〜１７０、スイッチ部１７１およびタイマ１７３を有する。
【００２８】
ＭＰＵ１６１は、プログラムを実行することによりデータの処理や接続されるデバイスの制御を行うプロセッサである。ＲＯＭ１６２は、ＭＰＵ１６１により実行されるプログラムや各種パラメータなどを記憶する不揮発性メモリである。ＲＡＭ１６３は、ＭＰＵ１６１によるプログラム実行時に使用されるパラメータなどを一時的に記憶する揮発性メモリである。フラッシュメモリ１７２は、ＭＰＵ１６１によるプログラム実行時に使用されるパラメータを書き換え可能に記憶する不揮発性メモリである。キャッシュメモリ１６４は、アレイコントローラ１６０からまたはアレイコントローラ１６０への入出力データを一時的に記憶するバッファ手段である。
【００２９】
パリティ演算部１６５は、アレイコントローラ１６０からまたはアレイコントローラ１６０への入出力データのパリティ演算を行う。本体装置Ｉ／Ｆ部１６６は、スイッチ部１７１と本体装置１００の接続を行う。ディスク装置Ｉ／Ｆ部１６７〜１７０は、スイッチ部１７１とディスク装置１８１〜１８４の接続を行う。本体装置Ｉ／Ｆ部１６６およびディスク装置Ｉ／Ｆ部１６７〜１７０は、それぞれに接続されるデバイス間の信号の変換や接続を行うインターフェース手段である。スイッチ部１７１は、ＭＰＵ１６１の指示に基づき、本体装置Ｉ／Ｆ部１６６、キャッシュメモリ１６４およびパリティ演算部１６５とディスク装置Ｉ／Ｆ部１６７〜１７０との間でのデータのスイッチングを行う。
【００３０】
タイマ１７３は、ＭＰＵ１６１の指示に基づいて計時を開始し、予め設定された所定時間が経過すると、その旨をＭＰＵ１６１に通知する計時手段である。
【００３１】
アレイコントローラ１６０は、例えばプロセッサ組み込みＬＳＩとその周辺ＩＣまたはそれらを実装した拡張ボードから構成される。また、それらがマザーボード上に実装される構成のものでもよい。
【００３２】
ディスクアレイ１８０は、複数のディスク装置１８１〜１８４からなる。各ディスク装置１８１〜１８４は、アレイコントローラ１６０から送出されたデータを格納する。各ディスク装置１８１〜１８４は、例えば、ハードディスクドライブから構成される。
【００３３】
本実施の形態におけるディスクアレイシステムは、冗長性を有する任意のＲＡＩＤレベル、例えば、ＲＡＩＤ１（ミラーリング）、ＲＡＩＤ２、ＲＡＩＤ３、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ１０、またはＲＡＩＤ５０などの基準に従って構成される。
【００３４】
本実施の形態においては、一般的なディスクアレイ１８０に対する読み出し／書き込み動作に関する詳細な説明は省略し、ディスクアレイ１８０を構成するディスク装置１８１〜１８４のうち、少なくとも１台のディスク装置に障害が発生したときの動作について図２および図３を参照しながら説明する。ここでは、一例として、ディスク装置１８４に障害が発生したものとして説明する。図２および図３はディスクアレイシステムが動作中にディスク装置１８４に障害が発生したことを検出したときのアレイコントローラ１６０の動作手順を示すフローチャートである。この図２および図３に示す手順は、アレイコントローラ１６０のＲＯＭ１６２またはフラッシュメモリ１７２に格納されているプログラムに従ってＭＰＵ１６１により実行されるものである。
【００３５】
アレイコントローラ１６０は、ステップＳ２０１において、ディスク装置の障害検出を行う。このディスク装置の障害検出は、ディスク装置へのデータ読み出し要求に対し正常にデータが読み出されるまでの応答時間もしくはリトライ回数、またはＳＭＡＲＴ情報の参照など、公知の方法により行われる。ここでは、ディスク装置１８４に障害が発生したことが検出されたとする。
【００３６】
次いで、アレイコントローラ１６０は、ステップＳ２０２において、障害が発生したディスク装置があれば、そのＩＤなどを障害情報としてフラッシュメモリ１７２に記憶する。そして、アレイコントローラ１６０は、ステップＳ２０３において、フラッシュメモリ１７２に記憶された障害情報を参照して、ディスクアレイ１８０に冗長性が確保されているか否かを判定する。例えば、ＲＡＩＤ３、ＲＡＩＤ４、またはＲＡＩＤ５を実施可能なように３台のディスク装置から構成されるディスクアレイにおいては、１台のディスク装置に障害が発生した場合、冗長性が消失したものと判定される。また、例えば、ＲＡＩＤ１を実施可能なように２台のディスク装置から構成されるディスクアレイにおいては、そのうち１台のディスク装置に障害が発生した場合、冗長性が消失したものと判定される。
【００３７】
上記ステップＳ２０３において冗長性が確保されていると判定された場合、アレイコントローラ１６０は、ステップＳ２２１において、本体装置１００に障害情報（ここでは、ディスク装置１８４）を通知し、本処理を終了する。この障害情報を受けた本体装置１００は、障害が発生したディスク装置（ここではディスク装置１８４）を正常なディスク装置１８５に交換し、障害発生のディスク装置１８４のデータを正常なディスク装置１８５に回復するすなわちリビルドを行うようにユーザに指示するメッセージを、表示装置１２０に出力する。なお、当然ではあるが、障害発生のディスク装置が検出されない場合は、障害情報の本体装置１００への通知は行われない。
【００３８】
上記ステップＳ２０３において冗長性が消失したと判定された場合、アレイコントローラ１６０は、ステップＳ２０４において、タイマ１７３を起動する。また、アレイコントローラ１６０は、本体装置１００に対して、障害情報を通知し、本体装置１００の終了処理を行うように要求する。これを受けて本体装置１００は、ディスク装置１８４に障害が発生したことによりディスクアレイ１８０の冗長性が消失し、ディスクアレイ１８０に記憶したデータが消失する危険性があるため、速やかに現在作業中のデータを保存するなどの終了処理を行った後、障害ディスク装置１８４を正常なディスク装置１８５に交換し、リビルドを行うようにユーザに指示するメッセージを表示装置１２０に出力する。さらに、ユーザによる終了処理が所定時間内に行われないことを想定して、ディスクアレイ１８０に記憶されたデータの安全確保のために、ディスクアレイ１８０を構成するディスク装置１８１〜１８４を停止することをユーザに通知するメッセージが表示装置１２０に出力される。
【００３９】
次いで、アレイコントローラ１６０は、ステップＳ２０５およびステップＳ２０６において、本体装置１００から本体装置１００の終了処理の完了を示す終了処理完了通知を受領するのを待つために、所定時間待機する。所定時間内に本体装置１００から本体装置１００の終了処理完了通知を受領した場合、アレイコントローラ１６０は、ステップＳ２０７において、キャッシュ・フラッシュなどのアレイコントローラ１６０の終了処理を行い、ディスクアレイ１８０を構成する各ディスク装置１８１〜１８４を停止する。また、所定時間内に本体装置１００から本体装置１００の終了処理完了通知を受領せずに、所定時間が経過した場合、アレイコントローラ１６０は、同様に、ステップＳ２０７において、キャッシュ・フラッシュなどのアレイコントローラ１６０の終了処理を行い、ディスクアレイ１８０を構成する各ディスク装置１８１〜１８４を停止する。このディスク装置１８１〜１８４の停止に伴いアレイコントローラ１６０は、本体装置１００からディスクアレイ１８０へのアクセスを許可しない。
【００４０】
次いで、図３に示すように、アレイコントローラ１６０は、ステップＳ２０８において、本体装置１００からリビルド処理開始命令を受領するのを待つ。この待ち受け期間は、ユーザが障害ディスク装置１８４を新しいディスク装置１８５に交換し、入力装置１４０を介して本体装置１００にリビルド処理開始を指示するのを待つ期間であり、このユーザ指示により本体装置１００からリビルド処理開始命令が発行される。そして、本体装置１００からのリビルド処理開始命令を受領すると、アレイコントローラ１６０は、ステップＳ２０９において、新しいディスク装置１８５を起動し、その固有情報の取得を試行する。
【００４１】
次いで、アレイコントローラ１６０は、ステップ２１０において、新しいディスク装置１８５が正常でかつディスクアレイ１８０を構成するのに適当な容量を有するものであるか否かを判定する。ここで、新しいディスク装置１８５が正常でありかつ適当な容量を有するものである場合、アレイコントローラ１６０は、各ディスク装置１８１〜１８３を起動し、リビルド処理を開始する。そして、アレイコントローラ１６０は、ステップＳ２１２において、リビルド処理が正常に終了したか否かを判定する。
【００４２】
上記ステップＳ２１２においてリビルド処理が正常に終了したと判定された場合、アレイコントローラ１６０は、ステップＳ２１３において、本体装置１００にリビルド処理が正常に終了したことを通知し、本体装置１００からディスクアレイ１８０へのアクセスを許可し、本処理を終了する。この通知を受けた本体装置１００は、リビルド処理が正常に終了したことをユーザに通知するために、その旨を示すメッセージを表示装置１２０に出力する。
【００４３】
上記ステップＳ２１０において新しいディスク装置１８５が正常でないまたは適当な容量を有するものでないと判定された場合、または上記ステップＳ２１２においてリビルド処理が正常に終了しなかったと判定された場合、アレイコントローラ１６０は、ステップＳ２４１において、本体装置１００にリビルド処理が異常終了したことを通知し、上記ステップＳ２０８に戻る。このリビルド処理異常終了通知を受けた本体装置１００は、リビルド処理が異常終了したので、各ディスク装置１８１〜１８３，１８５の状態を確認し、再度、リビルド処理を行うようにユーザに指示するためのメッセージを表示装置１２０に出力する。
【００４４】
次に、ディスクアレイシステムの起動時の動作について図４を参照しながら説明する。図４はディスクアレイシステムの起動時のアレイコントローラ１６０の動作手順を示すフローチャートである。この図４に示す手順は、アレイコントローラ１６０のＲＯＭ１６２またはフラッシュメモリ１７２に格納されているプログラムに従ってＭＰＵ１６１により実行されるものである。
【００４５】
ディスクアレイシステムを起動する際には、本体装置１００からリセット信号がアレイコントローラ１６０に送出される。アレイコントローラ１６０は、図４に示すように、ステップＳ３０１において、本体装置１００からのリセット信号を検出して起動し、続くステップＳ３０２において、フラッシュメモリ１７２に記憶された各ディスク装置１８１〜１８４の障害情報を取得する。
【００４６】
次いで、アレイコントローラ１６０は、ステップＳ３０３において、各ディスク装置１８１〜１８４の中に、障害が発生しているディスク装置があるか否かを判定する。ここで、障害発生のディスク装置がない場合、アレイコントローラ１６０は、ステップＳ３２１において、各ディスク装置１８１〜１８４を起動し、本処理を終了する。
【００４７】
これに対し、上記ステップＳ３０３において障害発生のディスク装置があると判定された場合（ここでは障害発生のディスク装置をディスク装置１８４とする）、アレイコントローラ１６０は、ステップＳ３０４において、ディスクアレイ１８０に冗長性が確保されているか否かを判定する。ここで、冗長性が確保されていると判定された場合、アレイコントローラ１６０は、ステップＳ３４１において、本体装置１００に障害情報（ディスク装置１８４のＩＤなど）を通知する。この通知を受けた本体装置１００は、ディスク装置１８４に障害が発生していることを認識し、障害発生のディスク装置１８４を正常なディスク装置に交換し、障害発生のディスク装置１８４のデータを正常なディスク装置に回復する、すなわちリビルドを行うようにユーザに指示するメッセージを表示装置１２０に出力する。そして、アレイコントローラ１６０は、ステップＳ３４２において、各ディスク装置１８１〜１８３を起動し、本処理を終了する。
【００４８】
上記ステップＳ３０４において冗長性がないと判定された場合、アレイコントローラ１６０は、ステップＳ３０５において、本体装置１００に障害情報を通知する。この通知を受けた本体装置１００は、ディスク装置１８４に障害が発生したことによってディスクアレイ１８０の冗長性が消失し、ディスクアレイ１８０に記憶したデータが消失する危険性があると判断し、障害発生のディスク装置１８４を正常なディスク装置に交換し、リビルドを行うようにユーザに指示するメッセージを表示装置１２０に出力する。
【００４９】
このステップＳ３０５以降の手順は、前述したディスクアレイシステムの動作中にディスク装置１８１〜１８４に障害が発生したときのアレイコントローラ１６０の動作手順における同一符号の手順と同様であるので、その説明は省略する。
【００５０】
このように、本実施の形態によれば、ディスクアレイ１８０を構成する複数のディスク装置１８１〜１８４のうち、障害発生の少なくとも１つのディスク装置が検出され、ディスクアレイ１８０がデータの冗長性を消失したと判定された場合、ディスク装置１８１〜１８４の全てが停止された後に、障害発生のディスク装置のデータの回復に関する要求に応じた処理のみが実行されるので、ディスクアレイ１８０におけるディスク装置の少なくとも１つに障害が発生し、データの冗長性が消失したときに、多重障害の発生を防止し、データを強固に保護することが可能であり、かつ使い勝手のよい、コストパフォーマンスに優れたディスクアレイシステムを提供することできる。
【００５１】
また、ディスク装置１８１〜１８４の障害情報をアレイコントローラ１６０のフラッシュメモリ１７２に記憶し、起動時にフラッシュメモリ１７２からディスク装置１８１〜１８４の障害情報を取得することにより、冗長性が消失した状態でディスク装置１８１〜１８４が起動されることを未然に防止することができる。
【００５２】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５３】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードを、ネットワークを介してダウンロードしてもよい。
【００５４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００５５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはうまでもない。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施の形態に係るディスクアレイシステムが搭載される情報処理装置の構成を示すブロック図である。
【図２】ディスクアレイシステムが動作中にディスク装置１８４に障害が発生したことを検出したときのアレイコントローラ１６０の動作手順を示すフローチャートである。
【図３】ディスクアレイシステムが動作中にディスク装置１８４に障害が発生したことを検出したときのアレイコントローラ１６０の動作手順を示すフローチャートである。
【図４】ディスクアレイシステムの起動時のアレイコントローラ１６０の動作手順を示すフローチャートである。
【符号の説明】
【００５７】
１００  本体装置
１６０  アレイコントローラ
１６１  ＭＰＵ
１６２  ＲＯＭ
１６３  ＲＡＭ
１６４  キャッシュメモリ
１６５  パリティ演算部
１６６  本体装置インターフェース部
１６７〜１７０  ディスク装置インターフェース部
１７１  スイッチ部
１７２  フラッシュメモリ
１７３  タイマ
１８０  ディスクアレイ
１８１〜１８４  ディスク装置
【図１】
2005275813.tif 000003
【図２】
2005275813.tif 000004
【図３】
2005275813.tif 000005
【図４】
2005275813.tif 000006