KR101551706B1 - 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체 - Google Patents

고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체 Download PDF

Info

Publication number
KR101551706B1
KR101551706B1 KR1020120121471A KR20120121471A KR101551706B1 KR 101551706 B1 KR101551706 B1 KR 101551706B1 KR 1020120121471 A KR1020120121471 A KR 1020120121471A KR 20120121471 A KR20120121471 A KR 20120121471A KR 101551706 B1 KR101551706 B1 KR 101551706B1
Authority
KR
South Korea
Prior art keywords
virtual
machines
physical
virtual machine
virtual machines
Prior art date
Application number
KR1020120121471A
Other languages
English (en)
Other versions
KR20140055112A (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 KR1020120121471A priority Critical patent/KR101551706B1/ko
Publication of KR20140055112A publication Critical patent/KR20140055112A/ko
Application granted granted Critical
Publication of KR101551706B1 publication Critical patent/KR101551706B1/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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

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

Abstract

고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체가 제공된다. 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 시스템은, 클라우드 환경을 구성하는 복수의 물리머신, 상기 복수의 물리머신 내에 생성되고, 동일 데이터를 소정 개수만큼 중복하여 저장하는 복수의 가상머신, 상기 복수의 가상머신의 리소스를 관리하며, 외부의 요청에 의해 상기 복수의 가상머신을 생성하는 가상 리소스 관리 장치, 및 상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 중복 노드 검증 장치를 포함하되, 상기 중복 노드 검증 장치의 판단 결과에 대응하여 상기 가상 리소스 관리 장치가, 상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 서로 다른 물리머신에 분산 배치되도록, 상기 복수의 가상머신의 위치를 변경한다.

Description

고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체{SYSTEM AND METHOD FOR CONFIGURING VIRTUAL MACHINES HAVING HIGH AVAILABILITY IN CLOUD ENVIRONMENT, RECORDING MEDIUM RECORDING THE PROGRAM THEREOF}
본 발명은 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체에 관한 것으로, 보다 자세하게는 동일 데이터가 복수의 물리머신에 분산 배치되도록 하여 물리머신에 오류가 발생하더라도 고가용성을 보장할 수 있도록 하는 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체에 관한 것이다.
하이퍼바이저 기술이 제공되면서 하나의 물리적인 서버에 복수의 가상 머신이 생성되어 복수의 가상 서버를 제공할 수 있게 되었다. 이러한 기술은 예를 들어 클라우드 컴퓨팅 분야에 적용될 수 있다. 예를 들어 클라우드 컴퓨팅 서비스 사용자는 서비스 운영자가 제공하는 물리적인 서버 장치에 자신의 필요에 맞는 리소스를 할당 받은 가상 머신을 설립함으로써 서버 운영 비용을 절감할 수 있다.
하이퍼바이저(hypervisor) 기반의 가상 머신 제공 기술을 제공하는 서버 시스템에서 하이퍼바이저는 하드웨어(H/W)를 가상화한 리소스를 관리하며, 리소스 중 일부를 이용하여 가상 머신을 프로비저닝한다. 가상 머신을 프로비저닝 하는 것은 가상 머신 인스턴스에 가상 머신에 할당된 리소스를 연결해주는 것을 의미할 수 있다.
이와 같이 생성된 가상 머신 인스턴스에서 대용량 데이터(Big Data)를 분석하기 위해서는 서버 및 네트워크와 같은 시스템 인프라 자원을 구입하고 복잡한 분산 컴퓨팅 시스템을 구성해서 운영해야 한다.
클라우드 컴퓨팅 기술의 발전과 프라이빗(private) 클라우드 기술이 보편화 됨에 따라 기존 물리 머신 기반이 아닌 가상 머신 기반의 인프라 활용이 점차 늘어나는 추세이며, 단일 분석 작업을 위해 다수의 머신을 필요로 하는 대용량 데이터(Big Data) 시스템의 경우, 전체 시스템의 관리 효율과 재사용성, 고가용성 확보를 위해 프라이빗 클라우드 인프라 시스템을 활용하는 추세이다.
종래의 가상머신을 활용한 시스템의 경우 가상머신의 오동작 상황을 대비해 가상머신의 복제머신을 생성 및 이를 유지하게 된다. 이와 같은 가상머신의 복제 또는 가상머신 내의 데이터 복제는 가상머신의 전체 시스템 스냅샷으로 시스템이 동작하는데 필요한 전반적인 데이터와, 시스템이 동작하면서 산출해낸 각종 비즈니스 데이터를 포함할 수 있다.
기존의 가상머신 하이퍼바이징 및 프로비저닝 기술을 활용할 경우 이러한 클라우드 환경에 존재하는 특정 가상머신을 어느 물리머신 상에 존재시킬지 정책적으로 제어할 수 없다. 만약 시스템 다운을 고려한 복제 가상머신이 원본 가상머신과 같은 물리머신에 존재하는 경우, 단일 물리머신의 다운은 전체 가상 시스템의 다운 및 데이터의 손실을 의미하게 된다. 이러한 데이터 손실은 원본과 복제된 데이터의 동반손실을 의미하므로 다시 복구될 수 없으며, 심각한 비즈니스 가치 손실을 의미할 수 있다.
즉, 예시적인 도 1에 도시된 바와 같이, 클라우드 시스템 내에 복수의 물리머신(PM_1, PM_2, PM_3)이 존재할 수 있으며, 이들 물리머신(PM_1, PM_2, PM_3)은 클라우드 시스템을 제공하는 서버의 역할을 수행할 수 있다. 이들 물리머신(PM_1, PM_2, PM_3)에는 각각 하나 이상의 가상머신(VM_1 내지 VM_6)이 생성 및 관리될 수 있다.
도 2 및 도 3을 참조하면, 앞서 설명한 바와 같이 가상머신의 유실을 방지하기 위해, 동일한 가상머신 인스턴스를 복수로 생성하여 물리머신 내에 배치할 수 있다. 이때, 제1 내지 제3 가상머신(220)이 서로 동일한 복제본이거나 서로 동일한 데이터를 포함한다고 가정하면, 도시된 바와 같이 종래의 가상머신 하이퍼바이징 및 프로비저닝 기술에 따르면 특정 가상머신을 어느 물리머신 상에 존재시킬지 정책적으로 제어할 수 없으며, 도 2에 도시된 바와 같이 복제본인 제1 내지 제3 가상머신(220)이 동일한 물리머신(PM_1)에 배치될 수도 있다.
이러한 경우, 도 3에 도시된 바와 같이 물리머신(PM_1)이 오작동을 일으키거나 정전 또는 사고 등으로 정상 작동이 불가능한 경우에는, 물리머신(PM_1) 위에 생성된 모든 가상머신(220)이 유실될 수 있다.
특히, 유실된 제1 내지 제3 가상머신(220)은 가용성 확보를 위해 생성된 복제본으로서, 이와 같이 동일 물리머신에 배치될 경우 가상머신의 복제본을 생성하더라도 가용성을 확보할 수 없는 상황이 발생할 수 있다.
위와 같은 문제점으로부터 안출된 본 발명이 해결하고자 하는 기술적 과제는, 가상머신의 고가용성을 확보할 수 있는 시스템 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 동일한 복제 가상머신의 물리머신 상의 위치를 검증하고 중복된 경우 이를 분산시키는 시스템 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 시스템은, 클라우드 환경을 구성하는 복수의 물리머신, 상기 복수의 물리머신 내에 생성되고, 동일 데이터를 소정 개수만큼 중복하여 저장하는 복수의 가상머신, 상기 복수의 가상머신의 리소스를 관리하며, 외부의 요청에 의해 상기 복수의 가상머신을 생성하는 가상 리소스 관리 장치, 및 상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 중복 노드 검증 장치를 포함하되, 상기 중복 노드 검증 장치의 판단 결과에 대응하여 상기 가상 리소스 관리 장치가, 상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 서로 다른 물리머신에 분산 배치되도록, 상기 복수의 가상머신의 위치를 변경한다.
상기 언급된 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 방법은, 가상머신 생성 요청을 수신하는 단계, 상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성하는 단계, 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성되었는지 확인하는 단계, 및 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성된 경우, 상기 복수의 가상머신이 상기 복수의 물리머신 중 서로 다른 물리머신에 배치되도록 상기 복수의 가상머신을 이전하는 단계를 포함한다.
상기 언급된 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 고가용성 가상머신 구성 방법은, 가상머신 생성 요청을 수신하는 단계, 상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 복수의 가상머신을 생성하는 단계, 상기 복수의 가상머신에 동일 데이터를 소정 개수만큼 중복하여 저장하는 단계, 상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 단계, 및 상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성된 경우, 상기 동일 데이터가 상기 복수의 물리머신 중 서로 다른 물리머신에 저장되도록 상기 동일 데이터를 이전하는 단계를 포함한다.
상기와 같은 본 발명에 따르면, 클라우드 환경 내의 물리머신 상의 복제 가상머신이 분산 배치되도록 제어함으로써, 물리머신 오류 시에도 고가용성을 확보할 수 있다.
또한, 동일한 복제 가상머신의 물리머신 상의 위치를 검증하고 중복된 경우 이를 분산시킬 수 있다.
또한, 가상머신으로 구성된 클러스터 시스템의 경우 서비스 종류와 사용자 수에 따른 부하량 예를 들어, CPU 사용량, 네트워크 트래픽의 양 또는 디스크 I/O 부하 등을 모니터링 하여, 고가용성을 그대로 유지하면서 서비스와 물리머신의 성능 효율을 고려한 가상머신 재배치를 시도할 수 있으며, 이는 전체 컴퓨팅 자원의 활용 효율을 향상시키고, 운영되는 서비스의 품질을 지속적으로 관리, 확장할 수 있도록 한다.
뿐만 아니라, 클라우드 환경을 기반으로 가상머신을 활용한 클러스터링 시스템을 구축할 경우, 구축할 수 있는 시스템의 종류와 기능을 확장할 수 있으며, 기존의 물리머신 기반의 클러스터링 시스템을 별도의 수정 없이 사용할 수 있다.
도 1 내지 도 3은 일반적인 물리머신 상의 가상머신 배치에 따른 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 시스템을 나타내는 도면이다.
도 5 내지 도 9는 도 4의 시스템에 의한 가상머신의 배치 검증 과정을 설명하기 위한 도면이다.
도 10 내지 도 12는 도 4의 시스템에 의한 가상머신의 재배치 과정을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 방법을 나타내는 도면이다.
도 14는 본 발명의 다른 실시예에 따른 고가용성 가상머신 구성 방법을 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 실시예들에 의하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
본 명세서에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
이하, 도면을 참조하여 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 시스템의 구성에 대해 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 시스템을 나타내는 도면이다.
본 실시예에 따른 고가용성 가상머신 구성 시스템은 클라우드(200) 시스템과 클라우드(200) 시스템에 접속하는 클라이언트 장치(미도시)로 구성될 수 있으며, 클라우드(200) 시스템은 복수의 물리머신(210_1, 210_2; 이하 210)과 복수의 가상머신(220_1, 220_2, 220_3, 220_4; 이하 220)을 포함할 수 있다. 또한, 클라우드(200) 시스템은 가상 리소스 관리 장치(110) 및 중복 노드 검증 장치(120)의 제어 및/또는 관리를 받을 수 있다.
클라이언트 장치는 예를 들어 유선 또는 무선통신모듈을 포함하는 장치로서, 클라우드(200) 시스템에 접속하여 소정의 작업을 수행하는 장치일 수 있다.
클라이언트 장치의 종류에는 제한이 없으며, 예를 들어 일반적인 데스크탑 PC이거나 휴대가 가능하고 무선 인터넷 또는 휴대 인터넷을 통하여 클라우드(200) 시스템을 제공하는 클라우드 서버와 통신 가능한 셀룰러폰(Cellular phone), 피씨에스폰(PCS phone: Personal Communications Services phone), 동기식/비동기식 IMT-2000(International Mobile Telecommunication-2000) 등 이동 단말을 포함하고, 이외에도 팜 PC(Palm Personal Computer), 개인용 디지털 보조기(PDA: Personal Digital Assistant), 스마트폰(Smart phone), 왑폰(WAP phone: Wireless application protocol phone), 모바일 게임기(mobile play-station)장치 또는, 랩탑 컴퓨터, 태블릿 컴퓨터, 네비게이션 시스템 등 일 수 있다.
클라이언트 장치와 클라우드(200) 시스템을 연결하는 네트워크는 유선 또는 무선 인터넷일 수도 있고, 이외에도 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어망일 수도 있고, TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol) 등을 제공하는 개방형 컴퓨터 네트워크 구조를 의미할 수 있다.
클라우드(200) 시스템은 복수의 클라우드 서비스를 제공하기 위한 물리적인 서버의 집합을 의미할 수 있으며, 물리적인 서버 상에서 구현된 복수의 가상머신이 제공되는 환경을 의미할 수도 있다.
클라우드(200) 상에 존재하는 복수의 물리머신(210) 상에 복수의 가상머신(220)이 생성될 수 있으며, 각각의 가상머신(220)은 스토리지 서비스 또는 데이터 분석 서비스 등을 제공하기 위한 소정의 스토리지 영역 및 스토리지를 관리하기 위한 스토리지 노드, 분석노드 등을 포함할 수 있다.
클라이언트 장치를 통해 복수의 가상머신(210)에 접속하여 스토리지 서비스 또는 데이터 분석 서비스와 같은 클라우드 서비스를 제공받는 사용자가 하나의 가상머신을 사용하는 것으로 인식되도록, 복수의 가상머신(220)은 클러스터링되어 소정의 가상 클러스터를 구성할 수 있다.
복수의 가상머신(220) 상의 스토리지는 기존의 물리적인 저장매체와 다를 수 있으며, 가상머신이 생성되는 물리머신에 구비된 하이퍼바이저(미도시)에 의해 가상으로 할당된 저장영역일 수 있으며, 하이퍼바이저에 의해 생성 또는 삭제될 수 있다. 가상머신(220)의 스토리지는 가상의 저장공간일 수 있으며, 사용자가 클라이언트 장치를 통해 데이터를 전송하게 되면, 이를 보관하는 역할을 수행할 수 있다. 예를 들어, 복수의 가상머신(220)은 데이터베이스 서버로 활용될 수도 있다. 사용자가 스토리지에 저장한 데이터는 스토리지가 배치된 가상머신의 리소스 상에 저장될 수 있으며, 물리머신의 리소스는 하이퍼바이저에 의해 변환되어 가상머신의 리소스 형태로 제공될 수 있다.
가상머신 내의 스토리지 노드는 스토리지로 저장되는 데이터를 관리하며, 클라이언트 장치로부터 전송된 데이터를 수신하여 이를 가상머신(220)의 스토리지에 기록한다. 스토리지 노드는 가상머신(220) 내에 포함될 수 있으며, 스토리지가 구비된 가상머신(220)과 동일한 가상머신(220)에 배치될 수 있으나, 이에 한정되는 것은 아니며, 스토리지 노드는 스토리지가 구비된 가상머신(220)과 다른 가상머신(220)에 배치될 수도 있다.
또한, 하나의 스토리지 노드는 하나의 스토리지에 대한 데이터 입출력 및 변경을 관리할 수 있으나, 복수의 스토리지를 동시에 관리할 수도 있다. 예를 들어, 하나의 스토리지 노드에서 수신된 데이터는 복수의 스토리지에 분산하여 저장될 수도 있다.
가상 리소스 관리 장치(110)는, 클라우드(200) 시스템 내에 생성된 복수의 가상머신(220)의 리소스를 관리할 수 있다. 가상 리소스 관리 장치(110)는 하이퍼바이저의 기능을 수행할 수 있으며, 하이퍼바이저와 별개로 생성되어 클라우드(200) 전체의 리소스를 모니터링하고, 각 가상머신 별로 필요한 리소스를 관리 및 할당할 수 있다.
가상머신을 이용하여 특정 데이터 분석 솔루션을 활용하기 위해서는 가상머신을 생성하기 위한 솔루션 실행 환경을 구축할 수 있다. 하둡(Hadoop)과 같은 대용량 데이터 처리 솔루션의 경우 익숙하지 않은 사용자가 데이터 분석을 하고자 할 때, 설치 및 구성에 많은 시간과 노력을 필요로 하기 때문에, 가상 리소스 관리 장치(Virtual Resource Manager; VRM)(110)는 이를 공개/비공개 클라우드(200) 시스템 기반에서 자동으로 가상머신을 생성 및 이들의 설정을 제공할 수 있다. 사용자는 원하는 분석 서비스가 필요할 때 서비스 레이어를 통해 분석 작업 요청을 할 수 있으며, 분석 작업 요청에 필요한 클러스터 생성 및 구축 작업을 가상 리소스 관리 장치(110)가 대행할 수 있다. 뿐만 아니라 특정 분석 작업의 최적 효율을 위한 환경설정(Configuration) 작업도 기존에 활용된 환경설정 정보를 참조하여 선택할 수 있다.
몇몇 다른 실시예에서 가상 리소스 관리 장치(110)는 클라우드 자원을 관리하는 상용 또는 비상용 솔루션일 수 있으며, 예를 들어 Openstack Nova, Citrix CloudStack, VMware Vcloud 등일 수 있으나, 이에 한정되는 것은 아니다.
가상 리소스 관리 장치(110)는, 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소, 설치된 운영체제, SSH 보안키 목록, VM ID, 생성시간, 마지막 변경시간 중 하나 이상에 대한 관리정보를 관리할 수 있으며, 또한, 가상 리소스 관리 장치(110)는 복수의 가상머신(220)의 복수의 물리머신(210) 상의 위치에 대한 배치정보(Coordination Information)를 관리할 수 있다. 중복 노드 검증 장치(120)는, 가상 리소스 관리 장치(110)로부터 배치정보를 수신할 수 있으며, 배치정보 중에서 동일 데이터를 가지는 상기 복수의 가상머신을 판단할 수 있다. 이에 대해서는 상세히 후술한다.
복수의 가상머신(220)은 사양 타입(specification type)이 동일할 수 있으나 이에 한정되는 것은 아니며, 클라이언트 장치가 생성을 요청한 가상머신의 타입은 다양할 수도 있다. 클라우드(200) 내의 가상머신(220)에 대한 생성요청을 전송한 수요자들이 가상머신을 요청할 때 자신이 원하는 리소스를 지정할 수도 있다.
예를 들어, 제1 수요자는 1TB의 스토리지와 8GB의 메모리 및 4개의 코어를 가진 가상 머신을 요청할 수 있고, 제2 수요자는 2TB의 스토리지와 16GB의 메모리 및 2개의 코어를 가진 가상 머신을 요청할 수 있다. 이 경우에는 2개의 가상 머신이 서로 사양 타입을 달리할 수 있다.
또한, 몇몇 다른 실시예에서, 클라이언트 장치는 기 지정된 사양 타입 중 하나를 선택할 수 있다. 예를 들어, 사양 타입 A가 10TB 스토리지, 8GB 메모리, 2 코어로 구성된 것이고, 사양 타입 B가 2TB 스토리지, 64GB 메모리 및 8 코어로 구성된 것이라면 대용량의 데이터 처리를 원하는 수요자라면 사양 타입 A의 가상 머신을 선택할 것이고, 빠른 연산 능력을 원하는 수요자라면 사양 타입 B의 가상 머신을 선택할 것이다. 가상 리소스 관리 장치(110)는 기 지정된 사양 타입에 따른 가상 머신을 프로비저닝하여 복수의 가상머신(220)을 클라이언트 장치에 제공할 수 있다.
각각의 가상머신에는 앞서 설명한 바와 같이, 스토리지, 스토리지 노드 및 분석 노드 등을 포함할 수 있으며, 필요에 따라 다른 기능을 수행하는 다른 노드가 생성 및 관리될 수도 있다. 클라이언트 장치는 일반적인 사용예에 따라 각각의 스토리지에 자신이 원하는 데이터를 저장하고, 저장된 데이터를 자유롭게 로드하여 열람할 수 있다.
또한, 복수의 가상머신(220)은 가상 클러스터를 형성할 수 있으며, 클라이언트 장치는 복수의 가상머신(220)을 하나의 가상머신으로 인식하고 이를 이용할 수 있다. 가상 클러스터는 예를 들어, Hadoop Cluster 또는 Distribute DBMS Cluster 일 수 있으나, 이에 한정되는 것은 아니다.
중복 노드 검증 장치(120)는 복수의 가상머신(220)의 물리머신(210) 상의 배치정보(coordination)를 기초로 소정의 데이터를 포함하는 가상머신들이 복수의 물리머신 중 하나에 중복되어 생성되었는지 판단할 수 있다.
복수의 가상머신(220)에는 소정의 데이터가 저장될 수 있는데, 가상머신(220)의 오류가 발생할 경우 데이터가 함께 유실되는 문제가 발생할 수 있다. 이를 방지하기 위해, 사용자가 가상머신에 데이터를 업로드하면, 클라우드(200) 시스템 상으로 해당 데이터의 복제본을 소정 개수만큼 중복하여 생성한 후 복수의 가상머신(220)에 동일한 데이터를 중복하여 저장할 수 있다. 예를 들어 본 실시예에 따른 가상머신(220)들은 2개 이상의 복제본을 생성하여 서로 다른 가상머신(220)에 저장할 수 있으며, 예를 들어 전체 동일한 데이터가 3개로 저장될 수 있다. 이와 같은 복제본의 개수는 사용자가 임의로 지정할 수 있으며, 클라우드(200) 시스템 내에 미리 설정된 값일 수 있다.
한편, 소정 데이터가 포함된 가상머신(220) 자체를 복제하여 동일한 조건으로 생성된 가상머신 인스턴스를 복수로 관리할 수 있다.
따라서, 하나의 가상머신(220)이 오작동을 일으키거나 중단될 경우에도 나머지 다른 가상머신(220)이 동일한 데이터 또는 동일한 가상머신 인스턴스를 보유하고 있으므로 가용성을 유지할 수 있으며, 사용자는 정상상태의 가상머신(220)에 접근하여 작업을 수행하므로, 복제 가상머신의 오류 자체를 인식하지 못할 수 있으며, 클러스터 시스템의 신뢰도를 향상시킬 수 있다.
중복 노드 검증 장치(120)가 판단하는 복수의 가상머신(220)의 물리머신(210) 상의 배치정보(coordination)는, 중복 노드 검증 장치(120) 자체 또는 가상 리소스 관리 장치(110)가 생성할 수 있다.
가상 리소스 관리 장치(110) 및/또는 중복 노드 검증 장치(120)는 클라우드(200) 환경의 외부에 존재할 수 있다.
예를 들어 가상 리소스 관리 장치(110)는 생성된 가상머신(220)들의 정보를 분석하여 가상머신(220)들의 배치정보(coordination)를 생성할 수 있다. 이 정보는 생성된 가상머신(220)들의 공개(Public) IP, 가상 맥 어드레스(Virtual MAC Address), CPU ID, 라우팅 테이블(Routing Table) 등의 정보들을 가공하여 생성될 수 있다. 최종적으로 작성된 배치정보(coordination) 는 IP 라우팅 정보를 활용한 네트워크 토폴로지(Network Topology) 형태가 될 수도 있고, 물리 CPU ID 정보의 일치 여부를 확인하여 단순히 동일 물리머신(210) 상에 존재 유무를 나타내는 테이블 형태로 구성될 수도 있다.
중복 노드 검증 장치(120)는 위와 같은 복수의 가상머신(220)의 배치정보(coordination)를 기초로 동일한 데이터 또는 동일한 가상머신(220)이 동일한 물리머신(210) 상에 존재한다고 판단할 경우, 이에 대응하여 가상 리소스 관리 장치(110)는, 동일 데이터를 소정 개수만큼 중복하여 저장하는 복수의 가상머신(220)이 서로 다른 물리머신에 분산 배치되도록, 복수의 가상머신의 위치를 변경할 수 있다.
이에 대해서는 도 5 내지 도 12를 참조하여 구체적으로 설명한다. 도 5 내지 도 9는 도 4의 시스템에 의한 가상머신의 배치 검증 과정을 설명하기 위한 도면이고, 도 10 내지 도 12는 도 4의 시스템에 의한 가상머신의 재배치 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 클라우드(200) 시스템 내에 복수의 물리머신(210)이 존재할 수 있다. 물리머신(210)이 3개인 것으로 도시되었으나, 이에 한정되는 것은 아니며, 물리머신(210)의 개수는 증감될 수 있다.
외부에서 사용자가 클라이언트 장치 등을 통해 클라우드(200) 시스템에 접속하여 가상머신의 생성을 요청하거나, 가상 리소스 관리 장치(110)에 직접 가상머신의 생성을 요청할 수 있다. 앞서 설명한 바와 같이, 가상 리소스 관리 장치(110)는 클라우드(200) 환경의 내부 또는 외부에 존재할 수 있다.
도 5는 기존에 가상머신이 존재하지 않는 초기 상태에서 가상머신 요청이 수신된 경우를 상정하고 있으나, 기존에 가상머신이 존재하는 상태에서 새로운 가상머신을 요청할 수도 있다.
도 6을 참조하면, 가상머신의 생성요청을 직간접적으로 수신한 가상 리소스 관리 장치(110)는 잔존하는 클라우드 리소스를 고려하여 적절한 물리머신(210_1)을 선택하고 해당 물리머신(210_1)의 리소스를 이용하여 제1 가상머신(220_1)을 생성할 수 있다.
생성되는 제1 가상머신(220_1)은 목적에 따라 상이한 사양을 가지도록 설정될 수 있다. 예를 들어, 스토리지용 가상머신은 할당된 디스크 용량은 큰 반면, CPU와 메모리(Memory) 용량은 작은 형태인 반면, 분석용 가상머신의 경우에는 할당된 디스크 용량은 상대적으로 작은 반면, CPU와 메모리 용량은 큰 형태일 수 있다.
즉, 스토리지용 가상머신의 경우, 데이터를 읽고 쓰는 작업이 반복되기 때문에 가상 디스크 I/O 작업이 빈번하게 발생하는 반면, 단순히 데이터를 옮기는 작업이기 때문에 CPU 또는 메모리를 적게 소모할 수 있다. 따라서, 스토리지용 가상머신을 생성할 때, 가상 리소스 관리 장치(140)에서 디스크 리소스는 상대적으로 크게 할당하고, CPU 또는 메모리 리소스는 적게 할당하여 효율적인 리소스 관리를 수행할 수 있다.
반면, 분석용 가상머신의 경우, 디스크 사용량은 적은 반면, 데이터 특히 고용량 데이터를 메모리에 로드한 후 CPU를 통해 소정의 연산을 반복적으로 수행하기 때문에, 가상 리소스 관리 장치(140)를 통해 분석용 가상머신을 생성할 때, 디스크 리소스는 상대적으로 작게 할당하고, CPU 또는 메모리 리소스는 크게 할당하여 효율적인 리소스 관리를 수행할 수 있다.
도 7 및 도 8을 참조하면, 사용자로부터 또 다른 제2의 가상머신에 대한 생성요청이 수신될 수 있다. 예를 들어, 클라우드(200) 시스템의 정책(policy) 또는 사용자의 요청에 의해 제2 가상머신의 복제 데이터 또는 복제 가상머신을 생성해야 할 경우, 가상 리소스 관리 장치(110)는 요청된 제2 가상머신(220_2)을 복제하여 3개의 가상머신 인스턴스를 생성한 후 이를 물리머신(210)에 저장할 수 있다. 앞서 설명한 바와 같이, 가상머신의 복제 개수는 제한이 없으며, 사용자의 설정 또는 클라우드(200) 시스템의 설정에 따라 가변될 수 있다. 복수의 가상머신들(210)은 가상 클러스터를 구성할 수 있다.
도 9를 참조하면, 중복 노드 검증 장치(120)를 통해 동일 데이터를 가지거나 동일한 구성으로 복제된 복수의 가상머신들(220_2, 220_3, 220_4)이 서로 다른 물리머신(210)에 생성되었는지를 검증하게 된다. 즉, 클라우드 서비스의 고가용성(High Availability)를 확보하기 위해, 데이터 또는 가상머신을 다수 복제하여 서로 다른 물리머신에 배치할 수 있으며, 이러한 경우 물리머신이 오작동을 일으키더라도 해당 물리머신에 포함된 가상머신만이 유실되며, 나머지 동일한 데이터 또는 구성을 포함하는 다른 가상머신이 그대로 유지되기 때문에, 안정적인 클러스터 서비스를 제공할 수 있다.
앞서 설명한 바와 같이, 현재 상용 클라우드 솔루션의 경우에는 가상머신을 생성할 때, 가상머신의 물리머신 상의 배치를 제어할 수 없기 때문에, 후속적인 검증에 따라 가상머신의 재배치 여부를 결정할 수 있다.
즉, 도 10 및 도 11을 참조하면, 중복 노드 검증 장치(120)를 통해 동일 데이터를 가지거나 동일한 구성으로 복제된 복수의 가상머신들(220_2, 220_3, 220_4)이 서로 다른 물리머신(210)에 생성되었는지를 검증하여, 일부 또는 전체 복제 가상머신(220_2, 220_3, 220_4)이 하나의 물리머신(210_2)에 생성되었는지를 확인할 수 있다.
이 과정에서 가상 리소스 관리 장치(110)가 생성된 가상머신(220)들의 정보를 분석하여 추출한 배치정보(coordination)를 참고할 수 있다. 배치정보는 생성된 가상머신(220)들의 공개(Public) IP, 가상 맥 어드레스(Virtual MAC Address), CPU ID, 라우팅 테이블(Routing Table) 등의 정보들을 가공하여 생성될 수 있다.
예를 들어, 도시된 바와 같이 DRDBMS(Distribute RDBMS) 내에 3 복제 정책(3-replication policy)으로 구성된 데이터를 포함하는 각각의 복제 가상머신(220_2, 220_3, 220_4)이 중복된 물리머신(210_2)에 존재하게 될 경우, 해당 물리머신(210_2)에 장애 예를 들어 전원, 하드웨어, 네트워크, 운영체제 등의 오류가 발생할 경우, 존재하는 가상머신이 손실되며 이는 모든 데이터의 유실을 의미할 수 있다. 특히, 모든 복제 가상머신이 동일한 물리머신에 존재하게 되면 모든 복제된 데이터까지 손실되기 때문에 데이터를 복구할 수 있는 방법이 없게 된다.
기존의 클라우드 솔루션은 가상머신을 이용한 클러스터 생성을 염두에 두지 않고 클라우드 환경 내 존재하는 물리머신의 가용성과 효용성만을 고려하여 가상머신을 생성하기 때문에, 위와 같은 현상이 필연적으로 발생할 수 있다.
배치정보를 기초로 중복 노드 검증 장치(120)가 가상머신들(220)의 물리머신(210) 상의 중복 배치 여부를 판단하고, 중복이 확인될 경우 일부의 가상머신(220_2)을 재배치하여 복수의 가상머신(220_2, 220_3, 220_4)이 서로 다른 물리머신(210_1, 210_2, 210_3)에 분산 배치되도록 가상머신의 위치를 재배치할 수 있다.
복수의 가상머신(220)이 가상 클러스터를 구성할 경우에, 복수의 가상머신의 위치가 변경된 이후에 가상 클러스터가 구성될 수 있다.
가상머신(220)의 위치가 변경될 경우, 복제된 가상머신 내의 동일한 데이터도 함께 이전될 수 있으며, 이때 이전되는 동일 데이터는 스냅샷 백업으로 이전될 수 있다.
데이터 마이그레이션 과정에서, 현재 상용화된 일반적인 프라이빗 클라우드(Private Cloud) 솔루션이 가상머신을 특정 물리머신으로 마이그레이션하는 기능을 가지고 있지 않기 때문에, 기존의 가상머신(220)을 삭제하고 새로운 가상머신(220)을 생성하는 작업으로 이루어질 수 있다. 이 모든 요청을 수행하는 역할을 가상 리소스 관리 장치(110)가 담당할 수 있다.
가상 리소스 관리 장치(110)는 전체 가상 클러스터의 배치정보(Coordination)가 소정의 요건에 부합될때까지 즉, 동일 데이터를 포함하는 동일 가상머신이 서로 다른 물리머신에 배치될 때까지 가상머신 마이그레이션 작업을 반복할 수 있다.
위와 같은 과정이 종료된 후, 가상머신(220)이 구성하는 가상 클러스터는 데이터 분석 솔루션의 용도로 사용할 수 있는 클러스터로서의 적합성을 가질 수 있으며, 이는 클라우드 시스템 내부의 특정 물리머신의 다운 시에도 전체 시스템에는 영향을 받지 않는 가용성을 확보하게 된다. 뿐만 아니라 민감한 데이터의 유실도 방지할 수 있도록 기능할 수 있다.
이하, 도 13을 참조하여, 본 발명의 일 실시예에 따른 고가용성 가상머신 구성 방법에 대해 설명한다. 본 실시예에 따른 고가용성 가상머신 구성 방법은, 가상머신 생성 요청을 수신하는 단계(S102), 상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성하는 단계(S104), 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성되었는지 확인하는 단계(S106), 및 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성된 경우, 상기 복수의 가상머신이 상기 복수의 물리머신 중 서로 다른 물리머신에 배치되도록 상기 복수의 가상머신을 이전하는 단계(S108)를 포함한다.
먼저, 가상머신 생성 요청을 수신한다(S102). 가상머신 생성 요청은 복수의 가상머신에 대한 생성 요청을 포함할 수 있으나, 이에 한정되는 것은 아니며, 단일 가상머신에 대한 생성 요청일 수도 있다. 또한, 가상머신 생성 요청은 가상 클러스터 생성 요청을 포함할 수 있다.
이어서, 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성한다(S104). 가상머신의 용도 또는 목적에 따라 서로 다른 사양을 가지도록 생성될 수 있다. 가상머신을 생성할 때, 생성된 가상머신에 대한 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소, 설치된 운영체제, SSH 보안키 목록, VM ID, 생성시간, 마지막 변경시간 중 하나 이상에 대한 관리정보를 별도로 생성할 수 있으며, 별도로 관리되어 추후에 가상머신의 배치정보(coordination information)를 생성할 수 있다. 즉, 복수의 가상머신의 복수의 물리머신 상의 위치에 대한 배치정보를 생성하는 단계를 더 포함할 수 있다.
이어서, 생성된 가상머신의 배치정보에 따라 물리머신 상의 가상머신의 위치를 파악하고(S106), 이를 기초로 동일 기능을 수행하는 복수의 가상머신이 동일 물리머신 상에 생성된 경우 가상머신을 재배치할 수 있다(S108).
본 실시예에 따른 고가용성 가상머신 구성 방법은, 가상머신 자체의 생성위치를 검증하고, 이를 기초로 중복된 물리머신 내에 동일 기능을 수행하는 또는 수행할 가상머신이 생성된 경우, 가상머신 자체를 마이그레이션할 수 있다. 예를 들어, 복제된 가상머신을 이전 물리머신 상에서 삭제하고, 중복되지 않은 다른 물리머신 상에 새롭게 생성할 수 있다. 또는, 복제된 가상머신의 인스턴스를 스냅샷 백업한 후 이를 삭제하고, 중복되지 않은 다른 물리머신 상에 복원하여 가상머신을 이전할 수 있다.
이어서, 복수의 가상머신을 가상 클러스터링하여 가상 클러스터를 생성하는 단계(S110)를 더 포함할 수 있으며, 생성된 가상 클러스터 정보는 클라이언트(100) 측으로 전송될 수 있다(S112).
이하, 도 14를 참조하여, 본 발명의 다른 실시예에 따른 고가용성 가상머신 구성 방법에 대해 설명한다. 본 실시예에 따른 고가용성 가상머신 구성 방법은, 가상 클러스터 생성 요청을 수신하는 단계(S202), 상기 가상 클라스터 생성 요청에 따라 복수의 물리머신 상에 복수의 가상머신을 생성하는 단계(S204), 상기 복수의 가상머신에 동일 데이터를 소정 개수만큼 중복하여 저장하는 단계(S206), 상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 단계(S208), 및 상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성된 경우, 상기 동일 데이터가 상기 복수의 물리머신 중 서로 다른 물리머신에 저장되도록 상기 동일 데이터를 이전하는 단계(S210)를 포함한다.
본 실시예에 따른 고가용성 가상머신 구성 방법은, 이전 실시예에 따른 구성 방법과 동일하되, 가상머신 생성 전후 단계에서 수행되는 것이 아니라, 가상머신 생성 후 데이터 등을 저장할 때, 복제된 복수의 동일 데이터가 동일 물리머신 내에 위치하는 가상머신에 저장되는 경우 이를 감지하여, 동일 데이터를 저장하는 동일 물리머신 상의 가상머신의 데이터를 마이그레이션 하는 점이 상이하다.
따라서, 가상머신 저장 후에 고가용성을 위해 복제된 복수의 데이터를 다수의 가상머신에 중복 저장하되, 저장된 가상머신의 물리머신 상의 위치가 동일한 것이 확인될 경우, 해당 데이터를 다른 가상머신으로 이전함으로써, 동일한 데이터가 복수의 물리머신 중 서로 다른 물리머신에 저장되도록 설정할 수 있다.
또한, 복수의 가상머신의 복수의 물리머신 상의 위치에 대한 배치정보를 생성하는 단계를 더 포함할 수 있으며, 복수의 가상머신의 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소 중 하나 이상에 대한 관리정보를 생성하는 단계를 더 포함할 수도 있다.
또한, 복수의 가상머신을 가상 클러스터링하여 가상 클러스터를 생성하는 단계를 더 포함할 수 있으며, 동일 데이터는 스냅샷 백업 또는 다른 데이터 마이그레이션 방법으로 이전될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
즉, 본 발명의 일 실시예에 따른 기록매체는, 가상머신 생성 요청을 수신하고, 상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성하고, 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성되었는지 확인하고, 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성된 경우, 상기 복수의 가상머신이 상기 복수의 물리머신 중 서로 다른 물리머신에 배치되도록 상기 복수의 가상머신을 이전하는 것을 포함하는 가상 머신 구성 프로그램이 기록된 컴퓨터로 읽을 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 클라이언트
110: 가상 리소스 관리 장치
120: 중복 노드 검증 장치
200: 클라우드 시스템
210: 물리머신
220: 가상머신

Claims (20)

  1. 클라우드 환경을 구성하는 복수의 물리머신;
    상기 복수의 물리머신 내에 생성되고, 동일 데이터를 소정 개수만큼 중복하여 저장하는 복수의 가상머신;
    상기 복수의 가상머신의 리소스를 관리하며, 상기 복수의 가상머신을 생성하는 가상 리소스 관리 장치; 및
    상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 중복 노드 검증 장치를 포함하되,
    상기 중복 노드 검증 장치의 판단 결과에 대응하여 상기 가상 리소스 관리 장치가, 상기 동일 데이터를 상기 소정 개수만큼 중복하여 저장하는 상기 복수의 가상머신이 서로 다른 물리머신에 분산 배치되도록, 상기 복수의 가상머신의 위치를 변경하는, 고가용성 가상머신 구성 시스템.
  2. 제1항에 있어서,
    상기 복수의 가상머신이 가상 클러스터를 구성하는, 고가용성 가상머신 구성 시스템.
  3. 제2항에 있어서,
    상기 복수의 가상머신의 위치가 변경된 후, 상기 가상 클러스터가 구성되는, 고가용성 가상머신 구성 시스템.
  4. 제1항에 있어서,
    상기 소정 개수는 3개인, 고가용성 가상머신 구성 시스템.
  5. 제1항에 있어서,
    상기 복수의 가상머신의 위치가 변경될 경우, 상기 동일 데이터도 함께 이전되는, 고가용성 가상머신 구성 시스템.
  6. 제5항에 있어서,
    상기 동일 데이터는 스냅샷 백업으로 이전되는, 고가용성 가상머신 구성 시스템.
  7. 제1항에 있어서,
    상기 가상 리소스 관리 장치는, 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소 중 하나 이상에 대한 관리정보를 관리하는, 고가용성 가상머신 구성 시스템.
  8. 제1항에 있어서,
    상기 가상 리소스 관리 장치는 상기 복수의 가상머신의 상기 복수의 물리머신 상의 위치에 대한 배치정보를 관리하는, 고가용성 가상머신 구성 시스템.
  9. 제8항에 있어서,
    상기 중복 노드 검증 장치는, 상기 가상 리소스 관리 장치로부터 상기 배치정보를 수신하고,
    상기 배치정보 중에서 상기 동일 데이터를 가지는 상기 복수의 가상머신을 판단하는, 고가용성 가상머신 구성 시스템.
  10. 제1항에 있어서,
    상기 가상 리소스 관리 장치 또는 상기 중복 노드 검증 장치는 상기 클라우드 환경의 외부에 존재하는, 고가용성 가상머신 구성 시스템.
  11. 가상머신 생성 요청을 수신하는 단계;
    상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성하는 단계;
    상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성되었는지 확인하는 단계; 및
    상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성된 경우, 상기 복수의 가상머신이 상기 복수의 물리머신 중 서로 다른 물리머신에 배치되도록 상기 복수의 가상머신을 이전하는 단계를 포함하는, 고가용성 가상머신 구성 방법.
  12. 제11항에 있어서,
    상기 복수의 가상머신의 상기 복수의 물리머신 상의 위치에 대한 배치정보를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  13. 제11항에 있어서,
    상기 복수의 가상머신의 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소 중 하나 이상에 대한 관리정보를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  14. 제11항에 있어서,
    상기 복수의 가상머신을 가상 클러스터링하여 가상 클러스터를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  15. 가상머신 생성 요청을 수신하는 단계;
    상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 복수의 가상머신을 생성하는 단계;
    상기 복수의 가상머신에 동일 데이터를 소정 개수만큼 중복하여 저장하는 단계;
    상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성되었는지를 판단하는 단계; 및
    상기 동일 데이터가 상기 복수의 물리머신 중 하나에 중복하여 생성된 경우, 상기 동일 데이터가 상기 복수의 물리머신 중 서로 다른 물리머신에 저장되도록 상기 동일 데이터를 이전하는 단계를 포함하는, 고가용성 가상머신 구성 방법.
  16. 제15항에 있어서,
    상기 복수의 가상머신의 상기 복수의 물리머신 상의 위치에 대한 배치정보를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  17. 제15항에 있어서,
    상기 복수의 가상머신의 가상 cpu 코어 개수, 메모리 용량, 디스크 용량, 네트워크 주소 중 하나 이상에 대한 관리정보를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  18. 제15항에 있어서,
    상기 복수의 가상머신을 가상 클러스터링하여 가상 클러스터를 생성하는 단계를 더 포함하는, 고가용성 가상머신 구성 방법.
  19. 제15항에 있어서,
    상기 동일 데이터는 스냅샷 백업으로 이전되는, 고가용성 가상머신 구성 방법.
  20. 가상 리소스 관리 장치가, 가상머신 생성 요청을 수신하는 단계;
    상기 가상 리소스 관리 장치가, 상기 가상머신 생성 요청에 따라 복수의 물리머신 상에 동일 기능을 수행하는 복수의 가상머신을 생성하는 단계;
    중복 노드 검증 장치가, 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성되었는지 확인하는 단계; 및
    상기 중복 노드 검증 장치가, 상기 복수의 가상머신이 상기 복수의 물리머신 중 동일한 물리머신 상에 생성된 경우, 상기 복수의 가상머신이 상기 복수의 물리머신 중 서로 다른 물리머신에 배치되도록 상기 복수의 가상머신을 이전하는 단계를 실행시키기 위한 가상 머신 구성 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020120121471A 2012-10-30 2012-10-30 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체 KR101551706B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120121471A KR101551706B1 (ko) 2012-10-30 2012-10-30 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120121471A KR101551706B1 (ko) 2012-10-30 2012-10-30 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체

Publications (2)

Publication Number Publication Date
KR20140055112A KR20140055112A (ko) 2014-05-09
KR101551706B1 true KR101551706B1 (ko) 2015-09-09

Family

ID=50886838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120121471A KR101551706B1 (ko) 2012-10-30 2012-10-30 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체

Country Status (1)

Country Link
KR (1) KR101551706B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI537827B (zh) * 2014-10-06 2016-06-11 第五代虛擬科技股份有限公司 應用軟體試用系統、方法及其伺服器與使用者裝置
KR101947221B1 (ko) * 2015-03-24 2019-02-12 건국대학교 산학협력단 가상 클러스터 구동 시간 스케줄링 방법 및 장치
WO2016153288A1 (ko) * 2015-03-24 2016-09-29 건국대학교 산학협력단 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
KR102084031B1 (ko) * 2019-08-07 2020-05-29 주식회사 도시엔컴 복수 서버의 로컬 저장소를 통합 관리하는 방법 및 그 장치
KR102187384B1 (ko) * 2020-07-31 2020-12-07 나무기술 주식회사 클라우드 인프라 기반의 컨테이너 가상os 통합 표준화 시스템
KR102488614B1 (ko) * 2021-01-18 2023-01-17 주식회사 텐 가상화된 리소스를 관리하는 방법, 장치 및 컴퓨터 프로그램
KR102488615B1 (ko) * 2021-01-18 2023-01-17 주식회사 텐 리소스 크기 추전 방법, 장치 및 컴퓨터 프로그램
KR102595771B1 (ko) * 2023-01-25 2023-10-31 디에스이테크 주식회사 Pxe 기반의 반도체생산설비 제어 장치 및 방법

Also Published As

Publication number Publication date
KR20140055112A (ko) 2014-05-09

Similar Documents

Publication Publication Date Title
KR101551706B1 (ko) 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체
US11199971B2 (en) Managing operational parameters for migrating data for resized volumes
US10326769B2 (en) Extensible multi-tenant cloud-management system and methods for extending functionalities and services provided by multi-tenant cloud-management system
US9747179B2 (en) Data management agent for selective storage re-caching
US9426218B2 (en) Virtual storage appliance gateway
Yang et al. On improvement of cloud virtual machine availability with virtualization fault tolerance mechanism
US8909767B2 (en) Cloud federation in a cloud computing environment
US10922303B1 (en) Early detection of corrupt data partition exports
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US20130332927A1 (en) System and method for managing resources in virtualized environment
KR101700313B1 (ko) 인스턴스 호스트 구성
KR101430649B1 (ko) 클라우드 환경 내의 데이터 분석 서비스 제공 시스템 및 방법
Alba et al. Efficient and agile storage management in software defined environments
US20150100826A1 (en) Fault domains on modern hardware
US11740936B2 (en) Method and system for managing cloud resources
US20200151149A1 (en) Global namespace for a hierarchical set of file systems
US9602341B1 (en) Secure multi-tenant virtual control server operation in a cloud environment using API provider
US20180189124A1 (en) Rebuilding the namespace in a hierarchical union mounted file system
US10929797B1 (en) Fault tolerance determinations for networked resources
Jain et al. Cloud service orchestration based architecture of OpenStack Nova and Swift
US20210067599A1 (en) Cloud resource marketplace
US10579598B2 (en) Global namespace for a hierarchical set of file systems
US11068192B1 (en) Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
Yan Cloud storage services
Tulloch et al. Introducing Windows Server 2012 R2

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
FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 5