JP2009151681A - ディスクアレイ装置 - Google Patents

ディスクアレイ装置 Download PDF

Info

Publication number
JP2009151681A
JP2009151681A JP2007330699A JP2007330699A JP2009151681A JP 2009151681 A JP2009151681 A JP 2009151681A JP 2007330699 A JP2007330699 A JP 2007330699A JP 2007330699 A JP2007330699 A JP 2007330699A JP 2009151681 A JP2009151681 A JP 2009151681A
Authority
JP
Japan
Prior art keywords
hard disk
data
error
write
array controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007330699A
Other languages
English (en)
Other versions
JP4951493B2 (ja
Inventor
Atsushi Inagi
敦志 稲木
Kazuto Matsumoto
一人 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007330699A priority Critical patent/JP4951493B2/ja
Publication of JP2009151681A publication Critical patent/JP2009151681A/ja
Application granted granted Critical
Publication of JP4951493B2 publication Critical patent/JP4951493B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ディスクアレイ装置においてライトエラー発生時に冗長性が失われることなく、再構築中にリードエラーが発生した場合に対する冗長性を保持、向上させる。
【解決手段】ディスクアレイ装置は、2台以上のハードディスク1,2と、ハードディスク1,2に対するデータの書き込みまたは読み出しを制御するアレイコントローラ3で構成される。アレイコントローラ3は、不揮発性メモリ4とアドレス管理テーブル5とを有し、ハードディスク1,2における書込みエラー発生により不良と判断されたセクタのデータを、エラー発生のない正常なハードディスク2,1により再生し、正常なハードディスク2,1により再生したデータを不揮発性メモリ4に退避させる。不揮発性メモリ4に退避させたデータはアドレス管理テーブル5にて管理される。
【選択図】図1

Description

本発明は、2台以上のハードディスクに冗長性を持たせてデータの記録をするディスクアレイ装置に関する。
現在、計算機システムには外部記憶装置としてハードディスクが多く使用されている。しかし、ハードディスクはその構造上エラーが発生する可能性がある。近年、ハードディスクの容量が増加し、故障発生の可能性はより高くなってきている。
そこで、重要なデータを保存する必要がある場合は、従来よりハードディスクの信頼性向上のために複数のハードディスクを用いるRAID(Redundant Arrays of Inexpensive Disks)システムが使用されている。
その1つとして、2台のハードディスクに同じデータを保存するRAID1システムがある。RAID1システムは、RAIDシステムの冗長レベルの一つであり、ミラーリングとも呼ばれる。2台のハードディスクにまったく同じデータを同時に書きこむ方式である。片方が破損しても、もう一方からデータを読み出せるのでシステムは問題無く稼動しつづけることができる。しかし、両方のハードディスクに同じデータを書き込むことになるため、実際に使用できる容量は本来のディスク容量の半分になる。
すなわち、RAID1システムでは、アレイコントローラは、データ書込み時は両方のハードディスクにデータを書き込み、読込時は片方よりデータを読み出す。データ読出し時にエラーが発生した場合は、もう一方のハードディスクからデータを読み出す。
また、アレイコントローラは、もう一方のハードディスクに記憶されているデータにより、エラーが発生したハードディスクのデータを修復する機能を備えている。このように2台のハードディスクを使用することにより、使用できる記憶容量は減るものの、信頼性を向上させている。
しかし、RAID1システムにおいてライトエラーが発生した場合、ハードディスクにハード的な故障が発生していると判断される。そして、その故障が発生したと判断されたハードディスクは計算機システムから物理的/論理的に切り離される。すなわち、アレイコントローラは、故障が発生しているハードディスクを切断し、そのハードディスクに記憶されている論理/物理変換テーブルを消去する。
そうなると、計算機システムは、故障が発生しているハードディスクを交換し、RAID1システムの再構築をおこなうまでの間、1台のディスクのみで動くことになり、冗長性は失われる。
また、交換したハードディスクにより再構築を行う場合においても、コピー元の正常なハードディスクにリードエラーが発生し、再構築が不可となってしまう可能性がある。
このときの冗長性が失われる時間を削減するための手法として、ハードディスクの空き部分にハードディスクアレイを構築している他のハードディスクのバックアップデータを保存する方法が提案されている(特許文献1参照)。
また、ディスクアレイコントローラに不揮発性メモリを設け、セクタ障害が発生した際には一時的に不揮発性メモリに交替処理を行うディスクアレイ装置が提案されている(特許文献2参照)。
特開2006−113648号公報 特開平11−24848号公報
しかしながら、特許文献1に記載の技術では、ハードディスクの空き領域が少なくなると、データのバックアップ部分にデータを上書きしてしまうため、運用初期における冗長性の確保しかできない。
また、ハードディスク装置のもつ故障の可能性を減少することができないため、ハードディスクの故障によるデータ損失の危険は避けることができない。
また、特許文献2に記載の技術では、メモリに退避したデータと故障が発生しているハードディスクとの情報を管理する手段を設けていない。従って、メモリ上の退避データと故障が発生していないハードディスク上の正常データとの双方の使用ができない。
そこで、本発明は、ディスクアレイ装置においてライトエラー発生時に冗長性が失われることなく、再構築中にリードエラーが発生した場合に対する冗長性を保持及び向上させることを目的とするものである。
上記目的を達成するために、本発明のディスクアレイ装置は、2台以上のハードディスクと、ハードディスクに対するデータの書き込みまたは読み出しを制御するアレイコントローラとで構成される。そして、このディスクアレイ装置のアレイコントローラ上には、不揮発性メモリとアドレス管理テーブルとが設けられている。
ここで、ハードディスクにおける書込みエラーが発生したセクタのデータを不良と判断し、この不良と判断されたデータを、エラー発生のない正常なハードディスクにより再生する。これにより、正常なハードディスクにより再生したデータを不揮発性メモリに退避させることができる。この不揮発性メモリに退避させたデータはアドレス管理テーブルによって管理される。
本発明のディスクアレイ装置によれば、ハードディスクだけでなく不揮発性メモリを有しているので、ライトエラーとなったセクタのデータを正常なハードディスクより読み取り、メモリに退避させることができ、これによりディスクアレイ装置の冗長性を保持することができる。
また、メモリに退避させたデータをアドレス管理テーブルにてセクタごとに管理することにより、最低限のメモリ容量でディスクアレイの冗長性を確保することができる。
本発明によれば、ディスクアレイ装置においてライトエラーの発生したデータを正常なハードディスクより読み取り、メモリに退避させることができるので、ライトエラー発生時に冗長性が失われることなく、要求されるディスクアレイ装置の冗長性を保持することができるという効果を奏する。
また、メモリに退避させたデータをセクタごとに管理することにより、ライトエラーの発生したデータの冗長性を失うことなく、ディスクアレイの冗長性の品質を向上させることができる。
以下、本発明の一実施の形態例(以下、「本例」という。)を、図1〜10を参照して説明する。
図1は、本例のディスクアレイ装置の構成例を示す図である。
図1に示されるように、本例のディスクアレイ装置は、ハードディスクHDD(hard disk drive)#1(マスタ)と、ハードディスクHDD#2(ミラー)と、アレイコントローラとから構成されている。
1は、RAID1システムによるハードディスクHDD#1(マスタ)、2は、RAID1システムによるハードディスクHDD#2(ミラー)を示している。図1に示される構成において、ハードディスクHDD#1(マスタ)と同じデータが、ハードディスクHDD#2(ミラー)に記録されている。
これらのハードディスクHDD#1とハードディスクHDD#2に対するデータの書き込みまたは読み出しは、アレイコントローラ3によって制御される。アレイコントローラ3には、不揮発性メモリ(フラッシュメモリ等)4が実装されている。
不揮発性メモリ4は、ハードディスクHDD#1(マスタ)のセクタに書込みエラーが発生し、そのセクタが不良と判断された場合に、エラー発生のない正常なハードディスクHDD#2(ミラー)に蓄積されたデータを、退避させるためのメモリである。逆に、ハードディスクHDD#2(ミラー)のセクタに書込みエラーが発生し、そのセクタが不良と判断された場合にも、エラー発生のない正常なハードディスクHDD#1(マスタ)に蓄積されたデータが不揮発性メモリ4に退避されるようになっている。
不揮発性メモリ4には、退避させたデータの不揮発性メモリ4上のアドレス14と、退避させたデータの内容15と、退避させた日時16が記録されている。少なくとも、不揮発性メモリ4は、アドレス14とデータの内容15が記録されていればよく、退避させた日時16は必須のものではない。このアレイコントローラ3は、ハードディスクHDD#1(マスタ)と、ハードディスクHDD#2(ミラー)の2台にてRAID1システム(ミラーリング)構成を構築する機能を有している。
また、アレイコントローラ3上には、アドレス管理テーブル5が用意されている。このアドレス管理テーブル5は、不揮発性メモリ4に退避させたデータのアドレスを、書込みエラーが発生したハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の一方におけるセクタのデータのアドレスと関係づけて管理するテーブルである。
すなわち、アドレス管理テーブル5には、エラーが発生したハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の識別番号(HDDNo.)11と、エラーが発生したハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)上のエラーデータの論理ブロックアドレスLBA(logical block address)12と、不揮発性メモリ4上の退避データ15のアドレス13とが記憶されている。
このように、アドレス管理テーブル5には、まず、不良セクタが発生しているハードディスクの箇所が記憶される。そして、その不良セクタに対応するもう一方のハードディスクから取り出された正常データが退避された箇所、つまり不揮発性メモリ4に退避させたデータのアドレスが記録されていればよい。ここで、不良セクタが発生している箇所の記録には、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)内の全てのセクタに振り分けられた通し番号LBA12が使用される。
また、アレイコントローラ3は、図1には示されていないが、不揮発性メモリ4の各ブロックの使用回数を記録し、使用回数がしきい値を超えたブロックは保護ブロックとし、書込み制限を行うようにしている。また、アレイコントローラ3は、定期的にハードディスクHDD#1(マスタ)と、ハードディスクHDD#2(ミラー)のエラーチェックをバックグラウンド動作にて行うBCC(background sequential scan)機能を有している。
ここで、バックグラウンド動作とは、ハードディスクHDD#1(マスタ)と、ハードディスクHDD#2(ミラー)に対するホストからのアクセスがないときの動作を示している。
以下、ディスクアレイ装置におけるアレイコントローラ3の実行する動作について説明する。
図2は、RAID1による動作を示すフローチャートである。
図2において、アレイコントローラ3は、ハードディスクHDD#1(マスタ)、ハードディスクHDD#2(ミラー)に対して、ホストからデータの書込み命令があるか否かを判断する(ステップS1)。
判断ステップS1で、ホストからのデータの書込み命令があるときは、アレイコントローラ3は、ハードディスクHDD#1(マスタ)に、データの書込みを実行する(ステップS2)。ここで、アレイコントローラ3は、RAID1システム(ミラーリング)構成を構築する機能を実現することになる。
すなわち、アレイコントローラ3は、ハードディスクHDD#2(ミラー)上にハードディスクHDD#1(マスタ)と同じデータの書込みを実行する(ステップS3)。なお、判断ステップS1で、データの書込み命令がないときは、処理を終了する。
このように、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)を設け、RAID1システム(ミラーリング)構成を構築することにより、冗長性を保持したデータの記録を行うことができる。
図3は、バックグラウンド動作を示すフローチャートである。
図3において、アレイコントローラ3は、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に対して、ホストからデータの書込みなどのアクセスがあるか否かを判断する(ステップS11)。
判断ステップS11で、アクセスがあるときは、アレイコントローラ3は、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に、データの書込みなどのアクセス処理を実行する(ステップS12)。
判断ステップS11で、アクセスがないときは、アレイコントローラ3は、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に対して、バックグラウンドでシーケンシャルにリード/ライト(読み出し及び書込み)動作を実行する(ステップS13)。
すなわち、アレイコントローラ3は、ハードディスクHDD#1(マスタ)の後に、ハードディスクHDD#2(ミラー)を、連続して全周にわたって一定範囲ずつデータの読み出し及び書込みを行う。
バックグラウンド動作は、タイマ割り込みなどにより、定期的に実行され、定期的に終了される。続いて、アレイコントローラ3は、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に対して、全周にわたってリード/ライト(読み出し及び書込み)動作が終了したか否かを判断する(ステップS14)。
判断ステップS14で、全周にわたってリード/ライト(読み出し及び書込み)動作が終了していないと判断されたときでも、つまり、バックグラウンド動作の途中であっても、ステップS11でアクセス処理の割り込みがあった場合には、バックグラウンド動作は中断する。
そして、判断ステップS11に戻って、ステップS12でアクセス処理を実行した後に、ステップS13でバックグラウンド動作を続行する。判断ステップS14で、全周にわたってリード/ライト(読み出し及び書込み)動作が終了したら、処理を終了する。
図4は、書込み動作におけるメモリ書込みを示すフローチャートである。
図4において、アレイコントローラ3は、ハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に対して、データの書込み処理を実行する(ステップS21)。
すなわち、ホストからハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)にデータの書込み指示が発生した場合は、各々のハードディスクHDD#1(マスタ)とハードディスクHDD#2(ミラー)に同じデータの書込み処理を行う。
ここで、アレイコントローラ3は、データの書込み処理が正常に実行されたか否かを判断する(ステップS22)。判断ステップS22で、データの書込み処理が正常に実行されないと判断されたときは、アレイコントローラ3は、RAID1システムにおいてライトエラーが発生し、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)にハード的な故障が発生していると判断する。そして、アレイコントローラ3が当該データのLBAのセクタを不良セクタと判定する(ステップS23)。
次に、アレイコントローラ3は、この書込み処理が正常に実行されないデータを不揮発性メモリ4の所定のアドレスに記録する(ステップS24)。
そして、アレイコントローラ3は、データの書込みエラーが発生した不良ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の識別番号(HDDNo.)、書込みエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録する(ステップS25)。
このようにして、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)へのデータの書込み処理が不可となった場合は、書き込みデータを、不揮発性メモリ4内の任意のアドレスに書き込むようにする。
これにより、記録データの冗長性を確保した上で、退避データのアドレスと不良ハードディスクの不良セクタとを対応つけて管理することができる。
判断ステップS22で、データの書込み処理が正常に実行されたとき、ステップS25で、データの書込みエラーが発生した不良ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の識別番号、書込みエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録したとき、処理を終了する。
図5は、読出し動作におけるメモリ書込みを示すフローチャートである。
図5において、ディスクアレイコントローラ3は、アドレス管理テーブル5を確認して、不良セクタ情報があるか否かを判断する(ステップS31)。
すなわち、ホストからハードディスクHDD#1(マスタ)、ハードディスクHDD#2(ミラー)に対してデータの読み出し指示が発生した場合は、ディスクアレイコントローラ3は、アドレス管理テーブル5を確認して、不良セクタの発生したハードディスクHDD#1(マスタ)、ハードディスクHDD#2(ミラー)の識別番号(HDD No)、不良セクタのLBA、データが書き込まれた不揮発性メモリ4のアドレスを読み出す。
判断ステップS31で、不良セクタ情報があると判断されたときは、アレイコントローラ3は、不揮発性メモリ4内の当該データを読み出す(ステップS32)。
ここで、読出し指示が発生した場合、アレイコントローラ3は、アドレス管理テーブル5上に読出指示のかかったセクタが有るか否かを確認する。アドレス管理テーブル5上に退避データ情報がある場合は、アレイコントローラ3は、アドレス管理テーブル5上に保存されている不揮発性メモリ4のアドレスに格納されているデータの読出しを行う。
判断ステップS31で、不良セクタ情報がないと判断されたときは、アレイコントローラ3は、ハードディスクHDD#1(マスタ)内のデータを読み出す(ステップS33)。
ここで、アレイコントローラ3は、ハードディスクHDD#1(マスタ)内のデータの読み出し処理が正常に実行されたか否かを判断する(ステップS34)。
すなわち、判断ステップS34で、データの読み出し処理が正常に実行されないとき、アレイコントローラ3は、RAID1システムにおいてリードエラーが発生し、ハードディスクHDD#1(マスタ)に読み出し故障が発生していると判断する。そして、アレイコントローラ3は、ハードディスクHDD#2(ミラー)の内のデータを読み出す(ステップS35)。
次に、アレイコントローラ3は、ハードディスクHDD#2(ミラー)内のデータの読み出し処理が正常に実行されたか否かを判断する(ステップS36)。
すなわち、判断ステップS36で、データの読み出し処理が正常に実行されないとき、アレイコントローラ3は、RAID1システムにおいてリードエラーが発生し、ハードディスクHDD#2(ミラー)に読み出し故障が発生していると判断する。
このように、アレイコントローラ3は、アドレス管理テーブル5上に不良セクタデータ情報がない場合は、ハードディスクHDD#1(マスタ)よりデータを読み出す。また、ハードディスクHDD#1(マスタ)にて読み出しエラーが発生した場合は、ハードディスクHDD#2(ミラー)よりデータを読み出す。
判断ステップS36で、ハードディスクHDD#2(ミラー)内のデータの読み出し処理が正常に実行されないとき、復旧不可能となる(ステップS37)。
判断ステップS36で、ハードディスクHDD#2(ミラー)内のデータの読み出し処理が正常に実行されたとき、アレイコントローラ3は、ハードディスクHDD#1(マスタ)にハードディスクHDD#2(ミラー)のデータを書き戻す処理を実行する(ステップS38)。
ここで、アレイコントローラ3は、ステップS38のハードディスクHDD#1(マスタ)にハードディスクHDD#2(ミラー)のデータを書き戻す処理が正常に実行されたか否かを判断する(ステップS39)。
すなわち、判断ステップS39で、データの書き戻し処理が正常に実行されないとき、アレイコントローラ3は、RAID1システムにおいてライトエラーが発生し、ハードディスクHDD#1(マスタ)にハードウエア的な故障が発生していると判断する。
判断ステップS39で、データの書き戻し処理が正常に実行されないとき、ディスクアレイコントローラ3は、当該データのLBAのセクタを不良セクタとする(ステップS40)。次に、アレイコントローラ3は、この書き戻し処理が正常に実行されないデータを不揮発性メモリ4の所定のアドレスに記録する(ステップS41)。
そして、アレイコントローラ3は、データの書き戻しエラーが発生した不良ハードディスクHDD#1(マスタ)の識別番号、書き戻しエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録する(ステップS42)。
すなわち、ハードディスクHDD#2(ミラー)にて読み出しが完了した場合、ハードディスクHDD#1(マスタ)にて読み出しエラーとなったセクタのデータをハードディスクHDD#2(ミラー)のデータを用いて書き戻す。書き戻し処理にてエラーが発生した場合は、図4の書込み動作にて説明した書込み時でのメモリ書込みと同様に不揮発性メモリ4へとデータを退避させる。
判断ステップS34で、ハードディスクHDD#1(マスタ)のデータの読み出し処理が正常に実行されたとき、または、判断ステップS39で、ハードディスクHDD#1(マスタ)のデータの書き戻し処理が正常に実行されたときは処理を終了する。また、ステップS42で、データの書き戻しエラーが発生した不良ハードディスクHDD#1(マスタ)、ハードディスクHDD#2(ミラー)の識別番号、書き戻しエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録したときにも、処理を終了する。
図6は、バックグラウンド動作におけるメモリ書込みを示すフローチャートである。
図6において、アレイコントローラ3は、図3に示したバックグラウンド動作でリードエラー(読み出しエラー)が発生したか否かを判断する(ステップS51)。
すなわち、判断ステップS51で、データの読み出し処理が正常に実行されないとき、アレイコントローラ3は、RAID1システムにおいてリードエラーが発生し、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)に読み出し故障が発生していると判断する。
判断ステップS51で、バックグラウンド動作でリードエラー(読み出しエラー)が発生していないときは、アレイコントローラ3は、バックグラウンド動作でリード/ライト(読み出し及び書込み)動作を続行する(ステップS52)。
判断ステップS51で、バックグラウンド動作でリードエラー(読み出しエラー)が発生しているときは、アレイコントローラ3は、データの読み出し処理が正常に実行されないハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)に、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)のデータを書き戻す(ステップS53)。
次に、アレイコントローラ3は、ステップS53の一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)に、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)のデータを書き戻す処理が正常に実行されたか否かを判断する(ステップS54)。
すなわち、判断ステップS54で、データの書き戻し処理が正常に実行されないとき、アレイコントローラ3は、RAID1システムにおいてライトエラーが発生し、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)にハードウエア的な故障が発生していると判断する。
判断ステップS54で、データの書き戻し処理が正常に実行されないとき、アレイコントローラ3は、当該データのLBAのセクタを不良セクタとする(ステップS55)。
次に、アレイコントローラ3は、この書き戻し処理が正常に実行されないデータを不揮発性メモリ4の所定のアドレスに記録する(ステップS56)。
そして、アレイコントローラ3は、データの書き戻しエラーが発生した不良ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の識別番号、書き戻しエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録する(ステップS57)。
すなわち、バックグラウンド動作でリードエラー(読み出しエラー)が発生した場合、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)にて読み出しエラーとなったセクタのデータをハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)のデータを用いて書き戻す。書き戻し処理にてエラーが発生した場合は、図4の書込み動作にて説明した書込み時でのメモリ書込みと同様に不揮発性メモリ4へとデータを退避させる。
判断ステップS54で、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)のデータの書き戻し処理が正常に実行されたときは、処理を終了する。同様に、ステップS57で、データの書き戻しエラーが発生した不良ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の識別番号、書き戻しエラーが発生したデータのLBA及び不揮発性メモリ4に記録したデータのアドレスを、アドレス管理テーブル5に記録したとき、処理を終了する。
このように、定期的なハードディスクHDD#1(マスタ)及びハードディスクHDD#2(ミラー)のメディアチェック指示が発生した場合、アレイコントローラ3は、各ディスクにてデータのエラーチェックを行う。
そこで、データの読み出しが不可であった場合は、アレイコントローラ3は、他方のディスク情報を用いて異常箇所の修復(他方ディスクのデータを書き戻す)を行う。ここで、書き戻し処理にてエラーが発生した場合は、図4の書込み動作にて説明した書込み時でのメモリ書込みと同様に不揮発性メモリ4へとデータを退避させる。
図7は、メモリ書込み動作を示すフローチャートである。
図7のメモリ書込み動作は、図4のステップS24、図5のステップS41、図6のステップS56のメモリへの退避データの記録処理の詳細を示すものである。
図7において、アレイコントローラ3は、不揮発性メモリ4に対するデータ書込みがあるか否かを判断する(ステップS61)。すなわち、アレイコントローラ3は、不揮発性メモリ4へとデータを退避させる書込みエラーによる退避データがあるか否かを判断する。
判断ステップS61で、不揮発性メモリ4に対するデータ書込みがあるときは、アレイコントローラ3は、不揮発性メモリ4上の空き領域の先頭アドレスを検出する(ステップS62)。
なお、アレイコントローラ3は、不揮発性メモリ4の各ブロックの使用回数を記録し、使用回数がしきい値を超えたブロックは保護ブロックとしているため、書込み制限を行っている領域は、除外される。
ここで、不揮発性メモリ4上の空き領域に限らず、次回書込み位置が予め決められているときは、この位置を検出する。
そこで、ディスクアレイコントローラ3は、ステップS62で検出された先頭アドレスに退避データを書き込む(ステップS63)。
図8は、メモリフルの動作を示すフローチャートである。
図8は、図7のメモリ書込み動作において、メモリフルの場合の処理の詳細を示すものである。
図8において、アレイコントローラ3は、不揮発性メモリ4に対するデータ書込みによりメモリフルとなるか否かを判断する(ステップS71)。すなわち、アレイコントローラ3は、不揮発性メモリ4へとデータを退避させる退避データを書き込む空き領域があるか否かを判断する。
判断ステップS71で、メモリフルのときは、アレイコントローラ3は、メモリフル情報を出力して、データ書込みエラーの発生しているハードディスクHDD#2(ミラー)の交換をする(ステップS72)。
すなわち、アレイコントローラ3は、図示しないアレイコントローラ3内のスイッチを用いてハードディスクHDD#2(ミラー)との接続を切断して、予備のハードディスクHDD#Xへの接続をする。
また、アレイコントローラ3は、ユーザに対して、メモリフル情報を図示しない表示部に出力して、データ書込みエラーの発生しているハードディスクHDD#2(ミラー)の交換を促すことになる。
そして、ステップS72で交換したハードディスクHDD#2(ミラー)の不揮発性メモリ4の情報を消去する(ステップS73)。
図9は、HDD故障または再構築動作を示すフローチャートである。
図9は、図4の判断ステップS22、図5の判断ステップS39、図6の判断ステップS54で、データの書込み処理が正常に実行されないときで、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)にハード的な故障が発生していると判断されたときの処理の詳細を示すものである。図9に示す動作は、オフライン時に実行される。
図9において、アレイコントローラ3は、一方のハードディスクHDD#1(マスタ) またはハードディスクHDD#2(ミラー)が故障し、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の交換または再構築作業が発生したか否かを判断する(ステップS81)。
すなわち、アレイコントローラ3は、一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)にデータ書込みエラーが発生しているため、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の交換が必要か否かを判断する。
また、アレイコントローラ3は、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の交換のため、RAID1システム(ミラーリング)構成の再構築を実行するか否かを判断する。
判断ステップS81で、一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)が故障し、ハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)の交換または再構築作業が発生したとき、以下の処理を実行する。
すなわち、アレイコントローラ3は、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)を用いて、一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)を復旧させる(ステップS82)。
ここで、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)にないデータについては、アレイコントローラ3は、不揮発性メモリ4のデータを用いて一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)を復旧させる(ステップS83)。
これにより、RAID1システム(ミラーリング)構成を再構築することができる。
図10は、HDD故障または再構築時のエラーデータ復旧動作を示すフローチャートである。図10は、図9のステップS82のエラーデータ復旧動作の詳細を示すものである。
図10において、アレイコントローラ3は、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)にデータ読み出しエラーが発生したか否かを判断する(ステップS91)。
すなわち、アレイコントローラ3は、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)にデータ読み出しエラーが発生しているため、正しいデータの読み出しができないか否かを判断する。
判断ステップS91で、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)にデータ読み出しエラーが発生したとき、以下の処理を実行する。
すなわち、アレイコントローラ3は、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)のデータ読み出しを中止させる(ステップS92)。
ここで、他方のハードディスクHDD#2(ミラー)またはハードディスクHDD#1(マスタ)のデータ読み出しを中止したデータについては、ディスクアレイコントローラ3は、不揮発性メモリ4のデータを用いて一方のハードディスクHDD#1(マスタ)またはハードディスクHDD#2(ミラー)を復旧させる(ステップS93)。
図9に説明したように、アレイコントローラ3は、復旧時に交換したハードディスクに他方のハードディスクのデータをすべてコピーするが、図10で示したように、アドレス管理テーブル5上に保存されているセクタのデータ(コピー元でエラーが発生しているデータ)は不揮発性メモリ4より読出し、交換後のハードディスクへ読み出したデータをと書き込む。
従って、上記の図6のバックグラウンド動作にて述べたハードディスクのチェックを定期的に行うことにより、すでにエラーデータを見つけて退避させているので、復旧時にコピー元のハードディスクのアドレス管理テーブル5に記憶されていない他のセクタでエラーが発生する可能性を減らすことができる。
本例では、アレイコントローラ3は、データ書込みエラー発生時にハードディスクの切り離しを行わず、データを正常なハードディスクから読込み、ディスク装置と比べて駆動部分が無くエラー発生確率の小さい不揮発性メモリ4に退避させるため、通常のディスクアレイ装置のように冗長性が失われないようにすることができる。
また、再構築を行う場合においても、通常運用時にバックグラウンドにてハードディスクをバックグラウンド動作にスキャンする機能を用いてハードディスクをチェックしておくことにより、再構築の際にコピー元でリードエラーが発生しても不揮発性メモリ4に保管されているデータにより補填することができるので、不完全な再構築となることを防ぐことができる。
上記構成によれば、従来のディスクアレイ装置に不揮発性メモリを追加することにより従来のディスクアレイ装置より冗長性が低下する期間を減らすことができるため、より信頼性の高いディスクアレイ装置を実現することができる。
従って、高い信頼性が要求されるFA(Factory Automation)用途のコンピュータや重要なデータを保存する必要のある用途に使用されるコンピュータ等に適用することができる。
なお、上述した本実施の形態例に限らず、本発明の要旨を逸脱しない限り、適宜変更しうることは言うまでもない。
本発明の一実施の形態によるディスクアレイ装置の構成例を示す説明図である。 RAID1による動作を示すフローチャートである。 バックグラウンド動作を示すフローチャートである。 書込み動作におけるメモリ書込みを示すフローチャートである。 読込み動作におけるメモリ書込みを示すフローチャートである。 バックグラウンド動作におけるメモリ書込みを示すフローチャートである。 メモリ書込み動作を示すフローチャートである。 メモリフルの動作を示すフローチャートである。 HDD故障または再構築動作を示すフローチャートである。 HDD故障または再構築時のエラーデータ復旧動作を示すフローチャートである。
符号の説明
1…ハードディスク(マスタ )、2…ハードディスク(ミラー)、3…アレイコントローラ、4…不揮発性メモリ、5…アドレス管理テーブル

Claims (5)

  1. 2台以上のハードディスクと、前記ハードディスクに対するデータの書き込みまたは読み出しを制御するアレイコントローラで構成されるディスクアレイ装置において、
    前記アレイコントローラは、不揮発性メモリとアドレス管理テーブルとを有しており、
    前記ハードディスクのうちの1つのハードディスクに発生した書込みエラーにより不良と判断されたセクタのデータを、前記エラー発生のない他の正常なハードディスクにより再生し、
    前記正常なハードディスクにより再生したデータを前記不揮発性メモリに退避させ、
    前記不揮発性メモリに退避させたデータを前記アドレス管理テーブルにて管理することを特徴とするディスクアレイ装置。
  2. 請求項1に記載のディスクアレイ装置おいて、
    前記アレイコントローラは、前記不揮発性メモリの各ブロックの使用回数を記録し、使用回数がしきい値を超えたブロックは保護ブロックとし、書込み制限を行うことを特徴とするディスクアレイ装置。
  3. 請求項1に記載のディスクアレイ装置おいて、
    前記アレイコントローラは、前記ハードディスクに対するアクセスのないバックグラウンド動作で定期的に前記ハードディスクの書込みまたは読み出し動作の整合性チェックを行い、
    前記ハードディスク内に異常が発生した場合、前記不揮発性メモリにデータを退避させることを特徴とするディスクアレイ装置。
  4. 請求項1に記載のディスクアレイ装置おいて、
    前記アレイコントローラは、読み出し動作で前記ハードディスク内にエラーが発生した場合、
    前記エラー発生のない前記正常なハードディスクにより再生したデータを前記エラー発生のあった前記ハードディスクに書き戻し、
    前記書き戻し動作でエラーが発生したとき、前記不揮発性メモリにデータを退避させることを特徴とするディスクアレイ装置。
  5. 請求項1に記載のディスクアレイ装置おいて、
    前記不揮発性メモリには、退避データと、前記退避データのアドレスとが記憶され、
    前記アドレス管理テーブルには、エラー発生ハードディスクの識別番号と、エラー発生ハードディスク上のエラーデータの論理ブロックアドレスと、前記不揮発性メモリ上の前記退避データのアドレスとが記憶される
    ことを特徴とするディスクアレイ装置。
JP2007330699A 2007-12-21 2007-12-21 ディスクアレイ装置 Expired - Fee Related JP4951493B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007330699A JP4951493B2 (ja) 2007-12-21 2007-12-21 ディスクアレイ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007330699A JP4951493B2 (ja) 2007-12-21 2007-12-21 ディスクアレイ装置

Publications (2)

Publication Number Publication Date
JP2009151681A true JP2009151681A (ja) 2009-07-09
JP4951493B2 JP4951493B2 (ja) 2012-06-13

Family

ID=40920743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007330699A Expired - Fee Related JP4951493B2 (ja) 2007-12-21 2007-12-21 ディスクアレイ装置

Country Status (1)

Country Link
JP (1) JP4951493B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011083304A (ja) * 2009-10-13 2011-04-28 Sankyo Co Ltd 遊技用装置
JP2012123641A (ja) * 2010-12-08 2012-06-28 Oki Electric Ind Co Ltd 半導体ディスク装置
JP2012174037A (ja) * 2011-02-22 2012-09-10 Nec Corp ディスクアレイ装置及びその制御方法
JP2014203285A (ja) * 2013-04-05 2014-10-27 株式会社東芝 ドライブアレイ装置、コントローラ、データ記憶ドライブ及び方法
JP2022522437A (ja) * 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62209774A (ja) * 1986-03-11 1987-09-14 Fujitsu Ltd 磁気デイスク装置の欠陥領域交代処理方式
JPH0962461A (ja) * 1995-08-29 1997-03-07 Shikoku Nippon Denki Software Kk ディスクアレイ装置における自動データ復旧方法
JPH09128156A (ja) * 1995-10-27 1997-05-16 Hitachi Ltd 記録制御システム
JPH1124848A (ja) * 1997-07-03 1999-01-29 Hitachi Ltd ディスクアレイの障害領域交代処理方法およびディスクアレイ装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2005050346A (ja) * 2003-07-29 2005-02-24 Hitachi Global Storage Technologies Netherlands Bv ハードディスクドライブおよびこれを含むraidシステム
JP2007233915A (ja) * 2006-03-03 2007-09-13 Nec System Technologies Ltd ディスクアレイ制御装置及びエラー監視方法並びにプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62209774A (ja) * 1986-03-11 1987-09-14 Fujitsu Ltd 磁気デイスク装置の欠陥領域交代処理方式
JPH0962461A (ja) * 1995-08-29 1997-03-07 Shikoku Nippon Denki Software Kk ディスクアレイ装置における自動データ復旧方法
JPH09128156A (ja) * 1995-10-27 1997-05-16 Hitachi Ltd 記録制御システム
JPH1124848A (ja) * 1997-07-03 1999-01-29 Hitachi Ltd ディスクアレイの障害領域交代処理方法およびディスクアレイ装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2005050346A (ja) * 2003-07-29 2005-02-24 Hitachi Global Storage Technologies Netherlands Bv ハードディスクドライブおよびこれを含むraidシステム
JP2007233915A (ja) * 2006-03-03 2007-09-13 Nec System Technologies Ltd ディスクアレイ制御装置及びエラー監視方法並びにプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011083304A (ja) * 2009-10-13 2011-04-28 Sankyo Co Ltd 遊技用装置
JP2012123641A (ja) * 2010-12-08 2012-06-28 Oki Electric Ind Co Ltd 半導体ディスク装置
JP2012174037A (ja) * 2011-02-22 2012-09-10 Nec Corp ディスクアレイ装置及びその制御方法
JP2014203285A (ja) * 2013-04-05 2014-10-27 株式会社東芝 ドライブアレイ装置、コントローラ、データ記憶ドライブ及び方法
JP2022522437A (ja) * 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法

Also Published As

Publication number Publication date
JP4951493B2 (ja) 2012-06-13

Similar Documents

Publication Publication Date Title
JP4821448B2 (ja) Raidコントローラおよびraid装置
US9009526B2 (en) Rebuilding drive data
US7721143B2 (en) Method for reducing rebuild time on a RAID device
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
US20090327803A1 (en) Storage control device and storage control method
CN102184129B (zh) 磁盘阵列的容错方法和装置
US20060190683A1 (en) Disk array apparatus and backup method of data
CN104050056A (zh) 多存储介质设备的文件系统备份
JP2008033874A (ja) 独立ディスクのリダンダントアレイ毀損時のデータ救援方法及びそのシステム
US7620786B2 (en) Storage recovery using a delta log
JP4951493B2 (ja) ディスクアレイ装置
JP2001134487A (ja) ディスクアレイ装置
JP5040331B2 (ja) 記憶装置、記憶装置の制御方法、及び記憶装置の制御プログラム
JP4203034B2 (ja) アレイコントローラ、メディアエラー修復方法及びプログラム
WO2014111979A1 (ja) ディスクアレイ制御装置およびディスクアレイ装置
JP2004213470A (ja) ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US20130212428A1 (en) Information storage medium library array apparatus, information recording method and information recording program
JP2006079219A (ja) ディスクアレイ制御装置およびディスクアレイ制御方法
JP4143040B2 (ja) ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP4248164B2 (ja) ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置
US8671264B2 (en) Storage control device and storage system
JPH09218754A (ja) データ記憶システム
JP2007128183A (ja) ストレージシステム
CN107122261B (zh) 一种存储设备的数据读写方法及装置
JP5598124B2 (ja) データ記録再生装置、データ記録方法、及び、データ記録プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120312

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees