KR100336500B1 - 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법 - Google Patents

상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법 Download PDF

Info

Publication number
KR100336500B1
KR100336500B1 KR1020000004145A KR20000004145A KR100336500B1 KR 100336500 B1 KR100336500 B1 KR 100336500B1 KR 1020000004145 A KR1020000004145 A KR 1020000004145A KR 20000004145 A KR20000004145 A KR 20000004145A KR 100336500 B1 KR100336500 B1 KR 100336500B1
Authority
KR
South Korea
Prior art keywords
high availability
node
active
operating system
ioht
Prior art date
Application number
KR1020000004145A
Other languages
English (en)
Other versions
KR20010076790A (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 KR1020000004145A priority Critical patent/KR100336500B1/ko
Publication of KR20010076790A publication Critical patent/KR20010076790A/ko
Application granted granted Critical
Publication of KR100336500B1 publication Critical patent/KR100336500B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

멀티미디어 서비스를 제공하는 CDMA 기반의 IMT-2000 시스템과 같은 경우, 제어국의 고가용성(High Availability; HA)은 반드시 수행되어져야 하는 중요한 문제이다.
본 발명에서는 기존의 시스템들이 취했던 자체 개발한 하드웨어에 자체 개발한 실시간 운영체제를 이용하는 방식과 달리, 상용으로 나와있는 실시간 운영체제를 이용해 고가용성을 얻어낼 수 있는 방법을 제공한다.
본 발명에서는 상용 실시간 운영체제를 사용함에 따라 운영체제의 커널을 조작할 수 없기 때문에 소프트웨어칩 개념을 사용하여, 고가용성을 구현하기 위해 두개의 액티브(Active)노드와 스탠드바이(Standby)노드의 입/출력(I/O)을 모니터링 하는 방법을 사용한다. 하지만 이런 방법을 사용하게 될 경우 트래픽 양이 많은 시스템에서는 소프트웨어 형태의 미들웨어만으론 고가용성을 보장하기가 어렵기 때문에 이를 보상하기 위해 고가용성 채널(HA Channel)로 동시쓰기메모리(Concurrent Write Memory)를 사용한다. 이와 같이 본 발명에서는 상용 실시간 운영체제를 사용하므로써 응용 프로그램을 개발하는 개발자들은 최신의 개발환경과 운영체제를 사용해 개발시간을 단축할 수 있으며, 고비용을 들이지 않고도 적정한 수준에서의 고가용성을 이룰 수 있게 된다.

Description

상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반 고가용성 구현 방법 {I/O-based high availability through middleware in the COTS RTOS}
본 발명은 상용으로 나와있는 실시간 운영체제와 그 상위에서 운용되는 미들웨어를 이용해 고가용성을 얻어낼 수 있는 방법에 관한 것이다.
일반적으로 기존의 고가용성 혹은 이중화 시스템은 자체 제작한 하드웨어와 자체 제작한 실시간 운영체제를 사용하여 구현한다.
이와 관련된 선행 기술로는 미국 특허 US5488716[명칭: " Fault Tolerant Computer System with Shadow Virtual Processor"]가 있다.
이 특허는 가상 프로세서를 프라이머리(primary)와 백업(backup) 노드에 운용하여, 각 노드에서 발생하는 모든 명령어와 인터럽트, 트랩을 모니터링하면서 이에 대한 정보를 명령의 개수에 의해 정해지는 주기에 따라 백업노드로 보낸다. 여기서 명령의 개수를 모니터링하기 위해 하드웨어에서 제공하는 레지스터를 이용한다. 프로세서의 장애(failure)를 백업 노드의 단순한 I/O 디바이스 장애로 보이게 하여 이중화를 구현하기 때문에 재전송이 허용되는 I/O 디바이스를 가지는 시스템의 경우 효과적으로 사용될 수 있다.
다른 관련 선행기술로는 Mark E. Russinovich가 박사학위 논문으로 게재한 논문 "Application Transparent Fault Management" 이 있다.
이 논문은 컴퓨터 시스템에서 하드디스크 외에 추가적인 하드웨어 요구사항 없이 운영체제의 자원관리와 같은 레벨에서 운용되는 장애 관리 기법을 사용해 응용 프로그램에 투명한 이중화를 구현하는 방법에 관한 것으로, 운영체제와 응용프로그램 사이에 장애 관리층(Fault Management Layer)을 둬서 운영체제 상에서 이루어지는 모든 서비스에 대해 Entry Sentry와 Exit Sentry를 만들어 이중화를 위해 필요한 작업을추가하거나 혹은 필요한 경우 바이패스(bypass)하게 한다. 때문에 커널에서의 조작이 가능한 경우, 즉 공개되어 있는 실시간 커널을 이용할 경우, 하드디스트 외에 추가적인 하드웨어의 도움없이도 응용 프로그램에 투명한 이중화를 구현할 수 있게 된다.
그러나, 이와 같은 종래의 이중화 시스템은 자체 제작한 하드웨어와 자체 제작한 실시간 운영체제를 사용하여 구현하므로, 구현에 많은 시간과 비용이 드는 문제점이 있다.
상기한 종래의 문제점을 해결하기 위한 본 발명은 자체 제작한 하드웨어와 자체 제작한 실시간 운영체제를 사용하는 기존 고가용성 혹은 이중화 시스템에 비해 저렴하고 빠른 기간내에 일정한 범위 내에서의 고가용성을 만족하는 시스템 개발을 위해 상용으로 나와있는 실시간 운영체제와 그 상위에서 운용되는 미들웨어를 이용해 고가용성을 구현하는 방법을 제공하는 데 그 목적이 있다.
이를 위해 소프트웨어로된 미들웨어로만으로는 트래픽 양이 많은 경우에 고가용성을 보장하기 힘든 관계로 고가용성 채널로 동시쓰기메모리를 사용해 이를 보상한다.
도 1은 I/O 히스토리 테이블(IOHT) 구조도
도 2는 메모리 구조도
도 3은 각 노드의 S/W 계층 구조도
도 4는 액티브/스탠드바이 결정 흐름도
도 5는 기간(Epoch) 설명도
도 6은 I/O 인터페이스 데이터 흐름도
도 7은 스탠드바이 노드의 동기화 기능 흐름도
도 8은 스탠드바이 노드의 수신데이터 저장 자료 구조도
도 9는 하트비트 프로토콜(Heartbeat Protocol) 설명도
이하, 첨부도면을 참조하여 본 발명을 상세하게 설명한다.
상용 실시간 운영체제를 사용해 고가용성을 구현하기 위해서는 필요한 몇가지 요소가 있다.
먼저, 액티브노드와 스탠드바이노드 간의 동기(Synchronization)를 맞추기 위해 공유하는 메모리 영역의 동기화 정보(I/O Histrory Table; IOHT)(도 1 참조)가 임베디드보드(Embedded Board)에서 사용하는 CPU의 캐쉬(Cache)로 인해 절체(Switchover)시 유실되는 것을 방지하기 위하여, 상용 실시간 운영체제의 BSP(Board Support Package) 레벨에서 메모리 영역을 분할해 동기화 정보가 저장되는 영역을 일반 메모리 영역에서 분리하고, 이 분리된 영역에 대해서 플러싱(Flushing)을 계속해 준다. 임베디드용으로 사용되는 대다수의 CPU들은 캐쉬 사용을 기본으로 설계된 것으로, 캐쉬를 사용하지 않을 경우 몇배에서 많게는 수십배까지의 성능차를 보인다. 때문에 본 발명에서는 캐쉬를 그대로 사용하되 동기를 맞추는데 필요한 정보는 따로 처리하므로써 캐쉬를 사용하면서도 CPU의 성능을 충분히 활용할 수 있게 했다.
또한 본 발명에서는 이 분리된 영역을 도 2의 메모리 구조도에서 도시한 바와 같이, 동시쓰기(concurrent write) 메모리 영역에 할당하여 동기화 정보가 빠르게 전달될 수 있게 하였다.
도 3은 각 노드의 S/W 계층 구조도로서, 최하위층에 고가용성 제어 데이터의 송수신을 위한 고가용성 채널(HA channe1; HAC), Ethernet(이더넷) 송수신을 위한Ethernet 인터페이스 블록, ATM 송수신을 위한 ATM 인터페이스 블록이 존재하며, 그위에 BSP(Board Support Package) 처리를 위한 계층, RTOS(Real Time Operating System)와 커널(Kernel) 계층, 및 응용 계층이 존재한다. 그리고 응용 계층 내에 고가용성 메니저(HA Manager; HAM)가 존재하여 최하위층의 고가용성 채널을 통해 고가용성 제어 데이터를 송수신한다.
고가용성 채널은 동시쓰기메모리를 의미한다. 이 메모리를 통해 동기화 데이터들이 송수신 된다. RTOS와 커널부분은 상용 RTOS의 것을 그대로 사용하며, BSP는 메모리 영역 분할에 관한 내용과 스탠드바이노드의 I/O 인터페이스중 송신부분만 스탠드바이노드의 고가용성 메니저에 의해 조절되는 기능이 추가된 형태가 된다.
이와 같은 S/W 계층 구조를 갖는 액티브노드와 스탠드바이노드가 구성된 상태에서 부팅을 시작하게 되면 제일 먼저 각각의 노드가 서로의 역할을 결정해야 한다. 즉, 액티브노드와 스탠드바이노드를 결정하여야 하며, 이 결정에 따라 각 노드가 수행하는 일이 조금 달라지게 된다.
이와 같이 자신의 역할을 결정하는 것은 도 4에 도시한 액티브/ 스탠바이 결정 흐름도에 수행하게 된다.
여기서 중요한 것은 둘이 동시에 액티브노드가 되는 것을 방지하는 방법인데, 본 발명에서는 이를 위해 랜덤하게 일정시간 동안 멈추는 방법(Random Sleep Method; RSM)을 취했다. 즉, 액티브가 된 후에 한번 더 검사를 하여 상대방이 액티브가 된 것이 확인이 되면 일정시간 랜덤하게 멈춘 후에 재검사를 수행하고 이때고가용성 채널을 통해 액티브시그널(Active Signal)이 더 이상 오지 않게 되면 액티브노드로서의 역할을 수행한다.
좀더 상세하게 설명하면, 각 노드가 부팅을 마친 시점에서 고가용성 채널로 액티브시그널의 입력이 확인되면 이는 다른 노드가 먼저 부팅된 것이므로 고가용성 채널을 통해 스탠드바이시그널을 출력하여 자신이 스탠드바이노드로 확정되었음을 알리고 스탠드바이노드로서의 타스크를 수행한다. 그러나, 각 노드가 부팅을 마친 시점에서 고가용성 채널로 액티브시그널의 입력이 확인되지 않으면, 자신이 다른 노드 보다 먼저 부팅된 것으로 판단하여 자신을 액티브노드로 확정짓기 위하여 고가용성 채널을 통해 액티브시그널을 출력한 후 다른 노드로부터의 응답을 기다린다.
다른 노드로부터 고가용성 채널로 액티브시그널이 입력되지 않으면 고가용성 채널을 통해 액티브 시그널을 출력하여 자신이 액티브노드로 확정되었음을 알리고 액티브노드로서의 타스크를 수행한다.
그러나 다른 노드로부터 고가용성 채널로 액티브시그널이 입력되면, 두 노드가 동시에 액티브노드가 되는 것을 방지하기 위하여 일정시간 랜덤하게 멈춘 후에 재검사를 수행하고 이때 고가용성 채널을 통해 액티브시그널이 더 이상 오지 않게 되면 고가용성 채널을 통해 액티브 시그널을 출력하여 자신이 액티브노드로 확정되었음을 알리고 액티브노드로서의 타스크를 수행한다.
이렇게 해서 각 노드에 액티브와 스탠드바이 역할이 결정되면 고가용성 채널을 통해 I/O를 중심으로 작성되는 동기화 정보(IOHT)(도 1 참조)를 주고 받으며 동기를 맞춘다. 본 발명은 각각의 노드의 내부 상태가 아닌 I/O 기반으로 고가용성을 구현하는 것이므로 이때 동기를 맞추는 방법이 매우 중요하다. 본 발명에서는 수신을 기준으로 IOHT를 구성한다. 송신은 BSP에 포함된 디바이스 드라이버에서 조절을 할 수도 있지만, 수신은 외부의 노드에 의존하는 것이므로 수신을 기준으로 삼는다. 즉, 수신을 기준으로 하나의 기간(Epoch)을 잡는다.
도 5는 기간(Epoch)을 설명하기 위한 것으로, 본 발명에서 가정을 하고 있는 주된 I/O 인터페이스는 ATM 인터페이스로 이 경우 셀(Cell)의 수신을 기준으로 삼는다. 이전 수신에서 다음 수신까지가 한 기간이 되는데, 이때 OAM(Operation Administration and Maintenance) 셀과 같이 I/O 인터페이스를 통해 주기적으로 송수신되는 데이터는 무시한다. 그렇지 않으면 IOHT이 너무 방대해져 버리기 때문이다.
도 6은 I/O 인터페이스 데이터 흐름도를 나타낸 것으로서, 본 발명에서는 동기화 정보의 양을 줄이기 위해 I/O 인터페이스를 통한 수신은 액티브노드와 스탠드바이노드 양쪽에서 동일하게 이뤄지게 한다. 이렇게 되면 스탠드바이노드의 경우 I/O 인터페이스를 통해 수신되는 데이터와 IOHT를 기준으로 동기를 맞추게 되며 이때 도 7에 도시한 흐름도에 따른다.
즉, 주기적인 워치독 타이머 신호(watchdog timer signal)가 입력되면 IOHT의 Check Flag를 갱신한 후, IOHT의 Epoch#이 자기의 Epoch# 보다 크면 Epoch#에 해당하는 I/O를 처리하고 다음 동기를 위해 워치독 타이머 신호의 입력을 기다린다.
그러나 IOHT의 Epoch#이 자기의 Epoch#과 같거나 작으면 고가용성 메니저(HAM)으로부터 액티브측의 IOHT 갱신 신호가 입력되기를 기다리고, 액티브측의 IOHT 갱신 신호가 입력되면 Epoch#에 해당하는 I/O를 처리하고 자기 Epoch#를 증가시킨 후 다음 동기를 위해 워치독 타이머 신호의 입력을 기다린다.
이와 같이 동기를 맞추기 위해서는 스탠드바이노드측에는 수신된 데이터를 저장하기 위한 공간이 필요하다. 이 공간에는 수신된 데이터를 순서대로 도 8와 같이 I/O ID와 수신 데이터(Rx Data) 쌍으로 저장한다. 이곳에 저장된 데이터는 도 7에서 처럼 스탠드바이 노드의 HAM에 의해 액티브측의 Epoch#가 갱신됐음이 보고될 때 해당 기간에 대한 I/O를 처리하면서 동시에 저장된 해당 항목을 삭제한다. 여기서 한번에 저장될 수 있는 최대 항목수는 M이며, 이 값은 메모리 상황에 맞게 적절하게 잡는다. 대개의 경우 후술하는 도 1에 대한 설명에서 언급할 N과 동일하게 놓는다.
반면에 액티브노드는 I/O 인터페이스를 통해 송수신 되는 OAM 셀과 같은 데이터를 제외한 나머지 데이터에 관한 정보를 IOHT에 기록을 한다. 이때 IOHT의 엔트리(Entry)중 체크 플래그(Check Flag)가 설정이 된 항목은 스탠드바이 노드에서 이미 읽은 것으로 판단해 삭제하고, 수신이 될 때마다 Epoch#를 증가시킨다.
여기서, 도 1에 도시한 IOHT에 대해 좀더 자세히 설명한다.
IOHT는 본 발명에서 동기를 맞추는데 사용되는 중요한 정보로 각각의 필드는다음과 같은 목적으로 사용된다.
먼저 Index는 IOHT의 Index로 0~N의 범위를 갖는다. 여기서 N은 절체시 동기를 맞추는데 필요한 정보의 양을 예측해 결정하게 된다. 절체시 최대 한 기간의 차가 생기는 경우, 이 기간동안 OAM 셀에 해당하는 I/O를 제외한 발생한 모든 I/O에 관한 IOHT 엔트리가 이 정보의 양이된다. Check Flag는 스탠드바이노드가 해당 엔트리를 읽었는지 판단하는데 사용된다. Epoch#는 액티브 노드의 현재 Epoch#가 저장되며, Rx/Tx Flag는 해당 엔트리가 송신 데이터에 관한 것인지 수신 데이터에 관한 것인지를 나타내고, I/O ID는 I/O 인터페이스를 통해 설정되어 있는 각각의 연결(Connection)을 구별할 수 있는 ID이다. Data와 Checksum은 송수신 데이터와 그에 대한 Checksum이다. 마지막으로 Current Index는 IOHT에 씌여진 최종 엔트리를 가리킨다.
다음으로 중요한 요소로 결함(Fault) 감지 방법이 있다. 위와 같은 방식으로 일정한 기간 단위로 동기가 맞춰진 상태로 작동되는 상황에서 어느 한 순간 결함(Fault)이 발생했을때 이를 얼마나 빨리 감지하는가 하는 것은 고가용성에 있어서 매우 중요한 요소이다. 빨리 감지해 낼수록 데이터 손실이 적어지는 것이다. 본 발명에서 이를 위해, 액티브와 스탠드바이노드에 있는 HAM끼리 주기적으로 메시지를 주고 받는 방식을 택했다. 하트비트 프로토콜(Heartbeat Protocol)이라고도 하는 방식으로, 널리 사용되고 있으며 이를 도 9에 나타내었다.
주기적으로 메시지를 주고 받으면서 일정 시간 동안 응답이 없을 경우 상대방에 결함이 발생한 것으로 간주해 이에 해당하는 절차를 수행하게 되는 것이다. 본 발명에서는 이러한 절차를 좀더 빠르게 하기 위해 동시쓰기메모리를 이용한다. 동시쓰기메모리에 두 바이트-액티브바이트와 스탠드바이바이트-를 할당해 액티브노드에서는 스탠드바이바이트의 값을 1증가시켜 액티브바이트에 쓰고, 스탠드바이노드에서는 액티브바이트의 값을 1증가시켜 스탠드바이바이트에 쓴다. 값을 쓸 때 저장된 값보다 쓰는 값이 작거나 같으면 상대방 노드에 결함이 발생한 것으로 간주한다. 액티브노드에 결함이가 발생한 경우에만 절체를 하게 된다.
본 발명에서의 액티브노드와 스탠드바이노드간의 절체 방법에 대해 설명한다. 절체가 일어날 때 도 8의 도시된 자료구조에 저장된 정보(I/O ID, Rx Data)와 현재 스탠드바이노드의 Epoch#를 기준으로 IOHT에 있는 나머지 모든 항목에 대해 처리를 한다. 이때 송신에 관한 부분은 실제로 작업을 수행하되 I/O 인터페이스를 통해 실제로 송신하지 않고 무시(Bypass)한다. 본 발명의 적용범위를 결정짓는 중요한 요소이다. 즉, 이 절체시간이 얼마나 짧으냐가 본 발명에서 제안한 고가용성 방식이 사용될 수 있는지에 대한 결정을 하는데 중요한 역할을 하게 된다. 본 발명에서 IOHT이 저장된 메모리 영역을 계속해서 플러싱하는 것도 이 영역에 저장된 데이터에 발생한 갱신이 실제 메모리에 반영되지 않고 CPU의 캐쉬에만 반영되는 것을 방지함으로써 절체시간을 조금이라도 단축하기 위한 것이다.
본 발명의 적용 대상으로 고려한 제어국의 경우 실제로 제어국을 통해 전달되는 트래픽 데이터(Traffic Data)에 비해 제어 데이터(Control Data)의 양이 상대적으로 적다. 또한 고가용성의 대상을 현재 통화중인 호(Call)에 대해 한정을 지어 본 발명의 적용을 고려하게 된 것이다. 이러한 요구사항의 경우 이상에서 설명한 본 발명이 제안한 방법은 충분히 구현되어 사용할 수 있게 된다.
상술한 바와 같은 본 발명은 제어국과 같이 고가용성 혹은 이중화가 요구되는 시스템의 경우, 상용 실시간 운영체제 상에서 작동되는 고가용성 메니저인 미들웨어를 통해 적정한 수준에서의 고가용성을 용이하게 구현할 수 있게 된다. 따라서, 이중화 수준의 요구가 있는 시스템이 아닌 경우, 굳이 비싼 비용을 들여 이를 구현하는 것 보다 시스템에서 허락하는 한에서 적정한 수준의 고가용성을 구현함으로써 비용면에서나 최근 소프트웨어 기술을 사용하는 측면에서 이득이 생긴다. 최근에 발전하는 하드웨어의 성능을 볼 때 이런 방식으로 구현된 고가용성 기술이 하드웨어에 많이 의존하는 기존 방식에 비해 더 나은 접근 방식이 될 수 있다
이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.

Claims (8)

  1. 상용 실시간 운영체제를 사용하여 고가용성을 구현하기 위하여,
    액티브노드와 스탠드바이노드는 최하위층에 고가용성 제어 데이터의 송수신을 위한 고가용성 채널(HAC), Ethernet 송수신을 위한 Ethernet 인터페이스 블록, ATM 송수신을 위한 ATM 인터페이스 블록이 존재하며, 그위에 BSP(Board Support Package) 처리를 위한 계층, RTOS(Real Time Operating System)와 커널(Kernel) 계층, 및 고가용성 메니저(HAM)를 포함하는 응용 계층을 포함하는 S/W 계층구조를 가지며,
    상기 액티브노드와 스탠드바이노드 간의 동기를 맞추기 위하여 공유하는 동기화 정보(IOHT)가 저장되는 영역을 일반 메모리 영역에서 분리하고, 이 분리된 영역에 대해서 계속적인 플러싱을 수행하며,
    상기 고가용성 채널을 통해 I/O를 중심으로 작성되는 동기화 정보(IOHT)를 주고 받아 수신을 기준으로 하나의 기간을 정하여 동기를 맞추고,
    일정한 기간 단위로 동기가 맞춰진 상태로 작동되는 상황에서 액티브노드와 스탠드바이노드에 있는 고가용성 메니저끼리 주기적으로 메시지를 주고 받아 결함의 발생을 감지하면 액티브노드에서 스탠드바이노드로 절체를 수행함으로써 고가용성을 구현하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  2. 제1항에 있어서,
    상기 동기화 정보(IOHT)가 저장되는 영역은 동시쓰기 메모리 영역에 할당하여 동기화 정보가 빠르게 전달될 수 있게 하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 동기화 정보(IOHT)는,
    Index 필드,
    스탠드바이노드가 해당 엔트리를 읽었는지 판단하기 위한 Check Flag,
    액티브 노드의 현재 Epoch#를 저장 Epoch#,
    해당 엔트리가 송신 데이터에 관한 것인지 수신 데이터에 관한 것인지를 나타내는 Rx/Tx Flag,
    I/O 인터페이스를 통해 설정되어 있는 각각의 연결을 구별하기 위한 I/O ID,
    송수신 데이터(Data),
    송수신 데이터의 체크섬(Checksum), 및
    IOHT에 씌여진 최종 엔트리를 가리키는 Current Index를 포함하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  4. 제1항에 있어서,
    상기 S/W 계층구조 최하위층의 고가용성 채널은, 동시쓰기메모리로 구성되고, 상기 응용 계층내의 고가용성 메니저와 고가용성 제어 데이터(동기화 데이터)를 송수신하며,
    상기 RTOS와 커널 계층은 상용 RTOS의 것을 그대로 사용하며,
    상기 BSP 계층은 메모리 영역 분할에 관한 내용과 스탠드바이노드의 I/O 인터페이스중 송신부분만 스탠드바이노드의 고가용성 메니저에 의해 조절되는 기능이 추가되는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  5. 제1항에 있어서,
    액티브노드/스탠드 바이 노드의 결정은 부팅 순서에 따라 먼저 부팅되는 노드가 액티브노드로, 늦게 부팅되는 노드가 스탠드바이 노드로 결정되며,
    먼저 부팅된 노드 자신이 액티브가 된 후에 한번 더 검사를 하여 상대방이 액티브가 된 것이 확인이 되면, 일정시간 랜덤하게 멈춘 후에 재검사를 수행하고, 이때 고가용성 채널을 통해 액티브시그널이 더 이상 오지 않게 되면 액티브노드로서의 역할을 수행함으로써 두 노드가 동시에 액티브노드가 되는 것을 방지하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  6. 제1항에 있어서,
    I/O를 중심으로 한 동기화시에 동기화 정보의 양을 줄이기 위해 I/O 인터페이스를 통한 수신은 액티브노드와 스탠드바이노드 양쪽에서 동일하게 이뤄지도록 하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  7. 제6항에 있어서,
    스탠드바이측의 동기화는,
    주기적인 워치독 타이머 신호가 입력되면 IOHT의 Check Flag를 갱신한 후, IOHT의 Epoch#이 자기의 Epoch# 보다 크면 Epoch#에 해당하는 I/O를 처리하고 다음 동기를 위해 워치독 타이머 신호의 입력을 기다리는 단계와,
    IOHT의 Epoch#이 자기의 Epoch#과 같거나 작으면 고가용성 메니저(HAM)로부터 액티브측의 IOHT 갱신 신호가 입력되기를 기다려, 액티브측의 IOHT 갱신 신호가 입력되면 Epoch#에 해당하는 I/O를 처리하고 자기 Epoch#를 증가시킨 후 다음 동기를 위해 워치독 타이머 신호의 입력을 기다리는 단계를 통해 이루어지는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
  8. 제1항에 있어서,
    액티브노드의 결함 발생의 감지는,
    동시쓰기메모리를 이용하여, 각각 1바이트씩 액티브바이트와 스탠드바이바이트를 할당하고, 액티브노드에서는 스탠드바이바이트의 값을 1증가시켜 액티브바이트에 쓰고, 스탠드바이노드에서는 액티브바이트의 값을 1증가시켜 스탠드바이바이트에 쓰되, 값을 쓸 때 저장된 값보다 쓰는 값이 작거나 같으면 상대방 노드에 결함이 발생한 것으로 감지하는 것을 특징으로 하는 상용 실시간 운영체제와 미들웨어를 통한 I/O 기반 고가용성 구현 방법.
KR1020000004145A 2000-01-28 2000-01-28 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법 KR100336500B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000004145A KR100336500B1 (ko) 2000-01-28 2000-01-28 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000004145A KR100336500B1 (ko) 2000-01-28 2000-01-28 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법

Publications (2)

Publication Number Publication Date
KR20010076790A KR20010076790A (ko) 2001-08-16
KR100336500B1 true KR100336500B1 (ko) 2002-05-15

Family

ID=19642298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000004145A KR100336500B1 (ko) 2000-01-28 2000-01-28 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법

Country Status (1)

Country Link
KR (1) KR100336500B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100414059B1 (ko) * 2001-09-28 2004-01-07 엘지전자 주식회사 Rtos에서의 와치독 타이머를 이용한 오동작 감시시스템 및 방법
KR100758984B1 (ko) * 2005-08-17 2007-09-17 삼성전자주식회사 미들웨어를 구비한 임베디드 시스템의 부팅방법
KR100759218B1 (ko) * 2006-04-27 2007-09-17 아시아나아이디티 주식회사 개선된 rfid 미들웨어 엔진 시스템 및 구현방법
KR101159019B1 (ko) * 2010-12-10 2012-06-21 주식회사 케이티 통신 미들웨어의 이중화 절체 시 손실 데이터 복구 장치 및 그 방법
CN110008044B (zh) * 2019-04-11 2021-03-23 北京航空航天大学 一种嵌入式rtos上分布式实时通信中间件的构建方法
CN115617739B (zh) * 2022-09-27 2024-02-23 南京信息工程大学 一种基于Chiplet架构的芯片及控制方法

Also Published As

Publication number Publication date
KR20010076790A (ko) 2001-08-16

Similar Documents

Publication Publication Date Title
FI101432B (fi) Vikasietoinen tietokonejärjestelmä
Scales et al. The design of a practical system for fault-tolerant virtual machines
US6578160B1 (en) Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions
US7779291B2 (en) Four site triangular asynchronous replication
US5784617A (en) Resource-capability-based method and system for handling service processor requests
US7219260B1 (en) Fault tolerant system shared system resource with state machine logging
US20070180208A1 (en) Preventive measure against data overflow from differential volume in differential remote copy
US9576040B1 (en) N-site asynchronous replication
US20070294578A1 (en) Method and apparatus for facilitating process migration
US20040153710A1 (en) Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms
US7752404B2 (en) Toggling between concurrent and cascaded triangular asynchronous replication
US7734884B1 (en) Simultaneous concurrent and cascaded triangular asynchronous replication
CN101369241A (zh) 一种机群容错系统、装置及方法
US20030023808A1 (en) Method and system for maintaining data coherency in a dual input/output adapter utilizing clustered adapters
US8156177B2 (en) Fail-safe system for managing of client-server communication
US7293197B2 (en) Non-volatile memory with network fail-over
JP2002259155A (ja) 多重系計算機システム
JP2012173996A (ja) クラスタシステム、クラスタ管理方法、およびクラスタ管理プログラム
US7003645B2 (en) Use of a storage medium as a communications network for liveness determination in a high-availability cluster
US7680997B1 (en) Data recovery simulation
KR100336500B1 (ko) 상용 실시간 운영체제와 미들웨어를 통한 아이/오 기반고가용성 구현 방법
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
KR20030048503A (ko) 이중화 서버 구조의 데이터 동기화를 위한 통신 시스템 및방법
US7302607B2 (en) Two node virtual shared disk cluster recovery
JP3690666B2 (ja) マルチコンピュータシステム

Legal Events

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

Payment date: 20080328

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee