(57)【要約】【課題】メディアエラーが発生した場合でもレスポンスの低下を有効に防止することを可能とするディスクアレイ装置等を提供する。【解決手段】ディスクアレイ装置１は、データの入出力処理を行う複数のディスクドライブ４ａ〜ｂと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラ３とを備え、ディスクアレイコントローラ３が、上位装置からのデータ入出力要求に応じて各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段３ａと、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、この異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段３ｂと、データ入出力の終了後にバッドセクタに対して修復処理を行うバッドセクタ修復手段３ｃとを備える。【選択図】図１
2014134884.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置であって、
前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備え、
前記ディスクアレイコントローラが、前記上位装置からのデータ入出力要求に応じて前記各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段と、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、前記データ入出力の再処理を許容せずにこの異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段と、前記データ入出力の終了後に前記バッドセクタに対して修復処理を行うバッドセクタ修復手段と
を備えることを特徴とするディスクアレイ装置。
【請求項２】
前記ディスクアレイコントローラが、
前記各ディスクドライブの動作中に前記データ入出力に対する負荷を検出し、その負荷が予め与えられた閾値より低い場合に前記バッドセクタ記録手段を動作させる負荷検出手段
を備えることを特徴とする、請求項１に記載のディスクアレイ装置。
【請求項３】
前記ディスクアレイコントローラの前記データ入出力手段が、前記データ入出力が正常に終了した場合と、前記異常終了が発生して前記バッドセクタを記憶した場合に前記上位装置に正常応答を返信する機能を有することを特徴とする、請求項１に記載のディスクアレイ装置。
【請求項４】
前記ディスクアレイコントローラの前記バッドセクタ記録手段が、前記各バッドセクタのセクタ番号とこれに対応する二値データである処理済フラグとを含むバッドセクタ記録テーブルを前記記憶手段に記憶する機能を備えると共に、
前記ディスクアレイコントローラの前記バッドセクタ修復手段が、前記処理済フラグが「未済」を示す値である前記バッドセクタに対して前記修復処理を行い、その終了後に当該処理済フラグを「済」を示す値に変更する機能を備えることを特徴とする、請求項１に記載のディスクアレイ装置。
【請求項５】
前記ディスクアレイコントローラの前記バッドセクタ修復手段が、前記修復処理が成功しなかったセクタに対して代替セクタを割り当てる機能を備えることを特徴とする、請求項１に記載のディスクアレイ装置。
【請求項６】
前記ディスクアレイコントローラの前記バッドセクタ記録手段が、前記各バッドセクタのセクタ番号とこれに対応する二値データである処理済フラグ、および前記上位装置から受信した書き込みデータとを前記バッドセクタ記録テーブルに記憶する機能を備えると共に、
前記ディスクアレイコントローラが、前記修復処理が成功しなかったセクタに対して前記書き込みデータを用いて整合性の復旧処理を行うリビルド手段を備えることを特徴とする、請求項４に記載のディスクアレイ装置。
【請求項７】
上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、
前記ディスクアレイ装置が、前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、
前記上位装置からのデータ入出力要求に応じて前記ディスクアレイコントローラのデータ入出力手段が前記各ディスクドライブに対してデータ入出力要求を行い、
このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かを前記ディスクアレイコントローラの前記データ入出力手段が検出し、
前記異常終了が発生した場合に、前記データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタを前記ディスクアレイコントローラのバッドセクタ記録手段が予め備えられた記憶手段に記憶し、
前記データ入出力の終了後に前記バッドセクタに対して前記ディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う
ことを特徴とするバッドセクタ修復方法。
【請求項８】
前記データ入出力の終了後の前記各ディスクドライブの動作中に、前記ディスクアレイコントローラの負荷検出手段が前記データ入出力に対する負荷を検出してこれを予め与えられた閾値と比較し、
検出された前記負荷が前記閾値より低い場合に前記バッドセクタに対して前記ディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う
ことを特徴とする、請求項７に記載のバッドセクタ修復方法。
【請求項９】
前記データ入出力が正常に終了した場合と、前記異常終了が発生して前記バッドセクタを記憶した場合に、前記ディスクアレイコントローラの前記データ入出力手段が前記上位装置に正常応答を返信する
ことを特徴とする、請求項７に記載のバッドセクタ修復方法。
【請求項１０】
上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、
前記ディスクアレイ装置が、前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、
前記ディスクアレイコントローラの備えるプロセッサに、
前記上位装置からのデータ入出力要求に応じて前記各ディスクドライブに対してデータ入出力要求を行う手順、
このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かを検出する手順、
前記異常終了が発生した場合に、前記データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶する手順、
および前記データ入出力の終了後に前記バッドセクタに対して修復処理を行う手順
を実行させることを特徴とするバッドセクタ修復プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置、バッドセクタ修復方法および修復プログラムに関し、特にデータ記録時にメディアエラーが発生した場合でもレスポンスの低下を有効に防止しうるディスクアレイ装置等に関する。
【背景技術】
【０００２】
コンピュータが社会の基盤としてすっかり浸透した現代では、コンピュータ装置の停止、遅延、およびデータの損失は、それだけで重大な損失となる。そのため、特にウェブサーバ、ファイルサーバ、データベースなどのような、業務の根幹を担い、また業務上重要なデータを大量に取り扱うコンピュータ装置は、その動作を停止させず、性能（レスポンス）を低下させず、またデータの損失を防ぐ事が極めて重要である。
【０００３】
そのため、それらのコンピュータ装置では、複数のディスクドライブを組み合わせてデータの記録を多重化するディスクアレイ装置が利用されることが一般的である。２台のディスクドライブの同一アドレスに同一データを書き込んだ場合、そのうちの一方にメディアエラーが生じてデータの読み出しが不可能になったとしても、もう一方の同一アドレスで同じようにメディアエラーが生じる確率は、決してゼロではないけど事実上無視できる程度に小さいからである。
【０００４】
図１２は、既存技術に係るディスクアレイ装置９１０の構成について示す説明図である。ディスクアレイ装置９１０は、上位装置９２０と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行う。
【０００５】
ディスクアレイ装置９１０は、複数のディスクドライブ９１１ａおよび９１１ｂと、これらのディスクドライブ９１１ａおよび９１１ｂに対する入出力処理を制御するディスクアレイコントローラ９１２と、上位装置９２０との間の接続を介在する接続インタフェース９１３とからなる。図１２のディスクアレイ装置９１０は、いわゆるＲＡＩＤ（Redundant Arrays of Inexpensive Disks）の中でもＲＡＩＤ１と呼ばれる構成である。
【０００６】
ディスクアレイコントローラ９１２は、コンピュータ装置としての基本的な構成を備える。即ち、コンピュータプログラムを実行する主体であるプロセッサ９１２ａと、データを記憶する記憶手段９１２ｂとを備える。
【０００７】
そして、プロセッサ９１２ａは、データ書き込み制御プログラムが動作することにより、後述のデータ入出力手段９３１、およびセクタ修復手段９３２として動作する。データ入出力手段９３１は、上位装置９２０からのデータ入出力要求に応じて、ディスクドライブ９１１ａおよび９１１ｂに対してデータ入出力要求を行う。セクタ修復手段９３２はデータ入出力中にメディアエラーが発生したセクタに対して修復処理を行う。
【０００８】
図１３は、図１２に示したデータ入出力手段９３１およびセクタ修復手段９３２の動作について示す説明図である。図１４は、図２に示したデータ入出力手段９３１およびセクタ修復手段９３２の動作について示すフローチャートである。上位装置９２０からデータ入出力要求を受けたデータ書き込み手段９０１は（ステップＳ９０１）、ディスクドライブ９１１ａもしくは９１１ｂの両方に対して、上位装置９２０から受けたデータ入出力要求の通りのセクタへのデータ入出力を要求する（ステップＳ９０２）。
【０００９】
このデータ入出力がディスクドライブ９１１ａもしくは９１１ｂの両方において正常終了したか否かをデータ入出力手段９３１が判断し（ステップＳ９０３）、両方で成功したらデータ入出力手段９３１がそのまま上位装置２０に正常終了を返信し（ステップＳ９０４）、ステップＳ９０１に戻って次のデータ入出力要求を待つ。
【００１０】
もしディスクドライブ９１１ａもしくは９１１ｂのいずれか一方で異常終了となったなら（ステップＳ９０３がノー）、その異常終了が発生したセクタに対してセクタ修復手段９３２が代替セクタを割り当て（ステップＳ９０４）、その代替セクタに対してデータ入出力手段９３１がデータ入出力を完了させてから（ステップＳ９０５）データ入出力手段９３１が上位装置９２０に正常終了を返信し（ステップＳ９０６）、ステップＳ９０１に戻って次のデータ入出力要求を待つ。
【００１１】
ここで、上記ステップＳ９０２およびＳ９０５の処理で、同一セクタへのデータ入出力について複数回のリトライ（再処理）を許容するものとし、予め定められた回数のリトライを行っても正常終了にならない場合に上記ステップＳ９０３およびＳ９０６で初めて異常終了と判断するものとにしてもよい。
【００１２】
これに関連する技術文献として、次の各々がある。その中でも特許文献１には、ホストコンピュータと各ディスクサブシステム（ディスクドライブ）との間にデータ二重化装置を挿入し、ホストコンピュータにかかる負荷を軽減するというデータ多重化システムが記載されている。
【００１３】
特許文献２には、ＲＡＩＤ１構成でデータ復旧時のエラー発生率を下げて効率的にデータの復旧ができるというディスクアレイ装置が記載されている。特許文献３には、不良セクタに対して上書き処理を行い、これが失敗した場合にセクタ移動を行わせるという記録装置が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００５−１９６４９０号公報
【特許文献２】特開２００６−１２００４２号公報
【特許文献３】特開２００７−１８８４６３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
前述のように、ディスクアレイ装置には、「データの損失を防ぐ」ことと同時に「コンピュータ装置（上位装置）の動作の停止や性能（レスポンス）の低下を発生させない」ことが求められる。
【００１６】
しかしながら、既存技術に係るディスクアレイ装置９１０の図１２〜１４に示した処理では、データ入出力に異常終了が検出された場合（ステップＳ９０３がノー）に代替セクタの割り当て（ステップＳ９０４）とその代替セクタへのデータ入出力（ステップＳ９０５）の処理を行い、その終了を待ち合わせてから上位装置９２０に正常終了を返信（ステップＳ９０６）している。従って、ステップＳ９０４〜９０５の処理の終了を待ち合わせる分の時間を要することとなる。
【００１７】
データ入出力の異常終了は、典型的にはディスクドライブ９１１ａもしくは９１１ｂのデータ記録盤面上の特定のセクタにおいてできた物理的な損傷などによって生じる。しかもこのような損傷の被害は１セクタだけにとどまることは少なく、連続した複数のセクタにおいて立て続けに発生することが多い。
【００１８】
従って、連続するセクタごとにステップＳ９０４〜９０５の処理が行われることとなる。特にステップＳ９０５の処理で同一セクタに対して複数のリトライが行われることも多いので、そのような場合に特に時間を要する。
【００１９】
以上のような問題を解決しうる技術は、前述の特許文献１〜３には記載されていない。特許文献１には「一度障害発生してからその回復後」にディスクドライブ間でデータのコピーを行うとの記載があるが、その障害を回復させるための動作（たとえばディスク装置の交換など）を行うということが記載されているので、これは上記した問題点を解決するものではない。
【００２０】
また特許文献２には、読み出しエラーに対して再書き込み用のブロックが再割り当てされるとの記載があるので、これも上記した問題点を解決するものではない。特許文献３には、上書き処理の失敗時にセクタ移動を行うとの記載があるので、これまた上記した問題点を解決するものではない。
【００２１】
本発明の目的は、データ記録時にメディアエラーが発生した場合でもレスポンスの低下を有効に防止することを可能とするディスクアレイ装置、バッドセクタ修復方法および修復プログラムを提供することにある。
【課題を解決するための手段】
【００２２】
上記目的を達成するため、本発明に係るディスクアレイ装置は、上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置であって、データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラとを備え、ディスクアレイコントローラが、上位装置からのデータ入出力要求に応じて各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段と、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、データ入出力の再処理を許容せずにこの異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段と、データ入出力の終了後にバッドセクタに対して修復処理を行うバッドセクタ修復手段とを備えることを特徴とする。
【００２３】
上記目的を達成するため、本発明に係るバッドセクタ修復方法は、上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、ディスクアレイ装置が、データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、上位装置からのデータ入出力要求に応じてディスクアレイコントローラのデータ入出力手段が各ディスクドライブに対してデータ入出力要求を行い、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かをディスクアレイコントローラのデータ入出力手段が検出し、異常終了が発生した場合に、データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタをディスクアレイコントローラのバッドセクタ記録手段が予め備えられた記憶手段に記憶し、データ入出力の終了後にバッドセクタに対してディスクアレイコントローラのバッドセクタ修復手段が修復処理を行うことを特徴とする。
【００２４】
上記目的を達成するため、本発明に係るバッドセクタ修復プログラムは、上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、ディスクアレイ装置が、データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、ディスクアレイコントローラの備えるプロセッサに、上位装置からのデータ入出力要求に応じて各ディスクドライブに対してデータ入出力要求を行う手順、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かを検出する手順、異常終了が発生した場合に、データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶する手順、およびデータ入出力の終了後にバッドセクタに対して修復処理を行う手順を実行させることを特徴とする。
【発明の効果】
【００２５】
本発明は、上記したように、異常終了が発生したバッドセクタを記憶しておくように構成したので、後から、たとえば負荷の少ない時などに当該セクタに対する修復処理を行うことが可能となる。これによって、データ記録時にメディアエラーが発生した場合でもレスポンスの低下を有効に防止することを可能であるという、優れた特徴を持つディスクアレイ装置、バッドセクタ修復方法および修復プログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の基本形態に係るディスクアレイ装置の構成について示す説明図である。
【図２】本発明の第１の実施形態に係るディスクアレイ装置の構成について示す説明図である。
【図３】図２に示したバッドセクタ記録テーブルの記憶内容について示す説明図である。
【図４】図２に示したデータ入出力手段およびバッドセクタ記録手段の動作について示す説明図である。
【図５】図２に示したデータ入出力手段およびバッドセクタ記録手段の動作について示すフローチャートである。
【図６】図２に示した負荷検出手段およびバッドセクタ修復手段の動作について示す説明図である。
【図７】図２に示した負荷検出手段およびバッドセクタ修復手段の動作について示すフローチャートである。
【図８】本発明の第２の実施形態に係るディスクアレイ装置の構成について示す説明図である。
【図９】図８に示したバッドセクタ記録テーブルの記憶内容について示す説明図である。
【図１０】図８に示したデータ入出力手段およびバッドセクタ記録手段の動作について示すフローチャートである。
【図１１】図８に示した負荷検出手段、バッドセクタ修復手段、およびリビルド手段の動作について示すフローチャートである。
【図１２】既存技術に係るディスクアレイ装置の構成について示す説明図である。
【図１３】図１２に示したデータ入出力手段およびセクタ修復手段の動作について示す説明図である。
【図１４】図１２に示したデータ入出力手段およびセクタ修復手段の動作について示すフローチャートである。
【発明を実施するための形態】
【００２７】
（基本形態）
以下、本発明の基本形態の構成について添付図１に基づいて説明する。
最初に、基本形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
基本形態に係るディスクアレイ装置１は、上位装置２と接続され、この上位装置２からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置であって、データの入出力処理を行う複数のディスクドライブ４ａ〜ｂと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラ３とを備え、ディスクアレイコントローラ３が、上位装置からのデータ入出力要求に応じて各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段３ａと、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、データ入出力の再処理を許容せずにこの異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段３ｂと、データ入出力の終了後にバッドセクタに対して修復処理を行うバッドセクタ修復手段３ｃとを備える。
【００２８】
以上の構成を備える事により、このディスクアレイ装置１は、データ入出力の終了後にバッドセクタを修復して、信頼性と迅速性を両立することが可能となる。
以下、これをより詳細に説明する。
【００２９】
図１は、本発明の基本形態に係るディスクアレイ装置１の構成について示す説明図である。ディスクアレイ装置１は、上位装置２と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行う。
【００３０】
ディスクアレイ装置１は、複数のディスクドライブ４ａおよび４ｂと、これらのディスクドライブ４ａおよび４ｂに対する入出力処理を制御するディスクアレイコントローラ３とからなる。ディスクアレイコントローラ３は、データ入出力手段３ａ、バッドセクタ記録手段３ｂ、およびバッドセクタ修復手段３ｃを備える。
【００３１】
データ入出力手段３ａは、上位装置２からのデータ入出力要求に応じて、ディスクドライブ４ａおよび４ｂに対してデータ入出力要求を行う。バッドセクタ記録手段３ｂは、ディスクドライブ４ａもしくは４ｂでデータ入出力中にメディアエラーが発生した場合、このメディアエラーが発生したセクタ（以後これをバッドセクタという）を記憶する。バッドセクタ修復手段３ｃは、そのバッドセクタに対して修復処理を行う。
【００３２】
（第１の実施形態）
続いて、本発明の第１の実施形態の構成について添付図２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るディスクアレイ装置１０は、上位装置２０と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置１０であり、データの入出力処理を行う複数のディスクドライブ１１ａ〜ｂと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラ１２とを備え、ディスクアレイコントローラが、上位装置からのデータ入出力要求に応じて各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段１０２と、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、データ入出力の再処理を許容せずにこの異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段１０２と、データ入出力の終了後にバッドセクタに対して修復処理を行うバッドセクタ修復手段１０４と、各ディスクドライブの動作中にデータ入出力に対する負荷を検出し、その負荷が予め与えられた閾値より低い場合にバッドセクタ記録手段を動作させる負荷検出手段１０３を備える。
【００３３】
また、ディスクアレイコントローラ１２のデータ入出力手段１０１が、データ入出力が正常に終了した場合と、異常終了が発生してバッドセクタを記憶した場合に上位装置に正常応答を返信する機能を有する。
【００３４】
さらにバッドセクタ記録手段１０２が、各バッドセクタのセクタ番号１１１ａとこれに対応する二値データである処理済フラグ１１１ｃとを含むバッドセクタ記録テーブル１１１を記憶手段１２ｂに記憶する機能を備える。そして、バッドセクタ修復手段１０４が、処理済フラグ１１１ｃが「未済」を示す値であるバッドセクタに対して修復処理を行い、その終了後に当該処理済フラグを「済」を示す値に変更する機能を備える。
【００３５】
その一方で、バッドセクタ修復手段１０４が、修復処理が成功しなかったセクタに対して代替セクタを割り当てる機能も備える。
【００３６】
以上の構成を備える事により、このディスクアレイ装置１０は、データ記録時にメディアエラーが発生した場合でもレスポンスの低下を有効に防止することが可能となる。
以下、これをより詳細に説明する。
【００３７】
図２は、本発明の第１の実施形態に係るディスクアレイ装置１０の構成について示す説明図である。ディスクアレイ装置１０は、上位装置２０と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行う。
【００３８】
ディスクアレイ装置１０は、複数のディスクドライブ１１ａおよび１１ｂと、これらのディスクドライブ１１ａおよび１１ｂに対する入出力処理を制御するディスクアレイコントローラ１２と、上位装置２０との間の接続を介在する接続インタフェース１３とからなる。
【００３９】
ここで、上位装置２０と接続インタフェース１３との間の接続の種類は、たとえばＦＣ（Fibre Channel）、ｉＳＣＳＩ（Internet Small Computer Systems Interface）などといった既存の規格を利用することができる。上位装置２０は、データ入出力要求を行う一般的なコンピュータ装置であるので、その具体的な構成については図示するまでもない。
【００４０】
ディスクアレイコントローラ１２は、コンピュータ装置としての基本的な構成を備える。即ち、コンピュータプログラムを実行する主体であるプロセッサ１２ａと、データを記憶する記憶手段１２ｂとを備える。
【００４１】
そして、プロセッサ１２ａは、データ書き込み制御プログラムが動作することにより、後述のデータ入出力手段１０１、バッドセクタ記録手段１０２、負荷検出手段１０３、およびバッドセクタ修復手段１０４として動作する。記憶手段１２ｂには、バッドセクタ記録テーブル１１１としての記憶領域が確保されている。
【００４２】
これら各々の動作内容および記憶内容について説明する。データ入出力手段１０１は、上位装置２０からのデータ入出力要求に応じて、ディスクドライブ１１ａおよび１１ｂに対してデータ入出力要求を行う。バッドセクタ記録手段１０２は、ディスクドライブ１１ａもしくは１１ｂでデータ入出力中に異常終了（メディアエラー）が発生した場合、その異常終了が発生したバッドセクタをバッドセクタ記録テーブル１１１に記録する。
【００４３】
負荷検出手段１０３は、ディスクドライブ１１ａおよび１１ｂの動作中に、データの入出力に対する負荷を検出し、その負荷が予め与えられた閾値より高いか低いかを判定する。バッドセクタ修復手段１０４は、バッドセクタ記録テーブル１１１に記憶されたバッドセクタに対して修復処理を行う。
【００４４】
図３は、図２に示したバッドセクタ記録テーブル１１１の記憶内容について示す説明図である。バッドセクタ記録テーブル１１１は、メディアエラーが発生したセクタ番号（ＬＢＡ：Logical Block Addressing、論理ブロックアドレス）であるバッドセクタ番号１１１ａとそのドライブ名１１１ｂ、および当該バッドセクタが修復処理済であるか未済であるかを示す二値データである処理済フラグ１１１ｃが記録される。
【００４５】
図４は、図２に示したデータ入出力手段１０１およびバッドセクタ記録手段１０２の動作について示す説明図である。図５は、図２に示したデータ入出力手段１０１およびバッドセクタ記録手段１０２の動作について示すフローチャートである。上位装置２０からデータ入出力要求を受けたデータ入出力手段１０１は（ステップＳ１０１）、ディスクドライブ１１ａもしくは１１ｂの両方に対して、上位装置２０から受けたデータ入出力要求の通りのセクタへのデータ入出力を要求する（ステップＳ１０２）。
【００４６】
このデータ入出力がディスクドライブ１１ａもしくは１１ｂの両方において正常終了したか否かをデータ入出力手段１０１が判断し（ステップＳ１０３）、両方で成功したらデータ入出力手段１０１がそのまま上位装置２０に正常終了を返信し（ステップＳ１０４）、ステップＳ１０１に戻って次のデータ入出力要求を待つ。
【００４７】
もしディスクドライブ１１ａもしくは１１ｂのいずれか一方で異常終了となったなら（ステップＳ１０３がノー）、その異常終了が発生したセクタ番号をバッドセクタ番号１１１ａとして、バッドセクタ記録手段１０２がこのバッドセクタ番号１１１ａとドライブ名１１１ｂ、そして処理済フラグ１１１ｃ＝「未済」をバッドセクタ記録テーブル１１１に記録する（ステップＳ１０５）。その場合もステップＳ１０４に進んでデータ入出力手段１０１が上位装置２０に正常終了を返信し、次のデータ入出力要求を待つ。
【００４８】
ここで、上記ステップＳ１０２の処理で、同一セクタへのデータ入出力について複数回のリトライ（再処理）を許容するものとし、予め定められた回数のリトライを行っても正常終了にならない場合に上記ステップＳ１０３で初めて異常終了と判断するものとしてもよい。また、リトライを許容しなくてもよい。本実施例は、リトライを許容しないものとして記載する。
【００４９】
図６は、図２に示した負荷検出手段１０３およびバッドセクタ修復手段１０４の動作について示す説明図である。図７は、図２に示した負荷検出手段１０３およびバッドセクタ修復手段１０４の動作について示すフローチャートである。図４〜５に示したバッドセクタを記録する動作だけでは、ディスクドライブ１１ａおよび１１ｂの間で内容の整合性を取ることができないので、ディスクアレイ装置１０では図６〜７に示す動作によってこれら両者の整合性を取っている。
【００５０】
負荷検出手段１０３は、図４に示したデータ入出力手段１０１およびバッドセクタ記録手段１０２の動作とは独立して、ディスクドライブ１１ａもしくは１１ｂの動作にかかる負荷を、一定の時間間隔ごとに検出し、この負荷が予め与えられた閾値以下であるか否かを判断している（ステップＳ２０１）。負荷が閾値以上であれば、負荷検出手段１０３は次のステップには処理を進めない。
【００５１】
負荷が閾値以下であれば（ステップＳ２０１がイエス）、負荷検出手段１０３はバッドセクタ記録テーブル１１１に処理済フラグ１１１ｃ＝「未済」であるバッドセクタが存在するか否かを判断する（ステップＳ２０２）。そのようなバッドセクタが存在しなければステップＳ２０１に戻る。処理済フラグ１１１ｃ＝「未済」であるバッドセクタが存在すれば（ステップＳ２０２がイエス）、負荷検出手段１０３はバッドセクタ修復手段１０４に処理を渡す。
【００５２】
バッドセクタ修復手段１０４はその処理済フラグ１１１ｃ＝「未済」であるバッドセクタを、ドライブ名１１１ｂに該当しない（即ち異常終了ではなくデータが正常に記録された）側のディスクドライブ１１ａもしくは１１ｂの同一セクタから読み出したデータを用いて修復して（ステップＳ２０３）正常に修復できたかを判断する（ステップＳ２０４）。その修復が正常終了すれば当該セクタの処理済フラグ１１１ｃ＝「済」として（ステップＳ２０５）ステップＳ２０１に戻る。
【００５３】
ここで、上記ステップＳ２０３の処理も、上記ステップＳ１０２の処理と同様に、同一のバッドセクタの修復について複数回のリトライ（再処理）を許容するものとし、予め定められた回数のリトライを行っても正常終了にならない場合に上記ステップＳ２０４で初めて異常終了と判断するものとしてもよい。また、リトライを許容しなくてもよい。本実施例は、リトライを許容しないものとして記載する。
【００５４】
図４〜５のステップＳ１０３に示した動作で、ディスクドライブ１１ａおよび１１ｂの両方が同一セクタで異常終了する可能性は全くゼロではないが、事実上無視しても差し支えないほど低い可能性である。従って、一方のディスクドライブでバッドセクタとなった場合にも、他方のディスクドライブの同一セクタでは、ほとんどの場合、正常にデータの読み出しが可能であり、これを利用してバッドセクタの修復を行うことが可能である。
【００５５】
もしその修復が異常終了となれば、バッドセクタ修復手段１０４は同一のディスクドライブ１１ａもしくは１１ｂで代替セクタを割り当てて、そこにステップＳ２０３と同一のデータを書き込む（ステップＳ２０６）。そしてステップＳ２０５に進んで処理済フラグ１１１ｃ＝「済」として、ステップＳ２０１に戻る。以上、図６〜７に示した動作は、既存技術として知られるメディアパトロール処理と同等である。
【００５６】
（実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るバッドセクタ修復方法は、上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、ディスクアレイ装置が、データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対してデータの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、上位装置からのデータ入出力要求に応じてディスクアレイコントローラのデータ入出力手段が各ディスクドライブに対してデータ入出力要求を行い（図５・ステップＳ１０１）、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かをディスクアレイコントローラのデータ入出力手段が検出し（図５・ステップＳ１０２〜３）、異常終了が発生した場合に、データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタをディスクアレイコントローラのバッドセクタ記録手段が予め備えられた記憶手段に記憶し（図５・ステップＳ１０５）、データ入出力の終了後にバッドセクタに対してディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う（図７・ステップＳ２０３）。
【００５７】
また、データ入出力の終了後の各ディスクドライブの動作中に、ディスクアレイコントローラの負荷検出手段がデータ入出力に対する負荷を検出してこれを予め与えられた閾値と比較し（図７・ステップＳ２０１）、検出された負荷が閾値より低い場合にバッドセクタに対してディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う（図７・ステップＳ２０３）。
【００５８】
そして、データ入出力が正常に終了した場合と、異常終了が発生してバッドセクタを記憶した場合に、ディスクアレイコントローラのデータ入出力手段が上位装置に正常応答を返信する（図５・ステップＳ１０４）。
【００５９】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するディスクアレイコントローラ１２のプロセッサ１２ａに実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００６０】
本実施形態に係るディスクアレイ装置１０の構成は、前述した既存技術に係るディスクアレイ装置９１０と比べて、一方のディスクドライブでデータ入出力中に異常終了が発生した場合にも、バッドセクタの修復をすぐには行わずにそのバッドセクタを記録して上位装置２０に正常応答を返信して動作を続行し、そして動作中の負荷が低くなった時点を見計らってバッドセクタの修復を行うという点で相違している。
【００６１】
即ち、ディスクドライブ１１ａもしくは１１ｂの両方で、同一セクタにおいてメディアエラーが生じる確率は、前述した通り決してゼロではないけど事実上無視できる程度に小さいという点を、本実施形態では有効に利用している。この点によって、ＲＡＩＤ１構成のディスクアレイ装置の持つ記録データの冗長性を保ちつつ、上位装置２０で動作するアプリケーションやＯＳに対してそれらの動作を阻害することはなくなる。
【００６２】
従って、データの損失を防ぎつつ、上位装置の動作の停止や性能の低下を発生させないという点で、優れたディスクアレイ装置を得ることが可能となる。特に、同一のディスクドライブの使用期間が長くなってくるとメディアエラーの発生確率は高まってくるが、そのようなメディアエラー頻度が高い状況においても上位アプリケーションへのレスポンス遅延を防ぐ効果を得ることが可能となる。
【００６３】
（第２の実施形態）
本願発明の第２の実施形態は、第１の実施形態の構成に加えて、ディスクアレイコントローラ１２のバッドセクタ記録手段４０２が、各バッドセクタのセクタ番号１１１ａとこれに対応する二値データである処理済フラグ１１１ｃ、および上位装置から受信した書き込みデータ４１１ｄとをバッドセクタ記録テーブル４１１に記憶する機能を備えると共に、修復処理が成功しなかったセクタに対して書き込みデータを用いて整合性の復旧処理を行うリビルド手段４０５を備える構成とした。
【００６４】
この構成によっても、第１の実施形態と同一の効果が得られるのに加えて、一方のディスクドライブにセクタの修復によっても復旧できない範囲の故障が発生した場合でも、リビルド（整合性の復旧）処理によって当該ディスクドライブを復旧させることが可能となる。  以下、これをより詳細に説明する。
【００６５】
図８は、本発明の第２の実施形態に係るディスクアレイ装置３１０の構成について示す説明図である。ディスクアレイ装置３１０は、第１の実施形態と同一の上位装置２０と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行う。
【００６６】
ディスクアレイ装置３１０のハードウェアとしての構成は、第１の実施形態のディスクアレイ装置１０と同一であるので、同一の要素は同一の呼称および参照番号でいう。第１の実施形態との相違点は、ディスクアレイコントローラ１２のプロセッサ１２ａで実現される機能と、記憶手段１２ｂに記憶される内容の違いである。
【００６７】
プロセッサ１２ａは、第１の実施形態と一部異なるデータ書き込み制御プログラムが動作することにより、後述のデータ入出力手段１０１、バッドセクタ記録手段４０２、負荷検出手段１０３、バッドセクタ修復手段１０４、およびリビルド手段４０５として動作する。記憶手段１２ｂには、バッドセクタ記録テーブル４１１としての記憶領域が確保されている。これらの中で、データ入出力手段１０１、負荷検出手段１０３、およびバッドセクタ修復手段１０４は第１の実施形態と同一である。
【００６８】
図９は、図８に示したバッドセクタ記録テーブル４１１の記憶内容について示す説明図である。バッドセクタ記録テーブル４１１は、図３に示した第１の実施形態のバッドセクタ記録テーブル１１１のバッドセクタ番号１１１ａ、ドライブ名１１１ｂ、処理済フラグ１１１ｃに加えて、書き込みデータ４１１ｄが記録される。
【００６９】
この書き込みデータ４１１ｄは、上位装置２０からのデータ入出力要求が書き込み要求である場合に、ディスクドライブ１１ａおよび１１ｂに書き込まれるべきデータそのものである。バッドセクタ記録手段４０２は、ディスクドライブ１１ａもしくは１１ｂでデータ入出力中にメディアエラーが発生した場合、そのセクタをバッドセクタとしてバッドセクタ記録テーブル４１１に記録すると同時に、書き込みデータ４１１ｄも記録する。
【００７０】
リビルド手段４０５は、バッドセクタ修復手段１０４によるバッドセクタの修復だけでは異常の発生した側のディスクドライブ１１ａもしくは１１ｂで、他方（異常の発生していない側）とのデータの整合性を完全に修復できない場合に、その他方側のデータと書き込みデータ４１１ｄとを利用して、ディスクドライブ１１ａおよび１１ｂに対してリビルド処理、即ち整合性の復旧処理を行う。
【００７１】
図１０は、図８に示したデータ入出力手段１０１およびバッドセクタ記録手段４０２の動作について示すフローチャートである。ここで示す各動作ステップの大部分も、図４〜５に示した第１の実施形態の動作と同一なので、同一の動作については同一の参照番号として、説明を省略する。
【００７２】
ここでの第１の実施形態の動作との相違点は、図４〜５のステップＳ１０５の動作が、バッドセクタ記録手段４０２がバッドセクタ番号１１１ａ、ドライブ名１１１ｂ、処理済フラグ１１１ｃ＝「未済」、およびこれに対応する書き込みデータ４１１ｄをバッドセクタ記録テーブル４１１に記録する（ステップＳ３０５）という動作に置き換わっている点のみである。
【００７３】
図１１は、図８に示した負荷検出手段１０３、バッドセクタ修復手段１０４、およびリビルド手段４０５の動作について示すフローチャートである。ここで示す各動作ステップの大部分も、図６〜７に示した第１の実施形態の動作と同一なので、同一の動作については同一の参照番号として、説明を省略する。
【００７４】
ここでの第１の実施形態の動作との相違点は、図６〜７のステップＳ２０６の動作が、リビルド手段４０５が他方側のデータと書き込みデータ４１１ｄとを利用して、ディスクドライブ１１ａおよび１１ｂに対してリビルド処理を行う（ステップＳ４０６）という動作に置き換わっている点のみである。
【００７５】
以上で示した第２の実施形態では、ディスクドライブ１１ａおよび１１ｂのうちの一方にバッドセクタ修復手段１０４によっても復旧できないより深刻な故障が発生した場合でも、リビルド（整合性の復旧）処理が可能であるので、これによってディスクアレイ装置３１０全体を復旧できる可能性をより高めることが可能となる。
【００７６】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００７７】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００７８】
（付記１）  上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置であって、
前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備え、
前記ディスクアレイコントローラが、前記上位装置からのデータ入出力要求に応じて前記各ディスクドライブに対してデータ入出力要求を行うデータ入出力手段と、このデータ入出力要求に応じてのデータ入出力中に異常終了が発生した場合、前記データ入出力の再処理を許容せずにこの異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶するバッドセクタ記録手段と、前記データ入出力の終了後に前記バッドセクタに対して修復処理を行うバッドセクタ修復手段と
を備えることを特徴とするディスクアレイ装置。
【００７９】
（付記２）  前記ディスクアレイコントローラが、
前記各ディスクドライブの動作中に前記データ入出力に対する負荷を検出し、その負荷が予め与えられた閾値より低い場合に前記バッドセクタ記録手段を動作させる負荷検出手段
を備えることを特徴とする、付記１に記載のディスクアレイ装置。
【００８０】
（付記３）  前記ディスクアレイコントローラの前記データ入出力手段が、前記データ入出力が正常に終了した場合と、前記異常終了が発生して前記バッドセクタを記憶した場合に前記上位装置に正常応答を返信する機能を有することを特徴とする、付記１に記載のディスクアレイ装置。
【００８１】
（付記４）  前記ディスクアレイコントローラの前記バッドセクタ記録手段が、前記各バッドセクタのセクタ番号とこれに対応する二値データである処理済フラグとを含むバッドセクタ記録テーブルを前記記憶手段に記憶する機能を備えると共に、
前記ディスクアレイコントローラの前記バッドセクタ修復手段が、前記処理済フラグが「未済」を示す値である前記バッドセクタに対して前記修復処理を行い、その終了後に当該処理済フラグを「済」を示す値に変更する機能を備えることを特徴とする、付記１に記載のディスクアレイ装置。
【００８２】
（付記５）  前記ディスクアレイコントローラの前記バッドセクタ修復手段が、前記修復処理が成功しなかったセクタに対して代替セクタを割り当てる機能を備えることを特徴とする、付記１に記載のディスクアレイ装置。
【００８３】
（付記６）  前記ディスクアレイコントローラの前記バッドセクタ記録手段が、前記各バッドセクタのセクタ番号とこれに対応する二値データである処理済フラグ、および前記上位装置から受信した書き込みデータとを前記バッドセクタ記録テーブルに記憶する機能を備えると共に、
前記ディスクアレイコントローラが、前記修復処理が成功しなかったセクタに対して前記書き込みデータを用いて整合性の復旧処理を行うリビルド手段を備えることを特徴とする、付記４に記載のディスクアレイ装置。
【００８４】
（付記７）  上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、
前記ディスクアレイ装置が、前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、
前記上位装置からのデータ入出力要求に応じて前記ディスクアレイコントローラのデータ入出力手段が前記各ディスクドライブに対してデータ入出力要求を行い、
このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かを前記ディスクアレイコントローラの前記データ入出力手段が検出し、
前記異常終了が発生した場合に、前記データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタを前記ディスクアレイコントローラのバッドセクタ記録手段が予め備えられた記憶手段に記憶し、
前記データ入出力の終了後に前記バッドセクタに対して前記ディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う
ことを特徴とするバッドセクタ修復方法。
【００８５】
（付記８）  前記データ入出力の終了後の前記各ディスクドライブの動作中に、前記ディスクアレイコントローラの負荷検出手段が前記データ入出力に対する負荷を検出してこれを予め与えられた閾値と比較し、
検出された前記負荷が前記閾値より低い場合に前記バッドセクタに対して前記ディスクアレイコントローラのバッドセクタ修復手段が修復処理を行う
ことを特徴とする、付記７に記載のバッドセクタ修復方法。
【００８６】
（付記９）  前記データ入出力が正常に終了した場合と、前記異常終了が発生して前記バッドセクタを記憶した場合に、前記ディスクアレイコントローラの前記データ入出力手段が前記上位装置に正常応答を返信する
ことを特徴とする、付記７に記載のバッドセクタ修復方法。
【００８７】
（付記１０）  上位装置と接続され、この上位装置からのデータ入出力要求に応じてデータの読み書きを行うディスクアレイ装置にあって、
前記ディスクアレイ装置が、前記データの入出力処理を行う複数のディスクドライブと、これらのディスクドライブに対して前記データの入出力処理を制御するディスクアレイコントローラとを備えるものであると共に、
前記ディスクアレイコントローラの備えるプロセッサに、
前記上位装置からのデータ入出力要求に応じて前記各ディスクドライブに対してデータ入出力要求を行う手順、
このデータ入出力要求に応じてのデータ入出力中に異常終了が発生したか否かを検出する手順、
前記異常終了が発生した場合に、前記データ入出力の再処理を許容せず、この異常終了が発生したセクタであるバッドセクタを予め備えられた記憶手段に記憶する手順、
および前記データ入出力の終了後に前記バッドセクタに対して修復処理を行う手順
を実行させることを特徴とするバッドセクタ修復プログラム。
【００８８】
（付記１１）  前記データ入出力の終了後の前記各ディスクドライブの動作中に、前記データ入出力に対する負荷を検出してこれを予め与えられた閾値と比較する手順、
および検出された前記負荷が前記閾値より低い場合に前記バッドセクタに対して修復処理を行う手順
を前記プロセッサにさらに実行させることを特徴とする、付記１０に記載のバッドセクタ修復プログラム。
【００８９】
（付記１２）  前記データ入出力が正常に終了した場合と、前記異常終了が発生して前記バッドセクタを記憶した場合に、前記上位装置に正常応答を返信する手順
を前記プロセッサにさらに実行させることを特徴とする、付記１０に記載のバッドセクタ修復プログラム。
【産業上の利用可能性】
【００９０】
本発明はディスクアレイ装置一般に適用可能である。ＲＡＩＤ１のみならず、他のＲＡＩＤ構成に対してもこの技術を適用することが可能である。
【符号の説明】
【００９１】
１、１０、３１０  ディスクアレイ装置
２、２０  上位装置
３、１２  ディスクアレイコントローラ
３ａ、１０１  データ入出力手段
３ｂ、１０２、４０２  バッドセクタ記録手段
３ｃ、１０４  バッドセクタ修復手段
４ａ、４ｂ、１１ａ、１１ｂ  ディスクドライブ
１２ａ  プロセッサ
１２ｂ  記憶手段
１３  接続インタフェース
１０３  負荷検出手段
１１１、４１１  バッドセクタ記録テーブル
１１１ａ  バッドセクタ番号
１１１ｂ  ドライブ名
１１１ｃ  処理済フラグ
４０５  リビルド手段
４１１ｄ  書き込みデータ
【図１】
2014134884.tif 000003
【図２】
2014134884.tif 000004
【図３】
2014134884.tif 000005
【図４】
2014134884.tif 000006
【図５】
2014134884.tif 000007
【図６】
2014134884.tif 000008
【図７】
2014134884.tif 000009
【図８】
2014134884.tif 000010
【図９】
2014134884.tif 000011
【図１０】
2014134884.tif 000012
【図１１】
2014134884.tif 000013
【図１２】
2014134884.tif 000014
【図１３】
2014134884.tif 000015
【図１４】
2014134884.tif 000016