KR100862407B1 - System and method to detect errors and predict potential failures - Google Patents

System and method to detect errors and predict potential failures

Info

Publication number
KR100862407B1
KR100862407B1 KR1020077000494A KR20077000494A KR100862407B1 KR 100862407 B1 KR100862407 B1 KR 100862407B1 KR 1020077000494 A KR1020077000494 A KR 1020077000494A KR 20077000494 A KR20077000494 A KR 20077000494A KR 100862407 B1 KR100862407 B1 KR 100862407B1
Authority
KR
South Korea
Prior art keywords
failure
component
fault
information
diagnostic processor
Prior art date
Application number
KR1020077000494A
Other languages
Korean (ko)
Other versions
KR20070020323A (en
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
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Priority to KR1020077000494A priority Critical patent/KR100862407B1/en
Publication of KR20070020323A publication Critical patent/KR20070020323A/en
Application granted granted Critical
Publication of KR100862407B1 publication Critical patent/KR100862407B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Abstract

컴포넌트, 컴포넌트와 결합한 장애 정보를 수신하도록 구성된 장애 테이블 및 장애 테이블로부터 장애 정보를 판독하고 장애 정보의 함수로서 보정 행동을 개시하도록 구성된 진단 프로세서를 포함한 시스템이 개시된다. 또한, 시스템에서 장애를 처리하기 위한 방법이 개시된다.A system is disclosed that includes a component, a fault table configured to receive fault information associated with the component, and a diagnostic processor configured to read fault information from the fault table and initiate corrective action as a function of fault information. Also disclosed is a method for handling a failure in a system.

Description

에러를 검출하고 잠재적 고장을 예상하는 시스템 및 방법{SYSTEM AND METHOD TO DETECT ERRORS AND PREDICT POTENTIAL FAILURES}SYSTEM AND METHOD TO DETECT ERRORS AND PREDICT POTENTIAL FAILURES}

본 특허 문헌의 개시 내용의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 특허 및 상표청 특허 파일이나 기록에 나타나는 바와 같이 임의의 특허 문헌이나 특허 개시 내용에 의한 팩시밀리 재생에 전혀 반대하지 않지만, 그렇지 않은 경우 모든 저작권을 보유한다.Portions of the disclosure of this patent document include copyrighted material. The copyright owner does not oppose any facsimile reproduction by any patent document or patent disclosure as indicated in the Patent and Trademark Office patent files or records, but otherwise holds all copyrights.

<배경 정보><Background information>

종래 컴퓨터 시스템에 있어서 시스템이 고장 나는 경우, 문제가 일어난 후, 기술자는 로그 파일을 검사하여 문제를 진단할 수도 있다. 종래의 장애-허용 시스템은, 컴포넌트 고장에 의해 시스템 고장이 발생하는 것을 방지하면서, 컴포넌트 고장이 발생한 후, 장애를 진단하기 위한 방법을 포함할 수도 있다. 예를 들어, 종래 장애-허용 시스템은 쌍 및 여분(pair and spare) 시스템을 포함할 수도 있고, 2개의 복제된 컴포넌트는, 같은 입력을 수신하는, 로크 스텝(lock step)에서 실행된다. 컴포넌트 쌍로부터의 출력이 서로 다른 경우, 어느 것인지는 아니지만, 컴포넌트 쌍 중 하나는 고장 난 것으로 알려지고, 양쪽 컴포넌트는, 어떤 인간 개입도 없이 셧 다운되고 여분에 의해 대체된다. 다른 방법으로는, 같은 입력을 수신하는, 로크 스텝에서 실행되는 3개의 컴포넌트를 이용할 수도 있다. 3개의 컴포넌트로부터의 출력 중 하나가 나머지 2개와 다른 경우, 다른 컴포넌트는 고장 난 것으로 판단되어, 대체될 수도 있다.In a conventional computer system, if the system fails, the technician may diagnose the problem by examining the log file after the problem occurs. Conventional fault-tolerant systems may include a method for diagnosing a fault after a component fault occurs, while preventing a system fault from occurring due to a component fault. For example, a conventional fault-tolerant system may include a pair and spare system, and two replicated components are executed in a lock step, receiving the same input. If the outputs from the component pairs are different, but not one of them, one of the component pairs is known to have failed and both components are shut down and replaced by a spare without any human intervention. Alternatively, you can use three components that run in a lock step that receive the same input. If one of the outputs from the three components is different from the other two, the other component is determined to be out of order and may be replaced.

중복 및 장애 극복 메커니즘을 이용하여, 1차 시스템이 고장 나면 고장시간을 줄일 수도 있다. 시스템은 핫 및/또는 콜드 스탠바이를 갖는 N+1 또는 N+i 구성으로 구성될 수도 있다. 1차 시스템이 고장 나면, 스탠바이 시스템이 1차 시스템으로 된다. 상기 사건에 의해 발생한 고장시간의 양은 시스템이 스탠바이로 얼마나 빨리 장애를 극복하는지 및 스탠바이가 고장 난 1차 시스템과 얼마나 가깝게 동기화되었는지에 의존할 수도 있다. 현재, 전화 통신 시스템에서, 통상, 고장을 검출한 후, 고장 난 시스템이 장애를 극복하고 서비스를 복구하는데 몇 초가 걸린다. 전화 통신 OEMs(Original Equipment Manufacturers)은 그 시스템에서 더 낮은 고장시간을 찾고 있다.Redundancy and failover mechanisms can be used to reduce downtime if the primary system fails. The system may be configured in an N + 1 or N + i configuration with hot and / or cold standby. If the primary system fails, the standby system becomes the primary system. The amount of downtime caused by the event may depend on how quickly the system overcomes the failure to standby and how closely the standby is synchronized with the failed primary system. Currently, in telephony systems, after detecting a failure, it usually takes several seconds for the failed system to overcome the failure and restore service. Telephony original equipment manufacturers (OEMs) are looking for lower downtime in the system.

또한 시스템 내의 개개의 컴포넌트도 장애-허용일 수도 있다. 예를 들어, 에러 보정 코드는 메모리에서 발생하는 장애를 보정 할 수도 있다. 이들 장애가 성공적으로 보정되면, 이들은 전체로서 시스템에 보이지 않을 수도 있다. 이들 장애가 검출되거나 보정되지 않고 계속 쌓이면 시스템 고장이 발생할 수도 있다. 시스템 고장시간은 메모리 칩을 대체하는데 필요할 수도 있다.Individual components in the system may also be fault-tolerant. For example, an error correction code may correct a fault that occurs in memory. If these disorders are successfully corrected, they may not be visible to the system as a whole. If these faults continue to accumulate without being detected or corrected, a system failure may occur. System downtime may be required to replace the memory chip.

보정 가능한 에러의 증가된 빈도는, 보정 가능하지 않은 고장이 임박한 것을 나타내거나, 적어도 이러한 고장의 위험이 증가한 것을 나타낼 수도 있다. 발생 전에 컴포넌트 고장을 예측하는 것은 시스템 고장과 결과로서 생기는 시스템 고장시간의 가능성을 줄일 수도 있다. 또한, 발생 전에 컴포넌트 고장을 예측함으로써, 유지 보수를 더 효율적으로 수행할 수도 있다.The increased frequency of correctable errors may indicate that an uncorrectable fault is imminent, or at least an increased risk of such a fault. Predicting component failure prior to occurrence may reduce the likelihood of system failure and the resulting system downtime. In addition, maintenance can be performed more efficiently by predicting component failures before they occur.

통상, 종래의 장애 처리 시스템은 본질적으로 "반응형(reactive)"이다. 즉, 장애가 발생한 후, 경보가 트리거되고, 알려진 양호한 시스템으로 장애 극복이 달성된 후, 문제 진단을 시작할 수 있다. 더 많은 가동시간에 대한 요구가 e-커머스나 전자 트레이딩 등과 같은 모든 애플리케이션에 대해 증가함에 따라 시스템 설계 도전은 반응형 장애 극복 아키텍쳐로 거의 극복할 수 없게 된다. 로크 스텝 방법이 비용면에서 타당하지 않을 수도 있는 비용 고려 환경에서, 상기 반응형 장애 처리 모드는 이들 요구 조건을 만족시키기에 충분하지 않다.Typically, conventional fault handling systems are "reactive" in nature. That is, after a failure has occurred, an alert is triggered, and after a failover is achieved with a known good system, problem diagnosis can be started. As the demand for more uptime increases for all applications, such as e-commerce and electronic trading, system design challenges are almost impossible to overcome with reactive failover architectures. In a cost consideration environment where the lock step method may not be justifiable in terms of cost, the responsive failure handling mode is not sufficient to meet these requirements.

도 1은 본 발명의 예시적인 실시예에 따른 예시적인 시스템의 하이 레벨 도면을 나타낸다.1 shows a high level diagram of an exemplary system in accordance with an exemplary embodiment of the present invention.

도 2는 본 발명의 예시적인 실시예에 따른 예시적인 시스템의 예시적인 하드웨어 레이아웃을 나타낸다.2 illustrates an example hardware layout of an example system in accordance with an exemplary embodiment of the present invention.

도 3은 본 발명의 예시적인 실시예에 따른 예시적인 장치 에러 테이블 및 엔트리(entry)를 나타낸다.3 illustrates an exemplary device error table and entry in accordance with an exemplary embodiment of the present invention.

도 4는 본 발명의 예시적인 실시예에 따른 예시적인 상세 장애 정보 테이블 및 엔트리를 나타낸다.4 illustrates an exemplary detailed fault information table and entry according to an exemplary embodiment of the present invention.

도 5는 본 발명의 예시적인 실시예에 따른, 메모리 컴포넌트를 위한 장애 진단 및 예측을 위한 예시적인 절차를 나타낸다.5 illustrates an example procedure for fault diagnosis and prediction for a memory component, in accordance with an exemplary embodiment of the present invention.

도 6은 본 발명의 예시적인 실시예에 따른, 디스크 컴포넌트를 위한 장애 진단 및 예측을 위한 예시적인 절차를 나타낸다.6 illustrates an exemplary procedure for fault diagnosis and prediction for a disk component, in accordance with an exemplary embodiment of the present invention.

도 7은 본 발명의 제2 예시적인 실시예에서, 예시적인 장치 에러 테이블 엔트리를 나타낸다.7 illustrates an exemplary device error table entry in a second exemplary embodiment of the present invention.

도 8은 본 발명의 제2 예시적인 실시예에 따른, 메모리 컴포넌트를 위한 장애 진단 및 예측을 위한 제2 예시적인 절차를 나타낸다.8 illustrates a second example procedure for fault diagnosis and prediction for a memory component, according to the second example embodiment of the present invention.

도 1은 본 발명의 예시적인 실시예에 따른 예시적인 시스템의 하이 레벨 도면을 나타낸다. 시스템은 컴퓨터 시스템, 통신 스위치, 통신 전송 장비, 또는 일부 다른 애플리케이션을 위한 것일 수도 있다. 예를 들어 시스템 하드웨어는 유선 및 무선 산업 모두에 대해 이용도가 높은 통신 서비스와 애플리케이션을 호스팅하는데 이용되는 진보한 TCA* 또는 cPCI 아키텍쳐에 기초한 섀시/셸프(chassis/Shelf) 기반 컴퓨터 시스템일 수도 있다. 시스템 하드웨어 섀시/셸프(102)는, 예를 들어, 이더넷, 인피니밴드 또는 다른 표준 직렬 패브릭 등의 고속 패브릭과 상호 접속된 다중 계산 및 접근 블레이드/보드/모듈을 갖는 단일 섀시/셸프 등의, 다중 회로 카드 또는 블레이드를 갖는 단일 섀시를 포함할 수도 있다. 그러나, 다른 하드웨어 구성을 채용할 수도 있고, 예를 들어, 전체 시스템이 단일 블레이드 상에 존재하거나 시스템이 다중 상호 접속된 섀시를 포함할 수도 있음을 알 수 있다.1 shows a high level diagram of an exemplary system in accordance with an exemplary embodiment of the present invention. The system may be for a computer system, communication switch, communication transmission equipment, or some other application. For example, the system hardware may be a chassis / shelf based computer system based on an advanced TCA * or cPCI architecture used to host highly available communications services and applications for both the wired and wireless industries. The system hardware chassis / shelf 102 may be multiple, such as, for example, a single chassis / shelf with multiple compute and access blades / boards / modules interconnected with high-speed fabrics such as Ethernet, Infiniband, or other standard serial fabrics. It may also include a single chassis with a circuit card or blade. However, other hardware configurations may be employed, and for example, it may be appreciated that the entire system may be on a single blade or the system may include multiple interconnected chassis.

시스템 하드웨어(102)는 섀시 관리 모듈 제어 블레이드(104)를 포함할 수도 있다. 또한, 제어 블레이드는 CMM 또는 섀시 관리 모듈로 지칭될 수도 있고 시스템 하드웨어(102), 또는 대안적으로는 그 하드웨어의 소정의 부분집합을 위한 중앙 제어 모듈로서 기능을 할 수도 있다. 제어 블레이드(104)는 시스템 하드웨어(102)에서 장애 검출, 진단 및 장애 처리를 관리하는 책임을 진다. 또한, 이러한 섀시 관리 모듈 기능은 정규 블레이드의 "분할된" 부분으로서 구현될 수도 있다.System hardware 102 may include chassis management module control blade 104. The control blade may also be referred to as a CMM or chassis management module and may function as the system hardware 102, or alternatively as a central control module for some subset of that hardware. The control blade 104 is responsible for managing fault detection, diagnosis and fault handling in the system hardware 102. In addition, such chassis management module functionality may be implemented as a "split" portion of a regular blade.

제어 블레이드(104)는 진단 프로세서(106)를 포함할 수도 있다. 진단 프로세서는 IPMI BMC 제어기 칩, 또는 다른 방법으로는 진단 프로세서로서 기능을 하도록 프로그램된 범용 프로세서 또는 소정의 다른 진단 프로세서일 수도 있다. 제어 블레이드(104)와 진단 프로세서(106)는, 예를 들어 시스템 내의 다른 컴포넌트로부터 판독된 다른 상태 정보나 장애 데이터 등의, 장애 정보를 수신할 수도 있다. 컴포넌트로부터 제어 블레이드(104)와 진단 프로세서(106)까지의 장애 정보의 흐름은 실선으로 도시되어 있다. 또한, 제어 블레이드(104)와 진단 프로세서(106)는 다른 시스템 하드웨어 컴포넌트의 구성을 제어할 수도 있다. 장애를 검출하면, 제어 블레이드(104)와 진단 프로세서(106)는, 예를 들어, 경보 메시지 등의 정보를 시스템의 더 높은 레벨에 전송할 수도 있다. 제어 블레이드(104)와 진단 프로세서(106)는 시간에 따른 모든 키 셸프 컴포넌트에 대한 일련의 마스터 키 "장애" 정보 데이터베이스를 유지하고, 펌웨어로서 기억될 수도 있는 장애 검출 알고리즘에 기초하여 행동을 트리거할 수도 있다. 또한, 제어 블레이드(104)와 진단 프로세서(106)는 시스템 컴포넌트에서 BIST(Built In Self Test) 기능과 같은 적당한 진단 절차를 시작하는 단계, 컴포넌트를 디스에이블하는 단계, 컴포넌트를 (자동으로 또는 인간의 개입에 의해) 여분과 바꾸는 단계 및 더 높은 레벨의 시스템 기능과 작용하여 메모리 사용, 기억, 파일 등을 재할당하는 단계를 포함하는, 다른 형태의 보정 행동을 개시할 수도 있다. 개시된 보정 행동은, 진단 프로세서에 의해 또는 시스템 관리자에 의해 설정된 미리 정의된 정책에 기초하여 다른 시스템 요소에 의해 수행될 수도 있다.The control blade 104 may include a diagnostic processor 106. The diagnostic processor may be an IPMI BMC controller chip, or alternatively a general purpose processor or any other diagnostic processor programmed to function as a diagnostic processor. The control blade 104 and diagnostic processor 106 may receive fault information, such as other state information or fault data, for example, read from other components in the system. The flow of fault information from the component to the control blade 104 and the diagnostic processor 106 is shown in solid lines. The control blade 104 and diagnostic processor 106 may also control the configuration of other system hardware components. Upon detecting a failure, control blade 104 and diagnostic processor 106 may send information, such as, for example, an alert message, to a higher level of the system. The control blade 104 and diagnostic processor 106 maintain a series of master key "fault" information databases for all key shelf components over time and trigger actions based on a failure detection algorithm that may be stored as firmware. It may be. In addition, the control blade 104 and diagnostic processor 106 may initiate appropriate diagnostic procedures, such as the Built In Self Test (BIST) function, disable the component, or disable the component (either automatically or automatically). Other forms of corrective action may be initiated, including, by intervention), reassignment of redundancy and reassignment of memory usage, memory, files, etc., in conjunction with higher level system functionality. The disclosed corrective action may be performed by another system element based on a predefined policy set by the diagnostic processor or by the system administrator.

시스템은, 마스터 장애 정보 테이블을 기억하는데 이용될 수도 있는, 장애 정보 테이블(107)을 포함할 수도 있다. 장애 정보 테이블(107)은 진단 프로세서(106)의 일부이거나, 진단 프로세서(106)에 의해 접근 가능한 별개의 컴포넌트일 수도 있다. 장애 정보 테이블(107)은 다른 시스템 컴포넌트로부터 수신된 장애 정보의 기억을 허용하도록 구성된다. 장애 정보 테이블(107)에서의 장애 정보는 특정 컴포넌트나 컴포넌트 타입과 결합할 수도 있다. 다른 방법으로는, 모든 컴포넌트 타입과 결합한 정보를 포함할 수도 있다. 또한, 장애 정보 테이블(107)은 진단 프로세서(106)가 장애 정보에 접근하는 것을 허용하도록 구성될 수도 있다. 장애 정보 테이블(107)로부터의 정보를 이용하여, 진단 프로세서(106)는, 발생 전에 개개의 시스템 컴포넌트의 고장을 예측하고, 예를 들어, 내부 진단 절차를 실행하는 단계, 컴포넌트를 디스에이블하는 단계, 컴포넌트를 여분과 바꾸는 단계 시스템 경보를 트리거하는 단계 등의, 적당한 보정 행동을 취하도록 구성될 수도 있다.The system may include a fault information table 107, which may be used to store a master fault information table. The fault information table 107 may be part of the diagnostic processor 106 or may be a separate component accessible by the diagnostic processor 106. The fault information table 107 is configured to allow storage of fault information received from other system components. Failure information in the failure information table 107 may be combined with a particular component or component type. Alternatively, it may include information associated with all component types. The fault information table 107 may also be configured to allow the diagnostic processor 106 to access fault information. Using information from the fault information table 107, the diagnostic processor 106 predicts the failure of an individual system component before it occurs, for example, executing an internal diagnostic procedure, disabling the component. May be configured to take appropriate corrective action, such as replacing a component with a spare and triggering a system alert.

섀시 관리 블레이드 또는 모듈(104; CMM)의 다른 기능은, 지원 장치 및 환경을 포함하여, 전체로서 섀시 또는 셸프의 제어 및 관리를 포함할 수도 있다. 예를 들어, 섀시 관리 블레이드는 온도, 팬이나 다른 냉각 장치의 작동 상태, 전지나 UPS(uninterrupted power supply) 시스템을 포함한 전원의 작동 상태 등을 감시할 수도 있다. 또한, 섀시 관리 블레이드(108)는, 예를 들어, 다른 팬이 고장 나거나 온도가 임계값 위로 상승하는 경우, 팬의 작동 속도를 증가시킴으로써, 냉각 장치와 전원을 제어할 수도 있다.Other functions of the chassis management blade or module 104 (CMM) may include control and management of the chassis or shelf as a whole, including support devices and environments. For example, the chassis management blade can monitor the temperature, operating status of fans or other cooling devices, and the operating status of power sources, including batteries or uninterrupted power supply (UPS) systems. The chassis management blade 108 may also control the cooling device and power by increasing the operating speed of the fan, for example, if another fan fails or the temperature rises above the threshold.

예시적인 시스템은 다수의 범용 컴포넌트 블레이드(110)를 포함할 수도 있다. 이들 컴포넌트 블레이드는 계산 또는 처리, 기억, I/O 및 다른 기능 컴포넌트, 또는 이들의 소정의 부분집합을 포함할 수도 있다. 컴포넌트 블레이드(110)는 시스템으로부터 사용자가 원하는 기능을 제공하도록 이용될 수도 있다. 예를 들어, 컴포넌트 블레이드(110)는 통신 전송 장비 내의 라인 블레이드, 멀티프로세서 내의 프로세서 블레이드, 통신 스위치 내의 스위칭 패브릭 블레이드, 디스크 드라이브 또는 다른 장치 I/O 제어기, 또는 다른 타입의 종래 하드웨어 시스템 컴포넌트를 포함할 수도 있다. 본 예에서는, 계산 블레이드, 기억 블레이드 및 I/O 블레이드가 제공된다. 또한, 다른 타입의 전용 블레이드를 포함할 수도 있다. 일부는 하나의 블레이드 내에 이들 기능들 중 몇몇을 제공할 수도 있다.The example system may include a number of general purpose component blades 110. These component blades may include computation or processing, storage, I / O and other functional components, or some subset thereof. The component blade 110 may be used to provide a function desired by a user from the system. For example, component blade 110 includes line blades in communications transmission equipment, processor blades in a multiprocessor, switching fabric blades in communications switches, disk drives or other device I / O controllers, or other types of conventional hardware system components. You may. In this example, a calculation blade, a storage blade and an I / O blade are provided. It may also include other types of dedicated blades. Some may provide some of these functions within one blade.

또한 시스템은 운영 체제(120)를 가질 수도 있다. 예를 들어, 운영 체제(120)는 통신 애플리케이션을 위해 최적화된 개방 소스 LINUX 운영 체제일 수도 있다. 또한, 다른 종래 운영 체제를 이용할 수도 있다. 또한 시스템은, 예를 들어 시스템의 각 블레이드 상의 개별 운영 체제 등의, 다수의 운영 체제를 가질 수도 있다. 운영 체제(120)는 시스템의 하드웨어 컴포넌트(110)와 운영 체제(120) 간의 인터페이스를 제공할 수도 있는, 하나 이상의 장치 드라이버(122)를 포함할 수도 있다. 작동하는 장치 드라이버(122)와 컴포넌트(110) 간의 데이터 전송은 도 1에 이중 접속 화살표로 도시되어 있다.The system may also have an operating system 120. For example, operating system 120 may be an open source LINUX operating system optimized for communication applications. It is also possible to use other conventional operating systems. The system may also have multiple operating systems, such as a separate operating system on each blade of the system. Operating system 120 may include one or more device drivers 122, which may provide an interface between hardware component 110 of the system and operating system 120. The data transfer between the operating device driver 122 and the component 110 is shown by a double-connected arrow in FIG. 1.

또한, 운영 체제(120)는 장애 관리 인터페이스(124)를 포함할 수도 있다. 장애 관리 인터페이스(124)는 제어 블레이드(104)와 운영 체제(120) 간의 보정 행동과 장애에 관한 정보의 전송을 허용할 수도 있다. 또한, 장애 관리 인터페이스(124)는 장애 감시와 유지 보수를 위한 표준 인터페이스를 제공할 수도 있다.In addition, operating system 120 may include a failure management interface 124. The fault management interface 124 may allow the transmission of information regarding faults and corrective actions between the control blade 104 and the operating system 120. In addition, fault management interface 124 may provide a standard interface for fault monitoring and maintenance.

또한, 운영 체제(120)는, 예를 들어, 네트워크 관리와 제어 시스템 등의, 사용자 애플리케이션에 여러 표준 인터페이스를 제공하는데 이용될 수도 있는, 미들웨어(126)를 포함할 수도 있다.Operating system 120 may also include middleware 126, which may be used to provide various standard interfaces to user applications, such as, for example, network management and control systems.

또한 시스템은 애플리케이션(130)을 포함할 수도 있다. 이들 애플리케이션은 직접 또는 미들웨어 인터페이스(126)를 통하여 운영 체제(120)와 통신할 수도 있다. 애플리케이션은 네트워크 및 시스템 관리 도구, 운영 및 유지 보수 시스템 및 다른 애플리케이션을 포함할 수도 있다. 이들 애플리케이션은 시스템 하드웨어(102) 상에서 직접 실행되거나, 원격 위치에서 시스템과 인터페이스될 수도 있다. 또한, 운영 체제를 통하지 않고, 애플리케이션(130)이 제어 블레이드(104)와 진단 프로세서(106)와 직접 통신하는 것을 허용하도록 다른 채널을 제공할 수도 있음을 알 수 있다. 상기 채널은 시스템 하드웨어의 원격 감시를 허용할 수도 있다.The system may also include an application 130. These applications may communicate with operating system 120 directly or via middleware interface 126. Applications may include network and system management tools, operational and maintenance systems, and other applications. These applications may run directly on system hardware 102 or may interface with the system at a remote location. It can also be appreciated that other channels may be provided to allow the application 130 to communicate directly with the control blade 104 and the diagnostic processor 106 without going through an operating system. The channel may allow for remote monitoring of system hardware.

도 2는 본 발명의 예시적인 실시예에 따른, 예시적인 시스템을 위한 예시적인 하드웨어 레이아웃을 나타낸다.2 illustrates an example hardware layout for an example system, in accordance with an exemplary embodiment of the present invention.

예시적인 시스템은, 진단 프로세서(106)와 장애 정보 테이블(107)을 포함하는, 제어 블레이드(104)를 포함할 수도 있다. 장애 정보 테이블(107)은 진단 프로세서(106) 상에, 또는 진단 프로세서(106)에 접속할 수 있는 소정의 다른 위치에 기억될 수도 있다. 제어 블레이드(104)는 섀시 장애 데이터를 수집하고 전처리할 수도 있다. 섀시 장애 데이터는 온도 및 팬 작동 상태, 습도 등의 환경 정보를 포함할 수도 있다. 또한, 섀시 장애 데이터는 라인 전원의 가용성과 품질 등의 전원 작동 상태, UPS 작동 상태, 전지 전원 레벨 등을 포함할 수도 있다. 또한, 섀시 제어 블레이드는, 아래에서 상세히 설명하는 바와 같이, 이들 컴포넌트 상에 위치한 다른 진단 프로세서로부터의 데이터를 포함하는, 다른 시스템 컴포넌트로부터의 장애 데이터를 수신할 수도 있다.The example system may include a control blade 104, including a diagnostic processor 106 and a fault information table 107. The fault information table 107 may be stored on the diagnostic processor 106 or at any other location that can connect to the diagnostic processor 106. The control blade 104 may collect and preprocess chassis failure data. Chassis failure data may include environmental information such as temperature and fan operating status and humidity. Chassis failure data may also include power operating conditions such as availability and quality of line power, UPS operating status, battery power level, and the like. The chassis control blade may also receive fault data from other system components, including data from other diagnostic processors located on these components, as described in detail below.

예시적인 시스템은 여러 컴포넌트 블레이드(110)를 포함할 수도 있다. 이들 컴포넌트 블레이드는 통신 전송 장비 내의 라인 블레이드, 멀티프로세서 내의 프로세서 블레이드, 통신 스위치 내의 스위칭 패브릭 블레이드, 디스크 드라이브 또는 다른 장치 I/O 제어기, 또는 다른 타입의 종래 하드웨어 시스템 컴포넌트를 포함할 수도 있다. 도 2를 참조하면, 각 컴포넌트 블레이드는 위성 진단 프로세서(210)를 포함할 수도 있다. 위성 진단 프로세서(210)는 별개의 컴포넌트이거나, 예를 들어, 다른 프로세서나 칩셋의 일부로서, 논리 실체로서 제공될 수도 있다. 컴포넌트 블레이드(110) 상의 위성 진단 프로세서(210)는 컴포넌트 블레이드(110) 상의 컴포넌트로부터 장애 데이터를 수집할 수도 있다. 상기 정보는, 컴포넌트로부터 직접, 또는 컴포넌트 칩셋의 일부일 수도 있는, 컴포넌트 장애 정보 테이블 또는 레지스터(예를 들어, 메모리 장애 레지스터(216))로부터 수집될 수도 있다. 컴포넌트 장애 레지스터(216)로부터 수집된 정보는 위성 진단 프로세서(210) 내에, 또는 위성 진단 프로세서(210)에 접속할 수 있는 소정의 다른 위치에 기억될 수도 있다.The example system may include several component blades 110. These component blades may include line blades in communications transmission equipment, processor blades in a multiprocessor, switching fabric blades in communications switches, disk drives or other device I / O controllers, or other types of conventional hardware system components. Referring to FIG. 2, each component blade may include a satellite diagnostic processor 210. The satellite diagnostic processor 210 may be a separate component or may be provided as a logical entity, for example, as part of another processor or chipset. The satellite diagnostic processor 210 on the component blade 110 may collect fault data from components on the component blade 110. The information may be collected directly from the component or from a component failure information table or register (eg, memory failure register 216), which may be part of a component chipset. The information collected from the component fault register 216 may be stored within the satellite diagnostic processor 210 or at some other location capable of connecting to the satellite diagnostic processor 210.

또한, 컴포넌트 블레이드는, 예를 들어, 계산, I/O, 또는 기억 블레이드 등으로 한정될 수도 있다.In addition, component blades may be limited to, for example, compute, I / O, storage blades, and the like.

컴포넌트 블레이드(110)는 메모리뿐만 아니라 하나 이상의 프로세서나 CPU와 다른 계산 컴포넌트를 포함할 수도 있다. 각 컴포넌트(110)는 위성 진단 프로세서(210)를 포함할 수도 있다. 위상 진단 프로세서(210)는 별개의 컴포넌트이거나, 예를 들어, CPU 칩셋의 일부로서, 논리 실체로서 제공될 수도 있다. 컴포넌트 블레이드(110) 상의 위성 진단 프로세서(210)는 컴포넌트 블레이드(110)의 다른 컴포넌트와 프로세서로부터 장애 데이터를 수집할 수도 있다. 또한, 상기 정보는, 칩셋의 일부일 수도 있는, 메모리 장애 레지스터(216)로부터 수집될 수도 있다. 컴포넌트 장애 레지스터(216)로부터 수집된 정보는 위성 진단 프로세서(210) 내에, 또는 위성 진단 프로세서(210)에 접속할 수 있는 소정의 다른 위치 내에 기억될 수도 있다.Component blade 110 may include not only memory but also one or more processors or CPUs and other computing components. Each component 110 may include a satellite diagnostic processor 210. The phase diagnostic processor 210 may be a separate component or may be provided as a logical entity, for example, as part of a CPU chipset. The satellite diagnostic processor 210 on the component blade 110 may collect failure data from other components and the processor of the component blade 110. The information may also be collected from memory fault register 216, which may be part of a chipset. The information collected from the component fault register 216 may be stored in the satellite diagnostic processor 210 or in some other location capable of connecting to the satellite diagnostic processor 210.

기억 컴포넌트 블레이드는 메모리뿐만 아니라 하나 이상의 디스크 제어기 또는 기억 CPU와 다른 계산 컴포넌트를 포함할 수도 있다. 위성 진단 프로세서(210)는 별개의 컴포넌트이거나, 예를 들어, 디스크 제어기 칩셋의 일부로서, 논리 실체로서 제공될 수도 있다. 기억 컴포넌트 블레이드 상의 위성 진단 프로세서(210)는 기억 컴포넌트 블레이드 상의 다른 컴포넌트와 디스크 제어기로부터 장애 데이터를 수집할 수도 있다. 상기 정보는, 디스크 제어기 칩셋의 일부일 수도 있는, 디스크 드라이브 장애 정보 테이블 또는 레지스터(220)로부터 수집될 수도 있다. 디스크 드라이브 장애 레지스터(220)로부터 수집된 정보는 위성 진단 프로세서(210) 내에, 또는 위상 진단 프로세서(210)에 접속할 수 있는 소정의 다른 위치 내에 기억될 수도 있다.The storage component blade may include memory as well as one or more disk controllers or storage CPUs and other computing components. The satellite diagnostic processor 210 may be a separate component or may be provided as a logical entity, for example, as part of a disk controller chipset. The satellite diagnostic processor 210 on the storage component blade may collect failure data from the disk controller and other components on the storage component blade. The information may be collected from a disk drive failure information table or register 220, which may be part of a disk controller chipset. The information collected from the disk drive failure register 220 may be stored in the satellite diagnostic processor 210 or in some other location capable of connecting to the phase diagnostic processor 210.

네트워크/LAN 블레이드는 다른 컴포넌트뿐만 아니라 하나 이상의 I/O CPU를 포함할 수도 있다. 각 네트워크/LAN 블레이드는 위성 진단 프로세서(210)를 포함할 수도 있다. 위성 진단 프로세서(210)는 별개의 컴포넌트이거나, 예를 들어, 네트워크 프로세서 칩셋의 일부로서, 논리 실체로서 제공될 수도 있다. 네트워크/LAN 블레이드 상의 위성 진단 프로세서(210)는 네트워크/LAN 블레이드 상의 장애 데이터 컴포넌트를 수집할 수도 있다. 상기 정보는, 네트워크/LAN 프로세서 칩셋의 일부일 수도 있는, 네트워크/LAN 장애 정보 테이블 또는 레지스터(224)로부터 수집될 수도 있다. 네트워크/LAN 장애 레지스터(224)로부터 수집된 정보는 위성 진단 프로세서(210) 내에 또는 위성 진단 프로세서(210)에 접근할 수 있는 소정의 다른 위치 내에 기억될 수도 있다.The network / LAN blade may include one or more I / O CPUs as well as other components. Each network / LAN blade may include a satellite diagnostic processor 210. The satellite diagnostic processor 210 may be a separate component or may be provided as a logical entity, for example, as part of a network processor chipset. The satellite diagnostic processor 210 on the network / LAN blade may collect fault data components on the network / LAN blade. The information may be collected from a network / LAN fault information table or register 224, which may be part of a network / LAN processor chipset. The information collected from the network / LAN fault register 224 may be stored in the satellite diagnostic processor 210 or in some other location accessible to the satellite diagnostic processor 210.

블레이드는, 단지 계산, 네트워크/LAN, 또는 기억 요소보다는, 서로 다른 타입의 컴포넌트를 포함할 수도 있다. 메모리 장애 레지스터, 디스크 드라이브 장애 레지스터 및 프로세서 장애 레지스터는 장애 관리 칩셋의 일부로서 구현되고 컴포넌트 장애 테이블의 일부로서 포함될 수도 있다. 따라서, 각 블레이드 또는 계산 블레이드에서, 블레이드의 메인 CPU로부터 장애 관리 칩셋을 거쳐 제어 블레이드 상의 진단 프로세서로 상호 작용이 일어날 수도 있다. 또한, 칩셋 및/또는 진단 프로세서는, 요약 장애 정보를 제어 블레이드(104) 상의 마스터 장애 정보 테이블로 전송하기 전에, 예를 들어, 에이징(aging), 스레시홀딩(thresholding), 또는 필터링함으로써, 블레이드에 대한 마스터 장치 장애 정보 테이블을 유지하고 장애 정보를 전처리할 수도 있다. 위성 진단 프로세서(210)는, 예를 들어, 통신 포트, 전원, 네트워크 인터페이스 장치 등의, 도시되지 않은 다른 컴포넌트 블레이드 장치뿐만 아니라 각 컴포넌트 블레이드 상의 이들 컴포넌트 블레이드 요소의 모두 또는 일부를 감시하도록 구성될 수도 있다.Blades may include different types of components, rather than just computational, network / LAN, or storage elements. The memory fault register, disk drive fault register, and processor fault register are implemented as part of the fault management chipset and may be included as part of the component fault table. Thus, at each blade or compute blade, interaction may occur from the blade's main CPU to the diagnostic processor on the control blade via the fault management chipset. In addition, the chipset and / or diagnostic processor may, for example, age, threshold, or filter the blade prior to sending the summary failure information to the master failure information table on the control blade 104. It is also possible to maintain a master device failure information table for and preprocess the failure information. The satellite diagnostic processor 210 may be configured to monitor all or some of these component blade elements on each component blade as well as other component blade devices not shown, such as, for example, communication ports, power sources, network interface devices, and the like. have.

위성 진단 프로세서(210)는, 예를 들어, 데이터를 수집한 때를 지시하는 시간 값을 수집된 장애 데이터와 결합하는 단계, 검출 수의 카운트를 포함하는 단일 보고된 사건으로 간격 내의 다수의 동일 장애 검출을 줄이는 단계, 일정 타입의 장애를 삭제하거나 무시하는 단계 등의, 수집된 장애 데이터를 전처리하도록 구성될 수도 있다. 다른 방법으로는 시스템 아키텍쳐에 의존하여, 장애 데이터 수집 및/또는 전-처리는 진단 제어기(106)에 의해 직접 수행될 수도 있음을 알 수 있다.The satellite diagnostic processor 210 may, for example, combine a time value indicating when the data was collected with the collected fault data, a number of identical faults within the interval into a single reported event including a count of the number of detections. It may be configured to preprocess the collected fault data, such as reducing detection, deleting or ignoring some types of faults. Alternatively, depending on the system architecture, it can be appreciated that fault data collection and / or pre-processing may be performed directly by the diagnostic controller 106.

시스템은 상호 접속 패브릭(230)을 포함할 수도 있다. 상호 접속 패브릭(230)은 메인 시스템 버스, 관리 버스이거나, 또는 시스템 장애 허용 특징의 제어와 장애 정보의 전송을 위한 전용 버스일 수도 있음을 알 수 있다. 패브릭(230)은 이더넷 또는 소정의 다른 표준 직렬 고속 접속에 기초한 "패브릭"이거나, IPMB와 같이 제어나 장애 정보의 전송을 위한 전용 버스일 수도 있다. 또한 시스템 내의 블레이드들 간의 다른 형태의 통신을 채용할 수도 있고, 예를 들어, 다중 버스나 다른 네트워킹 아키텍쳐를 채용할 수도 있음을 알 수 있다. 위성 진단 프로세서(210)가 컴포넌트로부터 장애 데이터를 수집하여 전처리하면, 정보는 상호 접속 패브릭(230)을 통하여 제어 블레이드(104)에 전송될 수도 있다. 또한, 상호 접속 패브릭(230)은 정규 데이터 버스이거나, 단지 장애 정보와 장애 처리 명령을 교환하도록 부가된 전용 버스일 수도 있음을 알 수 있다. 장애 정보를 수신하면, 예를 들어, 진단 프로세서에 의해 장애 정보 테이블(107)에 기억될 수도 있다. 위성 진단 프로세서(210)는 장애 정보를 장애 정보 테이블(107)에 직접 기록하는 능력을 가질 수도 있다.The system may include an interconnect fabric 230. It will be appreciated that interconnect fabric 230 may be a main system bus, a management bus, or a dedicated bus for control of system fault tolerance features and transmission of fault information. The fabric 230 may be a "fabric" based on Ethernet or some other standard serial high speed connection, or it may be a dedicated bus for the transmission of control or fault information, such as IPMB. It will also be appreciated that other forms of communication between the blades in the system may be employed, for example multiple buses or other networking architectures. Once the satellite diagnostic processor 210 collects and preprocesses fault data from the component, the information may be sent to the control blade 104 via the interconnect fabric 230. It will also be appreciated that the interconnect fabric 230 may be a regular data bus or a dedicated bus added only to exchange fault information and fault handling instructions. Upon receiving the fault information, it may be stored in the fault information table 107 by, for example, a diagnostic processor. The satellite diagnostic processor 210 may have the ability to write fault information directly into the fault information table 107.

컴포넌트 고장이 발생하면, 진단 프로세서(106)는, 예를 들어, 메시지를 수신함으로써, 또는 장애 정보 테이블에서 엔트리를 판독함으로써, 대응하는 위성 진단 프로세서(210)로부터 고장에 관한 정보를 수신할 수도 있다. 종래의 고장-허용 시스템에서와 같이, 진단 프로세서(210)는, 예를 들어, 컴포넌트를 디스에이블하는 단계, 운영 체제에 대한 경보를 생성하는 단계, 또는 컴포넌트를 여분의 컴포넌트로 바꾸는 단계 등의, 적당한 보정 행동을 시스템이 취하도록 할 수도 있다. 또한, 진단 프로세서(106)는, 예를 들어, 진단 절차를 실행하는 단계, 컴포넌트가 고장나기 전에 컴포넌트를 여분으로 바꾸는 단계, 장애 메모리나 디스크를 피하기 위해 기억장치를 재구성하도록 운영 체제와 작용하는 단계 등의, 컴포넌트 고장이 발생하기 전에 컴포넌트 고장을 예측하고 보정 행동을 취하기 위해 컴포넌트로부터 수집된 장애 정보를 이용하도록 구성될 수도 있다.If a component failure occurs, the diagnostic processor 106 may receive information about the failure from the corresponding satellite diagnostic processor 210, for example, by receiving a message or by reading an entry in the failure information table. . As in a conventional fault-tolerant system, diagnostic processor 210 may, for example, disable a component, generate an alert for an operating system, or replace a component with a spare component, or the like. The system may take appropriate corrective action. In addition, diagnostic processor 106 may, for example, execute diagnostic procedures, replace components before they fail, and interact with the operating system to reconfigure storage to avoid failed memory or disks. Etc. may be configured to use fault information collected from the component to predict component failure and take corrective action before the component failure occurs.

도 3은 본 발명의 예시적인 실시예에 따른 장치 에러 테이블(300)의 일 예를 나타낸다. 예시적인 장치 에러 테이블(300)은 진단 프로세서(106)의 일부로서 포함될 수도 있다. 다른 방법으로는, 장치 에러 테이블(300)은, 장치 에러 테이블이, 예를 들어, 제어 보드(104) 상의 별개의 칩으로서, 진단 프로세서(106)에 접근 가능한 시스템 내의 다른 위치에 포함될 수도 있다. 장치 에러 테이블(300)을 하드웨어 컴포넌트로서 도시하였지만, 테이블은 전용 하드웨어 컴포넌트 내에, 또는 소프트웨어 또는 펌웨어 테이블의 일부로서 기억될 수도 있다. 또한, 장치 에러 테이블을 어레이로서 도시하였지만, 예를 들어, 링크된 목록, 해시 테이블 등의, 장치 에러 테이블에 다른 데이터 구조를 채용할 수도 있음을 알 수 있다. 또한, 예를 들어, 각 특정 클래스의 컴포넌트에 대해 하나인, 다수의 장치 에러 테이블이 시스템에 포함될 수도 있음을 알 수 있다.3 illustrates an example of a device error table 300 according to an exemplary embodiment of the present invention. The example device error table 300 may be included as part of the diagnostic processor 106. Alternatively, the device error table 300 may be included at another location in the system where the device error table is accessible to the diagnostic processor 106, for example, as a separate chip on the control board 104. Although the device error table 300 is shown as a hardware component, the table may be stored in a dedicated hardware component or as part of a software or firmware table. Further, although the device error table is shown as an array, it can be seen that other data structures may be employed in the device error table, such as, for example, linked lists, hash tables, and the like. It will also be appreciated that multiple device error tables may be included in the system, for example, one for each particular class of component.

장치 에러 테이블(300)은 하나 이상의 엔트리(302)를 포함할 수도 있다. 하나의 엔트리는 시스템 내의 각 컴포넌트에 대해 포함될 수도 있다. 다른 방법으로는, 예를 들어, 소정의 컴포넌트에서 검출된 각 장애 또는 장애 타입에 대해 하나인, 다수의 엔트리가 포함될 수도 있다.The device error table 300 may include one or more entries 302. One entry may be included for each component in the system. Alternatively, multiple entries may be included, for example, one for each failure or failure type detected in a given component.

도 3을 참조하면, 본 발명의 예시적인 실시예에 따른 예시적인 장치 에러 테이블 내의 예시적인 엔트리가 도시되어 있다. 예시적인 엔트리(302)는 몇몇의 필드를 포함할 수도 있다.Referring to Figure 3, an exemplary entry in an exemplary device error table in accordance with an exemplary embodiment of the present invention is shown. Example entry 302 may include several fields.

예시적인 엔트리는 장치 ID 필드를 포함할 수도 있다. 장치 ID 필드는, 특정 엔트리(302)가 장애 정보를 포함하는 컴포넌트를 식별할 수도 있다. 예를 들어, 장치 ID 필드는 특정 디스크 드라이브 또는 블레이드에서 특정 메모리 페이지를 지시할 수도 있다. 장치 에러 테이블 엔트리와 컴포넌트를 링크하는 다른 접근법을 이용할 수도 있고, 예를 들어, 메모리를 위한 엔트리는 특정 메모리 주소 또는 페이지 주소를 포함할 수도 있지만, 디스크 드라이브에 대한 엔트리는 트랙 및 섹터 정보를 포함할 수도 있음을 알 수 있다. 다른 방법으로는, 장치 ID 필드는 특정 컴포넌트에 관한 정보를 포함한 데이터 구조에 대한 포인터를 포함할 수도 있다.The example entry may include a device ID field. The device ID field may identify the component for which a particular entry 302 contains fault information. For example, the device ID field may indicate a particular memory page in a particular disk drive or blade. Other approaches to linking device error table entries and components may be used, for example, an entry for memory may include a specific memory address or page address, while an entry for a disk drive may contain track and sector information. It can be seen that. Alternatively, the device ID field may include a pointer to a data structure that contains information about a particular component.

예시적인 엔트리(302)는, 관련 시간 윈도에서 에러가 발생한 횟수를 지시하는 에러 카운트 필드를 포함할 수도 있다(아래에 후술하는 바와 같음). 엔트리(302)는, 장치 ID 필드에 의해 식별된 컴포넌트에서 장애가 검출된 때를 지시할 수도 있는, 데이트-타임(date-time) 스탬프 필드를 포함할 수도 있다. 채용된 고장 예측 알고리즘에 의존하여, 데이트-타임 스탬프 필드에서의 값은 근사하기만 하면 될 수도 있음을 알 수 있다. 또한, 데이트-타임 스탬프 값은 서로 다른 포맷일 수도 있음을 알 수 있다. 예를 들어, 이러한 필드는, 장애가 검출된 시스템 클록 시간과 같은 실시간 값, 또는 다른 방법으로는 장애가 검출된 후 지난 시간의 양을 지시하는 카운터 또는 타이머를 포함할 수도 있다.Exemplary entry 302 may include an error count field that indicates the number of times an error occurred in the associated time window (as described below). Entry 302 may include a date-time stamp field, which may indicate when a failure was detected in the component identified by the device ID field. Depending on the failure prediction algorithm employed, it can be seen that the value in the date-time stamp field may only need to be approximated. Also, it can be seen that the date-time stamp values may be in different formats. For example, this field may include a counter or timer indicating a real time value, such as a system clock time at which a failure was detected, or otherwise indicating the amount of time that has passed since the failure was detected.

또한, 예시적인 엔트리(302)는 포인터 필드를 포함할 수도 있다(예를 들어, 상세 에러 정보에 대한 포인터). 포인터는 상세 장애 정보 테이블 내의 엔트리를 지시할 수도 있다(예를 들어, 도 4에 도시된 바와 같음). 상세 장애 정보 테이블 내의 각 엔트리는 검출된 장애 또는 에러 메시지의 성질을 지시하는 데이터 구조일 수도 있다. 이와 같은 데이터 구조는 장애의 엄격성, 장애가 검출된 방법 및 예를 들어, 특정 메모리 위치에서 성공적으로 보정된 하나의 비트 에러 등의, 검출된 장애의 특정 성질을 포함할 수도 있다. 장치 ID 필드가 단지 보드 등의 하이 레벨 컴포넌트를 지시하면, 상세 에러 정보는 장애 위치에 관한 정보를 제공할 수도 있다. 예를 들어, 장치 ID 필드가 특정 디스크 드라이브를 지시하면, 포인터에 의해 참조된 데이터 구조는 트랙 및 섹터 정보를 포함할 수도 있다.Example entry 302 may also include a pointer field (eg, a pointer to detailed error information). The pointer may indicate an entry in the detailed failure information table (eg, as shown in FIG. 4). Each entry in the detailed fault information table may be a data structure indicating the nature of the detected fault or error message. Such a data structure may include the specific nature of the detected failure, such as the severity of the failure, how the failure was detected and, for example, one bit error successfully corrected at a particular memory location. If the device ID field indicates only a high level component, such as a board, the detailed error information may provide information about the fault location. For example, if the device ID field indicates a particular disk drive, the data structure referenced by the pointer may include track and sector information.

장치 에러 테이블(302)에서 필드는 단일 변수 또는 메모리 위치일 필요는 없고, 예를 들어, 장치 에러 테이블 필드는 더 복잡한 데이터 구조에 대한 포인터나 링크를 포함하거나, 더 복잡한 데이터 구조를 직접 포함할 수도 있음을 알 수 있다.Fields in device error table 302 need not be single variables or memory locations, for example, device error table fields may contain pointers or links to more complex data structures, or may directly contain more complex data structures. It can be seen that.

도 4에는 각 컴포넌트 블레이드의 칩셋에 기억된 상세 장애 정보 테이블(400)에 대한 본 발명의 예시적인 실시예가 도시되어 있다. 각각의 메인 시스템 보드는 장애 데이터를 수집하고, 이러한 장애 데이터를 파싱하고, 임계값 장애 레벨을 넘으면 행동을 취할 수도 있다. 또한, 각 메인 시스템 보드는, 요약 장애 정보를 전송하고, 상세 장애 정보 테이블에 상기 정보를 기억한, 섀시 관리 모듈 진단 관리 시스템에 상세를 경고할 수도 있다. 섀시 또는 셸프 관리 시스템은 집중식 장애 관리 시스템에 정보를 전송할 수도 있다.4 shows an exemplary embodiment of the present invention for a detailed failure information table 400 stored in a chipset of each component blade. Each main system board may collect fault data, parse this fault data, and take action when the threshold fault level is exceeded. In addition, each main system board may transmit the summary fault information and may warn the chassis management module diagnostic management system of storing the above information in the detailed fault information table. The chassis or shelf management system may send information to the centralized failure management system.

상세 장애 정보 테이블에 접근하고, 그 안에 포함된 정보를 분석하고 적당한 행동을 취하는 진단 접근 절차를 제공할 수도 있다. 이들 행동은, 운영 체제에 경보를 전송하는 단계와, 펌웨어에 기억될 수도 있는, 적당한 진단을 시작하는 단계를 포함할 수도 있다. 또한, 이들 진단은 장애 데이터를 더 분석하고 문제를 보정할 수도 있다. 메모리, 하드 디스크 드라이브, 및 칩셋으로부터 시스템 내의 각 블레이드 또는 회로 팩과 같은 개개의 시스템 컴포넌트에 관한 데이터는, 장애 정보를 수집하고 생성하는 각각의 컴포넌트에 위치한다. 또한, 이들 행동은 보정 행동을 실행하거나 진단을 분석하기 전에 잠재적인 장애 세그먼트(메모리, 디스크, 네트워크 프레이머, 계산 프로세서 또는 다른 요소)로부터 애플리케이션의 적절한 장애 극복의 개시를 포함할 수도 있다.You can also access a detailed disability information table, analyze the information contained within it, and provide a diagnostic access procedure that takes appropriate action. These actions may include sending an alert to an operating system and initiating the appropriate diagnosis, which may be stored in firmware. In addition, these diagnoses may further analyze fault data and correct problems. Data about individual system components, such as memory, hard disk drives, and each blade or circuit pack in the system from the chipset, is located in each component that collects and generates fault information. In addition, these behaviors may include initiating proper failover of the application from potential failure segments (memory, disk, network framer, computational processor or other element) before performing corrective action or analyzing the diagnosis.

시스템에서 여러 상세 장애 정보 테이블은 서로 다른 방법으로 기억되고 특정 구현에 따라 서로 다른 정보를 포함할 수도 있음을 알 수 있다. 예를 들어, 상세 장애 정보는 진단 프로세서 내에, 또는 진단 프로세서에 접근 가능한 별개의 위치에 기억될 수도 있다. 상세 장애 정보는 여러 타입의 컴포넌트와 결합한 칩셋 내의 장애 레지스터에 원래 기억될 수도 있다. 이들 레지스터는 가장 상세한 장애 정보로서 기능을 할 수도 있다. 이들 상세 테이블로부터의 정보는, 위성 진단 프로세서와 결합한 마스터 장치 장애 정보 테이블 또는 중간 장애 정보 테이블에서 위성 진단 프로세서에 의해 파싱, 에이징, 필터링 및 기억될 수도 있다. 이들 마스터 장치 장애 정보 테이블은 위성 진단 프로세서, 또는 이들 프로세서에 접근 가능한 소정의 다른 위치에 기억될 수도 있다. 그 다음에, 마스터 장치 테이블과 위성 진단 프로세서로부터의 처리된 장애 정보는 시스템 또는 섀시 레벨 진단 프로세서에 전송될 수도 있고, 전체 섀시, 셸프 또는 시스템에 대한 마스터 장애 정보 테이블에 기억될 수도 있다. 장치 에러 테이블과 상세 장애 정보 테이블의 더 상세한 예는 아래에 설명된다.It can be seen that the various detailed fault information tables in the system are stored in different ways and may contain different information depending on the particular implementation. For example, the detailed fault information may be stored in the diagnostic processor or in a separate location accessible to the diagnostic processor. Detailed fault information may be originally stored in fault registers in the chipset in combination with various types of components. These registers may function as the most detailed fault information. The information from these detail tables may be parsed, aged, filtered and stored by the satellite diagnostic processor in the master device fault information table or the intermediate fault information table in combination with the satellite diagnostic processor. These master device failure information tables may be stored in a satellite diagnostic processor or some other location accessible to these processors. The processed fault information from the master device table and the satellite diagnostic processor may then be sent to the system or chassis level diagnostic processor and stored in the master fault information table for the entire chassis, shelf or system. More detailed examples of the device error table and detailed failure information table are described below.

도 4는 본 발명의 예시적인 실시예에 따른 예시적인 상세 장애 정보 테이블 내의 예시적인 엔트리(402)를 나타낸다. 테이블은, 예를 들어, 링크된 목록, 객체, 어레이 등의, 서로 다른 데이터 구조를 이용하여 구현될 수도 있음을 알 수 있다.4 illustrates an example entry 402 in an exemplary detailed fault information table in accordance with an exemplary embodiment of the present invention. It will be appreciated that the tables may be implemented using different data structures, such as linked lists, objects, arrays, and the like.

예시적인 상세 장애 정보 테이블 엔트리(402)는 장치 ID 필드를 포함할 수도 있다. 통상, ID 필드는 도 3의 장치 에러 테이블 엔트리의 ID 필드와 유사하다. 예시적인 상세 장애 정보 테이블 엔트리(401)는 발생한 에러 타입을 지시하는 에러 타입 필드를 포함할 수도 있다. 예를 들어, 장치가 메모리 장치이면, 에러 타입 필드는, 에러가 기입 에러나 판독 에러이었는지를 지시할 수도 있다.The example detailed failure information table entry 402 may include a device ID field. Typically, the ID field is similar to the ID field of the device error table entry of FIG. The exemplary detailed failure information table entry 401 may include an error type field indicating the type of error that has occurred. For example, if the device is a memory device, the error type field may indicate whether the error was a write error or a read error.

예시적인 상세 장애 정보 테이블 엔트리는, 에러가 발생한 것에 접근하는 장치를 식별하는 접근 장치 필드를 포함할 수도 있다. 또한, 상세 장애 정보 테이블은, 에러 시점에 접근되는 주소를 식별하는 물리적 장애 주소 필드를 포함할 수도 있다. 도 4에 도시되지 않았지만, 예를 들어, 온도, 전압 및 팬 작동 상태 등의, 장애가 검출된 시스템 환경 측정 값들을 기록하는 필드와 같은 다른 필드들이 상세 장애 정보 테이블에 포함될 수도 있다. 또한, 장애 정보 테이블 엔트리는, 트리거된 에러나 경보 플래그에 관한 정보를 포함할 수도 있는, 플래그 필드를 포함할 수도 있다.The example detailed failure information table entry may include an access device field that identifies the device that accesses the error. In addition, the detailed failure information table may include a physical failure address field that identifies an address accessed at the time of the error. Although not shown in FIG. 4, other fields may be included in the detailed failure information table, such as, for example, a field that records system environmental measurement values for which a failure was detected, such as temperature, voltage, and fan operating status. The fault information table entry may also include a flag field, which may include information about the triggered error or alert flag.

상술한 바와 같이, 각 장치는 결합한 장치 에러 테이블과 상세 장애 정보 테이블을 갖는다. 이들 테이블에 기억된 데이터 타입은 장치-특정일 수도 있다. 하드 디스크 드라이브의 경우, 상세 장애 정보 테이블 엔트리는, 예를 들어, 에러가 검출된 때 장치에 대해 이루어지는 판독, 기입 또는 판독/기입 등의, 접근 타입에 기초하여 장치에서 검출된 에러 타입을 식별하는 에러 타입 필드를 포함할 수도 있다. 물리적 장애 주소 필드는 에러가 검출된 때 접근되는 하드 디스크 드라이브에 관한 주소를 포함할 수도 있다.As described above, each device has a combined device error table and detailed failure information table. The data types stored in these tables may be device-specific. In the case of a hard disk drive, the detailed failure information table entry identifies the type of error detected in the device based on the type of access, for example, read, write or read / write, etc. made to the device when the error was detected. It may also include an error type field. The Physical Failure Address field may include an address for the hard disk drive that is accessed when the error is detected.

메모리 장치의 경우, 상세 장애 정보 테이블 엔트리는, 메모리 장애가 보정된 주소를 지시할 수도 있는, 메모리 페이지 주소를 식별하는 필드를 포함할 수도 있다. 테이블 엔트리는, 예를 들어, 단일 비트 패리티 에러, 보호 위반, 이중 비트 에러 등의, 검출된 에러나 장애 타입을 설명하는 에러-타입 필드를 포함할 수도 있다. 접근 장치 필드는, 예를 들어, 프로세스 ID, DMA 장치 또는 다른 버스 마스터링 장치 또는 다른 식별자 등의, 에러가 검출된 때 접근 프로그램에 관한 정보를 포함할 수도 있다.In the case of a memory device, the detailed failure information table entry may include a field that identifies a memory page address, which may indicate the address where the memory failure was corrected. The table entry may include an error-type field that describes the detected error or failure type, such as, for example, single bit parity error, protection violation, double bit error, and the like. The access device field may include information about the access program when an error is detected, such as, for example, a process ID, a DMA device or another bus mastering device or other identifier.

네트워크/LAN 장치의 경우, 상세 장애 정보 테이블 엔트리는, 에러가 발생한 특정 I/O 포트를 식별하는 필드와, 예를 들어, 특정 포트나 라인 등의, 에러가 검출된 주소를 지시하는 필드를 포함할 수도 있다. 또한, 예를 들어, 캐리어 없음, i/o 프로세서 내의 장애, 여러 네트워크 프로토콜로부터의 에러, 링크 에러 등의, 검출된 에러나 장애 타입을 설명하는 필드를 제공할 수도 있다.In the case of a network / LAN device, the detailed fault information table entry includes a field identifying a specific I / O port where an error occurred and a field indicating an address where an error is detected, for example, a specific port or line. You may. It is also possible to provide fields describing the type of error or failure detected, for example, no carrier, failure in the i / o processor, errors from various network protocols, link errors, and the like.

상세 장애 정보 테이블은 다른 형태를 취하거나 다수의 서로 다른 컴포넌트 타입으로부터의 정보를 포함할 수도 있음을 알 수 있다.It can be appreciated that the detailed failure information table may take different forms or include information from a number of different component types.

도 5는 본 발명의 예시적인 실시예에 따른, 메모리 컴포넌트에 대한 장애 진단 및 예측을 위한 예시적인 절차를 나타낸다. 예시적인 절차는 메모리 장애 분석의 관점에서 설명되지만, 유사한 절차를 이용하여 다른 컴포넌트 타입을 제어할 수도 있다. 예시적인 절차는 진단 프로세서, 위성 진단 프로세서, 양쪽 프로세서를 조합하여, 또는 소정의 다른 시스템 요소에 의해 실행될 수도 있다. 예시적인 절차는 컴퓨터-판독 가능 매체 상에 기억된 일련의 명령을 실행함으로써 실행될 수도 있음을 알 수 있다. 일련의 명령은 CD-ROM, 디스크, 테이프 상에 마이크로코드로서 또는 펌웨어에, 또는 임의의 다른 컴퓨터-판독 가능 매체 상에 기억될 수도 있다.5 illustrates an example procedure for fault diagnosis and prediction for a memory component, in accordance with an exemplary embodiment of the present invention. The example procedure is described in terms of memory failure analysis, but similar procedures may be used to control other component types. Example procedures may be performed by a diagnostic processor, a satellite diagnostic processor, a combination of both processors, or by some other system element. It can be appreciated that the example procedures may be executed by executing a series of instructions stored on a computer-readable medium. The series of instructions may be stored as microcode on a CD-ROM, disk, tape, or in firmware, or on any other computer-readable medium.

예시적인 절차의 반복은 1002에서 시작한다. 예시적인 절차는, 예를 들어, 정규 시간 간격 등으로, 주기적으로 실행되거나, 예를 들어, 패리티 에러가 검출된 때, 또는 메모리 판독이나 기입 동안 장애-관련 인터럽트가 발생한 때 실행되는 등의, 이벤트 트리거될 수도 있다. 실행 빈도는, 예를 들어, 작업 부하가 증가함에 따라 감소하거나, 더 많은 장애가 검출된 때 증가하는 등의 시스템 상태의 함수로서 변할 수도 있음을 알 수 있다. 또한, 예시적인 절차는, 특정 타입의 자가 보정 장애가 임계값에 도달할 때 트리거되도록 설정될 수도 있다.Repetition of the example procedure begins at 1002. Exemplary procedures may be performed periodically, for example, at regular time intervals, or the like, such as when a parity error is detected or when a fault-related interrupt occurs during a memory read or write. May be triggered. It can be appreciated that the frequency of execution may change as a function of system state, for example, decreasing as the workload increases, or increasing when more failures are detected. The example procedure may also be set to be triggered when a particular type of self-correction failure reaches a threshold.

1003에서, 상세 장애 정보 테이블로부터의 장애 데이터는, 예를 들어, CPU 칩셋 장애 레지스터나 메모리로부터 위성 진단 프로세서 등에 의해, 판독될 수도 있다. 또한, 채용된 특정 하드웨어 구현에 따라, 장애 데이터는 장애 컴포넌트로부터 진단 프로세서에 의해 직접 판독될 수도 있음을 알 수 있다. 또한, 장애 데이터는, 예를 들어, 운영 체제 에러 메시지나 인터럽트를 로깅함으로써, 컴포넌트로부터 직접 수집되기보다는, 간접적으로 수집될 수도 있다. 가능한 소스에 의한, 또는 시간에 의한 서로 다른 타입의 에러 메시지의 상관이 유리할 수도 있음을 알 수 있다.At 1003, fault data from the detailed fault information table may be read, for example, by a satellite diagnostic processor or the like from the CPU chipset fault register or memory. It can also be appreciated that, depending on the particular hardware implementation employed, fault data may be read directly by the diagnostic processor from the fault component. In addition, fault data may be collected indirectly, rather than directly from the component, for example by logging operating system error messages or interrupts. It will be appreciated that correlation of different types of error messages by possible sources or by time may be advantageous.

1004에서, 위성 진단 프로세서는 마스터 정책(예를 들어, NOC(network operation center)에 의해 설정된 정책)을 분석하여, 에러가 장애 극복 행동을 취할 것을 보장하는지를 결정할 수도 있다. 장애 정보는 위성 진단 프로세서에 의해 전처리된 장애 데이터이거나, 예를 들어, 로그 파일 형태로 직접 기록될 수도 있다. 장애 정보는, 장애가 발생한 메모리 주소나 페이지 주소, 시간 및 장애 타입을 포함할 수도 있다. 장애 타입 정보는 장애의 엄격성, 검출 방법 및 예를 들어, 특정 메모리 위치에서 성공적으로 보정된 패리티 에러 등의, 검출된 장애의 특정 성질을 포함할 수도 있다.At 1004, the satellite diagnostic processor may analyze the master policy (eg, the policy set by the network operation center (NOC)) to determine whether the error guarantees to take over failover behavior. The fault information may be fault data preprocessed by the satellite diagnostic processor, or may be recorded directly in the form of a log file, for example. The failure information may include the memory address or page address where the failure occurred, the time and the failure type. The failure type information may include the severity of the failure, the detection method and the specific nature of the detected failure, such as, for example, a parity error successfully corrected at a particular memory location.

1008에서, 에러를 발생하는 장치에 대한 장애 극복이 일어나야 하는지를 결정한다. 예를 들어, 장애의 수와 성질을 검사하여 컴포넌트 고장 가능성을 예측할 수도 있다. 컴포넌트가 전체적으로 소정의 장애 수보다 많은 수의 장애를 갖거나 소정의 시간 간격에서 소정 수의 장애보다 많은 수의 장애를 가지면(1004에서 마스터 정책으로부터 판독될 수도 있음), 보정 행동을 취할 필요가 있을 수도 있고, 예시적인 절차는 1012로 진행한다. 그렇지 않은 경우에는, 절차는 1010으로 진행한다. 서로 다른 임계값이 서로 다른 장애 타입에 이용될 수도 있고, 예를 들어, 보정된 패리티 에러는 비교적 높은 임계값을 가질 수도 있지만, 전체 컴포넌트의 전체 하드 장애는 검출되자마자 작용할 수도 있음을 알 수 있다. 임계값은 시스템 상태나 작업부하 등에 따라 변할 수도 있다.At 1008, it is determined whether failover should occur for the device generating the error. For example, the number and nature of failures can be examined to predict the likelihood of component failure. If the component as a whole has more than a certain number of failures or more than a certain number of failures in a given time interval (may be read from the master policy at 1004), then corrective action may need to be taken. The example procedure may proceed to 1012. Otherwise, the procedure proceeds to 1010. It can be seen that different thresholds may be used for different failure types, for example, a corrected parity error may have a relatively high threshold, but an overall hard failure of the entire component may act upon detection. . The threshold may vary depending on system state or workload.

1010에서, 어떤 장애 극복도 일어나지 않고, 예시적인 절차의 반복은 종료할 수도 있다. 예시적인 절차는, 반복적인, 주기적인 검사일 수도 있고, 이 경우, 1010은 전체 절차가 아닌, 단지 반복의 종료만을 표현한다.At 1010, no failover is overtaken, and the repetition of the example procedure may end. The example procedure may be an iterative, periodic check, in which case 1010 represents only the end of the iteration, not the entire procedure.

1012에서, 프로액티브(pro-active) 장애 극복을 호출하고, 그 동작이 완료되면(판정 블록(1013)), 제어는 블록(1014)으로 진행하여 메모리 진단 절차를 개시할 수도 있다. 예를 들어, 메모리가 BIST(Built-In Self Test) 능력을 가지면, BIST 기능의 실행을 트리거할 수도 있다. 또한, 다른 테스팅 또는 진단 절차를 채용할 수도 있고, 예를 들어, 운영 체제에 의한 메모리 감사(audit)나 정화(scrub)를 트리거할 수도 있고, 또는 체크포인트로부터 프로세스를 재실행하거나 회복 블록을 실행하는 등의 시간 중복 기술을 채용할 수도 있다.At 1012, invoking pro-active failover and once the operation is complete (decision block 1013), control may proceed to block 1014 to initiate a memory diagnostic procedure. For example, if the memory has Built-In Self Test (BIST) capability, it may trigger the execution of the BIST function. It is also possible to employ other testing or diagnostic procedures, for example to trigger memory audits or scrubs by the operating system, or to rerun processes from checkpoints or to execute recovery blocks. It is also possible to employ a time overlapping technique such as

1015에서, 메모리 문제가 검출되었는지를 판정한다. 메모리 문제가 검출되지 않으면, 제어는 블록(1016)으로 진행하고, 경고 에러 플래그와 데이터는 제어 모듈(CMM)에 전송된다. 또한, 미들웨어 애플리케이션으로의 경고 메시지도 트리거된다. 제어는 판정 블록(1017)으로 진행하여, (블록(1018)에서와 같이) 장치가 다시 로딩 및 재시작되어야 하는지를 결정한다. 그렇지 않으면, 제어는, 보드를 바꾸는 블록(1019)으로 진행한다.At 1015, it is determined whether a memory problem is detected. If no memory problem is detected, control proceeds to block 1016 and the warning error flag and data are sent to the control module CMM. It also triggers a warning message to the middleware application. Control proceeds to decision block 1017 to determine if the device should be reloaded and restarted (as in block 1018). Otherwise, control proceeds to block 1019 that changes the board.

메모리 문제가 판정 블록(1015)에서 검출되면, 제어는 블록(1020)으로 진행한다. 이 경우, 예시적인 절차는, 메모리 내의 문제나 잠재적인 장애, 또는 적어도 더 높은 장애 발생 가능성을 식별하였다. 예시적인 절차는 여러 타입의 보정 행동을 개시할 수도 있다. 예를 들어, 문제의 성질을 지시하는 중요 에러 경보를 CMM과 NOC에 전송할 수도 있다. 1021에서, 예시적인 절차는 수리 프로세스가 개시된 후 종료할 수도 있다.If a memory problem is detected at decision block 1015, control passes to block 1020. In this case, the exemplary procedure has identified a problem or potential failure in memory, or at least a higher probability of failure. Exemplary procedures may initiate various types of corrective action. For example, a critical error alert may be sent to the CMM and NOC indicating the nature of the problem. At 1021, the example procedure may end after the repair process commences.

도 6은 본 발명의 예시적인 실시예에 따른, 디스크 컴포넌트를 위한 장애 진단 및 예측을 위한 예시적인 절차를 나타낸다. 예시적인 절차는 디스크 장애 분석의 관점에서 설명되지만, 다른 컴포넌트 타입이 유사한 절차를 가질 수 있음을 알 수 있다. 예시적인 절차는, 진단 프로세서, 위성 진단 프로세서, 양쪽 프로세서를 조합하여, 또는 소정의 다른 시스템 요소에 의해 실행될 수도 있다. 예시적인 절차는 컴퓨터-판독 가능 매체 상에 기억된 일련의 명령을 실행함으로써 실행될 수도 있음을 알 수 있다. 일련의 명령은 CD-ROM, 디스크, 테이프 상에 마이크로코드로서 또는 펌웨어에, 또는 임의의 다른 컴퓨터-판독 가능 매체 상에 기억될 수도 있다.6 illustrates an exemplary procedure for fault diagnosis and prediction for a disk component, in accordance with an exemplary embodiment of the present invention. The example procedure is described in terms of disk failure analysis, but it can be appreciated that other component types may have similar procedures. Example procedures may be performed by a diagnostic processor, a satellite diagnostic processor, a combination of both processors, or by some other system element. It can be appreciated that the example procedures may be executed by executing a series of instructions stored on a computer-readable medium. The series of instructions may be stored as microcode on a CD-ROM, disk, tape, or in firmware, or on any other computer-readable medium.

예시적인 절차의 반복은 1102에서 시작한다. 예시적인 절차는, 주기적으로, 예를 들어, 정규 시간 간격에서, 실행될 수도 있고, 또는 예를 들어, 디스크 판독이나 기입 동안 장애-관련 인터럽트가 발생할 때, 이벤트 트리거될 수도 있다. 실행 빈도는, 예를 들어, 작업 부하가 증가함에 따라 감소하거나, 더 많은 장애가 검출된 때 증가하는 등의 시스템 상태의 함수로서 변할 수도 있음을 알 수 있다.Repetition of the example procedure begins at 1102. The example procedure may be executed periodically, for example at regular time intervals, or may be event triggered when a fault-related interrupt occurs, for example, during a disk read or write. It can be appreciated that the frequency of execution may change as a function of system state, for example, decreasing as the workload increases, or increasing when more failures are detected.

1103에서, 디스크로부터의 장애 데이터는, 예를 들어, 디스크 제어기를 갖는 같은 블레이드 상에 위치한 위성 진단 프로세서에 의해, 판독될 수도 있다. 데이터는 디스크 장애 레지스터 또는 다른 형태의 장애 상세 테이블로부터 판독될 수도 있다. 또한, 채용된 특정 하드웨어 구현에 따라, 장애 데이터는 장애 컴포넌트로부터 진단 프로세서에 의해 직접 판독되거나, 예를 들어, 운영 체제로부터 간접적으로 얻어질 수도 있다.At 1103, faulty data from the disk may be read, for example, by a satellite diagnostic processor located on the same blade with the disk controller. Data may be read from a disk fault register or other form of fault detail table. In addition, depending on the particular hardware implementation employed, the fault data may be read directly by the diagnostic processor from the fault component, or may be obtained indirectly from an operating system, for example.

1104에서, 위성 진단 프로세서는 장애에 관한 정보를 갖는 마스터 장치 장애 테이블을 갱신하게 된다. 장애 정보는 위성 진단 프로세서에 의해 전처리된 장애 데이터이거나, 예를 들어, 로그 파일 형태로, 간접적으로 기록된 미가공 장애 데이터일 수도 있다.At 1104, the satellite diagnostic processor will update the master device failure table with information about the failure. The fault information may be fault data preprocessed by the satellite diagnostic processor or raw fault data recorded indirectly, for example in the form of a log file.

1106에서, 위성 프로세서는, 예를 들어, 일정 에이지(age)보다 큰 엔트리를 삭제하고, 관련 장애를 붕괴시키거나, 다른 형태의 처리에 의해, 마스터 장치 테이블에서 데이터를 에이징하거나 필터링할 수도 있다.At 1106, the satellite processor may age or filter the data in the master device table, for example, by deleting entries larger than a certain age, collapsing the associated failure, or by some other form of processing.

1106에서, 절차는 장애 극복과 임계값에 관한 정책에 대한 NOC(Network Control Center)에 의해 설정된 (있는 경우) 마스터 정책을 판독한다.At 1106, the procedure reads the master policy (if any) set by the Network Control Center (NOC) for policy on failover and threshold.

1108에서, 장애 수와 장애 성질을 검사하여, 컴포넌트 고장 가능성을 예측할 수도 있다. 컴포넌트가 전체적으로 소정의 장애 수보다 많은 수의 장애를 갖거나 소정의 시간 간격이나 윈도에서 소정 수의 장애보다 많은 수의 장애를 가지면, 보정 행동을 취할 필요가 있을 수도 있고, 예시적인 절차는 1112로 진행한다. 그렇지 않은 경우에는, 1110으로 진행할 수도 있다. 특정 보정 행동은 장애 정보 테이블에 기록된 장애의 수와 타입에 따라 다를 수도 있다. 예를 들어, 국한된 장애는 단지 소정의 디스크 섹터를 불량으로서 표시할 수도 있다. 더 넓은 영역에 걸친 더 큰 수의 장애는 전체 디스크 드라이브가 갖는 문제를 나타낼 수도 있다.At 1108, the number of failures and the nature of the failure may be examined to predict the likelihood of component failure. If a component as a whole has more than a certain number of failures, or more than a certain number of failures in a given time interval or window, then it may be necessary to take corrective action, and the exemplary procedure goes to 1112. Proceed. Otherwise, proceed to 1110. The specific corrective action may depend on the number and type of disturbances recorded in the disability information table. For example, a limited failure may only indicate a certain disk sector as bad. A larger number of failures over a larger area may indicate a problem with the entire disk drive.

1110에서, 어떤 디스크 드라이브 장애도 예측되지 않고, 예시적인 절차의 반복이 종료할 수도 있다. 예시적인 절차는, 반복적인, 주기적인 검사일 수도 있고, 이 경우, 1110은 전체 절차가 아닌, 단지 반복의 종료만을 표현한다.At 1110, no disk drive failure is anticipated and the repetition of the example procedure may end. The example procedure may be an iterative, periodic check, in which case 1110 represents only the end of the iteration, not the entire procedure.

1112에서, 디스크 드라이브 진단 절차를 개시할 수도 있다. 예를 들어, 디스크 드라이브 제어기가 BIST 능력을 가지면, BIST 기능의 실행을 트리거할 수도 있다. 또한, 프로그램을 개시하여, 디스크를 스캔하거나, 미러로서 기능을 하는 제2 디스크와 디스크 내용을 비교할 수도 있다.At 1112, a disk drive diagnostic procedure may be initiated. For example, if the disk drive controller has BIST capability, it may trigger the execution of the BIST function. It is also possible to start the program and scan the disc or compare the disc contents with a second disc serving as a mirror.

1114에서, 진단 절차의 결과를 평가할 수도 있다. 문제가 검출되거나, 장애가 발생할 것으로 보이면, 예시적인 절차는 1118로 진행할 수도 있다. 그렇지 않은 경우에는, 예시적인 절차는 1115에서 진행할 수도 있다.At 1114, the results of the diagnostic procedure may be evaluated. If a problem is detected or a failure is likely to occur, the exemplary procedure may proceed to 1118. If not, the exemplary procedure may proceed at 1115.

1115에서, 진단 절차는, 고장이 발생할 것으로 검출하지 않았다. 경고 플래그와 에러 데이터는 제어 블레이드 상의 마스터 장애 정보 테이블에 전송될 수도 있다. 또한, 경고 또는 에러 플래그는 다른 위치, 예를 들어, 운영 체제나 시스템을 감시하는 다른 관리 시스템에 전송될 수도 있다. 예시적인 절차의 반복은 종료할 수도 있다. 예시적인 절차는 반복적인, 주기적인 검사일 수도 있고, 이 경우, 1110은 전체 절차가 아닌, 단지 반복의 종료만을 표현한다. 장애 정보를 계속 갱신할 수도 있으므로, 특정 디스크 드라이브가 계속 문제를 일으키면, 어떤 고장도 예측되거나 검출되지 않더라도, 서비스 또는 대체를 위해 플래그할 수도 있음을 알 수 있다.At 1115, the diagnostic procedure did not detect that a failure would occur. Warning flags and error data may be sent to the master fault information table on the control blade. In addition, a warning or error flag may be sent to another location, such as another management system that monitors the operating system or system. Repetition of the example procedure may end. The example procedure may be an iterative, periodic check, in which case 1110 represents only the end of the iteration, not the entire procedure. Since the failure information may be updated continuously, it can be seen that if a particular disk drive continues to cause problems, it may flag for service or replacement, even if no failure is expected or detected.

1118에 도달하면, 예시적인 절차는 디스크 드라이브에서 잠재적 고장을 발견하거나, 적어도 고장 발생의 가능성 증가를 결정하였다. 마스터 장애 정보 테이블은 "엄격한" 에러 플래그를 포함한 장애 정보로 갱신될 수도 있다. 예시적인 절차는 여러 타입의 보정 행동을 포함할 수도 있다. 예를 들어, 1119에서, 문제의 성질을 지시하는, 경보를 운영 체제에 전송할 수도 있다. 1120에서, 장애 드라이브나 디스크 블록으로부터 멀리 파일을 재할당하기 위한 프로세스를 개시할 수도 있다. 장애 블록을 결함이 있는 것으로 표시하여, 그 이용을 회피할 수도 있다. 장애 디스크 드라이브 (또는 장애 블록)을 디스에이블할 수도 있다. 장애 디스크 드라이브는 시스템이 동적 재구성 능력을 갖거나 미러되면, 여분에 의해 대체될 수도 있다. 다른 방법으로는, 운영 체제는 특정 디스크 드라이브나 디스크 페이지에 접근하지 못하도록 구성될 수도 있다. 파일은 그 드라이브로부터 다른 드라이브로 복사될 수도 있다. 또한, 다른 형태의 보정 행동을 취할 수도 있다. 예를 들어, 불량 디스크 블록으로부터의 데이터에 의해 잠재적으로 오염되는 사용자 프로세스는 종료하거나 체크포인트로 다시 복귀할 수도 있다.Upon reaching 1118, the exemplary procedure found a potential failure in the disk drive, or at least determined an increased likelihood of failure occurring. The master fault information table may be updated with fault information including a "strict" error flag. Example procedures may include several types of corrective action. For example, at 1119, an alert may be sent to the operating system indicating the nature of the problem. At 1120, a process may be initiated to reallocate files away from a failed drive or disk block. A failure block may be marked as defective and its use may be avoided. You can also disable a failed disk drive (or failed block). A failed disk drive may be replaced by a spare if the system has dynamic reconfiguration capability or is mirrored. Alternatively, the operating system may be configured to prevent access to certain disk drives or disk pages. The file may be copied from that drive to another drive. It is also possible to take other forms of corrective action. For example, a user process potentially contaminated by data from a bad disk block may terminate or return back to a checkpoint.

1112에서, 예시적인 절차는 보정 행동을 취한 후 종료할 수도 있다. 예시적인 절차는 반복적인, 주기적인 검사일 수도 있고, 이 경우, 1122는 전체가 아닌, 단지 반복의 종료만을 표현한다. 장애 정보를 계속 갱신할 수도 있으므로, 특정 디스크 드라이브가 계속 문제를 일으키면, 고장이 단지 소정의 세그먼트나 트랙에서만 검출되더라도, 플래그하여 대체할 수도 있다.At 1112, the example procedure may end after taking corrective action. The example procedure may be an iterative, periodic check, in which case 1122 represents only the end of the iteration, not the whole. Since failure information may be updated continuously, if a particular disk drive continues to cause problems, it may be flagged and replaced, even if the failure is detected only in a predetermined segment or track.

<다른 예시적인 <Other exemplary 실시예Example >>

본 발명에 따른 다른 예시적인 실시예에서, 장치 에러 테이블 엔트리(702; 도 7)는 몇몇의 필드를 포함할 수도 있다.In another exemplary embodiment in accordance with the present invention, the device error table entry 702 (FIG. 7) may include several fields.

장치 에러 테이블 엔트리(702)는 장치 식별 필드를 포함할 수도 있다.The device error table entry 702 may include a device identification field.

또한, 장치 에러 테이블 엔트리(702)는 리키 버킷(leaky bucket) 장애 카운터를 포함할 수도 있다. 리키 버킷 장애 카운터는, 너무 많은 장애가 소정의 시간 간격이나 윈도에서 발생한 결과, 장치 식별 필드에서 식별된 컴포넌트에 대한 보정 행동을 취할 필요가 있는지를 추적하도록 구성될 수도 있다. 예를 들어, 장애가 검출될 때마다 카운터를 증가시킬 수도 있다. 주기적으로, 카운터를 감소시켜, 예를 들어, 장애 정보를 에이징할 수도 있다. 일 실시예에서, 장애나 에러의 빈도가 감소하면, 에러 카운트에 대한 시간 윈도를 증가시킬 수 있다. 또한, 장애나 에러의 빈도가 증가하면, 에러 카운트에 대한 시간 윈도를 감소시킬 수 있다. 카운터가 임계값을 초과하면, 문제가 발생하였고 보정 행동을 취할 필요가 있는 것으로 판정할 수도 있다. 감소의 임계값과 레이트를 조정하여 원하는 장애 검출 성능 특성을 달성할 수도 있다.Device error table entry 702 may also include a leaky bucket fault counter. The leaky bucket failure counter may be configured to track whether too many failures have occurred in a given time interval or window, and therefore need to take corrective action on the component identified in the device identification field. For example, the counter may be incremented each time a fault is detected. Periodically, the counter may be decremented to, for example, age fault information. In one embodiment, decreasing the frequency of failures or errors may increase the time window for error counts. In addition, as the frequency of failures and errors increases, the time window for error counts can be reduced. If the counter exceeds the threshold, it may be determined that a problem has occurred and needs to take corrective action. The threshold and rate of reduction may be adjusted to achieve the desired failure detection performance characteristic.

또한, 예시적인 장치 에러 테이블 엔트리(702)는 상세 에러 정보에 대한 포인터와 데이트-타임 스탬프 필드를 포함할 수도 있다. 포인터 필드는, 수집될 수도 있고 장애 진단 및 보정 행동에 유용할 수도 있는 다른 정보, 또는 마지막 검출된 장애 타입에 관한 데이터를 지시할 수도 있다.The example device error table entry 702 may also include a pointer to detailed error information and a date-time stamp field. The pointer field may indicate other information that may be collected and may be useful for fault diagnosis and corrective action, or data regarding the last detected type of fault.

도 8은 본 발명의 다른 예시적인 실시예에 따른, 메모리 컴포넌트를 위한 장애 진단 및 예측을 위한 제2 예시적인 절차를 나타낸다. 이 예시적인 절차는 메모리 장애 분석의 관점에서 설명되지만, 다른 컴포넌트 타입이 유사한 절차를 가질 수 있다. 예시적인 절차는 진단 프로세서, 위성 진단 프로세서, 양쪽 프로세서를 조합하여, 또는 소정의 다른 시스템 요소에 의해 실행될 수도 있다. 예시적인 절차는 컴퓨터-판독 가능 매체 상에 기억된 일련의 명령을 실행함으로써 실행될 수도 있음을 알 수 있다. 일련의 명령은 CD-ROM, 디스크, 테이프 상에 마이크로코드로서 또는 펌웨어에, 또는 임의의 다른 컴퓨터-판독 가능 매체 상에 기억될 수도 있다.8 illustrates a second example procedure for fault diagnosis and prediction for a memory component, in accordance with another example embodiment of the present invention. This example procedure is described in terms of memory failure analysis, but other component types may have similar procedures. Example procedures may be performed by a diagnostic processor, a satellite diagnostic processor, a combination of both processors, or by some other system element. It can be appreciated that the example procedures may be executed by executing a series of instructions stored on a computer-readable medium. The series of instructions may be stored as microcode on a CD-ROM, disk, tape, or in firmware, or on any other computer-readable medium.

예시적인 절차의 반복은 1302에서 시작한다. 예시적인 절차는, 예를 들어, 정규 시간 간격 등으로, 주기적으로 실행되거나, 예를 들어, 패리티 에러가 검출될 때마다, 또는 메모리 판독이나 기입 동안 장애-관련 인터럽트가 발생한 때 실행되는 등의, 이벤트 트리거될 수도 있다. 실행 빈도는, 예를 들어, 작업 부하가 증가함에 따라 감소하거나, 더 많은 장애가 검출된 때 증가하는 등의 시스템 상태의 함수로서 변할 수도 있음을 알 수 있다.Repetition of the example procedure begins at 1302. Exemplary procedures may be performed periodically, for example at regular time intervals, or whenever a parity error is detected, or when a fault-related interrupt occurs during a memory read or write, or the like. Event may be triggered. It can be appreciated that the frequency of execution may change as a function of system state, for example, decreasing as the workload increases, or increasing when more failures are detected.

1304에서, 컴포넌트로부터의 장애 데이터는, 예를 들어, 위상 진단 프로세서에 의해 판독될 수도 있다. 또한, 채용된 특정 하드웨어 구현에 따라, 장애 데이터는 진단 프로세서에 의해 직접 판독될 수도 있다. 장애 데이터는, 예를 들어, 컴포넌트 장애 레지스터를 판독함으로써, 임의의 종래 방법으로 판독될 수도 있다.At 1304, fault data from the component may be read by, for example, a phase diagnostic processor. In addition, depending on the particular hardware implementation employed, the fault data may be read directly by the diagnostic processor. The fault data may be read in any conventional manner, for example by reading the component fault register.

1306에서, 장애 데이터를 검사하여, 새 장애가 발생하였는지를 체크할 수도 있다. 새 장애가 검출되면, 예시적인 절차는 1308로 진행할 수도 있다. 새 장애가 실제로 성공적으로 보정되고 컴포넌트에 의해 마스킹될 수도 있으므로, 장애 레지스터에 포함된 정보 이외에 시스템은 장애를 전체로서 볼 수 없을 수도 있음에 주목하자. 어떤 새 장애도 발생하지 않으면, 예시적인 절차는 1318로 진행할 수도 있다.At 1306, the failure data may be checked to see if a new failure has occurred. If a new failure is detected, the example procedure may proceed to 1308. Note that the system may not be able to see the failure as a whole other than the information contained in the failure register because the new failure may actually be successfully corrected and masked by the component. If no new failure occurs, the exemplary procedure may proceed to 1318.

1308에서, 컴포넌트를 위한 리키 버킷 장애 카운터를 증가시킬 수도 있다. 또한, 컴포넌트를 위한 장애 정보 테이블 내의 다른 필드를 갱신할 수도 있다.At 1308, the leaky bucket failure counter for the component may be incremented. It is also possible to update other fields in the fault information table for the component.

1310에서, 컴포넌트를 위한 리키 버킷 장애 카운터를 테스트하여, 카운터가 소정의 임계값을 초과하였는지를 결정한다. 카운터가 소정의 임계값을 초과하면, 예시적인 실시예는 보정 행동을 취할 수도 있고, 1312로 진행한다. 임계값을 초과하지 않으면, 예시적인 절차는 1318로 진행할 수도 있다.At 1310, the Ricky Bucket Fault Counter for the component is tested to determine if the counter has exceeded a predetermined threshold. If the counter exceeds a predetermined threshold, the example embodiment may take corrective action and proceed to 1312. If the threshold is not exceeded, the example procedure may proceed to 1318.

1312에서, 보정 행동을 개시할 수도 있다. 예를 들어, 경보를 운영 체제에 전송할 수도 있다. 보정 행동은 계속된다. 예를 들어, 장애 메모리 위치를 디스에이블할 수도 있다.At 1312, corrective action may be initiated. For example, an alert may be sent to the operating system. Corrective action continues. For example, a failed memory location may be disabled.

예시적인 절차는 1316에서 종료한다. 절차는, 다른 장애가 시스템에서 검출된 때, 또는 다른 컴포넌트를 위해 진행할 수도 있다.The example procedure ends at 1316. The procedure may proceed when another failure is detected in the system or for another component.

1318에서, 리키 버킷 장애 카운터 소정의 임계값을 초과하지 않았다. 시스템은, 소정의 간격 동안, 또는 절차가 이벤트 구동되면, 다른 장애가 발생할 때까지 대기할 수도 있다.At 1318, the Ricky Bucket Failure Counter did not exceed a predetermined threshold. The system may wait for a predetermined interval, or if another procedure occurs, if the procedure is event driven.

대기 동안, 1320에서, 컴포넌트에 대한 장애 데이터는, 예를 들어, 주기적으로 장애 카운터를 감소시킴으로써, 에이징될 수도 있다. 절차는, 다른 장애가 발생한 후, 또는 소정의 대기 간격이 지난 후, 1304로 진행할 수도 있다.During the wait, at 1320 fault data for the component may be aged, for example, by periodically decreasing the fault counter. The procedure may proceed to 1304 after another failure occurs, or after a predetermined waiting interval.

<변형><Variation>

선행한 명세서에서, 본 발명은 특정 예시적인 실시예를 참조하여 설명되었다. 그러나, 다음 청구항에서 개시된 것과 같은 본 발명의 더 넓은 사상과 범위로부터 일탈함이 없이 여러 변형과 변경을 할 수도 있음을 명확하게 알 수 있다. 따라서, 명세서와 도면은 제한적인 의미보다는 예시적인 것으로서 고려되어야 한다.In the foregoing specification, the invention has been described with reference to specific exemplary embodiments. However, it will be apparent that various modifications and changes may be made without departing from the broader spirit and scope of the invention as disclosed in the following claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (46)

컴포넌트;component; 상기 컴포넌트와 결합한 장애 정보를 수신하도록 구성된 장애 테이블; 및A fault table configured to receive fault information associated with the component; And 상기 장애 테이블로부터 상기 장애 정보를 판독하고, 상기 컴포넌트의 고장이 일어나기 이전에 상기 장애 정보의 함수로서 보정 행동을 개시하도록 구성된 진단 프로세서A diagnostic processor configured to read the fault information from the fault table and initiate corrective action as a function of the fault information before a failure of the component occurs 를 포함하는 시스템.System comprising a. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 상기 진단 프로세서에 포함되는 시스템.The fault table is included in the diagnostic processor. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 상기 진단 프로세서 외부에 포함되는 시스템.The fault table is included outside the diagnostic processor. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 엔트리(entry)를 포함하고,The failure table includes an entry, 상기 엔트리는 상기 컴포넌트의 신원을 나타내는 필드를 포함하는 시스템.The entry includes a field indicating an identity of the component. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 엔트리를 포함하고,The failure table includes an entry, 상기 엔트리는 시간 값 필드를 포함하는 시스템.The entry includes a time value field. 제5항에 있어서,The method of claim 5, 상기 시간 값 필드는, 상기 컴포넌트에서 장애가 검출된 때를 나타내는 시스템.And the time value field indicates when a failure is detected in the component. 제5항에 있어서,The method of claim 5, 상기 시간 값 필드는 상기 컴포넌트에서 장애가 검출된 후 경과된 시간을 나타내는 시스템.Wherein the time value field indicates a time that has elapsed since a failure was detected in the component. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 엔트리를 포함하고,The failure table includes an entry, 상기 엔트리는 상기 컴포넌트에서 검출된 장애의 성질을 나타내는 정보를 포함하는 시스템.The entry includes information indicative of the nature of the failure detected in the component. 제1항에 있어서,The method of claim 1, 상기 장애 테이블은 엔트리를 포함하고,The failure table includes an entry, 상기 엔트리는 리키 버킷(leaky bucket) 장애 카운터를 포함하는 시스템.The entry includes a leaky bucket fault counter. 제1항에 있어서,The method of claim 1, 상기 진단 프로세서는 상기 컴포넌트의 고장을 예측하기 위한 것인 시스템.The diagnostic processor for predicting a failure of the component. 제1항에 있어서,The method of claim 1, 상기 컴포넌트는 장애 레지스터를 포함하고,The component includes a fault register, 상기 장애 정보는 상기 장애 레지스터로부터 판독된 값을 포함하는 시스템.The fault information includes a value read from the fault register. 제1항에 있어서,The method of claim 1, 상기 진단 프로세서와 통신하고, 상기 컴포넌트로부터 장애 데이터를 수집하도록 구성된 위성 진단 프로세서를 더 포함하는 시스템.And a satellite diagnostic processor in communication with the diagnostic processor and configured to collect fault data from the component. 제12항에 있어서,The method of claim 12, 상기 위성 진단 프로세서는 상기 진단 프로세서와는 별개의 회로 기판 상에 위치하는 시스템.And wherein the satellite diagnostic processor is located on a circuit board separate from the diagnostic processor. 제12항에 있어서,The method of claim 12, 상기 위성 진단 프로세서는 상기 장애 데이터를 전처리하고, 상기 전처리된 장애 데이터를 상기 진단 프로세서에 전송하도록 구성되는 시스템.The satellite diagnostic processor is configured to preprocess the fault data and send the preprocessed fault data to the diagnostic processor. 제14항에 있어서,The method of claim 14, 상기 컴포넌트와 결합한 상기 장애 정보는 상기 위성 진단 프로세서에 의해 상기 컴포넌트로부터 수집된 상기 장애 데이터의 함수인 시스템.The fault information in combination with the component is a function of the fault data collected from the component by the satellite diagnostic processor. 제1항에 있어서,The method of claim 1, 상기 진단 프로세서와 통신하고, 섀시 장애 데이터를 수집하도록 구성된 섀시 관리 프로세서를 더 포함하는 시스템.And a chassis management processor in communication with the diagnostic processor and configured to collect chassis failure data. 제16항에 있어서,The method of claim 16, 상기 섀시 장애 데이터는 온도 정보를 포함하는 시스템.The chassis failure data includes temperature information. 제16항에 있어서,The method of claim 16, 상기 섀시 장애 데이터는 냉각 장치 작동 상태 정보를 포함하는 시스템.The chassis failure data includes cooling device operating state information. 제16항에 있어서,The method of claim 16, 상기 섀시 장애 데이터는 전원 작동 상태 정보를 포함하는 시스템.The chassis failure data includes power up state information. 제1항에 있어서,The method of claim 1, 상기 보정 행동은 상기 컴포넌트를 위한 진단 절차를 개시하는 단계를 포함하는 시스템.The corrective action comprises initiating a diagnostic procedure for the component. 제20항에 있어서,The method of claim 20, 상기 컴포넌트는 BIST(built-in self test)를 포함하고,The component includes a built-in self test (BIST), 상기 진단 절차는 상기 BIST를 실행하는 단계를 포함하는 시스템.The diagnostic procedure includes executing the BIST. 제1항에 있어서,The method of claim 1, 상기 보정 행동은 상기 컴포넌트를 디스에이블하는 단계를 포함하는 시스템.The corrective action includes disabling the component. 제1항에 있어서,The method of claim 1, 상기 보정 행동은 상기 컴포넌트를 여분의 컴포넌트로 바꾸는 단계를 포함하는 시스템.The corrective action includes replacing the component with a spare component. 제1항에 있어서,The method of claim 1, 상기 보정 행동은 경보 메시지를 생성하는 단계를 포함하는 시스템.The corrective action comprises generating an alert message. 제1항에 있어서,The method of claim 1, 상기 컴포넌트는 메모리를 포함하는 시스템.The component includes a memory. 제25항에 있어서,The method of claim 25, 상기 장애 정보는, 패리티 에러가 메모리에서 발생한 것을 나타내는 지시를 포함하는 시스템.The fault information includes an indication that a parity error has occurred in memory. 제25항에 있어서,The method of claim 25, 상기 장애 정보는 소정의 시간 간격에서의 패리티 에러 수의 카운트를 포함하는 시스템.The fault information includes a count of the number of parity errors in a predetermined time interval. 제1항에 있어서,The method of claim 1, 상기 컴포넌트는 디스크 드라이브 제어기를 포함하는 시스템.The component includes a disk drive controller. 제28항에 있어서,The method of claim 28, 상기 장애 정보는 상기 컴포넌트에 대한 I/O 작동 동안 재시도가 발생한 것을 나타내는 지시를 포함하는 시스템.The fault information includes an indication that a retry has occurred during an I / O operation for the component. 제28항에 있어서,The method of claim 28, 상기 장애 정보는 소정의 시간 간격에서의 I/O 에러 수의 카운트를 포함하는 시스템.The fault information includes a count of the number of I / O errors in a predetermined time interval. 제1항에 있어서,The method of claim 1, 상기 장애 정보는 상기 컴포넌트와 결합한 워치독(watchdog) 타이머의 값을 포함하는 시스템.The fault information comprises a value of a watchdog timer associated with the component. 제1항에 있어서,The method of claim 1, 상기 장애 정보는 상기 컴포넌트와 결합한 리키 버킷 장애 카운터를 포함하는 시스템.The fault information includes a leaky bucket fault counter associated with the component. 제1항에 있어서,The method of claim 1, 상기 진단 프로세서는 정책을 이용하여 상기 컴포넌트의 고장을 예측하기 위한 것인 시스템.And wherein said diagnostic processor is for predicting a failure of said component using a policy. 제1항에 있어서,The method of claim 1, 상기 진단 프로세서는, 소정의 시간 윈도에서의 소정 수의 장애보다 많은 장애가 발생하였는지에 기초하여 상기 컴포넌트의 고장을 예측하기 위한 것인 시스템.And wherein the diagnostic processor is for predicting a failure of the component based on whether more failures occur than a predetermined number of failures in a given time window. 제34항에 있어서,The method of claim 34, wherein 상기 시간 윈도는 상기 컴포넌트에서의 장애의 빈도에 기초하여 수정되는 시스템.The time window is modified based on the frequency of failures in the component. 시스템의 컴포넌트들과 결합한 장애 정보를 기억하도록 구성된 장애 정보 테이블; 및A fault information table configured to store fault information in association with components of the system; And 상기 장애 정보 테이블과 통신하고, 상기 장애 정보 테이블에 기억된 상기 장애 정보를 분석하도록 구성된 프로세서 - 상기 프로세서는 상기 컴포넌트의 고장이 일어나기 이전에, 상기 장애 정보 테이블에 기억된 상기 장애 정보의 분석에 기초하여 보정 행동을 선택하도록 구성됨 -A processor configured to communicate with the failure information table and to analyze the failure information stored in the failure information table, the processor based on the analysis of the failure information stored in the failure information table before failure of the component occurs. Configured to select corrective behaviors by 를 포함하는, 진단 프로세서.Including, a diagnostic processor. 제36항에 있어서,The method of claim 36, 상기 프로세서는 위성 진단 프로세서인, 진단 프로세서.The processor is a satellite diagnostic processor. 시스템에서 장애를 처리하기 위한 방법으로서,As a method for handling faults in the system, 컴포넌트와 결합한 장애 정보를 수신하는 단계;Receiving fault information associated with the component; 상기 장애 정보를 장애 정보 테이블에 기억하는 단계; 및Storing the failure information in a failure information table; And 상기 컴포넌트의 고장이 일어나기 이전에, 상기 장애 정보가 수신된 시간과 상기 장애 정보의 함수로서 보정 행동을 취하는 단계를 포함하는 방법.Taking corrective action as a function of the time at which the fault information was received and the fault information prior to the failure of the component. 제38항에 있어서,The method of claim 38, 상기 장애 정보 테이블 내의 상기 장애 정보에 기초하여 상기 컴포넌트의 고장 가능성을 예측하는 단계를 더 포함하는 방법.Predicting a likelihood of a failure of the component based on the failure information in the failure information table. 제39항에 있어서,The method of claim 39, 상기 컴포넌트의 고장 가능성을 예측하는 단계는 정책에도 기초하는 방법.Predicting the likelihood of failure of the component is also based on a policy. 제39항에 있어서,The method of claim 39, 상기 컴포넌트의 고장 가능성을 예측하는 단계는, 소정의 시간 윈도에서의 소정 수의 장애보다 많은 장애가 발생하였는지에 기초하는 방법.Predicting the likelihood of failure of the component is based on whether more failures occur than a predetermined number of failures in a given time window. 제41항에 있어서,The method of claim 41, wherein 상기 컴포넌트에서의 장애 빈도에 기초하여 상기 시간 윈도를 수정하는 단계를 더 포함하는 방법.Modifying the time window based on a frequency of failures in the component. 제38항에 있어서,The method of claim 38, 상기 장애 정보 테이블에 상기 장애 정보를 갖는 시간 값을 기억하는 단계를 더 포함하는 방법.Storing the time value with the failure information in the failure information table. 제43항에 있어서,The method of claim 43, 상기 장애 정보와 결합한 상기 시간 값이, 상기 장애 정보가 소정의 임계값보다 오래된 것을 나타내는 경우, 상기 장애 정보 테이블로부터 상기 장애 정보를 제거하는 단계를 더 포함하는 방법.If the time value combined with the fault information indicates that the fault information is older than a predetermined threshold, removing the fault information from the fault information table. 실행시, 시스템에서 장애를 처리하기 위한 방법을 제어하는데 이용되는 일련의 단계를 정의하고, 프로세서에 의해 실행되도록 구성된 명령들을 기억한 컴퓨터-판독 가능 매체를 포함한 제품으로서,A product comprising a computer-readable medium that, when executed, defines a series of steps used to control a method for handling a failure in a system and stores instructions configured to be executed by a processor. 상기 단계는,The step, 컴포넌트와 결합한 장애 정보를 수신하는 단계;Receiving fault information associated with the component; 상기 장애 정보를 장애 정보 테이블에 기억하는 단계; 및Storing the failure information in a failure information table; And 상기 컴포넌트의 고장이 일어나기 이전에, 상기 장애 정보가 수신된 시간과 상기 장애 정보의 함수로서 보정 행동을 취하는 단계를 포함하는 제품.Prior to failure of the component, taking corrective action as a function of the time at which the fault information was received and the fault information. 제45항에 있어서,The method of claim 45, 상기 단계는,The step, 상기 장애 정보 테이블 내의 상기 장애 정보에 기초하여 상기 컴포넌트의 고장 가능성을 예측하는 단계를 더 포함하는 제품.Predicting a likelihood of failure of the component based on the failure information in the failure information table.
KR1020077000494A 2004-07-06 2005-06-30 System and method to detect errors and predict potential failures KR100862407B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077000494A KR100862407B1 (en) 2004-07-06 2005-06-30 System and method to detect errors and predict potential failures

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/887,368 2004-07-06
KR1020077000494A KR100862407B1 (en) 2004-07-06 2005-06-30 System and method to detect errors and predict potential failures

Publications (2)

Publication Number Publication Date
KR20070020323A KR20070020323A (en) 2007-02-20
KR100862407B1 true KR100862407B1 (en) 2008-10-08

Family

ID=41649659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077000494A KR100862407B1 (en) 2004-07-06 2005-06-30 System and method to detect errors and predict potential failures

Country Status (1)

Country Link
KR (1) KR100862407B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237677A (en) * 1989-11-08 1993-08-17 Hitachi, Ltd. Monitoring and controlling system and method for data processing system
US5293323A (en) * 1991-10-24 1994-03-08 General Electric Company Method for fault diagnosis by assessment of confidence measure
US5587930A (en) * 1990-07-24 1996-12-24 Mitsubishi Denki Kabushiki Kaisha Fault diagnosis device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237677A (en) * 1989-11-08 1993-08-17 Hitachi, Ltd. Monitoring and controlling system and method for data processing system
US5587930A (en) * 1990-07-24 1996-12-24 Mitsubishi Denki Kabushiki Kaisha Fault diagnosis device
US5293323A (en) * 1991-10-24 1994-03-08 General Electric Company Method for fault diagnosis by assessment of confidence measure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
D. C. Bossen et al., "Fault-tolerant design of the IBM pSeries 690 system using POWER4 processor technology" IBM J. RES. & DEV. VOL. 46 NO. 1 JANUARY 2002.

Also Published As

Publication number Publication date
KR20070020323A (en) 2007-02-20

Similar Documents

Publication Publication Date Title
US7409594B2 (en) System and method to detect errors and predict potential failures
US10761926B2 (en) Server hardware fault analysis and recovery
US7313717B2 (en) Error management
US20040221198A1 (en) Automatic error diagnosis
US8713350B2 (en) Handling errors in a data processing system
US8839032B2 (en) Managing errors in a data processing system
Oliner et al. What supercomputers say: A study of five system logs
CN101126995B (en) Method and apparatus for processing serious hardware error
US9274902B1 (en) Distributed computing fault management
US7607043B2 (en) Analysis of mutually exclusive conflicts among redundant devices
Tang et al. Assessment of the effect of memory page retirement on system RAS against hardware faults
US8108724B2 (en) Field replaceable unit failure determination
US7137020B2 (en) Method and apparatus for disabling defective components in a computer system
CN110781053A (en) Method and device for detecting memory degradation errors
KR100862407B1 (en) System and method to detect errors and predict potential failures
Hunter et al. Availability modeling and analysis of a two node cluster
CN111190781A (en) Test self-check method of server system
Lundin et al. Significant advances in Cray system architecture for diagnostics, availability, resiliency and health
TW200307200A (en) Multiple fault location in a series of devices
US11797368B2 (en) Attributing errors to input/output peripheral drivers
CN117407207B (en) Memory fault processing method and device, electronic equipment and storage medium
US11620199B1 (en) Method and system for detection of post routine deviation for a network device
CN117555719A (en) Method and device for locating system abnormality, storage medium and electronic equipment

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee