KR102252050B1 - 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 - Google Patents
가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 Download PDFInfo
- Publication number
- KR102252050B1 KR102252050B1 KR1020190079178A KR20190079178A KR102252050B1 KR 102252050 B1 KR102252050 B1 KR 102252050B1 KR 1020190079178 A KR1020190079178 A KR 1020190079178A KR 20190079178 A KR20190079178 A KR 20190079178A KR 102252050 B1 KR102252050 B1 KR 102252050B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- virtual machine
- container
- operating system
- infrastructure
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 일 실시예에 따른 가상 머신 인프라스트럭처 구축 방법이 제공된다. 가상 머신 인프라스트럭처 구축 방법은 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 컨테이너 이미지를 획득하는 단계, 획득된 컨테이너 이미지에서 레이어 이미지(layered image)를 추출하는 단계, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계 및 변환된 가상 머신용 디스크 이미지를 이용하여 가상 머신 인프라스트럭처에 배포하도록 하는 단계를 포함한다.
Description
본 발명은 컨테이너 이미지의 변환을 이용한 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치에 관한 것이다.
서비스로서의 인프라스트럭처(Infrastructure as a Service, IaaS)는 클라우드 서비스에서 베어메탈(Bare Metal)기반 물리적 머신, 가상화 기반 가상머신(Virtual Machine) 및 컨테이너화 기반 컨테이너와 같은 컴퓨팅 자원을 제공하는 것을 의미할 수 있다.
이러한 서비스로서의 인프라스트럭처를 구축하는 것이 점점 더 복잡해지고 클러스터(cluster)가 점점 더 확장되어 감에 따라, 서비스로서의 인프라스트럭처를 제공하는 인프라 환경을 제공하는 것이 더 어려워지고 있다.
특히, 가상의 인프라스트럭처 환경에서, 한 대 이상의 가상 머신이 포함된 가상 클러스터(virtual cluster)와 같은 대규모의 클러스터가 구현되는 경우, 운영체제와 어플리케이션 소프트웨어와 같은 각종 소프트웨어를 각각의 가상 머신에 반복해서 배포를 해야 하는 불편이 발생한다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
전술한 바와 같은 문제점들을 해결하기 위해, 기존의 가상 머신용 이미지를 이용하여 동일한 환경으로 구성된 가상 머신을 여러 대 구축하기 위한 이미지 재사용 방법이 제안되었다.
그러나, 새롭게 생성된 가상 머신에 기존의 가상 머신의 호스트 네임(host name)이 남아있게 된다. 이로 인해, 동일한 네트워크 인터페이스의 하드웨어 주소 중복으로 인한 충돌 문제가 발생하지 않도록 기존의 정보를 삭제해 재사용이 가능한 이미지를 만드는 과정(Deprovion)이 필요하다. 또한, 다양한 인프라스트럭처 환경의 가상 머신이 필요한 경우, 그러한 환경을 제공하기 위한 가상 머신용 이미지를 모두 직접 생성하는 단계가 필요한 점에서 불편이 있을 수 있다.
한편, 본 발명의 발명자들은, 전술한 바와 같은 한계를 극복하기 위한 방안으로 격리된 공간에서 실행되는 컨테이너 이미지에 주목하였다.
보다 구체적으로 컨테이너는 실행환경 격리 기술을 이용하여 제한된 영역 안에서 컨테이너 이미지 실행의 독립성을 보장받는 기술이다. 관련하여, 운영체제의 커널(kernel)뿐만 아니라 기본 서비스나 사용하지 않는 유틸리티 등은 컨테이너 이미지에 담길 필요가 없다. 때문에, 본 발명의 발명자들은, 가상 머신의 디스크 이미지를 비교하는 것이 컨테이너 이미지의 용량을 작게 유지할 수 있어 컨테이너 이미지 획득이 용이하고 컴퓨팅 자원을 위한 비용이 줄어들 수 있음을 인지할 수 있었다.
나아가, 본 발명의 발명자들은, 이러한 컨테이너 이미지의 특징으로 인해 다양한 소프트웨어 환경에 맞는 컨테이너 이미지를 생성할 필요가 없음에 주목하였다. 소프트웨어를 작동시키는 기반 하드웨어와 소프트웨어 환경의 조합이 다양해 가상 머신용 이미지를 생성할 시에는 다양한 운영체제와 그 운영체제 환경에 맞는 소프트웨어가 포함될 수 있다. 따라서 제한된 데이터베이스 하에서 이미 존재하는 가상 머신용 이미지는 재사용에 있어 제약이 있을 수 있다. 하지만 컨테이너 이미지는 소프트웨어 실행에 필요한 파일만 자신의 이미지에 담으면 되므로 소프트웨어 환경의 다양한 조건에 맞춰 일일이 컨테이너 이미지를 생성할 필요 없을 수 있다. 이와 관련하여, 본 발명자들은 이미 존재하는 컨테이너 이미지의 활용이 용이하다는 것을 인지할 수 있었다.
그 결과, 본 발명의 발명자들은, 컨테이너 이미지를 재사용 하는 장치를 개발하기에 이르렀다.
보다 구체적으로, 본 발명의 발명자들은 컨테이너 관리 서버에서 획득한 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환해 변환된 디스크 이미지를 가상 머신 인프라스트럭처에 배포하는 장치를 개발하였다.
결과적으로, 본 발명의 발명자들은 가상 머신용 디스크 이미지를 생성할 때 필요한 노동력과 컴퓨팅 자원을 최소화할 수 있고, 컨테이너 관리 서버로부터의 컨테이너 이미지 획득이 용이하다는 것을 확인할 수 있었다.
이에, 본 발명이 해결하고자 하는 과제는 컨테이너 이미지의 재사용을 통한 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치를 제공하는 것이다.
구체적으로, 본 발명이 해결하고자 하는 과제는 컨테이너 관리 서버로부터 획득한 컨테이너 이미지를 가상 머신의 기술에 따라 가상 머신용 이미지로 변환하여, 상기 이미지를 가상 머신 인프라스트럭처에 배포하기 위한 인프라스트럭처 구축 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 가상 머신의 가상화 방식에 따른 가상 머신용 디스크 이미지의 구조 차이점을 반영한 컨테이너 이미지 변환 방법을 제공해, 가상 머신의 종류에 구애 받지 않는 컨테이너 이미지 변환 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 머신 인프라스트럭처 구축 방법이 제공된다. 가상 머신 인프라스트럭처 구축 방법은 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 컨테이너 이미지를 획득하는 단계, 획득된 컨테이너 이미지에서 레이어 이미지(layered image)를 추출하는 단계, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계 및 변환된 가상 머신용 디스크 이미지를 이용하여 가상 머신 인프라스트럭처에 배포하도록 하는 단계를 포함한다.
본 발명의 특징에 따르면, 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 컨테이너 이미지를 획득하는 단계는, 사용될컨테이너 이미지를 컨테이너 관리 서버에서 검색하는 단계 및 검색된 컨테이너 이미지를 획득하는 단계를 포함할 수 있다.
본 발명의 다른 특징에 따르면, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하는 단계는, 컨테이너 이미지 중변환이 요구되는 부분을 결정하는 단계 및 변환이 요구되는 부분을 상기 컨테이너 이미지로 추출하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널(kernel)을 공유하는 경우, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하는 단계는, 가상 머신의 운영체제를 포함하는 운영체제 이미지를 추출하는 단계를 포함하고, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계는, 추출된 운영체제 이미지를 가상 머신용 운영체제 이미지로 변환하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 추출된 운영체제 이미지를 가상 머신용 운영체제 이미지로 변환하는 단계는, 호스트의 운영체제와 가상 머신의 운영체제가 커널을 공유할 수 있도록 설정을 변환하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널을 공유하지 않는 경우, 획득된 이미지에서 레이어 이미지를 추출하는 단계는, 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지만을 추출하는 단계를 포함하고, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계는, 추출된 어플리케이션 소프트웨어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하는 단계는, 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지만을 추출하는 단계를 포함하고, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계는, 추출된 어플리케이션 소프트웨어 이미지를 가상 머신용 디스크 이미지로 변환하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 쓰기 가능한 어퍼 디스크(upper disk)를 생성하는 단계 및 쓰기 가능한 어퍼 디스크 및 읽기 전용으로 설정된 가상 머신용 디스크 이미지를 병합함으로써 최종 가상 머신용 디스크 이미지를 생성하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 상기 방법은 최종 가상 머신용 디스크 이미지를 별도의 데이터 베이스 또는 가상 머신 인프라스트럭처 구축 장치에 저장하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 변환된 가상 머신용 디스크 이미지를 이용하여 가상 머신 인프라스트럭처에 배포하도록 하는 단계는, 가상 머신 인프라스트럭처 설계에 관한 스킴(scheme)을 생성하는 단계, 스킴을 데이터를 기술하는 코드로 이루어진 명세서로 변환하는 단계, 및 명세서를 기반으로 가상 머신 인프라스트럭처에 소프트웨어를 배포하도록 하는 단계를 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 머신 인프라스트럭처 구축 장치가 제공된다. 가상 머신 인프라스트럭처 구축 장치는 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 컨테이너 이미지를 획득하도록 구성된 통신부, 통신부와 동작 가능하도록 연결된 프로세서를 포함하고, 프로세서는, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하고, 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하고, 변환된 가상 머신용 디스크 이미지를 이용하여 가상 머신 인프라스트럭처에 배포하도록 구성될 수 있다.
본 발명의 다른 특징에 따르면, 통신부는, 사용될 컨테이너 이미지를 컨테이너 관리 서버에서 검색하고, 검색된 컨테이너 이미지를 획득함으로써, 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 컨테이너 이미지를 획득하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 프로세서는, 컨테이너 이미지 중 변환이 요구되는 부분을 결정하고, 변환이 요구되는 부분을 컨테이너 이미지로 추출함으로써, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 프로세서는, 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널(kernel)을 공유하는 경우, 가상 머신의 운영체제를 포함하는 운영체제 이미지를 추출하고, 추출된 운영체제 이미지를 가상 머신용 운영체제 이미지로 변환함으로써, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하고 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하도록 구성될 수 있다.
본 발명의 또 다른 특징에 따르면, 프로세서는, 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널(kernel)을 공유하지 않는 경우, 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지만을 추출하고, 추출된 어플리케이션 소프트웨어 이미지를 가상 머신용 디스크 이미지로 변환함으로써, 획득된 컨테이너 이미지에서 레이어 이미지를 추출하고 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환하도록 구성될 수 있다.
본 발명은 가상 머신 인프라스트럭처를 사용자가 쉽고 편리하게 구축하기 위해 컨테이너 관리 서버로부터 컨테이너 이미지를 획득해 가상 머신용 이미지 로 변환하고 상기 이미지를 가상 머신 인프라스트럭처에 배포하는 장치를 제공함으로써, 서비스 인프라의 배포 과정에서 필요한 컴퓨팅 자원의 소비를 줄일 수 있다.
또한, 본 발명은 대규모의 가상 클러스터 환경을 구축할 때, 많은 양의 디스크 이미지를 생성해야 하는 노동 및 시간을 컨테이너 이미지의 재사용을 통해 최소화하여 가상 머신 인프라스트럭처의 구축 시간을 최소화할 수 있다.
또한, 본 발명은 가상 머신의 가상화 방식에 따른 가상 머신용 디스크 이미지로의 변환 방식이 달라, 컨테이너 이미지를 어떠한 가상 머신에서든 재사용 할 수 있어 가상 머신의 가상화 방식에 따른 실시 제한을 두지 않는다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 가상 머신 인프라스트럭처 구축 시스템의 개략도이다.
도 2는 본 발명의 실시예에 따른 가상 머신 인프라스트럭처 구축 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이다.
도 4는 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환시키는 과정을 설명하기 위한 개략도이다.
도 5는 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이다.
도 6 내지 도 7은 본 발명의 다른 실시예와 관련된 가상 머신에서의 호스트와 가상 머신의 커널 공유 방식을 설명하기 위한 개략도들이다.
도 8은 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략도이다.
도 2는 본 발명의 실시예에 따른 가상 머신 인프라스트럭처 구축 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이다.
도 4는 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환시키는 과정을 설명하기 위한 개략도이다.
도 5는 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이다.
도 6 내지 도 7은 본 발명의 다른 실시예와 관련된 가상 머신에서의 호스트와 가상 머신의 커널 공유 방식을 설명하기 위한 개략도들이다.
도 8은 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 가상 머신 인프라스트럭처 구축 시스템의 개략도이다.
도 1을 참조하면 가상 머신 인프라스트럭처 구축 시스템(1000)은 컨테이너 관리 서버(100), 가상 머신 인프라스트럭처 구축 장치(200), 및 호스트1(310)과 호스트2(320)로 구성된 호스트 시스템(300)을 포함한다.
가상 머신 인프라스트럭처 구축 시스템(1000)에서 가상 머신 인프라스트럭처 구축 장치(200)는 컨테이너 관리 서버(100)에 저장된 컨테이너 이미지를 이용해, 호스트 시스템(300)에 가상 머신 인프라스트럭처를 구축할 수 있다. 여기서, 인프라스트럭처는 인프라 환경을 제공하는 IaaS(Infrastructure as a Service), 응용 프로그램을 개발할 수 있는 플랫폼 및 환경을 제공하는 PaaS(Platform as a Service) 및 소프트웨어를 제공하는 SaaS(Software as a Service)를 포함할 수 있다. 또한, 컨테이너는 프로그램이 실행되는 격리된 가상의 사용자 공간으로서, 운영체제의 커널 위에 위치한다. 또는 컨테이너는 가상의 사용자 공간에서 실행되는 소프트웨어 및 소프트웨어 실행에 필요한 모든 파일들의 패키지를 의미할 수 있다. 컨테이너는 소프트웨어와 소프트웨어의 실행에 필요한 모든 파일들이 포함된 컨테이너 이미지에 의해 실행될 수 있다. 이러한 컨테이너 이미지는 소프트웨어의 실행에 필요한 모든 파일들이 포함되어 있어 다양한 개발, 테스트 환경 간에 오류 없이 쉽게 이동이 가능하다. 컨테이너를 실행시키는 소프트웨어로는 도커가 대표적이다. 여러 호스트에 존재하는 많은 컨테이너를 관리하는 컨테이너 오케스트레이터(Orchestrator)는 쿠버네테스(Kubernetes)가 있을 수 있으나, 이에 제한되지 않는다.
컨테이너 관리 서버(100)는 컨테이너 이미지 레지스트리(Registry) 역할을 하는 컨테이너 이미지 저장소로서, 컨테이너 관리 서버(100)의 사용자들은 컨테이너 관리 서버(100)을 통해서 컨테이너 이미지를 자유롭게 업로드, 다운로드 및 공유할 수 있다. 컨테이너 관리 서버(100)는 기업이 고성능 서버 하드웨어나 워크스테이션을 이용하여 상업용으로 운영하는 코로케이션 서버(co-location server), 서버 호스팅(server hosting) 및 클라우드 서버(cloud server) 등의 방식으로 서비스를 제공할 수 있다. 구체적으로, 코로케이션 서버는 기업이 서버를 직접 구매해 IDC(Internet Data Center)에 입주시켜 서버를 운영하는 형태를 의미하고, 서버 호스팅은 기업이 업체를 통해 서버를 임대해서 운영하는 형태를 의미한다. 클라우드 서버는 기업이 클라우드 공간 상에 존재하는 가상 서버를 임대해서 운영하는 형태를 의미한다. 여기에 제한되지 않고, 데이터를 전송할 수 있는 서버로서의 기능을 할 수 있다면 일반적인 가정용 컴퓨터, NAS, 개발보드 등도 컨테이너 관리 서버(100)로 볼 수 있다. 컨테이너 관리 서버(100)는 가상 머신 인프라스트럭처 구축 장치(200)와 무선 또는 유선으로 연결될 수 있다. 컨테이너 관리 서버(100)의 사용자는 오픈소스를 통한 설치 또는 웹 페이지를 통해서 컨테이너 관리 서버(100)의 서비스를 이용할 수 있다. 또는 컨테이너 명령어를 이용한 서비스로의 접근도 할 수 있다.
가상 머신 인프라스트럭처 구축 장치(200)는, 호스트 시스템(300)에 구축될 가상 머신 인프라스트럭처에 배포가 필요한 소프트웨어를 포함한 컨테이너 이미지를 가상 머신 인프라스트럭처에 배포가 가능한 형식인 가상 머신용 디스크 이미지로 변환할 수 있다. 가상 머신 인프라스트럭처 구축 장치(200)는 서버로서 역할을 할 수 있어, 컨테이너 관리 서버(100)와 같은 서버 운영 형태를 가질 수 있다. 가상 머신 인프라스트럭처 구축 장치(200)는 컨테이너 관리 서버(100) 및 호스트 시스템(300)과 무선 또는 유선으로 연결될 수 있다. 가상 머신 인프라스트럭처 구축 장치(200)는, 호스트 시스템(300)에 배포될 소프트웨어가 포함된 컨테이너 이미지를 컨테이너 관리 서버(100)을 통해 획득할 수 있다. 가상 머신 인프라스트럭처 구축 장치(200)는 획득된 컨테이너 이미지를 호스트 시스템(300)에 구축할 가상 머신용 디스크 이미지로 변환하고, 호스트 시스템(300)에 변환된 디스크 이미지를 통해 가상 머신의 실행을 요청할 수 있다. 이러한 가상 머신용 디스크 이미지를 컨테이너 이미지의 변환을 통해 생성할 경우, 가상 머신 인프라스트럭처 구축 장치(200)는 많은 양의 디스크 이미지를 생성해야 하는 자원 및 시간을 최소화하여 가상 머신 인프라스트럭처의 구축 시간을 최소화할 수 있다.
호스트 시스템(300)은 호스트1(310) 및 호스트2(320) 등 복수의 호스트들을 포함할 수 있는 시스템이다. 호스트 시스템(300)은 호스트의 하드웨어 레벨에서 가상화되어 여러 대의 가상 머신을 생성할 수 있다. 호스트 시스템(300)은 서버로서 역할을 할 수 있어, 컨테이너 관리 서버(100)와 같은 서버 운영 형태를 가질 수 있다. 호스트 시스템(300)은 가상 머신 인프라스트럭처 구축 장치(200)와 무선 또는 유선으로 연결된다.
상술한 가상 머신 인프라스트럭처 구축 장치(200)에 대해서 도 2를 참조하여 보다 상세하게 설명하도록 한다.
도 2는 본 발명의 실시예에 따른 가상 머신 인프라스트럭처 구축 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 가상 머신 인프라스트럭처 구축 장치(200)는 통신부(210), 저장부(220), 표시부(230), 전원부(240), 입력부(250) 및 프로세서(260)를 포함한다.
통신부(210)는 가상 머신 인프라스트럭처 구축 장치(200)가 외부 장치와 통신 가능하도록 연결한다. 통신부(210)는 유선 또는 무선 통신을 이용하여 컨테이너 관리 서버(100) 및 호스트 시스템(300), 또는 호스트1(310)와 가상 머신 인프라스트럭처 구축 장치(200)를 연결할 수 있다. 구체적으로, 통신부(210)는 변환된 가상 머신용 디스크 이미지와 배포 요청을 호스트 시스템(300)으로 전송할 수 있다. 통신부(210)는 컨테이너 관리 서버(100)에 인프라스트럭처로 사용될 컨테이너 이미지의 획득 요청을 전송할 수 있고, 컨테이너 관리 서버(100)로부터 해당 컨테이너 이미지를 전송 받아 획득할 수 있다.
저장부(220)는 데이터와 프로그램을 저장하고 읽어 내기 위한 매체로서, DRAM 또는 SRAM 등으로 구성될 수 있는 메모리 및 바로 처리가 필요하지 않는 데이터와 프로그램을 저장할 수 있는 보조기억장치로 구성될 수 있다. 구체적으로 보조기억장치는 하드 디스크 드라이브(Hard Disk Drive; HDD), SSD(Solid State Drive), SD(Secure Digital) 카드, CD(Compact Disk), DVD(Digital Video Disc), 블루레이 디스크(Blu-ray Disk), USB 메모리 등과 같은 다양한 저장 매체로 구성될 수 있다.
저장부(220)는 컨테이너 관리 서버(100)로부터 수신된 컨테이너 이미지를 저장할 수 있다. 또한, 저장부(220)는 가상 머신 인프라스트럭처 구축 장치(200)가 수신된 컨테이너 이미지를 변환해 생성한 가상 머신용 디스크 이미지를 저장할 수 있다.
표시부(230)는 사용자에게 컨테이너 관리 서버(100)로부터 수신된 컨테이너 이미지와 해당 컨테이너 이미지의 변환과정 및 변환된 가상 머신용 이미지를 사용자 인터페이스를 통해 표시할 수 있는 화면표시장치이다. 표시부(230)는 LCD, LED 및 터치스크린 패널 등을 포함할 수 있다.
전원부(240)는 가상 머신 인프라스트럭처 구축 장치(200)에 전원을 공급하도록 구성된다.
입력부(250)는 키보드, 마우스 및 터치 스크린 패널 등을 통해서 컨테이너 관리 서버(100)의 컨테이너 이미지를 검색 요청하는 명령 및 가상 머신용 디스크 이미지로의 변환 요청하는 명령을 입력 받는다.
프로세서(260)는 통신부(210), 저장부(220), 표시부(230), 전원부(240) 및 입력부(250)와 동작 가능하게 연결되며, 가상 머신 인프라스트럭처 구축 장치(200)의 동작을 제어할 수 있다. 프로세서(260)는 통신부(210)를 통해 컨테이너 이미지를 획득해 저장부(220)에 저장한다. 저장된 컨테이너 이미지에서 변환이 요구되는 레이어 이미지를 추출한다. 다음으로, 입력부(250)를 통해 가상 머신용 디스크 이미지로의 변환을 요구하는 명령을 입력하고 변환된 디스크 이미지를 획득한다. 획득된 디스크 이미지를 통신부(210)를 통해 전송한다.
이하에서는, 도 3 및 도 4를 참조하여, 가상 머신용 디스크 이미지를 변환하는 방법을 보다 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이고, 도 4는 본 발명의 일 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환시키는 과정을 설명하기 위한 개략도이다. 설명의 편의를 위해 도 2의 구성요소들을 참조하여 설명한다.
먼저, 가상 머신 인프라스트럭처 구축 장치(200)는 컨테이너 관리 서버(100)로부터 컨테이너 이미지를 획득한다(S310). 이때, 컨테이너 이미지가 획득되기 위해, 컨테이너 이미지가 검색되는 과정이 선행될 수 있다. 획득될 컨테이너 이미지는 컨테이너 관리 웹페이지에 접속 후, 컨테이너 이미지 이름 또는 컨테이너 이미지로 패키징된 소프트웨어로 검색될 수 있다. 다른 방법으로, 컨테이너 이미지는 CLI(Command-Line Interface, 명령줄 인터페이스) 환경에서 컨테이너 이미지 이름 또는 컨테이너 이미지로 패키징된 소프트웨어 이름이 포함된 SEARCH 명령어를 통해 검색될 수 있다. 검색된 컨테이너 이미지는 CLI(Command-Line Interface, 명령줄 인터페이스) 환경에서 컨테이너 이미지 이름이 포함된 PULL 명령어를 통해 획득될 수 있다. 또 다른 방법으로, HTTP 기반의 RestAPI를 통해 컨테이너 이미지가 검색 및 획득될 수 있다.
단계 310에서 컨테이너 이미지의 검색과 획득은 가상 머신 인프라스트럭처 구축 장치(200)에 의해 자동으로 수행되도록 구성될 수 있다.
통신부(210)를 통해 획득된 컨테이너 이미지는 저장부(220)에 임시적으로 저장될 수 있다.
다음으로, 가상 머신 인프라스트럭처 구축 장치(200)는 컨테이너 이미지에서 레이어 이미지를 추출한다(S320). 가상 머신 인프라스트럭처 구축 장치(200)의 프로세서(260)는 복수의 레이어 이미지들로 구성된 컨테이너 이미지로부터 변환이 요구되는 레이어 이미지를 추출할 수 있다. 구체적으로, 컨테이너 이미지의 실행을 위해 필요한 구성파일 등을 담은 이미지는 제외될 수 있다. 또는 소프트웨어의 실행에 필요한 라이브러리의 변환이 요구되지 않을 경우, 해당 라이브러리는 제외될 수 있다. 경우에 따라서는, 운영체제 이미지 또는 어플리케이션 소프트웨어 이미지가 제외될 수 있다. 이로써, 가상 머신용 디스크 이미지로 변환할 이미지가 추출될 수 있다. 레이어 이미지 추출은 도 5 내지 7을 참조하여 보다 구체적으로 설명된다.
다음으로, 가상 머신 인프라스트럭처 구축 장치(200)는 추출된 레이어 이미지를 가상 머신용 디스크 이미지로 변환한다(S330).
예를 들어 도 4를 참조하면, 획득된 컨테이너 이미지(410)는 네 장의 레이어 이미지(411, 412a, 413a, 414)로 구성될 수 있다. 그 중 변환이 요구된 레이어 이미지가 어플리케이션 소프트웨어 레이어 이미지(412a) 및 운영체제 레이어 이미지(413a)일 경우, 두 레이어 이미지는 컨테이너 이미지(410)로부터 추출될 수 있다. 추출된 어플리케이션 소프트웨어 레이어 이미지(412b) 및 운영체제 레이어 이미지(413b)는 각각 어플리케이션 소프트웨어 디스크 이미지(412c) 및 운영체제 디스크 이미지(413c)로 변환될 수 있다. 변환된 두 가상 머신용 디스크 이미지들(412c, 413c)은 최종의 디스크 이미지(420)로 병합될 수 있다. 해당 디스크 이미지(420)는 통신부(210)를 통해 호스트 시스템(300)으로 전송된다. 디스크 이미지들의 변환은 컨테이너 이미지(410)에서 컨테이너에서 사용되는 공통 디렉토리를 가상 머신에서 사용되는 공통 디렉토리로 변경하는 단계를 포함할 수 있다. 예를 들어, /var/lib/docker/aufs/diff/… 의 공통 디렉토리가 /var/lib/docker/aufs/mnt/..의 유니온 마운트 포인트의 디렉토리로 변경될 수 있다. 또한, 컨테이너 이미지(410)의 메타 데이터도 그대로 또는 디렉토리만 변경되어 사용될 수 있다. 또한, from 커멘드, run 커멘드 등도 레이어 변환 후 동일하게 사용될 수 있다. 다양한 실시예에서 Scratch 컨테이너, Debian9 컨테이너가 운영체제 디스크 이미지(413c)로 변환될 수 있으며, Hardoop-Base 및 Hardoop-Namenode 컨테이너가 어플리케이션 소프트웨어 디스크 이미지(412b)로 변환될 수 있다.
다음으로, 가상 머신 인프라스트럭처 구축 장치(200)는 호스트 시스템(300)에 디스크 이미지를 통한 가상 머신의 인스턴스화 및 소프트웨어의 배포 요청을 전송한다(S340). 예를 들어, 가상 머신이 QEMU 또는 VMware 또는 VirtualBox 등의 가상머신 생성용 프로그램을 통해 구축될 수 있으며, 이때, 소프트웨어의 배포는 전술된 컨테이너 이미지를 변환하여 생성된 디스크 이미지로 수행될 수 있다.
또는 가상 머신 인프라스트럭처 설계에 관한 스킴(scheme)의 생성 후, 해당 스킴이 데이터를 기술하는 코드로 이루어진 명세서로 변환될 수 있다. 이때, 데이터를 기술하는 코드에는 XML, JSON 및 YAML 등이 포함될 수 있고, 이에 제한되지는 않는다. 해당 명세서를 기반으로 가상 머신 인프라스트럭처의 소프트웨어가 변환된 디스크 이미지로 배포될 수 있다. 이때, 전술된 QEMU 또는 WMware 또는 VirtualBox 등의 프로그램이 사용될 수 있다.
또는 전술된 컨테이너 이미지의 획득, 변환 및 배포의 전체적인 과정이 데이터를 기술하는 코드로 이루어진 명세서에 포함될 수 있다.
이에 제한되지 않고, 스킴을 사용하지 않는 다양한 방식에 의해서 가상 머신 인프라스트럭처가 구축될 수 있다. 이로써, 인프라스트럭처 구축의 자동화와 컨테이너 이미지의 재사용을 통해, 가상 머신 인프라스트럭처의 구축을 위해 필요한 자원과 시간을 감소시킬 수 있다. 특히, 다양한 버전과 종류의 어플리케이션을 포함하는 대규모 가상 클러스터 환경에서의 가상 머신 인프라스트럭처 구축시에 전술된 효과가 극대화될 수 있다.
이에 제한되지 않고, 전술된 단계 310 내지 단계 340의 과정은 컨테이너 이미지가 가상 머신용 이미지가 아닌 베어메탈 서버용 이미지로 변환된 후 호스트 시스템에 배포되고, 베어베탈 인프라스트럭처가 구축되는 과정과 동일할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략적인 순서도이다. 도 6 내지 도 7은 본 발명의 다른 실시예와 관련된 가상 머신에서의 호스트와 가상 머신의 커널 공유 방식을 설명하기 위한 개략도들이다. 도 8은 본 발명의 다른 실시예에 따른 컨테이너 이미지를 가상 머신용 디스크 이미지로 변환하는 방법을 설명하기 위한 개략도이다. 또한, 설명의 편의를 위해 도 2의 구성요소들을 참조하여 설명한다.
도 5 내지 8과 관련한 설명은 가상 머신에 설치될 운영체제가 커널을 호스트 운영체제와 공유하는지에 따라 상이한 변환 과정을 가짐에 따라, 발생할 수 있는 실시예를 나타낼 수 있다.
먼저, 컨테이너 이미지가 컨테이너 관리 서버(100)에서 검색된다(S501). 컨테이너 이미지는 컨테이너 관리 웹페이지에 접속 후, 컨테이너 이미지 이름 또는 컨테이너 이미지로 패키징된 소프트웨어로 검색될 수 있다. 또 다른 방법으로, 컨테이너 이미지는 CLI 환경에서 컨테이너 이미지 이름 또는 컨테이너 이미지로 패키징된 소프트웨어 이름이 포함된 SEARCH 명령어를 통해 검색될 수 있다. 다른 방법으로, HTTP 기반의 RestAPI를 통해 컨테이너 이미지가 검색될 수 있다.
다음으로, 검색된 컨테이너 이미지가 획득된다(S502). 구체적으로, 단계 501에서 검색된 컨테이너 이미지는 CLI 환경에서 컨테이너 이미지 이름이 포함된 PULL 명령어를 통해 획득될 수 있다. 다른 방법으로, HTTP 기반의 RestAPI를 통해 컨테이너 이미지가 획득될 수 있다. 이를 통해, 가상 머신 인프라스트럭처 구축 장치(200)가 컨테이너 관리 서버(100)으로부터 해당 컨테이너 이미지를 획득할 수 있다.
컨테이너 관리 서버(100)에서 다양한 종류의 소프트웨어를 포함한 컨테이너 이미지가 공유된다. 또한 컨테이너 관리 서버(100)에 해당 소프트웨어의 버전별 컨테이너 이미지가 대부분 존재하므로 사용자들이 설치할 소프트웨어의 검색 및 획득이 용이하다. 때문에, 가상 머신에 소프트웨어 설치를 위해 디스크 이미지의 직접 생성보다는 해당 소프트웨어가 포함된 컨테이너 이미지를 검색 및 획득하여 가상 머신용 디스크 이미지로 변환하는 것이 인프라스트럭처의 구축 시간을 단축시킬 수 있다. 또한 이미 존재하는 컨테이너 이미지를 재사용함으로써 새로운 디스크 이미지 생성을 위한 컴퓨팅 자원의 소비를 줄일 수 있다.
다음으로, 가상 머신에서 호스트와 가상 머신이 커널을 공유하는지 여부가 결정된다(S503). 예를 들어, 가상 머신 인프라스트럭처 구축 장치(200)는 호스트 시스템(300)으로부터 호스트 시스템(300)에서 구축될 가상 머신 인프라스트럭처에서 호스트와 가상 머신이 커널을 공유하는지 여부를 입력부 등을 통해서 사용자로부터 수신하거나, 설치 요청된 가상 머신의 운영체제가 커널을 공유하도록 설정되었는지를 통해서 결정할 수 있다.
이하에서는 도 6을 참조하여, 도커의 운영체제가 호스트 운영체제와 커널을 공유하는 경우와 호스트 운영체제와 가상 머신의 운영체제가 커널을 공유하는 경우를 설명한다.
호스트 운영체제(커널)(640) 위에 컨테이너를 생성 및 관리하는 엔진(630)이 위치할 수 있다. 엔진(630)은 복수의 컨테이너 이미지들(610, 620)을 이용해 컨테이너를 실행시킬 수 있다. 컨테이너 이미지들(610, 620)은 운영체제 레이어들(611, 621)을 포함하지만 커널을 포함하지는 않는다. 따라서, 컨테이너 이미지들(610, 620)과 호스트는 호스트 운영체제(커널)(640)를 공유함으로써, 컨테이너의 실행 시에 커널의 cgroups에 의해 호스트의 하드웨어 리소스가 제어될 수 있다. 또한 커널의 namespaces에 의해 사용자 공간이 격리될 수 있다.
한편, 호스트 운영체제(커널)(680) 위에 가상 머신을 운영하는 하이퍼바이저(hypervisor)(670)가 위치할 수 있다. 또한, 복수의 가상 머신용 디스크 이미지들(650, 660)에 의해 가상 머신이 실행될 수 있다. 가상 머신용 디스크 이미지들(650, 660)은 커널이 포함된 운영체제 디스크 이미지들(651, 661)을 포함할 수 있다. 가상 머신용 디스크 이미지들(650, 660)과 호스트 운영체제(커널)(680)는 커널을 공유할 수 있다.
이와 같이, 컨테이너 이미지들(610, 620)과 가상 머신용 디스크 이미지들(650, 660)은 각각 호스트 운영체제(커널)를 공유할 수 있다는 점에서 유사하다. 따라서, 컨테이너 이미지들(610, 620)의 운영체제 레이어 중 일부 설정을 변환함으로써, 커널을 공유하는 운영체제가 변환되어 재사용될 수 있다.
이하에서는 도 7을 참조하여, 가상 머신에서 호스트와 가상 머신이 커널을 공유하지 않는 상황을 보다 구체적으로 설명한다. 도 7은 본 발명의 다른 실시예와 관련된 가상 머신에서 호스트와 가상 머신의 커널을 공유하지 않는 상황을 설명하기 위한 개략도이다.
도 7을 참조하면, 호스트 운영체제(커널)(740) 위에 컨테이너를 생성 및 관리하는 엔진(730)이 위치하고, 복수의 컨테이너 이미지들(710, 720)이 실행될 수 있다. 컨테이너 이미지들(710, 720)은 운영체제 레이어들(711, 721)을 포함하지만 커널을 포함하지는 않는다. 710부터 740은 도 6의 610부터 640과 실질적으로 동일하므로, 구체적인 설명은 생략한다.
호스트 운영체제(커널)(780) 위에 가상 머신을 운영하는 하이퍼바이저(hypervisor)(770)가 위치하고, 복수의 가상 머신용 디스크 이미지들(750, 760)에 의해 가상 머신이 실행될 수 있다. 가상 머신용 디스크 이미지들(750, 760)은 커널이 포함된 운영체제 디스크 이미지들(751, 761)을 포함할 수 있다. 가상 머신용 디스크 이미지들(750, 760)과 호스트 운영체제(커널)(780)는 커널을 공유할 수 없다.
전술된 경우와 같이 설치될 가상 머신의 운영체제가 호스트 운영체제와 커널을 공유하지 않는 경우에는 컨테이너의 운영체제가 사용될 수 없을 수 있으므로, 컨테이너의 운영체제는 추출되거나 재사용되지 않을 수 있다.
아래 단계 504, 506, 508는 단계 503에서 인프라스트럭처에서 호스트와 가상 머신이 커널의 공유가 결정된 경우, 실행되는 단계이다.
먼저, 컨테이너 이미지에서 운영체제 레이어 이미지가 추출된다(S504). 도 6에서 전술된 이유로 컨테이너 이미지의 운영체제 레이어 이미지는 가상 머신용 디스크 이미지로 변환이 가능하다. 때문에, 컨테이너 이미지의 운영체제 레이어가 재사용될 수 있다.
다음으로, 운영체제 레이어 이미지가 가상 머신용 디스크 이미지로 변환된다(S506). 구체적으로, 단계 504에서 추출된 운영체제 레이어 이미지는 가상 머신용 디스크 이미지로 변환될 수 있다.
다음으로, 호스트와 가상 머신의 운영체제가 커널을 공유하도록 설정이 변환된다(S508).
아래 단계 505, 507은 단계 503에서 가상 머신 인프라스트럭처에서 호스트와 가상 머신이 커널을 공유하지 않는다고 결정된 경우, 실행되는 단계이다.
먼저, 컨테이너 이미지에서 어플리케이션 소프트웨어 레이어 이미지가 추출된다(S505). 도 7에서 전술된 이유로 컨테이너 이미지의 운영체제 레이어 이미지는 가상 머신용 디스크 이미지로 변환이 가능하지 않다. 때문에, 컨테이너 이미지의 운영체제 레이어는 재사용될 수 없다. 이에 디스크 이미지에 사용자가 직접 운영체제를 설치하는 과정이 필요할 수 있다. 호스트 시스템(300)에서 어플리케이션 소프트웨어가 필요하다면, 운영체제 레이어 이미지를 제외한 해당 어플리케이션 소프트웨어가 포함된 레이어 이미지가 추출된다. 도 8을 참조하면, 획득된 컨테이너 이미지(810)는 네 장의 레이어 이미지(811, 812a, 813a, 814)로 구성될 수 있다. 그 중 변환이 요구된 레이어 이미지가 어플리케이션 소프트웨어 레이어 이미지(812a) 및 운영체제 레이어 이미지(813a)일 경우, 두 레이어 이미지는 컨테이너 이미지(810)로부터 추출될 수 있다.
다음으로, 어플리케이션 소프트웨어 레이어 이미지가 가상 머신용 디스크 이미지로 변환된다. 구체적으로, 단계 505에서 추출된 어플리케이션 소프트웨어 레이어 이미지는 가상 머신용 디스크 이미지로 변환될 수 있다. 도 8을 참조하면, 추출된 어플리케이션 소프트웨어 레이어 이미지(812b) 및 운영체제 레이어 이미지(813b)는 각각 어플리케이션 소프트웨어 디스크 이미지(812c) 및 운영체제 디스크 이미지(813c)로 변환될 수 있다.
다양한 실시예에서, 변환된 가상 머신용 디스크 이미지는 실행파일들만을 포함한 디스크 이미지일 수 있다. 예를 들어, 설정 파일 등 생성이나 수정이 될 수 있는 파일들이 제외된 이미지일 수 있다. 이러한 실시예에서는 별도의 쓰기 가능한 어퍼 디스크를 생성하고 어퍼 디스크와 변환된 디스크 이미지를 결합하여 최종 디스크가 생성될 수 있다.
구체적으로 먼저, 쓰기 가능한 어퍼 디스크가 생성된다(S509). 도 8을 참조하면, 어퍼 디스크 이미지(815)가 생성된다. 어퍼 디스크는 제한되지 않으나 유니온 파일 시스템(union file system)에 의해 생성될 수 있다. 여기서, 유니온 파일 시스템은 유니온 마운트(union mount)를 구현한 파일 시스템을 의미한다. 유니온 파일 시스템을 통해, 복수의 파일 시스템들이 마운트 되지만 사용자에게는 마치 하나의 파일 시스템이 마운트 된 것처럼 보여질 수 있다. 이때, 복수의 레이어 이미지들은 읽기 전용 파일 시스템들로 구성될 수 있고, 유니온 마운트된 하나의 파일 시스템은 쓰기도 가능할 수 있다. 따라서, 실행 중에 변경되는 내용은 쓰기 가능한 파일 시스템에 저장될 수 있어 COW(Copy-On-Write) 기술이 구현되었다고 볼 수 있다. 유니온 파일 시스템의 예로는, AUFS, Overlay가 있고, 이에 제한되지 않는다.
구체적으로, 변환이 완료된 가상 머신용 디스크 이미지 위에 유니온 마운트된 어퍼 디스크가 생성될 수 있다. 이 때, 단계 506 또는 단계 507에서 변환된 디스크 이미지는 읽기 전용의 디스크 이미지로 설정될 수 있고, 생성된 어퍼 디스크는 쓰기 가능한 디스크로 설정될 수 있다. 때문에 가상 머신이 실행될 시, 변경되는 내용은 어퍼 디스크에만 기록 가능할 수 있다.
다음으로, 쓰기 가능한 어퍼 디스크와 읽기 전용의 가상 머신 이미지가 병합된다(S510). 도 8을 참조하면, 변환된 두 가상 머신용 디스크 이미지들(812c, 813c)과 생성된 어퍼 디스크 이미지(815)는 최종의 디스크 이미지(820)로 병합될 수 있다. 해당 디스크 이미지는 통신부(210)를 통해 호스트 시스템(300)으로 전송된다. 단계 510에서 어퍼 디스크가 유니온 파일 시스템이 아닌 사용자에 의해 생성될 경우, 단계 506 또는 단계 507에서 변환된 디스크 이미지와 생성된 어퍼 디스크가 병합되는 과정이 필요하다. 이 때, 단계 506 또는 단계 507에서 변환된 디스크 이미지는 읽기 전용의 디스크 이미지로 설정될 수 있고 생성된 어퍼 디스크는 쓰기 가능한 디스크로 설정될 수 있다.
다음으로, 최종 가상 머신 디스크 이미지가 생성된다(S511). 생성된 디스크 이미지는 ISO, VHD, VMDK 등의 파일 형식이 될 수 있다. 생성된 디스크 이미지의 재사용을 위해 데이터베이스에 저장될 수 있고, 가상 머신 인프라스트럭처 구축 장치(200)에 저장될 수도 있다. 생성된 디스크 이미지는 파일 이름 또는 소프트웨어 버전으로 구분되어 저장될 수 있다.
다음으로, 가상 머신 디스크 이미지가 인프라스트럭처에 배포된다(S512).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 컨테이너 관리 서버
200: 가상 머신 인프라스트럭처 구축 장치
300: 호스트 시스템
1000: 가상 머신 인프라스트럭처 구축 시스템
200: 가상 머신 인프라스트럭처 구축 장치
300: 호스트 시스템
1000: 가상 머신 인프라스트럭처 구축 시스템
Claims (16)
- 가상 머신 인프라스트럭처 구축 장치의 프로세서에 의해서 수행되는 가상 머신 인프라스트럭처 구축 방법에 있어서,
호스트 시스템에 배포될 소프트웨어에 관련된 복수의 레이어 이미지들로 구성되는 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 상기 컨테이너 이미지를 획득하는 단계;
상기 획득된 컨테이너 이미지의 상기 복수의 레이어 이미지들 중에서 상기 소프트웨어의 실행을 위해 변환이 요구되는 레이어 이미지(layered image)를 결정하는 단계;
상기 결정된 레이어 이미지가 상기 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지인 경우 상기 복수의 레이어 이미지들에서 상기 결정된 어플리케이션 소프트웨어 이미지만을 추출하는 단계;
상기 추출된 어플리케이션 소프트웨어 이미지를 상기 호스트 시스템에 구축할 가상 머신용 디스크 이미지로 변환하는 단계;
상기 변환된 가상 머신용 디스크 이미지에 관련된 가상 머신 인프라스트럭처 설계에 관한 스킴(scheme)을 생성하는 단계;
상기 스킴을 데이터를 기술하는 코드로 이루어진 명세서로 변환하는 단계; 및
상기 명세서를 기반으로 상기 가상 머신 인프라스트럭처의 상기 소프트웨어를 배포하도록 하는 단계를 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 제1항에 있어서, 상기 컨테이너 관리 서버로부터 상기 컨테이너 이미지를 획득하는 단계는,
사용될 컨테이너 이미지를 상기 컨테이너 관리 서버에서 검색하는 단계; 및
상기 검색된 컨테이너 이미지를 획득하는 단계를 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 삭제
- 제1항에 있어서, 상기 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널(kernel)을 공유하는 경우,
상기 가상 머신의 운영체제를 포함하는 운영체제 이미지를 추출하는 단계; 및
상기 추출된 운영체제 이미지를 가상 머신용 운영체제 이미지로 변환하는 단계를 더 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 제4항에 있어서, 상기 추출된 운영체제 이미지를 상기 가상 머신용 운영체제 이미지로 변환하는 단계는,
상기 호스트의 운영체제와 상기 가상 머신의 운영체제가 커널을 공유할 수 있도록 설정을 변환하는 단계를 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 삭제
- 삭제
- 제1항에 있어서, 상기 가상 머신용 디스크 이미지로 변환하는 단계 이후에,
쓰기 가능한 어퍼 디스크(upper disk)를 생성하는 단계; 및
상기 쓰기 가능한 어퍼 디스크 및 읽기 전용으로 설정된 가상 머신용 디스크 이미지를 병합함으로써 최종 가상 머신용 디스크 이미지를 생성하는 단계를 더 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 제1항에 있어서, 상기 가상 머신용 디스크 이미지로 변환하는 단계 이후에,
상기 가상 머신용 디스크 이미지를 별도의 데이터베이스 또는 가상 머신 인프라스트럭처 구축 장치에 저장하는 단계를 더 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 삭제
- 가상 머신 인프라스트럭처 구축 장치의 프로세서에 의해서 수행되는 가상 머신 인프라스트럭처 구축 방법에 있어서,
호스트 시스템에 배포될 소프트웨어에 관련된 복수의 레이어 이미지들로 구성되는 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 상기 컨테이너 이미지를 획득하는 단계;
상기 획득된 컨테이너 이미지의 상기 복수의 레이어 이미지들 중에서 상기 소프트웨어의 실행을 위해 변환이 요구되는 레이어 이미지(layered image)를 결정하는 단계;
상기 결정된 레이어 이미지가 상기 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지인 경우 상기 복수의 레이어 이미지들에서 상기 결정된 어플리케이션 소프트웨어 이미지만을 추출하는 단계;
상기 추출된 어플리케이션 소프트웨어 이미지를 상기 호스트 시스템에 구축할 베어메탈 서버용 이미지로 변환하는 단계;
상기 변환된 베어메탈 서버용 이미지에 관련된 가상 머신 인프라스트럭처 설계에 관한 스킴(scheme)을 생성하는 단계;
상기 스킴을 데이터를 기술하는 코드로 이루어진 명세서로 변환하는 단계; 및
상기 명세서를 기반으로 상기 가상 머신 인프라스트럭처의 상기 소프트웨어를 배포하도록 하는 단계를 포함하는, 가상 머신 인프라스트럭처 구축 방법. - 호스트 시스템에 배포될 소프트웨어에 관련된 복수의 레이어 이미지들로 구성되는 컨테이너 이미지가 저장된 컨테이너 관리 서버로부터 상기 컨테이너 이미지를 획득하도록 구성된 통신부; 및
상기 통신부와 동작 가능하도록 연결된 프로세서를 포함하고,
상기 프로세서는,
상기 획득된 컨테이너 이미지의 상기 복수의 레이어 이미지들 중에서 상기 소프트웨어의 실행을 위해 변환이 요구되는 레이어 이미지를 결정하고,
상기 결정된 레이어 이미지가 가상 머신의 운영체제를 포함하는 운영체제 이미지를 제외한 어플리케이션 소프트웨어 이미지인 경우 상기 복수의 레이어 이미지들에서 상기 결정된 어플리케이션 소프트웨어 이미지만을 추출하고,
상기 추출된 어플리케이션 소프트웨어 이미지를 상기 호스트 시스템에 구축할 가상 머신용 디스크 이미지로 변환하고,
상기 변환된 가상 머신용 디스크 이미지에 관련된 가상 머신 인프라스트럭처 설계에 관한 스킴(scheme)을 생성하고;
상기 스킴을 데이터를 기술하는 코드로 이루어진 명세서로 변환하고,
상기 명세서를 기반으로 상기 가상 머신 인프라스트럭처의 상기 소프트웨어를 배포하도록 구성된, 가상 머신 인프라스트럭처 구축 장치. - 제12항에 있어서, 상기 통신부는,
사용될 컨테이너 이미지를 상기 컨테이너 관리 서버에서 검색하고,
상기 검색된 컨테이너 이미지를 획득함으로써, 상기 컨테이너 관리 서버로부터 상기 컨테이너 이미지를 획득하도록 구성된, 가상 머신 인프라스트럭처 구축 장치. - 삭제
- 제12항에 있어서, 상기 프로세서는,
상기 가상 머신 인프라스트럭처에서 호스트의 운영체제와 가상 머신의 운영체제가 커널(kernel)을 공유하는 경우, 상기 가상 머신의 운영체제를 포함하는 운영체제 이미지를 추출하고,
상기 추출된 운영체제 이미지를 가상 머신용 운영체제 이미지로 변환하도록 구성된, 가상 머신 인프라스트럭처 구축 장치. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190079178A KR102252050B1 (ko) | 2019-07-02 | 2019-07-02 | 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190079178A KR102252050B1 (ko) | 2019-07-02 | 2019-07-02 | 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210003420A KR20210003420A (ko) | 2021-01-12 |
KR102252050B1 true KR102252050B1 (ko) | 2021-05-13 |
Family
ID=74129578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190079178A KR102252050B1 (ko) | 2019-07-02 | 2019-07-02 | 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102252050B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102484736B1 (ko) * | 2021-01-28 | 2023-01-05 | 한국전자기술연구원 | 컨테이너 기반 재생에너지 디지털 트윈 모델 운영 플랫폼 제공 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101807806B1 (ko) | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법 |
KR101826498B1 (ko) | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
JP2019028635A (ja) * | 2017-07-28 | 2019-02-21 | 日本電信電話株式会社 | 配信データ作成装置、配信データ作成方法及び配信データ作成プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150109692A (ko) * | 2014-03-20 | 2015-10-02 | 한국전자통신연구원 | 가상 머신 이미지 파일을 제공하는 방법 및 그 장치 |
-
2019
- 2019-07-02 KR KR1020190079178A patent/KR102252050B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101807806B1 (ko) | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법 |
KR101826498B1 (ko) | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
JP2019028635A (ja) * | 2017-07-28 | 2019-02-21 | 日本電信電話株式会社 | 配信データ作成装置、配信データ作成方法及び配信データ作成プログラム |
Non-Patent Citations (1)
Title |
---|
안성원. ‘클라우드 가상화 기술의 변화 - 컨테이너 기반의 클라우드 가상화와 DevOps’. 소프트웨어정책연구소 이슈리포트, 제2018-008호, 2018.12.10., pp.1-37.* |
Also Published As
Publication number | Publication date |
---|---|
KR20210003420A (ko) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12118341B2 (en) | Conversion and restoration of computer environments to container-based implementations | |
US20180136870A1 (en) | Heterogeneous disk to apply service level agreement levels | |
US8726275B2 (en) | Selective partial cloning of virtual machines in a virtual computing environment | |
US10445122B2 (en) | Effective and efficient virtual machine template management for cloud environments | |
US8499191B2 (en) | Failure recovery method for information processing service and virtual machine image generation apparatus | |
US10002013B2 (en) | Obtaining virtual machine images from virtualization environments | |
US8627310B2 (en) | Capturing multi-disk virtual machine images automatically | |
CN103019802B (zh) | 一种虚拟机管理方法及平台 | |
US9952782B1 (en) | Method and system for accessing data between different virtual disk formats in a virtualization environment | |
US9690566B2 (en) | System and method for virtual assembly patching in a cloud environment | |
CN111090498B (zh) | 虚拟机启动方法、装置、计算机可读存储介质及电子设备 | |
US20150227321A1 (en) | Managing virtual hard disk snapshots | |
US20120246642A1 (en) | Management of File Images in a Virtual Environment | |
CN107885748B (zh) | 虚拟化实例的文件分层访问方法和装置 | |
US20100077396A1 (en) | Portable storage device for supporting portable computing system and portable computing based system using the same | |
US20150128139A1 (en) | Virtual machine deployment method, recording medium, and information processing apparatus | |
US20130282919A1 (en) | Data Migration Into And Out Of The Cloud Via A Data Kiosk/System | |
US11042512B1 (en) | Enabling granular snapshots and provisioning in NAS (network attached storage) clusters | |
EP2972856B1 (en) | System and method for generic product wiring in a virtual assembly builder environment | |
JP2011034137A (ja) | 分散処理装置及び分散処理方法 | |
KR102252050B1 (ko) | 가상 머신 인프라스트럭처 구축 방법 및 이를 이용하는 장치 | |
EP4068091A1 (en) | Hybrid approach to performing a lazy pull of container images | |
KR102019799B1 (ko) | 읽기 및 쓰기가 가능한 가상 디스크의 병합 마운팅을 통한 가상 클러스터 구축 방법 및 장치 | |
EP4191401A1 (en) | Application installation method based on cloud phone, and cloud platform and related device | |
CN114679442A (zh) | 基于云桌面的用户数据同步方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |