(57)【要約】      （修正有）【課題】半導体メモリで構成された記憶部と、磁気ディスクで構成された記憶部とに対して信頼性の高いミラーリング制御を行うことができるディスク制御装置を提供する。【解決手段】ディスク制御装置は、ＳＳＤにおけるデータの書き換え回数から、導出されたＳＳＤにおけるデータの保持期間を経過した後に、ＳＳＤにおけるデータの書き換え回数を取得し、この取得された書き換え回数が、取得されたＳＳＤにおけるデータの書き換え回数から、予め定められた値以上に増加しなかったとき、ＨＤＤからデータを読み取るように設定する。【選択図】図３
2012079100.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリで構成された第１記憶部と、磁気ディスクで構成された第２記憶部とに対してミラーリング制御を行うとともに、データを読み取る場合には、前記第１記憶部から読み取るように予め設定されたディスク制御装置であって、
前記第１記憶部におけるデータの書き換え回数を取得する第１取得部と、
前記第１記憶部におけるデータの書き換え回数と、その書き換え回数でのデータの保持期間とが対応付けられた保持期間情報を用いて、前記第１取得部により取得された書き換え回数から、前記第１記憶部におけるデータの保持期間を導出する導出部と、
前記導出部により導出された保持期間を経過した後に、前記第１記憶部におけるデータの書き換え回数を取得する第２取得部と、
前記第２取得部により取得された書き換え回数が前記第１取得部により取得された書き換え回数から、予め定められた値以上に増加しなかったとき、前記第２記憶部からデータを読み取るように設定する設定部と
を備えたことを特徴とするディスク制御装置。
【請求項２】
前記設定部により、前記第２記憶部からデータを読み取るように設定された後に、前記第１記憶部に記憶されたデータと第２記憶部に記憶されたデータとの整合がなされているか否かを判別する判別部と、
整合がなされていないときに、前記第２記憶部に記憶されているデータを前記第１記憶部に上書きすることによりデータの修復を行う修復部と、
整合がなされているとき、又は前記修復部によりデータの修復が行われたときに、前記第１記憶部をリフレッシュするリフレッシュ部と、
前記リフレッシュ部によりリフレッシュされた第１記憶部からデータを読み取るように設定する他の設定部と
を備えたことを特徴とする請求項１記載のディスク制御装置。
【請求項３】
前記第１記憶部は、S.M.A.R.T.機能を有し、
前記取得部は、前記S.M.A.R.T.機能により前記第１記憶部に記憶されたMax Erase Count、及びAverage Erase Countのいずれか一方を、前記データの書き換え回数として取得する請求項１又は２記載のディスク装置。
【請求項４】
半導体メモリで構成された第１記憶部と、磁気ディスクで構成された第２記憶部とに対してミラーリング制御を行うとともに、データを読み取る場合には、前記第１記憶部から読み取るように予め設定されたディスク制御装置のディスク制御方法であって、
前記第１記憶部におけるデータの書き換え回数を取得する第１取得ステップと、
前記第１記憶部におけるデータの書き換え回数と、その書き換え回数でのデータの保持期間とが対応付けられた保持期間情報を用いて、前記第１取得ステップにより取得された書き換え回数から、前記第１記憶部におけるデータの保持期間を導出する導出ステップと、
前記導出ステップにより導出された保持期間を経過した後に、前記第１記憶部におけるデータの書き換え回数を取得する第２取得ステップと、
前記第２取得ステップにより取得された書き換え回数が前記第１取得ステップにより取得された書き換え回数から、予め定められた値以上に増加しなかったとき、前記第２記憶部からデータを読み取るように設定する設定ステップと
を備えたことを特徴とするディスク制御方法。
【請求項５】
半導体メモリで構成された第１記憶部と、磁気ディスクで構成された第２記憶部とに対してミラーリング制御を行うとともに、データを読み取る場合には、前記第１記憶部から読み取るように予め設定されたディスク制御装置のディスク制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記第１記憶部におけるデータの書き換え回数を取得する第１取得ステップと、
前記第１記憶部におけるデータの書き換え回数と、その書き換え回数でのデータの保持期間とが対応付けられた保持期間情報を用いて、前記第１取得ステップにより取得された書き換え回数から、前記第１記憶部におけるデータの保持期間を導出する導出ステップと、
前記導出ステップにより導出された保持期間を経過した後に、前記第１記憶部におけるデータの書き換え回数を取得する第２取得ステップと、
前記第２取得ステップにより取得された書き換え回数が前記第１取得ステップにより取得された書き換え回数から、予め定められた値以上に増加しなかったとき、前記第２記憶部からデータを読み取るように設定する設定ステップと
を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク制御装置及びディスク制御方法、並びにプログラムに関し、特にミラーリング制御を行うディスク制御装置及びディスク制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
一般的なコンピュータでは、処理に使用するデータは、ハードディスク（以下、「ＨＤＤ」という）などの外部記憶装置に記憶されるが、記憶されたデータの保護を図るために、ＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）のような冗長化されたディスクアレイが利用されている。ＲＡＩＤにおいては、例えば複数のディスクドライブに同一のデータを格納するミラーリング（mirroring）構成であるレベル１のＲＡＩＤ（ＲＡＩＤ１）などが定義されている。
【０００３】
このＲＡＩＤ１を実現するディスク制御装置は、再構築（リビルド）機能と呼ぶデータ復元機能を有する。この再構築機能により、故障したＨＤＤに格納されたデータを、交換ＨＤＤに復元することができる。
【０００４】
また、ＨＤＤは、プラッタを高速回転させ、磁気ヘッドを移動させることで情報の読み書きを行っている。そのため、ＨＤＤは「衝撃や振動に弱い」、「消費電力が大きい」、「起動が遅い」などの問題があり、ＨＤＤの代替として近年、半導体メモリを利用したＳＳＤ（Solid State Drive）への置き換えが進んでいる。
【０００５】
上記ディスク装置としては、複数台のディスクを順番に使用してミラーリングを行うことで、ディスクの寿命を延ばす技術が開示されている（例えば、特許文献１参照）。このディスク制御装置は、マスタディスクを固定せず、複数台のディスクのうち任意のディスクのペアでミラーリングを行い、定期的に切り替えていくものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２５０６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特許文献１のディスク制御装置は、同種類のディスクで構成されているため、ＨＤＤでディスクアレイを構成した場合には、消費電力が大きく起動が遅くなる。そして、それに対応するために、ＳＳＤを用いてディスクアレイを構成したとしても、ＳＳＤには「書き換え可能回数」及び「データ保持期間」が有限という問題がある。そのため、ディスクアレイを構成するドライブに同一のデータを書き込むＲＡＩＤ１においては、これらの問題が同時に発生する可能性があり、ミラーリングを行っていたにもかかわらずデータが消失してしまうという重大な問題を引き起こしかねない。
【０００８】
本発明の目的は、半導体メモリで構成された記憶部と、磁気ディスクで構成された記憶部とに対して信頼性の高いミラーリング制御を行うことができるディスク制御装置及びディスク制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１記載のディスク制御装置は、半導体メモリで構成された第１記憶部と、磁気ディスクで構成された第２記憶部とに対してミラーリング制御を行うとともに、データを読み取る場合には、前記第１記憶部から読み取るように予め設定されたディスク制御装置であって、前記第１記憶部におけるデータの書き換え回数を取得する第１取得部と、前記第１記憶部におけるデータの書き換え回数と、その書き換え回数でのデータの保持期間とが対応付けられた保持期間情報を用いて、前記第１取得部により取得された書き換え回数から、前記第１記憶部におけるデータの保持期間を導出する導出部と、前記導出部により導出された保持期間を経過した後に、前記第１記憶部におけるデータの書き換え回数を取得する第２取得部と、前記第２取得部により取得された書き換え回数が前記第１取得部により取得された書き換え回数から、予め定められた値以上に増加しなかったとき、前記第２記憶部からデータを読み取るように設定する設定部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、半導体メモリにおけるデータの書き換え回数から、導出された半導体メモリにおけるデータの保持期間を経過した後に、半導体メモリにおけるデータの書き換え回数を取得し、この取得された書き換え回数が、取得された半導体メモリにおけるデータの書き換え回数から、予め定められた値以上に増加しなかったとき、磁気ディスクからデータを読み取るように設定するので、半導体メモリで構成された記憶部と、磁気ディスクで構成された記憶部とに対して信頼性の高いミラーリング制御を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るディスク制御装置の概略構成を示す図である。
【図２】図１におけるディスク制御システムがミラーリング制御時に用いられる保持期間テーブルを示す図である。
【図３】図１におけるＣＰＵによって実行されるミラーリング制御処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１３】
図１は、本発明の実施の形態に係るディスク制御装置を備える画像形成装置の概略構成を示す図である。
【００１４】
図１において、画像形成装置１０１は、本発明の実施の形態に係るディスク制御装置としてのコントローラ１０４を内蔵している。本実施の形態は、画像形成装置以外にも、例えば、パーソナルコンピュータやサーバーコンピュータ、各種家電など、ディスク制御システムを接続可能な全ての機器に適用可能である。
【００１５】
図１の画像形成装置１０１は、コントローラ１０４、スキャナ部１０２、及びプリンタ部１０３を備え、コンピュータ端末１１５とネットワークを介して接続されている。コントローラ１０４は、スキャナ部１０２、及びプリンタ部１０３と接続されている。
【００１６】
スキャナ部１０２は、画像入力デバイスであり、プリンタ部１０３は画像出力デバイスであり、いずれも公知技術で構成可能である。
【００１７】
コントローラ１０４は、画像形成装置１０１全体を制御し、ＣＰＵ１０５、ＲＡＭ１０６、ＲＯＭ１０７、操作部１０８、ＲＴＣ１１０、外部インタフェース１０９、及びディスク制御システム１１１を備え、これらはバスを介して互いに接続されている。
【００１８】
ＣＰＵ１０５は、画像形成装置１０１全体を制御する。ＲＡＭ１０６は、ＣＰＵ１０５が動作するためプログラムやデータ等が一時的に記憶される揮発性の記憶装置である。ＲＯＭ１０７は、画像形成装置１０１のブートプログラム等が格納されている不揮発性の記憶装置である。操作部１０８は、画像形成装置１０１を操作したり、画像形成装置１０１の状態を表示したりするためのユーザインタフェース（ＵＩ）である。ＲＴＣ１１０は、現在時刻を計時するリアルタイムクロックデバイスであり、画像形成装置１０１の電源が断たれている間も電池等のバッテリーバックアップ等によって動作し続ける。外部インタフェース１０９は、ＬＡＮなどを介して外部機器であるコンピュータ端末１１５と接続するためのインタフェースである。
【００１９】
ディスク制御システム１１１は、バスに接続されたディスクアレイ制御装置１１２と、ディスクアレイ制御装置１１２に夫々接続されたＳＳＤ１１４（Solid State Drive）（第１記憶部）、及びＨＤＤ１１３（Hard Disk Drive）（第２記憶部）とを備える。以下の説明で、ＨＤＤ１１３及びＳＳＤ１１４の両方を示す場合には、単にドライブと表現する。
【００２０】
ＳＳＤ１１４は、半導体メモリで構成され、ＨＤＤ１１３は、磁気ディスクで構成される。これらＳＳＤ１１４とＨＤＤ１１３に対してディスクアレイ制御装置１１２はミラーリング制御を行うとともに、データを読み取る場合には、ＣＰＵ１０５によりＳＳＤ１１４からデータを読み取るように予め設定されている。
【００２１】
ＨＤＤ１１３とＳＳＤ１１４は、ＣＰＵ１０５からの指示に応じて、画像形成装置１０１のプログラムや画像データ、オペレーティングシステムなどの種々のデータを記憶している。
【００２２】
ディスクアレイ制御装置１１２は、ＣＰＵ１０５からのライトデータをＨＤＤ１１３に格納するとともに、同一のデータをＳＳＤ１１４にも格納する。これにより、ＨＤＤ１１３とＳＳＤ１１４のデータ構造は同一となる。
【００２３】
また、ＣＰＵ１０５がデータをリードする場合は、予め決められたドライブからのみリード行う。そして、以後このリードを行う方のドライブをプライマリドライブ、行わない方のドライブをセカンダリドライブと呼ぶこととする。
【００２４】
そして、通常時はＳＳＤ１１４をプライマリドライブ、ＨＤＤ１１３をセカンダリドライブとして構成されている。また、冗長性のあるＲＡＩＤ構成では、定期的に整合性チェックを行うことが一般的である。この整合性チェックとは、ミラーリングを行っている双方のドライブのデータを比較し、データの不一致を検出した場合はプライマリドライブからセカンダリドライブへデータを上書きすることでデータの整合性を整えることを言う。
【００２５】
次に、ＳＳＤ１１４が有する機能であるS.M.A.R.T.（Self-Monitoring Analysis and Reporting Technology）機能について説明する。S.M.A.R.T.機能とは、ＳＳＤ及びＨＤＤが備えている自己診断機能のことであり、電源を投入した回数や不良セクタの数などＳＳＤやＨＤＤのさまざまな情報が記録され、故障の可能性を予告することができる。さらに、ＳＳＤとＨＤＤでは、記録しているS.M.A.R.T.の項目が異なっており、Max Erase CountはＳＳＤのみが記録している情報である。
【００２６】
このMax Erase CountとはＳＳＤの全ブロックの中で最も消去回数の多いブロックの消去回数を表している。ここで、ＳＳＤにおけるブロックとは、フラッシュメモリのデータを消去する単位のことで、データの読み書きの単位であるページより大きなサイズを持つ。そして、データの書き換えを行う際は、ブロック単位でデータを消去した後にページ単位で書き込みを行う必要がある。そのため、ブロックの消去回数は書き換え回数と同数になる。
【００２７】
また、ＳＳＤの書き換え回数はＳＳＤの制御を行うＳＳＤコントローラ（不図示）のウェアレベリングと呼ばれる機能により書き換え回数がほぼ均等になるように制御されている。そのため、特定のブロックの消去回数が突出して多くなることはないように設計されている。
【００２８】
図２は、図１におけるディスク制御システム１１１がミラーリング制御時に用いられる保持期間テーブル（保持期間情報）を示す図である。
【００２９】
図２において、保持期間テーブルは、ＳＳＤ１１４におけるデータの書き換え回数「Max Erase Count」と、その書き換え回数でのデータの保持期間である「データ保持期間」とが対応付けられている。この保持期間テーブルは、Max Erase CountからＳＳＤ１１４がデータを保持可能な時間を示している。
【００３０】
例えば、Max Erase Countが１０００以下であれば、書き込まれたデータは、データを書き込んだときから５０００時間まで保持されることを示している。また、Max Erase Countが１００００以上であれば、ＳＳＤ１１４を交換すべきであることが示されている。
【００３１】
この保持期間テーブルは、ディスク制御システム１１１のミラーリング制御プログラムに予め組み込まれている。
【００３２】
図３は、図１におけるＣＰＵ１０５によって実行されるミラーリング制御処理の手順を示すフローチャートである。
【００３３】
図３において、ＳＳＤ１１４からMax Erase Count（書き換え回数）を取得し（ステップＳ２０１）（第１取得部）、上記保持期間テーブルを用いて、取得された書き換え回数から、ＳＳＤ１１４におけるデータの保持期間を導出し（ステップＳ２０２）（導出部）、データの保持期間が経過したとき（ステップＳ２０３でＹＥＳ）、再びＳＳＤ１１４からMax Erase Countを取得し（ステップＳ２０４）（第２取得部）、Max Erase CountがステップＳ２０１で取得されたMax Erase Countから予め定められた値以上に増加したか否か判別する（ステップＳ２０５）。
【００３４】
ステップＳ２０５の判別の結果、Max Erase CountがステップＳ２０１で取得されたMax Erase Countから予め定められた値以上に増加したとき（ステップＳ２０５でＹＥＳ）、データ保持期間が経過する前に各ブロックに対して書き換えが行われたと判断して、直ちに本処理を終了する。
【００３５】
なお、上記予め定められた値としてはウェアレベリングを考慮して、２〜１０程度に設定することが望ましい。また、今回はMax Erase Countを使用して各ブロックに対して書き換えが行われたか否かの判定を行ったが、他にも平均消去回数を表すAverage Erase Countやこの２つを組み合わせて判定を行っても良い。
【００３６】
一方、ステップＳ２０５の判別の結果、Max Erase CountがステップＳ２０１で取得されたMax Erase Countから予め定められた値以上に増加していなとき（ステップＳ２０５でＮＯ）、ＳＳＤ１１４に対して書き換えが行われなかったということを意味するので、ＳＳＤ１１４のデータが消滅している可能性があり、データの保障ができない。そこで、ＣＰＵ１０５はプライマリとセカンダリの設定を入れ替え、ＨＤＤ１１３の方をプライマリドライブに設定する（ステップＳ２０６）（設定部）。
【００３７】
次いで、データの保障ができないＳＳＤ１１４のデータをチェックするため、ミラーリングを構成しているＨＤＤ１１３記憶されたデータとＳＳＤ１１４に記憶されたデータとが整合しているか否かチェックを行い（ステップＳ２０７）（判別部）、整合していると判別されたとき（ステップＳ２０８でＹＥＳ）、ステップＳ２１０に進み、不整合と判別されたとき、ＨＤＤ１１３に記憶されているデータをＳＳＤ１１４に上書きすることによりデータの修復を行い（修復部）、ステップＳ２１０に進む。
【００３８】
続くステップＳ２１０では、ＳＳＤ１１４の全ブロックをリフレッシュする（リフレッシュ部）。リフレッシュとは、全ブロックについて各ブロックのデータを消去後、同じデータを書き直すことを言い、リフレッシュを行うことで、ＳＳＤ１１４のデータ保持期間はクリアされる。
【００３９】
リフレッシュされた後、ＳＳＤ１１４をプライマリドライブ、ＨＤＤ１１３をセカンダリドライブに設定して（ステップＳ２１１）、本処理を終了する。
【００４０】
上述したステップＳ２０２において、ステップＳ２０１で取得したMax Erase Countが保持期間テーブルに規定されている上限回数まで到達していた場合は、操作部１０８にその旨を表示し、ユーザにＳＳＤ１１４の交換を促すようにしてもよい。
【００４１】
図３の処理によれば、ＳＳＤ１１４におけるデータの書き換え回数から、導出されたＳＳＤ１１４におけるデータの保持期間を経過した後に、ＳＳＤ１１４におけるデータの書き換え回数を取得し（ステップＳ２０４）、この取得された書き換え回数が、取得されたＳＳＤ１１４におけるデータの書き換え回数から、予め定められた値以上に増加しなかったとき、ＨＤＤ１１３からデータを読み取るように設定する（ステップＳ２０６）ので、信頼性が低下したＳＳＤ１１４から信頼性の高いＨＤＤ１１３からデータを読み取るように設定される結果、信頼性の高いミラーリング制御を行うことができる。
【００４２】
また、ステップＳ２０６でＨＤＤ１１３をプライマリに設定される前、及びステップＳ２１１でＳＳＤ１１４をプライマリに設定された後は、ＳＳＤ１１４の方がＨＤＤ１１３よりも高速にデータを読み取ることが一般的に可能であることから、データの読み取りに関するパフォーマンスを向上することができる。
【００４３】
（他の実施形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００４４】
１０１  画像形成装置
１０４  コントローラ
１０５  ＣＰＵ
１０７  ＲＯＭ
１１１  ディスク制御システム
１１２  ディスクアレイ制御装置
１１３  ＨＤＤ
１１４  ＳＳＤ
【図１】
2012079100.tif 000003
【図２】
2012079100.tif 000004
【図３】
2012079100.tif 000005