KR102237566B1 - System and Method for Caching Disk Image File of Full-Cloned Virtual Machine - Google Patents

System and Method for Caching Disk Image File of Full-Cloned Virtual Machine Download PDF

Info

Publication number
KR102237566B1
KR102237566B1 KR1020140008259A KR20140008259A KR102237566B1 KR 102237566 B1 KR102237566 B1 KR 102237566B1 KR 1020140008259 A KR1020140008259 A KR 1020140008259A KR 20140008259 A KR20140008259 A KR 20140008259A KR 102237566 B1 KR102237566 B1 KR 102237566B1
Authority
KR
South Korea
Prior art keywords
virtual machine
disk image
image file
template
data
Prior art date
Application number
KR1020140008259A
Other languages
Korean (ko)
Other versions
KR20150087990A (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 KR1020140008259A priority Critical patent/KR102237566B1/en
Publication of KR20150087990A publication Critical patent/KR20150087990A/en
Application granted granted Critical
Publication of KR102237566B1 publication Critical patent/KR102237566B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법에 관한 것으로서, 본 발명에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 템플릿으로부터의 완전 복제를 통해 생성된 가상 머신일 경우 상기 가상 머신에 의해 변경된 데이터 블록들을 추적하여, 상기 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기가 요청될 경우 변경되지 않은 블록에 대한 데이터 읽기 요청이면, 캐시에 미리 적재된 템플릿 디스크 이미지 파일에서 처리하도록 함으로써 캐시의 공간 효율성 및 입출력 응답성능을 향상시킬 수 있는 것을 특징으로 한다.The present invention relates to a system and method for caching a disk image file of a fully replicated virtual machine, wherein the disk image file caching system of a fully replicated virtual machine according to the present invention is a virtual machine created through complete replication from a template. By tracking the data blocks changed by the virtual machine, when a request to read data from the virtual machine's disk image file is requested, if the data read request to the unchanged block is requested, the template disk image file preloaded in the cache is processed. It is characterized in that it can improve the space efficiency of the cache and the I/O response performance.

Description

완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법{System and Method for Caching Disk Image File of Full-Cloned Virtual Machine}System and Method for Caching Disk Image File of Full-Cloned Virtual Machine

본 발명은 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 가상 데스크 탑 환경에서 템플릿으로부터 완전 복제된 가상 머신의 이미지 파일에 대해 캐싱하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for caching a disk image file of a fully replicated virtual machine, and more particularly, to a system and method for caching an image file of a virtual machine completely replicated from a template in a virtual desktop environment.

일반적으로 가상 데스크 탑 환경에서는 가상 머신의 디스크 이미지 파일을 가상 머신이 운용되는 가상 머신 호스트 서버의 로컬 스토리지가 아닌 네트워크를 통해 연결된 스토리지에 저장하고, 가상 머신 운용에 따른 디스크 입출력 요청이 발생하면 네트워크를 통해 스토리지에 저장된 가상 머신의 디스크 이미지 파일에서 해당 블록에 대한 입출력 요청을 처리한다.In general, in a virtual desktop environment, the disk image file of the virtual machine is stored in the storage connected through the network rather than the local storage of the virtual machine host server on which the virtual machine is operated. Processes I/O requests for the block in the virtual machine's disk image file stored in storage.

이때, 네트워크를 통한 데이터 전송에 따른 입출력 응답 성능 저하를 방지하기 위해 가상 머신 호스트 서버에 메모리 또는 고속의 솔리드 스테이트 디스크를 캐시로 사용하여 빈번히 접근되는 블록을 캐시에 적재하고 해당 데이터 블록에 대한 읽기 요청을 캐시에서 처리한다.At this time, in order to prevent the degradation of I/O response performance due to data transmission through the network, a memory or high-speed solid state disk is used as a cache in the virtual machine host server, and frequently accessed blocks are loaded into the cache and read requests for the data blocks Is processed from the cache.

미국 선행특허 US8087017 B1, "Trace-assisted prefetching of virtual machines in a distributed system"은 가상 머신 이미지에 대한 입출력 요청이 발생하면 요청에 해당하는 블록 정보를 추적하여 저장하고, 이를 기반으로 빈번히 요청되는 볼록 및 확률기반으로 특정 블록과 연속되어 접근되는 블록 정보를 관리한다.US prior patent US8087017 B1, "Trace-assisted prefetching of virtual machines in a distributed system" traces and stores block information corresponding to the request when an I/O request for a virtual machine image occurs, and based on this, frequently requested convex and It manages block information that is successively accessed with a specific block based on probability.

이를 기반으로 특정 입출력 패턴이 발생할 경우 접근이 예상되는 블록들을 캐시에 미리 적재하여 연속된 다음의 데이터 읽기 요청들을 네트워크를 통해 연결된 스토리지가 아닌 가상 머신 호스트 서버의 로컬 스토리지 캐시에서 처리함으로써 전반적인 입출력 응답 성능을 향상시킨다.Based on this, when a specific I/O pattern occurs, blocks that are expected to be accessed are preloaded into the cache, and subsequent data read requests are processed in the local storage cache of the virtual machine host server rather than the storage connected through the network. Improves.

가상 데스크 탑 환경에서 가상 머신 생성시 가상 머신의 운영 체제 설치에 따른 배포시 배포 시간을 줄이기 위해 window xp 또는 window 7과 같이 대다수의 사용자에 의해 사용되는 운용체제 및 응용 프로그램을 설치한 템플릿을 생성하고 이를 복제하여 가상 머신을 생성하는 방식을 사용한다.When creating a virtual machine in a virtual desktop environment, in order to reduce the deployment time during deployment according to the installation of the operating system of the virtual machine, a template that installs the operating system and applications used by the majority of users such as window xp or window 7 is created. It uses a method of creating a virtual machine by duplicating it.

이러한 이유로 대부분의 가상 머신의 디스크 이미지 파일은 생성 초기에 템플릿과 동일하다.For this reason, disk image files of most virtual machines are the same as the template at the beginning of creation.

물론 사용자들이 가상 머신을 사용함에 따라 사용자에 의해 생성된 데이터 및 새롭게 설치되는 응용 프로그램의 데이터들이 누적되어 템플릿과 사용자의 가상 머신 디스크 이미지 파일은 시간이 지남에 따라 달라지지만 이전에 설치된 운영체제 및 응용 프로그램들은 로그 및 사용자 경험 데이터를 제외하고 동일하다.Of course, as users use the virtual machine, the data created by the user and the data of newly installed applications are accumulated, so the template and the disk image file of the user's virtual machine change over time, but previously installed operating systems and applications They are the same except for logs and user experience data.

이로 인해 캐시가 가상 머신의 디스크 이미지 파일의 동일한 데이터 블록들을 적재하게 되어 캐시에 대한 공간 사용 효율이 저하되고, 캐시의 공간 부족으로 인해 LRU와 같은 알고리즘에 의해 캐시에서 교체된 데이터 블록들에 접근하고자할 경우 네트워크를 통한 스토리지로 해야하기 때문에 입출력 응답 성능 또한 떨어진다는 문제점이 있다.As a result, the cache loads the same data blocks in the virtual machine's disk image file, which reduces the space usage efficiency for the cache, and attempts to access the data blocks replaced in the cache by an algorithm such as LRU due to the lack of space in the cache. In the case of doing so, there is a problem that input/output response performance is also degraded because it has to be stored through a network.

본 발명은 상기와 같은 문제점을 감안하여 창출한 것으로서, 템플릿으로부터의 완전 복제를 통해 생성된 가상 머신일 경우 상기 가상 머신에 의해 변경된 데이터 블록들을 추적하여, 상기 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기가 요청될 경우 변경되지 않은 블록에 대한 데이터 읽기 요청이면, 캐시에 미리 적재된 템플릿 디스크 이미지 파일에서 처리하도록 함으로써 캐시의 공간 효율성 및 입출력 응답성능을 향상시킬 수 있는 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법을 제공하는 데 그 목적이 있다.The present invention was created in consideration of the above problems, and in the case of a virtual machine created through complete replication from a template, data blocks changed by the virtual machine are tracked to read data on the disk image file of the virtual machine. When a request is made, a disk image file of a fully cloned virtual machine that can improve the space efficiency and I/O response performance of the cache by processing it in the template disk image file preloaded in the cache if it is a request to read data for an unchanged block. Its purpose is to provide a caching system and method.

전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 가상 머신이 실행되는 가상 머신 호스트 서버; 및 상기 가상 머신 호스트 서버와 네트워크로 연결되며, 디스크 이미지 파일을 포함하는 템플릿으로부터 상기 가상 머신의 완전 복제를 위해 가상 머신 데이터를 생성하고, 상기 탬플릿의 디스크 이미지 파일을 복제하여 상기 가상 머신 데이터에 가상 머신 디스크 이미지 파일을 생성하는 분산 파일 시스템을 포함하고, 상기 가상 머신 호스트 서버는 상기 가상 머신의 운영에 따라 상기 템플릿의 디스크 이미지 파일을 캐쉬에 적재하고, 데이터 읽기 요청이 발생하면 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하여, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경되지 않은 데이터 블록이면 상기 캐시에 적재된 상기 템플릿의 디스크 이미지 파일에서 데이터를 읽어 반환하며, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경된 데이터 블록이면 상기 가상 머신 디스크 이미지 파일에서 데이터를 읽어 반환하는 것을 특징으로 한다.In order to achieve the above object, a disk image file caching system for a fully replicated virtual machine according to an aspect of the present invention includes: a virtual machine host server running a virtual machine; And creating virtual machine data for complete replication of the virtual machine from a template connected to the virtual machine host server through a network and including a disk image file, and replicating the disk image file of the template to the virtual machine data. Includes a distributed file system that creates a machine disk image file, and the virtual machine host server loads the disk image file of the template into the cache according to the operation of the virtual machine, and responds to a data read request when a data read request occurs. If the data block corresponding to the requested data read is an unchanged data block, it reads and returns data from the disk image file of the template loaded in the cache, and responds to the requested data read. If the data block to be changed is a changed data block, data is read and returned from the virtual machine disk image file.

본 발명에 따르면, 가상 머신 환경에서 완전 복제된 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기 응답 성능을 향상시킬 수 있고, 캐시의 공간 활용 효율 또한 증가시킬 수 있다.According to the present invention, it is possible to improve data read response performance for a disk image file of a virtual machine completely replicated in a virtual machine environment, and increase the space utilization efficiency of a cache.

도 1은 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하기 위한 흐름도.
도 3은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하기 위한 흐름도.
도 4는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명하기 위한 흐름도.
1 is a view for explaining a disk image file caching system of a fully replicated virtual machine according to an embodiment of the present invention.
2 is a flowchart illustrating a method of creating a virtual machine that is completely copied from a template according to an embodiment of the present invention.
3 is a flowchart illustrating a method of processing an open request for a disk image file of a virtual machine according to an embodiment of the present invention.
4 is a flowchart illustrating a method of processing a request to close a disk image file of a virtual machine according to an embodiment of the present invention.
5 is a flowchart illustrating a method of processing a write request for a disk image file of a virtual machine according to an embodiment of the present invention.
6 is a flowchart illustrating a method of processing a read request for a disk image file of a virtual machine according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only the present embodiments are intended to complete the disclosure of the present invention, and the general knowledge in the technical field to which the present invention pertains. It is provided so that the scope of the invention can be easily understood by those who have it, and the invention is defined by the description of the claims. Meanwhile, terms used in the present specification are for explaining embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used herein, "comprises" or "comprising" refers to the presence of one or more other components, steps, actions and/or elements other than the recited elements, steps, actions and/or elements, or Does not exclude addition.

이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명한다. 도 1은 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하기 위한 도면이다.Hereinafter, a disk image file caching system of a fully copied virtual machine according to an embodiment of the present invention will be described with reference to FIG. 1 is a view for explaining a disk image file caching system of a fully replicated virtual machine according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템은 가상 머신 호스트 서버(100) 및 분산 파일 시스템(200)을 포함한다.As shown in FIG. 1, the disk image file caching system of a fully replicated virtual machine of the present invention includes a virtual machine host server 100 and a distributed file system 200.

가상 머신 호스트 서버(100)는 가상 머신(110), 캐시 관리부(120), 캐시 장치부(130) 및 선반입 관리부(140)를 포함하며, 가상 머신(110)이 실행될 수 있는 환경을 제공한다.The virtual machine host server 100 includes a virtual machine 110, a cache management unit 120, a cache device unit 130, and a loading management unit 140, and provides an environment in which the virtual machine 110 can be executed. .

가상 머신(110)은 운영체제(111)가 설치될 수 있고, 운영 환경에 따라 다수의 사용자에 의해 공통으로 사용되는 응용 프로그램이 설치될 수도 있다.In the virtual machine 110, an operating system 111 may be installed, and an application program commonly used by a plurality of users may be installed according to an operating environment.

즉, 가상 머신(110)은 게스트 운영 체제가 설치되어 운영된다.That is, the virtual machine 110 is operated with a guest operating system installed.

캐시 관리부(120)는 분산 파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에 대한 개방/폐쇄/입출력 요청을 처리하고, 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)을 관리한다.The cache management unit 120 processes open/closed/I/O requests for the disk image file 214 of the virtual machine 110 stored in the distributed file system 200, and the template shared block map file ( 215).

예컨대, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 개방 요청을 전달받으면, 가상 머신(110)의 메타데이터 정보를 분산 파일 시스템(200)에서 읽어와, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 분산 파일 시스템(200)에 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)이 존재하는지 여부를 판별하며, 판별결과, 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)이 존재하면, 분산 파일 시스템(200)에서 가상 머신(110)의 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 구성한다.For example, when the cache management unit 120 receives an open request for the disk image file 214 of the virtual machine 110, the metadata information of the virtual machine 110 is read from the distributed file system 200 and read. Based on the metadata information of the virtual machine 110, it is determined whether the virtual machine 110 is a fully replicated virtual machine, and as a result of the determination, when the virtual machine 110 is a fully replicated virtual machine, the distributed file system 200 ), it is determined whether the template shared block map file 215 of the virtual machine 110 exists, and as a result of the determination, if the template shared block map file 215 of the virtual machine 110 exists, the distributed file system 200 ), the template shared block map file 215 of the virtual machine 110 is read, and the template shared block map 121 is configured in its own local memory.

또한, 캐시 관리부(120)는 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 템플릿(211)의 디스크 이미지 식별자를 획득하고, 획득된 템플릿(211)의 디스크 이미지 식별자에 대응되는 템플릿(211)의 디스크 이미지 파일(212)이 캐시(131)에 적재되어있는지 여부를 판별하며, 판별결과, 캐시(131)에 템플릿(211)의 디스크 이미지 파일(212)이 적재되어 있지 않은 경우, 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 선반입하도록 선반입 관리부(140)에 요청한다.In addition, the cache management unit 120 acquires the disk image identifier of the template 211 based on the read metadata information of the virtual machine 110, and the template 211 corresponding to the disk image identifier of the obtained template 211 It is determined whether the disk image file 212 of is loaded in the cache 131, and as a result of the determination, when the disk image file 212 of the template 211 is not loaded in the cache 131, the template 211 ) Of the disk image file 212 in the cache 131 is requested from the shelving management unit 140.

선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 전달하여 캐시 장치부(130)가 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 템플릿 디스크 이미지 파일(132)로 생성하여 적재하도록 한다.The loading management unit 140 transfers the disk image file 212 of the template 211 to the cache device 130 so that the cache device 130 caches the disk image file 212 of the template 211. ) As a template disk image file 132 and load it.

캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214) 개방을 분산 파일 시스템(200)을 통해 처리한다. The cache management unit 120 processes the opening of the disk image file 214 of the virtual machine 110 through the distributed file system 200.

또한, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 폐쇄 요청을 전달받으면, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신(110)인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신(110)일 경우, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하는지 여부를 판별하며, 판별결과, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재할 경우, 템플릿 공유 블록 맵(121)이 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 하고, 가상 머신 데이터(213)에 저장된 가상 머신(110)의 디스크 이미지 파일(214) 폐쇄를 분산 파일 시스템(200)을 통해 처리한다.In addition, when the cache management unit 120 receives a request to close the disk image file 214 of the virtual machine 110, the virtual machine 110 is completely copied based on the read metadata information of the virtual machine 110. It is determined whether it is a virtual machine 110, and as a result of the determination, if the virtual machine 110 is a fully cloned virtual machine 110, the template shared block map 121 of the virtual machine 110 is in its own local memory. It is determined whether or not there is, and as a result of the determination, if the template shared block map 121 of the virtual machine 110 exists in its local memory, the template shared block map 121 is used in the distributed file system 200. The disk image file 214 of the virtual machine 110 stored in the map file 215 and stored in the virtual machine data 213 is closed through the distributed file system 200.

캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 데이터 쓰기 요청을 전달받으면, 읽어온 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 완전 복제된 가상 머신(110)인지 여부를 판별하고, 판별결과, 가상 머신(110)이 완전 복제된 가상 머신(110)인 경우, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하는지 여부를 판별하며, 판별결과, 자신의 로컬 메모리에 가상 머신(110)의 템플릿 공유 블록 맵(121)이 존재하면, 데이터 쓰기 요청에 대응되는 데이터 블록이 변경된 것을 가상 머신(110)의 템플릿 공유 블록 맵(121)에 설정하고, 분산 파일 시스템(200)을 통해 데이터 쓰기 요청을 처리한다.When the cache management unit 120 receives a data write request for the disk image file 214 of the virtual machine 110, the virtual machine 110 is completely copied based on the read metadata information of the virtual machine 110. It is determined whether it is the machine 110, and as a result of the determination, if the virtual machine 110 is a fully cloned virtual machine 110, the template shared block map 121 of the virtual machine 110 exists in its local memory. It determines whether or not, and as a result of the determination, if the template sharing block map 121 of the virtual machine 110 exists in its local memory, the template sharing of the virtual machine 110 indicates that the data block corresponding to the data write request has been changed. It is set in the block map 121 and processes a data write request through the distributed file system 200.

캐시 장치부(130)는 하드 디스크 또는 고속의 솔리드 스테이트 드라이브와 같은 저장장치일 수 있고, 캐시(131)에 템플릿 디스크 이미지 파일(132)을 캐싱한다.The cache device 130 may be a storage device such as a hard disk or a high-speed solid state drive, and caches the template disk image file 132 in the cache 131.

선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 선반입한다. The preload management unit 140 loads the disk image file 212 of the template 211 into the cache device unit 130.

예컨대, 선반입 관리부(140)는 요청된 파일 또는 데이터 블록을 분산 파일 시스템(200)에서 읽어와 캐시 장치부(130)에 백그라운드로 적재한다For example, the loading management unit 140 reads the requested file or data block from the distributed file system 200 and loads the requested file or data block in the cache device 130 in the background.

전술한 바를 좀 더 구체적으로 설명하면, 본 발명의 가상 머신 디스크 이미지 파일 캐시 시스템은 크게 가상 머신 호스트 서버(100) 및 분산 파일 시스템(200)으로 구성된다. To explain the above in more detail, the virtual machine disk image file cache system of the present invention is largely composed of a virtual machine host server 100 and a distributed file system 200.

가상 머신 호스트 서버(100)는 가상 머신(110), 캐시 관리자(120), 캐시 장치부(130) 및 선반입 관리부(140)로 구성되고, 분산 파일 시스템(200)은 하나 이상의 볼륨(210)으로 구성된다.The virtual machine host server 100 is composed of a virtual machine 110, a cache manager 120, a cache device unit 130, and a preload management unit 140, and the distributed file system 200 includes one or more volumes 210 It consists of.

가상 머신 호스트 서버(100)에서는 사용자의 가상 머신(110)이 실행되며, 가상 머신(110)에는 운영체제(111)가 설치되고, 운영 환경에 따라 다수의 사용자가 공통으로 사용할 수 있는 응용 프로그램이 설치될 수도 있다.In the virtual machine host server 100, the user's virtual machine 110 is executed, the operating system 111 is installed in the virtual machine 110, and an application program that can be used in common by multiple users is installed depending on the operating environment. It could be.

템플릿(211)으로부터 완전 복제를 통해 가상 머신(110)을 생성하게 되면, 가상 머신 데이터(213)가 분산 파일 시스템(200)의 볼륨(210)에 생성되어 저장되고, 템플릿(211)의 디스크 이미지 파일(212)이 복제되어 가상 머신 데이터(213)에 디스크 이미지 파일(214)로 생성된다.When the virtual machine 110 is created through complete replication from the template 211, the virtual machine data 213 is created and stored in the volume 210 of the distributed file system 200, and the disk image of the template 211 The file 212 is duplicated and created as a disk image file 214 in the virtual machine data 213.

이때, 복제에 의해 디스크 이미지 파일(214)에 대한 데이터 쓰기가 발생한 블록은 캐시 관리부(120)에 의해 추적되어 템플릿 공유 블록 맵(121)에 템플릿과 동일한 블록으로 설정되고, 가상 머신(110)에 대한 복제가 완료되면, 템플릿 공유 블록 맵(121)은 템플릿 공유 블록 맵 파일(215)로 가상 머신 데이터(213)에 저장된다.At this time, the block in which data write to the disk image file 214 is written by cloning is tracked by the cache management unit 120 and is set as the same block as the template in the template shared block map 121, and the virtual machine 110 When the replication is completed, the template shared block map 121 is stored in the virtual machine data 213 as a template shared block map file 215.

복제된 가상 머신(110)이 기동(activation)되면, 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214) 개방이 캐시 관리부(120)에 요청된다.When the cloned virtual machine 110 is activated, the cache management unit 120 is requested to open the disk image file 214 stored in the virtual machine data 213.

이때, 캐시 관리부(120)는 가상 머신 데이터(213)에 저장된 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 생성하고, 선반입 관리부(140)는 템플릿(211)의 디스크 이미지 파일(212)을 캐시 장치부(130)에 전달하여 캐시 장치부(130)가 템플릿(211)의 디스크 이미지 파일(212)을 캐시(131)에 적재하여 템플릿 디스크 이미지 파일(132)을 생성하도록 한다.At this time, the cache management unit 120 reads the template sharing block map file 215 stored in the virtual machine data 213 and creates the template sharing block map 121 in its own local memory, and the loading management unit 140 The disk image file 212 of the template 211 is transferred to the cache device unit 130, and the cache device unit 130 loads the disk image file 212 of the template 211 into the cache 131 to obtain a template disk image. Create the file 132.

이후 가상 머신의 운영에 따라 데이터 읽기 요청이 발생하면, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)에서 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하고, 판별결과, 변경되지 않은 데이터 블록은 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132)에서 읽어 반환하며, 판별결과, 변경된 데이터 블록은 분산 파일 시스템(200)의 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214)에서 읽어 반환한다.Thereafter, when a data read request occurs according to the operation of the virtual machine, the cache management unit 120 determines whether or not the data block corresponding to the data read request has been changed in the template shared block map 121, and as a result of the determination, the unchanged data The block is read from the template disk image file 132 loaded in the cache 131 and returned, and as a result of the determination, the changed data block is from the disk image file 214 stored in the virtual machine data 213 of the distributed file system 200. Read and return.

데이터 쓰기 요청이 발생하면, 캐시 관리부(120)는 데이터 쓰기 요청에 대응되는 데이터 블록을 템플릿 공유 블록 맵(121)에 변경된 것으로 설정하고, 데이터 쓰기 요청에 대응되는 데이터 블록을 가상 머신 데이터(213)의 디스크 이미지 파일(214)에 저장한다. When a data write request occurs, the cache management unit 120 sets a data block corresponding to the data write request as changed in the template shared block map 121, and sets the data block corresponding to the data write request to the virtual machine data 213. Save it to the disk image file (214).

가상 머신(110)이 종료되면, 캐시 관리부(120)로 디스크 이미지 파일(214) 폐쇄 요청이 전달되며, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 한 후 가상 머신 데이터(213)에 저장된 디스크 이미지 파일(214)이 폐쇄되도록 한다.When the virtual machine 110 is terminated, a request to close the disk image file 214 is transmitted to the cache management unit 120, and the cache management unit 120 shares the template sharing block map 121 to the distributed file system 200 After the block map file 215 is stored, the disk image file 214 stored in the virtual machine data 213 is closed.

한편, 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132)은 캐시(131)의 공간이 부족할 경우 LRU, LFU 등과 같은 페이지 교체 알고리즘에 의해 특정 데이터 블록만 삭제될 수도 있고, 캐시(131)에 대한 관리 정책에 따라 템플릿(211)으로부터 복제된 가상 머신(110)들이 모두 종료되면, 캐시(131)에서 삭제되거나, 캐시 관리부(120) 종료 시 삭제될 수도 있으며, 다른 정책에 따라 캐시 관리부(120)가 종료될지라도 후에 선반입 비용을 절감하기 위해 삭제되지않고 캐시 관리부(120) 재기동시 재활용되도록 할 수도 있다.On the other hand, the template disk image file 132 loaded in the cache 131 may be deleted by a page replacement algorithm such as LRU, LFU, etc. when the space of the cache 131 is insufficient, or only a specific data block may be deleted in the cache 131. When all of the virtual machines 110 replicated from the template 211 are terminated according to the management policy for, they may be deleted from the cache 131 or may be deleted when the cache management unit 120 is terminated, and according to other policies, the cache management unit 120 Even if) is terminated, it may be recycled when the cache management unit 120 is restarted without being deleted in order to reduce the shelf-loading cost.

전술한 바와 같이, 본 발명에 따르면, 가상 머신 환경에서 완전 복제된 가상 머신의 디스크 이미지 파일에 대한 데이터 읽기 응답 성능을 향상시킬 수 있고, 캐시의 공간 활용 효율 또한 증가시킬 수 있다.As described above, according to the present invention, it is possible to improve data read response performance for a disk image file of a virtual machine completely replicated in a virtual machine environment, and increase the space utilization efficiency of a cache.

이상, 도 1을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템을 설명하였고, 이하에서는 도 2 내지 도 6을 참조하여 본 발명의 일 실시예에 따른 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 방법을 설명한다. 도 2는 본 발명의 일 실시예에 따른 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하기 위한 흐름도이고, 도 3은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하기 위한 흐름도이며, 도 4는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하기 위한 흐름도이며, 도 6은 본 발명의 일 실시예에 따른 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명하기 위한 흐름도이다.As described above, a disk image file caching system of a fully replicated virtual machine according to an embodiment of the present invention has been described with reference to FIG. 1, and hereinafter, complete replication according to an embodiment of the present invention with reference to FIGS. 2 to 6 Describes how to cache the disk image file of the virtual machine. 2 is a flowchart illustrating a method of creating a virtual machine that is completely copied from a template according to an embodiment of the present invention, and FIG. 3 is a request for opening a disk image file of a virtual machine according to an embodiment of the present invention. 4 is a flowchart illustrating a method of processing a request to close a disk image file of a virtual machine according to an embodiment of the present invention, and FIG. 5 is a flowchart illustrating a method of processing a disk image file according to an embodiment of the present invention. A flowchart illustrating a method of processing a write request for a disk image file of a virtual machine, and FIG. 6 is a flowchart illustrating a method of processing a read request for a disk image file of a virtual machine according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법은 먼저 템플릿(211)으로부터 가상 머신(110) 완전 복제 요청을 전달받으면(S201), 분산 파일 시스템(200)의 볼륨(210)에 가상 머신(110)의 디스크 이미지 파일(214)을 생성한다(S202).As shown in FIG. 2, in the method of creating a virtual machine completely copied from the template of the present invention, when the virtual machine 110 complete copy request is received from the template 211 (S201), the distributed file system 200 The disk image file 214 of the virtual machine 110 is created in the volume 210 of (S202).

예컨대, 템플릿(211)으로부터 완전 복제를 통해 가상 머신(110)을 생성할 경우, 가상 머신 데이터(213)를 볼륨(210)에 생성하여 저장하고, 템플릿(211)의 디스크 이미지 파일(212)을 복제하여 가상 머신 데이터(213)에 디스크 이미지 파일(214)로 생성한다.For example, when creating the virtual machine 110 through complete replication from the template 211, the virtual machine data 213 is created and stored in the volume 210, and the disk image file 212 of the template 211 is It is duplicated and created as a disk image file 214 in the virtual machine data 213.

캐시 관리부(120)는 자신의 로컬 메모리에 템플릿 공유 블록 맵(121)을 생성한다(S203).The cache management unit 120 creates a template shared block map 121 in its own local memory (S203).

템플릿(211)의 디스크 이미지 파일(212)의 데이터를 읽어 가상 머신(110)의 디스크 이미지 파일(214)에 기록한다(S204).The data of the disk image file 212 of the template 211 is read and recorded in the disk image file 214 of the virtual machine 110 (S204).

이때, 캐시 관리부(120)는 가상 머신(110)의 디스크 이미지 파일(214)에 대한 데이터 쓰기 요청에 대응되는 블록을 템플릿(211)과 동일한 것으로 템플릿 공유 블록 맵(121)에 설정한다(S205).At this time, the cache management unit 120 sets a block corresponding to the request to write data for the disk image file 214 of the virtual machine 110 as the same as the template 211 in the template sharing block map 121 (S205). .

복제가 완료되면, 가상 머신(110)의 메타데이터 정보에 가상 머신(110)을 완전 복제된 가상 머신으로 설정하고(S206), 템플릿(211)의 디스크 이미지 파일 식별자를 설정한다(S207).When the duplication is complete, the virtual machine 110 is set as a fully replicated virtual machine in the metadata information of the virtual machine 110 (S206), and a disk image file identifier of the template 211 is set (S207).

캐시 관리부(120)는 생성된 템플릿 공유 블록 맵(121)을 볼륨(210)의 가상 머신 데이터(213)에 템플릿 공유 블록 맵 파일(215)로 저장한다(S208).The cache management unit 120 stores the generated template shared block map 121 in the virtual machine data 213 of the volume 210 as a template shared block map file 215 (S208).

이상, 도 2를 참조하여 본 발명의 템플릿으로부터 완전 복제된 가상 머신을 생성하는 방법을 설명하였고, 이하에서는 도 3을 참조하여 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명한다.In the above, a method of creating a virtual machine completely copied from the template of the present invention has been described with reference to FIG. 2, and a method of processing an open request for a disk image file of a virtual machine will be described below with reference to FIG. 3.

도 3에 도시된 바와 같이, 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법은 가상 머신(110)의 디스크 이미지 파일(214) 개방 요청을 전달받으면(S301), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터의 완전 복제된 가상 머신인지 여부를 판별한다(S302).As shown in FIG. 3, the method for processing an open request for a disk image file of a virtual machine is, when a request for opening a disk image file 214 of the virtual machine 110 is received (S301), metadata of the virtual machine 110 Based on the information, it is determined whether the virtual machine 110 is a fully copied virtual machine from the template 211 (S302).

판별결과, 가상 머신(110)이 완전 복제된 가상 머신일 경우, 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)이 존재하는지 여부를 검사하고(S303), 검사결과, 분산 파일 시스템(200)에 템플릿 공유 블록 맵 파일(215)이 존재하면, 캐시 관리부(120)는 템플릿 공유 블록 맵 파일(215)을 읽어와 자신의 로컬 메모리에 적재하여 템플릿 공유 블록 맵(121)을 생성한다(S304).As a result of the determination, if the virtual machine 110 is a fully replicated virtual machine, it is checked whether the template shared block map file 215 exists in the distributed file system 200 (S303), and the result of the check, the distributed file system ( If the template shared block map file 215 exists in 200), the cache management unit 120 reads the template shared block map file 215 and loads it in its own local memory to generate the template shared block map 121 ( S304).

가상 머신(110)의 메타데이터 정보를 토대로 템플릿(211)의 디스크 이미지 파일 식별자를 획득하고, 획득된 템플릿(211)의 디스크 이미지 파일 식별자에 대응되는 디스크 이미지 파일(212)이 캐시(131)에 적재되어 있는지 여부를 검사한다(S305).A disk image file identifier of the template 211 is obtained based on metadata information of the virtual machine 110, and a disk image file 212 corresponding to the disk image file identifier of the obtained template 211 is stored in the cache 131. Whether or not it is loaded is checked (S305).

검사결과, 획득된 템플릿(211)의 디스크 이미지 파일 식별자에 대응되는 디스크 이미지 파일(212)이 캐시(131)에 적재되어 있지 않은 경우, 템플릿(211)의 디스크 이미지 파일(212)이 캐시(131)에 적재되어 템플릿 디스크 이미지 파일(132)로 생성될 수 있도록 선반입 관리부(140)가 백그라운드로 템플릿(211)의 디스크 이미지 파일(212)을 읽어올 것을 요청하며(S306), 가상 머신(110)의 디스크 이미지 파일(214)이 개방되도록 한다(S307).As a result of the inspection, if the disk image file 212 corresponding to the obtained disk image file identifier of the template 211 is not loaded in the cache 131, the disk image file 212 of the template 211 is stored in the cache 131 ) To be loaded into the template disk image file 132 to be generated as a template disk image file 132, and request the loading management unit 140 to read the disk image file 212 of the template 211 in the background (S306), and the virtual machine 110 ) To open the disk image file 214 (S307).

이때 선반입 관리부(140)가 백그라운드로 실행되어, 즉 쓰레드 또는 백그라운드 프로세스로 동작하여 선반입을 비동기적으로 처리하도록 함으로써 파일 개방 처리가 지연되지 않도록 할 수 있다. At this time, the loading management unit 140 is executed in the background, that is, by operating as a thread or a background process to asynchronously process the loading, so that the file opening process is not delayed.

이상, 도 3을 참조하여 가상 머신의 디스크 이미지 파일에 대한 개방 요청 처리 방법을 설명하였고, 이하에서는 도 4를 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명한다.In the above, a method of processing an open request for a disk image file of a virtual machine has been described with reference to FIG. 3, and hereinafter, a method of processing a closing request for a disk image file of a virtual machine of the present invention will be described with reference to FIG.

도 4에 도시된 바와 같이, 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214) 폐쇄 요청을 전달받으면(S401), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S402).As shown in FIG. 4, in the method of processing a request to close a disk image file of a virtual machine according to the present invention, when a request to close the disk image file 214 of the virtual machine 110 is received (S401), the virtual machine 110 Based on the metadata information of ), it is determined whether the virtual machine 110 is a virtual machine completely copied from the template 211 (S402).

판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S403), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 템플릿 공유 블록 맵(121)이 볼륨(210)의 가상 머신 데이터(213)에 템플릿 공유 블록 맵 파일(215)로 저장되도록 하며(S404), 디스크 이미지 파일(214)이 폐쇄되도록 한다(S405).As a result of the determination, when the virtual machine 110 is a fully cloned virtual machine, the cache management unit 120 checks whether the template shared block map 121 exists in its own local memory (S403), and the test result, the template When the shared block map 121 exists in its own local memory, the template shared block map 121 is stored as a template shared block map file 215 in the virtual machine data 213 of the volume 210 (S404). , So that the disk image file 214 is closed (S405).

이상, 도 4를 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 폐쇄 요청 처리 방법을 설명하였고, 이하에서는 도 5를 참조하여 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명한다.In the above, a method of processing a request for closing a disk image file of a virtual machine of the present invention has been described with reference to FIG. 4, and a method of processing a write request for a disk image file of a virtual machine will be described below with reference to FIG. 5.

도 5에 도시된 바와 같이, 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214)에 대한, 디스크 이미지 파일(214)의 파일 식별자 번호, 데이터가 쓰일 파일 오프셋, 쓰일 데이터의 크기, 쓰일 데이터 등이 포함된 데이터 쓰기 요청이 전달되면(S501), 가상 머신(110)의 메타데이터 정보를 토대로 가산 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S502).As shown in FIG. 5, in the method of processing a write request for a disk image file of a virtual machine, the file identifier number and data of the disk image file 214 for the disk image file 214 of the virtual machine 110 are first When a data write request including the file offset to be used, the size of the data to be used, and the data to be used is transmitted (S501), the addition machine 110 is completely copied from the template 211 based on the metadata information of the virtual machine 110. It is determined whether it is a virtual machine (S502).

판별결과, 가상 머신(110)이 완전 복제된 가상 머신인 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S503), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 쓰기 요청에 대응되는 데이터 블록이 변경된 것으로 템플릿 공유 블록 맵(121)에 설정하며(S504), 분산파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에 대한 쓰기 요청을 전달하여 데이터를 기록한다(S505).As a result of the determination, if the virtual machine 110 is a fully cloned virtual machine, the cache management unit 120 checks whether the template shared block map 121 exists in its own local memory (S503), and the check result, the template When the shared block map 121 exists in its own local memory, the data block corresponding to the write request is changed and set in the template shared block map 121 (S504), and a virtual machine stored in the distributed file system 200 ( 110) transmits a write request for the disk image file 214 to record data (S505).

이상, 도 5를 참조하여 가상 머신의 디스크 이미지 파일에 대한 쓰기 요청 처리 방법을 설명하였고, 이하에서는 도 6을 참조하여 본 발명의 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법을 설명한다.In the above, a method of processing a write request for a disk image file of a virtual machine has been described with reference to FIG. 5, and hereinafter, a method of processing a read request for a disk image file of a virtual machine of the present invention will be described with reference to FIG.

도 6에 도시된 바와 같이, 본 발명의 가상 머신의 디스크 이미지 파일에 대한 읽기 요청 처리 방법은 먼저 가상 머신(110)의 디스크 이미지 파일(214)에 대한, 디스크 이미지 파일(214)의 파일 식별자 번호, 읽을 데이터의 파일 오프셋, 읽을 데이터 크기, 읽을 데이터를 저장할 버퍼 등이 포함된 데이터 읽기 요청이 전달되면(S601), 가상 머신(110)의 메타데이터 정보를 토대로 가상 머신(110)이 템플릿(211)으로부터 완전 복제된 가상 머신인지 여부를 판별한다(S602).As shown in FIG. 6, in the method of processing a read request for a disk image file of a virtual machine according to the present invention, first, a file identifier number of the disk image file 214 for the disk image file 214 of the virtual machine 110 , When a data read request including a file offset of data to be read, a size of data to be read, a buffer to store data to be read is transmitted (S601), the virtual machine 110 is sent to the template 211 based on the metadata information of the virtual machine 110. It is determined whether it is a virtual machine completely copied from) (S602).

판별결과, 템플릿(211)으로부터 완전 복제된 가상 머신일 경우, 캐시 관리부(120)는 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하는지 여부를 검사하고(S603), 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재할 경우, 템플릿 공유 블록 맵(121)에서 읽기 요청에 대응되는 데이터 블록이 변경되었는지 여부를 검사한다(S604).As a result of the determination, in the case of a virtual machine completely duplicated from the template 211, the cache management unit 120 checks whether the template sharing block map 121 exists in its own local memory (S603), and the inspection result, the template sharing When the block map 121 exists in its own local memory, it is checked whether the data block corresponding to the read request in the template shared block map 121 has been changed (S604).

검사결과, 읽기 요청에 대응되는 데이터 블록이 변경되지 않은 경우, 가상 머신(110)의 메타데이터 정보에 저장된 템플릿(211)의 디스크 이미지 파일 식별자를 획득하고, 캐시(131)에 적재된 템플릿 디스크 이미지 파일(132) 중 획득된 식별자에 대응되는 파일에서 읽기 요청에 대응되는 데이터 블록이 캐시(131)에 적재되어있는지 여부를 검사한다(S605).As a result of the inspection, if the data block corresponding to the read request is not changed, the disk image file identifier of the template 211 stored in the metadata information of the virtual machine 110 is obtained, and the template disk image loaded in the cache 131 It is checked whether a data block corresponding to a read request is loaded in the cache 131 in the file corresponding to the acquired identifier among the files 132 (S605).

검사결과, 캐시(131)에 읽기 요청에 대응되는 데이터 블록이 존재할 경우, 캐시(131)에 존재하는 데이터 블록을 읽어 반환하고(S607), 그러나, 단계(S602) 판별결과, 가상 머신(110)이 완전 복제된 가상 머신이 아니거나, 단계(S603) 검사결과, 템플릿 공유 블록 맵(121)이 자신의 로컬 메모리에 존재하지 않거나, 단계(S605) 검사결과, 읽기 요청에 대응되는 데이터 블록과 동일한 템플릿 디스크 이미지 파일(132)의 데이터 블록이 캐시(131)에 존재하지 않을 경우, 분산 파일 시스템(200)에 저장된 가상 머신(110)의 디스크 이미지 파일(214)에서 읽기 요청에 대응되는 데이터 블록을 읽어 반환한다(S606).As a result of the inspection, if there is a data block corresponding to the read request in the cache 131, the data block existing in the cache 131 is read and returned (S607), however, as a result of determination in step S602, the virtual machine 110 The virtual machine is not completely replicated, or the step (S603) check result, the template shared block map 121 does not exist in its local memory, or the step (S605) check result, the same as the data block corresponding to the read request. If the data block of the template disk image file 132 does not exist in the cache 131, the data block corresponding to the read request is retrieved from the disk image file 214 of the virtual machine 110 stored in the distributed file system 200. Read and return (S606).

이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Although the configuration of the present invention has been described in detail with reference to the preferred embodiment and the accompanying drawings, this is only an example, and various modifications are possible within the scope of the present invention without departing from the technical spirit of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments and should not be defined by the scope of the claims to be described later, as well as the scope and equivalents of the claims.

100 : 가상 머신 호스트 서버 110 : 가상 머신
120 : 캐시 관리부 130 : 캐시 장치부
140 : 선반입 관리자부 200 : 분산 파일 시스템
210 : 볼륨
100: virtual machine host server 110: virtual machine
120: cache management unit 130: cache device unit
140: pre-shelf manager unit 200: distributed file system
210: volume

Claims (10)

가상 머신이 실행되는 가상 머신 호스트 서버; 및
상기 가상 머신 호스트 서버와 네트워크로 연결되며, 디스크 이미지 파일을 포함하는 템플릿으로부터 상기 가상 머신의 완전 복제를 위해 가상 머신 데이터를 생성하고, 상기 템플릿의 디스크 이미지 파일을 복제하여 상기 가상 머신 데이터에 가상 머신 디스크 이미지 파일을 생성하는 분산 파일 시스템을 포함하되,
상기 가상 머신 호스트 서버는
게스트 운영체제가 설치되어 운영되는 가상 머신,
상기 분산 파일 시스템에 저장된 디스크 이미지 파일에 대한 개방 요청, 폐쇄 요청 및 입출력 요청 중 하나 이상의 요청을 처리하고, 상기 가상 머신의 템플릿 공유 블록 맵 파일을 관리하는 캐시 관리부,
상기 템플릿의 디스크 이미지 파일을 캐싱하는 캐시 장치부 및
상기 캐시 장치부에 상기 템플릿의 디스크 이미지 파일을 선반입하는 선반입 관리부를 포함하는 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
A virtual machine host server running a virtual machine; And
The virtual machine is connected to the virtual machine host server through a network, creates virtual machine data for complete replication of the virtual machine from a template including a disk image file, and duplicates the disk image file of the template to the virtual machine data. Including a distributed file system that creates disk image files,
The virtual machine host server is
A virtual machine running with a guest operating system installed,
A cache management unit that processes at least one of an open request, a close request, and an input/output request for a disk image file stored in the distributed file system, and manages a template shared block map file of the virtual machine,
A cache device for caching the disk image file of the template, and
A disk image file caching system of a fully replicated virtual machine including a loading management unit for loading the template disk image file into the cache device unit.
제 1 항에 있어서,
상기 가상 머신 호스트 서버는 상기 가상 머신의 운영에 따라 상기 템플릿의 디스크 이미지 파일을 캐시에 적재하고, 데이터 읽기 요청이 발생하면 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하여, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경되지 않은 데이터 블록이면 상기 캐시에 적재된 상기 템플릿의 디스크 이미지 파일에서 데이터를 읽어 반환하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 1,
The virtual machine host server loads the disk image file of the template into the cache according to the operation of the virtual machine, and when a data read request occurs, determines whether the data block corresponding to the data read request has been changed, and reads the requested data. If the data block corresponding to is an unchanged data block, the disk image file caching system of a fully cloned virtual machine reads and returns data from the disk image file of the template loaded in the cache.
제 1 항에 있어서,
상기 가상 머신 호스트 서버는 상기 가상 머신의 운영에 따라 상기 템플릿의 디스크 이미지 파일을 캐시에 적재하고, 데이터 읽기 요청이 발생하면 데이터 읽기 요청에 대응되는 데이터 블록의 변경 유무를 판별하여, 요청된 데이터 읽기에 대응되는 데이터 블록이 변경된 데이터 블록이면 상기 가상 머신 디스크 이미지 파일에서 데이터를 읽어 반환하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 1,
The virtual machine host server loads the disk image file of the template into the cache according to the operation of the virtual machine, and when a data read request occurs, determines whether the data block corresponding to the data read request has been changed, and reads the requested data. If the data block corresponding to is a changed data block, the disk image file caching system of a fully cloned virtual machine reads and returns data from the virtual machine disk image file.
제 1 항에 있어서,
상기 가상 머신 데이터는 상기 가상 머신의 디스크 이미지 파일과 템플릿 공유 블록 맵 파일로 구성되는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 1,
The virtual machine data is composed of a disk image file of the virtual machine and a template shared block map file. A disk image file caching system of a fully replicated virtual machine.
삭제delete 제 1 항에 있어서,
상기 캐시 관리부는,
상기 가상 머신의 디스크 이미지 파일에 대한 개방 요청, 폐쇄 요청 및 쓰기 요청 중 어느 하나를 전달받음에 따라, 상기 가상 머신의 메타데이터 정보를 상기 분산 파일 시스템으로부터 독출하여, 상기 메타데이터 정보를 토대로 상기 가상 머신이 완전 복제된 가상 머신인지 여부를 판별하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 1,
The cache management unit,
Upon receiving any one of an open request, a close request, and a write request for the disk image file of the virtual machine, metadata information of the virtual machine is read from the distributed file system, and the virtual machine is A disk image file caching system for a fully replicated virtual machine that determines whether the machine is a fully replicated virtual machine.
제 6 항에 있어서,
상기 캐시 관리부는 상기 판별 결과 상기 가상 머신이 완전 복제된 가상 머신인 경우, 상기 분산 파일 시스템에 가상 머신의 템플릿 공유 블록 맵 파일이 존재하는지 여부를 판별하고, 판별 결과 상기 가상 머신의 템플릿 공유 블록 맵 파일이 존재하면, 상기 분산 파일 시스템에서 상기 가상 머신의 템플릿 공유 블록 맵 파일을 읽어와 자신의 로컬 메모리에 템플릿 공유 블록 맵을 구성하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 6,
When the virtual machine is a fully cloned virtual machine as a result of the determination, the cache management unit determines whether a template shared block map file of the virtual machine exists in the distributed file system, and as a result of the determination, the template shared block map of the virtual machine If the file exists, the distributed file system reads the template shared block map file of the virtual machine and configures the template shared block map in its own local memory.
제 6 항에 있어서,
상기 캐시 관리부는 상기 판별 결과 상기 가상 머신이 완전 복제된 가상 머신인 경우, 자신의 로컬 메모리에 상기 가상 머신의 템플릿 공유 블록 맵이 존재하는지 여부를 판별하고, 판별 결과 상기 템플릿 공유 블록 맵이 존재하면, 상기 템플릿 공유 블록 맵이 상기 분산 파일 시스템에 템플릿 공유 블록 맵 파일로 저장되도록 하며, 상기 가상 머신 데이터에 저장된 가상 머신의 디스크 이미지 파일 폐쇄를 상기 분산 파일 시스템을 통해 처리하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 6,
In the case where the virtual machine is a fully cloned virtual machine as a result of the determination, the cache management unit determines whether a template shared block map of the virtual machine exists in its local memory, and if the template shared block map exists as a result of the determination , Wherein the template shared block map is stored as a template shared block map file in the distributed file system, and a disk image file of the virtual machine stored in the virtual machine data is closed through the distributed file system. A machine's disk image file caching system.
제 6 항에 있어서,
상기 캐시 관리부는 상기 판별 결과 상기 가상 머신이 완전 복제된 가상 머신인 경우, 자신의 로컬 메모리에 상기 가상 머신의 템플릿 공유 블록 맵이 존재하는지 여부를 판별하고, 판별 결과 상기 템플릿 공유 블록 맵이 존재하면, 데이터 쓰기 요청에 대응되는 데이터 블록이 변경된 것을 상기 가상 머신의 템플릿 공유 블록 맵에 설정하고, 상기 분산 파일 시스템을 통해 데이터 쓰기 요청을 처리하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 6,
In the case where the virtual machine is a fully cloned virtual machine as a result of the determination, the cache management unit determines whether a template shared block map of the virtual machine exists in its local memory, and if the template shared block map exists as a result of the determination And setting a change in a data block corresponding to a data write request to the template shared block map of the virtual machine, and processing a data write request through the distributed file system.
제 1 항에 있어서,
상기 캐시 장치부는 캐시에 적재된 템플릿 디스크 이미지 파일에 대하여 상기 캐시의 공간이 부족할 경우, 페이지 교체 알고리즘에 의해 특정 데이터 블록만 삭제하거나, 상기 템플릿으로부터 복제된 가상 머신들이 모두 종료될 경우 상기 캐시에서 삭제하거나, 선반입 비용을 절감하기 위해 삭제하지 않고 상기 캐시 관리부의 재기동시 재활용하는 것인 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템.
The method of claim 1,
The cache device deletes only a specific data block by a page replacement algorithm when there is insufficient space in the cache for the template disk image file loaded in the cache, or deletes from the cache when all virtual machines duplicated from the template are terminated. Or, in order to reduce the shelf-loading cost, a disk image file caching system of a fully replicated virtual machine is recycled when the cache management unit is restarted without deleting.
KR1020140008259A 2014-01-23 2014-01-23 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine KR102237566B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140008259A KR102237566B1 (en) 2014-01-23 2014-01-23 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140008259A KR102237566B1 (en) 2014-01-23 2014-01-23 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine

Publications (2)

Publication Number Publication Date
KR20150087990A KR20150087990A (en) 2015-07-31
KR102237566B1 true KR102237566B1 (en) 2021-04-07

Family

ID=53877142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140008259A KR102237566B1 (en) 2014-01-23 2014-01-23 System and Method for Caching Disk Image File of Full-Cloned Virtual Machine

Country Status (1)

Country Link
KR (1) KR102237566B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
CN112985762B (en) * 2021-02-22 2022-04-22 华南理工大学 Seaworthiness device for ship model six-degree-of-freedom motion measurement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002519752A (en) 1998-06-25 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Dynamic allocation of memory space
JP2013542486A (en) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション On-demand image streaming for virtual machines

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522370A (en) * 2007-03-20 2010-07-01 サンギュ イ Mobile virtual machine image
KR101329759B1 (en) * 2010-03-15 2013-11-14 한국전자통신연구원 Network block device providing personalized virtual machine in cloud computing environment and control method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002519752A (en) 1998-06-25 2002-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Dynamic allocation of memory space
JP2013542486A (en) * 2010-09-10 2013-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション On-demand image streaming for virtual machines

Also Published As

Publication number Publication date
KR20150087990A (en) 2015-07-31

Similar Documents

Publication Publication Date Title
US11487787B2 (en) System and method for near-synchronous replication for object store
KR102403034B1 (en) Dynamic garbage collection p/e policies for redundant storage blocks and distributed software stacks
US9177670B1 (en) Method and apparatus for flash cache management
US9430161B2 (en) Storage control device and control method
US9996542B2 (en) Cache management in a computerized system
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
US10649668B2 (en) Systems, methods, and computer program products providing read access in a storage system
US20130145095A1 (en) Melthod and system for integrating the functions of a cache system with a storage tiering system
US20130117744A1 (en) Methods and apparatus for providing hypervisor-level acceleration and virtualization services
US20080201544A1 (en) Storage system
KR20120090965A (en) Apparatus, system, and method for caching data on a solid-state strorage device
US10061523B2 (en) Versioning storage devices and methods
US8849966B2 (en) Server image capacity optimization
US8935481B2 (en) Apparatus system and method for providing raw data in a level-two cache
WO2019061352A1 (en) Data loading method and device
US9892041B1 (en) Cache consistency optimization
US9946496B2 (en) SSD with non-blocking flush command
US10719240B2 (en) Method and device for managing a storage system having a multi-layer storage structure
US9588855B2 (en) Management and utilization of fault domains in distributed cache systems
KR102237566B1 (en) System and Method for Caching Disk Image File of Full-Cloned Virtual Machine
US10282371B1 (en) Object storage device with probabilistic data structure
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
KR101153688B1 (en) Nand flash memory system and method for providing invalidation chance to data pages
KR102403063B1 (en) Mobile device and management method of mobile device

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