(57)【要約】【課題】再構築処理の途中で不正の処理が終了した場合に、再構築処理およびパリティおよびデータの修復処理を行う時間の短縮化を図ること。【解決手段】  故障した記憶装置を新たな記憶装置に交換した場合に、故障していない縮退状態の記憶装置にリードおよびライトアクセスが行われている状態で、再構築手段を用いて故障していない記憶装置に格納されているデータおよび冗長コードを用いて交換された記憶装置にデータおよびパリティを再構築する再構築処理を実行し、再構築処理を実行している際中に再構築処理が不正に終了した後、交換された記憶装置中の再構築処理が終了していない範囲に対して再構築処理を再度実行し、再構築処理範囲指示手段が指示された範囲の再構築処理を終了した場合に、再構築処理範囲指示手段が指示した範囲とは異なる範囲に対応する複数台の記憶装置から一貫性が無い冗長コードまたはデータを修復する修復処理を実行する。【選択図】    図５
2010072966.tif 000002
【特許請求の範囲】
【請求項１】
複数台の記憶装置をストライプ単位で管理すると共に、ホストからライトアクセスされたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる１台以上の記憶装置に格納する情報処理装置であって、
前記複数台の記憶装置中の少なくとも１台の記憶装置が故障し、故障した記憶装置を新たな記憶装置に交換した場合に、前記故障していない記憶装置に縮退状態でリードおよびライトアクセスが行われている状態で、故障していない記憶装置に格納されているデータおよび冗長コードを用いて前記交換された記憶装置にデータおよびパリティを再構築する再構築処理を実行する再構築手段と、
前記複数台の記憶装置に格納されている一貫性が無い冗長コードまたはデータを修復する修復処理を実行する修復手段とを有する修復手段と、
前記再構築手段が再構築処理を実行している際中に前記再構築処理が不正に終了した後、前記交換された記憶装置中の再構築処理が終了していない範囲の再構築処理を前記再構築手段に再構築処理を実行させるために、前記再構築手段が再構築を行った領域を検出し、前記検出した領域に基づいて再構築処理を実行する範囲を前記前記再構築手段に指示する再構築処理範囲指示手段と、
前記再構築処理範囲指示手段が指示した範囲の再構築処理が終了した場合に、前記再構築処理範囲指示手段が指示した範囲とは異なる範囲に対応する前記複数台の記憶装置に対する前記修復処理を実行するために、前記再構築手段が再構築を行った領域を検出し、前記検出した領域に基づいて前記修復処理を実行する範囲を前記修復手段に指示する修復処理範囲指示手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記再構築手段は、一定数のストライプの前記再構築処理が終了する度に前記再構築処理が終了したストライプを示す情報を発行し、
前記発行された情報に基づいて前記再構築手段が再構築を行った領域を示す再構築終了領域情報を更新する再構築手段を更に具備し、
前記再構築処理範囲指示手段および前記修復処理範囲指示手段は、前記再構築終了領域情報に基づいて再構築手段が再構築を行った領域を検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数台の記憶装置をストライプ単位で管理すると共に、ホストからライトアクセスされたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる１台以上の記憶装置に格納するアレイ型記憶装置に対する再構築処理および修復処理の制御方法であって、
前記複数台の記憶装置中の少なくとも１台の記憶装置が故障し、故障した記憶装置を新たな記憶装置に交換した場合に、前記故障していない縮退状態の記憶装置にリードおよびライトアクセスが行われている状態で、再構築手段を用いて故障していない記憶装置に格納されているデータおよび冗長コードを用いて前記交換された記憶装置にデータおよびパリティを再構築する再構築処理を実行し、
再構築処理を実行している際中に前記再構築処理が不正に終了した後、前記交換された記憶装置中の再構築処理が終了していない範囲に対して前記再構築処理を再度実行し、
前記再構築処理範囲指示手段が指示された範囲の再構築処理を終了した場合に、前記再構築処理範囲指示手段が指示した範囲とは異なる範囲に対応する前記複数台の記憶装置から一貫性が無い冗長コードまたはデータを修復する修復処理を実行する
ことを特徴とする再構築処理および修復処理の制御方法。
【請求項４】
一定数のストライプの前記再構築処理が終了する度に前記再構築処理が終了したストライプを示す情報を発行し、
前記発行された情報に基づいて前記再構築手段が再構築を行った領域を示す再構築終了領域情報を更新することを更に具備し、
前記再度の再構築処理が行われる範囲は、前記再構築終了領域情報に基づいて決定され、
前記修復処理が行われる範囲は、前記再構築終了領域情報に基づいて決定される
ことを特徴とする請求項３に記載の再構築処理および修復処理の制御方法。
【請求項５】
コンピュータに、複数台の記憶装置をストライプ単位で管理すると共に、ホストからライトアクセスされたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる１台以上の記憶装置に格納するアレイ型記憶装置に対して、前記複数台の記憶装置中の少なくとも１台の記憶装置が故障し、故障した記憶装置を新たな記憶装置に交換した場合に行われる再構築処理、および前記複数台の記憶装置に格納されている一貫性がないパリティおよびデータを修復する修復処理を実行させるプログラムであって、
前記コンピュータに、前記複数台の記憶装置中の少なくとも１台の記憶装置が故障し、故障した記憶装置を新たな記憶装置に交換した場合に、前記故障していない縮退状態の記憶装置にリードおよびライトアクセスが行われている状態で、故障していない記憶装置に格納されているデータおよび冗長コードを用いて前記交換された記憶装置に前記再構築処理を実行させる手順と、
前記検出した領域に基づいて前記交換された記憶装置中の再構築処理が終了していない範囲の再構築処理を実行させる手順と、
前記再構築処理範囲指示手段が指示した範囲とは異なる範囲に対応する前記複数台の記憶装置に前記修復処理を実行させる手順と
を実行させることを特徴とするプログラム。
【請求項６】
前記コンピュータに、前記再構築手段は一定数のストライプの前記再構築処理が終了する度に前記再構築処理が終了したストライプを示す情報を発行させるための処理を実行させる手順と、
前記コンピュータに、前記発行された情報に基づいて前記再構築手段が再構築を行った領域を示す再構築終了領域情報を更新するための処理を実行させる手順とを更に具備し、
前記再構築処理が不正に終了する前に前記再構築手段が再構築を行った領域の検出は、前記再構築終了領域情報に基づいて行われることを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置アレイを有する情報処理装置、および再構築処理および修復処理の制御方法に関する。
【背景技術】
【０００２】
複数の記憶装置で構成されるアレイ型記憶装置では、ハードディスクドライブが故障しても、冗長性があるので故障したハードディスクドライブを置き換えた新たなハードディスクドライブにデータ等を再構築することができる。
【０００３】
冗長構成のアレイ装置のディスクの故障後の再構築処理において、再構築（リビルド）のデータアクセスを読み出し要求と、書き込み要求の２つに分割し、その間に外部アクセスを許可する。再構築の書き込みと、外部アクセスが同一クラスタに行なわれた場合、再構築の書き込みを取り消す技術が開示されている（特許文献１参照）。
【特許文献１】特開２００２−２０２８５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、冗長性がない状態(縮退)で再構築処理を行っている場合に、データライト中にシステムがクラッシュすると、データライト中のデータまたはパリティが正常に書き込まれないことがある。その結果、アレイ型記憶装置は、データおよびパリティに一貫性が無い状態となる。
【０００５】
従来は、再構築処理を行っている場合に、データライト中にシステムがクラッシュすると、一貫性が無いデータおよびパリティを修復するための修復処理をアレイ型記憶装置を構成する全ての記憶装置の全領域に対して行っていて膨大な時間がかかっていた。
【０００６】
本発明の目的は、再構築処理の途中で不正の処理が終了した場合に、再構築処理およびパリティおよびデータの修復処理を行う時間の短縮化を図ることが可能な情報処理装置、および情報処理装置および再構築処理および修復処理の制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一例に係わる情報処理装置は、複数台の記憶装置をストライプ単位で管理すると共に、ホストからライトアクセスされたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる１台以上の記憶装置に格納する情報処理装置であって、前記複数台の記憶装置中の少なくとも１台の記憶装置が故障し、故障した記憶装置を新たな記憶装置に交換した場合に、前記故障していない記憶装置に縮退状態でリードおよびライトアクセスが行われている状態で、故障していない記憶装置に格納されているデータおよび冗長コードを用いて前記交換された記憶装置にデータおよびパリティを再構築する再構築処理を実行する再構築手段と、前記複数台の記憶装置に格納されている一貫性が無い冗長コードまたはデータを修復する修復処理を実行する修復手段とを有する修復手段と、前記再構築手段が再構築処理を実行している際中に前記再構築処理が不正に終了した後、前記交換された記憶装置中の再構築処理が終了していない範囲の再構築処理を前記再構築手段に再構築処理を実行させるために、前記再構築手段が再構築を行った領域を検出し、前記検出した領域に基づいて再構築処理を実行する範囲を前記前記再構築手段に指示する再構築処理範囲指示手段と、前記再構築処理範囲指示手段が指示した範囲の再構築処理が終了した場合に、前記再構築処理範囲指示手段が指示した範囲とは異なる範囲に対応する前記複数台の記憶装置に対する前記修復処理を実行するために、前記再構築手段が再構築を行った領域を検出し、前記検出した領域に基づいて前記修復処理を実行する範囲を前記修復手段に指示する修復処理範囲指示手段とを具備することを特徴とする情報処理装置。
【発明の効果】
【０００８】
本発明によれば、再構築処理の途中で不正の処理が終了した場合に、再構築処理およびパリティおよびデータの修復処理を行う時間の短縮化を図ることが可能になる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施の形態を以下に図面を参照して説明する。
【００１０】
まず、図１を参照して、本発明の一実施形態に係るＲＡＩＤシステムのシステム構成について説明する。
【００１１】
本サーバ１０は、図１に示されているように、ＣＰＵ１１１、ノースブリッジ１１２、主メモリ１１３、グラフィクスコントローラ１１４、サウスブリッジ１１９、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１Ａ〜１２１Ｄ、ＬＡＮコントローラ１２３、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４、および電源コントローラ１２５等を備えている。
【００１２】
ＣＰＵ１１１は本サーバ１０の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ（ＨＤＤ）１２１Ａ〜１２１Ｄから主メモリ１１３にロードされる、オペレーティングシステム（ＯＳ）および各種アプリケーションプログラムを実行する。ＯＳは、複数のウィンドウを表示画面上に表示するためのウィンドウシステムを有している。
【００１３】
また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。
【００１４】
ノースブリッジ１１２はＣＰＵ１１１のローカルバスとサウスブリッジ１１９との間を接続するブリッジデバイスである。ノースブリッジ１１２には、主メモリ１１３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１２は、ＡＧＰ（Accelerated Graphycs Port）バスなどを介してグラフィクスコントローラ１１４との通信を実行する機能も有している。
【００１５】
グラフィクスコントローラ１１４は、本サーバ１０のフロントディスプレイパネルとして使用されるＬＣＤ１７を制御する表示コントローラである。このグラフィクスコントローラ１１４はビデオメモリ（ＶＲＡＭ）を有しており、ＯＳ／アプリケーションプログラムによってビデオメモリに描画された表示データから、ＬＣＤ１７に表示すべき表示イメージを形成する映像信号を生成する。
【００１６】
サウスブリッジ１１９は、ＬＰＣ（Low Pin Count）バス上の各デバイスを制御する。また、サウスブリッジ１１９は、ＰＣＩ−Ｘバスに接続されたデバイスと通信を行うためのＰＣＩ−Ｘコントローラを内蔵している。さらに、サウスブリッジ１１９は、ＢＩＯＳ−ＲＯＭ１２０をアクセス制御するための機能も有している。
【００１７】
サウスブリッジ１１９は、内部にハードディスクドライブ（ＨＤＤ）コントローラ１１９Ａを有する。本実施形態の場合、ハードディスクドライブ（ＨＤＤ）コントローラ１１９Ａは、４台のハードディスクドライブ１２１Ａ〜１２１Ｄとの通信を制御する。
【００１８】
ＬＡＮコントローラ１２３は、本コンピュータをＬＡＮに接続するためのネットワークインターフェースである。
【００１９】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、電源制御、放熱制御のためのエンベデッドコントローラと、キーボード（ＫＢ）およびマウスを制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、ユーザによるパワーボタン１４の操作に応じて本サーバ１０をパワーオン／パワーオフする機能を有している。
【００２０】
電源回路としてのＡＣ／ＤＣコンバータ１２６は、交流電圧を直流電圧に変換する。変換された直流電圧は、電源回路としての電源コントローラ１２５に出力される。電源コントローラ１２５は、直流電圧を用いて本サーバ１０の各コンポーネントに供給すべきシステム電力を生成する。電源コントローラ１２５は電圧供給指示手段としてのＥＣ／ＫＢＣ１２４からの指示に応じて、本サーバ１０の各コンポーネントにシステム電力を供給する。
【００２１】
本コンピュータは、ＣＰＵ１１１によって実行されるソフトウェアＲＡＩＤ（Redundant Array Of Inexpensive Disks）機能を有している。本装置で実行されるソフトウェアＲＡＩＤは、例えばＲＡＩＤ−５に対応している。
【００２２】
図２は、一般的な４台のＨＤＤでＲＡＩＤ５を組んだ場合のデータ・パリティ配置の例である。１２１Ａ〜１２１Ｄのそれぞれのハードディスクドライブは、ユーザエリアとＲＡＩＤ管理情報エリアに分けられる。ＲＡＩＤ管理情報エリアには、ＲＡＩＤアレイの構成情報やアレイに属するハードディスクドライブの情報等が保存されている。ユーザエリアは、ストライプ（Ｓ0、Ｓ1、Ｓ2、Ｓ3、Ｓ4、‥、Ｓn、‥）という単位で管理されて、それぞれのストライプには、データＤsd（ｓはストライプ番号、ディスク番号）が３台のハードディスクドライブに分散されて格納されると共に、分散されたデータから生成されるパリティＰs（冗長コード）が１台のハードディスクドライブに格納される。パリティは他のハードディスクドライブに格納されているデータの排他的論理和を演算することで求められる。
【００２３】
次に、ソフトウェアＲＡＩＤの構成について図３を参照して説明する。  
ソフトウェアＲＡＩＤは、ＲＡＩＤドライバ２００、およびＲＡＩＤ管理モジュール２１０等から構成されている。ＲＡＩＤドライバ２００は、書込モジュール２０１、読出モジュール、再構築モジュール２０３、およびパリティ・データ修復モジュール２０４等から構成される。
【００２４】
書込モジュール２０１は、オペレーティングシステムやアプリケーションソフトウェアからハードディスクドライブに書込みを命じられたデータをハードディスクドライブに分散させて書き込むと共に、分散されたデータから生成されるパリティＰs（冗長コード）を１台のハードディスクドライブに書き込む。
【００２５】
読込モジュール２０２は、オペレーティングシステムやアプリケーションソフトウェアからハードディスクドライブに書込みを命じられたデータを読み出す処理を実行する。
【００２６】
再構築モジュール２０３は、１台のハードディスクドライブに故障が発生した場合に、ＲＡＩＤ管理モジュール２１０の制御の下に再構築処理を実行する。再構築処理とは、故障していないハードディスクドライブに格納されているデータおよびパリティを用いて、故障した記憶装置に格納されていた情報を交換された記憶装置に再構築する処理のことである。
【００２７】
また、再構築モジュール２０３は、例えば１００個のストライプの再構築が終了する度に、再構築が終了した領域を示す再構築終了領域情報を発行する。
【００２８】
パリティ・データ修復モジュール２０４は、再構築処理中に障害が発生することによって交換したハードディスクドライブのリビルド処理を完了することができなかった場合に、ＲＡＩＤ管理モジュール２１０の制御の下に次回起動時にパリティおよびデータの修復処理を実行する。リビルド処理中に障害が発生することによって交換したハードディスクドライブのリビルド処理を完了することができなかった場合、４台のハードディスクドライブは冗長性のない状態であるので、各ハードディスクドライブに格納されているパリティおよびデータに一貫性がない場合が或る。パリティ・データ修復モジュール２０４は、一貫性のないパリティまたはデータを検出し、検出されたパリティおよびデータの修復処理を行うことによって、ＲＡＩＤ５を構築するハードディスクドライブ１２１Ａ〜１２１Ｄに格納されているパリティおよびデータを保証する。
【００２９】
また、ＲＡＩＤドライバ２００は、再構築モジュール２０３が再構築処理を開始すると再構築処理中であることを示す再構築処理情報２２０をイネーブルにする。そして、再構築処理が終了すると、ＲＡＩＤドライバ２００は、再構築処理情報２２０をディスイネーブルにする。再構築処理が異常終了すると再構築処理情報２２０はイネーブルの状態なので、システムの起動時に再構築処理情報２２０を参照することで再構築処理が正常に終了したか異常終了したかを判別することができる。
【００３０】
ＲＡＩＤ管理モジュール２１０は、パリティ・データ修復管理データ管理モジュール２１１、再構築範囲指示モジュール２１２、およびパリティ・データ修復範囲指示モジュール２１３等を有する。
【００３１】
パリティ・データ修復管理データ管理モジュール２１１は、再構築モジュール２０３が再構築終了領域情報を発行する度に、発行された再構築終了領域情報に基づいて再構築が終了した領域を示すパリティ・データ修復管理データ２２０を更新する。
【００３２】
再構築範囲指示モジュール２１２は、再構築モジュール２０３に対して交換したハードディスクドライブの再構築を行う範囲を指示する。通常、再構築範囲指示モジュール２１２は、再構築モジュール２０３に対して交換したハードディスクドライブの先頭から最後の領域までの範囲を指示する。しかし、再構築モジュール２０３が再構築処理を行っている最中に再構築処理が不正に終了した場合、パリティ・データ修復管理データ２２０に基づいて、交換したハードディスクドライブに対して再構築処理が行われてない範囲の再構築処理を指示する。
【００３３】
再構築モジュール２０３が再構築処理を行っている最中に再構築処理が不正に終了し、再構築処理が再構築範囲指示モジュール２１２の指示範囲に基づいて正常に再構築処理を終了した場合に、パリティ・データ修復範囲指示モジュール２１３は、パリティ・データ修復モジュール２０４に対して、パリティ・データ修復管理データ２２０に基づいて交換したハードディスクドライブに対して、再構築処理が最後に再構築処理を行った範囲とは重複しない別の範囲に対するパリティ修復処理を指示する。つまり、パリティ・データ修復範囲指示モジュール２１３が指示する範囲は、図４に示すように、再構築処理の再開は交換したハードディスクドライブ中の再構築処理が行われていない領域の再構築を行う、再構築が終了しパリティおよびデータが保証されていない領域に対してパリティおよびデータの修復処理を実行する。
【００３４】
再構築処理が終了した範囲に対して再構築処理を再度実行し、再度の再構築処理が無事終了したら、再度再構築処理を行った領域に格納されているデータおよびパリティは一貫性がとれた状態になる。よって、再度再構築処理を行った領域に対しては修復処理を実行する必要がない。再度再構築処理を行った領域に対して修復処理を行わないことで、再構築処理および修復処理にかかる時間を短縮化することができる。
【００３５】
以下に、上述した再構築処理およびパリティおよびデータの修復処理を実行するための処理を図５のフローチャートを参照して説明する。
【００３６】
先ず、ハードディスクドライブ１２１Ａ〜１２１Ｄの中のハードディスクドライブ１２１Ｄが故障したものとする。すると、ＲＡＩＤドライバ２００は、故障していないハードディスクドライブを縮退状態でＲＡＩＤ５を運用し、ライトアクセスおよびライトアクセスを故障していないハードディスクドライブ１２１Ａ〜１２１Ｃに発行する。故障したハードディスクドライブがホットスワップによって新しいハードディスクドライブ１２１Ｄに交換する。
【００３７】
新しいハードディスクドライブ１２１Ｄに交換されると、再構築範囲指示モジュール２１２が交換されたハードディスクドライブの全部の領域の再構築処理を再構築処理モジュールに指示する。再構築処理モジュールは、また、ＲＡＩＤドライバ２００は、再構築処理情報２２０をイネーブルにし（ステップＳ１１）、交換されたハードディスクドライブ１２１Ｄに対して再構築処理を実行する（ステップＳ１２）。
【００３８】
再構築処理の途中でオペレーティングシステムが不正にシャットダウンし、再構築処理が不正に終了したものとする。オペレーティングシステムが再起動し、ＲＡＩＤドライバ２００およびＲＡＩＤ管理モジュール２１０が起動する。
【００３９】
ＲＡＩＤドライバ２００は、再構築処理情報２２０を参照して、前回の起動時に再構築処理が不正に終了したか否かを判別する。この場合、不正終了しているので再構築処理情報２２０はイネーブルのママであり、ＲＡＩＤドライバ２００は、再構築処理が不正に終了したと判断し、ＲＡＩＤドライバ２００はライド管理モジュールに前回の再構築処理が不正に終了した旨を通知する（ステップＳ１３）。
【００４０】
ＲＡＩＤ管理モジュール２１０の再構築範囲指示モジュール２１２は、パリティ・データ修復管理データ２２０を参照し、前回の再構築処理で再構築が終了した範囲を識別する（ステップＳ１４）。そして、再構築範囲指示モジュール２１２は、検出した範囲から再構築処理が終了していない、再構築処理を実行すべき範囲を演算する（ステップＳ１５）。再構築範囲指示モジュール２１２は、演算した範囲のハードディスクドライブ１２１Ｄに対して再構築処理を実行するようにＲＡＩＤドライバ２００に命令する（ステップＳ１６）。
【００４１】
ＲＡＩＤドライバ２００の再構築モジュール２０３は、再構築範囲指示モジュール２１２が命令した範囲のハードディスクドライブ１２１Ｄに対して再構築処理を実行する（ステップＳ１７）。ＲＡＩＤドライバ２００は、ＲＡＩＤ度管理モジュールから命令された範囲の再構築処理が終了したら（ステップＳ１８のＹｅｓ）、ＲＡＩＤ度管理モジュールに再構築処理が終了した旨を通知する（ステップＳ１９）。また、ＲＡＩＤドライバ２００は、再構築処理情報２２０をディスイネーブルにする。
【００４２】
ＲＡＩＤ管理モジュール２１０のパリティ・データ修復範囲指示モジュール２１３は、パリティ・データ修復管理データ２２０を参照し、前回の再構築処理で再構築が終了した範囲を識別する（ステップＳ２０）。そして、パリティ・データ修復範囲指示モジュール２１３は、ＲＡＩＤドライバ２００に対して、識別した範囲に対応する全ハードディスクドライブ１２１Ａ〜１２１Ｄの各ストライプに格納されている一貫性のないパリティおよびデータを修復するための修復処理を実行するように命令する（ステップＳ２１）。
【００４３】
ＲＡＩＤドライバ２００のパリティ・データ修復モジュール２０４は、命令された範囲のハードディスクドライブ１２１Ａ〜１２１Ｄに対するパリティおよびデータを修復するための処理を開始し（ステップＳ２２）、指定された範囲のパリティおよびデータを修復する（ステップＳ２３のＹｅｓ）。
【００４４】
なお、上述した情報処理装置は、ＲＡＩＤシステムは、ＮＡＳ（Network Attached Storage）として機能するアプライアンスサーバであっても良いし、ユーザが使用するパーソナルコンピュータであっても良い。  
上述した処理により、再構築処理および修復処理にかかる時間を短縮化することが可能になる。
【００４５】
また、上述したＲＡＩＤドライバの機能を、ハードウエアで実現されるＲＡＩＤコントローラに実装しても良い。
【００４６】
また、上述した例ではＲＡＩＤ５であったが、ＲＡＩＤ６の構成に対しても上述した再構築処理および修復処理の制御を実施することができる。また、ＲＡＩＤ５０やＲＡＩＤ６０のような復号ＲＡＩＤに対しても上述した再構築処理および修復処理の制御を実施することができる。
【００４７】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態に係わる情報処理装置のシステム構成を示すブロック図。
【図２】４台のハードディスクドライブでＲＡＩＤ５を組んだ場合のデータ・パリティ配置の例を示す図。
【図３】４台のハードディスクドライブでＲＡＩＤ５を構成するためのソフトウェアＲＡＩＤのシステム構成を示すブロック図。
【図４】リビルド中の不正シャットダウン後に４台のハードディスクドライブに対して行う再構築処理および修復処理を説明するための図。
【図５】再構築処理および修復処理を実行する手順を示すフローチャート。
【符号の説明】
【００４９】
１１１…ＣＰＵ，２００…ＲＡＩＤドライバ，２０１…書込モジュール，２０２…読込モジュール，２０３…再構築モジュール，２０４…パリティ・データ修復モジュール，２１０…ＲＡＩＤ管理モジュール，２１１…パリティ・データ修復管理データ管理モジュール，２１２…再構築範囲指示モジュール，２１３…パリティ・データ修復範囲指示モジュール，２２０…パリティ・データ修復管理データ。
【図１】
2010072966.tif 000003
【図２】
2010072966.tif 000004
【図３】
2010072966.tif 000005
【図４】
2010072966.tif 000006
【図５】
2010072966.tif 000007