KR20030056290A - 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법 - Google Patents

이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법 Download PDF

Info

Publication number
KR20030056290A
KR20030056290A KR1020010086487A KR20010086487A KR20030056290A KR 20030056290 A KR20030056290 A KR 20030056290A KR 1020010086487 A KR1020010086487 A KR 1020010086487A KR 20010086487 A KR20010086487 A KR 20010086487A KR 20030056290 A KR20030056290 A KR 20030056290A
Authority
KR
South Korea
Prior art keywords
main
active
standby
signal
monitoring
Prior art date
Application number
KR1020010086487A
Other languages
English (en)
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 KR1020010086487A priority Critical patent/KR20030056290A/ko
Publication of KR20030056290A publication Critical patent/KR20030056290A/ko

Links

Classifications

    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법에 관한 것으로, 더욱 자세하게는 이중화된 시스템에서 각 시스템의 프로세스들을 이중화하고, 작업을 수행하는 프로세스의 비정상 종료 시, 이를 검출하고, 기존의 정보를 기반으로 프로세스들의 동기화를 통해 장애를 빠르게 복구할 수 있는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법에 관한 것이다.

Description

이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법{A Process error Recovery Technique by the Duplication System and Process}
본 발명은 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법에 관한 것으로, 더욱 자세하게는 이중화된 시스템에서 각 시스템의 프로세스들을 이중화하고, 작업을 수행하는 프로세스의 비정상 종료 시, 이를 검출하고, 기존의 정보를 기반으로 프로세스들의 동기화를 통해 장애를 빠르게 복구할 수 있는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법에 관한 것이다.
기존의 이중화된 시스템에서는 시스템 내에서 운용되는 프로세스에 고장이 발생하면, 운영체계로부터 장애 발생을 통보 받음으로써, 이를 확인하고, 이에 대처하도록 되어있다. 대처 방법은 장애 발생한 프로세스가 감시 대상 프로세스인지를 확인하고, 해당 프로세스가 속한 모듈전체를 재 시동하는 방법을 사용하거나, 운영체계를 통한 자동절차에 의한 프로세스의 재생성 방법을 통해 복구를 한다. 그 외의 방법으로는 프로세스의 정보를 라이브러리에 저장함으로써, 장애 발생 시 라이브러리에 저장된 정보를 이용해 프로세스를 재 성성함으로써, 복구를 하는 방법이 있다. 이러한 종래의 방법들은 기존에 정상적인 동작을 하는 프로세스들 또한 재 시동함으로써, 다른 서비스에 영향을 미칠 수 있으며, 또한 동일한 작업을 처리하기 위해 연동되어 작업을 수행하는 프로세스들에게 장애 발생 시 모든 프로세스를 재 생성함으로 인한 문제점을 지닌다. 예를 들어, 라우터 시스템과 같이 오랜 시간동안 동작하며, 지속적으로 자료를 갱신하는 시스템에서, 프로세스의 비정상 종료는 경우에 따라 네트워크의 효율에 많은 영향을 미칠 수 있다. 또한, 이런 경우, 원래의 라우팅 정보를 얻기까지 많은 시간이 소모되는 문제점이 있다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 이중화된 시스템에서 각 시스템의 프로세스들을 이중화하고, 작업을 수행하는 프로세스의 비정상 종료 시, 이를 검출하고, 기존의 정보를 기반으로 프로세스들의 동기화를 통해 장애를 빠르게 복구할 수 있는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법을 제공하는데 있다.
도1은본 발명이 적용되는 이중화된 시스템에서의 프로세스 구성도이다.
도2는 본 발명에 따른 주 시스템의 감시프로세스의 동작 흐름도이다.
도3은 본 발명에 따른 주 프로세스의 동작 흐름도이다.
도4는 본 발명에 따른 엑티브 및 스탠바이 프로세스의 동작 흐름도이다.
도5는 본 발명에 따른 부 시스템에서의 감시 프로세스의 동작 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 주 시스템 2 : 부 시스템
11 : 감시 프로세서 12 : 주 프로세서
13 : 액티브 프로세서 14 : 스탠바이 프로세서
상기 목적을 달성하기 위한 본 발명은, 주 시스템과 부 시스템으로 이중화 되어 있고, 상기 각 시스템에는 감시 프로세스와 주 프로세스가 구비된 시스템에서의 프로세스 장애 복구 방법에 있어서,
상기 주 시스템 및 상기 부 시스템의 감시 프로세스가 스탠바이 감시 프로세스를 생성하고, 각 시스템의 상태를 설정한 상태에서 상기 주 시스템의 주 프로세스의 등록 및 종료 상태를 상기 부 시스템에서 유지할 수 있도록, 상기 주 시스템의 감시 프로세스가 상기 부 시스템의 감시 프로세스로 등록 및 종료한 프로세스 식별자정보를 전송하는 제1 단계;
상기 주 시스템의 주 프로세스가 상기 주 시스템의 감시 프로세스에 등록한 상태에서 엑티브 프로세스를 생성하는 제2 단계;
상기 엑티브 프로세스가 스탠바이 프로세스를 생성하고, 작업을 수행하던 중 이상 발생에 의해 그 상태를 상기 주 프로세스로 전송하는 제3 단계;
상기 주 프로세스가 상기 엑티브 프로세스로부터 종료신호를 수신하면, 상기 스탠바이 프로세스에 신호를 전송하여 상기 엑티브 프로세스가 하던 작업을 연속적으로 수행하도록 하는 제4 단계;
상기 스탠바이 프로세스가 상기 주 프로세스로부터 신호를 수신하면, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료인 경우 동기화 계수를 증가시킨 후, 상기 주 프로세스로 신호를 전송하고, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료가 아닌 경우에는 연관 프로세스가 있는 경우에 동기화 요구 플래그를 설정하고 계수를 증가시킨 후 상기 주 프로세스로 전송하는 제5 단계;
상기 주 프로세스가 동기화 요구 플래그가 설정된 경우 동기화 작업중이 아니면 동기화 플래그를 설정한 다음에 연관 프로세스들에게 종료 신호를 전송하는 제6 단계; 및
상기 주 시스템의 감시 프로세스가 상기 주 시스템의 주 프로세스가 종료된 사실을 상기 부 시스템의 감시 프로세스로 전달하여 상기 부 시스템의 감시 프로세스가 주 프로세스를 생성하는 제7 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 주 시스템과 부 시스템으로 이중화 되어 있고, 상기 각 시스템에는 감시 프로세스와 주 프로세스가 구비된 컴퓨터에서,
상기 주 시스템 및 상기 부 시스템의 감시 프로세스가 스탠바이 감시 프로세스를 생성하고, 각 시스템의 상태를 설정한 상태에서 상기 주 시스템의 주 프로세스의 등록 및 종료 상태를 상기 부 시스템에서 유지할 수 있도록, 상기 주 시스템의 감시 프로세스가 상기 부 시스템의 감시 프로세스로 등록 및 종료한 프로세스 식별자정보를 전송하는 제1 기능;
상기 주 시스템의 주 프로세스가 상기 주 시스템의 감시 프로세스에 등록한상태에서 엑티브 프로세스를 생성하는 제2 기능;
상기 엑티브 프로세스가 스탠바이 프로세스를 생성하고, 작업을 수행하던 중 이상 발생에 의해 그 상태를 상기 주 프로세스로 전송하는 제3 기능;
상기 주 프로세스가 상기 엑티브 프로세스로부터 종료신호를 수신하면, 상기 스탠바이 프로세스에 신호를 전송하여 상기 엑티브 프로세스가 하던 작업을 연속적으로 수행하도록 하는 제4 기능;
상기 스탠바이 프로세스가 상기 주 프로세스로부터 신호를 수신하면, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료인 경우 동기화 계수를 증가시킨 후, 상기 주 프로세스로 신호를 전송하고, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료가 아닌 경우에는 연관 프로세스가 있는 경우에 동기화 요구 플래그를 설정하고 계수를 증가시킨 후 상기 주 프로세스로 전송하는 제5 기능;
상기 주 프로세스가 동기화 요구 플래그가 설정된 경우 동기화 작업중이 아니면 동기화 플래그를 설정한 다음에 연관 프로세스들에게 종료 신호를 전송하는 제6 기능; 및
상기 주 시스템의 감시 프로세스가 상기 주 시스템의 주 프로세스가 종료된 사실을 상기 부 시스템의 감시 프로세스로 전달하여 상기 부 시스템의 감시 프로세스가 주 프로세스를 생성하는 제7 기능을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에서는 주 시스템과 부 시스템의 이중화 구성을 통하여 주 시스템의 오동작시 부 시스템을 통하여, 주 시스템에서 제공하던 서비스 및 작업을 부 시스템에서 처리하도록 구성된 시스템에서, 주 시스템에서의 오류로 인한 오동작시에는 부 시스템은 운영체계로부터 신호 수신을 통해 주시스템의 오동작 상황을 알 수 있으며, 이에 빠르게 대처할 수 있도록 한다. 또한, 시스템 내에서 동작하는 프로세스의 오류 발생 시 이에 대비하고 있던 프로세스는 오류로 인해 비정상 종료한 프로세스의 작업을 연속적으로 처리할 수 있도록 한다. 장애로 인해 비정상 종료한 프로세스와 연동하여 작업을 처리하던 프로세스가 있을 경우 이러한 프로세스들과도 동기화 방법을 통해 저장된 이전의 상태에서부터 작업을 처리할 수 있도록 한다. 또한, 프로그램상의 오류로 인한 빈번한 프로세스의 비정상 종료에 대하여도 사용자가 정한 일정한 횟수 동안만 재 가동하여, 프로세스의 부하를 줄이도록 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다.
도 1은 본 발명이 적용되는 시스템의 구성 및 시스템내의 프로세스들의 구성을 나타낸 것이다.
본 발명은 동일한 운영체계를 지닌 두 개의 하드웨어 시스템에서 동작한다. 이중화된 시스템(주 시스템(1), 부 시스템(2))은 이더넷이나 시리얼 라인으로 연결되어, 상호 동작 여부를 체크할 수 있도록 구성되어진다. 주 시스템(1)은 사용자가 구동하고자 원하는 프로그램이 사용자에 의하여 실행되어, 생성된 프로세스들이 동작하는 시스템이며, 부 시스템(2)은 주 시스템(1)의 오류로 인한 장애 발생시 주 시스템(1)에서 수행되던 작업을 수행하도록 하는 시스템을 말한다. 각 시스템은 감시 프로세스(11, 21)와 고장 감내형 프로세스 모듈들로 구성된다. 감시 프로세스들(11, 21)은 각 시스템 내에서 동작하는 프로세스들을 동기화시키는 작업뿐만 아니라, 상대 시스템의 동작 여부를 감시한다. 고장 감내형 프로세스 모듈은 고장 감내를 위해 작성된 라이브러리를 포함하여 동작 여부를 체크 받기 위한 프로세스 단위를 말하며, 고장 감내형 프로세스 모듈은 주 프로세스(12) 및 엑티브 프로세스(AP)(13)와 스탠바이 프로세스(SP)(14)들로 구성된다. 주 프로세스는 사용자에 의해 실행되며, 시스템 내에서 운용되는 프로세스로, 고장 감내형 모듈을 지니고 있으며, 엑티브 프로세스를 생성하다. 또한, 주 프로세스는 생성된 엑티브 프로세스들간의 프로세서간 통신(IPC) 및 신호전송 등을 통한 작업 수행 시에, 수행되는 작업들을 동기화시킨다. 엑티브 프로세스는 실제 프로그램에서 수행해야 할 작업들을 수행하는 프로세스를 말하며, 스탠바이 프로세스는 엑티브 프로세스의 오류로 인한 비정상 종료 시, 엑티브 프로세스에서 수행하던 작업을 가장 최근의 상태에서부터 수행한다.
도 1에 도시된 주 시스템의 감시 프로세스(11)와 부 시스템의 감시프로세스(21)는 시스템의 시작과 함께 초기화되며, 시스템이 초기화되면 두 시스템의 감시 프로세스들은 시스템의 동작여부를 알리는 메시지를 주기적으로 송수신하여, 상대 시스템의 동작 상태가 정상상태인지 여부를 체크한다.
도 2는 본 발명에 따른 주 시스템에서 동작하는 감시 프로세스의 동작을 나타낸 흐름도이다.
감시 프로세스는 데몬 프로세스로 동작되거나, 또는 관리자나, 사용자에 의하여 초기화가 가능하다. 초기화된 감시 프로세스는 스탠바이 감시프로세스를 생성(101)하여, 자신의 오류로 인한 비정상 종료에 대비하게 한다. 생성된 스탠바이 감시프로세스는 자신의 프로세스 식별자(PID)를 등록(105)한 후, 엑티브 감시프로세스의 프로세스 식별자(PID)를 주기적으로 체크함(106)으로써, 엑티브 감시프로세스가 동작 중인지 여부를 확인한다. 만약, 엑티브 감시프로세스가 비정상 종료하게 되면, 새로운 스탠바이 감시프로세스를 생성(105)하고, 자신은 엑티브 감시프로세스로의 작업을 수행한다.
엑티브 감시프로세스는 주 프로세스들과 통신을 위해 통신 채널로서 FIFO를 생성(102)한 후, 현재 자신이 구동되고 있는 시스템이 주 시스템 임을 알리는 플래그(Active_system_Flag)를 설정(103)하여, 주 프로세스들로 하여금 현재 자신들이 주 시스템에서 구동됨을 알 수 있도록 한다. 플래그를 설정한 엑티브 감시프로세스는 스래드를 생성(104)하여 작업을 분리한다.
주 스래드는 주 프로세스와의 통신을 위해 생성한 통신 채널인 FIFO를 주기적으로 읽으며(109), FIFO에 메시지가 있는지 여부를 확인(110)한다. 메시지가 없을 경우는 다시 FIFO를 읽으며, 메시지가 있을 경우는 메시지가 어떤 메시지인지를 파악(111)한다. 메시지가 등록 요구를 알리는 메시지(111)인 경우, 주 프로세스에 할당할 자원인 세마포(Sem)와 공유메모리 키(shm)가 존재하는지 여부를 파악(112)한다. 자원이 없어 등록이 가능하지 않을 경우는 등록이 가능하지 않은 원인을 나타내는 메시지를 전송(119)하며, 등록이 가능할 경우는 세마포와, 공유메모리 키를 주 프로세스로 전송(113)한다.
엑티브 감시 프로세스는 부 시스템의 감시 프로세스와의 통신이 가능하다면, 소켓을 통하여 등록한 프로세스에 대한 정보(PID)를 전송한다(115). 소켓 통신이 가능하지 않다면 계속해서, FIFO를 읽어 새로운 메시지가 있는지를 조사한다. FIFO에서 읽은 메시지가 종료를 알리는 메시지인 경우(116), 소켓 통신이 가능하다면, 종료 메시지 및 종료를 알리는 프로세스의 정보를 전송(118)한 후, FIFO를 읽는다.
생성된 스래드는 알람을 설정(120)한 뒤, 소켓이 존재하는지를 파악(121)하여, 소켓이 존재하지 않는다면, 부 시스템의 감시프로세스에 소켓을 등록(122)한다. 소켓을 성공적으로 등록하면(123), 소켓을 통하여 부 시스템으로 자신의 동작상태를 알리는 메시지를 전송(127)한다. 이에 대한 응답 메시지를 수신한 경우는(128) 주기적으로 자신의 동작 상태를 알리는 메시지를 송수신한다. 응답 메시지를 수신하지 못한 경우(128), 신호수신대기 상태에서(124), 수신한 신호가(125), 알람 신호이면(129), 초기화시 설정된 값(N: 알람 신호 허용횟수)이 알람 신호를 받은 횟수보다 많은지 여부를 조사(130)한다. 알람 신호를 수신한 횟수가 적을 경우 다시 알람을 설정하고(131), 메시지를 전송하여, 위의 동작을 반복한다. 또한 알람 신호를 받은 횟수가 초기화시 설정된 값N보다 클 경우, 부 시스템의 비정상 동작을 알리는 메시지의 출력을 요청(132)한 후 종료한다.
한편, 소켓의 등록이 성공적으로 이루어지지 않은 경우(123), 신호수신 대기 상태에서(124), 수신한 신호가 소켓 끊김 신호이면(125, 126), 소켓 끊김 신호를 수신한 횟수가 초기화시 설정된 값보다 적을 경우 수신한 신호의 회수를 증가시킨 후(131), 알람을 설정하는 단계(120)로 복귀한다. 한편, 소켓 끊김 신호를 받은 횟수가 초기화시 설정된 값N보다 클 경우, 부 시스템의 비정상 동작을 알리는 메시지의 출력을 요청(132)한 후 종료한다.
도 3은 본 발명에 따른 사용자에 의해 생성되어진 주 프로세스의 동작의 흐름도이다.
주 프로세스는 감시 프로세스에 자신을 등록(301)하여, 부 시스템에 자신과 동일한 프로세스가 생성될 수 있도록 한다. 주 시스템의 정상 동작 시에는 부 시스템의 주 프로세스는 동작대기 상태로 머물게 하며, 주 시스템의 비정상 동작 시에는 부 시스템의 주 프로세스로 하여금 주 시스템에서와 같은 작업을 처리하도록 한다.
엑티브 감시 프로세스에 등록을 요청한 주 프로세스는 FIFO를 읽음(302)으로, 감시 프로세스로부터 등록 수락 여부(304)를 알리는 메시지를 받는다. 등록이 거절된 경우 등록거절에 대한 메시지의 출력을 요구한 후(330) 종료되며, 등록이 수락된 경우, 세마포와 공유메모리 키를 전송받아, 세마포와 공유메모리를 초기화(305)한다.
주 프로세스는 자신의 프로세스 식별자(PID)를 공유메모리 안의 구조체에 등록(306)한 후, 플래그 구조체를 읽음(307)으로 자신이 동작하는 시스템이 주 시스템인지, 부 시스템인지 여부를 파악(308)한다. 부 시스템에서 동작하는 경우, 신호 수신 대기상태(310)로 바로 천이하며, 주 시스템에서 동작하는 경우, 실제 작업을 처리할 엑티브 프로세스를 생성(309)하고, 신호 수신 대기상태(310)로 천이한다. 엑티브 프로세스의 동작에 대해서는 도4에서 후술하기로 한다.
주 프로세스가 신호수신 대기 상태에서, 수신한 신호가 엑티브 프로세스의 종료를 알리는 신호(312)인 경우, 스탠바이 프로세스에게 엑티브 프로세스의 종료를 알리는 신호1을 전송(313)하여, 엑티브 프로세스가 수행하던 작업을 스탠바이 프로세스가 연속적으로 수행하도록 한다. 신호 수신 대기 상태에서 주 프로세스가 엑티브 프로세스의 종료를 알리는 신호1을 수신(314)한 경우, 주 프로세스는 플래그 구조체를 조사(315)한다. 먼저, 자신의 동작하는 시스템이 주 시스템인지 여부를 알리는 플래그(Active_system_FLAG)를 조사(316)한 후, 부 시스템인 경우는 엑티브 프로세스를 생성하여 작업을 수행하게 하며(309), 자신은 신호수신대기 상태로 천이한다. 주 시스템일 경우, 동기화를 요구하는 플래그(SYN_REQ_FLAG)가 설정되었는지를 확인(320)한다. 동기화 요구 플래그가 설정되지 않았다면, 작업 종료를 알리는 플래그(END_FLAG)가 설정(327)되었는지를 확인하여, 플래그가 설정되었을 경우 작업을 수행하는 프로세스들이 모두 작업 수행을 종료했는지를(N=NoP) 확인(327)한다. 모든 프로세스들이 종료하지 못했을 경우, 주 프로세스는 신호 수신 대기상태(310)로 천이하여 모든 프로세스들의 작업이 종료되기를 기다리며, 모든 생성된 엑티브 프로세스들의 작업이 끝났을 경우, 자신이 속한 고장 감내형 프로세스 모듈내의 모든 프로세스들을 종료(328)시킨 후, 종료를 알리는 메시지를 감시프로세스에 전송(329)한다. 그리고, 주 프로세스 또한 종료한다. 동기화 요구 플래그가 설정되었을 경우, 현재 동기화 작업 중인지 여부를 알리는 플래그(SYN_FLAG)를 조사(321)한다. 현재 동기화 작업 중이 아닐 경우, 비정상 작업 종료한 엑티브 프로세스와 연관된 작업을 처리하던 프로세스가 존재하는지 여부를 나타내는 연관구조체를 조사(322)한다. 연관된 프로세스가 없을 경우, 플래그들을 초기화(318)시킨 후, 스탠바이 프로세스에 신호를 전송하여, 엑티브 프로세스가 처리하던 작업을 처리하게 한다. 연관된 프로세스가 있을 경우(323), 동기화 작업 중임을 알리는 플래그를 설정(324)하고, 연관된 프로세스에 종료신호를 전송(325)한다. 한편, 현재 동기화 작업 중인 경우에는(321) 계수 값(CNT)이 임의 설정 값N에 도달하면(317), 플래그들을 초기화(318)시킨 후, 스탠바이 프로세스에 신호를 전송하여, 엑티브 프로세스가 처리하던 작업을 처리하게 한다.
도 4는 본 발명에 따른 엑티브 프로세스와 스탠바이 프로세스의 동작 흐름도이다.
주 프로세스에 의해 생성된 엑티브 프로세스는 스탠바이 프로세스를 생성(401)하며, 자신의 프로세스 식별자(PID)를 구조체에 등록(402)한다. 또한, 같은 작업을 연동하여 수행하는 프로세스가 있을 경우 이를 연관 구조체에 등록(404)한다. 복구 회수가 초기화시 설정한 값(N)보다 작으면(405) 작업을 수행하고(406), 작업 수행 중 체크포인트를 만나면(407), 새로운 스탠바이 프로세스를 생성(408)한 후, 주어진 작업을 계속 수행한다(409). 다시 체크포인트를 만나면(410) 스탠바이 프로세스를 생성(408)한 후, 주어진 작업을 계속수행한다(409). 작업을 완료한 경우(411), 작업 종료를 알리는 플래그(END_FLAG)를 설정(412)한다. 그리고, 주프로세스로 신호1을 전송하고(413), 신호 수신 대기상태(414)로 천이하여 주 프로세스로부터 전송되는 신호를 기다린다. 주 프로세스로부터 종료신호(415)를 받으면, 엑티브 프로세스는 종료하게 된다.
생성된 스탠바이 프로세스는 프로세스 식별자(PID)를 등록(416)하며, 신호 수신 대기상태를 유지한다(417). 주 프로세스로부터 신호 1을 수신했을 경우(418, 420), 이는 엑티브 프로세스의 죽음을 알리는 신호이다. 이런 경우, 연관된 프로세스의 비정상 종료로 인한 엑티브 프로세스의 종료인지를 동기화 요청 플래그를 읽음으로 파악(422)한다. 즉, 동기화 요청 플래그(SYS_REQ_FLAG)가 설정되어 연관 프로세스의 종료인 경우, 동기화를 위한 계수를 증가(426)시킨 후, 주 프로세스로 신호를 전송(427)하고, 신호 수신 대기상태로 천이(428)한다.
연관 프로세스의 종료로 인한 신호 전송이 아닐 경우, 연관 구조체를 읽어(423), 연관 프로세스가 있었는지 여부를 파악(424)한다. 연관 프로세스가 없을 경우, 새로운 스탠바이 프로세스를 생성(435)하고, 자신은 프로세스 식별자(PID)를 등록한(402) 후, 엑티브 프로세스로 동작한다. 연관된 프로세스가 있을 경우, 동기화 요구 플래그를 설정(425)하고, 카운터를 증가(426)시킨 후, 주 프로세스에 신호를 전송한다(427). 신호수신대기상태(428)에서 스탠바이 프로세스가 주 프로세스로부터 신호1을 수신하면(429), 새로운 스탠바이 프로세스를 생성하고(435), 자신은 프로세스 식별자(PID)를 등록한(402) 후, 엑티브 프로세스로 동작한다.
엑티브 프로세스의 작업 중 체크 포인트를 만나, 생성된 스탠바이 프로세스(408)는 프로세스 식별자(PID) 구조체를 읽어(430), 이전에 만들어진 스탠바이 프로세스에 종료신호를 전송(431)한다. 또한, 생성된 스탠바이 프로세스는 자신의 프로세스 식별자(PID)를 등록(432)하고, 엑티브 프로세스의 PID를 조사(433)함으로써 동작 여부를 감시한다.
도 5는 본 발명에 따른 부 시스템에서 동작하고 있는 감시 프로세스들의 동작에 대한 흐름도이다.
부 시스템의 엑티브 감시 프로세스는 스탠바이 감시프로세스를 생성(501)한다. 생성된 스탠바이 감시 프로세스는 프로세스 식별자(PID)를 등록(508)하고, 엑티브 감시 프로세스의 동작 여부를 감시한다.
부 시스템의 엑티브 감시 프로세스는 소켓을 생성(502)하여, 주 시스템의 감시 프로세스로부터의 등록(503)을 기다린다. 등록이 설정되었다면(504), FIFO를 생성(505)하고, 자신이 부 시스템 임을 알리는 플래그를 설정(506)한다. 감시 프로세스는 스래드를 생성(507)하여, 자신은 FIFO를 조사하며(512), 생성된 스래드는 소켓을 통해 수신된 메시지를 파악(520)하는 작업을 한다.
FIFO에 메시지가 있을 경우(513), 메시지의 의미를 파악한다. 시작 메시지인 경우(514), 할당할 자원이 있는지를 조사(515)한 후, 자원이 있다면 세마포와 공유메모리 키를 제공(516)한다. 종료 메시지인 경우 할당했던 자원을 회수한 후, 계속해서 FIFO에 메시지가 들어오는지를 살핀다(517).
생성된 스래드는 알람을 설정한 후(518), 소켓을 읽어(519), 소켓으로 수신한 메시지가 어떤 메시지인지를 파악하여(520), 메시지에 따른 동작을 한다. 주 시스템의 감시 프로세스로부터 수신한 메시지가 자신의 상태를 나타내는 메시지(I'm alive")이면(520), 응답 메시지를 전송한다(525). 주 시스템의 감시 프로세스로부터 수신한 메시지가 시작 메시지(533)인 경우, 주 시스템의 주 프로세스와 동일한 주 프로세스를 생성(534)하여, 도3에 도시된 바와 같은 주 프로세스의 동작을 수행하도록 한다. 주 시스템의 감시 프로세스로부터 수신한 메시지가 종료 메시지인 경우(522), 프로세스 식별자(PID) 구조체를 읽어(523), 해당 프로세스를 종료(524)시킨 후, 응답 메시지를 전송(525)한다.
신호수신대기 상태에서(526), 소켓을 통하여, 일정시간 동안 메시지를 수신하지 못한 경우, 알람 신호를 수신(35)하게 된다. 연속해서 수신한 알람 신호가 정의된 임의의 값(N)보다 작은 경우(536), 수신한 알람 신호를 계수하는 값을 증가시키고(537), 다시 소켓을 읽는다. 만약, 연속해서 수신한 알람 신호가 정의된 임의의 값(N)보다 큰 경우(536), 주 시스템의 오동작을 알리는 플래그를 설정한 뒤(538), 프로세스 식별자 구조체를 읽은 다음(539), 대기 상태에 있는 주 프로세스들에게 신호를 전송(540)하고, 주 시스템의 비정상 상태를 알리는 메시지 출력을 요구(541)하고, 생성된 스래드는 종료한다.
소켓끊김 신호를 수신했을 경우는(528) 새로운 소켓을 생성(529)하여, 알람을 설정한 후(530), 주 시스템으로부터 등록을 기다린다. 그러나, 일정시간동안 등록요청이 들어오지 않을 경우, 알람신호를 수신했을 때와 같이 동작한다.
상기와 같은 본 발명은 다음과 같은 효과가 있다.
라우터 시스템과 같이 오랜 시간동안 동작하며, 라우터 테이블과 같은 정보를 지속적으로 갱신하는 시스템에서, 프로세스의 비정상 종료는 경우에 따라 네트웍의 효율에 많은 영향을 미칠 수 있으며, 기존의 라우팅 정보를 얻기까지 많은 시간이 소모 될 수 있다. 이런 경우, 본 발명에서 제시한 프로세스의 이중화를 통하여, 오류로 인한 비정상 종료된 프로세스의 정상 상태 시의 정보를 지닌 스탠바이프로세스에 의해 작업을 정상적으로 수행할 수 있다. 감시 대상 프로세스의 오류로 인한 비정상 종료를 감지한 프로세스는 종료된 프로세스가 수행하던 작업을 연속적으로 수행함으로써, 네트워크의 효율을 떨어뜨리지 않으며, 또한 최신의 라우팅 정보를 얻기까지 걸리는 시간을 단축시킬 수 있다. 또한, 연구를 위해 오랜 시간동안 동작해야 하는 프로세스에서 오류가 발생하여, 프로세스가 비정상 종료할 경우, 며칠 또는 몇 주 동안 얻은 결과 또한 소멸 되어버릴 것이다. 그러나, 본 시스템의 적용시 하드웨어 및 소프트웨어로 인한 오류에 대하여 데이터의 무결성을 보장 받을 수 있다. 위에 언급한 응용 이외에도 서버 시스템에서 동작하는 데몬 프로세스들에 적용이 가능하며, 적용했을 경우, 서비스의 단절 시간을 최소로 하여, 지속적인 서비스를 제공 또는 작업을 지속적으로 처리할 수 있다.

Claims (8)

  1. 주 시스템과 부 시스템으로 이중화 되어 있고, 상기 각 시스템에는 감시 프로세스와 주 프로세스가 구비된 시스템에서의 프로세스 장애 복구 방법에 있어서,
    상기 주 시스템 및 상기 부 시스템의 감시 프로세스가 스탠바이 감시 프로세스를 생성하고, 각 시스템의 상태를 설정한 상태에서 상기 주 시스템의 주 프로세스의 등록 및 종료 상태를 상기 부 시스템에서 유지할 수 있도록, 상기 주 시스템의 감시 프로세스가 상기 부 시스템의 감시 프로세스로 등록 및 종료한 프로세스 식별자정보를 전송하는 제1 단계;
    상기 주 시스템의 주 프로세스가 상기 주 시스템의 감시 프로세스에 등록한 상태에서 엑티브 프로세스를 생성하는 제2 단계;
    상기 엑티브 프로세스가 스탠바이 프로세스를 생성하고, 작업을 수행하던 중 이상 발생에 의해 그 상태를 상기 주 프로세스로 전송하는 제3 단계;
    상기 주 프로세스가 상기 엑티브 프로세스로부터 종료신호를 수신하면, 상기 스탠바이 프로세스에 신호를 전송하여 상기 엑티브 프로세스가 하던 작업을 연속적으로 수행하도록 하는 제4 단계;
    상기 스탠바이 프로세스가 상기 주 프로세스로부터 신호를 수신하면, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료인 경우 동기화 계수를 증가시킨 후, 상기 주 프로세스로 신호를 전송하고, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료가 아닌 경우에는 연관 프로세스가 있는 경우에 동기화 요구 플래그를 설정하고 계수를 증가시킨 후 상기 주 프로세스로 전송하는 제5 단계;
    상기 주 프로세스가 동기화 요구 플래그가 설정된 경우 동기화 플래그를 설정한 다음에 연관 프로세스들에게 종료 신호를 전송하는 제6 단계; 및
    상기 주 시스템의 감시 프로세스가 상기 주 시스템의 주 프로세스가 종료된 사실을 상기 부 시스템의 감시 프로세스로 전달하여 상기 부 시스템의 감시 프로세스가 주 프로세스를 생성하는 제7 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  2. 제 1 항에 있어서,
    상기 제1 단계는,
    상기 주 시스템의 엑티브 감시 프로세스가 스탠바이 감시 프로세스를 생성하여, 상기 스탠바이 감시 프로세스가 상기 엑티브 감시 프로세스의 상태를 검사하는 단계;
    상기 엑티브 감시 프로세스가 상기 주 프로세스와의 통신 채널을 설정한 상태에서 자신의 상태를 나타내는 플래그를 설정하는 단계;
    상기 주 프로세스로부터 등록 요구 메시지가 수신되면 자원을 할당하여 상기 주 프로세스로 전송하고, 상기 부 시스템의 감시 프로세스와 통신을 위해 설정된 소켓을 통해 등록된 프로세스의 식별자 정보를 전송하는 단계;
    상기 주 프로세스로부터 종료 메시지가 수신되면 상기 소켓을 통해 종료 메시지 및 프로세스 식별자 정보를 상기 부 시스템의 감시 프로세스로 전송하는 단계; 및
    상기 주 시스템의 감시 프로세스가 상기 부 시스템의 감시 프로세스와의 소켓이 설정되지 않거나 알람신호를 연속적으로 임의 회수 이상 수신하는 경우 상기 부 시스템의 비정상 상태를 알리는 메시지의 출력을 요청하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제2 단계는,
    상기 주 프로세스가 상기 감시 프로세스에 등록을 요청한 상태에서 등록 허가 메시지와 함께 자원으로서 세마포와 공유메모리 키를 수신하면 상기 세마포와 공유메모리 키를 초기화하는 단계;
    상기 주 프로세스가 자신의 프로세스 식별자를 공유메모리 내의 구조체에 등록한 후, 플래그 구조체를 읽어 자신의 시스템이 주 시스템인지 부 시스템인지 확인하는 단계;
    자신의 시스템이 주 시스템이면 상기 주 프로세스가 엑티브 프로세스를 생성하는 단계; 및
    자신의 시스템이 부 시스템이면 신호수신대기상태로 천이하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스장애 복구방법.
  4. 제 3 항에 있어서,
    상기 제3 단계는,
    상기 엑티브 프로세스가 스탠바이 프로세스를 생성한 후, 자신의 프로세스 식별자를 등록하고, 연동 프로세스가 있는 경우 연동프로세스를 연관 구조체에 등록하는 단계;
    상기 엑티브 프로세스가 작업 수행 중에 체크포인트를 만나면 새로운 스탠바이 프로세스를 생성하는 단계; 및
    작업이 종료되면 상기 엑티브 프로세스가 작업종료 플래그를 설정한 다음에 상기 주 프로세스로 신호를 전송하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  5. 제 4 항에 있어서,
    상기 제5 단계는,
    상기 스탠바이 프로세스가 프로세스 식별자를 등록한 상태에서 상기 주 프로세스로부터 엑티브 프로세스의 비정상 종료를 알리는 신호를 수신하면, 동기화 요구 플래그가 설정되어 있는지 확인하는 단계;
    동기화 요구 플래그가 설정되어 있지 않으면, 연관 구조체를 읽어 연관 프로세스가 있는지 확인하는 단계;
    연관 프로세스가 없으면 새로운 스탠바이 프로세스를 생성하고 자신은 엑티브 프로세스로 동작하는 단계;
    연관 프로세스가 있으면 동기화 요구 플래그를 설정하고, 카운터를 증가시킨 다음 상기 주 프로세스로 전송하는 단계; 및
    동기화 요구 플래그가 설정되어 있으면, 카운터를 증가시킨 다음 상기 주 프로세스로 전송하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  6. 제 5 항에 있어서,
    상기 제6 단계는,
    상기 주 프로세스가 상기 엑티브 프로세스의 비정상 종료를 알리는 신호를 수신한 경우, 동기화 요구 플래그가 설정되어 있으면 동기화 중임을 나타내는 동기화 플래그가 설정되어 있는지 확인하는 단계;
    동기화 플래그가 설정되어 있지 않으면 연관 구조체를 읽어 연관 프로세스가 있는 경우 동기화 플래그를 설정한 다음에, 연관 프로세스에 종료 신호를 전송하는 단계;
    동기화 플래그가 설정되어 있거나 연관 프로세스가 없는 경우에는 플래그들을 초기화하고, 상기 엑티브 프로세스가 처리하던 작업을 처리하도록 상기 스탠바이 프로세스로 신호를 전송하는 단계; 및
    종료 플래그가 설정되어 있으면, 작업을 수행하는 모든 프로세스가 작업 수행을 종료하기를 기다려 모두 종료하면, 상기 모든 엑티브 프로세스에 종료신호를 전송하고, 상기 감시 프로세스로 종료 메시지를 전송하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  7. 제 1 항에 있어서,
    상기 제7 단계는,
    상기 부 시스템의 감시 프로세스가 상기 주 시스템의 감시 프로세스로부터 소켓을 통해 종료 메시지를 수신하면 프로세스 식별자 구조체를 읽어 해당 프로세스를 소멸시키는 단계; 및
    상기 부 시스템의 감시 프로세스가 상기 주 시스템의 감시 프로세스로부터 소켓을 통해 시작 메시지를 수신하면 주 프로세스를 생성하는 단계를 포함하는 것을 특징으로 하는 이중화된 시스템에서의 프로세스의 이중화를 통한 프로세스 장애 복구방법.
  8. 주 시스템과 부 시스템으로 이중화 되어 있고, 상기 각 시스템에는 감시 프로세스와 주 프로세스가 구비된 컴퓨터에서,
    상기 주 시스템 및 상기 부 시스템의 감시 프로세스가 스탠바이 감시 프로세스를 생성하고, 각 시스템의 상태를 설정한 상태에서 상기 주 시스템의 주 프로세스의 등록 및 종료 상태를 상기 부 시스템에서 유지할 수 있도록, 상기 주 시스템의 감시 프로세스가 상기 부 시스템의 감시 프로세스로 등록 및 종료한 프로세스 식별자정보를 전송하는 제1 기능;
    상기 주 시스템의 주 프로세스가 상기 주 시스템의 감시 프로세스에 등록한 상태에서 엑티브 프로세스를 생성하는 제2 기능;
    상기 엑티브 프로세스가 스탠바이 프로세스를 생성하고, 작업을 수행하던 중 이상 발생에 의해 그 상태를 상기 주 프로세스로 전송하는 제3 기능;
    상기 주 프로세스가 상기 엑티브 프로세스로부터 종료신호를 수신하면, 상기 스탠바이 프로세스에 신호를 전송하여 상기 엑티브 프로세스가 하던 작업을 연속적으로 수행하도록 하는 제4 기능;
    상기 스탠바이 프로세스가 상기 주 프로세스로부터 신호를 수신하면, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료인 경우 동기화 계수를 증가시킨 후, 상기 주 프로세스로 신호를 전송하고, 연관 프로세스의 비정상 종료로 인한 상기 엑티브 프로세스의 종료가 아닌 경우에는 연관 프로세스가 있는 경우에 동기화 요구 플래그를 설정하고 계수를 증가시킨 후 상기 주 프로세스로 전송하는 제5 기능;
    상기 주 프로세스가 동기화 요구 플래그가 설정된 경우 동기화 작업중이 아니면 동기화 플래그를 설정한 다음에 연관 프로세스들에게 종료 신호를 전송하는 제6 기능; 및
    상기 주 시스템의 감시 프로세스가 상기 주 시스템의 주 프로세스가 종료된 사실을 상기 부 시스템의 감시 프로세스로 전달하여 상기 부 시스템의 감시 프로세스가 주 프로세스를 생성하는 제7 기능을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020010086487A 2001-12-28 2001-12-28 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법 KR20030056290A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010086487A KR20030056290A (ko) 2001-12-28 2001-12-28 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010086487A KR20030056290A (ko) 2001-12-28 2001-12-28 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법

Publications (1)

Publication Number Publication Date
KR20030056290A true KR20030056290A (ko) 2003-07-04

Family

ID=32214496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010086487A KR20030056290A (ko) 2001-12-28 2001-12-28 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법

Country Status (1)

Country Link
KR (1) KR20030056290A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095064A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 네트워크 운영 모드 기반 프로세스 제어 방법 및 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230029A2 (en) * 1985-12-27 1987-07-29 AT&T Corp. Method and apparatus for fault recovery in a distributed processing system
KR960028620A (ko) * 1994-12-22 1996-07-22 박성규 전전자 교환기에 있어서 이중화 제어회로
KR19990040618A (ko) * 1997-11-19 1999-06-05 김영환 파일롯/동기 채널의 이중화를 위한 채널 엘리먼트 간의 상태검사방법
KR20010010293A (ko) * 1999-07-19 2001-02-05 정선종 고장감내 교환제어 시스템내 관리시스템에서의 오류관리시스템 및 오류 복구방법
KR20020062483A (ko) * 2001-01-22 2002-07-26 주식회사 로커스 내 고장성 시스템 및 이중화 방법
KR20030034421A (ko) * 2001-10-23 2003-05-09 엘지전자 주식회사 피시아이 시스템 이중화 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230029A2 (en) * 1985-12-27 1987-07-29 AT&T Corp. Method and apparatus for fault recovery in a distributed processing system
KR960028620A (ko) * 1994-12-22 1996-07-22 박성규 전전자 교환기에 있어서 이중화 제어회로
KR19990040618A (ko) * 1997-11-19 1999-06-05 김영환 파일롯/동기 채널의 이중화를 위한 채널 엘리먼트 간의 상태검사방법
KR20010010293A (ko) * 1999-07-19 2001-02-05 정선종 고장감내 교환제어 시스템내 관리시스템에서의 오류관리시스템 및 오류 복구방법
KR20020062483A (ko) * 2001-01-22 2002-07-26 주식회사 로커스 내 고장성 시스템 및 이중화 방법
KR20030034421A (ko) * 2001-10-23 2003-05-09 엘지전자 주식회사 피시아이 시스템 이중화 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095064A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 네트워크 운영 모드 기반 프로세스 제어 방법 및 장치

Similar Documents

Publication Publication Date Title
US8615578B2 (en) Using a standby data storage system to detect the health of a cluster of data storage servers
US8850141B2 (en) System and method for mirroring data
US6986076B1 (en) Proactive method for ensuring availability in a clustered system
US6658595B1 (en) Method and system for asymmetrically maintaining system operability
US6928589B1 (en) Node management in high-availability cluster
US6314512B1 (en) Automatic notification of connection or system failure in asynchronous multi-tiered system by monitoring connection status using connection objects
US6757836B1 (en) Method and apparatus for resolving partial connectivity in a clustered computing system
US7539897B2 (en) Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
US7093013B1 (en) High availability system for network elements
KR20010006847A (ko) 클러스터 노드 디스트레스 신호
US7562154B2 (en) System and method for filtering stale messages resulting from membership changes in a distributed computing environment
US8943191B2 (en) Detection of an unresponsive application in a high availability system
JPH086910A (ja) クラスタ型計算機システム
CN107357800A (zh) 一种数据库高可用零丢失解决方法
WO2020233001A1 (zh) 双控构架分布式存储系统、数据读取方法、装置和存储介质
WO2024022469A1 (zh) 磁盘阵列冗余方法、系统、计算机设备和存储介质
US8036105B2 (en) Monitoring a problem condition in a communications system
JP2008152552A (ja) 計算機システム及び障害情報管理方法
JP2007280155A (ja) 分散システムにおける信頼性向上方法
JP3447347B2 (ja) 障害検出方法
KR20030056290A (ko) 이중화된 시스템에서의 프로세스의 이중화를 통한프로세스 장애 복구방법
JPH07319836A (ja) 障害監視方式
JP2008003731A (ja) 情報処理システム
JP3343618B2 (ja) 端末無中断オンラインシステム

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application