(57)【特許請求の範囲】
【請求項１】
ホストコンピュータ、第１記憶装置および第２記憶装置と通信可能なミラーリングシステムであって、
前記第１記憶装置に記憶されるデータを前記第２記憶装置に記憶する記憶処理を実行する制御手段を備え、
前記制御手段は、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記記憶処理を実行し、前記情報を受信しないで所定時間が経過した場合に前記記憶処理を実行する、ことを特徴とするミラーリングシステム。
【請求項２】
前記制御手段は、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記所定時間が経過するのを待たずに、前記記憶処理を実行する、ことを特徴とする請求項１に記載のミラーリングシステム。
【請求項３】
時間を計測する計時手段をさらに備え、
前記制御手段は、前記情報を受信しないならば、前記計時手段により前記所定時間が計測されるまで前記記憶処理を実行せず、前記計時手段により前記所定時間が計測された後に前記記憶処理を実行する、ことを特徴とする請求項１に記載のミラーリングシステム。
【請求項４】
前記記憶処理は、前記第１記憶装置に記憶されているデータを前記第２記憶装置にコピーするリビルド処理である、ことを特徴とする請求項１乃至３のいずれか１項に記載のミラーリングシステム。
【請求項５】
前記記憶処理は、前記第２記憶装置に記憶されるデータのうちエラーとなったデータを前記第１記憶装置に記憶されるデータで書き直すパトロール処理である、ことを特徴とする請求項１乃至３のいずれか１項に記載のミラーリングシステム。
【請求項６】
前記ミラーリングシステムが起動したときに前記記憶処理が中断しているか否かを判断する判断手段をさらに備え、
前記制御手段は、前記ミラーリングシステムが起動したときに前記記憶処理が中断していると前記判断手段が判断した場合、前記記憶処理を再開する、ことを特徴とする請求項１乃至５のいずれか１項に記載のミラーリングシステム。
【請求項７】
前記記憶処理が中断した場合に、前記記憶処理が中断したことを示す情報を保持する保持手段をさらに備え、
前記判断手段は、前記保持手段に前記記憶処理が中断したことを示す情報が保持されているか否かによって、前記記憶処理が中断しているか否かを判断する、ことを特徴とする請求項６に記載のミラーリングシステム。
【請求項８】
請求項１乃至７のいずれか１項に記載のミラーリングシステムと、
前記ミラーリングシステムと通信可能なホストコンピュータと、を備える画像形成装置。
【請求項９】
前記ホストコンピュータは、省電力状態から復帰したことを示す情報を前記ミラーリングシステムに送信する送信手段を有し、
前記ミラーリングシステムの前記制御手段は、前記ミラーリングシステムが起動した後、前記所定時間が経過する前に前記情報を受信した場合、前記記憶処理を実行し、前記ミラーリングシステムが起動した後、前記情報を受信することなく前記所定時間が経過した場合、前記記憶処理を実行する、ことを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記ミラーリングシステムと通信可能な第１記憶手段および第２記憶手段をさらに備える、ことを特徴とする請求項８又は９に記載の画像形成装置。
【請求項１１】
前記第１記憶手段および前記第２記憶手段は、ハードディスクドライブである、ことを特徴とする請求項１０に記載の画像形成装置。
【請求項１２】
ホストコンピュータ、第１記憶装置および第２記憶装置と通信可能で、前記第１記憶装置に記憶されるデータを前記第２記憶装置に記憶する記憶処理を実行するミラーリングシステムによるデータの記憶方法であって、
前記ミラーリングシステムは、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記記憶処理を実行し、前記情報を受信しないで所定時間が経過した場合に前記記憶処理を実行する第１記憶工程と、を有することを特徴とするミラーリングシステムによるデータの記憶方法。
【請求項１３】
前記第１記憶工程では、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記所定時間が経過するのを待たずに、前記記憶処理を実行することを特徴とする請求項１２に記載のミラーリングシステムによるデータの記憶方法。
【請求項１４】
前記第１記憶手段および前記第２記憶手段は、ハードディスクドライブであることを特徴とする請求項１２又は１３に記載のミラーリングシステムによるデータの記憶方法。
【請求項１５】
前記記憶処理は、前記第１記憶装置に記憶されているデータを前記第２記憶装置にコピーするリビルド処理である、ことを特徴とする請求項１２乃至１４のいずれか１項に記載のミラーリングシステムによるデータの記憶方法。
【請求項１６】
前記記憶処理は、前記第２記憶装置に記憶されるデータのうちエラーとなったデータを前記第１記憶装置に記憶されるデータで書き直すパトロール処理である、ことを特徴とする請求項１２乃至１４のいずれか１項に記載のミラーリングシステムによるデータの記憶方法。
【請求項１７】
前記ミラーリングシステムが起動したときに前記記憶処理が中断しているか否かを判断する判断工程をさらに有し、
前記判断工程において前記ミラーリングシステムが起動したときに前記リビルド処理が中断していると判断された場合、前記第１記憶工程において、前記記憶処理を実行する、ことを特徴とする請求項１２又は１６のいずれか１項に記載のミラーリングシステムによるデータの記憶方法。
【請求項１８】
前記記憶処理が中断した場合に、前記記憶処理が中断したことを示す情報を保持する保持工程をさらに有し、
前記判断工程では、前記保持工程において前記記憶処理が中断したことを示す情報が保持されているか否かによって、前記記憶処理が中断しているか否かを判断する、ことを特徴とする請求項１７に記載のミラーリングシステムによるデータの記憶方法。
【請求項１９】
ホストコンピュータ、第１記憶装置および第２記憶装置と通信可能で、前記第１記憶装置に記憶されるデータを前記第２記憶装置に記憶する記憶処理を実行するミラーリングシステムのコンピュータを、前記第１記憶装置に記憶されるデータを前記第２記憶装置に記憶する記憶処理を実行する制御手段として機能させるプログラムであって、
前記制御手段は、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記記憶処理を実行し、前記情報を受信しないで所定時間が経過した後に前記記憶処理を実行する、ことを特徴とするプログラム。
【請求項２０】
前記制御手段は、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記所定時間が経過するのを待たずに、前記記憶処理を実行する、ことを特徴とする請求項１９に記載のプログラム。
【請求項２１】
前記記憶処理は、前記第１記憶装置に記憶されているデータを前記第２記憶装置にコピーするリビルド処理である、ことを特徴とする請求項１９乃至２０のいずれか１項に記載のプログラム。
【請求項２２】
前記記憶処理は、前記第２記憶装置に記憶されるデータのうちエラーとなったデータを前記第１記憶装置に記憶されるデータで書き直すパトロール処理である、ことを特徴とする請求項１９乃至２０のいずれか１項に記載のプログラム。
【請求項２３】
前記コンピュータを、
前記ミラーリングシステムが起動したときに前記記憶処理が中断しているか否かを判断する判断手段として機能させ、
前記制御手段は、前記ミラーリングシステムが起動したときに前記記憶処理が中断していると前記判断手段が判断した場合、前記記憶処理を再開する、ことを特徴とする請求項１９又は２２に記載のプログラム。
【請求項２４】
前記コンピュータを、
前記記憶処理が中断した場合に、前記記憶処理が中断したことを示す情報を保持する保持手段として機能させ、
前記判断手段は、前記保持手段に前記記憶処理が中断したことを示す情報が保持されているか否かによって、前記記憶処理が中断しているか否かを判断する、ことを特徴とする請求項２３に記載のプログラム。
【請求項２５】
前記コンピュータを、
前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信する受信手段として機能させ、
前記制御手段は、前記ミラーリングシステムが起動した後、前記所定時間が経過する前に前記情報を受信した場合、前記記憶処理を実行し、前記ミラーリングシステムが起動した後、前記情報を受信することなく前記所定時間が経過した場合、前記記憶処理を実行する、ことを特徴とする請求項１９乃至２４の何れか１項の記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のハードディクスを備えた情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
ハードディスク障害の対策として、複数のローカルなハードディスクに同一の内容を記録する技術として、ミラーリング技術が知られている。ミラーリングを行うことにより、あるハードディスクに障害が発生した場合でも他のハードディスクを用いて処理を継続することが可能となるため、信頼性が向上する。
【０００３】
ミラーリングを行うミラーリングシステムには、リビルド（再構築）と呼ばれる機能がある。リビルドとは、２台のＨＤＤ（ハードディスク）のうちの１台が故障した場合に、故障していない残りのＨＤＤから、故障したＨＤＤのデータを復元する機能である。例えば、故障したＨＤＤに代えて新しく取り付けられたＨＤＤと稼動中のＨＤＤの整合を取るためにリビルドが行われる。また、２台のＨＤＤの全セクタをリードし、エラーとなったＨＤＤセクタをもう一台のＨＤＤのデータで書き直すことによってエラーを修正するパトロールとよばれる機能もある。
【０００４】
このような機能を備えるミラーリングシステムでは、通常、ホストコンピュータの電源断時またはスリープ時には、ミラーリングシステムへの電源供給をストップし、ミラーリングシステムの電源はＯＦＦとなる。ミラーリングシステムがリビルドを行っている最中にミラーリングシステムの電源がＯＦＦになった場合、ミラーリングシステム内部の不揮発性メモリに、どこまでリビルドを行ったかの情報を記録しておく。そして、ホストコンピュータが再起動あるいはスリープから復帰した際には、ミラーリングシステムは不揮発性メモリに記憶された情報により、中断されていたリビルドを自動的に再開する。
【０００５】
リビルド（又はパトロール）処理は、通常所定のブロック単位で実行される。リビルド処理中に、ミラーリングシステムへ接続されたホストコンピュータからのＨＤＤリード／ライト要求が発生した場合、ホストコンピュータからのＨＤＤリード／ライトの処理は、リビルド処理のブロックの切れ目で実行される。従って、リビルドを行う際のブロックの単位が大きい場合、ホストコンピュータからの要求に対する応答性が悪くなってしまうという問題があった。
【０００６】
このような問題に対して、特許文献１では、ホストコンピュータからのＨＤＤアクセス要求が頻繁に来る場合には、リビルド処理のブロック単位を小さくし、ホストコンピュータからのＨＤＤアクセス要求への応答性を良くしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−９４９９４
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来技術を用いることによって、ホストコンピュータからのＨＤＤアクセス要求への応答性は良くなる。しかし、リビルド処理のブロック単位を小さくしても、リビルドを行っていない場合と比べたときの応答性はやはり悪くなってしまう。特に、ホストコンピュータが起動する際には、システム全体の起動プログラムがＨＤＤに格納されているために、ＨＤＤへのアクセスが頻繁に行われることになる。ここで、上述したように中断されていたリビルドが自動的に再開されてしまうと、システムの起動時間が非常に長くなってしまうという問題がある。
【０００９】
本発明はこのような問題に対してなされたものであり、システムの起動時にリビルド（又はパトロール）によって起動時間が遅延することを抑制することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明のミラーリングシステムは、ホストコンピュータ、第１記憶装置および第２記憶装置と通信可能なミラーリングシステムであって、前記第１記憶装置に記憶されるデータを前記第２記憶装置に記憶する記憶処理を実行する制御手段を備え、前記制御手段は、前記ホストコンピュータが省電力状態から復帰したことを示す情報を受信した場合に、前記記憶処理を実行し、前記情報を受信しないで所定時間が経過した場合に前記記憶処理を実行する、ことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、システムの起動時にリビルド（又はパトロール）によって起動時間が遅延することを抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施例においてミラーリング処理を実行するためのシステム構成である。
【図２】本実施例のＭＦＰのハードウェア構成を示すブロック図である。
【図３】本実施例のミラーリングシステムの内部ＦＬＡＳＨへ保存される情報の例である。
【図４】本実施例のＳＡＴＡの拡張コマンドの一覧表である。
【図５】本実施例のホストコンピュータからミラーリングシステムへ送られるデータを示す図である。
【図６】本実施例のホストコンピュータからミラーリングシステムへ送られるデータを示す図である。
【図７】本実施例のホストコンピュータからミラーリングシステムへ送られるデータを示す図である。
【図８】本実施例のミラーリングシステムにおいて実行される処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１４】
図１は、本実施例においてミラーリング処理を実行するためのシステム構成を示す。本実施例では、図１のシステムがＭＦＰに適用される場合を説明するが、その他の装置を含む情報処理装置に適用可能である。
【００１５】
図１において、ホストコンピュータ２００は、ＭＦＰ全体を制御するための構成である。ミラーリングシステム３００は、ホストコンピュータ２００とＳＡＴＡ信号線（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）２０３で接続されており、後述するミラーリング処理を制御する。ミラーリングシステム３００は、ミラーリングシステムＣＰＵ３０１、ミラーリングシステム内部ＦＬＡＳＨ（不揮発性メモリ）３０７、タイマ３０８を備える。また、ミラーリングシステム３００は、大容量記憶装置としてのＨＤＤ３０２，３０３とそれぞれＳＡＴＡ信号線３０４，３０５で接続されている。
【００１６】
１０１はホストコンピュータへ電源を供給するための電源ユニット１であり、電源１がコンピュータホストへ供給される。１０２はミラーリングシステムへ電源を供給するための電源ユニット２であり、電源２がミラーリングシステムへ供給される。このように、ホストコンピュータ、ミラーリングシステムはそれぞれ独自の電源を持っている。そして、ホストコンピュータ２００が電源断されている間は、ミラーリングシステム３００への電源供給もＯＦＦとなる。ホストコンピュータ２００がスリープ（省電力状態）している間も、ミラーリングシステム３００への電源供給はＯＦＦとなる。ホストコンピュータ２００の電源投入時と、スリープ復帰時にミラーリングシステム３００への電源供給がＯＮされる。
【００１７】
図２は、本実施例のＭＦＰのハードウェア構成を示すブロック図である。特に図１のホストコンピュータ２００の内部構成について具体的に説明する。
【００１８】
２００はホストコンピュータであり、ＭＦＰ全体を制御するコントローラ機能を有するものである。操作部４０１、スキャナ部４０２、プリンタ部４０３と電気的に接続されており、一方ではＮｅｔｗｏｒｋ  Ｉ／Ｆ部２０６を介してＬＡＮと接続され、ＰＣや外部装置などと画像データやデバイス情報の通信が可能となっている。
【００１９】
ＣＰＵ２０１（図１のシステム制御ＣＰＵ）は、ＲＯＭ２５３に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ内部で行われる各種処理についても統括的に制御する。ＲＡＭ２５２は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。このＲＡＭ２５２は、記憶した内容を電源ｏｆｆ  後も保持しておくＳＲＡＭ（不揮発性メモリ）及び電源ｏｆｆ  後には記憶した内容が消去されてしまうＤＲＡＭ（揮発性メモリ）により構成されている。ＲＯＭ２５３には装置のブートプログラムが格納されている。
【００２０】
２０２はハードディスクコントローラであり、ミラーリングシステム３００が接続される。このミラーリングシステム３００に接続されたハードディスク（図１の３０２や３０３）にはシステムソフトウェアや画像データを格納することが可能となっている。
【００２１】
操作部Ｉ／Ｆ２０５は、システムバス２０３と操作部４０１とを接続するためのインタフェース部である。この操作部Ｉ／Ｆ２０５は、操作部４０１に表示するための画像データをシステムバス２０３から受け取り操作部４０１に出力すると共に、操作部４０１から入力された情報をシステムバス２０３へと出力する。
【００２２】
画像バス２２０は画像データをやり取りするための伝送路であり、ＰＣＩバスで構成されている。Ｉｍａｇｅ  Ｂｕｓ  Ｉ／Ｆ２１８はシステムバス２０３と画像バス２２０を接続し、データ構造を変換するバスブリッジである。
【００２３】
スキャナ画像処理部２１２は、スキャナ部４０２からスキャナＩ／Ｆ２１１を介して受け取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部２１２は、受け取った画像データがカラー原稿であるか白黒原稿であるか、文字原稿であるか写真原稿であるかなどを判定する。そして、その判定結果を画像データに付随させる。こうした付随情報を像域データと称する。圧縮部２１３は画像データを受け取り、この画像データを３２画素ｘ３２画素のブロック単位に分割する。
【００２４】
本実施例のＭＦＰがコピー処理を実行する場合、以下のように動作する。
【００２５】
スキャナ部４０２で読み取られた画像データは、スキャナＩ／Ｆ２１１を介してスキャナ画像処理部２１２に送られる。
【００２６】
続いて圧縮部２１３は、この画像データを３２画素ｘ３２画素のブロック単位に分割しタイルデータを生成し圧縮する。ここで圧縮された画像データはＲＡＭ２５２に送られ格納される。なお、この画像データは必要に応じて画像変換部２１７に送られ画像処理が施された上で再びＲＡＭ２５２に送られ格納される。
【００２７】
この後ＲＡＭ２５２から読み出されたデータはミラーリングシステム３００へ書き込まれる。ミラーリングシステム３００は受信したデータを、接続されたＨＤＤ３０２，３０３に書き込む。次にミラーリングシステム３００に接続されたＨＤＤ３０２から読み出されたデータはバス２０３へ送出される。
【００２８】
その後、画像データはバス２０３から伸張部２１６に送られる。伸張部２１６は、この画像データを伸張する。さらに伸張部２１６は、伸張後の複数のタイルデータからなる画像データをラスタライズする。ラスタライズ後の画像データはプリンタ画像処理部２１５に送られる。プリンタ画像処理部２１５において処理された画像データはプリンタＩ／Ｆ２１４を介してプリンタ部４０３に送られ、プリンタ部４０３において印刷される。以上がＭＦＰにおけるコピー処理時のデータの流れである。尚、一旦画像データがミラーリングシステム３００のＨＤＤを経由するのは、ページ入れ換え処理等を実施するために作業領域が必要となることを想定しているためである。
【００２９】
ミラーリングシステム３００は、ホストコンピュータ２００からのＡＴＡコマンドを、接続されたＨＤＤへ伝達する。ここで、図１のように２つのＨＤＤが接続されている場合には、両方のＨＤＤへ伝達されることになる。ホストコンピュータ２００からのＨＤＤへのライトコマンド（ｗｒｉｔｅ  ｃｏｍｍａｎｄ：書き込み要求）は、ＨＤＤコントローラ２０２を介してミラーリングシステム３００へ伝達される。ミラーリングシステム３００はライトコマンドを、接続されている全てのＨＤＤに対して発行する。また、ホストコンピュータ２００からのＨＤＤへのリードコマンド（ｒｅａｄ  ｃｏｍｍａｎｄ：読み出し要求）は、ＨＤＤコントローラ２０２を介してミラーリングシステム３００へ伝達される。ミラーリングシステム３００は、ライトコマンドの時と異なり、リードコマンドを、接続されている複数のＨＤＤのうちの何れかのＨＤＤに対してのみ発行する。通常は、複数のＨＤＤの中のマスタＨＤＤに発行する。
【００３０】
図３はミラーリングシステム３００の内部ＦＬＡＳＨ３０７へ保存される情報の例である。まず、「リビルド遅延時間」は、後述のＳＥＴ  ＲＥＢＵＩＬＤコマンドにより、設定される値であり、ミラーリングシステムが起動した後、ここで指定した秒数が経過しないとリビルドを再開しない。この値をユーザが設定しない場合には、デフォルト値が設定される。リビルド遅延時間は秒単位で設定される。「パトロール遅延時間」は、後述のＳＥＴ  ＰＡＴＲＯＬコマンドにより、設定される値であり、ミラーリングシステムが起動した後、ここで指定した秒数が経過しないとパトロールを再開しない。この値をユーザが設定しない場合には、デフォルト値が設定される。パトロール遅延時間は秒単位で設定される。
【００３１】
「リビルド完了セクタ」は、リビルドがどこまで完了したかを示す情報である。即ち、ＨＤＤ内の複数のセクタのうち、どのセクタまでリビルドが完了しているかを示す情報である。ミラーリングシステム３００は、電源断する際に、リビルドを中断し、中断したセクタを記録する。リビルドが完了している場合は０が入る。従って、リビルド完了セクタの値が０でない場合はリビルド実行中か、リビルド中断中であることがわかる。ミラーリングシステム３００は、ミラーリングシステム起動時、リビルド完了セクタの値を参照し、この値が０でない場合にリビルドを中断されたセクタから再開する。
【００３２】
「パトロール完了セクタ」は、パトロールがどこまで完了したかを示す情報である。即ち、ＨＤＤ内の複数のセクタのうち、どのセクタまでパトロールが完了しているかを示す情報である。ミラーリングシステム３００は、電源断する際に、パトロールを中断し、中断したセクタを記録する。パトロール中で無い場合は０が入る。従って、パトロール完了セクタの値が０で無い場合はパトロール実行中か、パトロール中断中であることがわかる。ミラーリングシステム３００は、ミラーリングシステム起動時、パトロール完了セクタの値を参照し、この値が０で無い場合にパトロールを中断されたセクタから再開する。
【００３３】
図４にＳＡＴＡの拡張コマンドの一覧表を示す。ミラーリングシステム３００は上述したように、ＳＡＴＡ信号線を通じてホストコンピュータからのコマンドを受け取ることができる。本実施例のミラーリングシステム３００は、通常のＳＡＴＡコマンドのほかに、拡張コマンドを受け取ることが可能である。図４は本実施例のミラーリングシステムで使用される拡張コマンドの一覧である。
【００３４】
ＳＡＴＡコマンドは、「ＰＩＯＯＵＴコマンド」と、「ＰＩＯＩＮコマンド」、そして、「ＮＯＮＤＡＴＡコマンド」に分けられる。「ＰＩＯＯＵＴコマンド」はホストコンピュータからミラーリングシステムへデータを転送するコマンドである。「ＰＩＯＩＮコマンド」はミラーリングシステムからホストコンピュータへデータを転送するコマンドである。そして、「ＮＯＮＤＡＴＡコマンド」はデータ転送を伴わないコマンドである。
【００３５】
ホストコンピュータから送られた拡張コマンドは、ミラーリングシステム３００内でのみ解釈され、ＳＡＴＡ信号線（３０４、３０５）を通じてＨＤＤ３０２，３０３へは通知されない。
【００３６】
まず、「ＰＩＯＯＵＴコマンド」に分類される拡張コマンドとして「ＳＥＴＵＰ  ＲＥＢＵＩＬＤ」、「ＳＥＴＵＰ  ＰＡＴＲＯＬ」、「ＣＨＡＮＧＥＭＯＤＥ」がある。
【００３７】
ＳＥＴＵＰ  ＲＥＢＵＩＬＤは、リビルド機能の設定を行うコマンドである。ＳＥＴＵＰ  ＰＡＴＲＯＬは、パトロール機能の設定を行うコマンドである。ＣＨＡＮＧＥＭＯＤＥは、ホストコンピュータからミラーリングシステムへ、シングルモードからミラーリングモードへの変更を指示するコマンドである。このコマンドを受け付けたミラーリングシステムは、リビルドを自動的に開始する。シングルモードとはＨＤＤを一台のみ使用する動作モードであり、ミラーリングシステムにそもそも一台しかＨＤＤが接続されていない場合や複数台接続されていても一台のみを使用する場合とがある。ミラーリングモードとは、ミラーリング処理を実行するモードである。
【００３８】
次に、「ＮＯＮＤＡＴＡコマンド」に分類される拡張コマンドとして「ＴＯＳＬＥＥＰ」、「ＷＡＫＥＵＰ」がある。
【００３９】
ＴＯＳＬＥＥＰは、ミラーリングシステムへ電源断を指示するコマンドである。このコマンドは、ホストコンピュータが電源断する際又はスリープする際にミラーリングシステムへ発行される。ＴＯＳＬＥＥＰコマンドを受け取ったミラーリングシステムは現在行っているリビルド、パトロールを中断し、上記ＦＬＡＳＨ内部へ中断セクタを記録する。その後、ミラーリングシステムの電源はＯＦＦされる。
【００４０】
ＷＡＫＥＵＰは、ミラーリングシステムへスリープ復帰を知らせるコマンドである。本実施例において、ホストコンピュータが電源断される場合とスリープする場合の両方でミラーリングシステムは電源断される。またホストの電源ＯＮ時とホストのスリープ復帰時にミラーリングシステムは電源ＯＮされる。ここで、ミラーリングシステムは起動時に、ホストがスリープ復帰したのか、電源ＯＮしたのかを知るすべが無い。この拡張コマンドはホストがスリープ復帰した際にミラーリングシステムへ通知する。このコマンドによってミラーリングシステムはスリープ復帰での電源ＯＮを知ることができる。即ち、ホストコンピュータの電源ＯＮによるミラーリングシステムの電源ＯＮなのか、ホストコンピュータのスリープ復帰によるミラーリングシステムの電源ＯＮなのかを、ミラーリングシステムは区別することができる。
【００４１】
図５は、図４に示したＰＩＯＯＵＴコマンドであるＳＥＴＵＰ  ＲＥＢＵＩＬＤコマンドを実行した際にホストコンピュータからミラーリングシステムへ送られるデータを示す図である。このデータはホストコンピュータで作成される。
【００４２】
「リビルド遅延時間」は、ミラーリングシステムが起動した後にリビルドを実行するまでに待つ時間を示す。ここで指定した秒数が経過しないとミラーリングシステムはリビルドを再開しない。「自動リビルド有無」は、エラーの生じたハードディスクを交換した際に自動的にリビルドを実行するかどうかを示す情報である。「リビルド時ベリファイ有無」は、ミラーリングシステムがリビルドした際に、ベリファイを行うか否かを示す情報である。「リビルド実行範囲」は、ミラーリングシステムがリビルドを実行するにあたって、ハードディスク全体をリビルドするか、特定の範囲（セクタ）だけをリビルドするかを示す情報である。「領域Ａ先頭セクタ、サイズ」は、リビルド実行範囲に設定された範囲を示す情報である。
【００４３】
図６は、図４に示したＰＩＯＯＵＴコマンドであるＳＥＴＵＰ  ＰＡＴＲＯＬコマンドを実行した際にホストコンピュータからミラーリングシステムへ送られるデータを示す図である。このデータはホストコンピュータで作成される。
【００４４】
「パトロール遅延時間」は、ミラーリングシステムが起動した後にパトロールを実行するまでに待つ時間を示す。ここで指定した秒数が経過しないとミラーリングシステムはパトロールを再開しない。「開始条件」は、ミラーリングシステムがパトロールを開始する条件を示す情報である。「実行範囲」は、ミラーリングシステムがパトロールを実行するにあたって、ハードディスク全体をパトロールするか、特定の範囲（セクタ）だけをパトロールするかを示す情報である。「領域Ａ先頭セクタ、サイズ」は、パトロール実行範囲に設定された範囲を示す情報である。
【００４５】
図７は、図４に示したＰＩＯＯＵＴコマンドであるＣＨＡＮＧＥＭＯＤＥコマンドを実行した際にホストコンピュータからミラーリングシステムへ送られるデータを示す図である。このデータはコンピュータホストで作成される。
【００４６】
「モード切替」は、シングルモードとミラーリングモードを切り替える。
【００４７】
本実施例のミラーリングシステムでは、図４〜図７のコマンド、データのやり取りを経て、リビルド（或いはパトロール）が実行されることになる。リビルド中は、マスタＨＤＤ（正常なデータを格納しているＨＤＤ）からデータをリードし、バックアップＨＤＤ（追加されたＨＤＤ）へデータをライトする。一般に、リビルドされるデータ量は大きいため、リビルドは非常に時間が掛かる作業である。リビルド中はミラーリング状態ではなく、ディスク冗長性によるユーザデータ保護が働かないため、なるべく迅速にリビルドが終了することが望ましい。ここで、一度にデータをコピーするデータサイズ（リビルドするブロック単位）を大きくした場合、リビルド終了までの時間は短くなる。しかし、データをコピーしている最中にホストコンピュータからのＨＤＤリード／ライト要求が来た場合、データコピーが終了してからの応答になるため、ホストコンピュータからのリード／ライト要求への応答性が悪くなる欠点がある。一度にデータをコピーするデータサイズを小さくした場合、データコピーは直ぐ完了するため（ブロック単位が小さいため）、ホストからのＨＤＤリードライト要求への応答性は良い。しかしリビルドが終了までの時間が長くなるという欠点がある。
【００４８】
また、一度にデータをコピーするデータサイズをどんなに小さくしたとしても、マスタＨＤＤからのデータのリード、バックアップＨＤＤへのデータのライトなどのコマンド発行に伴うオーバーヘッドは発生する。従ってホストコンピュータからのデータアクセス総時間は延びてしまう。このため、ホストコンピュータからのデータアクセス総時間をなるべく減らしたい場合には、リビルド自体を行わないことが必要である。
【００４９】
パトロールに関しても同様であり、両ＨＤＤからデータを読み出すサイズを調整することは可能だが、パトロールを実行している以上、両ＨＤＤへのデータリードのオーバーヘッドは発生することになる。
【００５０】
図８は、本実施例のミラーリングシステム３００において実行される処理を示すフローチャートである。図８の各ステップは、ミラーリングシステムＣＰＵ３０１がコンピュータプログラムを処理することによって実行される。
【００５１】
まずＣＰＵ３０１は、接続されるＨＤＤに対して接続確認を行う（Ｓ８０１）。そして、ｉｄｅｎｔｉｆｙコマンドをＨＤＤに発行し、接続されたＨＤＤの状態を確認する（Ｓ８０２）。その後、ＣＰＵ３０１は接続確認されたＨＤＤとミラーリングシステムとの間の転送モードの設定を行う（Ｓ８０３）。
【００５２】
ＣＰＵ３０１は、ミラーリングを行うか否かを判断する（Ｓ８０４）。この判断はまず、２台のＨＤＤの接続が確認されたかどうかが判断される。そして、２台のＨＤＤの接続が確認された場合には、それらのＨＤＤが格納するデータの整合が取れているか否かを判断する。具体的には、内部ＦＬＡＳＨ３０７に保持される「リビルド完了セクタ」の情報を参照し、値が０であるかどうかが判断される。値が０である場合は、リビルドが完了し、２つのＨＤＤに格納されるデータの整合が取れていると判断される。従って、Ｓ８０４では、ＨＤＤが２台接続されており、且つ、２台のＨＤＤそれぞれに格納されるデータの整合がとれているという２つの条件が判断され、両方を満たす場合にはＳ８１９へと進む。一方、少なくともどちらかの条件が満たされない場合にはＳ８０５へと進む。
【００５３】
Ｓ８０５において、ＣＰＵ３０１は、リビルドを実行するか否かを判断する。この判断では、ミラーリングシステム３００に接続されているＨＤＤの数が確認され、１台である場合にはリビルドを実行しないと判断されてＳ８０６へと進む。接続されたＨＤＤの数が２台であった場合には、現在シングルモードが設定されているか否かが判断され、シングルモードが設定されている場合にはリビルドを実行しないと判断されてＳ８０６へと進む。一方、接続されたＨＤＤの数が２台であり、尚且つ「リビルド完了セクタ」の値が０以外であった場合、リビルドを実行すると判断し、Ｓ８０７へと進む。Ｓ８０６では、ＨＤＤ一台を使った、通常の動作が行われることになる。
【００５４】
前述したとおり、「リビルド完了セクタ」の値が０以外の場合とは、リビルドが中断した場合である。つまり、以前リビルド実行中に、ホストコンピュータからのＴＯＳＬＥＥＰコマンドにより、リビルド完了前にミラーリングシステム３００の電源がＯＦＦになったことを示している。従って、起動したミラーリングシステムは、リビルドが中断したセクタからリビルドを再開する必要がある。
【００５５】
ＣＰＵ３０１は、ホストコンピュータ２００が、電源ＯＦＦの状態から電源がＯＮされたのか、それともスリープ状態からスリープ復帰したのかの何れであるのかを判断する（Ｓ８０７）。具体的には、ＣＰＵ３０１は、ホストコンピュータ２００からＷＡＫＥＵＰコマンドを受信したか否かを判断する。ホストコンピュータ２００はスリープから復帰した場合にのみＷＡＫＥＵＰコマンドをミラーリングシステム３００に発行するからである。
【００５６】
Ｓ８０７において、ＷＡＫＥＵＰコマンドを受信したと判断された場合には、ＣＰＵ３０１は、ホストコンピュータがスリープから復帰したと判断し、Ｓ８１０へと進む。一方、ＷＡＫＥＵＰコマンドを受信したと判断されなかった場合には、ＣＰＵ３０１は、ホストコンピュータが電源ＯＦＦ状態から電源がＯＮされたと判断し、Ｓ８０８へと進む。
【００５７】
Ｓ８０８において、ＣＰＵ３０１は、タイマ３０８のカウントを開始する。そして、内部ＦＬＡＳＨ３０７に格納される「リビルド遅延時間」を参照し、タイマのカウントがリビルド遅延時間に達したかを判断する（Ｓ８０９）。リビルド遅延時間に達した場合にはＳ８１０へと進む。
【００５８】
Ｓ８１０において、ＣＰＵ３０１は、リビルドを開始する。
【００５９】
このように、ホストコンピュータが電源ＯＦＦの状態から電源ＯＮされた場合には、ミラーリングシステム３００は遅延時間の経過を待ってからリビルドを開始する。これはホストコンピュータ２００が電源ＯＮされた後には、ホストコンピュータ２００からミラーリングシステム３００に対してＨＤＤ上のファイルを読み書きするＨＤＤアクセスが頻発するからである。その際にリビルドを行うと、ホストコンピュータ２００からのＨＤＤリード／ライト要求の応答性が悪くなってしまう。この問題を回避するために、本実施例では、ホストコンピュータが電源ＯＦＦの状態から電源ＯＮされた場合には、ミラーリングシステム３００は遅延時間の経過を待ってからリビルドを開始する。一方で、ホストコンピュータ２００がスリープから復帰した場合には、ホストコンピュータ２００がＨＤＤから読み出すべき情報はホストコンピュータ２００のメモリに既に保持されている。即ちホストコンピュータからミラーリングシステムに対してＨＤＤ上のファイルを読み書きするＨＤＤアクセスが頻発することはない。従って、本実施例では、ホストコンピュータがスリープから復帰された場合には、ミラーリングシステム３００は遅延時間の経過を待つことなく直ちにリビルドを開始する。
【００６０】
Ｓ８１１において、ＣＰＵ３０１はホストコンピュータ２００からＴＯＳＬＥＥＰコマンドを受信したか否かを判断する。受信した場合にはＳ８１７へ進み、受信していない場合にはＳ８１２へと進む。
【００６１】
Ｓ８１２において、ＣＰＵ３０１は接続された２台のＨＤＤのうちのマスタＨＤＤからデータを読み出す。そしてもう一方のＨＤＤ（バックアップＨＤＤ）へデータを書き込む（Ｓ８１３）。その後、ＣＰＵ３０１は、マスタＨＤＤからバックアップＨＤＤへコピーしたセクタ分だけ、現在のリビルド中セクタを進める（Ｓ３１４）。Ｓ８１５において、ＣＰＵ３０１は全てのセクタのリビルドが終了したか否かを判断する。終了している場合にはＳ８１６へと進む。一方終了していない場合には再びＳ８１１へと戻る。Ｓ８１６においてＣＰＵ３０１は、内部ＦＬＡＳＨ３０７の「リビルド完了セクタ」に、０を書き込む。即ち、リビルドが正常に終了したことを示す情報を書き込み、Ｓ８１９へと進みそれ以降はミラーリングを実行することになる。
【００６２】
Ｓ８１１においてホストコンピュータ２００からＴＯＳＬＥＥＰコマンドを受信したと判断された場合には、Ｓ８１７へと進む。Ｓ８１７においてＣＰＵ３０１は、内部ＦＡＬＳＨ３０７に保持される「リビルド完了セクタ」にリビルドを中断したセクタの情報を書き込む。即ち現在リビルドを行っていたセクタをリビルド完了セクタに書き込む。その後、Ｓ８１８において電源をＯＦＦにする。
【００６３】
Ｓ８１９においてＣＰＵ３０１は、ミラーリング動作を行う。ミラーリング動作している場合、Ｓ８２０においてＣＰＵ３０１はパトロールを行うかどうかの判定を行う。一般的にパトロールは１ヶ月に１度実行するなど、実行する間隔をユーザが指定する。Ｓ８２０では、パトロールを行うべき日時に達しているかがパトロールを行う条件となる。パトロールを行う必要の無い場合は、Ｓ８１９へ戻り、ミラーリング動作を継続する。パトロールを行う必要がある場合はＳ８２１において、パトロール動作を行い、パトロールが完了すると、Ｓ８１９へ戻り、ミラーリング動作を継続する。Ｓ８２１において実行されるパトロール処理の詳細な説明は省略しているが、パトロール処理をする際にも、リビルドと同様、Ｓ８０７と同じ判断が行われる。そして、スリープからの復帰である場合には、リビルドと同様、Ｓ８０８、Ｓ８０９と同じ処理が行われることになる。即ち、スリープから復帰した場合には、パトロール処理も遅延時間分だけ遅延されることになる。
【００６４】
以上説明したように、本実施例では、ミラーリングシステムにおけるリビルドの処理がホストコンピュータの電源ＯＦＦによって中断され、再びホストコンピュータが電源ＯＮされて起動した場合に、直ちにリビルドを再開しないようにする。これは、ホストコンピュータ起動時にはＨＤＤアクセスが頻繁に行われるため、リビルド処理と競合することによってホストコンピュータからのＨＤＤアクセスが遅延することを防ぐためである。本実施例では、直ちにリビルドを再開するのではなく、所定の遅延時間の経過を待ってからリビルドを開始するので、ホストコンピュータからのＨＤＤアクセスと競合することを防ぐことができる。
【００６５】
尚、ミラーリングシステムの内部ＦＬＡＳＨ３０７に保持される「リビルド遅延時間」は、ユーザ（管理者等）によって任意に変更することができてもよい。又は、ホストコンピュータの起動時間を計算し、この時間が自動的に「リビルド遅延時間」に書き込まれるようにしてもよい。又は、ミラーリングシステムが「リビルド遅延時間」をそもそも持たず、ホストコンピュータからの起動完了の通知を受けてから、リビルドを開始するようにしてもよい。
【００６６】
また、上記実施例では、ミラーリングシステムに２台のハードディスクが接続される場合を説明したが、３台以上のハードディスクが接続される場合にも同様に適用可能である。
【００６７】
（その他の実施例）
上記実施例では、ミラーリングシステムとホストコンピュータとが１つの装置（ＭＦＰ等）に含まれている構成について説明したが、これらが別々の装置によって提供されてもよい。例えば、ホストコンピュータとミラーリングシステムとがＬＡＮ等のネットワークによって接続されて構成される場合であっても、上記実施例は適用可能である。
【００６８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６９】
２００  ホストコンピュータ
２０１  システム制御ＣＰＵ
３００  ミラーリングシステム
３０１  ミラーリングシステムＣＰＵ
３０７  内部ＦＬＡＳＨ
３０２  マスタＨＤＤ
３０３  バックアップＨＤＤ
【図１】
0005409159.tif 000002
【図２】
0005409159.tif 000003
【図３】
0005409159.tif 000004
【図４】
0005409159.tif 000005
【図５】
0005409159.tif 000006
【図６】
0005409159.tif 000007
【図７】
0005409159.tif 000008
【図８】
0005409159.tif 000009