KR20170105858A - Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof - Google Patents

Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof Download PDF

Info

Publication number
KR20170105858A
KR20170105858A KR1020160029060A KR20160029060A KR20170105858A KR 20170105858 A KR20170105858 A KR 20170105858A KR 1020160029060 A KR1020160029060 A KR 1020160029060A KR 20160029060 A KR20160029060 A KR 20160029060A KR 20170105858 A KR20170105858 A KR 20170105858A
Authority
KR
South Korea
Prior art keywords
virtual machine
bws
data
disk
virtual
Prior art date
Application number
KR1020160029060A
Other languages
Korean (ko)
Other versions
KR102327065B1 (en
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 KR1020160029060A priority Critical patent/KR102327065B1/en
Publication of KR20170105858A publication Critical patent/KR20170105858A/en
Application granted granted Critical
Publication of KR102327065B1 publication Critical patent/KR102327065B1/en

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/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

According to the present invention, in an apparatus for accelerating virtual machine provisioning by the use of a boot working set, and an apparatus and method for managing a virtual machine, the booting set that can boot the virtual machine when the virtual machine is provisioned is preliminarily distributed to all the compute nodes in a cloud system. After that, virtual machine provisioning speed can be accelerated by booting the virtual machine using the boot working set at each compute node without going through a network when the virtual machine is provisioned. In addition, by using a pre-stored boot-working set, even when multiple virtual machines are provisioned at the same time, network usage is significantly reduced so that a boot storm as a network bottleneck can be alleviated. The apparatus includes a boot working set generation part, and a boot working set management part.

Description

부트워킹셋을 이용한 가상머신 프로비저닝 가속장치와 가상머신 관리장치 및 방법{APPARATUS FOR ACCELERATING VIRTUAL MACHINE PROVISIONING BY USE OF BWS AND APPARATUS FOR MANAGING THE VIRTUAL MACHINE AND METHOD THEREOF}[0001] DESCRIPTION [0002] APPARATUS FOR ACCELERATING VIRTUAL MACHINE PROVISIONING BY USE OF BWS AND APPARATUS FOR MANAGING THE VIRTUAL MACHINE AND METHOD THEREOF [0003]

본 발명은 가상 머신에 관한 것으로, 특히 클라우드 시스템에서 가상 머신 프로비저닝시 가상 머신을 부트시킬 수 있는 부트워킹셋을 클라우드 시스템내 모든 컴퓨트 노드에 미리 배포하여 저장시켜 놓은 후, 가상 머신 프로비저닝 시 네트워크를 거치지 않고 바로 각각의 컴퓨트 노드에서 부트워킹셋(boot working set :BWS)을 이용하여 가상 머신을 부팅시킴으로써, 가상 머신 프로비저닝 속도를 가속화시킬 수 있도록 하며, 또한 미리 저장된 부트워킹셋을 이용함으로써 여러 가상 머신들이 동시에 프로비저닝되는 경우에도 네트워크 사용량이 현저히 줄어들게 되어 네트워크 병목 현상인 부트 스톰을 완화시킬 수 있도록 하는 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치 및 가상머신 관리장치 및 방법에 관한 것이다.
In particular, the present invention relates to a virtual machine, and particularly, a booting set capable of booting a virtual machine when a virtual machine is provisioned in a cloud system is previously distributed to all compute nodes in a cloud system and stored, By booting a virtual machine using a boot working set (BWS) on each compute node without going through it, it can accelerate the speed of virtual machine provisioning, and by using pre-stored boot working sets, And more particularly, to a virtual machine provisioning accelerator and a virtual machine management apparatus and method using a booting set that mitigates a bootstorm, which is a network bottleneck, because network usage is significantly reduced even when machines are provisioned at the same time.

일반적으로, 가상화(virtualization)는 하나의 물리적 디바이스를 여러 개가 존재하는 것처럼 사용할 수 있는 기술을 말하며, 컴퓨팅 환경에 필요한 자원들을 모은 것을 가상 머신(virtual machine)이라 한다.In general, virtualization refers to a technology that can use one physical device as if it exists, and collecting the resources required for a computing environment is called a virtual machine.

이때, 위와 같은 가상 머신을 생성하고 운영체제를 설치해 사용자에게 제공하는 과정을 프로비저닝이라고 하며, 이하에서는 가상머신을 프로비저닝하는 동작에 대해 간략히 살펴보기로 한다.At this time, the process of creating the above virtual machine and providing the operating system to the user is called provisioning. Hereinafter, the operation of provisioning the virtual machine will be briefly described.

먼저, 가상 머신의 프로비저닝 시 타겟이된 컴퓨트 노드(Compute node) 에 부팅하려는 이미지를 전송한다. 그 후 전송이 완료가 되면 그 이미지를 백킹(Backing) 하는 가상머신 디스크를 만들고 이를 이용해서 부팅을 한다. 그러면 추후 해당 이미지에 대한 I/O 는 컴퓨트 노드 내에서 지역적으로 이루어 질 수 있다. 또한 추후 같은 컴퓨트에 프로비저닝되고 같은 이미지에 대한 프로비저닝인 경우 컴퓨트 노드에 전송되어 있는 이미지를 이용함으로써 추가적인 네트워크 전송이 필요없게 된다. 그러나 다수의 컴퓨트 노드에서 동시에 프로비저닝이 수행되는 경우 네트워크 사용량이 많아져서 부트 스톰(boot storm)이 발생하는 문제점이 있다.First, when the virtual machine is provisioned, it sends the image to boot to the target compute node. Then, when the transfer is completed, create a virtual machine disk that backs up the image and boot using it. Then, the I / O for the image may be performed locally within the compute node. Also, if provisioning for the same image is later provisioned for the same image, additional network transmission is unnecessary by using the image transmitted to the compute node. However, when provisioning is performed simultaneously on a plurality of compute nodes, the network usage increases and a boot storm occurs.

다음으로, 이미지로부터 가상머신을 프로비저닝하는 방법 이외에 볼륨으로부터 가상머신을 프로비저닝하는 방법이 있다. 이 방법에서는 볼륨을 스토리지 노드(Storage node)에 생성하고 생성된 볼륨을 부팅 가능하게 만들기 위해서 부팅 이미지를 iSCSI 등의 방법을 이용해서 해당 볼륨에 쓰는 작업을 한다. 이러한 작업이 끝나고, 해당 볼륨을 이용해서 프로비저닝하게 된다. 하지만 이때 부팅을 하기 위해서는, 부팅을 하는 각각의 볼륨마다 부팅 이미지를 써줘야 하기 때문에 이미지로부터 가상머신을 프로비저닝하는 것보다 훨씬 많은 시간이 소요되게 된다. Next, there is a method of provisioning a virtual machine from a volume other than provisioning a virtual machine from an image. In this method, the volume is created on the storage node and the boot image is written to the volume using iSCSI or other methods to make the created volume bootable. After this, you will be provisioned using that volume. However, in order to boot at this time, it takes much more time to provision the virtual machine from the image, since each booting volume requires a boot image.

이러한 문제점을 해결하는 방법으로 볼륨을 생성할 때 이미지 노드(Image node) 에 저장되어있는 부팅 이미지를 백킹하는 볼륨을 스토리지 노드에 생성하고 이 볼륨을 이용해서 프로비저닝하는 방법이 있다. 이를 통해 볼륨의 생성시 일일이 데이터를 써 줄 필요가 없고 해당 볼륨을 바로 이용해서 프로비저닝 할 수 있게 된다. One way to solve this problem is to create a volume on the storage node that backs up the boot image stored in the Image node when creating the volume, and provision it using this volume. This eliminates the need to write data to the volume at the time of creation, and allows the volume to be provisioned and used immediately.

그러나, 새로운 볼륨을 만들어서 프로비저닝하는 경우, 볼륨 부분은 원격(Remote) 스토리지 노드에 저장되어 있기 때문에 가상머신 프로비저닝 시 컴퓨트 노드에서 지역적으로 읽어올 수가 없다. 이런 상황에서 많은 양의 가상머신이 프로비저닝되면 클라우드 시스템내 네트워크 사용량이 많아져서 부트 스톰이 발생하게 된다. 이는 전반적인 가상머신 프로비저닝 속도는 물론 기존 운영되고 있는 가상머신 성능에도 영향을 미치게 된다.However, when creating and provisioning a new volume, the volume portion is stored locally on the compute node during virtual machine provisioning because it is stored on the remote storage node. In this situation, when a large number of virtual machines are provisioned, the network usage in the cloud system increases and a boot storm occurs. This will affect the overall virtual machine provisioning speed as well as the performance of existing virtual machines.

한편, 클라우드 시스템에서 가상 머신 프로비저닝 속도는 사용자의 만족도를 평가하는 중요한 요소이다. 볼륨으로부터 가상 머신 프로비저닝할 때, 단순히 스토리지 노드에 볼륨을 생성하고, 모든 생성된 볼륨에 대해서 부팅 가능하게 하기 위해 iSCSI를 이용해 부팅 이미지를 볼륨에 쓰면, 각각의 볼륨에 대해서 쓰기가 끝날 때까지 가상머신 프로비저닝을 하지 못하고 네트워크를 이용하기 때문에 많은 양의 볼륨에 대해서 프로비저닝 시 심각한 성능 저하가 발생하게 된다. On the other hand, the rate of virtual machine provisioning in the cloud system is an important factor in evaluating user satisfaction. When provisioning a virtual machine from a volume, simply write the boot image to the volume using iSCSI to create the volume on the storage node and make it bootable for all created volumes, and then use the virtual machine Provisioning can result in severe performance degradation when provisioning large volumes because the network is used without provisioning.

또한, 이를 해결하기 위해서 이미지 노드에 있는 부팅 이미지를 백킹하는 볼륨을 만들어서 가상머신 프로비저닝을 하면, 부팅 가능한 볼륨을 만드는 시간은 줄어들지만, 가상머신이 프로비저닝될 때 원격(Remote)인 스토리지 노드에 있는 볼륨을 네트워크를 이용해서 프로비저닝하는 점은 같기 때문에, 많은 양의 가상머신이 프로비저닝되면 네트워크 사용량이 많아져서 가상머신 프로비저닝 성능이 낮아지게 된다.
Also, to solve this problem, when creating a volume that backs up the boot image on the image node and provisioning the virtual machine, the time to create a bootable volume is reduced, but when the virtual machine is provisioned, Is provisioned using the network, so if a large number of virtual machines are provisioned, the network usage will increase and the virtual machine provisioning performance will be lowered.

(특허문헌)(Patent Literature)

대한민국 공개번호 10-2009-0065126호(공개일자 2009년 06월 22일)
Republic of Korea Publication No. 10-2009-0065126 (Published date June 22, 2009)

따라서, 본 발명에서는 클라우드 시스템에서 가상 머신 프로비저닝시 가상 머신을 부트시킬 수 있는 부트워킹셋을 클라우드 시스템내 모든 컴퓨트 노드에 미리 배포하여 저장시켜 놓은 후, 가상 머신 프로비저닝 시 네트워크를 거치지 않고 바로 각각의 컴퓨트 노드에서 부트워킹셋을 이용하여 가상 머신을 부팅시킴으로써, 가상 머신 프로비저닝 속도를 가속화시킬 수 있도록 하며, 또한 미리 저장된 부트워킹셋을 이용함으로써 여러 가상 머신들이 동시에 프로비저닝되는 경우에도 네트워크 사용량이 현저히 줄어들게 되어 네트워크 병목 현상인 부트 스톰을 완화시킬 수 있도록 하는 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치 및 가상머신 관리장치 및 방법을 제공하고자 한다.
Accordingly, in the present invention, a booting set capable of booting a virtual machine when a virtual machine is provisioned in a cloud system is previously distributed to all the compute nodes in the cloud system and stored, and then, when the virtual machine is provisioned, By booting a virtual machine using a bootstrapping set on a compute node, the speed of virtual machine provisioning can be accelerated. Moreover, even if multiple virtual machines are provisioned simultaneously by using a pre-stored booting set, the network usage can be significantly reduced And a bootstroke set that can mitigate a bootstorm, which is a network bottleneck phenomenon, to a virtual machine provisioning acceleration device and a virtual machine management apparatus and method.

상술한 본 발명은 가상머신 프로비저닝 가속장치로서, 클라우드 시스템내 적어도 하나의 컴퓨트 노드에 생성되는 적어도 하나의 가상머신의 디스크 이미지가 등록되는 경우 상기 디스크 이미지 중 상기 가상머신을 부팅시키기 위해 필요한 데이터를 포함하는 BWS(Boot Working Set)를 생성하는 BWS 생성부와, 상기 BWS 상기 컴퓨트 노드로 배포하여, 상기 가상머신이 상기 컴퓨트 노드에서 상기 BWS를 이용하여 부팅되도록 제어하는 BWS 관리부를 포함한다.The present invention relates to a virtual machine provisioning accelerator, wherein when a disk image of at least one virtual machine created in at least one compute node in a cloud system is registered, data necessary for booting the virtual machine among the disk images And a BWS manager for distributing the BWS to the compute node and controlling the virtual machine to boot at the compute node using the BWS.

또한, 상기 BWS 생성부는, 상기 디스크 이미지를 이용하여 상기 가상머신을 부팅시키는 동안, 상기 디스크 이미지 중 상기 부팅 시 사용되는 데이터를 확인하고, 상기 확인된 데이터만으로 상기 BWS를 생성하는 것을 특징으로 한다.Also, the BWS generator may check the data used during the booting of the disk image while booting the virtual machine using the disk image, and generate the BWS based on only the confirmed data.

또한, 상기 BWS 생성부는, 상기 클라우드 시스템내 상기 BWS를 생성하도록 할당된 컴퓨트 노드로 하여금 상기 BWS를 생성하도록 하는 것을 특징으로 한다.The BWS generator may cause the compute node allocated to generate the BWS in the cloud system to generate the BWS.

또한, 본 발명은 가상머신 프로비저닝 방법으로서, 클라우드 시스템내 적어도 하나의 컴퓨트 노드에 생성될 가상머신의 디스크 이미지를 수신하는 단계와, 상기 디스크 이미지 중 상기 가상머신을 부팅시키기 위해 필요한 데이터를 포함하는 BWS를 생성하는 단계와, 상기 BWS를 상기 컴퓨트 노드로 배포하는 단계와, 상기 컴퓨트 노드에서 상기 가상머신 상기 BWS를 이용하여 부팅되도록 제어하는 단계를 포함한다.The present invention also provides a virtual machine provisioning method comprising the steps of: receiving a disk image of a virtual machine to be created in at least one compute node in a cloud system; Generating a BWS, distributing the BWS to the compute node, and controlling the virtual node to boot using the BWS in the compute node.

또한, 본 발명은 가상머신 관리장치로서, 클라우드 시스템내 컴퓨트 노드로 가상머신의 프로비저닝이 요청되는 경우 상기 가상머신의 디스크 이미지 중 상기 가상머신의 부팅을 위해 필요한 데이터로 이루어진 BWS를 이용하여 상기 가상머신을 부팅시키는 가상머신 프로비저닝부와, 상기 부팅된 상기 가상머신상 데이터 읽기 또는 쓰기가 수행되어 상기 가상머신으로부터 상기 데이터 읽기 또는 쓰기를 위한 데이터 요청을 수신하는 경우, 상기 가상머신상 쓰기가 수행된 데이터에 대한 해쉬값을 저장한 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상머신의 가상 디스크에 있는지 판단하고, 상기 판단결과에 따라 상기 BWS 또는 상기 가상 디스크에서 상기 요청된 데이터를 검색하여 상기 가상머신으로 제공하는 I/O(Input/Output) 관리부를 포함한다.In addition, the present invention provides a virtual machine management apparatus, wherein when a provisioning of a virtual machine is requested to a compute node in a cloud system, the BWS consisting of data necessary for booting the virtual machine among the disk images of the virtual machine is used, A virtual machine provisioning unit for booting the machine; and a data writing / reading unit for writing / reading data to / from the virtual machine, Determining whether the requested data is in the BWS or in the virtual disk of the virtual machine by referring to a hash table storing a hash value of the data and storing the requested data in the BWS or the virtual disk according to the determination result; (Input / Ou < RTI ID = 0.0 > tput) management section.

또한, 상기 I/O 관리부는, 상기 가상머신으로부터 상기 데이터 요청을 수신하고, 상기 요청된 데이터를 상기 BWS 또는 상기 가상 디스크에서 검색하여 상기 가상머신으로 제공하는 I/O처리부와, 상기 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상 디스크에 있는지 여부를 판단하고, 상기 판단 결과를 상기 I/O 처리부로 제공하는 결정부와, 상기 BWS에 저장된 데이터에 대한 읽기가 가능하며, 상기 I/O 처리부로부터 상기 데이터 요청 수신 시, 상기 BWS에서 상기 요청된 데이터를 검색하여 상기 I/O처리부로 제공하는 BWS 리더부를 포함하는 것을 특징으로 한다.The I / O management unit may include an I / O processing unit for receiving the data request from the virtual machine, searching the BWS or the virtual disk for the requested data, and providing the requested data to the virtual machine, A determination unit for determining whether the requested data is in the BWS or the virtual disk and providing the determination result to the I / O processing unit, And a BWS reader unit for retrieving the requested data from the BWS when the data request is received from the I / O processing unit and providing the requested data to the I / O processing unit.

또한, 상기 해쉬값은, 상기 가상 디스크상 상기 쓰기가 수행된 데이터가 저장된 섹터의 오프셋값인 것을 특징으로 한다.The hash value may be an offset value of a sector in which data is written on the virtual disk.

또한, 본 발명은 가상머신 프로비저닝 방법으로서, 클라우드 시스템내 컴퓨트 노드에서 가상머신의 디스크 이미지 중 상기 가상머신의 부팅을 위해 필요한 데이터로 이루어진 BWS를 이용하여 상기 가상머신을 부팅시키는 단계와, 상기 부팅된 가상머신으로부터 데이터 읽기 또는 쓰기를 위한 데이터 요청을 수신하는 단계와, 상기 가상머신상 쓰기가 수행된 데이터에 대한 해쉬값을 저장한 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상머신의 가상 디스크에 있는지 판단하는 단계와, 상기 판단결과에 따라 상기 BWS 또는 상기 가상 디스크에서 상기 요청된 데이터를 검색하여 상기 가상머신으로 제공하는 단계를 포함한다.
According to another aspect of the present invention, there is provided a virtual machine provisioning method comprising the steps of: booting a virtual machine using a BWS composed of data necessary for booting the virtual machine among disk images of a virtual machine at a compute node in a cloud system; Receiving a data request for reading or writing data from a virtual machine that has been written in the virtual machine, referring to a hash table storing a hash value of data written in the virtual machine, Determining whether the virtual disk exists in the virtual disk of the virtual machine, and searching the requested data in the BWS or the virtual disk according to the determination result and providing the requested data to the virtual machine.

본 발명에 따르면, 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치 및 가상머신 관리장치에서 가상 머신 프로비저닝시 가상머신을 부트시킬 수 있는 부트워킹셋을 클라우드 시스템내 모든 컴퓨트 노드에 미리 배포하여 저장시켜 놓은 후, 가상 머신 프로비저닝 시 네트워크를 거치지 않고 바로 각각의 컴퓨트 노드에서 부트워킹셋을 이용하여 가상머신을 부팅시킴으로써, 가상머신 프로비저닝 속도를 가속화시킬 수 있는 이점이 있다. 또한 미리 저장된 부트워킹셋을 이용함으로써 여러 가상 머신들이 동시에 프로비저닝되는 경우에도 네트워크 사용량이 현저히 줄어들게 되어 네트워크 병목 현상인 부트 스톰을 완화시킬 수 있는 이점이 있다.
According to the present invention, a virtual machine provisioning accelerator using a booting set, and a booting set capable of booting a virtual machine when a virtual machine is provisioned in a virtual machine management apparatus, are preliminarily distributed and stored in all the compute nodes in the cloud system There is an advantage in that the virtual machine provisioning speed can be accelerated by booting the virtual machine using the boot working set immediately at each compute node without going through the network during the virtual machine provisioning. In addition, by using the pre-stored booting set, even when multiple virtual machines are provisioned at the same time, the network usage is significantly reduced, which is advantageous in mitigating the bootstorm as a network bottleneck.

도 1은 본 발명의 실시예에 따른 가상머신 프로비저닝 시스템의 네트워크 구성도,
도 2는 도 2는 본 발명의 실시예에 따른 가상머신 프로비저닝 가속장치에서 가상머신의 BWS를 생성하고 클라우드 시스템상 각 컴퓨트 노드로 배포하는 개념도,
도 3은 본 발명의 실시예에 따른 BWS 생성노드의 가상머신 관리장치에서 BWS를 생성하는 개념도,
도 4는 본 발명의 실시예에 따른 가상머신 관리장치의 상세 구성도,
도 5는 본 발명의 실시예에 따른 해쉬테이블 예시도,
도 6은 본 발명의 실시예에 따른 가상머신 관리장치에서 가상머신 프로비저닝시 쓰기 동작에 대한 처리 흐름도,
도 7은 본 발명의 실시예에 따른 가상머신 관리장치에서 가상머신 프로비저닝시 읽기 동작에 대한 처리 흐름도.
1 is a network configuration diagram of a virtual machine provisioning system according to an embodiment of the present invention;
FIG. 2 is a conceptual diagram of generating a BWS of a virtual machine in a virtual machine provisioning acceleration device according to an embodiment of the present invention and distributing the BWS to each compute node on a cloud system; FIG.
3 is a conceptual diagram for generating a BWS in a virtual machine management apparatus of a BWS generating node according to an embodiment of the present invention;
4 is a detailed configuration diagram of a virtual machine management apparatus according to an embodiment of the present invention;
5 illustrates an example of a hash table according to an embodiment of the present invention,
FIG. 6 is a flowchart illustrating a write operation for virtual machine provisioning in a virtual machine management apparatus according to an embodiment of the present invention. FIG.
FIG. 7 is a flow chart of a process for a read operation when a virtual machine is provisioned in a virtual machine management apparatus according to an embodiment of the present invention. FIG.

이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, the operation principle of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and these may be changed according to the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.

도 1은 본 발명의 실시예에 따른 가상머신 프로비저닝 시스템의 네트워크 구성을 도시한 것으로, 제어 노드(control node)(100), BWS(boot working set) 생성 노드(make node)(130), 컴퓨트 노드(compute node)(150), 블록 스토리지 노드(block storage node)(160), 스토리지 노드(storage node)(170) 등을 포함할 수 있다.FIG. 1 illustrates a network configuration of a virtual machine provisioning system according to an embodiment of the present invention. The network includes a control node 100, a boot working set (BWS) node 130, A compute node 150, a block storage node 160, a storage node 170, and the like.

이하, 도 1을 참조하여 본 발명의 실시예에 따른 가상머신 프로비저닝 시스템의 각 노드에서의 동작을 상세히 설명하기로 한다.Hereinafter, operation of each node of the virtual machine provisioning system according to the embodiment of the present invention will be described in detail with reference to FIG.

먼저, 제어노드(100)는 네트워크(network)를 통한 사용자로부터의 가상머신(virtual machine) 생성 요청을 수신하여 컴퓨트 노드(150)에 해당 가상머신이 프로비저닝(provisioning)되도록 제어하고, 프로비저닝된 가상머신(152)을 관리할 수 있다. 즉, 제어노드(100)는 클라우드 시스템상 네트워크로 연결되는 각 컴퓨트 노드(150)로 가상머신의 프로비저닝을 명령하게 되며, 이러한 가상머신 프로비저닝 명령이 있는 경우 각 컴퓨트 노드(150)에서 해당 가상머신(152)을 프로비저닝하게 된다.First, the control node 100 receives a virtual machine creation request from a user via a network, controls the corresponding virtual machine to be provisioned in the compute node 150, And can manage the machine 152. That is, the control node 100 instructs provisioning of the virtual machine to each of the compute nodes 150 connected to the network on the cloud system. If there is such a virtual machine provisioning command, The machine 152 is provisioned.

이러한 제어노드(100)가 제어하는 구성 요소들은 컴퓨트 노드 관리부(102), 블록 스토리지 노드 관리부(104), 이미지 서비스부(106) 등을 포함할 수 있다.The components controlled by the control node 100 may include a compute node management unit 102, a block storage node management unit 104, an image service unit 106, and the like.

컴퓨트 노드 관리부(102)는 컴퓨트 노드(150)에서의 가상머신 프로비저닝과 각 컴퓨트 노드(150)에서 사용하는 자원 등을 관리한다. 블록 스토리지 노드 관리부(104)는 블록 스토리지 노드(160)의 동작과 블록 스토리지 노드(160)내 구비되는 가상 디스크(virtual disk)(162) 등의 저장장치상 각 컴퓨트 노드(150)에 프로비저닝되는 가상머신(152)의 가상 디스크 자원 등에 대한 정보를 관리한다. The compute node management unit 102 manages virtual machine provisioning in the compute node 150 and resources used in each compute node 150. The block storage node management unit 104 is provided with the operation of the block storage node 160 and the provision of each of the compute nodes 150 on a storage device such as a virtual disk 162 provided in the block storage node 160 Information on the virtual disk resource of the virtual machine 152, and the like.

이미지 서비스부(image service)(106)는 가상머신(152)에 대한 디스크 이미지(disk image)를 등록하고, 가상머신 프로비저닝 시 각 컴퓨트 노드(150)로부터 가상머신(152)의 부팅(booting)과 프로비저닝을 위한 디스크 이미지에 대한 요청이 있는 경우 해당 디스크 이미지를 제공한다. 이때, 이러한 디스크 이미지는 컴퓨트 노드(150)에 의해 공유되는 블록 스토리지 노드(160)상 가상 디스크(162)에 저장될 수 있다.The image service 106 registers a disk image for the virtual machine 152 and performs booting of the virtual machine 152 from each compute node 150 when the virtual machine is provisioned. And a disk image for provisioning, if requested. At this time, the disk image may be stored in the virtual disk 162 on the block storage node 160 shared by the compute node 150.

가상머신 프로비저닝 가속장치(106)는 이미지 서비스부(108)상 새로운 가상머신의 디스크 이미지가 등록되는 경우 해당 디스크 이미지를 부팅시키는데 필요한 데이터를 추출하여 부트워킹셋(boot working set : BWS)(138)을 생성하고, 생성된 BWS를 클라우드 시스템내 각 컴퓨트 노드(150)에 미리 배포한다.When a disk image of a new virtual machine is registered on the image service unit 108, the virtual machine provisioning accelerator 106 extracts data necessary for booting the disk image, and sends a boot working set (BWS) And distributes the generated BWS to each of the compute nodes 150 in the cloud system in advance.

이에 따라, 각 컴퓨트 노드(150)에서 가상머신(152)의 프로비저닝 시 네트워크를 거치지 않고 곧바로 각 컴퓨트 노드(150)에 미리 배포(distribute)되어 있는 BWS(138)를 이용하여 가상머신을 부팅시킴으로써, 가상머신 프로비저닝 속도를 가속시킬 수 있게 된다. 또한, 미리 배포된 BWS(138)를 이용함으로써 여러 가상머신들이 동시에 프로비저닝되는 경우에도 네트워크 사용량이 현저히 줄어들게 되어 네트워크 병목 현상인 부트 스톰(boot storm)을 완화시킬 수 있게 된다. 이때, 위와 같은 네트워크 사용량이라 함은 모든 컴퓨트 노드(150)가 네트워크를 통해 블록 스토리지 노드(160)에 저장된 가상머신(152)의 디스크 이미지에 접근하게 되는 경우에 발생하는 네트워크 사용량을 말할 수 있으나, 이에 한정되는 것은 아니다.Accordingly, when provisioning the virtual machine 152 in each compute node 150, the virtual machine is booted using the BWS 138 that is distributed in advance to each compute node 150 without going through the network Thereby accelerating the virtual machine provisioning speed. In addition, by using the pre-deployed BWS 138, even when multiple virtual machines are provisioned at the same time, the network usage is significantly reduced and the boot storm, which is a network bottleneck, can be mitigated. In this case, the above-mentioned network usage amount refers to a network usage amount generated when all of the compute nodes 150 access the disk image of the virtual machine 152 stored in the block storage node 160 via the network , But is not limited thereto.

컴퓨트 노드(150)는 사용자가 요청한 가상머신(152)을 프로비저닝하고, 프로비저닝된 가상머신(152)상에서 요청된 작업을 처리하는 노드를 말한다.The compute node 150 refers to a node that has provisioned the virtual machine 152 requested by the user and processes the requested operation on the provisioned virtual machine 152.

이러한 컴퓨트 노드(150)는 본 발명의 실시예에 따라 가상머신 프로비저닝 가속장치(108)를 통해 이미지 서비스부(106)에 새로이 등록된 가상머신 디스크 이미지에 대한 BWS(138)를 배포받는 경우 해당 BWS(138)를 특정 디스크 영역에 저장시킬 수 있다.When the BWS 138 for a newly registered virtual machine disk image is distributed to the image service unit 106 through the virtual machine provisioning accelerator 108 according to the embodiment of the present invention, The BWS 138 can be stored in a specific disk area.

또한, 각 컴퓨트 노드(150)는 제어노드(100)의 명령에 따라 가상머신(152)을 프로비저닝하게 되며, 이때 각 컴퓨트 노드(150)에서 가상머신(152)을 프로비저닝함에 있어서, 특정 디스크 영역에 미리 저장된 BWS(138)를 이용하여 가상머신(152)을 부팅시켜 사용자가 가상머신(152)을 사용할 수 있도록 한다. 이어 각 컴퓨트 노드(150)는 가상머신(152)의 부팅 후, 가상머신(152)의 프로비저닝을 위한 나머지 동작을 위해서는 블록 스토리지 노드(160)에 저장된 해당 가상머신(152)의 전체 디스크 이미지를 참조하여 가상머신 프로비저닝 동작을 수행하게 된다.In addition, each compute node 150 may provision the virtual machine 152 in response to a command from the control node 100. In provisioning the virtual machine 152 in each compute node 150, The virtual machine 152 is booted using the BWS 138 previously stored in the area so that the user can use the virtual machine 152. After the virtual machine 152 is booted, each of the compute nodes 150 accesses the entire disk image of the corresponding virtual machine 152 stored in the block storage node 160 for the rest of operations for provisioning of the virtual machine 152 To perform a virtual machine provisioning operation.

이때, 위와 같은 가상머신(152)의 프로비저닝 동작은 각 컴퓨트 노드(150)에 설치되는 가상머신 관리장치(Hypervisor)(154)에 의해 수행될 수 있다. 또한, 가상머신 관리장치(154)는 본 발명의 실시예에 따라 BWS(138)가 미리 배포되어 각 컴퓨트 노드(150)에 저장됨에 따라, 부팅된 가상머신(152)으로부터의 데이터 읽기(read) 또는 쓰기(write) 요청에 대해 BWS(138)와 블록 스토리지 노드(160)상 해당 가상머신(152)에 할당된 가상 디스크(162)에 접근하는 동작을 제어하는 I/O 관리부(manager)(156)를 더 포함할 수 있다. 이러한 I/O 관리부(156)는 본 발명의 실시예에 따라 BWS(138)가 미리 배포됨에 따라 가상머신(152)의 부팅 후, 가상머신(152)으로부터 데이터 요청을 수신하는 경우 BWS(138) 또는 블록 스토리지 노드(160)상 가상 디스크(162)로의 데이터 접근을 관리하여 보다 효율적으로 데이터 액세스(access)가 이루어지도록 한다.At this time, the provisioning operation of the virtual machine 152 may be performed by a virtual machine management apparatus (hypervisor) 154 installed in each compute node 150. The virtual machine management device 154 can read data from the booted virtual machine 152 as the BWS 138 is previously distributed and stored in each compute node 150 according to the embodiment of the present invention O manager for controlling the access to the virtual disk 162 allocated to the corresponding virtual machine 152 on the BWS 138 and the block storage node 160 for a write request or a write request 156). The I / O manager 156 manages the BWS 138 when it receives a data request from the virtual machine 152 after booting the virtual machine 152 as the BWS 138 is pre-deployed according to an embodiment of the present invention. Or the data access to the virtual disk 162 on the block storage node 160 so that data access can be performed more efficiently.

즉, 가상머신 관리장치(154)는 제어노드(100)상 가상머신 프로비저닝 가속장치로(108)부터 배포된 가상머신(152)의 부팅을 위한 BWS(138)를 컴퓨트 노드(152)의 특정 디스크 영역에 저장시키고, 제어노드(100)로부터 가상머신(152)을 프로비저닝하도록 요청하는 명령이 수신되는 경우, BWS(138)를 이용하여 가상머신(152)을 빠르게 부팅시킴으로써, 가상머신 프로비저닝의 완료전이라도 사용자가 가상머신(152)을 사용할 수 있도록 한다.That is, the virtual machine management device 154 sends the BWS 138 for booting of the virtual machine 152 distributed from the virtual machine provisioning acceleration device 108 on the control node 100 to the specific By booting the virtual machine 152 quickly with the BWS 138 when an instruction to store the virtual machine 152 in the disk area and request to provision the virtual machine 152 from the control node 100 is received, So that the user can use the virtual machine 152 even before.

이어, 가상머신(152)이 부팅된 이후, 가상머신(152)으로부터 데이터 요청이 있는 경우, 가상머신 관리장치(154)는 컴퓨트 노드(150)의 메모리 등과 같은 로컬영역(Local)에 BWS(138)를 두고 BWS(138)에서 읽어 올 수 있는 부분은 BWS(138)에서 읽어오고, 그렇지 않은 부분은 원격(Remote)에 있는 블록 스토리지 노드(160)의 가상 디스크(162)에서 읽어들임으로써, 디스크 이미지로부터의 가상머신 프로비저닝 및 볼륨으로부터 가상머신 프로비저닝의 성능을 향상시키고 다수의 가상 머신이 동시에 프로비저닝 시 발생할 수 있는 부트 스톰 문제를 완화시키게 된다.Then, when there is a data request from the virtual machine 152 after the virtual machine 152 has been booted, the virtual machine management device 154 sends the BWS () to the local area such as the memory of the compute node 150 138 can be read from the BWS 138 and read from the BWS 138 and read from the virtual disk 162 of the remote storage block 160, Provision virtual machines from disk images and improve the performance of virtual machine provisioning from volumes, mitigating bootstorm problems that can occur when multiple virtual machines are provisioned at the same time.

BWS 생성노드(130)는 가상머신 프로비저닝 가속장치(108)의 명령에 따라 가상머신(132)에 대한 BWS(138)를 생성하는 노드로서, 컴퓨트 노드(150)와 마찬가지로 가상머신 관리장치(134)를 구비하여 컴퓨트 노드(150)에서의 동작과 마찬가지로 이미지 서비스부(106)로부터 디스크 이미지를 다운로드받아 가상머신(132)을 프로비저닝하게 된다. 또한, BWS 생성노드(130)는 가상머신(132)의 프로비저닝 과정에서 가상머신(132)의 부팅시 사용되는 데이터를 추출하여 BWS(138)를 생성할 수 있다. 이때, 이러한 BWS 생성노드(130)에서 프로비저닝되는 가상머신(132)은 컴퓨트 노드(150)에 생성되도록 요청된 가상머신(152)의 BWS(138)을 생성하기 위해 BWS 생성노드(130)에서 미리 프로비저닝시키는 가상머신(132)을 말할 수 있으나, 이에 한정되는 것은 아니다.The BWS generating node 130 is a node that generates the BWS 138 for the virtual machine 132 in response to a command of the virtual machine provisioning accelerator 108. The virtual machine management apparatus 134 And similarly to the operation in the compute node 150, the disk image is downloaded from the image service unit 106 and the virtual machine 132 is provisioned. In addition, the BWS generation node 130 may generate the BWS 138 by extracting data used at the time of booting the virtual machine 132 in the provisioning process of the virtual machine 132. At this time, the virtual machine 132 provisioned in the BWS generation node 130 is transferred to the BWS generation node 130 in order to generate the BWS 138 of the virtual machine 152 requested to be created in the compute node 150 But is not limited to, a virtual machine 132 for provisioning in advance.

블록 스토리지 노드(160)는 클라우드 시스템상 각 컴퓨터 노드(150)에 의해 공유되는 스토리지 자원을 구비하는 노드로서, 하드 디스크(hard disk) 등의 저장장치를 이용하여 각 컴퓨트 노드(150)에 프로비저닝되는 가상머신(152)의 디스크 이미지를 저장하고, 가상머신(152)에 가상 디스크(162)를 할당하여 가상머신(152)이 부팅된 이후 가상머신(152)에서 쓰기 또는 읽기의 동작에 따라 발생하는 데이터를 해당 가상 디스크(162)에 저장할 수 있다.The block storage node 160 is a node having storage resources shared by each computer node 150 on the cloud system and is provided with a provisioning function for each compute node 150 using a storage device such as a hard disk The virtual machine 152 stores the disk image of the virtual machine 152 in the virtual machine 152 and allocates the virtual disk 162 to the virtual machine 152 to generate To the corresponding virtual disk 162. In this case,

스토리지 노드(170)는 하드 디스크 등의 대용량 저장장치를 말하는 것으로, 클라우드 시스템내 각 컴퓨트 노드(150)에서 저장하는 일반적인 데이터가 저장되기도 하고, 가상머신(152)이 프로비저닝되기 전의 이미지 파일 등을 저장할 수도 있다.The storage node 170 is a mass storage device such as a hard disk. The storage node 170 stores general data stored in each compute node 150 in the cloud system, and stores image files and the like before the virtual machine 152 is provisioned. It can also be saved.

도 2는 본 발명의 실시예에 따른 가상머신 프로비저닝 가속장치(106)에서 가상머신(152)의 BWS(138)를 생성하고 클라우드 시스템상 각 컴퓨트 노드(150)로 배포하는 개념을 도시한 것이다. Figure 2 illustrates the concept of creating a BWS 138 of a virtual machine 152 in a virtual machine provisioning accelerator 106 and distributing it to each compute node 150 on a cloud system in accordance with an embodiment of the present invention .

이하, 도 2를 참조하여 가상머신 프로비저닝 가속장치(108)에서 가상머신(150)의 BWS(138)를 생성하고 클라우드 시스템상 각 컴퓨트 노드(150)로 배포하는 동작을 보다 상세히 설명하기로 한다.Hereinafter, the operation of generating the BWS 138 of the virtual machine 150 in the virtual machine provisioning accelerator 108 and distributing it to each compute node 150 on the cloud system will be described in more detail with reference to FIG. 2 .

먼저, 가상머신 프로비저닝 가속장치(108)는 BWS 생성부(200)와 BWS 관리부(202) 등을 포함할 수 있다.First, the virtual machine provisioning accelerator 108 may include a BWS generator 200, a BWS manager 202, and the like.

BWS 생성부(200)는 이미지 서비스부(106)에 새로운 가상머신(152)의 디스크 이미지가 등록되는 경우 해당 디스크 이미지에 대한 BWS(138)가 생성되도록 한다. 이때, BWS 생성부(200)는 BWS 생성노드(130)로 새로이 등록된 가상머신(152)의 디스크 이미지에 대해 BWS(138)를 생성하도록 명령할 수 있다. 이때, BWS(138)의 생성에 있어서 BWS 생성부(200)가 BWS 생성노드(130)로 BWS 생성 명령을 전송하여 BWS 생성노드(130)에서 BWS(138)가 생성되도록 하는 것을 예시하였으나, 이에 한정되는 것은 아니다. 즉, BWS 생성부(200)에서 직접 새로이 등록된 가상머신(152)에 대한 BWS(138)를 생성하도록 구현할 수도 있다.The BWS generator 200 generates a BWS 138 for the disk image when the disk image of the new virtual machine 152 is registered in the image service unit 106. At this time, the BWS generating unit 200 may instruct the BWS generating node 130 to generate the BWS 138 for the disk image of the newly registered virtual machine 152. The BWS generator 200 generates the BWS 138 in the BWS generating node 130 by transmitting the BWS generating command to the BWS generating node 130 in the generation of the BWS 138. However, But is not limited thereto. That is, the BWS generating unit 200 may be configured to generate the BWS 138 for the newly registered virtual machine 152 directly.

BWS 관리부(202)는 BWS 생성부(200)의 동작에 따라 BWS 생성노드(130) 등에서 이미지 서비스부(106)에 새로 등록된 가상머신(152)의 BWS(138)가 생성되는 경우, 생성된 BWS(138)를 클라우드 시스템상 각 컴퓨트 노드(150)에 배포하여 특정 컴퓨트 노드(150)에서 네트워크상 블록 스토리지 노드(160)에 접속하지 않고도 BWS(138)를 이용하여 해당 가상머신(152)이 부팅될 수 있도록 함으로써, 가상머신(152)이 신속하게 부팅될 수 있도록 한다.When the BWS 138 of the virtual machine 152 newly registered in the image service unit 106 is generated in the BWS generating node 130 or the like according to the operation of the BWS generating unit 200, The BWS 138 is distributed to each compute node 150 on the cloud system so that the corresponding virtual machine 152 can be accessed by using the BWS 138 without accessing the block storage node 160 on the network from the specific compute node 150. [ ) So that the virtual machine 152 can be booted quickly.

다음으로, 동작을 살펴보면, 제어노드(100)상 이미지 서비스부(106)에 새로운 가상머신(152)에 대한 디스크 이미지가 등록되는 경우 가상머신 프로비저닝 가속장치(108)의 BWS 생성부(200)는 BWS 생성노드(130)로 새로이 등록된 디스크 이미지에 대한 BWS(138)를 생성하도록 명령한다. Next, in operation, when a disk image for a new virtual machine 152 is registered in the image service unit 106 on the control node 100, the BWS generation unit 200 of the virtual machine provisioning acceleration device 108 And instructs the BWS generation node 130 to generate the BWS 138 for the newly registered disk image.

이때, BWS 생성노드(130)는 가상머신 프로비저닝 가속장치(108)의 명령에 따라 가상머신(152)에 대한 BWS(138)를 생성하는 노드로서, 컴퓨트 노드(150)와 마찬가지로 가상머신 관리장치(134)를 구비하여 컴퓨트 노드(150)에서의 동작과 마찬가지로 이미지 서비스부(106)로부터 디스크 이미지를 다운로드받아 가상머신(152)을 프로비저닝하게 된다.At this time, the BWS generating node 130 is a node that generates the BWS 138 for the virtual machine 152 in response to a command of the virtual machine provisioning accelerator 108, and similarly to the compute node 150, And the virtual machine 152 is provisioned by downloading the disk image from the image service unit 106 in the same manner as the operation in the compute node 150. [

즉, 가상머신 생성 명령이 수신되는 경우 BWS 생성노드(130)의 가상머신 관리장치(134)는 이미지 서비스부(106)로부터 가상머신(152)의 디스크 이미지를 다운로드받아 SSD(solid state disk)(136)에 저장시키고, SSD(136)에 저장된 디스크 이미지를 이용하여 가상머신(152)을 프로비저닝한다. That is, when the virtual machine creation command is received, the virtual machine management device 134 of the BWS generation node 130 downloads the disk image of the virtual machine 152 from the image service unit 106 and receives the solid state disk (SSD) 136 and provision the virtual machine 152 using the disk image stored in the SSD 136. [

이때, 가상머신 관리장치(134)는 디스크 이미지를 백킹(backing)하는 데이터가 비어있는 BWS(138)를 생성하고, BWS 생성노드(130)의 가상머신(152)에서 디스크 이미지에 대한 리드(read) 요청(S200)에 따라 SSD(136)상 저장된 디스크 이미지를 이용하여 가상머신(152)을 부팅시키면서 부팅과정에서 디스크 이미지에서 읽혀지는 데이터를 BWS(138)에 Copy-on-Read 방식으로 복사하여 BWS(138)를 생성한다(S202). 이어, 가상머신 관리장치(134)는 이와 같이 생성된 BWS(138)에 대해 BWS 관리부(202)의 제어에 따라 클라우드 시스템상 각 컴퓨트 노드로 배포할 수 있다(S204). At this time, the virtual machine management device 134 creates a BWS 138 in which data for backing up the disk image is empty, and reads the read image data from the virtual machine 152 of the BWS generating node 130 ), The virtual machine 152 is booted using the disk image stored in the SSD 136 according to the request (S200), and the data read from the disk image in the booting process is copied to the BWS 138 in the copy-on-read manner And generates the BWS 138 (S202). Then, the virtual machine management device 134 can distribute the created BWS 138 to each of the compute nodes on the cloud system under the control of the BWS management unit 202 (S204).

도 3은 본 발명의 실시예에 따른 BWS 생성노드(130)의 가상머신 관리장치(134)에서 BWS(138)를 생성하는 개념을 도시한 것이다.3 illustrates a concept of generating a BWS 138 in a virtual machine management device 134 of a BWS generation node 130 according to an embodiment of the present invention.

위 도 3을 참조하면, 먼저 가상머신(152)으로부터 디스크 이미지에 대한 리드 요청이 수신되는 경우(S300), 가상머신 관리장치(134)는 SSD(136)내에 부팅할 디스크 이미지(300)를 백킹(backing) 파일로 가르키고 있는 비어있는 예를 들어 Copy-on-Write를 지원하는 가상 디스크(Qcow2 등) 포맷의 BWS 이미지(302)를 만들고, 디스크 이미지에 대해 Copy-on-Read 옵션을 켠 상태로 부팅시킨다(S302). 이에 따라, 디스크 이미지(300)상 가상머신(152)을 부팅시키기 위해 읽혀지는 데이터가 BWS 이미지(302)에 복사되어 가상머신(152)의 부팅시 사용된 데이터만으로 구성되는 BWS(138)가 생성된다(S304). 이때, 디스크 이미지(300)로부터 읽혀진 데이터는 가상머신 관리장치(134)를 통해 가상머신(152)으로 제공됨으로써(S306) 가상머신(152)의 프로비저닝이 수행된다. 3, when a read request for a disk image is received from the virtual machine 152 (S300), the virtual machine management device 134 sends back a disk image 300 to be booted in the SSD 136 to the backing (BWS image 302) formatted as a blank (for example, a virtual disk (Qcow2, etc.) that supports Copy-on-Write) pointing to a backing file and a copy-on- And boot (S302). Thus, the BWS 138, in which the data to be read to boot the virtual machine 152 on the disk image 300 is copied to the BWS image 302 and consists only of the data used at boot time of the virtual machine 152, (S304). At this time, the data read from the disk image 300 is provided to the virtual machine 152 through the virtual machine management device 134 (S306), and the provisioning of the virtual machine 152 is performed.

즉, 가상머신 관리장치(134)는 위와 같이 비어있는 BWS 이미지(302)를 생성하고, 가상머신(152)을 부팅하면서 Copy-on-Read 방법으로 비어있는 Copy-on-Write(Qcow2 등) 포맷의 BWS 이미지(302)에 원본 디스크 이미지(300)에서 읽어온 부분을 쓰게 됨으로써 자연스럽게 BWS(138)를 만들 수 있게 되는 것이다.That is, the virtual machine management device 134 generates the empty BWS image 302 as described above, and creates a blank Copy-on-Write (Qcow2, etc.) format It is possible to create the BWS 138 naturally by writing the portion read from the original disc image 300 to the BWS image 302 of the BWS image 302. [

위와 같이 BWS(138)가 만들어지는 경우 가상머신 가속장치(108)의 BWS 관리부(202)는 BWS 생성노드(130)에서 생성된 가상머신(152)의 BWS(138)를 클라우드 시스템상 각 컴퓨트 노드(150)로 배포하여 각 컴퓨트 노드(150)에 저장되도록 함으로써, 사용자로부터 해당 가상머신(152)에 대한 프로비저닝 요청이 있는 경우, 각 컴퓨트 노드(150)에서 미리 저장된 BWS(138)를 이용하여 가상머신(152)을 부팅시킴으로써, 가상머신 프로비저닝이 신속하게 수행될 수 있도록 한다.When the BWS 138 is created as described above, the BWS management unit 202 of the virtual machine accelerator 108 transmits the BWS 138 of the virtual machine 152 generated in the BWS generation node 130 to the respective computers The BWS 138 is stored in each compute node 150 in the case where there is a provisioning request for the corresponding virtual machine 152 from the user To boot the virtual machine 152 so that the virtual machine provisioning can be performed quickly.

도 4는 본 발명의 실시예에 따른 가상머신 관리장치(154)의 상세 구성을 도시한 것으로, 가상머신 프로비저닝부(155), I/O 관리부(156) 등을 포함할 수 있다.FIG. 4 illustrates a detailed configuration of a virtual machine management device 154 according to an embodiment of the present invention, and may include a virtual machine provisioning unit 155, an I / O management unit 156, and the like.

이하, 도 4를 참조하여 본 발명의 실시예에 따른 가상머신 관리장치(154)의 각 구성요소에서의 동작을 상세히 설명하기로 한다.Hereinafter, the operation of each component of the virtual machine management device 154 according to the embodiment of the present invention will be described in detail with reference to FIG.

먼저, 가상머신 프로비저닝부(155)는 클라우드 시스템내 각 컴퓨트 노드(150)에서 가상머신(150)의 프로비저닝이 요청되는 경우, 가상머신 프로비저닝 가속장치(108)로부터 미리 배포된 가상머신(152)의 BWS(138)를 이용하여 가상머신(152)을 부팅시키고, 가상머신(152)이 부팅된 이후에는 블록 스토리지 노드(160)에 다운로드된 해당 가상머신(152)의 전체 디스크 이미지를 이용하여 가상머신 프로비저닝을 수행한다.First, the virtual machine provisioning unit 155 acquires the virtual machine 152 previously distributed from the virtual machine provisioning accelerator 108 when the virtual machine 150 is requested to be provisioned at each compute node 150 in the cloud system. The virtual machine 152 is booted using the BWS 138 of the virtual machine 152 and the entire disk image of the corresponding virtual machine 152 downloaded to the block storage node 160 after the virtual machine 152 is booted Perform machine provisioning.

I/O 관리부(156)는 본 발명의 실시예에 따라 컴퓨트 노드(150)에 배포된 가상머신(152)의 BWS(138)를 이용하여 가상머신(152)이 부팅된 이후, 가상머신(152)으로부터 요청되는 데이터 요청에 대해 BWS(138) 또는 블록 스토리지 노드(160)상 해당 가상머신(152)에 할당된 가상 디스크(162)로 접근하여 요청된 데이터를 가상머신(152)으로 제공하는 동작을 관리하게 된다.The I / O management unit 156 manages the virtual machine 152 after the virtual machine 152 is booted using the BWS 138 of the virtual machine 152 distributed to the compute node 150 according to the embodiment of the present invention. 152 to the virtual disk 162 allocated to the corresponding virtual machine 152 on the BWS 138 or the block storage node 160 and provides the requested data to the virtual machine 152 And manages the operation.

즉, I/O 관리부(156)는 부팅된 가상머신(152)상 데이터 읽기 또는 쓰기가 수행되어 가상머신(152)으로부터 데이터 읽기 또는 쓰기를 위한 데이터 요청을 수신하는 경우, 가상머신(152)상 쓰기가 수행된 데이터에 대한 해쉬(hash)값을 저장한 해쉬테이블(hash table)(406)을 참조하여 요청된 데이터가 BWS(138)에 있는지 또는 블록 스토리지 노드(160)상 가상머신(152)의 가상 디스크(162)에 있는지 판단을 요청하고, 판단결과에 따라 BWS(138) 또는 가상 디스크(162)에서 요청된 데이터를 검색하여 가상머신(152)으로 제공할 수 있다.That is, when data is read or written on the booted virtual machine 152 to receive a data request for reading or writing data from the virtual machine 152, the I / A hash table 406 storing a hash value for the data on which the write has been performed is used to determine whether the requested data is in the BWS 138 or in the virtual machine 152 on the block storage node 160. [ And provides the virtual machine 152 with the data requested by the BWS 138 or the virtual disk 162 according to the determination result.

이러한, I/O 관리부(156)는 도 4에서 보여지는 바와 같이 I/O 처리부(fetcher)(400), 결정부(decision maker)(402), BWS 리더부(408), 해쉬 테이블 관리부(hash table manager)(404) 등을 포함할 수 있다. 이하에서는 I/O 관리부(156)의 각 구성요소에서의 동작을 보다 상세히 설명하기로 한다.As shown in FIG. 4, the I / O management unit 156 includes an I / O processing unit 400, a decision maker 402, a BWS reader unit 408, a hash table management unit (hash) table manager 404 and the like. Hereinafter, the operation of each component of the I / O manager 156 will be described in more detail.

I/O 처리부(400)는 가상머신(152)으로부터 데이터 요청을 수신하는 경우, 요청된 데이터를 BWS(138) 또는 블록 스토리지 노드(160)상 가상 디스크(162)에서 검색하여 가상머신(152)으로 제공한다.When the I / O processing unit 400 receives the data request from the virtual machine 152, the I / O processing unit 400 searches the virtual disk 162 on the BWS 138 or the block storage node 160 for the requested data, .

즉, I/O 처리부(400)는 일종의 인터럽트 핸들러(interrupt handler)로서 가상머신(152)으로부터의 I/O 요청을 BWS 리더부(408)에 앞서 먼저 낚아채는(fetch) 역할만하고, I/O 요청을 낚아채서 요청된 데이터가 BWS(138)에 있는지 판단되는 동안에는 I/O를 리드(read)하는 API(application program interface)를 콜(call)하지 않고 대기하다가, 요청된 데이터가 BWS(138)에 있다고 판단하는 경우 BWS(138)의 I/O를 리드하는 API를 콜하여 BWS 리더부(138)로 이벤트(event)를 보내 BWS 리더부(138)가 이벤트를 받자마자 비동기적으로 바로 해당 데이터를 액세스할 수 있도록 한다.That is, the I / O processing unit 400 is an interrupt handler, and it only fetches an I / O request from the virtual machine 152 before the BWS reader unit 408. The I / O request while waiting for an API (application program interface) to read the I / O while it is determined that the requested data is in the BWS 138, The BWS reader 138 calls an API that reads the I / O of the BWS 138 and sends an event to the BWS reader 138. As soon as the BWS reader 138 receives the event, Make the data accessible.

즉, 가상머신(152)으로부터 I/O요청이 왔을 때, BWS 리더부(408)가 I/O가 완료될 때까지 대기하고 있게 되면 결정부(402)에서 판단이 올때까지 대기하는 시간동안 BWS 리더부(402)는 I/O를 못하고 대기하게 된다. 이에 따라, 본 발명의 실시예에서는 가상머신(152)으로부터 I/O 요청이 발생하는 경우 I/O 처리부(400)가 먼저 I/O 요청을 낚아채서 결정부(402)를 통해 I/O 요청된 데이터가 BWS(138)에 있는지 블록 스토리지 노드(160)상 가상 디스크(162)에 있는 지 판단을 하게 되고, I/O 요청된 데이터가 BWS(138)에 있다고 판단된 경우에만 이벤트를 BWS 리더부(408)쪽으로 보내도록 구현한다. 이에 따라, 가상머신(152)으로부터의 I/O 요청에 대해 비동기방식으로 I/O처리를 할 수 있기 때문에 성능이 더 좋아지게 된다. That is, when the I / O request is received from the virtual machine 152 and the BWS reader unit 408 waits until the I / O is completed, the BWS The reader unit 402 waits without being able to perform I / O. Accordingly, in the embodiment of the present invention, when an I / O request is generated from the virtual machine 152, the I / O processing unit 400 first snatches the I / O request, It is determined whether the data is in the BWS 138 or in the virtual disk 162 on the block storage node 160 and only when the I / O requested data is found in the BWS 138, (408). As a result, I / O processing can be performed in an asynchronous manner with respect to an I / O request from the virtual machine 152, thereby improving performance.

해쉬테이블 관리부(404)는 가상머신(152)상 쓰기가 수행된 데이터에 대한 해쉬값을 제공받아 해쉬테이블(406)에 저장한다. 이때, 이러한 해쉬값은 예를 들어 가상 디스크(162)상 쓰기가 수행된 데이터가 저장된 섹터(sector)의 오프셋(offset)값일 수 있으나 이에 한정되는 것은 아니다. 또한, 해쉬테이블 관리부(404)는 동일한 섹터를 사용하는 데이터에 대해서는 도 5에서 보여지는 바와 같이 동일한 섹터상 서로 다른 오프셋값을 링크드 리스트(linked-list)로 관리하여 쓰기 수행된 데이터에 대한 해쉬값을 쉽게 검색할 수 있도록 할 수 있다. The hash table management unit 404 receives the hash value of the data written on the virtual machine 152 and stores the hash value in the hash table 406. [ In this case, the hash value may be, for example, an offset value of a sector in which data written on the virtual disk 162 is stored, but is not limited thereto. 5, the hash table management unit 404 manages different offset values on the same sector in a linked-list as shown in FIG. 5, and obtains a hash value Can be easily retrieved.

결정부(402)는 해쉬테이블 관리부(404)에서 관리하는 해쉬테이블(406)을 참조하여 가상머신(152)으로부터 요청된 데이터가 BWS(138)에 있는지 또는 블록 스토리지 노드(160)상 가상 디스크(163)에 있는지 여부를 판단하고, 판단 결과를 I/O 처리부(400)로 제공할 수 있다.The determination unit 402 refers to the hash table 406 managed by the hash table management unit 404 and determines whether the requested data from the virtual machine 152 exists in the BWS 138 or on the virtual storage unit 160 163), and provide the determination result to the I / O processing unit 400. The I /

I/O 처리부(400)는 가상머신(152)으로부터 I/O요청을 수신한 경우 I/O 요청된 데이터가 BWS(138)에 있는지 블록 스토리지 노드(160)상 가상 디스크(162)에 있는지에 대한 판단을 결정부(402)로 요청하게 된다.When the I / O request is received from the virtual machine 152, the I / O processor 400 determines whether the I / O requested data exists in the BWS 138 or in the virtual disk 162 on the block storage node 160 The determination unit 402 requests the determination.

그러면, 결정부(402)는 해쉬테이블(406)을 참조하여 I/O 요청된 데이터가 쓰기가 수행된 적이 있는지 여부를 검사하여 I/O 요청된 데이터가 BWS(138)에 있는지 블록 스토리지 노드(160)상 가상 디스크(162)에 있는지를 판단하고, 판단결과를 I/O 처리부(400)로 제공하는 것이다.Then, the determining unit 402 determines whether the I / O requested data has been written by referring to the hash table 406 and determines whether the I / O requested data is in the BWS 138 160) virtual disk 162, and provides the determination result to the I / O processing unit 400.

이때, 해쉬테이블(406)에는 가상머신(152)에서 한번이라도 쓰기가 수행된 데이터의 해쉬값이 섹터 오프셋값으로 모두 저장되기 때문에, 결정부(402)는 예를 들어 I/O 요청에 해당하는 데이터가 전부 해쉬테이블(406)에 있다면 I/O 요청된 데이터가 블록 스토리지 노드(160)상 가상 디스크(162)에 있다고 판단할 수 있고, I/O 요청에 해당하는 데이터가 해쉬테이블(406)에 없다면 I/O 요청된 데이터가 BWS(138)에 있다고 판단할 수 있으나 이에 한정되는 것은 아니다.At this time, since the hash value of the data once written in the virtual machine 152 is all stored in the hash table 406 as the sector offset value, the determination unit 402 determines whether or not the I / If the data is entirely in the hash table 406, it can be determined that the I / O requested data is in the virtual disk 162 on the block storage node 160 and the data corresponding to the I / The I / O requested data is in the BWS 138. However, the present invention is not limited thereto.

BWS 리더부(408)는 BWS(138)에 저장된 데이터에 대한 읽기가 가능하며, I/O 처리부(400)로부터 BWS(138)상 데이터에 대한 요청이 있는 경우, BWS(138)에서 요청된 데이터를 검색하여 I/O처리부(400)로 제공할 수 있다.The BWS reader unit 408 can read the data stored in the BWS 138. If there is a request for data on the BWS 138 from the I / O processing unit 400, To the I / O processing unit 400. The I /

도 6은 본 발명의 실시예에 따른 가상머신 관리장치에서 가상머신 프로비저닝시 쓰기 동작에 대한 처리 흐름도를 도시한 것이다. 이하, 도 4 내지 도 6을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.FIG. 6 is a flowchart illustrating a write operation for virtual machine provisioning in a virtual machine management apparatus according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 4 to 6. FIG.

컴퓨트 노드(150)에서 가상머신(152)이 부팅된 이후에는 사용자가 가상머신(152)을 사용할 수 있는 상태로 되며, 가상머신(152)의 사용에 따라 가상머신(152)으로부터 가상머신 관리장치(154)로 데이터 요청이 발생할 수 있다. 이러한 데이터 요청에 대해서는 가상머신 관리장치(154)의 I/O 관리부(156)에서 처리하게 된다.After the virtual machine 152 is booted at the compute node 150, the user is allowed to use the virtual machine 152, and from the virtual machine 152 in accordance with the use of the virtual machine 152, A data request may occur to the device 154. This data request is processed by the I / O manager 156 of the virtual machine management device 154.

이때, 이러한 데이터 요청이 데이터에 대한 쓰기 요청인 경우(S600), 가상머신 관리장치(156)의 I/O 관리부(156)는 쓰기 요청된 데이터에 대해 블록 스토리지 노드(160)상 해당 가상머신(152)에 할당된 가상 디스크(162)상에 데이터 쓰기를 수행한다(S602).At this time, if the data request is a write request for data (S600), the I / O manager 156 of the virtual machine management device 156 accesses the corresponding virtual machine (not shown) on the block storage node 160 152 on the virtual disk 162 (S602).

이어, I/O 관리부(156)는 데이터에 대한 쓰기를 수행한 후에는 쓰기가 수행된 데이터가 저장된 가상 디스크(162)상 섹터의 오프셋값을 해쉬테이블(406)에 저장한다(S604).After writing the data, the I / O manager 156 stores the offset value of the sector on the virtual disk 162 storing the written data in the hash table 406 (S604).

이때, 쓰기가 수행된 데이터의 가상 디스크(162)상 섹터의 오프셋값을 해쉬테이블(406)내 해쉬값으로 기록하는 이유는 가상머신(152)으로부터 데이터에 대한 읽기 요청이 있는 경우 읽기 요청된 데이터를 BWS(138)에서 읽을 것인지 블록 스토리지 노드(160)상 가상 디스크(162)에서 읽을 것인지 판단하기 위한 것이다.The reason why the offset value of the sector on the virtual disk 162 of the written data is recorded as the hash value in the hash table 406 is that if there is a read request for data from the virtual machine 152, To be read from the BWS 138 or from the virtual disk 162 on the block storage node 160.

즉, I/O 관리부(156)는 가상머신(152)에서 한번이라도 쓰기가 수행된 데이터의 섹터 오프셋값을 해쉬테이블(406)상 해쉬값으로 모두 저장하게 되며, 이후, 예를 들어 가상머신(152)으로부터 I/O 요청된 데이터가 해쉬테이블(406)에 있다면 I/O 요청된 데이터가 블록 스토리지 노드(160)상 가상 디스크(162)에 있다고 판단하고, I/O 요청된 데이터가 해쉬테이블(406)에 없다면 I/O 요청된 데이터가 BWS(138)에 있다고 판단할 수 있는 것이다.In other words, the I / O manager 156 stores the sector offset value of the data once written in the virtual machine 152 as a hash value on the hash table 406. Thereafter, for example, the virtual machine 152 O requested data is stored in the hash table 406. If the I / O requested data is in the hash table 406, the I / O requested data is determined to be in the virtual disk 162 on the block storage node 160, The I / O requested data is in the BWS 138 if it is not in the BWS 406.

도 7은 본 발명의 실시예에 따른 가상머신 관리장치에서 가상머신 프로비저닝시 읽기 동작에 대한 처리 흐름도를 도시한 것이다. 이하, 도 4 내지 도 5 및 도 7을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.FIG. 7 shows a processing flow for a read operation in virtual machine provisioning in a virtual machine management apparatus according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 4 to 5 and FIG.

컴퓨트 노드(150)에서 가상머신(152)이 부팅된 이후에는 사용자가 가상머신(152)을 사용할 수 있는 상태로 되며, 가상머신(152)의 사용에 따라 가상머신(152)으로부터 가상머신 관리장치(154)로 데이터 요청이 발생할 수 있다. 이러한 데이터 요청에 대해서는 가상머신 관리장치(154)의 I/O 관리부(156)에서 처리하게 된다.After the virtual machine 152 is booted at the compute node 150, the user is allowed to use the virtual machine 152, and from the virtual machine 152 in accordance with the use of the virtual machine 152, A data request may occur to the device 154. This data request is processed by the I / O manager 156 of the virtual machine management device 154.

이때, 이러한 데이터 요청이 데이터에 대한 읽기 요청인 경우(S700), 가상머신 관리장치(154)의 I/O 관리부(156)는 읽기 요청된 데이터가 이전에 쓰여진적이 있는지 여부를 검사한다(S702). At this time, if the data request is a read request for data (S700), the I / O manager 156 of the virtual machine management device 154 checks whether the data requested to be read has been written before (S702) .

이때, I/O 관리부(156)는 해쉬테이블(406)을 참조하여 읽기 요청된 데이터가 이전에 쓰여진적이 있는지 여부를 판단하게 된다. 즉, 가상머신(152)에서 한번이라도 쓰기가 수행된 데이터의 섹터 오프셋값은 해쉬테이블(406)상 해쉬값으로 모두 저장하게 되므로, 이에 따라 I/O 관리부(156)는 가상머신(152)으로부터 읽기 요청된 데이터가 해쉬테이블(406)에 있는 경우라면 읽기 요청된 데이터가 이전에 쓰여진적이 있는 것으로 판단하고, 읽기 요청된 데이터가 해쉬테이블(406)에 없다면 읽기 요청된 데이터가 이전에 쓰여진적이 없다고 판단하게 된다.At this time, the I / O manager 156 refers to the hash table 406 to determine whether the data requested to be read has been written before. That is, since the sector offset value of the data once written in the virtual machine 152 is all stored in the hash value on the hash table 406, the I / O management unit 156 reads the offset value of the sector from the virtual machine 152 If the data requested to be read is in the hash table 406, it is determined that the data requested to be read has been written before. If the data requested to be read is not in the hash table 406, the data requested to be read has not been written before .

위와 같은 판단결과, 읽기 요청된 데이터가 이전에 쓰여진적이 있다고 판단된 경우, 이는 해당 데이터가 블록 스토리지 노드(160)상 가상 디스크(162)에 존재하는 것을 의미하므로, I/O 관리부(156)는 해쉬테이블(406)상 해당 데이터의 해쉬값을 이용하여 블록 스토리지 노드(160)상 가상 디스크(162)에서 읽기 요청된 데이터를 읽어오게 되며(S704), 읽어온 데이터를 가상머신(152)으로 제공한다(S708).As a result of the above determination, when it is determined that the data requested to be read has been written before, it means that the corresponding data exists in the virtual disk 162 on the block storage node 160. Therefore, the I / The read requested data is read from the virtual disk 162 on the block storage node 160 using the hash value of the corresponding data on the hash table 406 in step S704 and the read data is provided to the virtual machine 152 (S708).

이와 달리, 판단결과, 읽기 요청된 데이터가 이전에 쓰여진적이 없다고 판단된 경우, 이는 해당 데이터가 BWS(138)에 존재하는 것을 의미하므로, I/O 관리부(156)는 BWS(138)에서 읽기 요청된 데이터를 읽어오게 되며(S704), 읽어온 데이터를 가상머신(152)으로 제공한다(S708).If it is determined that the data requested to be read has not been written before, the I / O manager 156 refers to the read request in the BWS 138, (S704), and provides the read data to the virtual machine 152 (S708).

상기한 바와 같이, 본 발명에 따르면, 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치 및 가상머신 관리장치에서 가상 머신 프로비저닝시 가상머신을 부트시킬 수 있는 부트워킹셋을 클라우드 시스템내 모든 컴퓨트 노드에 미리 배포하여 저장시켜 놓은 후, 가상 머신 프로비저닝 시 네트워크를 거치지 않고 바로 각각의 컴퓨트 노드에서 부트워킹셋을 이용하여 가상머신을 부팅시킴으로써, 가상머신 프로비저닝 속도를 가속화시킬 수 있다. 또한 미리 저장된 부트워킹셋을 이용함으로써 여러 가상 머신들이 동시에 프로비저닝되는 경우에도 네트워크 사용량이 현저히 줄어들게 되어 네트워크 병목 현상인 부트 스톰을 완화시킬 수 있다.As described above, according to the present invention, a virtual machine provisioning accelerator using a booting set, and a booting set capable of booting a virtual machine at the time of virtual machine provisioning in a virtual machine management apparatus, are provided to all the compute nodes in the cloud system in advance After provisioning and storing, the virtual machine provisioning speed can be accelerated by booting the virtual machine using the boot working set at each compute node without going through the network in the virtual machine provisioning. In addition, by using pre-stored booting sets, even when multiple virtual machines are provisioned at the same time, the network usage is significantly reduced, which can alleviate the boot storm as a network bottleneck.

한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should not be limited by the described embodiments but should be defined by the appended claims.

100 : 제어노드 102 : 컴퓨트 노드 관리부
104 : 블록 스토리지 노드 관리부 106 : 이미지 서비스부
108 : 가상머신 프로비저닝 가속장치 130 : BWS 생성노드
136 : SSD 138 : BWS
150 : 컴퓨트 노드 152 : 가상머신
154 : 가상머신 관리장치 156 : I/O 관리부
160 : 블록 스토리지 노드 162 : 가상 디스크
170 : 스토리지 노드
100: control node 102: compute node management unit
104: block storage node management unit 106: image service unit
108: Virtual Machine Provisioning Accelerator 130: BWS Generation Node
136: SSD 138: BWS
150: compute node 152: virtual machine
154: Virtual machine management device 156: I / O manager
160: Block storage node 162: Virtual disk
170: storage node

Claims (8)

클라우드 시스템내 적어도 하나의 컴퓨트 노드에 생성되는 적어도 하나의 가상머신의 디스크 이미지가 등록되는 경우 상기 디스크 이미지 중 상기 가상머신을 부팅시키기 위해 필요한 데이터를 포함하는 BWS(Boot Working Set)를 생성하는 BWS 생성부와,
상기 BWS 상기 컴퓨트 노드로 배포하여, 상기 가상머신이 상기 컴퓨트 노드에서 상기 BWS를 이용하여 부팅되도록 제어하는 BWS 관리부
를 포함하는 가상머신 프로비저닝 가속장치.
A BWS (Boot Working Set) generating a BWS (Boot Working Set) including data necessary for booting the virtual machine among the disk images when a disk image of at least one virtual machine created in at least one compute node in the cloud system is registered; A generating unit,
A BWS management unit for distributing the BWS to the compute node and controlling the virtual machine to boot using the BWS at the compute node,
The virtual machine provisioning acceleration device comprising:
제 1 항에 있어서,
상기 BWS 생성부는,
상기 디스크 이미지를 이용하여 상기 가상머신을 부팅시키는 동안, 상기 디스크 이미지 중 상기 부팅 시 사용되는 데이터를 확인하고, 상기 확인된 데이터만으로 상기 BWS를 생성하는 가상머신 프로비저닝 가속장치.
The method according to claim 1,
Wherein the BWS generator comprises:
Wherein during booting of the virtual machine using the disk image, the data used during the booting of the disk image is checked, and the BWS is generated using only the confirmed data.
제 2 항에 있어서,
상기 BWS 생성부는,
상기 클라우드 시스템내 상기 BWS를 생성하도록 할당된 컴퓨트 노드로 하여금 상기 BWS를 생성하도록 하는 가상머신 프로비저닝 가속장치.
3. The method of claim 2,
Wherein the BWS generator comprises:
And cause a compute node assigned to create the BWS in the cloud system to generate the BWS.
클라우드 시스템내 적어도 하나의 컴퓨트 노드에 생성될 가상머신의 디스크 이미지를 수신하는 단계와,
상기 디스크 이미지 중 상기 가상머신을 부팅시키기 위해 필요한 데이터를 포함하는 BWS를 생성하는 단계와,
상기 BWS를 상기 컴퓨트 노드로 배포하는 단계와,
상기 컴퓨트 노드에서 상기 가상머신 상기 BWS를 이용하여 부팅되도록 제어하는 단계
를 포함하는 가상머신 프로비저닝 방법.
Receiving a disk image of a virtual machine to be created in at least one compute node in the cloud system,
Generating a BWS including data necessary for booting the virtual machine among the disk images;
Distributing the BWS to the compute node;
Controlling the virtual node to boot using the BWS at the compute node
/ RTI >
클라우드 시스템내 컴퓨트 노드로 가상머신의 프로비저닝이 요청되는 경우 상기 가상머신의 디스크 이미지 중 상기 가상머신의 부팅을 위해 필요한 데이터로 이루어진 BWS를 이용하여 상기 가상머신을 부팅시키는 가상머신 프로비저닝부와,
상기 부팅된 상기 가상머신상 데이터 읽기 또는 쓰기가 수행되어 상기 가상머신으로부터 상기 데이터 읽기 또는 쓰기를 위한 데이터 요청을 수신하는 경우, 상기 가상머신상 쓰기가 수행된 데이터에 대한 해쉬값을 저장한 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상머신의 가상 디스크에 있는지 판단하고, 상기 판단결과에 따라 상기 BWS 또는 상기 가상 디스크에서 상기 요청된 데이터를 검색하여 상기 가상머신으로 제공하는 I/O(Input/Output) 관리부
를 포함하는 가상머신 관리장치.
A virtual machine provisioning unit for booting the virtual machine using a BWS composed of data necessary for booting the virtual machine among disk images of the virtual machine when provisioning of a virtual machine is requested to a compute node in the cloud system;
When a data request for reading or writing the data is received from the virtual machine by reading or writing data on the booted virtual machine, a hash table storing a hash value for the data written on the virtual machine Determines whether the requested data is in the BWS or the virtual disk of the virtual machine, searches the requested data in the BWS or the virtual disk according to the determination result, and provides I / O (Input / Output) management unit
The virtual machine management apparatus comprising:
제 5 항에 있어서,
상기 I/O 관리부는,
상기 가상머신으로부터 상기 데이터 요청을 수신하고, 상기 요청된 데이터를 상기 BWS 또는 상기 가상 디스크에서 검색하여 상기 가상머신으로 제공하는 I/O처리부와,
상기 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상 디스크에 있는지 여부를 판단하고, 상기 판단 결과를 상기 I/O 처리부로 제공하는 결정부와,
상기 BWS에 저장된 데이터에 대한 읽기가 가능하며, 상기 I/O 처리부로부터 상기 데이터 요청 수신 시, 상기 BWS에서 상기 요청된 데이터를 검색하여 상기 I/O처리부로 제공하는 BWS 리더부
를 포함하는 가상머신 관리장치.
6. The method of claim 5,
Wherein the I /
An I / O processing unit for receiving the data request from the virtual machine, searching the BWS or the virtual disk for the requested data, and providing the requested data to the virtual machine;
A determination unit for determining whether the requested data is in the BWS or the virtual disk by referring to the hash table, and providing the determination result to the I / O processing unit;
A BWS reader unit which is capable of reading data stored in the BWS and retrieving the requested data from the BWS when the data request is received from the I / O processing unit and providing the requested data to the I /
The virtual machine management apparatus comprising:
제 5 항에 있어서,
상기 해쉬값은,
상기 가상 디스크상 상기 쓰기가 수행된 데이터가 저장된 섹터의 오프셋값인 가상머신 관리장치.
6. The method of claim 5,
The hash value,
Wherein the virtual disk is an offset value of a sector in which the data on which the writing is performed is stored.
클라우드 시스템내 컴퓨트 노드에서 가상머신의 디스크 이미지 중 상기 가상머신의 부팅을 위해 필요한 데이터로 이루어진 BWS를 이용하여 상기 가상머신을 부팅시키는 단계와,
상기 부팅된 가상머신으로부터 데이터 읽기 또는 쓰기를 위한 데이터 요청을 수신하는 단계와,
상기 가상머신상 쓰기가 수행된 데이터에 대한 해쉬값을 저장한 해쉬테이블을 참조하여 상기 요청된 데이터가 상기 BWS에 있는지 또는 상기 가상머신의 가상 디스크에 있는지 판단하는 단계와,
상기 판단결과에 따라 상기 BWS 또는 상기 가상 디스크에서 상기 요청된 데이터를 검색하여 상기 가상머신으로 제공하는 단계
를 포함하는 가상머신 프로비저닝 방법.
Booting the virtual machine using a BWS which is composed of data necessary for booting the virtual machine among disk images of the virtual machine at a compute node in the cloud system,
Receiving a data request for reading or writing data from the booted virtual machine;
Determining whether the requested data is in the BWS or in a virtual disk of the virtual machine by referring to a hash table storing a hash value of the data written in the virtual machine,
Searching the requested data in the BWS or the virtual disk according to the determination result and providing the requested data to the virtual machine
/ RTI >
KR1020160029060A 2016-03-10 2016-03-10 Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof KR102327065B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160029060A KR102327065B1 (en) 2016-03-10 2016-03-10 Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160029060A KR102327065B1 (en) 2016-03-10 2016-03-10 Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof

Publications (2)

Publication Number Publication Date
KR20170105858A true KR20170105858A (en) 2017-09-20
KR102327065B1 KR102327065B1 (en) 2021-11-16

Family

ID=60034150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160029060A KR102327065B1 (en) 2016-03-10 2016-03-10 Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof

Country Status (1)

Country Link
KR (1) KR102327065B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080029947A (en) * 2006-09-29 2008-04-03 인텔 코오퍼레이션 System and method for increasing platform boot efficiency
KR20090065126A (en) 2007-12-17 2009-06-22 한국전자통신연구원 Method for provisioning of virtual machine using virtual machine disk pool
US20120060153A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Virtual Machine Rapid Provisioning System
KR20120071205A (en) * 2010-12-22 2012-07-02 한국전자통신연구원 Operating method for virtual machine and node and apparatus thereof
JP2012226586A (en) * 2011-04-20 2012-11-15 Nec Corp Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method
KR20150089688A (en) * 2014-01-28 2015-08-05 한국전자통신연구원 Apparatus and method for managing cache of virtual machine image file

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080029947A (en) * 2006-09-29 2008-04-03 인텔 코오퍼레이션 System and method for increasing platform boot efficiency
KR20090065126A (en) 2007-12-17 2009-06-22 한국전자통신연구원 Method for provisioning of virtual machine using virtual machine disk pool
US20120060153A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Virtual Machine Rapid Provisioning System
KR20120071205A (en) * 2010-12-22 2012-07-02 한국전자통신연구원 Operating method for virtual machine and node and apparatus thereof
JP2012226586A (en) * 2011-04-20 2012-11-15 Nec Corp Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method
KR20150089688A (en) * 2014-01-28 2015-08-05 한국전자통신연구원 Apparatus and method for managing cache of virtual machine image file

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
삭제

Also Published As

Publication number Publication date
KR102327065B1 (en) 2021-11-16

Similar Documents

Publication Publication Date Title
CN101206581B (en) System and method for guiding using external memory device
CN110032413B (en) Desktop virtualization method, related equipment and computer storage medium
CN108073423B (en) Accelerator loading method and system and accelerator loading device
KR20090025204A (en) Converting machines to virtual machines
CN102387197A (en) Techniques for streaming virtual machines from a server to a host
JPH10283210A (en) Virtual machine movement control system between virtual machine systems
EP3311272B1 (en) A method of live migration
US20210326161A1 (en) Apparatus and method for multi-cloud service platform
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
US11113075B2 (en) Launching a middleware-based application
JP2022552141A (en) Virtual memory metadata management
US11036683B2 (en) Hot-pluggable file system interface
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US10802865B2 (en) Fast instantiation of virtual machines in distributed computing systems
US10963163B2 (en) Categorizing computing process output data streams for flash storage devices
KR102176298B1 (en) Method and device for use to access the container
KR20200135138A (en) Method, device, apparatus, and medium for booting a virtual machine
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
KR102327065B1 (en) Apparatus for accelerating virtual machine provisioning by use of bws and apparatus for managing the virtual machine and method thereof
US10102020B2 (en) Methods, systems, and computer readable media for virtual machine (VM) deployment using read-only memory
KR20190069134A (en) Apparatus and method for file sharing between applications
US11947501B2 (en) Two-hierarchy file system
US20240176607A1 (en) Applications on demand
US11588712B2 (en) Systems including interfaces for communication of run-time configuration information
KR101974974B1 (en) Apparatus and method for switching system based container technology

Legal Events

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