KR20090130850A - 어댑터 카드 장애극복 장치, 시스템 및 방법 - Google Patents

어댑터 카드 장애극복 장치, 시스템 및 방법

Info

Publication number
KR20090130850A
KR20090130850A KR1020097016914A KR20097016914A KR20090130850A KR 20090130850 A KR20090130850 A KR 20090130850A KR 1020097016914 A KR1020097016914 A KR 1020097016914A KR 20097016914 A KR20097016914 A KR 20097016914A KR 20090130850 A KR20090130850 A KR 20090130850A
Authority
KR
South Korea
Prior art keywords
adapter card
processor complex
processor
owner
port
Prior art date
Application number
KR1020097016914A
Other languages
English (en)
Other versions
KR101143684B1 (ko
Inventor
캐롤 스파넬
앤드류 데일 월스
쳉-청 송
스테판 브리닉
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
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 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20090130850A publication Critical patent/KR20090130850A/ko
Application granted granted Critical
Publication of KR101143684B1 publication Critical patent/KR101143684B1/ko

Links

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 프로세서 컴플렉스를 어댑터 카드로부터 논리적으로 분리하기 위해 스위치 모듈을 수정한다.

Description

어댑터 카드 장애극복 장치, 시스템 및 방법{APPARATUS, SYSTEM, AND METHOD FOR ADAPTER CARD FAILOVER}
본 발명은 어댑터 카드에 관한 것으로, 특히 어댑터 카드 장애극복(failover)에 관한 것이다.
데이터 처리 시스템은 종종 복수의 프로세서 컴플렉스(processor complexes)를 포함한다. 각각의 프로세서 컴플렉스는 하나 이상의 마이크로프로세서, 캐시 메모리, 메인 메모리, 주변 장치 및 버스로의 브리지(bridges) 등을 포함할 수 있다. 예컨대, 프로세서 컴플렉스는 노스 브리지(north bridge) 및 사우스 브리지(south bridge)를 통해 PCI(Peripheral Component Interconnect) 버스와 통신할 수 있다. 네트워크 접속, 기억 장치, 특수 컴퓨팅 엔진 등과 같은 어댑터 카드 주변 장치는 PCI 버스를 통해 프로세서 컴플렉스와 통신할 수 있다.
어댑터 카드는 전형적으로 회로 기판상에 장착된 복수의 반도체 회로를 포함한다. 어댑터 카드는 하나 이상의 커넥터를 통해 버스에 연결될 수 있다. 각각의 어댑터 카드는 하나 이상의 특수 기능을 수행할 수 있다. 예컨대, 어댑터 카드는 이더넷 제어기, RAID(Redundant Array of Independent Disks) 제어기 등으로서의 기능을 할 수 있다.
데이터 처리 시스템의 하나 이상의 프로세서 컴플렉스는 어댑터 카드에 대한 액세스를 요구할 수 있다. 예컨대, 둘 이상의 프로세서 컴플렉스들의 클러스터가 무정지형(fault-tolerant) RAID 서브시스템에서 하드 디스크 드라이브에 데이터를 기록하고 하드 디스크 드라이브로부터 데이터를 판독하기 위해 RAID 제어기 어댑터 카드를 액세스할 수 있다. 2개의 프로세서 컴플렉스와 통신하는 어댑터 카드를 트윈-테일(twin-tailed) 어댑터 카드라고도 할 수 있다.
복수의 프로세서 컴플렉스들이 어댑터 카드를 액세스할 수 있더라도, 하나의 프로세서 컴플렉스가 구성 및 장애 복구에 의해 어댑터 카드를 제어한다. 어댑터 카드를 제어하는 프로세서 컴플렉스를 여기서는 소유자 프로세서 컴플렉스(owner processor complex)라고 한다. 소유자 프로세서 컴플렉스는 어댑터 카드를 구성 및 관리할 수 있다. 단일의 소유자 프로세서 컴플렉스를 제공함으로써, 둘 이상의 프로세서 컴플렉스들이 어댑터 카드를 구성 및 관리하려는 시도를 막을 수 있다.
불행하게도, 소유자 프로세서 컴플렉스에 장애가 생기면, 다른 프로세서 컴플렉스들은 어댑터 카드를 사용할 수가 없다. 결과적으로, 데이터 프로세서 시스템의 기능은 저하 및/또는 손상될 수 있다.
도 1은 본 발명에 따른 데이터 처리 시스템의 일 실시예를 예시한 개략적인 블록도.
도 2는 본 발명의 어댑터 카드의 일 실시예를 예시한 개략적인 블록도.
도 3은 본 발명의 어댑터 카드의 하나의 대안 실시예를 예시한 개략적인 블록도.
도 4는 본 발명의 장애극복 장치의 일 실시예를 예시한 개략적인 블록도.
도 5는 본 발명의 장애극복 방법의 일 실시예를 예시한 개략적인 플로 차트.
도 6은 본 발명의 어댑터 카드 통신의 일 실시예를 예시한 개략적인 블록도.
도 7은 본 발명의 어댑터 카드 통신의 하나의 대안 실시예를 예시한 개략적인 블록도.
도 8은 본 발명의 장애극복 통신의 일 실시예를 예시한 개략적인 블록도.
바람직하게, 어댑터 카드 장애극복 장치, 시스템, 및 방법이 제공되어 있다. 이러한 장치, 시스템, 및 방법은 바람직하게는 어댑터 카드의 지속적인 사용을 위해 원래 소유자 프로세서 컴플렉스로부터 어댑터 카드의 제어권을 넘겨받는다.
어댑터 카드 장애극복 장치에는, 바람직하게, 제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 프로세서 컴플렉스를, 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서, 제1 포트를 통해 어댑터 카드에 논리적으로 연결하고, 제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 또한 연결하는 상기 스위치 모듈; 반도체 로직, 및 프로세서상에서 실행되는 소프트웨어 명령을 포함하되, 상기 제1 프로세서 컴플렉스의 장애를 검출하도록 구성된 검출 모듈; 및 프로세서상에서 실행되는 소프트웨어 명령을 포함하되, 상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하도록 구성된 셋업 모듈을 포함한다.
일 양태에 따라, 어댑터 카드 장애극복 시스템이 제공되어 있으며, 상기 시스템은 어댑터 카드와 통신하는 제1 프로세서 컴플렉스; 상기 어댑터 카드와 통신하며, 상기 제1 프로세서 컴플렉스의 장애를 검출하도록 구성된 검출 모듈을 포함하는 제2 프로세스 컴플렉스를 포함하고, 상기 어댑터 카드는 상기 어댑터 카드를 관리하도록 구성된 제어기; 상기 제어기를 위한 소프트웨어 명령 및 셋업 데이터를 포함하는 제어 스토어를 저장하도록 구성된 제1 메모리 모듈; 반도체 로직을 포함하되, 상기 제1 프로세서 컴플렉스를, 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서, 제1 포트를 통해 상기 어댑터 카드에 논리적으로 연결하고, 상기 제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 또한 연결하도록 구성된 스위치 모듈을 포함하며, 상기 제2 프로세서 컴플렉스는 상기 제2 프로세서 컴플렉스를 상기 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하도록 구성된 셋업 모듈을 더 포함한다.
다른 양태에 따라, 프로세서 판독가능 프로그램을 가진 프로세서 사용가능 매체를 포함하는 프로세서 프로그램 제품이 제공되어 있고, 상기 프로세서 판독가능 프로그램은 프로세서상에서 실행될 때 상기 프로세서가, 어댑터 카드의 스위치 모듈을 제1 포트를 통해, 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서의 제1 프로세서 컴플렉스에 연결하고; 제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 연결하며; 상기 제1 프로세서 컴플렉스의 장애를 검출하고; 상기 제2 프로세서 컴플렉스를 상기 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하고 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하도록 상기 스위치 모듈을 수정하도록 한다.
또 다른 양태에 따라, 어댑터 카드 장애극복 방법이 제공되어 있으며, 상기 방법은 스위치 모듈을 사용하여 제1 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 제1 포트를 통해 어댑터 카드에 논리적으로 연결하되, 상기 소유자 프로세서 컴플렉스는 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 단계; 상기 스위치 모듈을 사용하여 제2 프로세서 컴플렉스를 비소유자 프로세서 컴플렉스로서 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 연결하되, 상기 비소유자 프로세서 컴플렉스는 상기 제2 포트를 관리하는 단계; 상기 제1 프로세서 컴플렉스의 장애를 검출하는 단계; 상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하는 단계를 포함한다.
이 명세서 전반에 걸쳐 특징, 이점, 또는 유사한 표현은 본 발명으로 실현될 수 있는 특징 및 이점 모두가 본 발명의 단일의 실시예에 존재해야 하거나 존재함을 내포하는 것은 아니다. 오히려, 특징 및 이점을 언급하는 표현은 일 실시예와 관련하여 설명된 특정한 특징, 이점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전반에 걸쳐 특징 및 이점, 및 유사한 표현의 설명은 동일한 실시예를 참조할 수 있으나 반드시 그러한 것은 아니다.
또한, 본 발명의 설명된 특징, 이점, 및 특성은 하나 이상의 실시예에서 어떤 적절한 방식으로 조합될 수 있다. 당업자는 특별한 실시예의 하나 이상의 특정 특징 또는 이점 없이도 실시될 수 있음을 인식할 것이다. 다른 예에서, 추가적인 특징 및 이점은 어떤 실시예에서 인식될 수 있으며, 본 발명의 모든 실시예들에서 제공되지 않을 수 있다.
본 발명의 실시예는 어댑터 카드를 소유한 제1 프로세서 컴플렉스로부터 제2 프로세서 컴플렉스로의 장애극복을 수행한다. 본 발명은 바람직하게 제1 프로세서 컴플렉스에 장애가 생길 때 어댑터 카드의 지속적인 사용을 지원한다. 본 발명의 이들 특징 및 이점은 다음의 설명 및 첨부된 청구의 범위로부터 보다 명백해질 것이며, 또는 이하에서 설명되는 본 발명의 실시에 의해 학습될 수도 있다.
이제 본 발명의 실시예들을 단지 예로서 첨부 도면을 참조하여 설명한다.
본 명세서에 설명되는 많은 기능 유닛들은 특히 이들의 구현 독립성을 강조하기 위해 모듈이라고 표현되어 있다. 예컨대, 모듈은 주문형 VLSI 회로 또는 게이트 어레이; 로직 칩, 트랜지스터, 또는 다른 개별 구성요소와 같은 기성품 반도체를 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 FPGA(field programmable gate arrays), 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스 등과 같은 프로그래머블 하드웨어 디바이스로 구현될 수 있다.
모듈들은 또한 각종 타입의 프로세서에 의한 실행을 위해 소프트웨어로 구현될 수도 있다. 실행가능한 코드의 식별된 모듈은, 예컨대, 오브젝트, 절차, 또는 기능으로서 구성될 수 있는 프로세서 명령의 하나 이상의 물리 또는 논리 블록을 포함할 수도 있다. 그럼에도 불구하고, 식별된 모듈의 실행 파일들은 물리적으로 함께 위치될 필요가 없으나, 논리적으로 함께 결합될 때, 모듈을 포함하고 모듈의 언급된 목적을 달성하는 상이한 위치들에 저장된 서로 다른 명령들을 포함할 수 있다.
실제로, 실행가능 코드의 모듈은 단일 명령 또는 다수의 명령일 수 있으며, 심지어 상이한 프로그램들 사이에 그리고 여러 메모리 디바이스들에 걸쳐 여러 상이한 코드 세그먼트들에 분산될 수 있다. 유사하게, 운용 데이터가 식별되고 여기서는 모듈 내에 예시될 수 있으며, 어떤 적합한 형태로 구현될 수 있고 어떤 적합한 타입의 데이터 구조 내에 구성될 수 있다. 운용 데이터는 단일 데이터 세트로서 수집될 수 있고, 또는 상이한 기억장치들을 포함하는 상이한 위치들에 분포될 수 있다.
본 명세서 전반에 걸쳐 "일 실시예", "실시예" 또는 유사한 표현은 실시예와 관련하여 설명된 특별한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸쳐서 표현 "일 실시예에서", "실시예에서" 및 유사한 표현은 모두 동일한 실시예를 언급할 수도 있으나 반드시 그러한 것은 아니다.
또한, 본 발명의 설명되는 특징, 구조, 또는 특성은 하나 이상의 실시예에서 적합한 방식으로 조합될 수 있다. 다음의 설명에서, 본 발명의 실시예의 철저한 이해를 제공하기 위해 프로그래밍, 소프트웨어 모듈, 사용자 선택, 네트워크 트랜잭션, 데이터베이스 질의, 데이터베이스 구조, 하드웨어 모듈, 하드웨어 회로, 하드웨어 칩 등의 예들과 같은 수많은 특정 상세 내용이 제공된다. 그러나, 본 발명은 하나 이상의 특정 상세 내용 없이 또는 다른 방법, 구성요소, 재료 등으로 실시될 수도 있음을 당업자는 인식할 것이다. 다른 예에서, 잘 알려진 구조, 재료, 또는 동작은 본 발명의 양태들이 모호하지 않도록 상세하게 도시 또는 설명하지 않는다.
도 1은 본 발명에 따른 데이터 처리 시스템(100)의 일 실시예를 예시하는 개략적인 블록도이다. 데이터 처리 시스템(100)은 하나 이상의 프로세서 컴플렉스(105) 및 어댑터 카드(110)를 포함한다. 간단화를 위해, 2개의 프로세서 컴플렉스(105)가 도시되어 있지만, 임의 개수의 프로세서 컴플렉스(105)를 사용할 수도 있다.
제1 및 제2 프로세서 컴플렉스(105a-b)는 하나 이상의 통신 채널(120)을 통해 어댑터 카드(110)와 통신한다. 일 실시예에서, 통신 채널(120)은 PCIe(Peripheral Component Interconnect Express) 버스로서 구성된다. 대안으로, 통신 채널(120)은 PCI-X(Peripheral Component Interconnect Extended) 버스 또는 PCI(Peripheral Component Interconnect) 버스로서 구성될 수 있다. 본 발명은 복수의 통신 채널 구성으로 실시될 수도 있음을 당업자는 인식할 것이다.
어댑터 카드(110)는 제1 및 제2 프로세서 컴플렉스(105a-b)를 위해 하나 이상의 기능을 수행한다. 예컨대, 어댑터 카드(110)는 이더넷 제어기로서의 기능을 할 수 있다. 대안으로, 어댑터 카드(110)는 RAID 제어기로서의 기능을 할 수 있다. 어떤 실시예에서, 어댑터 카드(110)는 기억 영역 네트워크 제어기로서의 기능을 한다. 본 발명은 복수의 어댑터 카드 형태 및 기능으로 실시될 수도 있음을 당업자는 인식할 것이다.
제1 프로세서 컴플렉스(105a)는 초기에 소유자 프로세서 컴플렉스로서 구성된다. 소유자 프로세서 컴플렉스는 어댑터 카드(110)를 초기화, 제어 및 관리한다. 예컨대, 파워-온 부트 동안에, 소유자 프로세서 컴플렉스로서의 제1 프로세서 컴플렉스(105a)는 이하에서 설명되는 바와 같이 어댑터 카드(110)를 발견 및 초기화할 수 있다.
제2 프로세서 컴플렉스(105b)는 초기에 비소유자 프로세서 컴플렉스로서 구성된다. 간단화를 위해 하나의 비소유자 프로세서 컴플렉스만이 설명되지만, 데이터 처리 시스템은 복수의 비소유자 프로세서 컴플렉스를 포함할 수 있다. 비소유자 프로세서 컴플렉스는 또한 어댑터 카드(110)를 사용할 수 있다. 예컨대, 비소유자 프로세서 컴플렉스는 RAID 서브시스템을 액세스하기 위해 RAID 제어기 어댑터 카드(110)를 사용할 수 있다. 그러나, 비소유자 프로세서 컴플렉스는 어댑터 카드(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)는 하나 이상의 포트(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 프로세서 컴플렉스(105a)를 소유자 프로세서 컴플렉스로서 제1 포트(205a)를 통해 어댑터 카드(110)에 논리적으로 그리고 물리적으로 연결한다. 소유자 프로세서 컴플렉스는 제2 포트(205b)를 제외한 어댑터 카드(110)를 관리한다. 또한, 소유자 프로세서 컴플렉스는 어댑터 카드(110)로부터 에러 메시지를 수신한다.
스위치 모듈(210)은 또한 제2 프로세서 컴플렉스(105b)를 비소유자 프로세서 컴플렉스로서 제2 포트(205b)를 통해 어댑터 카드(110)에 논리적으로 그리고 물리적으로 연결한다. 비소유자 프로세서 컴플렉스는 제2 포트(205b)를 관리한다.
어댑터 카드 기능(245)은 이더넷 제어기 기능, 토큰 링 제어기 기능 등과 같은 통신 기능을 포함할 수 있다. 어댑터 카드 기능(245)은 RAID 제어기 기능, 기억 제어기 기능 등과 같은 기억 관리 기능을 포함할 수도 있다.
제어기(230)는 어댑터 카드(110)를 관리한다. 예컨대, 제어기(230)는 어댑터 카드 기능(245)을 초기화 및 관리할 수 있다. 메모리 모듈(240)은 제어기(230)를 위한 소프트웨어 명령 및 셋업 데이터를 포함하는 제어 스토어(control store)를 저장한다. 제어기(230)는 소프트웨어 명령을 실행하는 프로세서, 명령 시퀀서 등을 포함할 수 있다. 소프트웨어 명령은 하나 이상의 프로세서 프로그램 제품으로서 구성될 수 있다.
셋업 레지스터(235)는 이진 데이터 값을 저장한다. 스위치 모듈(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) 각각은 이진 주소 버스 및 이진 데이터 버스를 공유한다. 셋업 레지스터(235)에 저장된 제1 이진 값은 제1 메모리 모듈(240a)을 인에이블시키고 제2 메모리 모듈(240b)을 디스에이블시킴으로써, 제1 메모리 모듈(240a)만이 이진 데이터 버스 상에 데이터를 출력하도록 할 수 있다. 셋업 레지스터(235)에 저장된 반대의 제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)는 패리티 스트라이프 데이터(parity stripe data) 계산, 리던던트 데이터로부터의 손실 데이터 복구 등과 같은 하나 이상의 RAID 제어기 기능을 자율적으로 수행할 수 있다.
도 4는 본 발명의 장애극복 장치(400)의 일 실시예를 예시한 개략적인 블록도이다. 장치(400)는 도 1의 하나 이상의 프로세서 컴플렉스(105) 및 도 1 내지 도 3의 어댑터 카드(110, 250, 350)로 구현될 수 있다. 장치(400)의 설명은 도 1 내지 도 3의 요소들을 참조하며, 동일한 번호는 동일한 요소를 가리킨다. 장치(400)는 스위치 모듈(210), 검출 모듈(405), 및 셋업 모듈(410)을 포함한다.
스위치 모듈(210)은 당업자에게 잘 알려진 반도체 로직을 포함한다. 또한, 스위치 모듈(210)은 크로스바(crossbar) 스위치, 논-블로킹 점대점(non-blocking point-to-point) 스위치 등을 포함할 수 있다. 일 실시예에서, 스위치 모듈(210)은 제1 포트(205a) 및 제2 포트(205b)를 어댑터 카드(110)의 하나 이상의 반도체 디바이스들에 연결할 수 있다.
검출 모듈(405)은 반도체 로직, 및 제2 프로세서 컴플렉스(105b) 및/또는 제어기 프로세서와 같은 프로세서상에서 실행되는 소프트웨어 명령을 포함한다. 또한, 검출 모듈(405)은 이하에서 설명되는 바와 같이 제1 프로세서 컴플렉스(105a)의 장애를 검출한다.
셋업 모듈(410)은 제2 프로세서 컴플렉스(105b)를 소유자 프로세서 컴플렉스로서 어댑터 카드(110)에 연결하기 위해 그리고 장애 검출에 응답하여 어댑터 카드로부터 제1 프로세서 컴플렉스(105a)를 논리적으로 분리하기 위해 스위치 모듈(210)을 수정한다. 셋업 모듈(410)은 제2 프로세서 컴플렉스(105b) 및/또는 제어기 프로세서와 같은 프로세서상에 실행되는 소프트웨어 명령을 포함한다. 장치는 제1 프로세서 컴플렉스로부터 제2 프로세서 컴플렉스로의 장애극복을 수행한다.
후속되는 개략적인 플로 차트는 일반적으로 논리적인 플로 차트로서 설명된다. 이와 같이, 도시된 순서 및 참조 부호가 부여된 단계들은 제시된 방법의 일 실시예를 나타낸다. 기능, 로직 또는 효과 면에서 예시된 방법의 하나 이상의 단계들 또는 그 부분과 동등한 다른 단계들 및 방법들을 생각할 수도 있다. 또한, 사용된 포맷 및 기호는 방법의 논리 단계들을 설명하기 위해 제공되며, 방법의 범위를 제한하지 않는 것으로 이해된다. 플로 차트 도면에서 각종 화살표 타입 및 라인 타입을 사용하더라도, 대응하는 방법의 범위를 제한하지 않는 것으로 이해된다. 실제로, 방법의 논리 흐름만을 나타내기 위해 일부 화살표 또는 다른 커넥터들이 사용될 수도 있다. 예컨대, 화살표는 도시된 방법의 열거된 단계들 간의 지정되지 않은 지속 기간의 대기 또는 감시기간을 나타낼 수 있다. 또한, 특별한 방법이 일어나는 순서는 도시된 대응하는 단계들의 순서를 엄격하게 고수할 수 있고 고수하지 않을 수도 있다.
도 5는 본 발명의 장애극복 방법(500)의 일 실시예를 예시하는 개략적인 플로 차트이다. 방법(500)은 실질적으로 도 1 내지 도 4의 설명된 장치 및 시스템의 동작에 대해 위에서 제시된 기능들을 실행하는 단계들을 포함한다. 일 실시예에서, 방법은 프로세서 판독가능 프로그램을 가진 프로세서 판독가능 매체를 포함하는 프로세서 프로그램 제품으로 구현된다. 프로세서 판독가능 프로그램은 제어기(230) 및/또는 프로세서 컴플렉스(105)와 같은 반도체 디바이스에 통합될 수 있으며, 여기서 프로그램은 제어기(230) 및/또는 프로세서 컴플렉스(105)와 조합하여 방법(500)을 수행할 수 있다.
방법(500)이 시작되고, 스위치 모듈(210)은 제1 프로세서 컴플렉스(105a)를 소유자 프로세서 컴플렉스로서 제1 포트(205a)를 통해 어댑터 카드(110)에 연결한다(505). 소유자 프로세서 컴플렉스는 제2 포트(205b)를 제외한 어댑터 카드(110)를 관리하고, 어댑터 카드(110)로부터 에러 메시지를 수신한다. 예컨대, 소유자 프로세서 컴플렉스는 이하에서 설명되는 바와 같이 파워-온 부트 동안에 어댑터 카드(110)를 초기화할 수 있다. 소유자 프로세서 컴플렉스는 또한 제어기(230)와 직접 통신할 수도 있다. 다른 예에서, 어댑터 카드(110)가 RAID 제어기 어댑터 카드(350)로서 구성되고 RAID 제어기 어댑터 카드(350)가 RAID 서브시스템(315)에서 하드 디스크 드라이브 장애를 검출하면, RAID 제어기 어댑터 카드(350)는 장애를 설명하는 에러 메시지를 소유자 프로세서 컴플렉스에게 전달할 수 있다.
스위치 모듈(210)은 또한 제2 프로세서 컴플렉스(105b)를 비소유자 프로세서 컴플렉스로서 제2 포트(205b)를 통해 어댑터 카드(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 및 제2 프로세서 컴플렉스(105a-b)를 관리하는 멀티노드 운영 체제가 제1 프로세서 컴플렉스(105a)의 장애를 검출할 수 있다. 멀티노드 운영 체제는 제1 프로세서 컴플렉스(105a)의 장애에 응답하여 에러 메시지를 검출 모듈(405)에 전달할 수 있고, 검출 모듈(405)은 에러 메시지로부터 제1 프로세서 컴플렉스(105a)의 장애를 검출할 수 있다(515).
어떤 실시예에서, 검출 모듈(405)은 제어기(230)의 프로세서상에서 실행되는 프로세서 프로그램 제품과 연결된 반도체 로직으로서 구성된다. 검출 모듈(405)은 제1 프로세서 컴플렉스(105a)가 지정된 시간 간격 동안에 어댑터 카드(110)와 통신하지 않으면 제1 프로세서 컴플렉스(105a)의 장애를 검출할 수 있다(515). 예컨대, 제1 프로세서 컴플렉스(105a)가 2분의 시간 간격 동안 어댑터 카드(110)와 통신하지 않으면, 검출 모듈(405)은 제1 프로세서 컴플렉스(105a)에게 질의할 수 있다. 제1 프로세서 컴플렉스(105a)가 응답하지 않으면, 검출 모듈(104)은 제1 프로세서 컴플렉스(105a)의 장애를 검출할 수 있다(515).
셋업 모듈(410)은 장애 검출에 응답하여 제2 프로세서 컴플렉스(105b)를 소유자 프로세서 컴플렉스로서 어댑터 카드(110)에 논리적으로 연결하기 위해 스위치 모듈(210)을 수정한다(520). 일 실시예에서, 셋업 모듈(410)은 제2 프로세서 컴플렉스(105b) 상에서 실행되는 프로세서 프로그램 제품을 포함한다. 검출 모듈(405)이 제1 프로세서 컴플렉스(105a)의 장애를 검출(515)한 것에 응답하여, 셋업 모듈(410)은 지정된 이진 값을 어댑터 카드(110)의 제2 포트(205b)에 전달한다. 지정된 이진 값은 제어기(230)에게 비소유자 프로세서 컴플렉스로부터 명령을 수신할 것을 지령할 수 있다. 다음에, 제2 프로세서 컴플렉스(105b)는 제2 포트(205b)와 통신하여 프로세서 컴플렉스(105)를 소유자 프로세서 컴플렉스로서 지정하는 이진 값을 셋업 레지스터(235)에 기록한다.
대안 실시예에서, 제2 프로세서 컴플렉스(105b) 상에서 실행되는 셋업 모듈(410)은 제2 메모리 모듈(240b)의 제2제어 스토어를 제어기(230)가 사용하게 하는 이진 값을 셋업 레지스터(235)에 기록한다. 셋업 모듈(410)은 또한 제어기(230)가 제2 제어 스토어를 로딩 및 실행하도록 어댑터 카드(110)를 다시 초기화할 수 있다.
일 실시예에서, 셋업 모듈(410)은 반도체 로직, 및/또는 제어기(230)의 프로세서상에서 실행되는 하나 이상의 프로세서 프로그램 제품을 포함한다. 셋업 모듈(410)은 스위치 모듈(210)이 제2 포트(205b)와 통신하여 프로세서 컴플렉스(105)를 소유자 프로세서 컴플렉스로서 취급하도록 하는 이진 값을 수정하여 셋업 레지스터(235)에 기록한다. 또한, 셋업 모듈(410)은 제2 프로세서 컴플렉스(105b)가 소유자 프로세서 컴플렉스의 작업을 맡도록 요청하는 메시지를 제2 프로세서 컴플렉스(105b)에 전달한다.
셋업 모듈(410)은 또한 장애 검출에 응답하여 어댑터 카드(110)로부터 제1 프로세서 컴플렉스(105a)를 논리적으로 분리할 수 있다. 일 실시예에서, 셋업 모듈(410)은 스위치 모듈(210)이 제1 포트(205a)를 통해 통신 신호를 수신하는 것을 멈추도록 하는 이진 값을 셋업 레지스터(235)에 기록한다. 어떤 실시예에서, 셋업 모듈(410)은 제1 프로세서 컴플렉스(105a)가 데이터 처리 시스템(100)으로부터 물리적으로 분리되도록 요청하는 메시지를 시스템 관리자에게 전달한다.
제1 프로세서 컴플렉스(105a)의 장애를 검출(515)하고 제2 프로세서 컴플렉스(105b)를 소유자 프로세서 컴플렉스로서 연결하도록 스위치 모듈(210)을 수정(520)함으로써, 본 발명은 제1 프로세서 컴플렉스(105a)에 장애가 생길 때 제1 프로세서 컴플렉스로부터 제2 프로세서 컴플렉스로(105b)로의 빠른 장애극복을 지원한다. 결과적으로, 하나 이상의 프로세서 컴플렉스(105)들은 어댑터 카드(110)를 계속 사용할 수 있다.
도 6은 본 발명의 어댑터 카드 통신(600)의 일 실시예를 예시하는 개략적인 블록도이다. 통신(600)의 설명은 도 1 내지 도 5의 요소들을 참조하며, 동일한 번호는 동일한 요소를 가리킨다. 통신(600)은 제1 프로세서 컴플렉스(105a), 제2 프로세서 컴플렉스(105b), 어댑터 카드(110), 및 RAID 서브시스템(315)의 논리 표현을 포함한다.
통신(600)은 제1 프로세서 컴플렉스(105a)를 소유자 프로세서 컴플렉스로서 나타낸다. 파워-온 부트의 초기화, 소프트 리셋 등과 같은 초기화 동안에, 제1 프로세서 컴플렉스(105a)는 통신 채널(120)에 연결된 하나 이상의 디바이스와 디스커버리 통신 신호을 주고 받는다. 예컨대, 통신 채널(120)이 PCIe 버스이면, 제1 프로세서 컴플렉스(105a)는 디스커버리 요청을 PCIe 버스에 연결된 어댑터 카드(110)와 같은 각각의 디바이스에 전달한다. 어댑터 카드(110)는 어댑터 카드(110)를 식별하는 식별 응답으로 디스커버리 요청에 응답할 수 있다. 디스커버리 요청 및 식별 응답은 소유자 통신(605)으로서 도시되어 있다. 스위치 모듈(210)은 소유자 프로세서 컴플렉스, 즉 제1 프로세서 컴플렉스(605)와 어댑터 카드(10) 간의 소유자 통신(605)을 지원할 뿐이다.
스위치 모듈(210)은 제1 프로세서 컴플렉스(105a)와의 디스커버리 통신(605)을 지원하기 때문에, 제1 프로세서 컴플렉스(105a)는 어댑터 카드(110)를 초기화할 수 있고 어댑터 카드(110)에게 에러 메시지, 상태 메시지 등을 제1 프로세서 컴플렉스(105a)로 전달하도록 지령할 수 있다. 제1 프로세서 컴플렉스(105a)는 또한 제어기(230)와 직접 통신할 수 있다. 제2 프로세서 컴플렉스(105b)는 어댑터 카드(110)를 초기화할 수 없다.
제1 프로세서 컴플렉스(105b)는 또한 디스커버리 통신 신호(610)를 어댑터 카드(110)를 통해 도시된 RAID 서브시스템(315)과 같은 디바이스에 전달할 수 있다. 따라서, 제1 프로세서 컴플렉스(105a)는 또한 RAID 서브시스템(315)을 초기화할 수도 있다. 대조적으로, 제2 프로세서 컴플렉스(105b)는 어댑터 카드(110)를 엔드 포인트로 간주한다. 따라서, 제2 프로세서 컴플렉스(105b)는 RAID 서브시스템(315)과 같은 디바이스를 보지 못하거나 초기화 시도하지 못한다.
도 7은 본 발명의 어댑터 카드 통신(700)의 하나의 대안 실시예를 예시하는 개략적인 블록도이다. 통신(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 서브시스템(115)의 논리 표현을 나타낸다.
소유자 프로세서 컴플렉스인 제2 프로세서 컴플렉스(105b)는 디스커버리 통신 신호(610)를 RAID 서브시스템(315)에 전달할 수 있다. 또한, 셋업 모듈(410)은 어댑터 카드(110)로부터 제1 프로세서 모듈(110)을 논리적으로 분리하기 위해 스위치 모듈(210)을 수정한다(540). 따라서, 제1 프로세서 모듈(110)이 랜덤 데이터와 같은 이진 데이터를 어댑터 카드(110)에 전달하더라도, 어댑터 카드(110)는 전달된 이진 데이터를 수신하지 않을 수 있다.
본 발명의 실시예는 어댑터 카드(110)를 소유한 제1 프로세서 컴플렉스(105a)로부터 제2 프로세서 컴플렉스(105b)로의 장애극복을 수행한다. 본 발명은 제1 프로세서 컴플렉스(105a)에 장애가 생길 때 어댑터 카드(110)의 지속적인 사용을 지원한다.
본 발명은 그 취지 또는 본질적인 특성으로부터 이탈하지 않고 다른 특정 형태로 구현될 수 있다. 설명된 실시예들은 모든 점에서 단지 예시적인 것이고 한정하는 것이 아닌 것으로 생각해야 한다. 그러므로, 본 발명의 범위는 상기한 설명이 아닌 첨부된 청구의 범위에 의해 나타내어진다. 청구 범위의 균등론의 의미 및 범위에 속하는 모든 변화들이 그 범위 내에 포함되어야 한다.

Claims (10)

  1. 어댑터 카드 장애극복 장치(apparatus for adapter card failover)로서,
    반도체 로직을 포함하되, 제1 프로세서 컴플렉스를, 제2 포트를 제외한 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서, 제1 포트를 통해 상기 어댑터 카드에 논리적으로 연결하도록 구성되고, 제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 또한 연결하는 상기 스위치 모듈;
    반도체 로직, 및 프로세서상에서 실행되는 소프트웨어 명령을 포함하고, 상기 제1 프로세서 컴플렉스의 장애를 검출하도록 구성된 검출 모듈; 및
    프로세서상에서 실행되는 소프트웨어 명령을 포함하고, 상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하도록 구성된 셋업 모듈을 포함하는 어댑터 카드 장애극복 장치.
  2. 제1항에 있어서,
    상기 스위치 모듈은 상기 비소유자 프로세서 컴플렉스로부터의 디스커버리 명령에 응답하여 상기 어댑터 카드를 엔드포인트로서 식별하도록 구성된 어댑터 카드 장애극복 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 스위치 모듈은 상기 소유자 프로세서 컴플렉스로부터의 디스커버리 명령에 응답하여 상기 어댑터 카드에 연결된 디바이스에 시인성(visibility)을 제공하도록 구성된 어댑터 카드 장애극복 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 소유자 프로세서 컴플렉스는 상기 스위치를 통해 상기 어댑터 카드의 제어기와 통신하는 어댑터 카드 장애극복 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 셋업 모듈은 상기 어댑터 카드의 셋업 레지스터를 재프로그래밍함으로써 상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 상기 스위치 모듈을 수정하는 어댑터 카드 장애극복 장치.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 셋업 모듈은 상기 어댑터 카드를 제1 메모리 모듈의 제어 스토어의 이용으로부터 제2 메모리 모듈의 제어 스토어로 스위칭함으로써 상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 상기 스위치 모듈을 수정하는 어댑터 카드 장애극복 장치.
  7. 어댑터 카드 장애극복 시스템으로서,
    어댑터 카드와 통신하는 제1 프로세서 컴플렉스;
    상기 어댑터 카드와 통신하며, 상기 제1 프로세서 컴플렉스의 장애를 검출하도록 구성된 검출 모듈을 포함하는 제2 프로세스 컴플렉스를 포함하고,
    상기 어댑터 카드는,
    상기 어댑터 카드를 관리하도록 구성된 제어기;
    상기 제어기를 위한 소프트웨어 명령 및 셋업 데이터를 포함하는 제어 스토어(control store)를 저장하도록 구성된 제1 메모리 모듈;
    반도체 로직을 포함하되, 상기 제1 프로세서 컴플렉스를, 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서, 제1 포트를 통해 상기 어댑터 카드에 논리적으로 연결하도록 구성되고, 상기 제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 또한 연결하는 스위치 모듈을 포함하며,
    상기 제2 프로세서 컴플렉스는 상기 제2 프로세서 컴플렉스를 상기 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하도록 구성된 셋업 모듈을 더 포함하는 어댑터 카드 장애극복 시스템.
  8. 프로세서 판독가능 프로그램을 가진 프로세서 사용가능 매체를 포함하는 프로세서 프로그램 제품으로서,
    상기 프로세서 판독가능 프로그램은 프로세서상에서 실행될 때 상기 프로세서가,
    어댑터 카드의 스위치 모듈을 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 소유자 프로세서 컴플렉스로서의 제1 프로세서 컴플렉스에 제1 포트를 통해 연결하고,
    제2 프로세서 컴플렉스를, 상기 제2 포트를 관리하는 비소유자 프로세서 컴플렉스로서, 상기 제2 포트를 통해 상기 어댑터 카드에 연결하며,
    상기 제1 프로세서 컴플렉스의 장애를 검출하고,
    상기 제2 프로세서 컴플렉스를 상기 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하고 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하도록 하는 프로세서 프로그램 제품.
  9. 어댑터 카드 장애극복 방법으로서,
    스위치 모듈을 사용하여 제1 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 제1 포트를 통해 어댑터 카드에 논리적으로 연결하되, 상기 소유자 프로세서 컴플렉스는 제2 포트를 제외한 상기 어댑터 카드를 관리하고 상기 어댑터 카드로부터 에러 메시지를 수신하는 단계;
    상기 스위치 모듈을 사용하여 제2 프로세서 컴플렉스를 비소유자 프로세서 컴플렉스로서 상기 제2 포트를 통해 상기 어댑터 카드에 논리적으로 연결하되, 상기 비소유자 프로세서 컴플렉스는 상기 제2 포트를 관리하는 단계;
    상기 제1 프로세서 컴플렉스의 장애를 검출하는 단계;
    상기 제2 프로세서 컴플렉스를 소유자 프로세서 컴플렉스로서 상기 어댑터 카드에 논리적으로 연결하기 위해 그리고 상기 장애의 검출에 응답하여 상기 제1 프로세서 컴플렉스를 상기 어댑터 카드로부터 논리적으로 분리하기 위해 상기 스위치 모듈을 수정하는 단계를 포함하는 어댑터 카드 장애극복 방법.
  10. 컴퓨터 프로그램이 컴퓨터상에서 구동될 때 제9항의 방법을 수행하도록 된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램.
KR1020097016914A 2007-04-20 2008-04-18 어댑터 카드 장애극복 장치, 시스템 및 방법 KR101143684B1 (ko)

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
KR20090130850A true KR20090130850A (ko) 2009-12-24
KR101143684B1 KR101143684B1 (ko) 2012-05-09

Family

ID=39769314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016914A KR101143684B1 (ko) 2007-04-20 2008-04-18 어댑터 카드 장애극복 장치, 시스템 및 방법

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018155791A1 (ko) * 2017-02-21 2018-08-30 한국과학기술정보연구원 다목적 어댑터 카드 및 그 통합 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088127A (ko) 2010-06-15 2013-08-07 바이엘 인텔렉쳐 프로퍼티 게엠베하 신규 오르토-치환된 아릴 아미드 유도체
JP6455759B2 (ja) * 2015-02-27 2019-01-23 サイレックス・テクノロジー株式会社 デバイスサーバ、デバイス利用方法、および、プログラム、
US10296484B2 (en) 2015-12-01 2019-05-21 International Business Machines Corporation Dynamic re-allocation of computer bus lanes
US10102074B2 (en) 2015-12-01 2018-10-16 International Business Machines Corporation Switching allocation of computer bus lanes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3026350B2 (ja) * 1990-07-11 2000-03-27 株式会社日立製作所 二重化システムの系切り替え方法
JPH04205033A (ja) * 1990-11-29 1992-07-27 Tamagawa Seiki Co Ltd Cpuによる機器制御方法
JP4459408B2 (ja) * 2000-08-01 2010-04-28 ネクスコム インターナショナル カンパニー リミテッド ホットスワップバス
JP2002202897A (ja) * 2000-12-28 2002-07-19 Yokogawa Electric Corp 切換装置
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
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
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018155791A1 (ko) * 2017-02-21 2018-08-30 한국과학기술정보연구원 다목적 어댑터 카드 및 그 통합 방법
US10387363B2 (en) 2017-02-21 2019-08-20 Korea Institute Of Science & Technology Information Multipurpose adapter card and integration method therefor

Also Published As

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

Similar Documents

Publication Publication Date Title
US7870417B2 (en) Apparatus, system, and method for adapter card failover
US7558897B2 (en) Method for adopting an orphan I/O port in a redundant storage controller
US7685476B2 (en) Early notification of error via software interrupt and shared memory write
US6578158B1 (en) Method and apparatus for providing a raid controller having transparent failover and failback
US20080263391A1 (en) Apparatus, System, and Method For Adapter Card Failover
US7664909B2 (en) Method and apparatus for a shared I/O serial ATA controller
JP7002346B2 (ja) ストレージシステム及びその動作方法
JP4912731B2 (ja) 冗長i/oインターフェース管理
US6246666B1 (en) Method and apparatus for controlling an input/output subsystem in a failed network server
JP5523468B2 (ja) 直接接続ストレージ・システムのためのアクティブ−アクティブ・フェイルオーバー
JP5336729B2 (ja) サポート・プロセッサによる最適化されたデータ・マイグレーションのための方法、システム、およびプログラム
US20070101016A1 (en) Method for confirming identity of a master node selected to control I/O fabric configuration in a multi-host environment
US9361262B2 (en) Redundant storage enclosure processor (SEP) implementation for use in serial attached SCSI (SAS) environment
JPH10228458A (ja) 構成可能なハードウエア・システム・ドメインを有するマルチプロセッサ・コンピュータ
JP2008262538A (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
KR101143684B1 (ko) 어댑터 카드 장애극복 장치, 시스템 및 방법
US5765034A (en) Fencing system for standard interfaces for storage devices
JP2022162989A (ja) スレーブデバイスタイプに基づくネットワークデバイス構成
US10157005B2 (en) Utilization of non-volatile random access memory for information storage in response to error conditions
US8898653B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US8055934B1 (en) Error routing in a multi-root communication fabric
JP2009053946A (ja) 二重化コントーラ構成ブロックデバイス制御装置
US8095828B1 (en) Using a data storage system for cluster I/O failure determination
CN104170307A (zh) 失效切换方法、装置和系统
US7127621B2 (en) Peer power control

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee