説明

ループ障害検出装置及び方法

【課題】 複数の電子装置が直列に接続されて成るループに発生した障害を確実に検出する。
【解決手段】 上流側障害検出手段は、ディスク41〜4nから送信されたフレームが下流51で受信されるまでに生じたフレームのエラーを検出し、フレームのエラーを生じたディスクを含む上流50側を、障害Xの影響を受ける上流50側の範囲Aであると判断する。下流側障害検出手段は、上流50から送信されたフレームがディスク41〜4nで受信されるまでに生じたフレームのエラーを検出し、フレームのエラーを生じたディスクを含む下流51側を、障害Xの影響を受ける下流51側の範囲Bであると判断する。障害特定手段は、上流側障害検出手段で判断された上流50側の範囲Aと下流側障害検出手段で判断された下流51側の範囲Bとの境界部分に、障害Xがあると判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上流から下流へ複数の電子装置が直列に接続されて成るループに設けられ、当該ループに発生した障害を検出する、ループ障害検出装置等に関する。以下、「磁気ディスク装置」を単に「ディスク」と、「ファイバチャネル」を略して「FC」と、それぞれ呼ぶことにする。
【背景技術】
【0002】
昨今の高速化及び接続の柔軟性の要求に応えるため、ディスク等の内部及び外部インタフェースでは、FCインタフェースが多数採用されている。また、大容量化の要求に応えるため、一つのFCインタフェース上に多数のディスクをループ状に接続する状況となっている。
【0003】
このようなFCループの障害は、初期の段階では頻度の極めて低い間欠障害であるため、リトライで救済されてしまう。そのため、障害が表面化しないことによって放置された結果、重大な障害を引き起こすケースがあった。また、故障ディスクが自らの故障を検出せずに、他の複数の正常ディスクが散発的に異常を報告する、という現象を伴う。そのため、障害箇所を特定することが、極めて困難であった。
【0004】
特許文献1では、検査の過程でマージンを振りながらディスク自身をループから切断/接続することにより、障害の発生の有無を調べて被疑ディスクを特定する方法が述べられている。しかし、この方法では運用中の障害には対応することが困難である。
【0005】
また、特許文献2では、FCループ内の特定の電子装置でCRC(cyclic redundancy check)エラーを検出し、隣接する上流側の電子装置でCRCエラーを検出しない場合、それらの間が障害被疑部分であると結論付けている。しかし、障害の発生頻度が低い例えば図4のような発生状況であった場合は、ディスク47,48間に障害があると誤判断されてしまう。
【0006】
なお、CRCとは、データ伝送の途中で発生するビット誤りを検出する方式の一つである。検査対象のデータ伝送ブロックを二進データと見なし、この二進データを生成多項式という計算式で処理して、一定のビット数の検査用データを作る。生成した検査用データを実際のデータに付けて送る。受信側では実際のデータと送られてきた検査用データを、送信側と同じ生成多項式で処理して誤りの有無を検出する。
【0007】
【特許文献1】特開2003−167796号公報
【特許文献2】特開2002−368768号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
複数のディスクがFCを介してループ接続されたシステムにおいては、一つのディスクのインタフェース障害をきっかけとし、全てのディスクが使用不可能になるようなループ閉塞障害が発生することがある。また、このような重障害に至らないまでも、その予兆として軽度のループ障害が発生するケースは多数認められる。どちらの状況においても、FC障害を引き起こしている故障ディスクを特定できなかったり、被疑範囲を絞り込めなかったりする状況となる。そのため、予防保守交換作業や復旧作業が長期化かつ大規模化し、結果として保守及び運用に重大な支障を与えるという問題があった。
【0009】
そこで、本発明の目的は、複数の電子装置が直列に接続されて成るループに発生した障害を確実に検出できる、ループ障害検出装置等を提供することにある。
【課題を解決するための手段】
【0010】
本発明に係るループ障害検出装置は、上流から下流へ複数の電子装置が直列に接続されて成るループに設けられ、当該ループに発生した障害を検出するものである。そして、本発明に係るループ障害検出装置は、上流側障害検出手段、下流側障害検出手段及び障害特定手段を備えている。上流側障害検出手段は、各電子装置から送信されたデータが下流で受信されるまでに生じたデータのエラーを検出し、データのエラーを生じた電子装置を含む上流側を、障害の影響を受ける上流側の範囲であると判断する。下流側障害検出手段は、上流から送信されたデータが各電子装置で受信されるまでに生じたデータのエラーを検出し、データのエラーを生じた電子装置を含む下流側を、障害の影響を受ける下流側の範囲であると判断する。障害特定手段は、上流側障害検出手段で判断された上流側の範囲と下流側障害検出手段で判断された下流側の範囲との境界部分に、障害があると判断する。
【0011】
複数の電子装置がループに散在しており、そのループのどこかに障害があるとする。このとき、障害箇所よりも下流側にある各電子装置から更に下流へ送信されたデータは、障害箇所を通らないのでエラーにならずに受信される。一方、障害箇所よりも上流側にある各電子装置から送信されたデータは、障害箇所を通過することによりエラーを生じて受信される。そのため、データのエラーを生じた電子装置を含む上流側に障害があると判断できる。また、上流から送信されたデータは、障害箇所よりも上流側にある各電子装置で受信されると、障害箇所を通らないのでエラーにならずに受信される。一方、障害箇所よりも下流側にある各電子装置で受信されると、障害箇所を通過することによりエラーを生じて受信される。そのため、データのエラーを生じた電子装置を含む下流側を、障害の影響を受ける下流側の範囲であると判断できる。したがって、障害の影響を受ける下流側の範囲と障害の影響を受ける上流側の範囲との境界部分に、障害があると判断できる。この障害が発生頻度の低い間欠障害であっても、二つの範囲を重ね合わせることにより、より確実に障害を検出することができる。
【0012】
また、電子装置は記憶装置であり、データはフレームである、としてもよい。このとき、上流側障害検出手段は、上流から読み出しコマンドを各記憶装置へ送信し、各記憶装置によって読み出されたフレームを下流で受信し、それらのフレームのエラーを検出し、フレームのエラーを生じた記憶装置を含む上流側を、障害の影響を受ける上流側の範囲であると判断する。下流側障害検出手段は、上流から書き込みコマンド及びフレームを各記憶装置へ送信し、各記憶装置によって検出されたフレームのエラーを下流で受信し、フレームのエラーを生じた記憶装置を含む下流側を、障害の影響を受ける下流側の範囲であると判断する。
【0013】
この場合、上流側障害検出手段はコマンド発行部、フレーム送信部、フレーム受信部及びフレーム誤り検出部から成り、下流側障害検出手段はコマンド発行部、フレーム送信部、フレーム受信部及びコマンド応答解析部から成り、障害特定手段はフレーム誤り検出部及びコマンド応答解析部の少なくとも一方に内蔵されるとしてもよい。コマンド発行部、フレーム送信部及びフレーム受信部は、上流側障害検出手段及び下流側障害検出手段に共用される。コマンド発行部は、読み出しコマンド及び書き込みコマンド並びにフレームを発行する。フレーム送信部は、コマンド発行部から発行された読み出しコマンド及び書き込みコマンド並びにフレームを、各記憶装置へ送信する。フレーム受信部は、各記憶装置によって読み出されたフレーム及び各記憶装置によって検出されたフレームのエラーを受信する。フレーム誤り検出部は、各記憶装置によって読み出されフレーム受信部で受信されたフレームについてエラーを検出し、フレームのエラーを生じた記憶装置を含む上流側を、障害の影響を受ける上流側の範囲であると判断する。コマンド応答解析部は、各記憶装置によって検出されフレーム受信部で受信されたフレームのエラーについて、書き込みコマンドに対する各記憶装置の応答の中から抽出し、フレームのエラーを生じた記憶装置を含む下流側を、障害の影響を受ける下流側の範囲であると判断する。
【0014】
また、フレーム誤り検出部は、フレームに付加された誤り検出符号(誤り訂正符号を含む。)に基づき、フレームのエラーを検出してもよい。この誤り検出符号は、例えばCRC符号である。更に、ループはFCループであり、記憶装置は磁気ディスク装置である、としてもよい。
【0015】
本発明に係るループ障害検出方法は、本発明に係るループ障害検出装置の各手段の動作を手順として捉えたものである。また、本発明に係るループ障害検出方法は、本発明に係るループ障害検出装置の最上位概念に相当するもののみを請求項に記載したが、本発明に係るループ障害検出装置の各下位概念に相当するものも請求項に記載してもよい。更に、本発明は、本発明に係るループ障害検出装置の各手段をコンピュータに機能させるためのループ障害検出プログラムとして捉えることできる。
【0016】
換言すると、本発明は、次の1〜3の機能を備えたものとしてもよい。1.送られてきたフレームのCRCエラーを検出し、故障範囲を特定する機能。2.送られてきたデバイスからのエラー報告を解析し、故障範囲を特定する機能。3.更に上記1,2の結果を用いて故障範囲を更に絞り込む機能。これにより、本発明では、FCループ障害を引き起こしている故障ディスクの特定方法において、故障ディスク特定の分解能を飛躍的に高めることができる。
【発明の効果】
【0017】
本発明によれば、各電子装置から送信されたデータが下流で受信されるまでに生じたデータのエラーを検出し、そのデータのエラーを生じた電子装置を含む上流側を、障害の影響を受ける上流側の範囲であると判断し、上流から送信されたデータが各電子装置で受信されるまでに生じたデータのエラーを検出し、そのデータのエラーを生じた電子装置を含む下流側を、障害の影響を受ける下流側の範囲であると判断し、障害の影響を受ける上流側の範囲と障害の影響を受ける下流側の範囲との境界部分に障害があると判断することにより、二つの範囲を重ね合わせるので、発生頻度の低い間欠障害であっても確実に障害を検出することができる。
【発明を実施するための最良の形態】
【0018】
図1は、本発明に係るループ障害検出装置の一実施形態を示すブロック図である。図2は、本実施形態における上流側障害検出手段の動作の一例を示すブロック図である。図3は、本実施形態における下流側障害検出手段の動作の一例を示すブロック図である。図4は、本実施形態における障害特定手段の動作の一例を示す図表である。以下、これらの図面に基づき説明する。
【0019】
本実施形態のループ障害検出装置11は、ディスク制御装置20内に実現されている。ディスク制御装置20は、ホストコンピュータ10とディスク41〜4n(nは2以上の整数)との間で、データを転送する機能を有する。ディスク制御装置20のループ障害検出装置11以外の動作は、周知であるので説明を省略する。
【0020】
ループ障害検出装置11は、上流50から下流51へディスク41〜4nが直列に接続されて成るFCループ30に設けられ、FCループ30に発生した障害を検出するものである。そして、ループ障害検出装置11は、後で詳述する上流側障害検出手段、下流側障害検出手段及び障害特定手段を備えている。上流側障害検出手段は、ディスク41〜4nから送信されたフレームが下流51で受信されるまでに生じたフレームのエラーを検出し、フレームのエラーを生じたディスクを含む上流50側を、障害Xの影響を受ける上流50側の範囲Aであると判断する。下流側障害検出手段は、上流50から送信されたフレームがディスク41〜4nで受信されるまでに生じたフレームのエラーを検出し、フレームのエラーを生じたディスクを含む下流51側を、障害Xの影響を受ける下流51側の範囲Bであると判断する。障害特定手段は、上流側障害検出手段で判断された上流50側の範囲Aと下流側障害検出手段で判断された下流51側の範囲Bとの境界部分に、障害Xがあると判断する。
【0021】
ディスク41〜4nがFCループ30に散在しており、FCループ30のどこかに障害Xがあるとする。このとき、障害箇所よりも下流51側にあるディスクから更に下流51へ送信されたフレームは、障害箇所を通らないのでエラーにならずに受信される。一方、障害箇所よりも上流50側にあるディスクから送信されたフレームは、障害箇所を通過することによりエラーを生じて受信される。そのため、フレームのエラーを生じたディスクを含む上流50側に、障害Xがあると判断できる。ただし、発生頻度の低い間欠障害の場合は、障害箇所よりも上流50側にあるディスクから送信されたフレームの全てがエラーになるわけではない。
【0022】
また、上流50から送信されたフレームは、障害箇所よりも上流50側にあるディスクで受信されると、障害箇所を通らないのでエラーにならずに受信される。一方、障害箇所よりも下流51側にあるディスクで受信されると、障害箇所を通過することによりエラーを生じて受信される。そのため、フレームのエラーを生じたディスクを含む下流51側に、障害Xがあると判断できる。ただし、発生頻度の低い間欠障害の場合は、障害箇所よりも下流51側にあるディスクで受信されたフレームの全てがエラーになるわけではない。
【0023】
したがって、障害Xの影響を受ける下流側の範囲Bと障害Xの影響を受ける上流側の範囲Aとの境界部分に、障害Xがあると判断できる。障害Xが発生頻度の低い間欠障害であっても、二つの範囲A,Bを重ね合わせることにより、より確実に障害Xを検出することができる。
【0024】
詳しく述べれば、上流側障害検出手段は、上流50から読み出しコマンドをディスク41〜4nへ送信し、ディスク41〜4nによって読み出されたフレームを下流51で受信し、それらのフレームのエラーを検出し、フレームのエラーを生じたディスクを含む上流50側を、障害Xの影響を受ける上流50側の範囲Aであると判断する。下流側障害検出手段は、上流50から書き込みコマンド及びフレームをディスク41〜4nへ送信し、ディスク41〜4nによって検出されたフレームのエラーを下流51で受信し、フレームのエラーを生じたディスクを含む下流51側を、障害Xの影響を受ける下流51側の範囲Bであると判断する。
【0025】
この場合、上流側障害検出手段はコマンド発行部23、フレーム送信部21、フレーム受信部22及びCRCチェック部25から成り、下流側障害検出手段はコマンド発行部23、フレーム送信部21、フレーム受信部22及びコマンド応答解析部24から成り、障害特定手段はコマンド応答解析部24に内蔵されている。コマンド発行部23、フレーム送信部21及びフレーム受信部22は、上流側障害検出手段及び下流側障害検出手段に共用される。コマンド発行部23は、読み出しコマンド及び書き込みコマンド並びにフレームを発行する。フレーム送信部21は、コマンド発行部23から発行された読み出しコマンド及び書き込みコマンド並びにフレームを、ディスク41〜4nへ送信する。フレーム受信部22は、ディスク41〜4nによって読み出されたフレーム及びディスク41〜4nによって検出されたフレームのエラーを受信する。CRCチェック部25は、ディスク41〜4nによって読み出されフレーム受信部22で受信されたフレームについてエラーを検出し、フレームのエラーを生じたディスクを含む上流50側を、障害Xの影響を受ける上流側の範囲Aであると判断する。コマンド応答解析部24は、ディスク41〜4nによって検出されフレーム受信部22で受信されたフレームのエラーについて、書き込みコマンドに対するディスク41〜4nの応答の中から抽出し、フレームのエラーを生じたディスクを含む下流51側を、障害Xの影響を受ける下流51側の範囲Bであると判断する。
【0026】
次に、図1乃至図4に基づき、本実施形態のループ障害検出装置11について更に詳しく説明する。
【0027】
ホストコンピュータ10に接続されたディスク制御装置20には複数のディスク41〜4nが接続されており、これらが一つのFCループ30を形成している。また、ディスク41〜4nは、エラーフレームを受信したことを報告する機能を有する。ディスク制御装置20内においてFCループ30の上流50側には、読み出し/書き込みのコマンドを発行するコマンド発行部23と、そのコマンドやデータをFCループ30にぶら下がっているディスク41〜4n宛に送信するフレーム送信部21とが設けられている。ディスク制御装置20内においてFCループ30の下流51側には、ディスク41〜4nから送信されたコマンド応答やデータを受信するフレーム受信部22と、その受信フレームのCRCをチェックするCRCチェック部25と、受信フレームからディスク41〜4nのコマンド応答を抽出してコマンドに対するエラーの有無を解析するコマンド応答解析部24とが設けられている。
【0028】
図2及び図3は、ループ障害検出装置11の動作の一例を示し、具体化してn=8としている。以下、図2及び図3に基づき、ループ障害検出装置11の動作を説明する。
【0029】
図2は、コマンド発行部23から読み出しコマンドが発行された場合における、障害検出の動作を示す説明図である。コマンド発行部23から発行された読み出しコマンドは、フレーム送信部21を通して上流50側からディスク41〜48へ送信される。ディスク41〜48は、その読み出しコマンドで指定された読み出しデータを下流51側へ送出する。フレーム受信部22は、ディスク41〜48から送られてきたデータフレームを受信する。CRCチェック部25は、そのデータフレーム全てに対してCRCチェックを行い、「どのディスク41〜4nから送られたデータフレームが壊れているか」をチェックする。
【0030】
図3は、コマンド発行部23から書き込みコマンドが発行された場合における、障害検出の動作を示す説明図である。コマンド発行部23から発行された書き込みコマンドに伴い、フレーム送信部21を通して上流50側からディスク40〜48へデータフレームが送信される。ディスク41〜48は、そのデータフレームの書き込み処理を実施し、その書き込みコマンドの完了報告を下流51側へデータフレームとして送出する。フレーム受信部22は、ディスク41〜48から送られてきたデータフレームを受信する。コマンド応答解析部24は、そのコマンド完了報告を解析し、「フレーム送信部21から送られてきたデータフレームがディスク41〜48に到着した時点で既に壊れていた、という応答がどのディスク41〜48からあったのか」をチェックする。
【0031】
図2及び図3に示すようにディスク44の出力側にフレームを乱すような障害Xがある場合を例にとると、CRCチェック部25のチェックでは、障害箇所よりも上流50側のディスク41〜44からのデータフレームのCRCチェックではエラーが検出され、障害箇所よりも下流51側のディスク45〜48からのデータフレームのCRCチェックではエラーが検出されない。
【0032】
逆に、コマンド応答部24のチェックでは、障害箇所よりも上流50側のディスク41〜44からのコマンド応答ではエラーが検出されず、障害箇所よりも下流51側のディスク45〜48からのコマンド応答ではエラーが検出される。
【0033】
上記説明で障害の検出状況を示したのが図4である。発生頻度が低い間欠障害の場合、図示したように二つの検出方法での変化点を見つけることにより、早期に被疑特定の分解能を高めることができる。
【0034】
以上のように、FCループ30のフレームの転送方向、すなわち上流50/下流51という考え方に基づき、フレームの最下流にそのフレームのCRCをチェックするCRCチェック部25とディスク41〜48のコマンド応答をチェックするコマンド応答解析部24とを有する。これらの二つのチェック機構により上流50側と下流51側との両面から被疑を絞り込み障害ディスクを特定する。
【0035】
本発明は、言うまでもなく、上記実施形態に限定されない。例えば、ディスクに限らず、エラーフレーム受信したことを報告する機能さえ有していればどのような電子装置にも適用可能である。また、上記各手段をコンピュータプログラムで実現することも可能である。更に、特定された故障ディスクをFCループから自動的に切り離すことにより、障害回復状態まで完全に自動化させることも可能である。
【図面の簡単な説明】
【0036】
【図1】本発明に係るループ障害検出装置の一実施形態を示すブロック図である。
【図2】本実施形態における上流側障害検出手段の動作の一例を示すブロック図である。
【図3】本実施形態における下流側障害検出手段の動作の一例を示すブロック図である。
【図4】本実施形態における障害特定手段の動作の一例を示す図表である。
【符号の説明】
【0037】
10 ホストコンピュータ
11 ループ障害検出装置
20 ディスク制御装置
21 フレーム送信部
22 フレーム受信部
23 コマンド発行部
24 コマンド応答解析部
25 CRCチェック部
30 FCループ
41〜4n ディスク
50 FCループの上流
51 FCループの下流

【特許請求の範囲】
【請求項1】
上流から下流へ複数の電子装置が直列に接続されて成るループに設けられ、当該ループに発生した障害を検出する、ループ障害検出装置において、
前記各電子装置から送信されたデータが前記下流で受信されるまでに生じた当該データのエラーを検出し、当該データのエラーを生じた当該電子装置を含む前記上流側を、障害の影響を受ける上流側の範囲であると判断する上流側障害検出手段と、
前記上流から送信されたデータが前記各電子装置で受信されるまでに生じた当該データのエラーを検出し、当該データのエラーを生じた当該電子装置を含む前記下流側を、障害の影響を受ける下流側の範囲であると判断する下流側障害検出手段と、
前記上流側障害検出手段で判断された前記上流側の範囲と前記下流側障害検出手段で判断された前記下流側の範囲との境界部分に、前記障害があると判断する障害特定手段と、
を備えたことを特徴とするループ障害検出装置。
【請求項2】
前記電子装置は記憶装置であり、前記データはフレームであり、
前記上流側障害検出手段は、前記上流から読み出しコマンドを前記各記憶装置へ送信し、前記各記憶装置によって読み出されたフレームを前記下流で受信し、それらのフレームのエラーを検出し、当該フレームのエラーを生じた当該記憶装置を含む前記上流側を、障害の影響を受ける上流側の範囲であると判断し、
前記下流側障害検出手段は、前記上流から書き込みコマンド及びフレームを前記各記憶装置へ送信し、前記各記憶装置によって検出された当該フレームのエラーを前記下流で受信し、当該フレームのエラーを生じた当該記憶装置を含む前記下流側を、障害の影響を受ける下流側の範囲であると判断する、
請求項1記載のループ障害検出装置。
【請求項3】
前記上流側障害検出手段はコマンド発行部、フレーム送信部、フレーム受信部及びフレーム誤り検出部から成り、前記下流側障害検出手段は前記コマンド発行部、前記フレーム送信部、前記フレーム受信部及びコマンド応答解析部から成り、前記障害特定手段は前記フレーム誤り検出部及び前記コマンド応答解析部の少なくとも一方に内蔵され、
前記コマンド発行部は、前記読み出しコマンド及び前記書き込みコマンド並びに前記フレームを発行し、
前記フレーム送信部は、前記コマンド発行部から発行された前記読み出しコマンド及び前記書き込みコマンド並びに前記フレームを、前記各記憶装置へ送信し、
前記フレーム受信部は、前記各記憶装置によって読み出されたフレーム及び前記各記憶装置によって検出された当該フレームのエラーを受信し、
前記フレーム誤り検出部は、前記各記憶装置によって読み出され前記フレーム受信部で受信されたフレームについてエラーを検出し、当該フレームのエラーを生じた当該記憶装置を含む前記上流側を、障害の影響を受ける上流側の範囲であると判断し、
前記コマンド応答解析部は、前記各記憶装置によって検出され前記フレーム受信部で受信されたフレームのエラーについて、前記書き込みコマンドに対する前記各記憶装置の応答の中から抽出し、当該フレームのエラーを生じた当該記憶装置を含む前記下流側を、障害の影響を受ける下流側の範囲であると判断する、
請求項2記載のループ障害検出装置。
【請求項4】
前記フレーム誤り検出部は、前記フレームに付加された誤り検出符号に基づき、前記フレームのエラーを検出する、
請求項3記載のループ障害検出装置。
【請求項5】
前記誤り検出符号がCRC符号である、
請求項4記載のループ障害検出装置。
【請求項6】
前記ループがファイバチャネルループであり、前記記憶装置が磁気ディスク装置である、
請求項1乃至5のいずれかに記載のループ障害検出装置。
【請求項7】
上流から下流へ複数の電子装置が直列に接続されて成るループに用いられ、当該ループに発生した障害を検出する、ループ障害検出方法において、
前記各電子装置から送信されたデータが前記下流で受信されるまでに生じた当該データのエラーを検出し、当該データのエラーを生じた当該電子装置を含む前記上流側を、障害の影響を受ける上流側の範囲であると判断し、
前記上流から送信されたデータが前記各電子装置で受信されるまでに生じた当該データのエラーを検出し、当該データのエラーを生じた当該電子装置を含む前記下流側を、障害の影響を受ける下流側の範囲であると判断し、
前記上流側の範囲と前記下流側の範囲との境界部分に前記障害があると判断する、
ことを特徴とするループ障害検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2006−185344(P2006−185344A)
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願番号】特願2004−380599(P2004−380599)
【出願日】平成16年12月28日(2004.12.28)
【出願人】(390001395)エヌイーシーシステムテクノロジー株式会社 (438)
【Fターム(参考)】