トップ :: G 物理学 :: G06 計算;計数

【発明の名称】 ディスクアレイ装置におけるエラー検証方法、エラー検証プログラム、およびエラー検証装置
【発明者】 【氏名】横田 恵一
【氏名】福地 廣行
【課題】RAID方式による冗長性が考慮されたディスクアレイ装置において、ディスク単体のエラーが発生した場合、リカバリ機能を有するディスクアレイ装置のリカバリ処理・縮退処理の確認を効率よく検証する方法を提供する。

【解決手段】
【特許請求の範囲】
【請求項1】
ディスクアレイ装置において試験ディスクにエラーを擬似的に発生させて当該ディスクのリカバリ動作を検証するエラー検証方法であって、
ホストから発行されたコマンドに対応するエラー事象を前記試験ディスクに注入するエラー注入ステップと、
注入後、前記コマンドによって前記試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記録するトレース採取ステップと、
前記リカバリ動作履歴を解析し、発生したリカバリ処理を特定し、対応するエラー事象を選定するトレース解析ステップと、
前記リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するパラメータ設定ステップと、
を有することを特徴とするエラー検証方法。
【請求項2】
ディスクアレイ装置において試験ディスクにエラーを擬似的に発生させて当該ディスクのリカバリ動作を検証するエラー検証プログラムであって、
コンピュータに、
ホストから発行されたコマンドに対応するエラー事象を前記試験ディスクに注入するエラー注入ステップと、
注入後、前記コマンドによって前記試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記録するトレース採取ステップと、
前記リカバリ動作履歴を解析し、発生したリカバリ処理を特定し、対応するエラー事象を選定するトレース解析ステップと、
前記リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するパラメータ設定ステップと、
を実行させるエラー検証プログラム。
【請求項3】
ディスクアレイ装置において試験ディスクにエラーを擬似的に発生させて当該ディスクのリカバリ動作を検証するエラー検証装置であって、
ホストから発行されたコマンドに対応するエラー事象を前記試験ディスクに注入するエラー注入手段と、
注入後、前記コマンドによって前記試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記録するトレース採取手段と、
前記リカバリ動作履歴を解析し、発生したリカバリ処理を特定し、対応するエラー事象を選定するトレース解析手段と、
前記リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するパラメータ設定手段と、
を有することを特徴とするエラー検証装置。
【発明の詳細な説明】【技術分野】
【0001】
本発明は,冗長性を考慮したディスクアレイ装置に関し、特にリカバリ動作履歴を記憶するトレース部を有し、複雑なリカバリの動作を効率的に検証する評価手法に関する。
【背景技術】
【0002】
近年の磁気ディスクは、高密度、大容量化、高速化が加速しており、磁気ディスク単体で一時的なエラー(救済可能なエラー)の発生する確率は高く、ディスクアレイ装置の制御部にて、様々なエラーに対するリカバリ機能を有している。しかし、磁気ディスク単体で故障が発生した場合、1つの故障で、単一のエラー事象だけが発生するのではなく、ディスクアレイ装置の制御部によってエラーリカバリを処理している最中に、別のエラー事象に遷移している(1つの故障で複数のエラー事象に遷移)場合がある。こうした場合のエラーリカバリ処理の検証は、非常に複雑であり、長期に渡って検証が必要とされる。
【0003】
従来の評価では、事前にインタフェーストレースからリカバリ処理のシーケンスを把握し、各種コマンドに対して、リカバリ処理に合わせエラーパラメータ(種類・回数)をあらかじめプログラミングしておき、そのプログラムを実行することで、リカバリ処理を検証するという方法がとられていた。
【0004】
ディスクアレイ装置は、高い信頼性を確保するためにRAID(Redundant Arrays of Inexpensive Disks )方式による複数の磁気ディスクで構成されており、冗長性を持って1つの論理ディスクを形成している。このため、磁気ディスク単体で異常が発生しても、データ保証されるものとなっている(単体故障でもデータのアクセスが可能)。
【0005】
しかし、異常が発生したディスクにおいてリカバリが可能なエラーについては、単純に異常ディスクとして縮退処理をするのではなく、リカバリ処理による救済が行われている。リカバリ処理としては、コマンドのリトライ回数、トラックの交代割付処理、磁気ディスクのモータオフ・オン処理など、エラーの種類によってリカバリ内容が異なっているため、それぞれのコマンドに対して、擬似的なエラーを発生させ、各種のエラーリカバリ処理の検証をするのが一般的となっている(例えば、特許文献1参照)。
【0006】
すなわち、従来の方式では、インタフェーストレースからコマンド・エラーを抽出し擬似エラーを発生させ、そのリカバリ処理の検証を実施していた。あるエラーを特定のコマンドに発生させ、インタフェース上のトレース情報を元に実行可能なプログラムを作成し、磁気ディスクの故障発生時のリカバリ処理を確認するというものである。このため、リカバリ検証の前に、どのようなリカバリ処理(何のコマンドが発行される)を行うのかを事前に認識し、どのコマンドに何のエラーを発生させるかを事前にテストプログラムへ定義する(どのコマンドにエラーを発生させるか書き込む)必要があった。
【0007】
このように、従来の方式では、複雑化していくエラーリカバリ処理の検証に関して、事前に想定した範囲外のエラーリカバリ処理が動作した場合には対応できないという問題があった。
【0008】
例えば、図7、8の従来例に示すように、予め3階層のエラー注入パターンを事前に用意していた場合、ある故障に対しては、3階層目のエラー注入により一連のリカバリ処理が完了し、確認完了となるが、別の故障に対しては、3階層目のエラー注入によりリカバリ処理が完了せず、リカバリ処理自体は継続するのにプログラム側が対応できないといったケースが考えられる。
【0009】
図7は、3階層のエラー注入による成功パターンを示している。パターン1では、3 回目のリカバリ処理は発生せず、即時ディスク切り離しとなり、一連のリカバリ処理確認が完了している。また、パターン2の具体例で示すと、媒体エラー(Medium Error)がハードエラー(Hardware Error)に変化する故障モードにて、2 回の媒体エラー発生後、1回目のハードエラーでリカバリ処理が発生しないため、ディスクは即時切り離しとなり、一連のリカバリ処理は完了となる。
【0010】
図8は、3階層のエラー注入による失敗パターンを示している。パターン1では、3回目のリカバリ処理でディスク切り離しされず、4階層目のエラー事象は用意されていないため、リカバリ処理確認が未完了のままとなる。パターン2の具体例では、ユニットアテンション(Unit Attention)がノットレディ(Not Ready)に変化する故障モードの場合、2回のユニットアテンション発生後、1回目のノットレディに対してリカバリ処理(モータオフ・オン) が発生するが、次のエラー注入処理が用意されていないため、一連のエラーリカバリ処理は、未完了のままとなっている状態を示している。
【特許文献1】特開平09−265412号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
上記したように、ディスクアレイ装置に発行されるコマンドに対して、磁気ディスクからエラー(媒体エラー、シークエラー)の種類によって、異なったリトライやリカバリ処理が行われる。こうしたリカバリ評価においては、異なったリカバリ処理の組合せ(コマンドの種類×エラーの種類)は、膨大な数になり、全てのリカバリ動作の検証は困難な状況にある。
【0012】
そこで、本発明では、エラーリカバリ毎にインタフェーストレース情報を採取し、トレースデータからリカバリ処理を追跡し、ディスクが縮退するまでのリカバリ処理のシーケンスを動的にプログラミングして実行する構成とすることにより、各種エラーに対してのリカバリコマンドの種類・回数(リカバリ処理の深さ)の妥当性(計算機システムに与える影響)の検証を実現する。
【課題を解決するための手段】
【0013】
上記課題を解決する本発明は、ディスクアレイ装置において試験ディスクにエラーを擬似的に発生させて当該ディスクのリカバリ動作を検証するエラー検証方法であって、ホストから発行されたコマンドに対応するエラー事象を前記試験ディスクに注入するエラー注入ステップと、注入後、前記コマンドによって前記試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記録するトレース採取ステップと、前記リカバリ動作履歴を解析し、発生したリカバリ処理を特定し、対応するエラー事象を選定するトレース解析ステップと、前記リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するパラメータ設定ステップと、を有することを特徴とするエラー検証方法に関する。
【0014】
すなわち、本発明によれば、エラー注入手段が、ホストから発行されたコマンドに対してエラー事象を前記試験ディスクに注入し、注入後、トレース採取手段が、ホストからのコマンドを実行することによって試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記憶部に記録し、トレース解析手段が、記録されたリカバリ動作履歴を解析し、発生したリカバリ処理を特定して対応するエラー事象を選定し、パラメータ設定手段が、リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するエラー検証プログラムを構成することによって、階層的なエラーに対するリカバリ処理を自動的にプログラミングしていくことを可能とし、評価の網羅性を向上させるとともに、手動で各種パターンをプログラミングする従来手法に比べ、評価工数の削減を図ることができる。
【発明の効果】
【0015】
以上、上記してきた発明により以下の効果が生まれる。
【0016】
エラー注入手段が、ホストから発行されたコマンドに対してエラー事象を前記試験ディスクに注入し、注入後、トレース採取手段が、ホストからのコマンドを実行することによって試験ディスクで発生するリカバリ処理をトレース採取し、リカバリ動作履歴として記憶部に記録し、トレース解析手段が、記録されたリカバリ動作履歴を解析し、発生したリカバリ処理を特定して対応するエラー事象を選定し、パラメータ設定手段が、リカバリ処理のコマンドと対応するエラー事象とを次パラメータとして自動設定するエラー検証プログラムを構成することによって、トレース採取・解析の結果が反映されて、次のコマンドとエラー事象が逐次、継続的に選択され、次パラメータとして自動セットされるようにプログラミングされるため、従来、固定的であったリカバリ処理の種別、回数に限定されることなく、多階層に渡って効率的なリカバリ処理を行うことができる。
【0017】
また、階層的なエラーに対するリカバリ処理が自動的にプログラミングされることによって、複雑なパラメータの組合せによる評価の網羅性を向上させるとともに、各種パターンを手動でプログラミングする従来手法に比べ、評価工数を大幅に削減することが可能となる。
【発明を実施するための最良の形態】
【0018】
以下、図面にもとづいて本発明の実施形態を説明する。
【0019】
図1は、本発明の実施の形態になるエラー検証システムの基本構成を示す。本エラー検証システムは、ホスト2、ディスクアレイ装置1、およびエラー検証装置(制御用PC:Personal Computer )4から構成されている。ディスクアレイ装置1は、エラー検証装置4から発行されるコマンドによって活性挿抜可能であり、トレース採取やエラー注入用のインタフェースを備えた試験ディスク3を有し、エラー試験の対象となる試験ディスク3に対するトレース情報の記録・解析、エラー注入の処理は、エラー検証装置4によって制御される。
【0020】
なお、エラー検証装置4は、試験ディスク3のエラー試験の処理を制御する、図示にないメモリ、CPU(Central Processing Unit )を備えたコンピュータであり、エラー注入部11、トレース採取部12、トレース解析部13、およびパラメータ設定部14の構成になるエラー検証プログラムを内蔵し、また、補助記憶部としての記憶部15を有し、記憶部15には、コマンドリスト、エラー事象リスト、およびリカバリ動作履歴が格納されている。エラー検証プログラムは、起動時にメモリに展開され、CPUによって処理される。
【0021】
図1は、1階層((1)+(2))→2階層((1)+(2)、(3)+(5))→3 階層((1)+(2)、(3)+(5)、(6)+(8))という順番で、自動的にプログラミングが実行され、エラー注入が継続される処理の流れを示している。
【0022】
ホスト2から発行されたWrite実行のコマンド(1)と、該コマンドに対応した媒体エラー注入(2)による1階層目の注入によって、コマンドリトライ(3)が発生し、その動作履歴をトレース採取、解析(4)し、再度の媒体エラー注入(5)による2階層目のがエラー注入が実行されることで、交代割付処理(6)が発生する。その動作履歴をトレース採取、解析(7)し、3階層目のエラー注入として、ハードエラー注入(8)が実行されることで、処理は完了となり、ディスク切り離し(9)が行われる。
【0023】
上記本発明によれば、階層的なエラーに対するリカバリ処理を自動的にプログラミングしていくことで、評価の網羅性を向上させることができ、かつ、手動で各種パターンをプログラミングする従来手法に比べ、評価工数の大幅な削減となる。
【0024】
図2は、本発明の実施の形態になるトレース採取によるプログラミング構成を示す。図2は、本発明の特徴であるトレース採取で特定したリカバリ処理をプログラムに自動的に取込みつつ、プログラムを実行していく、階層的なエラー検証システムの手順を示している。
(1)コマンドリストから選択したエラー発生対象となるコマンドAと、エラー事象リストから選択したコマンドAに対して発生させるエラー事象1とを、パラメタとしてプログラムへセット。
(2)ホスト2からディスクアレイ装置1に対して、コマンドAを発行。
(3)コマンドAに対して、エラー事象1を制御用PC4より注入(コマンドAに対するエラー応答)。
(4)ディスクアレイ装置1にて、エラー事象1に対するリカバリ処理1が発生。
(5)コマンドA、エラー事象1、リカバリ処理1をセットとする一連の動作をトレース採取し、リカバリ動作履歴として制御用PC4の記憶部に記録。
(6)リカバリ動作履歴を解析し、エラー発生したコマンドAに対するリカバリ処理1を見つけ出し、次のエラー発生対象のパラメタとしてプログラムへセット。
【0025】
具体的には、Readコマンドに対してMedium Errorを発生させた場合、リカバリ動作履歴のDB(データベース)のトレース結果から、Readを、まず、リストアップし、そのReadに対して、Medium Errorが応答されている箇所を検索し、そのMedium Errorが応答されていたReadの直後に発行されたコマンドをリカバリコマンドとする。
(7)エラー事象リストから、リカバリ処理1で実行されるリカバリコマンドに注入するエラー事象2を選択し、パラメタとしてプログラムへセット(この時点で、プログラムはコマンドA+エラー事象1、リカバリ処理1+エラー事象2の2階層となる)。
【0026】
具体的には、コマンドリストとエラー事象リストの関係を表わした表があり、そのリカバリコマンド(例えば、Reassign Block)に発生し得るエラー事象(Medium Error、Hardware Error、Recovered Error)の中から、任意のエラー事象(Medium Error)を選択する。
(8)上記(2)〜(4)の処理を再現させ、リカバリ処理1が発生。
(9)リカバリ処理1に対して、エラー事象2を制御用PC4より注入(リカバリ処理1に対するエラー応答)。
(10)ディスクアレイ装置1にて、エラー事象2に対するリカバリ処理2が発生。
(11)リカバリ処理1、エラー事象2、リカバリ処理2の一連の動作をトレース採取し、リカバリ動作履歴として制御用PC4の記憶部に記録。
(12)以降、(6)〜(11)の手順を繰り返して階層化されたエラー注入処理をプログラミングしつつ実行し、その結果、注入したエラーに対するリカバリ処理が発生せず、ディスクが切り離されたら完了とする。
【0027】
ここで、リカバリ動作履歴は、制御用PC4動作時に一連のコマンド動作をトレースしたデータであり、発行したコマンドと、そのコマンドに対し応答されたセンス(エラーセンス) 情報からなる。
書込みコマンドの例:
DO CDB. seq _id=1 lun=0 cdb=(size 0x10) ← Writeコマンド(0x2a)
0x00 : 2a00000e2f8000008000000000000000 ←生データ
上記書込みコマンドに対する応答センス例:
SendRsp(seq _id=1) scsi _status isn't GOOD.(=2) with SENSE. sense _len=0x30. sense=(size 0x30) ←Medium Error(SK:3/11/83 )
0x00 : 70400600000000280000000029030000 ←生データ
0x10 : 0000000402000f0001fa0117014c0000
0x20 : 03090000000000000000000000000201
図3は、本発明の実施の形態になるエラー検証プログラムで使用するコマンドリストの例を示す。本コマンドリストは、Read、Write等の通常コマンドと、Reassign等のリカバリコマンドをリスト化したもので以下を意味する。
Read/Write:読出し/書込みコマンド。
Write & Verify:書込み及び書込みをチェックするコマンド。
Test Unit Ready:ディスク認識が正しく行われたか否かをチェックするコマンド。
Motor on:リカバリ処理でディスクを起動させるコマンド。
Reassign Block:媒体のあるブロックが異常であるときに、他のブロックを割り付ける交替割付処理のコマンド。
【0028】
図4は、本発明の実施の形態になるエラー検証プログラムで使用するエラー事象リストの例を示す。本エラー事象リストは、媒体エラー、ハードエラー、リカバード(復旧可能)エラーなどのエラー事象をリスト化したものである。各項目のエラー事象は、以下を意味する。
Medium Error:媒体エラー。
Not Ready:該当する媒体が見当たらない場合のエラー。
SMART:故障の予兆を警告するコマンド。
Recovered Error:回復可能なエラー。
Hardware Error:ハードウエアのエラー。
Illegal Error:誤った操作によるエラー。
Unit Attention:ホスト側にリトライを促すコマンド。
Data Protect:書込み領域にデータが侵入するのを防止するコマンド。
Aborted Command:異常終了を示すコマンド。
【0029】
図5は、本発明の実施の形態になる多階層に渡るエラー注入の流れを模式的に説明する図である。本実施例は、3階層以上のエラー注入が適用された場合を想定している。
【0030】
図では、3 回目のリカバリ処理で処理完了としなくても、採取されたトレース情報の解析から次のエラー発生対象となるリカバリ処理(リカバリコマンド) と、発生させるエラー事象とがプログラムにセットされて自動的に実行されるため、多階層に渡っての一連のリカバリ処理の確認を追跡し実行することが可能となることを示している。
【0031】
図6は、本発明の実施の形態になるトレース採取によるエラー注入の処理フローを示す。まず、ステップS11において、予め用意されたコマンドリストから任意に選択したエラー発生対象となる一つのコマンドと、エラー事象リストから選択したコマンドに対して発生させるエラー事象をパラメタとしてプログラムにセットする。ステップS12において、プログラムが実行され、トレース採取が開始され、当該コマンドに対するエラー事象の試験ディスク3への注入が行われる。そして、ステップS13において、当該エラー注入に対するリカバリ処理が発生したか否かを判定する。
【0032】
その結果、リカバリ処理が発生した場合には、ステップS15において、トレース採取を終了し、ステップS16において、採取したトレースデータを発行コマンドとそのコマンドに応答したエラー事象のセンス情報からなるリカバリ動作履歴として制御用PC4の記憶部に保存する。
【0033】
つぎに、ステップS17において、リカバリ動作履歴を解析し、エラー発生したコマンドに対するリカバリ処理を特定し、ステップS18において、次パラメータとしてプログラムに自動セットし、ステップS12以降の処理を繰り返す。
【0034】
一方、ステップS14において、リカバリ処理の発生がなければ、ステップS19において、当該対象のディスクを切り離し、本フローは終了となる。
【図面の簡単な説明】
【0035】
【図1】本発明の実施の形態になるエラー検証システムの基本構成を示す図である。
【図2】本発明の実施の形態になるトレース採取によるプログラミング構成を示す図である。
【図3】本発明の実施の形態になるエラー検証プログラムで使用するコマンドリストの例を示す図である。
【図4】本発明の実施の形態になるエラー検証プログラムで使用するエラー事象リストの例を示す図である。
【図5】本発明の実施の形態になる多階層に渡るエラー注入の流れを模式的に説明する図である。
【図6】本発明の実施の形態になるトレース採取によるエラー注入の処理フローを示す図である。
【図7】従来の3階層のエラー注入例(成功パターン)を示す図である。
【図8】従来の3階層のエラー注入例(失敗パターン)を示す図である。
【符号の説明】
【0036】
1 ディスクアレイ装置
2 ホスト
3 試験ディスク
4 エラー検証装置(制御用PC)
11 エラー注入部
12 トレース採取部
13 トレース解析部
14 パラメータ設定部
15 記憶部

特許の図
【出願人】 【識別番号】000005223
【氏名又は名称】富士通株式会社
【出願日】 平成19年6月18日(2007.6.18)
【代理人】 【識別番号】100108187
【弁理士】
【氏名又は名称】横山 淳一
【公開番号】 特開2008−310752(P2008−310752A)
【公開日】 平成20年12月25日(2008.12.25)
【出願番号】 特願2007−160387(P2007−160387)