(57)【要約】【課題】  冗長性を欠いた状態のディスクアレイ装置に媒体エラーが生じた場合であっても、リカバリを行なうことが可能な媒体エラーリカバリ装置、方法、及びプログラムを提供する。【解決手段】  上記課題を解決するために、ディスクアレイ制御装置１００に、媒体エラーを検出して当該媒体エラーの発生した記憶領域を媒体エラー管理テーブル１０２に登録する媒体エラー情報記憶処理部１０１と、媒体エラー管理テーブル１０２と、媒体エラーが生じた記憶領域にライト要求をする場合には、ディスク装置群１０４に対してリアサイン処理を実施させた後にライト要求を行なって媒体エラーを回避する媒体エラー回避処理部１０３と、を少なくとも備える。【選択図】図１
2007052509.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、
該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、
を備えることを特徴とするディスクアレイ制御装置。
【請求項２】
前記媒体エラー情報記憶処理部は、
前記ディスク装置群に対して、該ディスク装置群の所定の記憶領域に記憶されているデータを要求するリード要求処理部と、
該リード要求処理部の要求に対する前記ディスク装置の応答から、該要求したデータの読出し時に媒体エラーが発生したことを検出する媒体エラー検出処理部と、
該媒体エラー検出処理部で検出した媒体エラーの発生した記憶領域を前記媒体エラー管理テーブルに登録する管理テーブル登録処理部と、
を備える請求項１に記載のディスクアレイ制御装置。
【請求項３】
前記媒体エラー回避処理部は、
前記ディスク装置群の所定の記憶領域へのライト要求を行なう前に、前記媒体エラー管理テーブルを参照して、該所定の記憶領域が登録されているか否かを判別し、登録されている場合には、前記ディスク装置群に対して、該登録されている所定の記憶領域を他の新たな記憶領域に割当てるリアサイン処理を要求するリアサイン要求処理部と、
前記ディスク装置群に対して、前記新たな記憶領域にデータを書込む要求を行なうライト要求処理部と、
を備える請求項１に記載のディスクアレイ制御装置。
【請求項４】
複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理と、
該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理と、
をディスクアレイ制御装置に実行させるディスク装置群における媒体エラーリカバリのためのプログラム。
【請求項５】
複数のディスク装置の組み合わせからなるディスク装置群であって、不良記憶領域を他の新たな領域に割当てるリアサイン処理を行なう機能を有するディスク装置群と、
該ディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、
該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域のリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、
を備えることを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長性を欠く状態のディスクアレイ装置に発生した媒体エラーから復旧する媒体エラーリカバリ装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年では、ディスク装置の故障等によるデータ損失の防止や、処理性能の向上のために、複数のディスク装置（例えば、ハードディスク装置）を組み合わせたディスクアレイ装置が広く使用されている。
【０００３】
ディスクアレイ装置の多くは冗長性を備えているので、ディスクアレイ装置を構成するディスク装置の１台に回避不能な障害が生じたとしても、残りのディスク装置によって当該障害で読取り不能となったデータを復旧することが可能となっている。例えば、ＲＡＩＤ１やＲＡＩＤ５を構成するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ／Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）が代表的である。
【０００４】
しかし、例えば、ＲＡＩＤ０のように元々冗長性に欠ける構成のディスクアレイ装置や、何らかの障害によって既に縮退してしまって冗長性を欠いた状態のディスクアレイ装置は、上述のような回避不能な障害により媒体エラーが生じると簡単にリカバリすることができないという問題があった。
【０００５】
特許文献１には、書込みエラーを検出すると当該エラーが生じたレコードの無効を管理テーブルに登録し、代替可能なレコードに書込み処理を行なうディスク装置の入出力制御装置について開示されている。
【０００６】
特許文献２には、読込みリトライ処理が発生する欠陥セクタにおいて、読込みリトライ処理によって読込みに成功したデータをもとに交替処理を行なってデータの保証をする光ディスク欠陥管理方法について開示されている。
【０００７】
特許文献３には、リビルド中に復旧元の入力側ディスクで読込みエラーが検出されたアドレス内のデータが、復旧後における有効なファイルであったか否かを通知するＲ Ａ Ｉ Ｄディスクリードエラー処理方式について開示されている。
【特許文献１】特開昭６０−０８６６２２号公報
【特許文献２】特開平１０−０５０００５号公報
【特許文献３】特開２００４−０６２３７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上述の方式においても、冗長性を欠いた状態のディスクアレイ装置に媒体エラーが生じると簡単にリカバリすることができないという問題が解消されない。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、冗長性を欠いた状態のディスクアレイ装置に媒体エラーが生じた場合であっても、簡単にリカバリを行なうことが可能なディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係るディスクアレイ制御装置は、複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、を備える。
【００１０】
本発明によると、媒体エラー情報記憶処理部は、媒体エラーの生じたディスク装置群の記憶領域を検出して媒体エラー管理テーブルに記憶する。そして、ディスク装置群へのライト要求に際して、媒体エラー回避処理部は、この媒体エラー管理テーブルに記憶されている記憶領域へのライト要求が行なわれるかをチェックする。そして、当該記憶領域へのライト要求を行なう場合には、ディスク装置群に対してリアサイン処理を実行させた後に、ライト要求を行なう。
【００１１】
これにより、媒体エラーが生じたディスク装置群の記憶領域へのデータの書込みを回避することが可能となる。すなわち、ディスクアレイ装置に媒体エラーが生じた場合であっても、簡単にリカバリを行なうことが可能となる効果を奏する。
【００１２】
また、本発明は、複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理と、をディスクアレイ制御装置に実行させるディスク装置群における媒体エラーリカバリのためのプログラムであってもよい。
【００１３】
また、本発明は、複数のディスク装置の組み合わせからなるディスク装置群であって、不良記憶領域を他の新たな領域に割当てるリアサイン処理を行なう機能を有するディスク装置群と、該ディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域のリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、を備えるディスクアレイ装置であってもよい。
【発明の効果】
【００１４】
以上のように、本発明によると、冗長性を欠いた状態のディスクアレイ装置に媒体エラーが生じた場合であっても、簡単にリカバリを行なうことが可能なディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について図１〜図８に基づいて説明する。
図１は、本発明の原理を示す図である。
図１に示すディスクアレイ制御装置１００は、ディスク装置群１０４に生じた媒体エラーを検出して当該媒体エラーの発生した記憶領域を媒体エラー管理テーブル１０２に登録する媒体エラー情報記憶処理部１０１と、媒体エラーが発生した記憶領域を登録するための媒体エラー管理テーブル１０２と、媒体エラーが生じた記憶領域にライト要求をする場合には、ディスク装置群１０４に対してリアサイン処理を実施させた後にライト要求を行なって媒体エラーを回避する媒体エラー回避処理部１０３と、を少なくとも有する。
【００１６】
なお、本実施例に係る媒体エラーとは、ディスク装置群１０４を構成するディスク装置等の障害により特定の記憶領域へのデータのリード／ライト処理が不可能となった状態であって、回避不能な状態を示す。したがって、媒体エラーが生じた記憶領域にデータを書き込んだ場合には、当該書き込んだデータを読出しても正しいデータを得ることができない。
【００１７】
ディスクアレイ制御装置１００は、ディスク装置群１０４と通信可能に接続されてディスクアレイ装置（ＲＡＩＤ）を構成する。なお、本発明で対象とするディスクアレイ装置は、ディスク装置群１０４が冗長状態にない（冗長性を欠いた状態の）ディスクアレイ装置である。
【００１８】
ここで、ディスク装置群１０４が冗長状態とは、例えば、ディスク装置群１０４がＲＡＩＤ１やＲＡＩＤ５の構成を有し、かつ故障したディスク装置がない状態をいう。したがって、ディスク装置群１０４が冗長状態にないとは、ディスク装置群１０４がＲＡＩＤ１やＲＡＩＤ５といった冗長構成を有していない状態、又は、冗長構成を有していてもディスク装置等の故障によって実質的に冗長構成となっていない状態をいう。
【００１９】
また、ディスクアレイ制御装置１００は、情報処理装置１０５とも通信可能に接続され、情報処理装置１０５からの命令に応じて、ディスク装置群１０４に対してリード／ライト要求を行なう。
【００２０】
媒体エラー情報記憶処理部１０１は、例えば、ディスク装置群１０４からディスクアレイ制御装置１００が有する図示しないキャッシュメモリにデータを読み出す処理（以下、単に「ステージング」という）など行なうために、ディスク装置群１０４に対してリード要求を行なう。
【００２１】
そして、当該要求に対するディスク装置群１０４の応答から媒体エラーを検出して、媒体エラーを発生したディスク装置群１０４上の記憶領域を媒体エラー管理テーブル１０２に登録する。
【００２２】
媒体エラー管理テーブル１０２は、媒体エラーが発生したディスク装置群１０４上の記憶領域を登録するテーブルである。
媒体エラー回避処理部１０３は、例えば、キャッシュメモリのデータをディスク装置群１０４に反映（同期）させるライトバック処理（以下、単に「ライトバック処理」という）などを行なうために、ディスク装置群１０４に対してライト要求を行なう。
【００２３】
この時、媒体エラー回避処理部１０３は、媒体エラー管理テーブル１０２を参照し、データを書き込むディスク装置群１０４上の記憶領域（以下、この記憶領域を「指定記憶領域」という）が、媒体エラー管理テーブル１０２に登録されている否かをチェックする。
【００２４】
指定記憶領域が媒体エラー管理テーブル１０２に登録されている場合には、ディスク装置群１０４に対してリアサイン要求を行なう。そして、ディスク装置群１０４の指定記憶領域が他の新たな記憶領域に割当てられると（リアサイン処理が完了すると）、ライト要求を行なってディスク装置群１０４へのデータの書込み処理を行なう。
【００２５】
図２は、本実施例に係るディスクアレイ制御装置１００の構成を説明する図である。図２に示すＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２００は、データを一時的に格納するキャッシュメモリ２０１と、キャッシュメモリ２０１内のデータを管理し、必要に応じてディスク装置群２０５に対してリード／ライト要求を行なうＣＰＵ２０２と、ディスク装置群２０５とのインターフェースであるＤＩ（Ｄｉｓｋ  Ｉｎｔｅｒｆａｃｅ）２０３と、ＣＰＵ２０２が使用する媒体エラー管理テーブル１０２等のデータを記憶するメモリ２０４と、を少なくとも備える。
【００２６】
また、ＣＭ２００は、複数のディスク装置からなるディスク装置群２０５とＤＩ２０３を介して通信可能に接続され、さらに、チャネルアダプタ２０６及び２０７を介してホストコンピュータ２０８及び２０９と通信可能に接続されている。
【００２７】
以上の構成において、ＣＰＵ２０２は、ＣＭ２００内部の各構成要素を制御するとともに、キャッシュメモリ２０１内のデータの管理を行なう。例えば、ホストコンピュータ２０８からのリード要求に対して、要求されたデータがキャッシュメモリ２０１上にあればそのデータをホストコンピュータ２０８に送信する。また、キャッシュメモリ２０１上に要求されたデータがなければステージング処理によりディスク装置群２０５からキャッシュメモリ２０１に読み出し、当該データをホストコンピュータ２０８に送信する。
【００２８】
ここで、ＣＰＵ２０２は、ディスク装置群２０５からデータの読出しに失敗すると、ディスク装置群２０５から送信されるエラー情報からエラーの種類を判別する。そして、当該エラーから媒体エラーを検出すると、媒体エラーが発生したディスク装置群２０５上の記憶領域を、メモリ２０４上に記憶された媒体エラー管理テーブル１０２に登録する。
【００２９】
また、ホストコンピュータ２０８からのライト要求に対して、当該要求されたデータをキャッシュメモリ２０１上に記憶する。そして、必要に応じて、キャッシュメモリ２０１上のデータをディスク装置群２０５に書き出すライトバック処理を行なう。
【００３０】
ここで、ＣＰＵ２０２は、ディスク装置群２０５へのデータ書込み処理の前に、媒体エラー管理テーブル１０２を参照する。そして、当該データを書き込むディスク装置群２０５上の指定記憶領域が、媒体エラー管理テーブル１０２に登録されているかを確認する。
【００３１】
当該指定記憶領域が、媒体エラー管理テーブル１０２に登録されている場合には、ディスク装置群２０５に対してリアサイン要求を行なって、指定記憶領域を他の新たな記憶領域にリアサインする。
【００３２】
以上に説明した構成において、本実施例に係るディスクアレイ装置（ＲＡＩＤ装置）は、ＣＭ２００とディスク装置群２０５とを少なくとも備え、チャネルアダプタ２０６及び２０７を介してホストコンピュータ２０８及び２０９と通信可能に接続可能な装置をいう。
【００３３】
なお、図２には、ＲＡＩＤ装置に接続される情報処理装置として２つのホストコンピュータ２０８及び２０９が接続されている場合について説明したが、これに限定されないのは当然である。また、ＲＡＩＤ装置は、必要に応じてＣＭ２００を２重化、３重化等をして構成してもよい。
【００３４】
ここで、図１に示した媒体エラー情報記憶処理部１０１及び媒体エラー回避処理部１０３は、ＣＭ２００に備わるＣＰＵ２０２が所定のプログラムに記録された命令を実行することにより実現される。そこで、媒体エラー情報記憶処理部１０１が行なう媒体エラー情報記憶処理を図３〜５に基づいて説明し、媒体エラー回避処理部１０３が行なう媒体エラー回避処理を図６〜８に基づいて説明する。
【００３５】
図３は、本実施例に係る媒体エラー情報記憶処理を説明する図である。
本実施例に係る媒体エラー情報記憶処理は、ＣＭ２００に備わるＣＰＵ２０２が所定のプログラムに記憶された命令を実行することにより実現される。したがって、媒体エラー情報記憶処理部は、キャッシュメモリ２０１のデータを管理するキャッシュ処理部３０１と、ディスク装置群１０４の制御を行なうディスク制御部３０２と、ディスク制御部３０２とディスク装置群１０４とのインターフェースであるディスクドライバ部３０３と、で構成される。
【００３６】
キャッシュ処理部３０１は、例えば、ホストコンピュータ２０８から要求のあったデータがキャッシュメモリ２０１上に格納されていない場合に、ディスク制御部３０２に対してステージング要求を行なう。
【００３７】
一方、ディスク制御部３０２は、キャッシュ処理部３０１からステージング要求を受けると、ディスク装置群１０４に対して所望のデータが格納されている記憶領域を、ディスク装置のディスク番号、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）、及びＢＣ（Ｂｌｏｃｋ  Ｃｏｕｎｔ）で指定してリード要求を行なう。以下、この時のディスク番号、ＬＢＡ、及びＢＣで指定した記憶領域の範囲を、ステージング範囲という。
【００３８】
そして、ディスク装置群１０４の応答から媒体エラーを検出すると、当該媒体エラーが発生したディスク装置のＬＢＡを媒体エラー管理テーブル１０２に登録する。
ここで、ディスク装置群１０４は、複数のディスク装置で構成される。そして、ＣＭ２００（ディスク制御部３０２）からのリード要求に応じて、要求のあったデータをディスク装置から読み出してＣＭ２００に送信する。また、ＣＭ２００（ディスク制御部３０２）からのライト要求に応じて、要求のあったデータをディスク装置群１０４の所定の記憶領域（ディスク番号、ＬＢＡ、及びＢＣで指定された範囲）に格納する。
【００３９】
また、ディスク装置群１０４は、図３に示すように、ステージング範囲内に読出し不能となった１又は２以上のＬＢＡ（記憶領域）３０４が存在すると媒体エラーを検出する。そして、エラーコード等をＣＭ２００に送信して当該媒体エラーが発生したことを通知する。例えば、媒体エラーを検出すると、ディスク装置群１０４は、媒体エラーを示すエラーコードとともに、媒体エラーが発生したＬＢＡ３０４及びそのディスク番号をＣＭ２００に送信する。
【００４０】
さらに、ディスク装置群１０４は、ＣＭ２００からの命令に応じて、媒体エラーが発生したＬＢＡ３０４を他の新たなＬＢＡに割当てるリアサイン処理を行なう機能を有する。
図４は、本実施例に係る媒体エラー情報記憶処理時における媒体エラー管理テーブル１０２の例を示した図である。
【００４１】
図４に示す媒体エラー管理テーブル１０２ａは、媒体エラーが発生したディスク装置のディスク番号（ＤＩＳＫ＃０、・・・、ＤＩＳＫ＃ｎ）と、媒体エラーが発生したディスク装置の登録情報と、で構成されている。
【００４２】
ここで、ディスク装置とはディスク装置群１０４を構成するディスク装置のことである。また、本実施例に係る登録情報には、媒体エラーが発生したＬＢＡを使用している。なお、図４に示す媒体エラー管理テーブル１０２ａは、媒体エラー検出前の状態を示しているので、全て未登録の状態である。
【００４３】
媒体エラー管理テーブル１０２ｂは、媒体エラーを検出したディスク制御部３０２が、当該媒体エラーが発生したＬＢＡを登録した場合の状態を示している。ディスク番号がＤＩＳＫ＃０、かつＬＢＡが０ｘ０１００００００のブロックが媒体エラー管理テーブル１０２ｂに登録されていることがわかる。すなわち、ディスク番号がＤＩＳＫ＃０、かつＬＢＡが０ｘ０１００００００のブロックに媒体エラーが発生したことを示している。
【００４４】
図５は、本実施例に係る媒体エラー管理テーブル１０２への登録処理を示すフローチャートである。
ステップＳ５０１において、キャッシュ処理部３０１がディスク制御部３０２に対してステージング命令を送信してステージング要求を行なうと、ステップＳ５０２において、ディスク制御部３０２は、ディスク装置群１０４に対してリード要求を行なう。
【００４５】
ディスク制御部３０２からリード要求を受けると、ディスク装置群１０４は、要求されたデータを該当するディスク装置から読み出す。そして、正常に読み出せた場合には、読み出したデータと共に正常に読み出しが行なわれた旨を示す終了コードをディスク制御部３０２に対して送信する。
【００４６】
また、正常にデータの読出しが行なわれなかった場合には、その原因に応じた終了コード（エラーコード）をディスク制御部３０２に対して送信する。
ステップＳ５０３において、ディスク制御部３０２は、ディスク装置群１０４から終了コードを受信すると、当該応答から読出しエラーが発生したか否かを判別する。そして、読出し処理が正常の場合には、処理をステップＳ５０４に移行して、キャッシュ処理部３０１に対して正常応答を行なう。
【００４７】
また、ステップＳ５０３において、読出し処理が異常の場合には、処理をステップＳ５０５に移行する。そして、当該エラーコードがＲＡＩＤリカバリエラーか否かを判別する。なお、ＲＡＩＤリカバリエラーとは、ステップＳ５０３〜Ｓ５０５の処理を複数回繰返すことで、読出し処理が正常に行なわれたことをいう。
【００４８】
ステップＳ５０５において、ディスク制御部３０２はエラーコードがＲＡＩＤリカバリエラーか否かを判別し、エラーコードがＲＡＩＤリカバリエラーである場合には、処理をステップＳ５０６に移行する。そして、ディスク装置群１０４が冗長状態である場合には、リカバリ処理を実施する。そして、キャッシュ処理部３０１に対して正常終了を通知して処理を終了する（ステップＳ５０７）。
【００４９】
ここで、リカバリ処理とは、例えば、ディスク装置群１０４がＲＡＩＤ１の場合にあっては、ＲＡＩＤリカバリエラーが発生したディスク装置とミラーリングの関係にある他方のディスク装置からデータを読み出す処理等をいう。また、ＲＡＩＤ５の場合にあっては、読出したデータとパリティデータとからＲＡＩＤリカバリエラーで読み出せなかったデータを復元する等の処理をいう。
【００５０】
ステップＳ５０５において、ディスク制御部３０２はエラーコードがＲＡＩＤリカバリエラーでない場合には、処理をステップＳ５０８に移行して媒体エラーか否かをチェックする。そして、当該エラーコードが媒体エラーの場合には、処理をステップＳ５０９に移行する。そして、媒体エラー管理テーブル１０２に媒体エラーが発生したディスク装置のＬＢＡを登録する。
【００５１】
ステップＳ５１０において、ディスク制御部３０２は、キャッシュ処理部３０１に対してエラー応答を行なって媒体エラー管理テーブル１０２への登録処理を終了する。
以上に説明した媒体エラー情報記憶処理は、キャッシュ処理部３０１がステージング要求を行なった場合について説明したが、これに限定する趣旨ではない。例えば、キャッシュ処理部３０１が、ディスク制御部３０２に対してリビルド要求を行なった場合であっても、ディスク制御部３０２はディスク装置群１０４に対してリード要求を行なうので、ステップＳ５０２〜Ｓ５１０（ステップＳ５０５〜Ｓ５０７は除く）の処理は同じである。
【００５２】
また、キャッシュ処理部３０１又はディスク制御部３０２に、ディスクパトロール機能を設け、所定の時間毎に、ディスク制御部３０２がディスク装置群１０４に対して所定のデータのリード要求をすることによって、ステップＳ５０２〜Ｓ５１０（ステップＳ５０５〜Ｓ５０７は除く）の処理を実行してもよい。
【００５３】
図６は、本実施例に係る媒体エラー回避処理を説明する図である。
媒体エラー回避処理は、図３に示した媒体エラー情報記憶処理と同様に、ＣＭ２００に備わるＣＰＵ２０２が所定のプログラムに記憶された命令を実行することにより実現される。したがって、媒体エラー回避処理部は、キャッシュメモリ２０１のデータを管理するキャッシュ処理部３０１と、ディスク装置群１０４の制御を行なうディスク制御部３０２と、ディスク制御部３０２とディスク装置群１０４とのインターフェースであるディスクドライバ部３０３と、で構成される。
【００５４】
キャッシュ処理部３０１は、例えば、キャッシュメモリ２０１上のデータとディスク装置群１０４上のデータとの同期をとるために、任意のタイミングでディスク制御部３０２に対してライトバック要求を行なう。
【００５５】
この時、キャッシュ処理部３０１は、ディスク制御部３０２に対して、指定記憶領域をディスク番号とＬＢＡとで指定する。また、ライトバック処理によって書き込むデータの大きさをブロック数ＢＣで指定する。
【００５６】
ディスク制御部３０２は、キャッシュ処理部３０１からライトバック要求を受けると、媒体エラー管理テーブル１０２を参照する。そして、ライトバック要求と同時に受けたディスク番号のＬＢＡが登録されているか否かをチェックする。
【００５７】
当該ＬＢＡが媒体エラー管理テーブル１０２に登録されている場合には、ディスク制御部３０２に対して当該ＬＢＡのリアサインを要求する。そして、リアサイン処理が完了すると、ディスク制御部３０２は、ライトバック要求されたデータをディスク制御部３０２に書き込むために、データの書込み及びそのデータの検証を行なうライト・ベリファイ要求をディスク装置群１０４に対して行なう。
【００５８】
一方、ディスク制御部３０２からリアサイン要求を受けると、ディスク装置群１０４は、図６に示すように、ライトバック範囲内に読出し不能となっているＬＢＡ３０４を他の新たなＬＢＡ３０５にリアサインする。
【００５９】
また、ディスク制御部３０２からライト・ベリファイ要求を受けると、当該要求とともに送られたデータ（書込みデータ）をディスク装置に書き込む。そして、書き込んだデータを読み出して書込みデータと比較を行なって正常に書込みが行なわれたか否かを検証する。
【００６０】
図７は、本実施例に係る媒体エラー回避処理時の媒体エラー管理テーブル１０２の例を示した図である。
図７に示す媒体エラー管理テーブル１０２ｂは、図４で示した媒体エラー管理テーブル１０２ｂである。すなわち、媒体エラーが発生したディスク装置のディスク番号（ＤＩＳＫ＃０、・・・、ＤＩＳＫ＃ｎ）と、媒体エラーが発生した記憶領域の登録情報と、で構成されており、ディスク番号がＤＩＳＫ＃０、かつＬＢＡが０ｘ０１００００００のブロックが登録されている。
【００６１】
媒体エラー管理テーブル１０２ｃは、ライトバック処理完了時の媒体エラー管理テーブル１０２を示している。登録されていたディスク番号がＤＩＳＫ＃０、かつＬＢＡが０ｘ０１００００００のブロックは、リアサインされて正常に書込みが行なわれたので登録が削除されている。
【００６２】
図８は、本実施例に係る媒体エラー回避処理を示すフローチャートである。
ステップＳ８０１において、キャッシュ処理部３０１がディスク制御部３０２に対してライトバック命令を送信してライトバック要求を行なう。
【００６３】
この時、キャッシュ処理部３０１は、ディスク制御部３０２に対して、データ（又はキャッシュメモリ２０１上のデータアドレス）とともにディスク番号とＬＢＡとＢＣとを送信し、指定記憶領域を指定する。
【００６４】
ステップＳ８０２において、ディスク制御部３０２は、キャッシュ処理部３０１からライトバック要求を受けると、メモリ２０４上の媒体エラー管理テーブル１０２を参照する。そして、キャッシュ処理部３０１から受信したディスク番号のＬＢＡ（指定記憶領域内のＬＢＡ）が、媒体エラー管理テーブル１０２に登録されているか否かをチェックする。
【００６５】
当該ＬＢＡが媒体エラー管理テーブル１０２に登録されている場合には処理をステップＳ８０３に移行し、ディスク装置群１０４に対して当該ＬＢＡのリアサインを要求する。ディスク装置群１０４でのリアサイン処理が完了すると、ディスク制御部３０２は、処理をステップＳ８０４に移行する。そして、ライト・ベリファイ要求をディスク装置群１０４に対して行ない、キャッシュ処理部３０１が指定したライトバック範囲に対してライトバック処理が行なわれる。
【００６６】
ライトバック処理が完了すると、ステップＳ８０３の処理でリアサイン処理されたＬＢＡを媒体エラー管理テーブル１０２の登録から削除（抹消）し、処理をステップＳ８０７に移行する。
【００６７】
また、ステップＳ８０２において、キャッシュ処理部３０１から受信したＬＢＡが媒体エラー管理テーブル１０２に登録されていない場合には、処理をステップＳ８０６に移行し、ディスク装置群１０４に対してライト要求を行なう。
【００６８】
そして、ステップＳ８０７において、ディスク制御部３０２は、キャッシュ処理部３０１に正常終了を通知して処理を終了する。
以上に説明したように、ディスク装置群１０４が冗長状態でない場合に当該ディスク装置群１０４に回避不能な障害が生じた場合であっても、当該ディスク装置群１０４に媒体エラーが発生すると、当該媒体エラーが発生した記憶領域を媒体エラー管理テーブル１０２に登録し（Ｓ５０８〜Ｓ５０９）、当該媒体エラーが発生した記憶領域へのライト処理を行なう場合には、リアサイン処理後にライト・ベリファイ処理が行なわれるので（Ｓ８０２〜Ｓ８０４）、簡単にリカバリを行なうことが可能となる。
【００６９】
また、リアサイン処理後には、通常のライト処理ではなくライト・ベリファイ処理を行なうことによって、ディスク装置群１０４に書き込んだデータの信頼性を向上することが可能となる。
【００７０】
（付記１）  複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、を備えることを特徴とするディスクアレイ制御装置。
（付記２）  前記媒体エラー情報記憶処理部は、前記ディスク装置群に対して、該ディスク装置群の所定の記憶領域に記憶されているデータを要求するリード要求処理部と、該リード要求処理部の要求に対する前記ディスク装置の応答から、該要求したデータの読出し時に媒体エラーが発生したことを検出する媒体エラー検出処理部と、該媒体エラー検出処理部で検出した媒体エラーの発生した記憶領域を前記媒体エラー管理テーブルに登録する管理テーブル登録処理部と、を備える付記１に記載のディスクアレイ制御装置。
（付記３）  前記媒体エラー回避処理部は、前記ディスク装置群の所定の記憶領域へのライト要求を行なう前に、前記媒体エラー管理テーブルを参照して、該所定の記憶領域が登録されているか否かを判別し、登録されている場合には、前記ディスク装置群に対して、該登録されている所定の記憶領域を他の新たな記憶領域に割当てるリアサイン処理を要求するリアサイン要求処理部と、前記ディスク装置群に対して、前記新たな記憶領域にデータを書込む要求を行なうライト要求処理部と、を備える付記１に記載のディスクアレイ制御装置。
（付記４）  複数のディスク装置の組み合わせからなるディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域を他の新たな記憶領域に割当てるリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理と、をディスクアレイ制御装置に実行させるディスク装置群における媒体エラーリカバリのためのプログラム記録媒体。
（付記５）  前記媒体エラー情報記憶処理は、前記ディスク装置群に対して、該ディスク装置群の所定の記憶領域に記憶されているデータを要求するリード要求処理と、該リード要求処理の要求に対する前記ディスク装置の応答から、該要求したデータの読出し時に媒体エラーが発生したことを検出する媒体エラー検出処理と、該媒体エラー検出処理で検出した媒体エラーの発生した記憶領域を前記媒体エラー管理テーブルに登録する管理テーブル登録処理と、をディスクアレイ制御装置に実行させる付記４に記載のディスク装置群における媒体エラーリカバリのためのプログラム記録媒体。
（付記６）  前記媒体エラー回避処理は、前記ディスク装置群の所定の記憶領域へのライト要求を行なう前に、前記媒体エラー管理テーブルを参照して、該所定の記憶領域が登録されているか否かを判別し、登録されている場合には、前記ディスク装置群に対して、該登録されている所定の記憶領域を他の新たな記憶領域に割当てるリアサイン処理を要求するリアサイン要求処理と、前記ディスク装置群に対して、前記新たな記憶領域にデータを書込む要求を行なうライト要求処理と、をディスクアレイ制御装置に実行させる付記４に記載のディスク装置群における媒体エラーリカバリのためのプログラム記録媒体。
（付記７）  複数のディスク装置の組み合わせからなるディスク装置群であって、不良記憶領域を他の新たな領域に割当てるリアサイン処理を行なう機能を有するディスク装置群と、該ディスク装置群に対するリード要求の応答から、該ディスク装置群に生じた媒体エラーを検出し、該媒体エラーが生じた記憶領域を媒体エラー管理テーブルに記憶する媒体エラー情報記憶処理部と、該媒体エラー管理テーブルに記憶された記憶領域へのライト要求を行なう場合には、該記憶領域のリアサイン処理を前記ディスク装置群に対して行なわせた後に前記ライト要求を行なう媒体エラー回避処理部と、を備えることを特徴とするディスクアレイ装置。
（付記８）  前記媒体エラー情報記憶処理部は、前記ディスク装置群に対して、該ディスク装置群の所定の記憶領域に記憶されているデータを要求するリード要求処理部と、該リード要求処理部の要求に対する前記ディスク装置の応答から、該要求したデータの読出し時に媒体エラーが発生したことを検出する媒体エラー検出処理部と、該媒体エラー検出処理部で検出した媒体エラーの発生した記憶領域を前記媒体エラー管理テーブルに登録する管理テーブル登録処理部と、を備える請求項７に記載のディスクアレイ装置。
（付記９）  前記媒体エラー回避処理部は、前記ディスク装置群の所定の記憶領域へのライト要求を行なう前に、前記媒体エラー管理テーブルを参照して、該所定の記憶領域が登録されているか否かを判別し、登録されている場合には、前記ディスク装置群に対して、該登録されている所定の記憶領域を他の新たな記憶領域に割当てるリアサイン処理を要求するリアサイン要求処理部と、前記ディスク装置群に対して、前記新たな記憶領域にデータを書込む要求を行なうライト要求処理部と、を備える請求項７に記載のディスクアレイ装置。
【図面の簡単な説明】
【００７１】
【図１】本発明の原理を示す図である。
【図２】本実施例に係るディスクアレイ制御装置の構成を説明する図である。
【図３】本実施例に係る媒体エラー情報記憶処理を説明する図である。
【図４】本実施例に係る媒体エラー情報記憶処理時における媒体エラー管理テーブルの例を示した図である。
【図５】本実施例に係る媒体エラー管理テーブルへの登録処理を示すフローチャートである。
【図６】本実施例に係る媒体エラー回避処理を説明する図である。
【図７】本実施例に係る媒体エラー回避処理時の媒体エラー管理テーブルの例を示した図である。
【図８】本実施例に係る媒体エラー回避処理を示すフローチャートである。
【符号の説明】
【００７２】
１００    ディスクアレイ制御装置
１０１    媒体エラー情報記憶処理部
１０２    媒体エラー管理テーブル
１０３    媒体エラー回避処理部
１０４    ディスク装置群
１０５    情報処理装置
２００    ＣＭ
２０１    キャッシュメモリ
２０２    ＣＰＵ
２０３    ＤＩ
２０４    メモリ
２０５    ディスク装置群
３０１    キャッシュ処理部
３０２    ディスク制御部
３０３    ディスクドライバ部
【図１】
2007052509.tif 000003
【図２】
2007052509.tif 000004
【図５】
2007052509.tif 000005
【図８】
2007052509.tif 000006
【図３】
2007052509.tif 000007
【図４】
2007052509.tif 000008
【図６】
2007052509.tif 000009
【図７】
2007052509.tif 000010