(57)【要約】【課題】大規模な修正を伴わずにディスクドライブをディスクアレイ内に組み込むためのエラー及びイベントのハンドリング方法を提供する。【解決手段】本発明は、複数の記憶デバイスを収容するストレージシェルフにおいて発生するエラー及びイベントをハンドリングする方法を提供する。記憶デバイスは、ストレージシェルフ・ルータ（SR）カード上に実装されるSRに、パスコントローラ（PC）カードを介して相互接続されている。この方法は、エラー又はイベントを検出し診断するステップと、自動的に開始されたSRカードの交換によって修復されたエラー又はイベントに関して、故障SRカード上の１つ以上のSRによって管理されるPCカードを、残存SRカード上の１つ以上の別のSRへフェイルオーバするステップと、ストレージシェルフの外部エンティティによるハンドリングのためエラー又はイベントを報告し記録するステップと、を含む。【選択図】  図２
2007501986.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶デバイスを収容するストレージシェルフにおいて発生するエラー及びイベントをハンドリングする方法であって、該記憶デバイスは、ストレージシェルフ・ルータ・カード上に実装されるストレージシェルフ・ルータに、パス・コントローラ・カードを介して相互接続されており、
エラー又はイベントを検出するステップと、
前記エラー又はイベントを診断するステップと、
自動的に開始されたストレージシェルフ・ルータ・カードの交換によって修復されたエラー又はイベントに関して、交換されるべき前記ストレージシェルフ・ルータ・カード上の１つ以上のストレージシェルフ・ルータによって主として管理されるパス・コントローラ・カードを、残存するストレージシェルフ・ルータ・カード上の１つ以上の別のストレージシェルフ・ルータへフェイルオーバするステップと、
大容量記憶デバイスまたはパス・コントローラ・カード内のエラー又はイベント、並びに、外部管理用に構成されるその他のエラー及びイベントに関して、前記ストレージシェルフの外部にあるエンティティによるハンドリングのため前記エラー又はイベントを報告し記録するステップと、
を含む方法。
【請求項２】
前記検出されたエラーが、外部ＦＣリンク故障（ＥＦＣＬＦ）であり、リンクダウン・イベント及び巡回冗長検査エラーの発生を含むイベントによって検出され、ストレージ・ルータ・カード上の内部ＦＣミニハブの分離の後に続くループバック・テストによって診断され、ストレージ・ルータ・カードの自動的な又は命令されたフェイルオーバによって修復される、請求項１記載の方法。
【請求項３】
前記検出されたエラーが、内部リンク故障（ＩＬＦ）であり、リンクダウン・イベント及び巡回冗長検査エラーの発生を含むイベントによって検出され、ストレージ・ルータ・カード上の内部ＦＣミニハブの分離の後に続くループバック・テストによって診断され、ストレージ・ルータ・カードの自動的な又は命令されたフェイルオーバによって修復される、請求項１記載の方法。
【請求項４】
前記検出されたエラーが、カード間ポート故障（ＩＣＰＦ）であり、ハートビートの損失によって検出され、ストレージ・ルータ・カード間の代替的なパス・コントローラ・カードのメールボックスに基づく通信とパッドテストとによって診断され、ストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項５】
前記検出されたエラーが、カード間リンク故障（ＩＣＬＦ）であり、ハートビートの損失によって検出され、ストレージ・ルータ・カード間の代替的なパス・コントローラ・カードのメールボックスに基づく通信とパッドテストとによって診断され、ストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項６】
前記検出されたエラーが、ＳＡＴＡポート故障（ＳＰＦ）であり、リンクダウン・イベント及び巡回冗長検査エラーの発生を含むイベントによって検出され、パッドテスト及びループバック・テストによって診断され、イベント通知のストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項７】
前記検出されたエラーが、管理ポート故障（ＭＰＦ）であり、パス・コントローラ・マイクロプロセッサのレジスタの周期的アクセスによって検出され、内部ストレージ・ルータのループバックによって診断され、外部処理エンティティへの前記エラーの報告によって修復される、請求項１記載の方法。
【請求項８】
前記検出されたエラーが、制御されない致命的故障（ＵＣＦ）であり、ハートビートの損失によって検出され、ストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項９】
前記検出されたエラーが、制御された致命的故障（ＣＣＦ）であり、ハートビートの損失によって検出され、ストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項１０】
前記検出されたエラーが、ピア・フィールド交換式ユニットの取り外し（ＰＦＲ）であり、ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号のデアサートによって検出され、リンクテストによって診断され、ストレージ・ルータ・カードのフェイルオーバによって修復される、請求項１記載の方法。
【請求項１１】
前記検出されたエラーが、フィールド交換式ユニットの挿入フェイルバック（ＦＢＥ）であり、ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号のアサートによって検出され、ストレージ・ルータ・カード間のランデブー・プロトコルによって診断され、パス・コントローラ・カードの新たに挿入されたストレージ・ルータ・カードへのフェイルバックによって修復される、請求項１記載の方法。
【請求項１２】
前記検出されたエラーが、ＳＡＴＡ管理リンク故障（ＭＬＦ）であり、パス・コントローラ・マイクロプロセッサのレジスタの周期的アクセスによって検出され、内部ストレージ・ルータ・ループバックによって診断され、外部処理エンティティへの前記エラーの報告によって修復される、請求項１記載の方法。
【請求項１３】
前記検出されたエラーが、ＳＡＴＡドライブ故障（ＳＤＦ）であり、ディスクへ命令されたコマンドの失敗によって検出され、外部処理エンティティへの前記ＳＤＦイベントの報告によって修復される、請求項１記載の方法。
【請求項１４】
前記検出されたエラーが、ドライブのフィールド交換式ユニットの取り外し（ＦＲＥ）であり、ＦＲＵ＿ＰＲＥＳＥＮＴ信号のデアサートによって検出され、ループ初期化と外部処理エンティティへの前記ＦＲＥの報告とによって修復される、請求項１記載の方法。
【請求項１５】
前記検出されたエラーが、ドライブのフィールド交換式ユニットの挿入（ＦＩＥ）であり、ＦＲＵ＿ＰＲＥＳＥＮＴ信号のアサートによって検出、診断、および修復され、ディスク初期化及びループ初期化と外部処理ユニットへの前記ＦＩＥの報告とによって修復される、請求項１記載の方法。
【請求項１６】
単一のパス・コントローラ・カードをフェイルオーバすることによって修復されたエラー又はイベントに関して、第１のストレージ・ルータ・カード上の第１のストレージ・ルータから第２のストレージ・ルータ・カード上の第２のストレージ・ルータへ前記パス・コントローラ・カードをフェイルオーバするステップをさらに含む、請求項１記載の方法。
【請求項１７】
ストレージシェルフ内のストレージ・ルータ・カードを交換する方法であって、
第１のストレージ・ルータ・カードの故障と、
第２のストレージ・ルータ・カードによって前記第１のストレージ・ルータ・カードの前記故障を検出するステップと、
前記第２のストレージ・ルータ・カードによってローカルパス・フェイルオーバを実行するステップと、
前記第１のストレージ・ルータ・カードを交換するステップと、
前記第２のストレージ・ルータ・カードによって前記第１のストレージ・ルータ・カードの前記交換を検出するステップと、
前記交換された第１のストレージ・ルータ・カードを起動し初期化するステップと、
前記交換された第１のストレージ・ルータ・カードが適切に初期化されるときに、前記交換された第１のストレージ・ルータ・カードへのローカルパス・フェイルバックを実行するステップと、
前記交換された第１のストレージ・ルータ・カードが適切に起動しないときに、前記交換された第１のストレージ・ルータ・カードへのローカルパス・フェイルオーバを実行し、前記第２のストレージ・ルータ・カードを交換するステップと、
を含む方法。
【請求項１８】
第１のストレージ・ルータ・カードの故障と、
第２のストレージ・ルータ・カードによって前記第１のストレージ・ルータ・カードの前記故障を検出するステップと、
前記第２のストレージ・ルータ・カードによってローカルパス・フェイルオーバを実行するステップと、
前記第２のストレージ・ルータ・カードによるローカルパス・フェイルオーバの実行後、かつ、前記第１のストレージ・ルータ・カードの交換前に、前記第１のストレージ・ルータ・カード上で前記第２のストレージ・ルータ・カードによってハードリセットをアサートするステップと、
前記第２のストレージ・ルータ・カードによる前記第１のストレージ・ルータ・カードの前記交換の検出後、かつ、前記交換された第１のストレージ・ルータ・カードの起動及び初期化の前に、前記第２のストレージ・ルータ・カードによって前記ハードリセットをデアサートするステップと、
をさらに含む請求項１７記載の方法。
【請求項１９】
ストレージシステム内のストレージシェルフであって、
少なくとも２つのストレージ・ルータ・カードに含まれる少なくとも２つのストレージ・ルータと、
前記２つのストレージ・ルータ・カードの間の高帯域幅相互接続と、
前記２つのストレージ・ルータに相互接続されたパス・コントローラ・カードにそれぞれが相互接続された複数の記憶デバイスと、
複数の故障領域と、を有し、
前記故障領域のそれぞれは、ストレージ・ルータ・カードと、パス・コントローラ・カード及び関連した記憶デバイスと、前記ストレージ・ルータ・カードの故障領域、前記パス・コントローラ・カード及び関連した記憶デバイスの故障領域、並びに、ストレージ・ルータ・カード間の相互接続及びストレージ・ルータ・カードとパスコントローラとの間の相互接続の外部にあるコンポーネントと、のうちの一つを含む、
ストレージシェルフ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数の個別の大容量記憶デバイスにより構成されたディスクアレイ及びその他の大容量記憶デバイスに関し、特に、ストレージシェルフ・ルータ内、並びに、ストレージシェルフ・ルータと相互接続された高帯域幅通信媒体、パス・コントローラ・カード、及び大容量記憶デバイス内で発生するエラーのためのストレージシェルフ・ルータによるエラー及びイベントの検出、診断、並びにハンドリングに関する。
【背景技術】
【０００２】
（相互参照）
本願は、２００３年１月２３日に出願された米国出願第１０／３４１８３５号の一部継続出願である２００３年６月２３日に出願された米国出願第１０／６０２５２９号の一部継続出願である２００４年４月８日に出願された米国出願第１０／８２２２２８号の一部継続出願である。
【０００３】
（背景技術）
本願は、米国出願第１０／３４１８３５号の一部継続出願であり、参照によって全体がここに組み込まれた米国出願第１０／６０２５２９号、“Integrated-Circuit Implementation Of a Storage-Shelf Router And a Path Controller Card For Combined Use In High-Availability Mass-Storage-Device Shelves That May Be Incorporated Within Disk-Arrays”の一部継続出願である２００４年４月８日に出願された米国出願第１０／８２２２２８号の一部継続出願である。米国出願第１０／３４１８３５号の一部継続出願である米国出願第１０／６０２５２９号（以下「親出願」という）は、本発明の開示された実施形態が実施されるストレージシェルフ・ルータ、パス・コントローラ・カード、及び、高可用性ストレージシェルフに関係する広範囲に亘る背景情報を含む。親出願は、さらに、ファイバ・チャネル（Fibre Channel：ＦＣ）、スモール・コンピュータ・システム・インターフェイス（small computer system interface：ＳＣＳＩ）、アドバンスト・テクノロジ・アタッチメント（Advanced Technology Attachment：ＡＴＡ）ディスクドライブ、及び、シリアルＡＴＡ（Serial ATA：ＳＡＴＡ）ディスクドライブに関係する広範囲に亘る背景情報を含む。
【０００４】
図１は典型的な高可用性ストレージシェルフを示す。より詳細な説明図及び解説は親出願で入手できる。図１では、多数のＳＡＴＡディスクドライブ１０２−１１７がストレージシェルフ内に設置される。各ＳＡＴＡディスクドライブは、ｘファブリックＦＣリンク１２０及びｙファブリックＦＣリンク１２２の一方又は両方を介してアクセスされる。ディスクアレイ・コントローラによってｘファブリックＦＣリンク１２０及びｙファブリックＦＣリンク１２２を介してＳＡＴＡディスクドライブへ向けられたデータ及び制御情報は、２つのストレージシェルフ・ルータ・カード（storage-shelf-router card：ＳＲカード）１２４及び１２６によって受信され、個別のＳＡＴＡディスクドライブ１０２−１１７へ送られる。ＳＲカード１２４及び１２６は、ＳＡＴＡディスクドライブ１０２−１１７からデータ及びコマンド応答を受信し、そのデータ及びコマンド応答をｘ及びｙのＦＣリンク１２０及び１２２を介して、ディスクアレイ・コントローラへ送信する。典型的なストレージシェルフ１００において、各ＳＲカード１２４及び１２６は、２つの集積回路型のストレージシェルフ・ルータ（storage-shelf router：ＳＲ）を含み、ＳＲカード１２４はＳＲ１２８及び１３０を含み、ＳＲカード１２６はＳＲ１３２及び１３４を含む。各ＳＡＴＡディスクドライブは、単一のシリアル通信リンクを介して、パス・コントローラ・カードに相互接続される。例えば、ＳＡＴＡディスクドライブ１１４は、単一のシリアル通信リンク１３６を介して、パス・コントローラ・カード（path-controller card：ＰＣカード）１３８に相互接続される。ＰＣカードは、それぞれ、次に、以降の図面を参照して説明される２本のシリアルＳＡＴＡリンク及び２本の管理リンク（management link）を介して、２つのＳＲと相互接続される。ＳＲ１２８、１３０、１３２及び１３４は、それぞれ、１本以上のＩ２Ｃバスと相互接続され、ＳＲは、そのＩ２Ｃバスを介して非同期イベント通知（asynchronous event notification：ＡＥＮ）を、ＳＣＳＩエンクロージャサービス（SCSI Enclosure Service：ＳＥＳ）プロセッサを経由してストレージシェルフの外部にあるエンティティへ送信可能である。
【０００５】
図１に示された高可用性ストレージシェルフ１００は、親出願に開示された発明の実施形態を共に表すＳＲ及びＰＣカードの実施形態を利用する。親出願に詳細に記載されているように、この典型的な高可用性記憶デバイスは、非常に多数のあまり高価ではないＳＡＴＡディスクドライブが、ＦＣディスクドライブを収容するように設計されたディスクアレイ内に組み込まれることを可能にする。典型的な実施形態は親出願に開示された発明の多数の実現可能な実施形態のうちの一つにすぎない。ストレージシェルフは、例えば、単一のＳＲ、それぞれが単一のＳＲカード上に存在する多数のＳＲ、単一のＳＲカードに含まれた多数のＳＲ、及び、多数のＳＲカードのそれぞれに含まれた多数のＳＲを含んでもよい。本発明の実施形態はこれらのストレージシェルフの実施形態のいずれにも適用可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＦＣベースのディスクアレイ内でＳＡＴＡディスクドライブを使用する際に生じる重要な問題はＦＣディスクドライブがデュアルポートであり、一方、ＳＡＴＡディスクドライブがシングルポートであることである。シングルポート又はシングルパスの故障にかかわらず、各ディスクドライブに依然としてアクセス可能であるために、ＦＣベースのディスクアレイのため設計されたディスクアレイ・コントローラは、ディスクドライブが冗長なポートを有することを要求する。ディスクアレイ及びディスクアレイコンポーネントの設計者及び製造業者は、ＦＣベースのディスクアレイ・コントローラの実装、ＳＡＴＡディスクドライブ、及び、ＳＡＴＡディスクドライブコントローラの大規模な修正を伴うことなく、あまり高価ではないＳＡＴＡディスクドライブがＦＣベースのディスクアレイ内に組み込まれることを可能にするための、相互接続スキームと、エラー及びイベントの検出、診断、並びに、ハンドリング方法の必要性を認識している。
【課題を解決するための手段】
【０００７】
本発明の一実施形態は、高可用性ストレージシェルフ内で発生するエラー状態を改善するために、動的な再編成による影響を受けやすい高可用性ストレージシェルフ内でストレージシェルフ・ルータとディスクドライブを相互接続する方法である。本実施形態において、ストレージシェルフ内の各パス・コントローラ・カードは、２本の管理リンク及び２本のデータリンクを介して、別個のストレージシェルフ・ルータ・カード上の２つのストレージシェルフ・ルータに相互接続される。ストレージシェルフ内で発生する異なるタイプのエラー及びイベントは、多数の異なるエラーハンドリング技術及びイベントハンドリング技術に関して分類される。あるクラスのエラー及びイベントに対し、一次データリンク及び管理リンクを介してストレージシェルフ・ルータに相互接続されるディスクドライブは、ディスクドライブが二次管理リンク及びデータリンクを介して相互接続される第２のストレージシェルフ・ルータへフェイルオーバ（failover）される。このように、通常は２つのストレージシェルフ・ルータが、それぞれディスクドライブの半分に対して主たる責任を有するのに対して、２つのストレージシェルフ・ルータのうちの一方が、ディスクドライブのすべてに対して管理と通信の責任を担う。別のクラスのエラー及びイベントは、一方のストレージシェルフ・ルータとの一次相互接続から別のストレージシェルフ・ルータとの一次相互接続への単一ディスクドライブのフェイルオーバを伴うシングル・パス・フェイルオーバ（single path failover）を生じる。さらなるクラスのエラー及びイベントは、ディスクアレイ・コントローラ及びストレージシェルフ監視用外部プロセッサを含む外部エンティティによるハンドリング（handling：取り扱い、処理）のための、外部エンティティへのエラー報告、並びに、オプション的にフラッシュメモリへのエラー記録を含む他の方法によって処理される。多数の実装において、ストレージシェルフ内のエラー関連及びイベント関連の挙動を、ストレージシェルフを含むシステムの需要及び要件に適合させるために、特有のエラーハンドリング（error handling）方法及びイベントハンドリング方法が、設定可能なように（configurably）、特有のエラー及びイベントに関連付けられる。本発明のさらなる実施形態は、ストレージシェルフ内で発生するエラー及びイベントのハンドリングの他に、エラー及びイベントの検出と診断に関係する。
【発明を実施するための最良の形態】
【０００８】
本発明の一実施形態は、ＳＡＴＡディスクドライブをストレージシェルフ・ルータ（Storage-shelf Router：ＳＲ）と相互接続し、ストレージシェルフ・ルータ内で発生する種々のエラー状態及びイベントが、ＳＲとパス・コントローラ・カード間の相互接続の再構成によってハンドリングされることを可能にする方法である。この本発明の実施形態は、ストレージシェルフ内で発生する種々のタイプのエラー及びイベントを、異なる方法によってそれぞれがハンドリングされるエラー及びイベントクラスに分類する方法を含む。これにより、例えば、ディスクアレイ内のＦＣディスクドライブを制御するため設計されたディスクアレイ・コントローラが、大きな修正や再実装なしにストレージシェルフ内のＳＡＴＡディスクドライブを制御できる。エラー及びイベントが認識された状態でのストレージシェルフの挙動は、ＦＣベースのディスクアレイのディスクアレイ・コントローラによって予期されるエラー及びイベントによって導き出された挙動の範囲内に収まる。本発明は、図１に示された典型的なストレージシェルフに関して説明されるが、本発明は多種多様なストレージシェルフコンフィギュレーションに適用可能である。例えば、本発明は、単一ＳＲ型のカードを２つ収容するストレージシェルフ、及び、２又は４つのストレージシェルフ・ルータ型のSRカードを５つ以上収容するストレージシェルフに適用可能である。
【０００９】
図２は本発明の一実施形態を利用するストレージシェルフ内の相互接続アーキテクチャを説明する図である。図２は図１で利用されたのと同様の説明方法を利用し、後述の図３−５も同様である。簡潔さと明瞭さのため、ストレージシェルフの種々のコンポーネントの説明は繰り返されず、図１で使用されたのと同じ符号が図２−５において使用される。
【００１０】
図２において、単一のリンク、又は、パスは、各パスコントローラ（path controller：ＰＣ）とＰＣを管理する一次責任（primary responsibility）を担うＳＲとの間に示されている。例えば、ＳＡＴＡディスクドライブ１０２と相互接続されたＰＣ２０２はパス２０４を介してＳＲ１２８にリンクされる。図２においては、明瞭さの目的のためにパス２０４が単一リンクで表現されている。実際には、この単一リンクの説明方法は、２本の別個のシリアルリンク、すなわち、管理リンク及びＳＡＴＡデータリンクを表す。図２からわかるように、ＳＡＴＡディスクドライブ及び対応するＰＣの一次制御（primary control）はＳＲ１２８、１３０、１３２及び１３４の間で分割され、各ＳＲは４つのＳＡＴＡディスクドライブを一次制御する。好ましい一実施形態では、各ＳＲは、３２ドライブ型のストレージシェルフ内の８つのＳＡＴＡディスクドライブを一次制御する。図２及びそれ以降の図では、説明図の明瞭さのため、４つのＳＡＴＡディスクドライブが各ＳＲに接続されることが示されている。よって、図２に示されるように、ＳＲ１２８はＳＡＴＡディスクドライブ１０２−１０５を一次制御し、ＳＲ１３０はＳＡＴＡディスクドライブ１０６−１０９を一次制御し、ＳＲ１３４はＳＡＴＡディスクドライブ１１０−１１３を一次制御し、ＳＲ１３２はＳＡＴＡディスクドライブ１１４−１１７を一次制御する。
【００１１】
図３は、本発明の一実施形態による典型的なストレージシェルフのＳＲとＰＣカードとの間の二次（secondary）リンク、又は、パスを表す。図３は図２で使用されたのと同様の説明方法を使用する。注意すべきことは、図３に示されているようにＳＲ１２８が、図２に示されているようにＳＲ１３２の一次制御下にあるＳＡＴＡディスクドライブ１１４−１１７への二次パスを有することである。ＳＲ１３２は、同様に、図２に表されているようにＳＲ１２８の一次制御下にあるＳＡＴＡディスクドライブ１０２−１０５への二次リンクを有する。同様に、ＳＲ１３０はＳＲ１３４の一次制御下にあるＳＡＴＡディスクドライブへの二次パスを有し、ＳＲ１３４はＳＲ１３０の一次制御下にあるＳＡＴＡディスクドライブへの二次パスを有する。よって、各ＳＡＴＡディスクドライブは第１のＳＲカード上の１つのＳＲの一次制御下にあり、他のＳＲカード上のピアＳＲへの二次管理リンク及びデータパスリンクを有する。
【００１２】
図４はローカルパス・フェイルオーバ（local path fail over：ＬＰＦＯ）を説明する。図４は、図１及び図２と同じ方法を採用する。図４において、ＳＲカード１２６は、図２に示されるように、初めは一次制御をしていたＳＡＴＡディスクドライブ１１０−１１７の一次制御を放棄するか、又は、失っている。図４において、ＳＲカード１２４のＳＲは、ここでは、１６のＳＡＴＡディスクドライブすべての一次制御を担う。図４に示された状況は、ローカルパス・フェイルオーバ（ＬＰＦＯ）の結果を表現する。ＬＰＦＯはストレージシェルフ内で発生する多種多様なタイプのエラー及びイベントに応じて行われてもよい。例えば、ＳＲカード１２６上のＳＲが故障するか、又は、ＳＲカード１２６がストレージシェルフから手動で取り外された場合に、動作中のＳＲカード１２６の欠如がＳＲカード１２４上のＳＲによって検出され、これら２つのＳＲ１２８及び１３０が二次管理リンク及びデータリンクを介して接続されたＳＡＴＡディスクドライブの一次制御を担う。ＬＰＦＯは、ディスクアレイ・コントローラのような外部エンティティが２つのＳＲカードのうちの一方の故障又は取り外しにもかかわらず１６個すべてのディスクドライブにアクセスし続けることを可能にする。注意すべきことは、図２に表されるようなＳＲとＰＣ間の相互接続スキームは、ＳＲの間で管理タスクのバランスが保てるように、４つのＳＲの間でＳＡＴＡディスクドライブをほぼ均一に分配し若しくは分割し、そして、ＳＲカード故障の場合に、全ＳＡＴＡディスクドライブがファイバ・チャネルを介して外部エンティティからアクセス可能な状態に保たれることを保証することである。
【００１３】
ＰＣカードのアーキテクチャは親出願に詳細に記載されている。各ＰＣカードは、ＰＣカードを一次低速管理リンク及び一次高速ＳＡＴＡデータリンクと二次低速管理リンク及び二次高速ＳＡＴＡデータリンクとに相互接続するために必要な４つのシリアルポートを提供する。ＰＣカードは、一次データリンク又は二次データリンクの両方から同時ではなく、いずれかからのデータがＰＣカードによって受容されることを可能にするため、２：１のマルチプレクサを含む。ＰＣカードが一次及び二次データリンクの両方からＳＡＴＡディスクドライブへデータを同時に送れないことがローカルパス・フェイルオーバ（ＬＦＰＯ）戦略を動かす。２つのＳＲカードのうちの一方を危険にさらす、又は、休止させるエラー又はイベントが発生するとき、残りの動作中のＳＲカードは、二次ＳＡＴＡデータリンクを介するＳＡＴＡディスクドライブへのデータの受信及び送信にＰＣカードを切り換えるために、換言すれば、ＰＣカード及び対応するＳＡＴＡディスクドライブを前の一次ＳＡＴＡリンク及び一次管理リンクから二次ＳＡＴＡリンク及び管理リンクへフェイルオーバするために、二次管理リンクを利用する必要がある。逆のプロセスでは、回復した又は新たに挿入された、適切に機能するＳＲは、別のＳＲカードへフェイルオーバされたデータリンクが回復又は新たに挿入されたＳＲへフェイルバックされること、すなわち、「ローカルパス・フェイルバック（local path fail back：ＬＰＦＢ）」と適切に称されるプロセスを要求できる。
【００１４】
図５は単一パス・フェイルオーバ（single path fail over：ＳＰＦＯ）を説明する。図５は、ＳＲとＰＣカードとの間の相互接続の再構成を含む第２のエラーおよびイベントのハンドリング戦略を説明する。図５において、ＳＲ１３４上のポート５０２が故障している。この場合に、故障したポートに対応するＳＲ１３４とＰＣカード５０４との間の単一の一次リンクはＳＲ１３０にフェイルオーバされ、ＳＲ１３０が今度はＰＣカード５０４及び対応するＳＡＴＡディスクドライブ１１０を一次制御する。このプロセスは、単一パス・フェイルオーバ（ＳＰＦＯ）と称される。ストレージシェルフは、ディスクアレイ・コントローラがＳＰＦＯ及びＬＰＦＯを命令することを可能にするか、又は、その代わりに、エラー状態を自動的にハンドリングするためにＳＰＦＯ及びＬＰＦＯを引き受ける。
【００１５】
図６Ａ−Ｃは、仮想的な２つのＳＲカードを備えたストレージシェルフの実装に関する故障領域（failure domain）及び故障点（failure point）を説明する。図６Ａは、ファイバ・チャネル６０６通信媒体（カード内リンク）によって相互接続された２つのＳＲカード６０２及び６０４を表し、各カードはそれぞれ、ファイバ・チャネル媒体６０６のカード常駐部分であるカード内リンク６１２及び６１３によって相互接続された２つのＳＲ６０８−６０９及び６１０−６１１を有する。上記のように、そして、親出願において、ＳＲは、それぞれがＳＡＴＡディスクドライブへのデュアルポート型接続を提供するＰＣカードを制御する。図６Ａ及び後述の図６Ｂ−Ｃにおいて、単一のＳＡＴＡドライブ６１６にリンクされた単一のＰＣカード６１４は、一次ＳＡＴＡリンク６１８及び一次管理リンク６２０を介してＳＲ６０８に接続され、二次ＳＡＴＡリンク６２２及び二次管理リンク６２４を介してＳＲ６１０に接続されることが表されている。明瞭さのために、単一のＰＣカードだけが示されているが、好ましい一実施形態では、各ＳＲは一般に１６個のＰＣカードに接続される。
【００１６】
図６Ｂは、本発明の実施形態を表すエラー及びイベント検出、診断、並びに、ハンドリング方法によって処理される一次故障領域を説明する。第１の故障領域６３０は、ＰＣカード６１４、ＳＡＴＡディスクドライブ６１６、及び、種々の通信リンク接続及びポートを含むＳＡＴＡディスクドライブキャリアを含む。第２の故障領域は、そのうちの二つの領域６３４及び６３６が図６Ｂに示され、ＳＲカードのプリント回路板と、通信リンク及びポートを含む付属コンポーネントとを含む。この故障領域は、ＳＲと、カード内及びカード間の通信リンクと、システム・エンクロージャ・サービス（system enclosure service：ＳＥＳ）プロセッサと、ＳＲカードのその他のコンポーネントとを含む。最後の故障領域６３８は、通信媒体、電源、処理及びデータ記憶コンポーネント、並びに、その他のシステムコンポーネントだけでなく、ディスクアレイ・コントローラ、又は、最初の二つの故障領域に属するＳＲカード及びＳＡＴＡディスクドライブを含むストレージシェルフを制御するその他の装置を含む。最後の故障領域６３８は、ストレージシェルフの外部にあると考えられ、この故障領域で発生するエラー及びイベントは、本発明の実施形態では説明されない方法を使用して、ディスクアレイ・コントローラを含む外部処理エレメントによってハンドリングされる。
【００１７】
図６Ｂに表された故障領域レイアウト内には多数の曖昧な領域内故障エリアが存在する。例えば、一次及び二次のＳＡＴＡリンク、並びに管理リンク６１８、６２０、６２２及び６２４は、故障領域６３０と６３４と６３６との間にあり、ＦＣ媒体６４０のカード内部分は故障領域６３４と６３６との間にある。両方の領域内故障領域はＳＲカード及びＰＣカードが接続されるバックプレーン内に存在し、よって、典型的に受動的であり、故障確率の低い媒体である。バックプレーン及びリンクエラーは、明らかに検出され、診断される場合と、バックプレーンに関連したエラーは曖昧なエラー状態を生じる場合がある。
【００１８】
図６Ｃは、本発明の実施形態を表現するエラー及びイベント検出、診断、並びに、回復方法によってハンドリングされるある種の特定の故障点及びイベント領域を説明する。これらの故障点及びイベント領域は、（１）外部ＦＣリンク故障（external FC link failure：ＥＦＣＬＦ）、すなわち、外部ＦＣリンクと相互接続されたＦＣポート及びＦＣに相互接続されたその他のＳＲカードコンポーネントを含む、ＳＲまでの外部ＦＣリンク６５０における故障と、（２）内部リンク故障（internal link failure：ＩＬＦ）、すなわち、ＳＲカード上の内部ＦＣ通信媒体、及び、リンクによって相互接続されたＳＲのＦＣポートを含む、カード内通信リンク６５２における故障と、（３）カード間ポート故障（inter-card port failure：ＩＣＰＦ）、すなわち、カード間ＦＣ媒体６５６に相互接続されたＦＣポートの故障と、（４）カード間リンク故障（inter-port link failure：ＩＣＬＦ）、すなわち、２つのカードを相互接続するＦＣ媒体６５６内の故障と、（５）ＳＡＴＡポート故障（SATA port failure：ＳＰＦ）６５８と、（６）管理ポート故障（management port failure：ＭＰＦ）、すなわち、管理リンクポート６６０の故障と、（７）制御されない致命的故障（uncontrolled critical failure：ＵＣＦ）、すなわち、ＳＲ６６２のファームウェア又はハードウェアの予期できない故障と、（８）制御された致命的故障（controlled critical failure：ＣＣＦ）、すなわち、アサート、パニック、又は、その他のメカニズムを介してＳＲ６６２によって検出され、ＳＲの制御された故障を生じさせるエラー状態と、（９）ピア・フィールド交換式ユニット（field replaceable unit：ＦＲＵ」）の取り外し（peer FRU removal：ＰＦＲ）、すなわち、ストレージシェルフからのＳＲカード６６４の取り外しと、（１０）Ｉ２Ｃポート故障（I2C port failure：Ｉ２ＣＦ）、すなわち、Ｉ２Ｃポート若しくはＩ２Ｃリンクの故障又はＳＲカード６６４内の故障と、（１１）ＦＲＣ挿入フェイルバック（FRU insertion fail back：ＦＢＥ）、すなわち、ＳＲカード６６４のストレージシェルフへの挿入と、（１２）ＳＡＴＡリンク故障（SATA link failure：ＳＬＦ）、すなわち、一次又は二次ＳＡＴＡリンク６６６の故障と、（１３）ＳＡＴＡ管理リンク故障（SATA management link failure：ＭＬＦ）、すなわち、ディスクドライブキャリア領域内の一次又は二次ＳＡＴＡ管理リンク６６８の故障と、（１４）ＳＡＴＡドライブ故障（SATA drive failure：ＳＤＦ）、すなわち、ＳＡＴＡディスクドライブ６７０の故障と、（１５）ドライブＦＲＵ取り外し（drive-FRU removal：ＦＲＥ）、すなわち、ストレージシェルフからのディスクドライブ・キャニスタ６７２の取り外しと、（１６）ドライブＦＲＵ挿入（drive-FRU insertion：ＦＩＥ）、すなわち、ディスクドライブ・キャニスタ６７２のストレージシェルフへの挿入と、を含む。これらの異なるタイプの故障及びイベントの検出、診断、及び、それぞれからの回復が以下で詳述される。
【００１９】
最初に、ＰＣカードの内部コンポーネントに関するさらなる詳細を記載する。図７は、パス・コントローラ・カード及びＳＡＴＡドライブを含むディスクドライブキャリアの２つの異なるストレージシェルフ・ルータとの相互接続を説明する。図７に示されるように、各ＳＲ７０２及び７０４は、ＳＡＴＡリンク７０８−７０９、及び、管理リンク７１０−７１１を介して、ディスクドライブ・キャリア７０６と相互接続される。ＳＡＴＡディスクドライブを含むディスクドライブ・キャリアの一次責任を負うＳＲカードは、一次ＳＡＴＡリンク７０８及び一次管理リンク７１０を有すると考えられ、一方、バックアップＳＲは二次ＳＡＴＡリンク７０９及び二次管理リンク７１１を有すると考えられる。ディスクドライブ・キャリア７０６のＰＣカード７１６内の２：１マルチプレクサ（multiplexer：ＭＵＸ）７１４は、一次ＳＡＴＡリンク又は二次ＳＡＴＡリンクのいずれかからの通信を受け付けるようにＰＣマイクロコントローラ７１８によって制御される。パス・フェイルオーバは、管理リンクを介してＰＣコントローラに、２本のＳＡＴＡリンクの一方による通信の受け付けから、もう一方のＳＡＴＡリンクによる通信の受け付けへ切り換えるように命令し、よって、ＳＡＴＡリンクの一次／二次の指定を逆転し、より一般的には、二次リンクを一次リンクに切り換えるので、二次リンクを介して最初に相互接続されていたＳＲカードは、外部処理エンティティとＳＡＴＡディスクドライブとの間の通信を妨害することなく取り外される。さらに注意すべきことは、一次管理リンク、ＰＣマイクロコントローラ、及び、二次管理リンクを使用するＰＣメールボックス通信メカニズム７２０が存在し、２つのＳＲカードがそのＰＣメールボックスメカニズムを介して相互に通信することを可能にすることである。ＳＲカード間のこの冗長な相互接続は、ＦＣポート又はＦＣリンクが故障しているときにＳＲカードが通信できるようにする。その上、ＳＡＴＡパケットは、二次リンク及びオプション的に２：１マルチプレクサを介して、ＳＲにループバックされる。
【００２０】
図８は、ＰＣマイクロコントローラ８０８が、ディスクドライブキャリア上のＬＥＤのような種々の出力信号を制御し、それに加えて、ディスクドライブキャリア内の種々の環境状態を監視することを可能にする種々のオプショナルリンク８０２−８０６を含むＰＣカードに関するさらなる詳細を表す。
【００２１】
図９は、Ｉ２Ｃバスと内部ＦＣミニハブの両方を介してＳＲと相互接続されたＳＥＳプロセッサを含むあるタイプのＳＲカードの実施形態を表す。図９に表されるように、ＳＥＳプロセッサ９０２は、Ｉ２Ｃバス９０６を介してＳＲカード上のＳＲ９０４と相互通信する。ＳＥＳプロセッサは、イベントを記録し、ディスクアレイ・コントローラにエラー状態を通知するために、ＦＣミニハブ９０８を介してディスクアレイ・コントローラと直接通信する。図１０は、ＳＲカードの別の実施形態を示す。この別の実施形態では、ＳＥＳプロセッサ１００２は、Ｉ２Ｃバス１００６だけを介して、ＳＲ１００４及びＦＣと相互接続され、ディスクアレイ・コントローラは、Ｉ２Ｃバス上でカプセル化されたプロトコルを使用してＳＥＳプロセッサに対してＦＣトラフィックを伝達するため、プロキシメカニズムを使用してＳＲを介してＳＥＳプロセッサと通信する。
【００２２】
図１１は汎用ストレージシェルフ動作を説明する制御フロー図である。図１１に表された制御フローは、単一のＳＲ、又は、より一般的には、ストレージシェルフ・ルータ内の複数のＳＲカード上の多数のＳＲの協調動作に関係することが仮定される。異なる実施形態では、ＳＲ間の協調は、その代わりに、制御タスクとその他のプロセス及び運転中の動作の区分として実施される。図１１及び１２の汎用制御フロー図は、ストレージシェルフ動作の全体的なスキームにおいて、本発明の実施形態を表す特定のエラー及びイベント検出、診断、並びに、回復戦略が、全体的なストレージシェルフ動作と一体化する場合を示すことを目的とする。図１１において、通常のストレージシェルフ動作は、ステップ１１０２−１１０６からなる無限のｗｈｉｌｅループによって表現される。ステップ１１０３において、ストレージシェルフ内のエラー又はイベントは、割り込み又はその他の通知メカニズムによって非同期的に検出される。ステップ１１０３は、ストレージシェルフ動作を表すｗｈｉｌｅループ内のどこでも行われ得ることに注意すべきである。エラー又はイベントがステップ１１０３において非同期的に検出されたならば、エラー及びイベント・ハンドリング・ルーチン１１０８が呼び出される。そうでなければ、通常のストレージシェルフの動作がステップ１１０４で実行される。周期的に、通常のストレージシェルフ動作を表すｗｈｉｌｅループの各反復の間に、ＳＲは、エラー又はイベントが発生したかどうかを同期的に判定するために、ステップ１１０５においてよって示されたエラー及びイベント検出を同期的に引き受ける。ステップ１１０６において検出されるように、もしそうであるならば、エラー及びイベント・ハンドリング・ルーチンがステップ１１０８で呼び出される。ステップ１１０８におけるエラー及びイベントハンドリングに続いて、ストレージシェルフ又はＳＲが、ステップ１１０９で検出されるときに、未だ動作中であるならば、無限のｗｈｉｌｅループが継続する。そうでなければ、ＳＲ動作は終わる。
【００２３】
図１２は図１１のステップ１１０８で呼び出されるエラー及びイベント・ハンドリング・ルーチンの制御フロー図である。ステップ１２０２において、多数のエラー及び／又はイベントが検出されたならば、多数のエラー及び／又はイベントは優先順位付けされ、その結果、最も重要なエラーが最初にハンドリングされる。次に、ステップ１２０４−１２１０のｆｏｒループにおいて、優先順位付きエラーリストから検出されたエラー及び／又はイベントのそれぞれがハンドリングされる。最初に、ステップ１２０５において、検出されたエラー及び／又はイベントが診断される。次に、ステップ１２０６において、エラー状態又はイベントが実際に発生したかどうかを判定するために、ステップ１２０５で行われたエラー及び／又はイベント再評価が考慮される。もしそうであるならば、ステップ１２０７において、エラー及び／又はイベント・ハンドリング・ルーチンが、検出され診断されたエラー又はイベントから回復するか、又は、それらをハンドリングするために呼び出される。エラー及び／又はイベントハンドリングに続いて、ステップ１２０８で検出されるように、さらなるエラー及び／又はイベントが優先順位付きエラーリスト上に残っているならば、ｆｏｒループはステップ１２０５で次の反復を続ける。そうでなければ、ｆｏｒループは終了する。診断に続いて、検出されたエラー状態及び／又はイベントは発生していないと判定されるならば、ステップ１２０９において、エラー及び／又はイベント・ハンドリング・ルーチンは、関連するエラー及び／又はイベントが発生したかどうかを判定する。もしそうであるならば、関連するエラー及び／又はイベントは、それらが未だリストに存在せず、ｆｏｒループがステップ１２０５において継続するならば、ステップ１２１０において、エラー及び／又はイベントの優先順位付きリストに挿入される。
【００２４】
図６Ｃに示された故障状態のタイプ毎に、検出ルーチン、診断ルーチン、及び、ハンドリングルーチンが一般に設けられる。検出ルーチンは、エラー又はイベントが図１１のステップ１１０３において非同期的に、或いは、図１１のステップ１１０５において同期的に検出されるときに用いられる方法を示す。図１２のステップ１２０５で呼び出される診断ルーチンは、ＳＲが検出されたエラー又はイベントを確認し、検出されたエラー又はイベントが実際に異なるエラーを示すかどうかを判定し、或いは、エラー状態又はイベントが、実際には、発生しなかったかどうかを判定することを可能にする。最後に、ハンドリングルーチンは、検出され診断されたエラー又はイベントをハンドリングするために図１２のステップ１２０７で呼び出される。
【００２５】
図１３はＥＦＣＬＦ検出を説明する制御フロー図である。ＥＦＣＬＦエラーは、ＳＲ内のＦＣハードウェアによって生成されたリンクダウン（link-down）イベントとして、ステップ１３０２で検出される。あるいは、ＥＦＣＬＦエラーは、ステップ１３０４において、ＳＲがしきい値を上回る個数の巡回冗長検査（cyclic redundant check：ＣＲＣ）エラーが先行する時間間隔内に発生したと判定するときに検出される。ステップ１３０６によって表されるように、ＳＲが、ＥＦＣＬＦエラーが検出されたとみなす他のタイプの状態又はイベントが存在してもよい。リンクダウンエラー、ＣＲＣのしきい値エラー、又は、その他のこのような状態がＳＲによって検出されるならば、ＥＦＣＬＦエラーはステップ１３０８で検出されると考えられる。そうでなければ、ステップ１３１０によって示されるようにＥＦＣＬＦエラー無しが検出される。ＥＦＣＬＦエラーは、一般に、外部ＦＣリンクへ直接的に接続されたＳＲによって検出される。
【００２６】
図１４はＥＦＣＬＦ診断を説明する制御フロー図である。ステップ１４０２は、ＳＲカードが、内部ＦＣを介してＳＲに接続されたＳＥＳプロセッサを含むかどうかを判定する。もしそうであるならば、ＳＲは、ステップ１４０４において、ポートバイパス回路の作動によって、内部ミニハブを外部環境から分離するようＳＥＳプロセッサに命令する。そうでなければ、ＳＲ自体が、ステップ１４０６において、ポートバイパス回路の作動によって、内部ミニハブを外部環境から分離する。図１４には表されないが、リンクを機能させ得ないことは、以下の診断の実行を阻止する。内部ＦＣミニハブの分離は、ＳＲがＳＲカード内の内部ＦＣコンポーネント全体にループバックフレームを送信し、内部コンポーネントの中に故障したものがあるかどうかをテストすることを可能にする。ステップ１４０８−１４１１のｆｏｒループでは、ＳＲは、ステップ１４０９において、内部ループ中で種々の異なるテストフレームを送信し、ステップ１４１０において、ＣＲＣエラーが発生したかどうかを判定する。状態１４１０によって表現されるようにＣＲＣエラーが発生したならば、ＥＦＣＬＦエラーが発生したものとして診断される。そうでなければ、すべてのテストフレームが正しくループバックされたならば、図１４に状態１４１２によって表現されるように、ＥＦＣＬＦエラーは診断されない。
【００２７】
図１５はＥＦＣＬＦハンドリングを説明する制御フロー図である。すべてのエラー回復ルーチンでは、テストが最初に行われて、ＥＦＣＬＦハンドリングルーチンのステップ１５０２において、エラー状態が診断されたかどうかを判定する。もしエラー状態が診断されれば、何も実行すべきことはない。そうでなければ、ステップ１５０４において、ＳＲがＥＦＣＬＦをハンドリングすることを自動的に試行すべきか、又は、ディスクアレイ・コントローラによる後のハンドリングのためＥＦＣＬＦを単に報告するべきであるかに関してチェックが行われる。このタイプの判定は、本発明の実施形態を表す種々のエラー及び／又はイベント・ハンドリング・ルーチンを通じて観察される。ストレージシェルフがディスクアレイ又はそれらが含まれたその他のシステムと互換性のあるエラー及び／又はイベント・ハンドリングのために構成されることができるように、これらの判定を制御するパラメータは、一般に設定可能（configurable）である。一部の場合には、エラー及び／又はイベント・ハンドリング、並びに、エラー及び／又はイベント診断でさえ、そのシステム内で利用されるタイミング及びプロトコルの妨げとなる場合がある。例えば、上記のループバックベースの診断で使用されるテストフレームはある種のシステムにおいては、混乱を起こすと考えられるため構成されない。このような場合には、ストレージシェルフが単にエラー及びイベントを報告し、診断及びハンドリングを保留することが望ましい場合もある。その他の場合には、システム又はディスクアレイ・コントローラのベンダは、システム及びディスクアレイ・コントローラの実装を簡単化するために、ストレージシェルフがエラー又はイベントを内部的に取り扱えるようにすることを決定する。図１５において、ステップ１５０４において判定されるように自動ＥＦＣＬＦハンドリングが望ましいとき、ステップ１５０６において、ＥＦＣＬＦを検出したＳＲは、制御された故障を実行し、ストレージシェルフ内の異なるＳＲカード上の相互に協働するＳＲカードが機能していることを保証するために使用されるハートビート（heartbeat）メカニズムをシャットダウンする。ステップ１５０７において、残存（surviving）ＳＲカードは、故障（failing）ＳＲカードの故障を検知し、ステップ１５０８において、すべてのＰＣカードが残存ＳＲカードによって直接的に制御されるようにするため、故障ＳＲカードによって現在制御されるＰＣカードにそれらのマルチプレクサを切り換えるように命令する。換言すれば、残存ＳＲカードがＬＰＦＯを実行する。自動ＥＦＣＬＦハンドリングが望ましくないならば、ステップ１５１０において、ＳＲは、ＳＥＳプロセッサにＥＦＣＬＦ通知を記録するように命令する。外部ＦＣリンクが動作しないとき、当然ながら、ＳＥＳは冗長ＦＣリンクによってアクセスされる必要がある。親出願に記載されているように、一般に、ＳＲ、ＳＲカード、及び、外部処理エンティティを相互接続する２種類のＦＣループが存在する。ステップ１５１１において判定されるように、リセット方法が利用されるとき、ステップ１５１２では、ディスクアレイ・コントローラは、故障ＳＲカードのＳＥＳプロセッサに、ＳＲを、又は、��重ＳＲ型の実装ではマスタＳＲを、本質的に故障ＳＲカードの動作を中止するリセットに保持するように命令する。制御はステップ１５０７へ進み、ストレージシェルフの残存ＳＲカードがＬＰＦＯを介してすべてのＰＣカードを制御する。リセットモードが利用されない場合、ステップ１５１３において、ディスクアレイ・コントローラは、ＥＦＣＬＦを検出したＳＲカード上のマスタＳＲにそれ自体を機能しなくなるようにすることを命令し、制御はステップ１５０６へ進む。
【００２８】
多種多様なテストフレームはＥＦＣＬＦ診断のためＳＲによって実行されるループバック・テスト中にＳＲによって利用される。付録Ａはテストフレームのいくつかを含んでいる。
【００２９】
図１６はＩＬＦ検出を説明する制御フロー図である。ＩＬＦ検出は、図１３を参照して説明されたＩＣＰＦ検出に類似することに注意すべきである。一つの相違点は、リンクエラー及びＣＲＣエラーが、外部ＦＣ媒体（external FC medium）ではなく、カード内ＦＣ媒体と相互接続されたＦＣポート上で検出されることである。注意すべきことは、「外部ＦＣ媒体」と称されるが、ＦＣリンクは、それにもかかわらず、ストレージシェルフのバックプレーン内に部分的に含まれることである。
【００３０】
図１７はＩＬＦ診断を説明する制御フロー図である。ステップ１７０２において、マスタＳＲは上記のＰＣメールボックスメカニズムを介して他方のＳＲカード上のマスタＳＲと通信する。ＰＣメールボックス経由の他方のＳＲからの応答によって判定されるように、他方のＳＲが問題なく残存するならば、ＩＬＦエラーは、ステップ１７０６によって表されるように、診断される。そうでなければ、ステップ１７０８によって表されるように、ＵＣＦエラーのような異なるタイプのエラーがおそらく発生している。
【００３１】
図１８はＩＬＦハンドリングを説明する制御フロー図である。ＩＬＦハンドリングは、図１５を参照して既に説明したＥＦＣＬＦ改善に類似するが、但し、自動回復が望ましいとき、一方のＳＲカードのマスタＳＲが、ステップ１８０２において、他方のＳＲカードのマスタＳＲにそれ自体を機能しなくさせるために、内部ＦＣリンクは信頼できないか、又は、動作不可能であるのでＰＣメールボックスメカニズムを使用する点を除く。
【００３２】
図１９はＩＣＰＦ検出を説明する制御フロー図である。ＩＣＰＦエラーは、ステップ１９０２において、ストレージシェルフ内の各ＳＲカードがストレージシェルフ内の他方のＳＲカードの存続可能性を周期的に確認するために用いるハートビート信号（heartbeat signal）の損失によって検出される。ハートビートの損失が検出されるとき、図１９のステップ１９０４に表されるように、おそらく発生しているが、ＩＣＰＦ及びＩＣＬＦを診断する際に、ＩＣＰＦ又はＩＣＬＦエラーでなくＣＣＦ又はＵＣＦが発生していると判定されることがある。そうでなければ、図１９のステップ１９０６によって表されるように、ＩＣＰＦエラー無しが検出される。
【００３３】
図２０はＩＣＰＦ診断を説明する制御フロー図である。ステップ２００２で判定されるときに、ＩＣＰＦエラー無しが検出されたならば、診断を行う必要はない。そうでなければ、ステップ２００４において、一方のＳＲカードのマスタＳＲは、ＰＣメールボックスメカニズムを介してストレージシェルフ内の他方のＳＲカードのマスタＳＲと協調し、その他方のＳＲカードが残存し機能しているかどうかを確認する。ステップ２００６において判定されるときに、応答が得られないならば、ストレージシェルフ内の他方のＳＲカードはおそらく故障していて、図２０のステップ２００８によって表されるように、ＣＣＦ又はＵＣＦエラーがおそらく発生している。そうでなければ、自動診断が、ステップ２０１０において判定されるように、構成されているならば、ステップ２０１２において、両方のＳＲカードのＳＲは、カード間ＦＣポートが故障しているか否かを確認するためにパッドテストを実行する。ステップ２０１４で判定されるときに、両方のＳＲカードが、機能的なカード間ＦＣポートを有することが判明するならば、図２０の状態２０１６によって表されるように、一時的な故障又はＩＣＬＦ状態が発生している。そうではなく、ステップ２０１６で判定されるときに、ストレージシェルフ内の第１のＳＲカードにＦＣポート故障が起きているならば、図２０の状態２０２０によって表されるように、第１のＳＲカードにおいてＩＣＰＦ故障が発生している。そうではなく、ステップ２０２２で判定されるときに、ＦＣポート故障がストレージシェルフ内の第２のＳＲカード上で発生しているならば、図２０の状態２０２４によって表されるように、第２のＳＲカードにおいてＩＣＰＦ故障が発生している。そうでなければ、図２０の状態２０２６によって表されるように、まず起こりそうにないが両方のＳＲカードが故障しているか、又は、ＩＣＬＦエラーが発生している。自動診断が構成されないならば、ステップ２０２８において、ＳＲはＩＣＰＦ故障をディスクアレイ・コントローラへ転送するためＳＥＳプロセッサに報告し、ディスクアレイ・コントローラは、診断されたＩＣＰＦから回復し始める。
【００３４】
図２１はＩＣＰＦハンドリングを説明する制御フロー図である。ステップ２１０２において、ＦＣポート故障が生じているＳＲカードは、ＬＰＦＯを始めるために、ストレージシェルフ内の残存ＳＲカードと協調する。故障ＳＲカードは、制御されたシャットダウンを実行し、ファイバ・チャネル上のループ初期化プロトコル（loop initialization protocol：ＬＩＰ）を呼び出し、次に、ステップ２１０４において、故障ＳＲカードのＳＡＴＡドライブに割り当てられたＡＬ＿ＰＡアドレスを放棄する。ステップ２１０６において、残存ＳＲカードは故障カードのシャットダウンを検知し、ステップ２１０８において、これまで故障ＳＲカードによって制御されていたＰＣカードのＰＣカードマルチプレクサに、残存ＳＲカードへの切り替えを命令する。
【００３５】
図２２は、ＦＣポートをテストするためにストレージシェルフ・ルータによって引き受けられたパッドテストを説明する。ＦＣフレームは、発信ＴＸバッファ２２０２からＦＣポートのシリアライザ／デシリアライザ２２０４へ送り返され、本質的にＦＣポートのコンポーネントの大部分を通るループバックを生じさせる。ループバックが成功するならば、エラーはＦＣポートの外部で発生している可能性が高い。フレームがＦＣから受信されるときに通るＲＸバッファ２２０６は、パッドテストによってテストされないことに注意すべきである。
【００３６】
図２３Ａ及び２３ＢはＩＣＬＦ検出及びＩＣＬＦ診断を説明する制御フロー図を与える。図２３Ａ−Ｂからわかるように、ＩＣＬＦ検出及び診断ルーチンは、上記のＩＣＰＦ検出及びＩＣＰＦ診断ルーチンに類似している。
【００３７】
図２４はＩＣＬＦハンドリングを説明する制御フロー図である。ＩＣＬＦハンドリングルーチンは、図２１を参照して説明したＩＣＰＦエラーハンドリング・ルーチンに類似しているので、それ以上に説明しない。
【００３８】
図２５はＳＰＦ検出を説明する制御フロー図である。ＳＰＦは、ステップ２５０２におけるリンクダウン・イベントによって、または、ステップ２５０４における最近の時間ピリオド内のＣＲＣエラーのしきい値を上回るリンク上の多数のＣＲＣエラーによって、又は、ステップ２５０６によって表されるように、ＳＡＴＡリンクエラーを示すその他の類似したタイプの状態によって、ＳＲで検出される。ＳＰＦエラー表示が示されるならば、ＳＰＦエラーが、図２５に状態２５０８によって表されるように、検出されたと考えられる。そうでなければ、図２５に状態２５１０によって表されるように、ＳＰＦエラー無しが検出される。
【００３９】
図２６はＳＰＦ診断を説明する制御フロー図である。ステップ２６０２で判定されるように、一次ＳＡＴＡポートが故障したであろうとき、ＳＲは、ステップ２６０４において、ＳＡＴＡポート上で外部パッドテスト（external pad test）を実施する。ステップ２６０６において判定されるように、テストが成功したならば、図２６に状態２６０８によって表されるように、ＳＬＦエラーが示される。そうでなければ、図２６に状態２６１０によって表されるように、ＳＰＦエラーが示される。そうでなく、二次ＳＡＴＡポートに故障が生じている可能性があるならば、ステップ２６１２において、ＳＲは、二次ＳＡＴＡポートを介してＳＲと相互接続されたＰＣカードの２：１マルチプレクサ（ＭＵＸ）に対して連続的に実行されたバックグラウンドのループバック・テストが最近成功したかどうかを記録する。ステップ２６１４で判定するときにループバック・テストが成功したならば、図２６に状態２６１６によって表されるように、一時的なエラー状態が発生しているか、又は、エラーは発生していない。そうでなければ、外部パッドテストがステップ２６１８で実行され、外部パッドテストが成功したかどうかに応じて、ＳＰＦの表示２６２０又はＳＬＦの表示２６２２が与えられる。使用されるループバック・テストパターンは付録Ｂに含まれる。
【００４０】
図２７はＳＰＦハンドリングを説明する制御フロー図である。ステップ２７０２で定められるように、自動エラー回復が構成されているとき、不良ＳＡＴＡポートを備えたＳＲカードは、ステップ２７０４において、制御されたシャットダウンを実行し、ストレージシェルフ内の残存ＳＲカードは、ステップ２７０６において、ハートビート故障を検知し、ステップ２７０８でＬＰＦＯを実行する。そうでなければ、ＳＲは、ステップ２７１０において非同期イベント通知（asynchronous event notification：ＡＥＮ）をＳＲカード上のＳＥＳプロセッサに送信し、その非同期イベント通知は次に、ステップ２７１２でＳＥＳプロセッサによってディスクアレイ・コントローラへ転送される。ディスクアレイ・コントローラは、故障したＳＡＴＡポートを備えたＳＲカードのシャットダウンを含む多数の異なる回復スキームのうちのいずれかを実行してもよい。
【００４１】
図２８はＳＬＦハンドリングを説明する制御フロー図である。ＳＬＦは、図２６を参照して説明したＳＰＦ診断中に診断される。ＳＬＦの場合、ＡＥＮは、ディスクアレイ・コントローラへの転送のためＳＥＳプロセッサへ送信され、ＳＥＳプロセッサが次に回復動作を引き受ける。
【００４２】
図２９はＭＰＦ検出を説明する制御フロー図である。ステップ２９０２−２９０５のｆｏｒループにおいて、ＳＲは、各ＰＣマイクロコントローラ上のレジスタに周期的にアクセスし、ＳＲとＰＣカードとの間の管理リンクが機能しているかどうかを判定する。ＰＣマイクロコントローラのレジスタへのアクセスが失敗であるならば、ステップ２９０６−２９０９のループにおいて、ＳＲはある設定回数に亘って管理リンクを介してＰＣマイクロコントローラのレジスタにアクセスしようとする。レジスタへのアクセスが成功するならば、図２９に状態２９１０によって表されるように、エラー又は一時的なエラー状態は発生していない。そうでなければ、レジスタにアクセスできないならば、図２９に状態２９１２によって表されるようにＭＰＦが発生している。
【００４３】
図３０はＭＰＦ診断を説明する制御フロー図である。ＭＰＦ診断ルーチンは、ステップ３００２において、ＳＲ内のループバックを試みる。ループバックが成功するならば、図３０に状態３００４によって表されるように、ＭＬＦエラーが示される。そうでなければ、図３０に状態３００６によって表されるように、ＭＰＦエラーが示される。
【００４４】
図３１はＭＰＦハンドリングを説明する制御フロー図である。ＭＰＦハンドリングは、管理ポート故障をＳＥＳプロセッサへ報告するだけであり、ＳＥＳプロセッサはＡＥＮをディスクアレイ・コントローラへ転送する。ディスクアレイ・コントローラは次に訂正動作を受け持つ。
【００４５】
図３２はＵＣＦ検出を説明する制御フロー図である。ＵＣＦエラーは、ステップ３２０４で検出されるように、最初にハートビート故障によって示される。ハートビート故障を検出した場合、一方のＳＲカード上のマスタＳＲは、ステップ３２０６において、ＰＣメールボックスメカニズムを使用して、ストレージシェルフの他方のＳＲカード上のマスタＳＲとの通信を試みる。通信が成功するならば、他方のＳＲカードは機能し、図３２にステップ３２０８で示されるように、ＩＣＰＦ、ＩＣＬＦ又はその他のこのようなエラーが示される。そうでなければ、図３２に状態３２１０によって表されるように、ＵＣＦエラーが示される。
【００４６】
図３３Ａ−Ｂは、ＵＣＦ診断及びＵＣＦハンドリングを説明する制御フロー図を記載する。図３３Ａに表されているように、ＵＣＦ検出エラーのための付加的な診断は行われない。図３３Ｂに表されているように、ＵＣＦハンドリングは、本質的に、ストレージシェルフ内の残存ＳＲカードによるＬＰＦＯと、ＳＥＳプロセッサを介するＡＥＮのディスクアレイ・コントローラへの報告とを含む。
【００４７】
図３４はＣＣＦ検出を説明する制御フロー図である。ＣＣＦエラーは、図３４のステップ３４０２において、ＳＲが、ＳＲのファームウェア内のパニック、アサート、又は、その他のトラップのような故障状態に入り、制御されたシャットダウン（controlled shut down）を実行するときに、検出される。ＳＲは、制御されたシャットダウンのプロセスにおいて、ステップ３４０４でハートビートを打ち切り、次に他方のＳＲカードによって検出される。
【００４８】
図３５Ａ−Ｂは、ＣＣＦ診断及びＣＣＦハンドリングを説明する制御フロー図を記載する。ＣＣＦ診断ルーチンとＣＣＦハンドリングルーチンの両方は、図３３Ａ−Ｂを参照してＵＣＦエラーについて説明したルーチンと同等である。
【００４９】
図３６はＰＦＲ検出を説明する制御フロー図である。ステップ３６０２において、ストレージシェルフ内のＳＲカードは、ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号のデアサートを検出する。次に、ステップ３６０４で、正しく機能するＳＲカード内のＳＲは、ストレージシェルフの他方のＳＲカードと通信することによりカード間ＦＣリンクが適切に機能するかどうかを判定する。ステップ３６０６において判定されるときに、リンクが作動しているならば、状態３６０８によって図３６に表されるように、誤ったＰＥＥＲ＿ＰＲＥＳＥＮＴ信号が示され、ＳＥＳへ報告される。そうでなければ、図３６に状態３６１０によって表されるように、ＰＦＲが示される。ＰＦＲイベントは付加的な診断は行われず、ストレージシェルフ内に残存するＳＲカードによって実行されるＬＰＦＯによって回復される。
【００５０】
図３７はＩ２ＣＦ検出を説明する制御フロー図である。図３７に表されるように、タイマーがＳＥＳプロセッサ上のＩ２Ｃレジスタへのアクセスの試行後にＳＲ内で終了するとき、Ｉ２ＣＦエラーが検出される。一般に、ＳＲは側波帯（side-band）信号を使用してＳＥＳプロセスへの割り込みを発生しており、この割り込みがタイムアウトより前に認識されないとき、エラー状態になる。ＰＦＲエラーと同様に、付加的な診断は行われず、ストレージシェルフ内の正しく機能するＳＲカードは、すべてのＰＣカード及びストレージシェルフ内のＳＡＴＡディスクの責任を負うためにＬＰＦＯを実行する。ＬＰＦＯは設定可能な選択肢である。
【００５１】
図３８はＦＢＥ検出を説明する制御フロー図である。ＦＢＥイベントは、ステップ３８０２において、ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号が、ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号のデアサートに続いてアサートされるときに、ＳＲによって検出される。ＰＥＥＲ＿ＰＲＥＳＥＮＴ信号を検出した場合、ＳＲは、ステップ３８０４において、新たに挿入されたＳＲを用いてランデブー・プロトコル（rendezvous protocol）を実行する。ステップ３８０６において判定するときに、ランデブーが成功しているならば、ＦＢＥイベントが、状態３８０８によって図３８に表されるように、検出される。そうでなければ、図３８に状態３８１０によって表されるように、誤ったＰＥＥＲ＿ＰＲＥＳＥＮＴ信号、又は、ＩＣＬＦ若しくはＩＣＰＦエラーがおそらく発生している。
【００５２】
図３９Ａ−Ｂは、ＦＢＥ診断及びＦＢＥハンドリングを説明する制御フロー図を記載する。図３９Ａに表されるように、ＦＢＥイベントについてのさらなる診断は不要である。ＦＢＥハンドリングは、ステップ３９０２において、ＳＲがストレージシェルフ内の近傍ＳＲカードの更新された有無を記録するときに行われる。ＳＲはステップ３９０４において新たに挿入されたＳＲカードとの通信を再確立する。ＳＲは次に、ステップ３９０６においてメモリ内でルーティングテーブル及び種々のデータ構造を更新し、ステップ３９０８においてＬＰＦＢ動作を実行する。新たに挿入されたＳＲカードは、次に、ステップ３９１０において、ストレージシェルフ内のＳＡＴＡディスクドライブの一部分の責任を負う。
【００５３】
図４０はＭＬＦハンドリングを説明する制御フロー図である。ＭＬＦハンドリングは、ＳＥＳプロセッサを介するディスクアレイ・コントローラへのＡＥＮの報告により構成される。ディスクアレイ・コントローラは、次に、必要に応じて、ドライブの交換、又は、究極的にはバックプレーンの交換を含む訂正処置を引き受ける。
【００５４】
図４１Ａ−Ｃは、ＳＤＦ検出、診断及びハンドリングを説明する制御フロー図を記載する。ＳＤＦエラーは、ステップ４１０２において、ＳＡＴＡディスクの初期化の失敗、ＳＡＴＡディスクへ命令されたリード動作の失敗、及び、その他のこのようなエラーによって検出される。図４１Ｂに示されるように、さらなる診断は不要であり、ＳＤＦハンドリングは、ＳＥＳプロセッサを介するディスクアレイ・コントローラへのＡＥＮの報告だけにより構成される。
【００５５】
図４２Ａ−Ｃは、ＦＲＥ検出、診断及びハンドリングを説明する制御フロー図を記載する。ＦＲＥイベントは、ステップ４２０２において、ＦＲＵ＿ＰＲＥＳＥＮＴ信号のデアサートによって検出される。さらなる診断は不要であり、ＦＲＥイベントはＬＩＰを発生することにより取り扱われ、ＬＩＰベースのハンドリングが構成されるときに、取り外されたディスクドライブのＡＬ＿ＰＡを廃棄する。ＦＲＥは次にＳＥＳプロセッサを介してディスクアレイ・コントローラへ報告される。
【００５６】
図４３Ａ−Ｃは、ＦＩＥ検出、診断及びハンドリングを説明する制御フロー図を記載する。ＳＲは、ステップ４３０２で、ＦＲＵ＿ＰＲＥＳＥＮＴ信号のアサートによってＦＩＥを検出する。さらなる診断は不要であり、ＦＩＥイベントは新たに挿入されたディスクを初期化し、これによってＬＩＰ及びＡＬ＿ＰＡを取得することにより取り扱われる。ＡＥＮはＳＥＳプロセッサによってディスクアレイ・コントローラへ送信され、種々の状態情報がステップ４３０８で更新される。
【００５７】
ＳＲカードのメモリに保持され、親出願において説明されている種々のデータ構造及びテーブルは、ストレージシェルフ及びストレージシェルフコンポーネントの現在状態を反映させるため常に更新されることに注意する必要がある。例えば、データ構造は、ＬＰＦＯ、ＳＰＦＯ、ＬＰＦＢ及びその他のこのようなイベントの結果として更新される。
【００５８】
図４４Ａ−Ｂは、第1のルータカード交換手順を説明する制御フロー図を記載する。この手順は、停止時間を伴わず、２つの交換カードが、ストレージシェルフ内で現在動作しているＳＲカードのファームウェアの同じメジャーバージョン、又は、それよりも上位のファームウェア改訂版を利用可能であることが必要である。ルータカード交換方法は、図４４Ａにおいて、第１のＳＲカードの故障４４０２で始まる。ステップ４４０４において、第２のＳＲカードは、この故障を検出し、ＬＰＦＯを実行し、第１のカードは、故障によって妨げられないならば、ＬＩＰを発生し、ＡＬ＿ＰＡを廃棄する。ＳＥＳプロセッサは、ステップ４４０６において、故障を検出し、故障したカード上のハードリセットをアサートする。新しいＳＲカードが、ステップ４４０８において、故障したＳＲカードを交換するために挿入される。第２のＳＲカードのＳＥＳプロセッサは、ステップ４４１０において、新しいＳＲカードの挿入を検出し、第１のＳＲカードのハードリセットをデアサートする。これは、新たに挿入されたＳＲカードが、ステップ４４１２において、起動することを可能にする。ステップ４４１４で判定されるときに、起動が成功しているならば、ルータカード交換はステップ４４１６で終了し、ＬＰＢＦはＳＲカード間で管理タスクのバランスを取り直すために行われる。そうでなければ、ステップ４４１８において、新たに挿入されたＳＲカードはＬＰＦＯを実行し、新たに挿入されたＳＲカードのＳＥＳプロセッサは、ステップ４４２０において、ＬＰＦＯを検出し、第２のＳＲカードが機能しなくなるようにハードリセットをアサートする。新しい交換カードはステップ４４２２で第２のＳＲカードを置き換えるために挿入される。第１のＳＲカードのＳＥＳプロセッサはステップ４４２４で新しいカードを検知し、ハードリセットをデアサートする。これは、ステップ４４２６において、新たに挿入されたＳＲカードが起動することを可能にする。ステップ４４２８において判定されるときに、起動が成功しているならば、状態４４３０によって表されるように、ルータカード交換は正しく完了している。そうでなければ、図４４Ｂに状態４４３２によって表されるように、新しいミッドプレーン故障が示される。
【００５９】
図４５は第２のルータカード交換手順を説明する制御フロー図を記載する。この手順は、停止時間を伴わず、１つの交換ＳＲカードと、ファームウェア不一致を解決するオンラインダウンロード手順を必要とする。ルータカード交換方法は、ステップ４５０２で、第１のＳＲカードの故障から始まる。ステップ４５０４において、第２のＳＲカードは、ＬＰＦＯを行い、ＳＥＳプロセッサはイベントを検出する。ステップ４５０６において、新しいカードが故障したカードと置き換えるために挿入される。新しいカードはステップ４５０８で起動する。ステップ４５１０において、重大なファームウェア不一致が検出されるならば、ステップ４５１２においてオンラインのファームウェア（ＦＷ）ダウンロード・ルーチンが呼び出され、ステップ４５０８において起動が再び行われる。そうでなければ、新たに挿入され、新たに起動されたカードは、ステップ４５１４において、ＬＰＦＢを行う。ステップ４５１６で判定されるときに、ＬＰＦＢが成功しているならば、図４５に状態４５１８によって示されるように、ルータカード交換は終了する。そうでなければ、新たに挿入されたカードはステップ４５２０でＬＰＦＯを行う。次にステップ４５２２において第２のＳＲカードを置き換えるために新しいカードが挿入される。新しいカードはステップ４５２４で起動し、ＬＰＦＢを行う。ステップ４５２６で判定されるときに、ＬＰＦＢが成功しているならば、図４５に状態４５２８によって表されるように、ルータカード交換は成功である。そうでなければ、新たに挿入されたカードはステップ４５３０でＬＰＦＯを行い、図４５に状態４５３２で表されるように、ミッドプレーン故障が示される。
【００６０】
本発明は、特定の実施形態の観点で説明されているが、本発明がこの実施形態に限定されることは意図されていない。本発明の精神の範囲内における変更は当業者に明白である。例えば、異なる制御フロー、データ構造、モジュラー組織、及び、その他のこのような変形を使用するあらゆる個数の異なる検出、診断、及び、改善ルーチンが上記の方法を実行するために利用されてもよい。多数のさらなるエラー状態がストレージシェルフ内の１つ以上のＳＲによって検出され、診断され、回復されてもよい。エラー検出、診断及び回復は、単一のＳＲカード上の複数のＳＲの協調、及び、異なるＳＲカード上の複数のＳＲの協調を含んでもよい。ディスクアレイ・コントローラのような外部処理エンティティと、ストレージシェルフ・ルータ内のＳＲとの間の診断及び回復タスクの分割は部分的又は完全にコンフィギュラブルであってもよく、ディスクアレイ・コントローラ及びその他の外部処理エンティティの実装詳細に依存してもよい。ある種の場合に、シングル・パス・フェイルオーバが、ある種のディスクキャリア故障及びＳＡＴＡリンク故障を訂正するために、ＳＲの指示又はディスクアレイ・コントローラの指示で行われてもよい。将来の実施では、多数の異なる状況で完全自動化された徹底的なエラー回復を可能にするために、さらなる冗長コンポーネントがストレージシェル内に含まれてもよい。
【００６１】
上記の解説は、説明の目的のため、本発明の全体を通じた理解を与えるために特定の名称を使用した。しかし、当業者に明らかであるように、具体的な詳細は本発明を実施するために必要とはされない。本発明の具体的な実施形態の上記の解説は、例示と説明のために記載されたものである。それらは、網羅的であること、或いは、発明を開示された形式そのままに制限することを意図しない。明らかに多数の変更及び変形が上記の教示内容に照らして可能である。実施形態は、本発明の原理及びその実際的な適用を最もよく説明し、それによって、当業者が本発明及び検討された特定用途に適するような種々の変更を伴う種々の実施形態を最もうまく利用することを可能にするために明らかにされ説明されている。本発明の範囲は特許請求の範囲及びその均等の範囲によって定められることが意図されている。
【００６２】
付録Ａ
以下に示すテストフレームは、本発明の実施形態におけるＦＣループバック・テストに用いられる。ＳＲ−１２１６は、以下のテストを実行する。
【００６３】
ＣＲＰＡＴ
ＣＲＰＡＴは、有効ＦＣフレームにおける、規格に準拠したランダム・データ・パターン（Compliant Random data Pattern）である。ランダムなテストパターンの意義は、コンポーネントおよびシステムのレベルテストに用いることができる広範囲のスペクトル成分および最小のピーク値をもつデータパターンを提供することである。スペクトル成分パターンは、ＴＸジッタテストの間の任意のピークがコンポーネントのせいであり、データのスペクトル成分のせいではないことを保証するために用いられる。表１は、ＣＲＰＡＴのテスト・ビット・シーケンスを示す。
【表１】
2007501986.tif 000003
【００６４】
ＣＪＴＰＡＴ
ＣＪＴＰＡＴは、有効ＦＣフレームにおける、規格に準拠したジッタ許容差パターン（Compliant Jitter Tolerance Pattern）である。レシーバのジッタ許容差テストのため、パターンは、レシーバのクロック・データ・リカバリ（Clock Data Recovery：ＣＤＲ）メカニズムを瞬間的な位相のジャンプにさらさなければならない。そうするために、全体パターンは、低伝送密度パターンを高伝送密度パターンと繰り返し交互にする。10ｂキャラクタの繰り返し時間は、レシーバクロックリカバリ回路の時間定数より長い。この継続時間は、クロック位相がシステマティックパターンジッタに追従しており、データ変換回路がすシステマティック位相のジャンプにさらされることを保証する。これは、時間マージンを強調する。表２は、ＣＪＴＰＡＴのテスト・ビット・シーケンスを示す。
【表２】
2007501986.tif 000004
【００６５】
付録Ｂ
以下に示すテストフレームは、本発明の実施形態におけるＳＡＴＡループバック・テストに用いられる。
【００６６】
テスト・ビット・パターンおよびシーケンス特性
テスト・ビット・シーケンスは、通信リンク性能と同様にシリアルＡＴＡインタフェースのジッタ・コンプライアンス（jitter compliance）をテストするために、シリアルリンク上で伝送されるビット・シーケンスである。
【００６７】
ジッタは、一般に、ランダム・ジッタ（Random Jitter：ＲＪ）および確定的ジッタ（Deterministic Jitter：ＤＪ）として識別される。ＲＪはガウシアン（Gaussian）の性質があり、電力成分に付加し、ＲＭＳ値として計測される。ＤＪは、システマティック・ジッタ（systematic jitter）とも言われ、デューティサイクルひずみ（duty cycle distortion）、電源ノイズ、基板ノイズ、または符号間干渉（inter-symbol interference）のせいで通常はシリアルリンクに添加される。
【００６８】
テストは、低／高周波数パターンと同様に低／高遷移密度（transition density）パターンを目立たせるさまざまなタイプのビットシーケンスパターンを使用する。
【００６９】
ａ）  低遷移密度パターンは、１および０の長ラン（long run）を含んでおり、作動信号レベルの極値において変位時間（excursion times）を変化させることによって符号間干渉を生成するために用いられる。
【００７０】
ｂ）  高遷移密度パターンは、１および０の短ラン（short run）を含んでおり、符号間干渉を生成するために用いられる。
【００７１】
ｃ）  低周波数スペクトルのコンポーネントを含むビットパターンは、入力ハイパスフィルタ回路のテストに適しており、より詳細には、限界値の設計のせいで振幅信号ひずみを生じさせる。これらのビットパターンは、高周波数スペクトルの内容をもつビットパターンよりもテストに適している。
【００７２】
ｄ）  同時切替出力パターン（simultaneous switching outputs patterns）は、レシーバでのリカバリ用の１の相補的なビットパターン（10ビット）を交互に伝送することによって達成される。これらのパターンは、電源ノイズまたはチップ基板ノイズの最悪なケースを生成し、回復されたビットパターンのパラレルシーケンスにおける現在の極値を最大にするようなビットテストパターンシーケンスを選択することにより達成される。これらのパターンは、Ldi/dtノイズを基板部位に誘導し、レシーバ回路のテストに適している。
【００７３】
ｅ）  ランダムビットパターンの意義は、十分に広範囲のスペクトル成分および最小のピーク値を含むパターンを提供することである。これらのパターンは、コンポーネント、ジッタ出力のシステムレベル構成の計測、およびビットエラー率性能のために利用することができる。これらのパターンは、システム／コンポーネント製造業者の比較テストのために、伝送ジッタ出力計測をコンポーネント性能に帰する共通規定線パターン刺激となるように用いられ、用いられるデータパターンのスペクトル特性にならないように用いられる。
【００７４】
これらのパターンは、シリアルＳＡＴＡインタフェースのコンプライアンスをテストするために用いられる。パターンは、ａ）非準拠（non-compliant）パターンおよびｂ）準拠（compliant）パターンという２つのカテゴリに識別される。
【００７５】
非準拠パターンは、基準線ジッタ計測（baseline jitter measurement）および信号の品質の評価に用いられ、指定された刺激を与えられるパターンである。これらのパターンは、要求されるＦＩＳ形式に準拠せず、ただ繰り返し選択される８ｂ／１０ｂキャラクタの組である。
【００７６】
準拠パターンは、先頭ＳＯＦ基本要素（primitive）、データコンテンツのように指定されたパターン、後続ＣＲＣ、およびＥＯＦ基本要素を含む指定パターンである。このクラスのパターンに伴う刺激の間では、二重連続（dual-consecutive）ＡＬＩＧＮ基本要素は抑制されていない。
【００７７】
以下のセクションで示されるテストパターンは、各シーケンス用のワイヤ上を伝送される符号化10ｂパターンを伝達するために、説明を容易にするために負のディスパリティ（negative running disparity）で始まるように示されている。
【００７８】
低伝送密度ビットパターンシーケンス
低伝送密度ビットパターンは、１および０の長ランを含むパターンである。これらのパターンは、符号間干渉のせいで高周波数ジッタを生成する。このことは、複合パターンの一部が以降のセクションで説明される際に再び強調される。表３は、低伝送密度パターン（ＳＡＴＡ）を示す。
【表３】
2007501986.tif 000005
【００７９】
高伝送密度ビットパターンシーケンス
高伝送密度パターンは、１および０の短ランを含むパターンである。このパターンも、符号間干渉のせいで高周波数ジッタを生成する。このことは、複合パターンの一部が以降のセクションで説明される際に再び強調される。高伝送密度パターンは、ａ）ハーフレート（half rate）高伝送密度ビットパターンシーケンスおよびｂ）クォーターレート（quarter rate）高伝送密度ビットパターンシーケンスという２つのサブクラスを含む。高伝送密度ビットパターンの２つのサブクラスを混合したものが、高伝送密度テストパターンを表すのに用いられる。表４は、ハーフレート／クォーターレート高伝送密度ビットパターン（ＳＡＴＡ）を示す。
【表４】
2007501986.tif 000006
【００８０】
低周波数スペクトル成分ビットパターンシーケンス
低周波数スペクトルコンポーネントを含むビットパターンは、限界値の設計のせいで信号ひずみを生じさせる限り、入力ハイパスフィルタ回路のテストに適している。表５は、低周波数スペクトル成分パターン（ＳＡＴＡ）を示す。
【表５】
2007501986.tif 000007
【００８１】
同時切替出力ビットパターンシーケンス
同時切替出力ビットパターンシーケンスは、Ldi/dtノイズを基板部位に誘導し、レシーバ回路のテストに適している。このパターンは、レシーバでのリカバリ用の１の相補的なビットパターン（10ビット）を交互に伝送することによって達成される。表６は、同時切替出力パターン（ＳＡＴＡ）を示す。
【表６】
2007501986.tif 000008
【００８２】
複合ビットパターンシーケンス
ジッタの計測のために、低周波数、低伝送密度、および高伝送密度のパターンが合成されるべきである。低周波数スペクトル成分クラス以外のこれら全ての混合は、ジッタおよび性能計測のために、比較的短いテスト時間間隔で実施することができる。
【００８３】
低周波数パターンは、比較的長い時間間隔でテストする必要があり、インタフェース上の低周波数ジッタ効果を監視することができる。
【００８４】
引用したパターンの複合セットを含むことにより、結果生じる複合パターンは、低／高周波数ジッタ、コンポーネント用テスト、および、レシーバ入力回路やインタフェースコンポーネントによるさまざまな振幅ひずみを用いて、リンク内のインタフェースコンポーネントを強調する。表７は、複合パターン（ＳＡＴＡ）を示す。
【表７】
2007501986.tif 000009
【図面の簡単な説明】
【００８５】
【図１】典型的な高可用性ストレージシェルフを説明する図である。
【図２】本発明の一実施形態を利用するストレージシェルフ内の相互接続アーキテクチャを説明する図である。
【図３】本発明の一実施形態による典型的なストレージシェルフのストレージシェルフ・ルータとパス・コントローラ・カードとの間の二次リンク又はパスを表す図である。
【図４】ローカルパス・フェイルオーバを説明する図である。
【図５】シングル・パス・フェイルオーバを説明する図である。
【図６Ａ】仮想的な２つのストレージ・ルータ・カードによるストレージシェルフの実装に対する故障領域及び認識された故障点を説明する図である。
【図６Ｂ】仮想的な２つのストレージ・ルータ・カードによるストレージシェルフの実装に対する故障領域及び認識された故障点を説明する図である。
【図６Ｃ】仮想的な２つのストレージ・ルータ・カードによるストレージシェルフの実装に対する故障領域及び認識された故障点を説明する図である。
【図７】パス・コントローラ・カード及びＳＡＴＡドライブを含むディスクドライブキャリアの２つの異なるストレージシェルフ・ルータとの相互接続を説明する図である。
【図８】パスコントローラのマイクロコントローラがディスクドライブ・キャリア上でＬＥＤのような種々の出力信号を制御し、並びに、ディスクドライブ・キャリア内の種々の環境状態を監視することを可能にする種々のオプショナルリンクを含むパス・コントローラ・カードに関するさらなる詳細を表す図である。
【図９】Ｉ２Ｃバスと内部ＦＣミニハブの両方を介してストレージシェルフ・ルータと相互接続されたＳＥＳプロセッサを含むあるタイプのストレージシェルフ・ルータ・カードの実施形態を表す図である。
【図１０】ストレージシェルフ・ルータの別の実施形態を表す図である。
【図１１】汎用ストレージシェルフ・ルータ動作を説明する制御フロー図である。
【図１２】図１１のステップ１１０８で呼び出されるエラーハンドリング・ルーチンを説明する制御フロー図である。
【図１３】ＥＦＣＬＦ検出を説明する制御フロー図である。
【図１４】ＥＦＣＬＦ診断を説明する制御フロー図である。
【図１５】ＥＦＣＬＦハンドリングを説明する制御フロー図である。
【図１６】ＩＬＦ検出を説明する制御フロー図である。
【図１７】ＩＬＦ診断を説明する制御フロー図である。
【図１８】ＩＬＦハンドリングを説明する制御フロー図である。
【図１９】ＩＣＰＦ検出を説明する制御フロー図である。
【図２０】ＩＣＰＦ診断を説明する制御フロー図である。
【図２１】ＩＣＰＦハンドリングを説明する制御フロー図である。
【図２２】ＦＣポートをテストするためにストレージシェルフ・ルータによって行われるパッドテストを説明する図である。
【図２３Ａ】ＩＣＬＦ検出を説明する制御フロー図である。
【図２３Ｂ】ＩＣＬＦ診断を説明する制御フロー図である。
【図２４】ＩＣＬＦハンドリングを説明する制御フロー図である。
【図２５】ＳＰＦ検出を説明する制御フロー図である。
【図２６】ＳＰＦ診断を説明する制御フロー図である。
【図２７】ＳＰＦハンドリングを説明する制御フロー図である。
【図２８】ＳＬＦハンドリングを説明する制御フロー図である。
【図２９】ＭＰＦ検出を説明する制御フロー図である。
【図３０】ＭＰＦ診断を説明する制御フロー図である。
【図３１】ＭＰＦハンドリングを説明する制御フロー図である。
【図３２】ＵＣＦ検出を説明する制御フロー図である。
【図３３Ａ】ＵＣＦ診断を説明するフロー制御図である。
【図３３Ｂ】ＵＣＦハンドリングを説明するフロー制御図である。
【図３４】ＣＣＦ検出を説明するフロー制御図である。
【図３５Ａ】ＣＣＦ診断を説明するフロー制御図である。
【図３５Ｂ】ＣＣＦハンドリングを説明するフロー制御図である。
【図３６】ＰＦＲ検出を説明するフロー制御図である。
【図３７】Ｉ２ＣＦ検出を説明するフロー制御図である。
【図３８】ＦＢＥ検出を説明するフロー制御図である。
【図３９Ａ】ＦＢＥ診断を説明するフロー制御図である。
【図３９Ｂ】ＦＢＥハンドリングを説明するフロー制御図である。
【図４０】ＭＬＦハンドリングを説明するフロー制御図である。
【図４１Ａ】ＳＤＦ検出を説明するフロー制御図である。
【図４１Ｂ】ＳＤＦ診断を説明するフロー制御図である。
【図４１Ｃ】ＳＤＦハンドリングを説明するフロー制御図である。
【図４２Ａ】ＦＲＥ検出を説明するフロー制御図である。
【図４２Ｂ】ＦＲＥ診断を説明するフロー制御図である。
【図４２Ｃ】ＦＲＥハンドリングを説明するフロー制御図である。
【図４３Ａ】ＦＩＥ検出を説明するフロー制御図である。
【図４３Ｂ】ＦＩＥ診断を説明するフロー制御図である。
【図４３Ｃ】ＦＩＥハンドリングを説明するフロー制御図である。
【図４４Ａ】第1のルータカード交換手順を説明するフロー制御図である。
【図４４Ｂ】第1のルータカード交換手順を説明するフロー制御図である。
【図４５】第２のルータカード交換手順を説明するフロー制御図である。
【図１】
2007501986.tif 000010
【図２】
2007501986.tif 000011
【図３】
2007501986.tif 000012
【図４】
2007501986.tif 000013
【図５】
2007501986.tif 000014
【図６Ａ】
2007501986.tif 000015
【図６Ｂ】
2007501986.tif 000016
【図６Ｃ】
2007501986.tif 000017
【図７】
2007501986.tif 000018
【図８】
2007501986.tif 000019
【図９】
2007501986.tif 000020
【図１０】
2007501986.tif 000021
【図１１】
2007501986.tif 000022
【図１２】
2007501986.tif 000023
【図１３】
2007501986.tif 000024
【図１４】
2007501986.tif 000025
【図１５】
2007501986.tif 000026
【図１６】
2007501986.tif 000027
【図１７】
2007501986.tif 000028
【図１８】
2007501986.tif 000029
【図１９】
2007501986.tif 000030
【図２０】
2007501986.tif 000031
【図２１】
2007501986.tif 000032
【図２２】
2007501986.tif 000033
【図２３Ａ】
2007501986.tif 000034
【図２３Ｂ】
2007501986.tif 000035
【図２４】
2007501986.tif 000036
【図２５】
2007501986.tif 000037
【図２６】
2007501986.tif 000038
【図２７】
2007501986.tif 000039
【図２８】
2007501986.tif 000040
【図２９】
2007501986.tif 000041
【図３０】
2007501986.tif 000042
【図３１】
2007501986.tif 000043
【図３２】
2007501986.tif 000044
【図３３Ａ】
2007501986.tif 000045
【図３３Ｂ】
2007501986.tif 000046
【図３４】
2007501986.tif 000047
【図３５Ａ】
2007501986.tif 000048
【図３５Ｂ】
2007501986.tif 000049
【図３６】
2007501986.tif 000050
【図３７】
2007501986.tif 000051
【図３８】
2007501986.tif 000052
【図３９Ａ】
2007501986.tif 000053
【図３９Ｂ】
2007501986.tif 000054
【図４０】
2007501986.tif 000055
【図４１Ａ】
2007501986.tif 000056
【図４１Ｂ】
2007501986.tif 000057
【図４１Ｃ】
2007501986.tif 000058
【図４２Ａ】
2007501986.tif 000059
【図４２Ｂ】
2007501986.tif 000060
【図４２Ｃ】
2007501986.tif 000061
【図４３Ａ】
2007501986.tif 000062
【図４３Ｂ】
2007501986.tif 000063
【図４３Ｃ】
2007501986.tif 000064
【図４４Ａ】
2007501986.tif 000065
【図４４Ｂ】
2007501986.tif 000066
【図４５】
2007501986.tif 000067
【国際調査報告】
2007501986.tif 000068