KR20150111608A - 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치 - Google Patents

가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치 Download PDF

Info

Publication number
KR20150111608A
KR20150111608A KR1020140035130A KR20140035130A KR20150111608A KR 20150111608 A KR20150111608 A KR 20150111608A KR 1020140035130 A KR1020140035130 A KR 1020140035130A KR 20140035130 A KR20140035130 A KR 20140035130A KR 20150111608 A KR20150111608 A KR 20150111608A
Authority
KR
South Korea
Prior art keywords
virtualization
virtual machine
virtualization server
server
standby
Prior art date
Application number
KR1020140035130A
Other languages
English (en)
Other versions
KR102210408B1 (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 KR1020140035130A priority Critical patent/KR102210408B1/ko
Publication of KR20150111608A publication Critical patent/KR20150111608A/ko
Application granted granted Critical
Publication of KR102210408B1 publication Critical patent/KR102210408B1/ko

Links

Images

Classifications

    • 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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • 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

Landscapes

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

Abstract

본 발명은 액티브 상태의 복수의 가상화 서버를 하나의 스탠바이 상태의 가상화 서버를 통해 효율적으로 대체할 수 있도록 하는 가상화 서버의 이중화 구축 방법 및 이를 위한 가상화 제어 장치에 관한 것으로서, 가상화 제어 장치가, 액티브 상태인 제1 내지 제N(N은 2 이상의 자연수 임) 가상화 서버의 리소스 상태를 주기적으로 조회하여, 상기 제1 내지 제N 가상화 서버 중에서 기 설정된 횟수 이상 연속적으로 리소스 조회에 실패한 가상화 서버를 비정상 리스트에 등록하고, 상기 비정상 리스트에 등록된 가상화 서버에 대하여 장애가 발생한 것으로 판단하여, 스탠바이 상태인 제N+1 가상화 서버가 상기 비정상 리스트에 등록된 가상화 서버를 대신하여 하나 이상의 가상 머신을 구동하도록 구현된다.

Description

가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치{Method for duplication of virtualization server and Virtualization control apparatus thereof}
본 발명은 물리적 서버에 하나 이상의 논리적 가상 머신을 구축하여, CPU, 메모리, 네트워크, 스토리지 등의 리소스를 공유하는 가상화 서버를 운용하는데 있어서, 액티브 상태의 복수의 가상화 서버를 하나의 스탠바이 상태의 가상화 서버를 통해 효율적으로 대체할 수 있도록 하는 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치에 관한 것이다.
가상화(Virtualization)는 하나의 물리적 요소를 여러 개의 논리적 요소로 나누어 관리할 수 있게 하거나, 복수 개의 물리적 요소를 하나의 논리적 요소로 통합하여 관리할 수 있게 하는 기술을 말하는 것으로서, 특히 서버 가상화는 하나의 물리적인 서버 내에 여러 개의 논리적 가상 머신(Virtual Machine)을 두어, CPU, 메모리, 네트워크, 스토리지 등의 자원을 공유하는 기술을 의미한다. 이하에서, 가상화 기술이 적용된 서버를 가상화 서버라 통칭하기로 한다.
가상화 서버는 기존의 물리적 서버와 달리 여러 사용자가 하나의 서버 자원을 논리적인 서버 자원으로 할당 받아 사용할 수 있기 때문에, 서버 자원의 사용량이 상대적으로 많은 기업 또는 조직의 비용 절감, 친환경 IT 정책 차원에서 이용되고 있다.
아울러, 가상화 서버에 장애 및 비정상 발생 시, 시스템의 안정성을 제공하기 위하여 고가용성 이중화 구조가 채택되고 있다.
가상화 서버를 이중화 구조로 구현하는 방법은, 가상 머신 자체를 이중화하는 방안과, 가상 머신들이 구동되는 서버를 이중화하는 방안으로 구분할 수 있으며, 기본적으로, 가상 머신의 이미지 파일 등을 대용량의 공용 스토리지에 저장하고, 공용 스토리지에 저장된 이미지 파일을 기반으로 액티브 상태 또는 스탠바이 상태의 가상화 서버 또는 가상 머신들의 상태를 동기화시킨 후, 액티브 상태의 가상화 서버 또는 가상 머신에 장애 발생 시, 절체 동작을 통해서 스탠바이 상태의 가상화 서버 또는 가상 머신을 액티브 상태로 전환하는 방식으로 이루어진다.
이와 같이, 기존의 이중화 시스템은 공용 스토리지 내에 저장된 데이터를 기반으로 이중화 동작을 수행하기 때문에, 공용 스토리지 장애에 따른 위험성을 가지고 있다.
아울러, 가상 머신 자체를 이중화하는 방식의 경우, 가상화 서버에 발생하는 이상에 적절히 대처할 수 없다는 안정성 문제가 발생할 수 있으며, 각 가상화 서버 별로 해당 액티브 가상 머신과 스탠바이 가상 머신을 들을 개별 관리하여야 하는 복잡성이 따른다.
또한, 가상화 서버를 이중화하는 방식의 경우, 고가의 공용 스토리지가 필요하며, 항상 액티브 상태의 가상화 서버를 스탠바이 상태의 가상화 서버가 백업해야 하므로 구축 비용이 증가한다는 문제점이 있다.
예를 들어, 5개의 가상화 서버로 서비스를 제공하는 경우, 5개의 액티브 서버와 5 개의 스탠바이 서버가 필요하므로, 총 10개의 서버가 시스템을 구성하게 된다. 아울러, 10개의 서버가 1개의 공용 스토리지를 사용한다고 하더라도 고가의 공용 스토리지가 반드시 필요하다는 단점이 있다.
한국등록특허 제10-1250881호, 2013년 03월 29일 (명칭: 클라우드 컴퓨팅의 블럭 스토리지 서비스의 데이터 이중화 방법)
본 발명은 물리적 서버에 하나 이상의 논리적 가상 머신을 구축하여, CPU, 메모리, 네트워크, 스토리지 등의 리소스를 공유하는 가상화 서버를 운용하는데 있어서, 하나의 스탠바이 서버를 이용하여 복수의 가상화 서버를 효율적으로 대체할 수 있도록 하는 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치를 제공하고자 한다.
상술한 과제의 해결 수단으로서, 본 발명의 일 실시 예에 따른 가상화 서버의 이중화 구축 방법은, 가상화 제어 장치가, 액티브 상태인 복수의 액티브 가상화 서버의 리소스 상태를 주기적으로 조회하는 단계; 상기 복수의 액티브 가상화 서버 중에서 기 설정된 횟수 이상 연속적으로 리소스 조회에 실패한 가상화 서버를 비정상 리스트에 등록하는 단계; 상기 비정상 리스트에 등록된 가상화 서버에 장애가 발생한 것으로 판단하여, 스탠바이 상태인 하나의 스탠바이 가상화 서버에서 상기 비정상 리스트에 등록된 가상화 서버에서 구동되던 하나 이상의 가상 머신을 생성하도록 제어하는 단계; 및 상기 하나 이상의 가상 머신이 구동하는 가상화 서버 정보를 상기 스탠바이 가상화 서버로 변경하는 단계를 포함한다.
더하여, 본 발명은 상술한 과제의 다른 해결 수단으로서, 가상화 제어 장치가, 액티브 가상화 서버에서 특정 가상 머신을 생성하도록 제어하는 단계; 상기 액티브 가상화 서버에서 특정 가상 머신이 생성되면, 스탠바이 가상화 서버에 상기 특정 가상 머신의 이미지 파일이 존재하는 지를 확인하는 단계; 확인 결과, 이미지 파일이 존재하지 않으면, 상기 스탠바이 가상화 서버에서 상기 특정 가상 머신을 생성하도록 제어하는 단계; 상기 스탠바이 가상화 서버에 생성된 상기 특정 가상 머신의 구동이 감지되면, 상기 스탠바이 가상화 서버에서 상기 특정 가상 머신이 삭제되도록 제어하는 단계를 더 포함하는 것을 특징으로 가상화 서버의 이중화를 위한 제어 방법을 제공한다.
또한, 본 발명은 상술한 과제의 또 다른 해결 수단으로서, 가상화 서버별 리소스 상태 정보, 비정상 동작하는 가상화 서버를 관리하는 비정상 리스트, 가상화 서버에서 구동되는 가상 머신 정보 중 하나 이상을 저장하는 저장부; 복수의 액티브 가상화 서버의 리소스상태를 주기적으로 조회하여 상기 리소스 상태 정보를 획득하는 모니터링부; 및 상기 모니터링부에서 기 설정된 횟수 이상 연속적으로 리소스 조회에 실패한 가상화 서버를 상기 비정상 리스트에 등록하고, 상기 비정상 리스트에 등록된 액티브 가상화 서버에서 구동되던 하나 이상의 가상 머신을 하나의 스탠바이 가상화 서버에서 생성하도록 제어하는 가상화 제어부를 포함하는 것을 특징으로 하는 가상화 제어 장치를 제공한다.
본 발명은 물리적 서버에 하나 이상의 논리적 가상 머신을 구축하여, CPU, 메모리, 네트워크, 스토리지 등의 자원을 공유하는 가상화 서버를 운용하는데 있어서, 하나의 가상화 서버만을 스탠바이 상태로 대기시키면서, 액티브 상태의 복수의 가상화 서버를 효율적으로 대체할 수 있도록 하며, 공유 스토리지를 이용하지 않고 절체되는 서버 간에 가상화 환경 정보(가상 머신, 가상 머신의 이미지 파일 등)를 신속하게 동기화할 수 있도록 하며, 그 결과 고가용성 가상화 시스템의 구축 비용을 줄이면서, 시스템의 효율성 및 안정성을 확보할 수 있게 된다.
도 1은 본 발명에 따른 이중화 구조의 가상화 시스템을 나타낸 블럭도이다.
도 2는 가상화 서버의 플랫폼 구조를 나타낸 블럭도이다.
도 3은 본 발명에 따른 가상화 시스템에 있어서의 가상화 제어 과정을 나타낸 흐름도이다.
도 4는 본 발명에 따른 가상화 시스템에 있어서, 가상 머신의 이미지 파일 등록 과정의 일 예를 나타낸 흐름도이다.
도 5는 본 발명에 따른 가상화 제어 장치의 상세 구성을 나타낸 블럭도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 발명에 따른 이중화 구조의 가상화 시스템을 나타낸 블럭도이다.
도 1을 참조하면, 본 발명에 따른 가상화 시스템은 복수의 가상화 서버(100_1 ~ 100_N+1)(여기서, N은 2 이상의 자연수 임)와, 가상화 제어 장치(200)로 이루어질 수 있다.
상기 복수의 가상화 서버(100_1 ~ 100_N+1)는 활성화 여부에 따라서 액티브 가상화 서버와 스탠바이 가상화 서버로 구분될 수 있다. 특히, 본 발명에 있어서, 복수의 가상화 서버(100_1~100_N+1) 중 N개는 액티브 가상화 서버로 실제 서비스를 수행중이며, 나머지 1개만이 스탠바이 가상화 서버로 복수의 액티브 가상화 서버 중 어느 하나에서 장애 발생 시 절체를 위해 대기한다. 이하에서, N개의 액티브 가상화 서버를 제1 내지 제N 가상화 서버(100_1 ~ 100_N)로, 하나의 스탠바이 가상화 서버를 제N+1 가상화 서버(100_N+1)로 가정하여 설명한다.
상기 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)는 서버 가상화 기술에 따라 구현된 것으로서, 도 2에 도시된 바와 같이, 단일의 물리 서버위에 구현된 하나 이상의 가상 머신(120)을 포함하며, 상기 하나 이상의 가상 머신(120)을 통해서 소정의 서비스를 수행할 수 있다. 구체적으로, 상기 하나 이상의 가상 머신(120)은, 물리 서버에 구비된 호스트 OS(Operating System)(110) 위에 가상화된 별도의 OS(Operating System)(121)와, 상기 별도의 OS(121)위에서 구동하는 어플리케이션(122)으로 이루어질 수 있다.
여기서, 가상 머신(120)에 포함된 어플리케이션(122)은 항상 동일한 설정(Configuration)이나 정보나 기능을 갖고 있는 것이 아니며, 액티브 상태인 제1 내지 제N 가상화 서버(100_1 ~ 100_N)의 가상 머신의 수도 서로 동일한 것은 아니다. 즉, 제1 내지 제N 가상화 서버(100_1 ~ 100_N) 내 가상 머신(120)의 수는 다를 수 있다. 또한, 각 가상 머신(120)에서 가상화된 OS(121) 및 어플리케이션(122)도 서로 다를 수 있다.
따라서, 상기 제1 내지 제N 가상화 서버(100_1 ~ 100_N)는 액티브 상태에서, 각각 하나 이상의 가상 머신(120)을 구동하여, 해당 가상 머신(120)을 통해 각각 소정의 서비스를 수행하며, 제N+1 가상화 서버(100_N+1)은 스탠바이 상태로 있다가, 후술하는 가상화 제어 장치(200)의 제어에 따라서 액티브 상태로 전환되어, 상기 제1 내지 제N 가상화 서버(100_1 ~ 100_N) 중 어느 한 가상화 서버에서 실행되던 하나 이상의 가상 머신을 백업하여, 해당 가상화 서버를 대신하여 동작하게 된다.
상기 가상화 제어 장치(200)는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대한 관리 및 제어를 수행하기 위한 구성이다. 구체적으로, 상기 가상화 제어 장치(200)는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)의 상태를 모니터링 하면서, 특정 가상화 서버의 장애를 검출하고, 장애가 검출된 가상화 서버와 제N+1 가상화 서버(100_N+1) 간의 동기화 및 절체를 제어한다.
이를 위하여, 상기 가상화 제어 장치(200)는, 모든 액티브 상태의 가상화 서버, 즉, 제1 내지 제N 가상화 서버(100_1 ~ 100_N)의 개수(즉, N), 제1 내지 제N 가상화 서버(100_1 ~ 100_N)에 구비된 가상 머신 정보를 관리한다. 여기서, 가상 머신 정보는, 제1 내지 제N 가상화 서버(100_1 ~ 100_N) 별로 구비된 가상 머신의 개수, 각 가상 머신들의 이미지 파일을 포함할 수 있다. 여기서, 가상 머신의 이미지 파일은, 해당 가상 머신이 할당 받은 가상 스토리지 자원이 기존의 물리적 서버에서의 하드디스크 이미지와 같은 형태의 비트 대 비트(bit-by-bit) 방식으로 생성되는 것으로서, 가상 머신에 탑재되는 OS를 비롯한 데이터베이스 자원, 기타 정보들이 모두 기록된다. 따라서, 가상 머신의 이미지 파일에는 가상화 환경에 대한 많은 정보가 포함되므로, 이러한 이미지 파일을 통해서 가상 머신을 생성할 수 있다.
그리고, 상기 가상화 제어 장치(200)는 액티브 상태의 가상화 서버, 예를 들어, 제1 내지 제N 가상화 서버(100_1 ~ 100_N) 중 어느 하나에서의 장애 발생을 감지하고, 장애가 발생한 가상화 서버에서 스탠바이 상태의 제N+1 가상화 서버(100_N+1)로 서버 절체가 이루어지도록 제어한다.
예를 들어, 제1 가상화 서버(100_1)에서 장애가 발생한 경우, 제1 가상화 서버(100_1) 내에서 구동중인 가상 머신들(가상 머신 #0, 가상 머신#1, 가상 머신#2, 가상 머신#3)이 제공하던 모든 서비스가 중단된다. 이때, 상기 가상화 제어 장치(200)는 제1 가상화 서버(100_1)와 교환한 상태 메시지에 따라서 제1 가상화 서버(100_1)의 장애 발생을 감지하고, 상기 제1 가상화 서버(100_1)에서 구동 중이던 가상 머신들(가상 머신 #0, 가상 머신#1, 가상 머신#2, 가상 머신#3)을 제N+1 가상화 서버(100_N+1)에서 생성하도록 제어하면, 상기 제N+1 가상화 서버(100_N+1)에 생성된 가상 머신들(가상 머신 #0, 가상 머신#1, 가상 머신#2, 가상 머신#3)이 구동을 시작하여 서비스를 다시 제공한다.
상술한 가상화 시스템의 동작을 도 3의 흐름도를 참조하여 더 구체적으로 설명하기로 한다.
도 3은 본 발명에 따른 가상화 시스템에 있어서의 가상화 제어 과정을 나타낸 흐름도이다.
참고로, 이하의 설명에서 가상화 제어 장치(200)에는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대한 정보 및 그 상태 정보(액티브, 스탠바이)가 등록되어 있는 것으로 가정한다.
상기 상태에서, 가상화 제어 장치(200)는, 주기적으로(예를 들어, 5초) 상기 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대하여 리소스 조회를 수행한다(S105 단계). 상기 리소스 조회는 액티브 상태의 가상화 서버뿐만 아니라 스탠바이 상태의 가상화 서버에 대해서도 함께 이루어진다.
여기서, 리소스는 CPU, Memory, Disk, Network 상태 등을 포함한다. 상기 리소스 조회는, 가상화 제어 장치(200)가 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)로 리소스 조회 메시지를 전송하고, 그의 응답 메시지를 통해 리소스 상태 정보를 수신하는 형태로 이루어질 수 있다. 상기 리소스 조회는 Nagios와 같은 컴퓨터 시스템 및 네트워크의 모니터링 솔루션을 이용하여 이루어질 수 있다.
아울러, 상기 리소스 조회는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대하여 동시에 시행될 수 도 있고, 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)가 가상화 제어 장치(200)에 연동된 시간 순서에 의하여 시간차를 가지고 순차적으로 시행될 수 있다.
상술한 바와 같이 주기적으로 리소스 조회(S105 단계)를 수행한 후에, 상기 가상화 제어 장치(200)는 리소스 조회를 실패한 가상화 서버 및 해당 가상화 서버에서의 리소스 조회 연속 실패 횟수를 관리한다.
그리고, 상기 가상화 제어 장치(200)는, 리소스 조회 연속 실패 횟수가 기 설정된 수(예를 들어, 2회) 이상인 경우(S110 단계), 해당하는 가상화 서버(예를 들어, 제1 가상화 서버(100-1))를 비정상 리스트에 등록한다(S115 단계). 상기 비정상 리스트는 가상화 제어 장치(200)가 관리하는 복수의 가상화 서버 중에서 장애가 발생한 가상화 서버들을 관리하기 위한 리스트로서, 리소스 조회가 기 설정된 횟수 이상 연속적으로 실패한 가상화 서버들의 식별 정보가 등록된다. 아울러, 상기 비정상 리스트는 리소스 조회 완료 시마다 갱신될 수 있다.
한편, 상기 S110 단계에서, 특정 가상화 서버에 대하여 리소스 조회가 기 설정된 수 미만으로 실패한 후, 그 다음에는 성공적으로 리소스 조회가 이루어진 경우, 즉, 리소스 조회가 기 설정된 수 이상 연속적으로 실패하지 않은 가상화 서버에 대해서는 정상으로 판단하여, S115 단계를 수행하지 않고, S120 단계로 넘어간다.
이어서, 상기 가상화 제어 장치(200)는 S110 단계 또는 S115 단계를 수행한 후, 상기 비정상 리스트의 길이가 1 인지를 확인한다(S120 단계). 여기서, 비정상 리스트의 길이가 1 이라는 것은, 비정상 리스트에 하나의 가상화 서버가 등록되어 있는 상태로서, 제1 내지 제N 가상화 서버(100_1 ~ 100_N) 중에서 어느 하나에 장애가 발생한 것을 의미할 수 있다.
본 발명에 있어서, 상기 가상화 제어 장치(200)는 비정상 리스트의 길이가 1인 경우, 상기 스탠바이 상태인 제N+1 가상화 서버(100_N+1)가 상기 비정상 리스트에 첫 번째로 등록된 가상화 서버, 예를 들어, 장애가 발생한 제1 가상화 서버(100_1)에 구동 중이던 하나 이상의 가상 머신(예를 들어, 가상 머신 #0, 가상 머신#1, 가상 머신#2, 가상 머신#3)을 구동 순서대로 생성하도록 제어한다(S125 단계). 이렇게 생성된 하나 이상의 가상 머신들(가상 머신 #0, 가상 머신#1, 가상 머신#2, 가상 머신#3)은 제N+1 가상화 서버(100_N+1)에서 구동을 시작하여 상기 제1 가상화 서버(100_1)를 통해 제공하던 서비스를 이어서 제공하게 된다.
이상의 과정을 통해서, 장애가 발생한 제1 가상화 서버(100_1)에서 제N+1 가상화 서버(100_N+1)로의 서버 절체가 이루어지게 되며, 제1 가상화 서버(100_1)에서 제공되던 서비스는 중단 없이 제N+1 가상화 서버(100_N+1)를 통해서 안정적으로 제공되게 된다.
한편, S120 단계에서, 비정상 리스트의 길이가 0 이거나 2 이상일 수 있다. 여기서, 비정상 리스트의 길이가 0이라는 것은, 모든 가상화 서버가 정상적으로 동작중인 것으로서, 서버 절체를 필요로 하지 않음을 의미한다.
그리고, 비정상 리스트의 길이가 2 이상이라는 것은, 네트워크 단절 등으로 복수의 가상화 서버와 정상적으로 통신이 불가능한 상태이거나, 제N+1 가상화 서버(100_N+1)로의 서버 절체를 수행하는 중에, 다른 가상화 서버에서도 장애가 발생하였음을 의미할 수 있다.
따라서, 가상화 제어 장치(200)는 비정상 리스트의 길이가 2 이상인 경우, 가상화 서버들의 상태를 보다 정확히 판단하기 위하여, 서버 절체를 수행하지 않고, 다시 S105 단계로 되돌아가 주기적인 리소스 조회를 통해 가상화 서버들의 상태를 다시 확인하도록 한다.
그리고, 비정상 리스트의 길이가 1로 변경될 때, 해당 비정상 리스트에 첫 번째로 등록된 제N 가상화 서버(100_N)에 대한 서버 절체 과정(S125 단계)이 이루어질 수 있다.
참고로, 가상화 제어 장치(200)에 의하여 제N+1 가상화 서버(100_N+1)가 장애가 발생한 제1 가상화 서버(100_1)를 대신하여 동작하게 되면, 가상화 제어 장치(200)는 서버 절체가 이루어진 하나 이상의 가상 머신(가상 머신#0, 가상 머신#1, 가상 머신#2, 가상 머신#3)이 동작하는 가상화 서버 정보를, 상기 제1 가상화 서버(100_1)에서 제N+1 가상화 서버(100_N+1)로 변경한다(S130 단계). 여기서, 가상화 서버 정보는, 해당 가상화 서버의 MAC 주소, IP 주소 중 하나 이상을 포함할 수 있다.
아울러, 제N+1 가상화 서버(100_N+1)로의 서버 절체 후에, 장애가 발생한 제1 가상화 서버(100_1)에 대해서는 별도의 점검이 이루어지며, 이를 통해 장애가 복구될 수 있다.
이렇게 제1 가상화 서버(100_1)의 장애가 복구되면, 상기 제1 가상화 서버(100_1)내에 구비된 동일한 하나 이상의 가상 머신(가상 머신#0, 가상 머신#1, 가상 머신#2, 가상 머신#3)도 다시 구동을 시작할 수 있으며, 이 경우, 동일한 하나 이상의 가상 머신(가상 머신#0, 가상 머신#1, 가상 머신#2, 가상 머신#3)이 서로 다른 두 개의 가상화 서버에서 동작하게 되는 현상이 발생할 수 있다.
이러한 문제를 해결하기 위하여, 가상화 제어 장치(200)는, 가상 머신 별로 구동되는 가상화 서버 정보를 관리하며, 특정 가상화 서버에서 구동중인 가상 머신이 다른 가상화 서버에서 구동을 시작하는 것을 감지하고, 상기 가상화 서버에서 동일 가상 머신의 구동이 중단되도록 상기 다른 가상화 서버로 가상 머신의 삭제를 지시할 수 있다. 마찬가지로, 장애가 복구된 제1 가상화 서버(100_1)가 정상 동작함에 따라서, 상기 제1 가상화 서버(100_1)에 존재하는 동일한 가상 머신이 구동되기 시작하는 경우, 가상화 제어 장치(200)가 이를 감지하여, 상기 제1 가상화 서버(100_1)로 해당 가상 머신(가상 머신#0, 가상 머신#1, 가상 머신#2, 가상 머신#3)의 삭제를 요청하여 동작을 중지시킬 수 있다.
이후, 장애가 복구된 제1 가상화 서버(100_1)가 스탠바이 상태로 대기하며, 액티브 상태인 제2 내지 제N+1 가상화 서버(100_2 ~ 100_N+1) 중 어느 하나에 장애가 발생 시, 장애가 발생한 가상화 서버를 대신하여 동작할 수 있도록 준비할 수 있다.
상술한 과정에 의하면, 본 발명은 N 개의 가상화 서버를 구동 시, 공용 스토리지를 사용하지 않고 스탠바이 상태인 하나의 가상화 서버만으로 N 개의 가상화 서버에 대한 이중화를 구현할 수 있으며, 그 결과 고가용성 가상화 시스템의 구축 비용을 절감시킬 수 있다.
한편, 상술한 바와 같이 동작하는 본 발명에 따른 가상화 시스템에 있어서, 별도의 공유 스토리지가 존재하지 않으므로, 스탠바이 상태의 여분의 가상화 서버(예를 들어, 제N+1 가상화 서버(100_N+1))는 액티브 상태인 N 개의 가상화 서버(예를 들어, 제1 내지 제N 가상화 서버(100_1 ~ 100_N))에서 구동되는 가상 머신들의 이미지 파일을 가지고 있지 않은 경우, S125 단계를 통해서 서버 절체가 이루어질 때, 해당하는 가상 머신의 이미지 파일이 존재하는 지를 확인하여 존재하지 않는 경우, 가상화 제어 장치(200)를 통해서 해당 가상 머신의 이미지 파일을 전송 받아 상기 이미지 파일을 이용하여 가상 머신을 생성하여야 한다.
이때, 제N+1 가상화 서버(100_N+1)가 가상화 제어 장치(200)로부터 가상 머신의 이미지 파일을 다운받는 시간만큼, 해당 가상 머신을 통해 제공되는 서비스의 단절 시간이 길어질 수 있다.
이러한 서비스 단절 시간을 최소화하기 위하여, 본 발명에 따른 가상화 시스템에 있어서, 스탠바이 상태의 가상화 서버, 예를 들어, 제N+1 가상화 서버(100_N+1)는 서버 절체가 이루어지기 전, 즉, 스탠바이 상태인 동안 액티브 상태의 가상화 서버, 예를 들어, 제1 내지 제N 가상화 서버(100_1 ~ 100_N)에서 구동하는 가상 머신의 이미지 파일을 미리 다운받아 저장할 수 있다.
도 4는 본 발명에 따른 가상화 시스템에 있어서, 서비스 단절 시간을 최소화하기 위한, 가상 머신의 이미지 파일 등록 과정을 나타낸 흐름도이다.
본 발명에 따른 가상화 제어 장치(200)는 도 3과 같은 가상화 제어 과정과는 별도로 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에서의 가상 머신 생성을 관리한다.
구체적으로, 도 4에 도시된 바와 같이, 가상화 제어 장치(200)는 운영자로부터 입력된 명령을 통해서, 특정 가상화 서버로 가상 머신의 생성을 요청할 수 있다(S205). 이하에서, 제1 가상화 서버(100_1)에 가상 머신#1의 생성이 요청된 것으로 가정한다.
가상화 제어 장치(200)는 상기 명령에 따라서 상기 제1 가상화 서버(100_1)로 가상 머신의 생성을 요청한다(S210 단계). 상기 요청에는 가상 머신의 식별 정보를 포함할 수 있다.
가상 머신의 생성 요청을 수신한 가상화 서버, 즉, 제1 가상화 서버(100_1)는 요청 받은 가상 머신을 생성하기 위하여, 먼저, 해당 가상 머신의 이미지 파일이 가상화 서버 내부에 존재하는지 확인한다(S215 단계).
확인 결과, 가상화 서버 내부에 해당 가상 머신의 이미지 파일이 존재하지 않는 경우, 제1 가상화 서버(100_1)는 가상화 제어 장치(200)에 요청하여 해당 가상 머신의 이미지 파일을 수신하여 저장한다(S220).
그리고, 상기 S215 단계에서 확인 결과, 제1 가상화 서버(100_1)에 생성 요청된 가상 머신의 이미지 파일이 존재하거나 S220 단계를 통해서 가상화 제어 장치(200)로부터 해당 가상 머신의 이미지 파일이 수신되면, 제1 가상화 서버(100_1)는 이를 바탕으로 하여 해당 가상 머신을 생성한다(S225). 이렇게 생성된 가상 머신은 제1 가상화 서버(100_1)에서 구동하여 서비스를 제공하게 된다. 아울러, 가상화 제어 장치(200)는 제1 가상화 서버(100_1)에서의 해당 가상 머신의 구동을 감지하여, 해당 가상 머신이 구동되는 가상화 서버 정보로서, 제1 가상화 서버(100_1)의 정보(MAC 주소, IP 주소 등)를 매핑하여 관리하게 된다.
한편, 가상화 제어 장치(200)는, 상술한 과정을 통해서 제1 가상화 서버(100_1)에 가상 머신의 생성이 완료되면, 다음으로, 스탠바이 상태인 가상화 서버, 예를 들어, 제N+1 가상화 서버(100_N+1)에 상기 제1 가상화 서버(100_1)에 생성한 가상 머신의 이미지 파일이 존재하는 지를 확인한다(S230). 이를 위해, 가상화 제어 장치(200)는, 모든 가상화 서버, 즉, 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대한 각 가상 머신의 이미지 파일의 전송 기록을 관리할 수 있으며, 이전의 전송 기록을 참조하여 해당 가상 머신의 이미지 파일이 제N+1 가상화 서버(100_N+1)에 존재하는 지 여부를 판단할 수 있다.
여기서, 스탠바이 상태의 제N+1 가상화 서버(100_N+1)에 해당 가상 머신의 이미지 파일을 전송한 적이 있는 경우, 제1 가상화 서버(100_1)에 대한 서버 절체 시, 해당 가상 머신의 이미지 파일 전송이 불필요하므로, 그대로 종료한다.
반대로, 판단 결과, 제N+1 가상화 서버(100_N+1)에 해당 가상 머신의 이미지 파일이 존재하지 않으면, 상기 가상화 제어 장치(200)는 서버 절체 준비를 위하여, 해당 가상 머신에 대한 생성 요청을 상기 제N+1 가상화 서버(100_N+1)로 요청한다(S235 단계).
이에 제N+1 가상화 서버(100_N+1)은 제1 가상화 서버(100_1)와 마찬가지로, 가상 머신의 생성을 위해, 해당 가상 머신의 이미지 파일이 자신에게 존재하는 지를 먼저 확인하는 과정을 수행하게 되며(S240), 이때, 해당 가상 머신의 이미지 파일이 자신에게 존재하는 지 않으므로, 가상화 제어 장치(200)에 요청하여 해당 가상 머신의 이미지 파일을 전송 받아 저장한다(S245).
그리고, 저장된 가상 머신의 이미지 파일을 이용하여 요청된 가상 머신을 생성한다(S250 단계). 만약, S240 단계에서 확인 결과, 해당 가상 머신의 이미지 파일이 존재하는 경우, 제N+1 가상화 서버(100_N+1)은 S245 단계를 수행하지 않고 바로 S250 단계를 수행할 수 도 있다.
이렇게 생성된 가상 머신은 제N+1 가상화 서버(100_N+1)에서 구동을 시작하게 된다.
이때, 상기 가상화 제어 장치(200)는 제N+1 가상화 서버(100_N+1)에서의 가상 머신의 구동을 감지하고, 동일한 가상 머신이 제1 가상화 서버(100_1)에서 이미 구동 중이므로, 상기 제N+1 가상화 서버(100_N+1)로 해당 가상 머신의 삭제를 요청하며(S255 단계), 이에 제N+1 가상화 서버(100_N+1)는 해당 가상 머신을 삭제한다(S260 단계).
상기 S260 단계에서 가상 머신은 삭제되나, 이전 S245 단계에서 전송 받아 저장한 해당 가상 머신의 이미지 파일은 그대로 제N+1 가상화 서버(100_N+1)에 존재하게 된다. 그리고, 상기 가상화 제어 장치(200)는 상기 스탠바이 상태인 제N+1 가상화 서버(100_N+1)에서 상기 가상 머신의 생성이 가능함을 기록하여 관리할 수 있다.따라서, 제1 가상화 서버(100_1)에 장애가 발생하여, 제N+1 가상화 서버(100_N+1)로 절체되는 경우, 제N+1 가상화 서버(100_N+1)에는 미리 해당 가상 머신의 이미지 파일을 저장함으로써, 바로 가상 머신을 생성할 수 있으며, 그 만큼 해당 가상 머신을 통해 제공되는 서비스의 단절을 최소화할 수 있게 된다.
참고로, 상술한 과정에서, 가상 머신의 생성 및 삭제는 OpenStack과 같이 공지된 기술을 기반으로 이루어질 수 있다.
도 5는 이상에서 설명한 본 발명에 따른 가상화 제어 방법을 수행하는 가상화 제어 장치(200)의 상세 구성을 나타낸 블럭도이다.
도 5를 참조하면, 본 발명에 따른 가상화 제어 장치(200)는, 모니터링부(210)와, 가상화 제어부(220)와, 저장부(230)를 포함하여 이루어질 수 있다.
상기 모니터링부(210)는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대한 상태 관리를 위한 구성이다. 구체적으로 상기 모니터링부(210)는 주기적으로 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)로 리소스 조회를 요청하고, 그 응답을 수신하여 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)의 리소스 상태 정보(CPU, Memory, Disk, Network 상태 정보)를 획득하여 관리한다. 아울러, 상기 모니터링부(210)는 리소스 조회가 실패한 가상화 서버에 대한 정보를 가상화 제어부(220)에 제공한다.
가상화 제어부(220)는 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)의 서버 가상화 및 그 동작을 제어하기 위한 구성이다. 상기 가상화 제어부(200)는 기본적으로, 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)의 식별 정보 및 상태 정보가 등록되어 있으며, 이를 기반으로 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)의 서버 가상화를 제어한다. 구체적으로, 가상화 제어부(200)는 운영자의 요청에 따라서, 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)에 대한 가상 머신의 생성 및 삭제를 제어하고, 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1) 중 어느 하나에서 구동되는 가상 머신에 대한 정보, 예를 들어, 가상 머신의 식별 정보, 가상 머신이 구동되는 가상화 서버 정보, 가상 머신의 이미지 파일 등을 관리할 수 있다.
아울러, 상기 가상화 제어부(220)는, 가상화 시스템의 안정적인 동작을 위하여, 상기 모니터링부(210)를 통해 확인된 제1 내지 제N+1 가상화 서버(100_1 ~ 100_N+1)별 리소스 조회의 실패 횟수를 카운팅하여, 기 설정된 수 이상이 연속적으로 리소스 조회가 실패한 경우, 해당 가상화 서버를 비정상 리스트에 감지 순서에 따라서 순차적으로 등록한다. 그리고, 상기 가상화 제어부(220)는 비정상 리스트의 길이를 체크하여, 비정상 리스트에 하나의 가상화 서버가 장애로 등록된 경우, 해당 가상화 서버에서 구동되던 가상 머신이 스탠바이 상태인 제N+1 가상화 서버(100_N+1)에서 생성되어 구동되도록 제어한다. 반면에, 비정상 리스트에 등록된 가상화 서버의 수가 기 설정된 수가 아닌 경우, 상기 모니터링부(210)의 주기적인 리소스 조회 결과를 참고하여 비정상 리스트를 갱신하면서, 비정상 리스트에 등록된 가상화 서버의 수가 기 설정된 수가 될 때까지 대기한다. 이에 따르면, 네트워크 단절로 인한 일시적인 리소스 조회 실패 혹은 서버 절체 중 다른 가상화 서버의 장애 발생 상황을 필터링하여, 스탠바이 상태인 하나의 가상화 서버만으로 액티브 상태인 복수의 가상화 서버에 대한 이중화를 효율적으로 수행할 수 있다.
또한, 상기 가상화 제어부(220)는, 각 가상 머신 별로 구동되는 가상화 서버 정보를 관리하면서, 특정 가상화 서버에서 구동중인 가상 머신의 구동이 다른 가상화 서버에서 감지되면, 상기 다른 가상화 서버에서 상기 가상 머신을 삭제하도록 제어한다. 아울러, 가상화 제어부(220)는 장애에서 복귀된 가상화 서버를 스탠바이 상태로 등록하여, 다른 액티브 상태의 가상화 서버 중 장애가 발생된 가상화 서버와의 절체를 위해 대기하도록 할 수 있다.
저장부(230)는 가상화 제어 장치(200)의 구동을 위해 필요한 정보를 저장하기 위한 구성으로서, 구체적으로, 복수의 가상화 서버에 대한 정보(식별 정보 및 액티브/스탠바이 정보), 복수의 가상화 서버별 리소스 상태 정보, 복수의 가상화 서버에서 구동하는 하나 이상의 가상 머신 정보(가상 머신 식별정보, 구동되는 가상화 서버 정보, 가상 머신의 이미지 파일)를 저장할 수 있다. 이때, 상기 가상 머신의 이미지 파일은 압축을 통해 저장될 수 있다.
상기 저장부(230)에 저장되는 정보들은 가상화 제어부(220)에 의해 조회되어 이용되거나, 가상화 제어부(220)의 제어에 따라서 갱신(저장, 삭제, 변경 등)될 수 있다.
본 발명에 따른 가상화 제어 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명에 따른 가상화 제어 장치(200)는 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
본 명세서에서 "시스템", "제어 장치" 라는 용어는 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.
본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
본 명세서에서 설명한 가상화 시스템의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 명세서에서 설명한 주제의 특정한 실시형태를 설명하였다. 기타의 실시형태들은 이하의 청구항의 범위 내에 속한다. 예컨대, 청구항에서 인용된 동작들은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 성취할 수 있다. 일 예로서, 첨부도면에 도시한 프로세스는 바람직한 결과를 얻기 위하여 반드시 그 특정한 도시된 순서나 순차적인 순서를 요구하지 않는다. 특정한 구현예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
본 발명은 물리적 서버에 하나 이상의 논리적 가상 머신을 구축하여, CPU, 메모리, 네트워크, 스토리지 등의 자원을 공유하는 가상화 서버를 운용하는데 있어서, 가상화 제어 장치를 통해서 액티브 상태의 복수의 가상화 서버를 하나의 스탠바이 상태의 가상화 서버를 통해 효율적으로 대체할 수 있도록 하며, 공유 스토리지를 이용하지 않고 절체되는 서버 간에 가상화 환경 정보(가상 머신, 가상 머신의 이미지 파일 등)를 신속하게 동기화할 수 있도록 하며, 그 결과 고가용성 가상화 시스템의 구축 비용을 줄이면서, 시스템의 효율성 및 안정성을 확보할 수 있게 된다.
100_1 ~ 100_N+1: 제1 내지 제N+1 가상화 서버
200: 가상화 제어 장치
210: 모니터링부
220: 가상화 제어부
230: 저장부

Claims (11)

  1. 가상화 제어 장치가,
    액티브 상태인 복수의 액티브 가상화 서버의 리소스 상태를 주기적으로 조회하는 단계;
    상기 복수의 액티브 가상화 서버 중에서 기 설정된 횟수 이상 연속적으로 리소스 조회에 실패한 가상화 서버를 비정상 리스트에 등록하는 단계;
    상기 비정상 리스트에 등록된 가상화 서버에 장애가 발생한 것으로 판단하여, 스탠바이 상태인 하나의 스탠바이 가상화 서버에서 상기 비정상 리스트에 등록된 가상화 서버에서 구동되던 하나 이상의 가상 머신을 생성하도록 제어하는 단계; 및
    상기 하나 이상의 가상 머신이 구동하는 가상화 서버 정보를 상기 스탠바이 가상화 서버로 변경하는 단계를 포함하는 것을 특징으로 하는 가상화 서버의 이중화를 위한 제어 방법.
  2. 제1항에 있어서,
    상기 비정상 리스트에 등록된 가상화 서버의 수를 확인하는 단계를 더 포함하고,
    상기 하나 이상의 가상 머신을 생성하도록 제어하는 단계는, 상기 비정상 리스트에 등록된 가상화 서버의 수가 하나인 경우에, 상기 스탠바이 가상화 서버에 상기 비정상 리스트에 등록된 가상화 서버에서 구동 중이던 하나 이상의 가상 머신을 생성하도록 제어하는 것을 특징으로 하는 가상화 서버의 이중화를 위한 제어 방법.
  3. 제1항에 있어서,
    상기 복수의 액티브 가상화 서버 중 어느 하나에서 가상 머신이 생성되면, 상기 가상화 제어 장치가 상기 스탠바이 가상화 서버에 상기 생성된 가상 머신의 이미지 파일이 존재하는 지를 확인하는 단계;
    확인 결과, 생성된 상기 가상 머신의 이미지 파일이 존재하지 않으면, 상기 스탠바이 가상화 서버에서 상기 가상 머신을 생성하도록 제어하는 단계;
    상기 스탠바이 가상화 서버에서 상기 가상 머신이 생성된 후, 해당 가상 머신의 구동이 감지되면, 상기 가상 머신을 삭제하도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 가상화 서버의 이중화를 위한 제어 방법.
  4. 제1항 또는 제3항에 있어서, 상기 가상 머신을 생성하도록 제어하는 단계는
    상기 가상화 제어 장치가 상기 스탠바이 가상화 서버로 가상 머신 생성을 요청하는 단계인 것을 특징으로 하는 가상화 서버의 이중화를 위한 제어 방법.
  5. 제4항에 있어서, 상기 가상 머신을 생성하도록 제어하는 단계는,
    상기 가상화 제어 장치가 상기 스탠바이 가상화 서버로부터 요청에 따라서, 해당 가상 머신의 이미지 파일을 전송하는 단계를 더 포함하는 것을 특징으로 하는 가상화 서버의 이중화를 위한 제어 방법.
  6. 가상화 제어 장치가,
    액티브 가상화 서버에서 특정 가상 머신을 생성하도록 제어하는 단계;
    상기 액티브 가상화 서버에서 특정 가상 머신이 생성되면, 스탠바이 가상화 서버에 상기 특정 가상 머신의 이미지 파일이 존재하는 지를 확인하는 단계;
    확인 결과, 이미지 파일이 존재하지 않으면, 상기 스탠바이 가상화 서버에서 상기 특정 가상 머신을 생성하도록 제어하는 단계;
    상기 스탠바이 가상화 서버에 생성된 상기 특정 가상 머신의 구동이 감지되면, 상기 스탠바이 가상화 서버에서 상기 특정 가상 머신이 삭제되도록 제어하는 단계를 더 포함하는 것을 특징으로 가상화 서버의 이중화를 위한 제어 방법.
  7. 가상화 서버별 리소스 상태 정보, 비정상 동작하는 가상화 서버를 관리하는 비정상 리스트, 가상화 서버에서 구동되는 가상 머신 정보 중 하나 이상을 저장하는 저장부;
    복수의 액티브 가상화 서버의 리소스상태를 주기적으로 조회하여 상기 리소스 상태 정보를 획득하는 모니터링부; 및
    상기 모니터링부에서 기 설정된 횟수 이상 연속적으로 리소스 조회에 실패한 가상화 서버를 상기 비정상 리스트에 등록하고, 상기 비정상 리스트에 등록된 액티브 가상화 서버에서 구동되던 하나 이상의 가상 머신을 하나의 스탠바이 가상화 서버에서 생성하도록 제어하는 가상화 제어부;
    를 포함하는 것을 특징으로 하는 가상화 제어 장치.
  8. 제7항에 있어서,
    상기 가상 머신 정보는, 가상 머신 별로 구동하는 가상화 서버 정보, 가상 머신의 이미지 파일 중 하나 이상을 포함하는 것을 특징으로 하는 가상화 제어 장치.
  9. 제8항에 있어서, 상기 가상화 제어부는
    상기 비정상 리스트에 등록된 가상화 서버의 수를 더 확인하여, 상기 비정상 리스트에 등록된 가상화 서버의 수가 하나인 경우, 상기 상기 비정상 리스트에 등록된 가상화 서버에 구동 중이던 하나 이상의 가상 머신을 상기 스탠바이 가상화 서버에서 생성하도록 제어하는 것을 특징으로 하는 가상화 제어 장치.
  10. 제7항에 있어서, 상기 가상화 제어부는
    상기 복수의 액티브 가상화 서버 중 어느 하나에서 가상 머신이 생성되면, 상기 가상 머신을 상기 스탠바이 가상화 서버에서도 생성시킨 후, 삭제하도록 제어함으로써, 상기 스탠바이 가상화 서버에 상기 가상 머신의 이미지 파일을 저장하는 것을 특징으로 하는 가상화 제어 장치.
  11. 제7항에 있어서, 상기 가상화 제어부는
    상기 스탠바이 가상화 서버로 상기 하나 이상의 가상 머신의 생성을 요청한 후, 상기 스탠바이 가상화 서버로부터 요청에 따라서, 상기 하나 이상의 가상 머신의 이미지 파일을 전송하는 것을 특징으로 하는 가상화 제어 장치.
KR1020140035130A 2014-03-26 2014-03-26 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치 KR102210408B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140035130A KR102210408B1 (ko) 2014-03-26 2014-03-26 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140035130A KR102210408B1 (ko) 2014-03-26 2014-03-26 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치

Publications (2)

Publication Number Publication Date
KR20150111608A true KR20150111608A (ko) 2015-10-06
KR102210408B1 KR102210408B1 (ko) 2021-01-29

Family

ID=54344987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140035130A KR102210408B1 (ko) 2014-03-26 2014-03-26 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치

Country Status (1)

Country Link
KR (1) KR102210408B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160028247A (ko) * 2014-09-03 2016-03-11 주식회사 케이티 클라우드 서버 관리 방법, 이를 수행하는 클라우드 서버 관리 장치 및 클라우드 서비스 관리 시스템
KR101713034B1 (ko) 2016-05-30 2017-03-09 주식회사 씨엠테스 비가시성 가상볼륨을 이용한 서버 이중화 시스템
KR20180126868A (ko) 2017-05-18 2018-11-28 에스케이텔레콤 주식회사 이중화 제공 방법
KR20200135138A (ko) * 2019-05-24 2020-12-02 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체
KR20210158653A (ko) 2020-06-24 2021-12-31 주식회사 버블트리 현실세계 데이터의 가상화시스템 및 방법
KR20230045324A (ko) * 2021-09-28 2023-04-04 한국수력원자력 주식회사 원자력 발전소의 mmis 가상화 운영 시스템 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030005531A (ko) * 2001-07-09 2003-01-23 한국전자통신연구원 이중화된 시스템에 이용되는 스탠바이 로딩 방법 및 그방법을 실현하는 프로그램이 수록된 컴퓨터 판독가능기록매체
KR20080016438A (ko) * 2006-08-18 2008-02-21 후지쯔 가부시끼가이샤 데이터 처리 장치, 모드 관리 장치 및 모드 관리 방법
KR100980599B1 (ko) * 2010-01-19 2010-09-07 코아인텍주식회사 입출력 공유장치를 이용한 클라우드 서비스 시스템
US20120030335A1 (en) * 2009-04-23 2012-02-02 Nec Corporation Rejuvenation processing device, rejuvenation processing system, computer program, and data processing method
KR101250881B1 (ko) 2011-04-07 2013-04-04 주식회사 넥스알 클라우드 컴퓨팅의 블럭 스토리지 서비스의 데이터 이중화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030005531A (ko) * 2001-07-09 2003-01-23 한국전자통신연구원 이중화된 시스템에 이용되는 스탠바이 로딩 방법 및 그방법을 실현하는 프로그램이 수록된 컴퓨터 판독가능기록매체
KR20080016438A (ko) * 2006-08-18 2008-02-21 후지쯔 가부시끼가이샤 데이터 처리 장치, 모드 관리 장치 및 모드 관리 방법
US20120030335A1 (en) * 2009-04-23 2012-02-02 Nec Corporation Rejuvenation processing device, rejuvenation processing system, computer program, and data processing method
KR100980599B1 (ko) * 2010-01-19 2010-09-07 코아인텍주식회사 입출력 공유장치를 이용한 클라우드 서비스 시스템
KR101250881B1 (ko) 2011-04-07 2013-04-04 주식회사 넥스알 클라우드 컴퓨팅의 블럭 스토리지 서비스의 데이터 이중화 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160028247A (ko) * 2014-09-03 2016-03-11 주식회사 케이티 클라우드 서버 관리 방법, 이를 수행하는 클라우드 서버 관리 장치 및 클라우드 서비스 관리 시스템
KR101713034B1 (ko) 2016-05-30 2017-03-09 주식회사 씨엠테스 비가시성 가상볼륨을 이용한 서버 이중화 시스템
KR20180126868A (ko) 2017-05-18 2018-11-28 에스케이텔레콤 주식회사 이중화 제공 방법
KR20200135138A (ko) * 2019-05-24 2020-12-02 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체
KR20210158653A (ko) 2020-06-24 2021-12-31 주식회사 버블트리 현실세계 데이터의 가상화시스템 및 방법
KR20230045324A (ko) * 2021-09-28 2023-04-04 한국수력원자력 주식회사 원자력 발전소의 mmis 가상화 운영 시스템 및 그의 동작 방법

Also Published As

Publication number Publication date
KR102210408B1 (ko) 2021-01-29

Similar Documents

Publication Publication Date Title
US9122653B2 (en) Migrating virtual machines across sites
US9032248B1 (en) Memory write tracking for virtual machines
US9727429B1 (en) Method and system for immediate recovery of replicated virtual machines
US10353640B2 (en) Seamless data migration in a clustered environment
US8856592B2 (en) Mechanism to provide assured recovery for distributed application
US8560628B2 (en) Supporting autonomous live partition mobility during a cluster split-brained condition
KR102210408B1 (ko) 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치
CN103618627B (zh) 一种管理虚拟机的方法、装置及系统
US10387279B2 (en) System and method for providing failovers for a cloud-based computing environment
US9052833B2 (en) Protection of former primary volumes in a synchronous replication relationship
US20120066678A1 (en) Cluster-aware virtual input/output server
CN113032085A (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
US20120265987A1 (en) Communication between key manager and storage subsystem kernel via management console
US8819481B2 (en) Managing storage providers in a clustered appliance environment
JP2015060375A (ja) クラスタシステム、クラスタ制御方法及びクラスタ制御プログラム
US9400605B2 (en) Efficient management of a virtual tape library cluster
US9465654B2 (en) Intelligent failover or shutdown of an application using input/output shipping in response to loss of connectivity to data storage in a cluster
US8909816B2 (en) Implementing a logical unit reset command in a distributed storage system
KR101618992B1 (ko) 가상 데스크탑 서비스 제공 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체와, 하드웨어와 결합되어 그 제어방법을 실행시키기 위하여 매체에 저장된 애플리케이션
US10642788B1 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
WO2014155654A1 (ja) 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法
US10503678B1 (en) Fabric management system and method
US10235317B1 (en) Fabric management system and method
US11704071B1 (en) Delegating low priority tasks to a passive storage controller
US11977458B2 (en) System and method for storage awareness service failover

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant