KR102174692B1 - 가상화 환경에서의 장애 처리 방법 - Google Patents

가상화 환경에서의 장애 처리 방법 Download PDF

Info

Publication number
KR102174692B1
KR102174692B1 KR1020140035131A KR20140035131A KR102174692B1 KR 102174692 B1 KR102174692 B1 KR 102174692B1 KR 1020140035131 A KR1020140035131 A KR 1020140035131A KR 20140035131 A KR20140035131 A KR 20140035131A KR 102174692 B1 KR102174692 B1 KR 102174692B1
Authority
KR
South Korea
Prior art keywords
failure
virtual machine
occurred
processing device
emulator
Prior art date
Application number
KR1020140035131A
Other languages
English (en)
Other versions
KR20150111609A (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 KR1020140035131A priority Critical patent/KR102174692B1/ko
Publication of KR20150111609A publication Critical patent/KR20150111609A/ko
Application granted granted Critical
Publication of KR102174692B1 publication Critical patent/KR102174692B1/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 가상화 환경에서의 장애 처리 방법에 관한 것으로서, 더욱 상세하게는 가상화 서버 내 동작하는 가상 머신에서의 장애를 검출하고, 이를 처리할 수 있는 가상화 환경에서의 장애 처리 방법에 관한 것이다.
이를 위한 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법에 있어서, 상기 장애 처리 방법은 장애 처리 장치가 어느 하나의 가상 머신에서 장애가 발생된 것을 검출하는 단계; 상기 장애 처리 장치가 상기 장애가 발생된 가상 머신으로 종료 명령을 전송하는 단계; 및 상기 장애가 발생된 가상 머신의 종료가 완료되면, 상기 장애 처리 장치가 상기 가상 머신을 재구동시키는 단계;를 포함하여 이뤄질 수 있다.

Description

가상화 환경에서의 장애 처리 방법{METHOD FOR FAULT OVER THE VIRTUAL ENVIRONMENT}
본 발명은 가상화 환경에서의 장애 처리 방법에 관한 것으로서, 더욱 상세하게는 가상화 서버 내 동작하는 가상 머신에서의 장애를 검출하고, 이를 처리할 수 있는 가상화 환경에서의 장애 처리 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
컴퓨팅 자원 풀(Resource Pooling)을 공유하고, 사용자의 요구(On-Demand Self Service)에 의해 신속하게 생성 및 해제(Rapid Elasticity)가 되어야 하는 클라우드 컴퓨팅 환경을 구현하는 기반 기술로는 가상화(Virtualization) 기술이 있다.
가상화 기술은 하나의 물리적인 장비를 마치 여러 개의 장비처럼 사용하는 기술로, 이 중 서버 가상화는 하나의 물리적인 서버 내에 여러 개의 논리적 가상 머신(Virtual Machine)을 두어, CPU, 메모리, 네트워크, 스토리지 등의 자원을 공유하는 기술을 의미한다. 이하에서, 가상화 기술이 적용된 서버를 가상화 서버라 통칭하기로 한다.
이러한 가상화 서버는 일반적으로 다수의 가상 머신을 구동할 수 있다. 종래의 가상화 서버는 하드웨어적으로 문제가 없는 상태에서 다수의 가상 머신 중 어느 하나의 가상 머신에서 소프트웨어적으로 비정상 상태가 발생되면, 해당 가상 머신이 제공하는 서비스는 중단되고, 이에 해당 가상 머신의 구동을 제어하는 가상화 서버는 운영자에게 특정 가상 머신에서 비정상 상태가 발생되었음을 알리게 된다.
이를 확인한 운영자는 문제가 발생한 가상 머신을 셧다운(shut down) 시킨 후 재구동하는 과정을 수행할 수 있다. 그러나, 상기 과정은 모두 사용자의 개입에 따라 이뤄짐으로써, 문제가 발생한 가상 머신이 정상적인 상태로 복귀하기까지 일정 시간이 소요된다는 문제점이 있다. 이는 사용자 입장에서 서비스 단절을 의미하게 된다.
한국등록특허 제10-1268290호, 2013년 05월 28일 공고 (명칭: 가상화 시스템에서 디바이스 드라이버의 오류를 탐지하고 복구하는 장치 및 방법)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 가상화 서버 내 동작하는 가상 머신에서 장애가 발생 시, 별다른 사용자의 개입이 없더라도 이를 빠르게 검출하고 복구할 수 있는 가상화 환경에서의 장애 처리 방법을 제공하는 데 목적이 있다.
이를 위해 본 발명은 다양한 방식으로 가상 머신에서의 장애를 검출하고, 장애가 발생된 가상 머신의 에뮬레이터로 종료 명령을 전송한 후, 상기 에뮬레이터가 액티브 상태일 경우, 이를 강제로 종료시킨 후 다시 복구하는 과정을 거침으로써, 보다 빠르게 장애를 처리할 수 있는 가상화 환경에서의 장애 처리 방법을 제공하는 데 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 적어도 하나 이상의 가상 머신과, 상기 가상 머신의 하드웨어 자원을 에뮬레이팅하는 에뮬레이터를 포함하며 상기 가상 머신을 제어하는 하이퍼바이저로 구성된 가상화 환경에서의 장애 처리 방법에 있어서, 장애 처리 장치가 어느 하나의 가상 머신에서 장애가 발생된 것을 검출하는 단계; 상기 장애 처리 장치가 상기 장애가 발생된 가상 머신으로 종료 명령을 전송하는 단계; 및 상기 장애가 발생된 가상 머신의 종료가 완료되면, 상기 장애 처리 장치가 상기 가상 머신을 재구동시키는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 장애가 발생된 것을 검출하는 단계는 상기 장애 처리 장치가 상기 적어도 하나 이상의 가상 머신으로부터 CPU 타임을 주기적으로 수집하는 단계; 상기 장애 처리 장치가 상기 수집된 CPU 타임의 변화 여부를 확인하여, 변화가 없는 것으로 확인되면, 해당 가상 머신의 에러 파라미터 값을 증가시키는 단계; 및 상기 에러 파라미터 값이 기 설정된 임계치 이상일 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것을 검출하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 가상 머신의 에러 파라미터 값을 증가시키는 단계는 상기 장애 처리 장치가 CPU 타임의 커널 모드 타임 및 사용자 모드 타임의 변화 여부를 확인하여, 상기 커널 모드 타임 및 사용자 모드 타임 모두 변화가 없는 것으로 확인되면, 해당 가상 머신의 에러 파라미터 값을 증가시킬 수 있다.
또한, 상기 장애가 발생된 것을 검출하는 단계는 상기 장애 처리 장치가 에뮬레이터의 동작 과정을 모니터링하는 단계; 및 일정 시간 동안 상기 에뮬레이터가 동작하지 않는 것으로 판단되면, 상기 장애 처리 장치가 상기 에뮬레이터에 연결된 가상 머신에서 장애가 발생된 것으로 검출하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 장애가 발생된 것을 검출하는 단계는 상기 장애 처리 장치가 상기 하이퍼바이저에서의 특정 함수의 호출 여부를 판단하는 단계; 및 일정 시간 동안 상기 하이퍼바이저에서의 특정 함수의 호출이 이뤄지지 않을 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것으로 검출하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 장애가 발생된 것을 검출하는 단계는 상기 장애 처리 장치가 가상 머신의 장애 처리 어플리케이션으로 생존 여부를 질의하는 단계; 및 가상 머신으로부터 상기 질의에 대한 응답 정보가 수신되지 않을 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것으로 검출하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 종료 명령을 전송하는 단계는 상기 장애 처리 장치가 장애가 발생된 가상 머신에 연결된 에뮬레이터로 종료 명령을 전송하는 단계; 상기 장애 처리 장치가 상기 에뮬레이터의 액티브(active) 여부를 판단하는 단계; 및 상기 에뮬레이터가 액티브 상태이면, 상기 장애 처리 장치가 상기 에뮬레이터를 강제 종료 시키는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 종료 명령을 전송하는 단계 이후에, 상기 가상 머신의 종료가 완료되지 않으면, 상기 장애 처리 장치가 상기 가상 머신을 강제 종료 시키는 단계;를 더 포함하여 이뤄질 수 있다.
또한, 상기 가상 머신을 재구동시키는 단계는 상기 장애가 발생된 가상 머신과 동일한 가상 머신이 생성되도록 제어할 수 있다.
또한, 상기 장애 처리 장치는 상기 하이퍼바이저 내의 기능 상의 모듈 형태로 존재하거나, 상기 하이퍼바이저와 연동 가능한 서버 형태로 구현될 수 있다.
본 발명의 가상화 환경에서의 장애 처리 방법에 의하면, 가상화 서버 내 동작하는 다수의 가상 머신에서 장애가 발생 시 별다른 사용자의 개입이 없더라도, 이를 자동으로 검출하고 처리할 수 있게 된다.
이를 통해, 보다 신속하고 정확하고 가상 머신에서의 장애를 검출하고 검출된 장애를 처리할 수 있게 된다.
아울러, 이를 통해 가상화 서버에서의 장애로 인한 서비스 단절을 사전에 예방할 수 있으며, 가상화 서비스를 이용하는 사용자에게 보다 안정하고 신뢰성있는 가상화 서비스를 제공할 수 있다는 효과가 있다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 가상화 서버의 주요 구성을 개략적으로 설명하기 위한 구성도이다.
도 2는 본 발명의 실시 예에 따른 장애 처리 장치의 구현 예를 설명하기 위한 예시도이다.
도 3은 본 발명의 실시 예에 따른 장애 처리 장치의 주요 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법을 개략적으로 설명하기 위한 흐름도이다.
도 5 내지 도 7은 본 발명의 실시 예에 따른 가상 머신의 장애 검출 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 가상 머신의 장애 처리 방법을 보다 구체적으로 설명하기 위한 데이터 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 또한 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 하나, 이는 본 발명을 특정한 실시 형태로 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이제 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법에 대하여 도면을 참조하여 상세하게 설명하도록 한다. 이때, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용하며, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시 예에 따른 가상화 서버의 주요 구성을 개략적으로 설명하기 위한 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 가상화 서버(500)는 적어도 하나 이상의 가상 머신(300), 호스트 OS(200) 및 하드웨어(100)를 포함할 수 있다.
호스트 OS(200) 및 하드웨어(100)는 호스트 머신을 의미한다. 여기서, 호스트 머신은 가상의 하드웨어가 생성되는 실제 물리적인 서버를 의미하며, 호스트 OS(200)는 상기 호스트 머신에서 구동되는 OS를 의미하며, 하드웨어(100)는 호스트 머신의 실제 물리적인 하드웨어 자원을 의미한다.
이 중 호스트 OS(200)는 하이퍼바이저(210)를 포함할 수 있다. 하이퍼바이저(210)는 다수의 가상 머신(VM, 300)을 생성하고 관리하는 역할을 수행하는 것으로, 전 가상화, 반 가상화 방식 등 다양한 가상화 방식의 하이퍼바이저(210)가 적용될 수 있다. 특히, 본 발명의 실시 예에 따른 하이퍼바이저(210)는 리눅스 커널 기반 가상화 머신(KVM)으로 구현될 수 있으며, 이와 동등한 또는 유사한 작용/효과를 제공하는 다른 하이퍼바이저로 대체될 수 있다. 또한, 하이퍼바이저(210)는 가상 머신(300)의 하드웨어를 모방하는 에뮬레이터(400)를 포함할 수 있다. 에뮬레이터(400)는 가상 머신 생성과 자원 할당을 하이퍼바이저(210)에 요청하고, 가상 머신(300)으로부터의 입출력(I/O) 처리를 수행한다. 이러한 에뮬레이터(400)는 가상 머신(300)별로 매핑되어 동작될 수 있으며, 각 가상 머신(300)별로 매핑되는 에뮬레이터(400)는 서로 다른 종류의 에뮬레이터로 구현될 수 있다.
이러한, 에뮬레이터(400)는 바람직하게는 QEMU(Quick EMUlator)를 이용할 수 있으며, 이와 동등한 또는 유사한 작용/효과를 제공하는 다른 에뮬레이터로 대체될 수 있다.
아울러, 도면에는 설명의 편의를 위해, 하이퍼바이저(210) 외부에 에뮬레이터(400)가 위치하는 독립된 구성으로 도시하였으나, 이에 한정되는 것은 아니다.
이러한 서버 가상화 환경에 적용되는 가상화 서버(500)에는 적어도 하나 이상의 가상 머신(300)이 동작한다. 이러한 가상화 서버(500)에 포함되는 가상 머신(300)의 수는 한정되지 않는다.
각 가상 머신(300)은 게스트 OS(320), 어플리케이션(330)을 포함하여 구성된다. 각 가상 머신(300) 내 게스트 OS(320)는 서로 다른 종류의 OS로 구현될 수 있으며, 각 가상 머신(300)이 보유하고 있는 어플리케이션(330)은 그 종류와 수에 따라 차이가 있을 수 있다.
이와 같이, 본 발명의 실시 예에 따른 가상화 서버(500) 내 다수의 가상 머신(300)에서 발생되는 장애를 검출하고 이를 처리할 수 있는 가상화 환경에서의 장애 처리 방법을 지원하는 장애 처리 장치는 다양한 형태로 구현될 수 있다.
이에 대해 도 2를 참조하여 설명하도록 한다.
도 2는 본 발명의 실시 예에 따른 장애 처리 장치의 구현 예를 설명하기 위한 예시도이다.
먼저, 도 2a에 도시된 바와 같이, 장애 처리 장치는 하이퍼바이저(210)의 일부 모듈의 형태로 구현될 수 있다. 이때, 하이퍼바이저(210) 내의 일부 모듈 형태로 구현되는 장애 처리 모듈(10a)은 다수의 가상 머신(300)에서의 장애 여부를 검출하게 되는 데, 본 발명의 일 실시 예에 따른 장애 처리 모듈(10a)은 각 가상 머신(300)과 연결된 에뮬레이터(400)를 통해 가상 머신(300)의 장애 여부를 검출할 수 있다. 또한, 본 발명의 일 실시 예에 따른 장애 처리 모듈(10a)과 연동 가능한 장애 처리 어플리케이션이 각 가상 머신(300) 내 존재하는 경우, 장애 처리 모듈(10a)은 상기 장애 처리 어플리케이션과 연동하여 가상 머신(300)의 장애 여부를 검출할 수 있다.
아울러, 본 발명의 실시 예에서 사용되는 '~모듈'이라는 용어는 소프트웨어 구성요소를 의미하며, '~모듈'은 어떤 역할들을 수행한다. 일 예로서 '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 또한, 구성요소들과 '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~모듈'들로 결합되거나 추가적인 구성요소들과 '~모듈'들로 더 분리될 수 있다.
또한, 본 발명의 장애 처리 장치는 도 2b에 도시된 바와 같이 가상화 서버(500)와 연동하는 별도의 장애 처리 서버(10b) 형태로 존재할 수 있다. 이때, 장애 처리 서버(10b)는 가상 머신(300)을 검사하고자 하는 가상화 서버(500)의 하이퍼바이저(210)로 요청 정보를 전송하고, 각 가상 머신(300)을 제어하는 하이퍼바이저(210)가 장애 처리 서버(10b)의 제어에 따라 각 가상 머신(3000의 장애 여부를 검출할 수도 있다.
이하에서는 설명의 편의를 위해, 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법을 지원하는 장애 처리 장치가 하이퍼바이저(210) 내에 모듈 형태로 구현된 것을 중심으로 설명하도록 하나, 이에 한정되는 것은 아니다.
이하, 본 발명의 실시 예에 따른 장애 처리 장치에 대해 도 3을 참조하여 보다 구체적으로 설명하도록 한다.
도 3은 본 발명의 실시 예에 따른 장애 처리 장치의 주요 구성을 설명하기 위한 블록도이다.
도 1 및 도 3을 참조하면, 본 발명의 실시 예에 따른 장애 처리 장치(10)는 가상 머신 모니터링부(11) 및 장애 처리부(12)를 포함하여 구성될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 먼저, 가상 머신 모니터링부(11)는 가상화 서버(500) 내 존재하는 하나 이상의 가상 머신(300)을 모니터링하여 장애 여부를 검출하는 역할을 수행할 수 있다.
본 발명의 실시 예에 따른 가상 머신 모니터링부(11)는 다양한 방식으로 가상 머신(300)의 장애 여부를 검출할 수 있다.
먼저, 가상 머신 모니터링부(11)는 가상 머신(300)의 CPU 타임을 이용하여 장애 여부를 검출할 수 있다. 보다 구체적으로 설명하면, 가상 머신 모니터링부(11)는 하나 이상의 가상 머신(300)으로부터 CPU 타임을 주기적으로 수집한다. 보다 정확하게는 가상 머신 모니터링부(11)는 각 가상 머신(300)에 연결된 에뮬레이터(400)로 CPU 타임을 요청하여 수집할 수 있다. 여기서, CPU 타임이란 각 가상 머신(300) 내에서 특정 어플리케이션 또는 프로그램이 게스트 OS(320)의 가상 CPU(virtual CPU)를 차지하여 일을 한 시간의 양을 의미한다. 이러한 CPU 타임은 가상 머신이 정상 구동 중이면 유동적이나, 비정상적인 경우 값이 변하지 않는다. 이러한 CPU 타임은 커널 모드 타임 및 사용자 모드 타임을 포함할 수 있다.
가상 머신 모니터링부(11)는 이러한 CPU 타임을 일정 주기 단위로 수집하고, 수집된 CPU 타임의 변화 여부를 판단한다. 판단 결과, CPU 타임에서 변화가 있는 경우 에러 파라미터를 '0'으로 초기화시킨 후 계속 가상 머신(300)의 CPU 타임을 조회한다. 만약, 특정 가상 머신(300)에서의 CPU 타임의 변화가 없을 경우, 가상 머신 모니터링부(11)는 해당 가상 머신(300)의 에러 파라미터의 값을 '1' 증가시키게 된다. 여기서, 가상 머신 모니터링부(11)는 커널 모드 타임 및 사용자 모드 타임의 변화 여부를 모두를 확인하여, 커널 모드 타임 및 사용자 모드 타임 모두 변화가 없을 경우, 에러 파라미터의 값을 증가시키며, 둘 중 어느 하나에서 변화가 발생된 경우, 에러 파라미터의 값을 초기화시킬 수 있다.
그리고, 해당 가상 머신(300)의 에러 파라미터의 값이 기 설정된 임계치 이상인 지 여부를 판단하여, 이상일 경우, 가상 머신 모니터링부(11)는 해당 가상 머신(300)에서 장애가 발생된 것으로 검출할 수 있다. 이때, 가상 머신 모니터링부(11)는 기 설정된 시간 동안의 에러 파라미터의 값을 카운팅하여 장애 발생 여부를 검출할 수 있다.
다른 실시 예에서 가상 머신 모니터링부(11)는 각 가상 머신(300)에 연결된 에뮬레이터(400)의 동작 과정을 모니터링하여 장애 여부를 검출할 수도 있다. 이때, 가상 머신 모니터링부(11)는 가상 머신(300)에 연결된 에뮬레이터(400)가 일정 시간 동안 동작하지 않는 것으로 판단되면, 해당 가상 머신(300)에서 장애가 발생된 것으로 검출할 수 있다.
또 다른 실시 예에서 가상 머신 모니터링부(11)는 하이퍼바이저(210)를 모니터링하여 가상 머신(300)의 장애 여부를 검출할 수도 있다. 예컨대, 가상 머신 모니터링부(11)는 하이퍼바이저(210) 내의 'switch to guest mode' 함수의 호출 여부를 모니터링하게 된다. 여기서, 'switch to guest mode' 함수는 하이퍼바이저(210)가 호스트 OS 모드에서 가상 머신 OS 모드로 제어를 넘기기 위한 함수로, 상기 함수에 대한 호출이 이뤄지지 않을 경우, 해당 가상 머신(300)은 장애가 발생된 것으로 판단할 수 있다. 예를 들어 가상 머신1은 상기 함수를 호출하였으나, 가상 머신2는 일정 시간 동안 상기 함수를 호출하지 못할 경우, 가상 머신 모니터링부(11)는 상기 가상 머신2에서 장애가 발생된 것으로 검출할 수 있다.
또 다른 실시 예에서 가상 머신 모니터링부(11)는 각 가상 머신(300) 내 어플리케이션(330)에 장애 처리 어플리케이션이 존재하는 경우, 상기 장애 처리 어플리케이션과 연동하여 장애 여부를 검출할 수 있다. 이때, 가상 머신 모니터링부(11)는 각 가상 머신(300) 내 장애 처리 어플리케이션으로 생존 여부를 질의하고, 상기 질의에 따른 응답 정보가 수신되지 않는 가상 머신(300)을 장애가 발생된 가상 머신으로 검출할 수 있다.
이러한 과정을 거쳐 장애가 발생된 가상 머신이 검출되면, 장애 처리부(12)는 장애를 처리하고 복구하는 과정을 수행하게 된다.
보다 구체적으로 설명하면 장애 처리부(12)는 장애가 발생된 가상 머신의 에뮬레이터(400)로 종료 명령(shut down)을 전송하게 된다. 이를 수신한 에뮬레이터(400)는 가상 머신(300)의 셧 다운(shut down)을 진행하여 구동 중인 어플리케이션을 비롯한 각종 프로그램을 순차적으로 종료하고, 할당된 리소스를 반환하는 등의 과정을 거쳐 종료하게 된다. 이후 모든 과정이 완료되면 해당 에뮬레이터(400) 또한 종료하게 된다.
이러한 과정을 모니터링하는 장애 처리부(12)는 해당 에뮬레이터(400)에서의 종료가 완료된 것으로 판단되면, 상기 에뮬레이터(400)로 동일 가상 머신 생성을 요청하여 가상 머신의 재구동을 수행할 수 있다.
반면, 장애가 발생된 에뮬레이터(400)로 종료 명령을 전송한 이후에, 여러 가지 이유로 장애가 발생된 에뮬레이터(400)가 중지되거나 변화가 없을 경우, 장애 처리부(12)는 상기 에뮬레이터(400)의 액티브(active) 여부를 판단하여, 액티브 상태이면, 상기 에뮬레이터(400)를 강제 종료(kill) 시키는 과정을 수행하게 된다.
이러한 과정을 거쳐, 장애가 발생된 가상 머신(300)이 완전히 종료되면, 전술한 바와 같이 장애 처리부(12)는 다시 해당 가상 머신(300)의 에뮬레이터(400)로 동일 가상 머신의 생성을 요청하여 가상 머신의 재구동을 수행할 수 있다.
반면, 파일 시스템 파괴 등 치명적이 오류로 인해 가상 머신(300)의 재구동이 불가한 경우, 장애 처리부(12)는 복구 처리를 수행할 수 있다. 이때, 장애 처리부(12)는 각 가상 머신(300)별로 미리 구축된 백업 데이터를 이용하여 복구할 수 있다. 여기서 백업 데이터는 게스트 OS 커널 이미지(OS Kernel Image) 정보와, 해당 OS에 의해 설치된 어플리케이션 정보, 메뉴 구성 정보 등 운영체제에 의해 설정되어 업데이트된 시스템 설정 정보(System Configuration Information)와, 사용자에 의해 설정되어 업데이트된 사용자 데이터(User Data) 정보를 포함할 수 있다.
장애 처리부(12)는 이러한 백업 데이터를 이용하여 장애가 발생한 가상 머신의 게스트 OS 커널 이미지를 복구하고, 어플리케이션을 설치하며, 시스템 설정(System Configuration Information) 및 사용자 데이터(User Data)를 복원하여 장애가 발생한 가상 머신을 복원하는 과정을 수행할 수 있다.
아울러, 상술한 가상 머신의 복구 과정은 하이퍼바이저(210)와 연동하여 이뤄질 수 있으며, 상기 가상 머신에 대한 백업 데이터는 하이퍼바이저(210)에 의해 생성된 백업 데이터를 이용할 수도 있다.
이상으로 본 발명의 실시 예에 따른 장애 처리 장치(10)의 주요 구성 및 동작 방법에 대해 설명하였다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이하, 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법에 대해 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법을 개략적으로 설명하기 위한 흐름도이다.
도 1 내지 도 4를 참조하면, 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법을 지원하는 장애 처리 장치(10)가 가상화 서버(500) 내 하나 이상의 가상 머신(300)을 모니터링하여 장애 여부를 검출하게 된다(S100).
이때, 특정 가상 머신에서 장애가 발생된 것으로 검출되면, 장애 처리 장치(10)가 해당 가상 머신을 종료하는 과정을 수행한다(S200).
여기서, 가상 머신을 종료하는 과정은 먼저, 장애 처리 장치(10)가 장애가 발생된 가상 머신으로 먼저 종료 명령을 전송한다(S250). 그리고, 장애 처리 장치(10)는 상기 가상 머신의 종료 여부를 확인하여(S260), 종료가 되지 않을 경우, 해당 가상 머신을 강제 종료(S270)할 수 있다.
그리고, 장애 처리 장치(10)는 장애가 발생된 가상 머신의 종료가 완료되면, 해당 가상 머신을 재구동하는 과정을 수행한다(S300). 이때, 정상적으로 재구동이 이뤄지지 않을 경우, 장애 처리 장치(10)는 상기 가상 머신을 복구하는 과정을 수행할 수도 있다.
이하, 본 발명의 실시 예에 따른 가상 머신의 장애 검출 방법에 대해 보다 구체적으로 설명하도록 한다.
도 5 내지 도 7은 본 발명의 실시 예에 따른 가상 머신의 장애 검출 방법을 설명하기 위한 흐름도이다.
먼저, 도 1 및 도 5를 참조하면, 장애 처리 장치(10)는 가상 머신(300)의 CPU 타임을 이용하여 장애 여부를 검출할 수 있다. 즉, 장애 처리 장치(10)는 하나 이상의 가상 머신(300)으로부터 CPU 타임을 주기적으로 수집한다(S111). 보다 정확하게는 장애 처리 장치(10)가 각 가상 머신(300)에 연결된 에뮬레이터(400)로 CPU 타임을 요청하여 수집할 수 있다. 여기서, CPU 타임이란 각 가상 머신 내에서 특정 어플리케이션 또는 프로그램이 게스트 OS의 가상 CPU(virtual CPU)를 차지하여 일을 한 시간의 양을 의미한다. 이러한 CPU 타임은 가상 머신이 정상 구동 중이면 유동적이나, 비정상적인 경우 값이 변하지 않는다. 이러한 CPU 타임은 커널 모드 타임 및 사용자 모드 타임을 포함할 수 있다.
그리고, 장애 처리 장치(10)는 수집된 CPU 타임의 변화 여부를 판단한다(S113). 상기 판단 결과, CPU 타임에서 변화가 있는 경우 에러 파라미터를 '0'으로 초기화시킨 후(S115), 계속 가상 머신(300)의 CPU 타임을 조회한다. 만약, 특정 가상 머신(300)에서의 CPU 타임의 변화가 없을 경우, 장애 처리 장치(10)는 해당 가상 머신(300)의 대응하여 에러 파라미터의 값을 '1' 증가시키게 된다(S117).
그리고, 해당 가상 머신(300)의 대응한 에러 파라미터의 값이 기 설정된 임계치 이상인 지 여부를 판단하여(S119), 일정 개수 이상일 경우, 장애 처리 장치(10)는 해당 가상 머신(300)에서 장애가 발생된 것으로 검출할 수 있다. 이때, 장애 처리 장치(10)는 기 설정된 시간 동안의 에러 파라미터의 값을 카운팅하여 장애 발생 여부를 검출할 수 있다.
다른 실시 예에서 장애 처리 장치(10)는 각 가상 머신(300) 내 에뮬레이터(400)의 동작 과정을 모니터링하여 장애 여부를 검출할 수도 있다. 이에 대해 도 6을 참조하여 설명하면, 장애 처리 장치(10)는 가상 머신(300) 내 각 에뮬레이터(400)가 일정 시간 동안의 동작 과정을 모니터링한다(S121),
상기 판단 결과, 특정 가상 머신(300)에서 일정 시간 동안 동작하지 않는 것으로 판단되는(S123), 장애 처리 장치(10)는 해당 가상 머신(300)에서 장애가 발생된 것으로 검출할 수 있다(S125).
또 다른 실시 예에서 장애 처리 장치(10)는 하이퍼바이저(210)를 모니터링하여 가상 머신(300)의 장애 여부를 검출할 수도 있다. 이에 대해 도 7을 참조하여 설명하면, 장애 처리 장치(10)는 하이퍼바이저(210) 내의 'switch to guest mode'함수의 호출 여부를 모니터링하게 된다(S131). 여기서, 'switch to guest mode' 함수는 하이퍼바이저(210)가 호스트 OS 모드에서 가상 머신 OS 모드로 제어를 넘기기 위한 함수로, 상기 함수에 대한 호출이 이뤄지지 않을 경우, 해당 가상 머신(300)은 장애가 발생된 것으로 판단할 수 있다.
예를 들어 가상 머신1은 상기 함수를 호출하였으나, 가상 머신2는 일정 시간 동안 상기 함수를 호출하지 못할 경우(S133), 장애 처리 장치(10)는 상기 가상 머신2에서 장애가 발생된 것으로 검출할 수 있다(S135).
또 다른 실시 예에서 장애 처리 장치(10)는 각 가상 머신(300) 내 어플리케이션(330)에 장애 처리 어플리케이션이 존재하는 경우, 상기 장애 처리 어플리케이션과 연동하여 장애 여부를 검출할 수 있다. 이때, 장애 처리 장치(10)는 각 가상 머신(300) 내 장애 처리 어플리케이션으로 생존 여부를 질의하고, 상기 질의에 따른 응답 정보가 수신되지 않는 가상 머신(300)을 장애가 발생된 가상 머신으로 검출할 수 있다.
이하, 장애가 발생된 가상 머신에서의 장애를 처리하고 복구하는 과정에 대해 설명하도록 한다.
도 8은 본 발명의 실시 예에 따른 가상 머신의 장애 처리 방법을 보다 구체적으로 설명하기 위한 데이터 흐름도이다.
먼저, 도 8a를 참조하면, 장애 처리 장치(10)는 장애가 발생된 가상 머신(300)의 에뮬레이터(400)로 종료 명령(shut down)을 전송한다(S211). 이를 수신한 에뮬레이터(400)는 연결된 가상 머신(300)의 게스트 OS(320)로 구동 중인 어플리케이션을 비롯한 각종 프로그램을 순차적으로 종료하고, 할당된 리소스를 반환하는 등의 과정을 거쳐 종료하도록 종료 명령을 전송한다(S213). 이에 따라, 가상 머신(300)의 게스트 OS(320)는 구동 중인 어플리케이션(330)을 종료하도록 제어하고(S215), 할당된 리소스를 반환하는 등의 종료 과정을 거치게 되고, 에뮬레이터(400)는 가상 머신(300)에서 종료가 완료된 것으로 판단되며, 스스로 종료하게 된다(S219).
에뮬레이터(400)의 동작 과정을 모니터링하고 있는 장애 처리 장치(10)는 종료 명령을 전송한 에뮬레이터(400)의 액티브(active) 상태 여부를 모니터링하고(S221), 종료가 완료된 것으로 확인되면(S223), 해당 에뮬레이터(400)로 가상 머신을 재구동시키기 위해, 동일 가상 머신에 대한 생성을 요청하게 된다(S225).
이를 수신한 에뮬레이터(400)는 상기 요청에 따라 동일 가상 머신을 생성하게 된다.
반면, 장애가 발생된 가상 머신(300)이 정상적으로 종료되지 않을 경우의 처리 과정에 대해 도 8b를 참조하여 설명하도록 한다.
전술한 바와 같이, 장애 처리 장치(10)는 장애가 발생된 가상 머신(300)의 에뮬레이터(400)로 종료 명령(shut down)을 전송한다(S23). 이를 수신한 에뮬레이터(400)는 연결된 가상 머신(300)의 게스트 OS(320)로 구동 중인 어플리케이션을 비롯한 각종 프로그램을 순차적으로 종료하고, 할당된 리소스를 반환하는 등의 과정을 거쳐 종료하도록 종료 명령을 전송한다(S233). 이에 따라, 가상 머신(300)의 게스트 OS(320)는 구동 중인 어플리케이션(330)을 종료하도록 제어할 수 있다 (S235). 그런데, 이때 여러 가지 요인으로 인해 정상적인 종료가 이뤄지지 않을 경우, 또한, 게스트 OS(320) 상에 치명적인 오류가 발생한 경우, 종료 과정이 이뤄지지 않을 수 있다.
이를 모니터링(S237)하고 있는 장애 처리 장치(10)는 에뮬레이터(400)가 액티브 상태이므로(S239), 상기 에뮬레이터(400)를 강제 종료(kill) 시키게 된다(S241). 여기서, 에뮬레이터(400)를 강제 종료 시키는 과정은 장애 처리 장치(10)가 하이퍼바이저(210)로 요청하여 하이퍼바이저(210)가 해당 에뮬레이터(400)를 강제 종료시킬 수 있으며, 장애 처리 장치(10)가 강제 종료시킬 수도 있다.
이후, 에뮬레이터(400)가 강제 종료되고(S243), 장애 처리 장치(10)가 이를 확인하여 정상적으로 종료가 완료된 것으로 판단되면(S245), 동일 가상 머신에 대한 생성을 요청하여(S247), 이에 따라, 에뮬레이터(400)는 게스트 OS를 재기동한다.
반면, 파일 시스템 파괴 등 치명적이 오류로 인해 가상 머신(300)의 재구동이 불가한 경우, 장애 처리 장치(10)는 복구 처리를 수행할 수 있다. 이때, 장애 처리 장치(10)는 가상 머신(300)에 대응하여 미리 구축된 백업 데이터를 이용하여 복구할 수 있다. 여기서 백업 데이터는 게스트 OS 커널 이미지(OS Kernel Image) 정보와, 해당 OS에 의해 설치된 어플리케이션 정보, 메뉴 구성 정보 등 운영체제에 의해 설정되어 업데이트된 시스템 설정 정보(System Configuration Information)와, 사용자에 의해 설정되어 업데이트된 사용자 데이터(User Data) 정보를 포함할 수 있다.
장애 처리 장치(10)는 이러한 백업 데이터를 이용하여 장애가 발생한 가상 머신의 게스트 OS 커널 이미지를 복구하고, 어플리케이션을 설치하며, 시스템 설정(System Configuration Information) 및 사용자 데이터(User Data)를 복원하여 장애가 발생한 가상 머신을 복원하는 과정을 수행할 수 있다.
아울러, 상술한 가상 머신(300)의 복구 과정은 하이퍼바이저(210)와 연동하여 이뤄질 수 있으며, 상기 가상 머신에 대한 백업 데이터는 하이퍼바이저(210)에 의해 생성된 백업 데이터를 이용할 수도 있다.
이상으로 본 발명의 실시 예에 따른 가상화 환경에서의 장애 처리 방법에 대해 흐름도에 대한 도면을 참고하여 설명하였다.
여기서, 흐름도의 각 단계는 컴퓨터 프로그램 명령어에 의해 수행될 수 있음을 이해하여야 한다. 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 명령어들이 흐름도 구성(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
또한, 이들 컴퓨터 프로그램 명령어들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능한 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능한 기록매체에 저장된 명령어들은 흐름도 구성(들)에서 설명된 기능을 수행하는 명령어 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
여기서, 컴퓨터 이용 가능 또는 판독 가능한 기록매체는 예컨대, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 컴퓨터 프로그램 명령어들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 명령어들은 흐름도 구성(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 구성은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령어들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 가상화 환경에서의 장애 처리 방법에 관한 것으로서, 더욱 상세하게는 가상화 서버 내 동작하는 가상 머신에서의 장애를 검출하고, 이를 처리할 수 있는 가상화 환경에서의 장애 처리 방법에 관한 것이다.
본 발명에 의하면, 가상화 서버 내 존재하는 가상 머신에서 장애가 발생 시, 별다른 사용자의 개입이 없더라도 이를 빠르게 검출하고 복구할 수 있으며, 이를 통해 가상화 서비스 산업의 발전에 이바지할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
10: 장애 처리 장치 11: 가상 머신 모니터링부 12: 장애 처리부
100: 하드웨어 200: 호스트 OS 210: 하이퍼바이저
300: 가상 머신 320: 게스트 OS 330: 어플리케이션
400: 에뮬레이터 500: 가상화 서버

Claims (10)

  1. 적어도 하나 이상의 가상 머신과, 상기 가상 머신의 하드웨어 자원을 에뮬레이팅하는 에뮬레이터를 포함하며 상기 가상 머신을 제어하는 하이퍼바이저로 구성된 가상화 환경에서의 장애 처리 방법에 있어서,
    장애 처리 장치가 어느 하나의 가상 머신에서 장애가 발생된 것을 검출하는 단계;
    상기 장애 처리 장치가 상기 장애가 발생된 가상 머신으로 종료 명령을 전송하는 단계; 및
    상기 장애가 발생된 가상 머신의 종료가 완료되면, 상기 장애 처리 장치가 상기 가상 머신을 재구동시키는 단계;를 포함하되,
    상기 가상 머신을 재구동시키는 단계는
    상기 가상 머신의 재구동이 불가한 경우, 각 가상 머신 별로 미리 구축된 백업 데이터를 이용하여 게스트 OS 커널 이미지(OS Kernel Image)를 복구하고, 어플리케이션을 설치하며, 시스템 설정 정보(System Configuration Information) 및 사용자 데이터(User Data)를 복원하여 상기 장애가 발생된 가상 머신을 복원시키는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  2. 제1 항에 있어서,
    상기 장애가 발생된 것을 검출하는 단계는
    상기 장애 처리 장치가 상기 적어도 하나 이상의 가상 머신으로부터 CPU 타임을 주기적으로 수집하는 단계;
    상기 장애 처리 장치가 상기 수집된 CPU 타임의 변화 여부를 확인하여, 변화가 없는 것으로 확인되면, 해당 가상 머신의 에러 파라미터 값을 증가시키는 단계; 및
    상기 에러 파라미터 값이 기 설정된 임계치 이상일 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것을 검출하는 단계;
    를 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  3. 제2 항에 있어서,
    상기 가상 머신의 에러 파라미터 값을 증가시키는 단계는
    상기 장애 처리 장치가 CPU 타임의 커널 모드 타임 및 사용자 모드 타임의 변화 여부를 확인하여, 상기 커널 모드 타임 및 사용자 모드 타임 모두 변화가 없는 것으로 확인되면, 해당 가상 머신의 에러 파라미터 값을 증가시키는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  4. 제1 항에 있어서,
    상기 장애가 발생된 것을 검출하는 단계는
    상기 장애 처리 장치가 에뮬레이터의 동작 과정을 모니터링하는 단계; 및
    일정 시간 동안 상기 에뮬레이터가 동작하지 않는 것으로 판단되면, 상기 장애 처리 장치가 상기 에뮬레이터에 연결된 가상 머신에서 장애가 발생된 것으로 검출하는 단계;
    를 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  5. 제1 항에 있어서,
    상기 장애가 발생된 것을 검출하는 단계는
    상기 장애 처리 장치가 상기 하이퍼바이저에서의 특정 함수의 호출 여부를 판단하는 단계; 및
    일정 시간 동안 상기 하이퍼바이저에서의 특정 함수의 호출이 이뤄지지 않을 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것으로 검출하는 단계;
    를 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  6. 제1 항에 있어서,
    상기 장애가 발생된 것을 검출하는 단계는
    상기 장애 처리 장치가 가상 머신의 장애 처리 어플리케이션으로 생존 여부를 질의하는 단계; 및
    가상 머신으로부터 상기 질의에 대한 응답 정보가 수신되지 않을 경우, 상기 장애 처리 장치가 해당 가상 머신에서 장애가 발생된 것으로 검출하는 단계;
    를 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  7. 제1 항에 있어서,
    상기 종료 명령을 전송하는 단계는
    상기 장애 처리 장치가 장애가 발생된 가상 머신에 연결된 에뮬레이터로 종료 명령을 전송하는 단계;
    상기 장애 처리 장치가 상기 에뮬레이터의 액티브(active) 여부를 판단하는 단계; 및
    상기 에뮬레이터가 액티브 상태이면, 상기 장애 처리 장치가 상기 에뮬레이터를 강제 종료 시키는 단계;
    를 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  8. 제1 항에 있어서,
    상기 종료 명령을 전송하는 단계 이후에,
    상기 가상 머신의 종료가 완료되지 않으면, 상기 장애 처리 장치가 상기 가상 머신을 강제 종료 시키는 단계;
    를 더 포함하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  9. 제1 항에 있어서,
    상기 가상 머신을 재구동시키는 단계는
    상기 장애 처리 장치가 상기 장애가 발생된 가상 머신과 동일한 가상 머신이 생성되도록 제어하는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.
  10. 제1 항에 있어서,
    상기 장애 처리 장치는 상기 하이퍼바이저 내의 기능 상의 모듈 형태로 존재하거나, 상기 하이퍼바이저와 연동 가능한 서버 형태로 구현되는 것을 특징으로 하는 가상화 환경에서의 장애 처리 방법.

KR1020140035131A 2014-03-26 2014-03-26 가상화 환경에서의 장애 처리 방법 KR102174692B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140035131A KR102174692B1 (ko) 2014-03-26 2014-03-26 가상화 환경에서의 장애 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140035131A KR102174692B1 (ko) 2014-03-26 2014-03-26 가상화 환경에서의 장애 처리 방법

Publications (2)

Publication Number Publication Date
KR20150111609A KR20150111609A (ko) 2015-10-06
KR102174692B1 true KR102174692B1 (ko) 2020-11-05

Family

ID=54344988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140035131A KR102174692B1 (ko) 2014-03-26 2014-03-26 가상화 환경에서의 장애 처리 방법

Country Status (1)

Country Link
KR (1) KR102174692B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714522B1 (ko) * 2015-11-10 2017-03-09 현대자동차주식회사 가상화 프레임웍 기반 차량 avn 스마트폰 연동 서비스 제공 방법 및 그를 위한 장치
CN106708603B (zh) * 2016-12-28 2019-04-26 平安科技(深圳)有限公司 虚拟机快速恢复方法及装置
CN109032895A (zh) * 2018-07-26 2018-12-18 郑州云海信息技术有限公司 一种监控fuse进程的检测方法、装置、设备及存储介质
CN115858222B (zh) * 2022-12-19 2024-01-02 安超云软件有限公司 一种虚拟机故障处理方法、系统及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134557A (ja) * 2008-12-02 2010-06-17 Nec Corp 仮想マシン運用管理システム、その運用管理方法、及びプログラム
JP2012064196A (ja) * 2010-09-16 2012-03-29 Hitachi Ltd 仮想マシンデータのバックアップのための方法及び装置
US20120233508A1 (en) * 2008-03-31 2012-09-13 Dell Products L.P. System and Method for Increased System Availability in Virtualized Environments

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101268290B1 (ko) * 2010-10-26 2013-05-28 한국과학기술원 가상화 시스템에서 디바이스 드라이버의 오류를 탐지하고 복구하는 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120233508A1 (en) * 2008-03-31 2012-09-13 Dell Products L.P. System and Method for Increased System Availability in Virtualized Environments
JP2010134557A (ja) * 2008-12-02 2010-06-17 Nec Corp 仮想マシン運用管理システム、その運用管理方法、及びプログラム
JP2012064196A (ja) * 2010-09-16 2012-03-29 Hitachi Ltd 仮想マシンデータのバックアップのための方法及び装置

Also Published As

Publication number Publication date
KR20150111609A (ko) 2015-10-06

Similar Documents

Publication Publication Date Title
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
CN109815043B (zh) 故障处理方法、相关设备及计算机存储介质
EP2598993B1 (en) Providing application high availability in highly-available virtual machine environments
US8769226B2 (en) Discovering cluster resources to efficiently perform cluster backups and restores
US8954963B2 (en) Method and apparatus for resetting a physical I/O adapter without stopping a guest OS running on a virtual machine
US8413144B1 (en) Providing application-aware high availability of virtual machines
JP4651127B2 (ja) 仮想マシンコンピュータシステム及び仮想マシンコンピュータシステムのフェールセーフ方法
US20150058663A1 (en) High availability virtual machine cluster
US9727358B2 (en) Failover detection and treatment in checkpoint systems
US9183093B2 (en) Virtual machine crash management
WO2018058942A1 (zh) 一种数据处理方法以及备份服务器
US20090070761A1 (en) System and method for data communication with data link backup
KR102174692B1 (ko) 가상화 환경에서의 장애 처리 방법
US20140215461A1 (en) Low-latency fault-tolerant virtual machines
WO2013153472A1 (en) Providing application based monitoring and recovery for a hypervisor of an ha cluster
JP2016110183A (ja) 情報処理システム及び情報処理システムの制御方法
US9678838B2 (en) Protecting virtual machines from network failures
US8499112B2 (en) Storage control apparatus
US20150067401A1 (en) Computer recovery method, computer system, and storage medium
US20230342268A1 (en) Uncorrectable Memory Error Recovery For Virtual Machine Hosts
US20190250994A1 (en) Backup control method and backup control system
KR20120035081A (ko) 가상화 환경에서의 장애 복구 장치 및 방법
KR20220163490A (ko) 치명적인 메모리 에러시 타겟 호스트로의 가상 머신들의 라이브 마이그레이팅
WO2014081608A1 (en) Optimized execution of virtualized software using securely partitioned virtualization system with dedicated resources
JP2012181737A (ja) 計算機システム

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