(57)【要約】【課題】  比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現する。【解決手段】  コンピュータ１は、ファイルシステムへの書き込み指示に基づいてハードディスクドライブにおける書き込みアドレスを特定するファイルシステムドライバ３４と、それよりも下層の物理層に配されたＩＤＥドライバ４１とを備えており、当該ＩＤＥドライバ４１は、書き込みアドレスへの書き込み指示を受け取ると、当該書き込みアドレスへデータへの書き込みを、複数のハードディスクドライブ２１ａ・２１ｂへ指示する。さらに、ＩＤＥドライバ４１は、自己診断指示を受け付けた場合、上記複数のハードディスクドライブ２１ａ・２１ｂのそれぞれへ自己診断を指示すると共に、それぞれからの自己診断結果を、それぞれ別個に通知するように監視スレッド４２へ指示する。【選択図】  図１
2006301853.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムへの書き込み指示に基づいて記録媒体における書き込みアドレスを特定するファイルシステムドライバよりも下層の物理層に配された物理層ドライバを備え、当該物理層ドライバは、書き込みアドレスへの書き込み指示を受け取ると、当該書き込みアドレスへデータへの書き込みを、複数の記録装置へ指示するミラーリングシステムにおいて、
上記複数の記録装置による自己診断結果を通知する通知手段を備え、
上記物理層ドライバは、上記自己診断指示を受け付けた場合、上記複数の記録装置のそれぞれへ自己診断を指示すると共に、上記各記録装置からの自己診断結果を、それぞれ別個に通知するように上記通知手段へ指示することを特徴とするミラーリングシステム。
【請求項２】
上記物理層ドライバは、上記各記録装置が正常にミラーリングしているか否かも監視して、監視結果も上記通知手段へ通知すると共に、
上記通知手段は、上記各記録装置からの自己診断結果と同時に監視結果も表示することを特徴とする請求項１記載のミラーリングシステム。
【請求項３】
上記通知手段は、上記各記録装置が正常にミラーリングしていない場合、正常にミラーリングしていない記録装置の自己診断結果の表示を抑制することを特徴とする請求項２記載のミラーリングシステム。
【請求項４】
上記物理層ドライバは、自己診断の指示がより遅くなるように、上記各記録装置に対する、上記自己診断の指示と書き込みの指示との順序を変更することを特徴とする請求項１、２または３記載のミラーリングシステム。
【請求項５】
請求項１、２また３記載の物理層ドライバおよび通知手段として、コンピュータを動作させるプログラム。
【請求項６】
請求項５記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステム、並びに、そのプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来から、重要なデータを格納する場合、複数のディスクドライブへ同じデータを書き込むミラーリングシステムが使用されている。当該ミラーリングシステムでは、あるディスクドライブが破損して、当該ディスクドライブに書き込まれたデータが消失したとしても、他のディスクドライブには、同じ内容のデータが残っているので、当該ディスクドライブを参照すれば、データの消失を防止できる。
【０００３】
ここで、ミラーリングシステムをハードウェア回路によって実現すると、コンピュータやディスクシステムに、新たな回路を追加する必要があり、実現に要する費用が高価になりがちである。
【０００４】
したがって、従来から、コンピュータのプログラムによって、ミラーリングシステムを構築することが提案されている。例えば、後述の特許文献１に記載のミラーリングシステムでは、例えば、図１２に示すように、Ｉ／Ｏマネージャ１３３からファイルシステムドライバ１３４への書き込み指示を監視するフィルタドライバ１４１が設けられており、当該フィルタドライバ１４１は、一方のハードディスク１２１ａのファイルシステムへの書き込み指示を検出すると、当該書き込み指示とは別に、他方のハードディスク１２１ｂのファイルシステムへの書き込み指示もファイルシステムドライバ１３４へ送信する。この結果、ハードディスク１２１ａのファイルシステムとハードディスク１２１ｂのファイルシステムとには、同じデータが書き込まれ、安価にミラーリングシステムを実現できる。
【０００５】
しかしながら、上記構成では、ミラーリングシステムを実現するための機能ブロックが、ファイルシステムドライバ１３４よりも上層に設けられているため、ミラーリング可能なファイルシステムの個数、ミラーリング可能な領域の配置や大きさが制限されるという問題を生ずる。
【０００６】
具体的には、上記フィルタドライバ１４１は、ファイルシステムドライバ１３４への書き込み指示を監視しているが、当該ファイルシステムドライバ１３４が受け取る書き込み指示は、例えば、ファイル名など、ファイルシステムを前提としたパラメータで与えられるため、ミラーリング可能なファイルシステムは、フィルタドライバ１４１が監視するファイルシステム１つに限定されてしまう。
【０００７】
さらに、一般に、オペレーティングシステム（ＯＳ）が格納される起動用のファイルシステムは、従来との互換性を保つために、データ格納用のファイルシステムに比べて、配置や容量などが制限されることが多く、ＯＳとして、例えば、Windows ＮＴ（登録商標）を使用した場合、起動用のパーティションは、ディスクドライブ１２１ａ・１２１ｂの先頭の２Ｇバイト以内に配置することが要求される。したがって、上記ミラーリングシステムで、起動用のファイルシステムを多重化すると、多重化される記憶領域の配置や記憶容量が制限されてしまう。
【０００８】
また、後述の特許文献２では、フィルタドライバ１４１を設けて多重化する代わりに、ファイルシステムドライバ１３４の下層に設けられた物理層ドライバとしてのＩＤＥドライバが多重化することによって、ハードディスクドライブ内のファイルシステム毎に多重化を行うドライバを設ける必要がなく、ハードディスクドライブ全体を一括して多重化可能なミラーリングシステムが記載されている。
【特許文献１】特開２０００−１４８４０１号公報（2000年５月３０日公開）
【特許文献２】特開２００２−３１８７７６号公報（2002年１０月３１日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献２の構成では、比較的簡単に多重化できる一方で、ＯＳ（ファイルシステムドライバ）からは、複数のハードディスクドライブを１台のハードディスクドライブとして扱っているため、ファイルシステムドライバからは、Ｓ．Ｍ．Ａ．Ｒ．Ｔ情報などのハードウェアの自己診断情報を取得することができないという問題を生じる。
【００１０】
ここで、上記自己診断機能を用いれば、ハードディスクドライブが正常に使用できなくなる前に、その前兆をとらえることができるので、例えば、故障前にハードディスクドライブを交換したり、故障しても直ぐにハードディスクドライブを交換できるように用意するなどの対応を取ることができ、システム全体の信頼性を向上できる。
【００１１】
特に、ＦＡ（Factory Automation）用途で使用されるコンピュータの場合は、ＯＡ用途で使用されるコンピュータなどと異なって、劣悪な環境で使用されることが多いため、故障が発生しやすく、より信頼性の高いシステムが切望されている。
【００１２】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現することにある。
【課題を解決するための手段】
【００１３】
本発明に係るミラーリングシステムは、上記課題を解決するために、ファイルシステムへの書き込み指示に基づいて記録媒体における書き込みアドレスを特定するファイルシステムドライバよりも下層の物理層に配された物理層ドライバを備え、当該物理層ドライバは、書き込みアドレスへの書き込み指示を受け取ると、当該書き込みアドレスへデータへの書き込みを、複数の記録装置へ指示するミラーリングシステムにおいて、上記複数の記録装置による自己診断結果を通知する通知手段を備え、上記物理層ドライバは、上記自己診断指示を受け付けた場合、上記複数の記録装置のそれぞれへ自己診断を指示すると共に、上記各記録装置からの自己診断結果を、それぞれ別個に通知するように上記通知手段へ指示することを特徴としている。
【００１４】
当該構成では、ファイルシステムへの書き込み指示を監視して複数のディスク装置へ同じデータを書き込む従来技術と異なり、ドライバが物理層に設けられており、当該物理層ドライバは、書き込み指示を、書き込みアドレスで受け取る。この結果、上記従来技術とは異なり、記録媒体内のファイルシステム毎に多重化を行うドライバを設ける必要がなく、記録装置全体を一括して多重化できる。したがって、比較的簡単に記録装置を多重化できる。
【００１５】
また、ファイルシステムドライバからは、１つの記録装置であると見なされているにも拘わらず、上記物理層ドライバは、上記自己診断指示を受け付けた場合、上記複数の記録装置のそれぞれへ自己診断を指示すると共に、上記各記録装置からの自己診断結果を、それぞれ別個に通知するように上記通知手段へ指示する。したがって、ファイルシステムドライバからは、１つの記録装置であると見なされているにも拘わらず、複数の記録装置、それぞれの自己診断結果を通知できる。この結果、それぞれの自己診断結果をユーザに通知でき、より早い時点で、例えば、壊れそうな記録装置を交換するなどの対処を促すことができる。したがって、ミラーリングシステムの信頼性を向上できる。
【００１６】
これらの結果、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現できる。
【００１７】
また、上記構成に加えて、上記物理層ドライバは、上記各記録装置が正常にミラーリングしているか否かも監視して、監視結果も上記通知手段へ通知すると共に、上記通知手段は、上記各記録装置からの自己診断結果と同時に監視結果も表示してもよい。
【００１８】
当該構成では、上記通知手段は、各記録装置からの自己診断結果と同時に監視結果も表示するので、ユーザは、これらの情報を一度に把握できる。この結果、より早期の対応が可能なミラーリングシステムを実現できる。
【００１９】
さらに、上記構成に加えて、上記通知手段は、上記各記録装置が正常にミラーリングしていない場合、正常にミラーリングしていない記録装置の自己診断結果の表示を抑制してもよい。
【００２０】
ここで、上記構成では、各記録装置からの自己診断結果と同時に監視結果も表示しているので、、正常にミラーリングしていない記録装置の自己診断結果の表示も表示すると、記録装置が正常に動作しているにも拘わらず、正常にミラーリングしていない場合は、正常である旨の表示と異常である旨の表示とが混在し、ユーザの誤解を招く虞れがある。
【００２１】
これに対して、上記構成では、正常にミラーリングしていない記録装置の自己診断結果の表示を抑制するので、上記不具合の発生を防止でき、より的確にユーザに情報を提示できる。
【００２２】
また、上記構成に加えて、上記物理層ドライバは、自己診断の指示がより遅くなるように、上記各記録装置に対する、上記自己診断の指示と書き込みの指示との順序を変更してもよい。
【００２３】
当該構成では、自己診断の指示よりも書き込みの指示が優先して処理されるので、優先しない場合よりも、書き込み速度を向上させることができる。なお、自己診断結果は、比較的緩やかに変化するので、書き込みの指示を優先させても、何ら支障なく、自己診断結果を取得できる。
【００２４】
一方、本発明に係るプログラムは、上記ミラーリングシステムの物理層ドライバおよび通知手段として、コンピュータを動作させるプログラムであり、本発明に係る記録媒体には、当該プログラムが記録されている。
【００２５】
これらのプログラムがコンピュータによって実行されると、当該コンピュータは、上記ミラーリングシステムとして動作する。したがって、上記ミラーリングシステムと同様に、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現できる。
【発明の効果】
【００２６】
上記構成によれば、ミラーリング処理する物理層ドライバが、上記自己診断指示を受け付けた場合、複数の記録装置のそれぞれへ自己診断を指示すると共に、上記各記録装置からの自己診断結果を、それぞれ別個に通知するように通知手段へ指示するので、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現できる。したがって、ＦＡ用途のコンピュータをはじめとして、高い信頼性が要求される用途のミラーリングシステムとして広く好適に使用できる。
【発明を実施するための最良の形態】
【００２７】
本発明の一実施形態について図１ないし図１１に基づいて説明すると以下の通りである。すなわち、本実施形態に係るコンピュータは、複数のＨＤＤ（Hard Disk Drive ）などの記録装置をミラーリングすることによって、通常は、ＯＳ（Operating System）が、これらの記憶装置を、１台の記録装置として認識しているにも拘わらず、それぞれのハードウェアの診断情報については、ユーザに別個に通知可能なコンピュータであって、例えば、制御システムのＨＭＩ（Human Machine Interface ）としてのパネルコンピュータなどとして好適に用いられている。
【００２８】
以下では、ハードウェアの診断情報の通知処理について説明する前に、コンピュータ（ミラーリングシステム）全体の構成と、通常の読み書き処理について説明する。すなわち、図２に示すように、当該コンピュータ１は、コンピュータ１全体を統括制御するＣＰＵ（Central Processing Unit ）１１と、例えば、ＲＯＭ（Read Only Memory）やＦＥＥＰＲＯＭ（Flash Electrically Erasable and Programmable ROM）などの不揮発性メモリからなり、ＣＰＵ１１が起動時に実行される起動プログラムおよびＣＰＵ１１の周辺回路を制御するための制御プログラムが格納されたＢＩＯＳ−ＲＯＭ（Basic Input / Output System -ROM）１２と、上記制御プログラムによって起動時に参照されるパラメータを格納すると共に、バッテリバックアップされたＣＭＯＳ−ＲＡＭ（Complementary MOS-RAM)１３と、例えば、ＤＲＡＭ（Dynamic Randam Acess Memory ）などによって構成され、上記ＣＰＵ１１が作業用の領域などとして使用するメインメモリ１４とを備えている。また、コンピュータ１には、ハードディスクドライブなどの記録装置と接続するためのＩＤＥ−インターフェース（ＩＦ）回路１５と、例えば、表示装置や入力装置あるいは通信回路など、ＩＤＥ（Intergrated Device Electoronics ）以外の規格で、周辺機器と接続するためのインターフェース（ＩＦ）回路１６とが設けられている。上記各部材１１〜１６は、ＣＰＵ１１に直結可能な内部バスや、例えば、ＰＣＩ（Peripheral Component Interconnect ）バスなど、ブリッジ回路を介して内部バスに接続される外部バスなどによって、互いに接続されており、上記ＣＰＵ１１は、メモリ１２〜１４を参照しながら、各ＩＦ回路１５・１６を制御できる。
【００２９】
さらに、本実施形態に係るコンピュータ１では、上記ＩＤＥ−ＩＦ回路１５に、２台のハードディスクドライブ２１ａおよび２１ｂが接続されており、後述するＩＤＥドライバ４１によって、両ハードディスクドライブ２１ａ・２１ｂへ同じデータを書き込む。これにより、ハードディスクドライブ２１ａ・２１ｂの一方は、他方のミラーディスクとなり、ミラーリングシステムが実現される。
【００３０】
ここで、上記両ハードディスクドライブ２１ａ・２１ｂが特許請求の範囲に記載の記録装置に対応する。なお、両ハードディスクドライブ２１ａ・２１ｂには、同じデータが書き込まれるので、以降では、特定のハードディスクドライブ２１ａの記憶領域Ａ１ａのように、どちらのハードディスクドライブ側であるかを特定する必要がある場合は、特定するための英小文字（ａ／ｂ）を末尾に付して参照し、どちらであるかが重要ではない場合には、ハードディスクドライブ２１のように、英小文字を付さずに参照する。
【００３１】
本実施形態では、例えば、図３に示すように、上記ハードディスクドライブ２１が２つのパーティションに分けられており、ハードディスクドライブ２１の記憶領域には、図３に示すように、ＯＳや後述するＩＤＥドライバ４１のプログラムが格納されるパーティション（例えば、Ｃドライブ）に対応する記憶領域Ａ１と、他のプログラムやデータなどが格納されるパーティション（例えば、Ｄドライブ）に対応する記憶領域Ａ２と、制御用の領域Ａ０とが設けられている。当該制御用の領域Ａ０には、上記各記憶領域Ａ１・Ａ２の配置を記憶するための基本パーティション領域Ａ１１や起動時に参照されるマスターブートレコード（ＭＢＲ）が格納される領域Ａ１２などが含まれている。
【００３２】
なお、上記ＩＤＥドライバ４１や後述する監視スレッド４２あるいはＯＳのプログラムは、例えば、ＣＤ−ＲＯＭなどの種々の記録媒体の配布、あるいは、通信によって配布され、上記ハードディスクドライブ２１に予めインストールされている。
【００３３】
ここで、上記ハードディスクドライブ２１ａ（２１ｂ）が接続されるＩＤＥ−ＩＦ回路１５は、例えば、ＣＤ−ＲＯＭドライブなどのデバイスを接続するために、製造当初からコンピュータ１に搭載されている標準のインターフェース回路であり、予め、コンピュータ１と一体に形成されている。また、当該ＩＤＥ−ＩＦ回路１５を制御して、ハードディスクドライブ（２１ａや２１ｂ）にアクセスするためのプログラムも、ＢＩＯＳ−ＲＯＭ１２に当初から格納されている。さらに、ＩＤＥ−ＩＦ回路１５には、マスターブートレコードやＯＳなどを格納する起動用の媒体として、少なくとも１台のハードディスクドライブが接続されている。また、データの保存用の記録媒体として、起動用の媒体になるハードディスクドライブとは別のハードディスクドライブが接続されていることも多い。
【００３４】
一方、本実施形態では、後述するＩＤＥドライバ４１が上記ＩＤＥ−ＩＦ回路１５を制御してミラーリングすると共に、ミラーリングに関係しないＣＤ−ＲＯＭドライブなどのデバイスにもアクセスする。また、上述のように、ミラーリングシステムを構成するハードディスクドライブ２１ａ（２１ｂ）には、マスターブートレコードやＯＳなどが格納されており、後述するように、障害の有無に拘らず、これらのディスクから起動できる。
【００３５】
したがって、コンピュータ１に既存のＩＤＥ−ＩＦ回路１５およびハードディスクドライブを流用して、ミラーリングシステムを構築できる。具体的には、ミラーリングされていない複数のハードディスクドライブが上記ＩＤＥ−ＩＦ回路１５に接続されている状態で、当該コンピュータ１に上記ＩＤＥドライバ４１を実現するためのドライバプログラムをインストールする。なお、これに伴い、両ハードディスクドライブ２１ａ・２１ｂの内容が同一になるように、一方のデータが他方に複写される。
【００３６】
この結果、ハードディスクドライブが１台の場合にのみ、さらに１台のハードディスクドライブを追加するだけで、殆どハードウェアを付加することなく、ミラーリングシステムを構成できる。これにより、ハードウェアを追加する場合に比べて、システムの構築コストを大幅に削減できる。なお、ハードディスクドライブが複数接続されている場合は、何らハードウェアを付加する必要がなく、さらに構築コストを削減できる。
【００３７】
一方、上記ＣＭＯＳ−ＲＡＭ１３には、起動用媒体を特定するためのパラメータを格納する記憶領域Ｍ１が設けられており、ＢＩＯＳ−ＲＯＭ１２内の起動プログラムを実行するＣＰＵ１１は、当該パラメータを参照して、コンピュータ１が起動する際にアクセス可能な媒体（起動用媒体）のうち、今回の起動時に参照する媒体を特定し、当該媒体から起動する。
【００３８】
なお、起動用媒体は、当該媒体を参照して、コンピュータ１が起動できれば、例えば、ハードディスクドライブやフロッピーディスクあるいはＣＤ−ＲＯＭなどの記録媒体であってもよいし、例えば、ＬＡＮなどの通信媒体であってもよいが、本実施形態では、ハードディスクドライブ２１から起動するために、ハードディスクドライブ２１ａまたは２１ｂの一方（例えば、２１ａ）を示すパラメータが上記記憶領域Ｍ１に格納されている。
【００３９】
上記構成において、図４に示すステップ１（以下では、Ｓ１のように略称する）にて、例えば、電源スイッチを押すなどして、コンピュータ１の起動が指示されると、Ｓ２〜Ｓ４において、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１２から起動プログラムを読み出して実行する。
【００４０】
より詳細には、Ｓ２において、ＣＰＵ１１は、メインメモリ１４や各ＩＦ回路１５・１６にアクセスするなどして、コンピュータ１の各周辺回路が正常に動作しているかをチェックしたり、所定パラメータを各周辺回路へ設定したりして、予め定められた手順で、ハードウェアを初期化する。
【００４１】
さらに、Ｓ３において、ＣＰＵ１１は、ＣＭＯＳ−ＲＡＭ１３の記憶領域Ｍ１を参照し、次に動作するプログラム（ＯＳ）を読み取る媒体を特定する。ここで、上述したように、本実施形態では、当該記憶領域Ｍ１にハードディスクドライブ２１ａを示すパラメータが格納されている。したがって、ＣＰＵ１１は、Ｓ４において、ＢＩＯＳ−ＲＯＭ１２の起動プログラムに基づき、ハードディスクドライブ２１ａからＯＳを実現するためのプログラムをメインメモリ１４に読み出して実行する。
【００４２】
ここで、後述するように、本実施形態に係るハードディスクドライブ２１ａ・２１ｂは、互いに同一のデータが格納されている。したがって、例えば、レベル０や３、５のＲＡＩＤ（Redundant Arrays of Inexpensive Disks ）システムのように、あるハードディスクドライブが破損しても他のハードディスクドライブの内容で当該ハードディスクドライブの内容を復帰できるように複数のハードディスクドライブへ冗長化してデータを格納する際、単体に記憶する場合と異なるデータ構造でデータを格納するシステムとは異なり、本実施形態に係るハードディスクドライブ２１ａ・２１ｂは、一方だけを見ると、多重化しないハードディスクドライブに格納されるデータ構造と同じである。したがって、データが多重化されているにも拘らず、単体のハードディスクドライブへアクセスするためのプログラムが、上記ＢＩＯＳ−ＲＯＭ１２に格納されていれば、ＣＰＵ１１は、何ら支障なく、ハードディスクドライブ２１ａ（２１ｂ）に格納されたＯＳやＩＤＥドライバ４１のプログラムを読み出すことができる。
【００４３】
上記Ｓ４において、ＯＳやＩＤＥドライバ４１のプログラムが読み出され、Ｓ５において、ＣＰＵ１１が、これらのプログラムの実行を開始すると、コンピュータ１には、図１に示す各機能ブロック３１〜３５・４１・４２が形成される。なお、これらのブロックを実現するためのプログラムは、例えば、ＣＤ−ＲＯＭなどの記録媒体から読み出してインストールしたり、インターネットなどの通信路から受信してインストールしたりして、予めハードディスクドライブ２１に格納されている。
【００４４】
上記ＡＰＩ処理部３１は、予め定められたＡＰＩ（Application Programming Interface ）で、アプリケーション３２からの指示を受け取り、必要に応じて、より下層（ハードウェア側）の機能ブロックへ指示して、例えば、仮想メモリ上のメモリ領域やＣＰＵ時間など、コンピュータ１の資源の割り当て、入出力処理など、指示に応じた処理を行うことができる。
【００４５】
また、上記ＡＰＩ処理部３１の下層には、Ｉ／Ｏマネージャ３３が形成され、上記ＡＰＩのうち、入出力処理を処理できる。なお、入出力に関連する各ブロック３４・３５・４１（後述）間の通信は、当該Ｉ／Ｏマネージャ３３を介して行われる。
【００４６】
さらに、Ｉ／Ｏマネージャ３３の下層には、ファイルシステムドライバ３４が設けられており、例えば、ファイル名による入出力指示など、ファイルシステムによって抽象化された指示を受け取り、例えば、ハードディスクドライブ２１における論理アドレスなど、記録媒体の記憶領域のうち、アクセスすべき記憶領域を決定する。一方、ファイルシステムドライバ３４の下層には、バスドライバ３５が設けられており、例えば、ＰＣＩバスに接続された各回路を制御する際に共通した処理を行うことができる。
【００４７】
また、本実施形態では、バスドライバ３５の下層には、特許請求の範囲に記載の物理層ドライバとして、両ハードディスクドライブ２１ａ・２１ｂをミラーリングさせるためのＩＤＥドライバ４１が形成されている。当該ＩＤＥドライバ４１は、上記論理アドレスで指定された領域への書き込み指示を受け取ると、ハードディスクドライブ２１ａ・２１ｂの双方に対して、当該論理アドレスへの書き込み指示を発行できる。なお、本実施形態では、ハードディスクドライブ２１ａ・２１ｂを直接制御する物理層に設けられたＩＤＥドライバ４１が、書き込みを多重化してミラーリングしているので、ＩＤＥドライバ４１より上層のファイルシステムドライバ３４およびバスドライバ３５は、両ハードディスクドライブ２１ａ・２１ｂを１つのハードディスクドライブとして認識している。
【００４８】
加えて、本実施形態では、アプリケーション３２の１つとして、監視スレッド（通知手段）４２が形成されており、監視スレッド４２は、ＩＤＥドライバ４１から、あるハードディスクドライブ２１（例えば、２１ａ）への書き込みに失敗したことが通知されると、例えば、画面表示などによって、コンピュータ１のユーザへ異常発生を報知して、異常が発生したハードディスクドライブ（２１ａ）の交換を促すことができる。さらに、監視スレッド４２は、ユーザの操作などによって、ハードディスクドライブ（２１ａ）が正常な部品に交換されたことを通知されると、例えば、ハードディスクドライブ２１の全体を読み出し、同一の内容を書き込むように指示するなどして、異常が発生していないハードディスクドライブ（例えば、２１ｂ）の内容を、当該ハードディスクドライブ２１ａへ複写できる。これにより、両ハードディスクドライブ２１ａ・２１ｂは、再度、互いにミラーリングされた状態になる。
【００４９】
上記構成では、図５に示すＳ１１において、アプリケーション３２などがＡＰＩ処理部３１へファイルシステムへの書き込みを指示すると、ファイルシステムドライバ３４は、Ｓ１２においてＩ／Ｏマネージャ３３を介して当該指示を受け取り、ファイルシステムへの書き込み指示を、論理アドレスへの書き込み指示に変換する。
【００５０】
一方、ＩＤＥドライバ４１は、Ｓ１３において、上記ファイルシステムドライバ３４から、Ｉ／Ｏマネージャ３３、バスドライバ３５およびＩ／Ｏマネージャ３３を介して、論理アドレスへの書き込み指示を受け取ると、ハードディスクドライブ２１ａ・２１ｂの双方に対して、当該論理アドレスへの書き込み指示を発行する。これにより、両ハードディスクドライブ２１ａ・２１ｂには、同じデータが同じデータ構造で書き込まれる。
【００５１】
さらに、ＩＤＥドライバ４１は、Ｓ１４において、例えば、各ハードディスクドライブ２１ａ・２１ｂからの応答などに基づいて、書き込みに成功したか否かを判定し、書き込みに成功した場合、ＡＰＩ処理部３１へ正常書き込みを報告するなどして、書き込み処理を終了する。
【００５２】
ここで、上記ＩＤＥドライバ４１は、書き込み指示を、論理アドレスで受け取る。この結果、図１２に示す従来技術のように、ファイルシステムドライバ１３４の上層にファイルシステムドライバ１３４への書き込み指示を監視するフィルタドライバ１４１を設け、ＩＤＥドライバ１３５が、ファイルシステムドライバ１３４からハードディスクドライブ１２１ａへの書き込み指示と、ハードディスクドライブ１２１ｂへの書き込み指示とを受け付ける構成とは異なって、ハードディスクドライブ２１ａ（２１ｂ）の各パーティション毎に、フィルタドライバ１５１を設ける必要がなく、ハードディスクドライブ２１ａ（２１ｂ）全体を一括してミラーリングできる。
【００５３】
加えて、ＯＳとして、Windows ＮＴ（登録商標）を使用した場合、起動用のパーティションは、従来との互換性を保つために、ハードディスクドライブ２１の先頭の２Ｇバイト以内に配置することが要求されるため、上記従来の構成では、起動パーティションをミラーリングしようとすると、ミラーリングするパーティションの配置や記憶容量が制限されてしまう。
【００５４】
ところが、本実施形態に係るＩＤＥドライバ４１は、図２に示すＩＤＥ−ＩＦ回路１５を直接制御する物理層に設けられており、書き込み指示を論理アドレスで受け取るため、ハードディスクドライブ２１を一括してミラーリングできる。したがって、上記パーティションの配置や記憶容量に制限されることなく、ミラーリングできる。
【００５５】
また、上記従来の構成では、フィルタドライバ１５１が、ファイルシステムドライバ１３４への書き込み指示を監視し、ハードディスクドライブ１２１ａのファイルシステムへの書き込みを検出した場合、ハードディスクドライブ１２１ｂのファイルシステムにも書き込むように、ファイルシステムドライバ１３４へ指示する。これに対して、本実施形態では、ＩＤＥドライバ４１が論理アドレスへの書き込み指示を受け取って、ハードディスクドライブ２１ａ・２１ｂへの書き込み指示へ多重化する。
【００５６】
この結果、上記従来の構成に比べて、書き込み指示が多重化されてから、実際に書き込むまでの処理量を削減でき、多重化された書き込み指示の処理に必要な演算量および時間を削減できる。これにより、ソフトウェアで多重化を行っているにも拘らず、従来よりも、ミラーリングのための処理中に、例えば、ページング処理など、メインメモリ１４のデータをハードディスクドライブ２１ａ・２１ｂへ退避させる処理が発生する可能性を大幅に低減でき、確実にデータをミラーリングできる。
【００５７】
また、上記Ｓ１４の判定において、両ハードディスクドライブ２１ａ・２１ｂの一方（例えば、２１ａ）に、書き込み失敗が検出された場合（YES の場合）、上記ＩＤＥドライバ４１は、ハードディスクドライブ２１ａが破損したと判定し、Ｉ／Ｏマネージャ３３やＡＰＩ処理部３１などを介して、監視スレッド４２へ異常発生を通知する。さらに、監視スレッド４２は、例えば、表示などによって、ユーザへ異常の発生を報告し、破損したハードディスクドライブ２１ａの交換を促す。
【００５８】
さらに、異常が発生した場合、ＩＤＥドライバ４１は、Ｓ２２において、以降の起動に支障をきたすか否かを判定すると共に、支障をきたす場合、ＣＭＯＳ−ＲＡＭ１３の記憶領域Ｍ１を書き換えて起動用媒体を変更する。ここで、上述の例では、記憶領域Ｍ１には、異常が発生したハードディスクドライブ２１ａからの起動を示すパラメータが格納されており、次回の起動に支障をきたす。この場合、ＩＤＥドライバ４１は、当該パラメータを正常なハードディスクドライブ２１ｂを示すように書き換える。
【００５９】
この状態で、ＯＳが一度終了し、再び起動する場合、コンピュータ１のＣＰＵ１１は、図４に示すＳ１〜Ｓ５の処理を行う。ここで、上記パラメータが変更されず、異常なハードディスクドライブ２１ａからの起動を示している場合、Ｓ３およびＳ４において、異常なハードディスクドライブ２１ａからＯＳやＩＤＥドライバ４１のプログラムが読み出されてしまい、ＣＰＵ１１が誤動作する虞れがある。
【００６０】
ところが、本実施形態に係るコンピュータ１では、図５に示すＳ２２において、ＩＤＥドライバ４１がパラメータを正常なハードディスクドライブ２１ｂに書き換えるので、Ｓ３およびＳ４において、ＯＳやＩＤＥドライバ４１のプログラムは、正常なハードディスクドライブ２１ｂから読み出される。この結果、ハードディスクドライブ２１ａが破損しても正常に起動できる。
【００６１】
ところで、上記の説明では、ＩＤＥドライバ４１がＣＭＯＳ−ＲＡＭ１３のパラメータを変更して、異常発生後の起動に支障がないように、起動用媒体を変更したが、ＩＤＥドライバ４１が監視スレッド４２へ指示して、パラメータを変更してもよい。いずれの場合であっても、ＩＤＥドライバ４１によって、パラメータが変更されれば、同様の効果が得られる。
【００６２】
また、別の起動用媒体の変更方法として、ＢＩＯＳ−ＲＯＭ１２の起動プログラムを実行するＣＰＵ１１が、予め定められた複数の起動用媒体について、予め定められた順番で起動可能か否かを判定し、起動可能であれば、当該媒体から起動する構成の場合、ＩＤＥドライバ４１は、上記ＣＰＵ１１によって、異常が発生したハードディスクドライブ２１（例えば、２１ａ）が起動不能と判断されるように、当該ハードディスクドライブ２１ａの領域のうち、ＭＢＲが記憶される領域Ａ１２ａへ、例えば、予め定められたデータ列などを書き込んでもよい。
【００６３】
この場合、図６に示すように、ＣＰＵ１１は、図４のＳ１およびＳ２と同様に、起動が指示されると、周辺回路を初期化する。さらに、Ｓ３に代えて設けられたＳ３１において、ＣＰＵ１１は、予め定められた順番で、各起動用媒体が起動可能か否かを判定して、ＯＳやＩＤＥドライバ４１のプログラムを読み出すための媒体を決定する。
【００６４】
ここで、起動の可否を判定する順番として、ハードディスクドライブ２１ａ・２１ｂが設定されている場合、ハードディスクドライブ２１ａ・２１ｂの双方が正常に動作している間は、ＣＰＵ１１は、ハードディスクドライブ２１ａから起動する。ところが、ハードディスクドライブ２１ａに異常が発生すると、ＩＤＥドライバ４１がハードディスクドライブ２１ａのＭＢＲ用の領域Ａ１２ａを書き換えて起動不能にする。したがって、ＣＰＵ１１は、最初に、ハードディスクドライブ２１ａからの起動ができないと判定し、続いて、ハードディスクドライブ２１ｂからの起動を試みる。この結果、ハードディスクドライブ２１ａが破損しても、何ら支障なく、正常に起動できる。
【００６５】
また、図６に示す構成の場合、ＩＤＥドライバ４１は、ハードディスクドライブ２１を書き換えて起動用媒体を切り換えているので、図４に示す場合と異なり、ＣＭＯＳ−ＲＡＭ１３において、起動用媒体を示すパラメータを格納する領域Ｍ１のアドレス位置を把握する必要がない。したがって、領域Ｍ１が異なる機種間で、ＩＤＥドライバ４１を共用できる。
【００６６】
ところで、本実施形態に係るコンピュータ１は、上記のように、ハードディスクドライブ２１ａ・２１ｂをミラーリングすることによって、通常の読み書き時には、ＯＳ（Operating System）が、これらの記憶装置を、１台の記録装置として認識しているにも拘わらず、それぞれのハードウェアの診断情報については、ユーザに別個に通知できる。
【００６７】
具体的には、本実施形態に係るハードディスクドライブ２１ａ・２１ｂも、自己診断機能を有しており、予め定められた自己診断コマンドを受け付けると、ハードウェアを自己診断して、その結果をＩＤＥドライバ４１に返すことができる。
【００６８】
本実施形態では、ハードディスクドライブ２１ａ・２１ｂは、上記自己診断機能として、Ｓ．Ｍ．Ａ．Ｒ．Ｔ（Self-Monitoring Analysis and Reporting Technology）規格に従った機能を有しており、各機能が正常に動作しているか否かだけではなく、記録装置の周囲環境の測定結果、および、記録装置の状態を返すことができる。自己診断結果の一例としては、再配置されたセクタの数や、読み取りエラーが発生が発生した回数、データの転送速度、あるいは、温度などが挙げられる。
【００６９】
一方、本実施形態に係る監視スレッド４２は、上述したように、ミラーリングの状態を監視したり、異常が発生したハードディスクドライブ（例えば、２１ｂ）を交換した後、正常なハードディスクドライブ（２１ａ）の内容を当該ハードディスクドライブ２１ｂに複写するように、ＩＤＥドライバ４１へ指示するだけではなく、予め定められた周期で、例えば、通常のデータ読み書き時と同様にＡＰＩ処理部３１などを介して指示したり、あるいは、ＩＤＥドライバ４１へ直接指示したりして、ＩＤＥドライバ４１へ上記自己診断コマンドをハードディスクドライブ２１ａ・２１ｂへ送信させることができる。
【００７０】
一方、ＩＤＥドライバ４１は、各ハードディスクドライブ２１ａ・２１ｂのそれぞれから自己診断結果を受け取ると、通常の読み書き時とは異なって、監視スレッド４２へ、それぞれの自己診断結果を通知して、それぞれの自己診断結果をユーザに通知させることができる。この結果、ユーザは、各ハードディスクドライブ２１ａ・２１ｂが破損する際の予兆を把握でき、より早い時点で、例えば、壊れそうなハードディスクドライブ２１ａ・２１ｂを交換できる。したがって、通常は、ＯＳが各ハードディスクドライブ２１ａ・２１ｂを１台のハードディスクドライブとして認識しているにも拘わらず、より信頼性の高いミラーリングシステムを構築できる。
【００７１】
特に、当該コンピュータ１がＦＡ用途に使用されている場合、すなわち、制御システムのＨＭＩとして用いられ、当該制御システムの制御対象としてのターゲットシステム近傍に配置されている場合、コンピュータ１の周囲の環境は、例えば、高温多湿な環境など、通常のＯＡ用途の場合よりも劣悪な環境であることが多い。また、他の用途よりも稼動時間が長いことも多い。これらの結果、ハードディスクドライブ２１ａ・２１ｂが壊れる可能性が高く、例えば、通常であれば、２万時間は故障しないハードディスクドライブであっても、１月程で破損してしまうことも珍しくない。したがって、より信頼性の高いシステムが切望されている。したがって、上記コンピュータ１は、ＦＡ用途のコンピュータとして特に好適に利用できる。
【００７２】
さらに、監視スレッド４２は、それぞれの自己診断結果を受け取ると、例えば、図７に示すように、ミラーリングの状態を示すウィンドウと同じウィンドウに、各ハードディスクドライブ２１ａ・２１ｂの自己診断結果をそれぞれ表示するなどして、ミラーリングの状態と自己診断結果とを同時に表示できる。このように、ミラーリングの状態と自己診断結果とを同時に表示しているので、ユーザは、当該画面を見るだけで、双方を迅速に把握でき、的確な対応を取ることができる。
【００７３】
また、監視スレッド４２は、自己診断結果に基づいて、ハードディスクドライブ２１ａ・２１ｂのいずれかに異常が発生した、あるいは、発生する可能性が高いと判断した場合は、例えば、音、上記ウィンドウの表示、電源ランプの点灯状態の変更（色の変化や点滅など）、エラーメッセージの表示、あるいは、入出力回路によって、外部の機器へ通知するなど、予め定められた通知方法で、ユーザに異常発生を通知できる。したがって、ユーザが当該ウィンドウを開いていなかったとしても、ユーザに異常発生を通知できる。また、監視スレッド４２は、例えば、自己診断結果の履歴を予め定められた記録媒体に予め定められた形式（例えば、ＣＳＶ形式など）で格納してもよい。
【００７４】
一例として、ハードディスクドライブ２１ａ・２１ｂは、高温化では、比較的高い頻度で故障しやすい。また、完全に読み出せなくなる前には、エラー訂正可能な範囲でのエラーが発生していることが多い。したがって、上記監視スレッド４２は、周期的に取得される自己診断結果のうち、温度の情報に基づいて、各ハードディスクドライブ２１ａ・２１ｂが予め定められた温度を超えている期間を算出し、当該期間が予め定められた値を超えたときに異常が発生する可能性が高いと判断できる。また、監視スレッド４２は、自己診断結果のうち、ＥＣＣによって回復できなかったエラーの回数、再割り当てされたセクタ数、予め定められた回数のシーク中に発生したエラーの数、予め定められた回数のスピンアップでのリトライ数、予め定められたセクタをＤＭＡ転送する際に発生したＣＲＣエラーの数、あるいは、それらの組み合わせが、予め定められた条件（例えば、閾値を超えたことなど）を満たしているか否かを判定し、満たしている場合に、異常が発生する可能性が高いと判断してもよい。
【００７５】
また、上記ＩＤＥドライバ４１は、例えば、自己診断コマンドの送信タイミングを通常よりも遅らせるなどして、当該自己診断コマンドよりも、通常の読み書きコマンドを優先し、自己診断コマンドがより遅くなるように、上記各ハードディスクドライブ２１ａ・２１ｂに対する、上記自己診断コマンドと書き読み書きコマンドとの順序を変更できる。一例として、ＩＤＥドライバ４１は、Ｉ／Ｏマネージャ３３や監視スレッド４２などからの指示を順次書き込むＦＩＦＯ（First In First Out）バッファに、読み書きコマンドよりも先に自己診断コマンドが書き込まれたとしても、後に書き込まれた読み書きコマンドを先にハードディスクドライブ２１ａ・２１ｂへ送信し、その処理が終了した後に、自己診断コマンドをハードディスクドライブ２１ａ・２１ｂへ送信できる。これにより、監視スレッド４２は、通常の読み書き速度を低下させることなく、自己診断結果を取得できる。
【００７６】
なお、自己診断コマンドの処理よりも読み書きコマンドの処理の方が優先されているため、自己診断コマンドの処理が遅れる可能性がある。ところが、ハードディスクドライブ２１ａ・２１ｂの自己診断結果は、急激に変化したとしても、例えば、１分程度の比較的長い周期で取得できれば充分である。したがって、読み書きコマンドの処理を優先しても、何ら支障なく、自己診断結果を取得できる。
【００７７】
さらに、監視スレッド４２は、例えば、ハードディスクドライブ２１ａ・２１ｂの一方（例えば、２１ｂ）に、正常なハードディスクドライブ２１ａの内容が未だ書き込まれていない場合など、ミラーリングシステムが構築されていない状態（縮退運転状態）には、例えば、ＩＤＥドライバ４１からの自己診断結果のうち、正常ではない方のハードディスクドライブ２１ｂの自己診断結果を無視したり、正常ではない方のハードディスクドライブ２１ｂへの自己診断コマンドの発行指示自体を中止したりして、例えば、図８に示すように、正常ではないハードディスクドライブ２１ｂの自己診断結果の表示を中止する。
【００７８】
ここで、例えば、図９に示す比較例のように、ミラーリングシステムが縮退運転状態になっているため、ミラーリングシステムの状態としては、一方のハードディスクドライブ（例えば、２１ｂのSlave Disk）が”Broken”と表示されているにも拘わらず、当該ハードディスクドライブ２１ｂの自己診断結果が”No Error”と表示されてしまう。このように、一見すると、矛盾しているような表示が行われるため、当該ハードディスクドライブ２１ｂが正常動作しているか否かが、ユーザにとって分かり難くなる虞れがある。
【００７９】
ところが、本実施形態に係る監視スレッド４２は、ミラーリングシステムが縮退運転状態の場合には、正常ではないハードディスクドライブ２１ｂの自己診断結果の表示を中止するので、上記不具合を回避できる。
【００８０】
以下では、異常の判定基準が閾値との比較であり、自己診断機能が有効か否かと、閾値と、判定対象とする自己診断情報の種類（SMART Attributeなど）とを示す設定情報が予め定められた記憶領域（例えばレジストリなど）に格納されている場合を例にして、自己診断動作について説明する。
【００８１】
すなわち、図１０に示すように、監視スレッド４２は、自己診断結果の取得タイミングになると、Ｓ４１において、上記記憶領域の設定情報に基づいて、自己診断機能が有効か否かを判定する。有効な場合（Ｓ４１においてYES の場合）、監視スレッド４２は、Ｓ４２における各種類の自己診断情報の取得動作と、Ｓ４３におけるログの出力動作を、自己診断情報の取得対象となる記録装置（この場合は、ハードディスクドライブ２１ａ・２１ｂ）のそれぞれについて繰り返す。なお、監視スレッド４２は、上記Ｓ４２における自己診断情報の取得動作を、上記設定情報において取得する旨設定されている種類毎に繰り返す。
【００８２】
さらに、監視スレッド４２は、異常が発生した場合（上記Ｓ４４において、YES ）の場合、Ｓ４５において、例えば、メッセージの表示など、上述した異常発生時の処理を行って、今回の自己診断結果の取得タイミングにおける処理を終了する。なお、監視スレッド４２は、自己診断機能が無効に設定されている場合（上記Ｓ４１において、NOの場合）も、今回の自己診断結果の取得タイミングにおける処理を終了する。
【００８３】
ここで、上記Ｓ４２における各種類の自己診断情報の取得動作は、図１１に示すように行われる。すなわち、監視スレッド４２は、Ｓ５１において、例えば、取得対象となる自己診断情報の取得を示す自己診断コマンドの送信を、上述したようにＩＤＥドライバ４１へ指示し、ＩＤＥドライバ４１から、各ハードディスクドライブ２１ａ・２１ｂの自己診断結果を受け取るなどして、取得対象となる自己診断情報を取得する。
【００８４】
正常に取得できた場合（Ｓ５２にてYES の場合）、監視スレッド４２は、Ｓ５３においって、上記設定情報のうち、当該自己診断情報に対応する閾値を取得する。正常に取得できた場合（Ｓ５４にてYES の場合）、監視スレッド４２は、Ｓ５５において、当該閾値と取得した自己診断結果とを比較するなどして、異常の有無を判定し、異常が発生していなかった場合（Ｓ５５にて、正常の場合）は、今回の種類の自己診断情報の取得処理を終了する。なお、本実施形態に係る監視スレッド４２は、例えば、データがなかった場合など、閾値を取得できなかった場合（Ｓ５４にてNOの場合）も、比較が指示されていないものと判断して、今回の種類の自己診断情報の取得処理を終了する。
【００８５】
一方、自己診断情報が取得できなかった場合（上記Ｓ５２にて、NOの場合）、あるいは、上記Ｓ５５にて、異常発生が検出された場合、監視スレッド４２は、Ｓ５６において、例えば、メッセージの表示など、上述した異常発生時の処理と、イベントログの出力とを行う。
【００８６】
なお、上記では、監視スレッド４２が自己診断コマンド生成を指示する周期、取得する自己診断情報の種類、あるいは、自己診断情報に基づく異常発生の有無の判断方法などが固定されている場合を例にして説明したが、これに限るものではない。例えば、監視スレッド４２がユーザの指示を受け付け、それに基づいて、上記周期、種類、判断方法などの設定を変更したり、他のアプリケーションが監視スレッド４２によって参照される設定情報（例えば、レジストリに格納される設定情報など）を変更したりして、これらの設定を変更してもよい。この場合は、よりユーザの要望に即して柔軟に設定を変更できるので、例えば、多少判断に誤りがあっても、より早い時点で異常発生の前兆を捉えたいユーザと、異常発生の前兆の捕捉時点が多少遅れたとしても、より確実な判断結果の提示を望むユーザとなど、種々のユーザの要望に応えることができる。
【００８７】
なお、上記では、記録媒体の一例として、ＩＤＥインターフェースで接続されるハードディスクドライブ２１を例にして説明したが、これに限るものではない。例えば、ＳＣＳＩ（ Small Computer System Interface）のように、他のインターフェースで接続されるハードディスクドライブであってもよい。また、書き込み可能な記録媒体であれば、ハードディスクドライブに限らず、任意の記録媒体を適用できる。ただし、ハードディスクドライブは、半導体とは異なり機械的に動作する箇所があるため、故障する可能性が高い。また、機械的に動作する箇所があるため、例えば、埃が多い場所など、周囲環境が劣悪な場所に配置されると、故障の発生率がさらに増大してしまう。一方、ハードディスクドライブは、記録容量と製造コストとのバランスがよく、大容量のデータを格納するのに適している。したがって、ハードディスクドライブを用いてミラーリングシステムを構築することで、大容量かつ安価で、しかも、データ消失を確実に防止できる。
【産業上の利用可能性】
【００８８】
上記構成によれば、ミラーリング処理する物理層ドライバが、上記自己診断指示を受け付けた場合、複数の記録装置のそれぞれへ自己診断を指示すると共に、上記各記録装置からの自己診断結果を、それぞれ別個に通知するように通知手段へ指示するので、比較的簡単に多重化できるにも拘わらず、より信頼性の高いミラーリングシステムを実現できる。したがって、ＦＡ用途のコンピュータをはじめとして、高い信頼性が要求される用途のミラーリングシステムとして広く好適に使用できる。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施形態を示すものであり、ミラーリングシステムを実現するコンピュータの要部構成を示す機能ブロック図である。
【図２】上記コンピュータのハードウェア構成の要部を示すブロック図である。
【図３】上記コンピュータにおいて、ハードディスクの記憶領域を示す説明図である。
【図４】上記コンピュータが起動する際の動作を示すフローチャートである。
【図５】上記コンピュータがハードディスクへ書き込む際の動作を示すフローチャートである。
【図６】上記コンピュータの変形例を示すものであり、コンピュータが起動する際の動作を示すフローチャートである。
【図７】上記コンピュータによって表示される自己診断結果を示す図面である。
【図８】上記コンピュータによって表示される自己診断結果を示すものであり、ミラーリングシステムが縮退運転している場合を示す図面である。
【図９】比較例を示すものであり、ミラーリングシステムが縮退運転している場合に自己診断結果を表示する画面を示す図面である。
【図１０】上記実施形態に係るコンピュータによる自己診断結果取得動作を示すフローチャートである。
【図１１】上記自己診断結果取得動作の詳細を示すフローチャートである。
【図１２】従来技術を示すものであり、ミラーリングシステムを実現するコンピュータの要部構成を示す機能ブロック図である。
【符号の説明】
【００９０】
１            コンピュータ（ミラーリングシステム）
２１ａ・２１ｂ  ハードディスクドライブ（記録装置）
３４            ファイルシステムドライバ
４１            ＩＤＥドライバ（物理層ドライバ）
４２            監視スレッド（通知手段）
【図１】
2006301853.tif 000003
【図２】
2006301853.tif 000004
【図３】
2006301853.tif 000005
【図４】
2006301853.tif 000006
【図５】
2006301853.tif 000007
【図６】
2006301853.tif 000008
【図７】
2006301853.tif 000009
【図８】
2006301853.tif 000010
【図９】
2006301853.tif 000011
【図１０】
2006301853.tif 000012
【図１１】
2006301853.tif 000013
【図１２】
2006301853.tif 000014