(57)【要約】【課題】ＡＴＡ仕様のような安価なミラーディスク装置において代替セクター処理コマンドを用いることなくリードエラーを修復する。【解決手段】ＨＤＤ４において、ファームウェア４１が、ハードディスク４２でリードエラーを発生したセクターに対して、次回のデータ書き込み時に代替セクター処理を行なうように予約する。すると、制御部３の正常データ読出処理部３３が、ＨＤＤ５から正常なデータを読み出すようにファームウェア４１に指示を与えると、ファームウェア５１が、ハードディスク４２でリードエラーが発生したセクターと同一のセクターのデータをハードディスク５２から読み出す。そして、上書処理部３４が、読み出されたデータをエラーが発生したＨＤＤ４に上書きするようにファームウェア４１に指示を与えると、ファームウェア４１が、読み出されたデータをハードディスク４２において予約されたセクターに上書きして、代替セクター処理を実行する。【選択図】図１
2012108584.tif 000002
【特許請求の範囲】
【請求項１】
ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置の前記ディスクに対して読み出しおよび書き込みを制御するミラーディスク制御装置において、
データが読み出される前記ディスクである読出側ディスクにリードエラーが発生していると、前記読出側ディスク以外の前記ディスクである冗長側ディスクにおいて前記読出側ディスクでリードエラーが発生した記憶単位と同一の記憶単位の正常なデータを読み出すように、前記冗長側ディスクに対応する前記ファームウェアである冗長側ファームウェアに指示する正常データ読出手段と、
読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きするように、当該読出側ディスクに対応する前記ファームウェアである読出側ファームウェアに指示する上書手段とを備えていることを特徴とするミラーディスク制御装置。
【請求項２】
ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置において、
請求項１に記載のミラーディスク制御装置を備え、
前記冗長側ファームウェアは、前記正常データ読出手段による指示を受けて、前記冗長側ディスクから正常なデータを読み出し、
前記読出側ファームウェアは、前記上書手段の指示を受けて、読み出された正常なデータを前記読出側ディスクに書き込むことを特徴とするミラーディスク装置。
【請求項３】
ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置の前記ディスクに対して読み出しおよび書き込みを制御するミラーディスク制御装置を備えたミラーディスク装置に生じたリードエラーを修復するリードエラー修復方法において、
前記ミラーディスク制御装置により、データが読み出される前記ディスクである読出側ディスクにリードエラーが発生していると、前記読出側ディスク以外の前記ディスクである冗長側ディスクにおいて前記読出側ディスクでリードエラーが発生した記憶単位と同一の記憶単位の正常なデータを読み出すように、前記冗長側ディスクに対応する前記ファームウェアである冗長側ファームウェアに指示する正常データ読出指示工程と、
前記冗長側ファームウェアにより、前記正常データ読出指示工程による指示を受けて、前記冗長側ディスクから正常なデータを読み出す正常データ読出工程と、
読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きするように、当該読出側ディスクに対応する前記ファームウェアである読出側ファームウェアに指示する上書き指示工程と、
読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きする上書き工程とを含むことを特徴とするミラーディスク装置のリードエラー修復方法。
【請求項４】
請求項３に記載のリードエラー修復方法における各工程をコンピュータに実行させるためのミラーディスク装置のリードエラー修復プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リードエラー発生時に自己修復を行なうことができるミラーディスク制御装置、およびそのミラーディスク制御装置を備えるミラーディスク装置に関し、さらには、ミラーディスク装置においてリードエラーを修復する方法およびプログラムに関するものである。
【背景技術】
【０００２】
ハードディスク装置は、コンピュータ機器等の記憶装置として広く普及している。ハードディスク装置には、冗長性を備えることにより、ハードディスクの故障によるデータの消失やシステムダウンを回避することができるミラーディスク装置がある。ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）で提唱されるＲＡＩＤ１は、ミラーリング（二重化）を実現するために複数台のハードディスクを駆動してそれぞれに同一データを書き込むことにより冗長性を備えており、好適にミラーディスク装置に適用される。
【０００３】
ミラーディスク装置に用いられるハードディスクは、当初、高性能のＳＣＳＩ（Small Computer System Interface）仕様のハードディスクが主流であった。しかしながら、最近では、安価なＩＤＥ（Integrated Drive Electronics）仕様のハードディスクを用いたミラーディスク装置が登場し、ハードディスク容量の増大などの技術革新により、普及が進んできている。ＡＴＡ（AT Attachment）は、標準化されたＩＤＥの正式な規格であり、シリアル伝送方式のＳＡＴＡを派生している。
【０００４】
ところで、ミラーディスク装置における通常時のデータの読み出しは、図３に示すようにして行われる。
【０００５】
まず、アプリケーションまたはＯＳから読み出し要求が出力されると（ステップＳ１１）、その読み出し要求を受けたＨＢＡ（Host Bus Adapter）等のコントローラにより、１つのハードディスクドライブ（ＨＤＤ）へ読み出しコマンドが発行される（ステップＳ１２）。すると、読み出しコマンドを受けたＨＤＤからデータが読み出される（ステップＳ１３）。
【０００６】
また、ミラーディスク装置における通常時のデータの書き込みは、図４に示すようにして行われる。
【０００７】
まず、アプリケーションまたはＯＳから書き込み要求が出力されると（ステップＳ２１）、その書き込み要求を受けたコントローラにより、複数のＨＤＤへ同じデータを書き込むための書き込みコマンドが発行される（ステップＳ２２）。すると、書き込みコマンドを受けた複数のＨＤＤへデータが書き込まれる（ステップＳ２３）。
【０００８】
ミラーディスク装置においては、冗長性を維持するために、リードエラーやライトエラーに対するエラー修復が行われる。例えば、ＳＣＳＩ仕様のミラーディスク装置でリードエラーやライトエラーが発生する場合、図５に示すようにして、エラー修復のための代替セクター処理が行われる。
【０００９】
まず、アプリケーションまたはＯＳから読み出し要求または書き込み要求が出力されると（ステップＳ３１）、当該要求を受けたコントローラにより、ＨＤＤへ読み出しコマンドまたは書き込みコマンドが発行されて、当該コマンドを受けたＨＤＤに対するデータの読み出しまたは書き込みが行われる（ステップＳ３２）。ここまでの動作は、上記のステップＳ１１〜Ｓ１３またはステップＳ２１〜Ｓ２３と同様である。
【００１０】
読み出しまたは書き込みが成功すればエラーが生じていないが、成功しなければエラーが生じていることになる（ステップＳ３３）。ここで、エラーが生じていなければ、処理が終了するが、エラーが生じていれば、コントローラにより、エラー発生側のＨＤＤに代替セクター処理コマンドが発行される（ステップＳ３４）。これにより、リードエラーが発生したＨＤＤは、見かけのエラーを修復して冗長性を維持することができる。
【００１１】
このように、ＳＣＳＩ仕様のミラーディスク装置では、代替セクター処理コマンドが用意されているので、ライトエラーおよびリードエラーが発生すると、これらのエラーに対する修復処理が実行されることにより、冗長性が維持される。
【００１２】
代替セクター処理を行なうことについては、例えば、特許文献１に記載されている。特許文献１には、ディスクへのリードアクセスに対してリードエラーの応答があった場合に、読み取るべきデータを他のディスクに記憶されたデータから復元するだけでなく、リードエラーが根本的な媒体欠陥によるものであるかを検査して交代処理（代替処理）を実行することが記載されている。
【００１３】
ＡＴＡ仕様のミラーディスク装置でライトエラーが発生する場合、図６に示すようにして代替セクター処理が行われる。
【００１４】
まず、アプリケーションまたはＯＳから書き込み要求が出力される（ステップＳ４１）。書き込み要求を受けたコントローラにより、ＨＤＤへ書き込みコマンドが発行されて、書き込みコマンドを受けたＨＤＤに対するデータの書き込みが行われる（ステップＳ４２）。書き込みが成功すればライトエラーが生じていないが、成功しなければライトエラーが生じていることになる（ステップＳ４３）。ここで、ライトエラーが生じていなければ、処理が終了するが、ライトエラーが生じていれば、ライトエラーが発生したＨＤＤにおいて、ファームウェアにより、自動的に代替セクター処理が行われる（ステップＳ４４）。これにより、ライトエラーが発生したＨＤＤは、見かけのライトエラーを修復して冗長性を維持する。
【００１５】
また、ＡＴＡ仕様のミラーディスク装置でリードエラーが発生する場合、図７に示すような処理が行われる。
【００１６】
まず、アプリケーションまたはＯＳから読み出し要求が出力される（ステップＳ５１）。読み出し要求を受けたコントローラにより、１つのＨＤＤへ読み出しコマンドが発行されて、読み出しコマンドを受けたＨＤＤに対するデータの読み出しが行われる（ステップＳ５２）。読み出しが成功すればリードエラーが生じていないが、成功しなければリードエラーが生じていることになる（ステップＳ５３）。ここで、リードエラーが生じていなければ、処理が終了する。
【００１７】
一方、リードエラーが生じていれば、リードエラー発生側のＨＤＤにおいて、ファームウェアにより、エラーを発生したブロックが次回の書き込み時に代替セクター処理を行なう対象として予約される（ステップＳ５４）。これは、その場で代替セクター処理を行なうとデータが消失する可能性があるからである。そして、リードエラーを発生したＨＤＤが切り捨てられ、残りのＨＤＤにより、動作が継続される（ステップＳ５５）。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００６−８５５９２号公報（２００６年３月３０日公開）
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ＳＣＳＩ仕様のミラーディスク装置は、サーバやワークステーション向け用途であるため、信頼性が高いが生産量が限られており、高価である。また、ＳＣＳＩ仕様のミラーディスク装置を用いるようなサーバやワークステーションについては、故障への対応などの保守に時間やコストをかけることが通常行なわれている。したがって、このようなミラーディスク装置を普及タイプのパーソナルコンピュータ（ＰＣ）に搭載することは難しい。
【００２０】
これに対し、ＡＴＡ仕様（ＳＡＴＡ等を含む）のミラーディスク装置は、安価であり、普及タイプのＰＣに好適であるが、高度な管理機能を備えていないので、前述の代替セクター処理コマンドが用意されていない。その代わり、ライトエラーについては、前述のように、ＨＤＤのファームウェアで自動的に代替セクター処理を行なうことで修復が可能である。
【００２１】
しかしながら、リードエラーについては、ＯＳのファイルシステム側で欠損ブロックを登録して使用しないようにするので、リードエラーの原因となる欠損ブロックが生じたＨＤＤは使用されなくなる。これにより、前述のように、一方の正常なＨＤＤのみで動作を継続するため、冗長性が維持できなくなる。
【００２２】
ＡＴＡ仕様のミラーディスク装置において、リードエラーが生じたときに欠損ブロックを再び使用可能な状態にして冗長性を維持するためには、ＨＤＤの交換やＨＤＤの再フォーマットなどの初期化処理が必要となる。この場合、交換された新たなＨＤＤや初期化されたＨＤＤに他方のＨＤＤからデータをコピーするという冗長データの再構築も併せて必要となる。
【００２３】
したがって、軽微な欠損ブロックによりリードエラーが発生しても、冗長性を回復するために多大なコストと時間を要し、コンピュータシステムの運用に支障を来すおそれがある。このように、ＡＴＡ仕様のミラーディスク装置は、リードエラー発生時の冗長性回復が容易でないため、安価なＰＣにおいて二重化の優位性を十分に発揮することができない。
【００２４】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ＡＴＡ仕様のような安価なミラーディスク装置において代替セクター処理コマンドを用いることなくリードエラーを修復できるミラーディスク制御装置を提供することである。
【課題を解決するための手段】
【００２５】
本発明に係るミラーディスク制御装置は、ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置の前記ディスクに対して読み出しおよび書き込みを制御するミラーディスク制御装置において、上記の課題を解決するために、データが読み出される前記ディスクである読出側ディスクにリードエラーが発生していると、前記読出側ディスク以外の前記ディスクである冗長側ディスクにおいて前記読出側ディスクでリードエラーが発生した記憶単位と同一の記憶単位の正常なデータを読み出すように、前記冗長側ディスクに対応する前記ファームウェアである冗長側ファームウェアに指示する正常データ読出手段と、読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きするように、当該読出側ディスクに対応する前記ファームウェアである読出側ファームウェアに指示する上書手段とを備えていることを特徴としている。
【００２６】
また、本発明に係るミラーディスク装置は、ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置において、上記の課題を解決するために、前記ミラーディスク制御装置を備え、前記冗長側ファームウェアが、前記正常データ読出手段による指示を受けて、前記冗長側ディスクから正常なデータを読み出し、前記読出側ファームウェアが、前記上書手段の指示を受けて、読み出された正常なデータを前記読出側ディスクに書き込むことを特徴としている。
【００２７】
さらに、本発明に係るミラーディスク装置のリードエラー修復方法は、ディスクおよび当該ディスクに対して読み出しおよび書き込みを行なうファームウェアを含むディスク装置を複数有するミラーディスク装置の前記ディスクに対して読み出しおよび書き込みを制御するミラーディスク制御装置を備えたミラーディスク装置に生じたリードエラーを修復するリードエラー修復方法において、上記の課題を解決するために、前記ミラーディスク制御装置により、データが読み出される前記ディスクである読出側ディスクにリードエラーが発生していると、前記読出側ディスク以外の前記ディスクである冗長側ディスクにおいて前記読出側ディスクでリードエラーが発生した記憶単位と同一の記憶単位の正常なデータを読み出すように、前記冗長側ディスクに対応する前記ファームウェアである冗長側ファームウェアに指示する正常データ読出指示工程と、前記冗長側ファームウェアにより、前記正常データ読出指示工程による指示を受けて、前記冗長側ディスクから正常なデータを読み出す正常データ読出工程と、読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きするように、当該読出側ディスクに対応する前記ファームウェアである読出側ファームウェアに指示する上書き指示工程と、読み出された正常なデータを前記読出側ディスクの前記記憶単位に上書きする上書き工程とを含んでいることを特徴とする。
【００２８】
上記のミラーディスク制御装置およびミラーディスク装置では、読出側ディスクにリードエラーが発生していると、ミラーディスク制御装置の正常データ読出手段により、冗長側ディスクにおいて読出側ディスクでリードエラーが発生した記憶単位と同一の記憶単位の正常なデータを読み出すように冗長側ファームウェアに指示される。この指示を受けると、冗長側ファームウェアにより、正常なデータが冗長側ディスクから読み出される。
【００２９】
次いで、上書手段により、読み出された正常なデータを読出側ディスクのリードエラーが発生した該当記憶単位に上書きするように、読出側ファームウェアに指示される。すると、読出側ファームウェアにより、読み出された正常なデータが読出側ディスクの該当記憶単位に上書きされる。
【００３０】
上記のようなリードエラー修復のための処理は、上記のミラーディスク修復方法の各工程によっても同様に行なわれる。
【００３１】
これにより、ＳＣＳＩ仕様のミラーディスク装置で用意されている代替セクター処理コマンドを用いることなく、リードエラーに対する修復処理が実行される。それゆえ、安価なＡＴＡ仕様のミラーディスク装置において、ディスクの交換や初期化を行なうことなく、リードエラーの修復を行なうことができる。
【００３２】
しかも、ミラーディスク制御装置は、ファームウェアに指示を与えることにより、上記の正常データの読み出しおよび上書きを行なうので、既存のファームウェアの機能が利用される。それゆえ、ファームウェアに新たな機能の付加を必要とせず、既存のディスク装置を用いて、リードエラー修復が可能となる。
【００３３】
本発明に係るミラーディスク装置のリードエラー修復プログラムは、前記リードエラー修復方法における前記正常データ読出指示工程、前記正常データ読出工程、前記上書き指示工程および前記上書き工程をコンピュータに実行させる。これにより、リードエラー修復方法をプログラムにて提供することができる。
【発明の効果】
【００３４】
本発明に係るミラーディスク制御装置、ミラーディスク装置ならびにそのリードエラー修復の方法およびプログラムは、以上のように構成されているので、リードエラー発生時に冗長性を容易に回復することができる。したがって、本発明を採用することにより、安価に構成可能な汎用のパーソナルコンピュータにおいて二重化の優位性を十分に発揮することができるという効果を奏する。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に係るパーソナルコンピュータを含む制御システムの構成を示すブロック図である。
【図２】上記パーソナルコンピュータにおけるミラーディスク装置によるリードエラー修復処理の手順を示すフローチャートである。
【図３】従来のミラーディスク装置における通常のデータ読み出し処理の手順を示すフローチャートである。
【図４】ミラーディスク装置における通常のデータ書き込み処理の手順を示すフローチャートである。
【図５】ＳＣＳＩ仕様のミラーディスク装置によるデータ読み出し処理またはデータ書き込み処理の手順を示すフローチャートである。
【図６】ＡＴＡ仕様のミラーディスク装置によるデータ書き込み処理の手順を示すフローチャートである。
【図７】ＡＴＡ仕様のミラーディスク装置によるデータ読み出し処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００３６】
本発明の一実施形態について図１〜図２に基づいて説明すると、以下の通りである。
【００３７】
〔１．パーソナルコンピュータの構成〕
図１に示すように、本実施形態に係るパーソナルコンピュータ（以降、単に「ＰＣ」と称する）１は、記憶装置としてミラーディスク装置２を備えている。また、ＰＣ１には、ＣＰＵ６が設けられており、ＣＰＵ６により実行されるプログラムとして、アプリケーションプログラム（以降、単に「アプリケーション」と称する）７およびＯＳ（オペレーティングシステム）８がインストールされている。
【００３８】
ＣＰＵ６は、アプリケーション７およびＯＳ８（特にファイルシステム）からの要求に応じて、データ読み出し要求やデータ書き込み要求のための要求信号をミラーディスク装置２に出力する。また、ＣＰＵ６は、ミラーディスク装置２からの応答（書き込みおよび読み出しの完了信号や読み出されたデータ）をアプリケーション７およびＯＳ８に転送する。
【００３９】
〔１−１．ミラーディスク装置の構成〕
ミラーディスク装置２は、制御部３と、ＡＴＡ仕様（ＳＡＴＡ仕様）の２台のハードディスクドライブ（以降、単に「ＨＤＤ」と称する）４，５とを有している。
【００４０】
制御部３は、ＣＰＵ６（ホストＣＰＵ）とＨＤＤ４，５とを接続するためのＨＢＡ（Host Bus Adapter）の機能を有しており、ＨＤＤ４，５に対するデータの読み出しおよび書き込みを制御する他、エラー処理を行なう。このため、制御部３は、読出・書込処理部３１と、リードエラー処理部３２とを含んでいる。
【００４１】
読出・書込処理部３１は、アプリケーション７およびＯＳ８からのデータ書き込み要求をＣＰＵ６を介して受けると、ＨＤＤ４，５のファームウェア４１，５１に対して同一のデータを書き込む書き込みコマンドを発行する。また、読出・書込処理部３１は、書き込みコマンドに対してデータの書き込みを実行したファームウェア４１，５１からの書き込み完了信号を受けて、アプリケーション７およびＯＳ８にデータの書き込みの成功を通知する。
【００４２】
読出・書込処理部３１は、アプリケーション７およびＯＳ８からのデータ読み出し要求をＣＰＵ６を介して受けると、メインのＨＤＤ４のファームウェア４１に対してデータを読み出す読み出しコマンドを発行する。また、読出・書込処理部３１は、読み出しコマンドに対してデータの読み出しを実行したファームウェア４１からの読み出し完了信号を受けて、アプリケーション７およびＯＳ８に対して、データの読み出しの成功を通知するとともに、読み出されたデータを転送する。
【００４３】
リードエラー処理部３２は、ＨＤＤ４にリードエラーが発生したときに、正常な他方のサブとなるＨＤＤ５のデータを用いて修復を行なう。このため、リードエラー処理部３２は、正常データ読出処理部３３と、上書処理部３４とを含んでいる。
【００４４】
正常データ読出処理部３３（正常データ読出手段）は、ＨＤＤ４にリードエラーが発生したときに、リードエラーが発生していないＨＤＤ５において、ＨＤＤ４のハードディスク４２でリードエラーが発生したセクター（記憶単位）と同一のセクターから正しいデータを読み出すように指示を与える。また、正常データ読出処理部３３は、リードエラー発生時に、ＨＤＤ５からの読み出しデータを受けて、ＣＰＵ６に読み出しが成功したことを通知するとともに、当該データをＣＰＵ６に転送する。
【００４５】
上書処理部３４（上書手段）は、上記の読み出しデータをリードエラーが発生したセクターに上書きするようにＨＤＤ４に指示する。
【００４６】
ＨＤＤ４，５（ディスク装置）は、ミラー接続されており、制御部３によってデータの読み出しおよび書き込みが制御される。ＨＤＤ４，５は、ミラーリングのため、同一のデータが書き込まれ、ＨＤＤ４がメインのドライブとして機能し、ＨＤＤ５がサブのドライブとして機能する。したがって、通常のデータの読み出しがＨＤＤ４に対して行なわれ、冗長データの保存がＨＤＤ５に対して行なわれる。
【００４７】
ＨＤＤ４は、ファームウェア４１（読出側ファームウェア）と、当該ファームウェア４１に対応するハードディスク４２（ディスク，読出側ディスク）とを有している。ＨＤＤ５は、ファームウェア５１（冗長側ファームウェア）と、当該ファームウェア５１に対応するハードディスク５２（ディスク，冗長側ディスク）とを有している。
【００４８】
ファームウェア４１，５１は、制御部３の指示にしたがって、それぞれハードディスク４２，５２に対するデータの読み出しおよび書き込みを行なう。また、ファームウェア４１，５１は、データの読み出しおよび書き込みの完了を制御部３に通知するとともに、ハードディスク４２，５２から読み出したデータを制御部３に転送する。
【００４９】
ファームウェア４１，５１はエラー発生時に次の処理を行なう。
（１）ライトエラー発生時
ファームウェア４１，５１は、ハードディスク４２，５２のいずれか一方にライトエラーが発生したときに、他方に書き込まれたデータを用いて、ライトエラー発生側の代替セクターに書き込みを行い、代替セクター処理を行なう。これは、前述の図６のフローチャートにおけるステップＳ４４と同様の処理である。
（２）リードエラー発生時
ファームウェア４１は、ハードディスク４２にリードエラーが発生したときに、制御部３にリードエラーの発生を報知するとともに、リードエラーが発生したセクター（エラーセクター）について、次回の書き込み時に代替セクター処理を行なうことをファームウェア４１に対して予約する。また、ファームウェア５１は、前述の正常データ読出処理部３３の指示に応じてハードディスク５２の該当するセクター（エラーセクターと同一のセクター）から正常なデータを読み出して、制御部３およびファームウェア４１に転送する。さらに、ファームウェア４１は、前述の上書処理部３４の指示に応じて、ハードディスク４２のエラーセクターにファームウェア５１から読み出された正常なデータを予約された代替セクターに上書きすることにより、代替セクター処理を行なう。
【００５０】
〔１−２．制御部の形態〕
制御部３は、ハードウェアまたはソフトウェアによって構成される。制御部３（ミラーディスク制御装置）は、ハードウェアとして構成される場合、ＲＡＩＤコントローラなどにより実現される。ＲＡＩＤコントローラは、具体的には、ＲＡＩＤコントローラカードとして設けられ、ＲＡＩＤ機能を全て行なうため、ＣＰＵ６の負担を軽減する。また、制御部３には、ＲＡＩＤコントローラカードを用いても、ＲＡＩＤ機能の大半をソフトウェアで実現するものもあり、このようなＲＡＩＤコントローラカードは機能的にはソフトウェアに分類される。また、制御部３は、ソフトウェアとして構成される場合、ミラーディスクドライバなどにより実現される。
【００５１】
ソフトウェア（リードエラー修復プログラム）によって実現される制御部３は、上述した機能を実現するソフトウェアのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、ＣＰＵ６がプログラムコードを実行することによっても実現される。上記の記録媒体としては、ＨＤＤ４，５を用いるが、それ以外に、磁気ディスクや光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【００５２】
また、ＰＣ１を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記のプログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【００５３】
なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【００５４】
〔２．ミラーディスク装置のリードエラー修復処理〕
上記のように構成されるＰＣ１におけるミラーディスク装置２によるリードエラー処理について、図２のフローチャートを参照して説明する。
【００５５】
まず、アプリケーション７またはＯＳ８からＣＰＵ６を介して読み出し要求が出力される（ステップＳ１）。次いで、制御部３の読出・書込処理部３１により、ＨＤＤ４へ読み出しコマンドが発行されて、読み出しコマンドを受けたＨＤＤ４に対するデータの読み出しが行われる（ステップＳ２）。読み出しが成功すればリードエラーが生じていないが、成功しなければリードエラーが生じていることになる（ステップＳ３）。ここで、リードエラーが生じていなければ、処理が終了する。
【００５６】
一方、リードエラーが生じていれば、リードエラーが発生したＨＤＤ４において、ファームウェア４１により、ハードディスク４２でエラーを発生したセクターが、次回の書き込み時に代替セクター処理を行なう対象として予約される（ステップＳ４）。すると、制御部３の正常データ読出処理部３３により、ＨＤＤ５から正常なデータを読み出すようにファームウェア５１に指示が与えられる（ステップＳ５，正常データ読出指示工程）。この指示に応じて、ファームウェア５１により、ハードディスク４２でリードエラーが発生したセクターと同一のセクターのデータがハードディスク５２から読み出される（ステップＳ６，正常データ読出工程）。
【００５７】
そして、読み出されたデータをエラーが発生したＨＤＤ４に上書きするようにファームウェア４１に指示が与えられる（ステップＳ７，上書き指示工程）。この指示に応じて、ファームウェア４１により、ハードディスク５２から読み出されたデータが、ハードディスク４２においてステップＳ４で予約されたセクターに上書きされて（ステップＳ８，上書き工程）、代替セクター処理が実行される（ステップＳ９）。
【００５８】
〔３．実施形態の総括〕
本実施形態に係るミラーディスク装置２は、ＨＤＤ４のリードエラー発生時、制御部３により、ファームウェア４１，５１に指示を与えて、ＨＤＤ５のハードディスク５２における、ハードディスク４２にリードエラーが発生したセクターと同一のセクターから正しいデータを読み出し、ハードディスク４２の該当セクターに上書きする。このように、代替セクター処理コマンドを用いることなく、リードエラーに対する修復処理（リードエラー修復方法）が前述のステップＳ４〜Ｓ７の各工程にて実行される。それゆえ、安価なＡＴＡ仕様等のミラーディスク装置２において、ＨＤＤ４，５の交換や初期化を行なうことなく、リードエラーの修復を行なうことができる。
【００５９】
しかも、ファームウェア４１，５１は、リードエラーが発生したときに次回の書き込み時の代替セクター処理を予約し、書き込みのためのデータが与えられると代替セクター処理を行なうという、従来のＡＴＡ仕様のミラーディスク装置で行なわれている代替セクター処理の機能が利用されるので、新たな機能の付加を必要としない。それゆえ、ＨＤＤ４，５として既存のハードディスクドライブを用いて、リードエラー修復が可能となる。
【００６０】
このように、制御部３を有するミラーディスク装置２は、リードエラー発生時に冗長性を容易に回復することができる。したがって、ミラーディスク装置２を採用することにより、安価に構成可能な汎用のＰＣ１において二重化の優位性を十分に発揮することができる。
【００６１】
なお、本実施形態では、ディスク（記録媒体）としてハードディスク４２，５２をそれぞれ用いたＨＤＤ４，５を含むミラーディスク装置２について説明した。しかしながら、本発明は、記録媒体をハードディスクに限定しないことは勿論である。ＡＴＡ仕様のような、リードエラーに対する代替セクター処理コマンドが用意されていないミラーディスク装置であれば、フラッシュディスクのような半導体ディスクをディスクとして備えていてもよい。
【００６２】
また、ミラーディスク装置２は、２つのＨＤＤ４，５を備えているが、これには限定されず、３つ以上のＨＤＤを備えていてもよい。
【００６３】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００６４】
本発明のミラーディスク制御装置は、リードエラー発生時に正常なＨＤＤから正常なデータを読み出して、リードエラーが発生したＨＤＤに上書きすることにより、代替セクター処理を行なってリードエラーを修復するので、代替セクター処理コマンドが用意されていないＡＴＡ仕様のような安価なミラーディスク装置に好適に利用できる。
【符号の説明】
【００６５】
１      パーソナルコンピュータ
２      ミラーディスク装置
３      制御部（ミラーディスク制御装置）
４，５  ハードディスクドライブ（ディスク装置）
６      ＣＰＵ
７      アプリケーションプログラム
８      オペレーティングシステム
３１      読出・書込処理部
３２      リードエラー処理部
３３      正常データ読出処理部
３４      上書処理部
４１      ファームウェア（読出側ファームウェア）
５１      ファームウェア（冗長側ファームウェア）
４２      ハードディスク（ディスク，読出側ディスク）
５２      ハードディスク（ディスク，冗長側ディスク）
【図１】
2012108584.tif 000003
【図２】
2012108584.tif 000004
【図３】
2012108584.tif 000005
【図４】
2012108584.tif 000006
【図５】
2012108584.tif 000007
【図６】
2012108584.tif 000008
【図７】
2012108584.tif 000009