KR20120016298A - 상태 보존 및 데이터 손실 감소 방법 및 시스템 - Google Patents

상태 보존 및 데이터 손실 감소 방법 및 시스템 Download PDF

Info

Publication number
KR20120016298A
KR20120016298A KR1020117031644A KR20117031644A KR20120016298A KR 20120016298 A KR20120016298 A KR 20120016298A KR 1020117031644 A KR1020117031644 A KR 1020117031644A KR 20117031644 A KR20117031644 A KR 20117031644A KR 20120016298 A KR20120016298 A KR 20120016298A
Authority
KR
South Korea
Prior art keywords
state
data loss
standby
primary
reduction system
Prior art date
Application number
KR1020117031644A
Other languages
English (en)
Other versions
KR101280754B1 (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 KR20120016298A publication Critical patent/KR20120016298A/ko
Application granted granted Critical
Publication of KR101280754B1 publication Critical patent/KR101280754B1/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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/2048Error 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 where the redundant components share neither address space nor persistent storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • 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/2038Error 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 with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

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)
  • Retry When Errors Occur (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

1차 시스템이 실패하면 장애극복 동안 스탠바이 서버에서 패킷 손실이 초래된다. 현재 장애극복 인터벌 동안 손실되는 1차 시스템으로 오는 소정 양의 중요한 패킷 트래픽이 항상 존재한다. 기존의 솔루션으로 장애극복 동안의 이 패킷 손실은 불가피하다. 문제는 이 정보가 손실되는 때에, 스탠바이 서버는 마지막 커밋의 상태를 갖고, 그래서 스탠바이 서버는 오래되어서 마지막 커밋의 시점에서의 시스템 상태에 대해서만 정확한 시스템 상태를 나타내는 상태 정보를 가질 것이라는 점이다. 한 가지 해결책은 1차 가상 머신에서 실행되는 가상 소프트웨어 애플리케이션과 같은 1차 소프트웨어 애플리케이션으로 전달될 모든 인바운드 데이터 패킷이 스탠바이 시스템에서 실행되는 소프트웨어 애플리케이션의 백업 이미지로의 동시적 전달을 위해 네트워크 복제 장치에 의해 연속적으로 모니터링되고 복사되는 방법이다.

Description

상태 보존 및 데이터 손실 감소 방법 및 시스템{PACKET MIRRORING BETWEEN PRIMARY AND SECONDARY VIRTUALIZED SOFTWARE IMAGES FOR IMPROVED SYSTEM FAILOVER PERFORMANCE}
하나의 예시적인 양상은 시스템 장애극복(failover) 성능을 개선하기 위한 것이다. 더 구체적으로는, 한 가지 예시적인 양상은 고 가용성(High Availability)(HA) 소프트웨어 환경에서 개선된 시스템 장애극복 성능을 위한 것이다.
첨단(state-of-the-art)의 가상 머신(VM; Virtual Machine) 플랫폼 및 기술을 이용하는 소프트웨어 애플리케이션의 복제는 소프트웨어 애플리케이션 사용자에게 높은 가용성 보장을 제공하는 매우 강력하고 유연한 방법이다. 애플리케이션 벤더는 동기화되어(synchronously) 실행되지만 서로 독립하여 실행되는 소프트웨어 애플리케이션의 다수 이미지 (또는 사본)을 생성함으로써 그들의 솔루션으로 신뢰성(reliability)을 구축하기 위해 VM 기술을 이용할 수 있다. 이들 이미지는, 동일한 물리적 장치 상에서, 예를 들어, 범용 애플리케이션 서버에서 또는 다수의 디커플된 VM 컨테이너 내에서 실해될 수 있거나, 그들은 디커플된 VM 컨테이너에서 다수의 물리적 컴퓨터에 걸쳐 개발될 수 있다. 다수의 VM 복제(replication) 방식이 존재하지만, 일반적으로, VM 솔루션은 사용자에 대한 소프트웨어 서비스를 전달하는 1차(primary) 소프트웨어 이미지를 갖고, 장애 발생 시에 1차를 대체할 수 있는 스탠바이 서버에서의 2차 또는 3차 백업 이미지를 갖는다. 백업 이미지는 일반적으로, 데이터 동기화 업데이트가 발생한 최종 시간 이래로 발생한 변화를 추적하도록 백업 서버의 데이터베이스 및 데이터 구조를 업데이트하기 위해 이산(discrete) 시간 인터벌에서 동기화된다. 동기화는 “커밋(commit)”이라고 지칭되고, 이들 솔루션은 소프트웨어 애플리케이션 벤더가 그 사용자가 소프트웨어 애플리케이션 서비스에 대한 신뢰할 수 있는 액세스를 받을 수 있도록 보장하는 능력을 극적으로 개선한다.
고 가용성 환경에서, 1차(능동) 및 2차(수동) 시스템은, 탠덤(tandem)과 스트라터스(stratus) 내결함(fault-tolerant) 시스템과 같은 타이트 잠금 스텝(tight lock step) 또는 덜 비싼 클러스터와 같은 느슨한 잠금 스텝(lose-lock step) 중 하나에서 상태의 동기화를 보장하기 위해 함께 동작한다. 시스템의 어떤 레벨에서 상태 변화가 있을 때마다, 1차 시스템은 2차 시스템에 요약 상태를 전송하고, 2차 시스템은 요약 상태를 이용하여 1차 시스템에 동기화하도록 그 상태를 조정한다. 1차 시스템이 마지막 체크포인팅(checkpointing) 이래로 축적한 여하한 정보를 전송할 수 있게 되기 전에 1차 시스템이 실패(fail)한 때에, 그 정보는 보통 수신된 날짜에 기초하여 2차 시스템에 의해 국지적으로 반복(replay)되고 1차 시스템을 대체하기 전에 자신을 동기화하려고 시도한다.
그러나, 소프트웨어 애플리케이션의 VM 복제에는 해결책이 필요한 중요한 문제점이 있다. 이 문제는 1차 시스템이 실패한 때에 발생하는, 장애극복 동안의 스탠바이 서버에서의 패킷 손실이다. 현재 장애극복 인터벌 동안 손실되는 1차 시스템으로 오는(inbound) 소정 양의 중요한 패킷 트래픽이 항상 존재한다. 기존의 솔루션으로 장애극복 동안의 이 패킷 손실은 불가피하다. 문제는 이 정보가 손실되는 때에, 스탠바이 서버는 마지막 커밋의 상태를 갖고, 그래서 스탠바이 서버는 오래되어서 마지막 커밋의 시점에서의 시스템 상태에 대해서만 정확한 시스템 상태를 나타내는 상태 정보를 가질 것이라는 점이다.
이 문제를 극복하기 위한 시도의 기존 예는 링크 바운싱(link bouncing)이다. 레무스(Remus)(http://people.cs.ubc.ca/~brendan/papers/remus-nsdi08.pdf)는 능동 버퍼에서 인출(outgoing) 패킷을 버퍼링함으로써 동일한 문제를 해결하려고 했다. 그러나 레무스 구현은 큰 성능 페널티의 문제가 있었고, 그래서 대부분의 제품 소프트웨어 환경에서는 사용가능하지 않다. 레무스에서, 성능 페널티의 주 원인은 손실될 네트워크 패킷의 송신이 다음 체크포인트/커밋까지 지연된다는 것이다.
역사적으로, 데이터로써의 장애극복을 위한 기본 방식은 체크포인트 인터벌의 사용인데, 인터벌 동안 데이터는 백업 서버에서 최신으로(current) 된다. 그러나, 위에서 논의한 바와 같이, 가용 솔루션은 장애극복 동안 데이터를 잃거나, 아무리 좋아도, 장애극복 동안 인입(incoming) 데이터를 버퍼링하는 경우 그들은 심대한 성능 페널티를 겪는다.
하나의 예시적인 실시형태에 따르면, 가상 소프트웨어 애플리케이션과 같이 1차 가상 머신(VM)에서 실행되는 1차 소프트웨어 애플리케이션 또는 시스템으로 전달될 목적인 모든 인바운드 네트워크 패킷이, 스탠바이 시스템 또는 VM 상에서 실행되는 소프트웨어 애플리케이션의 백업 이미지로의 동시적 전달을 위해 NRD(Network Replication Device 또는 driver; 네트워크 복제 장치 또는 드라이버)에 의해 연속적으로 모니터링되고 포크(fork)되거나 복사되는 방법을 구현하는 시스템 및 메커니즘이 구성된다. 이 데이터는 감소된 또는 제로(0) 애플리케이션 다운 타임을 달성하려는 목표로 실시간 또는 거의 실시간으로 NRD에 의해 포크되거나 복사되고 스탠바이 애플리케이션 이미지로 전달된다. NRD의 두 번째 예시적인 이익은 장애극복 이벤트 동안에 패킷 손실의 결과로서의 애플리케이션 성능 열화를 감소시키거나 없앨 수 있게 하는 능력이다. 일 예시적인 실시형태는 본 기술이 적용될 VM 플랫폼/시스템이 현재의 “첨단” 체크포인트 커밋 및 장애 검출 매커니즘을 포함한다고 가정한다.
체크포인트 커밋 및 장애 검출 시스템(들)이 배치되면, 네트워크 복제 NRD 기술을 위한 기본 로직은 소프트웨어 애플리케이션 이미지 및 VM을 호스팅하는 서버 또는 서버들 상에 같이 거주하여(co-resident) 실행되는 소프트웨어 및/또는 하드웨어에서 완전히 구현되는 네트워크 복제 드라이버로서 구현될 수 있다. 다르게는, 그리고 아마도 다른 예시적인 구현에서, NRD는 소프트웨어 애플리케이션 VM 이미지를 호스팅하는 서버 또는 서버들과 물리적으로 독립적으로 전원을 공급받고 배치되는 독립(standalone) “범프 인 더 와이어(bump-in-the-wire)” 임베디드 컴퓨팅 장치(들)로서 구현될 수 있다. 소프트웨어 애플리케이션의 1차 및 2차 가상 이미지를 호스팅하는 1차 및 2차 물리적 서버의 상위(superset) 경우에서, 일 예시적인 실시형태는 1차(활성) 및 2차(스탠바이) NRD를 포함할 수도 있다.
NRD는 능동 및/또는 스탠바이 서버 또는 기기(appliance)에서 또는 네트워크 내 다른 위치에서 실행될 수 있다. 일 예시적인 실시형태에 따르면, 활성 NRD는 VM에 도착하는 패킷을 복사하고, 목적지 주소를 스탠바이 목적지로 변경하고 패킷을 스탠바이 서버 장치로 전달할 것이다. 이 예시적인 실시형태에서, 스탠바이 목적지는, 시스템이 하이퍼바이저 환경에서 구현되는 스탠바이 DOM0(도메인 제로) 위치일 수 있다. 그러나, 일반적으로, 이 위치는 시스템 내의 여하한 곳일 수 있다. 스탠바이 NRD는 다음과 같이 패킷을 버퍼링할 것이다:
- 체크포인트 커밋 시에, 스탠바이 NRD는 커밋까지의 버퍼 네트워크 패킷을 소거할 것이다.
- 장애 검출 시에, 스탠바이 NRD는 가상 머신에 대한 새로이 활성화된 스탠바이 장치로 버퍼 패킷을 전달할 것이다.
예시적인 실시형태는 디커플된 범프 인 더 와이어 버퍼링 장치의 세트를 이용하는데, 동작은 개념적으로 동일하다. 그러나 구현에서, 패킷은 1차 VM을 실행하는 1차 서버에 도착하기 전에 1차 “범프” 장치에 의해 인터셉트된다. 그들은 그 후 장래극복의 경우에 백업/스탠바이 소프트웨어 이미지를 위한 버퍼링을 위해 2차 범프 인 더 와이어로 포크된다.
범프 인 더 와이어 구현으로, 1차가 실패하면, 이것이 재앙적인 하드웨어 실패이기는 하지만, 범프 장치는 1차로의 인바운드 트래픽 중 어떤 것도 손실되지 않음을 보장할 수 있다. 장애 시에, 1차로의 인바운드 데이터가 손실되지 않았으므로 2차 이미지는 그 후 개시되어 1차의 상태를 완전히 복원하는 능력으로 트래픽을 핸들링하기 시작할 수 있다. 또한, 범프 장치는 분산된, 체크포인트 커밋 인터벌에서만 데이터를 미러링하는 것으로 제한되지 않기 때문에 성능이 희생되지 않는다. 이 시나리오의 일부로서, 2차 범프 및 1차 범프는 장애극복 시에 1차 범프에서 2파 범프로 그리고 역으로 역할을 전환할 수 있다. 장애 후에 1차와 같이 동작하는 2차 범프는, 지금은 2차의 역할을 하는 이전 1차 범프였던 것의 데이터를 미러링하기 시작할 수 있다.
한편, 실패한 1차 서버는 모든 범프 장치가 인터럽트도지 않은 동작을 계속하는 동안 대체되거나 재시작될 수 있다. 1차 서버가 대체/재시작되면, 시스템은 이제 복원 “스왑백”을 할 수 있는데, 여기서 활성 “백업” 서버가 상태, 트래픽 및 소유 세션 동작을 대체/재시작된 “1차” 서버로 다시 커밋한다. 이는 다시 상태 또는 가용성을 잃지 않고 가능하며, 2개의 물리적으로 분리된 범프 장치를 이용한다.
종래 솔루션에 대한 이 방식의 한 가지 예시적인 장점은, 멀티-이미지 가상 소프트웨어 애플리케이션이 연속적이고 인터럽트되지 않은 서비스를, 재앙적인 1차 하드웨어 또는 소프트웨어 이미지 장애에 직면해서도, 소프트웨어 애플리케이션 사용자에게 제공할 수 있도록 한다는 것이다.
다른 예시적인 양상은 가상 소프트웨어 이미지로의 인바운드 트래픽의 핸들링을 그 가상 소프트웨어 애플리케이션의 1차 동작으로부터 디커플링(decoupling)하기 위한 것이다. 추가적으로, 또한 흥미로은 양상은, 이 조화된 버퍼링 동작을 수행하는 독립적으로 배치된 범프 인더 와이어 장치의 세트로 이 트래픽 핸들링을 물리적으로 디커플링하는 아이디어에서 찾을 수 있다.
다른 예시적인 실시형태는 VM 환경에서의 네트워크 복제, 특히 VM 복제에 관한 것이다. 네트워크 정보, 애플리케이션 데이터 및 일반적으로 여하한 유형의 데이터, 시스템 데이트 등 중 하나 이상을 버퍼에 저장하는 VM 복제는 가상 시스템에서 높은 액세스를 제공하는 매우 주요한 방법이 되고 있다. 그러나 VM 복제와 관련하여 하나의 큰 이슈가 있고, 완벽한 솔루션을 존재하지 않는다. 예시적인 이슈는 장애극복 동안의 패킷 손실이다. 장애극복 동안 VM 다운타임이 있고, 스탠바이는 통상 모든 체크포인트 인터벌에서 동기화되므로, 장애극복 동안의 패킷 손실은 불가피하다.
그러므로, 한 가지 예시적인 실시형태는 실시간으로 스탠바이 서버에서 네트워크 패킷을 퍼버링하는 것이다. 이는 적어도 시스템 성능의 현저한 증가를 제공한다. 그러나 이 가정은 다른 수단에 의한 체크포인트 커밋 및 장애 검출이 구비되는 시스템에 의해 예측된다.
예시적인 실시형태에 따르면, 네트워크 복제에 대한 기본 로직은 네트워크 복제 드라이버로수 구현될 수 있다. NRD는 하나 이상의 활성 및 스탠바이 서버에서 실행될 수 있고, 선택적으로, 통신 또는 컴퓨팅 네트워크와 함께 다른 위치에 배치될 수 있다. 활성 NRD는 VM으로 오는 패킷을 복사하고, 목적지 주소를 스탠바이 주소로 변경하며, 패킷을 스탠바이 장치 또는 서버로 보낼 것이다. 스탠바이 NRD는 패킷을 버퍼링하고 이하를 수행할 것이다:
- 체크포인트 커밋 시에, 스탠바이 NRD는 체크포인트까지의 버퍼링된 네트워크 패킷을 소거할 것이다.
- 검출 실패 시에, 스탠바이 NRD는 새로이 활성화된 가상 머신으로 버퍼링된 패킷을 전달할 것이다.
다른 양상은 인출(outgoing) 패킷을 버퍼링하기 보다, 인입(incoming) 네트워크 패킷이 스탠바이 머신, 서버, 장치 또는 가상 머신으로 복사되는 기술에 관한 것이다. 인커밍 패킷의 일부는 불가피하게 장애극복 동안 활성 머신에 도달하지 못하는데, 그 장치가 그 시점에 존재하지 않을 수 있기 때문이다. 그러나, 패킷은 스탠바이 머신을 위해 버퍼에 저장된다. 스탠바이 머신이 대체한 후에, 저장된 네트워크 패킷은 새로이 활성화된 머신 또는 가상 머신으로 반복(replay)될 수 있어 네트워크 패킷 손실에 의한 상태 손실이 최소화된다.
더 구체적으로, 가상 머신 상태 손실은 다음의 방식으로 발생한다. 체크포인팅에 의한 가상 머신 메모리 복제만 있다고 가정하자. 시간 T에서, 활성은 N번째 체크포인팅 중에 있다고 가정하자. 스탠바이는 N-1인 마지막 체크포인트의 상태를 갖는다. 현재의 N번째 체크포인팅 중에, 활성 VM은 “손실 패킷”이라고 불리는 하나의 패킷을, 이 패킷이 그 때 현재 체크포인트를 커밋하기 전에 어떻게 인지 사멸했음을 인정하는 클라이언트로부터 받는다. 그 후, 스탠바이는 마지막 체크포인트 N-1의 상태로부터 다시 시작한다. 그래서 새로이 활성화된 VM은 이제 “손실 패킷”이라고 불리는 패킷을 잃었다. 예시적인 실시형태에 따르면, 스탠바이는 장애 전의 상태를 재생성하기 위해 손실 패킷의 반복 또는 판독을 통해 손실 패킷을 복구할 수 있다.
고 가용성 환경에서, 1차(능동) 및 2차(수동) 시스템은, 탠덤과 스트라터스 내결함 시스템과 같은 타이트 잠금 스텝 또는 덜 비싼 클러스터와 같은 느슨한 잠금 스텝 중 하나에서 상태의 동기화를 보장하기 위해 함께 동작한다. 시스템의 어떤 레벨에서 상태 변화가 있을 때마다, 1차 시스템은 2차 시스템에 요약 상태를 전송하고, 2차 시스템은 요약 상태를 이용하여 1차 시스템에 동기화하도록 그 상태를 조정한다. 1차 시스템이 마지막 체크포인팅 이래로 축적한 여하한 정보를 전송할 수 있게 되기 전에 1차 시스템이 실패한 때에, 그 정보는 보통 수신된 날짜에 기초하여 2차 시스템에 의해 국지적으로 반복되고 1차 시스템을 대체하기 전에 외부에 자신을 동기화하려고 시도한다. 본 기술의 예시적인 양상이, 데이터에 고착하여 이후에 1차로부터 데이터를 전송하는 대신에, 2차 시스템으로 즉시 복사하는 것은 후자의 체크포인트되지 않은 데이터인데, 이는 다음이 2가지 단점을 유발한다:
하나는, 그것이 전송 큐를 지배한다는 것이고, 두 번째는 체크포인트가 1차로부터 전송되는 때에 추가적인 홀드업(holdup)을 유발한다는 것인데, 레무스(Remus) 스타일 고 가용성에서 고 활성의 시간 동안 활성 1차로부터 메모리 리소스 유출(resource-drainage)를 유발한다.
따라서, 2차에 대해 미리 네트워크 데이터그램을 포크하는 초기 오버헤드를 취하는 것은 상술한 단점을 회피하는 이익으로 상쇄된다. 당연히, 1차로부터의 상태-체크포인트 메시지가 도달하는 때에, 이들 버퍼링된 데이터그램은 그 상태를 커밋한 후에 2차에 의해 버려진다.
여기에 설명된 기술은 구체적인 구성에 따라 다수의 장점을 제공할 수 있다. 이들 및 다른 장점은 여기에 포함된 개시로부터 명확할 것이다.
“적어도 하나,”, “하나 이상,” 및 “및/또는”이라는 문구는 동작에 있어 결합적(conjunctive)인 것과 분리적(disjunctive)인 것을 모두 포함하는 개방(open-ended) 표현이다. 예를 들어, “A, B 및 C 중 적어도 하나,” “A, B 또는 C 중 적어도 하나,” “A, B 및 C 중 하나 이상,” “A, B 또는 C 중 하나 이상” 및 “A, B, 및/또는 C”라른 표현 각각은 A 단독, B 단독, C 단독, A와 B 함께, A와 C 함께, B와 C 함께 및 A, B와 C 함께를 의미한다.
“하나” 또는 “일” 엔티티는 그 엔티티 중 하나 이상을 지칭한다. 이와 같이, “일,” “하나 이상” 및 “적어도 하나”라는 용어는 여기서 교환가능하게 사용될 수 있다. “포함하는 (comprising, including)” 및 “갖는”이라는 용어는 교환가능하게 사용될 수 있음을 또한 유의하여야 한다.
여기서 사용되는 “자동”이라는 용어 및 그 변형은 프로세스 또는 동작이 수행되는 때에 중요한 인간의 입력 없이 이루어지는 여하한 프로세스 또는 동작을 지칭한다. 그러나, 프로세스 또는 동작의 수행이 프로세스 또는 동작의 수행 전에 수신되는 사람의 입력-그것이 중요하던 중요하지 않던-을 이용한다고 해도 프로세스 또는 동작은 자동일 수 있다. 사람의 입력은 그러한 입력이 프로세스 또는 동작이 어떻게 수행될 지에 영향을 주는 경우에 중요한 것으로 간주된다. 프로세스 또는 동작의 수행에 동의하는 사람의 입력은 “중요한” 것으로 간주되지 않는다.
여기서 사용되는 “컴퓨터 판독가능 매체”라는 용어는 실행을 위해 프로세스에 명령을 제공하는데 참여하는 여하한 유형의 저장소 및/또는 송신 매체를 지칭한다. 이러한 매체는, 비휘발성 매체, 휘발성 매 및 송신 매체를 포함하지만 이에 제한되지 않는 많은 형태를 취할 수 있다. 비휘발성 매체는, 예를 들어, NVRAM 또는 자기나 광 디스크를 포함한다. 휘발성 매체는 메인 메모리와 같은 동적 메모리를 포함한다. 컴퓨터 판독가능 매체의 통상의 형태는, 예를 들어, 플로피 디스크, 가요성 디스크, 하드 디스크, 자기 테이프 또는 여하한 기타 자기 매체, 자기-광학(magneto-optical) 매체, CD-ROM, 여하한 기타 광학 매체, 펀치 카드, 종이 테이프, 구멍(hole)의 패턴을 갖는 여하한 기타 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM, 메모리 카드와 같은 고체 상태 매체, 여하한 기타 메모리 칩 또는 카트리지, 이후에 설명되는 바와 같은 캐리어 웨이브, 또는 기타 컴퓨터가 판독할 수 있는 여하한 매체를 포함한다. 이메일에 대한 디지털 파일 첨부 또는 기타 자기 포함(self-contained) 정보 아카이브 또는 아카이브의 세트는 유형의 저장 매체에 균등한 배포 매체로 생각된다. 컴퓨터-판독가능 매체가 데이터베이스로서 구성되는 때에, 데이터베이스는, 상대적인, 계층적인(hierarchical), 객체-지향적인 및/또는 등과 같은 여하한 유형의 데이터베이스일 수 있음을 이해할 것이다.
회로 또는 패킷 스위치 유형의 통신이 본 시스템과 사용될 수 있지만, 여기에 개시된 개념 및 기술은 다른 프로토콜에도 적용될 수 있다.
따라서, 개시는 유형의 저장 매체 또는 분산 매체 및 종래 기술에서 인식되는 균등물 및 후계(successor) 매체를 포함하는 것으로 생각되고, 여기에 본 기술의 소프트웨어 구현이 저장된다.
여기서 사용된 “판정,” “계산,” 및 “연산”이라는 용어 및 그 변형은 교환가능하게 사용되고 여하한 유형의 방법, 프로세스, 수학적 연산 및 기술을 포함한다.
여기서 사용된 “모듈”이라는 용어는 공지된 또는 이후에 개발되는 하드웨어, 소프트웨어, 펌웨어, 인공지능, 퍼지 로직 또는 그 요소와 연관된 기능을 수행할 수 있는 소프트웨어와 하드웨어의 결합을 지칭한다. 또한, 본 기술이 예시적인 실시형태에 대해 설명되지만, 본 기술의 개별 양상은 분리되어 청구될 수 있음을 인식할 것이다.
상기는 본 기술의 일부 양상의 이해를 제공하기 위한 기술의 단순한 요약이다. 이 요약은 본 기술 및 그의 다양한 실시형태의 광범위하거나 완전한 개요는 아니다. 본 기술의 범위를 구획하거나 본 기술의 중요하거나 핵심적인 요소를 식별하려는 것은 아니고, 기술의 선택된 개념을 아래에 제시되는 더 상세한 설명에 대한 도입으로서 단순한 형태로 제시하려는 것이다. 이해하는 바와 같이, 상기한 또는 후술하는 하나 이상의 특징을 단독으로 또는 결합하여 이용함으로써 본 기술의 다른 실시형태가 가능하다.
다음의 도면을 참조하여 예시적인 실시형태가 상세히 설명될 것이다.
도 1은 예시적인 장애극복 시스템을 도시한다.
도 2-4는 예시적인 타이밍도를 도시한다.
도 5는 장애극복 시스템의 동작의 예시적인 방법을 도시한다.
본 기술의 예시적인 실시형태가 시스템 장애극복 환경과 관련하여 아래에서 설명될 것이다. VM과 함께 사용하는데 적당하지만, 예시적인 양상은 특정 유형의 장치 또는 시스템 요소의 구성과 함께 사용되는 것으로 제한되지 않고 당업자는 개시된 기술이 시스템 장애극복 복원이 제공되는 것이 바람직한 여하한 환경에서 사용될 수 있음을 인식할 것이다.
예시적인 시스템 및 방법은 소프트웨어, 모듈 및 관련 하드웨어 및 네트워크(들)과 관련하여서도 설명될 것이다. 본 개시를 불필요하게 흐리지 않기 위해, 다음의 설명은 블록도 형태로 도시될 수 있는, 공지된 또는 달리 요약되는 공지된 구성, 컴포넌트 및 장치는 생략한다.
설명을 위해, 본 기술의 완전한 이해를 제공하도록 많은 세부사항이 제시된다. 그러나 본 기술은 여기에 제시된 구체적인 세부사항을 넘어 다양한 방식으로 실시될 수 있음을 인식할 것이다.
다양한 변형 및 변경이 사용될 수 있다. 다른 특징을 제공하거나 청구하지 않고 본 기술의 일부 특징을 제공하거나 청구하는 것도 가능하다.
예시적인 시스템 및 방법은 시스템 장애극복 개선과 관련하여 설명되었다. 그러나 본 개시를 불필요하게 흐리지 않기 위해, 설명은 다수의 공지된 구성 및 장치를 생략한다. 이 생략은 청구의 범위의 제한으로서 해석되어서는 안된다. 구체적인 세부사항은 본 기술의 이해를 제공하기 위해 제시된다. 그러나 본 기술은 여기에 제시된 세부사항을 넘어 다양한 방식으로 실시될 수 있음을 인식할 것이다.
또한, 여기에 설명된 예시적인 실시형태가 함께 있는(collocate) 시스템의 다양한 컴포넌트를 도시하지만, 시스템의 어떤 컴포넌트는 원격지에, LAN, 케이블 네트워크 및/또는 인터넷과 같은 분산 네트워크의 떨어진 부분에, 또는 전용 시스템 내에 배치될 수 있다. 그러므로, 시스템의 컴포넌트는 게이트웨이와 같은 하나 이상의 장치로 결합될 수 있거나, 아날로그 및/또는 디지털 통신 네트워크, 패킷-스위치 네트워크, 회로-스위치 네트워크 또는 케이블 네트워크와 같은 분산 네트워크의 특정 노드 상에 함께 있을 수 있음을 인식할 것이다.
도 1은 예시적인 컴퓨팅 환경(1)의 개요를 제공한다. 컴퓨팅 환경(10)은 하나 이상의 네트워크(10)와 링크(5)로 연결된 활성 장치(100), 스탠바이 장치(200)를 포함한다. 활성 장치(100)와 스탠바이 장치(200) 각각은, 하나 이상의 네트워크(10) 및 링크(5)를 통해 연결된, 커밋 모듈(110, 210), 장치 상태 모듈(120, 220), 프로세서(들)(130, 230), 메모리(140, 240), 서버(150, 250), 데이터베이스(들)(160, 260), 광 버퍼(170, 270) 및 NRD 모듈(180, 280)을 포함한다. 또한 광 버퍼(175)는 네트워크(10)와 링크(5)를 통해 하나이상의 클라이언트(2)로부터 데이터 패킷을 보통 수신하는 현재 활성인 장치와 함께 컴퓨팅 환경(1) 내에서 어디에도 배치될 수 있다.
동작에 있어서, 1차 시스템은 활성화된다(활성 장치/시스템). 제 1 예시적 실시형태에 따르면, 활성 장치는 장치 100이고 스탠바이 장치는 장치 200이다. 커밋 모듈(110)과 협력하여, 사전 결정된 시간에, 커밋 모듈(110)은 커밋을 수행하고 그에 의해 능동 장치(100)의 상태를 유지한다(도 2-4 참조). 이 커밋을 완료한 때에, 프로세서(130) 및 광 버퍼(170 또는 175)와 협력하여, 클라이언트(2)로부터의 모든 인바운드 데이터 패킷은 스탠바이 장치(200)로 복사된다. 이들 패킷은 버퍼 자체 또는 예를 들어 데이터베이스(260) 중 하나 이상에 저장될 수 있다. 더 구체적으로, NRD 모듈(180)은 스탠바이 장치로의 동시적 전달을 위해 NRD 모듈(180)에 의해 연속적으로 모니터링되고 포크(forked) 또는 미러링(mirrored)되는 클라이어트(2)로부터의 모든 인입 데이터 패킷을 모니터링하고, 스탠바이 장치는 활성 장치(100)에서 실행 중인 소프트웨어 애플리케이션의 백업 이미지를 유지한다. 이들 데이터 패킷은 NRD 모듈(180)에 의해 실시간으로 포크되고 스탠바이 장치(200)에게 전달될 수 있는데, 그의 예시적인 목표 중 하나는 두 장치 사이의 애플리케이션 다운 타임(down time)을 감소시키거나 0으로 하는 것이다.
논의된 바와 같이, NRD 모듈(180)은, 예를 들어, 소프트웨어 애플리케이션 및 VM 이미지를 호스팅하는 장치 또는 서버 상에서 함께 거주하여(co-resident) 실행되는 소프트웨어 또는 하드웨어에서 실현될 수 있다. 다른 예시적인 실시형태에서, NRD는 이미지를 통해 소프트웨어 애플리케이션을 호스팅하는 서버 또는 서버들과 물리적으로 독립하여 제공되고 배치되는 독립(stand alone) “범프 인 더 와이어(bump-in-the-wire)” 임베디드 연산 장치로서 구현될 수 있다.
장애의 경우에, 스탠바이 장치(200)는 프로세서(230) 및 장치 상태 모듈(220)와 협력하여 복사된 패킷을 반복하여 마지막 커밋 상태에서 현재 상태로 복원한다. 그러면 처리는 데이터 패킷의 손실 없이 장애 극복 지점으로부터 계속될 수 있다. 이 지점에서, 스탠바이 장치(200)는 이제 “활성 장치”가 되고 장애 있는 활성 장치(100)가 복원되고 온라인으로 돌아올 때까지 1차 시스템으로서 동작한다. 장애 있는 활성 장치(100)가 대체/수리/재시작되면, 시스템은 선택적으로 복원 “스왑 백(swap back)”을 할 수 있는데 여기서 활성 스탠바이 장치(200)가 상태, 트래픽 및 오너십 보유 동작을 대체/수리/재시작된 활성 장치(100)로 다시 커밋한다. 다시 이는 상태 또는 데이터 패킷의 손실 없이 가능하다.
도 2는 마지막 커밋이 이루어진 지점과 시간, 복제된 버퍼핑된 패킷이 저장되는 기간, 스탠바이 장치가 장애 지점으로부터 동작을 계속하기 위해 버퍼링된 데이터를 사용하는 시점을 강조하는 예시적인 타이밍도의 개요를 제시한다. 도 3과 4는 활성 장치의 장애 후에 장애 장치가 재활성화될 때까지 다양한 활동이 일어나는 방식에 대한 예시적인 타임라인의 개요를 제시한다. 일반적으로, 도 3 및 4는, 예를 들어, 활성 장치(100)가 실패한 경우에 스탠바이 장치(200)가 “1차 또는 활성” 장치로서 동작하고 있는 때에 발생하는 프로세스를 강조한다. 스탠바이(200)로부터 활성 장치(100)로의 복원 스왑 백을 위한 프로세스는 활성 장치(100)가 동작에서 “활성 또는 1차” 장치 또는 시스템인 때와 동일하다.
논의한 바와 같이, 버퍼(170, 175, 270)는 컴퓨팅 환경(1) 내 여하한 지점에 배치될 수 있다. 또한, 활성 장치의 장애의 경우에 버퍼가 스탠바이 장치(들) 또는 시스템으로 복제된 버퍼링된 패킷을 전달할 수 있다면, 다수의 버퍼가 필요에 따라 제공될 수 있다. 버퍼는 컴퓨팅 시스템(1)의 구체적인 환경에 따라 메모리(140, 240) 및 데이터베이스(160, 260) 중 하나 이상과 협력할 수도 있다.
도 5는 소프트웨어 애플리케이션 환경(1)에서 고 가용성을 제공하기 위한 예시적인 방법론의 개요를 제시한다. 구체적으로, 제어는 단계 S100에서 시작하여 단계 S110로 계속된다. 단계 S110에서, 1차 시스템이 활성화된다. 다음, 단계 S120에서, 스탠바이 시스템을 위해 상태를 보존하기 위해 1차 시스템에 의해 커밋이 수행된다. 그 후, 단계 S130에서, 1차 시스템으로의 모든 인바운드 트래픽이 하나 이상의 버퍼 또는 스탠바이 시스템으로 복사된다. 제어는 그 후 단계 S140으로 계속된다.
단계 S140에서, 장애가 발생했는지 여부에 대한 판정이 이루어진다. 장애가 발생했다면, 제어는 단계 S142로 점프한다. 그렇지 않다면, 제어는 단계 S150로 계속된다.
단계 S150에서, 다음 커밋 상태에 도달했는지 여부에 대한 판정이 이루어진다. 도달했다면, 제어는 단계 S120로 다시 점프하고 그렇지 않으면 단계 S103으로 계속된다.
단계 S142에서, 스탠바이 시스템을 위해 복사된 패킷은 마지막 커밋으로부터 현재 상태까지 반복된다. 그 후, 단계 S144에서, 스탠바이 시스템은 어떠한 데이터 패킷의 손실도 없이 장애극복 지점으로부터 프로세싱을 시작할 수 있다. 그리고, 단계 S146에서, 스탠바이 시스템은 1차 시스템으로 동작하고, 제어는 단계 S148로 계속되어 제어 시퀀스가 종료된다.
앞의 설명으로부터, 연산 효율성을 이유로, 시스템의 컴포넌트는 시스템의 동작에 영향을 주지 않고 컴포넌트의 분산 네트워크 내에서 여하한 위치에 배치될 수 있음을 인식할 것이다. 예를 들어, 다양한 컴포넌트는 PBX 및 미디어 서버, 게이트웨이, 케이블 제공자, 엔터프라이즈 시스템, 클라이언트-서버 환경, 하나 이상의 서버를 포함하는 배포자(distributer) 네트워크과 같은 스위치에서, 하나 이상의 사용자의 구역에서 하나 이상의 통신 장치에서, 또는 그의 어떤 결합에서 배치될 수 있다. 유사하게, 시스템의 하나 이상의 기능적 부분은 통신 장치 및 연관 연산 장치 사이에 분포될 수 있다.
또한, 요소들을 연결하는 링크(5)와 같은 다양한 링크는 유선 또는 무선 링크, 또는 그 여하한 결합 또는 연결된 요소 사이에 데이터를 공급 및/또는 통신할 수 있는 여타의 알려진 또는 이후에 개발되는 요소일 수 있음을 인식할 것이다. 이들 유선 또는 무선 링크는 보안 링크일 수 있고 암호화 정보를 통신할 수 있을 수 있다. 링크로서 사용되는 송신 매체는, 예를 들어, 링크로서 사용되는 송신 매체는 동축 케이블, 구리 와이어, 광 섬유를 포함하여 전기 신호를 위한 여하한 적당한 캐리어일 수 있고, 무선(radio-wave) 및 적외선 데이터 통신에서 생성되는 것과 같은 음향파 또는 광파의 형태를 취할 수 있다.
또한, 특정 이벤트 순서와 관련하여 흐름도가 설명되고 도시되었으나, 이 순서에 대한 변형, 추가 및 생략이 시스템의 동작에 중요한 영향 없이 이루어질 수 있음을 인식할 것이다.
또 다른 실시형태에서, 이 기술의 시스템 및 방법은, 전용(special purpose) 컴퓨터, 프로그램된 마이크로프로세서 또는 마이크로컨트롤러 및 주변 집적회로 소자(들), ASIC 또는 기타 집적회로, 디지털 신호 프로세서, 분산 소자 회로(discrete element circuit)와 같은 하드 와이어드(hard-wired) 전자 또는 논리 회로, PLD, PLA, FPGA, PAL과 같은 프로그램가능 로직 디바이스 또는 게이트 어레이, 전용 컴퓨터, 여하한 대등한 수단 등과 결합하여 구현될 수 있다. 일반적으로, 여기서 설명된 방법론을 구현할 수 있는 여하한 장치(들) 또는 수단은 본 기술의 다양한 양상을 구현하는데 사용될 수 있다.
본 시스템을 위해 사용될 수 있는 예시적인 하드웨어는 컴퓨터, 핸드헬드 장치 및 공지된 기타 하드웨어를 포함한다. 이들 장치 중 일부는 프로세서(예를 들어, 단일 또는 다수의 마이크로프로세서), 메모리, 비휘발성 저장소, 입력 장치 및 출력 장치를 포함한다. 또한, 분산 프로세싱 또는 컴포넌트/객체 분산 프로세싱, 병렬 프로세싱 또는 가상 머신 프로세싱을 포함하지만 이에 제한되지 않는 대안적인 소프트웨어 구현도 여기에 설명된 방법을 구현하는데 사용될 수 있다.
또 다른 구현에서, 개시된 방법은, 다양한 컴퓨터 또는 워크스테이션 플랫폼에서 사용될 수 있는 포터블 소스 코드를 제공하는 객체 또는 객체-지향 소프트웨어 개발 환경을 이용하는 소프트웨어와 결합하여 용이하게 구현될 수 있다. 다르게는, 개시된 시스템은 표준 논리 회로 또는 VLSI 디자인을 이용하여 하드웨어에서 부분적으로 또는 완전히 구현될 수 있다. 소프트웨어 또는 하드웨어가 본 기술에 따른 시스템을 구현하는데 사용되는지 여부는 시스템의 속도 및/또는 효율 요건, 구체적 기능 및 사용되는 구체적인 소프트웨어 또는 하드웨어 시스템 또는 마이크로프로세서 또는 마이크로컴퓨터 시스템에 따른다.
또 다른 실시형태에서, 개시된 방법은 컴퓨터 판독가능 저장 매체 상에 저장될 수 있고, 제어기와 메모리, 전용 컴퓨터, 마이크로프로세서 등과 협력하여 프로그램된 범용 컴퓨터에서 실행될 수 있는 소프트웨어에서 부분적으로 구현될 수 있다. 이들 예에서, 본 기술의 시스템 및 방법은 애플릿(applet), JAVA나 CGI 스크립트와 같은 퍼스널 컴퓨터에 내장된 프로그램, 서버 또는 컴퓨터 워크스테이션에 거주하는 리소스, 전용 측정 시스템, 시스템 컴포넌트 등에 내장된 루틴으로서 구현될 수 있다. 시스템은 시스템 및/또는 방법을 소프트웨어 및/또는 하드웨어 시스템으로 물리적으로 통합함으로써 구현될 수도 있다.
본 개시가 특정 표준 및 프로토콜을 참조하여 실시형태에서 구현되는 컴포넌트와 기능을 설명하지만, 본 개시는 그러한 표준 및 프로토콜에 제한되지 않는다. 여기에 언급되지 않은 다른 유사한 표준 및 프로토콜이 존재하고 본 발명 개시에 포함되는 것으로 생각된다. 또한, 여기에 언급된 표준 및 프로토콜 그리고 여기에 언급되지 않은 기타 유사한 표준 및 프로토콜은 실질적으로 동일한 기능을 갖는 더 빠르거나 효율적인 균등물에 의해 주기적으로 대체(supersede)된다. 동일한 기능을 갖는 이러한 대체 표준 및 프로토콜은 본 개시에 포함된 균등물로 생각된다.
본 개시는, 다양한 실시형태, 구성 및 양상에서, 다양한 실시형태, 서브컴비네이션(subcombination) 및 부분집합을 포함하여, 실질적으로 여기에 도시되고 설명된 바와 같은 컴포넌트, 방법, 프로세스, 시스템 및/또는 장치를 포함한다. 당업자는 본 개시를 이해한 후에 본 기술을 만들고 사용하는 방법을 이해할 것이다. 본 기술은, 다양한 실시형태, 구성 및 양상에서, 여기에 도시되거나 및/또는 설명되지 않은 아이템이 없이 장치 및 프로세스를 제공하는 것을 포함하고, 또는 다양한 실시형태, 구성 또는 양상에서, 이전 장치 또는 프로세스에서 예를 들어 성능을 개선하고 구현 비용을 완화 및/또는 감소하는 것을 달성하기 위해 사용되었을 수 있는 아이템의 부재를 포함한다.
앞의 논의는 예시와 설명을 위해 제시되었다. 앞의 논의는 개시내용을 여기에 개시된 형태 또는 형태들로 제한하려는 것이 아니다. 예를 들어 앞의 상세한 설명에서 , 본 기술의 다양한 특성이 하나 이상의 실시형태, 구성 또는 양상에서 개시를 간소화하기 위해 서로 그룹지어진다. 본 기술의 실시형태, 구성 또는 양상의 특성은 상술한 것 외의 다른 실시형태, 구성 또는 양상에서 결합될 수 있다. 이 개시 방법은 청구된 특징이 각 청구항에 명확히 기재된 것보다 많은 특징을 요구한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 아래의 청구항이 반영하는 바와 같이, 단일의 상기 실시형태, 구성 또는 양상의 모든 특징 보다 적은 특징에 진보성 있는 측면이 있다. 그러므로, 다음의 청구범위는 이 상세한 설명으로 포함되고, 각 청구항은 그 자체로 별개의 바람직한 실시형태가 된다.
더욱이, 본 기술의 설명이 하나 이상의 실시형태, 구성 또는 양상 및 특정 변형 및 변경의 설명을 포함하였지만, 예를 들어, 본 개시를 이해한 후에 당업자의 기술 및 지식 내에 있을 수 있는 바와 같이, 다른 변형, 결합 및 변경이 본 개시의 범위 내에 있다. 여하한 특허가능한 주제를 공중에게 제공하려는(dedicate) 의도는 없고, 청구된 것에 대한 대안(alternate), 교환가능(interchangeable) 및/또는 균등 구조, 기능, 범위 또는 단계를 포함하여 대안적인 실시형태, 구성 또는 양상을, 허용되는 범위까지 포함하는 권리를, 그러한 대안, 교환가능 및/또는 균등 구조, 기능, 범위 또는 단계가 여기에 개시되었는지 여부와 상관없이 얻으려는 의도이다.

Claims (20)

  1. 상태를 보존하고 데이터 손실을 감소시키는 방법으로서,
    활성 장치에서 커밋(commit)을 검출한 때에, 다음 커밋 또는 장애(failure)까지 하나 이상의 버퍼에 모든 인바운드(inbound) 데이터 트래픽을 복사하는 단계와,
    장애를 검출하는 단계와,
    스탠바이 장치를 실패한(failed) 장치의 현재 상태로 복원하기 위해 복사된 데이터 트래픽을 반복(replay)하는 단계를 포함하는
    상태 보존 및 데이터 손실 감소 방법.
  2. 제 1 항에 있어서,
    장애극복 지점으로부터 상기 스탠바이 장치에서 프로세싱을 시작(commencing)하는 단계를 더 포함하는
    상태 보존 및 데이터 손실 감소 방법.
  3. 제 1 항에 있어서,
    상기 다음 커밋에서 모든 복사된 인바운드 데이터 트래픽을 삭제하는 단계를 더 포함하는
    상태 보존 및 데이터 손실 감소 방법.
  4. 제 1 항에 있어서,
    상기 스탠바이 장치에서 상기 활성 장치로 스왑 백(swap back)을 수행하는 단계를 더 포함하는
    상태 보존 및 데이터 손실 감소 방법.
  5. 제 1 항에 있어서,
    상기 활성 장치는 하나 이상의 가상 머신, 서버 및 컴퓨터 중 하나 이상인
    상태 보존 및 데이터 손실 감소 방법.
  6. 제 1 항에 있어서,
    상기 스탠바이 장치는 하나 이상의 가상 머신, 서버 및 컴퓨터 중 하나 이상인
    상태 보존 및 데이터 손실 감소 방법.
  7. 제 1 항에 있어서,
    네트워크 복제 장치가 상기 복사하는 단계를 수행하는
    상태 보존 및 데이터 손실 감소 방법.
  8. 제 7 항에 있어서,
    상기 네트워크 복제 장치가 상기 활성 장치의 상류에 위치되는
    상태 보존 및 데이터 손실 감소 방법.
  9. 제 1 항의 단계들을 수행하기 위한 하나 이상의 수단.
  10. 프로세서에 의해 실행되는 때에 제 1 항의 단계들이 수행되도록 하는 명령이 저장된
    컴퓨터-판독가능 저장 매체.
  11. 상태를 보존하고 데이터 손실을 감소시키는 시스템으로서,
    활성 장치에서 커밋 모듈에 의해 커밋을 검출한 때에, 다음 커밋 또는 장애까지 하나 이상의 버퍼에 모든 인바운드 데이터 트래픽을 복사하는 네트워크 복제 모듈과,
    장애를 검출하는 장치 상태 모듈과,
    스탠바이 장치를 실패한 장치의 현재 상태로 복원하기 위해 복사된 데이터 트래픽을 반복하는 제 2 장치 상태 모듈을 포함하는
    상태 보존 및 데이터 손실 감소 시스템.
  12. 제 11 항에 있어서,
    상기 스탠바이 장치에서의 프로세싱은 장애극복 지점으로부터 시작하는
    상태 보존 및 데이터 손실 감소 시스템.
  13. 제 11 항에 있어서,
    상기 다음 커밋에서 모든 복사된 인바운드 데이터 트래픽이 삭제되는
    상태 보존 및 데이터 손실 감소 시스템.
  14. 제 11 항에 있어서,
    상기 장애의 정정 시에 상기 스탠바이 장치가 상기 활성 장치로 스왑 백되는
    상태 보존 및 데이터 손실 감소 시스템.
  15. 제 11 항에 있어서,
    상기 활성 장치는 하나 이상의 가상 머신, 서버 및 컴퓨터 중 하나 이상인
    상태 보존 및 데이터 손실 감소 시스템.
  16. 제 11 항에 있어서,
    상기 스탠바이 장치는 하나 이상의 가상 머신, 서버 및 컴퓨터 중 하나 이상인
    상태 보존 및 데이터 손실 감소 시스템.
  17. 제 11 항에 있어서,
    상기 네트워크 복제 모듈이 상기 하나 이상의 버퍼로의 복제를 수행하고, 상기 하나 이상의 버퍼는 상기 활성 장치, 상기 스탠바이 장치 중 하나 이상과 함께 위치되거나(collocated), 네트워크 노드에 배치되는
    상태 보존 및 데이터 손실 감소 시스템.
  18. 제 17 항에 있어서,
    상기 네트워크 복제 장치는 상기 활성 장치의 상류에 위치되는
    상태 보존 및 데이터 손실 감소 시스템.
  19. 제 17 항에 있어서,
    상기 네트워크 복제 장치는 상기 스탠바이 장치의 상류에 위치되는
    상태 보존 및 데이터 손실 감소 시스템.
  20. 제 1 항에 있어서,
    상기 활성 장치 상의 1차 가상 머신에서 실행되는 1차 소프트웨어 애플리케이션으로 전달될 모든 인바운드 데이터 트래픽은, 스탠바이 시스템 또는 가상 머신에서 실행되는 상기 소프트웨어 애플리케이션의 백업 이미지로의 동시적 전달을 위해 상기 네트워크 복제 모듈에 의해 연속적으로 모니터링되고 복사되는
    상태 보존 및 데이터 손실 감소 시스템.
KR1020117031644A 2010-01-04 2010-12-13 상태 보존 및 데이터 손실 감소 방법 및 시스템 KR101280754B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/651,554 2010-01-04
US12/651,554 US8145945B2 (en) 2010-01-04 2010-01-04 Packet mirroring between primary and secondary virtualized software images for improved system failover performance
PCT/US2010/060100 WO2011081888A1 (en) 2010-01-04 2010-12-13 Packet mirroring between primary and secondary virtualized software images for improved system failover performance

Publications (2)

Publication Number Publication Date
KR20120016298A true KR20120016298A (ko) 2012-02-23
KR101280754B1 KR101280754B1 (ko) 2013-07-05

Family

ID=44225415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117031644A KR101280754B1 (ko) 2010-01-04 2010-12-13 상태 보존 및 데이터 손실 감소 방법 및 시스템

Country Status (6)

Country Link
US (1) US8145945B2 (ko)
KR (1) KR101280754B1 (ko)
CN (1) CN102473105B (ko)
DE (1) DE112010003372T5 (ko)
GB (1) GB2483042B (ko)
WO (1) WO2011081888A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
KR101511841B1 (ko) * 2013-05-30 2015-04-13 삼성에스디에스 주식회사 가상 머신 기반의 무중단 시스템 및 상기 시스템에서의 패킷 중재 방법

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301700B1 (en) 2010-08-06 2012-10-30 Open Invention Network Llc System and method for event-driven live migration of multi-process applications
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US9043640B1 (en) * 2005-08-26 2015-05-26 Open Invention Network, LLP System and method for event-driven live migration of multi-process applications
US9141481B1 (en) 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8281184B1 (en) * 2010-08-06 2012-10-02 Open Invention Network Llc System and method for reliable non-blocking messaging for multi-process application replication
US8589953B1 (en) 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
JP5352299B2 (ja) * 2009-03-19 2013-11-27 株式会社日立製作所 高信頼性計算機システムおよびその構成方法
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9135127B1 (en) 2010-08-06 2015-09-15 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8521703B2 (en) * 2010-11-05 2013-08-27 International Business Machines Corporation Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility
US8924560B2 (en) * 2010-11-29 2014-12-30 At&T Intellectual Property I, L.P. Optimized game server relocation environment
TWI537828B (zh) * 2010-12-21 2016-06-11 萬國商業機器公司 虛擬機管理的方法及其電腦系統之裝置和電腦程式
US8832489B2 (en) * 2011-04-26 2014-09-09 Dell Products, Lp System and method for providing failover between controllers in a storage array
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8938638B2 (en) * 2011-06-06 2015-01-20 Microsoft Corporation Recovery service location for a service
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
US9256463B2 (en) 2012-06-29 2016-02-09 International Business Machines Corporation Method and apparatus to replicate stateful virtual machines between clouds
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9032157B2 (en) * 2012-12-11 2015-05-12 International Business Machines Corporation Virtual machine failover
US9251002B2 (en) * 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9262090B2 (en) * 2013-02-26 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Asynchronous data mirroring in memory controller
US9678673B2 (en) 2013-03-28 2017-06-13 Hewlett Packard Enterprise Development Lp Coordinating replication of data stored in a non-volatile memory-based system
CN103354503A (zh) * 2013-05-23 2013-10-16 浙江闪龙科技有限公司 一种可自动检测及替换故障节点的云存储***及其方法
CN103457775B (zh) * 2013-09-05 2016-09-14 中国科学院软件研究所 一种基于角色的高可用虚拟机池化管理***
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
EP3090344B1 (en) 2013-12-30 2018-07-18 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
US9760442B2 (en) 2013-12-30 2017-09-12 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
US10339010B1 (en) * 2014-04-05 2019-07-02 Bruce Talley Systems and methods for synchronization of backup copies
US10970179B1 (en) * 2014-09-30 2021-04-06 Acronis International Gmbh Automated disaster recovery and data redundancy management systems and methods
CN104461775A (zh) * 2014-11-26 2015-03-25 英业达科技有限公司 异地备援***及备份方法
CN105490847B (zh) * 2015-12-08 2019-03-29 天津市初志科技有限公司 一种私有云存储***中节点故障实时检测及处理方法
US10521315B2 (en) * 2016-02-23 2019-12-31 Vmware, Inc. High availability handling network segmentation in a cluster
WO2017209955A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. High availability for virtual machines
US20180341494A1 (en) * 2017-05-26 2018-11-29 Intel Corporation Accelerating network security monitoring
EP3609108B1 (en) * 2018-08-09 2021-04-28 Tata Consultancy Services Limited Method and system for message based communication and failure recovery for fpga middleware framework
CN111309515B (zh) * 2018-12-11 2023-11-28 华为技术有限公司 一种容灾控制方法、装置及***
US11962647B2 (en) * 2019-06-05 2024-04-16 Vmware, Inc. Data migration using dynamic synchronization
US20210397473A1 (en) * 2020-06-18 2021-12-23 Sonicwall Inc. Method of creating high availability for single point network gateway using containers
CN112532525B (zh) * 2020-11-25 2022-11-25 北京金山云网络技术有限公司 设备恢复服务的处理方法、装置和***
CN113221937A (zh) * 2021-02-24 2021-08-06 山东万博科技股份有限公司 基于人工智能判断的应急处理***及方法
US12040934B1 (en) * 2021-12-17 2024-07-16 Juniper Networks, Inc. Conversational assistant for obtaining network information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US6070251A (en) * 1997-06-26 2000-05-30 Sun Microsystems, Inc. Method and apparatus for high availability and caching data storage devices
US6594229B1 (en) * 1999-12-14 2003-07-15 Samsung Electronics Co., Ltd. Data synchronization system for redundant packet routing architecture and method of operation
US6751746B1 (en) 2000-07-31 2004-06-15 Cisco Technology, Inc. Method and apparatus for uninterrupted packet transfer using replication over disjoint paths
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US6745209B2 (en) 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
JP3932994B2 (ja) * 2002-06-25 2007-06-20 株式会社日立製作所 サーバ引継システムおよびその方法
US7065673B2 (en) * 2002-10-29 2006-06-20 Brocade Communication Systems, Inc. Staged startup after failover or reboot
US7194652B2 (en) * 2002-10-29 2007-03-20 Brocade Communications Systems, Inc. High availability synchronization architecture
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7797571B2 (en) * 2003-07-15 2010-09-14 International Business Machines Corporation System, method and circuit for mirroring data
US7739403B1 (en) * 2003-10-03 2010-06-15 Juniper Networks, Inc. Synchronizing state information between control units
US7500134B2 (en) * 2005-12-27 2009-03-03 Emc Corporation Virtual array failover
US20070174484A1 (en) * 2006-01-23 2007-07-26 Stratus Technologies Bermuda Ltd. Apparatus and method for high performance checkpointing and rollback of network operations
US20080077686A1 (en) 2006-09-26 2008-03-27 Dinesh Kumar Subhraveti System and Method for Replication of Network State for Transparent Recovery of Network Connections
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US8997098B2 (en) 2012-10-31 2015-03-31 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
US9317320B2 (en) 2012-10-31 2016-04-19 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
KR101511841B1 (ko) * 2013-05-30 2015-04-13 삼성에스디에스 주식회사 가상 머신 기반의 무중단 시스템 및 상기 시스템에서의 패킷 중재 방법

Also Published As

Publication number Publication date
CN102473105A (zh) 2012-05-23
GB2483042B (en) 2018-06-27
GB2483042A (en) 2012-02-22
WO2011081888A1 (en) 2011-07-07
KR101280754B1 (ko) 2013-07-05
DE112010003372T5 (de) 2012-09-06
CN102473105B (zh) 2014-12-10
GB201122355D0 (en) 2012-02-01
US20110167298A1 (en) 2011-07-07
US8145945B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
KR101280754B1 (ko) 상태 보존 및 데이터 손실 감소 방법 및 시스템
EP0818001B1 (en) Fault-tolerant processing method
US20130212205A1 (en) True geo-redundant hot-standby server architecture
Liskov et al. Viewstamped replication revisited
EP0818000B1 (en) Fault-tolerant processing method
EP2883147B1 (en) Synchronous local and cross-site failover in clustered storage systems
Hwang et al. High-availability algorithms for distributed stream processing
US8433951B1 (en) Method and system for providing high availability to distributed computer applications
US9652333B1 (en) Maintaining stored data consistency of a plurality of related virtual machines across a plurality of sites during migration
US8990613B2 (en) Data transfer and recovery
US20140289554A1 (en) Implementing failover processes between storage stamps
US20080052327A1 (en) Secondary Backup Replication Technique for Clusters
US9015520B2 (en) Data transfer and recovery
US20070174660A1 (en) System and method for enabling site failover in an application server environment
KR20010079917A (ko) 복제 서버용 프로토콜
EP2798496B1 (en) Method and apparatus for synchronization in primary-backup replication schemes
Liskov From viewstamped replication to Byzantine fault tolerance
Gog et al. Falkirk wheel: Rollback recovery for dataflow systems
Bessho et al. Comparing checkpoint and rollback recovery schemes in a cluster system
Colesa et al. Strategies to transparently make a centralized service highly-available
Aghdaie Transparent fault-tolerant network services using off-the-shelf components
de Juan-Marin et al. Process replication with log-based amnesia support
Gupta et al. A Novel Low‐Overhead Recovery Approach for Distributed Systems
Pertet et al. Proactive Fault-Recovery in Distributed Systems
Gerofi et al. A Multi-Core Approach to Providing Fault Tolerance for Non-Deterministic Services

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190613

Year of fee payment: 7