(57)【要約】【課題】複数の記憶装置を用いてミラーリングを行う情報処理装置において、非ミラーリング領域が設けられた記憶装置が故障した場合にもシステムの動作を継続することを可能にする技術を提供する。【解決手段】ＭＦＰ（情報処理装置）において、ミラーリング装置１００は、ミラーリング対象のデータを記憶装置１０１，１０２の両方に書き込み、ミラーリング対象ではないデータを優先記憶装置（記憶装置１０１）に書き込むように、記憶装置１０１，１０２へのアクセスを行う。ミラーリング装置１００は、記憶装置１０１，１０２のうち、優先記憶装置に設定された一方の記憶装置１０１の故障を検出すると、他方の記憶装置１０２の記憶領域におけるミラーリング領域以外の一部の領域のフォーマットを行う。これにより、当該一部の領域を非ミラーリング領域として使用可能にする。【選択図】図６
2019212026.tif 000002
【特許請求の範囲】
【請求項１】
ミラーリング対象のデータを格納するためのミラーリング領域が設けられた第１及び第２記憶装置であって、前記第１及び第２記憶装置のうち、優先記憶装置に設定された一方の記憶装置に、ミラーリング対象ではないデータを格納するための非ミラーリング領域が設けられる、前記第１及び第２記憶装置と、
ミラーリング対象のデータを前記第１及び第２記憶装置の両方に書き込み、ミラーリング対象ではないデータを前記優先記憶装置に書き込むように、前記第１及び第２記憶装置へのアクセスを行うアクセス手段と、を備え、
前記アクセス手段は、前記第１及び第２記憶装置のうち、前記優先記憶装置に設定された一方の記憶装置の故障を検出すると、他方の記憶装置の記憶領域におけるミラーリング領域以外の一部の領域の初期化を行うことで、当該一部の領域を非ミラーリング領域として使用可能にする
ことを特徴とする情報処理装置。
【請求項２】
前記アクセス手段は、前記第１及び第２記憶装置のうち、前記優先記憶装置に設定された一方の記憶装置の故障を検出すると、前記優先記憶装置の設定を他方の記憶装置に切り替えて、前記初期化を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセス手段に対して、記憶装置へのデータの書き込み命令又は記憶装置からのデータの読み出し命令を行う制御手段を更に備え、
前記アクセス手段は、前記書き込み命令に従って前記非ミラーリング領域にデータを書き込む際に、前記優先記憶装置の故障を検出すると、前記優先記憶装置の設定の切り替え後に、エラーの発生を示す通知を前記制御手段へ出力する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記アクセス手段からの前記通知に応じて、前記非ミラーリング領域の初期化を前記アクセス手段へ指示し、
前記アクセス手段は、前記制御手段からの指示に従って、前記優先記憶装置において前記非ミラーリング領域として使用される前記一部の領域の初期化を行う
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記アクセス手段は、記憶装置へのデータの書き込み命令で指定される、データの書き込み先を示すアドレスに従って、前記第１及び第２記憶装置の両方にデータを書き込むか、前記優先記憶装置にデータを書き込むかを決定する
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記アクセス手段は、
前記書き込み命令で指定されたアドレスが、前記ミラーリング領域に対応するアドレス範囲に含まれる場合には、前記第１及び第２記憶装置にデータを書き込み、
前記書き込み命令で指定されたアドレスが、前記ミラーリング領域に対応するアドレス範囲に含まれない場合には、前記優先記憶装置にデータを書き込む
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第１及び第２記憶装置のうち、前記優先記憶装置として設定されていない記憶装置については、当該記憶装置の記憶領域において前記ミラーリング領域のみが予め初期化されている
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第１記憶装置において前記ミラーリング領域として使用される記憶領域と、前記第２記憶装置において前記ミラーリング領域として使用される記憶領域には、同じアドレス範囲が割り当てられ、
前記第１記憶装置において前記非ミラーリング領域として使用される記憶領域と、前記第２記憶装置において前記非ミラーリング領域として使用される記憶領域には、同じアドレス範囲が割り当てられる
ことを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
ミラーリング対象のデータを格納するためのミラーリング領域が設けられた第１及び第２記憶装置であって、前記第１及び第２記憶装置のうち、優先記憶装置に設定された一方の記憶装置に、ミラーリング対象ではないデータを格納するための非ミラーリング領域が設けられる、前記第１及び第２記憶装置を備える情報処理装置の制御方法であって、
ミラーリング対象のデータを前記第１及び第２記憶装置の両方に書き込み、ミラーリング対象ではないデータを前記優先記憶装置に書き込むように、前記第１及び第２記憶装置へのアクセスを行う工程と、
前記第１及び第２記憶装置のうち、前記優先記憶装置に設定された一方の記憶装置の故障を検出すると、他方の記憶装置の記憶領域におけるミラーリング領域以外の一部の領域の初期化を行うことで、当該一部の領域を非ミラーリング領域として使用可能にする工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置等の情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、ＳＳＤ（ソリッドステートドライブ）の普及に伴い、画像形成装置等の情報処理装置に搭載される二次記憶装置（補助記憶装置）として、ＳＳＤを使用することが検討されている。また、記憶装置のアクセス性能及び耐障害性の向上のため、複数の記憶装置を搭載し、記憶装置間でデータのミラーリングを行う場合がある。この場合、コストの観点から、ＨＤＤとＳＳＤとを組み合わせて使用する構成が採用される可能性がある。
【０００３】
特許文献１には、種類が異なる記憶装置を組み合わせる場合に、ミラーリング対象のデータを格納するためのミラーリング領域を複数の記憶装置の記憶領域に設け、いずれかの記憶装置の記憶装置に非ミラーリング領域を設ける構成が提案されている。この構成では、一時的なデータ等の重要度が低いデータを、ミラーリング領域ではなく非ミラーリング領域に書き込みことで、記憶装置へのデータの書き込み回数及び書き込み時間を減らすことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−４３２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述の従来技術では、非ミラーリング領域が設けられた記憶装置が故障すると、非ミラーリング領域へのアクセス（データの書き込み又は読み出し）を行うことができなくなり、情報処理装置上のシステムの動作を継続できなくなる。
【０００６】
本発明は、上述の問題に鑑みてなされたものである。本発明は、複数の記憶装置を用いてミラーリングを行う情報処理装置において、非ミラーリング領域が設けられた記憶装置が故障した場合にもシステムの動作を継続することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理装置は、ミラーリング対象のデータを格納するためのミラーリング領域が設けられた第１及び第２記憶装置であって、前記第１及び第２記憶装置のうち、優先記憶装置に設定された一方の記憶装置に、ミラーリング対象ではないデータを格納するための非ミラーリング領域が設けられる、前記第１及び第２記憶装置と、ミラーリング対象のデータを前記第１及び第２記憶装置の両方に書き込み、ミラーリング対象ではないデータを前記優先記憶装置に書き込むように、前記第１及び第２記憶装置へのアクセスを行うアクセス手段と、を備え、前記アクセス手段は、前記第１及び第２記憶装置のうち、前記優先記憶装置に設定された一方の記憶装置の故障を検出すると、他方の記憶装置の記憶領域におけるミラーリング領域以外の一部の領域の初期化を行うことで、当該一部の領域を非ミラーリング領域として使用可能にすることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の記憶装置を用いてミラーリングを行う情報処理装置において、非ミラーリング領域が設けられた記憶装置が故障した場合にもシステムの動作を継続することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置（ＭＦＰ）の構成例を示すブロック図。
【図２】ミラーリング装置の構成例を示すブロック図。
【図３】記憶装置の記憶領域の構成例を示す図。
【図４】記憶装置へのデータの書き込み処理の手順を示すフローチャート。
【図５】エラーリカバリ処理の手順を示すフローチャート。
【図６】エラーリカバリ処理のシーケンス図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
＜画像形成装置（ＭＦＰ）の構成＞
図１は、本発明の実施形態に係る画像形成装置の一例である複合機（ＭＦＰ）のハードウェア構成例を示すブロック図である。なお、本発明は、複数の記憶装置を搭載可能な情報処理装置であれば適用可能であり、例えば、印刷装置、複写機、複合機（ＭＦＰ）及びファクシミリ装置等にも適用可能である。
【００１２】
ＭＦＰ１は、コントローラ２と、コントローラ２に接続された操作部３、プリンタ部４、及びスキャナ部５とを備える。コントローラ２は、システムバス１０に接続されたデバイスとして、ホストＣＰＵ１１、ＥＥＰＲＯＭ１２、ＲＡＭ１３、ＮＩＣ１４、モデム１５、操作部Ｉ／Ｆ１６、電源制御部１７、及びミラーリング装置１００を備える。コントローラ２は、更に、ミラーリング装置１００に接続された記憶装置として、記憶装置１０１（記憶装置Ａ）及び記憶装置１０２（記憶装置Ｂ）を備える。
【００１３】
操作部３は、タッチパネル機能を有するディスプレイと操作キーとを有し、ＭＦＰ１に対するユーザの操作を受け付けるために用いられるとともに、及び各種情報及び操作画面の表示のために用いられる。プリンタ部４は、画像データに基づいてシート（記録紙等）に画像を印刷する。スキャナ部５は、原稿から光学的に画像を読み取って当該画像をデジタル画像に変換し、画像データとして出力する。
【００１４】
ホストＣＰＵ１１は、ＥＥＰＲＯＭ１２、又はミラーリング装置１００を介してアクセス可能な記憶装置に格納されたプログラムをＲＡＭ１３に読み出して実行することで、ＭＦＰ１全体を制御する。ＥＥＰＲＯＭ１２は、書き換え可能な不揮発性メモリである。ＥＥＰＲＯＭ１２には、ＭＦＰ１の起動プログラム、制御プログラム、各種設定情報等のデータが格納されている。ＲＡＭ１３は、ホストＣＰＵ１１によって実行されるプログラム、又はホストＣＰＵ１１よって使用されるデータの一時的な格納等に使用される。
【００１５】
ＮＩＣ１４（ネットワークインタフェースカード）は、ＬＡＮ等のネットワークに接続されており、ネットワークを介してＰＣ等の外部装置と通信する通信Ｉ／Ｆ（インタフェース）である。ホストＣＰＵ１１は、例えば、ＮＩＣ１４を介して外部装置からプリントデータ等の各種データを受信できる。なお、ＭＦＰ１は、外部装置と無線通信（無線ＬＡＮ通信等）を行うための無線通信Ｉ／Ｆを備えていてもよい。ＭＦＰ１が省電力状態である場合にも、外部装置との通信が可能になるよう、省電力状態においてＮＩＣ１４への電力の供給が維持される。モデム１５は、電話回線に接続されており、電話回線を介して外部装置とＦＡＸ（ファクシミリ）通信を行う。
【００１６】
操作部Ｉ／Ｆ１６は、ホストＣＰＵ１１からの指示に従って操作部３に操作画面を表示し、また、操作部３においてユーザから受け付けた指示をホストＣＰＵ１１へ通知する。電源制御部１７は、電源部（図示せず）から各デバイスへの電力の供給及び停止を制御することで、ＭＦＰ１の電力制御を行う。例えば、電源制御部１７は、ＭＦＰ１が省電力状態に移行するように、電源部から各デバイスへの電力の供給を制御する。
【００１７】
ＭＦＰ１には、二次記憶装置（補助記憶装置）として１つ以上の記憶装置（ストレージ）を搭載可能である。本実施形態では、図１に示すように、記憶装置１０１，１０２の２つの記憶装置がＭＦＰ１に搭載され、記憶装置１０１，１０２は、ミラーリング装置１００に対して着脱可能に接続される。なお、記憶装置１０１，１０２は、図１に示すようにミラーリング装置１００の外部に設けられるのではなく、ミラーリング装置１００内に包含されていてもよい。
【００１８】
ミラーリング装置１００は、接続された記憶装置１０１，１０２を制御する。記憶装置１０１，１０２は、不揮発性の記憶装置であり、それぞれＨＤＤ（ハードディスクドライブ）又はＳＳＤ（ソリッドステートドライブ）のいずれでもよい。例えば、記憶装置１０１，１０２の両方がＨＤＤであってもよいし、あるいは、一方がＨＤＤで他方がＳＳＤであってもよい。即ち、ＨＤＤ及びＳＳＤが二次記憶装置として併用されてもよい。
【００１９】
本実施形態では、記憶装置１０１がＳＳＤ、記憶装置１０２がＨＤＤで構成される場合について説明する。なお、ＨＤＤは、磁気ディスクで構成されたタイプの記憶装置の一例である。また、ＳＳＤは、半導体メモリ（例えば、ＮＡＮＤ型フラッシュメモリ）で構成されたタイプの記憶装置の一例であり、データを格納可能な記憶容量はＨＤＤよりも小さいものの、ＨＤＤよりも高速なランダムアクセスが可能である。
【００２０】
＜ミラーリング装置の構成＞
図２は、本実施形態に係るミラーリング装置１００の構成例を示すブロック図である。ミラーリング装置１００は、システムバス１２０に接続されたデバイスとして、ＣＰＵ１２１、ＲＯＭ１２２、ＲＡＭ１２３、ＤＩＳＫＣ（ディスクコントローラ）１２４〜１２６、及びデータ転送部１２７を備える。ＤＩＳＫＣ１２４〜１２６には、それぞれ、コントローラ２のホストＣＰＵ１１、記憶装置１０１、及び記憶装置１０２が接続される。
【００２１】
ＣＰＵ１２１は、ＲＯＭ１２２、記憶装置１０１又は記憶装置１０２に格納されたプログラムをＲＡＭ１２３に読み出して実行することで、システムバス１２０に接続されている各デバイスを制御する。ＲＯＭ１２２には、ＣＰＵ１２１によって実行される制御プログラムが格納される。ＲＡＭ１２３は、ＣＰＵ１２１のワークメモリとして使用される。ＤＩＳＫＣ１２５，１２６は、それぞれ、ＣＰＵ１２１からの指示に従って、接続されている記憶装置へのデータの書き込み及び当該記憶装置からのデータの読み出しを制御する。データ転送部１２７は、ＣＰＵ１２１からの指示に従って、ＤＩＳＫＣ１２４〜１２６の間でデータ転送を行う。
【００２２】
ミラーリング装置１００は、ＤＩＳＫＣ１２４を介して、ホストＣＰＵ１１と接続される。ＣＰＵ１２１は、記憶装置１０１，１０２への書き込み対象のデータ及び記憶装置１０１，１０２から読み出したデータを、ＤＩＳＫＣ１２４を介してホストＣＰＵ１１との間で送受信する。ＣＰＵ１２１は、ホストＣＰＵ１１からの命令により、記憶装置１０１，１０２に対するデータの書き込み又は読み出しを行う。ミラーリング装置１００が介在することで、ホストＣＰＵ１１は記憶装置１０１，１０２を１つの記憶装置として認識して記憶装置に対するアクセスを行うことが可能である。本実施形態では、ホストＣＰＵ１１は、ミラーリング装置１００（アクセス手段）に対して、記憶装置へのデータの書き込み命令又は記憶装置からのデータの読み出し命令を行う制御手段の一例として機能する。
【００２３】
ミラーリング装置１００（ＣＰＵ１２１）は、複数の記憶装置が接続された場合、接続された記憶装置間（記憶装置１０１と記憶装置１０２との間）でデータのミラーリングを行うことが可能である。ミラーリングは、２台の記憶装置に同じデータを保存する（書き込む）ことによって、１台の記憶装置が故障したとしても、もう１台の記憶装置を用いて装置（システム）の動作を継続可能にする技術である。
【００２４】
記憶装置１０１，１０２は、一方がマスター（優先記憶装置）に設定され、他方がスレーブに設定されている。マスター及びスレーブの設定は、ストレージの故障又は着脱等によって適宜入れ替えられる。ＣＰＵ１２１は、ミラーリング対象のデータを記憶装置に書き込む際には、マスターの記憶装置及びスレーブの記憶装置の両方にデータを書き込むことで、データのミラーリングを行う。一方、ＣＰＵ１２１は、ミラーリング対象ではないデータを記憶装置に書き込む際には、マスターの記憶装置（優先記憶装置）にのみデータを書き込む。また、ＣＰＵ１２１は、データの読み出しはマスターの記憶装置からのみ行う。
【００２５】
本実施形態では、図３を用いて後述するように、記憶装置１０１，１０２の両方に、ミラーリング対象のデータを格納するためのミラーリング領域が設けられている。また、優先記憶装置に設定された記憶装置１０１には、ミラーリング対象ではないデータを格納するための非ミラーリング領域が、予めフォーマット（初期化）されて使用可能な状態で設けられている。
【００２６】
ＣＰＵ１２１は、ホストＣＰＵ１１からの書き込み命令に従って、書き込み命令で指定されたデータを記憶装置１０１，１０２のミラーリング領域にそれぞれ格納することで、上述のミラーリングを実現する。また、ＣＰＵ１２１は、ミラーリング対象ではないデータ（一時的なデータ等）については、優先記憶装置に設定された記憶装置１０１の非ミラーリング領域のみに格納する。本実施形態では、ＣＰＵ１２１は、ホストＣＰＵ１１からの書き込み命令で指定される、データの書き込み先を示すアドレスに従って、記憶装置１０１，１０２の両方にデータを書き込むか、優先記憶装置（記憶装置１０１）にデータを書き込むかを決定する。これにより、ホストＣＰＵ１１が、データの書き込み先の記憶装置を指定せずに、アドレスのみを用いてデータの書き込みを命令することが可能になる。
【００２７】
＜記憶装置の記憶領域の構成＞
図３は、記憶装置１０１，１０２の記憶領域の構成例を示す図である。ミラーリング装置１００は、各記憶装置の記憶領域において予め定められたサイズの領域を、システム使用領域３００として使用し、当該サイズを超えるサイズ分の領域を、使用せずに未使用領域として扱う。
【００２８】
システム使用領域３００は、先頭アドレス３２０から終端アドレス３３０までのアドレス範囲に対応する領域である。システム使用領域３００のサイズは、先頭アドレス３２０から終端アドレス３３０を減算して得られるサイズに相当する。システム使用領域３００は、ミラーリング対象のデータを格納するためのミラーリング領域と、ミラーリング対象ではないデータを格納するための非ミラーリング領域とに分けられる。ミラーリング領域と非ミラーリング領域とは、境界アドレス３４０によって区切られる。
【００２９】
本実施形態では、記憶装置１０１，１０２のうち、記憶装置１０１が予め優先記憶装置に設定されている。記憶装置１０１，１０２には、それぞれ、ミラーリング領域３０１，３１１が、予めフォーマットされて使用可能な状態で設けられている。優先記憶装置に設定された記憶装置１０１には、更に、非ミラーリング領域３０２が、予めフォーマットされて使用可能な状態で設けられている。
【００３０】
記憶装置１０２については、その記憶領域におけるミラーリング領域以外の一部の領域に非ミラーリング領域３１２が確保されているが、当該領域のフォーマットは予め行われていない。このため、非ミラーリング領域３１２は、フォーマットが行われることで使用可能になる。このように、記憶装置１０１，１０２のうち、優先記憶装置として設定されていない記憶装置（即ち、記憶装置１０２）については、当該記憶装置の記憶領域においてミラーリング領域３１１のみが予め初期化されている。
【００３１】
ミラーリング領域３０１，３１１には、先頭アドレス３２０から境界アドレス３４０までのアドレス範囲が割り当てられる。このアドレス範囲は、ミラーリング領域の設定情報としてＲＯＭ１２２に保存される。また、非ミラーリング領域３０２，３１２には、境界アドレス３４０から終端アドレス３３０までのアドレス範囲が割り当てられる。なお、ＲＯＭ１２２には、ミラーリング領域の設定情報に加えて、記憶装置１０１，１０２のいずれが優先記憶装置に設定されているかを示す、優先記憶装置の設定情報も保存される。
【００３２】
このように、本実施形態では、記憶装置１０１においてミラーリング領域３０１として使用される記憶領域と、記憶装置１０２においてミラーリング領域３１１として使用される記憶領域には、同じアドレス範囲３４１が割り当てられる。また、記憶装置１０１において非ミラーリング領域３０２として使用される記憶領域と、記憶装置１０２において非ミラーリング領域３１２として使用される記憶領域には、同じアドレス範囲３４１が割り当てられる。
【００３３】
ミラーリング装置１００のＣＰＵ１２１は、上述のアドレス割り当てを利用して、ホストＣＰＵ１１からの書き込み命令に従って記憶装置１０１，１０２に対するデータの書き込み又は読み出しを行う。ＣＰＵ１２１は、ホストＣＰＵ１１からの書き込み命令で指定される、データの書き込み先を示すアドレスに従って、記憶装置１０１，１０２の両方にデータを書き込むか、優先記憶装置（記憶装置１０１）にデータを書き込むかを決定する。
【００３４】
具体的には、ＣＰＵ１２１は、書き込み命令で指定されたアドレスが、ミラーリング領域に対応するアドレス範囲３４１に含まれる場合には、記憶装置１０１，１０２にデータを書き込む。この場合、ミラーリング領域３０１，３１１のそれぞれに、書き込み命令で指定されたデータが格納される。また、ＣＰＵ１２１は、書き込み命令で指定されたアドレスが、非ミラーリング領域に対応するアドレス範囲３４２に含まれる場合には、優先記憶装置（記憶装置１０１）にデータを書き込む。この場合、非ミラーリング領域３０２のみに、書き込み命令で指定されたデータが格納される。
【００３５】
これにより、ホストＣＰＵ１１は、記憶装置に対するデータの書き込み又は読み出しをミラーリング装置１００に命令する際に、記憶装置を指定せずに、アドレスのみを用いて命令を行うことが可能になる。また、一時的なデータ等の、ミラーリング対象ではないデータについては、非ミラーリング領域３０２に格納することにより、データのミラーリングを省くことが可能になる。
【００３６】
なお、図３の例では、記憶装置１０１，１０２の記憶領域においてミラーリング領域３０１，３１１より後方に非ミラーリング領域３０２，３１２が配置されているが、これに限定されず、非ミラーリング領域３０２，３１２は任意の位置に配置可能である。例えば、非ミラーリング領域３０２，３１２は、ミラーリング領域より前方に配置されてもよいし、ミラーリング領域とミラーリング領域との間に配置されてもよい。
【００３７】
＜データの書き込み処理＞
図４は、ホストＣＰＵ１１から書き込み指示を受信した際の、ミラーリング装置１００による記憶装置へのデータの書き込み処理の手順を示すフローチャートである。図４の各ステップの処理は、ミラーリング装置１００のＣＰＵ１２１が、ＲＯＭ１２２に格納された制御プログラムを読み出して実行することによって実現されうる。
【００３８】
まずＳ４０１で、ＣＰＵ１２１は、記憶装置へのデータの書き込み命令（コマンド）をホストＣＰＵ１１から受信する。書き込み命令を受信すると、ＣＰＵ１２１は、Ｓ４０２で、書き込み命令で指定された書き込み先アドレスが、システム使用領域３００に対応する有効範囲（先頭アドレス３２０から終端アドレス３３０までの範囲）内のアドレスであるか否かを判定する。即ち、ＣＰＵ１２１は、データの書き込み先がシステム使用領域３００であるか否かを判定する。
【００３９】
ＣＰＵ１２１は、データの書き込み先がシステム使用領域３００である場合にはＳ４０２からＳ４０４へ処理を進め、システム使用領域３００ではない場合にはＳ４０２からＳ４０３へ処理を進める。Ｓ４０３では、ＣＰＵ１２１は、書き込み命令で指定された書き込み先アドレスが有効ではないことを示すエラーをホストＣＰＵ１１に通知し、処理を終了する。
【００４０】
一方、Ｓ４０４で、ＣＰＵ１２１は、ミラーリング領域の設定情報及び優先記憶装置の設定情報を、ＲＯＭ１２２から読み出すことで取得する。なお、ＣＰＵ１２１は、ＲＯＭ１２２から読み出した設定情報をＲＡＭ１２３にキャッシュしておくことで、ＲＯＭ１２２からの設定情報の読み出しを繰り返さないように（Ｓ４０４の処理を繰り返さないように）動作してもよい。
【００４１】
その後Ｓ４０５で、ＣＰＵ１２１は、書き込み命令で指定された書き込み先アドレスが、ミラーリング領域３０１，３１１に対応するアドレス範囲３４１に含まれるか否かを判定する。即ち、ＣＰＵ１２１は、データの書き込み先がミラーリング領域３０１，３１１であるか否かを判定する。ＣＰＵ１２１は、データの書き込み先がミラーリング領域である場合には、Ｓ４０６へ処理を進め、データの書き込み先がミラーリング領域ではない場合には、Ｓ４０７へ処理を進める。
【００４２】
Ｓ４０６で、ＣＰＵ１２１は、記憶装置１０１，１０２の両方における、書き込み命令で指定された書き込み先アドレス（対象アドレス）へ、当該書き込み命令で指定されたデータを書き込む。一方、Ｓ４０７で、ＣＰＵ１２１は、優先記憶装置に設定された記憶装置１０１のみに対してデータの書き込みを行う。具体的には、ＣＰＵ１２１は、記憶装置１０１における、書き込み命令で指定された書き込み先アドレスへ、当該書き込み命令で指定されたデータを書き込む。
【００４３】
その後Ｓ４０８で、ＣＰＵ１２１は、Ｓ４０６又はＳ４０７におけるデータの書き込み処理が正常に終了したか否かを判定する。ＣＰＵ１２１は、データの書き込み処理が正常に終了した場合には、処理を終了し、正常に終了しなかった場合には、Ｓ４０９へ処理を進める。Ｓ４０９で、ＣＰＵ１２１は、図５及び図６を用いて説明するエラーリカバリ処理を実行する。
【００４４】
＜エラーリカバリ処理＞
図５は、Ｓ４０９のエラーリカバリ処理の具体的な手順を示すフローチャートである。また、図６は、図４及び図５に示す手順に対応するシーケンス図であり、優先記憶装置（記憶装置１０１）に故障が発生する場合のシーケンスの例を示している。
【００４５】
図６のＳ６０１はＳ４０１に対応する。Ｓ６０２で、ミラーリング装置１００のＣＰＵ１２１は、ホストＣＰＵ１１からデータの書き込み命令を受信する。ここでは、非ミラーリング領域に対応するアドレス範囲３４２に含まれるアドレスを書き込み先アドレスとして指定した書き込み命令（即ち、ミラーリング対象ではないデータの書き込み命令）を受信した場合（Ｓ４０５で「ＮＯ」）について説明する。この場合、Ｓ６０２はＳ４０７に対応する。Ｓ６０２で、ＣＰＵ１２１は、優先記憶装置である記憶装置１０１に対して書き込みコマンドを発行することで、記憶装置１０１の書き込み先アドレスへのデータの書き込みを行う。
【００４６】
Ｓ６０３で、ＣＰＵ１２１は、記憶装置１０１からの応答を待ち受ける。ＣＰＵ１２１は、当該応答を受信できなかったか、又は記憶装置１０１からエラーの発生を示す応答を受信したことで、記憶装置１０１の故障（エラー）を検出すると（Ｓ４０８で「ＮＯ」）、エラーリカバリ処理を開始する。
【００４７】
まずＳ５０１で、ＣＰＵ１２１は、ミラーリング装置１００の動作状態を、記憶装置１０１，１０２の両方を用いてミラーリング動作を行うミラーリング状態から、一方の記憶装置のみを用いて動作するデグレード状態に変更する。本例では、ＣＰＵ１２１は、記憶装置１０１に故障が発生したため、記憶装置１０２のみを用いて動作するデグレード状態へ移行し、記憶装置１０１の交換が完了するまでの間、記憶装置１０１にはアクセスを行わないようにする。
【００４８】
次にＳ５０２で、ＣＰＵ１２１は、優先記憶装置の再設定を行う。具体的には、優先記憶装置の設定を、記憶装置１０１から、デグレード状態で使用する記憶装置１０２に切り替えて、当該設定を示す設定情報をＲＯＭ１２２に保存し、Ｓ５０３へ処理を進める。
【００４９】
Ｓ５０３で、ＣＰＵ１２１は、ホストＣＰＵ１１に対して、Ｓ６０１における、書き込み命令に対する応答として、当該書き込み命令に従った、優先記憶装置へのデータの書き込みにエラーが発生したことを示す通知を送信する。ホストＣＰＵ１１は、ＣＰＵ１２１（ミラーリング装置１００）からのＳ５０３の通知に応じて、優先記憶装置の非ミラーリング領域を再び使用可能にするために、当該非ミラーリング領域のフォーマットをミラーリング装置１００へ指示する。Ｓ５０４で、ＣＰＵ１２１は、ホストＣＰＵ１１からの当該指示を受信する。
【００５０】
Ｓ５０５で、ＣＰＵ１２１は、Ｓ５０４におけるホストＣＰＵ１１からの指示に従って、優先記憶装置において非ミラーリング領域として使用される一部の領域（本例では、図３の非ミラーリング領域３１２）のフォーマットを行う。これにより、当該一部の領域を、優先記憶装置において非ミラーリング領域として使用可能にする。このように、ＣＰＵ１２１は、優先記憶装置に設定された一方の記憶装置１０１の故障を検出すると、当該優先記憶装置の設定を他方の記憶装置１０２に切り替えて、記憶装置１０２の一部の領域（非ミラーリング領域３１２）のフォーマットを行う。
【００５１】
ＣＰＵ１２１は、非ミラーリング領域３１２のフォーマットが正常の終了したことが記憶装置１０２から通知されると、Ｓ５０６で、ホストＣＰＵ１１に対して、フォーマット完了を通知し、処理を終了する。これ以降、ホストＣＰＵ１１は、記憶装置１０１に故障が発生する前と同様に、記憶装置へのデータの書き込み命令を、アドレスの指定によりミラーリング装置１００に対して行うことが可能である。即ち、一時的なデータ等の、非ミラーリング領域に格納すべきデータについても、それまでと同様に、アドレスを指定して書き込み命令を行うことが可能であり、システムの動作を継続することが可能である。
【００５２】
以上説明したように、本実施形態では、ＭＦＰ１は、ミラーリング対象のデータを格納するためのミラーリング領域３０１，３０２が設けられた記憶装置１０１，１０２を備える。優先記憶装置に設定された記憶装置１０１には、ラーリング対象ではないデータを格納するための非ミラーリング領域が設けられる。ミラーリング装置１００は、ミラーリング対象のデータを記憶装置１０１，１０２の両方に書き込み、ミラーリング対象ではないデータを優先記憶装置（記憶装置１０１）に書き込むように、記憶装置１０１，１０２へのアクセスを行う。ミラーリング装置１００は、記憶装置１０１，１０２のうち、優先記憶装置に設定された一方の記憶装置１０１の故障を検出すると、他方の記憶装置１０２の記憶領域におけるミラーリング領域以外の一部の領域の初期化（フォーマット）を行う。これにより、当該一部の領域を非ミラーリング領域として使用可能にする。
【００５３】
このようにフォーマットが行われた非ミラーリング領域には、ホストＣＰＵ１１からのデータの書き込み又は読み出し命令に従ってミラーリング装置１００がアクセスを行うことが可能である。したがって、本実施形態によれば、複数の記憶装置を用いてミラーリングを行うＭＦＰ１において、非ミラーリング領域が設けられた記憶装置が故障した場合にもシステムの動作を継続することが可能になる。
【００５４】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５５】
１：画像形成装置（ＭＦＰ）、２：コントローラ、３：操作部、４：プリンタ部、５：スキャナ部、１１：ホストＣＰＵ、１００：ミラーリング装置、１０１，１０２：記憶装置、１２１：ＣＰＵ
【図１】
2019212026.tif 000003
【図２】
2019212026.tif 000004
【図３】
2019212026.tif 000005
【図４】
2019212026.tif 000006
【図５】
2019212026.tif 000007
【図６】
2019212026.tif 000008