説明

ディスクアレイ装置のエラー制御方法

【課題】ディスクアレイ装置に接続されるハードディスクのエラー処理が影響して,データ読出し/書き込みの応答時間が遅延することを抑止することである。
【解決手段】冗長化された記録デバイスが接続される状態において,ディスクアレイ装置から記録デバイスに対するコマンド発行時にホストコンピュータ応答用の記録デバイス処理時間を監視する事により,所定の時間を経過した場合に記録デバイスからの応答が無くてもホストコンピュータへ正常応答する事により,短時間での応答時間を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,ハードディスクのエラーが発生した場合に最大応答時間を保証することが出来るディスクアレイ装置のエラー制御方式に関するものである。
【背景技術】
【0002】
図1は,ディスクアレイ装置概要図を示す。ディスクアレイ装置0002は,上位ホストコンピュータ0001とのデータ送受信及び,ハードディスクD001〜D004のデータ送受信/デバイス制御を行うコントローラ0003,エラー記録等を行う不揮発性メモリ部0004及び,リード/ライトデータの一時保存を行うキャッシュメモリ0005にて構成されたディスクアレイ装置である。
【0003】
一般的にディスクアレイ装置とは,複数のハードディスクをまとめて1台のハードディスクとして管理する技術であり,データを分散して記録するため,高速化や信頼性の向上がはかられる。高速性や信頼性のレベルにより,複数のRIADレベルがある。
【0004】
コントローラ0003は,内部にホストコンピュータ0001とのデータ送受信を行うホスト接続制御機構0006,ハードディスクD001〜D004のデータ送受信/デバイス制御を行うデバイス制御機構007,冗長データからデータを復元するデータ復元機構0008,ライトデータからパリティデータを生成するパリティデータ生成機構0009,コマンドの実行結果を判定するコマンド監視機構0010によって構成される。
【0005】
不揮発性メモリ0004は,エラーが発生した場合のエラー情報の記録を行うエラー記録部0012と実行中のコマンドを記録するコマンド記録機構0011から構成される。
【0006】
キャッシュメモリ0005は,ホストコンピュータ0001からのライトデータを一時的に記録するライトデータ記録機構0014及び,接続されるハードディスクD001〜D004からのリードデータを一時的に記録するリードデータ記録機構0013から構成される。
【0007】
冗長化されたハードディスクD001〜D004を接続するディスクアレイ装置0002において,ハードディスクD001にエラーが発生した場合に,ハードディスク内のエラー処理及び,ディスクアレイ装置0002のデバイス制御機構0007のエラーリトライ機能により,ハードディスクからのデータ読出し/書き込みが完了する応答時間の遅延(ハードディスクのリトライ処理によって数秒から数十秒)が発生する事がある。通常のディスクアレイ装置0002では,データ読出し/書き込みに対するハードディスクD001〜D004からのコマンド完了応答がエラー応答であった場合に,エラー応答したハードディスクの修復及び閉塞処理を行うため,エラー発生時の応答時間を制御する事が出来ておらず,上位ホストコンピュータ0001のスローダウンに至ることがあった。
【0008】
図2は,冗長化されたデータを持ち,ストライプされたRAIDレベル5構成での従来リード処理のフロー図を示す。
【0009】
ホストコンピュータのリード応答時間1000は,上位ホストコンピュータ0001からのホスト リード命令1001が発行された時点から,ディスクアレイ装置からのホスト データ送信1006が完了するまでの時間を示す。
【0010】
ハードディスクのリード処理は,ホストコンピュータ0001からのホスト リード命令1001をディスクアレイ装置0002が受け取ったあと,ディスクアレイ装置0002内のコントローラ0003処理において,該当の論理アドレスに相当するハードディスクD001〜D004のいずれかに対してデバイス制御機構0009よりデバイスリード1002を実行する。例えばデバイスリード対象がD001の場合,デバイスリードを受け取ったハードディスクD001は,該当の物理アドレスに対するデータ記録領域の位置決め処理1007を実行後データ リード1008を実行する。データ リード1008により読み出されたデータは,データ送信(a)1004によってディスクアレイ装置0002に渡される。データ リード1008を受け取ったディスクアレイ装置0002は,キャッシュメモリ0005内のリードデータ記録機構0013に一時的に保存した後にホストデータ送信1008によってホストコンピュータ0001へデータを送信し処理を完了する。
【0011】
複数のハードディスクにストライプされたRAID構成のディスクアレイ方式において,ホストコンピュータ0001からのホストリード1001がハードディスクD001〜D0014の複数にまたがる場合は,ディスクアレイ装置0002からのデバイスリード1002と並列デバイスリード1003によって並列に処理を行うことが可能である。
【0012】
図3は,冗長化されたデータを持ち,ストライプされたRAIDレベル5構成での1例である従来ライト処理のフロー図である。
【0013】
ホストコンピュータのライト応答時間2000は,上位ホストコンピュータ0001からのホスト ライト命令2001が発行された時点から,ディスクアレイ装置からのホスト ライト完了2011をホストコンピュータ0001が受信するまでの時間を示す。
【0014】
冗長化されたデータを持ち,ストライプされたハードディスクへのライト処理は,ホストコンピュータ0001からのホスト ライト命令2001をディスクアレイ装置0002が受け取った後,ディスクアレイ装置0002よりライトされるハードディスクD001とパリティデータを記録するハードディスクD004へデバイス リード2002とパリティリード2003が実行される。
【0015】
デバイスリード2002によって読み出されたデータは,ディスクアレイ装置0002のキャッシュメモリ0005のライトデータ記録機構0014に一時的に保存され,パリティデータ生成機構0006により,ホストコンピュータ0001より送信されたライトデータと入れ替えられる。
【0016】
このライトデータに対する新しいパリティデータを生成するため,パリティリード2003によって読み出されたパリティデータを元に,ディスクアレイ装置0002のコントローラ0003内パリティデータ生成機構0006によって,新パリティ生成2006が実行される。
【0017】
ディスクアレイ装置0002は,ライトデータ記録機構0014のライトデータと新パリティ生成2006で生成されたパリティデータをデバイスライト2007,パリティライト2008にてそれぞれのハードディスクD001,D004へデータの書き込みを行う。
【0018】
ハードディスクD001とD004は,データの書き込みが完了後に,ディスクアレイ装置0002へデバイスライト完了2009とパリティライト完了2010を送信する。
【0019】
このデバイスライト完了2009とパリティライト完了2010をディスクアレイ装置0002で受け取った後にホストコンピュータ0001に対して,ホスト ライト完了2011を送信し処理を完了する。
【0020】
図4は,従来のリードエラー発生時の処理フローを示す。ハードディスクのリード処理は,ホストコンピュータ0001からのホスト リード命令1001をディスクアレイ装置0002が受け取ったあと,ディスクアレイ装置0002内のコントローラ0003処理において,該当の論理アドレスに相当するハードディスクD001〜D004のいずれかに対してデバイス制御機構0009よりデバイスリード1002を実行する。
【0021】
このデバイスリード1002を受け取ったハードディスクD001でハードディスク内のリードエラーが発生した場合,ハードディスク内の再実行等のリードエラー処理3001が実行される。
【0022】
このリードエラー処理にてハードディスクD001からデータの読出しが失敗した場合にハードディスクD001は,ディスクアレイ装置0002へリードエラー報告3002を送信する。リードエラー報告3002を受け取ったディスクアレイ装置0002は,リードエラー報告3002以外のハードディスクD002〜D0004から冗長データリード3003を実行する。ハードディスクD002〜D004は,該当のデータを読出し後,冗長データ送信3004によってディスクアレイ装置002へデータを送信する。
【0023】
送信された冗長データは,ディスクアレイ装置0002のキャッシュ0003内リードデータ記録機構0013に一時的に保存され,コントローラ0003のデータ復元機構0008によってハードディスクD0001のデータに相当するデータ復元処理3005が実行される。
【0024】
復元されたデータは,ハードディスクD0001の書き込み位置変更ライト3006にて物理的な書き込み位置を変更した場所へ書き込み処理が実行される。
【0025】
この書き込み処理が完了した場合にハードディスクD001はディスクアレイ装置0002に対してデバイスライト完了2009を送信する。デバイスライト完了2009を受け取ったディスクアレイ装置0002は,キャッシュメモリ0005内のリードデータ記録機構0013に一時的に保存した後にホストデータ送信1006によってホストコンピュータ0001へデータを送信し処理を完了する。このリードエラー時応答時間3000は,上記ハードディスクのリードエラー処理3001によって大きく左右される。
【0026】
図5は,冗長化されたデータを持ち,ストライプされたRAIDレベル5構成での1例である従来のライトエラー発生時の処理フローを示す。
【0027】
ホストコンピュータ0001のホストライト命令2001をディスクアレイ装置が受け付けた後,ディスクアレイ装置0002は,ライトデータ記録機構0014のライトデータと新パリティ生成2006で生成されたパリティデータをデバイスライト2007,パリティライト2008でそれぞれのハードディスクD001,D004へデータの書き込みを行うまでは,通常のライト処理と同じである。
【0028】
ライトデータと新パリティデータをそれぞれのハードディスクD001,D004へデータ書き込みを行った時に,ハードディスクD001にてハードディスク内でエラーが発生した場合,ハードディスクD001内で,ライトエラー処理4001が実行される。パリティデータを記録するハードディスクD004のライト処理が正常に完了し,パリティライト完了2010報告をディスクアレイ装置が受け取った場合であっても,エラー処理4001を実行中のハードディスクD001からエラー処理の完了報告をディスクアレイ装置0002が受け取るまで,ライト処理は完了しない。
【0029】
ハードディスクD001からライトエラー報告4002が報告された場合,ディスクアレイ装置0002は,ハードディスクD0001の書き込み位置変更ライト3006にて物理的な書き込み位置を変更した場所へ書き込み処理が再実行される。
【0030】
この書き込み位置変更ライト3006の処理が完了したときにハードディスクD001からのデバイスライト完了2009をディスクアレイ装置0002で受け取った後にホストコンピュータ0001に対して,ホスト ライト完了2011を送信し処理を完了する。リードエラー時の応答時間同様に,このライトエラー時の応答時間4000は,上記ハードディスクのリードエラー処理4001によって大きく左右される。
【先行技術文献】
【特許文献】
【0031】
【特許文献1】特開平10−247133号公報
【発明の概要】
【発明が解決しようとする課題】
【0032】
解決しようとする問題点は,ディスクアレイ装置に接続されるハードディスクのエラー回復処理が影響して,データ読出し/書き込みの応答時間が遅延することである。
【0033】
接続されるハードディスクに対して,エラー報告処理を変更し最大応答時間を低減する技術はあるが,ハードディスク内のプログラムを変更することで実現しており,ハードディスクの製造元を限定する必要があり汎用性に欠ける。
【0034】
また,データリード時に常に全てのハードディスクからデータリードを行うため,ストライプデータ以外の場所に対して並列リードを実行することができず,ディスクアレイ装置のリード性能を損なうことが考えられる。
【0035】
ディスクアレイ装置のライトキャッシュを利用したライトバック方式でホストコンピュータへの応答時間を短くする方式は存在するが,予期しない故障や停電が発生した場合に,キャッシュデータを消失する恐れがあり信頼性に欠ける。
【課題を解決するための手段】
【0036】
本発明は,冗長化された記録デバイスが接続される状態において,ディスクアレイ装置から記録デバイスに対するコマンド発行時にホストコンピュータ応答用の記録デバイス処理時間を監視する事により,所定の時間を経過した場合に記録デバイスからの応答が無くてもホストコンピュータへ正常応答する事により,短時間での応答時間を実現する。
【発明の効果】
【0037】
本発明のディスクアレイ装置のエラー制御方式では,冗長化された構成においてハードディスクのエラー処理により発生するホストコンピュータへの応答時間を一定時間内に完了することができる。
【0038】
ディスクアレイ装置内で応答時間監視を行うことにより,接続されるハードディスクのエラー制御に関係なく,データ読出し/書き込みの応答時間を保障することができるため,どのハードディスクが接続されても同等の処理が可能という利点がある。
【0039】
冗長化されるデータを先読みする必要が無いため,エラー未発生時の通常処理は,接続されているハードディスクからのデータ読出しを並列に処理する事ができるため,ディスクアレイ装置の基本性能を落とすことが無い。
【0040】
ライトデータを直接ハードディスクへ書込む,ライトスルー方式でハードディスクに書き込みを行うため,予期しないディスクアレイコントローラの故障や停電が発生した場合でも,ライトバック方式と比較してハードディスク内のデータ破損が発生する危険性が少ない。
【図面の簡単な説明】
【0041】
【図1】本発明の実施形態であるディスクアレイ装置の概要を表した図である。
【図2】通常リード処理と経過時間を表したタイムチャート図である。
【図3】通常ライト処理と経過時間を表したタイムチャート図である。
【図4】従来のリードエラー処理と応答時間を表したタイムチャート図である。
【図5】従来のライトエラー処理と応答時間を表したタイムチャート図である。
【図6】本発明のリードエラー処理と応答時間を表したタイムチャート図である。
【図7】本発明のライトエラー処理と応答時間を表したタイムチャート図である。
【発明を実施するための形態】
【0042】
図1は,本発明を実施するためのディスクアレイ装置概要図を示す。ディスクアレイ装置0002は,上位ホストコンピュータ0001とのデータ送受信及び,ハードディスクD001〜D004のデータ送受信/デバイス制御を行うコントローラ0003,エラー記録等を行う不揮発性メモリ部0004及び,リード/ライトデータの一時保存を行うキャッシュメモリ0005にて構成されたディスクアレイ装置である。
【0043】
一般的にディスクアレイ装置とは,複数のハードディスクをまとめて1台のハードディスクとして管理する技術であり,データを分散して記録するため,高速化や信頼性の向上がはかられる。高速性や信頼性のレベルにより,複数のRIADレベルがある。
【0044】
コントローラ0003は,内部にホストコンピュータ0001とのデータ送受信を行うホスト接続制御機構0006,ハードディスクD001〜D004のデータ送受信/デバイス制御を行うデバイス制御機構007,冗長データからデータを復元するデータ復元機構0008,ライトデータからパリティデータを生成するパリティデータ生成機構0009,コマンドの実行結果を判定するコマンド監視機構0010によって構成される。
【0045】
不揮発性メモリ0004は,エラーが発生した場合のエラー情報の記録を行うエラー記録部0012と実行中のコマンドを記録するコマンド記録機構0011から構成される。
【0046】
キャッシュメモリ0005は,ホストコンピュータ0001からのライトデータを一時的に記録するライトデータ記録機構0014及び,接続されるハードディスクD001〜D004からのリードデータを一時的に記録するリードデータ記録機構0013から構成される。
【0047】
図6は,リードエラー時応答時間に左右されない本発明のリードエラー時処理フローを示す。本方式では,ハードディスクD001のデータリード時に発生するリードエラー処理3001の完了報告をディスクアレイ装置0002が受け取る前に冗長データリード3003を実行することにより,ハードディスクD001のリードエラー処理3001に左右されることが無く、リード応答時間が保障される。
【0048】
ディスクアレイ装置0002は,ホストコンピュータ0001よりホストリード命令1001を受けたあと,該当のハードディスクD001に対してデバイスリード1002を実行すると同時に,リードコマンド監視5001をコントローラ0003内のコマンド監視機構0010にて実行する。
【0049】
ハードディスクD001内でリードエラー処理3001が実行され,リード処理時間監視処理5002の規定時間内にハードディスクD001よりデータ送信がされない場合,ディスクアレイ装置0002は,ハードディスクD002〜D004に対して,冗長データリード3003を実行する。ハードディスクD002〜D004は,該当のデータを読出し後,冗長データ送信3004によってディスクアレイ装置002へデータを送信する。
【0050】
送信された冗長データは,ディスクアレイ装置0002のキャッシュ0003内リードデータ記録機構0013に一時的に保存され,コントローラ0003のデータ復元機構0008によってハードディスクD0001のデータに相当するデータ復元処理3005が実行される。
【0051】
復元されたデータは,復元データ登録5003により,キャッシュメモリ0003内のリードデータ記録機構0013に一時的に保存される。
【0052】
この復元データが生成された時点で,未完了リードコマンド登録5004を登録後,ホストコンピュータ0001に対して,ホストデータ送信1008を実行し,ホストリード処理を完了させる。
【0053】
このリード処理時間監視処理5002によって,ハードディスクD001〜D004のリードエラー処理時間3001に左右されない新リード応答時間5000を保障する事ができる。
【0054】
リードエラー処理3001を実行しているハードディスクD001は,リードエラー処理3001が完了後にディスクアレイ装置0002に対してリードエラー報告3002を送信する。リードエラー報告3002を受け取ったディスクアレイ装置0002は,未完了リードコマンド登録のコマンド5004とエラー報告3002コマンドの一致を確認後,一時的に保存された復元データの読出し5005を実行し,ハードディスクD0001の書き込み位置変更ライト3006にて物理的な書き込み位置を変更した場所へ書き込み処理が実行される。
【0055】
この書き込み処理が完了した場合にハードディスクD001はディスクアレイ装置0002に対してデバイスライト完了2009を送信する。
【0056】
リードエラー処理中のハードディスクD001に対しては,従来のリードエラー報告に対するリカバリー処理が実行されるため,ハードディスクの信頼性を従来同等に確保する事が可能である。
【0057】
図7は,ライトエラー時応答時間に左右されない本発明のライトエラー時処理フローを示す。本方式では,ハードディスクD001のデータライト時に発生するライトエラー処理4001の完了報告をディスクアレイ装置0002が受け取る前にホストライト完了2011をホストコンピュータ0001へ送信する事により,ハードディスクD001のライトエラー処理4001に左右されることが無く、ライト応答時間が保障される。
【0058】
ホストコンピュータ0001からのホストライト命令2001を受け取ったディスクアレイ装置0002は,コントローラ0003内コマンド監視機構0010にライトコマンドを登録し,従来のライト処理同様にライト対象のハードディスクD001とパリティデータを保持するハードディスクD004に対して,デバイスリード2002及びパリティリード2003を実行する。
【0059】
それぞれのハードディスクD001,D004からデータ送信を受け取ったディスクアレイ装置0002は,コントローラ0003内パリティ生成機構0009によって新パリティ生成2006を実施した後にハードディスクD001にデバイスライト2007,ハードディスクD004にパリティライト2008を実行し,ライトコマンドと同時にライトコマンド監視6001を行う。
【0060】
登録されたライトコマンドは,ライト処理時間監視処理6002にて処理時間の監視が行われる。ライトデータと新パリティデータをそれぞれのハードディスクD001,D004へデータ書き込みを行った時に,ハードディスクD001にてハードディスク内でエラーが発生した場合,ハードディスクD001内で,ライトエラー処理4001が実行される。
【0061】
このライトエラー処理4001のライトエラー報告が,ライト処理時間監視処理6002で規定した時間を超過した場合,コントローラ0003は,未完了ライトコマンド登録6003によって未完了のライトコマンドを不揮発メモリ0004内のコマンド記録機構0011に登録する。この時のホストコンピュータからのライトデータは,キャッシュメモリ0005内ライトデータ記録機構0014に保存された状態である。
【0062】
実行コマンド登録処理6003を完了した時に,ディスクアレイ装置0002はホストコンピュータ0001へホスト ライト完了報告2011を送信する。
【0063】
このライト処理時間監視処理によって,ディスクアレイ装置0002は,ハードディスクで発生するライトエラー処理4001の処理時間に左右されることが無く、ライト応答時間が保障される。
【0064】
ライトエラー処理4001を実行しているハードディスクD001は,ライトエラー処理4001が完了後にディスクアレイ装置0002に対してライトエラー報告4002を送信する。ライトエラー報告4002を受け取ったディスクアレイ装置0002は,未完了ライトコマンド登録のコマンド6003との一致を確認後,キャッシュメモリ0014に保存されたデータから,ハードディスクD0001の書き込み位置変更ライト3006にて物理的な書き込み位置を変更した場所へ書き込み処理が実行される。
【0065】
また,予期しないディスクアレイ装置0002の停止によって,キャッシュメモリ0014に保存されたデータが消失した場合でも,不揮発性メモリ0004に登録された未完了のコマンド対象のハードディスクD001をデバイス制御機構0007にて閉塞する事により,未完了ライトによるデータ化けを防止する事が可能である。
【符号の説明】
【0066】
0001:ホストコンピュータ
0002:ディスクアレイ装置
0003:コントローラ
0004:不揮発性メモリ
0005:キャッシュメモリ
0006:ホスト接続制御機構
0007:デバイス制御機構
0008:データ復元機構
0009:パリティデータ生成機構
0010:コマンド監視機構
0011:コマンド記録機構
0012:エラー記録部
0013:リードデータ記録機構
0014:ライトデータ記録機構
D001〜D004:ハードディスク。

【特許請求の範囲】
【請求項1】
ホストコンピュータに接続され、複数のハードディスクを有するディスクアレイ装置におけるエラー制御方法は、
冗長化されたデータが前記複数のハードディスクに記録されている状態において,前記複数のハードディスクに対するコマンド発行時に前記ホストコンピュータ応答用の記録デバイス処理時間を監視し、
所定の時間を経過した場合に、前記複数のハードディスクからの応答が無くても前記ホストコンピュータへ正常応答することを特徴とするディスクアレイ装置のエラー制御方法。
【請求項2】
前記複数のハードディスクに対するコマンドがリードコマンドであって,データ読出し対象の前記ハードディスクからのコマンド応答時間が記録デバイス処理時間監視の時間を経過した場合に,冗長データから前記データ読出し対象のデータを生成し、前記ホストコンピュータに応答することを特徴とする請求項1記載のディスクアレイ装置のエラー制御方法。
【請求項3】
前記データ読出し時の記録デバイス処理時間を経過した後に対象の前記ハードディスクからのエラー応答があった場合,前記冗長データから生成した正しいデータを使用してのデータ再書き込みまたは,前記ハードディスクの閉塞を前記ホストコンピュータからのアクセス処理と非同期で実施することを特徴とする請求項2記載のディスクアレイ装置のエラー制御方法。
【請求項4】
前記複数のハードディスクに対するコマンドがライトコマンドであって,データ書込み対象の前記ハードディスクからのコマンド応答時間が記録デバイス処理時間監視の時間を経過した場合に,前記ライトコマンドを前記ディスクアレイ装置上の不揮発性メモリ上に保存したあとに,前記ホストコンピュータに応答することを特徴とする請求項1記載のディスクアレイ装置のエラー制御方法。
【請求項5】
前記データ書込み時の記録デバイス処理時間を経過した後に対象の前記ハードディスクからのエラー応答があった場合,前記ディスクアレイ装置上のキャッシュメモリ上のデータから再書き込みまたは,前記ハードディスクの閉塞を前記ホストコンピュータからのアクセス処理と非同期で実施することを特徴とする請求項4記載のディスクアレイ装置のエラー制御方法。
【請求項6】
前記データ書込み時の記録デバイス処理時間を経過した後に対象の前記ハードディスクからのエラー応答の前に,予期しない電源断等の前記ホストコンピュータの故障が発生し,前記ディスクアレイ装置のキャッシュメモリ上の書込み用データが消失した場合でも,前記不揮発性メモリ上に保存された前記ライトコマンドより,対象の前記ハードディスクを特定し,閉塞処理を行うことを特徴とする請求項4記載のディスクアレイ装置のエラー制御方法。
【請求項7】
ホストコンピュータに接続され、複数のハードディスクを有するディスクアレイ装置は、
冗長化されたデータが前記複数のハードディスクに記録されている状態において,前記複数のハードディスクに対するコマンド発行時に前記ホストコンピュータ応答用の記録デバイス処理時間を監視する手段と、
所定の時間を経過した場合に、前記複数のハードディスクからの応答が無くても前記ホストコンピュータへ正常応答する手段とを有することを特徴とするディスクアレイ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−103853(P2012−103853A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−250957(P2010−250957)
【出願日】平成22年11月9日(2010.11.9)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】