(57)【要約】      （修正有）【課題】半導体メモリで構成された記憶装置（ＳＳＤ）に対してミラーリングのためにリビルド処理を行う場合に、ＳＳＤにコピーされたデータの保持期間をより長くする技術を提供する。【解決手段】ＲＡＩＤコントローラ２５１は、リビルド処理の対象である記憶装置ＢがＳＳＤである場合、リビルド処理において、記憶装置Ａに格納されたデータのうち、画像形成装置１０のシステムデータ以外のデータを記憶装置Ｂにコピーした後に、当該システムデータを記憶装置Ｂへコピーする。これにより、記憶装置Ｂ（ＳＳＤ）内のフラッシュメモリの温度が高くなってから、システムデータが記憶装置Ａから記憶装置Ｂへコピーされる。【選択図】図１
2019020846.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１記憶装置と、
前記第１記憶装置との間でデータのミラーリングが行われる第２記憶装置と、
前記第１記憶装置に格納されたデータを前記第２記憶装置にコピーすることによって前記第２記憶装置のリビルド処理を行う制御手段と、を備え、
前記制御手段は、前記第２記憶装置が半導体メモリで構成された第１タイプの記憶装置であれば、前記リビルド処理において、前記第１記憶装置に格納されたデータのうち、前記情報処理装置のシステムデータ以外のデータを前記第２記憶装置にコピーした後に、前記システムデータを前記第２記憶装置へコピーする
ことを特徴とする情報処理装置。
【請求項２】
前記システムデータは、前記第１記憶装置の記憶領域における先頭部の領域に格納されており、
前記制御手段は、前記第２記憶装置が前記第１タイプの記憶装置であれば、前記第１記憶装置の記憶領域における最後部の領域から前記先頭部の領域まで順に、各領域に格納されているデータを前記第２記憶装置へコピーする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記第２記憶装置が前記第１タイプの記憶装置であれば、
前記第１記憶装置の記憶領域における前記最後部の領域から前記先頭部の領域まで順に、各領域に格納されているデータを読み出し、
前記第１記憶装置から順に読み出したデータを、前記第２記憶装置の記憶領域における前記先頭部の領域から前記最後部の領域まで順に書き込む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、
前記リビルド処理が完了した後に、同じデータが格納される前記第１記憶装置の領域と前記第２記憶装置の領域とにそれぞれ割り当てられたアドレスの対応関係を示し、前記第１記憶装置に対して使用されるアドレスを、前記第２記憶装置に対して使用されるアドレスに変換するための変換テーブルを生成し、
前記変換テーブルに基づいて、前記第１記憶装置に対して使用されるアドレスによる前記第２記憶装置へのアクセス制御を行う
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記第２記憶装置が磁気ディスクで構成された第２タイプの記憶装置であれば、
前記第１記憶装置の記憶領域における前記先頭部の領域から前記最後部の領域まで順に、各領域に格納されているデータを読み出し、
前記第１記憶装置から順に読み出したデータを、前記第２記憶装置の記憶領域における前記先頭部の領域から前記最後部の領域まで順に書き込む
ことを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記第２記憶装置が前記第１タイプの記憶装置であれば、
前記第１記憶装置の記憶領域における前記最後部の領域から前記先頭部の領域まで順に、各領域に格納されているデータを読み出し、
前記第１記憶装置から順に読み出したデータを、前記第２記憶装置の記憶領域における前記最後部の領域から前記先頭部の領域まで順に書き込む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記制御手段は、前記第２記憶装置が前記第１タイプの記憶装置であれば、前記第１記憶装置に格納された全データを前記第２記憶装置へコピーした後、前記第１記憶装置に格納された全データを前記第２記憶装置へ再度コピーする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記制御手段は、前記第２記憶装置が前記第１タイプの記憶装置であれば、前記第１記憶装置に格納された全データを前記第２記憶装置へコピーした後、前記第１記憶装置に格納された前記システムデータを前記第２記憶装置へ再度コピーする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記制御手段は、前記第２記憶装置から装置情報を取得し、当該装置情報に基づいて、前記第２記憶装置が前記第１タイプの記憶装置であるか磁気ディスクで構成された第２タイプの記憶装置であるかを判定する
ことを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
第１記憶装置と、前記第１記憶装置との間でデータのミラーリングが行われる第２記憶装置と、を備える情報処理装置の制御方法であって、
前記第１記憶装置に格納されたデータを前記第２記憶装置にコピーすることによって前記第２記憶装置のリビルド処理を行う制御工程を有し、
前記制御工程では、前記第２記憶装置が半導体メモリで構成された第１タイプの記憶装置であれば、前記リビルド処理において、前記第１記憶装置に格納されたデータのうち、前記情報処理装置のシステムデータ以外のデータを前記第２記憶装置にコピーした後に、前記システムデータを前記第２記憶装置へコピーする
ことを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項１０に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置等の情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
記憶装置に保存されるデータの信頼性の向上のために、２台のストレージ内に同じデータを保持することによってデータの信頼性を向上させるＲＡＩＤ１（ミラーリング）システムを備える画像形成装置が知られている（例えば、特許文献１）。ミラーリングシステムでは、１台のストレージが故障した場合、故障したストレージを新しいストレージに交換することにより、データを復旧することが可能である。
【０００３】
また、ミラーリングシステムは、２つのストレージの一方をマスターに設定し、他方をスレーブに設定し、データのライト（書き込み）及びリード（読み出し）を制御する。具体的には、ミラーリングシステムは、マスター及びスレーブのストレージの両方にデータのライトを行って、２つのストレージ内に同じデータを保持しながら、一方のストレージからデータのリードを行う。スレーブ側へ新たなストレージを接続（増設）した場合、２つのストレージに同じデータを保持させるために、マスターストレージからスレーブストレージへデータをコピーする処理（リビルド処理）が行われる。
【０００４】
上述のようなミラーリングシステムでは、各ストレージとして、ＨＤＤが使用されるだけでなく、近年ではＳＳＤが使用される場合がある。一般に、ＳＳＤは、フラッシュメモリ（半導体メモリ）で構成されるため、ＨＤＤよりも高いデータ転送速度を有するものの、データの書き換え回数及び保持期間に制限がある。特許文献２では、ＳＳＤのデータの書き換え回数の制限に対処するために、マスターに設定されたＳＳＤのデータ書き換え回数に基づいて、ＳＳＤをスレーブに変更し、ＨＤＤをマスターに変更することで、ミラーリング制御の信頼性を向上させている。
【０００５】
また、ＳＳＤでは、一定時間アクセスが行われないことで、データの保持期間の制限に起因してデータが消失することを防ぐために、ＳＳＤのリフレッシュ動作を行う必要がある。ＳＳＤにおいてデータが消失せずに保持される保持期間は、データの書き込み時及び電源ＯＦＦ時における、ＳＳＤ内部のフラッシュメモリの温度に依存して変化することが知られている。具体的には、データの書き込み時のフラッシュメモリの温度が高いほど、保持期間が長くなり、電源ＯＦＦ時のフラッシュメモリの温度が低いほど、保持期間が長くなる（非特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２５２４５１号公報
【特許文献２】特開２０１２−７９１００号公報
【非特許文献】
【０００７】
【非特許文献１】"SOLID STATE DRIVE (SSD) REQUIREMENTS AND ENDURANCE TEST METHOD", JEDEC JESD218B.01
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＳＳＤを使用するミラーリングシステムにおいて、スレーブ側に接続されたＳＳＤに対してリビルド処理を行う際に、内部のフラッシュメモリの温度が低いときにデータのコピー（ライト）を行うと、ＳＳＤによるデータの保持期間が短くなる。その結果、ＳＳＤへのデータのコピーの完了後に、例えば、当該ＳＳＤが搭載された画像形成装置等の情報処理装置において電源ＯＦＦ状態が継続すると、短い期間でデータが消失してしまう可能性がある。システムデータ等の、長期間保持されることが望ましいデータについては、短期間のうちに消失することを防ぐ必要がある。
【０００９】
本発明は、上述の問題に鑑みて成されたものである。本発明は、半導体メモリで構成された記憶装置（ＳＳＤ）に対してミラーリングのためにリビルド処理を行う場合に、ＳＳＤにコピーされたデータの保持期間をより長くする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る情報処理装置は、第１記憶装置と、前記第１記憶装置との間でデータのミラーリングが行われる第２記憶装置と、前記第１記憶装置に格納されたデータを前記第２記憶装置にコピーすることによって前記第２記憶装置のリビルド処理を行う制御手段と、を備え、前記制御手段は、前記第２記憶装置が半導体メモリで構成された第１タイプの記憶装置であれば、前記リビルド処理において、前記第１記憶装置に格納されたデータのうち、前記情報処理装置のシステムデータ以外のデータを前記第２記憶装置にコピーした後に、前記システムデータを前記第２記憶装置へコピーすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、半導体メモリで構成された記憶装置（ＳＳＤ）に対してミラーリングのためにリビルド処理を行う場合に、ＳＳＤにコピーされたデータの保持期間をより長くすることが可能になる。
【図面の簡単な説明】
【００１２】
【図１】画像形成装置１０及びＲＡＩＤ部２５０の概略的な構成例を示すブロック図
【図２】ＲＡＩＤコントローラ２５１の状態遷移の例を示す図
【図３】ストレージのリビルド処理の手順を示すフローチャート（実施例１，４）
【図４】記憶装置間におけるデータのコピーの例を示す概念図（実施例１，４）
【図５】アドレス変換テーブルの例を示す図（実施例１，４）
【図６】ストレージのリビルド処理の手順を示すフローチャート（実施例２）
【図７】画像形成装置１０概略的な構成例を示すブロック図（実施例３）
【図８】ストレージのリビルド処理の手順を示すフローチャート（実施例３）
【発明を実施するための形態】
【００１３】
以下では、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１４】
＜画像形成装置＞
図１（Ａ）は、画像形成装置１０の概略的なハードウェア構成例を示すブロック図である。画像形成装置１０は、本発明の情報処理装置の一例である。なお、画像形成装置１０は、後述するようなミラーリングシステムを搭載していれば、例えば、印刷装置、プリンタ、複写機、複合機（ＭＦＰ）、及びファクシミリ装置のいずれとして構成されてもよい。画像形成装置１０は、コントローラ部２００と、コントローラ部２００と接続されたスキャナ部３００、プリンタ部４００、及び操作部５００とを備える。コントローラ部２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＬＡＮコントローラ２０４、電源制御部２０５、画像処理部２０６、及びＲＡＩＤ部２５０を備える。コントローラ部２００は、ＲＡＩＤ部２５０に接続されたストレージとして、記憶装置Ａ（２０８）及び記憶装置Ｂ（２０９）を備える。
【００１５】
電源制御部２０５は、電源から画像形成装置１０内の各デバイスへの電力の供給状態を制御する。ＣＰＵ２０１は、電源制御部２０５により電源が投入されると、ブートプログラムをＲＯＭ２０３から読み出して実行することにより、画像形成装置１０の起動処理を行う。また、ＣＰＵ２０１は、ＲＡＩＤ部２５０に接続された記憶装置Ａから制御プログラム又はアプリケーションプログラム等の各種プログラムをＲＡＭ２０２に展開して実行することにより、画像形成装置１０の各種機能を実現する。
【００１６】
ＬＡＮコントローラ２０４は、ＬＡＮ等のネットワークに接続されており、ネットワークを介してＰＣ等の外部装置と通信する。ＣＰＵ２０１は、例えば、ＬＡＮコントローラ２０４を介して外部装置からプリントデータ等の各種データを受信できる。なお、画像形成装置１０は、外部装置と無線通信（無線ＬＡＮ通信等）を行うための無線通信インタフェース（Ｉ／Ｆ）を備えていてもよい。
【００１７】
スキャナ部３００は、原稿の画像を読み取って画像データを生成する。スキャナ部３００は、生成した画像データを、スキャナＩ／Ｆ２１１を介してシステムバス２１０へ送信する。プリンタ部４００は、システムバス２１０を介して受信した画像データに基づいてプリント処理を行う。操作部５００は、ＣＰＵ２０１からの指示に従って操作画面を表示し、また、ユーザから受け付けた指示をＣＰＵ２０１へ通知する。
【００１８】
ＣＰＵ２０１は、ＬＡＮコントローラ２０４によって外部装置から印刷データが受信されると、受信した印刷データを、ＲＡＭ２０２を経由して記憶装置Ａに一時的に保存する。更に、ＣＰＵ２０１は、画像処理部２０６によって当該印刷データに対する画像処理が行われた後、当該印刷データをプリンタ部４００へ送信することにより、プリンタ部４００にプリント処理を実行させる。また、ＣＰＵ２０１は、コピー機能を実現する場合には、スキャナ部３００によって生成された画像データをプリンタ部４００へ送信することにより、プリンタ部４００にプリント処理を実行させる。
【００１９】
ＲＡＩＤ部２５０には、画像形成装置１０において二次記憶装置（補助記憶装置）として使用される、少なくとも１台の不揮発性のストレージが接続される。図１は、画像形成装置１０が、記憶装置Ａ及び記憶装置Ｂの、２台のストレージを備える例を示している。記憶装置Ａは、ＲＡＩＤ部２５０のチャネルＡに接続されるストレージであり、記憶装置Ｂは、ＲＡＩＤ部２５０のチャネルＢに接続されるストレージである。本実施形態では、記憶装置Ａ及び記憶装置Ｂのそれぞれは、ＨＤＤ（ハードディスクドライブ）又はＳＳＤ（ソリッドステートドライブ）である。なお、ＳＳＤは、半導体メモリで構成された第１タイプの記憶装置の一例であり、ＨＤＤは、磁気ディスクで構成された第２タイプの記憶装置の一例である。画像形成装置１０のシステムの起動に必要なシステムデータは、記憶装置Ａ及び記憶装置Ｂのうちの一方に格納される。システムデータが格納された記憶装置がＲＡＩＤ部２５０に接続されると、当該システムデータに基づいて、画像形成装置１０のシステムが起動可能になる。
【００２０】
ＲＡＩＤ部２５０と、ＲＡＩＤ部２５０に接続されたストレージ（図１では記憶装置Ａ及び記憶装置Ｂ）は、ＲＡＩＤ１（ミラーリング）システムを構成する。ＲＡＩＤ１は、２台以上のストレージに同じデータを保持させることにより、１台のストレージが故障した場合でも、故障したストレージに格納されていたデータの復旧を可能にする技術である。ＲＡＩＤ部２５０は、ミラーリング制御を行う。図１の構成では、ＲＡＩＤ部２５０がミラーリング制御を行うことにより、システムバス２１０側（ＣＰＵ２０１側）では、複数台のストレージがあたかも１台のストレージであるかのように認識される。なお、後述する実施例３及び４のように、ＣＰＵ２０１がミラーリング制御を行う構成を採用することも可能である。
【００２１】
ＲＡＩＤ部２５０が、ミラーリング制御を行う場合、記憶装置Ａ及び記憶装置Ｂのうちの一方がマスターに設定され、他方がスレーブに設定される。ミラーリング制御において、ＲＡＩＤ部２５０は、データのライトを行う場合には、マスターストレージ及びスレーブストレージの両方にデータを書き込み、データのリードを行う場合には、マスターストレージからデータの読み出しを行う。なお、マスターストレージはチャネルＡ及びＢのいずれのチャネルに接続されてもよいが、本実施形態ではチャネルＡにマスターストレージが接続される場合を想定する。また、ＲＡＩＤ部２５０は、後述するように、スレーブストレージの増設又は故障したストレージの交換が行われる際に、新たに接続されたストレージのリビルド処理を制御する。
【００２２】
＜ＲＡＩＤ部＞
図１（Ｂ）は、ＲＡＩＤ部２５０の構成例を示すブロック図である。ＲＡＩＤ部２５０は、ＲＡＩＤコントローラ２５１、フォーマット管理部２５２、アドレス変換部２５３、及び状態保持部２５４を備える。ＲＡＩＤコントローラ２５１は、フォーマット管理部２５２、アドレス変換部２５３、及び状態保持部２５４を使用して、ＲＡＩＤ部２５０に接続された記憶装置Ａ及び記憶装置Ｂ間でミラーリング（ＲＡＩＤ１）を行う。ＲＡＩＤコントローラ２５１は、システムバス２１０を介してＣＰＵ２０１からコマンド（命令）を受信し、受信したコマンドに従って、ミラーリングのための処理を実行する。なお、チャネルＡに記憶装置Ａが接続され、チャネルＢに記憶装置Ｂが未接続である場合は、ＲＡＩＤコントローラ２５１は、ＣＰＵ２０１から受信したコマンドを、そのまま記憶装置Ａに送信する。
【００２３】
フォーマット管理部２５２は、記憶装置Ａ及び記憶装置Ｂのそれぞれの記憶領域におけるパーティション構成を示す管理情報を保持している。状態保持部２５４は、ＲＡＩＤコントローラ２５１、フォーマット管理部２５２、アドレス変換部２５３、及び状態保持部２５４の初期値を保持している。状態保持部２５４は、更に、ＲＡＩＤコントローラ２５１に接続された各記憶装置のタイプ（ＨＤＤ又はＳＳＤ）、及び接続された記憶装置の台数を保持している。
【００２４】
ＲＡＩＤコントローラ２５１は、ミラーリングを行う際、マスターストレージ（記憶装置Ａ）のＩＤ、及び当該マスターストレージの記憶領域におけるアクセス対象の領域を示すＬＢＡ（Logical Block Addressing）値を、アドレス変換部２５３へ送る。アドレス変換部２５３は、フォーマット管理部２５２及び状態保持部２５４が保持している情報に基づいて、スレーブストレージ（記憶装置Ｂ）の記憶領域におけるアクセス対象の領域を示すＬＢＡ値を取得する。即ち、アドレス変換部２５３は、マスターストレージ（記憶装置Ａ）のＬＢＡ値を、スレーブストレージ（記憶装置Ｂ）の、対応するＬＢＡ値に変換する。アドレス変換部２５３は、取得したＬＢＡ値をＲＡＩＤコントローラ２５１へ送る。これにより、ＲＡＩＤコントローラ２５１は、マスターストレージにおけるアクセス対象の記憶領域と、それに対応する、スレーブストレージにおける記憶領域とにアクセスし、ミラーリングを行うことが可能になる。
【００２５】
＜ＲＡＩＤコントローラの状態遷移＞
図２は、ＲＡＩＤコントローラ２５１の状態遷移の例を示す図である。ＲＡＩＤコントローラ２５１は、シングルモード及びミラーリングモードの、２つの動作モードを有する。シングルモードは、１台のストレージのみを使用する動作モードである。ミラーリングモードは、２台以上のストレージを使用する動作モードである。
【００２６】
シングルモードでは、記憶装置Ａ及び記憶装置ＢのいずれかがＲＡＩＤ部２５０（ＲＡＩＤコントローラ２５１）に接続される。ミラーリングモードでは、ＲＡＩＤコントローラ２５１は、先に接続されていた記憶装置をマスターに設定し、後から追加された記憶装置をスレーブに設定する。例えば、シングルモードにおいて記憶装置Ａが接続されている場合、ＲＡＩＤコントローラ２５１は、シングルモードからミラーリングモードへ移行する際に、記憶装置Ａをマスターに設定する。ＲＡＩＤコントローラ２５１は、記憶装置Ｂが追加で接続されると、記憶装置Ｂをスレーブに設定する。
【００２７】
ミラーリングモードには、ミラーステート、デグレードステート、リビルドステート、及びホールトステートの、４つの状態（ステート）が存在する。シングルモードにおいて１台のストレージが追加で接続されると、ＲＡＩＤコントローラ２５１は、当該ストレージをスレーブに設定し、ミラーリングモードのリビルドステートへ移行する（３０１）。
【００２８】
リビルドステートは、ＲＡＩＤコントローラ２５１がマスターストレージのみを使用して動作している状態であり、かつ、マスターストレージからスレーブストレージへのデータのコピー（スレーブストレージのリビルド処理）を行っている状態である。リビルドステートにおいてリビルド処理が完了すると、ＲＡＩＤコントローラ２５１は、ミラーステートへ移行する（３０２）。また、ＲＡＩＤコントローラ２５１は、リビルドステートにおいてスレーブストレージが故障した場合、デグレードステートへ移行し（３０３）、リビルドステートにおいてマスターストレージが故障した場合、ホールトステートへ移行する（３０４）。
【００２９】
ミラーステートは、ＲＡＩＤコントローラ２５１が２台のストレージ（マスターストレージ及びスレーブストレージ）を使用して正常に動作している（即ち、２台のストレージ間でミラーリングを行う）状態である。ＲＡＩＤコントローラ２５１は、ミラーステートでは、読み出しはマスターストレージのみに対して行い、書き込みはマスターストレージ及びスレーブストレージの両方に対して行う。ミラーステートにおいて２台のストレージのうちの一方のストレージが故障すると、ＲＡＩＤコントローラ２５１は、デグレードステートへ移行する（３０５）。また、ミラーステートにおいて、リビルドステートへの移行命令をＣＰＵ２０１から受信すると、ＲＡＩＤコントローラ２５１は、リビルドステートへ移行する（３０６）。
【００３０】
デグレードステートは、ＲＡＩＤコントローラ２５１が、故障していないストレージのみを使用して動作している状態であり、故障したストレージへのアクセスが発生しない状態である。デグレードステートにおいて使用中のストレージが故障すると（即ち、２台のストレージの両方が故障した状態になると）、ＲＡＩＤコントローラ２５１は、ホールトステートへ移行する（３０７）。また、デグレードステートにおいて、リビルドステートへの移行命令をＣＰＵ２０１から受信すると、ＲＡＩＤコントローラ２５１は、リビルドステートへ移行する（３０８）。例えば、故障したストレージが新しいストレージに交換された後に、ＣＰＵ２０１からＲＡＩＤコントローラ２５１に対してリビルドステートへの移行命令が送信される。
【００３１】
ホールトステートは、２台のストレージの両方が故障したことにより、ＲＡＩＤコントローラ２５１がミラーリングを継続できなくなった状態である。なお、ＲＡＩＤコントローラ２５１は、ミラーリングモードの４つの状態の何れにおいても、シングルモードへの移行指示をユーザから受け付けると、ミラーリングモードからシングルモードへ移行する（３０９）。
【００３２】
＜スレーブストレージのリビルド処理＞
上述のように、画像形成装置１０は、記憶装置Ａ（第１記憶装置）に加えて、記憶装置Ｂ（第２記憶装置）が接続（増設）されることにより、記憶装置Ａと記憶装置Ｂとの間でデータのミラーリングが行われる。以下では、記憶装置Ａがマスターストレージとして設定され、記憶装置Ｂがスレーブストレージとして設定される場合を例として、記憶装置Ｂが接続（増設）された際に実行されるリビルド処理について説明する。リビルド処理は、以下の実施例１及び２では、ＲＡＩＤコントローラ２５１によって実行される。なお、実施例３及び４のように、ＲＡＩＤ部２５０が設けられていない場合には、ＣＰＵ２０１によって実行されうる。即ち、ＲＡＩＤコントローラ２５１又はＣＰＵ２０１は、記憶装置Ａに格納されたデータを記憶装置Ｂにコピーすることによって記憶装置Ｂのリビルド処理を行う制御手段の一例として機能する。
【００３３】
リビルド処理の対象となる記憶装置ＢがＳＳＤである場合、上述のように、ＳＳＤ内部のフラッシュメモリの温度が低いときにデータの書き込みを行うと、ＳＳＤによるデータの保持期間が短くなる。一方、ＳＳＤへのデータの書き込み時におけるフラッシュメモリの温度が高いほど、データの保持期間が長くなる。このため、ＳＳＤによって長期間保持されるべき（例えば、書き換え頻度の少ない）データは、ＳＳＤ内のフラッシュメモリの温度が自己昇温により高くなってからＳＳＤへコピーされることが望まれる。ここで、画像形成装置１０においては、記憶装置Ａのシステム領域に格納された、画像形成装置１０のシステムデータは、長期間保持されるべきデータに相当する。このシステムデータには、例えば、システムの起動に必要な起動データ、及びシステムによって使用されるデータ等のシステム関連データが含まれる。
【００３４】
そこで、本実施形態では、記憶装置Ａに格納されたデータのうち、画像形成装置１０のシステムデータを、リビルド処理の開始後、できるだけ遅いタイミングに記憶装置Ｂ（ＳＳＤ）へコピーするよう、リビルド処理を制御する。具体的には、記憶装置ＢがＳＳＤであれば、リビルド処理において、記憶装置Ａに格納されたデータのうち、画像形成装置１０のシステムデータ以外のデータを記憶装置Ｂにコピーした後に、当該システムデータを記憶装置Ｂへコピーする。即ち、記憶装置Ａから記憶装置Ｂへコピーされるデータのうち、システムデータを他のデータよりも遅いタイミング（例えば最後に）コピーする。これにより、画像形成装置１０の起動後に実行されるリビルド処理において、記憶装置Ｂ（ＳＳＤ）内のフラッシュメモリの温度が高くなってから、システムデータを記憶装置Ａから記憶装置Ｂへコピーすることが可能になる。その結果、例えば画像形成装置１０において電源ＯＦＦ状態が継続するような状況が生じても、短い期間でシステムデータが記憶装置Ｂから消失することを防止できる。
【００３５】
以下、上述のリビルド処理の具体例として実施例１〜４について説明する。なお、記憶装置Ａ及び記憶装置Ｂには、画像形成装置１０のシステムの動作に必要となる一定容量以上の記憶容量を有する記憶装置が使用される。また、各記憶装置では、システムによって全ての容量が必ずしも使用されるのではなく、システムに対して予め設定された一部の容量が使用されうる。
【００３６】
［実施例１］
実施例１では、ＲＡＩＤコントローラ２５１は、記憶装置ＢがＳＳＤであれば、リビルド処理において、記憶装置Ａの記憶領域における最後部の領域から先頭部の領域まで順に、各領域に格納されているデータを記憶装置Ｂへコピーする。これにより、記憶装置Ａに格納されたデータのうちで、記憶装置Ａの記憶領域における先頭部の領域に格納されたシステムデータが最後にコピーされる。したがって、記憶装置Ｂ内のフラッシュメモリの温度が高くなってから、システムデータを記憶装置Ｂへコピーすることが可能になる。
【００３７】
＜リビルド処理の手順＞
図３は、実施例１におけるスレーブストレージ（記憶装置Ｂ）のリビルド処理の手順を示すフローチャートである。図３の各ステップの処理は、ＣＰＵ２０１による制御下でＲＡＩＤコントローラ２５１によって実行される。画像形成装置１０が起動すると、ＲＡＩＤコントローラ２５１は、図３の手順による処理を実行する。
【００３８】
まず、ＲＡＩＤコントローラ２５１は、Ｓ１０１で、記憶装置ＢとしてＲＡＩＤ部２５０部に新たに接続されたストレージを探索し、Ｓ１０２で、新しいストレージが記憶装置Ｂとして接続されたか否かを判定する。ＲＡＩＤコントローラ２５１は、新たなストレージが接続されていない場合には（Ｓ１０２で「ＮＯ」）、図３の手順による処理を終了し、記憶装置Ａを使用して動作するシングルモードへ移行する。一方、ＲＡＩＤコントローラ２５１は、新たなストレージが接続された場合には（Ｓ１０２で「ＹＥＳ」）、処理をＳ１０３へ進める。
【００３９】
Ｓ１０３で、ＲＡＩＤコントローラ２５１は、ＩＤＥＮＴＩＦＹ ＤＥＶＩＣＥコマンドを記憶装置Ａ及び記憶装置Ｂに対してそれぞれ発行する。これにより、ＲＡＩＤコントローラ２５１は、ＩＤＥＮＴＩＦＹ ＤＥＶＩＣＥコマンドに対する応答を各記憶装置から受信し、当該応答から各記憶装置の装置情報を取得する。装置情報には、例えば、対応する記憶装置における最大ＬＢＡ値及び回転数情報が含まれる。
【００４０】
次にＳ１０４で、ＲＡＩＤコントローラ２５１は、記憶装置Ｂのリビルド処理用に、記憶装置Ａ及び記憶装置Ｂにそれぞれ対応する変数Ｌ＿ａ，Ｌ＿ｂを（状態保持部２５４に）作成する。変数Ｌ＿ａ，Ｌ＿ｂは、ＬＢＡ値を保持するために使用される。また、Ｓ１０５で、ＲＡＩＤコントローラ２５１は、記憶装置Ａ及び記憶装置Ｂにそれぞれ対応する変数Ｌ＿ｍａｘ＿ａ，Ｌ＿ｍａｘ＿ｂを（状態保持部２５４に）作成する。更に、ＲＡＩＤコントローラ２５１は、Ｓ１０３で取得した装置情報に基づいて、記憶装置Ａの最大ＬＢＡ値を、変数Ｌ＿ｍａｘ＿ａに設定（代入）し、記憶装置Ｂの最大ＬＢＡ値を、変数Ｌ＿ｍａｘ＿ｂに設定（代入）する。
【００４１】
その後、Ｓ１０６で、ＲＡＩＤコントローラ２５１は、Ｓ１０３で取得した装置情報に基づいて、記憶装置Ｂのタイプを判定する。例えば、装置情報に含まれる回転数情報が所定の回転数を示す場合には、記憶装置ＢはＨＤＤ（磁気ディスクで構成された第２タイプの記憶装置）であると判定できる。また、装置情報に含まれる回転数情報が回転しないメディアを示す場合には、記憶装置ＢはＳＳＤ（半導体メモリで構成された第１タイプの記憶装置）であると判定できる。ＲＡＩＤコントローラ２５１は、記憶装置ＢがＳＳＤであるか否かを判定し、記憶装置ＢがＳＳＤである場合には（Ｓ１０６で「ＹＥＳ」）、Ｓ１０７へ処理を進め、記憶装置ＢがＨＤＤである場合には（Ｓ１０６で「ＮＯ」）、Ｓ１０７へ処理を進める。
【００４２】
なお、記憶装置Ｂのタイプは、記憶装置Ｂから当該記憶装置のＳＭＡＲＴ（Self Monitoring Analysis And Reporting Technology）情報を取得し、取得した情報に基づいて判定されてもよい。あるいは、記憶装置Ｂのタイプは、画像形成装置１０に予め登録されている、記憶装置の型名又は型番等の情報に基づいて判定されてもよい。
【００４３】
（記憶装置ＢがＳＳＤである場合）
記憶装置ＢがＳＳＤである場合、Ｓ１０７で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａ，Ｌ＿ｂを以下のように更新し、処理をＳ１０８へ進める。
Ｌ＿ａ＝Ｌ＿ｍａｘ＿ａ
Ｌ＿ｂ＝０
これにより、変数Ｌ＿ａには、記憶装置Ａの最大ＬＢＡ値が設定され、変数Ｌ＿ｂには、記憶装置Ｂの最小ＬＢＡ値（即ち、０）が設定される。最小ＬＢＡ値は、各記憶装置の記憶領域における先頭部の領域に対応し、当該先頭部の領域に割り当てられたアドレスである。最大ＬＢＡ値は、各記憶装置の記憶領域における最後部の領域に対応し、当該最後部の領域に割り当てられたアドレスである。
【００４４】
Ｓ１０８で、ＲＡＩＤコントローラ２５１は、記憶装置Ａにおける、変数Ｌ＿ａ（ＬＢＡ値）に対応する領域に格納されているデータを、記憶装置Ｂにおける、変数Ｌ＿ｂ（ＬＢＡ値）に対応する領域にコピーする。このように、変数Ｌ＿ａは、記憶領域Ａにおける、データのコピー元の領域に対応するＬＢＡ値を示し、変数Ｌ＿ｂは、記憶領域Ｂにおける、データのコピー先の領域に対応するＬＢＡ値を示す。
【００４５】
その後、Ｓ１０９で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａが０と等しい（Ｌ＿ａが最小ＬＢＡ値である）か否かを判定し、Ｌ＿ａが０と等しくない場合には、処理をＳ１１０へ進める。Ｓ１１０で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａ，Ｌ＿ｂを以下のように更新する。
Ｌ＿ａ＝Ｌ＿ａ−１
Ｌ＿ｂ＝Ｌ＿ｂ＋１
即ち、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａを１減少させ、変数Ｌ＿ｂを１増加させる。この処理により、記憶装置Ａにおけるコピー元の領域が、最大ＬＢＡ値に対応する領域から、最小ＬＢＡ値に対応する領域まで順に設定されることになる。また、記憶装置Ｂにおけるコピー先の領域が、最小ＬＢＡ値に対応する領域から、最大ＬＢＡ値に対応する領域まで順に設定されることになる。
【００４６】
Ｓ１１０における変数Ｌ＿ａ，Ｌ＿ｂの更新後、ＲＡＩＤコントローラ２５１は、処理をＳ１０８へ戻す。これにより、ＲＡＩＤコントローラ２５１は、記憶領域Ａ及び記憶領域Ｂにおける、変数Ｌ＿ａ，Ｌ＿ｂがそれぞれ示す次の領域を対象として、再び記憶装置Ａから記憶装置Ｂへのデータのコピーを行う。ＲＡＩＤコントローラ２５１は、このようにしてＳ１０８〜Ｓ１１０の処理を繰り返すことにより、記憶装置Ａの記憶領域全体に格納されているデータを、記憶領域Ｂへコピーする。
【００４７】
具体的には、ＲＡＩＤコントローラ２５１は、記憶装置Ａの記憶領域における最大ＬＢＡ値に対応する領域（最後部の領域）から最小ＬＢＡ値に対応する領域（先頭部の領域）まで順に、各領域に格納されているデータを読み出す。更に、ＲＡＩＤコントローラ２５１は、記憶装置Ａから順に読み出したデータを、記憶装置Ｂの記憶領域における最小ＬＢＡ値に対応する領域（先頭部の領域）から最大ＬＢＡ値に対応する領域（最後部の領域）まで順に書き込む。
【００４８】
Ｓ１０９で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａが０と等しい場合（即ち、記憶領域Ａにおける、最小ＬＢＡ値に対応する領域に格納されているデータについての記憶領域Ｂへのコピーが完了した場合）、図３の手順による処理を終了する。その後、ＲＡＩＤコントローラ２５１は、ミラーリングモードのミラーステートへ移行し、記憶装置Ａ及び記憶装置Ｂ間におけるミラーリングを開始する。
【００４９】
なお、リビルド処理が完了すると、ＲＡＩＤコントローラ２５１は、後述するアドレス変換テーブル（図５）を生成し、当該アドレス変換テーブルに基づいて、記憶装置Ａに対して使用されるＬＢＡ値による記憶装置Ｂへのアクセス制御を行う。なお、アドレス変換テーブルは、同じデータが格納される記憶装置Ａの領域と記憶装置Ｂの領域とにそれぞれ割り当てられたＬＢＡ値（アドレス）の対応関係を示す。このアドレス変換テーブルは、記憶装置Ａに対して使用されるＬＢＡ値（アドレス）を、記憶装置Ｂに対して使用されるＬＢＡ値（アドレス）に変換するために用いられる。
【００５０】
（記憶装置ＢがＨＤＤである場合）
記憶装置ＢがＨＤＤである場合、Ｓ１１１で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａ，Ｌ＿ｂを以下のように更新し、処理をＳ１１２へ進める。
Ｌ＿ａ＝０
Ｌ＿ｂ＝０
これにより、変数Ｌ＿ａには、記憶装置Ａの最小ＬＢＡ値（即ち、０）が設定され、変数Ｌ＿ｂには、記憶装置Ｂの最小ＬＢＡ値（即ち、０）が設定される。Ｓ１１２で、ＲＡＩＤコントローラ２５１は、Ｓ１０８と同様、記憶装置Ａにおける、変数Ｌ＿ａ（ＬＢＡ値）に対応する領域に格納されているデータを、記憶装置Ｂにおける、変数Ｌ＿ｂ（ＬＢＡ値）に対応する領域にコピーする。
【００５１】
次にＳ１１３で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａがＬ＿ｍａｘ＿ａと等しい（Ｌ＿ａが最大ＬＢＡ値である）か否かを判定し、Ｌ＿ａがＬ＿ｍａｘ＿ａと等しくない場合には、処理をＳ１１４へ進める。Ｓ１１４で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａ，Ｌ＿ｂを以下のように更新する。
Ｌ＿ａ＝Ｌ＿ａ＋１
Ｌ＿ｂ＝Ｌ＿ｂ＋１
即ち、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａを１減少させ、変数Ｌ＿ｂを１増加させる。この処理により、記憶装置Ａにおけるコピー元の領域が、最小ＬＢＡ値に対応する領域から、最大ＬＢＡ値に対応する領域まで順に設定されることになる。また、記憶装置Ｂにおけるコピー先の領域が、最小ＬＢＡ値に対応する領域から、最大ＬＢＡ値に対応する領域まで順に設定されることになる。
【００５２】
Ｓ１１４における変数Ｌ＿ａ，Ｌ＿ｂの更新後、ＲＡＩＤコントローラ２５１は、処理をＳ１１１へ戻す。これにより、ＲＡＩＤコントローラ２５１は、記憶領域Ａ及び記憶領域Ｂにおける、変数Ｌ＿ａ，Ｌ＿ｂがそれぞれ示す次の領域を対象として、再び記憶装置Ａから記憶装置Ｂへのデータのコピーを行う。ＲＡＩＤコントローラ２５１は、このようにしてＳ１１１〜Ｓ１１４の処理を繰り返すことにより、記憶装置Ａの記憶領域全体に格納されているデータを、記憶領域Ｂへコピーする。
【００５３】
具体的には、ＲＡＩＤコントローラ２５１は、記憶装置ＢがＳＳＤである場合とは逆に、記憶装置Ａの記憶領域における最小ＬＢＡ値に対応する領域から最大ＬＢＡ値に対応する領域まで順に、各領域に格納されているデータを読み出す。更に、ＲＡＩＤコントローラ２５１は、記憶装置Ａから順に読み出したデータを、記憶装置Ｂの記憶領域における最小ＬＢＡ値に対応する領域から最大ＬＢＡ値に対応する領域まで順に書き込む。
【００５４】
Ｓ１１３で、ＲＡＩＤコントローラ２５１は、変数Ｌ＿ａがＬ＿ｍａｘ＿ａと等しい場合（即ち、記憶領域Ａにおける、最大ＬＢＡ値に対応する領域に格納されているデータについての記憶領域Ｂへのコピーが完了した場合）、図３の手順による処理を終了する。その後、ＲＡＩＤコントローラ２５１は、ミラーリングモードのミラーステートへ移行し、記憶装置Ａ及び記憶装置Ｂ間におけるミラーリングを開始する。
【００５５】
＜リビルド処理の例＞
図４（Ａ）は、本実施例のリビルド処理における、記憶装置Ａから記憶装置Ｂへのデータのコピーの例を示す概念図である。本例では、記憶装置ＡがＨＤＤ、記憶装置ＢがＳＳＤである。
【００５６】
記憶装置Ａとして使用されているＨＤＤは、一般に、プラッタと称される円盤状の磁気ディスクを備え、当該ディスクがＨＤＤ内部で高速回転している。ＨＤＤでは、ディスクの外周部と内周部との間でデータ転送速度に差がある。ディスクの外周部は、内周部よりも円周が長いため、より多くのセクタを有し、内周部よりも高いデータ転送速度を有する。また、ディスクの外周部に対して小さいＬＢＡ値が割り当てられ（即ち、外周部が記憶領域の先頭部に対応する）、内周部に対して大きなＬＢＡ値が割り当てられる（即ち、内周部が記憶領域の最後部に対応する）。このため、記憶装置Ａにおいて、システムの起動時間等に影響するシステムデータ（図４（Ａ）では、起動データ及びシステム関連データ）は小さいＬＢＡ値に対応する領域に格納されることで、システム性能の向上が図られている。
【００５７】
一方、記憶装置Ｂとして使用されているＳＳＤは、磁気ディスクではなく半導体メモリで構成されている。このため、画像形成装置１０の性能は、ＳＳＤ内でシステムデータが格納される領域（即ち、ＬＢＡ値）によらず一定である。本実施例のリビルド処理では、記憶装置Ｂから読み出されたデータは、記憶装置Ｂの記憶領域における最小ＬＢＡ値に対応する領域から最大ＬＢＡ値に対応する領域まで順に書き込まれる。
【００５８】
記憶装置ＢとしてＳＳＤが接続された場合、図４（Ａ）に示すように、記憶装置Ａの記憶領域における最大ＬＢＡ値に対応する領域（最後部の領域）から最小ＬＢＡ値に対応する領域（先頭部の領域）まで順に、各領域に格納されているデータが読み出される。記憶装置Ａから順に読み出されたデータは、記憶装置Ｂの記憶領域における最小ＬＢＡ値に対応する領域（先頭部の領域）から最大ＬＢＡ値に対応する領域（最後部の領域）で順に書き込まれる。
【００５９】
このようなリビルド処理により、システムデータ（起動データ及びシステム関連データ）は、記憶装置Ａから記憶装置Ｂへ最後にコピーされることになる。したがって、システムデータ以外のデータのコピーが行われている間のＳＳＤの自己昇温により、ＳＳＤの温度が高くなった状態で、システムデータのコピーを行うことが可能になる。
【００６０】
＜アドレス変換テーブル＞
上述のリビルド処理の結果、図４（Ａ）に示すように、記憶装置Ａと記憶装置Ｂとでパーティション構成が異なることになる。図５は、リビルド処理の完了後に用いられるアドレス変換テーブル（パーティションテーブル）である。ＣＰＵ２０１は、図５に示す、ホストＬＢＡ値を用いて、記憶装置におけるアクセス対象の領域を指定する。ホストＬＢＡ値は、領域ごとに、記憶装置Ａ（ＨＤＤ）のＬＢＡ値と対応している一方、パーティション構成の相違に起因して、記憶装置Ｂ（ＳＳＤ）のＬＢＡ値とは対応していない。このため、ホストＬＢＡ値を用いた記憶装置Ｂへのアクセスを実現するためには、ＲＡＩＤ部２５０において、ホストＬＢＡ値から記憶装置ＢのＬＢＡ値へのＬＢＡ変換（アドレス変換）を行う必要がある。
【００６１】
本実施例では、リビルド処理の完了後に、図５に示すアドレス変換テーブルが、ＲＡＩＤコントローラ２５１によって生成される。生成されたアドレス変換テーブルは、状態保持部２５４によって保持され、ＣＰＵ２０１から記憶装置へのアクセスが発生した際に、アドレス変換部２５３によるアドレス変換に使用される。ＲＡＩＤコントローラ２５１は、アドレス変換部２５３によるアドレス変換テーブルを用いたアドレス変換に基づいて、ホストＬＢＡ値に対応するＬＢＡ値であり、かつ、記憶装置Ａに対して使用されるＬＢＡ値による、記憶装置Ｂへのアクセス制御を行う。
【００６２】
以上説明したように、本実施例では、ＳＳＤがリビルド処理の対象である場合、コピー元の記憶装置（ＨＤＤ）における小さいＬＢＡ値に対応する領域（システム領域等）に格納されたシステムデータを、リビルド処理の終盤にコピー先（ＳＳＤ）に書き込む。システムデータの書き込み（コピー）が開始される際には、ＳＳＤの温度が高くなっていることが期待される。即ち、ＳＳＤの温度が高い状態で、当該ＳＳＤに対してシステムデータが書き込まれることになる。これにより、ＳＳＤの温度が低い状態でシステムデータを書き込んだ場合よりも、書き込んだデータがＳＳＤによって保持される期間（リテンション期間）を長くすることができる。したがって、例えば画像形成装置１０において電源ＯＦＦ状態が継続するような状況が生じても、短い期間でシステムデータがＳＳＤから消失することを防止できる。
【００６３】
［実施例２］
実施例２では、ＲＡＩＤコントローラ２５１は、記憶装置ＢがＳＳＤであれば、リビルド処理において、記憶装置Ａから記憶装置Ｂへの全データのコピーを２回続けて行う。具体的には、ＲＡＩＤコントローラ２５１は、記憶装置Ａに格納された全データを記憶装置Ｂへコピーした後、記憶装置Ａに格納された全データを記憶装置Ｂへ再度コピーする。即ち、記憶装置Ａから記憶装置Ｂへの全データのコピーの間に、記憶装置Ｂ内のフラッシュメモリの温度が高くなった後に、システムデータが記憶装置Ｂへ再び書き込まれる。したがって、記憶装置Ｂによるシステムデータの保持期間を長くすることができる。以下では、実施例１と相違する点を中心として説明する。
【００６４】
＜リビルド処理の手順＞
図６は、実施例２におけるスレーブストレージ（記憶装置Ｂ）のリビルド処理の手順を示すフローチャートである。図６の各ステップの処理は、ＣＰＵ２０１による制御下でＲＡＩＤコントローラ２５１によって実行される。画像形成装置１０が起動すると、ＲＡＩＤコントローラ２５１は、図６の手順による処理を実行する。
【００６５】
まず、Ｓ２０１及びＳ２０２は、実施例１のＳ１０１及びＳ１０２（図３）と同様である。Ｓ２０２で、ＲＡＩＤコントローラ２５１は、新たなストレージが接続されていない場合には（Ｓ０２で「ＮＯ」）、図６の手順による処理を終了し、記憶装置Ａを使用して動作するシングルモードへ移行する。一方、ＲＡＩＤコントローラ２５１は、新たなストレージが接続された場合には（Ｓ２０２で「ＹＥＳ」）、処理をＳ２０３へ進める。
【００６６】
Ｓ２０３で、ＲＡＩＤコントローラ２５１は、記憶装置Ｂのタイプ（記憶装置ＢがＳＳＤであるか否か）を判定し、記憶装置ＢがＳＳＤである場合、Ｓ２０４へ処理を進め、記憶装置ＢがＨＤＤである場合には、Ｓ２０５へ処理を進める。Ｓ２０４で、ＲＡＩＤコントローラ２５１は、状態保持部２５４が保持しているコピーフラグをＨ（ハイ）に設定し、処理をＳ２０５へ進める。コピーフラグは、予めＬ（ロー）に設定されている。リビルド処理において、コピーフラグがＨに設定されている場合には、記憶装置Ａから記憶装置Ｂへの全データのコピーの完了後に、２回目のコピーを行うべきことを示す。
【００６７】
Ｓ２０５で、ＲＡＩＤコントローラ２５１は、記憶装置Ａの最小ＬＢＡ値に対応する領域に格納されているデータから順に、記憶装置Ｂへのコピーを開始する。記憶装置Ａから読み出されたデータは、記憶装置Ｂの最小ＬＢＡ値に対応する領域から順に書き込まれる。その後、Ｓ２０６で、ＲＡＩＤコントローラ２５１は、記憶装置Ａから記憶装置Ｂへの全データのコピーが完了すると、Ｓ２０７へ処理を進める。
【００６８】
Ｓ２０７で、ＲＡＩＤコントローラ２５１は、状態保持部２５４が保持しているコピーフラグがＨに設定されているか否かを判定する。コピーフラグがＨに設定されていない場合には、ＲＡＩＤコントローラ２５１は、図６の手順による処理を終了し、ミラーリングモードのミラーステートへ移行し、記憶装置間でのミラーリングを開始する。一方、Ｓ２０７においてコピーフラグがＨに設定されている場合には、ＲＡＩＤコントローラ２５１は、処理をＳ２０８へ進める。
【００６９】
Ｓ２０８で、ＲＡＩＤコントローラ２５１は、状態保持部２５４が保持しているコピーフラグをＬに設定し、Ｓ２０５へ処理を戻す。Ｓ２０５及びＳ２０６では、ＲＡＩＤコントローラ２５１は、再び、記憶装置Ａから記憶装置Ｂへデータのコピーを行う。その後、Ｓ２０７で、ＲＡＩＤコントローラ２５１は、コピーフラグがＬに設定されているため、図６の手順による処理を終了し、ミラーステートへ移行して、記憶装置間でのミラーリングを開始する。このように、コピーフラグの設定により、記憶装置Ａから記憶装置Ｂへのデータのコピーは２回に限定される。これにより、記憶装置Ｂ（ＳＳＤ）への過剰な書き込み回数の増加、及びデータのコピーに伴う消費電力の増加を防ぐことができる。
【００７０】
以上説明したように、本実施例では、ＳＳＤがリビルド処理の対象である場合、コピー元の記憶装置からＳＳＤへのデータのコピーを２回続けて行う。これにより、システムデータについての２回目のコピーが行われる際には、ＳＳＤの温度が高くなっていることが期待される。即ち、ＳＳＤの温度が高い状態で、当該ＳＳＤに対してシステムデータが書き込まれることになる。これにより、実施例１と同様、ＳＳＤによるシステムデータのリテンション期間を長くすることができ、例えば画像形成装置１０において電源ＯＦＦ状態が継続するような状況が生じても、短い期間でシステムデータがＳＳＤから消失することを防止できる。
【００７１】
また、本実施例では、ＲＡＩＤコントローラ２５１は、記憶装置Ａと記憶装置Ｂとで、同じＬＢＡ値に対応する領域に同じデータが格納される。これにより、ＲＡＩＤコントローラ２５１は、実施例１のようにアドレス変換テーブルを必要とすることなく、記憶装置Ｂへのアクセス制御を行うことが可能である。
【００７２】
なお、本実施例は種々に変更することが可能である。例えば、上述の各処理を、ＲＡＩＤコントローラ２５１ではなくＣＰＵ２０１が実行することも可能である。また、リビルド処理におけるＳＳＤへの１回目のデータのコピーが完了した際に、ＲＡＩＤコントローラ２５１は、記憶装置間でミラーリングを開始してもよい。これは、１回目のデータのコピーが完了した段階で、記憶装置間でミラーリングが開始できる状態になっているためである。これにより、２回のデータのコピーに起因してリビルド処理の完了までに要する時間が長くなる一方で、リビルド処理の完了前に、記憶装置間でのミラーリングを早期に開始することが可能になる。
【００７３】
また、ＲＡＩＤコントローラ２５１は、リビルド処理において、記憶装置Ａに格納された全データを記憶装置Ｂへコピーした後、記憶装置Ａに格納された全データではなく、システムデータのみを記憶装置Ｂへ再度コピーしてもよい。これにより、システムデータ以外の、比較的書き換え頻度が多いデータについては、２回目のデータのコピーを省略でき、２回目のデータのコピーをより短時間に完了することが可能である。また、システムデータ以外のデータのコピーに伴う、ＳＳＤへのデータの書き込み回数の増加を防ぐことが可能である。
【００７４】
［実施例３］
実施例１及び２では、ＲＡＩＤ部２５０によって記憶装置Ａ及び記憶装置Ｂ間でＲＡＩＤ１を行われることで、ＣＰＵ２０１は、記憶装置の構成を認識する必要なく、ＲＡＩＤ部２５０を利用して記憶装置へアクセスできる。実施例３では、ＲＡＩＤ部２５０ではなくＣＰＵ２０１がソフトウェアＲＡＩＤを行う場合の、記憶装置Ｂのリビルド処理について説明する。以下では、実施例１と相違する点を中心として説明する。
【００７５】
＜画像形成装置＞
図７は、本実施例における画像形成装置１０の概略的なハードウェア構成例を示すブロック図である。図７に示すように、本実施例の画像形成装置１０は、コントローラ部２００にＲＡＩＤ部２５０が設けられていない点で、実施例１（図１（Ａ））と異なる。このため、本実施例では、ＣＰＵ２０１は、システムバス２１０を介して、記憶装置Ａ（２０８）及び記憶装置Ｂ（２０９）へ直接アクセスする。
【００７６】
＜リビルド処理の手順＞
本実施例では、ＣＰＵ２０１は、記憶装置ＢがＳＳＤであれば、リビルド処理において、記憶装置Ａの記憶領域における最後部の領域から先頭部の領域まで順に、各領域に格納されているデータを記憶装置Ｂへコピーする。これにより、記憶装置Ａに格納されたデータのうちで、記憶装置Ａの記憶領域における先頭部の領域に格納されたシステムデータが最後にコピーされる。したがって、記憶装置Ｂ内のフラッシュメモリの温度が高くなってから、システムデータを記憶装置Ｂへコピーすることが可能になる。
【００７７】
図８は、実施例３におけるスレーブストレージ（記憶装置Ｂ）のリビルド処理の手順を示すフローチャートである。図８の各ステップの処理は、ＣＰＵ２０１によって実行される。ＣＰＵ２０１は、ＲＯＭ２０３に格納された制御プログラムをＲＡＭ２０２に展開して実行することにより、各ステップの処理を実現しうる。本実施例では、画像形成装置１０が起動すると、ＣＰＵ２０１は、図８の手順による処理を実行する。
【００７８】
まず、Ｓ３０１及びＳ３０２は、ＲＡＩＤコントローラ２５１ではなくＣＰＵ２０１が処理を実行する点を除き、実施例１のＳ１０１及びＳ１０２（図３）と同様である。Ｓ３０２で、ＣＰＵ２０１は、新たなストレージが接続されていない場合には（Ｓ３０２で「ＮＯ」）、図８の手順による処理を終了し、記憶装置Ａを使用して動作するシングルモードへ移行する。一方、ＣＰＵ２０１は、新たなストレージが接続された場合には（Ｓ３０２で「ＹＥＳ」）、処理をＳ３０３へ進める。
【００７９】
Ｓ３０３で、ＣＰＵ２０１は、記憶装置Ｂのタイプ（記憶装置ＢがＳＳＤであるか否か）を判定し、記憶装置ＢがＳＳＤである場合、Ｓ３０４へ処理を進め、記憶装置ＢがＨＤＤである場合には、Ｓ３０５へ処理を進める。Ｓ３０４で、ＣＰＵ２０１は、記憶装置Ａの最大ＬＢＡ値に対応する領域に格納されているデータから順に、記憶装置Ｂへのコピーを開始し、Ｓ３０６へ処理を進める。一方、Ｓ３０５で、ＣＰＵ２０１は、記憶装置Ａの最小ＬＢＡ値に対応する領域に格納されているデータから順に、記憶装置Ｂへのコピーを開始し、Ｓ３０６へ処理を進める。Ｓ３０６で、ＣＰＵ２０１は、記憶装置Ａから記憶装置Ｂへの全データのコピーが完了すると、図８の手順による処理を終了し、ミラーリングモードのミラーステートへ移行し、記憶装置間でのミラーリングを開始する。
【００８０】
＜リビルド処理の例＞
図４（Ｂ）は、本実施例のリビルド処理における、記憶装置Ａから記憶装置Ｂへのデータのコピーの例を示す概念図である。本例では、記憶装置ＡがＨＤＤ、記憶装置ＢがＳＳＤである。本実施例では、記憶装置ＢとしてＳＳＤが接続された場合、記憶装置Ａの記憶領域における最大ＬＢＡ値に対応する領域（最後部の領域）から最小ＬＢＡ値に対応する領域（先頭部の領域）まで順に、各領域に格納されているデータが読み出される。記憶装置Ａから順に読み出されたデータは、記憶装置Ｂの記憶領域における最大ＬＢＡ値に対応する領域（最後部の領域）から最小ＬＢＡ値に対応する領域（先頭部の領域）で順に書き込まれる。
【００８１】
以上説明したように、本実施例では、実施例１と同様、ＳＳＤがリビルド処理の対象である場合、コピー元の記憶装置における小さいＬＢＡ値に対応する領域に格納されたシステムデータを、リビルド処理の終盤にコピー先（ＳＳＤ）に書き込む。これにより、ＣＰＵ２０１がソフトウェアＲＡＩＤを実行する場合においても、ＳＳＤによるシステムデータのリテンション期間を長くすることができる。また、例えば画像形成装置１０において電源ＯＦＦ状態が継続するような状況が生じても、短い期間でシステムデータがＳＳＤから消失することを防止できる。
【００８２】
［実施例４］
実施例４では、実施例３と同様、ＲＡＩＤ部２５０ではなくＣＰＵ２０１がソフトウェアＲＡＩＤを行う場合の、記憶装置Ｂのリビルド処理について説明する。以下では、実施例１と相違する点を中心として説明する。
【００８３】
本実施例における画像形成装置１０は、実施例３と同様、ＲＡＩＤ部２５０が存在しない、図７に示される構成を有する。このため、ＣＰＵ２０１は、システムバス２１０を介して、記憶装置Ａ（２０８）及び記憶装置Ｂ（２０９）へ直接アクセスする。ＲＡＩＤ部２５０が存在しない場合には、実施例１のリビルド処理（図３）は、ＲＡＩＤコントローラ２５１ではなく、ＣＰＵ２０１によって実行することが可能である。
【００８４】
本実施例のリビルド処理の手順は、実施例１（図３）と同様である。ただし、本実施例は、各ステップの処理は、ＲＡＩＤコントローラ２５１ではなく、ＣＰＵ２０１によって実行される。この場合、変数Ｌ＿ａ，Ｌ＿ｂ，Ｌ＿ｍａｘ＿ａ，Ｌ＿ｍａｘ＿ｂについては、例えば、各変数に対応する記憶領域がＲＡＭ２０２に確保される。
【００８５】
本実施例において、記憶装置ＡにＨＤＤ、記憶装置ＢにＳＳＤが接続された場合のパーティション構成例は、実施例１（図４（Ａ））と同様である。本実施例は、ＲＡＩＤコントローラ２５１の処理をＣＰＵ２０１が行う点のみが差異であるため、構成されるパーティションは実施例１と変わらない。また、本実施例において、リビルドが完了した後に用いられるアドレス変換テーブルは、実施例１（図５）と同様である。この場合、ＣＰＵ２０１は、生成したアドレス変換テーブルを、不揮発性メモリであるＲＯＭ２０３に保持しうる。ＣＰＵ２０１は、画像形成装置１０の起動後に、ＲＯＭ２０３からアドレス変換テーブルをＲＡＭ２０２に展開し、当該アドレス変換テーブルに基づいて、記憶装置Ｂへのアクセス制御を行う。
【００８６】
本実施例では、実施例１と同様、ＳＳＤがリビルド処理の対象である場合、コピー元の記憶装置における小さいＬＢＡ値に対応する領域に格納されたシステムデータを、リビルド処理の終盤にコピー先（ＳＳＤ）に書き込む。これにより、ＣＰＵ２０１がソフトウェアＲＡＩＤを実行する場合においても、ＳＳＤによるシステムデータのリテンション期間を長くすることができる。また、例えば画像形成装置１０において電源ＯＦＦ状態が継続するような状況が生じても、短い期間でシステムデータがＳＳＤから消失することを防止できる。
【００８７】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８８】
１０：画像形成装置、２０１：ＣＰＵ、２０２：ＲＡＭ、２０３：ＲＯＭ、２０４：ＬＡＮコントローラ、２０５：電源制御部、２０６：画像処理部、２０８：記憶装置Ａ、２０９：記憶装置Ｂ、２５０：ＲＡＩＤ部、２５１：ＲＡＩＤコントローラ、２５２：フォーマット管理部、２５３：アドレス変換部、２５４：状態保持部
【図１】
2019020846.tif 000003
【図２】
2019020846.tif 000004
【図３】
2019020846.tif 000005
【図４】
2019020846.tif 000006
【図５】
2019020846.tif 000007
【図６】
2019020846.tif 000008
【図７】
2019020846.tif 000009
【図８】
2019020846.tif 000010