(57)【要約】      （修正有）【課題】未使用領域があるマスターストレージを基にリビルド制御を実行する際に、スレーブストレージ側のＳＳＤ制御部から見た未使用領域が全て使用済みとなってライトパフォーマンスが低下する現象を抑制できる情報処理装置及び情報処理装置の制御方法を提供する。【解決手段】不揮発性の半導体メモリであるマスターストレージと不揮発性の半導体メモリであるスレーブストレージとを有する情報処理装置であって、マスターストレージの記憶領域のうち未使用領域を確認する確認手段と、確認手段によって確認された領域にダミーデータを書き込ませる指示手段と、マスターストレージに基づいてスレーブストレージをリビルドするリビルド制御またはマスターストレージおよびスレーブストレージをミラーリング制御する制御手段と、を有する。書き込み指示手段は、制御手段がリビルド制御を実行する前に未使用領域にダミーデータを書き込ませる。【選択図】図４
2020107243.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の半導体メモリであるマスターストレージと不揮発性の半導体メモリであるスレーブストレージとを有する情報処理装置であって、
前記マスターストレージの記憶領域のうち未使用領域を確認する確認手段と、
前記確認手段によって確認された領域にダミーデータを書き込ませる指示手段と、
前記マスターストレージに基づいて前記スレーブストレージをリビルドするリビルド制御または前記マスターストレージおよび前記スレーブストレージをミラーリング制御する制御手段と、を有し、
前記書き込み指示手段は、前記制御手段が前記リビルド制御におけるリビルドを実行する前に前記未使用領域にダミーデータを書き込ませることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記リビルド制御におけるリビルドが完了することに従って、ミラーリング制御に制御を切り替えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ミラーリング制御に移行した前記マスターストレージおよび前記スレーブストレージに対して論理消去を実行する消去手段を更に有し、
前記指示手段は、前記消去手段によって消去した論理アドレスに対応する記憶領域に記憶されたデータを消去するＴｒｉｍコマンドを前記制御手段に送信することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記マスターストレージは、前記指示手段からダミーデータを書き込む指示を受け付けると、前記未使用領域のすべての領域にダミーデータを書き込むことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記マスターストレージおよびスレーブストレージの少なくとも一方からストレージ情報を取得する取得手段を更に有し、
前記確認手段は、前記取得手段によって取得したストレージ情報を基に前記未使用領域を確認することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記取得手段は、前記情報処理装置の起動に基づいて前記ストレージ情報を取得することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段が取得した前記ストレージ情報に基づいて、前記制御手段は、前記リビルド制御を開始することを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記確認手段は、前記ストレージ情報に基づいて前記未使用領域に所定の容量以上の連続的な領域があるか否かを確認し、
前記所定の容量以上の連続的な領域がある場合、前記制御手段は、前記リビルドを実行する際に、前記連続的な領域を除いてリビルドすることを特徴とする請求項５乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記所定の容量以上の連続的な領域がある場合、前記指示手段は、前記連続的な領域を除いて、前記ダミーデータを書き込むように指示することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記未使用領域に書き込ませるダミーデータのサイズを選択する選択手段を更に有し、
前記確認手段は、前記記憶領域の未使用領域のサイズを確認し、
前記選択手段は、前記確認手段が確認した未使用領域のサイズに基づいてダミーデータのサイズを選択することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
予め設定された複数種類のデータサイズのダミーデータを有する記憶手段を有することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記ダミーデータが、ＦＦで構成されたデータであることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記マスターストレージおよび前記スレーブストレージは、ＳＳＤであることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
不揮発性の半導体メモリであるマスターストレージと不揮発性の半導体メモリであるスレーブストレージとを有し、リビルド制御される情報処理装置の制御方法であって、
前記マスターストレージの記憶領域のうち未使用領域を確認するステップと、
確認された領域にダミーデータを書き込ませるステップと、
前記書き込みが完了したことに基づいて、前記マスターストレージに基づいて前記スレーブストレージをリビルドするステップと、を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
前記リビルドが完了すると、前記マスターストレージと前記スレーブストレージをミラーリング制御に変更するステップと、
前記ミラーリング制御の各ストレージに対して論理消去を実行するステップと、
前記論理消去された論理アドレスに対応する記憶領域に記憶されたデータを消去するステップと、を有することを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
請求項１４または１５に記載の制御方法を、コンピュータに実行させるためのプログラム。
【請求項１７】
請求項１６に記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の不揮発性の半導体メモリを搭載した情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、情報処理装置内にＨＤＤやＳＳＤの様な大容量ストレージデバイスが搭載され、動作プログラムを格納すると共に画像データの保存、編集などを実現するストレージ機能を実現している。
【０００３】
近年、大容量化と低価格化が進んで急速に普及が進んでいるＳＳＤはＨＤＤと比べて高速なランダムアクセスが可能であり、低消費電力、高い耐衝撃性、軽量、省スペースといった点に特長がある。特にシステム起動時においてＨＤＤで必要なスピンアップ等の初期動作が必要無い為、高速なデータ転送と相まって起動時間や復帰時間の短縮化には非常に効果があるため、画像形成装置のストレージデバイスとして採用されてきている。
【０００４】
ＳＳＤには書換え回数（Ｐ／Ｅサイクル）とデータ保持時間が使用上の主な制限値として存在する。書換え回数の制限値はＳＳＤに搭載されるフラッシュメモリに依存し、フラッシュメモリの製造プロセスの微細化に伴い減少し続けている。
【０００５】
ＳＳＤは書換え回数の消費が進むと、データ保持時間の低下や使用可能エリアの減少等の不具合が発生する可能性が高まる。そこで、ＳＳＤに搭載されているフラッシュメモリ・コントローラは同じ領域への書き込み頻度が集中しないように書き込み先を平均化させてストレージデバイスの寿命を延伸化させるウェアレベリングという技術を用いて対応している。
【０００６】
ＳＳＤのオペレーティングシステム（以下ＯＳ）のファイルシステム（以下ＦＳ）は、ストレージへのリード・ライト処理において、不要となったファイル（データ）を管理情報から削除する。しかし、このとき管理情報から削除されるだけであって、ＳＳＤの記憶領域に記憶された実データは削除されず、記憶領域に残る。
【０００７】
そのため、ＳＳＤのコントローラはライトパフォーマンスを維持するために基本的にＳＳＤに搭載されるＮＡＮＤフラッシュメモリに未使用ブロックが有る場合に、優先的に未使用ブロックを使用してライトを行う。従って、ＳＳＤは使い込まれるにつれて未使用ブロックが減少する。未使用ブロックが完全に無くなった場合に、ＳＳＤのコントローラはライトする際にガベージコレクション処理を伴うことになり、ライトパフォーマンスが大幅にダウンする。
【０００８】
そこで、近年、Ｔｒｉｍコマンドが普及しつつある。Ｔｒｉｍコマンドは、パフォーマンスダウン解消のために、ＯＳの管理情報で不要となったデータをＳＳＤに通知して、ＳＳＤ内の不要データを含んだブロックを一括してガベージコレクションと消去処理を行なわせるコマンドである。
【０００９】
また、ＳＳＤはＨＤＤに代わるストレージデバイスという位置づけである。そのため、ＳＳＤにおいてもＨＤＤと同様に信頼性向上のためＲＡＩＤ１のミラーリング構成による利用が検討されている。
【００１０】
ミラーリング構成は、２台のストレージデバイスに同じデータを書き込む構成である。このような構成によれば、一方のストレージデバイスが故障してもそのストレージデバイスを新たなストレージデバイスに交換すれば、もう一方のストレージデバイスを用いてデータを復旧することが可能となる（特許文献１、２）。
【００１１】
ミラーリング構成を搭載する際に、情報処理装置の内部において、メインコントローラと２台のストレージデバイスとを、ミラーリング制御部を介して接続することになる。この場合、ミラーリングの制御はミラーリング制御部が行うことになり、メインコントローラ側から見るとあたかも１台のストレージデバイスが接続されているだけのように認識される。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−２５２４５１号公報
【特許文献２】特開２０１２−０７９１００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ミラーリング構成において、２台のストレージデバイスの内の１台が故障した時に故障したストレージデバイスを新しいものに交換してそのデバイスに正常なデバイスのデータを書き込むリビルドという処理を行う。
【００１４】
通常のリビルド制御においては、リビルド範囲は使用するストレージデバイスの有効領域全体が対象となる。つまりコピー元である正常なストレージデバイス（以下、マスターストレージ）の先頭アドレスから最終アドレスまでのディスクイメージ全てが交換された新規のデバイスにコピーされる。これによって、図１２の様にマスターストレージ上のＯＳでは未使用とされる領域から読み出された情報も全て論理アドレスに紐付けられてコピー先のストレージデバイスに記録される。
【００１５】
ストレージデバイスがＳＳＤの場合においては、ＳＳＤのコントローラから見た全領域が使用状態で空き領域が無い状態となる。言い換えると、データが記憶されていない未使用領域から読み出した情報が書き込まれた状態となる。つまり、例えば、図１２のように未使用領域を有するＳＳＤ（マスターストレージ）を基にリビルドを行うと、スレーブストレージ側のＳＳＤに対するＯＳの管理情報は未使用領域だが、ＳＳＤ制御部では使用済みの領域となってしまうおそれがある。
【課題を解決するための手段】
【００１６】
本発明は、不揮発性の半導体メモリであるマスターストレージと不揮発性の半導体メモリであるスレーブストレージとを有する情報処理装置であって、マスターストレージの記憶領域のうち未使用領域を確認する確認手段と、確認手段によって確認された領域にダミーデータを書き込ませる指示手段と、マスターストレージに基づいてスレーブストレージをリビルドするリビルド制御またはマスターストレージおよびスレーブストレージをミラーリング制御する制御手段と、を有し、書き込み指示手段は、制御手段がリビルド制御を実行する前に未使用領域にダミーデータを書き込ませることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、未使用領域があるマスターストレージを基にリビルド制御を実行する際に、スレーブストレージ側のＳＳＤ制御部から見た未使用領域が全て使用済みとなってライトパフォーマンスが低下する現象を抑制することが可能である。
【図面の簡単な説明】
【００１８】
【図１】ＳＳＤの内部構成を示すブロック図
【図２】コントローラ部の構成を示すブロック図
【図３】ストレージデバイスの状態遷移の概念説明図
【図４】ストレージデバイスのリビルド制御を説明するフローチャート
【図５】未使用領域確認シーケンスを説明するフローチャート
【図６】ダミーデータファイルの書込みシーケンスの処理を説明するフローチャート
【図７】ストレージデバイスの状態遷移の概念説明図
【図８】ストレージデバイスのリビルド制御を説明するフローチャート
【図９】未使用領域確認シーケンスを説明するフローチャート
【図１０】部分リビルド対象領域の設定の処理を説明するフローチャート
【図１１】リビルド対象領域の未使用領域へのダミーデータファイルの書込みシーケンスの処理を説明するフローチャート
【図１２】従来のストレージデバイスの状態遷移の概念説明図
【発明を実施するための形態】
【００１９】
添付図面を参照して本発明の各実施例を詳しく説明する。以下の実施例は特許請求の範囲に係る発明を限定するものではなく、また各実施例で説明されている特徴の組み合わせすべてが発明の解決手段に必須の構成とは限らない。なお、以下の実施例では、情報処理装置の例として画像処理装置を用いる。
【００２０】
（実施例１）
図１はストレージデバイス４１５，４１５として使用されるＳＳＤの内部構造を示すブロック図である。なお、本実施例では、ＳＳＤを用いる構成を示したが、不揮発性の半導体メモリであれば、例えばＥＭＭＣ等のＳＳＤ以外のメモリでもよい。
【００２１】
ＳＳＤはＳＳＤ制御部１００および複数のフラッシュメモリ１０３を有している。そして、ＳＳＤ制御部１００はストレージＩ／Ｆ１０１およびメモリ制御部１０２を備えており、ストレージＩ／Ｆ１０１は後述のストレージ制御部４１２またはミラーリング制御部に接続される。つまり、ストレージＩ／Ｆ１０１はストレージ制御部４１２またはミラーリング制御部との通信するためのモジュールである。図示の例では、ストレージＩ／Ｆ１０１として、シリアルＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ：以下ＳＡＴＡ）インターフェースが用いられる。
【００２２】
メモリ制御部１０２は複数のフラッシュメモリ１０３を１つの大きなストレージデバイスとして制御を行う。メモリ制御部１０２によってウェアレベリングを行われるため論理アドレスとそれに対応する各フラッシュメモリ１０３の物理アドレスは動的に変わる。
【００２３】
複数のフラッシュメモリ１０３で構成されたストレージデバイスの内、論理アドレスによってＳＳＤの外部から管理された記憶領域がユーザー領域１０４であり、ＳＳＤ制御部１００のみが管理する記憶領域がリザーブ領域１０５である。
【００２４】
ただし、前述の通りウェアレベリングを行う関係上、ユーザー領域１０４及びリザーブ領域１０５に割り当てられるフラッシュメモリ１０３の物理アドレスは固定されず動的に変化する。
【００２５】
ユーザー領域１０４はＯＳを含むユーザープログラムやデータ等が格納されている領域であり、ＦＳの管理情報もここに格納される。ＦＳの管理情報は主にＯＳが管理する論理アドレス上のファイルの保管先や使用状況等を管理するための情報である。
【００２６】
リザーブ領域１０５はＳＳＤ制御部１００の管理情報の格納やウェアレベリングやガベージコレクションで使用するための予備領域として使用される。ＳＳＤの管理情報は主に論理アドレスと物理アドレスのリンク情報や各物理ブロックの消去回数及び使用状況等を管理するための情報である。
【００２７】
図２は前記ＳＳＤがストレージデバイス４１４，４１５として組み込まれる画像形成装置のコントローラ部４００を示すブロック図である。
【００２８】
図２のコントローラ部４００は、不図示の操作部や外部コンピュータからの指示に基づいて原稿搬送装置を制御する原稿搬送制御部、イメージリーダを制御するイメージリーダ制御部と通信し、入力される原稿の画像データを取得する。また、プリンタ部を制御するプリンタ制御部と通信を行い、画像データをシートに印刷する。折り装置を制御する折り装置制御部、フィニッシャを制御するフィニッシャ制御部と通信を行い、印刷されたシートにステイプルやパンチ穴といった所望の出力を実現する。
【００２９】
外部Ｉ／Ｆ４５１は外部のコンピュータと接続するインターフェースである。例えばネットワークやＵＳＢなどの外部バスで接続し外部コンピュータからのプリントデータを画像に展開して出力するほか、後述するストレージデバイス４１５内の画像データを外部コンピュータに送信することを行う。
【００３０】
コントローラ部４００は、ＣＰＵ４０１を有し、ＯＳによって制御される。ＣＰＵ４０１には、バスブリッジ４０４が接続される。バスブリッジ４０４には、ＲＯＭ４０２、ＲＡＭ４０３、外部Ｉ／Ｆ制御部４０５、操作部Ｉ／Ｆ４０６、ストレージ制御部４１２が接続される。ＣＰＵ４０１は、ＲＯＭ４０２からバスブリッジ４０４を介して初期起動プログラムを読み出す。また、ＣＰＵ４０１は、一時的なデータ格納領域として用い、制御に伴う演算の作業領域として用いられるＲＡＭ４０３にプログラムを展開する。
【００３１】
ストレージ制御部４１２は、ＣＰＵ４０１からの指示に基づいて、ストレージ制御部４１２に接続されるストレージ装置の制御を行う。具体的には、ストレージ制御部４１２はＨＤＤやＳＳＤ等のストレージ機器のリード／ライト制御を行うハードウェアモジュールで、ストレージ機器と接続はＳＡＴＡインターフェースが用いられる。なお、図２において、ストレージ制御部４１２は、ミラーリングシステム４２０を１つのストレージ装置とみなして制御を行う。
【００３２】
ミラーリングシステム４２０は、ミラーリング制御部４１３にストレージデバイス４１４とストレージデバイス４１５が接続される構成となっている。ミラーリング制御部４１３は、ストレージのミラーリング制御を行うハードウェアモジュールである。図２においてミラーリング制御部４１３は、独立した構成となっているが、ストレージ制御部４１２に含まれていてもよい。図２の構成において、ミラーリング制御部４１３とストレージ制御部４１２の接続はＳＡＴＡインターフェースが用いられる。
【００３３】
ストレージデバイス４１４及び４１５は、ＣＰＵ４０１のＯＳを含むメインプログラムの格納と、イメージリーダや外部Ｉ／Ｆ４５１より取得した画像データや操作部で画像を編集した時の保存用やアプリケーションプログラムの格納先として使用される。また、アプリケーションプログラムやユーザープリファレンスデータの格納先としても使用される。ストレージデバイス４１４及び４１５は、ＣＰＵ４０１からアクセスができるように構成されている。ストレージデバイス４１４およびストレージデバイス４１５は、例えばＳＳＤである。
【００３４】
ストレージデバイス４１４及び４１５は、ミラーリング制御部４１３を介してストレージ制御部４１２と接続される。ミラーリング制御の基で動作しているため同一の論理アドレスに同じデータが書き込まれる。従ってストレージデバイス４１４とストレージデバイス４１５に書き込まれているデータは完全に一致する。
【００３５】
外部制御部Ｉ／Ｆ４０５は、ネットワークやＵＳＢインターフェースを制御する。操作部Ｉ／Ｆ４０６は、操作部に接続する。
【００３６】
デバイス制御部４１１は、不図示の原稿搬送装置制御部、イメージリーダ制御部、プリンタ制御部、折り装置制御部、フィニッシャ制御部と接続され、これらの制御を行う。
【００３７】
図３、図４を用いてストレージデバイス４１５を交換もしくはストレージデバイス４１４のシングル構成に対してストレージデバイス４１５を追加した場合を例にリビルド制御を説明する。交換理由は、例えばストレージデバイスの故障等である。ここでは、ストレージデバイス４１４がマスターデバイスとなり、ストレージデバイス４１５がスレーブとなる。両者の関係が逆の場合も同様に交換側もしくは追加側がスレーブとなる。
【００３８】
図３は、ストレージデバイスの状態遷移の概念説明図であり、図４はストレージデバイスのリビルド制御を説明するフローチャートである。
【００３９】
図４において、システム起動時にコントローラ部４００が通電されるとＣＰＵ４０１は、ミラーリングシステム４２０のイニシャライズを行うため、各デバイスの接続状況を確認する。なお、イニシャライズとは、例えばステートの確認と動作設定など、起動時における状態確認および初期設定である。
【００４０】
各デバイスの接続状況の確認時において、ストレージデバイスの接続の確認を起点としてＣＰＵ４０１は以下のフローを開始する。
【００４１】
ステップＳ１０１において、ＣＰＵ４０１は、ミラーリング制御部４１３を介してストレージデバイス４１４及びストレージデバイス４１５の接続を認識する。そして、ＣＰＵ４０１は、ミラーリング制御部４１３を介してストレージデバイス４１４及びストレージデバイス４１５に対してＩｄｅｎｔｉｆｙ  ｄｅｖｉｃｅコマンドを送信する。Ｉｄｅｎｔｉｆｙ  ｄｅｖｉｃｅコマンドを受信したストレージデバイス４１４及びストレージデバイス４１５は、ミラーリング制御部４１３を介して、デバイス情報をＣＰＵ４０１に返す。
【００４２】
ステップＳ１０２において、ＣＰＵ４０１は、受け取ったデバイス情報をそれぞれ確認し、ストレージデバイス４１４及びストレージデバイス４１５のデバイスの種類を確認する。例えば、受信したデバイス情報のＷＯＲＤ２１７（Ｎｏｍｉｎａｌ  Ｍｅｄｉａ  Ｒｏｔａｔｉｏｎ  Ｒａｔｅ）の値が“０００１ｈ”の場合はＳＳＤと認識する。
【００４３】
ステップＳ１０３において、ストレージデバイス４１５がＳＳＤではない（例えば、ＨＤＤである）場合は、ステップＳ１０７にてリビルドを開始する。ステップＳ１０７のリビルドについては、後述する。
【００４４】
一方、ストレージデバイス４１５がＳＳＤである場合には、ステップＳ１０４に遷移する。
【００４５】
ステップＳ１０４にてリビルドのマスターストレージとなるストレージデバイス４１４の未使用領域確認シーケンスに移行する。図５を用いて未使用領域確認シーケンスの詳細な説明を行う。
【００４６】
ステップＳ１２１において、ＣＰＵ４０１はストレージデバイス４１４の内部構成を確認する。具体的には、ストレージデバイス４１４のストレージ情報を取得し、ストレージデバイス４１４のパーティション構成や使用しているＦＳの確認を行う。
【００４７】
ステップＳ１２２にてＣＰＵ４０１は、ストレージデバイス４１４内の各パーティションの未使用領域の確認を行う。例えばＬｉｎｕｘ（登録商標）  ＯＳでは各パーティションのＦＳの管理情報に含まれるスーパーブロックのフリー・カウントを使用して未使用領域のサイズを算出する。スーパーブロックは、ファイルシステムの管理情報を記録している。記録されている情報は、パーティション内のデータブロック数、ブロックサイズ、空きブロック数等である。
【００４８】
ステップＳ１２３にてＣＰＵ４０１は、各パーティションのライト可能なファイル数を確認する。具体的にはＬｉｎｕｘ  ＯＳではＦＳのｉｎｏｄｅ（アイノード）テーブルを参照し、使用可能なｉｎｏｄｅ（アイノード）の数を確認する。ステップＳ１０４が終了後にステップＳ１０５のダミーデータファイルの書込みシーケンスに移行する。
【００４９】
ステップＳ１０５のダミーデータファイルの書込みシーケンスは図６のフローにて行う。
【００５０】
ダミーデータファイルは“ＦＦ”（ＡＬＬ“Ｈ”）データ（データの全ビットがＨｉｇｈで満たされたデータ）で構成され、様々な容量の空き領域に対応可能な様にサイズの異なる複数種類のファイルが用意されている。
【００５１】
複数種類のダミーデータファイルのそれぞれのサイズは任意であるが、本実施例では最小サイズは一般的なフラッシュメモリのページサイズである４キロバイト、最大サイズは６４メガバイトを想定している。ダミーデータファイルの格納先はＲＯＭ４０２，ＲＡＭ４０３，ストレージデバイス４１４及びストレージデバイス４１５の何れでもよい。
【００５２】
ステップＳ１３１にてＣＰＵ４０１は各パーティションの未使用領域に合わせて、使用するダミーデータファイルのサイズと数量を選定する。基本的には用意されたダミーデータファイルのサイズの大きいものから選択し、余剰分を小さいサイズのファイルで補間する様に選択する。
【００５３】
これは小さいデータを大量にライトするのは、パフォーマンス的に効率が悪くなるのとパーティション毎にライト可能なファイル数に制限がある事から前記の様な手法をとる。
【００５４】
従って、パーティション毎にライトするファイル数がそれぞれステップＳ１２３にて確認したライト可能なファイル数を超過しないようにファイルサイズと数量を設定する。
【００５５】
ステップＳ１３２において、ステップＳ１３１でパーティション毎に設定した使用するダミーデータファイルのサイズおよび数量を管理するダミーデータファイルのライトテーブルを生成させる。
【００５６】
ステップＳ１３３において、ダミーデータファイルのライトテーブルに合わせて、ＣＰＵ４０１は各パーティションにダミーデータファイルをライトする。
【００５７】
ステップＳ１０６において、ＣＰＵ４０１が全てのダミーデータファイルの書込みの終了を確認する。このときの状態を図３（ａ）に示す。図３の（ａ）の様にマスターストレージであるストレージデバイス４１４の未使用領域は全てダミーデータファイルで満たされる。
【００５８】
ステップＳ１０７にてミラーリング制御部４１３は、ストレージデバイス４１４からストレージデバイス４１５に対してリビルドを開始する。このときミラーリング制御部４１３はマスターストレージであるストレージデバイス４１４の論理アドレスで管理される領域の全てのデータをストレージデバイス４１５である新品のＳＳＤにイメージコピーを行う。
【００５９】
ステップＳ１０８にてリビルドの終了確認を行う。ステップＳ１０９においてリビルド制御が完了すると図３の（ｂ）の様に、マスターストレージとスレーブストレージは完全に同じ状態となる。そしてＣＰＵ４０１はミラーリング制御部４１３をミラーリング制御に変更する。
【００６０】
ステップＳ１１０にてＳ１０２で取得したデバイス情報から、ストレージデバイス４１５がＳＳＤであった場合、Ｓ１１１においてＣＰＵ４０１は全てのダミーデータファイルの論理消去を行う。この処理によって図３の（ｃ）の様に、マスターストレージとスレーブストレージ内のダミーデータファイルの格納されていた領域がＯＳから管理情報で不要とされたデータの領域となる。
【００６１】
ステップＳ１１２にてＣＰＵ４０１はＳＳＤに対してＴｒｉｍコマンドを送信する。Ｔｒｉｍコマンドを受信したＳＳＤは、ＯＳから管理情報で不要とされた領域のデータの消去処理を行う。消去処理が行われると図３の（ｄ）のようにリビルド前のマスターストレージの状態がスレーブストレージ側に完全に再現できる。
【００６２】
なお、本実施例において、ストレージデバイス４１４，４１５が共にＳＳＤの場合は両方にＴｒｉｍコマンドを送信し、マスターストレージであるストレージデバイス４１４がＨＤＤの場合はストレージデバイス４１５のみにＴｒｉｍコマンドを送信する。ステップＳ１１２を終えるとステップＳ１１３に遷移する。
【００６３】
ステップＳ１１３において、ストレージデバイス４１４およびストレージデバイス４１５は、スタンバイ状態に移行する。
【００６４】
本実施例の構成によれば、未使用領域があるマスターストレージを基にリビルド制御を実行する際に、スレーブストレージ側のＳＳＤ制御部から見た未使用領域が全て使用済みとなりパフォーマンスが低下する現象を抑制することができる。
【００６５】
（実施例２）
本実施例の構成を図７〜１２を用いて説明する。本実施例は、マスターストレージ内の所定値以上の連続未使用領域を検知してリビルド非対象領域とし、対象領域のみにダミーデータファイルの書込み処理を行い、対象領域のみを部分リビルドを行う点で実施例１と異なる。なお、以下では所定値以上を所定の容量以上として説明するがこれに限らない。また、図１と図２は、実施例１と共通であるため説明を省略する。
【００６６】
図７、図８を用いて古いストレージデバイスをストレージデバイス４１５に交換した場合のリビルド制御を説明する。
【００６７】
図７は、ストレージデバイスの状態遷移の概念説明図であり、図８はストレージデバイスのリビルド制御を説明するフローチャートである。
【００６８】
ステップＳＳ２０１からステップＳ２０３の処理は、図４のステップＳ１０１からステップＳ１０３の処理と同一のため説明を割愛する。
【００６９】
ステップＳ２０４にて、リビルド制御においてストレージデバイス４１４となるＳＳＤの未使用領域確認シーケンスに移行するが、本実施例では実施例１の未使用領域確認シーケンスに対して連続的な未使用領域を検知する処理が追加される。本実施例の未使用領域確認シーケンスを図９のフローに示す。ステップＳ２２１とステップＳ２２２の処理は、ステップＳ１２１からステップＳ１２２の処理と同一のため説明は割愛する。
【００７０】
ステップＳ２２３においてＣＰＵ４０１は、確認した各パーティションの未使用領域のサイズを確認、未使用領域のサイズが予め設定された所定の値より大きいパーティションをピックアップする。なお、各パーティションの未使用領域の確認は、実施例１と同様に各パーティションのＦＳの管理情報に含まれるスーパーブロックのフリー・カウントを使用して未使用領域のサイズを算出して行う。
【００７１】
ステップＳ２２４にて、所定の値以上の未使用領域がパーティションに無い場合には、ステップＳ２２６に遷移する。ステップＳ２２６については後述する。所定の値以上の未使用領域がパーティションにある場合には、ステップＳ２２５に遷移する。
【００７２】
ステップＳ２２５にてＣＰＵ４０１は、ＦＳの管理情報を参照してピックアップされたパーティションの連続的な未使用領域のサイズと論理アドレスを確認する。具体的には、ＣＰＵ４０１は、各パーティションのｉｎｏｄｅ情報からパーティション内に存在するファイルの位置とエクステント（データサイズ）を参照する。ＣＰＵ４０１は、参照した情報を基に各ファイルの配置分布を確認することで連続的な未使用領域の論理アドレスの位置及び範囲とサイズを算出する。
【００７３】
ステップＳ２２６の処理はステップＳ１２３の処理と同一のため説明は割愛する。ステップＳ２２６を終えるとステップＳ２０５に遷移する。
【００７４】
ステップＳ２０５において、ステップＳ２２５で確認した連続的な未使用領域のサイズが予め設定された所定値以上の領域が無い場合は、ステップＳ２０６に遷移する。なお、予め設定した未使用領域サイズの所定値は任意であるが、本実施例においては、例えばダミーデータファイルの最大サイズの２倍の値とする。
【００７５】
ステップＳ２０６は、ステップＳ１０５に対応し、通常リビルド時のダミーデータファイル書き込みシーケンスを行う。ここでは詳細な説明を省略する。また、ステップＳ２０７及びステップＳ２０８は、ステップＳ１０６およびステップＳ１０７に対応し、詳細な説明を省略する。ステップＳ１０７を終えるとステップＳ２１３に遷移する。
【００７６】
ステップＳ２０５に戻る。ステップＳ２２５で確認した連続的な未使用領域のサイズが予め設定された所定値以上の領域がある場合には、ステップＳ２０９に遷移する。
【００７７】
ステップＳ２０９において、図１０に示す部分リビルド対象領域の設定シーケンスに移行する。ステップＳ２４１にて、ＣＰＵ４０１はＳ２２５にて確認された各パーティション内の予め設定された所定値以上の連続的な未使用領域をピックアップして、それらをリビルドの非対象領域に設定する。具体的には前記連続的な未使用領域の先頭アドレスから最終アドレス迄をそれぞれピックアップする。
【００７８】
ここでミラーリング制御部４１３の仕様的な制限により、部分リビルドに設定できる領域数に制限値がある場合は、ピックアップされた連続的な未使用領域の中から容量の大きい順に制限値から１を減じた値分の領域をリビルド非対象領域に選択する。例えば、部分リビルドの設定可能な領域数の制限数が３の場合、リビルド非対称領域は２となる。そのため、ピックアップされた連続的な未使用領域の中から容量サイズの上位２つの領域が選択される。
【００７９】
ステップＳ２４２にて、ＣＰＵ４０１は前記ピックアップされたリビルド非対象領域のアドレス情報をもとにミラーリング制御部に対して部分リビルドの範囲アドレスの設定を行う。ステップＳ２４２を終えるとステップＳ２１０に遷移する。
【００８０】
ステップＳ２１０にてＣＰＵ４０１は、リビルド対象領域に対する未使用領域へのダミーファイルデータ書込みシーケンスに移行する。リビルド対象領域の未使用領域へのダミーデータファイルの書込みシーケンスについて図１１のフローを用いて説明する。
【００８１】
ステップＳ２５１にてＣＰＵ４０１は、ＳＳＤの論理アドレスの先頭から順に各パーティションに対してリビルド非対象領域の有無を確認する。
【００８２】
ステップＳ２５２にて確認したパーティション内にリビルド非対象領域が含まれていない場合にはステップＳ２５５に遷移する。ステップＳ２５５においてＣＰＵ４０１はパーティションの未使用領域に合わせて、使用するダミーデータファイルのサイズと数量を選定する。ステップＳ２５５を終えるとステップＳ２５６に遷移する。ステップＳ２５６の説明は後述する。ステップＳ５２５の説明に戻る。
【００８３】
ステップＳ２５２にて確認したパーティション内にリビルド非対象領域が含まれている場合にはステップＳ２５３の処理を行う。
【００８４】
ステップＳ２５３にてＣＰＵ４０１は、パーティション内に存在するファイルの格納アドレス及びデータサイズとリビルド非対象領域のアドレス範囲から、パーティション内のリビルド対象領域の未使用領域のサイズとアドレス情報を特定する。
【００８５】
ステップＳ２５４にてＣＰＵ４０１は、ステップＳ２５３にて取得したパーティション内のリビルド対象領域に合わせて、使用するダミーデータファイルのサイズと数量を選定する。
【００８６】
また、ステップＳ２５６にて全てのパーティションに対するダミーデータファイルの選定が終了すると、ステップＳ２５７にてパーティション毎に設定したダミーデータファイルのサイズおよび数量を管理するライトテーブルを生成する。
【００８７】
ステップＳ２５８にてＳ２５７で生成した前記ダミーデータファイルのライトテーブルに合わせて、ＣＰＵ４０１は各パーティションにダミーデータファイルをライトする。ステップＳ２１１において全てのダミーデータファイルの書込みの終了が確認されると、図７の（ａ）の様にマスターストレージであるストレージデバイス４１４のリビルド対象領域内の未使用領域が全てダミーデータファイルで満たされる。ステップＳ２１１を終えるとステップＳ２１２に遷移する。
【００８８】
ステップＳ２１２にてミラーリング制御部４１３は、Ｓ２０８にて設定された論理アドレスの範囲のデータをストレージデバイス４１４から読み出して、ストレージデバイス４１５の同一アドレスにコピーを行う部分リビルド制御を開始する。
【００８９】
ステップＳ２１３にてリビルド制御の終了確認を行う。リビルド制御が完了すると図７の（ｂ）の様に、マスターストレージとスレーブストレージは完全に同じ状態となる。なお、リビルド制御が完了するまでステップＳ２１３を維持する。
【００９０】
そして、ステップＳ２１４においてＣＰＵ４０１はミラーリング制御部４１３をミラーリング制御に設定する。ステップＳ２１５にてストレージデバイス４１５がＳＳＤでなかった場合にはステップＳ２１８に遷移する。ステップＳ２１８の説明は後述する。
【００９１】
ステップＳ２１５にてストレージデバイス４１５がＳＳＤであった場合にはステップＳ２１６に遷移する。ステップＳ２１６にてＣＰＵ４０１は全てのダミーデータファイルの論理消去を行う。この処理によって、図７（ｃ）のようにマスターストレージとスレーブストレージ内のダミーデータファイルの格納されていた領域がＯＳから管理情報で不要とされたデータの領域となる。
【００９２】
ステップＳ２１７にてＣＰＵ４０１はＳＳＤに対してＴｒｉｍコマンドを送信する。
【００９３】
Ｔｒｉｍコマンドを受信したＳＳＤは、ＯＳから管理情報で不要とされた領域のデータの消去処理を行うため、図７の（ｄ）のようにリビルド前のマスターストレージの状態がスレーブストレージ側に完全に再現できる。なお、ストレージデバイス４１４，４１５が共にＳＳＤの場合は両方にＴｒｉｍコマンドを送信し、マスターストレージであるストレージデバイス４１４がＨＤＤの場合はストレージデバイス４１５のみにＴｒｉｍコマンドを送信する。
【００９４】
ステップＳ２１８はステップＳ１１３に対応し、ストレージデバイス４１４およびストレージデバイス４１５は、スタンバイ状態に移行する。
【００９５】
本実施例の構成においても、空き容量があるマスターストレージを基にリビルド制御を実行する際に、スレーブストレージ側ＳＳＤ制御部から見た未使用領域が全て使用済みとなってライトパフォーマンスが大幅にダウンする現象を抑制することができる。
【００９６】
さらに、本実施例の構成によれば、所定値以上の連続未使用領域を検知してリビルド非対象領域とし、対象領域のみにダミーデータファイルの書込み処理を行い、対象領域のみを部分リビルドすることでリビルドの処理時間を短縮できる。
【００９７】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００９８】
なお、実施例１および実施例２において、ダミーデータファイルに使用するデータとして“ＦＦ”（ＡＬＬ“１”）データを使用する事により、フラッシュメモリの実質的なデバイス寿命の消費を抑制する事ができる。
【００９９】
（その他の実施形態）
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
【０１００】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０１】
４０１  ＣＰＵ
４１２  ストレージ制御部
４１３  ミラーリング制御部
４１４  ストレージデバイス
４１５  ストレージデバイス
【図１】
2020107243.tif 000003
【図２】
2020107243.tif 000004
【図３】
2020107243.tif 000005
【図４】
2020107243.tif 000006
【図５】
2020107243.tif 000007
【図６】
2020107243.tif 000008
【図７】
2020107243.tif 000009
【図８】
2020107243.tif 000010
【図９】
2020107243.tif 000011
【図１０】
2020107243.tif 000012
【図１１】
2020107243.tif 000013
【図１２】
2020107243.tif 000014