KR101558047B1 - 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법 - Google Patents

클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법 Download PDF

Info

Publication number
KR101558047B1
KR101558047B1 KR1020130108007A KR20130108007A KR101558047B1 KR 101558047 B1 KR101558047 B1 KR 101558047B1 KR 1020130108007 A KR1020130108007 A KR 1020130108007A KR 20130108007 A KR20130108007 A KR 20130108007A KR 101558047 B1 KR101558047 B1 KR 101558047B1
Authority
KR
South Korea
Prior art keywords
virtual machine
server
physical
registration information
physical server
Prior art date
Application number
KR1020130108007A
Other languages
English (en)
Other versions
KR20150029181A (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 삼성에스디에스 주식회사
Priority to KR1020130108007A priority Critical patent/KR101558047B1/ko
Priority to CN201410455215.2A priority patent/CN104427002B/zh
Priority to US14/481,444 priority patent/US9575785B2/en
Publication of KR20150029181A publication Critical patent/KR20150029181A/ko
Application granted granted Critical
Publication of KR101558047B1 publication Critical patent/KR101558047B1/ko

Links

Images

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • 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/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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares
    • 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/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Abstract

클러스터 시스템으로서, 액티브(active) 가상 머신이 등록된 제1 물리 서버; 및 복수의 물리 서버를 포함하되, 상기 복수의 물리 서버는, 상기 액티브 가상 머신에 대응하고 상기 제1 물리 서버에 장애가 발생한 경우에 상기 액티브 가상 머신을 페일오버(failover)하는 스탠바이(standby) 가상 머신이 등록된 제2 물리 서버를 포함하고, 상기 장애가 발생한 경우, 상기 복수의 물리 서버 각각은 장애 후(post-failure) 등록 정보를 저장하며, 상기 장애 후 등록 정보는 상기 액티브 가상 머신을 상기 복수의 물리 서버 중 하나의 물리 서버와 연관시키되, 상기 하나의 물리 서버는 상기 제2 물리 서버와 상이한, 클러스터 시스템이 제공된다.

Description

클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법{CLUSTER SYSTEM AND METHOD FOR PROVIDING SERVICE AVAILBILITY IN CLUSTER SYSTEM}
본 발명은 클러스터 시스템에서 서비스 가용성을 제공하기 위한 기법에 관한 것으로, 더욱 상세하게는 클러스터 시스템에서 가상화 환경을 기반으로 높은 수준의 서비스 가용성을 제공하는 방법 및 그러한 클러스터 시스템에 관한 것이다.
서비스를 제공하는 컴퓨터 환경에서, 물리적 장애(failure)의 발생에 따라 서비스의 이용이 불가능한 고장 시간(downtime)을 줄이기 위한 다양한 고가용성(High Availability: HA) 기술이 존재한다. 예컨대, 통신 가능하게 연결된 여러 서버 컴퓨터를 포함하는 클러스터(cluster) 시스템은, 소정의 서비스를 제공하는 액티브(active) 서버와 그 액티브 서버에 장애가 발생하는 경우 그 서비스를 재개하는 스탠바이(standby) 서버를 제공한다.
이와 같이 액티브 서버에 장애가 발생한 경우 스탠바이 서버가 페일오버(failover)하는 동안, 시스템의 관리자는 액티브 서버에 발생한 장애의 요인을 파악하여 액티브 서버를 복구하거나 새로운 서버로 대체한다.
한국등록특허 제930576호
전술한 HA 기술과 같이 액티브 서버와 스탠바이 서버가 이중화된 경우, 만일 스탠바이 서버에 장애가 발생하는 것에 이어 관리자가 그 장애에 대한 조치를 취하기 전에 액티브 서버에 장애가 발생한다면, 액티브 서버에서 제공되는 서비스는 지속될 수 없다.
또한, 이러한 액티브 서버와 스탠바이 서버의 이중화를 나타내는 정보가 부정확하다면, 액티브 서버에 장애가 발생하는 경우 스탠바이 서버가 제대로 페일오버할 수 없다.
개시된 실시예들은 복수의 물리 서버를 포함하는 클러스터 시스템에서 가상화 환경(virtualized environment)을 기반으로 높은 수준의 서비스 가용성을 제공하기 위한 기법에 관한 것으로서, 클러스터 시스템 내에서 어떤 물리 서버에 장애가 발생하는 경우라도 액티브 가상 머신과 그에 대응하는 스탠바이 가상 머신의 쌍(pair)이 존재하도록 하며, 나아가 그러한 쌍을 나타내는 정보를 물리 서버의 가용 자원을 기반으로 갱신하도록 할 수 있다.
일 실시예에 따르면, 클러스터 시스템으로서, 액티브(active) 가상 머신이 등록된 제1 물리 서버; 및 복수의 물리 서버를 포함하되, 상기 복수의 물리 서버는, 상기 액티브 가상 머신에 대응하고 상기 제1 물리 서버에 장애가 발생한 경우에 상기 액티브 가상 머신을 페일오버(failover)하는 스탠바이(standby) 가상 머신이 등록된 제2 물리 서버를 포함하고, 상기 장애가 발생한 경우, 상기 복수의 물리 서버 각각은 장애 후(post-failure) 등록 정보를 저장하며, 상기 장애 후 등록 정보는 상기 액티브 가상 머신을 상기 복수의 물리 서버 중 하나의 물리 서버와 연관시키되, 상기 하나의 물리 서버는 상기 제2 물리 서버와 상이한, 클러스터 시스템이 제공된다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 후 등록 정보의 구성을 위하여, 상기 하나의 물리 서버는, 상기 복수의 물리 서버 중 상기 제2 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 제2 물리 서버와 상이한 상기 물리 서버들로부터 선택된다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 후 등록 정보에 따라, 상기 액티브 가상 머신은 상기 하나의 물리 서버에 등록된다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 후 등록 정보는 또한 상기 제1 물리 서버에 등록된 다른 스탠바이 가상 머신을 상기 복수의 물리 서버 중 다른 하나의 물리 서버와 연관시키되, 상기 다른 하나의 물리 서버는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 물리 서버와 상이하다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 후 등록 정보의 구성을 위하여, 상기 다른 하나의 물리 서버는, 상기 복수의 물리 서버 중 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 상기 물리 서버들로부터 선택된다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 후 등록 정보에 따라, 상기 다른 스탠바이 가상 머신은 상기 다른 하나의 물리 서버에 등록된다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애가 발생하기 전, 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각은 장애 전(pre-failure) 등록 정보를 저장하고, 상기 장애 후 등록 정보는 상기 장애 전 등록 정보를 갱신함으로써 구성되며, 상기 장애 전 등록 정보는 상기 장애가 발생하기 전 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 등록된 가상 머신을 나타낸다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애가 발생하기 전, 상기 장애 전 등록 정보는 상기 제1 물리 서버의 상태 및 상기 복수의 물리 서버 각각의 상태에 기반하여 변경 가능하다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 전 등록 정보는 또한 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원을 나타낸다.
상기 클러스터 시스템의 일 측면에 따르면, 상기 장애 전 등록 정보의 변경은, 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행된다.
다른 실시예에 따르면, 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법으로서, 액티브 가상 머신이 등록된 제1 물리 서버에 장애가 발생한 경우, 복수의 물리 서버 중 제2 물리 서버에 등록되고 상기 액티브 가상 머신에 대응하는 스탠바이 가상 머신으로 하여금 상기 액티브 가상 머신을 페일오버하도록 하는 단계; 및 상기 장애가 발생한 경우, 상기 복수의 물리 서버 각각에 장애 후 등록 정보를 저장시키는 단계를 포함하고, 상기 장애 후 등록 정보는 상기 액티브 가상 머신을 상기 복수의 물리 서버 중 하나의 물리 서버와 연관시키되, 상기 하나의 물리 서버는 상기 제2 물리 서버와 상이한,서비스 가용성 제공 방법이 제공된다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 장애 후 등록 정보의 구성을 위하여, 상기 하나의 물리 서버를, 상기 복수의 물리 서버 중 상기 제2 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 제2 물리 서버와 상이한 상기 물리 서버들로부터 선택하는 단계를 더 포함한다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 액티브 가상 머신을 상기 하나의 물리 서버에 등록시키는 단계를 더 포함한다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 장애 후 등록 정보는 또한 상기 제1 물리 서버에 등록된 다른 스탠바이 가상 머신을 상기 복수의 물리 서버 중 다른 하나의 물리 서버와 연관시키되, 상기 다른 하나의 물리 서버는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 물리 서버와 상이하다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 장애 후 등록 정보의 구성을 위하여, 상기 다른 하나의 물리 서버를, 상기 복수의 물리 서버 중 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 상기 물리 서버들로부터 선택하는 단계를 더 포함한다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 장애 후 등록 정보에 따라, 상기 스탠바이 가상 머신을 상기 다른 하나의 물리 서버에 등록시키는 단계를 더 포함한다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 장애가 발생하기 전, 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 장애 전 등록 정보를 저장시키는 단계; 및 상기 장애 전 등록 정보를 갱신함으로써 상기 장애 후 등록 정보를 구성하는 단계를 더 포함하고, 상기 장애 전 등록 정보는 상기 장애가 발생하기 전 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 등록된 가상 머신을 나타낸다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 서비스 가용성제공 방법은, 상기 장애가 발생하기 전, 상기 제1 물리 서버의 상태 및 상기 복수의 물리 서버 각각의 상태에 기반하여 상기 장애 전 등록 정보를 변경하는 단계를 더 포함한다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 장애 전 등록 정보는 또한 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원을 나타낸다.
상기 서비스 가용성 제공 방법의 일 측면에 따르면, 상기 장애 전 등록 정보의 변경은, 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행된다.
또 다른 실시예에 따르면, 서버 컴퓨터로서, 프로세서 및 메모리를 포함하며, 상기 메모리는, 상기 서버 컴퓨터를 포함하는 복수의 서버 컴퓨터들 및 다른 서버 컴퓨터 각각에 등록된 가상 머신을 나타내는 등록 정보; 상기 다른 서버 컴퓨터에 등록된 액티브 가상 머신에 대응하는 스탠바이 가상 머신; 및 컴퓨터 실행가능 명령어를 포함하고, 상기 컴퓨터 실행가능 명령어는 상기 프로세서에 의해 실행되는 경우, 상기 다른 서버 컴퓨터에 장애가 발생하였다는 판정에 응답하여, 상기 스탠바이 가상 머신으로 하여금 상기 액티브 가상 머신을 페일오버하도록 하는 동작; 및 상기 판정에 응답하여, 상기 등록 정보를 갱신하는 동작을 수행하도록 구성되며, 상기 갱신된 등록 정보는 상기 액티브 가상 머신을 상기 복수의 서버 컴퓨터들 중 하나와 연관시키되, 상기 하나는 상기 서버 컴퓨터와 상이한, 서버 컴퓨터가 제공된다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 등록 정보의 갱신을 위하여, 상기 복수의 서버 컴퓨터들 중 상기 서버 컴퓨터와 상이한 서버 컴퓨터들 각각의 가용 자원에 기반하여, 상기 서버 컴퓨터와 상이한 상기 서버 컴퓨터들로부터 상기 하나를 선택하는 동작을 수행하도록 구성된다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 다른 서버 컴퓨터에는 다른 스탠바이 가상 머신이 또한 등록되고, 상기 갱신된 등록 정보는 또한 상기 다른 스탠바이 가상 머신을 상기 복수의 서버 컴퓨터들 중 다른 하나와 연관시키되, 상기 다른 하나는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이하다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 등록 정보의 갱신을 위하여, 상기 복수의 서버 컴퓨터들 중 상기 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이한 서버 컴퓨터들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이한 상기 서버 컴퓨터들로부터 상기 다른 하나를 선택하는 동작을 수행하도록 구성된다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 장애가 발생하기 전, 상기 복수의 서버 컴퓨터들 각각의 상태 및 상기 다른 서버 컴퓨터의 상태에 기반하여 상기 등록 정보를 변경하는 동작을 수행하도록 구성된다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 등록 정보는 또한 상기 다른서버 컴퓨터의 가용 자원 및 상기 복수의 서버 컴퓨터들 각각의 가용 자원을 나타낸다.
상기 서버 컴퓨터의 일 측면에 따르면, 상기 등록 정보를 변경하는 동작은, 상기 복수의 서버 컴퓨터들 각각의 가용 자원 및 상기 다른 서버 컴퓨터의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행된다.
본 발명의 여러 실시예들에 따른 구체적인 사항들은 이하의 상세한 설명 및 첨부된 도면들에 개시되어 있다.
소정의 실시예에 따르면, 복수의 물리 서버를 포함하는 클러스터 시스템에서 더욱 높은 서비스 가용성이 제공되는바, 클러스터 시스템의 어느 물리 서버에 장애가 발생한 경우 서비스의 다운타임을 최소화할 수 있다.
도 1은 본 발명의 실시예에 따라 복수의 서버 컴퓨터를 포함하는 클러스터(cluster) 시스템을 도시한다.
도 2는 본 발명의 실시예에서 물리 서버에 포함된 정보 테이블의 예를 도시한다.
도 3은 본 발명의 실시예에 따라 클러스터 시스템에서 서비스 가용성을 제공하는 과정을 도시한 순서도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 실시예에 따라 복수의 서버 컴퓨터를 포함하는 클러스터(cluster) 시스템을 도시한다.
도 1에 도시된 바와 같이, 예시적인 클러스터 시스템(100)은 제1 물리 서버(110), 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140)를 포함한다. 각 물리 서버(110, 120, 130, 140)는 네트워크(180)를 통해 통신 가능하게 연결된다. 예컨대, 각 물리 서버(110, 120, 130, 140)는 네트워크(180)를 통해 각자의 상태를 나타내는 정보를 포함하는 신호(예컨대, 하트비트(heartbeat) 신호)를 서로 주고 받을 수 있다. 네트워크(180)는 링(ring)형, 스타(star)형, 버스(bus)형, 망(mesh)형, 또는 트리(tree)형일 수 있으나, 이는 어디까지나 예시적이다.
각 물리 서버(110, 120, 130, 140)는 컴퓨팅 장치로서, 하나 이상의 프로세서, 하나 이상의 메모리, 하나 이상의 저장 장치(예컨대, 하드 드라이브), 하나 이상의 네트워크 인터페이스 및 하나 이상의 입출력 어댑터와 같은 하드웨어를 포함한다. 메모리는 컴퓨터 실행가능 명령어를 포함할 수 있고, 프로세서는 메모리에 저장된 명령어를 실행할 수 있다. 메모리에 저장된 명령어는 프로세서에 의해 실행되는 경우 이하에서 기술되는 실시예에 따른 동작들을 수행하도록 할 수 있다.
각 물리 서버(110, 120, 130, 140)는 가상화 환경을 제공할 수 있다. 예컨대, 각 물리 서버(110, 120, 130, 140)에는 가상 머신(Virtual Machine: VM)이 등록될 수 있다. 각각의 등록된 가상 머신에는 가상화된 CPU, 메모리 등과 같은 자원이 할당된다. 또한, 각 물리 서버(110, 120, 130, 140)는 가상 머신을 실행하기 위한 소프트웨어, 펌웨어 및/또는 운영체제 컴포넌트를 포함한다. 따라서, 각 물리 서버(110, 120, 130, 140)의 메모리에 저장된 가상 머신이 실행될 수 있다.
소정의 실시예에 따르면, 클러스터 시스템(100)에서 가상화 환경을 기반으로 높은 수준의 서비스 가용성이 제공된다. 도 1에 도시된 바에 따르면, 클러스터 시스템(100)에서 정상적으로 동작 중인 물리 서버(110, 120, 130, 140) 각각은 적어도 하나의 액티브(active) 가상 머신(111, 121, 131, 141)을 포함한다. 예컨대, 액티브 가상 머신(111, 121, 131, 141) 각각은 자신에 대응하는 스탠바이(standby) 가상 머신(112, 122, 132, 142)에 복제(replication)/미러링(mirroring)되는 방식 등에 의해 백업(backup)될 수 있는바, 액티브 가상 머신(111, 121, 131, 141)과 스탠바이 가상 머신(112, 122, 132, 142)이 동기화될 수 있다. 각 액티브 가상 머신(111, 121, 131, 141)에 대응하는 스탠바이 가상 머신(112, 122, 132, 142)은 액티브 가상 머신(111, 121, 131, 141)이 포함된 물리 서버와 상이한 물리 서버에 위치한다. 일 예로서, 제1 물리 서버(110)의 제1 액티브 가상 머신(111)에 대응하는 제1 스탠바이 가상 머신(122)은 제2 물리 서버(120)에 포함된다.
각 물리 서버(110, 120, 130, 140)에는 그 물리 서버(110, 120, 130, 140)에 포함된 가상 머신들을 나타내는 등록 정보가 저장될 수 있다. 바꾸어 말하면, 각 물리 서버(110, 120, 130, 140)에 등록되는 가상 머신들은 그러한 등록 정보에 기록된다. 따라서, 이 등록 정보는 서버 클러스터(100)에서 어떤 물리 서버에 등록된 가상 머신이 무엇인지 확인하거나 어떤 가상 머신이 등록된 물리 서버가 무엇인지 확인하는 데 이용될 수 있다.
다른 측면에서, 이 등록 정보는 각 물리 서버(110, 120, 130, 140)에 다른 가상 머신을 추가하거나 기존의 가상 머신을 제거하는 데 이용될 수 있다. 예를 들어, 각 물리 서버(110, 120, 130, 140)의 등록 정보가 변경/갱신된 후, 물리 서버들(110, 120, 130, 140) 중 적어도 하나는 그러한 등록 정보에 따라 기존에 등록되어 있지 않았던 가상 머신을 자신에게 등록할 수 있다.
각 물리 서버(110, 120, 130, 140)에 포함되는 등록 정보는 테이블 형태일 수 있다. 도 1에 따르면, 물리 서버(110, 120, 130, 140) 각각은 정보 테이블(116, 126, 136, 146)을 포함한다. 정보 테이블들(116, 126, 136, 146)은 모두 동일한 정보를 포함하도록 구성될 수 있다.
도 2는 본 발명의 실시예에서 물리 서버에 포함된 정보 테이블의 예를 도시한다.
예시적인 정보 테이블(200)은 물리 서버를 식별하는 정보(210) 및 각 물리 서버에 포함된 가상 머신을 식별하는 정보(220)를 포함한다. 정보 테이블(200)은 또한 정보(220)에 의해 식별되는 가상 머신에 대응하는 가상 머신이 위치한 물리 서버를 식별하는 정보(230)를 포함할 수 있다.
예컨대, 정보 테이블(200)은 다음과 같이 구성될 수 있다. 아래에 예시되는 정보 테이블(200)은 도 1에 도시된 클러스터 시스템(100)에서 각 물리 서버(110, 120, 130, 140)에 포함된 정보 테이블(116, 126, 136, 146)로서 사용될 수 있다.
정보(210)(즉, “물리 서버”라는 표제의 열)는 클러스터 시스템(100)의 제1 물리 서버(110), 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140)를 나타낸다.
정보(220)(즉, “가상 머신(VM)”라는 표제의 열)는 정보(210)에 의해 식별되는 각 물리 서버에 등록된 가상 머신들을 표시한다. 구체적으로, 정보(220)는 제1 액티브 가상 머신(111) 및 제4 스탠바이 가상 머신(112)을 제1 물리 서버(110)와 연관시켜 나타내고, 제2 액티브 가상 머신(121) 및 제1 스탠바이 가상 머신(122)을 제2 물리 서버(120)와 연관시켜 나타내며, 제3 액티브 가상 머신(131) 및 제2 스탠바이 가상 머신(132)을 제3 물리 서버(130)와 연관시켜 나타내고, 제4 액티브 가상 머신(141) 및 제3 스탠바이 가상 머신(142)을 제4 물리 서버(140)와 연관시켜 나타낸다.
정보(230)(즉, “대응되는 가상 머신이 위치한 물리 서버”라는 표제의 열)는 정보(220)에 표시된 가상 머신에 대응하는 가상 머신이 포함된 물리 서버를 나타낸다. 예컨대, 제1 액티브 가상 머신(111)과 동기화되는 제1 스탠바이 가상 머신(122)는 제2 물리 서버(120)에 포함되는바, 정보(230)는 제2 물리 서버(120)를 제1 액티브 가상 머신(111)과 연관시켜 나타낸다. 다른 예로서, 제4 스탠바이 가상 머신(112)과 동기화되는 제4 액티브 가상 머신(141)은 제4 물리 서버(140)에 포함되는바, 정보(230)는 제4 물리 서버(140)를 제4 스탠바이 가상 머신(112)과 연관시켜 나타낸다. 마찬가지 방식으로, 정보(230)는 정보(220)에 포함된 다른 가상 머신과 연관시켜 소정의 물리 서버를 나타낸다.
추가적으로, 정보 테이블(200)은 정보(210)가 나타내는 물리 서버의 가용 자원을 나타내는 정보(미도시)를 포함할 수 있다. 예컨대, 소정의 물리 서버의 가용 자원은 그 물리 서버의 이용 가능한 CPU 및/또는 메모리를 포함할 수 있다.
정보 테이블(200)은 변경될 수 있다. 정보 테이블(200)이 변경되는 경우, 변경된 정보 테이블(200)에 따라 물리 서버들(110, 120, 130, 140) 중 적어도 하나는 기존에 자신에 등록되어 있지 않던 가상 머신을 자신에게 등록할 수 있다.
정보 테이블(200)은 제1 물리 서버(110), 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140) 중 어느 하나에서 생성 및/또는 변경된 후 나머지 물리 서버들에 제공될 수 있다. 정보 테이블(200)을 생성 및/또는 변경하는 물리 서버는 동적으로 변경될 수 있다. 예컨대, 제1 물리 서버(110)가 정보 테이블(200)의 변경을 담당하던 중 제1 물리 서버(110)에 장애가 발생한 경우, 적어도 하나의 다른 물리 서버(예컨대, 제2 물리 서버(120))가 정보 테이블(200)의 변경을 담당할 수 있다. 이와 달리, 정보 테이블(200)의 생성 및/또는 변경은 물리 서버(110, 120, 130, 140) 각각에 의해 별개로 수행될 수 있다.
또한, 예컨대 도 2에 도시된 바와 같이 생성된 정보 테이블(200)은 각 물리 서버(110, 120, 130, 140)의 상태에 기반하여 변경될 수 있다. 각 물리 서버(110, 120, 130, 140)의 상태를 나타내는 정보는 각 물리 서버(110, 120, 130, 140)에서 송신하는 신호(예컨대, 각 물리 서버(110, 120, 130, 140)가 주기적으로 송신할 수 있는 하트비트 신호)에 포함될 수 있다. 예컨대, 정보 테이블(200)의 변경을 제1 물리 서버(110)가 담당한다고 가정하자. 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140) 각각은 하트비트 신호를 송신할 수 있고, 제1 물리 서버(110)는 각 하트비트 신호에 포함된 물리 서버의 상태 및 자신의 상태에 기반하여 물리 서버(110, 120, 130, 140) 전부 또는 일부에 포함된 가상 머신들이 재분배되도록 정보 테이블(200)을 변경할 수 있다. 나아가, 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140) 각각은 하트비트 신호와 함께 자신의 가용 자원에 대한 정보를 송신할 수 있다. 이러한 경우, 제1 물리 서버(110)는 각 물리 서버(110, 120, 130, 140)의 가용 자원 정보에 기반하여 정보 테이블(200)을 변경할 수 있다.
정보 테이블(200)이 변경되는 시점은 소정의 정책에 따라 결정될 수 있다. 예컨대, 정보 테이블(200)이 너무 빈번하게 갱신되는 데에 따른 오버헤드를 방지하기 위하여, 각 물리 서버(110, 120, 130, 140)의 가용 자원 중 적어도 하나의 변화량이 임계값(예컨대, 기존의 가용 자원의 10%) 이상인 경우에 정보 테이블(200)이 변경되도록 할 수 있다.
이제 다시 도 1을 참조하여, 클러스터 시스템(100)에서 소정의 물리 서버에 장애가 발생한 경우 서비스 가용성을 제공하기 위한 기법을 설명한다.
제1 액티브 가상 머신(111)이 등록된 제1 물리 서버(110)에 장애가 발생한 경우를 예로 든다. 장애가 발생하기 전 각 물리 서버(110, 120, 130, 140)에저장된 정보 테이블(116, 126, 136, 146)은 도 2에 도시된 정보 테이블(200)을 포함한다고 가정한다.
제1 물리 서버(110)에 장애가 발생한 경우, 제1 스탠바이 가상 머신(122)은 제1 액티브 가상 머신(111)을 페일오버(failover)한다. 이러한 페일오버는 정보 테이블(116, 126, 136, 146)을 참조하여 개시될 수 있다. 정보 테이블(116, 126, 136, 146)에 따르면, 클러스터 시스템(100)의 제2 물리 서버(120)에 제1 액티브 가상 머신(111)에 대응하는 제1 스탠바이 가상 머신(122)이 등록되어 있다. 예컨대, 제2 물리 서버(120)에서 송신하는 하트비트 신호에 대하여 제1 물리 서버(110)로부터의 응답이 없음을 제2 물리 서버(120)가 감지함으로써, 제1 물리 서버(110)에 장애가 발생하였다고 판정될 수 있다. 또한, 제2 물리 서버(120)는 자신의 정보 테이블(126)을 참조하여 제1 스탠바이 가상 머신(122)으로 하여금 제1 액티브 가상 머신(111)을 페일오버하도록 할 수 있다.
위와 같이 제1 스탠바이 가상 머신(122)이 제1 액티브 가상 머신(111)을 페일오버하면, 원래 제1 액티브 가상 머신(111)에서 제공되던 서비스는 제1 스탠바이 가상 머신(122)로 인계되어 제1 스탠바이 가상 머신(122)에 의해 재개된다.
또한, 제1 물리 서버(110)에 장애가 발생한 경우, 정보 테이블(200)은 갱신/재구성된다. 이러한 갱신은 장애가 발생한 제1 물리 서버(110)에 등록되어 있던 가상 머신을 나머지 물리 서버(120, 130, 140)에 적절히 재분배하기 위하여 수행된다. 제1 스탠바이 가상 머신(122)에 의한 페일오버 이후, 장애가 발생한 제1 물리 서버(110)를 제외한 나머지 물리 서버(120, 130, 140) 중 적어도 하나의 물리 서버가 정보 테이블(200)을 갱신할 수 있다. 이러한 갱신은, 어떤 액티브 가상 머신과 그에 대응하는 스탠바이 가상 머신이 동일한 물리 서버에 등록되지 않도록 등록 정보를 구성하는 로직에 기반할 수 있다.
일 예로서, 갱신된 정보 테이블(200)은 제1 액티브 가상 머신(111)을 물리 서버(120, 130, 140) 중 하나의 물리 서버와 연관시킨다. 다만, 이와 같이 제1 액티브 가상 머신(111)과 연관된 물리 서버는 제2 물리 서버(120)와 상이하다. 예컨대, 갱신된 정보 테이블(200)에 따르면, 제3 물리 서버(130)가 제1 액티브 가상 머신(111)과 연관된다. 또한, 갱신된 정보 테이블(200)은 제1 물리 서버(110)에 등록된 제4 스탠바이 가상 머신(112)을 물리 서버(120, 130, 140) 중 다른 하나의 물리 서버와 연관시킨다. 다만, 이와 같이 제4 스탠바이 가상 머신(112)과 연관된 물리 서버는 제4 스탠바이 가상 머신(112)에 대응하는 제4 액티브 가상 머신(141)이 등록된 제4 물리 서버(140)와 상이하다. 예컨대, 갱신된 정보 테이블(200)에 따르면, 제3 물리 서버(130)가 제1 액티브 가상 머신(111)과 연관된다.
나아가, 정보 테이블(200)의 갱신을 위하여, 제1 액티브 가상 머신(111)과 연관되는 물리 서버 및 제4 스탠바이 가상 머신(112)과 연관되는 물리 서버는 물리 서버(110, 120, 130, 140) 중 일부의 가용 자원에 기반하여 선택될 수 있다. 구체적으로, 제1 액티브 가상 머신(111)과 연관되는 물리 서버는, 장애가 발생한 제1 물리 서버(110) 및 제1 스탠바이 가상 머신(121)이 제1 액티브 가상 머신(111)을 페일오버하는 제2 물리 서버(120)를 제외한 나머지 물리 서버(130, 140) 각각의 가용 자원에 기반하여 물리 서버(130, 140)로부터 선택될 수 있다. 예컨대, 제3 물리 서버(130)가 제4 물리 서버(140)보다 더욱 충분한 가용 자원을 구비하고 있는 경우, 제1 액티브 가상 머신(111)을 제3 물리 서버(130)와 연관시킨다. 제4 스탠바이 가상 머신(112)과 연관되는 물리 서버는, 장애가 발생한 제1 물리 서버(110) 및 제4 액티브 가상 머신(141)이 등록된 제4 물리 서버(140)를 제외한 나머지 물리 서버(120, 140) 각각의 가용 자원에 기반하여 물리 서버(120, 140)로부터 선택될 수 있다. 예컨대, 제2 물리 서버(120)가 제4 물리 서버(140)보다 더욱 충분한 가용 자원을 구비하고 있는 경우, 제4 스탠바이 가상 머신(112)을 제2 물리 서버(120)와 연관시킨다.
요약하면, 도 2에 도시된 정보 테이블(200)은 위와 같은 갱신에 따라, 제2 물리 서버(120)에 대응하는 가상 머신으로서 기존의 제2 액티브 가상 머신(121) 및 제1 스탠바이 가상 머신(122)에 더하여 제4 스탠바이 가상 머신(112)을 나타내고, 제3 물리 서버(130)에 대응하는 가상 머신으로서 기존의 제3 액티브 가상 머신(131) 및 제2 스탠바이 가상 머신(132)에 더하여 제1 액티브 가상 머신(111)을 나타낸다. 한편, 갱신된 정보 테이블(200)은 제4 물리 서버(140)에 대응하는 가상 머신으로서 갱신 전과 마찬가지로 제4 액티브 가상 머신(141) 및 제3 스탠바이 가상 머신(142)를 나타낸다.
갱신된 정보 테이블(200)에 따라, 장애가 발생한 제1 물리 서버(110)에 등록된 제1 액티브 가상 머신(111) 및 제4 스탠바이 가상 머신(112)는 각각 다른 물리 서버에 등록된다. 전술한 예에서, 제1 액티브 가상 머신(111)은 제3 물리 서버(130)에 등록되고, 제4 스탠바이 가상 머신(112)는 제2 물리 서버(120)에 등록된다. 이러한 등록은 제1 물리 서버(110)에 장애가 발생하기 전 제1 액티브 가상 머신(111) 및 제4 스탠바이 가상 머신(112) 각각의 메모리 상 스냅샷 또는 대응하는 가상 머신을 복제하는 것을 수반할 수 있다. 예컨대, 제1 액티브 가상 머신(111)을 제3 물리 서버(130)에 등록하는 것은 공유 메모리로부터 제1 액티브 가상 머신(111)의 최종 스냅샷을 가져오거나, 제2 물리 서버(120)의 메모리에 포함된 제1 스탠바이 가상 머신(122)을 미러링하는 것을 수반할 수 있다.
도 3은 본 발명의 실시예에 따라 클러스터 시스템에서 서비스 가용성을 제공하는 과정을 도시한 순서도이다.
서비스 가용성 제공 과정(300)이 시작되면, 클러스터 시스템(100)의 물리 서버(110, 120, 130, 140)는 각각 자신의 상태를 나타내는 하트비트 신호를 주기적으로 송신한다(310). 각 물리 서버(110, 120, 130, 140)에 등록된 가상 머신을 나타내는 등록 정보가 각 물리 서버(110, 120, 130, 140)에 포함될 수 있다. 이러한 등록 정보는 전술한 정보 테이블(200)의 포맷을 가질 수 있다.
하트비트 신호에 대해 응답하지 않는 물리 서버가 없는 경우(320), 각 물리 서버(110, 120, 130, 140)는 계속해서 하트비트 신호를 송신한다(310).
하트비트 신호에 대해 응답하지 않는 물리 서버가 존재하는 경우(320), 해당 물리 서버에 장애가 발생하였다고 판정할 수 있다. 이러한 경우, 장애가 발생한 물리 서버에 등록된 액티브 가상 머신에 대응하고 다른 물리 서버에 등록된 스탠바이 가상 머신에서 페일오버하도록 한다(330). 예컨대, 제1 물리 서버(110)에서 장애가 발생하였다고 판정하는 것에 응답하여, 제2 물리 서버(120)는 제1 액티브 가상 머신(111)에 대응하고 제2 물리 서버(120))에 등록된 제1 스탠바이 가상 머신(122)으로 하여금 제1 액티브 가상 머신(111)을 페일오버하도록 한다.
이러한 페일오버 이후, 장애가 발생한 물리 서버를 제외한 나머지 물리 서버들에 대하여 등록 정보를 재구성한다(340). 이러한 재구성은 액티브 가상 머신과 그에 대응하는 스탠바이 가상 머신이 동일한 물리 서버에 등록되지 않도록 하고, 또한 장애가 발생한 물리 서버의 가상 머신을 가용 자원이 충분한 물리 서버에 우선적으로 연관시켜 등록되도록 하는 로직에 기반할 수 있다. 편의상, 장애 발생 전의 등록 정보를 장애 전(pre-failure) 등록 정보라고 지칭하고, 장애 발생 후 재구성/갱신된 등록 정보를 장애 후(post-failure) 등록 정보라고 지칭한다.
예컨대, 제1 물리 서버(110)에 장애가 발생한 경우, 장애 후 등록 정보는 제1 물리 서버(110)의 제1 액티브 가상 머신(111)을 다른 물리 서버 중 하나의 물리 서버와 연관시키고, 제1 물리 서버(110)의 제4 스탠바이 가상 머신(121)을 다른 물리 서버 중 다른 하나의 물리 서버와 연관시킨다. 다만, 제1 액티브 가상 머신(111)과 연관된 물리 서버는 제1 액티브 가상 머신(111)을 페일오버한 제1 스탠바이 가상 머신(122)이 등록된 제2 물리 서버(120)와 상이하고, 제4 스탠바이 가상 머신(112)과 연관된 물리 서버는 제4 스탠바이 가상 머신(112)에 대응하는 제4 액티브 가상 머신(141)이 등록된 제4 물리 서버(140)와 상이하다. 전술한 바와 같이, 장애 후 등록 정보를 구성하기 위하여, 장애가 발생한 제1 물리 서버(110)의 가상 머신(111, 112)과 연관될 물리 서버가, 물리 서버들(120, 130, 140) 중 일부의 가용 자원에 기반하여 선택될 수 있다.
이러한 장애 후 등록 정보는 제2 물리 서버(120), 제3 물리 서버(130) 및 제4 물리 서버(140) 각각에 저장된다. 장애 발생 후 제1 물리 서버(110)가 다시 정상적으로 운영되는 경우, 제1 물리 서버(110)에도 장애 후 등록 정보(만일 장애 후 등록 정보가 동적으로 변경된 경우에는 그와 같이 변경된 등록 정보)가 저장될 수 있다.
장애 후 등록 정보(즉, 재구성된 등록 정보)에 따라, 장애가 발생한 물리서버의 각 가상 머신을 다른 물리 서버에 등록한다(350). 장애가 발생한 물리 서버를 제외한 나머지 서버들 각각에 재구성된 등록 정보에 따라 등록되지 않은 가상 머신이 존재한다면(360), 계속해서 그 가상 머신을 해당 물리 서버에 등록한다(350). 재구성된 등록 정보에 따라 가상 머신들이 해당하는 물리 서버에 등록되었다면(350), 과정(300)은 종료된다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 클러스터 시스템
110, 120, 130, 140: 물리 서버
111, 121, 131, 141: 액티브 가상 머신
112, 122, 132, 142: 스탠바이 가상 머신
116, 126, 136, 146: 정보 테이블

Claims (27)

  1. 클러스터 시스템으로서,
    액티브(active) 가상 머신이 등록된 제1 물리 서버; 및
    복수의 물리 서버를 포함하되,
    상기 복수의 물리 서버는, 상기 액티브 가상 머신에 대응하고 상기 제1 물리 서버에 장애가 발생한 경우에 상기 액티브 가상 머신을 페일오버(failover)하는 스탠바이(standby) 가상 머신이 등록된 제2 물리 서버를 포함하고,
    상기 장애가 발생한 경우, 상기 복수의 물리 서버 각각은 장애 후(post-failure) 등록 정보를 저장하며, 상기 장애 후 등록 정보는 상기 액티브 가상 머신을 상기 복수의 물리 서버 중 하나의 물리 서버와 연관시키되, 상기 하나의 물리 서버는 상기 제2 물리 서버와 상이한,
    클러스터 시스템.
  2. 제1항에 있어서,
    상기 장애 후 등록 정보의 구성을 위하여, 상기 하나의 물리 서버는, 상기 복수의 물리 서버 중 상기 제2 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 제2 물리 서버와 상이한 상기 물리 서버들로부터 선택되는,
    클러스터 시스템.
  3. 제1항에 있어서,
    상기 장애 후 등록 정보에 따라, 상기 액티브 가상 머신은 상기 하나의 물리 서버에 등록되는,
    클러스터 시스템.
  4. 제1항에 있어서,
    상기 장애 후 등록 정보는 또한 상기 제1 물리 서버에 등록된 다른 스탠바이 가상 머신을 상기 복수의 물리 서버 중 다른 하나의 물리 서버와 연관시키되, 상기 다른 하나의 물리 서버는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 물리 서버와 상이한,
    클러스터 시스템.
  5. 제4항에 있어서,
    상기 장애 후 등록 정보의 구성을 위하여, 상기 다른 하나의 물리 서버는, 상기 복수의 물리 서버 중 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 상기 물리 서버들로부터 선택되는,
    클러스터 시스템.
  6. 제4항에 있어서,
    상기 장애 후 등록 정보에 따라, 상기 다른 스탠바이 가상 머신은 상기 다른 하나의 물리 서버에 등록되는,
    클러스터 시스템.
  7. 제1항에 있어서,
    상기 장애가 발생하기 전, 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각은 장애 전(pre-failure) 등록 정보를 저장하고, 상기 장애 후 등록 정보는 상기 장애 전 등록 정보를 갱신함으로써 구성되며, 상기 장애 전 등록 정보는 상기 장애가 발생하기 전 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 등록된 가상 머신을 나타내는,
    클러스터 시스템.
  8. 제7항에 있어서,
    상기 장애가 발생하기 전, 상기 장애 전 등록 정보는 상기 제1 물리 서버의 상태 및 상기 복수의 물리 서버 각각의 상태에 기반하여 변경 가능한,
    클러스터 시스템.
  9. 제7항에 있어서,
    상기 장애 전 등록 정보는 또한 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원을 나타내는,
    클러스터 시스템.
  10. 제8항에 있어서,
    상기 장애 전 등록 정보의 변경은, 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행되는,
    클러스터 시스템.
  11. 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법으로서,
    액티브 가상 머신이 등록된 제1 물리 서버에 장애가 발생한 경우, 복수의 물리 서버 중 제2 물리 서버에 등록되고 상기 액티브 가상 머신에 대응하는 스탠바이 가상 머신으로 하여금 상기 액티브 가상 머신을 페일오버하도록 하는 단계; 및
    상기 장애가 발생한 경우, 상기 복수의 물리 서버 각각에 장애 후 등록 정보를 저장시키는 단계를 포함하고,
    상기 장애 후 등록 정보는 상기 액티브 가상 머신을 상기 복수의 물리 서버 중 하나의 물리 서버와 연관시키되, 상기 하나의 물리 서버는 상기 제2 물리 서버와 상이한,
    서비스 가용성 제공 방법.
  12. 제11항에 있어서,
    상기 장애 후 등록 정보의 구성을 위하여, 상기 하나의 물리 서버를, 상기 복수의 물리 서버 중 상기 제2 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 제2 물리 서버와 상이한 상기 물리 서버들로부터 선택하는 단계를 더 포함하는,
    서비스 가용성 제공 방법.
  13. 제11항에 있어서,
    상기 장애 후 등록 정보에 따라, 상기 액티브 가상 머신을 상기 하나의 물리 서버에 등록시키는 단계를 더 포함하는,
    서비스 가용성 제공 방법.
  14. 제11항에 있어서,
    상기 장애 후 등록 정보는 또한 상기 제1 물리 서버에 등록된 다른 스탠바이 가상 머신을 상기 복수의 물리 서버 중 다른 하나의 물리 서버와 연관시키되, 상기 다른 하나의 물리 서버는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 물리 서버와 상이한,
    서비스 가용성 제공 방법.
  15. 제14항에 있어서,
    상기 장애 후 등록 정보의 구성을 위하여, 상기 다른 하나의 물리 서버를, 상기 복수의 물리 서버 중 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 물리 서버들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 물리 서버와 상이한 상기 물리 서버들로부터 선택하는 단계를 더 포함하는,
    서비스 가용성 제공 방법.
  16. 제14항에 있어서,
    상기 장애 후 등록 정보에 따라, 상기 다른 스탠바이 가상 머신을 상기 다른 하나의 물리 서버에 등록시키는 단계를 더 포함하는,
    서비스 가용성 제공 방법.
  17. 제11항에 있어서,
    상기 장애가 발생하기 전, 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 장애 전 등록 정보를 저장시키는 단계; 및
    상기 장애 전 등록 정보를 갱신함으로써 상기 장애 후 등록 정보를 구성하는 단계를 더 포함하고,
    상기 장애 전 등록 정보는 상기 장애가 발생하기 전 상기 제1 물리 서버 및 상기 복수의 물리 서버 각각에 등록된 가상 머신을 나타내는,
    서비스 가용성 제공 방법.
  18. 제17항에 있어서,
    상기 장애가 발생하기 전, 상기 제1 물리 서버의 상태 및 상기 복수의 물리 서버 각각의 상태에 기반하여 상기 장애 전 등록 정보를 변경하는 단계를 더 포함하는,
    서비스 가용성 제공 방법.
  19. 제17항에 있어서,
    상기 장애 전 등록 정보는 또한 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원을 나타내는,
    서비스 가용성 제공 방법.
  20. 제18항에 있어서,
    상기 장애 전 등록 정보의 변경은, 상기 제1 물리 서버의 가용 자원 및 상기 복수의 물리 서버 각각의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행되는,
    서비스 가용성 제공 방법.
  21. 서버 컴퓨터로서,
    프로세서 및 메모리를 포함하며, 상기 메모리는,
    상기 서버 컴퓨터를 포함하는 복수의 서버 컴퓨터들 및 다른 서버 컴퓨터 각각에 등록된 가상 머신을 나타내는 등록 정보;
    상기 다른 서버 컴퓨터에 등록된 액티브 가상 머신에 대응하는 스탠바이 가상 머신; 및
    컴퓨터 실행가능 명령어를 포함하고,
    상기 컴퓨터 실행가능 명령어는 상기 프로세서에 의해 실행되는 경우,
    상기 다른 서버 컴퓨터에 장애가 발생하였다는 판정에 응답하여, 상기 스탠바이 가상 머신으로 하여금 상기 액티브 가상 머신을 페일오버하도록 하는 동작; 및
    상기 판정에 응답하여, 상기 등록 정보를 갱신하는 동작을 수행하도록 구성되며,
    상기 갱신된 등록 정보는 상기 액티브 가상 머신을 상기 복수의 서버 컴퓨터들 중 하나와 연관시키되, 상기 하나는 상기 서버 컴퓨터와 상이한,
    서버 컴퓨터.
  22. 제21항에 있어서,
    상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 등록 정보의 갱신을 위하여, 상기 복수의 서버 컴퓨터들 중 상기 서버 컴퓨터와 상이한 서버 컴퓨터들 각각의 가용 자원에 기반하여, 상기 서버 컴퓨터와 상이한 상기 서버 컴퓨터들로부터 상기 하나를 선택하는 동작을 수행하도록 구성되는,
    서버 컴퓨터.
  23. 제21항에 있어서,
    상기 다른 서버 컴퓨터에는 다른 스탠바이 가상 머신이 또한 등록되고,
    상기 갱신된 등록 정보는 또한 상기 다른 스탠바이 가상 머신을 상기 복수의 서버 컴퓨터들 중 다른 하나와 연관시키되, 상기 다른 하나는 상기 다른 스탠바이 가상 머신에 대응하는 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이한,
    서버 컴퓨터.
  24. 제23항에 있어서,
    상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 등록 정보의 갱신을 위하여, 상기 복수의 서버 컴퓨터들 중 상기 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이한 서버 컴퓨터들 각각의 가용 자원에 기반하여, 상기 다른 액티브 가상 머신이 등록된 서버 컴퓨터와 상이한 상기 서버 컴퓨터들로부터 상기 다른 하나를 선택하는 동작을 수행하도록 구성되는,
    서버 컴퓨터.
  25. 제21항에 있어서,
    상기 컴퓨터 실행가능 명령어는 또한 상기 프로세서에 의해 실행되는 경우, 상기 장애가 발생하기 전, 상기 복수의 서버 컴퓨터들 각각의 상태 및 상기 다른 서버 컴퓨터의 상태에 기반하여 상기 등록 정보를 변경하는 동작을 수행하도록 구성되는,
    서버 컴퓨터.
  26. 제21항에 있어서,
    상기 등록 정보는 또한 상기 다른 서버 컴퓨터의 가용 자원 및 상기 복수의 서버 컴퓨터들 각각의 가용 자원을 나타내는,
    서버 컴퓨터.
  27. 제25항에 있어서,
    상기 등록 정보를 변경하는 동작은, 상기 복수의 서버 컴퓨터들 각각의 가용 자원 및 상기 다른 서버 컴퓨터의 가용 자원 중 적어도 하나의 변화량이 임계값 이상인 경우에 수행되는,
    서버 컴퓨터.
KR1020130108007A 2013-09-09 2013-09-09 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법 KR101558047B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130108007A KR101558047B1 (ko) 2013-09-09 2013-09-09 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법
CN201410455215.2A CN104427002B (zh) 2013-09-09 2014-09-09 集群系统及用于在集群系统中提供服务可用性的方法
US14/481,444 US9575785B2 (en) 2013-09-09 2014-09-09 Cluster system and method for providing service availability in cluster system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130108007A KR101558047B1 (ko) 2013-09-09 2013-09-09 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법

Publications (2)

Publication Number Publication Date
KR20150029181A KR20150029181A (ko) 2015-03-18
KR101558047B1 true KR101558047B1 (ko) 2015-10-06

Family

ID=52626747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130108007A KR101558047B1 (ko) 2013-09-09 2013-09-09 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법

Country Status (3)

Country Link
US (1) US9575785B2 (ko)
KR (1) KR101558047B1 (ko)
CN (1) CN104427002B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328384B1 (ko) 2020-07-23 2021-11-18 아콘소프트 주식회사 관리형 클러스터 자동 프로비저닝 엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102239177B1 (ko) * 2014-09-03 2021-04-09 주식회사 케이티 클라우드 서버 관리 방법, 이를 수행하는 클라우드 서버 관리 장치 및 클라우드 서비스 관리 시스템
CN107949831B (zh) * 2015-09-08 2021-03-16 株式会社东芝 多重化处理系统、多重化处理方法以及程序
CN105183588B (zh) * 2015-09-30 2018-10-30 华为技术有限公司 一种虚拟机的重建方法和装置
KR101883251B1 (ko) 2015-10-07 2018-07-31 주식회사 엘지유플러스 가상 시스템에서 장애 조치를 판단하는 장치 및 그 방법
US10341128B2 (en) * 2016-03-12 2019-07-02 Wipro Limited Method and system for optimizing usage of network resources in a communication network
US10552272B2 (en) * 2016-12-14 2020-02-04 Nutanix, Inc. Maintaining high availability during N-node failover
CN108183473A (zh) * 2017-12-13 2018-06-19 国网上海市电力公司 一种集群电动汽车参与辅助服务市场的优化投标方法
JP6813010B2 (ja) * 2018-08-31 2021-01-13 横河電機株式会社 可用性のシステム、方法、およびプログラム
JP7332280B2 (ja) * 2018-09-10 2023-08-23 横河電機株式会社 冗長化システム、冗長化プログラム、及び情報処理装置
CN110149366B (zh) * 2019-04-16 2022-03-18 平安科技(深圳)有限公司 提高集群系统可用性的方法、装置和计算机设备
CN110286937B (zh) * 2019-07-04 2021-06-15 深圳市指尖互动娱乐有限公司 一种分布式软件运行的方法及其系统
KR102084031B1 (ko) * 2019-08-07 2020-05-29 주식회사 도시엔컴 복수 서버의 로컬 저장소를 통합 관리하는 방법 및 그 장치
US20230128370A1 (en) * 2021-10-21 2023-04-27 EMC IP Holding Company LLC Data Center Restoration and Migration
KR20230174137A (ko) * 2022-06-20 2023-12-27 삼성전자주식회사 컨테이너 기반 다중 클러스터 환경에서 데이터 동기화를 위한 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100832543B1 (ko) 2006-12-08 2008-05-27 한국전자통신연구원 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155912A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. Server cluster having a virtual server
KR100930576B1 (ko) * 2006-12-04 2009-12-09 한국전자통신연구원 가상화 기반 고가용성 클러스터 시스템 및 고가용성클러스터 시스템에서 장애 관리 방법
US9354927B2 (en) * 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
WO2010122709A1 (ja) * 2009-04-23 2010-10-28 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
US8352482B2 (en) * 2009-07-21 2013-01-08 Vmware, Inc. System and method for replicating disk images in a cloud computing based virtual machine file system
CN101876926B (zh) * 2009-11-26 2012-06-20 北京航空航天大学 一种非对称结构的软件三机热备容错方法
US8429449B2 (en) * 2010-03-01 2013-04-23 International Business Machines Corporation Optimized placement of virtual machines in a network environment
CN102271145A (zh) * 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
US8639815B2 (en) * 2011-08-31 2014-01-28 International Business Machines Corporation Selecting a primary-secondary host pair for mirroring virtual machines
CN102346779B (zh) * 2011-10-18 2013-07-31 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
JP6365306B2 (ja) * 2012-11-21 2018-08-01 日本電気株式会社 クラウド環境提供システム、サービス管理装置、経路制御方法及びプログラム
US9032157B2 (en) * 2012-12-11 2015-05-12 International Business Machines Corporation Virtual machine failover
US9405642B2 (en) * 2013-01-29 2016-08-02 Red Hat Israel, Ltd. Providing virtual machine migration reliability using an intermediary storage device
CN103152419B (zh) * 2013-03-08 2016-04-20 中标软件有限公司 一种云计算平台的高可用集群管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100832543B1 (ko) 2006-12-08 2008-05-27 한국전자통신연구원 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328384B1 (ko) 2020-07-23 2021-11-18 아콘소프트 주식회사 관리형 클러스터 자동 프로비저닝 엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체

Also Published As

Publication number Publication date
CN104427002A (zh) 2015-03-18
CN104427002B (zh) 2018-02-16
US20150074447A1 (en) 2015-03-12
US9575785B2 (en) 2017-02-21
KR20150029181A (ko) 2015-03-18

Similar Documents

Publication Publication Date Title
KR101558047B1 (ko) 클러스터 시스템 및 클러스터 시스템에서 서비스 가용성을 제공하기 위한 방법
US11016857B2 (en) Microcheckpointing with service processor
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
US9590843B2 (en) Method and system for providing distributed management in a networked virtualization environment
JP5600361B2 (ja) ハイパーバイザベースのサーバ二重化システム、その方法およびサーバ二重化コンピュータプログラムが記録された記録媒体
US20200233693A1 (en) Maintaining High Availability During Network Partitions for Virtual Machines Stored on Distributed Object-Based Storage
US9727273B1 (en) Scalable clusterwide de-duplication
US10218564B2 (en) Unified replication mechanism for fault-tolerance of state
US8417737B2 (en) Online database availability during upgrade
EP3459211B1 (en) High-availability network controller
US9495259B2 (en) Orchestrating high availability failover for virtual machines stored on distributed object-based storage
US20130036323A1 (en) Fault-tolerant replication architecture
US9632813B2 (en) High availability for virtual machines in nested hypervisors
US9465698B2 (en) Systems and/or methods for data recovery in distributed, scalable multi-tenant environments
WO2013188332A1 (en) Software handling of hardware error handling in hypervisor-based systems
GB2520808A (en) Process control systems and methods
US20150378857A1 (en) Persisting High Availability Protection State for Virtual Machines Stored on Distributed Object-Based Storage
US20170212815A1 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
JP2013508839A5 (ko)
US10642713B1 (en) Object-based monitoring and remediation system
US11392423B2 (en) Method for running a quorum-based system by dynamically managing the quorum
US10756953B1 (en) Method and system of seamlessly reconfiguring a data center after a failure
US10652125B2 (en) System and method for managing multiple remote-office and branch-office (ROBO) sites
JP6042139B2 (ja) サーバの単独切替システム及びその方法
CN103729263B (zh) 一种高成功率的xen虚拟机容错机制

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 4