JP2010533900A - アダプタ・カードのフェイルオーバのための装置、システム、方法、およびコンピュータ・プログラム - Google Patents

アダプタ・カードのフェイルオーバのための装置、システム、方法、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2010533900A
JP2010533900A JP2010503518A JP2010503518A JP2010533900A JP 2010533900 A JP2010533900 A JP 2010533900A JP 2010503518 A JP2010503518 A JP 2010503518A JP 2010503518 A JP2010503518 A JP 2010503518A JP 2010533900 A JP2010533900 A JP 2010533900A
Authority
JP
Japan
Prior art keywords
adapter card
processor
processor complex
owning
complex
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
JP2010503518A
Other languages
English (en)
Other versions
JP5322064B2 (ja
Inventor
スパネル、キャロル
ウォールズ、アンドリュー、デール
ソン、チェンチャン
ブリニック、ステファン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US11/738,142 external-priority patent/US7870417B2/en
Priority claimed from US11/738,150 external-priority patent/US20080263391A1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010533900A publication Critical patent/JP2010533900A/ja
Application granted granted Critical
Publication of JP5322064B2 publication Critical patent/JP5322064B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】 アダプタ・カードのフェイルオーバのための装置、システム、および方法を提供する。
【解決手段】 スイッチ・モジュールは、所有側プロセッサ複合体として、第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに接続する。所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに接続する。非所有側プロセッサ複合体は第2のポートを管理する。検出モジュールは、第1のプロセッサ複合体の障害を検出する。セットアップ・モジュールは、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。
【選択図】 図1

Description

本発明はアダプタ・カードに関し、とりわけアダプタ・カードのフェイルオーバに関する。
データ処理システムは、しばしば複数のプロセッサ複合体を含む。各プロセッサ複合体は、1つまたは複数のマイクロプロセッサ、キャッシュ・メモリ、メイン・メモリ、周辺デバイスおよびバスへのブリッジ、などを含むことができる。たとえばプロセッサ複合体は、ノース・ブリッジおよびサウス・ブリッジを介して周辺機器相互接続(PCI)バスと通信することができる。ネットワーク接続、ストレージ・デバイス、特殊計算エンジンなどの、アダプタ・カード周辺デバイスは、PCIバスを介してプロセッサ複合体と通信することができる。
アダプタ・カードは、通常、回路基板上に取り付けられた複数の半導体回路を備える。アダプタ・カードは、1つまたは複数のコネクタを介してバスに接続することができる。各アダプタ・カードは、1つまたは複数の特殊機能を実行することができる。たとえばアダプタ・カードは、イーサネット・コントローラ、RAID(Redundant Array of Independent Disks)コントローラなどとして機能することができる。
データ処理システムの複数のプロセッサ複合体が、アダプタ・カードへのアクセスを必要とする場合がある。たとえば、2つまたはそれ以上のプロセッサ複合体のクラスタが、耐障害性RAIDサブシステム内のハードディスク・ドライブへデータを書き込むため、およびそこからデータを読み取るために、RAIDコントローラ・アダプタ・カードにアクセスできる。2つのプロセッサ複合体と通信するアダプタ・カードは、ツインテール(twin−tailed)・アダプタ・カードと呼ばれる場合がある。
複数のプロセッサ複合体がアダプタ・カードにアクセスできるが、1つのプロセッサ複合体が構成および障害回復に関してアダプタ・カードを制御する。アダプタ・カードを制御するプロセッサ複合体は、本明細書では所有側(owner)プロセッサ複合体と呼ばれる。所有側プロセッサ複合体は、アダプタ・カードを構成および管理することができる。単一の所有側プロセッサ複合体を提供することで、2つまたはそれ以上のプロセッサ複合体がアダプタ・カードを構成および管理しようとするのを防ぐことができる。
残念なことに、所有側プロセッサ複合体が失敗すると、他のプロセッサ複合体はアダプタ・カードを使用することができない。結果として、データ・プロセッサ・システムの機能は低下する、あるいは減退する、またはその両方の可能性がある。
好ましくは、アダプタ・カードのフェイルオーバのための装置、システム、および方法が提供される。有利には、こうした装置、システム、および方法は、アダプタ・カードの使用を継続できるように、好ましくはアダプタ・カードの制御を、オリジナルの所有側プロセッサ複合体から移すことになる。
アダプタ・カードのフェイルオーバのための装置には、好ましくは、第1のプロセッサ複合体を接続し、第2のプロセッサ複合体を接続し、障害を検出し、スイッチ・モジュールを修正するステップを、機能的に実行するように構成された、複数のモジュールが提供される。説明された諸実施形態におけるこれらのモジュールは、スイッチ・モジュール、検出モジュール、およびセットアップ・モジュールを含む。
スイッチ・モジュールは半導体論理を含み、所有側プロセッサ複合体として、第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続する。所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに論理的に接続する。非所有側プロセッサ複合体は、第2のポートを管理する。
検出モジュールは、半導体論理およびプロセッサ上で実行するソフトウェア命令を含む。加えて検出モジュールは、第1のプロセッサ複合体の障害を検出する。
セットアップ・モジュールは、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。セットアップ・モジュールは、プロセッサ上で実行するソフトウェア命令を含む。装置は、第1のプロセッサ複合体が失敗した場合、第1のプロセッサ複合体から第2のプロセッサ複合体へのフェイルオーバを実行する。
アダプタ・カードのフェイルオーバのための、本発明のシステムも提示される。システムは、データ処理システム内で具体化することができる。とりわけ一実施形態では、システムは、第1のプロセッサ複合体、第2のプロセッサ複合体、およびアダプタ・カードを含む。
第1および第2のプロセッサ複合体は、アダプタ・カードと通信する。第2のプロセッサ複合体は、好ましくはセットアップ・モジュールを含む。アダプタ・カードは、コントローラ、第1のメモリ・モジュール、およびスイッチ・モジュールを含む。
コントローラはアダプタ・カードを制御する。第1のメモリ・モジュールは、ソフトウェア命令およびコントローラに関するセットアップ・データを備える、コントロール・ストアを格納する。スイッチ・モジュールは半導体論理を含み、所有側プロセッサ複合体として、第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続する。所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに論理的に接続する。非所有側プロセッサ複合体は第2のポートを管理する。
セットアップ・モジュールは、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、第1のプロセッサ複合体をアダプタ・カードから論理的に切断するために、スイッチ・モジュールを修正する。
システムは、好ましくは、障害に応答して、アダプタ・カードを所有する第1のプロセッサ複合体からアダプタ・カードを所有する第2のプロセッサ複合体へとフェイルオーバする。
アダプタ・カードのフェイルオーバのための、本発明の方法も提示される。開示された諸実施形態における方法は、実質上、説明された装置およびシステムの動作に関して上記に提示された機能を実施するためのステップを含む。一実施形態では、この方法は、第1のプロセッサ複合体を接続すること、第2のプロセッサ複合体を接続すること、障害を検出すること、およびスイッチ・モジュールを修正することを含む。
スイッチ・モジュールは、所有側プロセッサ複合体として、第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに接続する。所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに接続する。非所有側プロセッサ複合体は、第2のポートを管理する。
検出モジュールは、第1のプロセッサ複合体の障害を検出する。セットアップ・モジュールは、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。
この方法は、好ましくは、アダプタ・カードが引き続き使用可能となるように、第1のプロセッサ複合体から第2のプロセッサ複合体へのフェイルオーバを実行する。
一態様によれば、アダプタ・カードのフェイルオーバのための装置が提供され、この装置は、半導体論理を備え、所有側プロセッサ複合体として第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールであって、所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受信するものであり、さらにスイッチ・モジュールは、非所有側プロセッサ複合体として第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに論理的に接続し、非所有側プロセッサ複合体は第2のポートを管理するものである、スイッチ・モジュールと、半導体論理、およびプロセッサ上で実行するソフトウェア命令を備え、第1のプロセッサ複合体の障害を検出するように構成された、検出モジュールと、プロセッサ上で実行されるソフトウェア命令を備え、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正するように構成された、セットアップ・モジュールと、を備える。
一態様によれば、アダプタ・カードのフェイルオーバのためのシステムが提供され、このシステムは、アダプタ・カードと通信する第1のプロセッサ複合体と、アダプタ・カードと通信し、第1のプロセッサ複合体の障害を検出するように構成された検出モジュールを備える、第2のプロセッサ複合体と、アダプタ・カードを管理するように構成されたコントローラを備えるアダプタ・カードと、ソフトウェア命令およびコントローラに関するセットアップ・データを備えるコントロール・ストアを格納するように構成された第1のメモリ・モジュールと、半導体論理を備え、所有側プロセッサ複合体として第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールと、を備え、所有側プロセッサ複合体は、第2のポートを除いたアダプタ・カードを管理し、アダプタ・カードからのエラー・メッセージを受け取り、さらにスイッチ・モジュールは、非所有側プロセッサ複合体として第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに論理的に接続し、非所有側プロセッサ複合体は第2のポートを管理し、さらに第2のプロセッサ複合体は、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正するように構成された、セットアップ・モジュールを備える。
他の態様によれば、プロセッサ読み取り可能プログラムを有するプロセッサ使用可能媒体を備えたプロセッサ・プログラム製品が提供され、プロセッサ読み取り可能プログラムは、プロセッサ上で実行された場合、所有側プロセッサ複合体として第1のポートを介してアダプタ・カードのスイッチ・モジュールを第1のプロセッサ複合体に接続することであって、所有側プロセッサ複合体は、第2のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る、接続すること、非所有側プロセッサ複合体として第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに接続することであって、非所有側プロセッサ複合体は第2のポートを管理する、接続すること、第1のプロセッサ複合体の障害を検出すること、ならびに、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正することを、プロセッサに実行させる。
他の態様によれば、アダプタ・カードのフェイルオーバのための方法が提供され、この方法は、スイッチ・モジュールを使用して、所有側プロセッサ複合体として第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続することであって、所有側プロセッサ複合体は第2のポートを除いたアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る、接続すること、スイッチ・モジュールを使用して、非所有側プロセッサ複合体として第2のポートを介して第2のプロセッサ複合体をアダプタ・カードに論理的に接続することであって、非所有側プロセッサ複合体は第2のポートを管理する、接続すること、第1のプロセッサ複合体の障害を検出すること、ならびに、所有側プロセッサ複合体として第2のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第1のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正することを、含む。
本明細書全体を通じた、特徴、利点、または同様の言い回しの参照は、本発明を使用して実現可能なすべての特徴および利点が、本発明のいずれかの単一の実施形態におけるものであるべきこと、またはあることを、示唆するものではない。むしろ、特徴および利点に言及する言い回しは、ある実施形態に関して説明された特定の特徴、利点、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味するものと理解されよう。したがって、本明細書全体を通じた特徴および利点の考察、ならびに同様の言い回しは、同じ実施形態に言及するものである場合があるが、必ずしもこれに限定されない。
さらに、本発明の説明した特徴、利点、および特性は、1つまたは複数の実施形態において、任意の好適な様式で組み合わせることができる。当業者であれば、本発明が、特定の実施形態の1つまたは複数の特定の特徴または利点を伴うことなく、実施可能であることを理解されよう。他のインスタンスでは、本発明のすべての実施形態には存在しない可能性のある追加の特徴および利点が、ある実施形態において認識可能である。
本発明の実施形態は、アダプタ・カードを所有する第1のプロセッサ複合体から、第2のプロセッサ複合体へのフェイルオーバを実行する。本発明は、第1のプロセッサ複合体が失敗した場合、アダプタ・カードの継続的な使用をサポートする。本発明のこれらの特徴および利点は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または、以下に示される本発明の実施によって習得することが可能である。
次に、本発明の諸実施形態について、単なる例を挙げることによって、および以下の図面を参照しながら説明する。
本発明に従った、データ処理システムの一実施形態を示す概略ブロック図である。 本発明のアダプタ・カードの一実施形態を示す概略ブロック図である。 本発明のアダプタ・カードの一代替実施形態を示す概略ブロック図である。 本発明のフェイルオーバ装置の一実施形態を示す概略ブロック図である。 本発明のフェイルオーバ方法の一実施形態を示す概略流れ図である。 本発明のアダプタ・カード通信の一実施形態を示す概略ブロック図である。 本発明のアダプタ・カード通信の一代替実施形態を示す概略ブロック図である。 本発明のフェイルオーバ通信の一実施形態を示す概略ブロック図である。
本明細書で説明する多くの機能ユニットは、それらの実装独立性をとりわけ強調するために、モジュールとしてラベル付けされている。たとえば、あるモジュールは、カスタムVLSI回路またはゲート・アレイ、論理チップ、トランジスタ、または他の離散コンポーネントなどの既製品の半導体を備える、ハードウェア回路として実装することができる。あるモジュールは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・アレイ論理、プログラマブル論理デバイスなどの、プログラマブル・ハードウェア・デバイス内に実装することもできる。
モジュールは、様々なタイプのプロセッサによって実行するためのソフトウェア内に実装することもできる。たとえば、実行可能コードの識別モジュールは、たとえばオブジェクト、手続き、または関数として編成可能な、プロセッサ命令の1つまたは複数の物理または論理ブロックを備えることができる。それにもかかわらず、識別モジュールの実行可能コードは物理的にまとめて配置する必要がなく、論理的に組み合わされた場合、モジュールを備え、モジュールの言明された目的を達成する、異なる位置に格納された異種の命令を備えることができる。
実際には、実行可能コードのモジュールは単一の命令または多くの命令とすることが可能であり、いくつかの異なるコード・セグメント全体にわたって、異なるプログラムの中で、およびいくつかのメモリ・デバイスにまたがって、分散することさえも可能である。同様に、動作データは識別可能であり、本明細書ではモジュール内に示されており、任意の好適な形で具体化すること、および任意の好適なタイプのデータ構造内に編成することが可能である。動作データは、単一のデータ・セットとしてまとめること、または、異なるストレージ・デバイスを含む異なる位置にわたって分散させることが可能である。
本明細書全体にわたって「一実施形態」、「実施形態」、または同様の言い回しは、この実施形態に関して説明された特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体にわたって「一実施形態において」、「実施形態において」、および同様の言い回しのフレーズが出現した場合、すべてが同じ実施形態に言及している可能性があるが、これに限定されるものではない。
さらに、説明された本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の好適な様式で組み合わせ可能である。以下の説明では、本発明の諸実施形態を完全に理解するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップの例などの、多数の特定の細部が提供される。しかしながら当業者であれば、本発明が、1つまたは複数の特定の細部なしに、あるいは他の方法、コンポーネント、材料などを使用して、実施可能であることを理解されよう。他のインスタンスでは、本発明の諸態様を不明瞭にすることを避けるために、良く知られた構造、材料、または動作は詳細に図示または説明されない。
図1は、本発明に従った、データ処理システム100の一実施形態を示す概略ブロック図である。データ処理システム100は、1つまたは複数のプロセッサ複合体105、およびアダプタ・カード110を含む。図をわかりやすくするために、2つのプロセッサ複合体105が示されているが、任意数のプロセッサ複合体105を採用することができる。
第1および第2のプロセッサ複合体105a〜bは、1つまたは複数の通信チャネル120を介してアダプタ・カード110と通信する。一実施形態では、通信チャネル120は、周辺機器相互接続高速(PCIe)バスとして構成される。別の方法として、通信チャネル120は、周辺機器相互接続拡張(PCI‐X)バスまたは周辺機器相互接続(PCI)バスとしても構成可能である。当業者であれば、本発明が複数の通信チャネル構成で実施可能であることを理解されよう。
アダプタ・カード110は、第1および第2のプロセッサ複合体105a〜bに対して1つまたは複数の機能を実行する。たとえば、アダプタ・カード110はイーサネット・コントローラとして機能することができる。別の方法として、アダプタ・カード110はRAIDコントローラとして機能することができる。ある実施形態では、アダプタ・カード110はストレージ領域ネットワーク・コントローラとして機能する。当業者であれば、本発明が複数のアダプタ・カードのタイプおよび機能で実施可能であることを理解されよう。
第1のプロセッサ複合体105aは、初期に、所有側プロセッサ複合体として構成される。所有側プロセッサ複合体は、アダプタ・カード110の初期設定、制御、および管理を実行する。たとえば電源投入ブート時に、所有側プロセッサ複合体としての第1のプロセッサ複合体105aは、以下で説明するようにアダプタ・カード110を発見し、初期設定することができる。
第2のプロセッサ複合体105bは、初期に、非所有側プロセッサ複合体として構成される。単に図をわかりやすくするために、1つの非所有側プロセッサ複合体が記載されているが、データ処理システムは複数の非所有側プロセッサ複合体を含むことができる。非所有側プロセッサ複合体も、アダプタ・カード110を使用することができる。たとえば非所有側プロセッサ複合体は、RAIDコントローラ・アダプタ・カード110を使用して、RAIDサブシステムにアクセスすることができる。しかしながら、非所有側プロセッサ複合体は、アダプタ・カード110の初期設定、管理、あるいは制御、またはそれらすべてを実行しない。
アダプタ・カード110は、デバイス115と通信可能である。このデバイスは、ネットワーク・インターフェース、RAIDサブシステム、ストレージ・デバイスなどとすることができる。初期設定時に、所有側プロセッサ複合体はデバイス115を発見し、初期設定することも可能である。非所有側プロセッサ複合体は、以下で説明するように、初期設定時にデバイス115を発見できない場合がある。
第1のプロセッサ複合体105aが失敗した場合、第2のプロセッサ複合体105bがアダプタ・カード110を使用できない可能性がある。結果として、データ処理システム100は不可欠な機能を失う可能性がある。本発明は、好ましい実施形態に従い、以下で説明するように、アダプタ・カード110の継続使用をサポートするために、第1のプロセッサ複合体105aから第2のプロセッサ複合体105bへのアダプタ・カード110の所有権のフェイルオーバを実行する。
図2は、本発明のアダプタ・カード250の一実施形態を示す概略ブロック図である。アダプタ・カード250は、図1のアダプタ・カード110の一実施形態である。アダプタ・カード250の記述は図1の要素を言い表しており、同じ番号は同じ要素を表す。
アダプタ・カード250は、1つまたは複数のポート205、スイッチ・モジュール210、コントローラ230、セットアップ・レジスタ235、メモリ・モジュール240、およびアダプタ・カード機能245を含む。当業者であれば、本発明が追加のポート205、スイッチ・モジュール210、コントローラ230、セットアップ・レジスタ235、メモリ・モジュール240、およびアダプタ・カード機能245、ならびに他のデバイスおよびモジュールで実施できることを理解されよう。
ポート205は、PCIインターフェース、PCIeインターフェース、PCI‐Xインターフェース、などとして構成可能である。第1のプロセッサ複合体105aは第1のポート205aと通信可能であり、第2のプロセッサ複合体105bは第2のポート205bと通信可能である。
スイッチ・モジュール210は、所有側プロセッサ複合体として第1のポート205を介して第1のプロセッサ複合体105aをアダプタ・カード110に論理的および物理的に接続する。所有側プロセッサ複合体は、第2のポート205bを除いてアダプタ・カード110を管理する。加えて所有側プロセッサ複合体は、アダプタ・カード110からエラー・メッセージを受け取る。
さらにスイッチ・モジュール210は、非所有側プロセッサ複合体として、第2のポート205bを介して第2のプロセッサ複合体105bをアダプタ・カード110に論理的および物理的に接続する。非所有側プロセッサ複合体は、第2のポート205bを管理する。
アダプタ・カード機能245は、イーサネット・コントローラ機能、トークン・リング・コントローラ機能などの、通信機能を含むことができる。アダプタ・カード機能245は、RAIDコントローラ機能、ストレージ・コントローラ機能などの、ストレージ管理機能を含むこともできる。
コントローラ230は、アダプタ・カード110を管理する。たとえばコントローラ230は、アダプタ・カード機能245を初期設定および管理することができる。メモリ・モジュール240は、ソフトウェア命令およびコントローラ230に関するセットアップ・データを備えるコントロール・ストアを格納する。コントローラ230は、ソフトウェア命令を実行する、プロセッサ、命令シーケンサなどを含むことができる。ソフトウェア命令は、1つまたは複数のプロセッサ・プログラム製品として構成可能である。
セットアップ・レジスタ235は、2進データ値を格納する。スイッチ・モジュール210、アダプタ・カード機能245、コントローラ230、およびメモリ・モジュール240の機能は、セットアップ・レジスタ235に格納されたデータ値によって修正可能である。たとえば、セットアップ・レジスタ235に格納された値によって、スイッチ・モジュール210に、所有側プロセッサ複合体として第1のポート205aに接続されたプロセッサ複合体105を構成させること、および、非所有側プロセッサ複合体として第2のポート205bに接続されたプロセッサ複合体を構成させることができる。
図3は、本発明のアダプタ・カード350の一代替実施形態を示す概略ブロック図である。アダプタ・カード350は、図1のアダプタ・カード110の代替実施形態である。アダプタ・カード250の記述は図1〜図2の要素を言い表しており、同じ番号は同じ要素を表す。具体的に言えば、ポート205、スイッチ・モジュール210、コントローラ230、およびセットアップ・レジスタ235は、図2のポート205、スイッチ・モジュール210、コントローラ230、およびセットアップ・レジスタ235である。
さらにアダプタ・カード350は、第1および第2のメモリ・モジュール240a〜bを含む。第1のメモリ・モジュール240aは、ソフトウェア命令およびコントローラ230に関するセットアップ・データを備える第1のコントロール・ストアを格納する。一実施形態では、第1のコントロール・ストアは、第1のポート205aと通信するプロセッサ複合体105を所有側プロセッサ複合体として扱うように、および、第2のポート205bと通信するプロセッサ複合体105を非所有側プロセッサ複合体として扱うように、スイッチ・モジュール210およびコントローラ230を構成する。
第2のメモリ・モジュール240bは、同じくソフトウェア命令およびコントローラ230に関するセットアップ・データを備える第2のコントロール・ストアを格納する。一実施形態では、第2のコントロール・ストアは、第2のポート205bと通信するプロセッサ複合体105を所有側プロセッサ複合体として扱うように、および、第1のポート205aと通信するプロセッサ複合体105を非所有側プロセッサ複合体として扱うように、スイッチ・モジュール210およびコントローラ230を構成する。
一実施形態では、第1および第2のメモリ・モジュール240a〜bは、それぞれ2進アドレス・バスおよび2進データ・バスを共有する。セットアップ・レジスタ235に格納された第1の2進値は、第1のメモリ・モジュール240aを使用可能にし、第2のメモリ・モジュール240bを使用禁止にすることができるため、結果として、第1のメモリ・モジュール240aのみが2進データ・バス上にデータを出力する。セットアップ・レジスタ235に格納された反対の第2の2進値は、2進データ・バス上にデータを出力するために、第1のメモリ・モジュール240aを使用禁止にし、第2のメモリ・モジュール240bを使用可能にすることができる。したがって、コントローラ230によって使用されるコントロール・ストアは、セットアップ・レジスタ235に書き込まれた値を使用して選択可能である。
さらにアダプタ・カード350は、RAIDコントローラ305ならびに第1および第2のダウンストリーム・ポート310a〜bを含む。第1および第2のダウンストリーム・ポート310a〜bは、それぞれ、第1および第2のRAIDサブシステム315a〜bと通信する。RAIDコントローラ305、ダウンストリーム・ポート310、およびRAIDサブシステム315は、アダプタ・カード350によってサポート可能であり、制限によって図示されていない、機能の例である。
一実施形態では、第1および第2のプロセッサ複合体105a〜bは、アダプタ・カード350のRAIDコントローラ305を使用して、それぞれRAIDサブシステム315にアクセス可能である。RAIDコントローラ305およびスイッチ・モジュール210は、第1および第2のプロセッサ複合体105の間の優先順位を調停可能であるため、各プロセッサ複合体105はRAIDサブシステム315にアクセスすることができる。さらにRAIDコントローラ305は、パリティ・ストライプ・データの計算、冗長データからの損失データの回復などの、1つまたは複数のRAIDコントローラ機能を、自律的に実行することができる。
図4は、本発明のフェイルオーバ装置400の一実施形態を示す概略ブロック図である。装置400は、図1の1つまたは複数のプロセッサ複合体105および図1〜図3のアダプタ・カード110、250、350で具体化することができる。装置400の記述は、図1〜図3の要素を言い表しており、同じ番号は同じ要素を表す。装置400は、スイッチ・モジュール210、検出モジュール405、およびセットアップ・モジュール410を含む。
スイッチ・モジュール210は、当業者に良く知られたような半導体論理を含む。加えてスイッチ・モジュール210は、クロスバー・スイッチ、ノンブロッキング(non−blocking)2地点間スイッチなどを含むことができる。一実施形態では、スイッチ・モジュール210は、第1のポート205aおよび第2のポート205bを、アダプタ・カード110の1つまたは複数の半導体デバイスに接続することができる。
検出モジュール405は、第2のプロセッサ複合体105bあるいはコントローラ・プロセッサまたはその両方などのプロセッサ上で実行する、半導体論理およびソフトウェア命令を含む。加えて検出モジュール405は、以下で説明するように、第1のプロセッサ複合体105aの障害を検出する。
セットアップ・モジュール410は、所有側プロセッサ複合体として第2のプロセッサ複合体105bをアダプタ・カード110に接続するため、および、障害の検出に応答して、第1のプロセッサ複合体105aをアダプタ・カードから論理的に切断するために、スイッチ・モジュール210を修正する。セットアップ・モジュール410は、第2のプロセッサ複合体105bあるいはコントローラ・プロセッサまたはその両方などのプロセッサ上で実行する、ソフトウェア命令を含む。装置は、第1のプロセッサ複合体から第2のプロセッサ複合体へのフェイルオーバを実行する。
次の概略流れ図は、概して論理流れ図として示される。したがって、示される順序およびラベル付けされたステップは、提示された方法の一実施形態を示す。他のステップおよび方法は、機能、論理、または効果において、例示された方法の1つまたは複数のステップ、あるいはその一部と等価であると考えることができる。加えて、使用されているフォーマットおよび記号は、この方法の論理ステップを説明するために提供され、この方法の範囲を限定するものとは理解されない。流れ図では様々なタイプの矢印および線が使用可能であるが、それらは、対応する方法の範囲を限定するものとは理解されない。実際に、いくつかの矢印または他の連結子は、この方法の論理流れのみを示すために使用することができる。たとえばある矢印は、示された方法の列挙されたステップ間での、指定されていない持続期間の待機または監視を示すことができる。加えて、特定の方法が実行される順序は、示された対応ステップの順序に厳密に固執しても、またはしなくてもよい。
図5は、本発明のフェイルオーバ方法の一実施形態を示す概略流れ図である。方法500は、実質的に、図1〜図4で説明された装置およびシステムの動作に関して、前述の機能を実行するためのステップを含む。一実施形態では、この方法は、プロセッサ読み取り可能プログラムを有するプロセッサ読み取り可能媒体を備えるプロセッサ・プログラム製品で実施される。プロセッサ読み取り可能プログラムは、コントローラ230あるいはプロセッサ複合体105またはその両方などの半導体デバイスに統合可能であり、コントローラ230あるいはプロセッサ複合体105またはその両方と組み合わされたプログラムは、この方法500を実行することができる。
方法500が開始され、スイッチ・モジュール210は、所有側プロセッサ複合体として、第1のポート205aを介して第1のプロセッサ複合体105aをアダプタ・カード110に接続する(505)。所有側プロセッサ複合体は、第2のポート205bを除いてアダプタ・カード110を管理し、アダプタ・カード110からエラー・メッセージを受け取る。たとえば、所有側プロセッサ複合体は、以下で説明するように、電源投入ブート時にアダプタ・カード110を初期設定することができる。所有側プロセッサ複合体は、コントローラ230と直接通信することもできる。他の例では、アダプタ・カード110が、RAIDコントローラ・アダプタ・カード350、およびRAIDサブシステム315でハードディスク・ドライブ障害を検出したRAIDコントローラ・アダプタ・カード350として構成される場合、RAIDコントローラ・アダプタ・カード350は、この障害を記述するエラー・メッセージを所有側プロセッサ複合体に送ることができる。
さらにスイッチ・モジュール210は、非所有側プロセッサ複合体として、第2のポート205bを介して第2のプロセッサ複合体105bをアダプタ・カード110に接続する510。非所有側プロセッサ複合体は、アダプタ・カード110を初期設定しない。加えて、非所有側プロセッサ複合体は、エラー・メッセージ、ステータス・メッセージなどを、アダプタ・カード110から受け取ることはできない。前述の例を続けると、RAIDコントローラ・アダプタ・カード350がハードディスク・ドライブ障害を経験した場合、RAIDコントローラ・アダプタ・カード350は非所有側プロセッサ複合体にエラー・メッセージを送らない。
非所有側プロセッサ複合体は第2のポート205bを管理する。一実施形態では、非所有側プロセッサ複合体のみが第2のポート205bと通信する。別の方法では、非所有側プロセッサ複合体は、第2のポート205bに関するデータ転送速度を設定すること、第2のポート205bにデータを送るように指示することなどが可能である。
検出モジュール405は、第1のプロセッサ複合体105aの障害を検出する(515)。一実施形態では、検出モジュール405は、第2のプロセッサ複合体105b上で実行するソフトウェア命令を備えるプロセッサ・プログラム製品として構成される。検出モジュール405は、第1のプロセッサ複合体105aと定期的に通信することができる。検出モジュール405が、指定された期間、第1のプロセッサ複合体105aと通信できない場合、検出モジュール405は第1のプロセッサ複合体105aの障害を検出することができる(515)。
代替実施形態では、第1および第2のプロセッサ複合体105a〜b上で実行し、これらを管理する、マルチノード・オペレーティング・システムは、第1のプロセッサ複合体105aの障害を検出することができる。マルチノード・オペレーティング・システムは、第1のプロセッサ複合体105aの障害に応答して、検出モジュール405にエラー・メッセージを送ることが可能であり、検出モジュール405は、このエラー・メッセージから第1のプロセッサ複合体105aの障害を検出することができる(515)。
ある実施形態では、検出モジュール405は、コントローラ230のプロセッサ上で実行するプロセッサ・プログラム製品と結合された半導体論理として構成される。第1のプロセッサ複合体105aが、特定の期間、アダプタ・カード110と通信しない場合、検出モジュール405は第1のプロセッサ複合体105aの障害を検出することができる(515)。たとえば、第1のプロセッサ複合体105aが2分間アダプタ・カード110と通信しない場合、検出モジュール405は第1のプロセッサ複合体105aに照会することができる。第1のプロセッサ複合体105aが応答しない場合、検出モジュール405は第1のプロセッサ複合体105aの障害を検出することができる(515)。
セットアップ・モジュール410は、障害の検出に応答して、所有側プロセッサ複合体として、第2のプロセッサ複合体105bをアダプタ・カード110に論理的に接続するために、スイッチ・モジュール210を修正する(520)。一実施形態では、セットアップ・モジュール410は、第2のプロセッサ複合体105b上で実行するプロセッサ・プログラム製品を備える。検出モジュール405による第1のプロセッサ複合体105aの障害の検出515に応答して、セットアップ・モジュール410は、指定された2進値をアダプタ・カード110の第2のポート205bに送ることができる。指定された2進値は、コントローラ230に対して、非所有側プロセッサ複合体からコマンドを受け入れるように指示することができる。その後、第2のプロセッサ複合体105bは、所有側プロセッサ複合体として第2のポート205bと通信するプロセッサ複合体105を指定する2進値を、セットアップ・レジスタ235に書き込むことができる。
代替実施形態では、第2のプロセッサ複合体105b上で実行するセットアップ・モジュール410は、第2のメモリ・モジュール240bの第2のコントロール・ストアをコントローラ230に使用させる2進値を、セットアップ・レジスタ235に書き込む。さらにセットアップ・モジュール410は、コントローラ230が第2のコントロール・ストアをロードおよび実行するように、アダプタ・カード110を再初期設定することができる。
一実施形態では、セットアップ・モジュール410は、半導体論理、あるいはコントローラ230のプロセッサ上で実行する1つまたは複数のプロセッサ・プログラム製品、またはその両方を備える。セットアップ・モジュール410は、スイッチ・モジュール210に、第2のポート205bと通信するプロセッサ複合体105を所有側プロセッサ複合体として扱わせる、2進値のセットアップ・レジスタ235への書き込みを修正することができる。加えて、セットアップ・モジュール410は、第2のプロセッサ複合体105bに所有側プロセッサ複合体のタスクを想定するように要求するメッセージを、第2のプロセッサ複合体105bに送ることができる。
さらにセットアップ・モジュール410は、障害の検出に応答して、アダプタ・カード110から第1のプロセッサ複合体105aを論理的に切断することができる。一実施形態では、セットアップ・モジュール410は、スイッチ・モジュール210に第1のポート205aを介した通信の受け取りを停止させる2進値を、セットアップ・レジスタ235に書き込む。ある実施形態では、セットアップ・モジュール410は、第1のプロセッサ複合体105aをデータ処理システム100から物理的に切断するように要求するメッセージをシステム管理者に送る。
第1のプロセッサ複合体105aの障害を検出すること(515)、および、所有側プロセッサ複合体として第2のプロセッサ複合体105bに接続するためにスイッチ・モジュール210を修正すること(520)によって、本発明は、第1のプロセッサ複合体105aが失敗した場合に、第1から第2のプロセッサ複合体105bへの高速フェイルオーバをサポートする。結果として、1つまたは複数のプロセッサ複合体105はアダプタ・カード110の使用を継続することができる。
図6は、本発明のアダプタ・カード通信600の一実施形態を示す概略ブロック図である。通信600の記述は図1〜図5の要素を言い表しており、同じ番号は同じ要素を表す。通信600は、第1のプロセッサ複合体105a、第2のプロセッサ複合体105b、アダプタ・カード110、およびRAIDサブシステム315の、論理表現を含む。
通信600は、第1のプロセッサ複合体105aを所有側プロセッサ複合体として示す。電源投入ブートの初期設定、ソフト・リセットなどの初期設定時に、第1のプロセッサ複合体105aは、通信チャネル120に接続された1つまたは複数のデバイスとの発見通信を行う。たとえば、通信チャネル120がPCIeバスの場合、第1のプロセッサ複合体105aは、PCIeバスに接続されたアダプタ・カード110などの各デバイスに、発見要求を送る。アダプタ・カード110はこの発見要求に対して、アダプタ・カード110を識別する識別応答で応えることができる。発見要求および識別応答は、所有側通信605として示される。スイッチ・モジュール210は、所有側プロセッサ複合体の第1のプロセッサ複合体605とアダプタ・カード110との間の所有側通信605をサポートするのみである。
スイッチ・モジュール210が第1のプロセッサ複合体105aとの発見通信605をサポートしているため、第1のプロセッサ複合体105aはアダプタ・カード110を初期設定し、第1のプロセッサ複合体105aにエラー・メッセージ、ステータス・メッセージなどを送るよう、アダプタ・カード110に指示することができる。第1のプロセッサ複合体105aは、コントローラ230と直接通信することもできる。第2のプロセッサ複合体105bはアダプタ・カード110を初期設定することはできない。
第1のプロセッサ複合体105bは、アダプタ・カード110を介して、示されたRAIDサブシステム315などのデバイスに発見通信610を送ることもできる。したがって第1のプロセッサ複合体105aは、RAIDサブシステム315を初期設定することもできる。これに対して第2のプロセッサ複合体105bは、アダプタ・カード110をエンドポイントとみなす。したがって第2のプロセッサ複合体105bが、RAIDサブシステム315などのデバイスを認識するか、または初期設定を試みることはない。
図7は、本発明のアダプタ・カード通信の一代替実施形態を示す概略ブロック図である。通信700は、図6の第1のプロセッサ複合体105a、第2のプロセッサ複合体105b、アダプタ・カード110、およびRAIDサブシステム115の、論理表現を示す。
図に示されるように、セットアップ・モジュール410が、所有側プロセッサ複合体として第2のプロセッサ複合体105bをアダプタ・カード110に論理的に接続するためにスイッチ・モジュール210を修正(520)した後、第2のプロセッサ複合体105bは、アダプタ・カード110との所有側通信605を有する。したがって第2のプロセッサ複合体は、アダプタ・カード110を初期設定すること、アダプタ・カード110からエラー・メッセージを受け取ることなどが可能である。セットアップ・モジュール410は、第1のプロセッサ複合体105aを論理的に切断することも可能である。
図8は、本発明のフェイルオーバ通信800の一実施形態を示す概略ブロック図である。通信800は、図7の第1のプロセッサ複合体105a、第2のプロセッサ複合体105b、アダプタ・カード110、およびRAIDサブシステム315の、論理表現を示す。
所有側プロセッサ複合体として、第2のプロセッサ複合体105bはRAIDサブシステム315に発見通信610を送ることができる。加えて、セットアップ・モジュール410は、第1のプロセッサ・モジュール110をアダプタ・カード110から論理的に切断するために、スイッチ・モジュール210を修正する(540)。したがって、第1のプロセッサ・モジュール110は、ランダム・データなどの2進データをアダプタ・カード110に送ることができるが、アダプタ・カード110はこの送られた2進データを受け取ることができない。
本発明の実施形態は、アダプタ・カード110を所有する第1のプロセッサ複合体105aから、第2のプロセッサ複合体105bへのフェイルオーバを実行する。本発明は、好ましくは、第1のプロセッサ複合体105aが失敗した場合に、アダプタ・カード110の使用継続をサポートする。
本発明は、その趣旨または不可欠な特性から逸脱することなく、他の特定の形で具体化することが可能である。説明した諸実施形態は、すべての点において単なる例示的なものであり、制約的でないとみなされるものとする。したがって本発明の範囲は、前述の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるものとする。

Claims (36)

  1. 半導体論理を含み、所有側プロセッサ複合体として、第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールであって、前記所有側プロセッサ複合体は、第2のポートを除いて前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取り、さらに前記スイッチ・モジュールは、非所有側プロセッサ複合体として、前記第2のポートを介して第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続し、前記非所有側プロセッサ複合体は、前記第2のポートを管理する、スイッチ・モジュールと、
    半導体論理およびプロセッサ上で実行するソフトウェア命令を含み、前記第1のプロセッサ複合体の障害を検出するように構成された、検出モジュールと、
    プロセッサ上で実行するソフトウェア命令を含み、前記所有側プロセッサ複合体として前記第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第1のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するように構成された、セットアップ・モジュールと、
    を備える、アダプタ・カードのフェイルオーバのための装置。
  2. 前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項1に記載の装置。
  3. 前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項1または2に記載の装置。
  4. 前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項1、2、または3に記載の装置。
  5. 前記セットアップ・モジュールが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項1、2、3、または4に記載の装置。
  6. 前記セットアップ・モジュールが、第1のメモリ・モジュールのコントロール・ストアの使用から第2のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項1、2、3、または4に記載の装置。
  7. 前記アダプタ・カードが、周辺機器相互接続高速(PCIe)インターフェースを使用して前記第1および第2のプロセッサ複合体と通信する、前記請求項のいずれか一項に記載の装置。
  8. 前記アダプタ・カードが、周辺機器相互接続拡張(PCI‐X)インターフェースおよび周辺機器相互接続(PCI)インターフェースから選択されたインターフェースを使用して、前記第1および第2のプロセッサ複合体と通信する、請求項1から6のいずれか一項に記載の装置。
  9. アダプタ・カードと通信する第1のプロセッサ複合体と、
    前記アダプタ・カードと通信し、前記第1のプロセッサ複合体の障害を検出するように構成された検出モジュールを備える、第2のプロセッサ複合体と、
    前記アダプタ・カードを管理するように構成されたコントローラを備えるアダプタ・カードと、
    ソフトウェア命令および前記コントローラに関するセットアップ・データを備えるコントロール・ストアを格納するように構成された第1のメモリ・モジュールと、
    半導体論理を備え、所有側プロセッサ複合体として第1のポートを介して前記第1のプロセッサ複合体を前記アダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールと、を備え、前記所有側プロセッサ複合体は、第2のポートを除いた前記アダプタ・カードを管理し、前記アダプタ・カードからのエラー・メッセージを受け取り、さらに前記スイッチ・モジュールは、非所有側プロセッサ複合体として前記第2のポートを介して前記第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続し、前記非所有側プロセッサ複合体は前記第2のポートを管理し、
    前記第2のプロセッサ複合体は、前記所有側プロセッサ複合体として前記第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第1のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するように構成された、セットアップ・モジュールをさらに備える、
    アダプタ・カードのフェイルオーバのためのシステム。
  10. 前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項9に記載のシステム。
  11. 前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項9に記載のシステム。
  12. 前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項9または10に記載のシステム。
  13. 前記セットアップ・モジュールが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項9、10、または11に記載のシステム。
  14. 前記セットアップ・モジュールが、第1のメモリ・モジュールのコントロール・ストアの使用から第2のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項9、10、または11に記載のシステム。
  15. 前記アダプタ・カードが、PCIeインターフェースを使用して前記第1および第2のプロセッサ複合体と通信する、請求項9から14のいずれか一項に記載のシステム。
  16. 前記アダプタ・カードが、PCI‐XインターフェースおよびPCIインターフェースから選択されたインターフェースを使用して、前記第1および第2のプロセッサ複合体と通信する、請求項9から14のいずれか一項に記載のシステム。
  17. 前記アダプタ・カードがイーサネット・コントローラとして構成された、請求項9から16のいずれか一項に記載のシステム。
  18. 前記アダプタ・カードが、Redundant Array of Independent Disks(RAID)コントローラとして構成された、請求項9から16のいずれか一項に記載のシステム。
  19. 前記アダプタ・カードが、ストレージ領域ネットワーク・コントローラとして構成された、請求項9から16のいずれか一項に記載のシステム。
  20. プロセッサ読み取り可能プログラムを有するプロセッサ使用可能媒体を備えたプロセッサ・プログラムであって、前記プロセッサ読み取り可能プログラムは、プロセッサ上で実行された場合、
    所有側プロセッサ複合体として第1のポートを介してアダプタ・カードのスイッチ・モジュールを第1のプロセッサ複合体に接続することであって、前記所有側プロセッサ複合体は、第2のポートを除いて前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取る、接続すること、
    非所有側プロセッサ複合体として前記第2のポートを介して第2のプロセッサ複合体を前記アダプタ・カードに接続することであって、前記非所有側プロセッサ複合体は前記第2のポートを管理する、接続すること、
    前記第1のプロセッサ複合体の障害を検出すること、および、
    前記所有側プロセッサ複合体として前記第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第1のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正すること、
    を、前記プロセッサに実行させる、プロセッサ・プログラム。
  21. 前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項20に記載のプロセッサ・プログラム。
  22. 前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項20または21に記載のプロセッサ・プログラム。
  23. 前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項20、21、または22に記載のプロセッサ・プログラム。
  24. 前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに接続することを、前記プロセッサに実行させるように構成された、請求項20、21、22、または23に記載のプロセッサ・プログラム。
  25. さらに前記プロセッサ読み取り可能プログラムが、第1のメモリ・モジュールのコントロール・ストアの使用から第2のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに接続することを、前記プロセッサに実行させるように構成された、請求項20、21、22、または23に記載のプロセッサ・プログラム。
  26. 前記アダプタ・カードが、PCIeインターフェースを使用して前記第1および第2のプロセッサ複合体と通信する、請求項20から25のいずれか一項に記載のプロセッサ・プログラム。
  27. 前記アダプタ・カードが、PCI‐XインターフェースおよびPCIインターフェースから選択されたインターフェースを使用して、前記第1および第2のプロセッサ複合体と通信する、請求項20から25のいずれか一項に記載のプロセッサ・プログラム。
  28. スイッチ・モジュールを使用して、所有側プロセッサ複合体として第1のポートを介して第1のプロセッサ複合体をアダプタ・カードに論理的に接続するステップであって、前記所有側プロセッサ複合体は第2のポートを除いた前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取る、接続するステップと、
    前記スイッチ・モジュールを使用して、非所有側プロセッサ複合体として前記第2のポートを介して第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続するステップであって、前記非所有側プロセッサ複合体は前記第2のポートを管理する、接続するステップと、
    前記第1のプロセッサ複合体の障害を検出するステップと、
    前記所有側プロセッサ複合体として前記第2のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第1のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するステップと、
    を含む、アダプタ・カードのフェイルオーバのための方法。
  29. 前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項28に記載の方法。
  30. 前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項28または29に記載の方法。
  31. 前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項28、29、または30に記載の方法。
  32. 前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正するステップが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングするステップを含む、請求項28、29、30、または31に記載の方法。
  33. 前記所有側プロセッサ複合体として前記第2のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正するステップが、第1のメモリ・モジュールのコントロール・ストアの使用から第2のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチするステップを含む、請求項28、29、30、または31に記載の方法。
  34. 前記アダプタ・カードが、周辺機器相互接続高速(PCIe)インターフェースを使用して前記第1および第2のプロセッサ複合体と通信する、請求項28から33のいずれか一項に記載の方法。
  35. 前記アダプタ・カードが、周辺機器相互接続拡張(PCI‐X)インターフェースおよび周辺機器相互接続(PCI)インターフェースから選択されたインターフェースを使用して、前記第1および第2のプロセッサ複合体と通信する、請求項28から33のいずれか一項に記載の方法。
  36. プログラムがコンピュータ上で実行された場合、請求項28から35のいずれか一項に記載の方法を実行するように適合されたプログラム・コード手段を備える、コンピュータ・プログラム。
JP2010503518A 2007-04-20 2008-04-18 アダプタ・カードのフェイルオーバのための装置、システム、方法、およびコンピュータ・プログラム Expired - Fee Related JP5322064B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/738,142 2007-04-20
US11/738,142 US7870417B2 (en) 2007-04-20 2007-04-20 Apparatus, system, and method for adapter card failover
US11/738,150 US20080263391A1 (en) 2007-04-20 2007-04-20 Apparatus, System, and Method For Adapter Card Failover
US11/738,150 2007-04-20
PCT/EP2008/054722 WO2008128990A2 (en) 2007-04-20 2008-04-18 Apparatus, system, and method for adapter card failover

Publications (2)

Publication Number Publication Date
JP2010533900A true JP2010533900A (ja) 2010-10-28
JP5322064B2 JP5322064B2 (ja) 2013-10-23

Family

ID=39769314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010503518A Expired - Fee Related JP5322064B2 (ja) 2007-04-20 2008-04-18 アダプタ・カードのフェイルオーバのための装置、システム、方法、およびコンピュータ・プログラム

Country Status (4)

Country Link
EP (1) EP2149089A2 (ja)
JP (1) JP5322064B2 (ja)
KR (1) KR101143684B1 (ja)
WO (1) WO2008128990A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016162110A (ja) * 2015-02-27 2016-09-05 サイレックス・テクノロジー株式会社 デバイスサーバ、デバイス利用方法、および、プログラム、

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011157663A1 (de) 2010-06-15 2011-12-22 Bayer Cropscience Ag Neue ortho-substituierte arylamid-derivate
US10102074B2 (en) 2015-12-01 2018-10-16 International Business Machines Corporation Switching allocation of computer bus lanes
US10296484B2 (en) 2015-12-01 2019-05-21 International Business Machines Corporation Dynamic re-allocation of computer bus lanes
KR101767181B1 (ko) * 2017-02-21 2017-08-22 한국과학기술정보연구원 다목적 어댑터 카드 및 그 통합 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469740A (ja) * 1990-07-11 1992-03-04 Hitachi Ltd 二重化システムの系切り替え方法
JPH04205033A (ja) * 1990-11-29 1992-07-27 Tamagawa Seiki Co Ltd Cpuによる機器制御方法
JP2002055745A (ja) * 2000-08-01 2002-02-20 Nexcom Internatl Co Ltd ホットスワッププロセッサカード及びバス
JP2002202897A (ja) * 2000-12-28 2002-07-19 Yokogawa Electric Corp 切換装置
US20040193737A1 (en) * 2003-03-31 2004-09-30 Huffman Amber D. Apparatus, method and system to couple one or more hosts to a storage device using unique signal from host
JP2005317021A (ja) * 2004-04-28 2005-11-10 Microsoft Corp 設定可能なpciエクスプレススイッチ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845467B1 (en) * 2001-02-13 2005-01-18 Cisco Systems Canada Co. System and method of operation of dual redundant controllers
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0469740A (ja) * 1990-07-11 1992-03-04 Hitachi Ltd 二重化システムの系切り替え方法
JPH04205033A (ja) * 1990-11-29 1992-07-27 Tamagawa Seiki Co Ltd Cpuによる機器制御方法
JP2002055745A (ja) * 2000-08-01 2002-02-20 Nexcom Internatl Co Ltd ホットスワッププロセッサカード及びバス
JP2002202897A (ja) * 2000-12-28 2002-07-19 Yokogawa Electric Corp 切換装置
US20040193737A1 (en) * 2003-03-31 2004-09-30 Huffman Amber D. Apparatus, method and system to couple one or more hosts to a storage device using unique signal from host
JP2005317021A (ja) * 2004-04-28 2005-11-10 Microsoft Corp 設定可能なpciエクスプレススイッチ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016162110A (ja) * 2015-02-27 2016-09-05 サイレックス・テクノロジー株式会社 デバイスサーバ、デバイス利用方法、および、プログラム、

Also Published As

Publication number Publication date
KR20090130850A (ko) 2009-12-24
WO2008128990A2 (en) 2008-10-30
WO2008128990A3 (en) 2009-01-15
JP5322064B2 (ja) 2013-10-23
KR101143684B1 (ko) 2012-05-09
EP2149089A2 (en) 2010-02-03

Similar Documents

Publication Publication Date Title
US7870417B2 (en) Apparatus, system, and method for adapter card failover
US8321722B2 (en) Storage device, and data path failover method of internal network of storage controller
US20080263391A1 (en) Apparatus, System, and Method For Adapter Card Failover
JP7002346B2 (ja) ストレージシステム及びその動作方法
US7519854B2 (en) Internal failover path for SAS disk drive enclosure
US20170147456A1 (en) PCIe NETWORK SYSTEM WITH FAIL-OVER CAPABILITY AND OPERATION METHOD THEREOF
US6246666B1 (en) Method and apparatus for controlling an input/output subsystem in a failed network server
US20080126651A1 (en) Early Notification of Error Via Software Interrupt and Shared Memory Write
US20080005470A1 (en) System and method for sharing sata drives in active-active raid controller system
US7933966B2 (en) Method and system of copying a memory area between processor elements for lock-step execution
KR102646616B1 (ko) 판독 명령 실행을 위한 NVMeoF RAID 구현 방법
JP2012508925A (ja) 直接接続ストレージ・システムのためのアクティブ−アクティブ・フェイルオーバー
JP5322064B2 (ja) アダプタ・カードのフェイルオーバのための装置、システム、方法、およびコンピュータ・プログラム
US8244948B2 (en) Method and system for combining multiple SAS expanders into a SAS switch
US20160239371A1 (en) System and method for peripheral bus device failure management
JP2006302287A (ja) 冗長i/oインターフェース管理
US10902166B2 (en) System and method for isolating faults in a resilient system
JP5790723B2 (ja) クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム
US8055934B1 (en) Error routing in a multi-root communication fabric
WO2023121775A1 (en) System, method, apparatus and architecture for dynamically configuring device fabrics
US20040059862A1 (en) Method and apparatus for providing redundant bus control
JP2009053946A (ja) 二重化コントーラ構成ブロックデバイス制御装置
CN104170307A (zh) 失效切换方法、装置和系统
JP4755050B2 (ja) データ処理装置、モード管理装置、及びモード管理方法
WO2022155919A1 (zh) 一种故障处理方法、装置及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120125

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120125

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120806

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130425

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130507

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: 20130620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130620

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130711

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees