(57)【特許請求の範囲】
【請求項１】
データが冗長に記憶される複数の第１の記憶媒体と、前記複数の第１の記憶媒体と通信回線を介して接続され、前記複数の第１の記憶媒体への情報の書き込みを制御する制御装置とを備え、ホスト装置からのアクセス処理を受付けるストレージ装置において、
前記制御装置は、
前記ホスト装置から前記複数の第１の記憶媒体に対するアクセス処理を許可し、当該アクセス処理の対象となる前記複数の第１の記憶媒体の記憶領域を当該アクセス処理前にフォーマットするフォーマット処理部と、
前記複数の第１の記憶媒体に発生する障害を検出する検出部と、
前記検出部の障害の検出に応じて前記フォーマット処理部にフォーマット処理を停止させ、障害が発生していない障害非検出の第１の記憶媒体に記憶されているデータを、前記複数の第１の記憶媒体以外の第２の記憶媒体に再構築させる指示を出す制御部と、
前記制御部の指示に応じて前記障害非検出の第１の記憶媒体に記憶されているデータを、前記第２の記憶媒体に再構築する再構築処理部と、
を有することを特徴とするストレージ装置。
【請求項２】
前記フォーマット処理部は、前記複数の第１の記憶媒体に論理的に設定された論理記憶領域毎に前記フォーマット処理を施し、
前記フォーマット処理部がフォーマット処理を施している前記論理記憶領域毎のデータ書き込みの有無を示すテーブルを管理する管理部をさらに有し、
前記制御部は、前記テーブルを参照して障害が発生した障害検出先の第１の記憶媒体の、前記フォーマット処理を施している前記論理記憶領域へのデータ書き込みの有無を判断し、データ書き込みが無かった場合、前記フォーマット処理を施している前記論理記憶領域に記憶されているデータの前記第２の記憶媒体への再構築を省略することを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記制御部は、前記再構築処理部に、前記第２の記憶媒体に再構築されたデータを、前記障害検出先の第１の記憶媒体の代わりに用意された第３の記憶媒体に書き戻させる際に、
前記テーブルを参照してフォーマット処理を施している前記論理記憶領域へのデータ書き込みの有無を判断し、データ書き込みが無かった場合、前記フォーマット処理を施している前記論理記憶領域に記憶されているデータの前記第３の記憶媒体への書き戻しを省略することを特徴とする請求項２記載のストレージ装置。
【請求項４】
データが冗長に記憶される複数の第１の記憶媒体と、前記複数の第１の記憶媒体と通信回線を介して接続され、前記複数の第１の記憶媒体への情報の書き込みを制御し、かつ、ホスト装置からのアクセス処理を受付ける制御装置において、
前記ホスト装置から前記複数の第１の記憶媒体に対するアクセス処理を許可し、当該アクセス処理の対象となる前記複数の第１の記憶媒体の記憶領域を当該アクセス処理前にフォーマットするフォーマット処理部と、
前記複数の第１の記憶媒体に発生する障害を検出する検出部と、
前記検出部の障害の検出に応じて前記フォーマット処理部にフォーマット処理を停止させ、障害が発生していない障害非検出の第１の記憶媒体に記憶されているデータを、前記複数の第１の記憶媒体以外の第２の記憶媒体に再構築させる指示を出す制御部と、
前記制御部の指示に応じて前記障害非検出の第１の記憶媒体に記憶されているデータを、前記第２の記憶媒体に再構築する再構築処理部と、
を有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ装置および制御装置に関する。
【背景技術】
【０００２】
ＨＤＤ（Hard Disk Drive）等の記憶媒体の全ての記憶領域にアクセスする最初の処理として、記憶媒体のフォーマット処理が行われることが知られている。フォーマット処理は、全ての記憶媒体にアクセスするため、記憶媒体への書き込み異常等を最初に検出する可能性が高い。
【０００３】
また、フォーマット処理中に記憶媒体への書き込み異常が発生すると、他の記憶媒体にデータを再構築する処理（リビルド処理）が行われることが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２９９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フォーマット処理とリビルド処理とが競合すると、ＣＰＵの負荷が大きくなり、フォーマット処理の完了が遅延するという問題があった。
本発明はこのような点に鑑みてなされたものであり、処理の競合を抑制するストレージ装置および制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、開示のストレージ装置が提供される。このストレージ装置は、データが冗長に記憶される複数の第１の記憶媒体と、第１の記憶媒体と通信回線を介して接続され、第１の記憶媒体への情報の書き込みを制御する制御装置とを備えている。また、制御装置は、フォーマット処理部と、検出部と、制御部と、再構築処理部とを有している。
【０００７】
フォーマット処理部は、複数の第１の記憶媒体それぞれに対しフォーマット処理を施す。
検出部は、複数の第１の記憶媒体に発生する障害を検出する。
【０００８】
制御部は、検出部の障害の検出に応じてフォーマット処理部にフォーマット処理を停止させ、障害が発生した第１の記憶媒体に記憶されているデータを、第１の記憶媒体以外の第２の記憶媒体に再構築させる。
【０００９】
再構築処理部は、制御部の指示に応じて第１の記憶媒体に記憶されているデータを、第２の記憶媒体に再構築する。
【発明の効果】
【００１０】
再構築処理とフォーマット処理の競合による遅延を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】第２の実施の形態の制御モジュールの機能を示すブロック図である。
【図４】書き込み管理テーブルの一例を示す図である。
【図５】制御モジュールが実行するクイックフォーマット処理を説明する図である。
【図６】制御モジュールが実行するクイックフォーマット処理を説明する図である。
【図７】スケジュール制御部の処理を示すフローチャートである。
【図８】スケジュール制御部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ装置を示す図である。
【００１３】
第１の実施の形態のストレージ装置１は、電気通信回線や、光通信回線等を介してホスト装置２に接続されている。
ストレージ装置１は、制御装置３と、記憶媒体４ａ、４ｂ、４ｃを有している。記憶媒体４ａ、４ｂ、４ｃは、情報を記憶可能な記憶領域を有する。この記憶媒体４ａ、４ｂ、４ｃとしては、例えば、ＨＤＤや、ＳＳＤ（Solid State Drive）等が挙げられる。なお、本実施の形態のストレージ装置１は、３個の記憶媒体４ａ、４ｂ、４ｃを有するが、記憶媒体の個数は、２個以下であってもよく、４個以上であってもよい。
【００１４】
記憶媒体４ａ、４ｂは、第１の記憶媒体の一例である。記憶媒体４ａ、４ｂにはデータが冗長に記憶されている。すなわち、記憶媒体４ａと記憶媒体４ｂには同じデータが記憶されている。また、記憶媒体４ｃは、第２の記憶媒体の一例である。図１では、記憶媒体４ｃは、ストレージ装置１内に予め用意されているが、障害発生時にストレージ装置１に実装されてもよい。
【００１５】
制御装置３は、記憶媒体４ａ、４ｂ、４ｃに図示しない通信回線で接続されている。この制御装置３は、ホスト装置２から記憶媒体４ａ、４ｂ、４ｃへのデータアクセスを制御する。すなわち、制御装置３は、ホスト装置２から受け付けたデータの、記憶媒体４ａ、４ｂ、４ｃへの書き込み、およびホスト装置２から受け付けた、記憶媒体４ａ、４ｂ、４ｃに記憶されているデータの読み出しを制御する。
【００１６】
この制御装置３は、フォーマット処理部３ａと、検出部３ｂと、制御部３ｃと、再構築処理部３ｄと、記憶部３ｅとを有している。
フォーマット処理部３ａは、記憶媒体４ａ、４ｂそれぞれに対しフォーマット処理を施す。また、フォーマット処理部３ａは、記憶媒体４ａ、４ｂそれぞれに対するフォーマット処理の進捗を管理する。
【００１７】
フォーマット処理は、例えば、記憶媒体４ａ、４ｂにそれぞれ、記憶媒体４ａ、４ｂの記憶領域を論理的に分割して作成される記憶領域である論理記憶領域が形成されている場合には、この論理記憶領域単位で行うことができる。
【００１８】
検出部３ｂは、記憶媒体４ａ、４ｂに発生する障害を検出する。検出部３ｂは、例えば、記憶媒体４ｂの故障等により、記憶媒体４ｂのデータの読み出しや、記憶媒体４ｂへのデータの書き込みが１回または複数回失敗した場合に障害が発生したと判断することができる。図１では記憶媒体４ｂに障害が発生した様子（×印）を示している。
【００１９】
制御部３ｃは、検出部３ｂの障害の検出に応じてフォーマット処理部３ａにフォーマット処理を停止させる。そして、制御部３ｃは、障害が発生した記憶媒体４ｂに記憶されているデータを、記憶媒体４ｃに再構築させる。
【００２０】
再構築処理部３ｄは、制御部３ｃの指示に応じて記憶媒体４ａに記憶されているデータを、記憶媒体４ｃに再構築する。
制御部３ｃおよび再構築処理部３ｄの処理によれば、フォーマット処理と再構築処理が別個に行われる。このため、フォーマット処理と再構築処理の競合を回避することができる。処理の競合を回避することにより、競合による遅延を抑制することができる。従って、例えば再構築処理が長引くことにより、故障が発生していない方の記憶媒体４ａにも故障が発生してしまい、記憶されているデータが消失してしまうことを抑制することができる。
【００２１】
また、処理の競合を回避することにより、再構築処理を実行するときの処理時間を、処理が競合した場合に比べ、比較的容易に把握することができるため、それぞれの処理時間の見積もりを容易に行うことができる。
【００２２】
また、記憶部３ｅは、フォーマット処理部３ａがフォーマット処理を施しているときにフォーマット処理を施している記憶媒体４ａ、４ｂへのデータ書き込みの有無を示す管理テーブル３ｅ１を記憶する。管理テーブル３ｅ１には、記憶媒体４ａ、４ｂへのデータ書き込みの有無を論理記憶領域単位で行うことができる。
【００２３】
制御部３ｃは、管理テーブル３ｅ１を参照して障害が発生した記憶媒体４ｂへのデータ書き込みの有無を判断する。そして、データ書き込みが無かった場合、制御部３ｃは、フォーマット処理を施している論理記憶領域に記憶されているデータの記憶媒体４ｃへの再構築を省略する。この制御部３ｃの処理により、当該論理記憶領域が、その後のフォーマット処理によりフォーマットされる論理記憶領域であるにも関わらず、再構築処理が行われ、データが再構築されるという余分な手間を省くことができる。さらに、制御部３ｃは、障害が発生していない第１の記憶媒体４ａ、４ｂの再構築処理を省略した論理記憶領域に対するフォーマット処理を最初からフォーマット処理部３ａに開始させるようにしてもよい。この処理により、第１の記憶媒体４ａ、４ｂの再構築処理を省略した論理記憶領域に対するフォーマット処理を行うことができる。
【００２４】
なお、フォーマット処理部３ａ、検出部３ｂ、制御部３ｃ、再構築処理部３ｄおよび記憶部３ｅは、制御装置３が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、管理テーブル３ｅ１は、制御装置３が有するフラッシュＲＯＭ（Read Only Memory）等の不揮発性の記憶媒体の一領域により実現することができる。
【００２５】
以下、開示のストレージ装置をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
【００２６】
ストレージシステム１０００は、ホスト装置３０と、このホスト装置３０にファイバチャネル（ＦＣ：Fibre Channel）スイッチ３１を介して接続されたストレージ装置１００とを有している。なお、図２では１つのホスト装置３０がストレージ装置１００に接続されているが、複数のホスト装置が、ストレージ装置１００に接続されていてもよい。
【００２７】
ストレージ装置１００は、それぞれが複数のＨＤＤ２０を備えるドライブエンクロージャ（ＤＥ：Drive Enclosure）２０ａと、このドライブエンクロージャ２０ａの物理記憶領域をＲＡＩＤ（Redundant Arrays of Inexpensive/Independent Disks）によって管理する制御モジュール（ＣＭ：Controller Module）１０ａ、１０ｂ、１０ｃとを有している。なお、本実施の形態では、ドライブエンクロージャ２０ａが備える記憶媒体としては、ＨＤＤ２０を例示したが、ＨＤＤ２０に限らず、ＳＳＤ等、他の記憶媒体を用いてもよい。以下、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０を区別しない場合は、「ＨＤＤ２０群」と言う。ＨＤＤ２０群の総容量は、例えば６００ＧＢ（Giga Byte）〜２４０ＴＢ（Tera Byte）である。
【００２８】
ストレージ装置１００は、３つの制御モジュール１０ａ、１０ｂ、１０ｃを運用に使用することで、冗長性が確保されている。なお、ストレージ装置１００が備える制御モジュールの数は、３つに限定されず、２つまたは４つ以上の制御モジュールにより冗長性が確保されていてもよいし、制御モジュール１０ａのみを使用した構成であってもよい。
【００２９】
制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれ制御装置の一例であり、制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれ同じハードウェア構成によって実現される。
制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれ、ホスト装置３０からのデータアクセス要求に応じてドライブエンクロージャ２０ａが有するＨＤＤ２０の物理記憶領域へのデータアクセスをＲＡＩＤによって制御する。
【００３０】
制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれ同じハードウェア構成によって実現されるため、代表的に、制御モジュール１０ａのハードウェア構成を説明する。
制御モジュール１０ａは、ＣＰＵ１０１と、ＲＡＭ（Random Access Memory）１０２と、フラッシュＲＯＭ１０３と、キャッシュメモリ１０４と、チャネルアダプタ（ＣＡ：Channel Adapter）１０５ａと、デバイスインタフェース（ＤＩ：Device Interface）１０６ａ、１０６ｂとを備えている。
【００３１】
ＣＰＵ１０１は、フラッシュＲＯＭ１０３等に記憶されたプログラムを実行することにより、制御モジュール１０ａ全体を統括的に制御する。ＲＡＭ１０２は、ＣＰＵ１０１に実行させるプログラムの少なくとも一部や、プログラムによる処理に必要な各種データを一時的に記憶する。フラッシュＲＯＭ１０３は、不揮発性のメモリであり、ＣＰＵ１０１により実行されるプログラムや、プログラムの実行に必要な各種のデータ等を記憶する。
【００３２】
また、フラッシュＲＯＭ１０３は、ストレージ装置１００の停電時等にキャッシュメモリ１０４に記憶されているデータの退避先となる。
キャッシュメモリ１０４は、ＨＤＤ２０群に書き込まれているデータやＨＤＤ２０群から読み出したデータを一時的に記憶する。
【００３３】
そして、制御モジュール１０ａは、例えばホスト装置３０からのデータ読み出し命令を受けたときに、読み出し対象のデータがキャッシュメモリ１０４に記憶されているか否かを判断する。読み出し対象のデータがキャッシュメモリ１０４に記憶されていれば、制御モジュール１０ａは、キャッシュメモリ１０４に記憶されている読み出し対象のデータをホスト装置３０に送る。読み出し対象のデータをＨＤＤ２０群から読み出す場合に比べ、データを迅速にホスト装置３０に送ることができる。
【００３４】
また、キャッシュメモリ１０４には、ＣＰＵ１０１による処理に必要なデータが一時的に記憶されてもよい。このキャッシュメモリ１０４としては、例えば、ＳＲＡＭ等の揮発性の半導体装置が挙げられる。また、キャッシュメモリ１０４の記憶容量は、特に限定されないが、一例として２〜６４ＧＢ程度である。
【００３５】
チャネルアダプタ１０５ａは、ファイバチャネルスイッチ３１に接続され、ファイバチャネルスイッチ３１を介してホスト装置３０のチャネルに接続される。チャネルアダプタ１０５は、ホスト装置３０と制御モジュール１０ａとの間でデータを送受信するインタフェース機能を提供する。
【００３６】
デバイスアダプタ１０６ａ、１０６ｂは、ドライブエンクロージャ２０ａに接続されている。このデバイスアダプタ１０６ａ、１０６ｂは、ドライブエンクロージャ２０ａが備えるＨＤＤ２０群とキャッシュメモリ１０４との間でデータを送受信するインタフェース機能を提供する。制御モジュール１０ａは、デバイスアダプタ１０６ａ、１０６ｂを介してドライブエンクロージャ２０ａが備えるＨＤＤ２０群との間でデータの送受信を行う。
【００３７】
制御モジュール１０ａ、１０ｂ、１０ｃは、ルータ３２、３３を介して互いに接続されている。例えば、ＨＤＤ２０群に書き込みを要求するデータがホスト装置３０からチャネルアダプタ１１ａを介して制御モジュール１０ａに送信されると、ＣＰＵ１０１は、受信したデータをキャッシュメモリ１０４に格納する。また、ＣＰＵ１０１はデータの格納と共に、受信したデータを、ルータ３２、３３を介して制御モジュール１０ｂおよび制御モジュール１０ｃに送信する。そして、制御モジュール１０ｂ、１０ｃは、制御モジュール１０ｂ、１０ｃそれぞれが有するＣＰＵが受信したデータを制御モジュール１０ｂ、１０ｃがそれぞれ有するキャッシュメモリに格納する。この処理によって、制御モジュール１０ａ内のキャッシュメモリ１０４と制御モジュール１０ｂ、１０ｃ内のキャッシュメモリとに同一のデータが記憶される。
【００３８】
ドライブエンクロージャ２０ａには、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０のうち、１つ、または複数のＨＤＤ２０により構成されたＲＡＩＤグループが形成されている。このＲＡＩＤグループは、「論理ボリューム」「仮想ディスク」「ＲＬＵ（RAID Logical Unit）」等と呼ばれる場合もある。
【００３９】
図２では、ＲＡＩＤ１を構成する３つのＲＡＩＤグループ２１、２２、２３を示している。なお、ＲＡＩＤグループ２１のＲＡＩＤ構成は、一例であり、図示のＲＡＩＤ構成に限定されない。例えば、ＲＡＩＤグループ２１、２２、２３は、任意の個数のＨＤＤ２０を有することができる。また、ＲＡＩＤグループ２１、２２、２３は、ＲＡＩＤ５、６等、任意のＲＡＩＤ方式で構成することができる。
【００４０】
また、ドライブエンクロージャ２０ａには、ＨＤＤ２０の障害の発生に備えてＨＤＤ２４が用意されている。制御モジュール１０ａ、１０ｂ、１０ｃは、例えば、ＨＤＤ２０の故障等により、ＨＤＤ２０のデータの読み出しや、ＨＤＤ２０へのデータの書き込みが１回または複数回失敗した場合に障害が発生したと判断する。このＨＤＤ２４は、ストレージ装置１００の運用時には、通電状態で待機している。このＨＤＤ２４はホットスペアディスクと言われるものである。ＲＡＩＤグループ２１、２２、２３内のいずれかのＨＤＤ２０に障害が発生すると、障害が発生したＨＤＤ２０を管理する制御モジュールが、障害が発生したＨＤＤ２０に記憶されているデータ（と同じデータ）をＨＤＤ２４にリビルド（再構築）処理を実行する。障害が発生したＨＤＤ２０を管理する制御モジュールは、障害が発生したＨＤＤ２０を、正常なＨＤＤ２０に交換すると、ＨＤＤ２４に記憶されているデータを、交換した正常なＨＤＤ２０にコピーバック（書き戻し）処理を実行する。なお、コピーバック処理は、バックグラウンドで行われる。
【００４１】
例えば、ＲＡＩＤグループ２１には、ＲＡＩＤグループ２１を構成するＨＤＤ２０の記憶領域が論理的に分割されている。分割された各記憶領域には、ＬＵＮ（Logical Unit Number）が設定されている。制御モジュール１０ａは、設定したＬＵＮを管理するテーブル（以下、「ＬＵＮ管理テーブル」と言う）を有している。
【００４２】
図３は、第２の実施の形態の制御モジュールの機能を示すブロック図である。
制御モジュール１０ａは、Ｉ／Ｏ制御部１１１と、スケジュール制御部１１２と、クイックフォーマット処理部１１３と、書き込み管理テーブル格納部１１４と、リビルド処理部１１５と、障害検出部１１６とを有している。
【００４３】
Ｉ／Ｏ制御部１１１は、ホスト装置３０からのＩ／Ｏアクセスを制御する。
スケジュール制御部１１２は、クイックフォーマット処理部１１３のクイックフォーマット処理中にＲＡＩＤグループ２１を構成するＨＤＤ２０の障害が発生したことが制御モジュール１０ａの障害検出部１１６から通知されると、設定したＬＵＮへのデータの書き込み状況に応じたリビルド処理の実行をリビルド処理部１１５に通知する。また、障害が発生したＨＤＤ２０が正常なＨＤＤ２０に交換されると、設定したＬＵＮへのデータの書き込み状況に応じたコピーバック処理の実行をリビルド処理部１１５に通知する。
【００４４】
クイックフォーマット処理部１１３は、ＲＡＩＤグループ２１を構成するＨＤＤ２０の記憶領域に対し、ＬＵＮ単位でクイックフォーマット処理を実行する。ここでクイックフォーマット処理は、フォーマット処理の一例である。クイックフォーマット処理は、実際の論理フォーマット処理化を行う前に、ホスト装置３０のＲＡＩＤグループ２１へのアクセスを許可し、ホスト３０のアクセスのバックグラウンドで、論理フォーマット処理を実行する。本実施の形態では、クイックフォーマット処理の種別として、ワンポイントフォーマット処理（One Point Format）とシーケンシャルフォーマット処理（Sequential Format）の二種類を定義する。ワンポイントフォーマット処理は、ホスト装置３０からＩ／Ｏ制御部１１１が受信したＩ／Ｏ要求範囲に対して動作する。シーケンシャルフォーマット処理は、ホスト装置３０からのＩ／Ｏとは非同期にＲＡＩＤグループ２１を構成するＨＤＤ２０の記憶領域をシーケンシャルに動作する。
【００４５】
また、クイックフォーマット処理部１１３は、ＬＵＮ毎にクイックフォーマット処理の進捗を管理するテーブル（以下「進捗テーブル」と言う）を有している。
書き込み管理テーブル格納部１１４は、クイックフォーマット処理時のＨＤＤ２０の記憶領域を構成するＬＵＮへの書き込みを管理する書き込み管理テーブルを格納する。なお、書き込み管理テーブル格納部１１４は、記憶部の一例である。
【００４６】
リビルド処理部１１５は、前述したＨＤＤ２０の故障時にリビルド処理およびコピーバック処理を実行する。このリビルド処理部１１５は、設定したＬＵＮ毎のリビルド処理を管理するテーブル（以下、「リビルド管理テーブル」と言う）およびコピーバック処理を管理するテーブル（以下、「コピーバック管理テーブル」と言う）を有している。リビルド処理部１１５は、リビルド処理を実行する際に、リビルド管理テーブルの、リビルド処理が終了したＬＵＮの欄をリビルド完了に設定する。リビルド管理テーブルを参照することで、設定したＬＵＮ毎にリビルド処理が完了しているか否かを判断することができる。また、リビルド処理部１１５は、コピーバック処理を実行する際に、コピーバック管理テーブルの、コピーバック処理が終了したＬＵＮの欄をコピーバック完了に設定する。コピーバック管理テーブルを参照することで、設定したＬＵＮ毎にコピーバック処理が完了しているか否かを判断することができる。
【００４７】
障害検出部１１６は、ＲＡＩＤグループ２１を構成するＨＤＤ２０の障害が発生したことを検出する。
図４は、書き込み管理テーブルの一例を示す図である。
【００４８】
図４に示す書き込み管理テーブル１１４ａには、ＬＵＮの欄と、ＱＦ（Quick Format）の欄が設けられている。縦方向に並べられた情報同士が違いに関連づけられている。
ＬＵＮの欄には、ＲＡＩＤグループ２１内に設定されたＬＵＮを識別する情報が設定されている。
【００４９】
ＱＦの欄には、ＬＵＮそれぞれのクイックフォーマット処理中の、ホスト装置３０からのデータの書き込みの有無を識別する情報が設定されている。すなわち「有」は、クイックフォーマット処理部１１３がクイックフォーマット処理を実行しているＬＵＮに対し、ホスト装置３０からデータの書き込みがあったことを示している。他方、「無」は、クイックフォーマット処理部１１３がクイックフォーマット処理を実行しているＬＵＮに対し、ホスト装置３０からデータの書き込みがないことを示している。
【００５０】
なお、書き込み管理テーブル１１４ａと同様の情報が記憶される書き込み管理テーブルが、制御モジュール１０ｂ、１０ｃにも設けられている。制御モジュール１０ｂに設けられた書き込み管理テーブルは、ＲＡＩＤグループ２２内に設定されたＬＵＮのクイックフォーマット処理の進捗状況を管理している。制御モジュール１０ｃに設けられた書き込み管理テーブルは、ＲＡＩＤグループ２３内に設定されたＬＵＮのクイックフォーマット処理の進捗状況を管理している。
【００５１】
次に、制御モジュール１０ａが実行するクイックフォーマット処理を説明する。
図５および図６は、制御モジュールが実行するクイックフォーマット処理を説明する図である。
【００５２】
図５に示すＨＤＤ２０１、２０２は、ＲＡＩＤグループ２１を構成する複数のＨＤＤ２０のうちの２つのＨＤＤである。ＨＤＤ２０１とＨＤＤ２０２は、ホスト装置３０からのＩ／Ｏデータを同時に書き込む、いわゆるミラー（Mirror）を形成している。ＨＤＤ２０１、２０２へのクイックフォーマット処理を開始する際には、スケジュール制御部１１２は、クイックフォーマット処理部１１３に対し、クイックフォーマット処理の開始を指示する。図５（ａ）に示すように、クイックフォーマット処理部１１３は、ＨＤＤ２０１、２０２に対しクイックフォーマット処理を開始する。
【００５３】
図５（ｂ）は、クイックフォーマット処理開始後に、クイックフォーマット処理実行対象のＨＤＤ２０２に故障が発生した様子を示している。ＨＤＤ２０２に故障が発生した場合、スケジュール制御部１１２は、リビルド処理の実行をリビルド処理部１１５に指示する。
【００５４】
図５（ｃ）は、リビルド処理部１１５のリビルド処理を示している。リビルド処理部１１５は、障害が発生したＨＤＤ２０２と同じデータが記憶されているＨＤＤ２０１に記憶されているデータをＨＤＤ２４にリビルド処理（修復）する。リビルド処理が終了すると、ＨＤＤ２０１とＨＤＤ２４との間でミラーが形成される。その後、スケジュール制御部１１２は、クイックフォーマットの再開をクイックフォーマット処理部１１３に指示する。
【００５５】
その後、図６（ａ）に示すように、障害が発生したＨＤＤ２０２に換えて新たなＨＤＤ２０３が実装されると、スケジュール制御部１１２は、コピーバック処理の実行をリビルド処理部１１５に指示する。リビルド処理部１１５は、ＨＤＤ２４に記憶されているデータを、交換したＨＤＤ２０３にコピーバック処理する。コピーバック処理が終了すると、ＨＤＤ２０１とＨＤＤ２０３との間でミラーが形成される。スケジュール制御部１１２は、図６（ｂ）に示すように、クイックフォーマット処理の再開をクイックフォーマット処理部１１３に指示する。
【００５６】
次に、図５（ｂ）および図５（ｃ）にて示した状況、すなわち、クイックフォーマット処理部１１３がクイックフォーマット処理を開始した後に、ＨＤＤ２０２に障害が発生したときのスケジュール制御部１１２の処理を、フローチャートを用いて説明する。
【００５７】
図７は、スケジュール制御部の処理を示すフローチャートである。
［ステップＳ１］  ＲＡＩＤグループ２１を構成するＨＤＤ２０の障害が発生したことが制御モジュール１０ａの障害検出部１１６から通知されると、スケジュール制御部１１２は、シーケンシャルフォーマット処理の一時停止指示をクイックフォーマット処理部１１３に送る。この停止指示により、クイックフォーマット処理部１１３は、シーケンシャルフォーマット処理を一時的に停止する。また、クイックフォーマット処理部１１３は、シーケンシャルフォーマット処理を一時的に停止したことを、例えばクイックフォーマット処理部１１３の図示しない記憶領域に記憶する。但し、クイックフォーマット処理部１１３は、ワンポイントフォーマット処理を実行しているまたは新たに受け付けた場合、ワンポイントフォーマット処理を実行する。また、クイックフォーマット処理部１１３がシーケンシャルフォーマット処理を停止した段階では、進捗テーブルは書き換えられない。すなわち、クイックフォーマット処理部１１３がＲＡＩＤグループ２１内に設定されたあるＬＵＮのシーケンシャルフォーマット処理を停止しても、進捗テーブルには、そのＬＵＮのシーケンシャルフォーマットがクイックフォーマット中であることを示す情報が設定されている。その後、ステップＳ２に遷移する。
【００５８】
［ステップＳ２］  スケジュール制御部１１２は、リビルド管理テーブルを参照し、チェック対象のＬＵＮを１つ選択する。その後、ステップＳ３に遷移する。
［ステップＳ３］  スケジュール制御部１１２は、進捗テーブルに記憶された、ＬＵＮ毎のクイックフォーマット処理の進捗を参照し、ステップＳ２にて選択したＬＵＮが、クイックフォーマット処理中のＬＵＮか否かを判断する。ステップＳ２にて選択したＬＵＮが、クイックフォーマット処理中のＬＵＮである場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。ステップＳ２に選択したＬＵＮが、クイックフォーマット処理中のＬＵＮではない場合（ステップＳ３のＮｏ）、ステップＳ７に遷移する。
【００５９】
［ステップＳ４］  スケジュール制御部１１２は、書き込み管理テーブル１１４ａを参照し、ステップＳ２にて選択したＬＵＮにデータの書き込みが行われたか否かを判断する。ステップＳ２にて選択したＬＵＮにデータの書き込みが行われた場合（ステップＳ４のＹｅｓ）、ステップＳ７に遷移する。ステップＳ２にて選択したＬＵＮにデータの書き込みが行われていない場合（ステップＳ４のＮｏ）、ステップＳ５に遷移する。
【００６０】
［ステップＳ５］  スケジュール制御部１１２は、ステップＳ２にて選択したＬＵＮの全てのフォーマット処理の停止をクイックフォーマット処理部１１３に通知する。この通知により、クイックフォーマット処理部１１３は、ステップＳ２にて選択したＬＵＮに対しワンポイントフォーマット処理を実行している場合でも、ワンポイントフォーマット処理を停止する。そして、スケジュール制御部１１２は、ステップＳ２にて選択したＬＵＮのリビルド処理を即時完了させる指示をリビルド処理部１１５に通知する。この指示の通知を受けたリビルド処理部１１５は、リビルド管理テーブルの、ステップＳ２にて選択したＬＵＮの欄をリビルド完了に設定する。すなわち、ステップＳ２にて選択したＬＵＮにデータの書き込みが行われていない場合、リビルド処理の実行を省略する。
【００６１】
スケジュール制御部１１２は、リビルド管理テーブルのステップＳ２にて選択したＬＵＮの欄をリビルド完了に設定した通知をリビルド処理部１１５から受け取ると、ステップＳ６に遷移する。
【００６２】
［ステップＳ６］  スケジュール制御部１１２は、進捗テーブルの、ステップＳ２にて選択したＬＵＮのクイックフォーマット処理の進捗を０（進捗無し）に設定する。その後、ステップＳ８に遷移する。
【００６３】
［ステップＳ７］  スケジュール制御部１１２は、通常のリビルド処理（ステップＳ５とは異なるリビルド処理）の実行をリビルド処理部１１５に通知する。この通知により、リビルド処理部１１５は、ＨＤＤ２０１に記憶されている全てのデータを読み出し、読み出したデータをＨＤＤ２４に書き込む。その後、ステップＳ８に遷移する。
【００６４】
［ステップＳ８］  スケジュール制御部１１２は、リビルド管理テーブルのＬＵＮ毎のリビルド処理の進捗状況を参照し、ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのリビルド処理が完了したか否かを判断する。ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのリビルド処理が完了している場合（ステップＳ８のＹｅｓ）、ステップＳ９に遷移する。ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのリビルド処理が完了していない場合（ステップＳ８のＮｏ）、ステップＳ２に遷移する。なおステップＳ２では、チェック対象のＬＵＮを選択し、ステップＳ３以降の処理を引き続き行う。
【００６５】
［ステップＳ９］  スケジュール制御部１１２は、ステップＳ１にて一時停止したシーケンシャルフォーマット処理の再開を、クイックフォーマット処理部１１３に指示する。その後、図７に示す処理を終了する。
【００６６】
以上で図７の処理の説明を終了する。
次に、図６（ａ）にて示した状況、すなわち、クイックフォーマット処理部１１３がクイックフォーマット処理を再開して実行中に、ＨＤＤ２０２に換えてＨＤＤ２０３が実装されたときのスケジュール制御部１１２の処理を、フローチャートを用いて説明する。
【００６７】
図８は、スケジュール制御部の処理を示すフローチャートである。
［ステップＳ１１］  障害が発生したＨＤＤ２０２に換えてＨＤＤ２０３が実装されたことが制御モジュール１０ａのＨＤＤ２０の交換を検出する部位から通知されると、スケジュール制御部１１２は、シーケンシャルフォーマット処理の一時停止指示をクイックフォーマット処理部１１３に送る。この停止指示により、クイックフォーマット処理部１１３は、シーケンシャルフォーマット処理を一時的に停止する。但し、クイックフォーマット処理部１１３は、ワンポイントフォーマット処理を実行しているまたは新たに受け付けた場合、ワンポイントフォーマット処理は実行する。また、クイックフォーマット処理部１１３がシーケンシャルフォーマット処理を停止した段階では、進捗テーブルは、初期化データ等で書き換えられること無く、シーケンシャルフォーマット停止時点の情報が保持される。すなわち、クイックフォーマット処理部１１３がＲＡＩＤグループ２１内に設定されたあるＬＵＮのシーケンシャルフォーマット処理を停止しても、進捗テーブルには、そのＬＵＮのシーケンシャルフォーマットがクイックフォーマット中であることを示す情報が設定されている。その後、ステップＳ１２に遷移する。
【００６８】
［ステップＳ１２］  スケジュール制御部１１２は、コピーバック管理テーブルを参照し、チェック対象のＬＵＮを１つ選択する。その後、ステップＳ１３に遷移する。
［ステップＳ１３］  スケジュール制御部１１２は、進捗テーブルを参照し、ステップＳ１２にて選択したＬＵＮが、クイックフォーマット処理中のＬＵＮか否かを判断する。ステップＳ１２にて選択したＬＵＮが、クイックフォーマット処理中のＬＵＮである場合（ステップＳ１３のＹｅｓ）、ステップＳ１４に遷移する。ステップＳ１２にて選択したＬＵＮが、クイックフォーマット処理中のＬＵＮではない場合（ステップＳ１３のＮｏ）、ステップＳ１７に遷移する。
【００６９】
［ステップＳ１４］  スケジュール制御部１１２は、書き込み管理テーブル１１４ａを参照し、ステップＳ１２にて選択したＬＵＮにデータの書き込みが行われたか否かを判断する。ステップＳ１２にて選択したＬＵＮにデータの書き込みが行われた場合（ステップＳ１４のＹｅｓ）、ステップＳ１７に遷移する。ステップＳ１２にて選択したＬＵＮにデータの書き込みが行われていない場合（ステップＳ１４のＮｏ）、ステップＳ１５に遷移する。
【００７０】
［ステップＳ１５］  スケジュール制御部１１２は、ステップＳ１２にて選択したＬＵＮの全てのフォーマット処理の停止をクイックフォーマット処理部１１３に通知する。この通知により、ワンポイントフォーマット処理部１１３は、ステップＳ１２にて選択したＬＵＮに対しワンポイントフォーマット処理を実行している場合でも、ワンポイントフォーマット処理を停止する。そして、スケジュール制御部１１２は、ステップＳ１２にて選択したＬＵＮのコピーバック処理を即時完了させる指示をリビルド処理部１１５に通知する。この指示の通知を受けたリビルド処理部１１５は、コピーバック管理テーブルの、ステップＳ１２にて選択したＬＵＮの欄をコピーバック完了に設定する。すなわち、ステップＳ１２にて選択したＬＵＮにデータの書き込みが行われていない場合、コピーバック処理の実行を省略する。
【００７１】
スケジュール制御部１１２は、コピーバック管理テーブルのステップＳ１２にて選択したＬＵＮの欄をコピーバック完了に設定した通知をリビルド処理部１１５から受け取ると、ステップＳ１６に遷移する。
【００７２】
［ステップＳ１６］  スケジュール制御部１１２は、進捗テーブルの、ステップＳ１２にて選択したＬＵＮのクイックフォーマット処理の進捗を０（進捗無し）に設定する。その後、ステップＳ１８に遷移する。
【００７３】
［ステップＳ１７］  スケジュール制御部１１２は、通常のコピーバック処理（ステップＳ１５とは異なるコピーバック処理）の実行をリビルド処理部１１５に通知する。この通知により、リビルド処理部１１５は、ＨＤＤ２４に記憶されている全てのデータを読み出し、読み出したデータをＨＤＤ２０３に書き込む。その後、ステップＳ１８に遷移する。
【００７４】
［ステップＳ１８］  スケジュール制御部１１２は、コピーバック管理テーブルを参照し、ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのコピーバック処理が完了したか否かを判断する。ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのコピーバック処理が完了している場合（ステップＳ１８のＹｅｓ）、ステップＳ１９に遷移する。ＲＡＩＤグループ２１内に設定されている全てのＬＵＮのコピーバック処理が完了していない場合（ステップＳ１８のＮｏ）、ステップＳ１２に遷移する。なおステップＳ１２では、チェック対象のＬＵＮを選択し、ステップＳ１３以降の処理を引き続き行う。
【００７５】
［ステップＳ１９］  スケジュール制御部１１２は、ステップＳ１１にて一時停止したシーケンシャルフォーマット処理の再開を、フォーマット処理部１１３に指示する。その後、図８に示す処理を終了する。
【００７６】
以上で図８の処理の説明を終了する。
以上述べたように、制御モジュール１０ａによれば、スケジュール制御部１１２が、図７に示す処理を行うことにより、シーケンシャルクイックフォーマット処理を一時停止し、リビルド処理を先に実行させるようにした。図７に示す処理により、リビルド処理とクイックフォーマット処理の競合を回避することができる。また、スケジュール制御部１１２が、図８に示す処理を行うことにより、シーケンシャルクイックフォーマット処理を一時停止し、コピーバック処理を先に実行させるようにした。図８に示す処理により、コピーバック処理とクイックフォーマット処理の競合を回避することができる。処理の競合を回避することにより、例えばリビルド処理およびコピーバック処理が長引くことにより、ミラーを形成する故障が発生していない方のＨＤＤ２０にも故障が発生してしまい、記憶されているデータが消失してしまうことを抑制することができる。
【００７７】
また、処理の競合を回避することにより、リビルド処理およびコピーバック処理をそれぞれ単独で実行するときの処理時間を、処理が競合した場合に比べ、比較的容易に把握することができるため、それぞれの処理時間の見積もりを容易に行うことができる。
【００７８】
また、図７のステップＳ５にてステップＳ２にて選択したＬＵＮにデータの書き込みが行われていない場合、リビルド処理を省略するようにした。ステップＳ５の処理を実行することにより、当該ＬＵＮが、その後のクイックフォーマット処理によりフォーマットされるＬＵＮであるにも関わらず、リビルド処理が行われ、データが再構築されるという余分な手間を省くことができる。また、リビルド処理を早期に完了することができる。また、図８のステップＳ１５にてステップＳ１２にて選択したＬＵＮにデータの書き込みが行われていない場合、コピーバック処理を省略するようにした。ステップＳ１５の処理を実行することにより、当該ＬＵＮが、その後のクイックフォーマット処理によりフォーマットされるＬＵＮであるにも関わらず、コピーバック処理が行われ、データが書き戻されるという余分な手間を省くことができる。また、コピーバック処理を早期に完了することができる。また、図７および図８に示す処理によれば、ＲＡＩＤグループ２１を構成するＨＤＤ２０それぞれの一部の記憶領域で構成されるストライプ単位での書き込みの有無を管理するテーブルを持たずに、リビルド処理およびコピーバック処理を省略することができる。
【００７９】
また、フォーマット処理とリビルド処理とが競合すると、伝送路およびディスクの負荷が大きくなる場合がある。伝送路およびディスクの負荷が大きくなることも遅延の要因となり得る。制御モジュール１０ａによれば、スケジュール制御部１１２が、図７に示す処理を行うことにより、伝送路およびディスクの負荷が大きくなることによる遅延を抑制することができる。
【００８０】
以上、本発明のストレージ装置、制御装置および制御プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００８１】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置３および制御モジュール１０ａ、１０ｂ、１０ｃが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００８２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８４】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【００８５】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  データが冗長に記憶される複数の第１の記憶媒体と、前記第１の記憶媒体と通信回線を介して接続され、前記第１の記憶媒体への情報の書き込みを制御する制御装置とを備えるストレージ装置において、
前記制御装置は、
前記複数の第１の記憶媒体それぞれに対しフォーマット処理を施すフォーマット処理部と、
前記複数の第１の記憶媒体に発生する障害を検出する検出部と、
前記検出部の障害の検出に応じて前記フォーマット処理部にフォーマット処理を停止させ、障害が発生した前記第１の記憶媒体に記憶されているデータを、前記第１の記憶媒体以外の第２の記憶媒体に再構築させる制御部と、
前記制御部の指示に応じて前記第１の記憶媒体に記憶されているデータを、前記第２の記憶媒体に再構築する再構築処理部と、
を有することを特徴とするストレージ装置。
【００８６】
（付記２）  前記フォーマット処理部は、前記複数の第１の記憶媒体に論理的に設定された論理記憶領域毎に前記フォーマット処理を施し、
前記フォーマット処理部がフォーマット処理を施している前記論理記憶領域毎のデータの書き込みの有無を示すテーブルを管理する管理部をさらに有し、
前記制御部は、前記テーブルを参照して障害が発生した前記第１の記憶媒体の、前記フォーマット処理を施している前記論理記憶領域へのデータ書き込みの有無を判断し、データ書き込みが無かった場合、前記フォーマット処理を施している前記論理記憶領域に記憶されているデータの前記第２の記憶媒体への再構築を省略することを特徴とする付記１記載のストレージ装置。
【００８７】
（付記３）  前記制御部は、障害が発生していない前記第１の記憶媒体の再構築処理を省略した前記論理記憶領域に対する前記フォーマット処理を最初から前記フォーマット処理部に開始させることを特徴とする付記２記載のストレージ装置。
【００８８】
（付記４）  前記制御部は、前記再構築処理部に前記第２の記憶媒体に再構築されたデータを、障害が発生した前記第１の記憶媒体の代わりに用意された第３の記憶媒体に書き戻させる際に、
前記テーブルを参照してフォーマット処理を施している前記論理記憶領域へのデータ書き込みの有無を判断し、データ書き込みが無かった場合、前記フォーマット処理を施している前記論理記憶領域に記憶されているデータの前記第３の記憶媒体への書き戻しを省略することを特徴とする付記２記載のストレージ装置。
【００８９】
（付記５）  前記フォーマット処理部は、ホスト装置からのアクセス要求とは非同期に前記第１の記憶媒体に施すフォーマット処理を一時停止した後に、障害が発生した前記第１の記憶媒体の、前記フォーマット処理を施している前記論理記憶領域へのデータ書き込みの有無を判断することを特徴とする付記２または４記載のストレージ装置。
【００９０】
（付記６）  データが冗長に記憶される複数の第１の記憶媒体と、前記第１の記憶媒体と通信回線を介して接続され、前記第１の記憶媒体への情報の書き込みを制御する制御装置において、
前記複数の第１の記憶媒体それぞれに対しフォーマット処理を施すフォーマット処理部と、
前記複数の第１の記憶媒体に発生する障害を検出する検出部と、
前記検出部の障害の検出に応じて前記フォーマット処理部にフォーマット処理を停止させ、障害が発生した前記第１の記憶媒体に記憶されているデータを、前記第１の記憶媒体以外の第２の記憶媒体に再構築させる制御部と、
前記制御部の指示に応じて前記第１の記憶媒体に記憶されているデータを、前記第２の記憶媒体に再構築する再構築処理部と、
を有することを特徴とする制御装置。
【符号の説明】
【００９１】
１  ストレージ装置
２、３０  ホスト装置
３  制御装置
３ａ  フォーマット処理部
３ｂ  検出部
３ｃ  制御部
３ｄ  再構築処理部
３ｅ  記憶部
３ｅ１  管理テーブル
４ａ、４ｂ、４ｃ  記憶媒体
１０ａ、１０ｂ、１０ｃ  制御モジュール
２０、２４、２０１、２０２、２０３  ＨＤＤ
２１、２２、２３  ＲＡＩＤグループ
【図１】
0005729043.tif 000002
【図２】
0005729043.tif 000003
【図３】
0005729043.tif 000004
【図４】
0005729043.tif 000005
【図５】
0005729043.tif 000006
【図６】
0005729043.tif 000007
【図７】
0005729043.tif 000008
【図８】
0005729043.tif 000009