KR100792280B1 - 클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의리부팅 방법 - Google Patents

클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의리부팅 방법 Download PDF

Info

Publication number
KR100792280B1
KR100792280B1 KR1020057024106A KR20057024106A KR100792280B1 KR 100792280 B1 KR100792280 B1 KR 100792280B1 KR 1020057024106 A KR1020057024106 A KR 1020057024106A KR 20057024106 A KR20057024106 A KR 20057024106A KR 100792280 B1 KR100792280 B1 KR 100792280B1
Authority
KR
South Korea
Prior art keywords
cluster
rebooting
reboot
members
rebooted
Prior art date
Application number
KR1020057024106A
Other languages
English (en)
Other versions
KR20060026877A (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 KR20060026877A publication Critical patent/KR20060026877A/ko
Application granted granted Critical
Publication of KR100792280B1 publication Critical patent/KR100792280B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Abstract

본 발명은 클러스터 동작을 유지하는 동안에 클러스터의 리부팅에 관한 것이다. 클러스터 동작은 리부팅 동작 동안에 자동으로 유지되는데, 이는 적어도 하나의 클러스터 멤버가 상기 과정 동안에 활성으로 남기 때문이다. 관리자는 리부팅 과정을 트리거링하며, 이후에 리부팅 과정 동안에 임의의 다른 단계들을 수행할 필요가 없다. 적어도 하나의 클러스터 멤버의 동작을 항상 유지하는 동안에, 다른 시간들에서 클러스터 멤버들을 리부팅하는 알고리즘이 실행된다.
클러스터, 노드, 라우터, 사용자 인터페이스.

Description

클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의 리부팅 방법{METHOD OF REBOOTING A MULTI-DEVICE CLUSTER WHILE MAINTAINING CLUSTER OPERATION}
(공란)
고도의 신뢰성을 제공하는 장비는 인터넷 및 인트라넷 서비스를 제공하는 조직들의 주요한 고려사항이다. 이러한 요구를 만족시키기 위해, 여러 디바이스들을 단일 디바이스로서 동작하도록 배열된 클러스터로 결합하는 기술이 이용가능하게 되었다. 클러스터 구성을 사용하면, 하나의 디바이스의 고장이 클러스터 내의 잔여 구성요소들에 크게 영향을 미치지 않게 된다.
디바이스상에서 소프트웨어를 시작하기 위한 용어는 '부팅'('부트스트래핑(bootstrapping)'의 약어)으로서; 활성화된 디바이스상에서 부팅이 수행될 때에, 이 용어는 '리부팅(rebooting)'으로 언급된다. 리부팅은 통상적으로 다양한 이유로 수행되는데, 이는 새로운 버전의 소프트웨어를 활성화하는 것, 및 디바이스의 동작을 방지하는 소프트웨어에서 치명적인 에러 이후에 디바이스의 기능성을 복원하는 것을 포함한다.
클러스터 환경에서, 디바이스들의 리부팅은 특수한 고려를 요구하는데, 이는 클러스터 기능성의 유지가 가장 중요하기 때문이다. 하지만, 클러스터의 리부팅은 그 동작을 방해할 수 있다. 클러스터 동작이 유지되면서 클러스터 멤버들을 리부팅하는 방법이 필요하다.
본 발명은 클러스터 동작을 유지하는 동안 클러스터의 리부팅에 관한 것이다.
본 발명의 일 양상에 따르면, 클러스터 동작은 리부팅 동안에 자동으로 유지된다. 클러스터 리부팅 과정 동안에, 적어도 하나의 클러스터 멤버는 다른 멤버들의 리부팅 동안에 활성으로 남는다.
본 발명의 다른 양상에 따르면, 관리자와 같은 사용자는 클러스터 리부팅 과정을 트리거링한다. 관리자는 클러스터의 각 멤버를 수동으로 리부팅할 필요가 없다. 대신에, 클러스터 리부팅 과정이 멤버들의 리부팅을 처리한다.
본 발명의 다른 양상에 따르면, 다른 시간들에서 클러스터 멤버들을 리부팅하는 알고리즘이 실행된다. 동시에 모든 클러스터 멤버들을 리부팅하게 되면, 적어도 하나의 멤버가 동작으로 복원할 때까지 클러스터가 동작할 수 없을 것이다.
도 1은 예시적 클러스터 리부팅 환경을 도시한다.
도 2는 사용될 수 있는 예시적 컴퓨팅 디바이스를 도시한다.
도 3은 클러스터의 예시적 아키텍처를 도시한다.
도 4는 RMB의 구성요소들을 도시한다.
도 5는 본 발명의 양상들에 따라 클러스터를 리부팅하기 위한 과정을 도시한다.
본 발명의 예시적인 실시예들에 대한 후속의 상세한 설명은 첨부된 도면들을 참조로 설명될 것인바, 상기 도면들은 본원의 일부를 형성하며, 본 발명이 구현될 수도 있는 특정한 일례적인 실시예들을 예시적인 목적으로 도시한 도면이다. 각각의 실시예는 해당 기술분야의 당업자들이 본 발명을 실시할 수 있도록 충분히 상세히 설명되어 있다. 그리고, 본 발명의 사상 또는 범주를 벗어남이 없이 다른 실시예들이 이용될 수도 있으며, 다른 변경들이 가해질 수도 있음을 유의해야 한다. 따라서, 하기의 상세한 설명은 제한적인 의미로 간주되지 않으며, 본 발명의 범주는 단지 첨부된 청구항들에 의해 정의된다.
명세서와 청구항들에 걸쳐서, 하기 용어들은 문맥상 명백히 이와 달리 진술되지 않는다면 본원에서 명시적으로 관련된 의미를 갖는다.
용어 "IP"는 임의의 타입의 인터넷 프로토콜을 의미한다. 용어 "노드"는 IP를 구현하는 디바이스를 의미한다. 용어 "라우터"는 자기자신에게 명시적으로 어드레싱 되지 않은 IP 패킷들을 포워딩(forwarding)하는 노드를 의미한다. 용어 "라우팅가능한 주소"는 패킷이 이 주소에 의해 식별되는 인터페이스에 송신되게 하는 인터페이스에 대한 식별자를 의미한다. 용어 "링크"는 노드들이 이를 통해 통신할 수 있는 통신 설비 또는 매체를 의미한다. 용어 "클러스터"는 단일 노드로서 동작하도록 된 노드들의 그룹을 의미한다.
하기 약어들이 명세서 및 청구항들에 걸쳐 사용된다: RMB=원격 관리 중개인(Remote Management Broker); CS=구성 서브시스템(Configuration Subsystem); CLI=명령 라인 인터페이스(Command Line Interface); CM=클러스터 관리(Cluster Management); GUI=그래픽 사용자 인터페이스; MAC=메시지 인증 코드(Message Authentication Code); 및 NM=네트워크 관리(Network Management)이다.
도면들을 참조하면, 동일한 부호들은 도면들에 걸쳐 동일한 부분들을 표시한다. 부가적으로, 단수 참조부호는 이와 달리 진술되지 않았거나 본원에서의 개시와 모순되지 않는 한 복수 참조부호를 포함한다.
도 1은 본 발명의 양상들에 따라 예시적 클러스터 리부팅 환경을 도시한 도면이다. 도면에 도시된 바와같이, 리부팅 환경(100)은 관리 컴퓨터들(105 및 108), 클러스터(130), 외부 네트워크(110), 관리 네트워크(120), 라우터들(125), 및 내부 네트워크(145)를 포함한다. 클러스터(130)는 단일 노드로서 동작하도록 배열된 노드들(135)을 포함한다. 네트워크들은 유선 또는 무선 디바이스들에 연결된 유선 또는 무선 네트워크들이 될 수 있다.
본 발명은 클러스터 동작을 유지하는 동안에 클러스터의 리부팅에 관한 것이다. 적어도 하나의 클러스터 멤버는 리부팅 과정 동안에 활성으로 남는다. 관리자는 리부팅 과정을 트리거링하며, 이후에 리부팅 과정 동안에 임의의 다른 단계들을 수행할 필요가 없다. 적어도 하나의 클러스터 멤버의 동작을 항상 유지하면서 다른 시간들에서 클러스터의 멤버들을 리부팅하는 알고리즘이 실행된다.
도시된 바와같이, 내부 네트워크(145)는 네트워크에서 지원 노드들을 연결하는 라우터들(125)과 같은 라우터들을 포함하는 IP 패킷 기반 백본 네트워크이다. 라우터들은 메시지 전달을 촉진하는 통신 네트워크상의 중개 디바이스들이다. 가능한 연결들의 메시(mesh)를 통해 많은 컴퓨터들을 링크하는 단일 네트워크상에서, 라우터는 전송 메시지를 수신하고, 이를 이용가능한 라우트를 통해 정확한 목적지로 포워딩한다. 다른 아키텍처들 및 프로토콜들에 기반한 것들을 포함하는 상호접속된 LAN 세트들상에서, 라우터는 LAN들간의 링크로서 동작하여, 메시지가 서로들 간에서 송신되도록 한다. LAN들 내의 통신 링크들은 전형적으로 연선(twisted wire pair), 광케이블, 또는 동축 케이블을 포함하며, 네트워크들간의 통신 링크들은 아날로그 전화선들, T1, T2, T3 또는 T4를 포함하는 전체 또는 부분 전용 디지털 라인들, 통합 서비스 디지털 네트워크들(ISDNs), 디지털 가입자 라인들(DSLs), 무선 링크들, 또는 다른 통신 링크들을 이용할 수 있다.
관리 컴퓨터(105)는 통신 매체들을 통해 관리 네트워크(120)에 연결된다. 관리 컴퓨터(108)는 통신 매체들을 통해 내부 네트워크(145)에 연결된다. 관리 컴퓨터들(105 및 108)은 클러스터(130)와 같은 클러스터를 관리하는 것뿐만 아니라 클러스터 리부팅을 트리거링하는데 사용될 수 있다.
더욱이, 컴퓨터들, 및 다른 관련 전자 디바이스들은 네트워크(110), 네트워크(120), 및 네트워크(145)에 연결될 수 있다. 공중 인터넷은 자체로 다수의 이러한 상호접속된 네트워크들, 컴퓨터들, 및 라우터들로부터 형성될 수 있다. IP 네트워크(100)는 도 1에 도시된 것보다 많은 구성요소들을 포함할 수 있다. 하지만, 도시된 구성요소들은 본 발명을 실시하기 위한 예시적 실시예를 개시하는데 충분하다.
상술된 바와같이, 통신 링크에서 정보를 전송하는데 사용되는 매체는 한가지 타입의 컴퓨터-판독가능 매체, 즉 통신 매체를 예시한다. 일반적으로, 컴퓨터-판독 가능 매체는 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 매체를 포함한다. 통신 매체는 전형적으로 컴퓨터-판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파와 같은 변조된 데이터 신호에서의 다른 데이터 또는 다른 전송 메커니즘을 구현하며, 임의의 정보 전달 매체를 포함한다. 용어"변조된 데이터 신호"는 하나 이상의 그 특성 세트를 갖거나 혹은 신호에 있는 정보를 엔코딩하는 방식으로 변경된 신호를 의미한다. 예에 의하여, 통신 매체는 연선, 동축 케이블, 광케이블, 도파관, 및 다른 유선 매체 및 어코스틱(acoustic), RF, 적외선과 같은 무선 매체, 및 다른 무선 매체를 포함한다.
도 2는 본 발명의 양상들에 따라 사용될 수 있는 예시적 컴퓨팅 디바이스를 도시한다. 예시적인 목적으로, 노드(200)는 단지 컴퓨팅 디바이스에서 일반적으로 발견되는 구성요소들의 서브세트로 도시된다. 본 발명에서 작동할 수 있는 컴퓨팅 디바이스는 도 2에서 도시된 것들보다 많거나, 적거나, 다른 구성요소들을 구비할 수 있다. 가장 기본적인 구성에서, 노드(200)는 전형적으로 중앙 처리 유닛(202), 시스템 메모리(204), 및 네트워크 구성요소(216)를 포함한다.
컴퓨팅 디바이스의 타입 및 정확한 구성에 따라, 시스템 메모리(204)는 휘발성 메모리, 비휘발성 메모리, 데이터 저장 디바이스들 등을 포함할 수 있다. 이 예들의 시스템 메모리(204)는 모두 컴퓨터 저장 매체로 여겨진다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 다른 광 저장소, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 바람직한 정보를 저장하는데 사용될 수 있으며, 노드 (200)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 국한되는 것은 아니다. 임의의 다른 컴퓨터 저장 매체가 노드(200)의 일부가 될 수 있다.
노드(200)는 입력을 수신하기 위한 입력 구성요소(212)를 포함할 수 있다. 입력 구성요소(212)는 키보드, 터치 스크린, 마우스, 또는 다른 입력 디바이스들을 포함할 수 있다. 출력 구성요소(214)는 디스플레이, 스피커들, 프린터 등을 포함할 수 있다.
노드(200)는 또한 IP 네트워크의 다른 디바이스들과 통신하기 위한 네트워크 구성요소(216)를 포함할 수 있다. 특히, 네트워크 구성요소(216)는 노드(200)가 이동 노드들 및 대응 노드들과 통신할 수 있게 한다. 노드(200)는 대응 노드들 및 이동 노드들로 패킷들을 송신하거나 이들로부터 수신하기 위해 네트워크 구성요소(216)를 사용하도록 된다. 통신은 유선 또는 무선이 될 수 있다.
네트워크 구성요소(216)에 의해 송신 및 수신된 신호들은 통신 매체의 일 예이다. 본원에서 사용되는 용어 '컴퓨터 판독가능 매체'는 저장 매체 및 통신 매체 모두를 포함한다.
노드(200)의 소프트웨어 구성요소들은 전형적으로 시스템 메모리(204)에 저장된다. 시스템 메모리(204)는 전형적으로 운영 시스템(205), 하나 이상의 응용들(206), 및 데이터(207)를 포함한다. 도면에서 도시된 바와같이, 시스템 메모리(204)는 또한 클러스터 리부팅 프로그램(208)을 포함한다. 프로그램(208)은 본원에서 설명된 바와같이 클러스터의 리부팅에 관련된 동작들을 수행하기 위한 구성요소이다. 프로그램(208)은 클러스터 리부팅에 관련된 과정들을 수행하기 위한 컴퓨터- 실행가능 명령들을 포함한다.
도 3은 본 발명의 양상들에 따라 클러스터의 예시적 아키텍처를 도시한다. 도면에서 도시된 바와같이, 클러스터(300)는 노드들(305, 310, 및 315); GUI(320), CLI(325), 구성 서브시스템들(335, 340, 및 345) 및 RMB(350)를 포함한다.
GUI 및 CLI는 클러스터 내의 노드(들)의 뷰(view)를 제시하도록 구성될 수 있다. RMB(350)는 클러스터 내의 노드들 사이에서 정보를 분배한다.
일 실시예에 따르면, GUI(320)는 워크스테이션(미도시)상에서 실행되며, 디바이스(305)의 구성 서브시스템(325)과 상호작용하도록 구성된다. GUI(320)는 디바이스(305)와 관련된 동작들을 수행하도록 그래픽 인터페이스를 제공한다. 이러한 동작들 중 하나는 클러스터의 리부팅을 수행하는 것이다. CLI(325)는, 디바이스(305)상에서 실행되는 응용에 의해 사용자로 하여금 디바이스(305)상에서 동작을 수행하게 할 수 있는, 명령 라인 인터페이스를 제공한다. 디바이스(305)와 관련된 GUI 및 CLI는 또한 클러스터 리부팅을 트리거링하는데 사용될 수 있다.
RMB(350)는 디바이스(305) 및 클러스터 내의 다른 디바이스들(디바이스(310) 및 디바이스(315))과 통신하도록 구성된다. RMB(350)는 디바이스(305) 내에 포함되거나 디바이스(305)와 별개일 수 있다. 일반적으로, RMB(350)는 클러스터의 멤버들 사이에서 정보를 교신하는데 사용된다.
일 실시예에 따르면, 시스템은 리부팅 과정 동안에 클러스터에 대한 배타적 권한을 획득한다. 이는 하나 이상의 사용자나 시스템이 리부팅 동안에 디바이스들에 영향을 미치는 것을 방지한다.
일 실시예에 따르면, GUI(320)는 브라우저에서 웹 페이지들 및 웹 서버의 세 트로서 구현된다. 서버는 클러스터 내의 디바이스 또는 클러스터와 별개인 디바이스상에서 동작할 수 있다. 서버는 모든 또는 일부의 클러스터 멤버들상에서 동작할 수 있다.
CLI(325)는 디바이스 및 클러스터에 관한 클러스터 정보를 텍스트로 사용자에게 제시하는 관리 CLI이다.
리부팅 과정이 개시된 때에, RMB(350)는 리부팅되는 디바이스들의 구성 서브시스템들과 상호작용한다. 일 실시예에서, 클러스터 멤버들 중 하나에서 리부팅 동안에 에러가 발생하는 경우에, 리부팅 과정은 중단된다. 일 실시예에 따르면, RMB(350)는 리부팅 프로그램이 개시하기 전에 구성들을 디바이스들에 복원하도록 구성될 수 있다. 이는 클러스터의 모든 멤버들이 동일 속성을 유지하는 것을 보장하게 한다. 문제가 발생할 때에, RMB(350)는 GUI 또는 CCLI에 고장이 있음을 표시하거나, 에러를 어떤 다른 위치로 보낼 수 있다. 리부팅이 완료되었을 때에, 관리자는 다른 동작들을 수행할 수 있다.
리부팅 동작은 그래픽 유저 인터페이스(GUI)를 사용하는 응용에서의 제어 또는 명령 라인 인터페이스(CLI) 셸에서의 명령에 의해 트리거링된다.
제어 또는 명령은 클러스터 리부팅 과정을 수행하는 스크립트가 실행되도록 한다. 스크립트는 각 클러스터 멤버와 연락하고, 각 멤버가 클러스터로부터 임시적으로 제거되게 하는 속성을 제공하며, 그리고 리부팅 동작을 개시하게 하는 속성을 제공함으로써 리부팅을 개시한다. 스크립트는 이후에 디바이스와 연락 두절을 검출하며, 연락의 재설정을 시도한다. 스크립트가 연락을 설정하였을 때에, 이는 내부 적으로 디바이스가 이제 리부팅된 것을 표시하며 관리자에게 어느 디바이스가 리부팅되었는지를 알려준다. 일 실시예에 따르면, 리부팅 과정이 개시되는 디바이스는 모든 다른 디바이스들이 리부팅될 때까지 리부팅되지 않는다.
리부팅이 개시되는 디바이스를 제외한 모든 디바이스들에 대한 리부팅은, 순차적으로(한번에 하나의 디바이스씩) 또는 병렬로 수행될 수 있다. 병렬 방법은 클러스터를 완전한 동작으로 복원하는데 필요한 총 시간을 감소시킨다.
만일 리부팅이 임의의 디바이스들 상에서 실패한다면(이는 상기 디바이스와의 연락 재설정이 실패하였음에 의해 표시되는 바와같다), 리부팅 과정은 중지되며, 이에 따라 디바이스들을 리부팅되지 않은 상태로 유지시킨다. 실패된 디바이스(또는 디바이스들)의 신원(identity)과 함께, 클러스터 리부팅이 조속하게 중단되었음이 관리자에게 알려진다.
도 4는 본 발명의 일 양상들에 따른 RMB 구성요소들을 도시한 도면이다. 도면에서 도시된 바와같이, RMB(400)는 RMB 클라이언트(420), 구성 서브시스템(410), RMB 서버(440) 및 보안 전송(435)을 포함한다. RMB 클라이언트(420)는 클러스터 API(응용 프로그래밍 인터페이스)(425) 및 원격 API(430)를 포함한다. 클러스터 API(425)는 클러스터 멤버에 관한 정보를 유지한다. 원격 API(430)는 각 클러스터 멤버에 관한 정보를 유지하며, NM 동작들을 추적한다. 보안 전송(435)은 클러스터 리부팅 동작과 같은 NM 동작들을 수행하기 위해 메시지들을 전달 및 수신하며, 메시지들 상에서 무결성 검사(integrity check)를 수행한다. RMB 서버(440)는 통신 서브시스템(410)과 통신하도록 배치되며, 보안 전송(435)을 통해 RMB 클라이언트(420)와 통신한다.
RMB(400)는 클러스터 내의 노드들에 대한 백본으로서 동작한다. RMB(400)는 기본 메커니즘들을 제공하는데, 이는 클러스터 내에서 멤버들을 발견하며, NM 속성들에 관한 질의들 및 동작들을 클러스터의 디바이스들에 전달하며, 메시지 무결성을 보장하며, 관리 응용들에 대한 인터페이스와, 그리고 각 디바이스의 로컬 구성 서브시스템으로의 인터페이스를 포함한다. RMB(400)는 또한 클러스터 내의 노드들 사이에서 송신된 메시지들에서 정보를 전송하기 위한 보안 메커니즘을 포함한다.
RMB(400)는 또한 클러스터 멤버들을 결정하기 위해 연결된 노드들에 자동으로 질의하도록 구성된다. 이 질의들은 모든 클러스터 멤버들이 임의의 소정의 시간에서 이용가능함을 보장하기 위해 주기적으로 수행된다.
일 실시예에 따르면, RMB(400)는 데이터베이스 트랜잭션(transaction)들을 사용함으로써 구성의 일관성을 보장한다. 예를 들어, 속성이 변경될 때마다 트랜잭션을 개시하기 위해, 모든 디바이스들상에서 변경이 성공적인 경우에 '커미트(commit)' 데이터베이스 동작을 적용하며, 임의의 디바이스상에서 변경이 실패한 때에 '롤백(rollback)' 동작을 적용한다. RMB는 이 트랜잭션들을 내부적으로 구현할 수도 있으며 또는 구성 서브시스템의 트랜잭션 성능들을 사용할 수도 있다. 일 실시예에 따르면, 구성 서브시스템의 트랜잭션들이 사용되는바, 왜나하면 이들은 매우 복잡한 동작일 수도 있기 때문이다.
RMB 클라이언트(420)는 클러스터 멤버 디바이스들을 발견하기 위해 클러스터 API(425)를 사용한다.
RMB(400)는 시스템 및 NM 동작들을 수행하기 위해 메시지들을 사용한다. 시스템 동작들은 구성 록(lock)의 획득 및 해제를 포함한다. 메시지가 송신된 때에, RMB는 헤더를 채우고, 메시지를 전달한다. 메시지가 수신된 때에, RMB는 헤더를 검사하고, 헤더의 필드들에서의 값들이 유효한 경우에만 메시지를 받아들인다. RMB는 헤더가 필드들에서 무효 값들인 메시지들을 버린다.
RMB 클라이언트(420)는 RMB 메시지의 몸체를 구성하며, 메시지를 클러스터 멤버들에 전달하기 위해 클러스터 API(425)를 사용하며, 메시지로부터 동작 결과를 추출한다. 원격 API(430)는 메시지를 특정 클러스터 멤버로 전달하며, 송신된 모든 요구 메시지에 대한 응답 메시지가 수신되었는지를 검사한다. 보안 전송(435)은 실제로 메시지들을 송신하며 수신하는 전송 메커니즘이다.
RMB 클라이언트는 잘-정의된 응용 프로그래밍 인터페이스들(APIs)을 갖는 공유-객체 라이브러리들의 집합으로서 구현될 수 있다. CGUI 및 CCLI는 NM 동작들을 수행하도록 RMB와 상호작용하기 위해 이 API들을 사용할 수 있다.
RMB 서버는 시스템이 개시되는 동안에 착수되는 데몬(daemon)으로서 구현될 수 있다.
RMB 보안 전송은 보안 소켓 계층(SSL) 소켓으로서 구현될 수 있다. 이는 RMB 메시지들을 암호화하는 능력을 제공함으로써 부가적인 보안 계층을 제공한다.
도 5는 본 발명의 양상들에 따라 클러스터를 리부팅하는 과정을 도시한다. 시작 블록 이후에, 과정(500)은 클러스터 멤버들의 리스트가 획득되는 블록(505)으로 진행한다. 클러스터 멤버들의 리스트는 모든 클러스터 멤버들이 리부팅됨을 보장하는데 사용된다. 블록(510)에서, 리부팅이 개시된 멤버의 신원이 획득된다. 블록(515)에서, 리부팅을 개시한 멤버이외의 각 클러스터 멤버상에서 리부팅이 수행된다. 일 실시예에 따르면, 개시 멤버이외의 클러스터 멤버들은 병렬로 리부팅된다. 예를 들어, 만일 5개의 클러스터 멤버들이 있는 경우에, 5개 중 4개의 멤버들이 동시에 리부팅된다. 상술된 바와같이, 다른 멤버들의 리부팅 동안에 적어도 하나의 멤버가 활성으로 남아있는 한, 멤버들은 임의의 순서로 리부팅될 수 있다. 결정 블록(520)에서, 개시 멤버이외의 멤버들 상의 클러스터 리부팅 동안에 에러가 발생하였는지에 대한 결정이 있게 된다. 에러가 발생한 경우에, 과정은 블록(530)으로 진행하는데, 여기서 리부팅 과정이 중지된다. 블록(525)에서, 클러스터 리부팅을 개시하는 멤버상에서 리부팅이 수행된다. 결정 블록(530)에서, 임의의 단계의 클러스터 리부팅 동안에 에러가 발생하였는지에 대한 결정이 있게 된다. 에러가 발생한 때에, 과정은 블록(530)으로 진행하며, 여기서 리부팅 과정이 중지된다. 어떤 에러도 없는 때에, 과정은 종료 블록으로 진행하고, 다른 동작들을 처리하기 위해 복귀된다.
상기 명세서, 예들 및 데이터는 본 발명의 완전하게 설명한다. 본 발명의 많은 실시예들이 본 발명의 사상 및 범주를 벗어남이 없이 가능하기 때문에, 본 발명은 하기에 첨부된 청구항들에 상주한다.

Claims (20)

  1. 클러스터를 리부팅하는 방법에 있어서,
    상기 클러스터의 리부팅을 개시하는 단계와;
    클러스터 멤버들을 결정하는 단계와; 그리고
    상기 클러스터 멤버들 중 적어도 하나가 활성으로 남는 동안에, 다른 클러스터 멤버들이 리부팅되는 상기 각 클러스터 멤버들을 리부팅하는 단계를 포함하며, 여기서 상기 각 클러스터 멤버들을 리부팅하는 단계는 리부팅되는 상기 클러스터 멤버를 제거하는 단계와 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 단계를 포함하는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  2. 제 1항에 있어서, 상기 리부팅을 시작한 개시 클러스터 멤버를 결정하는 단계와, 그리고 상기 개시 클러스터 멤버로부터 상기 리부팅을 제어하는 단계를 더 포함하는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  3. 제 1항에 있어서, 상기 클러스터 멤버들 중 적어도 하나가 활성으로 남는 동안에, 다른 클러스터 멤버들이 리부팅되는 상기 각 클러스터 멤버들을 리부팅하는 단계는, 활성으로 남는 상기 적어도 하나의 클러스터 멤버들 이외의 상기 클러스터 멤버들을 병렬로 리부팅하는 단계를 더 포함하는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  4. 제 2항에 있어서, 정상 동작을 유지하는 상기 적어도 하나의 클러스터 멤버 들은 상기 개시 클러스터 멤버인 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  5. 제 1항에 있어서, 상기 클러스터의 리부팅을 개시하는 단계는 사용자에 의해 수행되는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  6. 삭제
  7. 제 1 항에 있어서, 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 단계는 상기 제거된 클러스터 멤버와의 연락 재설정을 시도하는 단계를 더 포함하는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  8. 제 1항에 있어서, 상기 리부팅 과정 동안 에러가 발생되었는지가 결정된 때에 상기 리부팅 과정을 중지하는 단계를 더 포함하는 것을 특징으로 하는 클러스터를 리부팅하는 방법.
  9. 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템에 있어서,
    클러스터 멤버들과 통신하도록 구성된 네트워크 인터페이스와;
    상기 클러스터에 관한 정보를 저장하도록 구성된 메모리와;
    정보를 상기 클러스터 멤버들에 분배하도록 구성된 원격 관리 중개자(RMB)와; 그리고
    동작들을 수행하도록 구성된 프로세서를 포함하며,
    여기서 상기 동작들은:
    상기 클러스터의 리부팅을 개시하며;
    상기 클러스터 멤버들을 결정하며; 그리고
    상기 클러스터 멤버들 중 적어도 하나가 활성으로 남는 동안에, 다른 클러스터 멤버들이 리부팅되는 상기 각 클러스터 멤버들을 리부팅하는 것을 포함하며, 여기서 상기 각 클러스터 멤버들을 리부팅하는 동작은 리부팅되는 상기 클러스터 멤버를 제거하는 동작과 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 동작을 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  10. 제 9항에 있어서, 상기 리부팅을 시작한 개시 클러스터 멤버를 결정하며, 상기 개시 클러스터 멤버로부터 상기 리부팅을 제어하는 것을 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  11. 제 9항에 있어서, 상기 각 클러스터 멤버들을 리부팅하는 동작은 활성으로 남는 상기 적어도 하나의 클러스터 멤버들 이외의 각 클러스터 멤버들을 병렬로 리 부팅하는 단계를 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  12. 제 11 항에 있어서, 상기 적어도 하나의 클러스터 멤버들은 개시 클러스터 멤버인 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  13. 제 9항에 있어서, 상기 클러스터의 리부팅을 개시하는데 사용되는 사용자 인터페이스를 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  14. 삭제
  15. 제 9 항에 있어서, 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 동작은 상기 제거된 클러스터 멤버와의 연락 재설정을 시도하는 동작을 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  16. 제 9항에 있어서, 상기 리부팅 과정 동안 에러가 발생되었는지가 결정된 때에 상기 리부팅 과정을 중지하는 동작을 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 시스템.
  17. 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 장치에 있어서,
    상기 클러스터의 리부팅을 개시하는 수단과;
    상기 클러스터 멤버들을 결정하는 수단과; 그리고
    상기 클러스터 멤버들 중 적어도 하나가 활성으로 남는 동안에, 다른 클러스터 멤버들이 리부팅되는 상기 각 클러스터 멤버들을 리부팅하는 수단을 포함하며, 여기서 상기 각 클러스터 멤버들을 리부팅하는 수단은 리부팅되는 상기 클러스터 멤버를 제거하는 수단과 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 수단을 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 장치.
  18. 삭제
  19. 제 17 항에 있어서, 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 수단은 상기 제거된 클러스터 멤버와의 연락 재설정을 시도하는 수단을 더 포함하는 것을 특징으로 하는 클러스터의 동작을 유지하는 동안에 상기 클러스터를 리부팅하는 장치.
  20. 동작들을 수행하는 실행가능한 명령들을 포함하는 컴퓨터 판독가능 매체에 있어서, 상기 동작은:
    상기 클러스터의 리부팅을 개시하며;
    상기 클러스터 멤버들을 결정하며; 그리고
    상기 클러스터 멤버들 중 적어도 하나가 활성으로 남는 동안에, 다른 클러스터 멤버들이 리부팅되는 상기 각 클러스터 멤버들을 리부팅하는 것을 포함하며, 여기서 상기 각 클러스터 멤버들을 리부팅하는 동작은 리부팅되는 상기 클러스터 멤버를 제거하는 동작과 상기 제거된 클러스터 멤버가 리부팅된 때를 결정하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020057024106A 2003-06-25 2004-06-10 클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의리부팅 방법 KR100792280B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/606,645 US7076645B2 (en) 2003-06-25 2003-06-25 Method of rebooting a multi-device cluster while maintaining cluster operation
US10/606,645 2003-06-25

Publications (2)

Publication Number Publication Date
KR20060026877A KR20060026877A (ko) 2006-03-24
KR100792280B1 true KR100792280B1 (ko) 2008-01-08

Family

ID=33540118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057024106A KR100792280B1 (ko) 2003-06-25 2004-06-10 클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의리부팅 방법

Country Status (5)

Country Link
US (1) US7076645B2 (ko)
EP (1) EP1644828A4 (ko)
KR (1) KR100792280B1 (ko)
CN (1) CN100481004C (ko)
WO (1) WO2004114570A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646953B1 (en) * 2000-07-06 2003-11-11 Rambus Inc. Single-clock, strobeless signaling system
US20040141461A1 (en) * 2003-01-22 2004-07-22 Zimmer Vincent J. Remote reset using a one-time pad
US7469279B1 (en) 2003-08-05 2008-12-23 Cisco Technology, Inc. Automatic re-provisioning of network elements to adapt to failures
US8812635B2 (en) * 2003-12-14 2014-08-19 Cisco Technology, Inc. Apparatus and method providing unified network management
US20060075001A1 (en) * 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
US7661025B2 (en) * 2006-01-19 2010-02-09 Cisco Technoloy, Inc. Method of ensuring consistent configuration between processors running different versions of software
US7818621B2 (en) * 2007-01-11 2010-10-19 International Business Machines Corporation Data center boot order control
EP2316194B1 (en) 2008-08-18 2015-02-25 F5 Networks, Inc Upgrading network traffic management devices while maintaining availability
US20120079474A1 (en) * 2010-09-24 2012-03-29 Stephen Gold Reimaging a multi-node storage system
US10481963B1 (en) * 2016-06-29 2019-11-19 Amazon Technologies, Inc. Load-balancing for achieving transaction fault tolerance
US10305970B2 (en) * 2016-12-13 2019-05-28 International Business Machines Corporation Self-recoverable multitenant distributed clustered systems
CN107707595B (zh) * 2017-03-17 2018-06-15 贵州白山云科技有限公司 一种成员组变更方法及装置
US10860078B2 (en) 2018-10-25 2020-12-08 Dell Products, L.P. Managing power request during cluster operations
US11048523B2 (en) 2018-10-25 2021-06-29 Dell Products, L.P. Enabling software sensor power operation requests via baseboard management controller (BMC)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044461A (en) 1997-09-16 2000-03-28 International Business Machines Corporation Computer system and method of selectively rebooting the same in response to a system program code update
US6202097B1 (en) 1991-07-22 2001-03-13 International Business Machines Corporation Methods for performing diagnostic functions in a multiprocessor data processing system having a serial diagnostic bus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324692B1 (en) * 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
US6779176B1 (en) * 1999-12-13 2004-08-17 General Electric Company Methods and apparatus for updating electronic system programs and program blocks during substantially continued system execution
US6757836B1 (en) * 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
GB2359385B (en) * 2000-02-16 2004-04-07 Data Connection Ltd Method for upgrading running software processes without compromising fault-tolerance
US6691244B1 (en) * 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
WO2001084313A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Method and system for achieving high availability in a networked computer system
EP1231537A1 (de) * 2001-02-09 2002-08-14 Siemens Aktiengesellschaft Automatische Inbetriebnahme eines Clustersystems nach einem heilbaren Fehler
US20030149735A1 (en) * 2001-06-22 2003-08-07 Sun Microsystems, Inc. Network and method for coordinating high availability system services
US6535924B1 (en) * 2001-09-05 2003-03-18 Pluris, Inc. Method and apparatus for performing a software upgrade of a router while the router is online

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202097B1 (en) 1991-07-22 2001-03-13 International Business Machines Corporation Methods for performing diagnostic functions in a multiprocessor data processing system having a serial diagnostic bus
US6044461A (en) 1997-09-16 2000-03-28 International Business Machines Corporation Computer system and method of selectively rebooting the same in response to a system program code update

Also Published As

Publication number Publication date
WO2004114570A2 (en) 2004-12-29
US7076645B2 (en) 2006-07-11
CN1864134A (zh) 2006-11-15
EP1644828A2 (en) 2006-04-12
KR20060026877A (ko) 2006-03-24
EP1644828A4 (en) 2008-01-23
US20040268112A1 (en) 2004-12-30
WO2004114570A3 (en) 2005-04-14
CN100481004C (zh) 2009-04-22

Similar Documents

Publication Publication Date Title
KR100792280B1 (ko) 클러스터 동작을 유지하는 동안 다중-디바이스 클러스터의리부팅 방법
US8959395B2 (en) Method and system for providing high availability to computer applications
US9594818B2 (en) System and method for supporting dry-run mode in a network environment
US9112911B1 (en) Adding firewall security policy dynamically to support group VPN
US20130254410A1 (en) System for managing sessions and connections in a network
EP1780940A1 (en) High availability network systems
US9158526B1 (en) Application update using multiple network connections
JP2004032224A (ja) サーバ引継システムおよびその方法
US20080140846A1 (en) Virtualization and high availability of network connections
CN112035215A (zh) 节点集群的节点自治方法、系统、装置及电子设备
WO2017107827A1 (zh) 一种环境隔离方法及设备
CN110995481A (zh) 配置方法、服务器及计算机可读存储介质
JP2001034568A (ja) 論理パス確立方法及び記憶媒体
US7587475B2 (en) System for joining a cluster by cloning configuration
JP2006227763A (ja) データ共有システム、データ共有方法及びプログラム
US6952703B1 (en) Subsystem application notification method in a centralized router database
US8560732B2 (en) Peer-to-peer object distribution
CN113326272A (zh) 分布式事务的处理方法、装置及系统
US20040267910A1 (en) Single-point management system for devices in a cluster
JP2010079523A (ja) セッションデータ共有方法
CN108521342B (zh) 一种集群的管理方法及装置
US11403093B1 (en) Application modification with proxy service process
US9665364B2 (en) Dual-bank telecommunication apparatus and method of upgrading firmware in dual-bank telecommunication apparatus
Cisco 8.4.10 Version Software Release Notes Cisco StrataView Plus for AIX Release Notes
Cisco Cisco StrataView Plus for AIX Release Notes

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131220

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141218

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee