KR101866086B1 - 재사용 기반의 가상 클러스터 구축 방법 및 장치 - Google Patents

재사용 기반의 가상 클러스터 구축 방법 및 장치 Download PDF

Info

Publication number
KR101866086B1
KR101866086B1 KR1020160148661A KR20160148661A KR101866086B1 KR 101866086 B1 KR101866086 B1 KR 101866086B1 KR 1020160148661 A KR1020160148661 A KR 1020160148661A KR 20160148661 A KR20160148661 A KR 20160148661A KR 101866086 B1 KR101866086 B1 KR 101866086B1
Authority
KR
South Korea
Prior art keywords
virtual disk
virtual
asset
reusable
creating
Prior art date
Application number
KR1020160148661A
Other languages
English (en)
Other versions
KR20180051831A (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 KR1020160148661A priority Critical patent/KR101866086B1/ko
Priority to PCT/KR2016/015573 priority patent/WO2017126819A1/ko
Publication of KR20180051831A publication Critical patent/KR20180051831A/ko
Application granted granted Critical
Publication of KR101866086B1 publication Critical patent/KR101866086B1/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

본 발명은 재사용 기반의 가상 클러스터 구축 방법 및 장치에 관한 발명이며, 본 발명의 일 실시예에 따른 재사용 기반의 가상 클러스터 구축 방법은 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 단계, 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 단계, 재사용 가능한 자산이 검색될 경우, 검색된 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 단계 및 명세서를 기초하여, 가상 디스크를 생성하는 단계를 포함하고, 재사용 자산 저장소에 저장된 가상 디스크의 자산을 재사용하여 복제함으로써 소프트웨어의 설치 및 설정하는 절차를 단축하여 전체적인 가상 디스크의 프로비저닝 소요 시간을 단축할 수 있는 재사용 기반의 가상 클러스터 구축 방법 및 장치를 제공할 수 있는 효과가 있다.

Description

재사용 기반의 가상 클러스터 구축 방법 및 장치{METHOD AND APPARATUS FOR PRODUCING VIRTUAL CLUSTER BASED REUSEABLE ASSET}
본 발명은 재사용 기반의 가상 클러스터 구축 방법 및 장치에 관한 것으로서, 보다 상세하게는 재사용 가능한 자산을 관리할 수 있는 저장소를 제공하고, 저장된 자산 중 재사용될 수 있는 가상 디스크를 활용하여 프로비저닝 (Provisioning) 하는, 재사용 기반의 가상 클러스터 구축 방법 및 장치에 관한 것이다.
네트워크 기술과 저장소 기술이 발전함에 따라 공유 가능한 저장소에 저장된 대용량 데이터의 분석 처리 기술을 적용하기 위한 플랫폼 기술 즉, 가상화 기술이 활발히 연구되고 있다. 특히, 대용량 데이터를 효과적으로 분석하기 위해서 분산 및 저장된 데이터를 병렬적으로 처리하는 기술이 중요시되고 있다. 그러나 병렬적으로 분산된 대용량 데이터를 처리하기 위해서는 하나 이상의 처리용 컴퓨팅 노드를 클러스터로 묶어 활용하는 가상 클러스터 기술이 반드시 필요하다.
가상 클러스터는 특정 기능을 수행하는 소프트웨어가 설치된 가상 머신들의 집합이며, 네트워크로 연결되어 있다. 가상 클러스터를 생성하기 위해서는 가상 컴퓨팅 자원을 프로비저닝하는 단계를 거쳐야한다. 가상 디스크 프로비저닝은 가상 클러스터 배치 프로비저닝과 가상 클러스터 디스크 프로비저닝을 포함한다. 가상 클러스터 배치 프로비저닝이란, 생성할 가상 클러스터에 포함된 가상 머신들의 자원 정보를 기초로 가상 클러스터를 가상화된 물리 시스템에 배치하여 생성하기 위한 과정을 의미한다. 가상 클러스터 디스크 프로비저닝은 가상 클러스터의 가상 머신을 생성하기 위한 가상 디스크를 생성하는 과정을 의미한다. 여기서, 생성된 각각의 가상 디스크에 사용자가 요청한 소프트웨어 즉, 시스템 소프트웨어 및 응용 소프트웨어를 설치 및 설정하는 과정은 전체 가상 디스크 프로비저닝 시간에 직접적인 영향을 준다.
[관련기술문헌]
가상 머신 제공 방법, 시스템 및 그 프로그램이 기록된 기록매체 (공개 특허 10-2014-0055481호)
본 발명의 발명자들은 가상 머신에 대한 프로비저닝에 있어 이미 생성되었던 가상 디스크와 동일한 소프트웨어가 설치된 새로운 가상 디스크를 반복적으로 생성하는 과정은 가상 머신에 대한 프로비저닝 시간을 보다 더 소요하게 한다는 점을 인지하였다.
재사용 가능한 자산은 가상 디스크뿐만 아니라 새로운 종류의 가상 디스크를 생성하기 위한 소프트웨어 설치 프로그램 및 설정 프로그램을 포함한다. 이러한 재사용 가능한 자산을 관리하기 위해서는 자산의 이름, 버전, 사용될 수 있는 도메인 (Domain) 의 범위, 재사용 할 수 있는 자산을 구성하고 있는 구현물의 위치, 자산을 적용할 때의 가변적 요소 (Variability Point) 를 포함한 사용 방법 등의 정보가 요구된다. 본 발명은 OMG (Object Management Group) 의 표준화된 재사용 가능한 자산 명세 방법인 Reusable Asset Specification (RAS) 을 활용하여 각 자산에 대한 명세서를 작성하고, 자산을 데이터베이스를 통해 관리하는 재사용 자산 저장소를 제공한다.
하지만 RAS만을 이용해서는 가상 디스크에 포함된 소프트웨어 요소간의 의존성 (Dependency) 을 구분할 수 없다는 단점을 지니고 있다. 즉, 응용 소프트웨어는 시스템 소프트웨어에 의해 작동되기에 응용 소프트웨어는 시스템 소프트웨어에 의존적인데 RAS 기반의 자산 명세 방법은 자산이 포함하고 있는 소프트웨어 특징을 표현하기에 그 한계점을 지닌다. RAS를 통해 저장된 가상 디스크 이미지의 이름, 버전, 사용하는 방법을 기술할 수 있어도 포함하고 있는 소프트웨어 구성 요소는 기술할 수 없다. 그러나 가상 디스크를 재사용하기 위해서는 포함된 소프트웨어 구성 요소를 바탕으로 복제 가능한 가상 디스크를 검색해야 한다. 더욱이 생성해야 할 가상 디스크의 일부 또는 모든 소프트웨어 요소에 부합하는 재사용 가능한 자산을 검색하기 위해서라도 저장된 가상 디스크의 소프트웨어 구성 요소는 반드시 관리되어야 한다. 따라서, 재사용 가능한 가상 디스크를 분석하기 위해서 사용자의 가상 디스크의 소프트웨어 구성 요소를 파악하여 전체 또는 일부 부합되는 복제 가능한 가상 디스크를 검색해야 한다. 결론적으로, 재사용 가능한 자산을 사용하기 위해서는 가상 디스크에 대한 소프트웨어 구성 요소간의 의존성을 고려하여 재사용 가능한 자산을 관리하여야 한다.
이에, 본 발명이 해결하고자 하는 과제는 생성한 가상 디스크, 가상 디스크에 설치된 소프트웨어 프로그램의 의존성, 소프트웨어 프로그램, 소프트웨어의 구성 요소, 생성한 가상 디스크가 저장된 경로 및 복제하는 방법 등을 포함한 재사용 가능한 자산의 사용 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 재사용 가능한 자산을 저장하여 제공하는 재사용 자산 저장소를 마켓의 형태로 서비스화하여, 미리 구동 상에 문제가 존재하지 않는 가상 디스크를 공유함으로써 기존 클라우드 서비스의 제한적 가상 디스크 종류에서 벗어나 사용자가 원하는 소프트웨어가 설치된 가상 머신을 구동시킬 수 있는 재사용 기반의 가상 클러스터 구축 방법 및 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 재사용 기반의 가상 클러스터 구축 방법은 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 단계, 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 단계, 재사용 가능한 자산이 검색될 경우, 검색된 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 단계 및 명세서를 기초하여, 가상 디스크를 생성하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 재사용 가능한 자산을 검색하는 단계는 프로비저닝 요청이 재사용 가능한 자산 중 가상 디스크에 대한 검색을 포함하는 경우, 가상 디스크의 메타 정보와 연관된 해시 함수 (Hash Function) 에 기초하여 생성된 식별자 (Identification) 값으로 재사용 가능한 자산 중 매칭하는 가상 디스크를 검색하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 재사용 가능한 자산을 검색하는 단계는 프로비저닝 요청이 재사용 가능한 자산 중 소프트웨어의 설치 프로그램 또는 설정 프로그램에 대한 검색을 포함하는 경우, 설치를 요청받은 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보 중 적어도 하나의 정보로 설치 프로그램 또는 설정 프로그램을 검색하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는 생성할 가상 디스크의 생성 절차 및 사용하는 자산을 명세하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 생성된 가상 디스크 중에서 복제가 아닌 설치된 가상 디스크의 식별자 값, 이름, 종류 및 명세서 중 적어도 하나를 재사용 자산 저장소에 저장하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성하는 단계를 포함하고, 명세서를 기초하여, 가상 디스크를 생성하는 단계는, 제1 병합형 메타 데이터 및 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성하는 단계를 포함하고, 제2 병합형 메타 데이터는 시스템 소프트웨어의 명칭 및 버전 정보를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성하는 단계를 포함하고, 명세서를 기초하여, 가상 디스크를 생성하는 단계는 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성하는 단계를 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 재사용 기반의 가상 클러스터 구축 장치는 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 프로비저닝 요청 수신부, 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 자산 검색부, 자산 검색부로부터 재사용 가능한 자산이 검색될 경우, 검색된 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 명세서 작성부 및 명세서를 기초하여, 가상 디스크를 생성하는 가상 디스크 생성부를 포함한다.
본 발명의 다른 특징에 따르면, 자산 검색부는 프로비저닝 요청이 재사용 가능한 자산 중 가상 디스크에 대한 검색을 포함하는 경우, 가상 디스크의 메타 정보와 연관된 해시 함수에 기초하여 생성된 식별자 값으로 재사용 가능한 자산 중 매칭하는 가상 디스크를 검색할 수 있다.
본 발명의 또 다른 특징에 따르면, 자산 검색부는 프로비저닝 요청이 재사용 가능한 자산 중 소프트웨어의 설치 프로그램 또는 설정 프로그램에 대한 검색을 포함하는 경우, 설치를 요청받은 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보 중 적어도 하나의 정보로 설치 프로그램 또는 설정 프로그램을 검색할 수 있다.
본 발명의 또 다른 특징에 따르면, 명세서 작성부는 생성할 가상 디스크의 생성 절차 및 사용하는 자산을 명세할 수 있다.
본 발명의 또 다른 특징에 따르면, 생성된 가상 디스크 중에서 복제가 아닌 설치된 가상 디스크의 식별자 값, 이름, 종류 및 명세서 중 적어도 하나를 재사용 자산 저장소에 저장하는 재사용 자산 저장부를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 명세서 작성부는 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성하고, 가상 디스크 생성부는 제1 병합형 메타 데이터 및 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성하고, 제2 병합형 메타 데이터는 시스템 소프트웨어의 명칭 및 버전 정보를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 명세서 작성부는 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성하고, 가상 디스크 생성부는 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성할 수 있다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 생성한 가상 디스크, 가상 디스크에 설치된 소프트웨어 프로그램의 의존성, 소프트웨어 프로그램, 소프트웨어의 구성 요소, 생성한 가상 디스크가 저장된 경로 및 복제하는 방법 등을 포함한 재사용 가능한 자산의 사용 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 재사용 가능한 자산을 저장하여 제공하는 재사용 자산 저장소를 마켓의 형태로 서비스화하여, 미리 구동 상에 문제가 존재하지 않는 가상 디스크를 공유함으로써 기존 클라우드 서비스의 제한적 가상 디스크 종류에서 벗어나 사용자가 원하는 소프트웨어가 설치된 가상 머신을 구동시킬 수 있는 재사용 기반의 가상 클러스터 구축 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 가상 디스크 프로비저닝을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 재사용 기반의 가상 클러스터 구축 장치를 설명하기 위한 예시적인 블록도이다.
도 3은 본 발명의 실시예에 따른 자산 검색부를 설명하기 위한 예시적인 블록도이다.
도 4는 본 발명의 실시예에 따라 재사용 기반의 가상 클러스터 구축 장치에 따른 재사용을 통한 가상 디스크 생성 절차를 도시한 것이다.
도 5는 본 발명의 다른 실시예에 따라 가상 클러스터 특징모델을 기초로 재사용 가능한 자산에 식별자 값을 부여하는 과정을 도시화 한 것이다.
도 6은 본 발명의 다른 실시예에 따라 식별자 값을 기초로 명세서를 검색하는 과정을 도시화 한 것이다.
도 7의 (a) 내지 도 7의 (b)는 본 발명의 다른 실시예에 따라 가상 디스크 프로비저닝의 효과를 도시화 한 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우, '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
본 명세서에서 “프로비저닝”이란, 사용자의 요구에 따라 자원을 할당, 배치 및 배포하는 절차를 의미한다. 여기서, 자원이란 서버의 메모리, CPU 등을 의미할 수 있다. 구체적으로, 프로비저닝은 사용자의 요구에 따라 서버의 메모리에 소프트웨어를 설치한 가상 디스크를 생성하고, 가상 디스크를 가상 머신에 배치하여 소프트웨어가 효율적으로 구동될 수 있도록하는 절차를 의미한다.
도 1은 본 발명의 일 실시예에 따른 가상 디스크 프로비저닝을 설명하기 위한 도면이다.
도 1의 (a)를 참조하면, 가상 머신 (110) 은 소프트웨어 (130) 가 설치된 가상 디스크 (120) 를 포함한다. 소프트웨어 (130) 는 시스템 소프트웨어 (131), 제1 응용 소프트웨어 (132) 및 제2 응용 소프트웨어 (133) 를 포함할 수 있다.
도 1의 (a)를 참조하면, 루트 파일 시스템이 설치된 가상 디스크 (120) 는 가상 머신 (110) 을 구동시키는데 있어서 필요한 장치이다. 가상 디스크 (120) 를 포함하는 가상 머신 (110) 은 루트 파일 시스템으로부터 부팅할 수 있다. 가상 디스크 (120) 는 일반적인 하드 디스크와는 다르게 물리 머신의 운영체제 내 파일 시스템이 존재하는 파일의 형태 또는 논리적 볼륨 (Logical Volume) 의 형태로 생성될 수 있다. 따라서, 가상 디스크 (120) 는 생성한 파일 또는 논리적 볼륨에 각각의 가상 머신 (110) 별로 필요한 파일 시스템을 구성하여 가상 머신 (110) 에 제공된다. 또한, 가상 디스크 (120) 에는 원하는 시스템 소프트웨어 (131), 제1 응용 소프트웨어 (132) 및 제2 응용 소프트웨어 (133) 와 같은 응용 소프트웨어 및 물리 머신의 운영체제와는 다른 버전의 시스템 소프트웨어 (131) 가 설치되며, 가상 디스크 (120) 는 가상 머신 (110) 에 제공될 수 있다.
도 1의 (a)를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 소프트웨어 (130) 를 가상 디스크 (120) 에 설치함으로써 가상 디스크 (120) 를 프로비저닝한다. 재사용 기반의 가상 클러스터 구축 장치는 소프트웨어 (130) 가 설치된 가상 디스크 (120) 를 생성하기 위해 빈 가상 디스크 (120) 를 생성한다. 이어서, 재사용 기반의 가상 클러스터 구축 장치는 빈 가상 디스크 (120) 에 시스템 소프트웨어 (131) 인 Debian 8.0, 제1 응용 소프트웨어 (132) 인 Open JDK 7.0 및 제2 응용 소프트웨어 (133) 인 Hadoop 2.6.0을 설치한다. 마지막으로, 재사용 기반의 가상 클러스터 구축 장치는 가상 디스크 (120) 에 설치된 소프트웨어 (130) 를 설정한다. 구체적으로, 재사용 기반의 가상 클러스터 구축 장치는 시스템 소프트웨어 (131) 인 Debian 8.0, 제1 응용 소프트웨어 (132) 인 Open JDK 7.0 및 제2 응용 소프트웨어 (133) 인 Hadoop 2.6.0을 실행하기 위해 필요한 설정을 수행한다. 도 1의 (a)에서 가상 디스크 (120) 는 통합형 가상 디스크일 수 있으나, 이에 제한되지 않고 가상 디스크는 복수의 가상 디스크 각각이 하나의 소프트웨어를 갖고 서로 조합이 가능한 병합형 가상 디스크로 구현될 수도 있다.
도 1의 (b)를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 미리 생성된 가상 디스크 (120) 를 복제하여 동일한 소프트웨어를 포함한 가상 디스크 (140) 를 생성할 수 있다.
도 1의 (b)를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 도 1의 (b)의 가상 디스크 생성 절차에 따라 시스템 소프트웨어 (131) 인 Debian 8.0, 제1 응용 소프트웨어 (132) 인 Open JDK 7.0 및 제2 응용 소프트웨어 (133) 인 Hadoop 2.6.0을 포함한 소프트웨어 (130) 가 설치된 가상 디스크 (120) 를 그대로 복제하여 가상 디스크 (140) 를 생성한다. 따라서, 가상 디스크 (140) 도 Debian 8.0, 제1 응용 소프트웨어 (132) 인 Open JDK 7.0 및 제2 응용 소프트웨어 (133) 인 Hadoop 2.6.0를 포함한다. 복제를 통한 가상 디스크 프로비저닝은 설치를 통한 가상 디스크 생성에 비해 신속한 생성이 가능하다. 구체적으로, 설치를 통한 가상 디스크 생성은 가상 디스크에 실제로 필요한 소프트웨어를 각각 설치한다. 반면에, 복제를 통한 가상 디스크 생성은 미리 만들어 진 가상 디스크에 설치된 소프트웨어를 복제하는 시간만 소모되기 때문에 설치를 통한 가상 디스크 생성에 비해 신속하게 생성할 수 있다. 또한, 복제를 통한 가상 디스크 생성은 가상 디스크에 설치된 소프트웨어의 설정이 된 상태에서 가상 디스크를 복제함으로써, 복제를 통한 가상 디스크 생성에 있어 소프트웨어에 대한 설정 단계를 수행하지 않기 때문에 종래에 비해 가상 디스크를 빠르게 생성할 수 있다. 따라서, 재사용 기반의 가상 클러스터 구축 장치는 재사용 자산 저장소에 가상 디스크의 복제에 필요한 자산을 저장하고, 저장된 자산을 기초로 보다 빠르게 가상 디스크를 생성한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치는 사용자의 요청에 따라 소프트웨어를 설치한 가상 디스크를 생성하고, 생성한 가상 디스크 및 가상 디스크의 자산을 재사용 자산 저장소에 저장하여, 저장된 자산을 기초로 가상 디스크를 복제함으로써 가상 디스크 프로비저닝의 소요 시간을 단축할 수 있다.
도 1의 (a) 내지 도 1의 (b)에서는 예시적으로 단순한 가상 디스크의 복제를 통한 가상 디스크 프로비저닝의 소요 시간 단축을 설명하였으나, 가상 디스크의 복제는 다양한 절차와 결정 과정을 수반할 수 있다. 이하에서는 가상 디스크의 복제와 생성을 통해 가상 디스크 프로비저닝의 소요 시간을 단축시키는 다양한 실시예들을 구체적으로 설명한다.
도 2는 본 발명의 실시예에 따른 재사용 기반의 가상 클러스터 구축 장치를 설명하기 위한 예시적인 블록도이다.
도 2를 참조하면, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 프로비저닝 요청 수신부 (210), 재사용 자산 저장소 드라이버 관리부 (220), 명세서 작성부 (230) 및 디스크 생성부 (240) 를 포함한다. 여기서, 재사용 자산 저장소 드라이버 관리부 (220) 는 재사용 자산 검색부 (221) 를 포함한다.
프로비저닝 요청 수신부 (210) 는 XML RPC (Remote Procedure Call) 을 이용하여 가상 클러스터의 구축 요청에서 가상 디스크에 대한 프로비저닝 요청을 수신한다. 이 때, 프로비저닝 요청 수신부 (210) 가 수신한 가상 디스크에 대한 프로비저닝 요청은 사용자가 생성 요청한 가상 클러스터의 가상 머신들에 설치된 소프트웨어 요구사항을 포함한다. 구체적으로, 가상 디스크에 대한 프로비저닝 요청은 가상 클러스터에 포함된 가상 머신의 개수, 가상 머신이 보유할 VCPU, 메모리, 가상 디스크 공간 등과 같은 가상 자원의 명세, 가상 머신의 시스템 및 응용 소프트웨어 및 설정 정보 등과 가상 클러스터의 시간, 공간 제약 사항 등을 포함한 가상 디스크 프로비저닝 요청이다. 프로비저닝 요청 수신부 (210) 는 수신된 가상 디스크 프로비저닝 요청을 파싱 (Parsing) 할 수 있다.
재사용 자산 저장소 드라이버 관리부 (220) 는 재사용에 필요한 자산을 등록, 갱신하기 위한 작업을 수행한다. 또한, 재사용 자산 저장소 드라이버 관리부 (220) 는 재사용 자산 검색부 (221) 를 포함하여, 재사용 자산 검색부 (221) 를 통해 재사용 자산을 검색한다.
재사용 자산 검색부 (221) 는 프로비저닝 요청에 대응하여 재사용 자산 저장소 (300) 에 저장된 자산 중 재사용 가능한 자산을 검색한다. 여기서, 재사용 자산 저장소 (300) 란, 재사용에 요구되는 모든 소프트웨어의 산출물을 저장하는 저장소이다. 예를 들어, 재사용 자산 저장소 (300) 는 가상 클러스터의 특징모델, 명세서, 가상 디스크 생성 절차 명세서, 소프트웨어가 설치된 가상 디스크, 가상 디스크에 설치된 소프트웨어, 소프트웨어의 설치 프로그램 (Installer) 및 소프트웨어의 설정 프로그램 (Configurator), 저장한 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보를 저장한다. 재사용 자산 저장소 (300) 는 가상 디스크의 메타 정보와 연관된 해시 함수 (Hash Fuction) 에 기초하여 생성된 식별자 값을 바탕으로 자산을 검색할 수 있도록 한다.
구체적으로, 재사용 자산 검색부 (221) 는 하나 이상의 가상 머신을 포함하는 가상 클러스터의 특징모델을 기초로 재사용 가능한 가상 디스크와 새롭게 설치하여 생성해야 하는 가상 디스크를 분석하기 위해 재사용 가상 디스크를 검색한다. 여기서, 특징모델이란, 시스템 소프트웨어 및 응용 소프트웨어의 이름, 버전, 설치될 패키지 또는 모듈에 따른 분류 및 사용할 명령어 집합에 따른 아키텍쳐 (Architecture) 를 포함하여, 가상 디스크의 소프트웨어 구성 요소를 표현하고, 소프트웨어 사이에서의 의존성을 표현한 트리 형식의 모델이다.
명세서 작성부 (230) 는 재사용 자산 검색부 (221) 로부터 재사용 가능한 자산이 검색될 경우, 검색된 재사용 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성한다. 여기서, 명세서는 RAS에 소프트웨어간의 의존성에 대한 정보를 표현하기 위해 소프트웨어 구성 요소를 추가하여 재사용 가능한 자산의 표준화된 명세 방법에 따라 작성된 문서이다. 명세서는 가상 디스크가 저장된 경로, 사용하는 방법, 가상 디스크의 생성 절차 및 연관된 자산 등의 정보 즉, 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보 등을 포함한다.
명세서 작성부 (230) 는 재사용 자산 검색부 (221) 의 검색 결과에 따라 명세서를 작성한다. 구체적으로, 명세서 작성부 (230) 는 재사용 자산 검색부 (221) 로부터 재사용 가능한 자산이 검색될 경우, 검색된 재사용 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성할 수 있다. 즉, 명세서 작성부 (230) 는 재사용 가능한 가상 디스크를 기반으로 그대로 복제하거나 추가적인 응용 소프트웨어를 설치하여 생성하는 명세서를 생성한다. 따라서, 명세서 작성부 (230) 는 재사용할 가상 디스크를 복제하고, 필요한 응용 소프트웨어를 설치한 뒤 설정하는 절차를 명세서에 작성한다. 복제해야할 가상 디스크는 재사용 자산 검색부 (221) 에 의해 분석되어 해시 함수를 이용해 획득한 정수형 식별자로 검색된다.
명세서 작성부 (230) 는 가상 클러스터의 형태에 따라 메타 데이터를 생성할 수 있다. 구체적으로, 명세서 작성부 (230) 는 병합형 가상 클러스터를 프로비저닝하기 위한 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성할 수 있다. 이 때, 제2 병합형 메타 데이터는 시스템 소프트웨어의 명칭 및 버전 정보를 포함한다. 여기서, 병합형 가상 클러스터 디스크 프로비저닝이란, 가상 디스크를 소프트웨어 종류 별로 분류하고, 분류된 복수의 소프트웨어를 병합하여 가상 클러스터의 가상 머신에 제공할 수 있는 프로비저닝을 의미한다. 즉, 병합형 가상 디스크는 각각의 소프트웨어가 독립된 각각의 가상 디스크 형태로 존재한다.
또한, 명세서 작성부 (230) 는 통합형 가상 클러스터를 프로비저닝 하기 위한 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성할 수 있다. 통합형 가상 클러스터 디스크 프로비저닝이란, 복수의 소프트웨어를 통합하여 하나의 소프트웨어 처럼 가상 클러서터의 가상 머신에 제공할 수 있는 프로비저닝을 의미한다. 즉, 통합형 가상 디스크는 모든 소프트웨어를 통합하여 하나의 소프트웨어가 설치된 하나의 가상 디스크 형태로 존재한다.
가상 디스크 생성부 (240) 는 명세서를 기초하여, 가상 디스크를 생성한다. 구체적으로, 가상 디스크 생성부 (240) 는 명세서에 포함된 메타 데이터를 기초로 복제를 통해 가상 디스크를 생성할 수 있다. 즉, 가상 디스크 생성부 (240) 는 제1 병합형 메타 데이터 및 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성할 수 있다. 또한, 가상 디스크 생성부 (240) 는 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성할 수 있다. 다양한 실시예에 따라, 생성된 가상 디스크를 포함한 복수의 가상 머신이 적어도 하나의 중복되는 소프트웨어를 포함하는 경우, 적어도 두 개의 가상 머신은 중복되는 소프트웨어를 포함한 제1 디스크를 공유할 수 있다. 예를 들어, 공유되는 제1 디스크는 읽기만 가능하며, 쓰기가 요구되는 파일들은 가상 머신 각각의 별도의 제2 디스크에 저장될 수 있다.
도 2를 참조하면, 재사용 자산 저장소 (300) 는 재사용 자산 저장소 요청 수신부 (310), 재사용 자산 저장소 관리부 (320) 를 포함한다. 여기서, 재사용 자산 저장소 관리부 (320) 는 재사용 자산 등록부 (321), 재사용 자산 업데이트부 (322), 재사용 자산 삭제부 (323) 및 재사용 자산 접속부 (324) 를 포함한다.
재사용 자산 저장소 (300) 는 재사용 가능한 가상 디스크의 소프트웨어를 분석하는 재사용 기반의 가상 클러스터 구축 장치 (200) 의 재사용 자산 검색부 (221) 와 생성할 가상 디스크들의 생성 절차 및 사용하는 자산을 명세하는 명세서 작성부 (230) 에 의해 사용된다. 또한, 새로운 종류의 가상 디스크가 생성되었을 경우에 재사용 자산 저장소 (300) 는 가상 디스크 생성부 (240) 에 의해 자동 생성된 명세서를 등록한다. 재사용 자산 저장소 (300) 는 저장된 자산을 관리할 수 있으므로 재사용 기반의 가상 클러스터 구축 장치 (200) 가 재사용 자산 저장소 (300) 에 접근하기 위한 드라이버를 관리하는 재사용 자산 저장소 드리이버 관리부 (220) 를 통해 접근하도록 한다.
재사용 자산 저장소 요청 수신부 (310) 는 재사용 자산 저장소 (300) 내부적으로 자산을 관리하기 위한 모든 요청 사항을 수신한다. 구체적으로, 재사용 자산 저장소 요청 수신부 (310) 는 재사용 자산 등록부 (321) 를 통해 자산을 추가하고, 재사용 자산 업데이트부 (322) 를 통해 자산을 갱신하며, 재사용 자산 삭제부 (323) 를 통해 자산을 삭제할 요청 사항을 수신하는 XML RPC 기반의 서버이다. 모든 요청은 재사용 자산 저장소 관리부 (320) 에 의해 처리된다. 재사용 자산 탐색부 (324) 는 재사용 자산 저장소 관리부 (320) 가 자산의 정수형 ID 값을 기반으로 재사용 가능한 가상 디스크가 존재하는지 검색을 요청하였을 경우, 재사용 자산 메타 데이터베이스 (400) 를 통해 복제 가능한 가상 디스크를 검색한다.
재사용 자산 메타 데이터베이스 (400) 는 재사용 자산 저장소 (300) 에서 관리하며, 단순한 스키마 구조를 지닌다. 스키마 구조에는 ID, Name, Type이 구성되어 있다. 여기서, ID는 재사용 가능한 자산의 정수형 식별자로, 가상 디스크의 경우 해당 정수형 ID값을 바탕으로 가상 디스크의 소프트웨어 위치 정보가 담긴 명세서가 검색된다. 또한, Name은 자산의 이름으로, 각 자산이 포함한 소프트웨어 구성 요소 또는 기능을 기반으로 생성되어 등록된다. Type은 자산의 종류 즉, 통합형 가상 디스크 및 병합형 가상 디스크, 소프트웨어 설치 프로그램 및 설정 프로그램이 존재한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 재사용 자산 저장소에 저장된 자산을 관리하고, 필요한 자산의 검색을 통해 검색된 자산에 기초하여 가상 디스크를 생성함으로써, 가상 디스크 프로비저닝을 보다 빠르게 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 자산 검색부를 설명하기 위한 예시적인 블록도이다. 설명의 편의를 위해 도 2의 구성요소들과 도면 부호를 참조하여 설명한다.
도 3을 참조하면, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 가상 디스크 프로비저닝 개시부 (250), 가상 디스크 프로비저닝 프로세스 실행부 (260), 가상 디스크 프로비저닝 태스크 전달부 (270), 가상 디스크 프로비저닝 태스크 실행부 (280) 를 더 포함할 수 있다. 재사용 자산 검색부 (221) 는 재사용 자산 검색 태스크 수행부 (221a), 가상 디스크 자산 검색부 (221b), 자산 검색 결과 생성부 (221c) 및 접근 드라이버 관리부 (221d) 를 포함한다.
가상 디스크 프로비저닝 프로세스 실행부 (260) 는 가상 디스크 프로비저닝 개시부 (250) 를 통해 스레드 형태로 재사용 자산 검색 태스크를 생성한다. 즉, 가상 디스크 프로비저닝 프로세스 수행부 (260) 는 가상 디스크 프로비저닝 개시부 (250) 를 통해 생성된 재사용 자산 검색 태스크 실행부의 인스턴스 레퍼런스 (Instance Reference) 를 획득하여, 생성한 재사용 자산 검색 태스크의 수행을 재사용 자산 검색 태스크 수행부 (221a) 에 요청할 수 있다. 본래 가상 디스크 프로비저닝 프로세스 실행부 (260) 는 가상 디스크 분석 과정을 거쳐야만 재사용 자산 검색 태스크를 생성할 수 있다. 재사용 자산 검색 태스크 객체는 가상 디스크 분석을 통해 분석된 가상 디스크의 특징모델과 고유한 태스크의 ID, 초기 태스크의 상태, 가상 디스크 프로비저닝을 요청한 사용자의 ID 값을 포함하여 생성된다. 생성된 재사용 자산 검색 태스크는 가상 디스크 프로비저닝 프로세스 실행부 (260) 에 존재하는 태스크 버퍼 (Buffer) 에 추가된다. 추가된 태스크 버퍼는 가상 디스크 프로비저닝 태스크 전달부 (270) 에 의해 주기적으로 크기가 확인되며, 하나 이상의 재사용 자산 검색 태스크가 존재할 경우, 재사용 자산 검색 태스크를 가상 디스크 프로비저닝 태스크 실행부 (280) 를 통해 재사용 자산 검색 태스크 수행부 (221a) 로 전달한다.
재사용 자산 검색 태스크 수행부 (221a) 는 수신된 재사용 자산 검색 태스크 객체를 저장하기 위해 내부적으로 태스크 버퍼를 포함하며, 주기적으로 태스크 버퍼의 크기를 확인한다. 재사용 자산 검색 태스크 수행부 (221a) 는 재사용 자산 검색 태스크가 초기 요청 상태일 경우, 'SearchingReusableAsset' 메소드 (Method) 를 이용하여 가상 클러스터 특징모델 중 재사용 가능한 가상 디스크를 분석하기 위한 작업을 가상 디스크 자산 검색부 (221b) 에 지시한다. 또한, 재사용 자산 검색 태스크 수행부 (221a) 는 가상 디스크 자산 검색부 (221b) 에 의해 분석된 재사용 가능한 가상 디스크의 정보와 새롭게 설치하여 생성하는 가상 디스크의 정보를 포함하여 JSON 기반의 최종 결과물을 'generate-FinalTaskResult' 메소드를 이용하여 생성한다. 또한, 재사용 자산 검색 태스크 수행부 (221a) 는 재사용 자산 검색이 종료된 재사용 자산 검색 태스트의 ID 값을 가상 디스크 프로비저닝 프로세스 실행부 (260) 로 전달한다.
가상 디스크 자산 검색부 (221b) 는 재사용 자산 검색 태스크에 존재하는 가상 클러스터 특징모델 문서가 저장된 위치와 각 가상 클러스터 특징모델 문서에 해당하는 가상 디스크가 필요한 개수 정보를 바탕으로 재사용 가능한 가상 디스크가 존재하는지 분석하는 역할을 수행한다. 재사용 가능한 가상 디스크가 존재하는지 분석하기 위해서 가상 디스크 자산 검색부 (221b) 는 가상 클러스터 특징 문서에 해시 함수를 적용하여 고유한 정수형 ID를 생성한다. 해시 함수는 C++의 Standard Library인 'funtional' 에 포함되어 있는 해시 함수인 'hash_fn' 을 사용하였다. 재사용 저장소 (300) 의 재사용 자산 저장소 관리부 (320) 에서 관리하는 모든 재사용 가능한 가상 디스크는 각각의 가상 클러스터 특징모델 문서에 해시 함수를 적용하여 생성된 정수형 ID 값을 바탕으로 저장된다. 만약 사용자가 재사용 자산 저장소 (300) 에 존재하지 않은 새로운 종류의 가상 디스크를 요청하였다면, 가상 디스크 생성부 (240) 에 의해 가상 디스크가 생성된 후, 접근 드라이버 관리부 (221d) 를 통해 재사용 자산 저장소 (300) 에 추가해야 할 수 있다. 새로운 종류의 가상 디스크를 추가하기 위한 과정에서도 설치된 소프트웨어 구성 요소가 포함된 가상 클러스터 특징모델을 기반으로 추가될 가상 디스크의 정수형 ID가 필요할 수 있다. 따라서, 가상 디스크 자산 검색부 (221b) 는 재사용 자산 저장소 (300) 에서 찾고자 하는 재사용 가능한 가상 디스크가 존재하지 않을 경우, 새로운 종류의 가상 디스크라고 판단하여 해당 가상 디스크의 정수형 식별자를 재사용 자산 저장소 (300) 에 자동으로 추가하는 기능을 지닌다. 가상 디스크 자산 검색부 (221b) 가 재사용 자산 저장소 (300) 에 접근할 경우에, 가상 디스크 자산 검색부 (221b) 는 접근 드라아버 관리부 (221d) 를 통해 재사용 자산 저장소 (300) 에 접근한다.
가상 디스크 자산 검색부 (221b) 는 가상 클러스터 특징모델을 바탕으로 재사용 가능한 가상 디스크를 분석하기 위해 사용자가 요청한 가상 디스크의 유형을 고려한다. 만약 사용자가 요청한 가상 디스크가 가상 클러스터에 포함된 가상 머신들이 공유하는 가상 디스크의 유형일 경우, 재사용 가능한 가상 디스크는 서로 병합하여 가상 머신에 제공할 수 있는 형태여야 한다. 즉, 가상 디스크 자산 검색부 (221b) 는 가상 클러스터에 포함된 각각의 소프트웨어를 포함하는 각각의 가상 디스크를 검색해야 한다. 반대로, 가상 디스크 자산 검색부 (221b) 는 가상 클러스터에 포함된 가상 머신이 서로 개별적인 가상 디스크를 요청하였다면, 하나의 가상 디스크에 모든 시스템 및 응용 소프트웨어 설치된 가상 디스크를 검색해야 한다. 뿐만 아니라, 가상 디스크 자산 검색부 (221b) 는 사용자가 요청한 시스템 소프트웨어가 수정될 수 있는지 판단한 후, 검색을 수행해야 한다. 왜냐하면 첫 번째로 기술적으로 수정이 불가능한 시스템 소프트웨어가 존재하기 때문이며, 두 번째로 이 경우 생성 되어야 할 가상 디스크의 모든 소프트웨어 구성 요소들과 정확히 일치하는 가상 디스크가 존재하는지 여부를 판단해야하기 때문이다. 예를 들어, Windows 시스템 운영체제가 설치된 가상 디스크는 복제 후 추가적인 응용 소프트웨어를 설치하는 것이 불가능하다. 만약 사용자가 요청한 가상 클러스터의 가상 디스크가 Windows 시스템 운영체제를 사용하고 있다면, 가상 디스크 자산 검색부 (221b) 는 해당 하는 가상 디스크와 동일한 특징을 지닌 가상 디스크를 검색한다.
가상 디스크 자산 검색부 (221b) 는 재사용 자산 저장소 (300) 에서 찾고자 하는 가상 디스크의 정수형 ID값을 기반으로 재사용 자산 메타 데이터베이스 (400) 에서 동일한 ID값과 가상 디스크 유형을 가상 디스크를 검색한다. 만약 동일한 ID 값을 지닌 가상 디스크가 존재하다면, 재사용 자산 저장소 관리부 (320) 는 해당 가상 디스크의 ID 값을 다시 가상 디스크 자산 검색부 (221b) 에 반환하며, 만약 존재하지 않는다면 '-1' 값을 반환한다. 모든 가상 클러스터 특징모델에 대한 재사용 가능한 가상 디스크의 검색을 마쳤다면, 검색된 가상 디스크의 ID 값을 통합하여 재사용 자산 검색 태스크 수행부 (221a) 로 전달한다.
자산 검색 결과 생성부 (221c) 는 검색된 재사용 가능한 가상 디스크들의 ID값과 가상 클러스터 특징모델에 포함된 소프트웨어 정보를 재사용 자산 검색 태스크 수행부 (221a) 로부터 수신한다. 이어서, 자산 검색 결과 생성부 (221c) 는 가상 클러스터의 특징모델 각각에 포함된 소프트웨어 구성 요소 정보와 가상 디스크 자산 검색부 (221b) 에 의해 검색된 재사용 가능한 가상 디스크의 ID값을 이용하여 재사용 자산 검색 결과 문서를 생성한다. 만약 가상 클러스터 특징모델 중 재사용 가능한 가상 디스크가 존재하였을 경우, 'ReusableVDisk_Info' 항목에 복제할 가상 디스크의 ID 값과 포함된 소프트웨어 구성 요소, 가상 디스크의 유형 등의 정보를 생성한다. 반면에, 재사용 가능한 가상 디스크가 없을 경우, 'NewVDisk_Info' 항목에 새롭게 설치하여 생성할 가상 디스크의 정보를 생성한다. 일부의 소프트웨어만 재사용 가능할 경우, 'NewVDisk_Info' 항목에 해당 가상 디스크의 정보가 생성되며 해당 항목 내 'Depends_VDisk_ID' 요소로 일부 복제 가능한 가상 디스크의 ID 값이 추가된다. 가상 클러스터 특징모델의 모든 가상 디스크에 대한 재사용 가능한 디스크 분석의 최종 결과물은 JSON 기반의 문서로 생성된다. 최종적으로 각 가상 클러스터 특징모델을 기반으로 재사용 가능한 가상 디스크와 새롭게 설치해야 할 가상 디스크의 정보를 포함한 JSON 기반의 처리 결과 문서를 재사용 자산 검색 태스크 객체에 저장한 후, 완료된 태스크 ID값을 가상 디스크 프로비저닝 프로세스 실행부 (260) 에 반환한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 기존에 동일한 가상 디스크를 생성하더라도 명세서 작성과 소프트웨어의 설치 및 설정을 반복했던 것과 달리 검색된 자산을 기초로 명세서를 작성하고, 검색된 자산과 작성한 명세서를 기초로 복제를 통해 가상 디스크를 생성함으로써 가상 디스크 프로비저닝 단계 및 시간을 축소시킨다.
도 4는 본 발명의 실시예에 따라 재사용 기반의 가상 클러스터 구축 장치에 따른 재사용을 통한 가상 디스크 생성 절차를 도시한 것이다. 설명의 편의를 위해 도 2 및 도 3의 구성요소들과 도면 부호를 참조하여 설명한다.
프로비저닝 요청 수신부 (210) 는 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신한다 (S410).
구체적으로, 프로비저닝 요청 수신부 (210) 는 복수의 가상 머신이 포함된 가상 클러스터에 대한 프로비저닝 요청을 수신한다. 이어서, 프로비저닝 요청 수신부 (210) 는 수신한 가상 디스크 프로비저닝 요청을 파싱할 수 있다. 이 때, 가상 클러스터의 가상 머신이 특정 물리 호스트에 배치가 가능한 상태여야 프로비저닝 요청을 파싱할 수 있다. 프로비저닝 요청은 OVF 표준을 따르는 XML 형태의 문서이며, 파싱된 결과는 재사용 기반의 가상 클러스터 구축 장치 (200) 에서 사용할 내부 자료구조로 생성된다. 또한, 프로비저닝 요청 수신부 (210) 는 파싱된 프로비저닝 요청에 존재하는 가상 클러스터의 가상 디스크를 생성할 수 있는지 판단한다. 판단할 수 있는 기준은 프로비저닝 요청에 명세된 가상 클러스터의 가상 디스크 크기를 기반으로 저장할 수 있는 공간이 존재하는지와 사용자에 의해 정의된 가상 디스크 사용 시점까지 프로비저닝이 가능한지의 여부를 판단한다. 이 과정을 수행하기 위해서는 가상 디스크를 저장할 수 있는 공유 저장소가 존재해야하며, 수행 결과는 가상 디스크 프로비저닝 가능 여부이다.
이어서, 자산 검색부 (221) 는 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색한다 (S420).
구체적으로, 자산 검색부 (221) 는 재사용 가능한 가상 디스크를 검색하기 위해 생성할 가상 디스크의 XML 기반 가상 클러스터 특징모델 문서에 해시 함수를 적용하여 생성된 정수형 ID를 이용한다. 자산 검색부 (221) 는 XML RPC 서버인 재사용 자산 저장소 요청 수신부 (310) 에 생성할 가상 클러스터 특징모델에 기반을 둔 정수형 ID에 해당하는 자산이 존재하는지 검색을 요청한다. 재사용 자산 저장소 요청 수신부 (310) 는 요청을 파싱하고, 재사용 자산 저장소 관리부 (320) 의 버퍼에 저장한다. 재사용 자산 저장소 관리부 (320) 는 만약 자산의 정수형 ID 값을 기반으로 재사용 가능한 가상 디스크가 존재하는지 검색을 요청하였다면, 재사용 자산 탐색부 (324) 는 재사용 자산 메타 데이터베이스 (400) 를 통해 복제 가능한 가상 디스크를 검색한다. 따라서, 재사용 자산 검색부 (221) 는 전달받은 재사용 가능한 가상 디스크 명세서에 명시된 복제 가능한 가상 디스크의 이름, 저장된 경로, 사용 시 존재하는 가변적 요소들을 파싱하게 된다.
재사용 자산 검색부 (221) 는 명세서를 생성하기 위해서는 재사용 가능한 가상 디스크의 위치를 검색하거나 소프트웨어 설치 및 설정을 위한 자산 즉, 소프트웨어 설치 프로그램 및 소프트웨어 설정 프로그램을 검색해야 한다. 재사용 가능한 자산의 상세 사용 정보를 모두 명세서에 명세하고, 명세서를 재사용 자산 메타 데이터베이스 (400) 에 저장하여 관리한다. 자산의 검색 또한 찾고자 하는 자산의 종류에 따라 다른 키워드로 검색한다. 재사용 자산 검색부 (221) 는 재사용 가능한 가상 디스크의 명세서를 검색할 경우, 해당 가상 디스크의 특징모델에 해시함수을 적용시켜 생성된 정수형 ID 값으로 검색한다. 그러나 소프트웨어를 설치 프로그램 또는 소프트웨어 설정 프로그램을 검색할 경우, 재사용 자산 검색부 (221) 는 소프트웨어의 이름, 버전, 아키텍처 정보와 설치자 또는 설정자 정보를 기반으로 검색한다. 재사용 자산 저장소 요청 수신부 (310) 는 XML RPC 기반의 요청을 파싱한 뒤 재사용 자산 저장소 관리부 (320) 에게 자산의 검색을 요청한다. 재사용 자산 저장소 관리부 (320) 는 검색할 자산의 종류를 파악한 뒤, 재사용 자산 탐색부 (324) 를 통해 재사용 자산 메타 데이터베이스 (400) 에 접속하여 필요한 자산의 명세서를 검색하고, 검색한 명세서를 재사용 자산 저장소 드라이버 관리부 (220) 로 반환한다.
이어서, 명세서 작성부 (230) 는 재사용 가능한 자산이 검색될 경우, 검색된 재사용 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성한다 (S430).
구체적으로, 명세서 작성부 (230) 는 생성할 가상 디스크의 생성 절차 및 사용하는 자산을 명세한다. 여기서, 명세서는 모든 재사용 가능한 자산의 메타 정보와 사용 방법을 명세한 문서로서, OMG (Object Management Group) 의 RAS (Reusable Asset Specification) 을 사용한다. RAS는 재사용 가능한 자산에 포함된 Artifact의 위치, 사용 방법을 포함하는 자산 명세 방법이다. 즉, 명세서는 RAS를 기반으로 작성된다. 따라서, 명세서 작성부 (230) 에 의해 생성된 명세서를 기초로 가상 디스크가 생성된다. 명세서는 생성된 가상 디스크가 저장된 위치 정보를 포함하여 다시 재사용 자산 저장소 (300) 에 저장될 수도 있다. 또한, 명세서는 재사용 자산 저장소 (300) 에 의해 관리된다.
명세서는 다양한 가상 디스크의 생성에 있어서 활용될 수 있도록 XML 문서로 작성된다. 재사용 가능한 자산이 검색될 경우, 명세서 작성부 (230) 는 유한 정수형 식별자 값을 이용해 기존의 가상 디스크가 저장된 위치를 검색하고 복제하여 설정할 자산을 이용해 명세서를 작성한다.
이 때, 명세서 작성부 (230) 는 생성할 가상 디스크를 포함하는 가상 클러스터의 형태 즉, 병합형 가상 클러스터 또는 통합형 가상 클러스터에 따라 메타 데이터를 생성할 수 있다. 구체적으로, 병합형 가상 클러스터를 프로비저닝하기 위해서 명세서 작성부 (230) 는 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성한다. 또한, 통합형 가상 클러스터를 프로비저닝하기 위해서 명세서 작성부 (230) 는 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성한다.
이어서, 가상 디스크 생성부 (240) 는 명세서를 기초하여, 가상 디스크를 생성한다 (S440).
가상 디스크 생성부 (240) 는 재사용 가능한 가상 디스크를 복제하여 새로운 가상 디스크를 생성하기 때문에 가상 디스크의 생성에 필요한 자산이 저장된 재사용 자산 저장소 (300) 가 필요하다. 또한, 생성된 가상 디스크가 가상 머신 구동 시에 사용될 수 있도록 공유 저장소가 필요하다. 가상 디스크 생성부 (240) 는 명세서에 명세된 순서대로 정의된 소프트웨어 설치 프로그램 및 설정 프로그램을 이용하여 가상 디스크를 생성하고 설정한다.
가상 디스크 생성부 (240) 는 명세서 작성부 (230) 에서 생성된 메타 데이터를 기초로 가상 디스크를 생성할 수도 있다. 예를 들어, 가상 디스크 생성부 (240) 는 명세서 작성부 (230) 에서 생성된 제1 병합형 메타 데이터 및 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성할 수 있다. 이 때, 제2 병합형 메타 데이터는 시스템 소프트웨어의 명칭 빛 버전 정보를 포함한다. 또한, 가상 디스크 생성부 (240) 는 명세서 작성부 (230) 에서 생성된 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성한다.
추가적으로, 재사용 가능한 자산이 존재하지 않아 가상 디스크 생성부 (240) 가 복제가 아닌 설치를 통해 새로운 종류의 가상 디스크를 생성한 경우, 가상 디스크 생성부 (240) 는 자동으로 가상 디스크의 명세서를 생성할 수 있다. 또한, 가상 디스크 생성부 (240) 는 재사용 자산 저장소 (300) 에 생성된 가상 디스크의 ID, 이름, 종류, 명세서를 전달하여 자산을 관리하도록 한다. 가상 디스크의 ID 값은 해당 가상 디스크의 특징모델에 해시 함수를 적용시켜 생성된 정수형 식별자이다. 이름은 설치된 소프트웨어의 이름, 버전, 아키텍처 등의 정보를 포함한 이름을 의미한다. 가상 디스크의 ID, 이름, 종류, 명세서는 재사용 자산 저장소 요청 수신부 (310) 로 전달되며, 파싱 과정을 통해 재사용 자산 저장소 관리부 (320) 에 전달된다. 재사용 자산 저장소 관리부 (320) 는 재사용 자산 등록부 (321) 를 통해 재사용 자산 메타 데이터베이스 (400) 에 접속하여 생성된 가상 디스크의 명세서를 등록한다. 새로 생성된 가상 디스크를 재사용 가능한 형태의 자산화를 이루기 위해서는 반드시 가상 디스크의 위치 정보가 포함된 명세서를 작성한 뒤, 작성한 명세서를 재사용 자산 저장소 (300) 에 저장하여야 한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 재사용 가능한 자산을 재사용 자산 저장소 (300) 에 저장하여 점증적으로 늘어나는 가상 디스크의 재사용성을 관리한다.
도 5는 본 발명의 다른 실시예에 따라 가상 클러스터 특징모델을 기초로 재사용 가능한 자산에 식별자 값을 부여하는 과정을 도시화 한 것이다.
도 5를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 재사용 가능한 가상 디스크를 분석하기 위해서 가상 디스크가 지닌 소프트웨어 구성의 특징을 가상 클러스터 특징모델로 표현하고, 해시 함수를 통해 생성된 식별자 값 즉, 정수형 ID 값을 기준으로 재사용 가능한 가상 디스크를 관리한다.
도 5를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 가상 클러스터 특징모델 (510) 에 시스템 소프트웨어 (511) 로 Debian 8.0 Base 패키지를 포함하고, Hadoop 2.6.0인 제1 응용 소프트웨어 (512) 와 OpenJDK 7.0인 제2 응용 소프트웨어 (513) 를 포함하여 생성한다. 또한, 재사용 기반의 가상 클러스터 구축 장치는 가상 클러스터 특징모델 (510) 을 기초로 XML 형태의 가상 클러스터 특징모델 문서 (520) 를 생성한다. 이어서, 재사용 기반의 가상 클러스터 구축 장치는 가상 클러스터 특징모델 문서 (520) 에 해시 함수를 적용하여 정수형 ID값 (530) 인 '1956267503'을 생성한다. 여기서, 해시 함수는 C++의 Standard Library인 funtional에 포함되어 있는 해시 함수인 hash_fn을 사용한다. 재사용 기반의 가상 클러스터 구축 장치는 생성된 가상 클러스터 특징모델 문서 (520) 의 정수형 ID값 (530) 을 기반으로 재사용이 가능한 가상 디스크가 존재하는지 검색한다. 구체적으로, 재사용 기반의 가상 클러스터 구축 장치는 재사용 자산 저장소에서 정수형 ID값 (530) 과 동일한 정수형 ID값을 지닌 가상 디스크가 존재하는지 검색한다. 추가적으로, 재사용 자산 저장소에 재사용이 가능한 가상 디스크가 존재하는 경우, 재사용 기반의 가상 클러스터 구축 장치는 재사용이 가능한 가상 디스크의 정수형 ID값, 가상 디스크에 포함된 소프트웨어 구성 요소, 가상 디스크의 유형 등의 데이터를 포함한 JSON 기반의 최종 결과 문서를 생성한다. 구체적으로, 재사용 기반의 가상 클러스터 구축 장치는 재사용 가능한 가상 디스크가 존재하였을 경우, 'Reusable Vdisk_Info' 항목에 복제할 가상 디스크의 ID 값과 소프트웨어의 구성 요소, 가상 디스크의 유형 등의 정보를 포함하여 문서를 생성한다. 반면에, 재사용 가능한 가상 디스크가 존재하지 않을 경우, 'NewVDisk_Info' 항목에 새롭게 설치하여 생성할 가상 디스크의 정보를 포함하여 문서를 생성한다. 만약, 일부의 소프트웨어만 재사용이 가능할 경우 'NewVDisk_Info' 항목에 해당 가상 디스크의 정보가 생성되며, 해당 항목 내 'Depends_Vdisk_ID' 요소로 일부 복제 가능한 가상 디스크의 ID 값도 포함하여 문서를 생성한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치는 가상 클러스터 특징모델 문서에 정수형 ID값을 부여함으로써 동일한 가상 디스크를 복제하는 경우, 정수형 ID값을 기초로 기존에 생성된 가상 디스크의 자산을 검색하고, 검색된 결과에 따라 자산을 재사용하여 복제할 수 있도록 한다.
도 6은 본 발명의 다른 실시예에 따라 식별자 값을 기초로 명세서를 검색하는 과정을 도시화 한 것이다.
도 6을 참조하면, 재사용 기반의 가상 클러스터 장치는 시스템 소프트웨어 (611) 인 Debian 8.0, 제1 응용 소프트웨어 (612) 인 Open JDK 7.0 및 제2 응용 소프트웨어 (613) 인 Hadoop 2.6.0 이 설치된 가상 디스크 (610) 에 대응하는 가상 디스크 프로비저닝 절차 및 가상 디스크의 자산을 명세한 문서인 명세서 (640) 를 생성한다. 여기서, 명세서 (640) 는 XML 형태의 문서로, 빈 가상 디스크 이미지 파일을 생성하고, 새로운 시스템 및 응용 소프트웨어를 설치하는 절차를 포함한다. 또한, 명세서 (640) 는 생성된 가상 디스크를 향후에 재사용하기 위하여 재사용 자산 저장소 (630) 에 저장하고, 생성된 가상 디스크를 필요한 개수만큼 복제하고, 복제된 가상 디스크에 소프트웨어를 설정하는 절차를 포함한다. 또한, 이미 재사용 자산 저장소 (630) 에 저장된 가상 디스크의 특징모델을 기초로 가상 디스크를 복제하는 경우, 명세서 (640) 는 빈 가상 디스크 이미지 파일을 생성하는 절차, 재사용 가능한 가상 디스크 내용을 복제하는 절차 및 생성된 가상 디스크를 필요한 개수만큼 복제 및 복제된 가상 디스크에 소프트웨어를 설정하는 절차를 포함한다.
도 6를 참조하면, 재사용 기반의 가상 클러스터 구축 장치는 가상 디스크 (610) 를 포함한 가상 클러스터 특징모델 문서에 부여된 정수형 ID값 (620) 을 기초로 이미 재사용 자산 저장소 (630) 에 동일한 특징모델 문서가 존재하는지 검색한다. 즉, 정수형 ID값 (620) 을 이용한 검색을 통해 재사용 기반의 가상 클러스터 구축 장치는 재사용 자산 저장소 (630) 에서 가상 디스크 생성에 필요한 재사용할 자산인 소프트웨어 설치 프로그램 및 소프트웨어 설정 프로그램 등을 검색한다.
이에 따라, 재사용 기반의 가상 클러스터 구축 장치 (200) 는 식별자 값인 정수형 ID값을 통해 재사용 자산 저장소에 저장된 자산을 검색함으로써, 재사용할 자산을 용이하게 검색할 수 있도록 한다.
도 7의 (a) 내지 도 7의 (b)는 본 발명의 다른 실시예에 따라 가상 디스크 프로비저닝의 효과를 도시화 한 것이다.
도 7의 (a)를 참조하면, 비재사용 및 재사용 기반의 가상 디스크 유형 별 단일 가상 디스크 생성 시간 측정 결과 그래프 (710) 를 나타낸다. 가상 디스크 프로비저닝의 효과를 확인하기 위해서 사용한 가상 디스크의 크기는 3GB 이며, 시스템 소프트웨어는 데비안 (Debian) 7.0, 응용 소프트웨어는 OpenJDK 7.0, 하둡 (Hadoop) 2.6.0, 그리고 HBase 1.1.1을 사용하였다. 효과를 확인한 결과, 4개의 VCPU와 4GB의 메모리를 할당한 가상 머신 상에서의 비재사용 통합형 가상 디스크 (711) 는 1273.85초의 생성시간을 나타내고, 비재사용 병합형 가상 디스크 (712) 는 1217.69초의 생성 시간을 나타내었다. 여기서, 병합형 가상 디스크는 병합형 가상 디스크 프로비저닝에 의해 생성되어 각각의 소프트웨어가 독립된 각각의 가상 디스크 형태로 존재한다. 병합형 가상 클러스터 프로비저닝이란, 가상 디스크를 소프트웨어 종류 별로 분류하고, 분류된 복수의 소프트웨어를 병합하여 가상 클러스터의 가상 머신에 제공할 수 있는 프로비저닝을 의미한다. 따라서, 재사용 기반의 가상 클러스터 구축 장치는 각각의 병합형 가상 디스크들을 병합하여 가상 머신에 제공한다. 또한, 통합형 가상 디스크는 통합형 가상 디스크 프로비저닝에 의해 생성되어 모든 소프트웨어를 통합하여 하나의 소프트웨어가 설치된 하나의 가상 디스크 형태로 존재한다. 통합형 가상 클러스터 프로비저닝이란, 복수의 소프트웨어를 통합하여 하나의 소프트웨어 처럼 가상 클러스터의 가상 머신에 제공할 수 있는 프로비저닝을 의미한다. 따라서, 재사용 기반의 가상 클러스터 구축 장치는 각각의 소프트웨어를 통합하여 설치한 통합형 가상 디스크를 가상 머신에 제공한다.
비재사용 통합형 및 병합형 가상 디스크 (711, 712) 의 생성 시간 차이는 시스템 및 응용 소프트웨어를 설치하는 시간이 각 소프트웨어 패키지들이 존재하는 외부 저장소를 사용하기 때문에 발생될 수 있는 차이라고 볼 수 있다. 비재사용 통합형 및 병합형 가상 디스크 (711, 712) 의 생성 시간 차이는 소프트웨어 패키지가 존재하는 외부 저장소의 네트워크 환경에 따라서 설치 시간의 미미한 차이를 내는 것이라고 볼 수 있다. 따라서, 비재사용 통합형 및 병합형 가상 디스크 (711, 712) 의 생성 시간은 가상 디스크 유형에 상관없이 유사함을 알 수 있다.
시스템 소프트웨어가 설치된 가상 디스크를 재사용할 경우 통합형 및 병합형 가상 디스크 (713, 714) 의 총 생성 시간은 각각 629.16초와 608.96초를 나타낸다. 시스템 소프트웨어만을 재사용할 경우 응용 소프트웨어는 설치해야하기 때문에 이와 같은 결과가 나타났음을 확인할 수 있다. 비재사용 가상 디스크 (711, 712) 의 생성과 마찬가지로 시스템 소프트웨어 재사용 통합형 및 병합형 가상 디스크 (713, 714) 생성 시간의 차이는 설치할 응용 소프트웨어의 패키지가 외부 저장소에 저장되어있기 때문에 발생될 수 있는 차이라 해석할 수 있다. 결과적으로, 시스템 소프트웨어를 재사용하더라도 추가적으로 설치해야 하는 응용 소프트웨어가 존재하였을 경우, 시스템 소프트웨어 재사용 통합형 및 병합형 가상 디스크 (713, 714) 의 생성 시간은 유사함을 확인할 수 있다. 시스템 및 응용 소프트웨어가 설치된 가상 디스크를 모두 재사용 할 경우 통합형과 병합형 가상 디스크 (715, 716) 의 생성 시간은 각각 356.17초와 233.87초를 나타낸다. 시스템 및 응용 소프트웨어 재사용 통합형 가상 디스크 (715) 에 비해 시스템 및 응용 소프트웨어 재사용 병합형 가상 디스크 (716) 의 생성 시간이 단축된 이유는 재사용 가능한 가상 디스크 복제의 방법차이에서 발생되는 것이라고 볼 수 있다. 시스템 및 응용 소프트웨어 재사용 통합형 가상 디스크 (715) 는 사용자가 요청한 가상 디스크의 크기만큼 빈 디스크 이미지를 생성한 후에 재사용 가능한 가상 디스크의 내용물을 복제한다. 재사용 가능한 가상 디스크의 크기가 2.2GB일 경우 사용자가 요청한 가상 디스크 크기인 3GB를 제공할 수 없기 때문이다. 이에 비해, 시스템 및 응용 소프트웨어 재사용 병합형 가상 디스크 (716) 는 Upper 디스크를 생성하여 병합함으로써 재사용 가능한 소프트웨어가 설치된 가상 디스크를 그대로 복제하여 사용할 수 있다. 여기서, Upper 디스크란, 병합형 가상 디스크에 설치된 소프트웨어에 대한 설정을 저장하고, 쓰기 작업으로 인해 저장되어야 하는 데이터를 저장하는 디스크이다. 만약 재사용 가능한 가상 디스크의 크기가 2.2GB일 경우 Upper 디스크를 0.8GB 생성하여 제공하면 되기 때문이다. 재사용 가능한 가상 디스크 이미지의 내용물을 복제하는 것은 존재하는 모든 파일별 복제 작업을 반복적으로 수행하기 때문에 하나의 디스크 이미지 파일을 복제하는 시간에 비해 많은 복제시간을 소모하게 된다. 따라서, 소프트웨어 구성 요소를 모두 재사용하는 경우 통합형에 비해 병합형 디스크 생성 시간이 단축될 수밖에 없다.
도 7의 (b)를 참조하면, 총 가상 머신 수의 증가에 따른 가상 디스크 프로비저닝 전처리 과정 시간 비율의 그래프 (720) 를 나타낸다. 실제 전처리 과정에서 발생되는 시간적 오버헤드 (Overhead) 에 비해 가상 디스크를 실제 생성하는 시간의 비율이 커짐에 따라 미미한 오버헤드를 일으킴을 확인할 수 있다. 물론 총 가상 머신의 수가 14대 (721) 일 때 가장 높은 전처리 과정의 시간적 비율 (0.55%) 을 보임을 확인할 수 있다. 그러나 총 가상 머신의 수가 증가하면 증가할수록 전체 가상 디스크 프로비저닝 시간 대비 전처리 과정의 시간적 비율이 낮아짐을 확인할 수 있다. 이는 전처리 과정이 가상 클러스터 당 1회적으로만 발생되기 때문이며, 상대적으로 가상 디스크를 생성하는 시간이 전처리 과정에 비해 많은 시간을 소모하기 때문에 발생되는 결과라 할 수 있을 것이다. 물론 만약 가상 클러스터 서브그룹 별 포함된 소프트웨어 구성 요소가 다양할 경우 총 가상 머신 수의 증가에 따른 가상 디스크 프로비저닝 전처리 과정 시간 비율의 그래프 (720) 의 결과보다 많은 가상 디스크 프로비저닝 전처리 시간을 소모하게 될 것이다. 그러나 가상 클러스터의 소프트웨어 구성요소가 증가한다는 것은 그만큼 설치해야 할 소프트웨어도 증가한다는 것이다. 따라서 본 발명에서 수행하는 가상 디스크 프로비저닝 전처리 과정에서 발생 되는 시간은 실제 가상 디스크 생성 시간을 고려하였을 때 미미한 시간적 오버헤드를 야기한다고 해석할 수 있을 것이다.
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110 가상 머신
120, 140 가상 디스크
130 소프트웨어
131 시스템 소프트웨어
132 제1 응용 소프트웨어
133 제2 응용 소프트웨어
200 재사용 기반의 가상 클러스터 구축 장치
210 프로비저닝 요청 수신부
220 재사용 자산 저장소 드라이버 관리부
221 재사용 자산 검색부
221a 재사용 자산 검색 태스크 수행부
221b 가상 디스크 자산 검색부
221c 자산 검색 결과 생성부
221d 접근 드라이버 관리부
230 명세서 작성부
240 가상 디스크 생성부
250 가상 디스크 프로비저닝 개시부
260 가상 디스크 프로비저닝 프로세스 실행부
270 가상 디스크 프로비저닝 태스크 전달부
280 가상 디스크 프로비저닝 태스크 실행부
300 재사용 자산 저장소
310 재사용 자산 저장소 요청 수신부
320 재사용 자산 저장소 관리부
321 재사용 자산 등록부
322 재사용 자산 업데이트부
323 재사용 자산 삭제부
324 재사용 자산 탐색부
400 재사용 자산 메타 데이터베이스
510 가상 클러스터 특징모델
511, 611 시스템 소프트웨어
512, 612 제1 응용 소프트웨어
513, 613 제2 응용 소프트웨어
520 가상 클러스터 특징모델 문서
530, 620 정수형 ID값
610 가상 디스크
630 재사용 자산 저장소
640 명세서
710 비재사용 및 재사용 기반의 가상 디스크 유형 별 단일 가상 디스크 생성 시간 측정 결과 그래프
711 비재사용 통합형 가상 디스크
712 비재사용 병합형 가상 디스크
713 시스템 소프트웨어 재사용 통합형 가상 디스크
714 시스템 소프트웨어 재사용 병합형 가상 디스크
715 시스템 및 응용 소프트웨어 재사용 통합형 가상 디스크
716 시스템 및 응용 소프트웨어 재사용 병합형 가상 디스크
720 총 가상 머신 수의 증가에 따른 가상 디스크 프로비저닝 전처리 과정 시간 비율의 그래프
721 가상 머신 수 14대

Claims (14)

  1. 단계들이 프로세서에 의해 실행되는 재사용 기반의 가상 클러스터 구축 방법에 있어서,
    하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 단계;
    상기 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 단계;
    상기 재사용 가능한 자산이 검색될 경우, 검색된 상기 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 단계; 및
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 단계를 포함하고,
    상기 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는, 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성하는 단계를 포함하고,
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 단계는, 상기 제1 병합형 메타 데이터 및 상기 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성하는 단계를 포함하고, 상기 제2 병합형 메타 데이터는 상기 시스템 소프트웨어의 명칭 및 버전 정보를 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  2. 제1항에 있어서,
    상기 재사용 가능한 자산을 검색하는 단계는,
    상기 프로비저닝 요청이 상기 재사용 가능한 자산 중 가상 디스크에 대한 검색을 포함하는 경우, 상기 가상 디스크의 메타 정보와 연관된 해시 함수 (Hash Function) 에 기초하여 생성된 식별자 (Identification) 값으로 상기 재사용 가능한 자산 중 매칭하는 가상 디스크를 검색하는 단계를 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  3. 제1항에 있어서,
    상기 재사용 가능한 자산을 검색하는 단계는,
    상기 프로비저닝 요청이 상기 재사용 가능한 자산 중 소프트웨어의 설치 프로그램 또는 설정 프로그램에 대한 검색을 포함하는 경우, 설치를 요청받은 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보 중 적어도 하나의 정보로 상기 설치 프로그램 또는 상기 설정 프로그램을 검색하는 단계를 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  4. 제1항에 있어서,
    상기 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는,
    생성할 상기 가상 디스크의 생성 절차 및 사용하는 자산을 명세하는 단계를 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  5. 제1항에 있어서,
    프로세서에 의해 실행되는, 생성된 상기 가상 디스크 중에서 복제가 아닌 설치된 가상 디스크의 식별자 값, 이름, 종류 및 상기 명세서 중 적어도 하나를 상기 재사용 자산 저장소에 저장하는 단계를 더 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  6. 삭제
  7. 단계들이 프로세서에 의해 실행되는 재사용 기반의 가상 클러스터 구축 방법에 있어서,
    하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 단계;
    상기 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 단계;
    상기 재사용 가능한 자산이 검색될 경우, 검색된 상기 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 단계; 및
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 단계를 포함하고,
    상기 가상 디스크를 생성하기 위한 명세서를 작성하는 단계는, 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성하는 단계를 포함하고,
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 단계는, 상기 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성하는 단계를 포함하는, 재사용 기반의 가상 클러스터 구축 방법.
  8. 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 프로비저닝 요청 수신부;
    상기 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 자산 검색부;
    상기 자산 검색부로부터 상기 재사용 가능한 자산이 검색될 경우, 검색된 상기 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 명세서 작성부; 및
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 가상 디스크 생성부를 포함하고,
    상기 명세서 작성부는, 시스템 소프트웨어에 대응하는 제1 병합형 메타 데이터 및 응용 소프트웨어에 대응하는 제2 병합형 메타 데이터를 생성하고,
    상기 가상 디스크 생성부는, 상기 제1 병합형 메타 데이터 및 상기 제2 병합형 메타 데이터를 기초로 각각의 가상 디스크를 생성하고, 상기 제2 병합형 메타 데이터는 상기 시스템 소프트웨어의 명칭 및 버전 정보를 포함하는, 재사용 기반의 가상 클러스터 구축 장치.
  9. 제8항에 있어서,
    상기 자산 검색부는,
    상기 프로비저닝 요청이 상기 재사용 가능한 자산 중 가상 디스크에 대한 검색을 포함하는 경우, 상기 가상 디스크의 메타 정보와 연관된 해시 함수에 기초하여 생성된 식별자 값으로 상기 재사용 가능한 자산 중 매칭하는 가상 디스크를 검색하는, 재사용 기반의 가상 클러스터 구축 장치.
  10. 제8항에 있어서,
    상기 자산 검색부는,
    상기 프로비저닝 요청이 상기 재사용 가능한 자산 중 소프트웨어의 설치 프로그램 또는 설정 프로그램에 대한 검색을 포함하는 경우, 설치를 요청받은 소프트웨어의 이름 정보, 버전 정보, 아키텍처 정보, 설치자 정보 및 설정자 정보 중 적어도 하나의 정보로 상기 설치 프로그램 또는 상기 설정 프로그램을 검색하는, 재사용 기반의 가상 클러스터 구축 장치.
  11. 제8항에 있어서,
    상기 명세서 작성부는,
    생성할 상기 가상 디스크의 생성 절차 및 사용하는 자산을 명세하는, 재사용 기반의 가상 클러스터 구축 장치.
  12. 제8항에 있어서,
    생성된 상기 가상 디스크 중에서 복제가 아닌 설치된 가상 디스크의 식별자 값, 이름, 종류 및 상기 명세서 중 적어도 하나를 상기 재사용 자산 저장소에 저장하는 재사용 자산 저장부를 더 포함하는, 재사용 기반의 가상 클러스터 구축 장치.
  13. 삭제
  14. 하나 이상의 가상 머신에 대한 프로비저닝 요청을 수신하는 프로비저닝 요청 수신부;
    상기 프로비저닝 요청에 대응하여 재사용 자산 저장소에 저장된 자산 중 재사용 가능한 자산을 검색하는 자산 검색부;
    상기 자산 검색부로부터 상기 재사용 가능한 자산이 검색될 경우, 검색된 상기 재사용 가능한 자산을 사용하여 가상 디스크를 생성하기 위한 명세서를 작성하는 명세서 작성부; 및
    상기 명세서에 기초하여, 상기 가상 디스크를 생성하는 가상 디스크 생성부를 포함하고,
    상기 명세서 작성부는, 시스템 소프트웨어 및 응용 소프트웨어에 대한 하나의 메타 데이터인 통합형 메타 데이터를 생성하고,
    상기 가상 디스크 생성부는, 상기 통합형 메타 데이터를 기초로 하나의 가상 디스크를 생성하는, 재사용 기반의 가상 클러스터 구축 장치.
KR1020160148661A 2016-01-22 2016-11-09 재사용 기반의 가상 클러스터 구축 방법 및 장치 KR101866086B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160148661A KR101866086B1 (ko) 2016-11-09 2016-11-09 재사용 기반의 가상 클러스터 구축 방법 및 장치
PCT/KR2016/015573 WO2017126819A1 (ko) 2016-01-22 2016-12-30 가상 디스크 프로비저닝 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160148661A KR101866086B1 (ko) 2016-11-09 2016-11-09 재사용 기반의 가상 클러스터 구축 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180051831A KR20180051831A (ko) 2018-05-17
KR101866086B1 true KR101866086B1 (ko) 2018-07-04

Family

ID=62486208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160148661A KR101866086B1 (ko) 2016-01-22 2016-11-09 재사용 기반의 가상 클러스터 구축 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101866086B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241110A1 (en) 2008-03-20 2009-09-24 Samsung Electronics Co., Ltd. Virtual environment system and method for operating the same
US20130212593A1 (en) 2012-02-10 2013-08-15 International Business Machines Corporation Controlled Growth in Virtual Disks
KR101352699B1 (ko) 2011-11-30 2014-01-17 삼성에스디에스 주식회사 병렬 처리 기반의 가상 클러스터 컴퓨팅 시스템의 프로비저닝 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241110A1 (en) 2008-03-20 2009-09-24 Samsung Electronics Co., Ltd. Virtual environment system and method for operating the same
KR101352699B1 (ko) 2011-11-30 2014-01-17 삼성에스디에스 주식회사 병렬 처리 기반의 가상 클러스터 컴퓨팅 시스템의 프로비저닝 방법 및 장치
US20130212593A1 (en) 2012-02-10 2013-08-15 International Business Machines Corporation Controlled Growth in Virtual Disks

Also Published As

Publication number Publication date
KR20180051831A (ko) 2018-05-17

Similar Documents

Publication Publication Date Title
US11150916B2 (en) Execution of workflows in distributed systems
US11567755B2 (en) Integration of containers with external elements
US11561956B2 (en) Key pattern management in multi-tenancy database systems
EP3477500B1 (en) Deploying changes in a multi-tenancy database system
Venner Pro hadoop
US20190130121A1 (en) System sharing types in multi-tenancy database systems
US9069620B2 (en) Creating and deploying service-ready virtual hard disks
US20180060065A1 (en) Advanced packaging techniques for improving work flows
US20120011496A1 (en) Service providing apparatus, service providing system, method of processing data in service providing apparatus, and computer program
JP2016201133A (ja) プライベート・クラウド・コンピューティングためのシステムおよび方法
US20170161149A1 (en) Backup management of software environments in a distributed network environment
US11907905B2 (en) Namespace management techniques for facilitating multi-cluster application development
US10338910B2 (en) Multi-tenant upgrading
US20170115980A1 (en) Computerized system and method for patching an application by separating executables and working data using different images
US20160062754A1 (en) Coordinating Application Deployment with a Platform Tier
US20140279908A1 (en) Method and system for generating and deploying container templates
JP7373587B2 (ja) Dbmsにおけるサービス管理
Vernik et al. Stocator: Providing high performance and fault tolerance for apache spark over object storage
KR101866086B1 (ko) 재사용 기반의 가상 클러스터 구축 방법 및 장치
WO2022199136A1 (zh) 应用改造方法、系统、集群、介质及程序产品
WO2011157105A2 (zh) 组件扩展方法和装置
KR101841847B1 (ko) 가상 디스크 프로비저닝 관리 방법 및 장치
WO2020029995A1 (en) Application upgrading through sharing dependencies
KR102019799B1 (ko) 읽기 및 쓰기가 가능한 가상 디스크의 병합 마운팅을 통한 가상 클러스터 구축 방법 및 장치
US11256602B2 (en) Source code file retrieval

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right