(57)【特許請求の範囲】
【請求項１】
上位装置からのデイスクアクセス要求に応じて、物理デイスクに格納された論理ボリューム上のアクセス要求領域をアクセスするストレージ制御装置において、
前記論理ボリュームの所定の各フォーマット処理領域が未フォーマットかフォーマット済かの進捗情報を管理するためのビットマップメモリを有する論理フォーマット管理モジュールと、
前記論理フォーマット管理モジュールの処理要求に応じ、前記物理デイスクを実アクセスする下位層モジュールとを有し、
前記論理フォーマット管理モジュールは、前記デイスクアクセス要求に応じて、前記ビットマップメモリを参照し、当該アクセス領域全てが、フォーマット済かを判定し、フォーマット済と判断した場合に、前記下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングし、前記待ちキューにデイスクアクセス要求がない時は、前記ビットマップから未フォーマット領域を検索し、論理フォーマット処理要求を発行することを
特徴とするストレージ制御装置。
【請求項２】
前記論理フォーマット管理モジュールは、前記下位層モジュールからの論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップを更新するとともに、前記待ちキューを検索し、前記論理フォーマットの終了した前記デイスクアクセス要求を前記下位層モジュールに発行することを
特徴とする請求項１のストレージ制御装置。
【請求項３】
前記論理フォーマット管理モジュールは、発行される論理フォーマット要求間の競合を判定し、リンク処理することを
特徴とする請求項１のストレージ制御装置。
【請求項４】
前記論理フォーマット管理モジュールは、前記論理ボリューム単位に、前記下位層モジュールのキュー数を制限し、制限数を越えた前記論理フォーマット処理要求を一時保留することを
特徴とする請求項１のストレージ制御装置。
【請求項５】
上位装置からのデイスクアクセス要求に応じて、物理デイスクに格納された論理ボリューム上のアクセス要求領域をアクセスするストレージ制御方法において、
前記デイスクアクセス要求に応じて、前記論理ボリュームの所定の各フォーマット処理領域が未フォーマットかフォーマット済かの進捗情報を管理するための前記ビットマップメモリを参照し、当該アクセス領域全てが、フォーマット済かを判定するステップと、
フォーマット済と判断した場合に、下位層モジュールにデイスクアクセスを要求するステップと、
フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングするステップと、
前記待ちキューにデイスクアクセス要求がない時は、前記ビットマップから未フォーマット領域を検索して、論理フォーマット処理要求を発行するステップと、
前記下位層モジュールにより、前記デイスクアクセス要求及び前記論理フォーマット要求に応じて、前記物理デイスクを実アクセスするステップを有することを
特徴とするストレージ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気デイスク等の物理デイスクを使用してデータを管理するストレージ制御装置及びその方法に関し、特に、ＲＡＩＤ制御装置、オペレーティングシステム等に好適なストレージ制御装置及びその方法に関する。
【０００２】
【従来の技術】
磁気デイスク、光磁気デイスク、光デイスク等の記憶媒体を利用したストレージ機器では、データ処理装置の要求で、記憶媒体を実アクセスするため、記憶媒体にフォーマットの書き込みが必要である。このフォーマットとして、ＣＫＤフォーマット等の物理フォーマットと、データ領域をホストＯＳの処理単位（例えば、ブロック単位）に区切り、識別を施す論理フォーマットとがある。
【０００３】
このような記憶媒体のフォーマット化により、ホストＯＳのホストコマンドにより、記憶媒体のアクセス（リード／ライト等）が可能となる。物理フォーマットは、媒体のトラック単位の初期化処理であり、論理フォーマットは、物理フォーマットされたトラックのデータ領域のブロック単位のフォーマット処理を意味する。この内、フォーマット処理は、媒体の全てのブロックをフォーマットするには、時間がかかり、フォーマットされていない媒体を、実際に使用するには、長時間（例えば、３０分以上）のフォーマット処理を待つ必要があった。
【０００４】
このため、記憶媒体のフォーマット処理を初期化処理として行わずに、直ちに使用可能とし、ライトアクセスを受けた時に、その対象ブロックをフォーマット処理し、ライトする方法が提案されている（例えば、特開平８−１４７１１０号公報等）。
【０００５】
【発明が解決しようとする課題】
従来技術では、アクセスを受けた時に、論理フォーマットを実行するため、アクセスを受けない場合には、論理フォーマットを実行しないものであった。この従来技術は、ＭＤ（ミニデイスク）のように、１枚の媒体に、音楽、画像等を連続的にライトする場合には、好適である。
【０００６】
しかしながら、ホストやサーバー等に接続される大規模ストレージシステムのように、ランダムにアクセスがある場合には、アクセス毎に、論理フォーマット処理、アクセス処理を実行する必要があるため、アクセス処理に要する時間が遅くなり、アクセス時間の長期化を招くという問題が生じる。
【０００７】
特に、大容量のストレージシステムでは、論理フォーマットに要する時間が、論理ボリュームの大きさにより異なるが、およそ数十分から数時間かかるため、ストレージシステムの新設や、既存システムに論理ボリュームを増設するのに、アクセス時間が長くなるという問題が生じる。
【０００８】
従って、本発明の目的は、論理フォーマットを実行しながら、ホストアクセスを含むデータ処理を実行するためのストレージ制御装置及び制御方法を提供するにある。
【０００９】
又、本発明の他の目的は、ホストアクセスと関係なく論理フォーマットを実行しても、ホストアクセスを待たせる時間を短縮するためのストレージ制御装置及びその制御方法を提供するにある。
【００１０】
更に、本発明の他の目的は、ホストアクセスに伴う論理フォーマット処理と、ホストアクセスに関係しない論理フォーマット処理を並列に実行して、ホストアクセス処理の遅れを短縮するためのストレージ制御装置及びその制御方法を提供するにある。
【００１１】
【課題を解決するための手段】
この目的の達成のため、本発明は、上位装置からのデイスクアクセス要求に応じて、物理デイスクに格納された論理ボリューム上のアクセス要求領域をアクセスするストレージ制御装置において、前記論理ボリュームの所定の各フォーマット処理領域が未フォーマットかフォーマット済かの進捗情報を管理するためのビットマップメモリを有する論理フォーマット管理モジュールと、前記論理フォーマット管理部の処理要求に応じ、前記物理デイスクを実アクセスする下位層モジュールとを有し、前記論理フォーマット管理モジュールは、前記デイスクアクセス要求に応じて、前記ビットマップメモリを参照し、当該アクセス領域全てが、フォーマット済かを判定し、フォーマット済と判断した場合に、前記下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングし、前記待ちキューにデイスクアクセス要求がない時は、前記ビットマップから未フォーマット領域を検索して、論理フォーマット処理要求を発行することを特徴とする。
【００１２】
本発明では、ホストアクセスのバックグラウンドで、物理デイスクの論理フォーマット処理を行うため、シーケンシャルに論理フォーマットを実行しながら、ホストアクセスを実行できる。
【００１３】
又、論理ボリューム上の各ブロックが未フォーマットかフォーマット済かの進捗情報をビットマップで管理するため、デイスクアクセス要求があった場合には、ビットマップを参照して、当該アクセス領域全てが、フォーマット済かを判定できる。そして、フォーマット済となっていれば、下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングする。一方、待ちキューにデイスクアクセス要求がない時は、ビットマップから未フォーマット領域を検索して、論理フォーマット処理要求を発行する。
【００１４】
このため、シーケンシャルフォーマット処理を実行しながら、デイスクアクセス要求を実行できるとともに、容易に、デイスクアクセス要求のあったアクセス領域がフォーマット済かを判定できるため、クイックフォーマットを実行しても、アクセス要求に対する応答を高速化できる。しかも、シーケンシャルフォーマットへの復帰も、ビットマップを参照するため、容易となる。
【００１５】
又、本発明では、好ましくは、前記論理フォーマット管理モジュールは、前記下位層モジュールからの論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップを更新することを特徴とする。更に、好ましくは、前記論理フォーマット管理モジュールは、前記論理フォーマット処理要求の実行終了に応じて、前記待ちキューを検索し、前記論理フォーマットの終了した前記デイスクアクセス要求を前記下位層モジュールに発行することを特徴とする。
【００１６】
これにより、フォーマット済かの参照、更新をビットマップで行うことができ、高速に判定及び更新処理できる。又、待たされたホストアクセスを優先して実行でき、よりホストアクセスを高速に実行できる。
【００１７】
更に、本発明は、好ましくは、前記論理フォーマット管理モジュールは、発行される論理フォーマット要求間の競合を判定し、リンク処理することを特徴とする。これにより、未フォーマット領域に対する複数のホストアクセスの論理フォーマット要求同士、ホストアクセスの論理フォーマット要求とシーケンシャルフォーマット要求との競合を判定し、一方を待たせ、リンク処理するため、論理フォーマット要求を連続的に発行しても、これらを整理して、論理フォーマット要求を処理できる。このため、ホストアクセスへの応答が高速にできる。
【００１８】
更に、本発明は、好ましくは、前記論理フォーマット管理モジュールは、前記論理ボリューム単位に、前記下位層モジュールのキュー数を制限し、制限数を越えた前記論理フォーマット処理要求を一時保留することを特徴とする。これにより、論理フォーマット要求を連続的に発行しても、冗長グループ、論理ボリューム単位に、下位層のキュー数を制限し、制限数を越えたフォーマット処理要求を一時保留するため、冗長グループ、論理ボリューム単位のフォーマット処理の遅れを防止できる。
【００１９】
更に、本発明は、好ましくは、前記論理フォーマット管理モジュールは、前記物理デイスクに格納される複数の論理ボリュームの各々の前記ビットマップテーブルを備えることを特徴とする。更に、本発明は、好ましくは、前記物理デイスクに格納される各冗長グループの論理ボリューム毎の論理フォーマットの進捗情報を格納する管理テーブルと、前記ホストからのデイスクアクセス要求を受け、前記管理テーブルを参照して、アクセス対象の論理ボリュームが論理フォーマット済かを判定し、論理フォーマット済でない場合に、前記論理フォーマット管理モジュールに要求処理を引き渡す上位層モジュールを有することを特徴とする。
【００２０】
これにより、論理ボリュームに対し、管理テーブル、ビットマップを持ち、論理ボリューム単位且つブロック単位にフォーマット済かを管理するため、論理フォーマット単位でのフォーマット処理が可能となる。従って、フォーマット済の論理ボリュームは、ビットマップの検索を行わないため、処理の遅れを防止できる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を、ストレージシステム、クイックフォーマット処理、他の実施の形態の順で説明する。
【００２２】
［ストレージシステム］
図１は、本発明の一実施の形態のストレージシステムの構成図であり、磁気デイスクを使用したＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ    Ａｒｒａｙｓ    ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ）システムを示す。図１に示すように、磁気デイスク制御装置（以下ＦＣＵという）１は、計算機センタ（ホスト）３の大量のデータをＲＡＩＤディスクドライブ（以下、デイスクという）２へ高速かつ、ランダムに読み書きが出来るシステムである。
【００２３】
ＦＣＵ１は、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１０  ／  ＣＭ（Ｃｅｎｔｒａｌｉｚｅｄ  Ｍｏｄｕｌｅ）１２  ／  ＤＡ（Ｄｅｖｉｃｅ  Ａｄａｐｔｅｒ）１６  の３つのファンクションモジュールによって構成されている。これらの３つのファンクションモジュールは、ＦＣＵ１内部のアクションを行うための役割分担が決められており、処理の一極集中による負担を軽減している。また、モジュール間のコミュニケーション・インタフェースは、メッセージやＡＣＢと呼ばれるものを用いて処理内容や、各モジュールの状態の伝達を行っている。
【００２４】
各ファンクション・モジュール１０、１２、１６の役割分担の概要を以下に説明する。ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１０は、ＦＣＵ１とＨＯＳＴ３を結ぶホスト・インタフェースの制御をつかさどるモジュールである。ＣＡ１０は、ＨＯＳＴ３Ａ１０，ＣＭ１２、ＤＡ１６を接続し、コマンド、データのやり取りを行う。このＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ）は、大型機向けの高価なデイスクを、複数の小型機向けの小容量、安価なデイスクで置き換え、データの保全、冗長性を保証するディスクシステムである。
【００２５】
図２は、図１の構成の詳細ブロック図であり、クイックフォーマットを実現するモジュールを示している。ここで、クイックフォーマットとは、実際の論理フォーマット化を行う前に、ホストアクセスを許可し、ホストアクセスのバックグランドで、論理フォーマット処理を実行するものを意味する。又、図２では、ＲＡＩＤ５のシステムを示しており、４つの冗長グループＡ，Ｂ，Ｃ，Ｄが設けられ、各グループは、４台の物理デイスク２−１〜２−４、２−５〜２−８、２−９〜２−１２、２−１３〜２−１６で構成される。
【００２６】
ＣＭ１２は、上位層モジュール２０と、４つのクイックフォーマットモジュール２１−１〜２１−４とを有する。ＤＡ１６は、下位層モジュール２２−１〜２２−８を有する。上位層モジュール２０は、論理フォーマット及びリード・ライト等を要求する。下位層モジュール２２−１〜２２−８は、論理フォーマット及びリード・ライト等のデイスクアクセスを管理する。
【００２７】
上位層モジュール２０は、ＣＡ１０を介しホスト３からの要求を受けて、物理デイスクへのＩ／Ｏが必要かを判定し、必要であれば、デイスクアクセス要求を下位層モジュール２２−１〜２２−８に要求すること、及び、当モジュール内部でスケジュールされるライトバック等を下位層のモジュールに要求することを行う。
【００２８】
クイックフォーマット管理モジュール２１−１〜２１−４は、主に、ホストアクセスに関係なく、論理ボリューム上の各ブロックをシーケンシャルにフォーマット処理し、上位層のモジュール２０からのデイスクアクセス要求の指定ブロックによって、必要に応じた論理ボリューム上のブロックをフォーマット処理する機能を持つ。ここでは、４つの冗長グループＡ，Ｂ，Ｃ，Ｄに対し、４つのクイックフォーマット管理モジュール２１−１〜２１−４が設けられている。各管理モジュール２１−１〜２１−４は、２つの冗長グループを担当する。例えば、管理モジュール２１−１は、冗長グループＡを担当し、更に，障害時には、冗長グループＤも担当する。図２の接続関係は、論理パスで示している。
【００２９】
下位層のモジュール２２−１〜２２−８は、上位層のモジュール２０及びクイックフォーマット管理モジュール２１−１〜２１−４からの要求を下位層キュー３５に受けて、データの冗長性管理を含めた物理デイスク２−１〜２−１６へのＩ／Ｏ（入出力）動作を行う。ここでは、各冗長グループＡ，Ｂ，Ｃ，Ｄに対し、２つの下位層モジュール２２−１〜２２−８を設け、二重化構成を採用している。
【００３０】
各クイックフォーマット管理モジュール２１−１〜２１−４は、フォーマット待ちキュー３１と、過剰要求回避のためのフォーマット要求待ちキュー３２と、冗長グループを構成する各論理ボリュームのフォーマット処理の進捗情報のテーブル３３と、各論理ボリュームの各ブロックの論理フォーマット処理の進捗情報のテーブル３４とを有する。
【００３１】
次に、図３により、論理ボリュームと物理デイスクとの関係を説明する。全論理ボリュームを０〜ｎとすると、図３に示すように、各冗長グループＡ，Ｂ，Ｃ，Ｄは、全論理ボリューム０〜ｎの各々の１部、例えば１／４ずつの論理ボリューム０〜ｌ、ｌ＋１〜Ｐ，…、ｓ〜ｎを担当する。各冗長グループは、例えばＲＡＩＤ５の構成では、図１６で説明するように、４つのディスクの内３つのディスクでデータを持ち、１つのディスクでチェックデータを持ち、冗長構成をとる。ＲＡＩＤ１の構成では、各冗長グループが２つのディスクで冗長構成を組み、各冗長グループが、全論理ボリューム０〜ｎを担当する。
【００３２】
論理ボリュームは、ホスト３のＯＳの認識単位であり、ｍブロックのデータで構成される。そして、ＲＡＩＤ構成では、論理ボリュームの各ブロックが、複数（ここでは、４つ）の物理デイスク２−１〜２−４に分散して配置される。例えば、冗長グループＡの各論理ボリューム０〜ｌのブロックは、冗長グループＡを担当する４台の物理デイスク２−１〜２−４に分散配置される。即ち、１つの論理ボリュームを複数の物理デイスクで担当する、所謂冗長構成をとる。
【００３３】
図４は、図２の進捗情報テーブル３３、３４の説明図である。クイックフォーマット管理モジュール２１−１〜２１−４は、クイックフォーマット中の各ブロックが未フォーマットかフォーマット済かの情報を持つ。ここで、情報の持ち方としては、論理ボリューム０〜ｎごとに、ビットマップ３４−０〜３４−ｎを持ち、未フォーマット／フォーマット済領域を区別する。
【００３４】
また、各冗長グループでの論理ボリューム単位での進捗を管理する論理ボリューム管理テーブル３３−Ａを有し、各冗長グループの論理ボリューム単位のクイックフォーマット処理を管理する。これにより、論理ボリューム単位でのフォーマット処理が可能となる。また、フォーマット済みの論理ボリュームについてはビットマップの検索を行わないので、処理が遅れにくくなる。即ち、冗長グループＡ，Ｂ，Ｃ，Ｄに対して、担当する論理ボリュームの管理テーブル３３−Ａ，３３−Ｂ，３３−Ｃ，３３−Ｄと、ビットマップ３４−０〜３４−ｌ、３４−ｌ＋１〜３４−Ｐ，…、３４−ｓ〜３４−ｎを設ける。
【００３５】
図５は、下位層モジュール２２−１〜２２−８へ送出される要求に付随した要求内容テーブルＲ−Ｍの説明図である。
【００３６】
テーブルＲ−Ｍは、要求の処理種別（リード、ライト、フォーマット）１００と、処理領域（フォーマット領域、アクセス領域）１０１と、データ領域１０２とを有する。更に、リード／ライトアクセス時に使用されない領域に、フォーマットのための情報が設定される。即ち、フォーマットの種別（ワンポイントかシーケンシャルか）、冗長グループ内で処理上限数が超えたため、フォーマット待ちのフォーマット要求に対し、先に受け付けたフォーマット要求、後に受け付けたフォーマット要求１０４、フォーマット実施中のフォーマット要求に対し、先に受け付けたフォーマット要求、後に受け付けたフォーマット要求１０５、フォーマット実施中のフォーマット要求と競合してフォーマット要求に対し、先に受け付けたフォーマット要求、後に受け付けたフォーマット要求１０６である。
【００３７】
これらのテーブルＲ−Ｍは、要求時に、上位層モジュール２０、クイックフォーマット管理モジュール２１−１〜２１−４が作成し、要求に付加する。
【００３８】
［クイックフォーマット処理］
次に、図６により、図２の上位層モジュール２０、クイックフォーマット管理モジュール２１の処理を説明する。尚、管理モジュール２１が、上位層のモジュールから要求があった場合の処理である。
【００３９】
（Ｓ１）上位層モジュール２０は、ホストのアクセス対象がクイックフォーマットの対象の論理ボリュームかを判定する。アクセス要求は、論理ボリューム名、論理アドレスを含む。論理ボリューム管理テーブル３３には、各論理ボリュームのクイックフォーマット済みを示すフラグが格納されている。上位層モジュール２０は、この管理テーブル３３を参照して、アクセス対象の論理ボリュームが、クイックフォーマットの対象かどうかを判定する。
【００４０】
（Ｓ２）アクセス対象の論理ボリュームが、クイックフォーマットの対象外なら、フォーマットされているから、下位層モジュール２２−１〜２２−８へ、通常のデイスクアクセスを要求する。下位層モジュール２２−１〜２２−８は、これを下位層キュー３５にキューイングし、キューイング順にデイスクをアクセスする。
【００４１】
（Ｓ３）逆に、クイックフォーマットが行われている論理ボリュームへホストからのアクセスがあった場合には、処理をクイックフォーマット管理モジュール２１−１〜２１−４に渡す。クイックフォーマット管理モジュールは、アクセス領域が未フォーマットかどうかを対応する論理モジュールのビットマップ３４−０〜３４−ｎで判定する。
【００４２】
（Ｓ４）アクセス対象の領域が、フォーマット済みなら、フォーマットされているから、下位層モジュール２２−１〜２２−８へ、通常のデイスクアクセスを要求する。下位層モジュール２２−１〜２２−８は、これを下位層キュー３５にキューイングし、キューイング順にデイスクをアクセスする。
【００４３】
（Ｓ５）アクセス要求領域に未フォーマット領域があれば、その領域に対するフォーマット要求（ワンポイントフォーマット要求という）を発し、且つそのアクセスを、フォーマット待ちキュー３１にエンキューする。
【００４４】
次に、クイックフォーマット管理モジュール２１−１〜２１−４の下位層モジュール２２から論理フォーマット終了を受けた時の処理を、図７、図８及び図９で説明する。
【００４５】
（Ｓ１０）論理フォーマット終了を受けると、先ず、進捗情報を更新する。即ち、図４の管理テーブル３３、ビットマップ３４−０〜３４−ｎを、終了した領域に応じて更新する。
【００４６】
（Ｓ１１）クイックフォーマットの対象とする全領域のフォーマットが完了したかを管理テーブル３３、ビットマップ３４−０〜３４−ｎを参照して、判定する。
【００４７】
（Ｓ１２）全領域のフォーマットが完了したと判定すると、フォーマット待ちキュー３１の検索条件を初期化し、フォーマット待ちキュー３１を検索し、フォーマット待ちデイスクアクセスがあれば、待ちキュー３１から外し、下位層モジュール２２へ通常アクセスを要求する。これを、待ちキュー３１の全デイスクアクセスの検索が終了するまで繰り返し、全デイスクアクセスの検索が終了すると、処理を終了する。
【００４８】
（Ｓ１３）全領域のフォーマットが完了していないと判定すると、フォーマット待ちキュー３１の検索条件を初期化し、フォーマット待ちキュー３１を検索し、フォーマット待ちデイスクアクセスがあれば、そのアクセスの対象領域が、フォーマット済みかを、ビットマップ３４−０〜３４−ｎを参照して、判定する。フォーマット済みである時は、待ちキュー３１から外し、下位層モジュール２２へ通常アクセスを要求する。フォーマット済みでないときは、待ちキュー３１に残す。これを、待ちキュー３１の全デイスクアクセスの検索が終了するまで繰り返し、全デイスクアクセスの検索が終了すると、この処理を終了する。
【００４９】
（Ｓ１４）次に、論理フォーマット要求処理を行う。この処理は、基本的には、図７に示すように、待ちキュー３１にアクセス要求が残っているときは、そのアクセスの対象領域の論理フォーマット要求（ワンポイントフォーマットという）を下位層モジュール２２に要求する。一方、待ちキュー３１にアクセス要求が残っていない時は、内部スケジュールにより決めた領域の論理フォーマット（シーケンシャルフォーマットという）を下位層モジュール２２に要求する。この論理フォーマット要求処理は、図８及び図９で詳細に後述する。
【００５０】
このように、アクセスがない時は、シーケンシャルに論理ボリュームの各領域を論理フォーマット処理し、アクセスがあると、アクセス対象領域が未フォーマットかを判定し、未フォーマットであるときは、そのアクセス対象領域を論理フォーマット処理する。その後、そのフォーマットされた領域にアクセスを行う。
【００５１】
このため、ホストアクセスの待ち時間を低減し、シーケンシャルに論理フォーマット処理することができる。更に、図８及び図９の論理フォーマット要求処理では、これらの論理フォーマット要求の多重化を行う。
【００５２】
（Ｓ２０）論理フォーマットが終了した要求処理の要求内容テーブルＲ−Ｍ（図５参照）を調べ、終了した要求処理にリンクしている後に受け付けたフォーマット要求があるかを判定する。リンクしている処理がないと、図９のように、この処理を終了する。
【００５３】
（Ｓ２１）リンクしている処理がある時は、先ず、冗長グループの処理数制限を行うための待ちキュー３２に要求処理があるかを調べる。キューイングされた処理がある時は、次の要求処理を、冗長グループの処理数制限を行うための待ちキュー３２の先頭に設定する。一方、キューイングされた処理がない場合には、次の処理にシーケンシャルフォーマット処理に設定する。
【００５４】
（Ｓ２２）次に、次の要求がシーケンシャルフォーマットかを判定する。シーケンシャルフォーマットである時は、内部スケジュールによりフォーマット領域を決定する。この時、前述のビットマップ３４−０〜３４−ｎの進捗情報を参照して、フォーマット領域を決定できる。
【００５５】
（Ｓ２３）論理フォーマット要求の対象領域に未フォーマット領域があるかを判定する。この時、前述のビットマップ３４−０〜３４−ｎの進捗情報を参照して、フォーマット領域を決定できる。未フォーマット領域がない場合には、論理フォーマットの必要がないため、この要求を下位層モジュール２２に発行することなく、処理を終了する。
【００５６】
（Ｓ２４）論理フォーマット要求の対象領域に未フォーマット領域がある場合には、冗長グループに対するフォーマット要求数が最大値を越えるかを判定する。即ち、管理モジュール２１は、下位層モジュール２２に発行し、下位層モジュール２２で未処理のフォーマット要求数をカウントしている。このカウント値を参照し、判定する。冗長グループに対するフォーマット要求数が最大値を越えたと判定した時は、このフォーマット要求処理を、冗長グループの処理数制限のための待ちキュー３２にキューイングし、処理を終了する。
【００５７】
（Ｓ２５）冗長グループに対するフォーマット要求数が最大値を越えない場合には、このフォーマット要求の対象領域が、下位層モジュール２２のキュー３５にキューイングされたフォーマット要求の領域と競合するかを、前述の要求内容テーブルＲ−Ｍを参照して、判定する。下位層モジュール２２のキュー３５にキューイングされたフォーマット要求の領域と競合する場合には、この競合する両フォーマット要求の要求内容テーブルＲ−Ｔの競合関係欄１０６に先後関係を設定し、終了する。一方、下位層モジュール２２のキュー３５にキューイングされたフォーマット要求の領域と競合しない場合には、フォーマット要求を下位層モジュール２２に発行し、終了する。
【００５８】
図１０乃至図１４は、クイックフォーマット処理の動作説明図である。図１０に示すように、シーケンシャルフォーマットＳを実行中に、上位層モジュール２０からデイスクアクセス要求があり、ワンポイントフォーマット要求１〜８が順で発行された例で説明する。
【００５９】
次に実行されるシーケンシャルフォーマット要求が、該当する論理ボリュームの実施フォーマットキュー（下位層キュー）３５−０に入っているとすると、論理ボリューム０の下位層キュー３５−０に、ワンポイントフォーマット要求１、２、６が順でキューイングされる。一方、ワンポイントフォーマット要求５は、ワンポイントフォーマット要求１と競合するため、ワンポイントフォーマット要求１にリンクする。
【００６０】
同様に、論理ボリューム１の下位層キュー３５−１に、ワンポイントフォーマット要求３、４が順でキューイングされる。一方、ワンポイントフォーマット要求７は、ワンポイントフォーマット要求３、４と競合するが、初めに、要求３と競合するため、ワンポイントフォーマット要求３にリンクする。
【００６１】
ワンポイントフォーマット要求８は、ワンポイントフォーマット要求７とも競合するが、実施中フォーマットキュー内の競合を意識すれば良いため、ワンポイントフォーマット要求４にリンクする。更に、下位層キュー３５−０、３５−１に対するフォーマット要求数が最大値を越える場合には、冗長グループ内の待ちキュー３２に入る。
【００６２】
この時、フォーマット待ちキュー３１には、ワンポイントフォーマット要求１、２、３、４、５、６、７、８の基となるアクセス要求（ライト要求）Ｗｒ１〜Ｗｒ８が、キューイングされ、要求内容テーブルＲ−Ｔ（図５参照）のリンク情報の設定で、図１０のように、リンクする。
【００６３】
次に、図１１に示すように、シーケンシャルフォーマットＳ，ワンポイントフォーマット１、３が完了すると、論理ボリューム０の下位層キュー３５−０では、実行されたシーケンシャルフォーマット要求Ｓとワンポイントフォーマット要求１が追い出され、ワンポイントフォーマット要求２が先頭となり、最後尾の要求６の次に、フォーマット待ちキュー３１のアクセス要求（ライト要求）Ｗｒ１がキューイングされる。一方、ワンポイントフォーマット要求５は、競合したワンポイントフォーマット要求１が実行されたため、リンクを解かれ、アクセス要求に移る。
【００６４】
同様に、論理ボリューム１の下位層キュー３５−１では、ワンポイントフォーマット要求３が実行されたため、ワンポイントフォーマット要求４が先頭となり、冗長グループ待ちキュー３２の待たされた要求ｎが移動し、フォーマット待ちキュー３１のアクセス要求Ｗｒ３の順でキューイングされる。一方、ワンポイントフォーマット要求７は、ワンポイントフォーマット要求３が完了したが、要求４と競合するため、今度は、ワンポイントフォーマット要求８にリンクする。
【００６５】
このように、アクセス要求の対象領域が未フォーマット領域を含む場合には、ワンポイントフォーマット要求が発行され、このフォーマット要求は、フォーマット実施確認待ちキュー（下位層キュー）へエンキューされ、下位層へフォーマット処理依頼される。このためフォーマット要求が複数、下位層へ要求される事になる。
【００６６】
一方、シーケンシャルフォーマットは、所定の領域（例えば、１ブロック）単位での処理が終わる毎に、上記キューの最後尾にフォーマット処理としてキューイングされる。このとき、図１２に示すように、シーケンシャルフォーマット処理では、ビットマップテーブル３４の先頭から未フォーマット領域について検索し、フォーマット要求を行う。
【００６７】
又、このクイックフォ−マットにおいて、ワンポイントフォーマット処理を複数行う事が可能となったため、フォーマット領域が重る事がある。この場合、対象領域について先のワンポイントフォーマット処理にリンクし、ワンポイントフォーマット処理が終わるのを待って、対象領域の未フォーマット領域をフォーマットする。
【００６８】
フォーマット領域重複のために待ちとなっているワンポイントフォーマットのフォーマット領域について、全領域がフォーマット済みであれば、フォーマット処理は実行せず、リンクを外す。
【００６９】
シーケンシャルフォーマットの行われていない論理ボリュームに対するワンポイントフォーマット要求があった時についても、ワンポイントフォーマット処理はフォーマット実施確認待ちキューへのエンキューの後、下位層に要求され、これら複数の要求処理は同時並行的に行われる。
【００７０】
更に、フォーマット処理要求については処理要求数が多くなりすぎると、前述のように、ワンポイントフォーマット完了後に、そのアクセス要求がキューイングされるため、アクセス要求の実行が遅くなる。これを防ぐ目的から、図１２に示すように、冗長グループ毎、論理グループ毎のフォーマット処理数についての制限を設け、この制限によりフォーマット処理を一時保留する。
【００７１】
又、図１３に示すように、ビットマップ３４−０〜３４−ｎを用いて、１ビット当たり数ブロックの未フォーマット／フォーマット済の情報を進捗管理し、この進捗管理において１ビットのフォーマット処理が終わる毎に，進捗情報は更新される。これにより、より細かい進捗情報の管理が可能となる。
【００７２】
また、クイックフォーマット実施中のホストアクセスによるワンポイントフォーマット処理とシーケンシャルフォーマット処理との競合時、実施中シーケンシャルフォーマットからの復帰が早くなり、ホストアクセスへの応答が遅れにくくなる。さらに、フォーマット実施時のビットマップの確認が１ビットのみで済むため、処理が速い。
【００７３】
上述の進捗情報更新方法では、更に、フォーマット処理単位での進捗情報の更新を行う。この更新方法では、進捗情報の更新を、フォーマット処理終了を契機にして行う為、ワンポイントフォーマット中に、複数回更新を行わずに済み、フォーマット終了後に一度更新するだけなので、結果的にホストアクセスへの応答が速くなる。
【００７４】
また、フォーマット処理単位での進捗情報更新を行う上で、進捗情報の更新はテーブルのコピーという方法で効率的に行う事ができる。又、図１４に示すように、複数のフォーマット処理完了毎に、複数ビットを一度に更新することもできる。
【００７５】
図１５乃至図１７は、論理フォーマットの説明図である。論理フォーマットは、ホストの物理デイスクへのデータアクセスが行えるように、物理デイスク２を論理的にフォーマットするものであり、基本的には、１トラックのデータ領域２００を、ホストの処理単位（例えば、５１２バイトのブロック）に区切り、各々のブロック２００−１〜２００−ｐに，ＩＤ（識別子）と、ＣＲＣ等のチエックコードを書き込むものである。
【００７６】
又、図１６のＲＡＩＤ−５では、３ブロックのデータを、１ブロックずつ物理デイスク２−１、２−２、２−３に割り当て、そのパリテイデータを、物理デイスク２−４に割り当てる。この時、論理フォーマット処理では、これらのブロックに関連をもたせるため、ＩＤにリンク番号を付す。例えば、物理デイスク２−１、２−２、２−３、２−４の対応するブロックのＩＤを、ＩＤ１，ＩＤ２，ＩＤ３，ＩＤＰと付す。
【００７７】
同様に、図１７に示すように、ＲＡＩＤ−１のミラーリングでは、冗長データブロックに、同一のＩＤ番号を付す。例えば、ミラーリングを構成する物理デイスク２−１、２−２の冗長データブロックに、ＩＤ１を付す。
【００７８】
このように、論理ボリューム上の各ブロックが未フォーマットかフォーマット済かの進捗情報をビットマップ３４で管理するため、デイスクアクセス要求があった場合には、当該アクセス領域全てが、フォーマット済かを判定する。そして、フォーマット済となっていれば、下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングする。
【００７９】
一方、待ちキューにデイスクアクセス要求がない時は、ビットマップ３４から未フォーマット領域を検索して、論理フォーマット処理要求を発行する。更に、論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップ３４を更新する。
【００８０】
このため、シーケンシャルフォーマット処理を実行しながら、デイスクアクセス要求を実行できるとともに、容易に、デイスクアクセス要求のあったアクセス領域がフォーマット済かを判定できるため、クイックフォーマットを実行しても、アクセス要求に対する応答を高速化できる。しかも、シーケンシャルフォーマットへの復帰も、ビットマップを参照するため、容易となる。
【００８１】
又、未フォーマット領域に対する複数のホストアクセスの論理フォーマット要求同士、ホストアクセスの論理フォーマット要求とシーケンシャルフォーマット要求との競合を判定し、一方を待たせ、リンク処理するため、論理フォーマット要求を連続的に発行しても、これらを整理して、論理フォーマット要求を処理できる。このため、ホストアクセスへの応答が高速にできる。
【００８２】
更に、論理フォーマット要求を連続的に発行しても、冗長グループ、論理ボリューム単位に、下位層のキュー数を制限し、制限数を越えたフォーマット処理要求を一時保留するため、冗長グループ、論理ボリューム単位のフォーマット処理の遅れを防止できる。
【００８３】
しかも、論理ボリュームに対し、管理テーブル３３、ビットマップ３４を持ち、論理ボリューム単位且つブロック単位にフォーマット済かを管理するため、論理フォーマット単位でのフォーマット処理が可能となる。従って、フォーマット済の論理ボリュームは、ビットマップ３４の検索を行わないため、処理の遅れを防止できる。
【００８４】
進捗情報の管理をビットマップ３４で行うため、参照処理、更新処理を高速化でき、結果的に、デイスクアクセス要求を高速にできる。更に、冗長グループ構成において、進捗情報の管理を、各々クイックフォーマット管理モジュールをもつ複数ユニットが、それぞれ進捗情報を持つという形で進捗情報の冗長化をとっている。
【００８５】
進捗情報を持つユニットは、サイクリックにペアが組まれており、進捗情報を持つユニットが、ハードウエアの故障等により、故障ハード上のビットマップテーブルを含む進捗情報を失い、冗長性の無い状態となったとき、他に冗長を組めるユニットがあれば、残ったユニットから再度ビットマップや進捗情報が復元され、スペアユニットと冗長構成をとることができる。また、故障したユニットを正常ユニットと交換し、正常状態となると再び初期の冗長構成になるように復元する事ができる。
【００８６】
［他の実施の形態］
前述の実施の形態では、図２のような冗長構成のＲＡＩＤで説明したが、これ以外の冗長構成及び非冗長構成のストレージシステムに適用できる。又、物理デイスクは、磁気デイスク、光デイスク、光磁気デイスク、各種のストレージデバイスを適用できる。
【００８７】
（付記１）上位装置からのデイスクアクセス要求に応じて、物理デイスクに格納された論理ボリューム上のアクセス要求領域をアクセスするストレージ制御装置において、前記論理ボリュームの所定の各フォーマット処理領域が未フォーマットかフォーマット済かの進捗情報を管理するためのビットマップメモリを有する論理フォーマット管理モジュールと、前記論理フォーマット管理モジュールの処理要求に応じ、前記物理デイスクを実アクセスする下位層モジュールとを有し、前記論理フォーマット管理モジュールは、前記デイスクアクセス要求に応じて、前記ビットマップメモリを参照し、当該アクセス領域全てが、フォーマット済かを判定し、フォーマット済と判断した場合に、前記下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングし、前記待ちキューにデイスクアクセス要求がない時は、前記ビットマップから未フォーマット領域を検索して、論理フォーマット処理要求を発行することを特徴とするストレージ制御装置。
【００８８】
（付記２）前記論理フォーマット管理モジュールは、前記下位層モジュールからの論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップを更新することを特徴とする付記１のストレージ制御装置。
【００８９】
（付記３）前記論理フォーマット管理モジュールは、前記論理フォーマット処理要求の実行終了に応じて、前記待ちキューを検索し、前記論理フォーマットの終了した前記デイスクアクセス要求を前記下位層モジュールに発行することを特徴とする付記２のストレージ制御装置。
【００９０】
（付記４）前記論理フォーマット管理モジュールは、発行される論理フォーマット要求間の競合を判定し、リンク処理することを特徴とする付記１のストレージ制御装置。
【００９１】
（付記５）前記論理フォーマット管理モジュールは、前記論理ボリューム単位に、前記下位層モジュールのキュー数を制限し、制限数を越えた前記論理フォーマット処理要求を一時保留することを特徴とする付記１のストレージ制御装置。
【００９２】
（付記６）前記論理フォーマット管理モジュールは、前記物理デイスクに格納される複数の論理ボリュームの各々の前記ビットマップテーブルを備えることを特徴とする付記１のストレージ制御装置。
【００９３】
（付記７）前記物理デイスクに格納される各冗長グループの論理ボリューム毎の論理フォーマットの進捗情報を格納する管理テーブルと、前記ホストからのデイスクアクセス要求を受け、前記管理テーブルを参照して、アクセス対象の論理ボリュームが論理フォーマット済かを判定し、論理フォーマット済でない場合に、前記論理フォーマット管理モジュールに要求処理を引き渡す上位層モジュールを有することを特徴とする付記１のストレージ制御装置。
【００９４】
（付記８）上位装置からのデイスクアクセス要求に応じて、物理デイスクに格納された論理ボリューム上のアクセス要求領域をアクセスするストレージ制御方法において、前記デイスクアクセス要求に応じて、前記論理ボリュームの所定の各フォーマット処理領域が未フォーマットかフォーマット済かの進捗情報を管理するための前記ビットマップメモリを参照し、当該アクセス領域全てが、フォーマット済かを判定するステップと、フォーマット済と判断した場合に、下位層モジュールにデイスクアクセスを要求するステップと、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングするステップと、前記待ちキューにデイスクアクセス要求がない時は、前記ビットマップから未フォーマット領域を検索して、論理フォーマット処理要求を発行するステップと、前記下位層モジュールにより、前記デイスクアクセス要求及び前記論理フォーマット要求に応じて、前記物理デイスクを実アクセスするステップを有することを特徴とするストレージ制御方法。
【００９５】
（付記９）前記下位層モジュールからの論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップを更新するステップを有することを特徴とする付記８のストレージ制御方法。
【００９６】
（付記１０）前記論理フォーマット処理要求の実行終了に応じて、前記待ちキューを検索し、前記論理フォーマットの終了した前記デイスクアクセス要求を前記下位層モジュールに発行するステップを有することを特徴とする付記９のストレージ制御方法。
【００９７】
（付記１１）発行される論理フォーマット要求間の競合を判定し、リンク処理するステップを有することを特徴とする付記８のストレージ制御方法。
【００９８】
（付記１２）前記論理ボリューム単位に、前記下位層モジュールのキュー数を制限し、制限数を越えた前記論理フォーマット処理要求を一時保留することを特徴とする付記８のストレージ制御方法。
【００９９】
（付記１３）フォーマット済かを判定するステップは、前記物理デイスクに格納される複数の論理ボリュームの各々の前記ビットマップテーブルを参照するステップからなることを特徴とする付記８のストレージ制御方法。
【０１００】
（付記１４）前記ホストからのデイスクアクセス要求を受け、前記物理デイスクに格納される各冗長グループの論理ボリューム毎の論理フォーマットの進捗情報を格納する前記管理テーブルを参照して、アクセス対象の論理ボリュームが論理フォーマット済かを判定し、論理フォーマット済でない場合に、前記論理フォーマット管理モジュールに要求処理を引き渡す上位層ステップを更に有することを特徴とする付記８のストレージ制御方法。
【０１０１】
【発明の効果】
このように、論理ボリューム上の各ブロックが未フォーマットかフォーマット済かの進捗情報をビットマップ３４で管理するため、デイスクアクセス要求があった場合には、ビットマップを参照して、当該アクセス領域全てが、フォーマット済かを判定できる。そして、フォーマット済となっていれば、下位層モジュールにデイスクアクセスを要求し、フォーマット済でなければ、デイスクアクセスに先んじて、論理フォーマット処理要求を発行し、デイスクアクセス要求を待ちキューにキューイングし、一方、待ちキューにデイスクアクセス要求がない時は、ビットマップ３４から未フォーマット領域を検索して、論理フォーマット処理要求を発行する。更に、論理フォーマット処理要求の実行終了に応じて、進捗情報を管理するビットマップ３４を更新する。
【０１０２】
このため、シーケンシャルフォーマット処理を実行しながら、デイスクアクセス要求を実行できるとともに、容易に、デイスクアクセス要求のあったアクセス領域がフォーマット済かを判定できるため、クイックフォーマットを実行しても、アクセス要求に対する応答を高速化できる。しかも、シーケンシャルフォーマットへの復帰も、ビットマップを参照するため、容易となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態のストレージシステムの構成図である。
【図２】本発明の一実施の形態の冗長構成のストレージシステムの構成図である。
【図３】図２の冗長グループ、論理ボリューム、物理デイスクの関係図である。
【図４】図２の管理テーブル、ビットマップの構成図である。
【図５】図２の下位層モジュールへの処理要求に付随する要求内容テーブルの説明図である。
【図６】図２の上位層モジュール、クイックフォーマット管理モジュールの上位層の要求処理フロー図である。
【図７】図２のクイックフォーマット管理モジュールの下位層モジュールからのフォーマット終了に応答する処理フロー図である。
【図８】図７のフォーマット要求処理フロー図（その１）である。
【図９】図７のフォーマット要求処理フロー図（その２）である。
【図１０】図８乃至図９のフォーマット要求処理の動作説明図（その１）である。
【図１１】図８乃至図９のフォーマット要求処理の動作説明図（その２）である。
【図１２】図８乃至図９のフォーマット要求処理の動作説明図（その３）である。
【図１３】図４のビットマップの更新動作説明図である。
【図１４】図４のビットマップの他の更新動作説明図である。
【図１５】図２の論理フォーマットの説明図である。
【図１６】図２のＲＡＩＤ５における論理フォーマットの説明図である。
【図１７】図２のＲＡＩＤ１における論理フォーマット説明図である。
【符号の説明】
１  ストレージ制御装置
２  物理デイスク
３  ホストコンピュータ
１０  チャネルアダプター
１２  中央モジュール
１６  デバイスアダプター
２０  上位層モジュール
２１−１〜２１−４  クイックフォーマット管理モジュール
２２−１〜２２−８  下位層モジュール
３１  フォーマット待ちキュー
３２  冗長グループ待ちキュー
３３  論理フォーマット管理テーブル
３４  論理モジュールの進捗情報ビットマップ
３５  下位層キュー
【図１】
0003617631.tif 000002
【図２】
0003617631.tif 000003
【図３】
0003617631.tif 000004
【図４】
0003617631.tif 000005
【図５】
0003617631.tif 000006
【図６】
0003617631.tif 000007
【図７】
0003617631.tif 000008
【図８】
0003617631.tif 000009
【図９】
0003617631.tif 000010
【図１０】
0003617631.tif 000011
【図１１】
0003617631.tif 000012
【図１２】
0003617631.tif 000013
【図１３】
0003617631.tif 000014
【図１４】
0003617631.tif 000015
【図１５】
0003617631.tif 000016
【図１６】
0003617631.tif 000017
【図１７】
0003617631.tif 000018