KR100658913B1 - 광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법 - Google Patents

광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법 Download PDF

Info

Publication number
KR100658913B1
KR100658913B1 KR1020030100421A KR20030100421A KR100658913B1 KR 100658913 B1 KR100658913 B1 KR 100658913B1 KR 1020030100421 A KR1020030100421 A KR 1020030100421A KR 20030100421 A KR20030100421 A KR 20030100421A KR 100658913 B1 KR100658913 B1 KR 100658913B1
Authority
KR
South Korea
Prior art keywords
node
resource
group
remote
failed
Prior art date
Application number
KR1020030100421A
Other languages
English (en)
Other versions
KR20040073273A (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 KR20040073273A publication Critical patent/KR20040073273A/ko
Application granted granted Critical
Publication of KR100658913B1 publication Critical patent/KR100658913B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

분산 데이터 처리 시스템에서 프록시 자원 관리자 및 에이전트의 사용을 통해 원격 자원들을 제어하고 이용하고 모니터링하는 개념이 페일오버 능력을 제공하는데까지 확장되어, 일시적이거나 장기간의 노드 장애의 경우에도 자원 커버리지가 보존되고 유지된다. 자원 상태의 일관성있는 판단을 위한 메커니즘이 제공된다. 또한, 원격 자원 동작들을 계속해서 유지하면서 노드 그룹에 노드들을 합류시키는 것을 돕는 메커니즘도 제공된다. 또한, 장애로 인하여 노드 리셋이 발생한 경우이더라도, 과거에는 장애가 발생하였지만 지금은 회복된 노드에 원격 자원 관리 제어를 복귀시켜주는 부가적인 메커니즘도 제공된다.
노드 장애, 원격 자원, 페일오버

Description

광범위한 클러스터들에서의 노드 장애에 대비하여 원격 액세스가능 자원들을 계속적으로 모니터링하는 확장 방법{A scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters}
도 1은 사용되는 작동 환경 및 본 발명에 따른 동작의 개괄적인 구조를 설명하는 블록도이다.
도 2는 도 1과 유사하지만 일반 동작중에 발생하는 본 발명의 다양한 구성요소들의 상태를 좀더 구체적으로 설명하고 원격 노드들에서 유지되는데이터 구조를 좀더 구체적으로 설명하는 좀더 상세한 블록도이다.
도 3은 비-원격 노드, 즉, RMI를 포함하고 원격 자원들을 위해 프록시(proxy) 자원 관리자를 실행시키는 중개 노드에서 유지되는 정보 구조를 더욱 상세하게 설명하기 위해 도 2의 일부를 확대한 도면이다.
도 4는 프록시 자원 관리자, PxRM의 역할 및 다른 부분과의 상호작용을 설명하기 위해 도 2의 일부를 확대한 도면이다.
도 5는 프록시 자원 에이전트, PxRA의 역할 및 분산 데이터 처리 시스템의 원격 부분의 다른 부분들과 그의 상호작용을 설명하기 위해 도 2의 일부를 확대한 도면이다.
본 발명은 분산, 멀티노드 데이터 처리 시스템에 관한 것이다. 좀더구체적으로, 본 발명은 원격의 외부 데이터 처리 노드들상에서의 존재로 인하여 그들의 상태가 변경되거나, 알려지지 않거나 또는 잘 정의되지 않는 상황이 발생할 수 있는 다수의 다양한 자원들을 관리하기 위한 메커니즘에 관한 것이다. 좀더 구체적으로, 본 발명은 원격 노드들에 있는 자원들을 위해 관리 노드의 장애에 견디고 매우 많은 수의 노드들을 갖는 시스템에서 특별히 유용한 방식으로 확장 자원 관리하는 방법에 관한 것이다.
본 발명은 "영속적이고 일관된 자원 상태를 제공하기 위해 원격 액세스가능 자원들을 모니터링하는 방법"이라는 발명의 명칭으로 2002년 8월 23일자에 일련번호 10/227,254로 이미 출원된 특허 출원을 개선한 것인데, 상기 출원은 모니터링하고 있는 노드들중 하나에서의 장애 가능성에 대비하여 분산환경의 멀티노드 데이터 처리 시스템의 동작을 계속적으로 모니터링하고 제어하는 방법을 제공한다. 본 발명은 자원 관리자의 기능을 시스템의 다른 노드들로 페일오버(failover)하는 메커니즘을 제공함으로써 장애에 대한 보호를 제공한다는 점에서 전술한 방법을 개선한 것이라 할 수 있다.
분산 시스템에서, 다수의 물리적 및 논리적 실체들이 시스템의 노드들에 걸 쳐 위치하며, 노드들은 시스템의 다른 노드들과 강하게 연결되지 않을 수 있는 원격 노드들로 가장 잘 특징화되는 노드들이 포함된다. 이는 분산 시스템에서 발견되는 전형적인 특성들중 하나이다. 본 명세서에서, 물리적 및 논리적 실체들은 "자원"이라 불리운다. 용어 "자원"은 소프트웨어뿐만 아니라 하드웨어 실체들을 언급하기 위해 넓게 쓰인다. 자원의 예에는 노드 14의 이더넷 장치 eth0, 데이터베이스 테이블 "고객", IP 어드레스 9.117.7.21 등이 포함된다. 이러한 소수의 예들로부터, 용어 "자원"은 분산환경의 다수-노드 데이터 처리 시스템에서 발견되는 완전히 이종의 실체들을 지칭하는 것으로 해석됨을 볼 수 있다. 그러나, 각각의 자원은 자원의 특성을 최소한 부분적으로나마 정의하는 적어도 하나의 속성을 갖는다. 또한, 속성의 일부는 자원의 상태 또는 조건을 통해 반영된다. 예로서, 네트워크 이더넷 장치는, 명칭(예, eth0), 작동상태(Opstate, 예, 업, 다운, 장애, 등), 어드레스(예, 9.117.7.21) 등과 같은 속성을 통상적으로 포함한다. 따라서, 명칭, 작동상태 및 어드레스는 자원 속성으로 참조된다. 자원의 상태를 반영하는 자원 속성들은 (전술한 작동상태와 같이) 동적 속성으로 분류된다.
자원들이 분산 데이터 처리 시스템들의 다른 요소들에(예를 들면, 시스템 관리 툴 또는 사용자 어플리케이션 등에) 서비스를 제공하기 때문에, 자원들은, 본 명세서에서, "자원 관리자 기반구조(Resource Manager Infrastructure: RMI)"라 통상적으로 지칭되는 실체에 의해 시스템 레벨에서 모니터링 및/또는 제어될 필요가 있다. 대부분의 RMI들은 전술한 자원들과 RMI들이 동일한 노드에 포함되거나 국한된다고 가정한다. 그러나, 특정 시스템이 소프트웨어, 하드웨어 및/또는 구조적 제한 때문에 자원 및 RMI 모두를 포함하거나 포함하지 않는 상이한 유형의 노드들을 포함하는 경우에는 동일한 노드상 자원 및 RMI의 현재 가정은 유지되지 않는다. 본 명세서에서, 자원 관리자 기반구조(RMI)는 데이터 처리 노드 집단내의 자원들에 대한 모니터링, 질의, 변경 및 제어 기능을 수행하는 부시스템들을 포함하는 소프트웨어 컴포넌트 시스템을 일컫는다. 이러한 부시스템들은 노드간의 통신, 자원 등록 등과 같은 공통적인 동작을 처리하기 위해 클러스터 자원 관리자에 의해 이용되는 공유 컴포넌트들을 통상 포함한다. 또한, RMI는 자원상에서 동작하기 위한 방법을 제공하는 자원 관리자(RM)를 포함하는데, 이러한 동작에는 자원의 상태를 모니터링하고 자원 구성 및 자원 동작을 제어하는 것이 포함된다. 전형적으로, 임의의 주어진 RM은 유사한 종류의 자원 집합을 다룬다.
상기에서 언급된 먼저 제출된 출원은 프록시 자원 관리자 및 프록시 자원 에이전트의 개념을 통해 비-RMI 노드들상에 존재하는 원격 액세스가능 자원들을 모니터링하고 제어하는 메커니즘을 제공하고, 또한 프록시 자원 관리자가 실패하고 재시작된 이후에도 영속적이고 일관된 동적 속성을 제공한다. 그러나, 프록시 자원 관리자 또는 그 노드의 (비교적) 영구적인 장애의 경우에는, 원격 자원들이 여전히 시동되어 활성상태임에도 불구하고 계속적으로 모니터링되거나 제어될 수 없다.
본 발명은 일관되고 영속적인 자원 속성들을 제공하는 것에 부가하여 (프록시 자원 관리자를 실행시키는) 프록시 노드의 장애 경우에도 원격 자원들을 모니터링하고 제어하기 위한 계속적인 서비스를 제공한다.
또한, 바람직하게 자원 관리를 받는 분산 데이터 처리 집단(cluster)의 크기가 크면(예, 천개 노드 이상), 페일오버(failover) 시스템은 또한 그에 적합하게 확장될 수 있어야 하며, 큰 시스템의 거의 모든 노드들간에 메시지가 교환되는 경우라면 특히 그러하다. 본 발명은 큰 노드 집단을 지원하기 위해 페일오버 자원 관리 기능을 제공하는 효율적인 메커니즘을 제안한다.
본 발명의 이용은 다음과 같은 대표적인 장점들을 제공한다.
(1) 프록시 자원 관리자(PxRM)가 투명하게(transparently) 다른 노드로 이동되어 원격 자원들이 단절없이 계속적으로 모니터링되고 제어된다.
(2) 장애 노드가 수리되면, 프록시 자원 관리자는 원래 장애가 발생했던 노드로 다시 이동할 수 있다.
(3) 이 방법은, 부하 균형화(load balancing), 복구 속도 및 노드 개수 측면에서 효율적이고 확장가능하다.
(4) 따라서, 전술한 특허출원 "영속적이고 일관된 자원 상태를 제공하기 위해 원격 액세스가능 자원들을 모니터링하는 방법"에 제공된 상기 언급된 발명 방법과 결합하여, 원격 자원들은, 프록시 자원 관리자, 또는 자원 관리자 기반구조(RMI) 부시스템, 및/또는 기타 노드들을 포함하는 임의의 장애에 대비하여 확장성있고 효율적인 방식으로 일관된 속성값들을 유지할 수 있도록 영속적으로 모니터링된다.
본발명의 바람직한 제1 실시예에 따르면, 복수 노드의 분산 데이터 처리 시 스템에서 원격 액세스가능한 자원을 관리하기 위한 방법 및 시스템이 제공된다. 프록시 자원 관리자가 분산 시스템의 복수의 노드들상에서 실행되고, 이러한 노드들 각각에 연결된 영속 저장 장치에서, 순차적 자원 생성 번호(resource generation number: RGN)(또는 이와 균등한 식별자)가 저장된다. RGN은 원격 자원과 연관되어 있다. 프록시 자원 에이전트는 하나 이상의 다른(원격) 노드들상에서 실행된다. RGN의 로컬 버전이 원격 노드상에 유지되고 해당 노드에 부착된 특정 자원에 연관되어 있다. 시스템 노드들중 하나가 리셋되거나 재시작되면, RGN이 증가된다. 또한, 자원 상태의 변경에 따라, 프록시 자원 에이전트를 통해서도 RGN이 증가된다. 원격 자원의 상태에 따른 동작의 일관성을 보증하기 위해 원격 및 시tm템 RGN이 비교된다.
본 발명의 바람직한 제2 실시예에 따르면, 복수-노드의 분산 데이터 처리 시스템에서 원격 액세스가능한 자원을 관리하기 위한 방법이 제공된다. 이 방법에서, 노드 그룹에 합류하고자 하는 노드 요청의 처리는 합류 노드에 구성원 자격을 구하고자 하는 그룹에 대한 페일오버 커버리지 정보(failover coverage information)를 제공하는 것을 포함하고, 합류 노드에, 상기 페일오버 커버리지 정보에 의해 상기 (페일오버) 그룹에 의해 모니터링되는 것들로서 표시되는 원격 자원들에 대한 상태 정보를 제공한다. 이러한 실시예는 협력하는 노드들의 그룹에 노드가 합류하는 방법으로서 또한 간주된다.
본 발명의 제3의 바람직한 실시예에서, 상기에서 이용된 프록시 자원관리자가 동작이 연속성을 증가시키기 위해 장애 노드로부터 비-장애 노드로 효과적로 이 동하는 메커니즘이 제공된다. 이러한 방법에서, 노드의 장애 여부와 장애 노드가 원격 자원을 관리하고 있었는지 여부가 먼저 판단된다. 선정된 페일오버 그룹의 노드들중 하나에서, 원격자원의 관리를 인수할 노드가 헤일오버 그룹에서 선택된다. 대상 자원의 현재 상태를 판단하기 위해 원격 노드에 있는 프록시 자원 에이전트와 통신하는데 이용되는 사전-설정된 커버리지 정보를 사용하여 원격 노드상에 존재하는 자원에 관한 상태 정보가 판단된다. 그 다음에, 원격 위치한 자원의 현재 관리자가 되도록 선택된 노드상에 프록시 자원 관리자가 설정된다. 이러한 기능을 수행하기 위해, 프록시 관리자는 이전에 판단된 현재 원격 자원 상태를 이용한다.
본 발명의 바람직한 제4 실시예에 따르면, 장애 노드가 재시작된 후에 또는 그의 동작 상태가 정상으로 돌아온 후에 장애 노드로 프록시 자원 관리자를 복귀시키기 위한 메커니즘에 제공된다. 이러한 방법에서, 이전에 장애가 발생했던 노드가 이제 제기능을 한다는 것을 나타내는 정보가 장애 노드 및 페일오버 노드 그룹의 또다른 노드 모두에 제공된다. 이는 그룹 서비스에 의해 제공된다. 다음, 이전의 장애 노드에서 원격 자원 커버리지가 현재 페일오버 그룹의 또다른 노드에 의해 처리되고 있는지가 판단된다. 이전의 장애 노드의 요청에 따라, 현재 커버리지 정보가 페일오버 그룹의 노드로부터 이전 장애 노드로 전송된다. 이 시점에서, 원격 자원의 적극적인 관리는 페일오버 그룹 노드로부터 이전에 장애가 발생하였지만 이제 복구된 노드로 변경된다.
따라서, 본원 발명의 목적은 컴퓨터 자원들이 분산 데이터 처리 시스템의 원격 노드들에 존재하더라도 시간에 걸쳐 광범위한 컴퓨터 자원들을 관리하는 것이 다.
또한, 본원 발명의 목적은 원격 데이터 처리 노드들상에 위치한 자원들에 관련된 상태 정보를 추적하고 유지하는 것이다.
본 발명의 또다른 목적은 데이터 처리 시스템의 지능적인 자율 동작을 위한 메커니즘을 제공하는 것이다.
본 발명의 또다른 목적은 노드 장애 또는 노드와의 통신 장애가 이어날 수 있는 상황에서 원격 노드 상태가 계속 유지되고 시스템의 비-장애 부분들에 이용가능한 메커니즘을 제공하는 것이다.
본 발명의 또다른 목적은 분산 데이터 처리 시스템내에 페일오버 능력을 제공하는 것이다.
본 발명의 또다른 목적은 관리대상으로 현재 할당된 원격 자원들의 개수에 근거하여 페일오버 그룹의 노드를 선택함으로써 어느 정도의 부하 균형을 제공하는 것이다.
본 발명의 또다른 목적은 복구된 장애 노드가 시스템의 다른 노드들에 대한 원격 자원 관리자로서 그 역할을 회복할 수 있는 메커니즘을 제공하는 것이다.
본 발명의 또다른 목적은 분산 데이터 처리 시스템의 신뢰도 및 가용도를 증강시키는 것이다.
마지막으로, 이에 한정되는 것은 아니지만, 본 발명의 또다른 목적은 분산 데이터 처리 시스템의 성능 및 효율성을 개선하고 그의 자율 동작을 진전시키는 것이다.
본 발명의 다양한 실시예들에 의해 충족되는 이제까지 기재된 일련의 바람직한 목적들은 이러한 목적들의 일부 또는 전부가 본 발명의 가장 일반적인 실시예 또는 좀더 구체적인 실시예에서, 개별적 또는 집합적으로든, 필수 특징으로서 존재함을 암시하거나 제안하려는 의도는 아니다.
본 발명의 바람직한 실시예들에서, RSCT/RMC와 같은 자원관리 기반구조가 존재하는 것으로 가정된다. RSCT/RMC 기반구조는 자원 모니터링 및 제어(Resource Monitoring and Control:RMC)용 컴포넌트를 포함한다. 일반적으로, 노드상의 RMI는 노드상에 다수의 자원 관리자(RM)들과, 하나의 RMC 및 기타 RSCT 부시스템 컴포넌트들 및 복수의 자원 관리자를 포함한다. RSCT(Reliable Scalable Cluster Technology: 신뢰적인 확장 클러스터 기술)는 본 발명의 양수인에 의해 판매되는 공공연하게 이용가능한 프로그램 제품이다. RMC 부시스템은 데이터 처리 시스템 또는 노드 집단내의 자원들을 관리하고 조작하기 위한 프레임워크를 제공한다. 이러한 프레임워크는 클러스터의 임의의 노드상의 프로세스가 집단 다른 부분의 하나 이상의 자원들상에서 동작을 수행할 수 있도록 해준다.
클라이언트 프로그램은 RMCAPI라 불리우는 프로그래밍 인터페이스를 통해 적용하여야 하는 자원과 수행될 동작을 지정한다. 그런 후에, RMC 부시스템은 처리되어야 할 자원들을 포함하는 노드 또는 노드들을 판단하고, 이러한 노드들에 요청된 동작을 전송한 후에, 자원들에 대하여 동작을 수행하기 위해 이러한 노드들 상에서 적절한 코드를 불러낸다(invoke). 동작을 수행하기 위해 불려진 코드는 자원 관리자라 불리우는 프로세스내에 포함되어 있다.
자원 관리자(도 1의 도면부호(200.1, 200.2, 210.1, 210.2, 210.3) 참조)는 자원 유형 추상화(abstraction)를 하나 이상의 특정 유형의 자원들에 대한 호출 및 명령으로 매핑시키는 프로세스이다. 자원 관리자는 자원이 존재할 수 있는 집단의 모든 모드상에서 실행될 수 있다. 다양한 노드들상에서 실행되는 자원 관리자 프로세스의 인스턴스(instance)들은 전술한 바와 같은 추상화를 제공하기 위해 협력하여 작업한다.
RMI 노드들의 외부에 위치하는 원격 자원들을 모니터링하고 제어하기 위해, PxRM(도 4의 도면부호(330.x) 참조)라 불리우는 자원 관리자가 RMI 노드(도 2의 도면부호(110 및 120) 참조)상에 위치하고, PxRA(도 5의 도면부호(430) 참조)라 불리우는 그의 피어(peer) 에이전트가 외부 개체상에(즉, 도 5에 도시된 노드 405.x와 같은 장치 또는 비-RMI 노드 상에) 위치한다.
PxRM 330.x(도 4 참조)는 (도 1 및 도 2의 페일오버그룹1(100)으로부터 아래쪽으로 향하는 화살표에 의해 표시된 바와 같이) RMC 부시스템 및 PxRA 430.x 모두에 연결되는 자원 관리자이다. PxRM 330.x에 의해 이용되는 자원들은 PxRA의 자원들을 대표하는 것이다. PxRA 430.x는 그것이 자원을 추적하고 현재 PxRM에 대한 변경을 보고하는 한, 어떠한 것(중개 프로세스 또는 서비스 루틴)도 될 수 있다.
자원의 영속적이고 일관적이 속성값을 제공하기 위해, 프록시 자원 관리자에, PxRM이 재시작된 후에도, PxRA로부터의 상태가 제공된다. 이러한 동작을 처리하기 위해, 자원생성번호(RGN)이라 불리우는 표시자가 제공된다. 원격 노드의 각 자원은 RGN을 갖는다. RGN은 PxRM 및 그의 PxRA 모두에 의해 적절하게 변경되고 추적되어, PxRM이 자원 속성들의 현재 상태를 알게 된다. RGN은 전술한 특허 출원에서 좀더 구체적으로 설명되어 있다.
여기서, RGN은 각각의 자원에 대해 시간마다 유일하며 단조 증가된다. 즉, 2개의 RGN이 상이한 시간에 생성된다면 그들은 상이하다. 이러한 속성은 RGN이 변경될지 여부를 판단하는 상태에서 불명료함이 없도록 보장한다. 따라서, 알맞은 RGN이 시간 스탬프로서 간단히 구현될 수 있다.
본 발명은 자원 관리자가 페일오버 그룹에서 함께 협력하여 작동하는 메커니즘을 제공한다. 페일오버 그룹은 노드가 처리하도록 호출될 수 있는 모든 자원들에 관한 일관성있는 데이터 집합을 포함하는 일단의 노드들이다. 페일오버 능력을 제공하기 위해, 본 발명은 Group Services(그룹 서비스, 본 발명의 양수인인 인터내셔널 비즈니스 머신즈사에 의해 팔리는 프로그램) 제품에 의해 제공되는 것과 같은 소프트웨어 서비스를 활용한다. Group Services에 의해 제공되는 도구들을 이용하여, 각각의 프록시 자원 관리자는 다른 프록시 자원 관리자의 장애를 신뢰성있게 검출하고 원격 노드들간의 동작을 조정한다. 또한, 대규모의 노드 집단을 수용하기 위해, 노드들은 전술한 바와 같이 그룹화된다. 페일오버는 동일한 페일오버 노드 그룹의 노드들간에서만 발생한다. 이는 효율성 및 확장성을 제공하기 위해뿐만 아니라 지나치게 연달은 페일오버가 발생하는 것을 방지하기 위해서도 유용하다. 예를 들어, 일부 시스템에서, 전력 및 다수의 내부 접속은 특정 그룹의 노드들에 국한된다. 따라서, 또다른 그룹의 노드들로 페일오버하는 것은 바람직하지 않다. 예를 들어, 다수의 노드에 영향을 주는 전력 장애의 경우에, 동일한 전력 그룹핑내의 다른 노드들로의 페일오버는 소용없다. 유사한 노드 그룹핑이 또한 범용 컴퓨터 집단에도 적용될 수 있다. 따라서, 각각의 노드는 그룹 서비스의"페일오버 그룹 지정"을 이용하여 노드그룹에 할다되며, 여기서, 노드 그룹은 "페일오버그룹 <#>"(<>은 노드 그룹 번호를 나타냄)으로 참조된다.
또한, 각각의 PxRM은 PxRA의 자원들뿐만 아니라 페일오버 그룹중 하나의 멤버를 나타내는 자원 관리자임을 주목할 필요가 있다. 이하의 설명은 페일오버가 어떻게 수행되는지에 대하여, 특히, 정의된 페일오버 그룹에서의 동작 및 작용과 관련하여, 중점적으로 논의한다.
가정
이하에 이어지는 설명에서, 본 발명을 가장 적절한 상황에 두고 그 구조 및 동작에 대한 가장 완벽한 이해를 더욱 확실하게 해줄 수 있기 위해 특정의 이해가 우선 고려된다. 구체적으로, (1) 집단은 자원 관리자(RM)들을 실행시키는 다수의 노드들로 구성된다. (2) 특정 위치(예, 미드플레인(midplane) 또는 프레임)의 자원 집단을 "커버리지(coverage)"라 지칭하는데, 전체 시스템의 자원들은 다수의 커버리지로 분할되고, 각각의 커버리지는 특정 식별자(ID)(도 1의 130.1, 130.2, 130.3 및 130.4 참조)로 식별된다(예, 유일한 ID는 프레임 번호일 수 있음. 즉, 유일한 ID는 자원을 호스트하는 일단의 특정 위치들을 식별해줌). (3) 설명의 단순성을 위해, 각각의 RM 개체는 하나의 커버리지에 대한 책임을 갖는 것으로 제한한다.(그러나, 본발명의 더 일반적인 실시예드에서는 실제 RM이 복수의 커버리지를 위해 복수의 RM 개체(즉, 스레드)를 가질 수 있음. 따라서, 본명세서에서 커버리지 식별자는 그에 연관된 RM 식별자와 혼용하여 이용됨), (4) 각각의 노드는 하나 이상의 커버리지(130.1-130.4)를 또한 나타내는 하나 이상의 RM들을 실행할 수 있다 (따라서, 전술한 (3)과 (4)항목을 결합하면, 구현에 따라서는 다수의 커버리지를 커버하기 위해, 단일 노드(도 1의 노드(110, 120))가 다수의 RM들(도 1의 210.1-210.4)을 호스트하거나, 다수의 스레드를 갖는 하나의 RM을 호스트할 수 있다). (5) 커버리지(또는 RM), 페일오버 그룹(100) 및 노드들(예, 도 1의 노드(110 및 120)간에 존재하는 매핑 구성이 있다. (이러한 구성에 의하면, RM은 페일오버를 위해 어느 노드가 사용될 수 있을지 뿐만 아니라 어느 커버리지가 각 노드에 처음 할당되어야 하는지를 "알고 있다." 즉, 각 RM의 실행시간중에 이용되는 노드는 구성에 있는 노드와 상이할 수 있다. 또한, 다수의 RM들이 단일 노드에 존재하는 것을 허용한다). (6) 그룹 서비스(또는 다수 노드 환경에서 유사한 기능을 제공하는 프로그램)가 장애-방지(fault-tolerant) 및 이용도가 높은 집단에 걸친 그룹 멤버쉽 및 동기화 서비스를 위해 이용된다. 이러한 서비스를 이용하여, RM을 호스트하는 각각의 노드는 다른 노드의 상태를 신뢰성있게 "인지"할 뿐만 아니라, 노드 및 작업 커버리지간의 현재 유효한 매핑 정보를 유지한다.
예시적인 구성 매핑
커버리지 페일오버 그룹 노드 ID(구성)
커버 #1 페일오버그룹 #1 #1(참조번호 110)
커버 #2 페일오버그룹 #1 #1(참조번호 110)
커버 #3 페일오버그룹 #1 #2(참조번호 120)
커버 #4 페일오버그룹 #1 #2(참조번호 120)
커버 #10 페일오버그룹 #2 #3
커버 #20 페일오버그룹 #2 #3
커버 #30 페일오버그룹 #2 #4
커버 #40 페일오버그룹 #2 #4
페일오버 그룹 형성
노드상의 각각의 RM이 개시되면, 각각의 RM은 구성정보를 판독하고 구성된 페일오버 그룹에 합류하는 것을 시도한다. 합류 요청이 받아들여지면, 합류 RM은 커버리지를 위해 원격 자원들(도 5 및 도 4의 상위 레벨에서의 411.x, 412.x, ...,41m.x, 또한 도 4 및 도 5에소 C1,C2, ...,Cm로 라벨링되어 있음)의 접촉을 개시한다. 합류 동작인 먼저 합류한 다른 멤버가 의도한 커버리지를 이미 처리하고 있다는 이유로 실패한다면, RM은 그룹 활동을 모니터링하기 위해 그룹에 가입한다. 합류 노드는 그룹의 구성원이 되고 구성원들은 멤버쉽 리스트에 등재된다. 더욱이, 여기서 사용되는 용어 "가입하다(subscribe)"는 합류 노드가 노드 그룹내에 어떠한 다른 노드들이 있는지 확인하기 위해 수행하는 동작을 지칭한다. 가입의 이유는 어떠한 노드가 합류하거나 실패하는지를 모니터링하기 위해서이다.
따라서, 페일오버그룹(도 1 및 2의 페일오버그룹1(100))에 합류하는 것은 RM이 의도하는 자원들을 커버하기 위해 활성됨을 의미한다. 각각의 페일오버그룹 멤버쉽은 RM들의 리스트를 나타내는 구성원ID(MembershipID) 리스트를 포함한다. 구 성원ID는 노드 번호과 그룹 서비스에 의해 제공되는 번호의 조합이다. 예를 들어, 전술한 케이스는 다음과 같은 멤버쉽을 낳는다(페일오버 이전, 도 2 참조).
FailoverGroup#1 = {<N1,커버1>, <N1,커버2>, <N2,커버3>, <N2,커버4>}
FailoverGroup#2 = {<N3,커버10>, <N3,커버20>, <N4,커버30>, <N4,커버40>}
이를 판단하기 위해, RM은 그가 속하는 연관 페일오버그룹(100)에 합류한 후에 활동 노드들을 열거하는 현재 RM 멤버쉽을 수신한다. 그룹 서비스 도구를 통해, 그것은 요청 노드 N2에 대해 다른 노드들에 의해 현재 처리되는 커버리지를 획득하고 나서, 현재 매핑 정보를 갱신한다. 예로서, 새롭게 추가된 RM이 노드 N2상에 있고 어떠한 노드들도 커버3(도 1의 130.1) 및 커버4(도 1의 130.4)의 커버리지를 책임지지 않는다면, 페일오버의 작용 커버리지 및 현재 멤버쉽은 다음과 같다.
현재멤버쉽 = {N1}
유효 커버리지 = {(N1, 커버1), (N2, 커버2)}
의도된 커버리지가 다른 노드들로 페일오버되지 않는지를 판단한 후에, RM은 구성된 커버리지를 커버하기 시작하고 현재 유효한 매핑정보에 매핑(N2, 커버3), (N2,커버4)를 추가시킨다. 이후의 매핑은 다음과 같다. FailoverGroup#1={<N1,커버1>, <N1,커버2>, <N2,커버3>, <N2,커버4>}
FailoverGroup#2={<N3,커버10>,<N3,커버20>,<N4,커버30>,<N4,커버40)}
반면에, 의도된 커버리지가 다른 노드들에 의해 처리되고 있다면, 요구는 다시 구성 노드들로 돌아간다. RM은 이미 커버링하는 노드, 가령, Nx을 접촉한다. 요 청에 따라, 노드 Nx은 요청 노드 N2에 현재의 커버리지-관련 정보를 복사한 후에 현재 매핑 정보를 갱신한다.
자원의 모니터링/제어
자원의 모니터링 및 제어는 상기에서 참조된 특허출원("영속적이고 일관된 자원 상태를 제공하기 위해 원격 액세스가능 자원들을 모니터링하는 방법"이라는 발명의 명칭으로 2002년 8월 23일자에 출원된 특허출원 제 10/227,254호)에 설명된 것과 동일한 방식으로 이루어진다.
RM의 장애 검출 및 장애 커버리지 인계
노드, 가령, 노드 N1에 장애가 발생하면, 그룹 서비스는 다른 노드들에게 노드 N1의 장애를 통지한다. 동일한 페일오버 그룹내의 다른 노드들중 하나가 장애 통지를 수신한 후에 커버리지를 인계받는다. 노드의 선택은 부하에 기초하여 이루어지고, 부하다 동일한 경우에는 노드 번호에 기초하여 이루어진다. 부하는 각각의 노드에 의해 처리되는 것으로 지정된 커버리지의 개수로서 표시된다. 또한, 선택은 노드간의 통신없이 국부적으로 행해질 수도 있다.
전술한 예(도 1)에서, 노드 N2에 대한 부하,"load(N2)"는 2이고, N2에 대한 부하가 동일한 페일오버 그룹(페일오버-그룹1)내의 노드들중에서 가장 작은 부하이기 때문에 커버리지 커버1 및 커버2를 인계받는다. 노드 N1은 실패한 노드로 간주되기 때문에, 노드 N2는 노드 N1으로부터 현재 커버리지 정보를 얻을 수 없다. 이러한 상황에서, 커버 1 및 커버 2에 대한 유효 커버 정보는 커버리지에 대한 책임 을 지고 있는 커버링중의 PxRM을 접촉함으로써 재구성된다. 재구성은 전술한 특허출원에 기재된 영속적인 자원 모니터링 방법을 이용하여 신뢰적으로 수행된다.
장애 커버리지의 회복(복구)
선택적으로, 본 발명은 원 노드가 이용가능해지면 원 노드에 커버리지 복구를 제공한다. 예를 들어, 도 1에서, 노드 N1이 장애 이후에 다시 이용가능해지면, 커버리지 커버1 및 커버 2는 이하의 방식으로 노드 N1으로 다시 이동될 수 있다.
(1) N1(110)이 다시 이용가능해지는 시점에서, 그룹 서비스는 이러한 이벤트를 노드 N1뿐만 아니라 N2(120)에 통지해준다.
(2) N1이 "페일오버 그룹 형성"에서 설명한 바와 같이 페일오버-그룹에 합류하려고 시도할 때, 노드 N1은 그룹 서비스에 의해 제공되고 유지되는 그룹 멤버쉽 리스트를 판독함으로써 N1에 대한 커버리지가 N2로 페일오버되었음을 발견한다. 이 리스트는 그룹의 노드상에 존재하는 RM들을 식별해준다(예, 노드3, 노드4, 노드5 및 노드6로서 식별된 노드들 각각에 존재하는 도 2d에 도시된 RM(200.1a, 200.1b, 200.3 및 200.4).
(3) N1은, 이러한 상황을 인식한 후에, 노드 2에 현재 커버 1 및 커버 2의 정보를 전송하라는 요청을 발송한다. 이는 그룹 서비스의 메시징 서비스에 의해 행해진다.
(4) 이러한 정보를 수신한 후에, 노드 N1은 커버 1 및 커버 2에 대한 멤버쉽에 합류하고 N2는 커버 1 및 커버 2에 대한 멤버쉽을 포기한다.
(5) 커버 1 및 커버 2에 대한 멤버쉽의 성공적인 변경 이후에, 커버리지는 이제 원 노드로 다시 이동된다.
도 3은 도면부호(310.1-310.4), 또는 좀더 일반적으로는 도 4에서 도면부호 310.x(설명을 위해, 310.x의"x"는 1부터 4까지의 범위로 가정되며, 320.x, 325.x, 330.x, 340.x 및 350.x 등에서도 이와 유사함)에 의해 참조되는 연결된 컴포넌트들간의 관계를 설명한다. 구체적으로, 310.x는 페일오버 그룹에서의 노드를 지칭한다. 이러한 노드들은 원격 노드 400.x상의 프록시 자원 에이전트 430.x와 통신하는 프록시 자원 관리자 330.x를 포함한다. 본 발명의 중요한 특징은 도 5에 도시된 바와 같이 각각의 원격 관리 자원 Ci에 대해 엔트리 테이블(325.x)를 영속 메모리(320.x)내에 유희자는 것이다. 테이블(325.x)은 (본 실시예에서) 노드 3 내지 5에 존재하는 프록시 자원 관리자(PxRM, 330.x)들과 원격 노드(400.1 내지 400.x)(여기서, 예시적으로 x는 4임) 존재하는 프록시 자원 에이전트(PxRA)간의 통신을 통해 동기화되어 유지된다. 동기화는 본 명세서에 변경 및 특징이 기재된 자원 생성 번호(RGN)의 사용을 통해 가능해진다. 테이블(325.x)은 각각의 원격 관리 자원에 대한 엔트리를 포함한다. 그에게 현재 할당된 RGN을 나타내는 엔트리 및 명칭에 의해 자원을 식별해주는 엔트리이다. 자원의 상태 및 (필요시에) 자원의 특정 정보를 나타내는 또다른 엔트리들도 테이블(325.x)에 제공된다. 테이블(325.x 및 425.x)(도 5 참조)의 구조는 기본적으로 동일하다. 그러나, 때때로, 장애 노드가 서비스 복귀할 때 발생하는 것과 같이 RGN 엔트리들간에 차이가 존재할 수 있다. 또한, 관리 노드가 그의 지원 엔트리들의 리스트로부터 원격 자원을 버리기로 선택할 때 발생하는 차이도 있을 수 있다. 관리 노드에서 프록시 자원 관리자(PxRM, 330.x)가 일관성있게 정의되는 자원관리자 인터페이스(340.x)를 통해 로컬 자원 관라지(350.x)와 통신한다. 또한, 관리 노드에서 영속 저장장치(320.x)는 디스크 드라이브, 광드라이브, 테이프 드라이브 또는 랜덤 액세스 메모리를 포함할 수 있다. 가장 중요한 특징은 비 휘발성의 엄격한 기준에 반대되는 지속성(persistence)이다.
원격 자원들(C1,C2,...,Cm)(각각, 411.x, 412.x, 41m.x)과 함께 원격 노드(405.x)를 포함하는 400.x와 같은 원격 노드 복합체(400.x)에서, 프록시 자원 에이전트(PxRA,430.x)는, 이상적인 환경 하에서는, 국부적으로 유지되는 테이블(325.x)의 사본인 테이블(425.x)를 유지한다. PxRA(430.x)는 RGN 엔트리들을 전달하고 원격 자원 상태의 일관성을 확실히 하기 위해 그것들을 비교하기 위한 목적으로 PxRM(330.x)과 직접 통신한다. 원격 자원들(C1,C2,...,Cm)은 자원들과의 통신을 위해 프록시 자원 에이전트(PxRA, 430.x)에 의해 또한 사용되는 노드 인터페이스(435.x)를 통해 노드(405.x)와 통신한다. 노드 인터페이스(435.x)는 원격 자원과 원격 자원이 직접 부착되는 노드간에 통신을 위한 메커니즘을 간단히 지칭하는 것으로 해석된다. 이것은 본원 발명의 일부를 형성하지 않는다.
전술한 도면 및 설명은 단일 페일오버 노드 그룹에 관련된 동작 및 능력에 주로 관련된 것이지만, 본 발명은 임의의 합리적인 개수의 페일오버 그룹이 정의되고 사용되며, 바람직하게는 RGN 정보 및 관련 상태 정보를 프록시 자원 관리자에게 다시 전달하는 프록시 자원 에이전트를 이용함으로써, 원격 노드들에 저장되어 유 지되는 RGN 정보에 대한 참조가 이루어지는 한 중첩 커버리지가 허용되는 것을 고려하고, 허용하며, 제안한다.
자원 생성 번호(RGN)는 자원별로 시간에 따라 유일한 값이다. 즉, 2개의 RGN이 상이한 시간에 생성된다면, 그 값은 상이하다. 이러한 속성은 자원생성 번호가 변경되었는지 여부를 판단하는데 있어서 상태 불명료함은 없도록 보장해준다. 따라서, 자원 생성 번호는 바람직하게는 시간 스탬프와 같이 간단한 것이다. 그러나, 자원 생성 "번호"는 일반적으로 그에 대한 순서 관계를 정의되도록 해줄 수 있는 임의의 표시자를 포함한다. 정수 및 시간 스탬프(날짜 및 시간 스탬프를 포함함)가 이러한 표시자를 가장 명확하고 용이하게 구현하는 것이다. 따라서, 본 명세서에서 RGN을 "숫자"로 참조하는 것이 표시자를 하나 이상의 숫자 표현 형태로 제한하는 것으로 해석되어서는 안될 것이다. 또한, 본 명세서에서 RGN이 증가된다고 기재된 부분에서, 증분이 양수이거나 표시자의 정렬 또는 갱신이 특정 방향으로 발생하여야 한다는 어떠한 구체적인 요구사항은 없다. 순서 및 비교성은 표시자의 요구되는 속성이다. 바람직한 실시예에서는 다만 시간 스탬프가 이용된다.
본 명세서에 사용되는 바와 같이, 노드에 장애가 발생함이 표시될 때, 이는 노드간의 통신이 더 이상 발생하지 않거나 노드 내부 문제가 있음을 의미한다. 통신 문제로 인한 노드 장애는 기간에 있어서 일시적이거나 단기간일 경향이 높다. 그런, 통신 문제는 때때로 대체 통신 경로의 식별 및 이용을 통해 해결될 수 있다. 내부 노드 문제에 관하여, 이는 특성상 좀더 심각한 경향이 있는데, 노드를 재시작하거나 노드를 재부팅하는 것이 주로 문제를 해결하지만, 이러한 경우에는 RGN도 마찬가지로 0(또는 이에 등가의 값)으로 리셋된다. 상태상의 이러한 변하는 본 발명의 PxRM에 의해 인식된다.
본 발명은 특정의 바람직한 실시예에 따라 본 명세서에서 좀더 상세하게 설명되었지만, 본 기술분야의 숙련자에 의해 변경 및 수정이 이루어질 수 있다. 따라서, 첨부된 청구범위가 본 발명의 진정한 범위내에 속하는 모든 변경 및 수정을 포함하는 것으로 해석된다.
본 발명의 이용은 다음과 같은 대표적인 장점들을 제공한다.
(1) 프록시 자원 관리자(PxRM)가 투명하게(transparently) 다른 노드로 이동되어 원격 자원들이 단절없이 계속적으로 모니터링되고 제어된다.
(2) 장애 노드가 수리되면, 프록시 자원 관리자는 원래 장애가 발생했던 노드로 다시 이동할 수 있다.
(3) 이 방법은, 부하 균형화(load balancing), 복구 속도 및 노드 개수 측면에서 효율적이고 확장가능하다.
(4) 따라서, 전술한 특허출원 "영속적이고 일관된 자원 상태를 제공하기 위해 원격 액세스가능 자원들을 모니터링하는 방법"에 언급된 발명 방법과 결합하여, 원격 자원들은, 프록시 자원 관리자, 또는 자원 관리자 기반구조(RMI) 부시스템, 및/또는 기타 노드들을 포함하는 임의의 장애에 대비하여 확장성있고 효율적인 방식으로 일관된 속성값들을 유지할 수 있도록 영속적으로 모니터링된다.

Claims (17)

  1. 복수 노드의 분산 데이터 처리 시스템에서 원격 액세스가능한 자원을 관리하기 위한 방법에 있어서, 상기 방법은,
    상기 분산 데이터 처리 시스템의 복수의 노드들 상에서 프록시 자원 관리자(proxy resource manager)를 실행시키고 상기 원격 액세스가능 자원에 연관된 순차적 자원 생성 식별자를 상기 복수의 노드들 각각에 연결된 영속 저장 장치에 저장하는 단계와,
    적어도 하나의 다른 노드상에서 프록시 자원 에이전트(proxy resource agent)를 실행시키고 상기 자원에 연관된 상기 순차적 자원 생성 식별자의 로컬 버전과 함께 상기 자원에 대한 상태를 유지하는 단계와,
    상기 복수의 노드들중 대응 노드의 재시작에 따라 상기 영속적으로 저장되는 식별자를 증가시키는 단계와,
    상기 자원 상태의 변화에 따라, 상기 프록시 자원 에이전트를 통해, 상기 로컬 식별자 버전을 증가시키는 단계와,
    상기 자원의 상태의 일관성을 지키기 위해 상기 자원에 대한 상기 로컬 식별자 버전과 상기 영속 식별자를 비교하는 단계
    를 포함하는 방법.
  2. 복수 노드의 분산 데이터 처리 시스템에서 원격 액세스가능한 자원을 관리하 는 방법에 있어서, 상기 방법은,
    노드 그룹에 합류하려는 노드의 요청을 처리하는 단계 - 상기 단계는 상기 그룹의 페일오버 커버리지 정보(failover coverage information)를 상기 합류 노드에 제공하는 단계를 포함함-와,
    상기 합류 노드에, 상기 페일오버 커버리지 정보에 의해 표시되는 원격 자원들이 상기 그룹에 의해 모니터링될때 이들에 대한 상태 정보를 상기 합류 노드에 제공하는 단계
    를 포함하는 방법.
  3. 제2항에 있어서, 상기 상태 정보는 단조적으로(monotonically) 변동하는 상태 순서 표시자를 포함하는 방법.
  4. 제3항에 있어서, 상기 표시자는 단조적으로 증가하는 숫자인 방법.
  5. 제3항에 있어서, 상기 표시자는 시간 스탬프인 방법.
  6. 복수 노드의 분산 데이터 처리 시스템에서 원격 액세스가능한 자원을 관리하는 방법에 있어서,
    상기 방법은,
    노드에 장애가 발생하였는지 여부 및 상기 장애가 발생한 노드가 원격 자원을 관리하고 있었는지 여부를 판단하는 단계와,
    페일오버 그룹의 노드에서, 상기 그룹의 어떠한 노드가 상기 원격 자원의 관리를 인계받을지를 선택하는 단계와,
    원격 노드상에 존재하는 자원에 대한 현재 상태를 판단하기 위해 상기 원격 노드의 프록시 자원 에이전트와 통신하기 위해 기설정된 커버리지 정보를 이용하여 상기 자원의 상태 정보를 판단하는 단계와,
    상기 판단된 현재 상태를 이용하여 상기 자원의 현재 관리자로서 상기 선택된 노드상에 프록시 자원 관리자를 개설하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 선택 단계에서의 노드 선택은 상기 페일오버 그룹의 노드들에 현재 할당된 커버리지 부하(load)에 근거하여 이루어지는 방법.
  8. 자원 관리자 제어를 장애가 발생하였다가 회복된 노드로 다시 전환시키기 위한 방법에 있어서, 상기 방법은,
    상기 장애 노드 및 페일오버 노드 그룹의 또다른 노드에게 상기 이미 장애가 발생했던 노드가 이제 제 기능을 수행함을 나타내는 정보를 제공하는 단계와,
    상기 원격 자원 커버리지가 상기 또다른 노드에 의해 현재 처리되고 있음을 상기 장애 노드에서 판단하는 단계와,
    이미 장애가 발생하였으나 이제 회복된 상기 노드의 요청에 의해 상기 또다른 노드로부터 상기 장애 노드에 현재 커버리지 정보를 전송하는 단계와,
    상기 또다른 노드로부터 이미 장애가 발생하였지만 이제 회복된 상기 노드로 상기 원격 자원의 실제 관리를 변경시키는 단계
    를 포함하는 방법.
  9. 제8항에 있어서, 상기 원격 자원 커버리지가 상기 또다른 노드에 의해 현재 처리되고 있음을 상기 장애 노드에서 판단하는 단계는 그룹 멤버쉽 리스트를 판독함으로써 수행되는 방법.
  10. 복수 노드의 분산 데이터 처리 시스템에서 데이터 프로세서로 하여금 원격 액세스가능한 자원을 관리하게 하는 컴퓨터 실행 명령어들을 구비한 컴퓨터 판독가능매체에 있어서, 상기 명령어들은
    상기 분산 데이터 처리 시스템의 복수의 노드들 상에서 프록시 자원 관리자(proxy resource manager)를 실행시키고 상기 원격 액세스가능 자원에 연관된 순차적 자원 생성 식별자를 상기 복수의 노드들 각각에 연결된 영속 저장 장치에 저장하는 단계와,
    적어도 하나의 다른 노드상에서 프록시 자원 에이전트(proxy resource agent)를 실행시키고 상기 자원에 연관된 상기 순차적 자원 생성 식별자의 로컬 버전과 함께 상기 자원에 대한 상태를 유지하는 단계와,
    상기 복수의 노드들중 대응 노드의 재시작에 따라 상기 영속적으로 저장되는 식별자를 증가시키는 단계와,
    상기 자원 상태의 변화에 따라, 상기 프록시 자원 에이전트를 통해, 상기 로컬 식별자 버전을 증가시키는 단계와,
    상기 자원의 상태의 일관성을 지키기 위해 상기 자원에 대한 상기 로컬 식별자 버전과 상기 영속 식별자를 비교하는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  11. 복수 노드의 분산 데이터 처리 시스템에서 데이터 프로세서로 하여금 원격 액세스가능한 자원을 관리하도록 하게 하는 컴퓨터 실행 명령어들을 구비한 컴퓨터 판독가능 매체에 있어서, 상기 명령어들은,
    노드 그룹에 합류하려는 노드의 요청을 처리하는 단계 - 상기 단계는 상기 그룹의 페일오버 커버리지 정보를 상기 합류 노드에 제공하는 단계를 포함함-와,
    상기 합류 노드에, 상기 페일오버 커버리지 정보에 의해 표시되는 원격 자원들이 상기 그룹에 의해 모니터링될때 이들에 대한 상태 정보를 상기 합류 노드에 제공하는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  12. 복수 노드의 분산 데이터 처리 시스템에서 데이터 프로세서로 하여금 원격 액세스가능한 자원을 관리하도록 하게 하는 컴퓨터 실행 명령어들을 구비한 컴퓨터 판독가능 매체에 있어서,
    상기 명령어들은,
    노드에 장애가 발생하였는지 여부 및 상기 장애가 발생한 노드가 원격 자원을 관리하고 있었는지 여부를 판단하는 단계와,
    페일오버 그룹의 노드에서, 상기 그룹의 어떠한 노드가 상기 원격 자원의 관리를 인계받을지를 선택하는 단계와,
    원격 노드상에 존재하는 자원에 대한 현재 상태를 판단하기 위해 상기 원격 노드의 프록시 자원 에이전트와 통신하기 위해 기설정된 커버리지 정보를 이용하여 상기 자원의 상태 정보를 판단하는 단계와,
    상기 판단된 현재 상태를 이용하여 상기 자원의 현재 관리자로서 상기 선택된 노드상에 프록시 자원 관리자를 개설하는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  13. 복수 노드의 분산 데이터 처리 시스템에서 자원 관리자 제어를 장애가 발생하였다가 회복된 노드로 다시 전환시키기 위한 컴퓨터 실행 명령어들을 구비한 컴퓨터 판독가능 매체에 있어서, 상기 명령어들은,
    상기 장애 노드 및 페일오버 노드 그룹의 또다른 노드에게 상기 이 미 장애가 발생했던 노드가 이제 제 기능을 수행함을 나타내는 정보를 제공하는 단계와,
    상기 원격 자원 커버리지가 상기 또다른 노드에 의해 현재 처리되고 있음을 상기 장애 노드에서 판단하는 단계와,
    이미 장애가 발생하였으나 이제 회복된 상기 노드의 요청에 의해 상기 또다른 노드로부터 상기 장애 노드에 현재 커버리지 정보를 전송하는 단계와,
    상기 또다른 노드로부터 이미 장애가 발생하였지만 이제 회복된 상기 노드로 상기 원격 자원의 실제 관리를 변경시키는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  14. 복수 노드를 구비하는 분산 데이터 처리 시스템에 있어서, 상기 분산 데이터 처리 시스템 내의 노드는 상기 분산 데이터 처리 시스템의 노드내의 메모리 위치에 상기 노드로 하여금,
    상기 분산 데이터 처리 시스템의 복수의 노드들 상에서 프록시 자원 관리자(proxy resource manager)를 실행시키고 상기 원격 액세스가능 자원에 연관된 순차적 자원 생성 식별자를 상기 복수의 노드들 각각에 연결된 영속 저장 장치에 저장하고,
    적어도 하나의 다른 노드상에서 프록시 자원 에이전트(proxy resource agent)를 실행시키고 상기 자원에 연관된 상기 순차적 자원 생성 식별자의 로컬 버전과 함께 상기 자원에 대한 상태를 유지하고,
    상기 복수의 노드들중 대응 노드의 재시작에 따라 상기 영속적으로 저장되는 식별자를 증가시키고,
    상기 자원 상태의 변화에 따라, 상기 프록시 자원 에이전트를 통해, 상기 로컬 식별자 버전을 증가시키고,
    상기 자원의 상태의 일관성을 지키기 위해 상기 자원에 대한 상기 로컬 식별자 버전과 상기 영속 식별자를 비교하도록 작동하게 하는 실행 명령어들을 포함하는 분산 데이터 처리 시스템.
  15. 복수 노드를 구비하는 분산 데이터 처리 시스템에 있어서, 상기 분산 데이터 처리 시스템내의 노드는 상기 분산 데이터 처리 시스템의 노드내의 메모리 위치에 상기 노드로 하여금,
    노드 그룹에 합류하려는 노드의 요청을 처리하고 - 이는 상기 그룹의 페일오버 커버리지 정보를 상기 합류 노드에 제공하는 것을 포함함-,
    상기 합류 노드에, 상기 페일오버 커버리지 정보에 의해 표시되는 원격 자원들이 상기 그룹에 의해 모니터링될때 이들에 대한 상태 정보를 상기 합류 노드에 제공하도록 작동하게 하는 실행 명령어들을 포함하는 분산 데이터 처리 시스템.
  16. 복수 노드를 구비하는 분산 데이터 처리 시스템에 있어서, 상기 분산 데이터 처리 시스템내의 상기 노드는 상기 분산 데이터 처리 시스템의 노드내의 메모리 위치에 상기 노드로 하여금,
    장애가 발생하였는지와 상기 장애 발생한 노드가 원격 자원을 관리하고 있었는지를 판단하고,
    페일오버 그룹의 노드에서, 상기 그룹의 어떠한 노드가 상기 원격 자원의 관리를 인계받을지를 선택하고,
    원격 노드상에 존재하는 자원에 대한 현재 상태를 판단하기 위해 상기 원격 노드의 프록시 자원 에이전트와 통신하기 위해 기설정된 커버리지 정보를 이용하여 상기 자원의 상태 정보를 판단하고,
    상기 판단된 현재 상태를 이용하여 상기 자원의 현재 관리자로서 상기 선택된 노드상에 프록시 자원 관리자를 개설하도록 작동하게 하는 실행 명령어들을 포함하는 분산 데이터 처리 시스템.
  17. 복수 노드를 구비하는 분산 데이터 처리 시스템에 있어서, 상기 분산 데이터 처리 시스템내의 상기 노드는 상기 분산 데이터 처리 시스템의 노드내의 메모리 위치에 상기 노드로 하여금,
    상기 장애 노드 및 페일오버 노드 그룹의 또다른 노드에게 상기 이미 장애가 발생했던 노드가 이제 제 기능을 수행함을 나타내는 정보를 제공하고,
    상기 원격 자원 커버리지가 상기 또다른 노드에 의해 현재 처리되고 있음을 상기 장애 노드에서 판단하고,
    이미 장애가 발생하였으나 이제 회복된 상기 노드의 요청에 의해 상기 또다른 노드로부터 상기 장애 노드에 현재 커버리지 정보를 전송하고,
    상기 또다른 노드로부터 이미 장애가 발생하였지만 이제 회복된 상기 노드로 상기 원격 자원의 실제 관리를 변경시키도록 작동하게 하는 실행 명령어들을 포함하는 분산 데이터 처리 시스템.
KR1020030100421A 2003-02-12 2003-12-30 광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법 KR100658913B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/365,193 US7137040B2 (en) 2003-02-12 2003-02-12 Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
US10/365,193 2003-02-12

Publications (2)

Publication Number Publication Date
KR20040073273A KR20040073273A (ko) 2004-08-19
KR100658913B1 true KR100658913B1 (ko) 2006-12-15

Family

ID=32824583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030100421A KR100658913B1 (ko) 2003-02-12 2003-12-30 광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법

Country Status (3)

Country Link
US (4) US7137040B2 (ko)
JP (2) JP2004246892A (ko)
KR (1) KR100658913B1 (ko)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6951020B2 (en) * 2001-08-28 2005-09-27 Kayak Interactive Corporation Method for handling transitions in grouped services in a distributed computing application
US8015303B2 (en) 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
US20040039816A1 (en) * 2002-08-23 2004-02-26 International Business Machines Corporation Monitoring method of the remotely accessible resources to provide the persistent and consistent resource states
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7137040B2 (en) * 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US8307112B2 (en) * 2003-07-31 2012-11-06 Cloudsoft Corporation Limited Mediated information flow
US7302607B2 (en) * 2003-08-29 2007-11-27 International Business Machines Corporation Two node virtual shared disk cluster recovery
US7539760B1 (en) * 2003-09-12 2009-05-26 Astute Networks, Inc. System and method for facilitating failover of stateful connections
US7558192B1 (en) * 2004-05-03 2009-07-07 Cisco Technology, Inc. Method to increase system availability of critical hardware components
US7409576B2 (en) * 2004-09-08 2008-08-05 Hewlett-Packard Development Company, L.P. High-availability cluster with proactive maintenance
US7451347B2 (en) * 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
DE602005009353D1 (de) * 2005-07-22 2008-10-09 Alcatel Lucent Rückgewinnung von Netzelementenkonfiguration
US9286109B1 (en) 2005-08-26 2016-03-15 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
US7966514B2 (en) * 2005-09-19 2011-06-21 Millennium It (Usa), Inc. Scalable fault tolerant system
US7509535B1 (en) * 2005-09-29 2009-03-24 Emc Corporation System and method for managing failover in a data storage environment
JP2009540717A (ja) 2006-06-12 2009-11-19 クラウドソフト コーポレーション リミテッド 自己管理型分散メディエーションネットワーク
US7913105B1 (en) * 2006-09-29 2011-03-22 Symantec Operating Corporation High availability cluster with notification of resource state changes
US8161149B2 (en) 2007-03-07 2012-04-17 International Business Machines Corporation Pseudo-agent
US8495157B2 (en) * 2007-03-07 2013-07-23 International Business Machines Corporation Method and apparatus for distributed policy-based management and computed relevance messaging with remote attributes
US8219654B2 (en) * 2007-05-17 2012-07-10 Microsoft Corporation Highly available central controller to store and enforce valid state transitions of distributed components
US7870557B2 (en) 2007-06-11 2011-01-11 International Business Machines Corporation Apparatus, system, and method for autonomously maintaining a single system image in a parallel systems complex
US7756888B2 (en) * 2007-07-03 2010-07-13 Oracle America, Inc. Method and apparatus for providing heterogeneous resources for client systems
US7945773B2 (en) * 2007-09-18 2011-05-17 International Business Machines Corporation Failover of blade servers in a data center
JP2009122873A (ja) * 2007-11-13 2009-06-04 Hitachi Ltd ストレージシステム間でのリモートコピーを管理する装置
CN101904192B (zh) * 2007-12-17 2014-12-17 艾利森电话股份有限公司 移动核心网络节点冗余
US8428983B2 (en) 2007-12-28 2013-04-23 International Business Machines Corporation Facilitating availability of information technology resources based on pattern system environments
US8682705B2 (en) 2007-12-28 2014-03-25 International Business Machines Corporation Information technology management based on computer dynamically adjusted discrete phases of event correlation
US8326910B2 (en) 2007-12-28 2012-12-04 International Business Machines Corporation Programmatic validation in an information technology environment
US8782662B2 (en) 2007-12-28 2014-07-15 International Business Machines Corporation Adaptive computer sequencing of actions
US8990810B2 (en) * 2007-12-28 2015-03-24 International Business Machines Corporation Projecting an effect, using a pairing construct, of execution of a proposed action on a computing environment
US8763006B2 (en) 2007-12-28 2014-06-24 International Business Machines Corporation Dynamic generation of processes in computing environments
US8868441B2 (en) 2007-12-28 2014-10-21 International Business Machines Corporation Non-disruptively changing a computing environment
US9558459B2 (en) 2007-12-28 2017-01-31 International Business Machines Corporation Dynamic selection of actions in an information technology environment
US20090172149A1 (en) 2007-12-28 2009-07-02 International Business Machines Corporation Real-time information technology environments
US8826077B2 (en) 2007-12-28 2014-09-02 International Business Machines Corporation Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations
US8341014B2 (en) 2007-12-28 2012-12-25 International Business Machines Corporation Recovery segments for computer business applications
US7958393B2 (en) * 2007-12-28 2011-06-07 International Business Machines Corporation Conditional actions based on runtime conditions of a computer system environment
US8751283B2 (en) 2007-12-28 2014-06-10 International Business Machines Corporation Defining and using templates in configuring information technology environments
US8447859B2 (en) * 2007-12-28 2013-05-21 International Business Machines Corporation Adaptive business resiliency computer system for information technology environments
US8365185B2 (en) * 2007-12-28 2013-01-29 International Business Machines Corporation Preventing execution of processes responsive to changes in the environment
US8375244B2 (en) * 2007-12-28 2013-02-12 International Business Machines Corporation Managing processing of a computing environment during failures of the environment
US8677174B2 (en) 2007-12-28 2014-03-18 International Business Machines Corporation Management of runtime events in a computer environment using a containment region
US8346931B2 (en) 2007-12-28 2013-01-01 International Business Machines Corporation Conditional computer runtime control of an information technology environment based on pairing constructs
US7506025B1 (en) * 2008-03-27 2009-03-17 International Business Machines Corporation Using a proxy to redirect downloads
DE102008022221A1 (de) * 2008-05-06 2009-11-12 Universität des Saarlandes Inhibitoren der humanen Aldosteronsynthase CYP11B2
JP5217988B2 (ja) * 2008-12-08 2013-06-19 富士通株式会社 情報処理装置、プログラムおよび情報処理装置の制御方法
US9454444B1 (en) 2009-03-19 2016-09-27 Veritas Technologies Llc Using location tracking of cluster nodes to avoid single points of failure
EP2436168A2 (fr) * 2009-05-29 2012-04-04 France Telecom Technique de distribution d'un contenu vers un utilisateur
US8966110B2 (en) 2009-09-14 2015-02-24 International Business Machines Corporation Dynamic bandwidth throttling
US8458515B1 (en) 2009-11-16 2013-06-04 Symantec Corporation Raid5 recovery in a high availability object based file system
US8132043B2 (en) * 2009-12-17 2012-03-06 Symantec Corporation Multistage system recovery framework
US8823536B2 (en) 2010-04-21 2014-09-02 Microsoft Corporation Automated recovery and escalation in complex distributed applications
JPWO2012004872A1 (ja) * 2010-07-07 2013-09-02 富士通株式会社 管理装置、管理プログラムおよび管理方法
US8738961B2 (en) * 2010-08-17 2014-05-27 International Business Machines Corporation High-availability computer cluster with failover support based on a resource map
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
US9600315B2 (en) * 2010-10-22 2017-03-21 Netapp, Inc. Seamless takeover of a stateful protocol session in a virtual machine environment
US8495323B1 (en) 2010-12-07 2013-07-23 Symantec Corporation Method and system of providing exclusive and secure access to virtual storage objects in a virtual machine cluster
CN103731461B (zh) * 2012-10-16 2018-09-04 百度在线网络技术(北京)有限公司 一种基于代理的分布式系统状态控制方法和系统
US10423643B2 (en) * 2013-08-29 2019-09-24 Oracle International Corporation System and method for supporting resettable acknowledgements for synchronizing data in a distributed data grid
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
US9348713B2 (en) * 2013-12-13 2016-05-24 Netapp, Inc. Techniques for importation of information to a storage system
CN104980296B (zh) * 2014-04-11 2018-06-19 华为技术有限公司 OpenFlow多控制器系统及其管理方法
US10324953B1 (en) * 2014-06-26 2019-06-18 EMC IP Holding Company LLC Managing remote data center from another data center
CN107301092B (zh) * 2016-04-15 2020-11-10 中移(苏州)软件技术有限公司 一种云计算资源池系统节能方法、装置及系统
CN107402820A (zh) * 2017-08-10 2017-11-28 郑州云海信息技术有限公司 云计算系统中资源的管理方法和装置
CN111367659B (zh) * 2020-02-24 2022-07-12 苏州浪潮智能科技有限公司 一种Kubernetes中节点的资源管理方法、设备以及介质
CN112055068B (zh) * 2020-08-28 2022-09-16 合肥工业大学 多代理系统主控节点的分配方法、装置、终端及存储介质
CN112202617B (zh) * 2020-10-09 2024-02-23 腾讯云计算(北京)有限责任公司 资源管理系统监控方法、装置、计算机设备和存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2785998B2 (ja) * 1990-05-18 1998-08-13 富士通株式会社 計算機システム
JPH06197112A (ja) * 1992-12-25 1994-07-15 Fuji Xerox Co Ltd 管理システム
US6094680A (en) * 1996-06-27 2000-07-25 Microsoft Corporation System and method for managing distributed resources on networks
US5960066A (en) * 1996-11-07 1999-09-28 Lucent Technologies, Inc. Method and apparatus for using telephone house wiring for voice/data network
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6138251A (en) * 1997-06-30 2000-10-24 Sun Microsystems, Inc. Method and system for reliable remote object reference management
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
WO2001035278A1 (en) 1999-11-10 2001-05-17 Fakhouri Sameh A A decision based system for managing distributed resources and modeling the global optimization problem
US20020198996A1 (en) * 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US6738345B1 (en) * 2000-06-21 2004-05-18 Motorola, Inc. Method for failover management in a synchronous optical network using standard protocols
US6990606B2 (en) * 2000-07-28 2006-01-24 International Business Machines Corporation Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters
US6971044B2 (en) * 2001-04-20 2005-11-29 Egenera, Inc. Service clusters and method in a processing system with failover capability
US7120693B2 (en) * 2001-05-08 2006-10-10 International Business Machines Corporation Method using two different programs to determine state of a network node to eliminate message response delays in system processing
JP3542980B2 (ja) * 2001-06-19 2004-07-14 日本電気株式会社 ネットワークシステム、ネットワークエンティティ監視方法、記録媒体
US6944786B2 (en) * 2001-07-27 2005-09-13 International Business Machines Corporation Network node failover using multicast address or port
US7043550B2 (en) * 2002-02-15 2006-05-09 International Business Machines Corporation Method for controlling group membership in a distributed multinode data processing system to assure mutually symmetric liveness status indications
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
US20040122944A1 (en) * 2002-06-28 2004-06-24 Didier Poirot Method and system of locating computers in distributed computer system
US20040039816A1 (en) * 2002-08-23 2004-02-26 International Business Machines Corporation Monitoring method of the remotely accessible resources to provide the persistent and consistent resource states
US20040123183A1 (en) * 2002-12-23 2004-06-24 Ashutosh Tripathi Method and apparatus for recovering from a failure in a distributed event notification system
US7137040B2 (en) * 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters

Also Published As

Publication number Publication date
US20080313333A1 (en) 2008-12-18
US7296191B2 (en) 2007-11-13
US7137040B2 (en) 2006-11-14
US20060242454A1 (en) 2006-10-26
JP4721195B2 (ja) 2011-07-13
US20040158777A1 (en) 2004-08-12
KR20040073273A (ko) 2004-08-19
US20070277058A1 (en) 2007-11-29
US7401265B2 (en) 2008-07-15
JP2004246892A (ja) 2004-09-02
JP2008210412A (ja) 2008-09-11
US7814373B2 (en) 2010-10-12

Similar Documents

Publication Publication Date Title
KR100658913B1 (ko) 광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법
Botelho et al. On the design of practical fault-tolerant SDN controllers
US7185076B1 (en) Method, system and program products for managing a clustered computing environment
US7496668B2 (en) OPC server redirection manager
US6925490B1 (en) Method, system and program products for controlling system traffic of a clustered computing environment
CA2467813C (en) Real composite objects for providing high availability of resources on networked systems
US6801937B1 (en) Method, system and program products for defining nodes to a cluster
US6973473B1 (en) Method, system and program products for managing identifiers of components of a clustered environment
US20080052327A1 (en) Secondary Backup Replication Technique for Clusters
JP2005209201A (ja) 高可用性クラスタにおけるノード管理
JP2004519024A (ja) 多数のノードを含むクラスタを管理するためのシステム及び方法
KR20070026327A (ko) 액티브 라우팅 컴포넌트 장애 처리 방법 및 장치
US6807557B1 (en) Method, system and program products for providing clusters of a computing environment
CN113872997B (zh) 基于容器集群服务的容器组pod重建方法及相关设备
CN104158707A (zh) 一种检测并处理集群脑裂的方法和装置
CN113505002A (zh) 计算集群中的分布式组件
Mitrović et al. Improving fault-tolerance of distributed multi-agent systems with mobile network-management agents
JP2012014674A (ja) 仮想環境における故障復旧方法及びサーバ及びプログラム
Vieira et al. Treplica: ubiquitous replication
CN116723077A (zh) 一种分布式it自动化运维系统
US20230224243A1 (en) Highly-Available Cluster Leader Election in a Distributed Routing System
Kim et al. Evaluation of PAMS'adaptive management services
Vieira et al. INSTITUTO DE COMPUTACŞAO
Bartoli et al. BS Middleware Platform
Jemaa A fault tolerant platform of web services based on service composition

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131125

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141124

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151124

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161128

Year of fee payment: 11