KR102517831B1 - 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템 - Google Patents

미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템 Download PDF

Info

Publication number
KR102517831B1
KR102517831B1 KR1020220164267A KR20220164267A KR102517831B1 KR 102517831 B1 KR102517831 B1 KR 102517831B1 KR 1020220164267 A KR1020220164267 A KR 1020220164267A KR 20220164267 A KR20220164267 A KR 20220164267A KR 102517831 B1 KR102517831 B1 KR 102517831B1
Authority
KR
South Korea
Prior art keywords
software
failure
information
leader
mission
Prior art date
Application number
KR1020220164267A
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 KR1020220164267A priority Critical patent/KR102517831B1/ko
Application granted granted Critical
Publication of KR102517831B1 publication Critical patent/KR102517831B1/ko

Links

Images

Classifications

    • 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/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

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

Abstract

본 발명은 소프트웨어 관리방법 및 그 시스템에 관한 것으로, 보다 상세하게는, 수 천개 이상의 소프트웨어가 실행되고 있는 분산 처리 환경의 미션 크리티컬 시스템(Mission Critical System)에서 소프트웨어 장애를 실시간으로 관리하여 소프트웨어의 생명 주기를 관리하는 소프트웨어 관리방법 및 그 시스템에 관한 것이다.

Description

미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템{METHOD AND SYSTEM FOR MANAGING SOFTWARE IN MISSION CRITICAL SYSTEM ENVIRONMENT}
본 발명은 소프트웨어 관리방법 및 그 시스템에 관한 것으로, 보다 상세하게는, 수 천개 이상의 소프트웨어가 실행되고 있는 분산 처리 환경의 미션 크리티컬 시스템(Mission Critical System)에서 소프트웨어 장애를 실시간으로 관리하여 소프트웨어의 생명 주기를 관리하는 소프트웨어 관리방법 및 그 시스템에 관한 것이다.
우리는 오픈 소스 소프트웨어(open source software, OSS)가 범람하는 시기에 살고 있다. 오픈 소스 소프트웨어는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어로서, 대부분 인터넷에 연결된 시스템을 상정하여 개발된 오픈 소스가 주류를 이루고 있다.
인터넷에 연결된 시스템은 미션 크리티컬 시스템보다 상대적으로 지연 시간과 복구에 소요되는 시간이 길다. 이 시간은 수 초 정도의 짧은 시간일 수는 있지만 미션 크리티컬 시스템 측면에서는 감내하기 힘들 정도의 시간이 될 수 있다. 가령 비행기가 비행 중 시스템이 수 초 동안 다운(down)된다면 큰 문제를 야기할 수 있다.
미션 크리티컬 시스템의 높은 가용성을 위해서는 장애가 발생하더라도 장애 상황이 느껴지지 않을 만큼 장애 상황에 대한 신속한 감시와 제어가 필요하다. 장애 상황을 파악하기 위해서는 장애가 발생하였음을 확인하여야 한다. 장애 발생을 확인할 수 있는 간단한 방법으로는 장애 발생 시 메시지를 전송하여 직접적으로 알리는 방법이 있으나 소프트웨어 또는 하드웨어의 비정상적인 종료나 네트워크 장애 등의 상황에서 메시지 전송이 불가능한 경우에는 상태 확인이 불가능하다는 한계가 있다.
이러한 문제를 해결하기 위해 하트비트(heartbeat) 메시지 전송을 이용하여 동작 상태를 확인하는 방법이 사용된다. 이러한 하트비트 메시지 전송을 이용한 동작 상태 확인방법에서는 장애 상황에 대한 빠른 감지를 위해 매우 짧은 주기로 하트비트 메시지를 전송해야 하기 때문에 하트비트 메시지의 전송, 수신 및 확인에 많은 네트워크 및 CPU 리소스가 사용되며, 이는 프로그램의 수가 많아질수록 증가한다.
특히 오픈 소스로 공개된 종래의 경우에는 인터넷에 연결된 분산 처리 환경에서 쿠버네티스(kubernetes) 및 도커(docker) 등을 사용하여 소프트웨어의 배포, 실행 및 장애 처리 등을 수행한다. 그러나 이러한 오픈 소스를 사용하는 환경에서는 개별 소프트웨어가 도커 등 가상화 환경에서 구동되고, 각각의 환경 상태를 모니터링하고 있어 실시간 상태 확인을 위해서는 무의미한 하트비트 메시지나 상태 요청 메시지를 전송해야 하기 때문에 소프트웨어 관리가 비효율적인 문제가 있었다.
KR 10-2004-0051018 A, 2004. 06. 18. KR 10-2015-0068317 A, 2015. 06. 19. KR 10-2005-0053657 A, 2005. 06. 08. KR 10-2022-0091367 A, 2022. 06. 30.
본 발명은 수 천개 이상의 소프트웨어가 실행되고 있는 분산 처리 환경의 미션 크리티컬 시스템에서 하트비트 메시지를 절감하면서도 동일한 장애 상황에 대한 감지를 수행하여 소프트웨어 관리(생명 주기 등)를 효율적으로 수행할 수 있는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템을 제공한다.
본 발명의 실시 예에 따른 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템은 다수의 소프트웨어가 실행되고 있는 분산 처리 환경에서 미션 크리티컬 시스템(Mission Critical System) 환경을 유지하기 위한 소프트웨어 관리시스템에 있어서, 상기 소프트웨어의 상태를 관리 및 제어하는 매니저부; 및 상기 소프트웨어의 상태 정보를 포함하는 소프트웨어 정보와, 상기 분산 처리 환경 내에서 하드웨어 정보를 수집하여 상기 매니저부로 전송하는 에이전트부를 포함하고, 상기 매니저부는 제공받은 상기 소프트웨어 정보와 하드웨어 정보를 토대로 소프트웨어의 장애 상황을 분석하고, 소프트웨어의 장애 상황 발생시 소프트웨어의 장애를 해결하기 위한 소프트웨어 장애 제어 메시지를 상기 에이전트부로 전송하고, 상기 에이전트부는 상기 매니저부로부터 전송된 상기 소프트웨어 장애 제어 메시지를 수신받아 장애 상황이 발생된 해당 소프트웨어에 대한 장애 제어를 수행한다.
또한, 상기 매니저부는 상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트할 수 있다.
또한, 상기 소프트웨어 정보에는 이중화 상태 정보와, 사용 중인 CPU 리소스를 포함하는 정보를 더 포함할 수 있다.
또한, 상기 에이전트부는 하트비트 메시지를 상기 매니저부로 전송하고, 상기 매니저부는 상기 에이전트부로부터 전송된 상기 하트비트 메시지가 설정된 회수만큼 연속하여 수신이 되지 않는 경우, 해당 하드웨어의 장애로 인식하여 장애로 인식된 해당 하드웨어 내에서 실행 중인 모든 소프트웨어의 장애로 판단할 수 있다.
또한, 상기 매니저부는 상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트하고, 소프트웨어의 장애 상황 발생시 장애 제어를 수행하는 리더; 및 상기 리더와 정보가 동기화되고, 상기 리더의 상태를 실시간으로 감시하여 상기 리더에 장애 상황이 발생하면 상기 리더를 대신하여 리더 역할을 수행하는 팔로워를 포함할 수 있다.
또한, 상기 소프트웨어의 상태 정보는 소프트웨어의 초기화, 실행, 이중화, 오류 및 정지 상태를 포함할 수 있다.
또한, 상기 에이전트부는 상기 매니저부로부터 상기 소프트웨어 장애 제어 메시지가 수신되면, 장애 상황이 발생된 해당 소프트웨어의 상태를 확인하여 장애 제어 수행 가능 여부를 판단하고, 판단 결과, 장애 제어 수행이 가능한 것으로 판단되면, 장애 제어를 수행하고, 그렇지 않은 경우에는 장애 제어 수행이 불가능한 사유를 상기 매니저부로 전송할 수 있다.
또한, 장애 제어가 가능한 소프트웨어 장애 제어는 실행, 이중화 전환 또는 종료 중 어느 하나로 수행될 수 있다.
또한, 본 발명의 실시 예에 따른 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법은 다수의 소프트웨어가 실행되고 있는 분산 처리 환경에서 미션 크리티컬 시스템(Mission Critical System) 환경을 유지하기 위한 소프트웨어 관리방법에 있어서, 매니저부는 소프트웨어 정보와 하드웨어 정보를 제공받아 수집 및 업데이트 하는 과정; 상기 매니저부는 상기 소프트웨어 정보를 토대로 소프트웨어의 장애 상황을 판단하는 과정; 소프트웨어의 장애 상황 발생시, 상기 매니저부는 에이전트부로 장애 상황이 발생한 소프트웨어의 장애를 해결하기 위한 소프트웨어 장애 제어 메시지를 전송하는 과정; 및 상기 에이전트부는 상기 매니저부로부터 전송된 상기 소프트웨어 장애 제어 메시지를 수신받아 장애 요소가 발생된 해당 소프트웨어에 대한 장애 제어를 수행하는 과정을 포함할 수 있다.
또한, 상기 소프트웨어 정보에는 소프트웨어 상태 정보와, 이중화 상태 정보와, 사용 중인 CPU 리소스와 관련된 정보를 포함하고, 상기 소프트웨어 상태 정보는 소프트웨어의 초기화, 실행, 이중화, 오류 및 정지 상태를 포함할 수 있다.
또한, 상기 에이전트부는 하트비트 메시지를 상기 매니저부로 전송하고, 상기 매니저부는 상기 에이전트부로부터 전송된 상기 하트비트 메시지가 설정된 회수만큼 연속하여 수신이 되지 않는 경우, 해당 하드웨어의 장애로 인식하여 장애로 인식된 해당 하드웨어 내에서 실행 중인 모든 소프트웨어의 장애로 판단할 수 있다.
또한, 상기 매니저부는 상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트하고, 소프트웨어의 장애 상황 발생시 장애 제어를 수행하는 리더; 및 상기 리더와 정보가 동기화되고, 상기 리더의 상태를 실시간으로 감시하여 상기 리더에 장애 상황이 발생하면 상기 리더를 대신하여 리더 역할을 수행하는 팔로워를 포함할 수 있다.
또한, 상기 에이전트부는 상기 매니저부로부터 상기 소프트웨어 장애 제어 메시지가 수신되면, 장애 상황이 발생된 해당 소프트웨어의 상태를 확인하여 장애 제어 수행 가능 여부를 판단하고, 판단 결과, 장애 제어 수행이 가능한 것으로 판단되면, 장애 제어를 수행하고, 그렇지 않은 경우에는 장애 제어 수행이 불가능한 사유를 상기 매니저부로 전송할 수 있다.
또한, 장애 상황이 발생된 해당 소프트웨어에 대한 장애 제어는 해당 소프트웨어에 대해 실행, 이중화 전환 또는 종료로 수행될 수 있다.
본 발명의 실시 예에 따르면, 소프트웨어 제어를 책임지는 관리 소프트웨어(매니저부)와 하트비트 메시지와 소프트웨어 정보 전송을 담당하는 에이전트 소프트웨어(에이전트부)를 통해 분산 처리 환경의 미션 크리티컬 시스템에서 하트비트 메시지를 효율화하여 하트비트 메시지의 수를 감소시킴으로써 네트워크 및 CPU 자원을 효율적으로 사용할 수 있고, 또한 효율성을 향상시키면서도 장애 상황에 대한 확인을 실시간으로 수행할 수 있어 시스템의 전체적인 가용성도 크게 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 소프트웨어 관리시스템을 나타낸 도면.
도 2는 본 발명의 실시 예에 따른 소프트웨어 관리방법을 나타낸 흐름도.
도 3은 도 2에 나타낸 소프트웨어 장애를 제어하는 과정을 나타낸 흐름도.
도 4는 본 발명에 따른 매니저부의 리더 장애 발생시 리더 전환 과정을 나타낸 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예들을 상세히 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 발명의 실시 예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.
도 1은 본 발명의 실시 예에 따른 소프트웨어 관리시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 소프트웨어 관리시스템(10)은 미션 크리티컬 시스템을 유지하기 위한 시스템으로서, 미션 크리티컬 시스템 내에서 구동되거나, 혹은 미션 크리티컬 시스템과 별도로 독립적으로 구축되어 구동될 수도 있다.
이러한 소프트웨어 관리시스템(10)은 도 1과 같이, 관리 소프트웨어로 기능하는 매니저부(11)와, 에이전트 소프트웨어로 기능하는 에이전트부(12)를 포함한다.
매니저부(11)는 다수의 소프트웨어가 실행되어 있는 분산 처리 환경의 미션 크리티컬 시스템에서 모든 소프트웨어의 상태를 관리 및 제어하는 역할을 수행한다.
에이전트부(12)는 하트비트 메시지 전송과 소프트웨어 정보를 전송하는 역할을 담당한다. 여기서, 상기 소프트웨어 정보는 소프트웨어의 상태 정보(실행 상태 정보)와, 이중화 상태 정보와, 사용 중인 CPU 리소스와 관련된 정보를 포함할 수 있다.
매니저부(11)는 그 역할에 따라 리더(leader, L) 또는 팔로워(follower, F)로 구분된다. 리더(L)는 예를 들어 미션 크리티컬 시스템 상에서 모든 소프트웨어의 정보를 수집하는 한편, 모든 소프트웨어의 상태(동작)를 제어한다. 팔로워(F)는 리더(L)와 모든 소프트웨어의 정보를 동기화하고, 리더(L)에 장애 상황이 발생할 경우에는 우선 순위에 따라 어느 하나가 리더(L)로 전환되어 리더(L)의 역할을 수행한다.
매니저부(11)의 역할은 아래와 같다.
1. 노드 정보 수신 및 업데이트(하트비트 메시지 포함)
매니저부(11)는 최초 실행 시 자신이 담당하고 있는 장비 ID와 장비의 최초 구동 시간을 수신하여 저장하고, 주기적으로 노드(하드웨어)의 내부 정보(CPU, 메모리, 총 실행되는 프로세스 정보 등)와 장비의 상태 정보를 수신하여 업데이트 한다. 수신 된 장비의 상태 정보를 토대로 장애 상황에 대한 처리 및 제어를 수행한다. 여기서, 장비와 노드는 개별적으로 동작하는 하드웨어로서, 가령 PC일 수 있다. 이들은 서로 다른 용어로 혼용되어 기재되어 있으나, 동일한 하드웨어일 수 있다. 이후에는 설명의 편의를 위해 장비와 노드를 통칭하여 하드웨어로 명명하기로 한다.
또한 하트비트 메시지를 수신하여 내부 정책에 따라 N회 연속 수신 불가 시에는 해당 하드웨어의 장애로 인식하고 해당 하드웨어 내에서 실행되고 있는 모든 소프트웨어의 장애로 인식한다. 이때, 하드웨어의 장애는 통신선로나 통신장비(예를 들면, 이더넷 등)의 이상으로 인한 통신장애가 대표적일 수 있다. 이러한 하드웨어 장애의 해결은 통신선로의 변경이나, 혹은 통신장비의 변경을 통해 해결할 수 있다.
2. 소프트웨어 정보 수신 및 업데이트
매니저부(11)는 에이전트부(12)로부터 소포트웨어 정보를 수신받아 업데이트 한다. 이때, 상기 소프트웨어 정보에는 현재 실행되고 있는 소프트웨어의 상태 정보 외에도 이중화 상태 정보나 사용하는 리소스(CPU 리소스 등)와 관련된 정보가 포함될 수 있다. 그리고 매니저부(11)는 에이전트부(12)로부터 수신받은 상기 소프트웨어 정보를 토대로 해당 소프트웨어의 장애 상황이 인지되면 장애 제어를 수행한다.
3. 소프트웨어 장애 발생 시 제어(이중화 전환 또는 재실행)
매니저부(11)는 수신받은 하드웨어 정보와 소프트웨어 정보를 토대로 소프트웨어의 장애 요소가 발생했는지를 확인한다. 여기서, 소프트웨어의 장애 요소 판단은 소프트웨어가 정상적으로 실행되고 있는지, 가령 소프트웨어의 오류로 인해 비정상적으로 소프트웨어가 종료되었는지 등을 통해 판단할 수 있다. 예를 들어, 확인 결과, 비정상적으로 소프트웨어가 종료되어 소프트웨어의 장애 요소가 확인된 경우에는 소프트웨어의 장애 제어 과정을 수행한다. 예를 들어, 이중화 소프트웨어의 경우에는 이중화 전환(Failover)을 수행한 후 소프트웨어가 실행될 위치를 선택하는 과정인 할당 과정을 통해 소프트웨어 실행 요청을 에이전트부(12)에 전송한다.
4. 신규 팔로워 구동 시 정보 동기화(리더)
매니저부(11) 또한 장애 상황으로부터 자유로울 수 없으므로 다중화되어 구동된다. 전술한 바와 같이, 매니저부(11)는 리더(L) 또는 팔로워(F)의 역할을 수행한다. 리더(L)와 팔로워(F)는 한 대 또는 여러 대의 하드웨어에 분산되어 실행될 수 있다. 최초 실행 후, 리더(L)의 존재 여부를 확인하여 역할(리더(L) 또는 팔로워(F))을 결정한다. 리더(L)로 결정되면 위에서 기술된 소프트웨어 및 하드웨어 정보 수신 및 장애 제어 동작을 결정하는 주체로서, 팔로워(F)와 정보 동기화를 수행한다.
5. 리더 상태 감시(팔로워)
매니저부(11)를 실행한 후 팔로워(F)의 역할이 결정되면, 팔로워(F)는 리더(L)로부터 소프트웨어 및 하드웨어(노드) 정보를 동기화하여 리더(L)의 상태를 지속적으로 감시한다. 가령, 리더(L)의 장애 상태가 감지되면, 팔로워(F) 중 우선 순위가 가장 높은 팔로워는 리더(L)의 역할로 전환되어 리더(L)의 역할을 수행한다. 여기서, 리더(L)의 장애는 가령 리더(L)가 실행되는 하드웨어(노드)가 꺼지거나 통신 단절, 혹은 소프트웨어의 이슈로 소프트웨어가 꺼지는 등에 의해 발생할 수 있다.
복수 개의 팔로워(F)는 각각 에이전트부(12)와 통신 가능한 상태로 연결되어 있다. 다만 팔로워(F)는 통신 대기 상태에 있고, 실질적으로 리더(L)에서만 에이전트부(12)로부터 소프트웨어 정보와 하드웨어 정보를 제공받아 수집 및 업데이트 한다. 리더 장애 발생시 팔로워 중 어느 하나가 리더로 전환되면, 에이전트부(12)와 통신하여 소프트웨어 정보와 하드웨어 정보를 제공받아 수집 및 업데이트 한다.
6. 소프트웨어 장애 제어(실행/종료) 요청 수신 및 에이전트 제어 메시지 전송
매니저부(11)는 에이전트부(12)로부터 전송된 소프트웨어 장애 제어(실행/종료) 요청 메시지를 처리하는 기능을 제공한다. 매니저부(11)는 에이전트부(12)로부터 소프트웨어 장애 제어 요청 메시지가 수신되면, 해당 소프트웨어의 상태 및 실행 위치를 확인하여 처리가 가능할 경우 소프트웨어 장애 제어 메시지를 에이전트부(12)로 전송하고, 장애 제어 요청에 대한 처리 결과를 에이전트부(12)로 전송한다. 이때, 상기 소프트웨어 장애 제어 메시지에는 소프트웨어의 장애 상황에 따라 각각의 소프트웨어 장애 상황을 해결할 수 있는 제어신호가 포함되고, 이때, 상기 제어신호는 소프트웨어의 장애 상황에 따라 사전에 설정되어 매니저부(11)에 등록된다.
한편, 에이전트부(12)의 역할은 동일 노드(혹은 가상머신)에 실행중인 소프트웨어의 상태를 감시하고, 소프트웨어 정보를 전송하는 역할을 수행한다. 실행된 모든 소프트웨어에서 하트비트 메시지를 전송하는 것이 아니라, 에이전트부(12)가 대표로 하트비트 메시지를 보내므로 하트비트 메시지의 전송량을 획기적으로 줄일 수 있다.
1. 소프트웨어 상태 감시(확인) 및 전송
에이전트부(12)는 전술한 바와 같이 소프트웨어의 상태를 관리하는 역할을 수행하며, 가장 중요한 역할은 소프트웨어의 실행 상태의 관리이다. 소프트웨어의 실행 상태는 초기화(Initialization), 실행(Run), 이중화(Redundancy Active, Standby), 오류(Error), 정지(Stop) 등의 상태를 포함한다. 이때, 소프트웨어의 상태는 여러 요인으로 인해 변경 될 수 있다. 에이전트부(12)는 소프트웨어의 상태 변화를 감지하여 신뢰할 수 있는 통신(Reliable communication) 방식으로 소프트웨어 상태 변화를 매니저부(11)로 전송한다. 신뢰할 수 있는 통신으로는 지연이 작은 통신을 이용하는 것이 바람직하다. TCP(Transmission Control Protocol)는 지연에 대한 제어가 프로토콜에서 일어나므로 적합하지 않고, UDP(Uuser Datagram Protocol) 기반의 신뢰할 수 있는 통신 프로토콜을 사용하여 지연을 최소화할 수 있다.
2. 하트비트 메시지 전송
에이전트부(12)는 하트비트 메시지를 주기적으로 매니저부(11)로 전송하며, 하트비트 메시지의 전송 주기가 짧을 수록 매니저부(11)는 더욱 신속하게 장애 상황을 확인할 수 있다. 매니저부(11)는 에이전트부(12)에서 전송되는 하트비트 메시지의 수신 여부에 따라 해당 하드웨어의 이상 여부를 확인할 수 있다. 가령 매니저부(11)가 에이전트부(12)로부터 하트비트 메시지를 수신하면, 해당 하드웨어는 이상이 없는 것으로 판단한다.
3. 에이전트부 장애 제어 메시지 수신 및 처리
에이전트부(12)는 매니저부(11)로부터 소프트웨어를 제어하는 소프트웨어 제어 메시지를 수신한 후 그에 대한 처리를 수행한다. 소프트웨어의 장애 제어는 크게 실행, 이중화 전환 및 종료로 구분될 수 있다. 에이전트부(12)는 매니저부(11)로부터 소프트웨어 장애 제어 메시지를 수신하면 해당 소프트웨어의 상태를 확인하여 제어 수행 가능 여부를 판단한다. 판단 결과, 해당 소프트웨어의 상태가 제어 수행이 가능한 것으로 판단되면, 에이전트부(12)는 소프트웨어 장애 제어 메시지에 따라 적절한 작업(장애가 발생한 소프트웨어의 장애 상황을 해결하기 위한 작업)을 수행한 후 소프트웨어의 상태를 확인하여 전송한다. 만일 해당 소프트웨어의 상태가 제어 수행이 불가능한 것으로 판단되면, 불가능한 사유를 매니저부(11)로 전송한다.
4. 소프트웨어 및 하드웨어 정보 수집 및 전송
에이전트부(12)는 매니저부(11)가 에이전트부(12)를 통해 적절하게 소프트웨어에 대한 장애 제어를 수행할 수 있도록 소프트웨어 정보와 하드웨어 정보를 수집하여 매니저부(11)로 전송한다. 이때, 소프트웨어 정보에는 버전이나 실행 상태, 메모리, CPU 사용량 등의 정보를 포함할 수 있고, 하드웨어(운영체제) 정보에는 장비 ID, 총 리소스 사용량, 프로세스 수, 입출력 장치 상태 등의 정보를 포함할 수 있다.
도 2는 본 발명의 실시 예에 따른 소프트웨어 관리방법을 개략적으로 나타낸 흐름도이다.
도 2를 참조하면, 매니저부(11)를 실행한다. 매니저부(11)는 최초 실행시 하드웨어 정보를 수신하여 업데이트한다(S1). 즉, 매니저부(11)는 자신이 담당하는 하드웨어(장비) ID와 최초 구동 시간을 수신하여 저장하고, 주기적으로 하드웨어의 내부 정보(CPU, 메모리, 총 실행되는 프로세스 정보 등)와 상태 정보를 수신하여 업데이트 한다. 또한 에이전트부(12)로부터 하트비트 메시지를 주기적으로 수신한다.
이어서, 매니저부(11)는 에이전트부(12)로부터 주기적으로 전송되는 하트비트 메시지의 수신 여부를 실시간으로 확인하여 하트비트 메시지가 내부 정책에 따라 설정된 회수 만큼 연속적으로 수신되지 않으면(S2), 해당 하드웨어의 장애로 인식한다(S6). 또한 해당 하드웨어 내에서 실행되고 있는 모든 소프트웨어의 장애로 인식한다.
이어서, 매니저부(11)는 에이전트부(12)로부터 소포트웨어 정보를 수신받아 업데이트 한다(S3). 이때, 상기 소프트웨어 정보에는 현재 실행되고 있는 소프트웨어의 상태 정보 외에도 이중화 상태 정보나 사용하는 리소스와 관련된 정보가 포함될 수 있다.
이어서, 매니저부(11)는 에이전트부(12)로부터 수신받은 소프트웨어 정보를 토대로 해당 소프트웨어에서 장애가 발생하였는지를 판단하고(S4), 판단 결과, 해당 소프트웨어에 장애 상황이 확인된 경우에는 소프트웨어의 장애 제어 과정을 수행한다(S5).
소프트웨어의 장애 제어 과정은 도 3과 같다.
도 3은 도 2에 나타낸 소프트웨어 장애를 제어하는 과정을 나타낸 흐름도이다.
도 3을 참조하면, 먼저, 매니저부(11)에서 해당 소프트웨어의 장애 상황을 해결할 수 있는 적절한 소프트웨어 장애 제어 메시지를 에이전트부(12)로 전송한다(S51).
이어서, 에이전트부(12)는 매니저부(11)로부터 전송된 소프트웨어 장애 제어 메시지를 수신한다(S52).
이어서, 에이전트부(12)는 소프트웨어 장애 제어 메시지가 수신되면, 장애 상황이 발생된 해당 소프트웨어의 상태를 확인하여 장애 제어의 수행이 가능한지를 판단한다(S53).
판단 결과, 에이전트부(12)는 해당 소프트웨어에 대한 장애 제어 수행이 가능한 것으로 판단되면, 매니저부(11)로 소프트웨어 장애 제어(실행/종료) 요청 메시지를 전송한다. 그렇지 않은 경우에는 불가능한 사유를 매니저부(11)로 전송한다(S56).
매니저부(11)는 에이전트부(12)로부터 수신된 소프트웨어 장애 제어 요청 메시지에 응답하여 소프트웨어 장애 제어 메시지를 에이전트부(12)로 전송하여 장해 해결을 수행한다(S55). 이때, 소프트웨어의 장애 제어는 소프트웨어 실행, 이중화 전환 및 종료로 구분될 수 있으며, 이중 어느 하나를 통해 소프트웨어를 제어할 수 있다.
도 4는 본 발명에 따른 매니저부의 리더 장애 발생시 리더 전환 과정을 나타낸 흐름도이다.
도 4를 참조하면, 매니저부(11) 또한 장애 상황으로부터 자유로울 수 없다. 이에 다중화되어 구동된다. 즉, 리더(L) 또는 팔로워(F)로 나누어서 역할 분담을 수행한다.
매니저부(11)는 최초 실행되면, 리더(L) 존재 여부를 확인하여 리더(L)와 팔로워(F)를 결정한다(S11). 이때, 리더(L)는 전술한 바와 같이, 소프트웨어 정보와 하드웨어 정보를 수신하고, 장애가 발생된 소프트웨어의 장애 제어의 주체가 된다.
팔로워(F)는 리더(L)와의 정보 동기화되어 리더(L)가 제공받은 모든 정보, 가령 소프트웨어 정보와 하드웨어 정보를 공유하지만 수집 및 업데이트는 하지 않는다.
이어서, 팔로워(F)는 리더(L)의 상태를 실시간으로 감시하고(S14), 리더(L)의 장애 상태가 감지되면(S15), 팔로워들 중 우선 순위가 높은 팔로워가 리더(L)의 역할을 수행하도록 우선 순위가 높은 팔로워의 역할을 전환한다(S16). 이때, 팔로워의 우선 순위는 특별하게 제한을 두지 않으며, 사용자에 의해 사전에 설정될 수 있다.
상기에서, 본 발명의 바람직한 실시 예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확하게 설명하기 위한 것일 뿐이며, 본 발명의 실시 예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시 예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안 되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.
10 : 소프트웨어 관리시스템
11 : 매니저부(관리 소프트웨어)
12 : 에이전트부(에이전트 소프트웨어)
L : 리더
F : 팔로워

Claims (14)

  1. 다수의 소프트웨어가 실행되고 있는 분산 처리 환경에서 미션 크리티컬 시스템(Mission Critical System) 환경을 유지하기 위한 소프트웨어 관리시스템에 있어서,
    상기 소프트웨어의 상태를 관리 및 제어하는 매니저부; 및
    상기 소프트웨어의 상태 정보를 포함하는 소프트웨어 정보와, 상기 분산 처리 환경 내에서 하드웨어 정보를 수집하여 상기 매니저부로 전송하는 에이전트부; 를 포함하고,
    상기 매니저부는 제공받은 상기 소프트웨어 정보와 하드웨어 정보를 토대로 소프트웨어의 장애 상황을 분석하고, 소프트웨어의 장애 상황 발생시 소프트웨어의 장애를 해결하기 위한 소프트웨어 장애 제어 메시지를 상기 에이전트부로 전송하고,
    상기 에이전트부는 상기 매니저부로부터 전송된 상기 소프트웨어 장애 제어 메시지를 수신받아 장애 상황이 발생된 해당 소프트웨어에 대한 장애 제어를 수행하는,
    미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  2. 제 1 항에 있어서,
    상기 매니저부는 상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  3. 제 2 항에 있어서,
    상기 소프트웨어 정보에는 이중화 상태 정보와, 사용 중인 CPU 리소스를 포함하는 정보를 더 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  4. 제 1 항에 있어서,
    상기 에이전트부는 하트비트 메시지를 상기 매니저부로 전송하고,
    상기 매니저부는 상기 에이전트부로부터 전송된 상기 하트비트 메시지가 설정된 회수만큼 연속하여 수신이 되지 않는 경우, 해당 하드웨어의 장애로 인식하여 장애로 인식된 해당 하드웨어 내에서 실행 중인 모든 소프트웨어의 장애로 판단하는,
    미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  5. 제 1 항에 있어서,
    상기 매니저부는,
    상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트하고, 소프트웨어의 장애 상황 발생시 장애 제어를 수행하는 리더; 및
    상기 리더와 정보가 동기화되고, 상기 리더의 상태를 실시간으로 감시하여 상기 리더에 장애 상황이 발생하면 상기 리더를 대신하여 리더 역할을 수행하는 팔로워;
    를 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  6. 제 1 항에 있어서,
    상기 소프트웨어의 상태 정보는 소프트웨어의 초기화, 실행, 이중화, 오류 및 정지 상태를 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  7. 제 1 항에 있어서,
    상기 에이전트부는 상기 매니저부로부터 상기 소프트웨어 장애 제어 메시지가 수신되면, 장애 상황이 발생된 해당 소프트웨어의 상태를 확인하여 장애 제어 수행 가능 여부를 판단하고, 판단 결과, 장애 제어 수행이 가능한 것으로 판단되면, 장애 제어를 수행하고, 그렇지 않은 경우에는 장애 제어 수행이 불가능한 사유를 상기 매니저부로 전송하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  8. 제 7 항에 있어서,
    장애 제어가 가능한 소프트웨어 장애 제어는 실행, 이중화 전환 또는 종료 중 어느 하나로 수행되는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리시스템.
  9. 다수의 소프트웨어가 실행되고 있는 분산 처리 환경에서 미션 크리티컬 시스템(Mission Critical System) 환경을 유지하기 위한 소프트웨어 관리방법에 있어서,
    매니저부는 소프트웨어 정보와 하드웨어 정보를 제공받아 수집 및 업데이트 하는 과정;
    상기 매니저부는 상기 소프트웨어 정보를 토대로 소프트웨어의 장애 상황을 판단하는 과정;
    소프트웨어의 장애 상황 발생시, 상기 매니저부는 에이전트부로 장애 상황이 발생한 소프트웨어의 장애를 해결하기 위한 소프트웨어 장애 제어 메시지를 전송하는 과정; 및
    상기 에이전트부는 상기 매니저부로부터 전송된 상기 소프트웨어 장애 제어 메시지를 수신받아 장애 요소가 발생된 해당 소프트웨어에 대한 장애 제어를 수행하는 과정;
    을 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
  10. 제 9 항에 있어서,
    상기 소프트웨어 정보에는 소프트웨어 상태 정보와, 이중화 상태 정보와, 사용 중인 CPU 리소스와 관련된 정보를 포함하고, 상기 소프트웨어 상태 정보는 소프트웨어의 초기화, 실행, 이중화, 오류 및 정지 상태를 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
  11. 제 9 항에 있어서,
    상기 에이전트부는 하트비트 메시지를 상기 매니저부로 전송하고,
    상기 매니저부는 상기 에이전트부로부터 전송된 상기 하트비트 메시지가 설정된 회수만큼 연속하여 수신이 되지 않는 경우, 해당 하드웨어의 장애로 인식하여 장애로 인식된 해당 하드웨어 내에서 실행 중인 모든 소프트웨어의 장애로 판단하는,
    미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
  12. 제 9 항에 있어서,
    상기 매니저부는,
    상기 에이전트부로부터 전송된 상기 소프트웨어 정보와 하드웨어 정보를 수집 및 업데이트하고, 소프트웨어의 장애 상황 발생시 장애 제어를 수행하는 리더; 및
    상기 리더와 정보가 동기화되고, 상기 리더의 상태를 실시간으로 감시하여 상기 리더에 장애 상황이 발생하면 상기 리더를 대신하여 리더 역할을 수행하는 팔로워;
    를 포함하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
  13. 제 9 항에 있어서,
    상기 에이전트부는 상기 매니저부로부터 상기 소프트웨어 장애 제어 메시지가 수신되면, 장애 상황이 발생된 해당 소프트웨어의 상태를 확인하여 장애 제어 수행 가능 여부를 판단하고, 판단 결과, 장애 제어 수행이 가능한 것으로 판단되면, 장애 제어를 수행하고, 그렇지 않은 경우에는 장애 제어 수행이 불가능한 사유를 상기 매니저부로 전송하는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
  14. 제 13 항에 있어서,
    장애 상황이 발생된 해당 소프트웨어에 대한 장애 제어는 해당 소프트웨어에 대해 실행, 이중화 전환 또는 종료로 수행되는 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법.
KR1020220164267A 2022-11-30 2022-11-30 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템 KR102517831B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220164267A KR102517831B1 (ko) 2022-11-30 2022-11-30 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220164267A KR102517831B1 (ko) 2022-11-30 2022-11-30 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102517831B1 true KR102517831B1 (ko) 2023-04-04

Family

ID=85928469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220164267A KR102517831B1 (ko) 2022-11-30 2022-11-30 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102517831B1 (ko)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040051018A (ko) 2002-12-11 2004-06-18 엘지전자 주식회사 교환 시스템의 소프트웨어 장애 메시지 처리 장치 및 방법
KR20050053657A (ko) 2002-09-11 2005-06-08 인터내셔널 비지네스 머신즈 코포레이션 분산 시스템에서의 근본 원인 식별 및 문제점 판정을 위한방법 및 장치
KR20110020472A (ko) * 2009-08-24 2011-03-03 국방과학연구소 실시간으로 동기화된 복수의 소프트웨어 컴포넌트를 구비하는 함정 전투 시스템 및 그 운용 방법, 그리고 이를 행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
KR20110026044A (ko) * 2009-09-07 2011-03-15 국방과학연구소 연동 장비의 운용 상태를 통합 관리하기 위한 함정 전투 시스템 및 그 방법
JP2012168816A (ja) * 2011-02-15 2012-09-06 Nec System Technologies Ltd プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム
KR20140115186A (ko) * 2013-03-20 2014-09-30 국방과학연구소 서비스 기반의 무기체계용 분산식 다계층 시스템의 고장 복구 방법
KR20150068317A (ko) 2013-12-11 2015-06-19 주식회사 케이티 Sdn 환경에서 네트워크 장치에 대한 장애를 처리하는 방법
KR20190089590A (ko) * 2018-01-23 2019-07-31 한국항공우주산업 주식회사 임무컴퓨터 장치 및 그 이중화 방법
KR20190113366A (ko) * 2018-03-28 2019-10-08 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
KR20220091367A (ko) 2020-12-23 2022-06-30 인텔 코포레이션 하드웨어 및 소프트웨어를 보호하기 위한 장치, 시스템 및 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050053657A (ko) 2002-09-11 2005-06-08 인터내셔널 비지네스 머신즈 코포레이션 분산 시스템에서의 근본 원인 식별 및 문제점 판정을 위한방법 및 장치
KR20040051018A (ko) 2002-12-11 2004-06-18 엘지전자 주식회사 교환 시스템의 소프트웨어 장애 메시지 처리 장치 및 방법
KR20110020472A (ko) * 2009-08-24 2011-03-03 국방과학연구소 실시간으로 동기화된 복수의 소프트웨어 컴포넌트를 구비하는 함정 전투 시스템 및 그 운용 방법, 그리고 이를 행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
KR20110026044A (ko) * 2009-09-07 2011-03-15 국방과학연구소 연동 장비의 운용 상태를 통합 관리하기 위한 함정 전투 시스템 및 그 방법
JP2012168816A (ja) * 2011-02-15 2012-09-06 Nec System Technologies Ltd プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム
KR20140115186A (ko) * 2013-03-20 2014-09-30 국방과학연구소 서비스 기반의 무기체계용 분산식 다계층 시스템의 고장 복구 방법
KR20150068317A (ko) 2013-12-11 2015-06-19 주식회사 케이티 Sdn 환경에서 네트워크 장치에 대한 장애를 처리하는 방법
KR20190089590A (ko) * 2018-01-23 2019-07-31 한국항공우주산업 주식회사 임무컴퓨터 장치 및 그 이중화 방법
KR20190113366A (ko) * 2018-03-28 2019-10-08 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
KR20220091367A (ko) 2020-12-23 2022-06-30 인텔 코포레이션 하드웨어 및 소프트웨어를 보호하기 위한 장치, 시스템 및 방법

Similar Documents

Publication Publication Date Title
US9325757B2 (en) Methods and systems for fault-tolerant distributed stream processing
CN110134518B (zh) 一种提高大数据集群多节点应用高可用性的方法及系统
CN109597723A (zh) 用于地铁综合监控系统的双机热备冗余实现系统及方法
US20080301489A1 (en) Multi-agent hot-standby system and failover method for the same
EP1323040A2 (en) A system and method for managing clusters containing multiple nodes
US11848889B2 (en) Systems and methods for improved uptime for network devices
JP2005209201A (ja) 高可用性クラスタにおけるノード管理
US20070270984A1 (en) Method and Device for Redundancy Control of Electrical Devices
CN110618864A (zh) 一种中断任务恢复方法及装置
CN103905247A (zh) 一种基于多客户裁决的双机备份方法及系统
CN107071189B (zh) 一种通讯设备物理接口的连接方法
CN107395768B (zh) 用于文件安全传输的双机自适应负载均衡方法
US7428655B2 (en) Smart card for high-availability clustering
US20130205162A1 (en) Redundant computer control method and device
CN101442437B (zh) 一种实现高可用性的方法、系统及设备
CN110798339A (zh) 一种基于分布式任务调度框架的任务容灾方法
KR102517831B1 (ko) 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템
CN115499300B (zh) 嵌入式设备集群化运行架构系统、构建方法及构建装置
CN110677288A (zh) 一种通用于多场景部署的边缘计算系统及方法
KR20140001499A (ko) 고가용성 관리 방법 및 시스템
US6792558B2 (en) Backup system for operation system in communications system
CN115549751A (zh) 遥感卫星地面站监控系统和方法
US11954509B2 (en) Service continuation system and service continuation method between active and standby virtual servers
CN113794595A (zh) 一种基于工业互联网的IoT设备高可用方法
JP5631285B2 (ja) 障害監視システムおよび障害監視方法

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant