KR101620219B1 - Virtual machine image distribution method, downloading method and apparatus using duplication based P2P - Google Patents

Virtual machine image distribution method, downloading method and apparatus using duplication based P2P Download PDF

Info

Publication number
KR101620219B1
KR101620219B1 KR1020140161003A KR20140161003A KR101620219B1 KR 101620219 B1 KR101620219 B1 KR 101620219B1 KR 1020140161003 A KR1020140161003 A KR 1020140161003A KR 20140161003 A KR20140161003 A KR 20140161003A KR 101620219 B1 KR101620219 B1 KR 101620219B1
Authority
KR
South Korea
Prior art keywords
virtual machine
machine image
block
peer node
new virtual
Prior art date
Application number
KR1020140161003A
Other languages
Korean (ko)
Inventor
이춘화
김성호
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020140161003A priority Critical patent/KR101620219B1/en
Application granted granted Critical
Publication of KR101620219B1 publication Critical patent/KR101620219B1/en

Links

Images

Classifications

    • 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

Landscapes

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

Abstract

Disclosed are a method and an apparatus for distributing and downloading a virtual machine image through a peer-to-peer (P2P) based duplication removal scheme. A method for downloading a virtual machine image by a peer node includes the steps of: (a) downloading a meta file of a new virtual machine image from a server; (b) determining a virtual machine image most similar to the new virtual machine image among the virtual machine images, which are previously retained, as a reference virtual machine image based on similar image information provided from the server; (c) determining matched blocks using meta files of the reference virtual machine image and the new virtual machine image, and duplicating data of the matched block to a corresponding block position of the new virtual machine image; and (d) downloading at least one block, which is not duplicated in the new virtual machine image, from adjacent another peer.

Description

P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치{Virtual machine image distribution method, downloading method and apparatus using duplication based P2P}Technical Field [0001] The present invention relates to a virtual machine image distribution method, and more particularly,

본 발명은 P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드 하는 방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for distributing and downloading virtual machine images using P2P-based deduplication.

클라우드 컴퓨팅은 서버, 스토리지, 응용 등을 포함하는 컴퓨팅 자원을 네트워크를 통해 필요할 때 주문(on-demand) 방식으로 사용하는 새로운 컴퓨팅 패러다임을 의미한다. 클라우드 컴퓨팅에서 가장 기본적인 서비스인 IaaS는 프로세싱 서버, 스토리지, 네트워크, 기타 저수준의 컴퓨팅 자원을 포함하는 인프라서비스로, 흔히 가상머신 형태로 제공된다. Cloud computing is a new computing paradigm that uses on-demand computing resources, including servers, storage, and applications, over the network when needed. IaaS, the most basic service in cloud computing, is an infrastructure service that includes processing servers, storage, networks, and other low-level computing resources, often in the form of virtual machines.

클라우드 컴퓨팅에서는 가상머신 이미지를 사용하여 인스턴스를 생성함으로써 가상머신을 제공할 수 있다. 대부분의 가상머신 이미지는 OS기반에 미들웨어나 애플리케이션을 새로운 가상머신 이미지로 만들어진다. In cloud computing, virtual machines can be provided by creating instances using virtual machine images. Most virtual machine images are created on OS-based middleware or applications into new virtual machine images.

또한, 클라우드 관리자나 사용자는 필요한 소프트웨어 컴포넌트를 선택함으로써 자신만의 가상머신 이미지를 만들 수 있다. 이러한 클라우드 환경의 신속한 발전에 의하여 가상머신 이미지 개수는 수 없이 증가되었고, 데이터 사이즈도 수십 메가바이트부터 수십 기가바이트까지 이른다. 이로 인해, 가상머신 이미지를 배포(deployment)하고 관리하는 것이 중요한 문제로 대두 되고 있다.In addition, cloud administrators and users can create their own virtual machine images by selecting the required software components. With the rapid development of such a cloud environment, the number of virtual machine images has increased numerous, and data sizes range from tens of megabytes to tens of gigabytes. As a result, deploying and managing virtual machine images has become an important issue.

일반적인 클라우드 환경에서 개기의 컴퓨터 노드는 가상머신 이미지를 필요시에 다운로드하여 사용한다. 동일한 가상머신 이미지가 아닐 경우 가상머신 이미지를 새로 다운받게 되므로 이는 가상머신 프로비져닝 성능의 병목이 되고 있다. 즉, 기존의 가상머신 이미지에 어떠한 소프트웨어 컴포넌트가 바뀌어도 새로운 가상머신 이미지가 되기 때문이다. In a typical cloud environment, a few computer nodes download and use a virtual machine image on demand. If the image is not the same virtual machine image, the virtual machine image is newly downloaded, which is a bottleneck in the virtual machine provisioning performance. That is, even if any software component is changed in the existing virtual machine image, it becomes a new virtual machine image.

이와 같은 문제를 해결하기 위해, 컴퓨터 노드마다 메모리 캐시를 이용하여 copy on write 방식으로 중복되는 데이터를 필터링하는 기술이 연구되었다. 그러나, 이는 메모리 캐시의 용량 제한으로 다양한 가상머신 이미지를 실행할 경우 비효율적인 문제가 있다.In order to solve this problem, a technique of filtering duplicate data by copy on write method using a memory cache for each computer node has been studied. However, this is an inefficient problem when executing various virtual machine images due to the capacity limitation of the memory cache.

본 발명은 P2P 기반 중복제거 기법을 사용하여 기저장된 가상머신 이미지보다 최신의 이미지가 필요한 경우 변경된 부분만 P2P 방식으로 다운받아 배포할 수 있는 P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치를 제공하기 위한 것이다.The present invention relates to a method and apparatus for distributing and downloading a virtual machine image using P2P-based deduplication which can download and distribute a changed part only by P2P method when a newer image is needed than a previously stored virtual machine image by using a P2P-based deduplication technique And to provide such a device.

또한, 본 발명은 P2P에서 중복 블록 전송을 방지할 수 있어 네트워크 트래픽을 현저하게 줄일 수 있는 P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치를 제공하기 위한 것이다.The present invention also provides a method and apparatus for distributing and downloading a virtual machine image using P2P-based de-duplication capable of preventing duplicate block transmission in P2P, thereby remarkably reducing network traffic.

또한, 본 발명은 네트워크 토폴로지를 고려하여 이웃 노드 선정시 계층에 따른 순위로 연결하도록 하여 네트워크 전송 효율을 높일 수 있는 P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치를 제공하기 위한 것이다.In addition, the present invention provides a method and apparatus for distributing and downloading a virtual machine image using P2P-based deduplication that can increase network transmission efficiency by linking in order of hierarchy when selecting a neighboring node in consideration of a network topology will be.

본 발명의 일 측면에 따르면, 중복제거 기법을 사용하여 기저장된 가상머신 이미지보다 최신의 이미지가 필요한 경우 변경된 부분만 P2P 방식으로 다운받아 배포할 수 있는 P2P 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법이 제공된다.According to an aspect of the present invention, a virtual machine image distribution and download using a P2P-based deduplication that allows only a changed portion to be downloaded and distributed by a P2P method when a newer image is required than a previously stored virtual machine image using a deduplication technique Is provided.

본 발명의 일 실시예에 따르면, 피어 노드가 가상머신 이미지를 다운로드하는 방법에 있어서, (a) 신규 가상머신 이미지의 메타파일을 서버로부터 다운로드 받는 단계; (b) 상기 서버에서 제공된 유사 이미지 정보에 기초하여 상기 기보유한 가상머신 이미지들 중 상기 신규 가상머신 이미지와 가상 유사한 가상머신 이미지를 참조 가상머신 이미지로 확인하는 단계; (c) 상기 참조 가상 머신 이미지와 상기 신규 가상머신 이미지의 메타파일을 이용하여 일치하는 블록을 확인하고, 상기 확인된 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 단계; 및 (d) 상기 신규 가상머신 이미지에서 복제되지 않은 적어도 하나의 블록을 인접한 다른 피어로부터 다운로드 받는 단계를 포함하는 가상머신 이미지 다운로드 방법이 제공될 수 있다.According to an embodiment of the present invention, there is provided a method for a peer node downloading a virtual machine image, the method comprising: (a) downloading a meta file of a new virtual machine image from a server; (b) confirming a virtual machine image as a reference virtual machine image that resembles the new virtual machine image among the previously held virtual machine images, based on similar image information provided by the server; (c) identifying a matching block using the reference virtual machine image and a metafile of the new virtual machine image, and copying the data of the identified matching block to a corresponding block location of the new virtual machine image ; And (d) downloading at least one block not duplicated in the new virtual machine image from another adjacent peer.

상기 메타파일은 상기 신규 가상머신 이미지의 각 블록에 대한 크기, 상기 각 블록에 대한 해시값을 저장한 해시테이블을 포함할 수 있다.The metafile may include a hash table storing a size of each block of the new virtual machine image and a hash value of each block.

상기 (c) 단계는, 상기 참조 가상머신 이미지의 메타파일 및 상기 신규 가상머신 이미지의 메타파일에서 상기 각 블록의 크기 및 상기 해시 테이블 중 적어도 하나를 이용하여 블록의 데이터가 일치하는 블록을 찾아 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제할 수 있다.In the step (c), at least one of the size of each block and the hash table are used in a metafile of the reference virtual machine image and a metafile of the new virtual machine image to find a block matching the data of the block To the block location of the new virtual machine image.

상기 (b) 단계는, 상기 기보유한 적어도 하나의 가상머신 이미지 리스트를 상기 서버로 전송하는 단계; 및 상기 서버로부터 상기 기보유한 가상머신 이미지 리스트에 포함된 가상머신 이미지 중 상기 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 유사도 이미지 정보를 수신하는 단계를 포함할 수 있다.The step (b) may further comprise: transmitting the at least one virtual machine image list held by the server to the server; And receiving the similarity image information for the virtual machine image most similar to the new virtual machine image among the virtual machine images included in the virtual machine image list held by the server.

상기 (d) 단계는, 상기 신규 가상머신 이미지에서 복제된 블록의 인덱스를 상기 인접한 다른 피어로 전송하는 단계; 및 상기 다른 피어로부터 상기 복제되지 않은 블록에 대한 데이터 또는 해시값을 전송받는 단계를 포함하되, 상기 해시값이 전송되면, 상기 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 해시값에 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제할 수 있다.(D) transmitting an index of a replicated block in the new virtual machine image to another adjacent peer; And receiving data or a hash value for the non-duplicated block from the other peer, wherein when the hash value is transmitted, searching for the same block using the hash value, To the block location of the new virtual machine image corresponding to the hash value.

상기 신규 가상머신 이미지의 블록들을 순차적으로 스캔하여 해시값만 기록된 미싱블록을 검색하는 단계; 및 상기 검색된 미싱블록의 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 미싱블록으로 복제하는 단계를 포함할 수 있다.
Sequentially scanning the blocks of the new virtual machine image to search for a missing block having only a hash value recorded therein; And searching for the same block using the hash value of the searched unsuccessful block and replicating data of the same block searched for in the unsuccessful block.

본 발명의 다른 실시예에 따르면, 피어 노드가 가상머신 이미지를 다운로드 하는 방법에 있어서, 다른 피어 노드로부터 가상머신 이미지의 특정 블록에 대한 제공 요청을 수신하는 단계-상기 요청은 상기 다른 피어 노드가 확보한 블록 인덱스를 포함함; 상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 상기 요청에 따른 응답으로 상기 특정 블록의 해시값을 전송하는 단계; 및 상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되지 않으면, 상기 요청에 따른 응답으로 상기 특정 블록의 데이터를 전송하는 단계를 포함하는 가상머신 이미지 배포 방법이 제공될 수 있다.
According to another embodiment of the present invention there is provided a method for a peer node to download a virtual machine image, the method comprising: receiving a provisioning request for a particular block of a virtual machine image from another peer node, Contains one block index; Transmitting a hash value of the specific block in response to the request if the specific block is a block overlapped with any one of the blocks secured by the other peer node based on the block index; And transmitting data of the specific block in response to the request if the specific block does not overlap with any one of the blocks secured by the other peer node based on the block index Can be provided.

본 발명의 다른 측면에 따르면, 중복제거 기법을 사용하여 기저장된 가상머신 이미지보다 최신의 이미지가 필요한 경우 변경된 부분만 P2P 방식으로 다운받아 배포할 수 있는 장치가 제공된다.According to another aspect of the present invention, there is provided an apparatus capable of downloading only a changed portion by a P2P method and distributing it when a newer image is required than a previously stored virtual machine image by using a deduplication technique.

신규 가상머신 이미지의 메타파일을 서버로부터 다운로드 받는 통신부; 상기 서버에서 제공된 기보유한 가상머신 이미지들과 상기 신규 가상머신 이미지와의 유사 이미지 정보에 기초하여 상기 기보유한 가상머신 이미지들 중 가상 유사한 가상머신 이미지를 참조 가상머신 이미지로 확인하는 유사 이미지 확인부; 및 상기 참조 가상 머신 이미지와 상기 신규 가상머신 이미지의 메타파일을 이용하여 일치하는 블록을 확인하고, 상기 확인된 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하고, 상기 신규 가상머신 이미지에서 복제되지 않은 적어도 하나의 블록을 인접한 다른 피어로부터 다운로드 받는 가상머신 이미지 다운로드부를 포함하는 피어 노드가 제공될 수 있다.A communication unit for downloading a meta file of a new virtual machine image from a server; A similar image verification unit for verifying a virtual similar virtual machine image among the previously held virtual machine images as a reference virtual machine image based on similar virtual image data of the existing virtual machine images provided by the server and the new virtual machine image; And a step of identifying a matching block by using the reference virtual machine image and the meta file of the new virtual machine image, copying the data of the identified matching block to the corresponding block location of the new virtual machine image, A peer node may be provided that includes a virtual machine image downloading section for downloading at least one block that is not copied from the virtual machine image from another adjacent peer.

상기 가상머신 이미지 다운로드부는, 상기 참조 가상머신 이미지의 메타파일과 상기 신규 가상머신 이미지의 메타파일에서 각 블록의 크기 및 해시테이블을 이용하여 상기 참조 가상머신 이미지와 상기 신규 가상머신 이미지간의 일치하는 블록을 찾고, 상기 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제할 수 있다.The virtual machine image downloading unit may download a matching block between the reference virtual machine image and the new virtual machine image using a size of each block and a hash table in the meta file of the reference virtual machine image and the meta file of the new virtual machine image, And to copy the data of the matching block to the block location of the corresponding new virtual machine image.

상기 가상머신 이미지 다운로드부는, 상기 신규 가상머신 이미지에서 복제된 블록의 인덱스를 상기 인접한 다른 피어로 전송한 후 상기 다른 피어로부터 상기 복제되지 않은 블록에 대한 데이터 또는 해시값을 전송받고, 상기 전송된 해시값을 이용하여 동일한 블록을 검색한 후 상기 검색된 동일한 블록의 데이터를 상기 해시값에 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제할 수 있다.The virtual machine image downloading unit transmits an index of a block replicated in the new virtual machine image to the neighboring other peer and receives data or a hash value for the unreplicated block from the other peer, Value of the new virtual machine image, and duplicate the data of the searched block in the block location of the new virtual machine image corresponding to the hash value.

상기 신규 가상머신 이미지의 블록들을 순차적으로 스캔하여 해시값만 기록된 미싱블록을 검색하고, 상기 검색된 미싱블록의 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 미싱블록으로 복제하는 미싱파트 확인부를 더 포함할 수 있다.
Scan the blocks of the new virtual machine image sequentially to search for missing blocks in which only the hash value is recorded, retrieve the same block using the hash value of the retrieved missing block, and replicate the data of the same retrieved block to the missing block And a part for confirming a missing part to be processed.

본 발명의 다른 실시예에 따르면, 다른 피어 노드로부터 가상머신 이미지의 특정 블록에 대한 제공 요청을 수신하는 통신부-상기 요청은 상기 다른 피어 노드가 확보한 블록 인덱스를 포함함; 및 상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 상기 요청에 따른 응답으로 상기 특정 블록의 해시값을 전송하고, 상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되지 않으면, 상기 요청에 따른 응답으로 상기 특정 블록의 데이터를 전송하는 배포부를 포함하는 피어 노드가 제공될 수 있다.
According to another embodiment of the present invention, there is provided a communication unit for receiving a provisioning request for a specific block of a virtual machine image from another peer node, the request including a block index obtained by the other peer node; And transmitting the hash value of the specific block in response to the request if the specific block is a block overlapped with any one of the blocks secured by the other peer node based on the block index, And a distribution unit that transmits data of the specific block in response to the request if the specific block does not overlap with any one of the blocks secured by the other peer node.

본 발명의 또 다른 실시예에 따르면, 피어 노드의 신규 가상머신 이미지 다운로드 요청에 따라 상기 신규 가상머신 이미지의 메타파일을 전송하는 통신부; 상기 피어 노드로부터 수신된 기보유한 가상머신 이미지 정보를 이용하여 상기 피어 노드가 기보유한 가상머신 이미지를 확인하고, 유사도 테이블을 이용하여 상기 확인된 기보유한 가상머신 이미지들 중 상기 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인하여 유사 이미지 정보를 상기 피어 노드로 전송하는 유사도 확인부; 및 상기 피어 노드로부터 상기 신규 가상머신 이미지의 특정 블록 전송 요청에 따라 상기 특정 블록에 대한 해시값 또는 데이터를 전송하는 배포부를 포함하는 서버가 제공될 수 있다.According to another embodiment of the present invention, there is provided a communication system including: a communication unit for transmitting a meta file of a new virtual machine image according to a request to download a new virtual machine image of a peer node; And a peer node identification unit that identifies a virtual machine image held by the peer node based on the virtual machine image information held by the peer node and compares the detected virtual machine image with the identified virtual machine image A similarity checking unit for checking the similar virtual machine image and transmitting the similar image information to the peer node; And a distributor for transmitting a hash value or data for the specific block according to a specific block transfer request of the new virtual machine image from the peer node.

상기 배포부는, 상기 특정 블록 전송 요청에 포함된 확보 블록 인덱스를 이용하여 상기 전송 요청된 특정 블록이 상기 피어 노드가 기확보한 블록과 일치하면, 상기 특정 블록에 대한 해시값을 전송하고, 상기 전송 요청된 특정 블록이 상기 피어 노드가 기확보한 블록과 일치하지 않으면, 상기 특정 블록에 대한 데이터를 전송할 수 있다.The distribution unit transmits a hash value for the specific block if the specific block requested to be transmitted coincides with a block secured by the peer node using the secured block index included in the specific block transmission request, If the specific block requested does not match the block secured by the peer node, data for the specific block may be transmitted.

신규 가상머신 이미지의 등록에 따라 상기 신규 가상머신 이미지의 식별정보, 블록 사이즈, 블록의 해시값에 대한 해시테이블 및 상기 해시테이블을 이용한 블룸 필터를 적용한 필터 결과값을 포함하는 메타 파일을 생성하는 메타파일 생성부; 및 상기 메타 파일에 포함된 필터 결과값을 이용하여 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지들간의 유사도를 도출하여 유사도 테이블을 저장하는 계산부를 더 포함할 수 있다.A meta file for generating a meta file including identification information of the new virtual machine image, a block size, a hash table of the hash value of the block, and a filter result value using the hash table according to the registration of the new virtual machine image, A file generation unit; And a calculation unit for calculating a similarity degree between the new virtual machine image and each virtual machine image registered in the server by using the filter result value included in the meta file and storing the similarity table.

상기 유사도는 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지의 메타파일에 포함된 필터 결과값에서 일치되는 비율에 따라 도출될 수 있다.The degree of similarity may be derived according to the ratio of the new virtual machine image and the filter result value included in the meta file of each virtual machine image registered in the server.

본 발명의 일 실시예에 따른 클라우드 컴퓨팅에서 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치를 제공함으로써, 중복제거 기법을 사용하여 기저장된 가상머신 이미지보다 최신의 이미지가 필요한 경우 변경된 부분만 P2P 방식으로 다운받아 배포할 수 있다.The present invention provides a method and apparatus for distributing and downloading a virtual machine image by using deduplication in a cloud computing according to an embodiment of the present invention. When a newer image is required than a previously stored virtual machine image by using a deduplication technique, Can be downloaded and distributed by P2P method only.

또한, 본 발명은 P2P에서 중복 블록 전송을 방지할 수 있어 네트워크 트래픽을 현저하게 줄일 수 있다.In addition, the present invention can prevent duplicate block transmission in P2P, thereby significantly reducing network traffic.

또한, 본 발명은 네트워크 토폴로지를 고려하여 이웃 노드 선정시 계층에 따른 순위로 연결하도록 하여 네트워크 전송 효율을 높일 수 있다.In addition, the present invention can increase the network transmission efficiency by selecting the neighboring nodes in order according to the hierarchy in consideration of the network topology.

도 1은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅에서 중복제거를 이용한 가상머신 이미지 배포 또는 다운로드를 위한 시스템 구성을 개략적으로 도시한 도면.
도 2는 본 발명의 일 실시예에 따른 유사도 테이블의 예시를 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 피어 노드에서 신규 가상머신 이미지를 다운로드 받는 과정을 나타낸 흐름도.
도 4는 본 발명의 일 실시예에 따른 가상머신 이미지의 중복을 제어하는 의사코드를 나타낸 도면.
도 5는 본 발명의 일 실시예에 따른 피어 노드가 가상머신 이미지를 배포하는 방법을 나타낸 순서도.
도 6은 본 발명의 일 실시예에 따른 서버에서 가상머신 이미지들간의 유사성 정보를 제공하는 방법을 나타낸 순서도.
도 7은 본 발명의 일 실시예에 따른 서버의 내부 구성을 개략적으로 도시한 블록도.
도 8은 본 발명의 일 실시예에 따른 피어 노드의 내부 구성을 개략적으로 도시한 블록도.
도 9는 본 발명의 일 실시예에 따른 가상머신 이미지를 배포하는 피어 노드의 구성을 개략적으로 도시한 도면.
도 10은 본 발명의 일 실시예에 따른 인터 블록 중복 제거를 설명하기 위해 도시한 도면.
도 11은 본 발명의 일 실시예에 따른 인트라 블록 중복 제거를 설명하기 위해 도시한 도면.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic view of a system configuration for virtual machine image distribution or downloading using deduplication in cloud computing according to an embodiment of the present invention; FIG.
2 illustrates an example of a similarity table according to an embodiment of the present invention;
FIG. 3 is a flowchart illustrating a process of downloading a new virtual machine image at a peer node according to an embodiment of the present invention. FIG.
4 illustrates pseudo code for controlling redundancy of a virtual machine image in accordance with one embodiment of the present invention.
5 is a flow diagram illustrating a method for a peer node to deploy a virtual machine image in accordance with an embodiment of the present invention.
6 is a flowchart illustrating a method of providing similarity information between virtual machine images in a server according to an embodiment of the present invention.
FIG. 7 is a block diagram schematically showing an internal configuration of a server according to an embodiment of the present invention; FIG.
8 is a block diagram schematically illustrating an internal configuration of a peer node according to an embodiment of the present invention;
9 is a diagram schematically illustrating a configuration of a peer node for distributing a virtual machine image according to an embodiment of the present invention;
10 is a diagram illustrating inter-block de-duplication according to an embodiment of the present invention.
11 is a view for explaining intra-block de-duplication according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 클라우드 컴퓨팅에서 중복제거를 이용한 가상머신 이미지 배포 또는 다운로드를 위한 시스템 구성을 개략적으로 도시한 도면이고, 도 2는 본 발명의 일 실시예에 따른 유사도 테이블의 예시를 나타낸 도면이다.FIG. 1 is a diagram schematically showing a system configuration for distributing or downloading a virtual machine image using deduplication in a cloud computing according to an embodiment of the present invention. Fig.

도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템은 서버(110)와 복수의 피어 노드(120, 130)로 구성된다.Referring to FIG. 1, a system according to an embodiment of the present invention includes a server 110 and a plurality of peer nodes 120 and 130.

서버(110)는 복수의 가상머신 이미지를 저장, 관리 및 이를 배포하는 기능을 한다. 여기서, 가상머신 이미지는 가상머신 디스크 이미지로, 가상머신 실행을 위한 디스크 파일로 이해되어야 할 것이다.The server 110 functions to store, manage, and distribute a plurality of virtual machine images. Here, the virtual machine image is a virtual machine disk image, and it should be understood as a disk file for executing a virtual machine.

이와 같은 가상머신 이미지는 기본적으로 운영체제(OS: operating system)에 기반하여 미들웨어나 애플리케이션을 추가하여 생성될 수 있다. 따라서, 가상머신 이미지는 동일한 운영체제하에서도 미들웨어 또는 애플리케이션의 추가에 따라 매우 다양하게 생성될 수 있다. Such a virtual machine image can be basically created by adding a middleware or an application based on an operating system (OS). Thus, a virtual machine image can be created in a wide variety of ways depending on the addition of middleware or applications even under the same operating system.

본 발명은 클라우드 컴퓨팅 환경을 기반으로 한다. 따라서, 클라우드 컴퓨팅 환경하에서 가상머신 이미지는 각기 다른 운영체제나 운영체제의 다른 버전, 미들웨어나 미들웨어 버전, 애플리케이션이나 애플리케이션 버전에 따라 매우 다양하게 생성될 수 있다.The present invention is based on a cloud computing environment. Thus, in a cloud computing environment, a virtual machine image can be created in many different ways depending on different operating systems or different versions of the operating system, middleware or middleware version, application or application version.

가상머신 이미지는 서버(110)에서 생성될 수도 있으며, 각 피어 노드(120, 130)에 의해 생성될 수도 있다. 클라우드 컴퓨팅 환경에서 생성된 모든 가상머신 이미지는 신규 생성시 단일 서버(110)에 등록되어 관리되며, 다른 피어 노드에 의해 공유되어 이용될 수 있다.The virtual machine image may be created at the server 110 or at each peer node 120, 130. All the virtual machine images created in the cloud computing environment are registered and managed in the single server 110 at the time of new creation and can be shared and used by other peer nodes.

이러한 가상머신 이미지가 서버(110)에 신규 등록되는 경우, 서버(110)는 신규 가상머신 이미지에 대한 메타 파일을 생성하고, 생성된 메타 파일에 기초하여 서버(110)에 저장된 다른 가상머신 이미지들과의 유사도를 도출하여 테이블에 별도로 저장한다.When the virtual machine image is newly registered in the server 110, the server 110 generates a metafile for the new virtual machine image, and stores the other virtual machine images stored in the server 110 on the basis of the generated metafile And stores them separately in the table.

가상머신 이미지의 메타파일은 가상머신 이미지를 식별하기 위한 식별정보와 가상머신 이미지가 가변길이 블록으로 분할되므로, 각 블록의 오프셋 확인을 위해 블록의 사이즈도 포함한다. 또한, 메타파일에는 각 블록이 동일한 블록인지를 확인할 수 있도록 각 블록의 데이터를 해시함수를 적용한 결과(이하, 해시값이라 칭하기로 함)를 포함하는 해시 테이블을 포함할 수 있다.The meta file of the virtual machine image includes identification information for identifying the virtual machine image and the size of the block for checking the offset of each block since the virtual machine image is divided into variable length blocks. The metafile may include a hash table including a result of applying a hash function to data of each block (hereinafter, referred to as a hash value) so that each block may be identified as the same block.

또한, 서버(110)는 해시 테이블을 생성하여 메타 파일에 포함한 후, 해시 테이블을 이용하여 블룸 필터(Bloom filter)를 적용한 결과값(필터 결과값이라 칭하기로 함)을 생성하여 메타 파일에 포함할 수 있다. 블룸 필터는 당업자에게는 자명한 사항이므로 이에 대한 별도의 설명은 생략하기로 한다.In addition, the server 110 generates a hash table and inserts the hash table into a meta file, generates a result value (referred to as a filter result value) obtained by applying a Bloom filter using the hash table, . Since the bloom filter is obvious to those skilled in the art, a detailed description thereof will be omitted.

이외에도, 서버(110)는 신규 등록되는 가상머신 이미지에 대한 다양한 정보(예를 들어, 가상머신 이미지 파일명, 버전, 가상머신 이미지 전체 사이즈, 블록 개수)를 포함하여 저장할 수 있다.In addition, the server 110 may store various pieces of information (e.g., virtual machine image file name, version, virtual machine image size, and block number) of the newly registered virtual machine image.

또한, 서버(110)는 신규 등록된 가상머신 이미지에 대한 메타 파일이 생성된 이후, 메타 파일에 포함된 블룸 필터의 필터 결과값을 이용하여 기저장된 다른 가상머신 이미지들과의 유사도를 도출하여 별도의 테이블(이하, 유사도 테이블이라 칭하기로 함)에 저장할 수 있다.In addition, after the meta file for the newly registered virtual machine image is generated, the server 110 derives the similarity with other previously stored virtual machine images using the filter result value of the Bloom filter included in the meta file, (Hereinafter, referred to as a similarity table).

블룸 필터의 필터 결과값은 해시 테이블의 key-value의 쌍으로 저장하지 않고 해시 테이블 상에 키가 존재하는지 존재하지 않는지를 저장한다. 예를 들어, 블룸 필터의 필터 결과값은 가상머신 이미지의 블록 개수에 상응하도록 m 비트 사이즈를 가지며, k(자연수)개의 해시 함수에 의해 반환된 키를 상응하는 비트 배열의 인덱스에 존재하는지 존재하지 않는지로 저장할 수 있다. 이로 인해, 블룸 필터의 필터 결과값은 키(key)가 존재하는 지점(해시 함수에 의해 반환된 결과)을 가리키는 비트들의 배열로 이해되어야 할 것이다.The filter result of the Bloom filter is stored as a key-value pair in the hash table, and whether or not the key exists in the hash table is stored. For example, the filter result of the Bloom filter has an m-bit size corresponding to the number of blocks in the virtual machine image, and the key returned by k (natural number) hash functions is present in the corresponding bit array index You can save it as if it is not. For this reason, the filter result of the Bloom filter should be understood as an array of bits indicating the point at which the key exists (the result returned by the hash function).

이로 인해, 서버(110)는 신규 등록된 가상머신 이미지와 기저장된 가상머신 이미지들간의 유사도를 도출하기 위해 가상머신 이미지에서 사용한 키(벡터)의 수를 우선 확인해야 한다.Accordingly, the server 110 must first check the number of keys (vectors) used in the virtual machine image to derive the similarity between the newly registered virtual machine image and the previously stored virtual machine images.

예를 들어, 가상머신 이미지에서 사용한 키(벡터)의 수는 해당 가상머신 이미지에 대한 블룸 필터에 따른 필터 결과값에서 비트값이 “1”인 키의 개수를 도출하여 구할 수 있다. 이를 수식으로 나타내면, 수 1과 같다.For example, the number of keys (vectors) used in the virtual machine image can be obtained by deriving the number of keys whose bit value is "1" in the filter result value according to the Bloom filter for the virtual machine image. This can be expressed by the following equation.

Figure 112014111086422-pat00001
Figure 112014111086422-pat00001

여기서, BF(i)는 블룸 필터의 벡터 리스트를 나타내며, i는 블룸 필터의 벡터 리스트의 각 벡터에 대한 인덱스를 나타내고, k는 벡터 리스트에서 사용된 벡터의 비트값을 1로 표기하는 것을 나타낸다.Here, BF (i) denotes a vector list of the Bloom filter, i denotes an index for each vector of the vector list of the Bloom filter, and k denotes a bit value of the vector used in the vector list.

이어, 서버(110)는 각 가상머신 이미지에 대한 비트 배열의 키(벡터)의 위치를 비교하여 유사도를 특정할 수 있다. 이를 수식으로 나타내면, 수 2와 같다.Then, the server 110 may compare the position of the key (vector) of the bit arrangement for each virtual machine image to specify the similarity. This can be expressed by the following equation (2).

Figure 112014111086422-pat00002
Figure 112014111086422-pat00002

여기서,

Figure 112014111086422-pat00003
는 i 가상머신 이미지에서 사용한 키(벡터)의 수를 나타내고,
Figure 112014111086422-pat00004
는 i 가상머신 이미지와 j 가상머신 이미지에서 사용한 키(벡터)들 중 필터 배열에서 일치하는 키(벡터)의 수를 나타낸다. 따라서, 유사도가 1에 근접할수록 두 가상머신 이미지는 유사도가 높다는 것을 의미한다. here,
Figure 112014111086422-pat00003
Represents the number of keys (vectors) used in the i virtual machine image,
Figure 112014111086422-pat00004
Represents the number of keys (vectors) that match in the filter array among the keys (vectors) used in i virtual machine image and j virtual machine image. Therefore, the closer the similarity is to 1, the higher the degree of similarity between the two virtual machine images.

이와 같이, 서버(110)는 신규 등록된 가상머신 이미지와 기저장된 모든 가상머신 이미지 각각에 대한 유사도를 도출한 후 이를 유사도 테이블에 별도로 저장/관리할 수 있다. 도 2에는 서버(110)에 각 가상머신 이미지들간의 유사도가 저장된 일 예가 도시되어 있다.In this manner, the server 110 can derive the similarities of the newly registered virtual machine images and all the previously stored virtual machine images, and separately store / manage them in the similarity table. FIG. 2 shows an example in which the degree of similarity between virtual machine images is stored in the server 110.

이와 같이 저장된 유사도 테이블에 기초하여, 서버(110)는 피어 노드로부터 기보유한 가상머신 이미지 정보가 수신되는 경우, 피어 노드가 기보유하고 있는 가상머신 이미지를 확인 후 피어 노드가 기보유한 가상머신 이미지들 중 피어 노드가 새롭게 다운로드하고자 하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 정보(이하에서는 유사 이미지 정보라 칭하기로 함)를 피어 노드(120)로 전송할 수 있다.In the case where the virtual machine image information held by the peer node is received based on the stored similarity table, the server 110 confirms the virtual machine image held by the peer node and, after confirming the virtual machine image held by the peer node, (Hereinafter, referred to as similar image information) to the peer node 120, which is closest to the new virtual machine image to be newly downloaded by the peer node.

이를 통해, 피어 노드는 자신이 기존에 보유하고 있는 가상머신 이미지를 이용하여 중복을 제거한 후 나머지 블록에 대해서만 인접한 피어 또는 서버(110)를 통해 제공받을 수 있다. 이에 대해서는 하기에서 도 3을 이용하여 보다 상세히 설명하기로 한다.Accordingly, the peer node can receive redundancy through the neighboring peer or server 110 only for the remaining blocks after using the existing virtual machine image. This will be described in more detail with reference to FIG. 3 below.

피어 노드(120, 130)는 클라우드 컴퓨팅 환경에서의 각 컴퓨팅 노드들이다. 피어 노드(120)는 서버(110) 및 다른 인접한 피어 노드를 통해 신규 가상머신 이미지를 다운로드 받을 수 있다. 이에 대해서는 하기에서 관련 도면을 참조하여 보다 상세히 설명하기로 한다.
Peer nodes 120 and 130 are each computing node in a cloud computing environment. The peer node 120 may download the new virtual machine image via the server 110 and other adjacent peer nodes. This will be described in more detail below with reference to the related drawings.

도 3은 본 발명의 일 실시예에 따른 피어 노드에서 신규 가상머신 이미지를 다운로드 받는 과정을 나타낸 흐름도이고, 도 4는 본 발명의 일 실시예에 따른 가상머신 이미지의 중복을 제어하는 의사코드를 나타낸 도면이며, 도 10은 본 발명의 일 실시예에 따른 인터 블록 중복 제거를 설명하기 위해 도시한 도면이다. 피어 노드는 적어도 하나의 가상머신 이미지를 기보유하고 있는 것을 가정하기로 한다.FIG. 3 is a flowchart illustrating a process of downloading a new virtual machine image at a peer node according to an exemplary embodiment of the present invention. FIG. 4 is a flowchart illustrating a pseudo code for controlling duplication of a virtual machine image according to an exemplary embodiment of the present invention. And FIG. 10 is a diagram for explaining inter-block de-duplication according to an embodiment of the present invention. It is assumed that the peer node has at least one virtual machine image.

단계 310에서 제1 피어 노드는 서버(110)에 접속하여 다운로드 받기를 희망하는 신규 가상머신 이미지에 대한 메타파일을 다운로드 받는다(도 10의 1 참조).In step 310, the first peer node accesses the server 110 and downloads a metafile for a new virtual machine image that it wishes to download (see 1 in FIG. 10).

이미 전술한 바와 같이, 메타파일에는 신규 가상머신 이미지에 대한 다양한 정보를 포함하고 있으며, 특히 신규 가상머신 이미지의 블록에 대한 해시 테이블과, 가상머신 이미지의 블록의 오프셋 확인을 위한 블록의 사이즈를 포함할 수 있다. 이외에도 메타파일에는 신규 가상머신 이미지에 대한 다양한 정보들이 저장될 수 있음은 당연하다.As already mentioned above, the metafile contains various information about the new virtual machine image, and in particular includes the hash table for the block of the new virtual machine image and the size of the block for checking the offset of the block of the virtual machine image can do. In addition, it is natural that various information about the new virtual machine image can be stored in the meta file.

단계 315에서 제1 피어 노드는 기보유한 가상머신 이미지들에 대한 정보를 서버(110)로 전송하고, 서버(110)로부터 제1 피어 노드가 기보유한 가상머신 이미지들 중 신규 가상머신 이미지와 가상 유사한 가상머신 이미지에 대한 정보(유사 이미지 정보)를 제공받는다(도 10의 2 참조).In step 315, the first peer node transmits information about the virtual machine images held by the server 110 to the server 110, and the first peer node transmits a virtual similar image to the new virtual machine image (Similar image information) about the virtual machine image (refer to 2 in FIG. 10).

보다 상세하게, 제1 피어 노드는 제1 피어 노드가 이미 보유하고 있는(즉, 저장하고 있는) 가상머신 이미지들에 대한 정보(가상머신 이미지를 식별할 수 있는 식별정보)를 서버(110)로 전송한다.In more detail, the first peer node sends to the server 110 information (identification information that can identify the virtual machine image) about the virtual machine images that the first peer node already holds (i.e., stores) send.

이에 따라, 서버(110)는 제1 피어 노드로부터 수신된 기보유한 가상머신 이미지들에 대한 정보를 이용하여 제1 피어 노드가 보유하고 있는 가상머신 이미지들을 확인한다.Accordingly, the server 110 confirms the virtual machine images held by the first peer node using the information about the virtual machine images held by the first peer node.

이어, 서버(110)는 제1 피어 노드에 대응하여 확인된 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받기 희망하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인한 후 해당 가상 유사한 가상머신 이미지를 식별할 수 있는 정보(유사 이미지 정보)를 제1 피어 노드로 전송한다. 여기서, 유사 이미지 정보는 제1 피어 노드가 보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지에 대한 식별정보일 수 있다.Then, the server 110 confirms the virtual machine image most similar to the new virtual machine image desired by the first peer node among the virtual machine images held in correspondence with the first peer node and desires to download the virtual machine image, (Similar image information) capable of identifying the image to the first peer node. Here, the similar image information may be identification information on the most similar virtual machine image among the virtual machine images held by the first peer node.

이미 전술한 바와 같이, 서버(110)는 각 가상머신 이미지들간의 유사도를 도출한 후 유사도 테이블에 저장하고 있다. 따라서, 서버(110)는 유사도 테이블을 참조하여 제1 피어 노드가 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받기 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인하여 이를 식별할 수 있는 정보(유사 이미지 정보)를 제1 피어 노드로 전송할 수 있다.As described above, the server 110 derives the similarities between the virtual machine images and stores them in the similarity table. Accordingly, the server 110 refers to the similarity table and identifies and identifies the virtual machine image most similar to the new virtual machine image that the first peer node wants to download from among the virtual machine images held by the first peer node Information (similar image information) to the first peer node.

예를 들어, 제1 피어 노드가 제1 가상머신 이미지, 제2 가상머신 이미지, 제5 가상머신 이미지를 저장하고 있는 상태에서, 신규 가상머신 이미지를 다운로드 받는다고 가정하자.For example, assume that a first virtual machine image, a second virtual machine image, and a fifth virtual machine image are stored in the first peer node, and a new virtual machine image is downloaded.

제1 피어 노드는 제1 가상머신 이미지, 제2 가상머신 이미지, 제5 가상머신 이미지에 대한 정보를 각각 서버(110)로 전송할 수 있다. 즉, 서버(110)는 모든 가상머신 이미지를 저장하고 있으므로, 제1 피어 노드는 이미 보유하고 있는 제1 가상머신 이미지, 제2 가상머신 이미지, 제5 가상머신 이미지를 식별할 수 있는 간략 정보만을 서버(110)로 전송할 수 있다.The first peer node may send information about the first virtual machine image, the second virtual machine image, and the fifth virtual machine image to the server 110, respectively. That is, since the server 110 stores all of the virtual machine images, the first peer node only has the first virtual machine image, the second virtual machine image, and the simple information capable of identifying the fifth virtual machine image To the server 110.

이어, 서버(110)는 제1 피어 노드가 전송한 제1 가상머신 이미지, 제2 가상머신 이미지 및 제5 가상머신 이미지에 대한 간략 정보를 이용하여 제1 피어 노드가 기보유한 가상머신 이미지를 확인한다. 이후, 서버(110)는 제1 피어 노드가 기보유한 제1 가상머신 이미지, 제2 가상머신 이미지 및 제5 가상머신 이미지들 중 신규 가상머신 이미지와 유사도가 가장 높은 이미지를 확인한 후 이를 제1 피어 노드에게 알린다.Next, the server 110 confirms the virtual machine image held by the first peer node using the first virtual machine image transmitted by the first peer node, the second virtual machine image, and the fifth virtual machine image do. After that, the server 110 confirms the image having the highest degree of similarity to the new virtual machine image among the first virtual machine image, the second virtual machine image, and the fifth virtual machine image held by the first peer node, Notify the node.

즉, 서버(110)는 제1 피어 노드가 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받고자 하는 신규 가상머신 이미지와 가장 유사도가 높은 가상머신 이미지 정보를 파악하여 제1 피어 노드로 전송한다.That is, the server 110 grasps the virtual machine image information having the highest degree of similarity with the new virtual machine image that the first peer node wants to download from among the virtual machine images held by the first peer node, and transmits the virtual machine image information to the first peer node .

단계 320에서 제1 피어 노드는 서버(110)로부터 수신된 유사 이미지 정보에 대응하여 기보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 설정한 후, 참조 가상머신 이미지와 신규 가상머신 이미지의 메타 파일을 참조하여 동일한 블록의 위치에 동일한 해시값을 가지는 블록을 일치하는 블록으로 결정한다. 메타 파일에는 블록의 사이즈와 해시 테이블을 포함하고 있다. 따라서, 서버(110)는 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일의 블록 사이즈와 해시 테이블을 참조하여 참조 가상머신 이미지와 신규 가상머신 이미지의 각 블록의 오프셋을 확인한 후 각 블록의 해시값이 동일한지 여부를 판단하여 두 가상머신 이미지(참조 가상머신 이미지와 신규 가상머신 이미지)간의 동일한 블록을 검색할 수 있다.In step 320, the first peer node sets the reference virtual machine image to the most similar virtual machine image among the existing virtual machine images corresponding to the similar image information received from the server 110, A block having the same hash value at the position of the same block is determined as a matching block by referring to the meta file of the machine image. The metafile contains the size of the block and a hash table. Accordingly, the server 110 checks the offset of each block of the reference virtual machine image and the new virtual machine image by referring to the block size and the hash table of the meta file of the reference virtual machine image and the new virtual machine image, The same block between the two virtual machine images (the reference virtual machine image and the new virtual machine image) can be searched.

이에 따라 일치하는 블록(즉, 중복 블록)을 확인한 후 서버(110)는 참조 가상머신 이미지의 일치하는 블록(즉, 중복 블록)의 데이터를 신규 가상머신 이미지의 대응하는 블록 위치에 복제한다. 이와 같은 과정을 본 발명의 일 실시예에서는 인터 블록 중복 제거(inter-block duplication)이라 칭하기로 한다. 인터 블록 중복 제거는 도 10의 3과정과 같이, 자신이 기보유하고 있는 가상머신 이미지 파일을 이용하여 다운로드받을 신규 가상머신 이미지와 중복되는 블록을 복제하여 이용하는 과정을 의미한다.Accordingly, after confirming the matching block (i.e., redundant block), the server 110 replicates the data of the matching block (i.e., the redundant block) of the reference virtual machine image to the corresponding block position of the new virtual machine image. This process will be referred to as inter-block duplication in one embodiment of the present invention. Inter-block deduplication refers to a process of duplicating a block overlapping with a new virtual machine image to be downloaded using a virtual machine image file that the client owns, as shown in step 3 of FIG.

예를 들어, 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일을 확인한 결과, 참조 가상머신 이미지와 신규 가상머신 이미지의 제1 블록과 제4 블록이 각각 일치하는 블록으로 확인되면, 서버(110)는 참조 가상머신 이미지의 제1 블록의 데이터와 제4 블록의 데이터를 신규 가상머신 이미지의 제1 블록 위치와 제4 블록 위치에 복제할 수 있다. For example, if it is determined that the first and fourth blocks of the reference virtual machine image and the new virtual machine image are identical to each other as a result of checking the meta file of the reference virtual machine image and the new virtual machine image, The data of the first block of the reference virtual machine image and the data of the fourth block may be copied to the first block location and the fourth block location of the new virtual machine image.

이하, 본 명세서에서 블록을 복제한다는 의미는 블록의 데이터를 복사하는 것으로 이해 및 확장 해석되어야 할 것이다.Hereinafter, the meaning of copying a block in this specification should be interpreted and expanded as copying data of a block.

이와 같이, 제1 피어 노드가 유사 이미지 정보에 기초하여 기보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지와 다운로드 희망하는 신규 가상머신 이미지간의 중복되는 블록을 복제한 후 나머지 블록만을 인접한 다른 피어 또는 서버를 통해 다운로드 받음으로써 네트워크 트래픽을 완화시킬 수 있는 이점이 있다.In this manner, after the first peer node replicates a duplicated block between the most similar virtual machine image among the virtual machine images held by the first peer node and the new virtual machine image desired to be downloaded based on the similar image information, The network traffic can be mitigated.

단계 325에서 제1 피어 노드는 신규 가상머신 이미지의 복제되지 않은 블록들을 인접한 다른 피어 노드 또는 서버로부터 다운로드 받는다.In step 325, the first peer node downloads unreplicated blocks of the new virtual machine image from another adjacent peer node or server.

이때, 제1 피어 노드는 아이피 주소(IP address)에 기반하여 가장 하단의 스위치에 의해 연결된 노드들을 우선 순위로 연결하고, 스위치 계층을 상승하며 연결할 수 있는 다른 피어 노드들을 연결할 수 있다.At this time, the first peer node may connect the nodes connected by the switch at the lowest level in the priority order based on the IP address, and may connect other peer nodes that can connect and ascend the switch layer.

즉, 제1 피어 노드는 당해 제1 피어 노드에 인접한 다른 피어 노드들 순으로 연결하여 신규 가상머신 이미지의 나머지 블록들-즉, 복제되지 않은 블록들-을 다운로드 받을 수 있다.That is, the first peer node may connect in order of other peer nodes adjacent to the first peer node to download the remaining blocks of the new virtual machine image, that is, the non-replicated blocks.

이때, 신규 가상머신 이미지의 나머지 블록들-즉, 복제되지 않은 블록들- 중 내부적으로 동일하게 중복되는 블록들이 존재할 수 있다. 신규 가상머신 이미지의 블록들 중 복제되지 않은 블록들 중 중복되는 블록들은 인접한 다른 피어 노드 또는 서버로부터 단 한번만 다운로드 받는다. At this time, there may exist blocks that are duplicated internally in the remaining blocks of the new virtual machine image, that is, blocks that are not duplicated. Among the blocks of the new virtual machine image, duplicated blocks among unreplicated blocks are downloaded only once from another adjacent peer node or server.

예를 들어, 신규 가상머신 이미지의 복제되지 않은 블록들 중 제3 블록과 제7 블록이 동일하다고 가정하기로 한다. 인접한 다른 피어 노드 또는 서버는 제3 블록과 제7 블록 중 하나의 블록의 데이터만 전송하고, 다른 블록은 해시값만 전송한다. For example, assume that the third block and the seventh block of the unreplicated blocks of the new virtual machine image are the same. Another neighboring peer node or server transmits only the data of one block of the third block and the seventh block, and the other block transmits only the hash value.

이를 위해, 제1 피어 노드는 인접한 다른 피어 노드들 또는 서버와 당해 제1 피어 노드가 신규 가상머신 이미지의 블록들 중 확보한 블록에 대한 인덱스를 다른 피어 노드 또는 서버와 주고받으며 필요한 블록들을 확인할 수 있다.To this end, the first peer node exchanges the index of the neighboring other peer nodes or server and the secured block among the blocks of the new virtual machine image with the other peer node or the server, and confirms the necessary blocks have.

다른 피어 노드 또는 서버는 제1 피어 노드로부터 신규 가상머신 이미지에 대해 이미 확보한 블록의 인덱스를 수신 받아 알고 있으므로, 제1 피어 노드가 확보하지 않은 블록들도 확인할 수 있다.Another peer node or server receives and knows the index of the block already secured for the new virtual machine image from the first peer node, so that blocks not secured by the first peer node can also be confirmed.

이때, 제1 피어 노드가 신규 가상머신 이미지에 대해 요청한 블록들 중 복제된 블록과 동일한 블록이 존재하는 경우, 다른 피어 노드 또는 서버는 해당 블록에 대한 해시값을 전송할 수 있다. 이를 통해, 제1 피어 노드가 해당 해시값을 이용하여 신규 가상머신 이미지의 블록들 중 내부적으로 중복되는 블록을 복제하여 이용하도록 할 수 있다(이와 같은 과정을 본 발명의 일 실시에에서는 인트라 블록 중복 제거(intra-block duplication)이라 칭하기로 함, 도 11 참조). 도 4에 이에 대한 의사코드가 예시되어 있다.At this time, if the same block as the replicated block exists among the blocks requested by the first peer node for the new virtual machine image, another peer node or the server can transmit the hash value for the corresponding block. In this case, the first peer node can duplicate and use the internally redundant block among the blocks of the new virtual machine image using the corresponding hash value (this process is performed in the embodiment of the present invention, Quot; intra-block duplication ", see Fig. 11). The pseudo code for this is illustrated in Fig.

이와 같이, 신규 가상머신 이미지의 복제된 블록들 중 어느 하나와 중복되는 블록의 제공이 요청되는 경우, 실제 데이터가 아닌 해시값을 전송함으로써 네트워크 트래픽을 줄일 수 있는 이점이 있다.In this manner, when the provision of a block overlapping with any one of the replicated blocks of the new virtual machine image is requested, there is an advantage that network traffic can be reduced by transmitting a hash value other than actual data.

단계 330에서 제1 피어 노드는 신규 가상머신 이미지의 각 블록을 검사하여 미싱블록이 존재하는지 확인하고 미싱블록의 위치에 해시값이 동일한 다른 블록을 복제한다. 이와 같은 과정을 통해 제1 피어 노드는 신규 가상머신 이미지의 다운로드를 완료할 수 있다.
In step 330, the first peer node checks each block of the new virtual machine image to see if a missing block exists and replicates another block having the same hash value at the location of the missing block. Through this process, the first peer node can complete the download of the new virtual machine image.

도 5는 본 발명의 일 실시예에 따른 피어 노드가 가상머신 이미지를 배포하는 방법을 나타낸 순서도이다. 이해와 설명의 편의를 도모하기 위해 피어 노드는 다른 피어 노드가 다운로드 원하는 가상머신 이미지를 보유하고 있는 것을 가정하기로 한다.5 is a flowchart illustrating a method for a peer node to distribute a virtual machine image according to an embodiment of the present invention. In order to facilitate understanding and explanation, it is assumed that the peer node has a virtual machine image that another peer node wants to download.

또한, 각 가상머신 이미지는 메타파일을 가지고 있으며, 메타 파일에 기초하여 가상머신 이미지는 복수의 블록을 포함할 수 있다. 이하에서 설명되는 피어 노드는 가상머신 이미지의 적어도 하나의 블록을 배포하는 주체로, 설명의 편의를 도모하기 위해 제2 피어 노드로 통칭하기로 한다. 또한, 도 3과 같이 가상머신 이미지의 특정 블록을 전송받는 주체를 제1 피어 노드로 통칭하여 설명하기로 한다. 제1 피어 노드 및 제2 피어 노드는 각각 복수일 수 있음은 당연하다.Also, each virtual machine image has a metafile, and based on the metafile, the virtual machine image can include a plurality of blocks. The peer node described below is a subject distributing at least one block of the virtual machine image, and will be collectively referred to as a second peer node for convenience of explanation. 3, a subject receiving a specific block of a virtual machine image will be collectively referred to as a first peer node. It is to be understood that the first and second peer nodes may each be plural.

단계 510에서 제2 피어 노드는 제1 피어 노드로부터 타겟 가상 가상머신 이미지의 특정 블록의 전송을 요청받는다. 요청은 타겟 가상머신 이미지의 식별정보와 특정 블록의 인덱스를 포함할 수 있다.In step 510, the second peer node is requested to transfer a particular block of the target virtual machine image from the first peer node. The request may include identification of the target virtual machine image and an index of a particular block.

또한, 요청은 제1 피어 노드가 타겟 가상머신 이미지에서 이미 확보한 블록의 인덱스를 더 포함할 수도 있다. 제1 피어 노드는 적어도 하나의 제2 피어 노드 또는 서버로부터 타겟 가상머신 이미지의 특정 블록이 확보되는 경우, 이를 인접한 제2 피어 노드 또는 서버로 전송하여 이를 알릴 수 있다. 이를 통해, 제2 피어 노드 또는 서버(110)는 즉각적으로 제1 피어 노드가 확보한 특정 가상머신 이미지의 블록을 확인할 수 있다. In addition, the request may further include an index of a block already acquired in the target virtual machine image by the first peer node. The first peer node can inform it of the specific block of the target virtual machine image from at least one second peer node or server by sending it to an adjacent second peer node or server. This allows the second peer node or server 110 to immediately identify the block of the particular virtual machine image that the first peer node has secured.

이에 따라, 단계 515에서 제2 피어 노드는 요청에 따른 특정 블록이 제1 피어 노드에서 이미 확보한 블록들과 중복되는지 여부를 확인한다.Accordingly, in step 515, the second peer node checks whether the specific block according to the request overlaps with the blocks already secured in the first peer node.

만일 제1 피어 노드에서 이미 확보한 블록들과 중복되는 경우, 단계 520에서 제2 피어 노드는 제1 피어 노드에서 요청한 신규 가상머신 이미지의 특정 블록에 대한 해시값을 전송한다.If it overlaps the already acquired blocks at the first peer node, the second peer node transmits a hash value for the specific block of the new virtual machine image requested at the first peer node,

이에 따라, 제1 피어 노드는 신규 가상머신 이미지의 해당 블록의 위치에 제2 피어 노드로부터 전송받은 해시값을 기록한다.Thus, the first peer node records the hash value received from the second peer node at the position of the corresponding block in the new virtual machine image.

그러나 만일 제1 피어 노드에서 이미 확보한 블록들과 중복되지 않는 경우, 단계 525에서 제2 피어 노드는 제1 피어 노드에서 요청한 신규 가상머신 이미지의 특정 블록(특정 블록의 데이터)을 전송한다.
However, if it is not overlapped with the already acquired blocks in the first peer node, the second peer node transmits a specific block (data of the specific block) of the new virtual machine image requested by the first peer node in step 525. [

도 6은 본 발명의 일 실시예에 따른 서버에서 가상머신 이미지들간의 유사성 정보를 제공하는 방법을 나타낸 순서도이다. 이하에서는 이해와 설명의 편의를 도모하기 위해 서버(110)에서 가상머신 이미지가 신규 등록되는 것을 가정하기로 한다. 또한, 서버(110)에는 복수의 가상머신 이미지가 저장되어 있는 것을 가정하기로 한다.6 is a flowchart illustrating a method of providing similarity information between virtual machine images in a server according to an exemplary embodiment of the present invention. Hereinafter, it is assumed that a virtual machine image is newly registered in the server 110 in order to facilitate understanding and explanation. In addition, it is assumed that a plurality of virtual machine images are stored in the server 110.

단계 610에서 서버(110)는 신규 가상머신 이미지에 대한 메타파일을 생성한다. 여기서, 신규 가상머신 이미지의 메타파일은 신규 가상머신 이미지의 블록의 크기, 블록의 해시값을 기록한 해시 테이블을 포함할 수 있다. 물론, 신규 가상머신 이미지의 메타파일은 해당 신규 가상머신 이미지를 식별할 수 있는 식별정보, 버전정보 등과 같은 신규 가상머신 이미지를 설명하기 위한 다양한 정보를 더 포함할 수 있음은 당연하다.In step 610, the server 110 creates a metafile for the new virtual machine image. Here, the metafile of the new virtual machine image may include a hash table recording the size of the block of the new virtual machine image, the hash value of the block. It goes without saying that the metafile of the new virtual machine image may further include various information for describing the new virtual machine image such as identification information, version information and the like capable of identifying the new virtual machine image.

이외에도, 메타파일은 블록의 해시값을 저장한 해시 테이블을 이용하여 생성된 블룸 필터의 결과값을 더 포함할 수 있다.In addition, the metafile may further include a result value of the Bloom filter generated using the hash table storing the hash value of the block.

단계 615에서 서버(110)는 신규 가상머신 이미지와 기저장된 가상머신 이미지들간의 유사도를 도출한다.In step 615, the server 110 derives the similarity between the new virtual machine image and the previously stored virtual machine images.

예를 들어, 서버(110)는 신규 가상머신 이미지와 기저장된 가상머신 이미지들간의 메타파일에 저장된 블룸 필터의 결과값을 비교하여 유사도를 도출할 수 있다.For example, the server 110 may compare the result of the Bloom filter stored in the meta file between the new virtual machine image and the previously stored virtual machine images to derive the similarity.

우선, 서버(110)는 신규 가상머신 이미지와 기저장된 가상머신 이미지들간의 메타파일에 저장된 블룸 필터의 결과값을 이용하여 실제 사용한 벡터의 수를 도출한다. 이는 이미 전술한 바와 같이, 수 1을 이용하여 도출할 수 있다.First, the server 110 derives the number of actually used vectors by using the result value of the Bloom filter stored in the meta file between the new virtual machine image and the previously stored virtual machine images. This can be derived using the number 1, as already mentioned above.

이어, 서버(110)는 신규 가상머신 이미지에 대응하는 블룸 필터의 벡터의 수 중 기저장된 가상머신 이미지들에 대응하는 블룸 필터의 실제 사용된 벡터와 일치하는 수의 백분율을 도출하여 유사도를 도출할 수 있다.Next, the server 110 derives a percentage of the number that matches the actually used vector of the Bloom filter corresponding to the previously stored virtual machine images in the number of vectors of the Bloom filter corresponding to the new virtual machine image to derive the similarity .

이는 이미 전술한 바와 같이, 수 2를 참조하여 도출될 수 있다.This can be derived with reference to the number 2, as already mentioned above.

이와 같이, 신규 가상머신 이미지와 기저장된 모든 가상머신 이미지들간의 유사도를 도출하여 별도의 테이블에 저장할 수 있다.In this way, the degree of similarity between the new virtual machine image and all previously stored virtual machine images can be derived and stored in a separate table.

이와 같은 상태에서, 단계 620에서 서버(110)는 제1 피어 노드로부터 신규 가상머신 이미지의 다운로드가 요청되면, 해당 신규 가상머신 이미지에 대한 메타파일을 제1 피어 노드로 전송한다.In this state, in step 620, when the download of the new virtual machine image is requested from the first peer node, the server 110 transmits the meta file for the new virtual machine image to the first peer node.

이어, 단계 625에서 서버(110)는 제1 피어 노드로부터 당해 제1 피어 노드가 기보유하고 있는 가상머신 이미지에 대한 정보(예를 들어, 식별정보)를 수신한다.Then, in step 625, the server 110 receives information (e.g., identification information) about the virtual machine image held by the first peer node from the first peer node.

단계 630에서 서버(110)는 제1 피어 노드로부터 수신된 가상머신 이미지에 대한 정보(예를 들어, 식별정보)에 기초하여 제1 피어 노드가 보유한 가상머신 이미지를 확인한 후 제1 피어 노드가 기보유한 가상머신 이미지들 중 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 유사 이미지 정보를 제1 피어 노드로 전송한다.In step 630, the server 110 checks the virtual machine image held by the first peer node based on information (e.g., identification information) about the virtual machine image received from the first peer node, And transmits similar image information about the virtual machine image most similar to the new virtual machine image among the stored virtual machine images to the first peer node.

이에 따라, 제1 피어 노드는 서버(110)로부터 수신된 유사 이미지 정보에 기초하여 제1 피어 노드가 보유하고 있는 가상머신 이미지들 중 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인할 수 있다. 이어, 제1 피어 노드는 이미 전술한 바와 같이, 확인된 가장 유사한 가상머신 이미지(즉, 참조 가상머신 이미지)와 신규 가상머신 이미지의 메타파일을 이용하여 두 가상머신 이미지간의 중복되는 블록을 확인하여 신규 가상머신 이미지의 중복된 블록의 위치에 복제한 후 나머지 블록만 다른 피어 또는 서버로부터 다운로드 받을 수 있다. Accordingly, the first peer node can identify the virtual machine image most similar to the new virtual machine image among the virtual machine images held by the first peer node based on the similar image information received from the server 110. [ The first peer node then checks the duplicate blocks between the two virtual machine images using the most similar virtual machine image identified (i.e., the reference virtual machine image) and the new virtual machine image metafile, as described above After copying to the location of the duplicated block in the new virtual machine image, only the remaining blocks can be downloaded from another peer or server.

이하, 서버에서의 피어 노드의 요청에 따라 특정 가상머신 이미지에 대한 특정 블록을 배포하는 방법은 도 5의 피어 노드에서의 배포 방법과 동일하므로 중복되는 설명은 생략하기로 한다.
Hereinafter, a method of distributing a specific block to a specific virtual machine image in response to a request from a peer node in the server is the same as the distribution method in the peer node in FIG. 5, so that a duplicate description will be omitted.

도 7은 본 발명의 일 실시예에 따른 서버의 내부 구성을 개략적으로 도시한 블록도이다.7 is a block diagram schematically illustrating an internal configuration of a server according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일 실시예에 따른 서버(110)는 통신부(710), 등록부(715), 계산부(720), 파일 저장부(725), 메타파일 생성부(730), 유사도 확인부(735), 배포부(740), 메모리(745) 및 제어부(750)를 포함하여 구성된다.7, a server 110 according to an exemplary embodiment of the present invention includes a communication unit 710, a registration unit 715, a calculation unit 720, a file storage unit 725, a metafile generation unit 730, A similarity determination unit 735, a distribution unit 740, a memory 745, and a control unit 750.

통신부(710)는 피어 노드와 데이터를 송수신하는 기능을 한다. The communication unit 710 transmits and receives data to and from the peer node.

등록부(715)는 신규 가상머신 이미지를 등록받기 위한 수단이다. 등록부(715)는 신규 가상머신 이미지를 등록받아 파일 저장부(725)에 저장할 수 있다.The registration unit 715 is a means for registering a new virtual machine image. The registration unit 715 registers the new virtual machine image in the file storage unit 725.

계산부(720)는 신규 가상머신 이미지와 서버(110)에 기저장된 가상머신 이미지간의 유사도를 도출하여 저장하는 기능을 한다.The calculation unit 720 derives the similarity between the new virtual machine image and the virtual machine image previously stored in the server 110 and stores the similarity.

예를 들어, 계산부(720)는 두 가상머신 이미지의 메타파일에 저장된 블룸 필터의 결과값을 비교하여 유사도를 도출할 수 있다. 이는 이미 전술한 바와 동일하므로 중복되는 설명은 생략하기로 한다.For example, the calculation unit 720 may compare the result values of the Bloom filters stored in the metafiles of the two virtual machine images to derive the similarity. Since this is the same as described above, redundant description will be omitted.

파일 저장부(725)는 가상머신 이미지를 저장, 관리하는 기능을 한다.The file storage unit 725 stores and manages virtual machine images.

메타파일 생성부(730)는 신규 가상머신 이미지에 대한 메타파일을 생성하는 기능을 한다. The metafile generation unit 730 generates a metafile for a new virtual machine image.

예를 들어, 메타파일 생성부(730)는 신규 가상머신 이미지에 대한 식별정보, 블록의 크기, 각 블록의 해시값에 대한 해시 테이블, 해시 테이블의 각 블록의 해시값을 이용한 블룸 필터를 적용한 필터 결과값을 포함하도록 메타파일을 생성할 수 있다. 물론, 메타파일 생성부(730)는 이외에도 신규 가상머신 이미지에 대한 다양한 정보를 더 포함할 수도 있다.For example, the metafile generating unit 730 may generate a meta file by using a Bloom filter using a hash value of each block of the hash table, identification information of the new virtual machine image, size of the block, hash table of the hash value of each block, You can create a metafile to contain the result. Of course, the metafile generating unit 730 may further include various information on the new virtual machine image.

유사도 확인부(735)는 피어 노드로부터 보유하고 있는 가상머신 이미지에 대한 정보가 수신되면, 피어 노드가 기보유한 가상머신 이미지를 확인한 후 피어 노드가 다운로드를 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 정보(유사성 정보)를 확인하여 피어 노드로 제공하는 기능을 한다.When the information about the virtual machine image held from the peer node is received, the similarity determination unit 735 determines the similarity of the virtual machine image (Similarity information) to the peer node and provides it to the peer node.

배포부(740)는 피어 노드로부터 신규 가상머신 이미지 또는 특정 가상머신 이미지의 블록 다운로드가 요청되면, 해당 블록에 대한 해시값 또는 블록(데이터)를 전송하는 기능을 한다.The distribution unit 740 transmits a hash value or a block (data) for the new virtual machine image or a specific virtual machine image from the peer node when the block download is requested.

예를 들어, 배포부(740)는 피어 노드로부터 신규 가상머신 이미지 또는 특정 가상머신 이미지에 대해 다운로드 요청된 블록이 피어 노드에서 이미 확보한 신규 가상머신 이미지 또는 특정 가상머신 이미지의 블록과 중복되는 경우 해당 요청한 블록에 대한 해시값을 전송하도록 제어할 수 있다.For example, the distributing unit 740 may determine that a new virtual machine image or a block requested to be downloaded for a specific virtual machine image from a peer node is overlapped with a new virtual machine image already obtained at the peer node or a block of a specific virtual machine image It is possible to control to transmit a hash value for the requested block.

또한, 배포부(740)는 특정 가상머신 이미지에 대해 다운로드 요청된 블록이 피어 노드에서 이미 확보한 신규 가상머신 이미지 또는 특정 가상머신 이미지의 블록과 중복되지 않는 경우 해당 다운로드 요청한 블록을 전송하도록 제어할 수 있다.If the block requested for download is not overlapped with the block of the new virtual machine image or the specific virtual machine image already secured in the peer node, the distribution unit 740 controls to transfer the block requested to be downloaded .

메모리(745)는 본 발명의 일 실시예에 따른 서버(110)에서 가상머신 이미지를 등록, 관리하거나 유사도를 도출하기 위해 필요한 다양한 알고리즘, 이 과정에서 파생된 다양한 데이터 등을 저장하는 기능을 한다.The memory 745 stores various algorithms necessary for registering and managing a virtual machine image or deriving similarity in the server 110 according to an embodiment of the present invention and various data derived from the process.

제어부(750)는 본 발명의 일 실시예에 따른 서버(110)의 내부 구성 요소들(예를 들어, 통신부(710), 등록부(715), 계산부(720), 파일 저장부(725), 메타파일 생성부(730), 유사도 확인부(735), 배포부(740) 및 메모리(745) 등)을 제어하는 기능을 한다.The control unit 750 controls the internal components of the server 110 such as the communication unit 710, the registration unit 715, the calculation unit 720, the file storage unit 725, The meta file generation unit 730, the similarity determination unit 735, the distribution unit 740, and the memory 745).

또한, 제어부(750)는 피어 노드로부터의 신규 가상머신 이미지 또는 특정한 가상머신 이미지의 다운로드 요청에 따라 그에 따른 메타파일을 검색하여 전송하도록 제공하도록 제어하는 기능을 한다.
In addition, the control unit 750 functions to search for a new virtual machine image from the peer node or a meta file corresponding to a download request of a specific virtual machine image, and to provide the meta file.

도 8은 본 발명의 일 실시예에 따른 피어 노드의 내부 구성을 개략적으로 도시한 블록도이다.8 is a block diagram schematically illustrating an internal configuration of a peer node according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시예에 따른 피어 노드는, 통신부(810), 유사 이미지 확인부(815), 가상머신 이미지 다운로드부(820), 메모리(825) 및 프로세서(830)를 포함하여 구성된다.8, a peer node according to an exemplary embodiment of the present invention includes a communication unit 810, a similar image verification unit 815, a virtual machine image download unit 820, a memory 825, and a processor 830 .

통신부(810)는 다른 피어 노드 또는 서버(110)와 데이터를 송수신하는 기능을 한다.The communication unit 810 transmits / receives data to / from another peer node or the server 110.

유사 이미지 확인부(815)는 신규 가상머신 이미지의 다운로드를 위해, 당해 피어 노드가 기보유한 가상머신 이미지의 정보(가상머신 이미지 정보)를 서버(110)로 전송하고, 서버(110)로부터 유사 이미지 정보를 획득하는 기능을 한다.The similar image verification unit 815 transmits information (virtual machine image information) of the virtual machine image held by the peer node to the server 110 for downloading the new virtual machine image, And acquires information.

유사 이미지 확인부(815)는 서버(110)를 통해 전송된 유사 이미지 정보에 기초하여 기보유한 가상머신 이미지들 중 피어 노드가 다운로드하기 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 설정하는 기능을 한다.The similar image verification unit 815 compares the virtual machine image, which is closest to the new virtual machine image that the peer node wants to download among the previously stored virtual machine images, based on the similar image information transmitted through the server 110, As shown in FIG.

가상머신 이미지 다운로드부(820)는 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일을 참조하여 두 가상머신 이미지들간의 일치하는 블록을 확인하여 피어 노드 내부적으로 일치하는 블록의 데이터를 신규 가상머신 이미지의 대응하는 블록 위치에 복제하는 기능을 한다.The virtual machine image downloading unit 820 refers to the meta file of the reference virtual machine image and the new virtual machine image to identify matching blocks between the two virtual machine images, To the corresponding block position of the block.

또한, 가상머신 이미지 다운로드부(820)는 신규 가상머신 이미지의 블록들 중 복제되지 않은 블록을 인접한 다른 피어 노드 또는 서버(110)로부터 다운로드 받는다.In addition, the virtual machine image downloading unit 820 downloads unreplicated blocks of the blocks of the new virtual machine image from another neighboring peer node or the server 110.

이때, 가상머신 이미지 다운로드부(820)는 이미 전술한 바와 같이, 신규 가상머신 이미지의 블록들 중 확보되지 않은 블록 중 확보된 블록과 동일한 블록이 존재하는 경우, 해당 블록의 데이터가 아닌 해시값을 인접한 다른 피어 노드 또는 서버(110)로부터 전송받아 신규 가상머신 이미지의 대응하는 블록 위치에 저장할 수 있다.At this time, as described above, when there is a same block as the secured block among the unsecured blocks of the new virtual machine image, the virtual machine image downloading unit 820 downloads the hash value that is not the data of the corresponding block May be received from another neighboring peer node or server 110 and stored in a corresponding block location of the new virtual machine image.

이어, 가상머신 이미지 다운로드부(820)는 신규 가상머신 이미지의 각 블록을 확인하여 미싱블록을 검색한 후, 미싱블록의 해시값과 일치하는 다른 블록의 데이터를 해당 미싱블록에 복제하는 기능을 한다.The virtual machine image downloading unit 820 then checks each block of the new virtual machine image to search for a missing block and replicates data of another block matching the hash value of the missing block to the corresponding missing block .

본 발명의 일 실시예에서 미싱블록은 블록의 데이터값과 해시값을 모두 가지고 있지 않고, 해시값만 기록된 블록일 수 있다.In one embodiment of the present invention, the missing block does not have both the data value and the hash value of the block, and only the hash value may be the recorded block.

메모리(825)는 본 발명의 일 실시예에 따른 중복제거를 이용하여 가상머신 이미지를 공유하기 위한 다양한 알고리즘, 이 과정에서 파생되는 다양한 데이터를 저장하는 기능을 한다.The memory 825 stores various algorithms for sharing a virtual machine image using deduplication according to an embodiment of the present invention and various data derived from the algorithm.

프로세서(830)는 본 발명의 일 실시예에 따른 피어 노드의 내부 구성 요소들(예를 들어, 통신부(810), 유사 이미지 확인부(815), 가상머신 이미지 다운로드부(820), 메모리(825))를 제어하는 기능을 한다.Processor 830 may include internal components of the peer node (e.g., communication unit 810, similar image verification unit 815, virtual machine image download unit 820, memory 825, ).

도 8에서는 피어 노드가 가상머신 이미지를 다운로드 받는 주체인 경우의 구성에 대해 설명하였다. 피어 노드가 가상머신 이미지를 배포하는 주체인 경우에는 그 구성이 상이해질 수 있으며, 이는 도 9에서 설명하기로 한다.
In FIG. 8, the configuration in the case where the peer node is the subject of downloading the virtual machine image has been described. If the peer node is the entity that distributes the virtual machine image, the configuration may be different, which will be described with reference to FIG.

도 9는 본 발명의 일 실시예에 따른 가상머신 이미지를 배포하는 피어 노드의 구성을 개략적으로 도시한 도면이다.9 is a view schematically showing a configuration of a peer node for distributing a virtual machine image according to an embodiment of the present invention.

도 9을 참조하면, 본 발명의 일 실시예에 따른 피어 노드는 통신부(910), 배포부(915), 메모리(920), 프로세서(925)를 포함하여 구성된다.9, a peer node according to an exemplary embodiment of the present invention includes a communication unit 910, a distribution unit 915, a memory 920, and a processor 925.

도 9에서 통신부(910), 메모리(920), 프로세서(925)의 구성은 도 8에서 설명한 통신부(810), 메모리(825) 및 프로세서(830)와 동일하므로 중복되는 설명은 생략하기로 한다.9, the configuration of the communication unit 910, the memory 920, and the processor 925 are the same as those of the communication unit 810, the memory 825, and the processor 830 described in FIG. 8, and thus description thereof will be omitted.

배포부(915)는 다른 피어 노드로부터 타겟 가상머신 이미지의 특정 블록에 대한 전송이 요청되면, 해당 특정 블록에 대한 해시값 또는 데이터를 전송하는 기능을 한다.The distribution unit 915 transmits a hash value or data for the specific block when a transmission of a specific block of the target virtual machine image is requested from another peer node.

예를 들어, 다른 피어 노드에서 전송된 블록 인덱스에 기초하여 특정 블록이 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 배포부(915)는 특정 블록에 대한 요청에 따른 응답으로 특정 블록의 해시값을 전송할 수 있다. 그러나 만일 다른 피어 노드에서 전송된 블록 인덱스에 기초하여 특정 블록이 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되지 않으면, 배포부(915)는 요청에 따른 응답으로 특정 블록의 데이터를 전송할 수 있다.
For example, when a specific block is a block overlapping with one of the blocks secured by other peer nodes based on the block index transmitted from another peer node, the distributing unit 915 distributes the specific The hash value of the block can be transmitted. However, if the specific block does not overlap with any of the blocks secured by other peer nodes based on the block index transmitted from another peer node, the distribution unit 915 may transmit the data of the specific block in response to the request .

한편, 본 발명의 실시예에 따른 클라우드 컴퓨팅에서 중복제거를 이용한 가상머신 이미지 공유 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다. Meanwhile, the virtual machine image sharing method using deduplication in the cloud computing according to the embodiment of the present invention may be implemented in the form of a program command that can be executed through a variety of means for processing information electronically and recorded in a storage medium. The storage medium may include program instructions, data files, data structures, and the like, alone or in combination.

저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. Program instructions to be recorded on the storage medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of software. Examples of storage media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, magneto-optical media and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as devices for processing information electronically using an interpreter or the like, for example, a high-level language code that can be executed by a computer.

상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the invention may be varied and varied without departing from the scope of the invention.

110: 서버
120, 130: 피어 노드


110: Server
120, 130: peer node


Claims (17)

피어 노드가 가상머신 이미지를 다운로드하는 방법에 있어서,
(a) 신규 가상머신 이미지의 메타파일을 서버로부터 다운로드 받는 단계;
(b) 상기 서버에서 제공된 유사 이미지 정보에 기초하여 기보유한 가상머신 이미지들 중 상기 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 확인하는 단계;
(c) 상기 참조 가상 머신 이미지와 상기 신규 가상머신 이미지의 메타파일을 이용하여 일치하는 블록을 확인하고, 상기 확인된 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 단계; 및
(d) 상기 신규 가상머신 이미지에서 복제되지 않은 적어도 하나의 블록을 인접한 다른 피어로부터 다운로드 받는 단계를 포함하되,
상기 (d) 단계는,
상기 신규 가상머신 이미지에서 복제된 블록의 인덱스를 상기 인접한 다른 피어로 전송하는 단계; 및
상기 다른 피어로부터 상기 복제되지 않은 블록에 대한 데이터 또는 해시값을 전송받는 단계를 포함하되,
상기 해시값이 전송되면, 상기 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 해시값에 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 것을 특징으로 하는 가상머신 이미지 다운로드 방법.
A method for a peer node to download a virtual machine image,
(a) downloading a meta file of a new virtual machine image from a server;
(b) identifying a virtual machine image that is most similar to the new virtual machine image among the virtual machine images held by the server based on similar image information provided by the server, as a reference virtual machine image;
(c) identifying a matching block using the reference virtual machine image and a metafile of the new virtual machine image, and copying the data of the identified matching block to a corresponding block location of the new virtual machine image ; And
(d) downloading at least one block not duplicated in the new virtual machine image from another adjacent peer,
The step (d)
Transmitting an index of a replicated block in the new virtual machine image to another adjacent peer; And
Receiving a data or hash value for the non-replicated block from the other peer,
Wherein when the hash value is transmitted, the same block is searched using the hash value, and the data of the same block searched is copied to the block location of the new virtual machine image corresponding to the hash value. Way.
제1 항에 있어서,
상기 메타파일은 상기 신규 가상머신 이미지의 각 블록에 대한 크기, 상기 각 블록에 대한 해시값을 저장한 해시테이블을 포함하는 것을 특징으로 하는 가상머신 이미지 다운로드 방법.
The method according to claim 1,
Wherein the metafile includes a hash table storing a size of each block of the new virtual machine image and a hash value of each block.
제2 항에 있어서,
상기 (c) 단계는,
상기 참조 가상머신 이미지의 메타파일 및 상기 신규 가상머신 이미지의 메타파일에서 상기 각 블록의 크기 및 상기 해시 테이블 중 적어도 하나를 이용하여 블록의 데이터가 일치하는 블록을 찾아 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 것을 특징으로 하는 가상머신 이미지 다운로드 방법.
3. The method of claim 2,
The step (c)
A block matching the data of the block using at least one of the size of each block and the hash table in the meta file of the reference virtual machine image and the meta file of the new virtual machine image, And copying the virtual machine image to the block location.
제1 항에 있어서,
상기 (b) 단계는,
상기 기보유한 적어도 하나의 가상머신 이미지 리스트를 상기 서버로 전송하는 단계; 및
상기 서버로부터 상기 기보유한 가상머신 이미지 리스트에 포함된 가상머신 이미지 중 상기 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 유사도 이미지 정보를 수신하는 단계를 포함하는 것을 특징으로 하는 가상머신 이미지 다운로드 방법.

The method according to claim 1,
The step (b)
Transmitting the at least one virtual machine image list to the server; And
And receiving similarity image information about a virtual machine image most similar to the new virtual machine image among virtual machine images included in the virtual machine image list held by the server.

삭제delete 제1 항에 있어서,
상기 (c) 단계 이후에,
상기 신규 가상머신 이미지의 블록들을 순차적으로 스캔하여 해시값만 기록된 미싱블록을 검색하는 단계;
상기 검색된 미싱블록의 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 미싱블록으로 복제하는 단계를 포함하는 가상머신 이미지 다운로드 방법.

The method according to claim 1,
After the step (c)
Sequentially scanning the blocks of the new virtual machine image to search for a missing block having only a hash value recorded therein;
Searching for the same block using the hash value of the searched unsuccessful block, and replicating data of the same block searched to the unsuccessful block.

피어 노드가 가상머신 이미지를 다운로드 하는 방법에 있어서,
다른 피어 노드로부터 가상머신 이미지의 특정 블록에 대한 제공 요청을 수신하는 단계-상기 요청은 상기 다른 피어 노드가 확보한 블록 인덱스를 포함함;
상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 상기 요청에 따른 응답으로 상기 특정 블록의 해시값을 전송하는 단계; 및
상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되지 않으면, 상기 요청에 따른 응답으로 상기 특정 블록의 데이터를 전송하는 단계를 포함하는 가상머신 이미지 배포 방법.
A method for a peer node to download a virtual machine image,
Receiving a provisioning request for a particular block of a virtual machine image from another peer node, the request comprising a block index obtained by the other peer node;
Transmitting a hash value of the specific block in response to the request if the specific block is a block overlapped with any one of the blocks secured by the other peer node based on the block index; And
And transmitting data of the specific block in response to the request if the specific block does not overlap with any one of the blocks secured by the other peer node based on the block index.
제1 항 내지 제4항, 제6항, 제7 항 중 어느 하나의 방법을 수행하기 위한 프로그램 코드를 기록한 컴퓨터로 판독 가능한 기록매체 제품.

A computer-readable recording medium on which program codes for carrying out the method of any one of claims 1 to 4, 6 and 7 are recorded.

신규 가상머신 이미지의 메타파일을 서버로부터 다운로드 받는 통신부;
상기 서버에서 제공된 기보유한 가상머신 이미지들과 상기 신규 가상머신 이미지와의 유사 이미지 정보에 기초하여 상기 기보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 확인하는 유사 이미지 확인부; 및
상기 참조 가상 머신 이미지와 상기 신규 가상머신 이미지의 메타파일을 이용하여 일치하는 블록을 확인하고, 상기 확인된 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하고, 상기 신규 가상머신 이미지에서 복제되지 않은 적어도 하나의 블록을 인접한 다른 피어로부터 다운로드 받는 가상머신 이미지 다운로드부를 포함하되,
상기 가상머신 이미지 다운로드부는,
상기 신규 가상머신 이미지에서 복제된 블록의 인덱스를 상기 인접한 다른 피어로 전송한 후 상기 다른 피어로부터 상기 복제되지 않은 블록에 대한 데이터 또는 해시값을 전송받고,
상기 전송된 해시값을 이용하여 동일한 블록을 검색한 후 상기 검색된 동일한 블록의 데이터를 상기 해시값에 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 것을 특징으로 하는 피어 노드.
A communication unit for downloading a meta file of a new virtual machine image from a server;
A similar image verification unit for verifying the virtual machine image that is the most similar among the previously held virtual machine images as a reference virtual machine image based on similar virtual image data of the virtual machine images held by the server and the new virtual machine image; And
Identifying a matching block using the reference virtual machine image and a metafile of the new virtual machine image, copying the data of the identified matching block to a corresponding block location of the new virtual machine image, And a virtual machine image downloading unit for downloading at least one block not duplicated in the machine image from another adjacent peer,
The virtual machine image downloading unit,
Transmitting an index of a replicated block in the new virtual machine image to another adjacent peer, receiving data or a hash value for the unreplicated block from the other peer,
Searching the same block using the transmitted hash value, and replicating the data of the searched same block to a block location of the new virtual machine image corresponding to the hash value.
제9 항에 있어서,
상기 가상머신 이미지 다운로드부는,
상기 참조 가상머신 이미지의 메타파일과 상기 신규 가상머신 이미지의 메타파일에서 각 블록의 크기 및 해시테이블을 이용하여 상기 참조 가상머신 이미지와 상기 신규 가상머신 이미지간의 일치하는 블록을 찾고,
상기 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 것을 특징으로 하는 피어 노드.
10. The method of claim 9,
The virtual machine image downloading unit,
A matching block between the reference virtual machine image and the new virtual machine image is searched using a size of each block and a hash table in the meta file of the reference virtual machine image and the meta file of the new virtual machine image,
And replicates the data of the matching block to the block location of the corresponding new virtual machine image.
삭제delete 제9 항에 있어서,
상기 신규 가상머신 이미지의 블록들을 순차적으로 스캔하여 해시값만 기록된 미싱블록을 검색하고, 상기 검색된 미싱블록의 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 미싱블록으로 복제하는 미싱파트 확인부를 더 포함하는 피어 노드.

10. The method of claim 9,
Scan the blocks of the new virtual machine image sequentially to search for missing blocks in which only the hash value is recorded, retrieve the same block using the hash value of the retrieved missing block, and replicate the data of the same retrieved block to the missing block The peer node further includes a missing part identification part.

다른 피어 노드로부터 가상머신 이미지의 특정 블록에 대한 제공 요청을 수신하는 통신부-상기 요청은 상기 다른 피어 노드가 확보한 블록 인덱스를 포함함;
상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 상기 요청에 따른 응답으로 상기 특정 블록의 해시값을 전송하고, 상기 블록 인덱스에 기초하여 상기 특정 블록이 상기 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되지 않으면, 상기 요청에 따른 응답으로 상기 특정 블록의 데이터를 전송하는 배포부를 포함하는 피어 노드.
A communication unit for receiving a provisioning request for a specific block of a virtual machine image from another peer node, the request including a block index obtained by the other peer node;
And transmitting the hash value of the specific block in response to the request if the specific block is a block overlapped with any one of the blocks secured by the other peer node based on the block index, And if the specific block does not overlap with any one of the blocks secured by the other peer node, transmits the data of the specific block in response to the request.
피어 노드의 신규 가상머신 이미지 다운로드 요청에 따라 상기 신규 가상머신 이미지의 메타파일을 전송하는 통신부;
상기 피어 노드로부터 수신된 기보유한 가상머신 이미지 정보를 이용하여 상기 피어 노드가 기보유한 가상머신 이미지를 확인하고, 유사도 테이블을 이용하여 상기 확인된 기보유한 가상머신 이미지들 중 상기 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인하여 유사 이미지 정보를 상기 피어 노드로 전송하는 유사도 확인부; 및
상기 피어 노드로부터 상기 신규 가상머신 이미지의 특정 블록 전송 요청에 따라 상기 특정 블록에 대한 해시값 또는 데이터를 전송하는 배포부를 포함하되,
상기 배포부는,
상기 특정 블록 전송 요청에 포함된 확보 블록 인덱스를 이용하여 상기 전송 요청된 특정 블록이 상기 피어 노드가 기확보한 블록과 일치하면, 상기 특정 블록에 대한 해시값을 전송하고,
상기 전송 요청된 특정 블록이 상기 피어 노드가 기확보한 블록과 일치하지 않으면, 상기 특정 블록에 대한 데이터를 전송하는 것을 특징으로 하는 서버.
A communication unit for transmitting a metafile of the new virtual machine image according to a new virtual machine image download request of the peer node;
And a peer node identification unit that identifies a virtual machine image held by the peer node based on the virtual machine image information held by the peer node and compares the detected virtual machine image with the identified virtual machine image A similarity checking unit for checking the similar virtual machine image and transmitting the similar image information to the peer node; And
And a distribution unit for transmitting a hash value or data for the specific block according to a specific block transmission request of the new virtual machine image from the peer node,
Wherein,
If the specific block requested to be transmitted matches a block secured by the peer node using the secured block index included in the specific block transmission request, transmits a hash value for the specific block,
And transmits the data for the specific block if the specific block requested to be transmitted does not match the block secured by the peer node.
삭제delete 제14 항에 있어서,
신규 가상머신 이미지의 등록에 따라 상기 신규 가상머신 이미지의 식별정보, 블록 사이즈, 블록의 해시값에 대한 해시테이블 및 상기 해시테이블을 이용한 블룸 필터를 적용한 필터 결과값을 포함하는 메타 파일을 생성하는 메타파일 생성부; 및
상기 메타 파일에 포함된 필터 결과값을 이용하여 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지들간의 유사도를 도출하여 유사도 테이블을 저장하는 계산부를 더 포함하는 서버.
15. The method of claim 14,
A meta file for generating a meta file including identification information of the new virtual machine image, a block size, a hash table of the hash value of the block, and a filter result value using the hash table according to the registration of the new virtual machine image, A file generation unit; And
Further comprising a calculation unit for calculating a similarity degree between the new virtual machine image and each virtual machine image registered in the server by using a filter result value included in the meta file to store a similarity table.
제16 항에 있어서,
상기 유사도는 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지의 메타파일에 포함된 필터 결과값에서 일치되는 비율에 따라 도출되는 것을 특징으로 하는 서버.
17. The method of claim 16,
Wherein the degree of similarity is derived in accordance with a ratio of the new virtual machine image and a filter result value included in a meta file of each virtual machine image registered in the server.
KR1020140161003A 2014-11-18 2014-11-18 Virtual machine image distribution method, downloading method and apparatus using duplication based P2P KR101620219B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140161003A KR101620219B1 (en) 2014-11-18 2014-11-18 Virtual machine image distribution method, downloading method and apparatus using duplication based P2P

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140161003A KR101620219B1 (en) 2014-11-18 2014-11-18 Virtual machine image distribution method, downloading method and apparatus using duplication based P2P

Publications (1)

Publication Number Publication Date
KR101620219B1 true KR101620219B1 (en) 2016-05-11

Family

ID=56026446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140161003A KR101620219B1 (en) 2014-11-18 2014-11-18 Virtual machine image distribution method, downloading method and apparatus using duplication based P2P

Country Status (1)

Country Link
KR (1) KR101620219B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052698A1 (en) 2012-08-17 2014-02-20 International Business Machines Corporation Virtual Machine Image Access De-Duplication
US20140188807A1 (en) 2012-04-27 2014-07-03 University Of British Columbia De-duplicated virtual machine image transfer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140188807A1 (en) 2012-04-27 2014-07-03 University Of British Columbia De-duplicated virtual machine image transfer
US20140052698A1 (en) 2012-08-17 2014-02-20 International Business Machines Corporation Virtual Machine Image Access De-Duplication

Similar Documents

Publication Publication Date Title
US10489345B2 (en) Multiple retention period based representations of a dataset backup
US11422898B2 (en) Efficient creation of multiple retention period based representations of a dataset backup
US10798149B2 (en) File storage, object storage, and storage system
KR101453425B1 (en) Metadata Server And Metadata Management Method
US10620834B2 (en) Managing storage space based on multiple dataset backup versions
US8495013B2 (en) Distributed storage system and method for storing objects based on locations
US8533231B2 (en) Cloud storage system with distributed metadata
JP4538454B2 (en) Search for electronic document replicas in computer networks
US9514008B2 (en) System and method for distributed processing of file volume
CN104580439B (en) Method for uniformly distributing data in cloud storage system
JP2021509989A (en) Resource reservation method, resource reservation device, resource reservation device, and resource reservation system
KR20130137897A (en) Method for managing data in asymmetric cluster file system
KR20100067976A (en) Method for synchronizing contents files stored separately
CN109407975B (en) Data writing method, computing node and distributed storage system
JP6196389B2 (en) Distributed disaster recovery file synchronization server system
US10324652B2 (en) Methods for copy-free data migration across filesystems and devices thereof
US10880376B1 (en) Downloading chunks of an object from a storage service while chunks of the object are being uploaded
KR20170090594A (en) Data server device configured to manage distributed lock of file together with client device in storage system employing distributed file system
CN112749144A (en) Persistent file storage system and method based on block chain
JP2011222005A (en) Automated relocation of in-use multi-site protected data storage
JP6413792B2 (en) Storage system
KR101620219B1 (en) Virtual machine image distribution method, downloading method and apparatus using duplication based P2P
US20200134052A1 (en) Decentralized distribution using an overlay network
JP7399929B2 (en) Information processing system, information processing method, and program
KR101748913B1 (en) Cluster management method and data storage system for selecting gateway in distributed storage environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee