(57)【要約】【課題】アクセスのバックグラウンドで実行するフォーマットにおいて、デバイスへのアクセス性能を確保しつつ、フォーマットの所要時間を短縮すること。【解決手段】ストレージ２１，２２内のデバイスに対するフォーマット進捗状況をクイックフォーマットビットマップ３２ｄで管理し、ビットマップの１ビット分のフォーマット毎にコントローラモジュール１１に進捗状況を通知する通常クイックフォーマットと、所定ビット分のフォーマット毎にコントローラモジュール１１に進捗状況を通知する高速クイックフォーマットとを設け、フォーマット動作切替部４２ａがアクセスの発生状況やデバイスの動作状態に基づいて通常クイックフォーマットと高速クイックフォーマットとを切り替える。【選択図】図１
2010211318.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置であって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理部と、
前記デバイスに対して所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理部と、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視部と、
前記監視部の監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替部と、
を備えたことを特徴とするデバイス管理装置。
【請求項２】
前記初期化処理の処理単位を１ビットとするビットマップを更に備え、前記第１初期化処理部および第２初期化処理部は、前記ビットマップを用いて前記初期化処理の進捗状況を管理することを特徴とする請求項１に記載のデバイス管理装置。
【請求項３】
前記切替部は、前記ディスクへのアクセス要求間隔に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする請求項１または２に記載のデバイス管理装置。
【請求項４】
前記切替部は、前記ディスクへの書き込みキャッシュの蓄積量に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする請求項１〜３のいずれか一つに記載のデバイス管理装置。
【請求項５】
前記切替部は、前記ディスクの処理能力の状態に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする請求項１〜４のいずれか一つに記載のデバイス管理装置。
【請求項６】
ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置によるデバイス初期化方法であって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理ステップと、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理ステップと、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視ステップと、
前記監視ステップによる監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替ステップと、
を備えたことを特徴とするデバイス初期化方法。
【請求項７】
ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置が実行する初期化プログラムであって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理ステップと、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理ステップと、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視ステップと、
前記監視ステップによる監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替ステップと、
をデバイス管理装置に実行させることを特徴とするデバイス初期化プログラム。
【請求項８】
ユーザデータを格納するデータを記憶するデバイスと、
すくなくとも前記デバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なう複数のデバイス管理装置と、
を備え、
前記デバイス管理装置は、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理部と、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理部と、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視部と、
前記監視部の監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替部と、
を備えたことを特徴とするデバイスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムに関する。
【背景技術】
【０００２】
ユーザデータを格納するデバイスとして、磁気ディスク、光磁気ディスク、光ディスクなどの記録媒体などを用いる場合、実際にユーザデータを書き込む前に予め初期化、いわゆるフォーマットを実行することが求められる。
【０００３】
従来は、デバイス全体のフォーマットが完了するまではそのデバイスは使用できず、フォーマット完了までに要する時間の長さが問題となっていた。そこで、初期化処理をデバイスへのアクセスのバックグラウンドで行なうクイックフォーマットが利用されている。
【０００４】
クイックフォーマットでは、初期化の開始直後からアクセスを可能とする為、初期化の進捗状況をビットマップなどを用いて管理する。そして、未フォーマット領域に対してアクセス要求が行われた場合には、その領域を優先的にフォーマットした上でアクセスを処理する。
【０００５】
ここで、デバイスへのアクセスを管理するデバイス管理装置を複数有し、デバイスへのアクセスを二重化したデバイスシステムでは、初期化の進捗状況の管理についても二重化することが求められる。そこで従来のクイックフォーマットでは、ビットマップの１ビット分に対応する初期化が完了したタイミングで、ビットマップを更新処理し、デバイス管理装置間でビットマップの二重化を行なっていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３６１７６３１号公報
【特許文献２】特許第３６１７６３２号公報
【特許文献３】特開２００３−２４１９０４号公報
【特許文献４】特開２００３−１０８３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、フォーマット進捗状況の二重化に要する時間を考慮すると、進捗状況の二重化を行なう回数が少ないほうが、フォーマットが完了するまでに要する時間が短くなる。
【０００８】
すなわち、フォーマット中のデバイスに対するアクセスの発生頻度よりも進捗状況の二重化の頻度が高すぎると、二重化処理によってフォーマットにかかる時間が長くなるという問題点があった。一方、フォーマット中のデバイスに対するアクセスの発生頻度よりも進捗状況の二重化の頻度が低すぎると、多数のアクセスを待たせることになり、アクセス応答性の低下や、タイムアウト発生の原因となる。さらに、アクセスの発生頻度は一定ではないので、フォーマット進捗状況の二重化を行なうタイミングについて最適な一つの値を求めることは困難であった。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、デバイスへのアクセス性能を確保しつつ、フォーマットの所要時間を短縮するデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムは、初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理と、所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理とを、デバイスに対するアクセスの発生状況やデバイスの動作状態に基づいて切り替える。
【発明の効果】
【００１１】
本願の開示するデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムの一つの態様によれば、デバイスへのアクセス性能を確保しつつ、フォーマットの所要時間を短縮するデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムを得ることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、デバイスシステムの実施例であるストレージシステムの概要構成を示す概要構成図である。
【図２】図２は、フォーマット処理部４２によるフォーマット処理の具体的な処理動作について説明する説明図である。
【図３】図３は、クイックフォーマットの切り替えの具体例について説明する説明図である。
【図４】図４は、フォーマット処理部４２の処理動作を説明するフローチャートである。
【図５】図５は、通常クイックフォーマット処理部４２ｂによる通常クイックフォーマットの処理動作について説明するフローチャートである。
【図６】図６は、高速クイックフォーマット処理部４２ｃによる高速クイックフォーマットの処理動作について説明するフローチャートである。
【図７】図７は、ローカルな進捗状況管理をビットマップ以外で行なう場合の処理動作を示すフローチャートである。
【図８】図８は、図４に示した書き戻し処理について詳細に説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
図１は、デバイスシステムの実施例であるストレージシステムの概要構成を示す概要構成図である。図１に示したストレージシステムは、デバイス管理装置であるコントローラモジュール１０，１１を有する。コントローラモジュール１０は、ユーザデータを格納するデータデバイスを複数備えたストレージ２１，２２と接続されている。同様に、コントローラモジュール２０もストレージ２１，２２に接続されており、さらにコントローラモジュール１０とコントローラモジュール１１とはルータ２０を介して接続されている。
【００１５】
コントローラモジュール１０とコントローラモジュール１１とは、それぞれ図示しないホストと接続しており、ストレージ２１，２２に対するアクセスを二重化している。
【００１６】
コントローラモジュール１０は、その内部に主制御部３１、メモリ３２、ホストインターフェース３３およびデバイスインターフェース３４を有する。さらに主制御部３１は、その内部にアクセス処理部４１、フォーマット処理部４２、デバイス監視部４３を有する。主制御部３１が有する各処理部は、それぞれワイヤードロジックやＰＬＤ(Programmable Logic Device)などで実現してもよいし、ＣＰＵ（Central Processing Unit）などの演算装置で主制御部３１を実現し、各処理をソフトウェアで実現してもよい。
【００１７】
アクセス処理部４１は、ホストインターフェース３３を介してホストからストレージに対するアクセス要求を受け付け、デバイスインターフェース３４を介してストレージ２１，２２に対するアクセスを処理する。
【００１８】
フォーマット処理部４２は、ストレージ２１，２２が有するデバイスの初期化処理を行なう処理部であり、その内部にフォーマット動作切替部４２ａ、通常クイックフォーマット処理部４２ｂおよび高速クイックフォーマット処理部４２ｃを有する。
【００１９】
通常クイックフォーマット処理部４２ｂと高速クイックフォーマット処理部４２ｃは、それぞれストレージ２１，２２に対するクイックフォーマットを行う。ここでクイックフォーマットとは、当該デバイスに対するアクセスのバックグラウンドで初期化処理を行うフォーマット方式をいう通常クイックフォーマット処理部４２ｂは、初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置であるコントローラモジュール１１に通知して、初期化の進捗状況を二重化する通常クイックフォーマットを実行する。これに対し、高速クイックフォーマット処理部４２ｃは、２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置であるコントローラモジュール１１に通知して、初期化の進捗状況を二重化する高速クイックフォーマットを実行する。フォーマット動作切替部４２ａは、デバイス状態監視部４３による監視結果に基づいて通常クイックフォーマットと高速クイックフォーマットとを切り替える。
【００２０】
デバイス状態監視部４３は、ストレージ２１，２２に対するアクセスの発生状況やストレージ２１，２２の動作状態を監視する処理部である。
【００２１】
メモリ１２は、コントローラモジュール１０が内部で使用する各種データを保持する記憶部であり、その内部にキャッシュ３２ａ 、ＩＯ状況管理テーブル３２ｂ、クイックフォーマット管理テーブル３２ｃ、クイックフォーマットビットマップ３２ｄを有する。
【００２２】
キャッシュ３２ａは、アクセス処理部４１がストレージ２１，２２に対するアクセスを処理する際に使用する。具体的には、アクセス処理部４１は、ホストからストレージに対する書き込み要求を受けた場合に、書き込み先のアドレスと書き込む内容をキャッシュ３２ａに保持し、ホストに対して書き込み応答を返す。その後、キャッシュ３２ａに保持した内容を実際にストレージ２１，２２に対して書き込む書き戻しを行なうことで、ホストからの書き込み要求をストレージ２１，２２に反映させる。
【００２３】
ＩＯ処理状況管理テーブル３２ｂは、デバイス状態監視部４３の監視結果、具体的には、ストレージ２１，２２が有する各デバイスの種別、応答時間、スループット、アクセスの発生頻度などを保持する。
【００２４】
クイックフォーマット管理テーブル３２ｃは、フォーマット処理部４２がクイックフォーマットを実行中である場合に、どのデバイスがフォーマットの対象であるか、初期化処理の処理単位、すなわちクイックフォーマットビットマップ３２ｄでの１ビットがデバイス上でどれだけの容量に対応しているか、クイックフォーマットビットマップ３２ｄの各ビットがデバイス上のどのアドレスに対応しているか、などの情報を保持する。なお、ビットマップ３２ｄでの１ビットがデバイス上でどれだけの容量に対応するかは適宜設定可能であり、一例としてデバイス上の１メガビットをビットマップ３２ｄの１ビットに対応させる。
【００２５】
クイックフォーマットビットマップ３２ｄは、クイックフォーマットの進捗状況を保持する。ビットマップ上の１ビットは、初期化処理の処理単位であり、１ビットがデバイス上でどれだけの容量に対応しているか、また、各ビットとデバイス上の実アドレスとの対応関係は、クイックフォーマット管理テーブル３２ｃに規定されている。
【００２６】
なお、ここではキャッシュ３２ａ 、ＩＯ状況管理テーブル３２ｂ、クイックフォーマット管理テーブル３２ｃ、クイックフォーマットビットマップ３２ｄを同一のメモリ３２上に保持する場合を例に説明を行なったが、情報毎に異なる記憶手段を設けても良いし、任意の組み合わせで複数の記憶手段に分散して記憶するようにしても良いことは言うまでも無い。
【００２７】
コントローラモジュール１１は、コントローラモジュール１０と同様の内部構成を有する。また、ここではコントローラモジュールが２つの場合を例としているが、コントローラモジュールを３以上有する構成としても良い。
【００２８】
図２は、フォーマット処理部４２によるフォーマット処理の具体的な処理動作について説明する説明である。まず、フォーマット処理部４２がストレージ２１に対してフォーマット要求を送る。このフォーマット要求は、具体的には、初期データの書き込み要求である。初期データとしては、任意のデータパターンを用いることができる。
【００２９】
ストレージ２１は、フォーマット要求、具体的には１ｂｉｔに対応する領域への初期データの書き込み指示を実行し、１ｂｉｔに対応する領域が終わったあとにフォーマット応答をフォーマット処理部４２に返す。
【００３０】
フォーマット処理部４２は、このフォーマット応答を受け、クイックフォーマットビットマップ３２ｄを更新する。その後、フォーマット処理部４２は、ビットマップ更新内容をコントローラモジュール１１に送信する。コントローラモジュール１１の主制御部５１は、受信した更新内容を自身のメモリ５２に有するクイックフォーマットビット５２ｄに反映させることで、ビットマップを二重化する。
【００３１】
通常クイックフォーマットでは、通常クイックフォーマット処理部４２ｂは、クイックフォーマットビットマップ３２ｄの１ビット分ごとにフォーマット要求、ビットマップ更新、ビットマップ二重化を行なう。
【００３２】
高速クイックフォーマットでは、高速クイックフォーマット処理部４２ｃは、ビットマップ二重化の頻度を通常クイックフォーマットに対して低くする。すなわち、高速クイックフォーマット処理部４２ｃは、複数ビット分のフォーマットを行なってからビットマップ二重化を行なう。したがって、高速クイックフォーマットでは、コントローラモジュール１０側だけでフォーマットの進捗状況を把握している状態が発生することとなる。
【００３３】
なお、高速フォーマットにおけるフォーマット要求は、１ビットずつ行なってもよいし、数ビット分をまとめて実行しても良い。また、コントローラモジュール１０側でのローカルな進捗状況の管理はクイックフォーマットビットマップ３２ｄを用いてもよいし、クイックフォーマット管理テーブル３２ｃなどに保持しても良い。
【００３４】
フォーマットの実行中のデバイスに対してホストからの書き込み要求が発生した場合、アクセス処理部４１は、書き込み要求の内容、すなわち書き込み先のアドレスと書き込む内容をキャッシュ３２ａに保持し、ホストに対して書き込み応答を返す。つぎに、アクセス処理部４１は、書き込み先のアドレスをキーにクイックフォーマット管理テーブル３２ｃを参照して対応するビットを特定し、クイックフォーマットビットマップ３２ｄを参照して書き込み先に対応するビットがフォーマット済みであるか否かを判定する。
【００３５】
その結果、書き込み先がフォーマット済みである場合にはそのままキャッシュ上のデータを書き込む。また、書き込み先が未フォーマットである場合には、その書き込み先を含むビットマップで管理される単位領域に対して先にフォーマットしてから、キャッシュ上のデータを書き込む。
【００３６】
このように、フォーマット中であってもホストからの書き込み要求を処理することができるが、書き込み要求先のアドレスがフォーマット済みであるか否かを判定する際には、フォーマットの進捗状況が二重化されていることが前提となる。
【００３７】
そのため、書き込みキャッシュの書き込みを行なう場合には、フォーマットの進捗状況を二重化の完了を待つことになる。通常クイックフォーマットでは、高い頻度でビットマップの二重化を行なっているため、書き戻しの待機時間は短くてすむが、書き戻しの発生頻度が低ければ、ビットマップの二重化自体にかかる時間が余分な時間となる。高速クイックフォーマットでは、ビットマップの二重化の頻度が低いため、フォーマット全体の時間を短縮することができるが、書き戻しの待機時間は長くなる。また、多数のアクセスを待たせることになり、アクセス応答性の低下や、タイムアウト発生の原因となる。
【００３８】
そこで、フォーマット動作切替部４２ａは、ストレージ２１，２２に対するアクセスの発生状況やストレージ２１，２２の動作状態に基づいて通常クイックフォーマットと高速クイックフォーマットとを切り替える。
【００３９】
具体的には、フォーマット動作切替部４２ａは、通常のクイックフォーマットを実行中に、一定時間、例えば数秒から数分の間、ホストからのアクセスが無かった場合に、高速クイックフォーマットに切り替える。
【００４０】
そして、高速クイックフォーマット中、フォーマット動作切替部４２ａは、一定時間、例えば数秒から数分の間、ホストからの書き込み要求をキャッシュ３２ａ上に蓄積し、デバイスへの書き戻しを待機させる。また、フォーマット動作切替部４２ａは、書き込みキャッシュがキャッシュ３２ａ全体の一定割合に達した場合、通常クイックフォーマットに切り替えることもできる。
【００４１】
また、フォーマット動作切替部４２ａは、通常クイックフォーマット中、ホストからデバイスへのアクセス量が一定値以下の場合には高速クイックフォーマットによるホストアクセスへの影響は少ないと判断し、高速クイックフォーマットに移行することもできる。
【００４２】
さらに、フォーマット動作切替部４２ａは、高速クイックフォーマット中であってもストレージの応答時間やスループットなどが一定値以上の性能を示せば、高速クイックフォーマットを継続し、性能悪化が見られた場合に通常クイックフォーマットに移行させることもできる。具体的には、コントローラモジュール間のインタフェースよりも、コントローラモジュールとストレージとの間のインタフェースがボトルネックになる場合、コントローラ間の通信による二重化処理を行なっても問題は無く、また二重化処理によって信頼性を確保することができるため、ストレージに対する処理に性能悪化が見られるまでは高速クイックフォーマットを継続することが有効である。
【００４３】
このように、フォーマット動作切替部４２ａは、外部からのアクセス性能を落とすことなく、かつ信頼性を損なわずに装置内部のリソースの最適化を諮っている。
【００４４】
図３は、クイックフォーマットの切り替えの具体例について説明する説明図である。図３に示した例では、フォーマット処理部４２は、まず通常クイックフォーマットでフォーマットを開始する。通常クイックフォーマットでは、ビットマップの更新は随時二重化されるので、コントローラモジュール１０のクイックフォーマットビットマップ３２ｄとコントローラモジュール１０のクイックフォーマットビットマップ５２ｄとは常に同一内容となる。
【００４５】
その後、フォーマット処理部４２は、一定時間ホストからの入出力が無かった場合に、通常クイックフォーマットから高速フォーマットに切り替える。高速クイックフォーマットでは、フォーマットの進捗状況をコントローラモジュール１０だけがローカルで管理する一重化フォーマットとなる。このローカルな進捗状況の管理をクイックフォーマットビットマップ３２ｄを用いて行なう場合、クイックフォーマットビットマップ３２ｄとクイックフォーマットビットマップ５２ｄの内容にはタイムラグが発生する。また、ローカルな進捗状況管理をクイックフォーマットビットマップ３２ｄ以外で行なう場合、クイックフォーマットビットマップ３２ｄとクイックフォーマットビットマップ５２ｄの内容は一致するが、実際のフォーマットの進捗状況に対してタイムラグが発生する。
【００４６】
フォーマット処理部４２は、フォーマットが所定量進捗するごとに、ビットマップの更新と二重化を行なう。また、高速クイックフォーマット中に、ホストからのアクセスを検出した場合、フォーマット処理部４２は、その時点でフォーマットが完了している部分についてビットマップの更新と二重化を行なったうえで、通常フォーマットに切り替える。
【００４７】
つぎに、図４を参照し、フォーマット処理部の処理動作についてさらに説明する。図４は、フォーマット処理部４２の処理動作を説明するフローチャートである。クイックフォーマットを開始する場合、フォーマット処理部４２は、まず、通常クイックフォーマット処理部４２ｂにクイックフォーマットを実行させる（Ｓ１０１）。その後、フォーマット処理部４２は、デバイス全体のフォーマットが完了したか否かを判定し（Ｓ１０２）、フォーマットが完了していれば（Ｓ１０２，Ｙｅｓ）、処理を終了する。
【００４８】
一方、デバイスに未フォーマットの領域が残っている場合（Ｓ１０２，Ｎｏ）、フォーマット動作切替部４２ａがキャッシュ３２ａを参照し、キャッシュ３２ａに書き込みキャッシュが存在するか否か、すなわち書き込み要求が発生した否かを判定する（Ｓ１０３）。キャッシュ３２ａに書き込みキャッシュが存在する場合（Ｓ１０３，Ｙｅｓ）、フォーマット動作切替部４２ａはタイマーをリセットし（Ｓ１０７）、アクセス処理部４１に書き戻し処理を実行させて（Ｓ１０８）、再び通常クイックフォーマットを行なう（Ｓ１０１）。
【００４９】
一方、書き込みキャッシュが存在しない場合（Ｓ１０３，Ｎｏ）、フォーマット動作切替部４２ａは、タイマーを加算し（Ｓ１０４）、タイマーの値が所定値未満であれば（Ｓ１０５，Ｎｏ）、通常クイックフォーマットに戻る（Ｓ１０１）。
【００５０】
そして、タイマーの値が所定値以上となった場合（Ｓ１０５，Ｙｅｓ）、フォーマット動作切替部４２ａは、タイマーをリセットし（Ｓ１０６）、高速クイックフォーマット処理部４２ｃによる高速クイックフォーマットに移行する（Ｓ１１０）。その後、フォーマット処理部４２は、デバイス全体のフォーマットが完了したか否かを判定し（Ｓ１１１）、フォーマットが完了していれば（Ｓ１１１，Ｙｅｓ）、処理を終了する。
【００５１】
一方、デバイスに未フォーマットの領域が残っている場合（Ｓ１１１，Ｎｏ）、フォーマット動作切替部４２ａがキャッシュ３２ａを参照し、キャッシュ３２ａ内の書き込みキャッシュ量を所定の閾値と比較する（Ｓ１１２）。その結果、キャッシュ量が所定値未満であれば（Ｓ１１２，Ｎｏ）、高速クイックフォーマット処理部４２ｃが再度高速クイックフォーマットを実行する（Ｓ１１０）。そして、キャッシュ量が所定値以上である場合（Ｓ１１２，Ｙｅｓ）、フォーマット処理部４２はフォーマットの進捗状況を二重化し（Ｓ１１３）、キャッシュ上のデータの書き戻し処理を行なって（Ｓ１１４）、通常クイックフォーマットに戻る（Ｓ１０１）。
【００５２】
図５は、通常クイックフォーマット処理部４２ｂによる通常クイックフォーマットの処理動作について説明するフローチャートである。通常クイックフォーマット処理部４２ｂは、まず、１ビット分のフォーマットを実行し（Ｓ２０１）、自コントローラ内のクイックフォーマットビットマップ３２ｄを更新する（Ｓ２０２）。その後、通常クイックフォーマット処理部４２ｂは、ビットマップを二重化し（Ｓ２０３）、通常クイックフォーマット処理を終了する。
【００５３】
図６は、高速クイックフォーマット処理部４２ｃによる高速クイックフォーマットの処理動作について説明するフローチャートである。高速クイックフォーマット処理部４２ｃは、まず、所定ビット分のフォーマットを実行し（Ｓ３０１）、自コントローラ内のクイックフォーマットビットマップ３２ｄを更新する（Ｓ３０２）。このビットマップの更新によって、二重化していないフォーマットの進捗が所定量に達した場合（Ｓ３０３，Ｙｅｓ）、高速クイックフォーマット処理部４２ｃは、ビットマップを二重化して（Ｓ３０４）、高速クイックフォーマット処理を終了する。また、二重化していないフォーマットの進捗が所定量に達していなければ（Ｓ３０３，Ｎｏ）、高速クイックフォーマット処理部４２ｃは、そのまま高速クイックフォーマット処理を終了する。
【００５４】
図６に示した処理動作は、ローカルな進捗状況の管理にビットマップを用いる場合の動作例であるが、ローカルな進捗状況の管理をビットマップ以外で行なうこともできる。図７はローカルな進捗状況管理をビットマップ以外で行なう場合の処理動作を示すフローチャートである。
【００５５】
図７に示した例では、高速クイックフォーマット処理部４２ｃは、まず、所定ビット分のフォーマットを実行し（Ｓ４０１）、ローカルでの進捗情報を更新する（Ｓ４０２）。このローカルでの進捗情報は、例えばクイックフォーマット管理テーブル３２ｃなどに作成しておけばよい。
【００５６】
つぎに、高速クイックフォーマット処理部４２ｃは、ローカルでの進捗が所定量に達したか否かを判定する（Ｓ４０３）。ローカルでの進捗が所定量に達している場合（Ｓ４０３，Ｙｅｓ）、高速クイックフォーマット処理部４２ｃは、自コントローラ内のクイックフォーマットビットマップ３２ｄを更新し（Ｓ４０４）、ビットマップを二重化して（Ｓ４０４）、高速クイックフォーマット処理を終了する。また、二重化していないフォーマットの進捗が所定量に達していなければ（Ｓ４０３，Ｎｏ）、高速クイックフォーマット処理部４２ｃは、そのまま高速クイックフォーマット処理を終了する。
【００５７】
図８は、図４に示した書き戻し処理について詳細に説明するフローチャートである。まず、フォーマット処理部４２は、書き込みキャッシュの書き込み要求先がフォーマット済みであるか否かを判定する（Ｓ５０１）。その結果、書き込み要求先が未フォーマットである場合には、書き込み要求先を含むビットを通常クイックフォーマットでフォーマットする（Ｓ５０２）。
【００５８】
ステップＳ５０２の後、もしくは、書き込み要求先がフォーマット済みであった場合（Ｓ５０１，Ｙｅｓ）、アクセス処理部４１が書き込みキャッシュをデバイスに反映させるライトバックを実行し（Ｓ５０３）、書き戻し処理を終了する。
【００５９】
上述してきたように、本実施例では、クイックフォーマット中のデバイスへのアクセスが一定時間無かった場合には、クイックフォーマットの進捗管理をコントローラモジュール１０側で一重化して実施し、クイックフォーマットが一定量完了したところで、コントローラモジュール１１に進捗状況を通知して二重化する。このように、アクセスの発生状況やデバイスの状態に基づいて、進捗状況の二重化処理の実行頻度を変更することでフォーマットの所要時間を短縮することができる。
【００６０】
また、アクセスの頻度に応じて通常のクイックフォーマットに戻すので、クイックフォーマットを実行中のデバイスへのアクセス性能を確保することができる。
【００６１】
また、ローカルでの進捗状況の管理をビットマップとは独立して行なえば、処理をさらに高速化することができる。
【００６２】
同様に、高速クイックフォーマット時には、デバイスに対するフォーマット要求をまとめ実行すれば、１回あたりのフォーマット範囲が大きくなるので、コントローラモジュールとストレージとの間でのコマンド処理回数が減少し、デバイス内部動作のシーケンシャル性が向上して、フォーマット処理のさらなる高速化が実現できる。
【００６３】
なお、本実施例では、進捗状況の管理にビットマップを使用する場合を例に説明を行なったが、開示の技術はこれに限定されるものではなく、たとえば、順次実行したフォーマットの最終アドレスと、ホストアクセスによって優先的にフォーマットしたアドレスとを保持することで、フォーマットの進捗状況を管理するなど、任意の進捗管理を適用することができる。
【００６４】
同様に、通常クイックフォーマットと、高速クイックフォーマットとの切り替えについては、ホストからのアクセスの発生頻度や発生間隔、デバイスの動作状態などを適宜組み合わせて私用することができる。
【００６５】
さらに、本実施例では、デバイス管理装置であるコントローラモジュールが初期化方法を実行する場合を例に説明を行なったが、開示の技術をコントローラモジュールとして機能するコンピュータが実行するデバイス初期化プログラムとして実施しても良い。
【００６６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置であって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理部と、
前記デバイスに対して所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理部と、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視部と、
前記監視部の監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替部と、
を備えたことを特徴とするデバイス管理装置。
【００６８】
（付記２）前記第２初期化処理部は、前記二重化された進捗状況と、前回の二重化後の進捗状況とを個別に管理することを特徴とする付記１に記載のデバイス管理装置。
【００６９】
（付記３）前記第２初期化処理部は、前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に前記初期化の進捗状況を更新し、２以上の所定数の処理単位の初期化を実行する毎に当該初期化の進捗状況を他のデバイス管理装置に通知することを特徴とする付記１に記載のデバイス管理装置。
【００７０】
（付記４）前記初期化処理の処理単位を１ビットとするビットマップを更に備え、前記第１初期化処理部および第２初期化処理部は、前記ビットマップを用いて前記初期化処理の進捗状況を管理することを特徴とする付記１〜３のいずれか一つに記載のデバイス管理装置。
【００７１】
（付記５）前記切替部は、前記ディスクへのアクセス要求間隔に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする付記１〜４のいずれか一つに記載のデバイス管理装置。
【００７２】
（付記６）前記切替部は、前記ディスクへの書き込みキャッシュの蓄積量に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする付記１〜５のいずれか一つに記載のデバイス管理装置。
【００７３】
（付記７）前記切替部は、前記ディスクの処理能力の状態に基づいて前記第１初期化処理部による前記第１の初期化処理と前記第２初期化処理部による前記第２初期化処理とを切り替えることを特徴とする付記１〜６のいずれか一つに記載のデバイス管理装置。
【００７４】
（付記８）ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置によるデバイス初期化方法であって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理ステップと、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理ステップと、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視ステップと、
前記監視ステップによる監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替ステップと、
を備えたことを特徴とするデバイス初期化方法。
【００７５】
（付記９）ユーザデータを格納するデバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なうデバイス管理装置が実行する初期化プログラムであって、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理ステップと、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理ステップと、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視ステップと、
前記監視ステップによる監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替ステップと、
をデバイス管理装置に実行させることを特徴とするデバイス初期化プログラム。
【００７６】
（付記１０）ユーザデータを格納するデータを記憶するデバイスと、
すくなくとも前記デバイスに対する初期化処理をデバイスに対するアクセスのバックグラウンドで行なう複数のデバイス管理装置と、
を備え、
前記デバイス管理装置は、
前記デバイスに対して前記初期化処理の処理単位分の初期化を実行する毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第１の初期化処理を行なう第１初期化処理部と、
前記デバイスに対して２以上の所定数の処理単位の初期化を行なう毎に、当該初期化の進捗状況を他のデバイス管理装置に通知して前記初期化の進捗状況を二重化する第２の初期化処理を行なう第２初期化処理部と、
前記デバイスに対するアクセスの発生状況および／または前記デバイスの動作状態を監視する監視部と、
前記監視部の監視結果に基づいて前記第１の初期化処理と前記第２の初期化処理とを切り替える切替部と、
を備えたことを特徴とするデバイスシステム。
【符号の説明】
【００７７】
１０，１１    コントローラモジュール
２０    ルータ
２１〜２２  ストレージ
３１，５１    主制御部
３２，５２    メモリ
３２ａ  キャッシュ
３２ｂ  ＩＯ処理状況管理テーブル
３２ｃ  クイックフォーマット管理テーブル
３２ｄ，５２ｄ  クイックフォーマットビットマップ
３３    ホストインターフェース
３４    デバイスインターフェース
４１    アクセス処理部
４２    フォーマット処理部
４２ａ  フォーマット動作切替部
４２ｂ  通常クイックフォーマット処理部
４２ｃ  高速クイックフォーマット処理部
４３    デバイス状態監視部
【図１】
2010211318.tif 000003
【図２】
2010211318.tif 000004
【図３】
2010211318.tif 000005
【図４】
2010211318.tif 000006
【図５】
2010211318.tif 000007
【図６】
2010211318.tif 000008
【図７】
2010211318.tif 000009
【図８】
2010211318.tif 000010