KR100358663B1 - 클러스터 노드 디스트레스 신호 - Google Patents

클러스터 노드 디스트레스 신호 Download PDF

Info

Publication number
KR100358663B1
KR100358663B1 KR1020000014476A KR20000014476A KR100358663B1 KR 100358663 B1 KR100358663 B1 KR 100358663B1 KR 1020000014476 A KR1020000014476 A KR 1020000014476A KR 20000014476 A KR20000014476 A KR 20000014476A KR 100358663 B1 KR100358663 B1 KR 100358663B1
Authority
KR
South Korea
Prior art keywords
node
cluster
distress
message
distress message
Prior art date
Application number
KR1020000014476A
Other languages
English (en)
Other versions
KR20010006847A (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
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20010006847A publication Critical patent/KR20010006847A/ko
Application granted granted Critical
Publication of KR100358663B1 publication Critical patent/KR100358663B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 바람직한 실시예는 클러스터의 신뢰도를 개선하는 클러스터 노드 디스트레스 시스템 및 방법을 제공한다. 클러스터 노드 디스트레스 시스템은 클러스터 상의 노드에 고장이 있으려고 할 때 클러스터 노드 디스트레스 신호를 공급한다. 이것은 비통신 노드에 고장이 있는지 단지 클러스터에서 분리된 것인지를 클러스터가 잘 판단할 수 있게 한다. 바람직한 클러스터 노드 디스트레스 시스템은 운영 체제 내에 매립되어 있으며 임박한 노드의 고장이 검출될 때 신속히 클러스터의 다른 노드에 전송될 수 있는 미리 만들어진 노드 디스트레스 신호를 공급하여, 노드가 완전 고장나기 전에 노드 디스트레스 신호가 나올 수 있는 확률을 높힌다. 노드 디스트레스 신호가 클러스터의 다른 노드에 유효하게 보내질 때, 클러스터는 노드에 고장이 있는 것이지 클러스터에서 분리된 것이 아니라고 정확하게 판단할 수 있다. 이것은 클러스터가 다른 노드에 일차 책임을 할당하는 등으로 하여, 중재자에 의한 개입을 덜 필요로 하면서 정확하게 응답할 수 있도록 한다.

Description

클러스터 노드 디스트레스 신호{CLUSTER NODE DISTRESS SIGNAL}
본 발명은 일반적으로 클러스터 컴퓨터에 관한 것으로, 특히 클러스터 통신용 디스트레스 시그널링에 관한 것이다.
전자 시대에는 많은 유형의 정보에 대한 컴퓨터 시스템에 따라 사회가 좌우된다. 여러 조합의 하드웨어 (예를 들어, 반도체, 회로판, 등) 및 소프트웨어 (예를 들어, 컴퓨터 프로그램)에 기초하여, 컴퓨터 시스템은 디자인이 광범위하게 다양하다. 오늘날 많은 컴퓨터 시스템은 다른 컴퓨터 시스템과 "네트워크"하도록 설계된다. 네트워킹을 통해, 신호 컴퓨터 시스템은 다른 컴퓨터 시스템 상에 저장되어 이에 의해 처리되는 정보를 억세스할 수 있다. 따라서, 네트워킹으로 인해 더 많은 개수의 컴퓨터 시스템이 더 많은 개수의 전자 리소스에 억세스할 수 있게 한다.
네트워킹은 컴퓨터 시스템 간의 물리적 "루트" 및 인증된 통신 "프로토콜"에 의해 가능하게 된다. 어느 프로토콜이 선택되는지는 네트워킹된 컴퓨터 시스템의 개수, 컴퓨터 시스템을 분리하는 간격 및 컴퓨터 시스템 간의 정보 교환 목적을 포함하는 요소에 따라 좌우된다. 통신 프로토콜은 소수의 컴퓨터 시스템만이 매우 근접하여 함께 네트워킹되어 있는 경우 매우 간단하게 될 수 있다. 그러나, 이들통신 프로토콜은 더 많은 개수의 컴퓨터 시스템이 부가될 수록 또한, 컴퓨터 시스템이 더 멀리 이격되어 있을수록 더욱 정교해진다.
정교한 통신 프로토콜은 정보 교환의 유형에 따라 다양하다. 예를 들어, 프로토콜중에는 대량의 정보 송신시 정밀도를 강조하는 것이 있는 반면, 다른 프로토콜은 정보 전달 속도를 강조한다. 컴퓨터 시스템 네트워크에서 실행되는 어플리케이션의 통신 요구 조건은 어느 유형의 프로토콜이 선택되는지를 결정한다. 실시간의 신뢰 가능한 정보 전달을 필요로 하는 컴퓨터 어플리케이션의 예로는 "클러스터" 관리 어플리케이션이 있다.
클러스터링은 연속적인 리소스 이용 가능성을 제공하고 작업 부하 (workload)를 공유하기 위한 컴퓨터 시스템의 네트워킹이다. 컴퓨터 시스템의 클러스터는 컴퓨터 시스템 사용자의 관점에서는 하나의 컴퓨터 시스템으로 보이지만, 실재로는 서로 백업하는 컴퓨터 시스템의 네트워크이다. 클러스터의 하나의 컴퓨터 시스템 상의 과부하 또는 고장의 경우, 클러스터 관리 어플리케이션은 고장 컴퓨터 시스템에 대한 처리 책임을 클러스터의 다른 컴퓨터 시스템에 자동으로 재할당한다. 따라서, 사용자의 관점에서 보면 리소스의 이용 가능에 중단이 없다.
통상, 클러스터의 하나의 노드는 어플리케이션 (예를 들어, 데이터베이스, 서버)에 대해 일차의 책임이 할당되고 다른 노드에는 백업 책임이 할당된다. 어플리케이션의 일차 노드에 고장이 있을 때, 클러스터의 백업 노드는 그 어플리케이션에 대한 책임을 인수한다. 이것은 이 어플리케이션의 이용 가능성을 높게 한다.
클러스터링은 클러스터의 각 컴퓨터 시스템에서 실행되는 클러스터 관리 어플리케이션 프로그램을 통해 가능하게 된다. 이들 어플리케이션은 클러스터 활동을 제어하기 위해서 클러스터 메시지를 클러스터 네트워크를 통해 앞뒤로 릴레이한다. 클러스터 메시징은 또한 클러스터에서 어느 컴퓨터 시스템이 어느 일차적 및 백업 책임을 갖는지에 대한 갱신을 분산하는 데에 사용된다.
클러스터에서 실행되는 어플리케이션의 고 이용 가능성을 확실하게 하기 위해서, 클러스터는 클러스터 상의 모든 노드의 상태를 추적할 수 있는 것을 필요로 한다. 이를 위해서, 클러스터의 각 컴퓨터 시스템은 동일한 클러스터의 다른 컴퓨터 시스템 각각을 연속적으로 모니터하여 각각이 활동중으로서 이에 할당된 프로세싱을 실행하는 것을 확실하게 한다. 따라서, 클러스터 상의 노드에 고장이 있으면, 그 일차적 책임이 백업 노드에 할당될 수 있다.
불행하게도, 클러스터의 노드에 고장이 있다고 공지해 주기가 항상 가능한 것은 아니다. 예를 들어, 클러스터의 한 노드와 다른 노드 사이의 네트워크 접속에 고장이 있으면, 클러스터는 그 노드가 적당히 동작하고 있는지를 공지해 주기가 더 고장 불가능하게 된다. 노드가 여전이 동작하고 있지만 클러스터의 다른 노드와의 네트워크 접속에 고장이 있으면, 노드는 클러스터에서 "분리"되어 있다고 말할 수 있다. 노드가 클러스터의 나머지 노드와의 통신을 예기치 않게 중지하면, 노드에 고장이 있는지를 용이하게 결정할 수 없으며 대신에 클러스터의 나머지와 단지 분리되게 된다. 노드에 고장이 있다고 클러스터가 비정확하게 가정하여, 어플리케이션에 대한 일차 책임을 백업 노드에 할당하게 되면, 클러스터는 일차 노드라고 믿는 두 노드 둘다를 갖게 될 수 있다. 이것은 두 노드가 클러스터에의 요청에 응답함에 따라 데이터베이스에서의 데이터 불일치를 유발할 수 있다. 한편, 클러스터가, 노드가 여전이 일차 어플리케이션을 실행하고 있으며 클러스터로부터 분리된 것이라고 부정확하게 가정하여, 백업 노드에 일차 책임을 할당하지 않게 되면, 이들 어플리케이션은 클러스터의 클라이언트에게 더 이상 이용가능하지 않게 될 것이다. 따라서, 많은 경우 클러스터는 관리자에 의한 수동적인 중재 없이 비통신 노드에 정확하게 응답할 수가 없다.
더 많은 리소스가 컴퓨터 시스템 네트워크를 통해 억세스 가능하게 되면서, 이런 네트워크 리소스에의 연속적인 억세스에 대한 요구가 점자 증가하고 있다. 이런 네트워크 리소스에 연속적인 이용 가능성을 제공하는 수단으로서의 클러스터의 요구도 대응하여 증가하고 있다. 클러스터 노드의 상태를 결정하는 개선된 방법 없이는, 이들 리소스의 연속적인 이용 가능성이 완전히 실현되지가 않는다.
본 발명에 따르면, 클러스터의 신뢰도를 개선하는 클러스터 노드 디스트레스 시스템이 제공된다. 클러스터 노드 디스트레스 시스템은 클러스터 상의 노드에 고장이 있으려고 할 때 클러스터 노드 디스트레스 신호를 제공한다. 이것은 비통신 노드에 고장이 있는지 또는 비통신 노드가 클러스터로부터 분리된 것인지를 클러스터가 잘 판단하도록 한다. 바람직한 클러스터 노드 디스트레스 시스템은 운영 체제 내에 완전히 매립되며 그 노드의 임박한 고장이 검출될 때 클러스터의 다른 노드에 신속히 송신될 수 있는 미리 만들어진 노드 디스트레스 신호를 제공한다. 이것은 노드에 고장이 있기 전에 노드 디스트레스 신호가 나올 가능성을 높인다. 노드 디스트레스 신호가 클러스터에 유효하게 보내지면, 클러스터는 노드에 고장이 있으며 클러스터로부터 분리된 것이 아니라고 정확하게 판단할 수 있다. 이것은 예를 들어, 다른 노드에 일차적 책임을 할당함으로써, 클러스터가 정확하게 응답하게 하며, 관리자에 의해 덜 중재받게 한다. 따라서, 바람직한 실시예는 개선된 클러스터 신뢰도를 제공하며 관리자에 대한 의존성을 감소시킨다.
본 발명의 상술 및 그 외 특징 및 장점은 본 발명의 바람직한 실시예에서 기재되며, 첨부한 도면에서 도시된 바와 같이 다음의 설명으로부터 명백하게 된다.
도 1은 본 발명의 바람직한 실시예에 따른 장치의 블럭도.
도 2는 본 발명의 바람직한 실시예에 따른 클러스터 노드 디스트레스 신호를 설명하는 개략도.
도 3은 본 발명의 바람직한 실시예에 따른 클러스터 디스트레스 신호 방법의 플로우도.
<도면의 주요 부분에 대한 간단한 설명>
100 : 컴퓨터 시스템
110 : 프로세서
120 : 주메모리
130 : 메모리 컨트롤러
140 : 보조 저장 인터페이스
150 : 단말 인터페이스
160 : 시스템 버스
170 :직접 억세스 저장 장치 (DASD)
180 : 플로피 디스크
190 : 네트워크 인터페이스
193 : 네트워크 인터페이스 어댑터
195 : 네트워크
본 발명의 바람직한 실시예는 유사한 요소에는 유사한 참조 부호를 붙힌 첨부한 도면과 관련하여 이하 설명된다.
본 발명은 클러스터 통신에 관한 것이다. 클러스터링 개념을 잘 알지 못하는 사람을 위해서, 이하 개론부에서 본 발명의 바람직한 실시예를 이해하는 데에 도움을 주는 기본 개념과 용어를 제시한다. 클러스터링 기술의 당업자라면 이 개론을 건너뛰고 상세 설명으로 직접 진행해도 된다.
1. 개론
클러스터링은 컴퓨터들이 작업을 공유하고 서로에 대해 백업으로 작용하는 방식으로, 컴퓨터나 컴퓨터의 그룹을 함께 링킹하는 것을 말한다. 이와 같이, 클러스터는 클러스터의 하나 이상의 컴퓨터에 고장이 있는 경우에도 컴퓨터 시스템이 계속 동작하여 서비스를 제공할 수 있도록 한다. 컴퓨터 사용자의 관점에 의해서는, 컴퓨터 시스템의 클러스터는 하나의 컴퓨터 시스템으로 보인다. 클러스터링은 하나의 컴퓨터 시스템이나 다중 컴퓨터 시스템을 이용하고 있는지를 알 필요가 없는 컴퓨터 클러스터의 사용자에게 명백하다. 대신에, 컴퓨터 클러스터의 사용자에게 중요시되는 것은 이들이 데이터베이스, 프린터, 파일 등과 같이 이들이 필요한 리소스에의 억세스를 갖는 것이다. 컴퓨터 시스템을 함께 클러스터링함으로써, 필요한 리소스에의 연속적인 이용 가능성을 성취할 수 있다.
컴퓨터 시스템을 함께 클러스터링하는 데에는 많은 장점이 있다. 먼저, 가장 중요한 것은 클러스터 내의 컴퓨터 시스템이 서로 백업하도록 함으로써 이용 가능성을 더 높히는 것이다. 둘째로, 클러스터링은 처리 파워를 개선하는 데에 필요한 부가의 컴퓨터 시스템이 부가되게 함으로써 처리 파워를 증가시킨다. 세째로, 클러스터의 컴퓨터 시스템 간의 작업 부하가 균형 맞추어질 수 있다.
클러스터를 구성하는 컴퓨터 시스템은 "노드"로 불리워진다. 기술적으로, 용어 노드는 프로세서, 통신 컨트롤러 또는 단말로 언급될 수 있다. 그러나, 클러스터의 목적을 위하여, 노드는 클러스터의 개별의 컴퓨터 시스템들 중 하나로 참조된다. 통상, 클러스터의 각 노드에는 클러스터를 지원하는 일차적 및 백업 책임이 할당된다. 할당된 책임은 데이터에의 억세스를 제공하거나, 컴퓨터 어플리케이션을 실행하거나, 프린터, 스캐너 또는 팩시 기기에서와 같은 하드웨어 리소스에의 억세스를 제공하는 등의 다중 기능에 대한 것일 수 있다. 클러스터의 노드는 서로 통신하여 모든 노드가 기능하고 있는 것, 즉 각 노드 상의 클러스터링 소프트웨어가 활동중으로서 일차에서 백업으로의 전환을 필요로 하는 조건을 모니터링하고 있는 것을 확실하게 한다.
클러스터의 노드들에는 일차적 및 백업 책임이 할당되어 있다. 각 어플리케이션의 일차적 노드는 태스크를 실행하며 클러스터의 클라이언트와 상호 작용하는 노드이다. 일차적 노드가 그 할당된 기능을 실행할 수 없게 될 때, 클러스터 관리 어플리케이션은 클러스터 사용자가 실행할 수 없는 노드에 할당된 리소스에의 억세스를 여전히 갖는 것을 확실하게 하도록 작용해야 한다. 이것은 그 리소스에 대한 백업 노드들 중 하나를 일차적 책임으로 전환하는 것을 포함한다. 이런 방법으로, 클러스터 사용자는 이들 리소스를 제공하는 일차 책임이 있는 컴퓨터 시스템이 이용 불가능하게 될 때에도, 필요한 리소스에 계속 억세스할 수 있다.
클러스터 관리 어플리케이션 및 모든 노드들 간의 통신 내부 구조물에 의하면 클러스터가 사용자의 관점에서 단일의 컴퓨터 시스템으로서 동작할 수 있게 한다. 예를 들어, 메시지가 모든 노드에 보내져 이들에게 클러스터의 다른 노드와 관련한 상태에 대해 알린다. 메시지는 어느 노드가 특정 어플리케이션에 대한 일차적 및 백업 책임을 갖는지에 대해서 노드를 최신으로 계속 유지시키기 위해서 모든 노드에 보내진다. 이것은 다중 노드가 특정 어플리케이션에 대한 일차적 노드로서 동작하도록 하는 등과 같이, 다중 노드가 충돌 동작을 실행하지 않도록 한다. 두 개의 노드가 모두 일차적 노드로서 동작하도록 허여되면, 데이터 불일치 등과 같은 문제가 발생할 수 있다. 따라서, 메시지가 모든 노드에 보내져 하나의 노드가 그 할당된 책임을 실행할 수 없을 때 어느 행동을 취할지에 대해서 일치하게 된다. 클러스터의 모든 노드는 적당한 클러스터 기능을 확실하게 하기 위해서 이들 클러스터 메시지를 정확한 순서로 수신해야 한다.
한 유형의 기본 클러스터 메시지는 "허트비트(heartbeats)"로 불린다. 허트비트는 클러스터의 노드 간에 보내진 저 레벨의 메시지이므로, 현재 어느 노드가 적절하게 실행하고 있는지를 클러스터가 추적할 수 있게 한다. 예를 들어, 각 노드는 규칙적인 간격으로 허트비트 신호를 논리적으로 인접한 노드에 보낼 것이다. 노드가 연장된 기간 동안 적당한 허트비트 신호를 수신하지 않으면, 그 노드는 그 인접 노드에 가능한 문제가 있다는 것을 알게 된다. 이와 같이 허트비트의 수신 고장이 계속되면, 클러스터 관리 시스템은 적당한 조치를 취하려고 할 것이다.
클러스터가 그의 노드를 모니터하는 다른 방법으로는 메시지 타이머에 의한 것이 있다. 예시적 클러스터링 시스템에서, 노드에 보내진 메시지가 실패하면, 정해진 기간 동안 자동으로 재시도될 것이다. 부가적으로, 메시지는 그 노드에 대해 이용 가능한 다른 어드레스를 이용할려고 시도될 수 있다. 여러번의 시도 후에 메시지가 여전히 전달되지 않으면, 클러스터 관리 시스템은 다시 문제가 있음을 알게 되어 적당한 조치를 취하려고 시도할 것이다.
불행하게도, 클러스터 관리 시스템이 어느 적당한 조치를 취해야 할지를 아는 것이 항상 가능한 것은 아니다. 예를 들어, 클러스터의 노드와 나머지 노드간의 네트워크 접속에 고장이 있으면, 클러스터는 그 노드가 적당히 동작하고 있다고 더 이상 말할 수 없게 된다. 노드가 여전히 동작하고 있지만 클러스터의 다른 노드와의 네트워크 접속에 고장이 있으면, 노드는 클러스터로부터 분리되어 있다고 말할 수 있다. 노드가 예기치 않게 클러스터의 나머지와의 통신을 중단하게 되면, 노드에 고장이 있는지 대신에 클러스터의 나머지와 단지 분리되어 있는지를 용이하게 판단할 수 없다. 노드가 단지 분리되어 있을 때 노드에 고장이 있다고 클러스터가 부정확하게 가정하여, 분리된 노드의 어플리케이션에 대해 일차 책임을 백업 노드에 할당하게 되면, 클러스터는 두 노드 둘다 일차 노드라고 가정한 채로 남겨질 수 있다. 다시, 이것은 두 노드가 클러스터에의 요청에 응답함에 따라 데이터 불일치의 결과를 초래할 수 있다. 한편, 클러스터가 실재 고장이 있을 때 노드가 분리된 것이라고 부정확하게 가정하여, 고장이 있는 노드의 어플리케이션에 대한 일차적 책임을 백업 노드에 할당하지 않게 되면, 이들 어플리케이션은 클러스터의 클라이언트에게 더 이상 이용 가능하지가 않다. 따라서, 많은 경우 클러스터는 관리자에 의한 수동적인 중재 없이 비통신 노드에 정확하게 응답할 수가 없다.
2. 상세한 설명
본 발명에 따르면, 클러스터의 신뢰도를 개선한 클러스터 노드 디스트레스 시스템이 제공된다. 클러스터 노드 디스트레스 시스템은 클러스터 상의 노드에 고장이 있으려고 할 때 클러스터 노드 디스트레스 신호를 제공한다. 이것은 비통신 노드에 고장이 있는지 클러스터에서 단지 분리된 것인지를 클러스터가 잘 판단할 수 있게 한다. 바람직한 클러스터 노드 디스트레스 시스템은 운영 체제 내에 매립되어 있으며 그 노드의 임박한 고장이 검출될 때 클러스터의 다른 노드에 신속히 보내질 수 있는 미리 만들어진 노드 디스트레스 신호를 제공한다. 노드 디스트레스 신호가 클러스터에 효율적으로 보내질 때, 클러스터는 노드에 고장이 있는 것이지 클러스터에서 분리된 것이 아니라고 정확하게 판단할 수 있다. 이것은 예를 들어, 관리자에 의한 중재가 거의 필요하지 않으면서, 다른 노드에 일차적 책임을 할당함으로써, 클러스터가 정확하게 응답할 수 있게 한다. 따라서, 바람직한 실시예는 개선된 클러스터 신뢰도와 감소된 관리자 의존도를 제공한다.
이하 도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템(100)은 AS/400 미드레인지 (mid-range) 컴퓨터 시스템이다. 그러나, 당업자라면 컴퓨터 시스템이 복잡한 다중 사용자 연산 장치이거나 퍼스널 컴퓨터나 워크스테이션 등의 단일의 사용자 장치인지에 상관 없이, 어느 컴퓨터 시스템에도 동일하게 적용할 수 있다는 것이 이해될 것이다. 예를 들어, 당업자라면 이들 기능이 IBM의 OS/2, OS/390 및 RS/6000, 마이크로소프트의 윈도우 NT, 노벨의 네트웨어, 리눅스 및 그 외 여러 유닉스의 프로덕트 등, 다른 시스템에도 또한 제공될 수 있음을 이해할 수 있을 것이다. 컴퓨터 시스템(100)은 클러스터의 다른 노드가 네트워크(195)상에 위치되어 있을 때, 클러스터의 한 노드가 구성되는 방법에 대한 바람직한 실시예를 상세히 설명한다. 컴퓨터 시스템(100)은 프로세서(110), 주메모리(120), 메모리 컨트롤러(130), 보조 저장 인터페이스(140), 단말 인터페이스(150), 및 네트워크 인터페이스(190)을 적당히 포함하고, 이들 모두는 시스템 버스(160)를 통해 상호 접속되어 있다. 본 발명의 영역 내에서 도 1에 도시된 컴퓨터 시스템(100)에 캐시 메모리나 그 외 주변 장치의 부가 등과 같은, 여러 변형, 첨가 및 삭제가 가해질 수 있음에 유의해야 한다. 도 1은 컴퓨터 시스템(100)의 특성을 간단히 설명하기 위한 것이다.
프로세서(110)는 컴퓨터 시스템(100)의 연산 및 제어 기능을 실행하는 것으로, 적당한 중앙 처리 장치 (CPU)를 포함한다. 프로세서(110)는 마이크로프로세서등의 단일의 집적 회로를 포함하거나, 프로세서의 기능을 실행하기 위해 협력하여 동작하는 적당한 개수의 집적 회로 장치 및/또는 회로 보드를 포함할 수 있다. 프로세서(100)는 필요한 주 메모리(120) 내의 컴퓨터 프로그램을 적당히 실행한다.
보조 저장 인터페이스(140)는 컴퓨터 시스템(100)이 자기 디스크 (예를 들어, 하드 디스크 또는 플로피 디스켓) 또는 광 저장 장치 (예를 들어, CD-ROM) 등의 보조 저장 장치로부터의 정보를 저장 및 검색할 수 있게 한다. 하나의 적당한 저장 장치는 직접 억세스 저장 장치 (DASD; 170)이다. 도 1에서 나타낸 바와 같이, DASD(170)는 플로피 디스크(180)로부터 프로그램과 데이터를 판독할 수 있는 플로피 디스크 드라이브일 수 있다. 본 발명이 완전 기능적 컴퓨터 시스템의 컨택스트에서 설명되었지만, 당업자라면 본 발명의 기구가 다양한 형태의 프로그램 프로덕트로서 분배될 수 있으며, 본 발명은 이 분배를 실재 수행하도록 신호 제공 매체의 특정 유형에 상관 없이 동일하게 적용할 수 있다는 것을 이해할 수 있다는 것에 유의해야 한다. 신호 제공 매체의 예로는: 플로피 디스크 (예를 들어 디스크(180)) 및 CD ROMS 등의 기록 가능 유형의 매체 및 무선 통신 링크를 포함하는 디지털 및 아날로그 통신 링크 등의 전송 유형 매체를 포함한다.
프로세서(110)와 분리된 프로세서(도시 생략)를 이용함으로써 메모리 컨트롤러(130)는 메인 메모리(120) 및/또는 보조 저장 인터페이스(140)를 통해 프로세서(110)에 요청된 정보를 이동시키는 책임이 있다. 설명을 위해서, 메모리 컨트롤러(130)는 개별적인 존재로 도시되어 있는 반면, 실재 메모리 컨트롤러(130)에 의해 제공된 기능의 일부는 프로세서(110), 주 메모리(120), 및/또는 보조 저장인터페이스(140)와 결합된 회로에 실재로 존재할 수 있다.
단말 인터페이스(150)는 통상 프로그래머블 워크스테이션을 통해서 시스템 관리자와 컴퓨터 프로그래머가 컴퓨터 시스템(100)과 통신하도록 한다. 도 1에 도시된 시스템(100)이 오직 단일의 주 프로세서(110) 및 단일의 시스템 버스(160)를 포함하고 있지만, 본 발명은 다중 프로세서 및 다중 시스템 버스를 갖는 컴퓨터 시스템에도 동일하게 적용됨을 이해해야 한다. 유사하게, 바람직한 실시예의 시스템 버스(160)가 통상의 하드와이어된 멀티드롭 버스 (hardwired, multidrop bus)이지만, 컴퓨터 관련 환경에서 양방향 통신을 지원하는 접속 수단이 사용될 수 있다.
네트워크 인터페이스(190)는 컴퓨터 시스템(100)과 네트워크(195)의 원격 컴퓨터 시스템 간의 정보 전달을 지원한다. 바람직한 실시예에서, 네트워크(195) 상의 하나 이상의 노드는 클러스터로서의 컴퓨터 시스템(100)과 작용하도록 유사하게 설정된다. 네트워크 인터페이스(190)는 하나 이상의 네트워크 인터페이스 어댑터(193)를 적당히 포함하며, 각 네트워크 인터페이스 어댑터(193)는 통상 컴퓨터 시스템(100) 등의 컴퓨터 시스템에 용이하게 부가될 수 있는 확장 카드로서 구현된다. 네트워크 인터페이스 어댑터(193)의 예로는 주변 소자 상호 접속 (PCI) 확장 카드, 산업 표준 아키텍쳐 (ISA) 확장 카드, 산업 어댑터 카드 및 그 외 현재 알려져 있거나 미래에 발명되는 어느 유형의 어댑터라도 포함할 수 있다. 당업자라면 네트워크 인터페이스(190)의 기능은 주 메모리 및 프로세서(110)의 일부로서 직접 실현될 수 있음을 이해할 것이다. 네트워크(195)는 당업자에게 공지된 어느 유형의 네트워크라도 될 수 있다. 이것은 컴퓨터 시스템이 서로 통신할 수 있도록 하는, 인터넷, 인트라넷, 로컬 에어리어 네트워크 (LAN), 와이드 에어리어 네트워크 (WAN) 및 그 외 현재 알려지거나 미래에 개발된 하드웨어와 소프트웨어의 구성을 포함한다. 네트워크(195) 상에는 또한 클러스터 상에 있는 다른 노드가 상주할 수 있다.
주 메모리(120)는 하나 이상의 어플리케이션 프로그램(121), 클러스터 관리 어플리케이션(122), 및 클러스터 노드 디스트레스 신호기(124)를 포함하는 운영 체제(123)를 적당히 포함한다. 메모리(120) 내의 모든 프로그램은 광범위하게 사용되며, 소스 모드, 중간 모드, 머신 코드, 및 그 외 다른 컴퓨터 프로그램을 포함하는 모든 형태의 컴퓨터 프로그램을 포함한다.
바람직한 실시예에서, 어플리케이션 프로그램(121)은 신뢰도나 측정도를 제공하도록 클러스터링이 사용되는 어느 프로그램이라도 포함할 수 있다. 이와 같이, 어플리케이션 프로그램(121)은 통상 컴퓨터 시스템이 일차 노드나 백업 노드인 모든 프로그램을 포함한다. 이런 어플리케이션 프로그램의 예로는 웹 서버, 파일 서버, 데이터 베이스 서버 등이 있다.
클러스터 관리 어플리케이션(122)는 클러스터를 생성 및 관리하는 데에 필요한 기구를 제공한다. 이것은 컴퓨터 클러스터의 관리를 위한 관리적 요청의 처리를 포함한다. 예를 들어, 이것은 클러스터를 생성하고, 클러스터에 노드를 부가 및 제거하는 등의 기구를 포함하는 것이 바람직하다.
바람직한 실시예에서, 클러스터 노드 디스트레스 신호기(124)는 운영 체제(123)와 일체화되어 있어 임박한 노드의 고장이 검출될 때 노드 디스트레스 신호를 전송하는 가장 신속하며 유효한 수단을 제공한다.
주 메모리(120)는 도시된 모든 기구의 모든 부품을 반드시 포함하지 않는다는 것을 이해해야 한다. 예를 들어, 어플리케이션 프로그램(121), 클러스터 관리 어플리케이션(122), 및 운영 체제(123)의 일부는 실행하는 프로세서(110)의 지령 캐시 (도시 생략) 내에 로드될 수 있는 반면, 다른 파일은 자기 또는 광 디스크 저장 장치 (도시 생략)에 저장될 수 있다. 또한, 컴퓨터 프로그램이 모두 동일한 메모리 위치에 놓여있는 것으로 도시되어 있지만, 주 메모리(120)가 개별의 메모리 위치로 이루어질 수 있음을 이해해야 한다. 여기에서 사용되는 용어 "메모리"는 시스템(100)의 실제 메모리 영역의 어느 저장 위치와도 관련되는 것이다.
또한 컴퓨터 시스템(100)은 클러스터의 각 노드의 예이며, 따라서 클러스터의 각 노드는 고장의 경우 노드 디스트레스 신호를 클러스터의 다른 노드에 신속히 전송하는 능력을 갖는다는 것을 이해해야 한다. 다른 노드 각각의 클러스터 관리 어플리케이션(122)은 예를 들어, 클러스터의 다른 노드에 적당한 일차적 책임을 할당함으로써, 적당히 응답할 수 있다.
이하 도 2를 참조하여, 바람직한 실시예의 클러스터 노드 디스트레스 신호기(124)를 상세히 설명한다. 상술된 바와 같이, 클러스터 노드 디스트레스 신호기(124)는 임박한 노드의 고장시 디스트레스 신호를 클러스터의 다른 노드에 전송하는 데에 필요한 기구를 제공한다. 이것은 (클러스터의 다른 노드 상의) 클러스터 관리 어플리케이션(122)이 비응답 노드가 고장이 났으며, 클러스터에서 분리된 것이 아니라는 것을 정확하게 판단할 수 있게 한다.
바람직한 실시예에서, 클러스터 노드 디스트레스 신호기(124)가 운영 체제(123)와 일체화되어 임박한 노드의 고장에 신속히 응답할 수 있게 한다. 바람직한 실시예에서, 클러스터 노드 디스트레스 신호기(124)는 디스트레스 신호 송신법, 미리 만들어진 디스트레스 메시지 및 메시지를 보내기 위한 전용 디스트레스 신호 태스크를 포함한다.
가장 바람직한 실시예에서는, 이용 가능한 디스트레스 신호 송신법의 두 가지 구현법이 있다. 하나는 디스트레스 신호 메시지를 동기하여 전송하는 것으로, 이것은 셧다운 (shutdown) 동안 실행되는 모든 다른 방법이 메시지가 보내진 것으로 확인될 때 까지 홀드 상태에 있는 것을 의미한다. 다른 방법은 디스트레스 신호를 비동기식으로 전송하는 것으로, 이것은 디스트레스 신호 송신법을 개시한 후에 클러스터 노드가 다른 태스크를 계속 처리할 수 있는 것을 의미한다.
바람직한 실시예에서, 비동기법은 노드의 셧다운을 위해 충분한 시간이 있을 때에 사용된다. 비동기법을 이용하게 되면 디스트레스 메시지가 보내지고 있는 동안 현재의 실행 드레드 (thread)가 셧다운을 위해 준비된 다른 태스크를 실행할 수 있게 한다. 디스트레스 메시지를 준비하여 전송하는 동안 노드의 현재 실행 드레드가 다른 태스크를 계속하여 실행하게 하는 것은 더 규칙적인 셧다운을 초래하는 장점을 가지고 있지만, 디스트레스 신호가 실재 보내지기 전에 더 긴 지연이 있을 수 있는 단점이 있다. 반대로, 동기 방법은 고장이 급박하고 디스트레스 메시지가 즉시 보내져야 할 때 바람직하다. 이 동기 방법은 디스트레스 메시지가 보내질 때 까지 현재 실행 드레드에 대한 모든 다른 처리를 홀드 상태로 해야 하므로, 노드디스트레스 메시지를 더 신속히 보낼 수 있다.
예를 들어, 고장의 경우가 파워 정지이지만 배터리 백업 파워가 남아 있는 경우에는, 고장 전에 비교적 많은 시간이 있어 디스트레스 신호가 비동기식으로 보내지게 한다. 이것은 더 규칙적인 셧다운을 제공하는, 그 외 셧다운 과정 등과 같은 더 많은 평행한 동작이 실행될 수 있게 한다.
다른 예로서, 고장의 경우가 하드웨어 고장이나 IP 스택의 종료인 경우에는 대기할 시간이 없을 수 있으므로, 디스트레스 메시지를 동기식으로 전송하는 것이 바람직하다. 이것은 메시지가 보내질 때 까지 현재 실행 드레드가 다른 처리로 이행되지 않도록 하여, 미리 만들어진 디스트레스 메시지를 긴급하게 보내게 한다 이것은 디스트레스 메시지가 가능한 한 신속히 보내지도록 하며, 어떤 경우에는 디스트레스 메시지가 보내질 수 있기 전에 노드가 셧다운되지 않도록 한다.
바람직한 실시예에서, 동기 디스트레스 신호 메시지는 현재 실행 작업에서 처리되며, 이는 메시지가 더 신속히 보내지도록 한다. 특히, 현재 태스크는 메시지를 긴급히 보낼 수 있는 반면, 대기중인 전용 디스트레스 태스크는 메시지가 보내질 수 있기 전에 자각되어야 한다. 그러나, 현재의 태스크는 메시지가 보내질 때 까지 계속 진전되지 않도록 하여 디스트레스 메시지를 전송하는 데에 사용되기 때문에, 실행될 필요가 있는 다른 작업이 계속 홀드 상태가 될 것이다. 따라서, 디스트레스 신호 메시지를 전송하는 동기법은 고장의 경우가 발생하기 전에 다른 처리를 희생하지 않고도 메시지가 보내질 확률을 증진시킨다.
반대로, 비동기 디스트레스 신호 메시지는 전용 디스트레스 신호 태스크에대한 태스크 큐(queue)에 보내져, 그 컨텍스트에서 실행된다. 통상, 이 태스크는 메시지의 송신을 실행하도록 자각될 필요가 있지만, 그 큐 상에 있는 것에 지나지 않기 때문에 비전용 태스크를 이용하는 것 보다 더 빠르다. 일단 전용 디스트레스 태스크에 대해 비동기 호출이 행해지면, 현재의 태스크는 보내질 디스트레스 메시지를 대기하지 않고 그 외 처리를 계속 실행할 수 있다.
메시지를 보내기 위한 전용 디스트레스 신호 태스크는 프로세서로서 기능하는 운영 체제의 저레벨의 실행 드레드를 포함하는 것이 바람직하다. 이것은 호출시 실행 대기하는 예시된 태스크 오브젝트 (object)로서 구현될 수 있다. 비동기 디스트레스 신호법이 요구되면, 태스크 오브젝트 메시지 큐를 요구하게 된다. 이용 가능한 다음 프로세서는 이 방법에 의해 정의된 코드를 픽업하여 이를 실행할 것이다. 노드 디스트레스 신호를 보내기 위한 전용 태스크가 있기 때문에, 이 방법이 태스크 오브젝트 메시지 큐에서 대기해야 할 가능성은 없다. 대신에, 다음 이용 가능한 프로세서에 의해 실행되게 된다. 통상의 운영 체제는 임의의 시간에서 실행할 많은 여러 태스크를 갖지만, 하나의 태스크만이 각 프로세서에 의해 한번에 실행될 수 있다. 프로세서가 무언가를 대기해야 할 때, 현재의 태스크는 치워두고 다음으로 진행하게 된다.
미리 만들어진 디스트레스 신호는 고장의 경우 보내질 준비가 되어 있는 미리 예시된 메시지 오브젝트를 포함하는 것이 바람직하다. 메시지는 노드 디스트레스 메시지라고 나타내는 헤더 및 디스트레스 메시지를 전송하는 노드의 ID를 포함한다. 메시지는 또한 필요하지는 않지만, 알려져 있다면, 고장의 이유에 대한 데이터를 포함할 수 있다.
이하 도 3을 참조하여, 본 발명의 바람직한 실시예에 따른 노드 디스트레스 신호를 전송하는 방법(500)을 설명한다. 제1 단계(502)는 클러스터 노드가 고장의 경우에 직면할 때이다. 다음 단계(504)는 노드의 시스템이 고장을 검출하여 클러스터 노드 디스트레스 신호기에 대해 디스트레스 신호법을 요구하는 것이다.
바람직한 실시예에서, 실재 모든 유형의 고장이 정확한 응답을 위해 적당히 검출될 수 있는 것은 아니지만, 어느 유형의 고장이라도 검출될 수가 있다. 예를 들어, 한 유형의 고장 경우로는 파워 손실이 있다. 바람직하게, 노드 컴퓨터 시스템은 클러스터 노드 디스트레스 신호가 보내질 만큼 충분치 길게 동작을 유지하면서 파워의 손실을 검출할 수 있다. 상술된 바와 같이, 클러스터 노드 디스트레스 신호기가 미리 만들어진 디스트레스 신호를 포함하고 있기 때문에, 노드 디스트레스 신호는 이전의 기구가 허용한 것 보다 더 신속하게 보내질 수 있다. 이것은 노드에 완전히 고장이 있기 전에 보내진 메시지에 대해 고장이 검출될 가능성을 증가시킨다. 고장의 다른 예로서, 노드의 다른 부재와 통신하는 데에 사용되는 프로토콜 스택의 테이크 다운(take down)이 디스트레스 메시지를 요구하여 보내기 전에 충분히 길게 노드 시스템에 의해 검출될 수 있다.
물론, 클러스터 노드 디스트레스 신호를 보내기 위해 충분히 개선된 경고로 노드 시스템에 의해 검출될 수 있는 세 유형의 고장 경우가 있다. 다른 고장의 경우는 운영 체제에서의 임박한 크래시이거나, 하나 이상의 하드웨어 소자 (예를 들어, 드라이브, 네트워크 어댑터 등)의 고장일 수 있다. 따라서 당업자라면 본 발명의 바람직한 실시예가 디스트레스 신호를 보내기 위해 충분히 오래 검출될 수 있는 어느 유형의 고장에도 적용될 수 있으며, 미리 만들어진 디스트레스 신호를 신속히 전송하는 바람직한 실시예의 능력이 종래의 시스템보다 필요한 경고를 크게 감소시킨다는 것을 이해할 수 있을 것이다.
바람직하게, 운영 체제는 고장이 발생하기 전의 시간량에 따라서 적당한 디스트레스 신호 전송법 (예를 들어, 동기식 또는 비동기식)을 불러낼 수 있도록 고장의 유형을 인식한다. 부가적으로, 운영 체제가 고장의 유형을 동기식으로 응답될 수 있는 것으로 인식하지 않으면, 동기법을 요구하여 디스트레스 메시지가 고장이 발생하기 전에 보내지게 된 것을 확실하게 한다.
다음 단계(506)는 전용 디스트레스 신호 태스크를 이용하여 미리 만들어진 디스트레스 신호를 클러스터의 청취자에게 전송하는 디스트레스 신호법에 대한 것이다. 미리 만들어진 디스트레스 신호는 메시지를 전송하는 노드의 이름을 포함하는 예시된 메시지 오브젝트를 포함하는 것이 바람직하다. 이것은 디스트레스 신호가 먼저 만들어진 메시지를 대기할 필요 없이 프로토콜 스택에 신속히 들어갈 수 있도록 한다.
바람직한 실시예에서, 단계(506)는 검출된 고장의 유형과 미리 만들어진 디스트레스 신호를 보내기 위해 남은 시간에 따라서, 동기식이나 비동기식으로 실행될 수 있다.
다음 단계(506)는 노드가 모든 일차적 및 백업 책임을 중단할 것을 확실히 하는 디스트레스 신호법에 대한 것이다. 다시, 모든 시도에 대해 다중 노드가 몇 어플리케이션에 대한 일차적 기능을 실행하는 것은 바람직하지 않다. 따라서, 노드 디스트레스 신호를 보냄으로써 이 노드는 다른 노드에게 더 이상 이용 가능하지 않아 적당한 백업 노드로 교체되어야 한다는 것을 알린다. 몇가지 이유로 이 노드가 회복되면, 다른 노드가 이전의 일차적 책임을 실행하기 시작할 가능성이 있기 때문에 계속 오프라인을 취해야 한다.
본 발명의 바람직한 실시예는 클러스터의 신뢰도를 개선한 클러스터 노드 디스트레스 시스템 및 방법을 제공한다. 클러스터 노드 디스트레스 시스템은 클러스터 상의 노드에 고장이 있으려고 할 때에 클러스터 노드 디스트레스 신호를 제공한다. 이것은 클러스터가 비통신 노드에 고장이 있는지 또는 비통신 노드가 클러스터로부터 단지 분리되어 있는지를 잘 판단할 수 있게 한다. 바람직한 클러스터 노드 디스트레스 시스템은 운영 체제 내에 매립되어 있으며 임박한 노드의 고장이 검출될 때 클러스터의 다른 노드에 신속히 보내질 수 있는 미리 만들어진 노드 디스트레스 신호를 제공한다. 노드 디스트레스 신호가 클러스터에 유효하게 보내질 때, 클러스터는 노드에 고장이 있으며 클러스터에서 분리된 것이 아니라고 정확하게 판단할 수 있다. 이것은 클러스터가 예를 들어, 다른 노드에 일차 책임을 할당하여 정확하게 응답할 수 있게 하며, 관리자에 의한 중재를 덜 필요로 하게 한다.
본 발명이 바람직한 실시예에 관련하여 도시 및 설명되었지만, 당업자라면 본 발명의 정신 및 영역에서 벗어나지 않고 다양한 형태의 변형이 행해질 수 있음이 이해될 것이다.

Claims (21)

  1. 노드들의 클러스터 내에 있는 노드에 있어서,
    적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 결합된 메모리; 및
    상기 메모리에 상주하는 클러스터 노드 디스트레스 신호기(cluster node distress signaler)- 상기 클러스터 노드 디스트레스 신호기는 클러스터 상의 상기 노드의 고장을 나타내는 미리 만들어진 디스트레스 메시지(prebuilt distress message)를 포함하고, 상기 클러스터 노드 디스트레스 신호기는 고장 이벤트가 검출되면 상기 미리 만들어진 디스트레스 메시지를 상기 클러스터의 다른 노드로 전송함-
    를 포함하는 노드.
  2. 제1항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 고장 이벤트가 검출될 때 상기 미리 만들어진 디스트레스 메시지를 송신하도록 대기하는 전용 디스트레스 신호 실행 태스크를 포함하는 노드.
  3. 제1항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 방법과 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 방법을 포함하는 노드.
  4. 제3항에 있어서, 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 방법은 상기 미리 만들어진 디스트레스 메시지를 전송하기 위해 현재 실행 태스크를 이용하고, 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 방법은 대기중인 전용 디스트레스 신호 실행 태스크를 이용하는 노드.
  5. 제4항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 상기 고장 이벤트 이전에 시간이 충분하면 더욱 규칙적인 셧다운 절차(orderly shutdown procedure)를 가능하게 하기 위해서 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 방법을 이용하고, 시간이 충분치 않다면 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 방법을 이용하는 노드.
  6. 제1항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 상기 클러스터 디스트레스 신호가 상기 클러스터의 다른 노드로 전송된 후에 상기 노드 자체를 상기 클러스터로부터 확실히 제거하기 위한 메카니즘을 포함하는 노드.
  7. 제1항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 상기 메모리에 상주하는 운영 체제의 통합부를 포함하는 노드.
  8. 제1항에 있어서, 상기 미리 만들어진 디스트레스 메시지는 미리 예시된 메시지 오브젝트를 포함하는 노드.
  9. 적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 접속된 메모리; 및
    상기 메모리에 상주하는 클러스터 노드 디스트레스 신호기- 상기 클러스터 노드 디스트레스 신호기는 상기 클러스터 노드 장치의 고장을 나타내는 미리 만들어진 디스트레스 메시지를 포함하고, 상기 클러스터 노드 디스트레스 신호기는 현재 실행 태스크를 이용하여 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 방법 및 대기중인 전용 디스트레스 신호 실행 태스크를 이용하여 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 방법을 포함하고, 상기 클러스터 노드 디스트레스 신호기는 고장 이베트가 검출되면 상기 미리 만들어진 디스트레스 메시지를 상기 클러스터의 다른 노드로 전송함-
    를 포함하는 클러스터 노드 장치.
  10. 제9항에 있어서, 상기 클러스터 노드 디스트레스 신호기는 상기 메모리에 상주하는 운영 체제의 일부인 클러스터 노드 장치.
  11. 클러스터 상의 노드가 고장 이벤트를 겪고 있음을 나타내는 미리 만들어진 디스트레스 메시지를 제공하는 단계; 및
    상기 노드 내에서 임박한 고장 이벤트가 검출될 때 상기 미리 만들어진 디스트레스 메시지를 전송하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 미리 만들어진 디스트레스 메시지를 처리하고 전송하기 위해 전용 디스트레스 신호 태스크를 제공하는 단계를 더 포함하는 방법.
  13. 제11항에 있어서, 상기 임박한 고장 이벤트의 유형을 결정하는 단계를 더 포함하는 방법.
  14. 클러스터 상의 노드가 고장 이벤트를 겪고 있음을 나타내는 미리 만들어진 디스트레스 메시지를 제공하는 단계;
    상기 미리 만들어진 디스트레스 메시지를 처리하여 전송하도록 전용 디스트레스 신호 태스크를 제공하는 단계;
    상기 노드 내에서 임박한 고장 이벤트를 검출하는 단계;
    상기 검출된 임박한 고장 이벤트가 있기 전에 시간이 충분하면 상기 미리 만들어진 디스트레스 메시지를 상기 클러스터의 다른 노드로 비동기식으로 전송하고, 시간이 충분하지 않으면 상기 미리 만들어진 디스트레스 메시지를 상기 다른 노드로 동기식으로 전송하는 단계; 및
    상기 클러스터 디스트레스 신호가 상기 클러스터의 상기 다른 노드로 전송된 다음에 상기 클러스터로부터 상기 노드 자체를 확실히 제거하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서, 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 단계는 상기 전용 디스트레스 신호 태스크를 이용하고, 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 단계는 현재의 실행 태스크를 이용하는 방법.
  16. 클러스터 상의 노드의 고장을 나타내는 미리 만들어진 디스트레스 메시지를 포함하는 클러스터 노드 디스트레스 신호기 - 상기 클러스터 노드 디스트레스 신호기는 고장 이벤트가 검출되면 상기 미리 만들어진 디스트레스 메시지를 상기 노드로부터 상기 클러스터의 다른 노드로 전송함 - ; 및
    상기 클러스터 노드 디스트레스 신호기를 구현하는 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
  17. 삭제
  18. 삭제
  19. 클러스터 노드 장치의 고장을 나타내는 미리 만들어진 디스트레스 메시지를 포함하는 클러스터 노드 디스트레스 신호기 - 상기 클러스터 노드 디스트레스 신호기는 현재의 실행 태스크를 이용하여 상기 미리 만들어진 디스트레스 메시지를 비동기식으로 전송하는 방법 및 대기중인 전용 디스트레스 신호 실행 태스크를 이용하여 상기 미리 만들어진 디스트레스 메시지를 동기식으로 전송하는 방법을 포함하고, 상기 클러스터 노드 디스트레스 신호기는 고장 이벤트가 검출되면 상기 미리 만들어진 디스트레스 메시지를 상기 클러스터 노드 장치로부터 상기 클러스터의 다른 노드로 전송함 - ; 및
    상기 클러스터 노드 디스트레스 신호기를 구현하는 프로그램을 기록한 컴퓨터 판독가능 기록 매체.
  20. 삭제
  21. 삭제
KR1020000014476A 1999-03-30 2000-03-22 클러스터 노드 디스트레스 신호 KR100358663B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/281,026 1999-03-30
US09/281,026 US6442713B1 (en) 1999-03-30 1999-03-30 Cluster node distress signal

Publications (2)

Publication Number Publication Date
KR20010006847A KR20010006847A (ko) 2001-01-26
KR100358663B1 true KR100358663B1 (ko) 2002-10-30

Family

ID=23075659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000014476A KR100358663B1 (ko) 1999-03-30 2000-03-22 클러스터 노드 디스트레스 신호

Country Status (6)

Country Link
US (1) US6442713B1 (ko)
JP (1) JP2000293497A (ko)
KR (1) KR100358663B1 (ko)
CA (1) CA2290289C (ko)
SG (1) SG90111A1 (ko)
TW (1) TW466399B (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000078004A2 (en) * 1999-06-10 2000-12-21 Alcatel Internetworking, Inc. Policy based network architecture
US7032022B1 (en) 1999-06-10 2006-04-18 Alcatel Statistics aggregation for policy-based network
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6594786B1 (en) * 2000-01-31 2003-07-15 Hewlett-Packard Development Company, Lp Fault tolerant high availability meter
US6691244B1 (en) * 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US6952766B2 (en) * 2001-03-15 2005-10-04 International Business Machines Corporation Automated node restart in clustered computer system
US6918051B2 (en) * 2001-04-06 2005-07-12 International Business Machines Corporation Node shutdown in clustered computer system
JP4491167B2 (ja) * 2001-04-27 2010-06-30 富士通株式会社 通信システムにおける管理装置のバックアップシステム
US6880100B2 (en) * 2001-07-18 2005-04-12 Smartmatic Corp. Peer-to-peer fault detection
US6925582B2 (en) 2001-08-01 2005-08-02 International Business Machines Corporation Forwarding of diagnostic messages in a group
US7409427B2 (en) * 2003-02-25 2008-08-05 Bea Systems, Inc. Systems and methods for lightweight conversations
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7657781B1 (en) * 2003-07-25 2010-02-02 Cisco Technology, Inc. System and method for providing redundant data load sharing in a distributed network
US7302607B2 (en) * 2003-08-29 2007-11-27 International Business Machines Corporation Two node virtual shared disk cluster recovery
US7228462B2 (en) * 2004-01-23 2007-06-05 Hewlett-Packard Development Company, L.P. Cluster node status detection and communication
US7778422B2 (en) * 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US20050246529A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
DE102004032450B4 (de) * 2004-06-29 2008-01-17 Otten, Gert, Prof. Dr.med. Chirurgische Vorrichtung zum Abklemmen organischen Gewebes, insbesondere von Blutgefäßen
US7797147B2 (en) * 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US8489728B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) * 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US20060235664A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8082340B2 (en) * 2006-01-30 2011-12-20 Cisco Technology, Inc. Technique for distinguishing between link and node failure using bidirectional forwarding detection (BFD)
US7801997B2 (en) 2006-03-30 2010-09-21 International Business Machines Corporation Asynchronous interconnect protocol for a clustered DBMS
US8312135B2 (en) * 2007-02-02 2012-11-13 Microsoft Corporation Computing system infrastructure to administer distress messages
US7937610B2 (en) * 2007-04-27 2011-05-03 International Business Machines Corporation Fast node failure detection via disk based last gasp mechanism
CN103297396B (zh) * 2012-02-28 2016-05-18 国际商业机器公司 群集系统中管理故障转移的装置和方法
CN105574127A (zh) * 2015-12-12 2016-05-11 天津南大通用数据技术股份有限公司 分布式数据库系统准实时的双活方法
CN113822395A (zh) * 2021-08-19 2021-12-21 中铁二十四局集团上海电务电化有限公司 一种海底隧道电力物联网智慧管理系统
CN114095392B (zh) * 2021-12-02 2022-04-08 深圳市光网视科技有限公司 一种基于物联网的通信电源监控方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980058552A (ko) * 1996-12-30 1998-10-07 김영환 두 시스템간의 클러스터링(Clustering) 구현장치
KR19990013396A (ko) * 1997-07-07 1999-02-25 제프리엘.포맨 동적인 구성 변화를 지원하는 방법 및 그 장치
WO1999021091A1 (en) * 1997-10-21 1999-04-29 Sun Microsystems, Inc. Data integrity and availability in a distributed computer system
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
KR19990043986A (ko) * 1996-06-20 1999-06-25 이데이 노부유끼 업무 인계 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486826A (en) * 1981-10-01 1984-12-04 Stratus Computer, Inc. Computer peripheral control apparatus
US5117352A (en) 1989-10-20 1992-05-26 Digital Equipment Corporation Mechanism for fail-over notification
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5440726A (en) * 1994-06-22 1995-08-08 At&T Corp. Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US5590277A (en) * 1994-06-22 1996-12-31 Lucent Technologies Inc. Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US5627962A (en) * 1994-12-30 1997-05-06 Compaq Computer Corporation Circuit for reassigning the power-on processor in a multiprocessing system
US5996075A (en) * 1995-11-02 1999-11-30 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US5805785A (en) * 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6122735A (en) * 1998-05-21 2000-09-19 Intel Corp. Fault resilient boot circuit using ring counter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990043986A (ko) * 1996-06-20 1999-06-25 이데이 노부유끼 업무 인계 시스템
KR19980058552A (ko) * 1996-12-30 1998-10-07 김영환 두 시스템간의 클러스터링(Clustering) 구현장치
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
KR19990013396A (ko) * 1997-07-07 1999-02-25 제프리엘.포맨 동적인 구성 변화를 지원하는 방법 및 그 장치
WO1999021091A1 (en) * 1997-10-21 1999-04-29 Sun Microsystems, Inc. Data integrity and availability in a distributed computer system

Also Published As

Publication number Publication date
JP2000293497A (ja) 2000-10-20
TW466399B (en) 2001-12-01
SG90111A1 (en) 2002-07-23
KR20010006847A (ko) 2001-01-26
US6442713B1 (en) 2002-08-27
CA2290289A1 (en) 2000-09-30
CA2290289C (en) 2005-07-12

Similar Documents

Publication Publication Date Title
KR100358663B1 (ko) 클러스터 노드 디스트레스 신호
US6502203B2 (en) Method and apparatus for cluster system operation
US6839752B1 (en) Group data sharing during membership change in clustered computer system
US6785678B2 (en) Method of improving the availability of a computer clustering system through the use of a network medium link state function
US6134673A (en) Method for clustering software applications
US6983324B1 (en) Dynamic modification of cluster communication parameters in clustered computer system
US6363497B1 (en) System for clustering software applications
US6119244A (en) Coordinating persistent status information with multiple file servers
US6918051B2 (en) Node shutdown in clustered computer system
US5878205A (en) Method and system for processing complex recovery using polling signals in a shared medium
US6748550B2 (en) Apparatus and method for building metadata using a heartbeat of a clustered system
US7194652B2 (en) High availability synchronization architecture
US7076689B2 (en) Use of unique XID range among multiple control processors
KR100297906B1 (ko) 동적인구성변화를지원하는방법및그장치
US7188237B2 (en) Reboot manager usable to change firmware in a high availability single processor system
US9189316B2 (en) Managing failover in clustered systems, after determining that a node has authority to make a decision on behalf of a sub-cluster
JP2000105756A (ja) 網内の分散アプリケ―ションの故障を検出し、この故障を指定されるリプリケ―ションの程度に従って回復するための方法および装置
US20080288812A1 (en) Cluster system and an error recovery method thereof
US7065673B2 (en) Staged startup after failover or reboot
JP2000105754A (ja) 網内の分散アプリケ―ションの故障を検出し、故障を指定のリプリケ―ションスタイルに従って回復するための方法および装置
JP3887130B2 (ja) 高可用性計算機システム及び同システムにおけるデータバックアップ方法
JP3537281B2 (ja) 共有ディスク型多重系システム
US20050010837A1 (en) Method and apparatus for managing adapters in a data processing system
EP1107119A2 (en) Extending cluster membership and quorum determinations to intelligent storage systems
JP2007199962A (ja) クラスタ化された記憶装置ネットワークにおけるサービス・フェイルオーバの制御

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee