KR20030067712A - 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법 - Google Patents

네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법 Download PDF

Info

Publication number
KR20030067712A
KR20030067712A KR10-2003-7008210A KR20037008210A KR20030067712A KR 20030067712 A KR20030067712 A KR 20030067712A KR 20037008210 A KR20037008210 A KR 20037008210A KR 20030067712 A KR20030067712 A KR 20030067712A
Authority
KR
South Korea
Prior art keywords
server
communication link
computer
communication
network
Prior art date
Application number
KR10-2003-7008210A
Other languages
English (en)
Other versions
KR100557399B1 (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 KR20030067712A publication Critical patent/KR20030067712A/ko
Application granted granted Critical
Publication of KR100557399B1 publication Critical patent/KR100557399B1/ko

Links

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2035Error 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 without idle spare hardware
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • 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
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 제2서버(220)가 정지되었을 때 컴퓨터 클러스터에 포함된 제1서버(210)의 가용도를 증가시키는 방법을 제공한다. 컴퓨터 클러스터내의 각각의 서버(210, 220)는 관련의 대용량 저장장치(214, 224)를 포함하며, 컴퓨터 클러스터에서 네트웍 장치(230, 240, 250)로부터의 요청을 처리할 수 있다. 데이터는 서버(210, 220)의 대용량 저장장치(214, 224) 사이에서 미러링되므로, 각각의 서버내의 대용량 저장장치는 모든 컴퓨터 클러스터 데이터의 완전한 카피를 가질 수 있다. 데이터 미러링은 전용 링크(202)를 통해 이루어지므로써, 나머지 컴퓨터 클러스터의 혼잡을 감소시킨다. 제1서버(210)가 제2서버(220)로부터 통신 손실을 검출하였을 때, 제1서버(210)는 통신 손실이 전용 링크(202)의 작동불능에 의한 것인지를 결정한다. 만일 전용 링크(202)가 손상되었다면, 제1서버(210)는 데이터를 관련의 대용량 저장장치(214)에 기입하는 것을 피하기 위하여 작동정지되며, 이것은 통신 손실로 인해 미러링되지 않는다. 만일 전용 링크(202)가 작동가능하면, 제1서버(210)는 작동을 계속한다. 이러한 두가지 경우에 있어서, 각각의 서버(210, 220)는 네트웍 장치(230, 240, 250)로부터의 요청을 처리할 수 있고 각각의 서버는 모든 네트웍 데이터의 완전한 카피를 갖기 때문에, 컴퓨터 클러스터는 서버가 정지된 후에도 계속 사용될 수 있다.

Description

네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링 시스템의 가용도 개선방법{A METHOD OF IMPROVING THE AVAILABILITY OF A COMPUTER CLUSTERING SYSTEM THROUGH THE USE OF A NETWORK MEDIUM LINK STATE FUNCTION}
전형적인 컴퓨터 클러스터는 컴퓨터 네트웍을 통해 서로 연결된 하나이상의 네트웍 장치와 2개 이상의 서버를 포함한다. 컴퓨터 클러스터의 정상적인 동작중, 서버는 네트웍 장치에 컴퓨터 리소스와, 데이터를 저장 및 회수할 장소를 제공한다. 현존의 컴퓨터 클러스터 형태에 있어서, 컴퓨터 클러스터 데이터는 어떠한 네트웍 서버에 의해서도 억세스되는 공유 컴퓨터 디스크에 저장된다.
도1에 도시된 전형적인 컴퓨터 클러스터는 컴퓨터 네트웍(101)을 통해 네트웍 장치(130, 140, 150)와 통신하는 2개의 네트웍 서버(110, 120)를 포함한다. 상기 네트웍 서버(110, 120)는 통신선(105, 106)을 통해 공유 디스크(104)와 통신한다.
컴퓨터 클러스터를 사용할 때, 특히 컴퓨터 클러스터가 다수의 사용자 워크스테이션과, 퍼스널 컴퓨터 또는 기타 다른 네트웍 클라이언트 장치를 지지하는 컴퓨터 클러스터 리소스의 지속적인 가용도를 제공하는 것이 바람직하다. 또한, 컴퓨터 클러스터링 시스템에 부착된 상이한 파일 서버들 사이에 균일한 데이터를 유지하는 것도 바람직하며, 또한 클라이언트 장치에 대해 데이터 가용도를 일정하게 유지하는 것도 바람직하다. 컴퓨터 클러스터 리소스 및 신뢰성있는 데이터 가용도를 달성하기 위하여, 컴퓨터 클러스터는 소프트웨어 및 하드웨어 문제점이나 결함에 대해 관대할 필요가 있다. 여분의 컴퓨터와 대용량 저장장치는 이를 가능하게 하므로, 고장인 경우에도 백업 컴퓨터 또는 디스크 드라이브가 이를 즉시 접수하는데 매우 유용하다.
도1에 도시된 바와 같은 공유 디스크 형태를 사용하여 컴퓨터 클러스터 리소스 및 데이터에 신뢰성있는 가용도를 실행하는데 현재 사용되고 있는 기법은 정족수(quorum)의 개념을 포함하는데: 이것은 하나의 네트웍 서버가 최소 갯수의 특정 네트웍 장치를 제어하므로써, 다른 네트웍 서버로부터 서비스가 불능인 경우 네트웍 서버는 컴퓨터 리소스 및 데이터의 가용도를 제어할 권리를 갖는 상태와 관련이 있다. 특정 네트웍 서버가 정족수를 얻는 방식은 각각의 서버와 다른 네트웍 장치의 캐스팅 "보트"에 관해 서술될 것이다. 예를 들어, 도1에 도시된 2개의 서버 컴퓨터 클러스터 형태에 있어서, 네트웍 서버(110, 120)는 어떤 네트웍 서버가 정족수를 갖는지를 결정하기 위해 하나의 투표권을 행사한다. 만일 네트웍 서버가 다수의 투표를 얻지 못했다면, 공유 디스크(104)는 2개의 네트웍 서버(110, 120)중 어느 것이 다수를 얻을 것인지를 투표하며, 그 결과 상호이해가능하며 허용될 수있는 방식으로 네트웍 서버들중 하나에 의해 정족수가 얻어진다. 단지 하나의 네트웍 서버만이 정족수를 가질 수 있으며, 만일 네트웍 서버(110, 120) 사이의 통신이 손실된 경우에도 오직 하나의 네트웍 서버가 모든 네트웍을 제어하는 것을 보장한다.
붕괴되었을 경우 네트웍을 사용가능하게 하기 위해 정족수의 사용에 대해 서술하기로 한다. 서버(110)가 서버(120)와의 통신 손실을 검출할 수 있는 일반적인 2가지 이유가 있다. 첫번째 이유는 서버(120)가 정지된 경우 서버(120)가 클라이언트에 네트웍 리소스를 더 이상 제공할 수 없는 경우이다. 두번째 이유는 2개의 서버 사이의 통신 기반이 붕괴된 경우로서, 서버(120)는 네트웍 내에서 지속적으로 작동될 수 있다. 만일 서버(110)가 정족수를 갖지 않는 것으로 결정되었다면, 공유 디스크(104)에 명령을 전송하여 디스크가 투표할 것을 요구하므로써 정족수를 얻는다. 만일 공유 디스크(104)가 서버(110)에 투표하지 않았다면, 이러한 서버는 서버(120)와는 독립적으로 작동되는 것을 피하기 위해 자체적으로 자동차단된다. 이 경우, 서버(110)는 네트웍 서버(120)가 정족수로 작동된다는 것을 가정하고, 서버(120)는 컴퓨터 클러스터스터를 지속적으로 제어한다. 그러나, 만일 공유 디스크(104)가 네트웍 서버(110)에 투표하였다면, 그 서버는 정족수 및 컴퓨터 클러스터의 제어를 획득하게 되어, 네트웍 서버(120)가 기능장애가 발생하였다는 가정하에 계속 작동된다.
네트웍이 붕괴된 경우 다수의 네트웍 서버중 하나의 서버가 지속적으로 네트웍 리소스를 제공하는 것을 보장하기 위해 정족수를 사용하면 만족스럽지만, 공유디스크를 사용하면 전체 네트웍 및 디스크상에 저장된 데이터가 소실될 위험이 있다. 예를 들어, 만일 기능정지된 것이 네트웍 서버(110, 120)중 하나가 아닌 공유 디스크(104)인 경우라면, 서버들중 그 어느 것도 작동될 수 없으며, 데이터는 영구적으로 소실된다. 더구나, 공유 디스크 형태에 있어서, 컴퓨터 클러스터 서버들은 전형적으로 서로에 인접하여 위치된다. 이것은 자연재해나 동력 정지 등에 의해 전체 컴퓨터 클러스터가 정지될 가능성을 제공하게 된다.
본 발명은 컴퓨터 클러스터링 시스템에 관한 것으로서, 특히 컴퓨터 클러스터링 시스템 서버들 사이에 통신이 손실되었을 경우 컴퓨터 클러스터링 시스템 리소스 및 데이터의 가용도(可用度)와 신뢰성을 개선하는 방법에 관한 것이다.
도1은 디스크를 공유하는 서버를 갖는 종래 컴퓨터 클러스터를 도시한 블럭도.
도2는 본 발명에 적합한 작동환경을 제공하는 예시적인 컴퓨터 클러스터를도시한 도면.
도3은 서버가 생존권리라고 가정하는 것을 도와주기 위하여 서버내의 다른 소프트웨어 모듈 사이의 통신을 도시한 도면.
도4는 다른 서버에서의 통신 손실 검출에 따라 생존권리를 갖는지의 여부를 결정하는 방법을 도시한 흐름도.
도5는 생존권리를 갖는 서버가 컴퓨터 클러스터에서 다른 서버의 정지에 응답하는 방법을 도시한 흐름도.
본 발명은 컴퓨터 클러스터링 시스템에서 컴퓨터 클러스터 리소스 및 데이터의 신뢰성 및 가용도를 개선하는 방법에 관한 것이다. 관련의 디스크를 각각 갖는 2개의 서버는 컴퓨터 네트웍을 통해 통신한다. 각각의 서버는 컴퓨터 클러스터 네트웍을 제공할 수 있으며, 컴퓨터 네트웍에 부착된 모든 네트웍 장치를 위해 컴퓨터 클러스터 데이터에 억세스할 수 있다. 통신이 손상된 경우, 각각의 서버는 통신 손실의 이유를 결정할 능력과, 동작을 계속 지속시킬지의 여부를 결정할 능력을 갖는다.
네트웍 서버가 다른 네트웍 서버와의 통신 손실을 검출하였을 때, 통신 손실은 통신 링크의 손상이나 다른 네트웍 서버의 파손이 원인일 수도 있다. 각각의 네트웍 서버는 네트웍 데이터의 미러링된 카피를 갖기 때문에, 통신 손실은 각각의 네트웍 서버에서 일련의 동작실행이 뒤따르면, 이러한 동작은 네트웍 서버가 상호관계없이 동작을 시작하지 않는다는 것을 보장하는 작동상태로 남아있게 된다. 이러한 동작이 없는 경우, 서로 독립적으로 작동되는 다수의 네트웍 서버는 바람직스럽지 못한 "스플릿 브레인(split brain)" 모드로 존재하여, 이러한 모드에서 네트웍 서버간 데이터 미러링(data mirroring)은 실행되지 않으며, 이에 따라 잠재적인 데이터 오염이 유발된다.
컴퓨터 클러스터의 동작이 시작되었을 때, 하나의 서버에는 컴퓨터 클러스터 리소스 및 데이터의 제어가 할당되며, 통신 링크가 손상되어 네트웍 서버간 통신이 손실된 경우 "생존권리"가 제공된다. 편의상, 정상적인 동작중 "생존권리"를 갖는 하나의 네트웍 서버를 "프라이머리"로 표시하고, 정상동작중 "생존권리"를 갖지 못한 다른 서버를 "세컨더리" 서버로 표시한다. 상기 "프라이머리" 및 "세컨더리"라는 용어는 서버의 중요성과는 관련없으며, 네트웍 리스소를 네트웍 장치에 제공하는데 어떤 서버가 책임이 있는지를 의미하는 것도 아니다. 정상적인 작동하에서, 프라이머리 및 세컨더리 서버는 네트웍 리소스 제공이라는 관점에서 서로 바뀔 수 있다. 상기 생존권리는 네트웍 서버간 통신이 손실된 경우, 상기 스플릿 브레인 이라는 문제점이 발생되지 않는 것을 보장하기 위해 디폴트 프로토콜에 사용된다.
프라이머리 네트웍 서버가 통신 손실을 검출하였을 때, 상기 프라이머리 네트웍 서버는 지속적으로 작동되는데, 그 이유는 세컨더리 네트웍 서버가 정지되었거나 또는 세컨더리 네트웍 서버가 계속 작동되지 않는 것으로 가정할 수 있기 때문이다. 통신 손실의 검출에 따라, 세컨더리 네트웍 서버에 의해 실행되는 일련의 동작은 다소 복잡하다. 단순히 동작을 정지시키는 것이 아니라, 세컨더리 네트웍 서버는 통신손실이 프라이머리 네트웍 서버의 손상에 의한 것인지 또는 통신 링크의 손상에 의한 것인지의 여부를 추정하거나 결정한다. 만일 통신 링크가 작동될수 있다면, 세컨더리 네트웍 서버는 프라이머리 네트웍 서버가 손상되어 작동되지 않는 것으로 결론내린다. 이 경우, 세컨더리 네트웍 서버는 스플릿 브레인 이라는 문제점을 유발할 위험성을 내포하지 않고 실질적으로 지속적으로 작동된다. 그러나 만일 세컨더리 네트웍 서버가 통신 링크 손상이라고 결정하였다면, 프라이머리 네트웍 서버가 작동가능한 것으로 가정한다. 이러한 가정에 응답하여, 세컨더리 네트웍 서버의 작동이 종료되어, 스플릿 브레인 모드에서의 작동을 피할 수 있다.
본 발명에 따른 장점은 프라이머리 서버의 통신 손실이 통신 링크의 손상에 의한 것이 아니라고 결정하는 경우, 초기에 생존권리를 갖지 않는 세컨더리 서버가 지속적으로 작동될 수 있다는 점이다. 통신 링크에 대한 그 어떤 분석이 없는 경우, 세컨더리 서버는 프라이머리 서버에서의 통신 손실에 응답하여 자동으로 정지될 것이 요구되어, 스플릿 브레인 이라는 문제점을 피할 수 있다. 상술한 바와 같이 서버간 통신 손실에 응답하는 본 발명의 방법은 네트웍 서버가 전용의 미러링 디스크 또는 대용량 저장장치를 갖는 컴퓨터 클러스터의 신뢰성 및 가용도를 강화시키는데, 그 이유는 스플릿 브레인 모드에서 작동될 가능성에 의해 프라이머리 서버가 작동정지되었을 때 세컨더리 서버가 오프라인으로 갈 것을 강제하지 않기 때문이다.
각각의 네트웍 서버가 전용의 미러링 디스크를 갖는 종래의 "정족수" 규칙의 어플리케이션이 일반적으로 최적인 것은 아니다. 예를 들어, 정족수를 갖는 네트웍 서버가 정지되었을 때는 정족수를 다른 네트웍 서버로 재할당하도록 투표할 공유 디스크가 없다. 그 결과, 이런 형태의 컴퓨터 클러스터에 대한 종래 정족수 규칙의 직접적인 어플리케이션은 정족수를 갖는 네트웍 서버가 정지되었을 때 비정족수 네트웍 서버가 불필요하게 정지되는 것으로 나타난다.
분리된 미러링 디스크에 데이터를 저장하면 네트웍 데이터가 손실될 가능성을 감소시키는데, 이것은 네트웍 서버들중에서 공유된 단일 디스크를 갖는 컴퓨터 클러스터에서 자주 경험하는 문제점이다. 또한, 서버는 본 발명에 따라 단일 디스크를 공유하지 않기 때문에, 서버의 위치는 디스크 드라이브장치에 관련된 케이블 길이에 의해 한정되지 않는다. 따라서, 네트웍 서버나 그 관련의 미러링 디스크는 서로 이격되어 위치될 수 있다. 이것은 자연재해나 동력정지에 의해 전체 컴퓨터 클러스터가 정지될 가능성을 감소시킨다.
본 발명의 또 다른 특징은 첨부된 도면을 참조하여 하기에 상세히 서술될 것이다. 본 발명의 특징 및 장점은 청구범위에 기재된 도구 및 조합체에 의해 실현될 수 있다. 본 발명의 상기 목적과 기타 다른 목적들은 하기의 상세한 설명과 첨부의 청구범위에 의해 보다 명확해질 것이다.
상술한 바와 같은 본 발명의 특징과 장점은 첨부된 도면에 도시된 양호한 실시예에 의해 이해될 것이다. 도면에는 본 발명의 전형적인 실시예만을 도시하였기에, 본 발명은 이에 한정되지 않는다.
본 발명은 컴퓨터 클러스터 시스템에서 컴퓨터 클러스터 리소스 및 데이터의 신뢰성과 가용도를 개선하는 방법에 관한 것이다. 상기 컴퓨터 클러스터는 적어도 2개의 서버를 가지며, 이들 각각의 서버는 전용의 대용량 저장장치를 갖는다. 상기 서버는 다른 네트웍 장치와 마찬가지로 컴퓨터 네트웍을 통해 다른 서버와 통신한다. 데이터는 각 서버의 디스크들 사이에 미러링되므로, 네트웍 장치는 하나의 서버가 정지된 경우에도 신뢰성있는 데이터에 억세스할 수 있다. 서버들 사이에 통신이 손실된 경우 서버가 자체적으로 정지되었는지의 여부를 결정하기 위해 각각의 서버에는 통신 모듈이 작동한다
"생존권리"라는 용어는 서버간 통신 링크에서의 에러로 인해 서버들 사이에 통신 손실이 검출된 경우, 작동을 지속할 수 있는 권리를 갖는지의 여부를 의미한다. 예를 들어, 만일 2개의 서버 사이에 통신 손실이 검출되었고, 그러한 손실이 통신 링크에서의 물리적 파손에 의한 것이라면, 생존권리를 갖고 있는 서버는 계속작동되는 반면에, 생존권리를 갖고 있지 않는 서버는 자체적으로 정지된다. 상술한 바와 같이, "프라이머리" 서버는 통신이 손실되기 전에 생존권리를 가진 서버이고, "세컨더리 서버"는 서버간 통신 손실 이전에 생존권리를 갖지 않은 서버이다.
"스플릿 브레인"이라는 용어는 각각의 네트웍 서버를 위한 대용량 저장장치를 갖는 컴퓨터 클러스터의 네트웍 서버가 미러링없이 서로 독립적으로 작용하는 바람직스럽지 못한 상태를 의미한다. 본 발명이 없을 경우, 이것은 네트웍 서버간 통신이 손실되었을 때, 두 네트웍 서버가 아직 작동중이고, 각각의 노드는 다른 서버가 정지되었다고 가정하고 있는 바람직하지 않는 상태를 의미한다. 스플릿 브레인이 발생되었을 때, 각각의 서버상에 있는 미러링 데이터는 더 이상 매치되지 않아 오염될 수 있다. 통신 링크에서의 물리적 파손에 의해 서버가 통신을 손실하게 되는 상술한 실시예에 있어서, 만일 서버가 그러한 손실이 물리적 파손에 의한 것이라고 결정하지 않을 경우, 각각의 서버는 작동을 계속하게 되고, 그 자신의 데이터를 관련의 대용량 저장장치에 기입한다. 그러나, 통신 링크가 파손되었기 때문에, 상기 데이터는 미러링되지 않고, 대용량 저장장치상의 데이터는 모순되어 버린다. 본 발명은 컴퓨터 클러스터가 스플릿 브레인 모드에서 작동되는 것을 방지하고, 프라이머리 서버의 정지에 의해 통신 손실이 발생된 경우, 세컨더리 서버가 지속적으로 작동할 수 있게 한다.
본 발명의 범주내에 있는 실시예는 컴퓨터-실행가능한 지시나 데이터 구조를 저장하거나 실행하기 위한 컴퓨터-판독가능한 매체를 포함한다. 이러한 컴퓨터-판독가능한 매체는 일반용 컴퓨터나 특수용 컴퓨터에 의해 억세스될 수 있는 그 어떠한 가용매체라도 가능하다. 예를 들어, 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 기타 광디스크 저장장치, 마그네틱 디스크 저장장치 또는 기타 다른 마그네틱 저장장치, 또는 일반용 및 특수용 컴퓨터에 의해 억세스될 수 있으며, 필요로 하는 프로그램 코드수단을 컴퓨터-실행가능한 지시 또는 데이터 구조 형태로 저장하거나 실행할 수 있는 기타 다른 매체 등을 포함한다. 정보가 네트웍이나 기타 다른 통신 연결장치(하드웨어, 무선 또는 하드웨어나 무선의 조합체)에서 컴퓨터에 전송되거나 제공되었을 때, 컴퓨터는 상기 연결장치를 컴퓨터-판독가능한 매체로 인식한다. 따라서, 그 어떠한 연결장치라도 컴퓨터-판독가능한 매체로 할 수 있다. 상술한 장치들의 조합체도 컴퓨터-판독가능한 매체들의 범주내에 포함된다. 예를 들어, 컴퓨터-판독가능한 지시는 일반용 컴퓨터나 특수용 컴퓨터 또는 특수한 처리장치로 하여금 그러한 기능이나 기능들의 집단을 실행하게 하는 지시 또는 데이터를 포함한다.
도2를 참조하여 본 발명이 실행되는 적절한 연산 환경이 서술될 것이다. 필요한 것은 아니지만, 본 발명은 네트웍 환경에서 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터-실행가능한 지시의 일반적인 배경에 대해 서술될 것이다. 일반적으로, 프로그램 모듈은 특정한 목적을 실행하거나 특정한 요약 데이터형을 실행하는 루틴, 프로그램 모듈, 목표물, 부품, 데이터 구조 등을 포함한다. 데이터 구조와 연관된 컴퓨터-실행가능한 지시와 프로그램 모듈은 서술되는 바와 같은 방법을 실행한 프로그램 코드수단의 실시예를 제공한다. 이러한 실행가능한 지시의 특정 시컨스 또는 이와 연관된 데이터 구조는 이러한 방법단계에 서술되는 기능을 실행하기 위한 대응의 동작예를 제공한다.
본 기술분야의 숙련자라면 본 발명은 퍼스널 컴퓨터, 핸드헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기본형 또는 프로그램가능한 소비자 전자장치, 네트웍 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는, 여러 형태의 컴퓨터 시스템을 구비한 네트웍 연산환경에서 실행될 수 있음을 인식할 수 있을 것이다. 본 발명은 통신 링크를 통해 링크된(하드와이어형 링크, 무선 링크 또는 이들의 링크의 조합체에 의해) 로컬 처리장치 및 원격 처리장치에 의해 목표가 실행되는 분배 연산환경에서 실행된다. 상기 분배 연산환경에 있어서, 프로그램 모듈은 로컬 및 원격 메모리 저장장치에 위치될 수 있다.
도2에는 본 발명의 방법이 실행되는 대표적인 컴퓨터 클러스터가 도시되어 있다. 상기 컴퓨터 클러스터는 2개의 서버(A210, B220)를 포함한다. 도2에는 단지 2개의 서버만 도시되었지만, 2개 이상의 네트웍 서버를 갖는 컴퓨터 클러스터에도 일반적인 원리가 쉽게 적용될 수 있을 것이다. 서버(A210, B220)는 파일 운영체인 마이크로소프트 윈도우즈 NT를 작동시키며, 또한 다른 운영체제도 본 발명에 사용될 수 있다. 서버(A210)는 대용량 저장 제어기(213)를 통해 연결되는 대용량 저장장치(214)와, 네트웍 인터페이스(211)를 통해 네트웍(201)에 연결되는 컴퓨터(212)를 포함한다. 이와 마찬가지로, 서버(B220)는 네트웍 인터페이스(200)를 통해 네트웍(201)에 연결된 컴퓨터(222)와, 대용량 저장 제어기(223)를 통해 연결되는 대용량 저장장치(224)를 포함한다. 상기 네트웍(201)은 이더넷, 토큰 링, 아크넷(Arcnet), 또는 서버(A210, B220)가 네트웍 장치(230)와 통신할 수 있는 기타 다른 네트웍 장치(230, 240, 250)일 수도 있다.
서버(A210)는 서버(B220)와 동일한 부품을 가질 필요는 없으며, 대부분의 경우가 이에 해당된다. 또한, 서버(A210, B220)는 상이한 프로세서 형태, 상이한 프로세서 속도, 상이한 크기의 대용량 저장장치 또는 그 어떤 수의 하드웨어 편차(hardware difference)를 가질 수 있다. 서버(A210, B220)에 필요한 모든 것은 이러한 서버들이 파일 운영체제를 작동시킬 수 있어야 한다는 것과, 서버들중 하나에 있는 드라이브가 다른 서버에 미러링되지 않도록 크지 않아야 한다는 점이다.
도2에 도시된 실시예에서, 서버(A210, B220) 사이의 통신은 전용 링크(202)를 사용하여 설정된다. 컴퓨터(212)는 통신 부착부(215)를 통해 전용 링크(202)에 연결되며, 컴퓨터(222)는 통신 부착부(225)를 통해 전용 링크(202)에 연결된다. 상기 전용 링크(202)는 본 기술분야에 공지되어 있는 기법을 사용하여 실행될 수 있다. 일실시예에서, 전용 링크(212)는 이더넷 프로토콜을 사용하는 링크이다. 선택적으로, 고속에서 작동되도록 프로그램되거나 컴퓨터(212, 222)의 평행 인터페이스에서 작동되도록 프로그램된 컴퓨터(212, 222)의 일련의 통신 포트를 사용하는 단계를 포함한다. 또 다른 실시예에 따르면, 전용 링크(202) 및 통신 부착부(215, 225)는 제공되지 않으며, 서버(A210, B220) 사이의 통신은 네트웍(201)을 통해 실행된 실제 회로나 채널에 의해 설정된다. 데이터 전송률이 대용량 저장장치(214, 224)의 전송률에 필적할 수 있어 시스템의 성능이 제한되지 않는다면, 전용 링크(202)를 실행하는데 사용되는 특정형태의 하드웨어는 중요하지 않다.
네트웍 장치(230, 240, 250)는 네트웍 인터페이스(231, 241, 251)를 통해 네트웍(201)에 각각 연결된다. 이러한 장치들은 대용량 저장장치(214, 224)에 저장된 데이터에 억세스하기 위하여 컴퓨터 시스템(210, 220)의 리소스를 사용하는 클라이언트 장치이다. 네트웍 장치(230, 240, 250)는 네트웍(201)을 통해 통신할 수만 있다면 그 어떤 장치라도 무방하다.
컴퓨터 클러스터의 작동중, 서버(A210, B220)는 네트웍 장치(230, 240, 250)에 리소스를 제공할 수 있다. 또한, 서버(A210, B220)는 전용 링크(202)의 무결성(integrity)에 대한 에러를 검출할 수 있다. 이와 마찬가지로, 서버(B220)와 통신중인 네트웍 장치가 대용량 저장장치(224)로부터 데이터를 삭제하거나 더하거나 변화시켰을 때, 업데이트는 전용 링크(202)를 통해 대용량 저장장치(214)로 미러링된다. 도2의 실시예에서 데이터는 전용 링크(202)를 통해 미러링되기 때문에, 네트웍(201)을 혼잡하게 하지 않는다.
미러링에 의해, 대용량 저장장치(214, 224)는 모든 컴퓨터 클러스터 데이터의 동일한 카피들을 포함하게 된다. 따라서, 컴퓨터 클러스터는 대용량 저장장치중 하나가 정지되었을 경우에도 양호한 신뢰성으로 지속적으로 작동될 수 있다. 만일 네트웍 장치(230, 240, 250)가 대용량 저장장치(214)의 정지에 의해 대용량 저장장치(214)상의 데이터에 억세스할 수 없다면, 네트웍 장치는 대용량 저장장치(224)상의 데이터에 억세스할 수 있고, 그 반대의 경우도 가능하다. 서버(A210, B220)는 대용량 저장장치를 공유하지 않기 때문에, 단일의 파손점은 없으며, 이들은 서로 원격으로 위치될 수 있다. 원격위치된 서버(A210, B220)는 대용량 저장장치로 동시에 억세스하는 것을 방지하는 정전이나 자연재해의 가능성을 감소시킨다.
서버(A210, B220)가 초기에 배열되었을 때는 작업자에 의해 이들 서버들중 하나에 생존권리가 할당된다. 이 경우 생존권리는 소프트웨어 플래그로서 표시되며, "온" 또는 "오프"로 설정된다. 일반적으로, 컴퓨터 클러스터의 정상적인 작동중, 생존권리 플래그는 오직 하나의 서버에만 "온"으로 설정된다. 초기 배열후, 생존권리 플래그가 "오프"인 서버는 하기에 상세히 서술되는 바와 같은 네트웍 상태하에서 상기 생존권리를 "온"으로 전환한다.
서버간 통신이 손실되었다면, 상기 생존권리는 어떤 서버가 클러스터 동작을 지속할 것인지, 그리고 어떤 서버가 클러스터 동작을 중단한 것인지를 결정하는데 사용된다. 서버(A210, B220) 사이의 통신 손실에는 2가지 주요한 경우가 있다. 첫번째 경우는 서버들중 하나가 전용 링크(202)를 통해 통신을 중단하였을 때 발생되며, 그 결과 서버는 예를 들어 소프트웨어 에러 또는 서버 동력손실을 경험하게 된다. 두번째 경우는 전용 링크(202)의 무결성의 손실이다.
상술한 바와 같이, 서버(A210, 220)는 통신 손실의 형태를 구별할 수 있다. 하기의 설명에서는 서버(B220)가 프라이머리 서버인 즉, 컴퓨터 클러스터의 초기 정상 동작주기중 생존권리를 갖는 것으로 가정하고, 서버(A210)는 초기에 생존권리가 없는 세컨더리 서버인 것으로 가정한다. 만일 프라이머리 서버(B220)가 서버(A210)에서 통신 손실을 검출하였다면, 서버(B220)는 통신 손실이 통신 링크(202)의 손상에 의한 것인지 또는 서버(A210)의 손상에 의한 것인지의 여부에관계없이 그 생존권리에 의해 계속 작동하게 된다.
세컨더리 서버(A210)가 서버(B220)에서 통신 손실을 검출하였을 때, 서버(A210)는 생존권리를 가정하여 안전하다고 결정되지 않는한 작동을 중단한다. 만일 서버(A210)가 그 통신 손실이 통신 링크(202)의 손상에 의한 것이라고 결정하였다면, 서버(A210)는 프라이머리 서버(B220)가 작동가능한 것으로 가정한다. 따라서, 서버(A210)가 생존권리를 갖고 있지 않기 때문에, 스플릿 브레인 모드에서의 작동을 피하기 위해 서버(A210)는 작동을 정지한다. 그러나, 만일 세컨더리 서버(A210)가 통신 링크(202)가 손상된 것이 아니라고 결정하였다면, 그 통신 손실은 정지된 프라이머리 서버(B220)과 연관된 것으로 가정하며, 그렇지 않을 경우 더 이상 네트웍 서비스를 제공하지 않는다. 이 경우, 세컨더리 서버(A210)는 자체적으로 생존권리를 할당한 후, 컴퓨터 클러스터에서 스플릿 브레인을 유발할 위험없이 작동을 계속한다. 후자의 경우, 서버(A210)는 네트웍 장치(230, 240, 250)로부터의 리소스에 대한 요청을 서비스하며, 그렇지 않을 경우 서버(B220)는 정지된다. 상술한 상태에 있어서, 서버들 사이에 통신 손실이 발생된 후 단지 하나의 서버만 계속 작동되며, 이것은 스플릿 브레인 이라는 문제점이 발생될 위험성을 방지한다.
도3은 본 발명의 일실시예에 따른 대표적인 컴퓨터 시스템에서 작동되는 상이한 소프트웨어 모듈의 상호작용을 도시하고 있다. 도3의 시스템 및 구조는 서버(A210)가 작동지속에 대해 어떻게 결정하는지와, 다른 서버와의 통신 손실이 검출되었을 때 생존권리를 어떻게 가정하는지에 대한 실시예를 도시하고 있다. 생존권리 플래그(306)는 초기에 자동으로 설정되거나, 컴퓨터 클러스터의 작동이 시작될 때 시스템 관리자에 의해 설정된다. 상술한 바와 같이, "온"으로 설정된 생존권리 플래그(306)를 갖는 서버는 통신 손실의 원인이 전용 링크(202)의 무결성에 대한 에러에 의한 것인지, 또는 다른 서버의 정지에 의한 것인지의 여부와 관계없이, 다른 서버와 통신이 손실되었을 때도 계속 작동된다. 본 발명은 초기에 "온"으로 설정된 생존권리 플래그(306)를 가지며 통신 손실을 경험한 후에도 실질적으로 계속 작동되는 프라이머리 서버에 관해 서술되었으며; 도3은 생존권리 플래그(306)가 "오프" 위치로 설정되었지만, 통신이 손실된 세컨더리 서버의 상황에 대해서 도시하고 있다.
서버(A210)가 컴퓨터 클러스터에서 작동할 때, 서버는 도3에 도시된 바와 같이 컴퓨터 클러스터의 부품들 사이로 데이터를 수신 및 전송한다. 데이터(308)는 전용 링크(202)상에서 서버(A210)와 통신하는 서버(B220)의 심장박동 신호를 나타낸다. 상기 "심장박동 신호"는 다른 서버가 작동가능한지를 결정하기 위해 하나의 서버에 의해 사용될 수 있는 포맷을 구비한 신호나 데이터를 의미한다. 통신 부착부 드라이버(301)는 통신 부착부(215)를 제어하고 데이터(308)를 수신하는 소프트웨어 모듈이다. 마찬가지로, 데이터(309)는 네트웍(201)상에 전송된 데이터를 나타낸다. 네트웍 인터페이스 드라이버(302)는 네트웍 인터페이스(211)를 제어하고, 데이터(309)를 수신한다.
서버(A210)는 데이터(308)와, 이러한 데이터(308)를 처리 및 분석하는 모듈과, 생존권리 플래그(306)가 "오프" 위치로 설정된 순간에 서버(B220)와의 통신이 손실되었는지의 결정에 응답하여 작동지속 또는 작동중단여부를 결정하는 전용 링크(210)를 포함한다. 서버(A210)는 데이터(308)가 예상한 대로 수신되었는지의 여부를 결정하기 위해 서버(B220)와의 통신을 관찰하는 서버 통신 검출기를 포함한다. 링크 상태 검출기(304)는 서버(B220)와의 통신이 손실되었을 때 전용 링크(202)가 정지되었는지의 여부를 결정할수 있는, 하드웨어나 소프트웨어 또는 이들의 조합체일 수 있다. 여러 경우에 있어서, 서버 통신 검출기(303)와 링크 상태 검출기(304)는 이러한 두 부품들의 기능성이 단일 구조로 조합될 수도 있지만, 분리된 모듈일 수도 있다.
이러한 실시예에서, 통신 검출기(303) 및 링크 상태 검출기(304)는 데이터(308)와, 전용 링크(202)의 무결성을 관찰한다. 그러나, 서버(B220)와의 통신이 전용 링크(202)가 아닌 네트웍(201)을 사용하여 전송되는 다른 실시예에서, 서버 통신 검출기(303) 및 링크 상태 검출기(304)는 데이터(309)와 네트웍(201)의 무결성을 관찰한다.
이러한 두 경우에 있어서, 서버 통신 검출기(303)는 서버(B220)의 심장박동 신호가 검출되었는지의 여부를 결정한다. 서버(B220)의 심장박동 신호가 손실되었을 경우, 링크 상태 검출기는 심장박동 신호를 이송하는 통신 링크의 무결성을 분석한다[즉, 전용 링크(202) 또는 네트웍(201)]. 서버(B220)와의 통신 손실을 경험하였을 때, 서버 통신 검출기(303) 및 링크 상태 검출기(304)는 통신 매니저(305)에게 이러한 사실을 통보하고, 심상박동 신호를 이송하는 통신 링크 손상이 발견되었는지를 통보한다. 그후, 통신 손실 매니저(305)는 서버 통신 검출기(303) 및 링크 상태 검출기(304)로부터의 정보와 생존권리 플래그(306)에 기초하여,서버(A210)를 정지시킬 것인지 또는 작동시킬 것인지를 결정한다.
통신 손실 매니저(305)에 의해 인가된 규칙을 요약하면, 만일 생존권리 플래그(306)가 서버(A210)가 생존권리를 갖는다는 것을 표시할 경우, 서버(A210)는 계속 작동된다. 그러나, 서버(A210)가 서버(B220)와의 통신이 손실되었을 때 생존권리 플래그(306)에 따른 생존권리를 갖지 않는 세컨더리 서버라고 가정한다면, 통신 손실 매니저(305)는 통신 손실이 통신 링크의 손상에 의한 것이라고 결정되었을 경우 서버(A210)의 작동을 정지시킨다. 만일 통신 손실이 통신 링크에 의한 것이라면, 서버(B220)는 작동가능하며, 이 경우 서버(A210)는 작동이 정지되고, 이에 따라 스플릿 브레인 모드에서 컴퓨터 클러스터가 작동될 가능성을 피할 수 있다.
이와는 달리, 만일 통신 손실 매니저(305)가 서버(A210)가 서버(B220)로부터 통신 손실을 검출하고 통신 링크가 손상된 것으로 결정하였다면, 통신 손실 매니저(305)는 서버(B220)가 작동불능인 것으로 추정한다. 서버(A210)가 세컨더리 서버라는 가정하에서, 생존권리 플래그(306)는 "온" 위치로 설정되어, 서버(A210)가 생존권리를 갖고 있음을 표시하게 된다. 이 경우, 서버(A210)는 서버(B220)에 의해 이루어진 서비스 요청을 시작하므로써 컴퓨터 클러스터를 "리포밍"한다. 서버(A210)는 네트웍 인터페이스 드라이버(302)에 네트웍 장치가 네트웍(201)상에서 서버(B220)로 전송한 서비스 요청을 네트웍 인터페이스 드라이버(302)가 실행시키는 명령을 전송하므로써 상술한 바와 같이 할 수 있다.
도4는 프라이머리 서버(즉, 초기에 생존권리를 갖는 서버)의 정지시 네트웍 리소스의 가용도를 증가시키기 위하여, 본 발명의 일실시예에 따라 컴퓨터 클러스터에서 세컨더리 서버(즉, 생존권리를 갖지 않는 서버)에서 실행되는 방법을 도시한 흐름도이다. 통신 손실에 대한 이유와는 관계없이, 프라이머리 서버는 그 보유한 생존권리에 의해 계속 작동되기 때문에, 하기에 도5를 참조로 상세히 서술되는 바와 같이, 프라이머리 서버는 세컨더리 서버에서 통신이 손실되었을 경우 일반적으로 도4에 도시된 단계를 실행할 필요가 없다.
도4에 있어서, 세컨더리 서버(A)는 결정 블록(401)에서 서버(B)와의 양호한 통신을 검출한다. 만일 서버(A)가 서버(B)와의 양호한 통신을 검출하였다면, 단계(402)로 진행되어, 서버(A)는 일정시간 간격을 기다린 후 결정 블록(401)을 다시 반복한다.
만일 서버(A)가 결정 블록(401)에서 서버(B)와의 양호한 통신을 검출하지 않았다면, 서버(A)는 결정 블록(4036)에서 통신 링크의 신뢰성을 검출한다. 만일 서버(A)가 결정 블록(402)에서 양호한 통신 링크를 검출하지 않았다면, 서버(A)는 스플릿 브레인 모드에서의 작동을 피하기 위하여, 단계(405)에서 클러스터의 동작을 종료시킨다.
그러나, 만일 서버(A)가 결정 블록(403)에서 양호한 통신 링크를 검출하였다면, 결정 블록(407)으로 진행되며, 이러한 블록(407)에서 서버(A)는 서버(B)가 정지되었다고 가정하기 전에 필요로 하는 시간간격 횟수를 기다린다. 결정 블록(407)에 따라 만일 서버(A)가 필요로 하는 시간간격 회수를 기다리지 않았다면, 단계(408)로 진행되며, 이러한 단계에서 서버(A)는 1회의 시간 간격을 기다린다. 단계(408)에서 시간 간격을 기다린 후에, 서버(A)는 결정 블록(409)에서서버(B)와의 양호한 통신을 다시 한번 검출한다. 만일 서버(A)가 단계(409)에서 서버(B)와의 양호한 통신을 검출하였다면, 단계(402)로 진행된다. 클러스터를 리포밍하기 전에 단계(407, 408, 409)에 의해 형성된 루프에 따라 재설정된 통신을 반복하여 체크하면, 서버(B)에서의 그다지 치명적이지 않은 짧은 주기의 소프트웨어 에러에 의해, 서버(A)가 서버(B)를 대신하여 작동개시되는 것을 방지할 수 있다.
만일 서버(A)가 필요한 시도횟수후에도 서버(B)로부터 양호한 통신을 검출하는데 실패하였다면, 서버(A)는 단계(411)에서 자신에게 생존권리를 할당한 후, 단계(412)에서 클러스터를 리포밍한다. 서버(A)가 단계(412)에서 클러스터를 리포밍한 후, 블록(413)에서는 서버(B)로부터의 양호한 통신에 대한 체크를 다시 한번 시작한다. 만일 서버(B)가 종료되지 않은 에러로부터 회복되었다면, 심장박동 신호의 전송을 재개하거나 클러스터가 리포밍된 후 서버(A)와의 통신을 재개한다. 서버(B)로부터 통신이 검출되지 않는한, 서버(A)는 작동을 계속하며, 결정 블록(413) 및 단계(414)에 형성된 루프에서 서버(B)로부터의 통신을 계속 관찰한다. 만일 서버(B)로부터의 통신이 결정 블록(413)에서 검출한 것처럼 재설정되었다면, 단계(415)로 진행되며, 서버(B)는 디스크 억세스가 허용되기 전에 단계(415)에서 정지되므로, 서버(A, B)의 대용량 저장장치와 연관된 데이터 불일치와 스플릿 브레인 모드에서의 작동을 피할 수 있다.
생존권리를 갖는 프라이머리 서버는 본 발명의 일실시예에 따라 다른 서버로부터의 통신 손실에 응답하기 위해 도5에 도시된 단계를 실행한다. 블록(501)에서, 프라이머리 서버(B)는 서버(A)와의 양호한 통신 검출을 시도한다. 만일 서버(B)가 서버(A)와의 양호한 통신을 검출할 수 있다면, 단계(502)로 진행되어, 서버(B)는 일정시간 간격을 기다린 후 결정 블록(501)을 반복한다.
만일 서버(B)가 결정 블록(501)에서 서버(A)와의 양호한 통신을 검출하지 않았으면, 결정 블록(507)으로 진행하고, 서버(A)가 정지되었다고 가정하기 전에, 서버(B)가 필요로 하는 시간간격 횟수를 기다렸는지의 여부가 결정된다. 만일 결정 블록(507)에 따라 서버(B)가 필요로 하는 시간 간격 횟수를 기다리지 않았다면, 단계(508)로 진행하여, 서버(B)는 1회의 시간간격을 기다린다. 단계(508)의 시간 간격을 기다린 후, 서버(B)는 결정 블록(509)에서 서버(A)로부터 다시 한번 양호한 통신 검출을 시도한다. 만일 서버(B)가 단계(509)에서 서버(A)와의 양호한 통신을 검출하였다면, 단계(502)로 진행한다. 클러스터를 리포밍하기 전에 단계(507, 508, 509)에 의해 형성된 루프를 사용하여 재설정된 통신을 반복검출하면, 서버(A)에서의 그다지 치명적이지 않은 짧은 주기의 소프트웨어 에러에 의해, 서버(B)가 서버(A)를 대신하여 작동개시되는 것을 방지할 수 있다.
만일 서버(B)가 서버(A)로부터 필요한 횟수만큼 시도하였는데도 양호한 통신을 검출하는데 실패하였다면, 서버(B)는 단계(512)에서 클러스터를 리포밍한다. 서버(B)가 단계(512)에서 클러스터를 리포밍한 후에는 결정 블록(513)에서 서버(A)로부터 양호한 통신에 대한 체크를 다시 한번 시작한다. 만일 서버(A)가 종료되지 않은 에러로부터 회복되었다면, 심장박동 신호의 전송을 재개하거나 클러스터가 리포밍된 후 서버(B)와의 통신을 재개한다. 서버(A)로부터 통신이 검출되지 않는한,서버(B)는 결정 블록(513, 514)에 의해 도시된 루프에서 서버(A)로부터의 통신을 주기적으로 계속 관찰한다. 만일 서버(A)로부터의 통신이 결정 블록(513)에서 검출된 것처럼 재설정되었다면, 단계(516)로 진행되어, 서버(B)는 서버(A)의 재개된 동작을 수용하기 위해 클러스터를 리포밍한다.
본 발명은 양호한 실시예를 참조로 서술되었기에 이에 한정되지 않으며, 본 기술분야의 숙련자라면 첨부된 청구범위로부터의 일탈없이 본 발명에 다양한 변형과 수정이 가해질 수 있음을 인식해야 한다.

Claims (23)

  1. 통신 링크에 의해 서로 연결된 제1서버와 제2서버를 포함하며, 컴퓨터 클러스터링 시스템이 붕괴되었을 때 상기 제2서버에 생존권리가 할당되는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성을 개선하기 위한 방법에 있어서,
    상기 제1서버에 의해 제2서버로부터 제1서버까지 통신 손실을 검출하는 단계와,
    통신 링크가 적절히 작동하는지의 여부를 결정하기 위하여, 상기 제1서버가 통신 링크를 분석하는 단계와,
    통신 링크가 적절히 작동하고 있는 것으로 결정된 경우, 상기 제1서버가 생존권리를 가정하여 계속 작동하는 단계와,
    통신 링크가 적절히 작동하고 있지 않은 것으로 결정된 경우, 상기 제1서버가 작동을 정지하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  2. 제1항에 있어서, 통신 손실 검출동작은 제2서버에 의해 생성된 심장박동 신호가 통신 링크상에서 상기 제1서버에 의해 검출될 수 없음을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  3. 제2항에 있어서, 상기 통신 링크는 제1서버와 제2서버를 연결하는 전용 링크를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  4. 제1항에 있어서, 상기 통신 링크는 컴퓨터 네트웍에서 설정된 실제 채널을 포함하며, 상기 컴퓨터 네트웍은 상호연결된 하나이상의 네트웍 장치를 포함하며, 상기 네트웍 장치는 제1서버 및 제2서버에 상호연결되는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  5. 제1항에 있어서, 상기 제1서버 및 제2서버 각각은 파일 운영체제 및 적어도 하나의 대용량 저장장치를 포함하며; 상기 제1서버 및 제2서버 각각은 다른 네트웍장치로부터의 네트웍 요청을 서비스할 수 있도록 상기 파일 운영체제를 실행하며; 상기 네트웍 요청은 제1서버 및 제2서버의 리소스를 사용하는 요청을 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  6. 제5항에 있어서, 상기 제1서버의 적어도 하나의 부착된 저장장치로부터 상기 제2서버의 적어도 하나의 부착된 저장장치까지 데이터를 미러링하는 단계와, 상기 제2서버의 적어도 하나의 부착된 저장장치로부터 상기 제1서버의 적어도 하나의 부착된 저장장치까지 데이터를 미러링하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  7. 제6항에 있어서, 상기 통신 링크는 제1서버 및 제2서버만을 연결하는 전용의 통신 링크이며; 통신 손실을 검출하는 동작은 통신 링크를 통해 상기 제1서버가 제2서버와의 통신을 시도하는 단계와, 제1서버가 제2서버와 통신할 수 없다고 결정하기 위해 상기 제1서버가 통신 링크를 통해 시도한 통신의 결과를 분석하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  8. 제1항에 있어서, 통신 링크가 적절히 작동하고 있는지의 여부를 결정하기 위해 통신 링크를 분석하는 단계는, 상기 제1서버가 통신 링크의 전송특성들을 반복해서 체크하고 이러한 특성들이 특정 변수내에 있는지를 결정하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  9. 제1항에 있어서, 상기 제1서버가 네트웍 장치에 의해 이루어진 요청을 제2서버로 서비스하는 단계를 부가로 포함하며, 상기 제1서버는 통신 링크가 적절히 작동하고 있는지의 여부를 결정하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  10. 제9항에 있어서, 제1서버가 제2서버로부터의 통신이 복구되었는지의 여부를 결정하는 단계와, 상기 제2서버가 작동을 정지하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  11. 제1항에 있어서, 상기 제1서버의 작동이 정지된 후, 제2서버가 계속 작동하여 제1서버에 의해 이루어진 네트웍 요청을 서비스하는 단계를 부가로 포함하며; 상기 제1서버는 통신 링크가 적절히 작동하고 있지 않음을 결정하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  12. 통신 링크에 의해 서로 연결된 제1서버와 제2서버를 포함하며, 컴퓨터 클러스터링 시스템이 붕괴되었을 때 상기 제2서버에 생존권리가 할당되며, 상기 각각의 제1서버 및 제2서버가 적어도 하나의 대용량 저장장치에 기입되거나 이로부터 판독되는 데이터로 나타나는 요청을 수신할 수 있도록, 상기 각각의 제1 및 제2 네트웍 서버는 파일 서버 운영체제와, 이와 관련된 적어도 하나의 대용량 저장장치를 포함하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성을 개선하기 위한 방법에 있어서,
    제2서버와 관련된 심장박동 신호가 상기 제1서버에 의해 통신 링크상에서 더 이상 검출되지 않음을 결정하는 단계와,
    상기 제1서버는 통신 링크의 무결성에 에러가 존재하는지의 여부를 결정하기위해 통신 링크를 분석하는 단계와,
    상기 제1서버가 통신 링크의 무결성에 에러가 있음을 결정하였을 경우, 상기 제1서버는 작동을 정지하고, 제2서버는 제1서버로 전송될 요청을 서비스할 수 있도록 컴퓨터 클러스터링 시스템을 리포밍하는 단계와,
    상기 제1서버가 통신 링크의 무결성에 에러가 없음을 결정하였을 경우, 제1서버는 자신에게 생존권리를 할당하고, 상기 제1서버는 제2서버로 전송될 요청을 서비스할 수 있도록 컴퓨터 클러스터링 시스템을 리포밍하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  13. 제12항에 있어서, 제2서버와 연관된 심장박동 신호가 더 이상 검출되지 않음을 결정하기 전에, 상기 제1서버 및 제2서버가 제1서버의 적어도 하나의 대용량 저장장치와 제2서버의 적어도 하나의 대용량 저장장치에 저장된 데이터를 미러링하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  14. 제13항에 있어서, 상기 데이터 미러링 단계는 제1서버와 제2서버 사이의 통신 링크상에 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  15. 제13항에 있어서, 상기 제1서버가 제2서버와 연관된 심장박동 신호가 더 이상 검출되지 않음을 결정하는 단계는, 제1서버가 심장박동 신호를 위해 통신 링크를 반복해서 관찰하는 단계와; 특정 시간주기동안 통신 링크를 반복해서 관찰하는 단계중 상기 제1서버가 심장박동 신호를 검출하지 않았을 때, 상기 제1서버가 심장박동 신호가 더 이상 검출되지 않음을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  16. 제12항에 있어서, 상기 제1서버의 컴퓨터 클러스터링 시스템 재구축단계후에, 상기 제1서버가 제2서버와 연관된 심장박동 신호를 다시 검출하는 단계와, 제2서버와 연관된 적어도 하나의 대용량 저장장치에 억세스하기 전에 상기 제2서버가 작동을 정지하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  17. 통신 링크에 의해 서로 연결된 제1서버와 제2서버를 포함하며; 컴퓨터 클러스터링 시스템이 붕괴되었을 때 상기 제2서버에 생존권리가 할당되며; 상기 각각의 제1서버 및 제2서버가 적어도 하나의 대용량 저장장치에 기입되거나 이로부터 판독되는 데이터로 나타나는 요청을 수신할 수 있도록, 상기 각각의 제1서버 및 제2서버는 파일 서버 운영체제와, 이와 관련된 적어도 하나의 대용량 저장장치를 포함하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성을 개선하기 위한 방법에 있어서,
    컴퓨터 클러스터링 시스템의 정상 작동중, 제1서버와 연관된 적어도 하나의 대용량 저장장치상의 데이터와 제2서버와 연관된 적어도 하나의 대용량 저장장치상의 데이터를, 통신 링크를 사용하여 제1서버와 제2서버 사이로 전송하므로써 이러한 데이터들을 미러링하는 단계와,
    제2서버가 적절히 작동하지 않는다는 것을 상기 제1서버가 결정하는 단계와,
    상기 제1서버가 컴퓨터 클러스터링 시스템을 제어하는 단계와,
    제1서버가 제2서버로 전송될 파일 서버 요청을 수신할 수 있도록, 상기 제1서버가 컴퓨터 클러스터링 시스템을 재구축하는 단계를 포함하며,
    상기 제2서버가 적절히 작동하지 않는다는 것을 제1서버가 결정하는 단계는 특정 시간간격중 상기 제1서버가 통신 링크를 분석하는 단계와, 제1서버가 통신 링크상에서 제2서버로부터의 통신 검출에 실패하는 단계와, 상기 제1서버가 통신링크 분석단계에 기초하여 통신링크의 적절한 작동성을 검출하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  18. 제17항에 있어서, 상기 제1서버가 컴퓨터 클러스터링 시스템을 제어한 후, 제1서버가 제2서버는 적절한 기능성으로 재구축되었음을 결정하는 단계와, 제2서버와 연관된 적어도 하나의 대용량 저장장치에 억세스하기 전에 상기 제2서버가 작동을 정지하는 단계를 부가로 포함하는 것을 특징으로 하는 컴퓨터 클러스터링 시스템의 가용도 및 신뢰성 개선방법.
  19. 제2서버의 정지에 응답하여 제1서버가 컴퓨터 클러스터링 시스템을 제어하는 방법에서, 제2서버와 상기 제2서버와 제1서버를 상호연결하는 통신 링크를 포함하는 컴퓨터 클러스터링 시스템에 내장된 제1서버에서의 실행에 의한 컴퓨터 프로그램 산출물에 있어서,
    상기 방법을 실행시키는 컴퓨터-실행가능한 지지를 이송하는 컴퓨터-판독가능한 매체를 포함하며,
    상기 컴퓨터-실행가능한 지시는 제1서버가 제2서버로부터의 통신 검출에 실패하였을 때 제1서버가 생존권리를 갖는지의 여부를 결정하는 프로그램 코드수단과; 상기 제2서버로부터 통신 손실을 검출하는 프로그램 코드수단과; 통신 손실에 응답하여 통신 링크가 적절히 작동하고 있는지의 여부를 결정하는 프로그램 코드수단과; 통신링크가 적절히 작동하고 있지 않을 때 제1서버의 작동을 정지시키고, 통신 링크가 적절히 작용하는 경우 제1서버가 초기에 생존권리를 갖지 않고 있음에도 불구하고 제1서버를 계속 작동시키는 프로그램 코드수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 산출물.
  20. 제19항에 있어서, 상기 통신 링크는 제1서버와 제2서버 사이에 전용 링크를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 산출물.
  21. 제19항에 있어서, 상기 통신 링크는 제1서버와 제2서버 및 다수의 네트웍 장치들을 상호연결하는 네트웍에 포함된 실제 채널을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 산출물.
  22. 제19항에 있어서, 상기 컴퓨터-실행가능한 지시는 제1서버와 제2서버가 서로 통신될 동안 컴퓨터 클러스터링 시스템의 정상 작동중, 제1서버와 연관된 대용량 저장장치와 제2서버와 연관된 대용량 저장장치 사이에서 데이터를 미러링시키는 프로그램 코드수단을 부가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 산출물.
  23. 제19항에 있어서, 제1서버가 생권권리를 갖는지의 여부를 결정하는 상기 프로그램 코드수단은 제1서버에 저장된 생존권리 플래그를 검사하는 프로그램 코드수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 산출물.
KR1020037008210A 2000-12-21 2001-12-19 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법 KR100557399B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US25747800P 2000-12-21 2000-12-21
US60/257,478 2000-12-21
US09/855,592 US6785678B2 (en) 2000-12-21 2001-05-14 Method of improving the availability of a computer clustering system through the use of a network medium link state function
US09/855,592 2001-05-14
PCT/US2001/049600 WO2002050678A1 (en) 2000-12-21 2001-12-19 Method of 'split-brain' prevention in computer cluster systems

Publications (2)

Publication Number Publication Date
KR20030067712A true KR20030067712A (ko) 2003-08-14
KR100557399B1 KR100557399B1 (ko) 2006-03-06

Family

ID=26945994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037008210A KR100557399B1 (ko) 2000-12-21 2001-12-19 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법

Country Status (10)

Country Link
US (2) US6785678B2 (ko)
EP (1) EP1344133B1 (ko)
JP (1) JP4500490B2 (ko)
KR (1) KR100557399B1 (ko)
CN (1) CN1264092C (ko)
AT (1) ATE415661T1 (ko)
AU (2) AU3116702A (ko)
CA (1) CA2428251A1 (ko)
DE (1) DE60136739D1 (ko)
WO (1) WO2002050678A1 (ko)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US20020198996A1 (en) * 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US6785678B2 (en) 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US6877107B2 (en) * 2001-07-05 2005-04-05 Softwired Ag Method for ensuring operation during node failures and network partitions in a clustered message passing server
US7685126B2 (en) * 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
DE10143142A1 (de) * 2001-09-04 2003-01-30 Bosch Gmbh Robert Verfahren zum Betreiben einer Schaltungsanordnung, die einen Mikrocontroller und ein EEPROM enthält
JP4434543B2 (ja) * 2002-01-10 2010-03-17 株式会社日立製作所 分散ストレージシステム、ストレージ装置、およびデータのコピー方法
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
US7203748B2 (en) * 2002-02-15 2007-04-10 International Business Machines Corporation Method for detecting the quick restart of liveness daemons in a distributed multinode data processing system
US7127512B2 (en) * 2002-02-19 2006-10-24 Qualcomm Inc. Method and apparatus for two-phase commit in data distribution to a web farm
CA2377649C (en) * 2002-03-20 2009-02-03 Ibm Canada Limited-Ibm Canada Limitee Dynamic cluster database architecture
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7058850B2 (en) * 2002-07-31 2006-06-06 Hewlett-Packard Development Company, L.P. Method and system for preventing data loss within disk-array pairs supporting mirrored logical units
US7076687B2 (en) * 2002-10-16 2006-07-11 Hitachi, Ltd. System and method for bi-directional failure detection of a site in a clustering system
EP2284735A1 (en) 2002-11-14 2011-02-16 Isilon Systems, Inc. Systems and methods for restriping files in a distributed file system
US20040181707A1 (en) 2003-03-11 2004-09-16 Hitachi, Ltd. Method and apparatus for seamless management for disaster recovery
JP2004302512A (ja) * 2003-03-28 2004-10-28 Hitachi Ltd クラスタコンピューティングシステム、および、そのフェールオーバー方法
US7320083B2 (en) * 2003-04-23 2008-01-15 Dot Hill Systems Corporation Apparatus and method for storage controller to deterministically kill one of redundant servers integrated within the storage controller chassis
US7401254B2 (en) * 2003-04-23 2008-07-15 Dot Hill Systems Corporation Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis
US7627780B2 (en) * 2003-04-23 2009-12-01 Dot Hill Systems Corporation Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance
US7565566B2 (en) * 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
JP2005018510A (ja) * 2003-06-27 2005-01-20 Hitachi Ltd データセンタシステム及びその制御方法
US7739541B1 (en) 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
US7475134B2 (en) * 2003-10-14 2009-01-06 International Business Machines Corporation Remote activity monitoring
US7225356B2 (en) * 2003-11-06 2007-05-29 Siemens Medical Solutions Health Services Corporation System for managing operational failure occurrences in processing devices
US6859811B1 (en) * 2004-01-15 2005-02-22 Oracle International Corporation Cluster database with remote data mirroring
US7299378B2 (en) * 2004-01-15 2007-11-20 Oracle International Corporation Geographically distributed clusters
US7293198B2 (en) * 2004-03-25 2007-11-06 Emc Corporation Techniques for maintaining operation of data storage system during a failure
US7610373B2 (en) * 2004-05-27 2009-10-27 International Business Machines Corporation Voting mechanism for session invalidation processing in an application server cluster
US8238350B2 (en) 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US8051425B2 (en) * 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
GB0428105D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting and disk failure protection
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US20060230245A1 (en) * 2005-04-08 2006-10-12 Microsoft Corporation Data storage safety indicator and expander
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
WO2006121990A2 (en) * 2005-05-06 2006-11-16 Marathon Technologies Corporation Fault tolerant computer system
US20060271695A1 (en) * 2005-05-16 2006-11-30 Electronics Line 3000 Ltd. System for remote secured operation, monitoring and control of security and other types of events
US7996608B1 (en) 2005-10-20 2011-08-09 American Megatrends, Inc. Providing redundancy in a storage system
US8010829B1 (en) 2005-10-20 2011-08-30 American Megatrends, Inc. Distributed hot-spare storage in a storage cluster
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7917474B2 (en) * 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7551572B2 (en) * 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
KR100877470B1 (ko) * 2005-11-22 2009-01-07 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어 제품 사용 제어 방법과 시스템 및 컴퓨터 판독 가능한 저장 매체
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US7848261B2 (en) * 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7756898B2 (en) * 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
JP2007304687A (ja) * 2006-05-09 2007-11-22 Hitachi Ltd クラスタ構成とその制御手段
US7519855B2 (en) * 2006-06-15 2009-04-14 Motorola, Inc. Method and system for distributing data processing units in a communication network
US7882071B2 (en) * 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7590652B2 (en) * 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7680836B2 (en) * 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7680842B2 (en) * 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7953704B2 (en) 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7822932B2 (en) * 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7899800B2 (en) * 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7770063B2 (en) * 2006-08-26 2010-08-03 International Business Machines Corporation Simulation of failure recovery within clustered systems
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) * 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) * 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US7908448B1 (en) 2007-01-30 2011-03-15 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems with write-back cache
US8498967B1 (en) * 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
US7779048B2 (en) 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7900015B2 (en) * 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US8271757B1 (en) 2007-04-17 2012-09-18 American Megatrends, Inc. Container space management in a data storage system
US7882068B2 (en) * 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US7949692B2 (en) * 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US11212733B2 (en) * 2007-10-08 2021-12-28 Qualcomm Incorporated Control of wireless transmission based on node status
US7984324B2 (en) * 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US7953709B2 (en) * 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
CN101299201B (zh) 2008-05-08 2010-06-02 成都市华为赛门铁克科技有限公司 存储系统数据备份方法及装置
US8006129B2 (en) * 2008-10-03 2011-08-23 Cisco Technology, Inc. Detecting and preventing the split-brain condition in redundant processing units
CN101729412B (zh) * 2009-11-05 2012-03-14 北京超图软件股份有限公司 地理信息服务的分布式层次集群方法和系统
US8108715B1 (en) * 2010-07-02 2012-01-31 Symantec Corporation Systems and methods for resolving split-brain scenarios in computer clusters
US8438277B1 (en) * 2010-12-08 2013-05-07 Symantec Corporation Systems and methods for preventing data inconsistency within computer clusters
CN103262046A (zh) * 2010-12-10 2013-08-21 日本电气株式会社 服务器管理装置、服务器管理方法和程序
WO2012083693A1 (zh) * 2011-07-26 2012-06-28 华为技术有限公司 一种用于集群计算机系统的投票仲裁方法及装置
CN102281159A (zh) * 2011-09-06 2011-12-14 曙光信息产业(北京)有限公司 集群系统的恢复方法
US10054933B2 (en) * 2012-03-27 2018-08-21 Sirqul, Inc. Controlling distributed device operations
US20140173330A1 (en) * 2012-12-14 2014-06-19 Lsi Corporation Split Brain Detection and Recovery System
US10250579B2 (en) * 2013-08-13 2019-04-02 Alcatel Lucent Secure file transfers within network-based storage
CN103647820B (zh) * 2013-12-09 2016-11-23 华为数字技术(苏州)有限公司 用于分布式集群系统的仲裁方法及仲裁装置
US9639437B2 (en) * 2013-12-13 2017-05-02 Netapp, Inc. Techniques to manage non-disruptive SAN availability in a partitioned cluster
US9965363B2 (en) * 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
CN105849702A (zh) * 2013-12-25 2016-08-10 日本电气方案创新株式会社 集群系统,服务器设备,集群系统管理方法和计算机可读记录介质
US9483369B2 (en) * 2014-01-24 2016-11-01 Verizon Patent And Licensing Inc. Method and apparatus for failover detection and recovery using gratuitous address resolution messages
US10114691B2 (en) 2014-04-21 2018-10-30 Hitachi, Ltd. Information storage system
JP2016115239A (ja) * 2014-12-17 2016-06-23 日本電気株式会社 フォールトトレラントシステム、フォールトトレラント方法、及び、プログラム
US10592268B2 (en) * 2015-04-06 2020-03-17 Hitachi, Ltd. Management computer and resource management method configured to combine server resources and storage resources and allocate the combined resources to virtual machines
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法
US10205782B2 (en) 2016-04-29 2019-02-12 Netapp, Inc. Location-based resource availability management in a partitioned distributed storage environment
US10671038B2 (en) * 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
US10594553B2 (en) 2016-12-21 2020-03-17 Mastercard International Incorporated Systems and methods for dynamically commissioning and decommissioning computer components
US10503427B2 (en) * 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
CN107147528A (zh) * 2017-05-23 2017-09-08 郑州云海信息技术有限公司 一种存储网关智能防脑裂系统及方法
WO2018230197A1 (ja) * 2017-06-14 2018-12-20 日立オートモティブシステムズ株式会社 車両搭載機器の制御装置
CN115396752B (zh) * 2022-07-29 2023-05-26 国电南京自动化股份有限公司 一种基于Redis的双平面采集数据方法及系统
CN116743550B (zh) * 2023-08-11 2023-12-29 之江实验室 一种分布式存储集群的故障存储节点的处理方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812748A (en) * 1993-06-23 1998-09-22 Vinca Corporation Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system
US5978565A (en) * 1993-07-20 1999-11-02 Vinca Corporation Method for rapid recovery from a network file server failure including method for operating co-standby servers
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5696895A (en) * 1995-05-19 1997-12-09 Compaq Computer Corporation Fault tolerant multiple network servers
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US5753034A (en) * 1996-09-27 1998-05-19 W. R. Grace & Co. -Conn. Composition and method to remove asbestos
US6002851A (en) * 1997-01-28 1999-12-14 Tandem Computers Incorporated Method and apparatus for node pruning a multi-processor system for maximal, full connection during recovery
US5892895A (en) * 1997-01-28 1999-04-06 Tandem Computers Incorporated Method an apparatus for tolerance of lost timer ticks during recovery of a multi-processor system
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6134673A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6108699A (en) * 1997-06-27 2000-08-22 Sun Microsystems, Inc. System and method for modifying membership in a clustered distributed computer system and updating system configuration
US9197599B1 (en) * 1997-09-26 2015-11-24 Verizon Patent And Licensing Inc. Integrated business system for web based telecommunications management
US6192483B1 (en) * 1997-10-21 2001-02-20 Sun Microsystems, Inc. Data integrity and availability in a distributed computer system
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6279032B1 (en) * 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6145089A (en) * 1997-11-10 2000-11-07 Legato Systems, Inc. Server fail-over system
JPH11175488A (ja) 1997-12-16 1999-07-02 Toshiba Corp サーバシステムおよびフェールオーバ制御方法
US6058400A (en) * 1998-04-28 2000-05-02 Sun Microsystems, Inc. Highly available cluster coherent filesystem
US6421787B1 (en) * 1998-05-12 2002-07-16 Sun Microsystems, Inc. Highly available cluster message passing facility
US6311217B1 (en) * 1998-06-04 2001-10-30 Compaq Computer Corporation Method and apparatus for improved cluster administration
JP2000040986A (ja) 1998-07-23 2000-02-08 Toshiba Corp 通信ネットワークの異常検出装置
US6393485B1 (en) * 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6438705B1 (en) * 1999-01-29 2002-08-20 International Business Machines Corporation Method and apparatus for building and managing multi-clustered computer systems
US6983317B1 (en) * 2000-02-28 2006-01-03 Microsoft Corporation Enterprise management system
US6618737B2 (en) * 2000-03-09 2003-09-09 International Business Machines Corporation Speculative caching of individual fields in a distributed object system
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US6609213B1 (en) * 2000-08-10 2003-08-19 Dell Products, L.P. Cluster-based system and method of recovery from server failures
US6785678B2 (en) 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function

Also Published As

Publication number Publication date
JP4500490B2 (ja) 2010-07-14
US20020083036A1 (en) 2002-06-27
DE60136739D1 (de) 2009-01-08
CN1483163A (zh) 2004-03-17
KR100557399B1 (ko) 2006-03-06
CN1264092C (zh) 2006-07-12
EP1344133B1 (en) 2008-11-26
WO2002050678A1 (en) 2002-06-27
JP2004516575A (ja) 2004-06-03
WO2002050678A8 (en) 2002-09-19
ATE415661T1 (de) 2008-12-15
AU3116702A (en) 2002-07-01
US20050033778A1 (en) 2005-02-10
AU2002231167B2 (en) 2005-10-06
US7409395B2 (en) 2008-08-05
EP1344133A4 (en) 2007-08-15
EP1344133A1 (en) 2003-09-17
US6785678B2 (en) 2004-08-31
CA2428251A1 (en) 2002-06-27

Similar Documents

Publication Publication Date Title
KR100557399B1 (ko) 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법
US11755435B2 (en) Cluster availability management
US5696895A (en) Fault tolerant multiple network servers
US8464092B1 (en) System and method for monitoring an application or service group within a cluster as a resource of another cluster
USRE42703E1 (en) System and method for fibrechannel fail-over through port spoofing
US6868442B1 (en) Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment
US7370228B2 (en) Data processing system and copy processing method thereof
KR20030003264A (ko) 서버의 이중화 방법 및 이중화 서버시스템
JP2005209191A (ja) 高可用性システムの遠隔エンタープライズ管理
JP2008052407A (ja) クラスタシステム
US6594709B1 (en) Methods and apparatus for transferring data using a device driver
US7120821B1 (en) Method to revive and reconstitute majority node set clusters
KR20030048503A (ko) 이중화 서버 구조의 데이터 동기화를 위한 통신 시스템 및방법
JP3555047B2 (ja) 複合コンピュータシステム
EP1107119A2 (en) Extending cluster membership and quorum determinations to intelligent storage systems
JP2000020336A (ja) 二重化通信システム
JPS62296264A (ja) デ−タ処理システムの構成制御方式
KR19990050461A (ko) 고 가용성 시스템의 오류 처리방법
JPH09160875A (ja) マルチエージェント相互バックアップ方式
JPH0460750A (ja) クラスタ停止装置
JPH11203257A (ja) コンピュータシステム
JPS62105243A (ja) システム障害の復旧装置
Sakai Integration of PRIMECLUSTER and Mission- Critical IA Server PRIMEQUEST
JPH03233734A (ja) 耐故障制御方式

Legal Events

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

Payment date: 20130207

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140210

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150206

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160205

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190207

Year of fee payment: 14