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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
Description
본 발명은 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
서버(110)는 복수의 가상머신 이미지를 저장, 관리 및 이를 배포하는 기능을 한다. 여기서, 가상머신 이미지는 가상머신 디스크 이미지로, 가상머신 실행을 위한 디스크 파일로 이해되어야 할 것이다.The
이와 같은 가상머신 이미지는 기본적으로 운영체제(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
이러한 가상머신 이미지가 서버(110)에 신규 등록되는 경우, 서버(110)는 신규 가상머신 이미지에 대한 메타 파일을 생성하고, 생성된 메타 파일에 기초하여 서버(110)에 저장된 다른 가상머신 이미지들과의 유사도를 도출하여 테이블에 별도로 저장한다.When the virtual machine image is newly registered in the
가상머신 이미지의 메타파일은 가상머신 이미지를 식별하기 위한 식별정보와 가상머신 이미지가 가변길이 블록으로 분할되므로, 각 블록의 오프셋 확인을 위해 블록의 사이즈도 포함한다. 또한, 메타파일에는 각 블록이 동일한 블록인지를 확인할 수 있도록 각 블록의 데이터를 해시함수를 적용한 결과(이하, 해시값이라 칭하기로 함)를 포함하는 해시 테이블을 포함할 수 있다.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
이외에도, 서버(110)는 신규 등록되는 가상머신 이미지에 대한 다양한 정보(예를 들어, 가상머신 이미지 파일명, 버전, 가상머신 이미지 전체 사이즈, 블록 개수)를 포함하여 저장할 수 있다.In addition, the
또한, 서버(110)는 신규 등록된 가상머신 이미지에 대한 메타 파일이 생성된 이후, 메타 파일에 포함된 블룸 필터의 필터 결과값을 이용하여 기저장된 다른 가상머신 이미지들과의 유사도를 도출하여 별도의 테이블(이하, 유사도 테이블이라 칭하기로 함)에 저장할 수 있다.In addition, after the meta file for the newly registered virtual machine image is generated, the
블룸 필터의 필터 결과값은 해시 테이블의 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
예를 들어, 가상머신 이미지에서 사용한 키(벡터)의 수는 해당 가상머신 이미지에 대한 블룸 필터에 따른 필터 결과값에서 비트값이 “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.
여기서, 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
여기서, 는 i 가상머신 이미지에서 사용한 키(벡터)의 수를 나타내고, 는 i 가상머신 이미지와 j 가상머신 이미지에서 사용한 키(벡터)들 중 필터 배열에서 일치하는 키(벡터)의 수를 나타낸다. 따라서, 유사도가 1에 근접할수록 두 가상머신 이미지는 유사도가 높다는 것을 의미한다. here, Represents the number of keys (vectors) used in the i virtual machine image, 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
이와 같이 저장된 유사도 테이블에 기초하여, 서버(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
이를 통해, 피어 노드는 자신이 기존에 보유하고 있는 가상머신 이미지를 이용하여 중복을 제거한 후 나머지 블록에 대해서만 인접한 피어 또는 서버(110)를 통해 제공받을 수 있다. 이에 대해서는 하기에서 도 3을 이용하여 보다 상세히 설명하기로 한다.Accordingly, the peer node can receive redundancy through the neighboring peer or
피어 노드(120, 130)는 클라우드 컴퓨팅 환경에서의 각 컴퓨팅 노드들이다. 피어 노드(120)는 서버(110) 및 다른 인접한 피어 노드를 통해 신규 가상머신 이미지를 다운로드 받을 수 있다. 이에 대해서는 하기에서 관련 도면을 참조하여 보다 상세히 설명하기로 한다.
도 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
이미 전술한 바와 같이, 메타파일에는 신규 가상머신 이미지에 대한 다양한 정보를 포함하고 있으며, 특히 신규 가상머신 이미지의 블록에 대한 해시 테이블과, 가상머신 이미지의 블록의 오프셋 확인을 위한 블록의 사이즈를 포함할 수 있다. 이외에도 메타파일에는 신규 가상머신 이미지에 대한 다양한 정보들이 저장될 수 있음은 당연하다.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
보다 상세하게, 제1 피어 노드는 제1 피어 노드가 이미 보유하고 있는(즉, 저장하고 있는) 가상머신 이미지들에 대한 정보(가상머신 이미지를 식별할 수 있는 식별정보)를 서버(110)로 전송한다.In more detail, the first peer node sends to the
이에 따라, 서버(110)는 제1 피어 노드로부터 수신된 기보유한 가상머신 이미지들에 대한 정보를 이용하여 제1 피어 노드가 보유하고 있는 가상머신 이미지들을 확인한다.Accordingly, the
이어, 서버(110)는 제1 피어 노드에 대응하여 확인된 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받기 희망하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인한 후 해당 가상 유사한 가상머신 이미지를 식별할 수 있는 정보(유사 이미지 정보)를 제1 피어 노드로 전송한다. 여기서, 유사 이미지 정보는 제1 피어 노드가 보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지에 대한 식별정보일 수 있다.Then, the
이미 전술한 바와 같이, 서버(110)는 각 가상머신 이미지들간의 유사도를 도출한 후 유사도 테이블에 저장하고 있다. 따라서, 서버(110)는 유사도 테이블을 참조하여 제1 피어 노드가 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받기 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 확인하여 이를 식별할 수 있는 정보(유사 이미지 정보)를 제1 피어 노드로 전송할 수 있다.As described above, the
예를 들어, 제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
이어, 서버(110)는 제1 피어 노드가 전송한 제1 가상머신 이미지, 제2 가상머신 이미지 및 제5 가상머신 이미지에 대한 간략 정보를 이용하여 제1 피어 노드가 기보유한 가상머신 이미지를 확인한다. 이후, 서버(110)는 제1 피어 노드가 기보유한 제1 가상머신 이미지, 제2 가상머신 이미지 및 제5 가상머신 이미지들 중 신규 가상머신 이미지와 유사도가 가장 높은 이미지를 확인한 후 이를 제1 피어 노드에게 알린다.Next, the
즉, 서버(110)는 제1 피어 노드가 기보유한 가상머신 이미지들 중 제1 피어 노드가 다운로드 받고자 하는 신규 가상머신 이미지와 가장 유사도가 높은 가상머신 이미지 정보를 파악하여 제1 피어 노드로 전송한다.That is, the
단계 320에서 제1 피어 노드는 서버(110)로부터 수신된 유사 이미지 정보에 대응하여 기보유한 가상머신 이미지들 중 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 설정한 후, 참조 가상머신 이미지와 신규 가상머신 이미지의 메타 파일을 참조하여 동일한 블록의 위치에 동일한 해시값을 가지는 블록을 일치하는 블록으로 결정한다. 메타 파일에는 블록의 사이즈와 해시 테이블을 포함하고 있다. 따라서, 서버(110)는 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일의 블록 사이즈와 해시 테이블을 참조하여 참조 가상머신 이미지와 신규 가상머신 이미지의 각 블록의 오프셋을 확인한 후 각 블록의 해시값이 동일한지 여부를 판단하여 두 가상머신 이미지(참조 가상머신 이미지와 신규 가상머신 이미지)간의 동일한 블록을 검색할 수 있다.In
이에 따라 일치하는 블록(즉, 중복 블록)을 확인한 후 서버(110)는 참조 가상머신 이미지의 일치하는 블록(즉, 중복 블록)의 데이터를 신규 가상머신 이미지의 대응하는 블록 위치에 복제한다. 이와 같은 과정을 본 발명의 일 실시예에서는 인터 블록 중복 제거(inter-block duplication)이라 칭하기로 한다. 인터 블록 중복 제거는 도 10의 3과정과 같이, 자신이 기보유하고 있는 가상머신 이미지 파일을 이용하여 다운로드받을 신규 가상머신 이미지와 중복되는 블록을 복제하여 이용하는 과정을 의미한다.Accordingly, after confirming the matching block (i.e., redundant block), the
예를 들어, 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일을 확인한 결과, 참조 가상머신 이미지와 신규 가상머신 이미지의 제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
이때, 제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
도 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
또한, 요청은 제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
이에 따라, 단계 515에서 제2 피어 노드는 요청에 따른 특정 블록이 제1 피어 노드에서 이미 확보한 블록들과 중복되는지 여부를 확인한다.Accordingly, in
만일 제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
도 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
단계 610에서 서버(110)는 신규 가상머신 이미지에 대한 메타파일을 생성한다. 여기서, 신규 가상머신 이미지의 메타파일은 신규 가상머신 이미지의 블록의 크기, 블록의 해시값을 기록한 해시 테이블을 포함할 수 있다. 물론, 신규 가상머신 이미지의 메타파일은 해당 신규 가상머신 이미지를 식별할 수 있는 식별정보, 버전정보 등과 같은 신규 가상머신 이미지를 설명하기 위한 다양한 정보를 더 포함할 수 있음은 당연하다.In
이외에도, 메타파일은 블록의 해시값을 저장한 해시 테이블을 이용하여 생성된 블룸 필터의 결과값을 더 포함할 수 있다.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
예를 들어, 서버(110)는 신규 가상머신 이미지와 기저장된 가상머신 이미지들간의 메타파일에 저장된 블룸 필터의 결과값을 비교하여 유사도를 도출할 수 있다.For example, the
우선, 서버(110)는 신규 가상머신 이미지와 기저장된 가상머신 이미지들간의 메타파일에 저장된 블룸 필터의 결과값을 이용하여 실제 사용한 벡터의 수를 도출한다. 이는 이미 전술한 바와 같이, 수 1을 이용하여 도출할 수 있다.First, the
이어, 서버(110)는 신규 가상머신 이미지에 대응하는 블룸 필터의 벡터의 수 중 기저장된 가상머신 이미지들에 대응하는 블룸 필터의 실제 사용된 벡터와 일치하는 수의 백분율을 도출하여 유사도를 도출할 수 있다.Next, the
이는 이미 전술한 바와 같이, 수 2를 참조하여 도출될 수 있다.This can be derived with reference to the
이와 같이, 신규 가상머신 이미지와 기저장된 모든 가상머신 이미지들간의 유사도를 도출하여 별도의 테이블에 저장할 수 있다.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
이어, 단계 625에서 서버(110)는 제1 피어 노드로부터 당해 제1 피어 노드가 기보유하고 있는 가상머신 이미지에 대한 정보(예를 들어, 식별정보)를 수신한다.Then, in
단계 630에서 서버(110)는 제1 피어 노드로부터 수신된 가상머신 이미지에 대한 정보(예를 들어, 식별정보)에 기초하여 제1 피어 노드가 보유한 가상머신 이미지를 확인한 후 제1 피어 노드가 기보유한 가상머신 이미지들 중 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 유사 이미지 정보를 제1 피어 노드로 전송한다.In
이에 따라, 제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
이하, 서버에서의 피어 노드의 요청에 따라 특정 가상머신 이미지에 대한 특정 블록을 배포하는 방법은 도 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
통신부(710)는 피어 노드와 데이터를 송수신하는 기능을 한다. The
등록부(715)는 신규 가상머신 이미지를 등록받기 위한 수단이다. 등록부(715)는 신규 가상머신 이미지를 등록받아 파일 저장부(725)에 저장할 수 있다.The
계산부(720)는 신규 가상머신 이미지와 서버(110)에 기저장된 가상머신 이미지간의 유사도를 도출하여 저장하는 기능을 한다.The
예를 들어, 계산부(720)는 두 가상머신 이미지의 메타파일에 저장된 블룸 필터의 결과값을 비교하여 유사도를 도출할 수 있다. 이는 이미 전술한 바와 동일하므로 중복되는 설명은 생략하기로 한다.For example, the
파일 저장부(725)는 가상머신 이미지를 저장, 관리하는 기능을 한다.The
메타파일 생성부(730)는 신규 가상머신 이미지에 대한 메타파일을 생성하는 기능을 한다. The
예를 들어, 메타파일 생성부(730)는 신규 가상머신 이미지에 대한 식별정보, 블록의 크기, 각 블록의 해시값에 대한 해시 테이블, 해시 테이블의 각 블록의 해시값을 이용한 블룸 필터를 적용한 필터 결과값을 포함하도록 메타파일을 생성할 수 있다. 물론, 메타파일 생성부(730)는 이외에도 신규 가상머신 이미지에 대한 다양한 정보를 더 포함할 수도 있다.For example, the
유사도 확인부(735)는 피어 노드로부터 보유하고 있는 가상머신 이미지에 대한 정보가 수신되면, 피어 노드가 기보유한 가상머신 이미지를 확인한 후 피어 노드가 다운로드를 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지에 대한 정보(유사성 정보)를 확인하여 피어 노드로 제공하는 기능을 한다.When the information about the virtual machine image held from the peer node is received, the
배포부(740)는 피어 노드로부터 신규 가상머신 이미지 또는 특정 가상머신 이미지의 블록 다운로드가 요청되면, 해당 블록에 대한 해시값 또는 블록(데이터)를 전송하는 기능을 한다.The
예를 들어, 배포부(740)는 피어 노드로부터 신규 가상머신 이미지 또는 특정 가상머신 이미지에 대해 다운로드 요청된 블록이 피어 노드에서 이미 확보한 신규 가상머신 이미지 또는 특정 가상머신 이미지의 블록과 중복되는 경우 해당 요청한 블록에 대한 해시값을 전송하도록 제어할 수 있다.For example, the distributing
또한, 배포부(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
메모리(745)는 본 발명의 일 실시예에 따른 서버(110)에서 가상머신 이미지를 등록, 관리하거나 유사도를 도출하기 위해 필요한 다양한 알고리즘, 이 과정에서 파생된 다양한 데이터 등을 저장하는 기능을 한다.The
제어부(750)는 본 발명의 일 실시예에 따른 서버(110)의 내부 구성 요소들(예를 들어, 통신부(710), 등록부(715), 계산부(720), 파일 저장부(725), 메타파일 생성부(730), 유사도 확인부(735), 배포부(740) 및 메모리(745) 등)을 제어하는 기능을 한다.The
또한, 제어부(750)는 피어 노드로부터의 신규 가상머신 이미지 또는 특정한 가상머신 이미지의 다운로드 요청에 따라 그에 따른 메타파일을 검색하여 전송하도록 제공하도록 제어하는 기능을 한다.
In addition, the
도 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
통신부(810)는 다른 피어 노드 또는 서버(110)와 데이터를 송수신하는 기능을 한다.The
유사 이미지 확인부(815)는 신규 가상머신 이미지의 다운로드를 위해, 당해 피어 노드가 기보유한 가상머신 이미지의 정보(가상머신 이미지 정보)를 서버(110)로 전송하고, 서버(110)로부터 유사 이미지 정보를 획득하는 기능을 한다.The similar
유사 이미지 확인부(815)는 서버(110)를 통해 전송된 유사 이미지 정보에 기초하여 기보유한 가상머신 이미지들 중 피어 노드가 다운로드하기 원하는 신규 가상머신 이미지와 가장 유사한 가상머신 이미지를 참조 가상머신 이미지로 설정하는 기능을 한다.The similar
가상머신 이미지 다운로드부(820)는 참조 가상머신 이미지와 신규 가상머신 이미지의 메타파일을 참조하여 두 가상머신 이미지들간의 일치하는 블록을 확인하여 피어 노드 내부적으로 일치하는 블록의 데이터를 신규 가상머신 이미지의 대응하는 블록 위치에 복제하는 기능을 한다.The virtual machine
또한, 가상머신 이미지 다운로드부(820)는 신규 가상머신 이미지의 블록들 중 복제되지 않은 블록을 인접한 다른 피어 노드 또는 서버(110)로부터 다운로드 받는다.In addition, the virtual machine
이때, 가상머신 이미지 다운로드부(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
이어, 가상머신 이미지 다운로드부(820)는 신규 가상머신 이미지의 각 블록을 확인하여 미싱블록을 검색한 후, 미싱블록의 해시값과 일치하는 다른 블록의 데이터를 해당 미싱블록에 복제하는 기능을 한다.The virtual machine
본 발명의 일 실시예에서 미싱블록은 블록의 데이터값과 해시값을 모두 가지고 있지 않고, 해시값만 기록된 블록일 수 있다.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
프로세서(830)는 본 발명의 일 실시예에 따른 피어 노드의 내부 구성 요소들(예를 들어, 통신부(810), 유사 이미지 확인부(815), 가상머신 이미지 다운로드부(820), 메모리(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
도 9에서 통신부(910), 메모리(920), 프로세서(925)의 구성은 도 8에서 설명한 통신부(810), 메모리(825) 및 프로세서(830)와 동일하므로 중복되는 설명은 생략하기로 한다.9, the configuration of the
배포부(915)는 다른 피어 노드로부터 타겟 가상머신 이미지의 특정 블록에 대한 전송이 요청되면, 해당 특정 블록에 대한 해시값 또는 데이터를 전송하는 기능을 한다.The
예를 들어, 다른 피어 노드에서 전송된 블록 인덱스에 기초하여 특정 블록이 다른 피어 노드가 확보한 블록 중 어느 하나와 중복되는 블록이면, 배포부(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
한편, 본 발명의 실시예에 따른 클라우드 컴퓨팅에서 중복제거를 이용한 가상머신 이미지 공유 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다. 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.
상기 메타파일은 상기 신규 가상머신 이미지의 각 블록에 대한 크기, 상기 각 블록에 대한 해시값을 저장한 해시테이블을 포함하는 것을 특징으로 하는 가상머신 이미지 다운로드 방법.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.
상기 (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.
상기 (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.
상기 (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.
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.
상기 가상머신 이미지 다운로드부는,
상기 참조 가상머신 이미지의 메타파일과 상기 신규 가상머신 이미지의 메타파일에서 각 블록의 크기 및 해시테이블을 이용하여 상기 참조 가상머신 이미지와 상기 신규 가상머신 이미지간의 일치하는 블록을 찾고,
상기 일치하는 블록의 데이터를 대응하는 상기 신규 가상머신 이미지의 블록 위치에 복제하는 것을 특징으로 하는 피어 노드.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.
상기 신규 가상머신 이미지의 블록들을 순차적으로 스캔하여 해시값만 기록된 미싱블록을 검색하고, 상기 검색된 미싱블록의 해시값을 이용하여 동일한 블록을 검색한 후 검색된 동일한 블록의 데이터를 상기 미싱블록으로 복제하는 미싱파트 확인부를 더 포함하는 피어 노드.
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.
신규 가상머신 이미지의 등록에 따라 상기 신규 가상머신 이미지의 식별정보, 블록 사이즈, 블록의 해시값에 대한 해시테이블 및 상기 해시테이블을 이용한 블룸 필터를 적용한 필터 결과값을 포함하는 메타 파일을 생성하는 메타파일 생성부; 및
상기 메타 파일에 포함된 필터 결과값을 이용하여 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지들간의 유사도를 도출하여 유사도 테이블을 저장하는 계산부를 더 포함하는 서버.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.
상기 유사도는 상기 신규 가상머신 이미지와 상기 서버에 기등록된 각 가상머신 이미지의 메타파일에 포함된 필터 결과값에서 일치되는 비율에 따라 도출되는 것을 특징으로 하는 서버.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.
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)
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 |
-
2014
- 2014-11-18 KR KR1020140161003A patent/KR101620219B1/en not_active IP Right Cessation
Patent Citations (2)
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 |