KR101600717B1 - P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 - Google Patents
P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 Download PDFInfo
- Publication number
- KR101600717B1 KR101600717B1 KR1020140173391A KR20140173391A KR101600717B1 KR 101600717 B1 KR101600717 B1 KR 101600717B1 KR 1020140173391 A KR1020140173391 A KR 1020140173391A KR 20140173391 A KR20140173391 A KR 20140173391A KR 101600717 B1 KR101600717 B1 KR 101600717B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash
- virtual machine
- node
- operating system
- machine operating
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 P2P 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치를 개시한다. 본 발명에 따르면, 이미지 서버와 네트워크를 통해 연결된 피어 노드(제1 노드)가 P2P 방식으로 가상머신 운영체제 이미지를 다운로드 하는 방법으로서, (a) 상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터 및 하나 이상의 트래커 URL을 수신하는 단계-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-; (b) 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하는 단계; (c) 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 단계; 및 (d) 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하는 단계를 포함하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드 방법이 제공된다.
Description
본 발명은 P2P 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치에 관한 것으로서, 보다 상세하게는 P2P 방식으로 구성된 클라우드 데이터 센터에서 가상머신 인스턴트들이 가상머신 운영체제 이미지의 공통 부분을 공유하는 방법 및 장치에 관한 것이다.
일반적인 Infrastructure as a service(Iaas)에서 가상머신 이미지는 특정한 스토리지 노드(storage node)에 저장된다. 여기서 말하는 이미지는 가상머신 파일 시스템을 아우르는 운영체제 템플릿이다. 가상머신 인스턴트는 컴퓨팅 노드(computing node)에 이미지를 등록함으로써 구동된다. 사용자는 가상머신 인스턴트에 사용할 이미지와 인스턴트 type를 선택할 수 있다. 인스턴트 type는 인스턴트에 할당될 물리적 자원(CPU, RAM, DISK 등)을 상세화 한 것을 말한다. 사용자가 활용하기를 원하는 가상머신 인스턴트에 대한 상세화 작업이 끝나면, 가상머신 이미지 배포 기법에 따라 스토리지 노드에서부터 컴퓨팅 노드로 이미지를 전송한다. 전송 후 가상머신은 컴퓨팅 노드위에서 부팅된다. 주요 클라우드 서비스의 가상머신 이미지 배포 기법은 C/S(client-server) 방식을 이용하는데, 이 방식은 대규모의 가상머신 배포 시 성능 병목 현상이 발생하여, 가상머신 인스턴트 배포 시간이 지연된다. 성능저하 문제를 해결하기 위한 종래 기술에는 멀티캐스트, 트리 토폴로지, 메쉬 토폴로지 등 데이터센터 네트워크를 위한 다양한 토폴로지 대안이 연구 되었으며, P2P 컨텐트 공유 기법을 차용한 대안도 연구 되었다.
P2P 컨텐트 공유 기법을 차용한 종래 기술을 보면 가상머신 이미지를 블록 단위로 분할하여 BitTorrent 유사 프로토콜을 이용하여 배포함으로써 가상머신 배포 시간을 단축하는 기법으로 기본형인 독자 이미지 배포 기법과 이미지간의 유사성을 이용하는 교차 이미지 배포 기법이 제안 되었다.
이미지 파일간에는 동일한 Kernel, Webserver, database, File Server 등을 사용하고 있는 경우가 많아 상당한 높은 유사성을 보인다. 이때 이러한 유사성을 이용하여 두 이미지 파일 간에 공통 부분에 대해 별도의 P2P 공유를 할 수 있도록 하여 전송 효율을 높이는 기법이 교차 이미지 배포 기법이다. 하지만 종래 교차 이미지 공유 기법에서는 이미지간의 유사성을 단순히 공통 스웜을 선정하는 문제에만 치중하고 있어 P2P 프로토콜 자체에서 이미지간의 유사성을 활용하지 못한다.
가상머신 교차 이미지 배포는 블록 단위로 배포가 이루어져야 한다. 이미지 파일은 고정적인 크기 또는 가변적인 크기의 블록으로 분할될 수 있으며, 분할된 블록은 SHA-1, MD5와 같은 해시 함수를 통해 고유의 해시 값을 갖게 된다. 이러한 방법으로 인접한 가상머신 이미지 간에 동일한 블록은 쉽게 발견될 수 있다. 하지만 BitTorrent를 이용한 배포 방식에서는 각 블록에 대한 인덱스를 정보를 이용해 동일한 블록을 판별하는데, 교차 이미지간에는 동일한 블록이 서로 인덱스가 다르기 때문에, 동일한 블록을 판별하기 어려운 문제점이 있다.
한국 공개특허공보 제10-2014-701416호(가상머신 관리 방법 및 이를 위한 장치)는 단말에서 복수의 가상머신을 운용하는 경우에 효율적인 관리 방안을 제공하는 것이나, 효율적으로 가상머신 운영체제 이미지 간 공통 부분에 대한 공유에 관한 내용을 언급하고 있지 않다.
상기한 종래기술의 문제점을 해결하기 위해, 본 발명은 가상머신 인스턴트 간에 가상머신 운영체제 이미지의 공통 부분을 빠르게 탐색하여 다운로드 할 수 있는 P2P 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치를 제안하고자 한다.
상기한 기술적 과제를 해결하기 위해, 본 발명의 바람직한 일 실시예에 따르면, 이미지 서버와 네트워크를 통해 연결된 피어 노드(제1 노드)가 P2P 방식으로 가상머신 운영체제 이미지를 다운로드 하는 방법으로서, (a) 상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터 및 하나 이상의 트래커 URL을 수신하는 단계-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-; (b) 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하는 단계; (c) 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 단계; 및 (d) 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하는 단계를 포함하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드 방법이 제공된다.
상기 하나 이상의 트래커 URL은 상기 제1 노드가 자신과 동일한 스웜 또는 다른 스웜에 속하는 제2 노드와 연결되도록 할 수 있다.
상기 하나 이상의 트래커 URL는 상기 제1 가상머신 운영체제 이미지와 미리 설정된 값 이상의 유사도를 갖는 이미지를 갖는 노드를 포함하는 스웜에 상응하는 트래커 URL일 수 있다.
상기 제1 해시포레스트 정보는 상기 제1 가상머신 운영체제 이미지를 구성하는 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값 및 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 하나 이상의 상위 부모 해시값을 포함할 수 있다.
상기 (c) 단계는 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값을 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하는 단계를 포함할 수 있다.
상기 방법은 (e) 상기 공통 부분에 해당하는 데이터 블록을 상기 제2 노드로부터 수신하는 경우, 상기 수신된 데이터 블록의 해시값을 상기 제1 해시포레스트 정보에 업데이트하는 단계를 더 포함할 수 있다.
상기 제2 해시포레스트 정보는 상기 제2 노드에서 블룸 필터(Bloom filter)를 통해 압축된 블룸필터 비트 벡터일 수 있다.
본 발명의 다른 측면에 따르면, 네트워크를 통해 복수의 노드와 연결되는 이미지 서버에서 P2P 방식의 가상머신 운영체제 이미지의 다운로드를 제어하는 방법으로서, (a) 제1 가상머신 운영체제 이미지를 다운로드하고자 하는 제1 노드의 요청을 수신하는 단계; 및 (b) 상기 제1 노드로 상기 제1 가상머신 운영체제 이미지에 상응하는 메타데이터를 전송하는 단계를 포함하되, 상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함하는 P2P 방식의 가상머신 운영체제 이미지의 다운로드 제어 방법이 제공된다.
본 발명의 또 다른 측면에 따르면, 상기한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 또 다른 측면에 따르면, 이미지 서버와 네트워크를 통해 연결되며 P2P 방식의 가상머신 운영체제 이미지를 다운로드 하는 피어 노드 장치로서, 상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터를 수신하고-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-, 상기 이미지 서버로부터 수신된 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하는 통신부; 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 해시포레스트 비교부; 및 상기 통신부가 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하도록 하는 제어부를 포함하는 피어 노드 장치가 제공된다.
본 발명의 또 다른 측면에 따르면, 네트워크를 통해 복수의 노드와 연결되며 P2P 방식의 가상머신 운영체제 이미지의 다운로드를 제어하는 이미지 서버 장치로서, 제1 가상머신 운영체제 이미지를 다운로드하고자 하는 제1 노드의 요청을 수신하는 통신부; 및 상기 통신부를 통해 상기 제1 노드로 상기 제1 가상머신 운영체제 이미지에 상응하는 메타데이터가 전송되도록 제어하는 제어부를 포함하되, 상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함하는 이미지 서버 장치가 제공된다.
본 발명에 따르면, 해시포레스트와 트래커 URL을 통해 동일한 스웜 및 다른 스웜에 속하는 노드 간에도 가상머신 운영체제 이미지를 P2P 방식으로 공유할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 P2P 기반 가상머신 운영체제 이미지 분배 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 해시포레스트 정보의 구성 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 P2P 방식의 가상머신 운영체제 이미지 분배 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 제1 노드와 제2 노드 사이의 데이터 블록 다운로드 과정을 도시한 도면이다.
도 5는 본 실시예에 따른 P2P 방식의 가상머신 이미지 다운로드 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 서로 다른 스웜 간 가상머신 이미지 공유 과정을 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 이미지 서버의 상세 구성을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 노드의 상세 구성을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 해시포레스트 정보의 구성 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 P2P 방식의 가상머신 운영체제 이미지 분배 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 제1 노드와 제2 노드 사이의 데이터 블록 다운로드 과정을 도시한 도면이다.
도 5는 본 실시예에 따른 P2P 방식의 가상머신 이미지 다운로드 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 서로 다른 스웜 간 가상머신 이미지 공유 과정을 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 이미지 서버의 상세 구성을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 노드의 상세 구성을 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 P2P 기반 가상머신 운영체제 이미지 분배 시스템의 구성을 도시한 도면이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 시스템은 이미지 서버(100), 트래커(Tracker, 102) 및 복수의 피어 노드(104-1, 104-2, 가상 머신 인스턴트, 이하 '노드'라 함)를 포함할 수 있다.
이미지 서버(100)는 복수의 가상머신 운영체제 이미지 파일(이하, '가상머신 이미지'라 함)를 저장, 관리 및 이를 배포하는 기능을 한다. 여기서, 가상머신 이미지는 가상머신 실행을 위한 디스크 파일로 이해되어야 할 것이다.
이와 같은 가상머신 이미지는 기본적으로 운영체제(OS: operating system)에 기반하여 미들웨어나 애플리케이션을 추가하여 생성될 수 있다. 따라서, 가상머신 이미지는 동일한 운영체제하에서도 미들웨어 또는 애플리케이션의 추가에 따라 매우 다양하게 생성될 수 있다.
본 발명은 클라우드 컴퓨팅 환경을 기반으로 한다. 따라서, 클라우드 컴퓨팅 환경하에서 이미지는 각기 다른 운영체제나 운영체제의 다른 버전, 미들웨어나 미들웨어 버전, 애플리케이션이나 애플리케이션 버전에 따라 매우 다양하게 생성될 수 있다.
가상머신 이미지는 이미지 서버(100)에서 생성될 수도 있으며, 각 노드(104-1, 104-2)에 의해 생성될 수도 있다. 클라우드 컴퓨팅 환경에서 생성된 모든 가상머신 이미지는 신규 생성 시 이미지 서버(100)에 등록되어 관리된다.
이러한 가상머신 이미지가 서버(100)에 신규 등록되는 경우, 서버(100)는 신규 가상머신 이미지에 대한 메타데이터를 생성하고, 생성된 메타데이터에 기초하여 서버(100)에 저장된 다른 가상머신 이미지들과의 유사도(similairty)를 도출하여 테이블에 별도로 저장한다.
이미지의 메타데이터는 가상머신 이미지를 식별하기 위한 식별정보 및 가상머신 이미지의 해시포레스트(HashForest) 정보를 포함할 수 있다.
가상머신 이미지의 해시 포레스트 정보는 이하에서 상술될 것이다.
본 발명에 따른 가상머신 이미지의 배포는 P2P 방식으로 노드(104-1,104-2) 간 통신에 의해 이루어질 수 있다.
본 실시예에 따른 이미지 서버(100)는 가상머신 이미지를 다운로드 하고자 하는 제1 노드(104-1)의 요청에 따라 하나 이상의 다른 제2 노드(104-2)에 대한 제1 노드(104-1)로 트래커 URL을 전송한다. 여기서, 제2 노드(104-2)는 제1 노드(104-1)가 다운로드하고자 하는 가상머신 이미지와 유사한 가상머신 이미지를 보유하고 있는 노드일 수 있다. 상기한 URL을 통해 제1 노드(104-1)는 트래커(102)와 핸드쉐이킹을 수행하여 제2 노드(104-2)와 연결되며, 다른 제2 노드(104-2)로부터 가상머신 이미지의 적어도 일부를 다운로드할 수 있다.
본 실시예에 따르면, 상기한 제1 노드(104-1)는 다운로드하고자 하는 해시포레스트 정보와 제2 노드(104-2)가 보유한 해시포레스트 정보의 비교를 통해 다른 제2 노드(104-2)가 보유하고 있는 가상머신 이미지 내에 포함된 데이터 블록 중 자신이 원하는 가상머신 이미지와의 공통 부분만을 선택적으로 다운로드 할 수 있다.
본 발명의 바람직한 일 실시예에 따르면, 트래커(102)는 제1 노드(104-1)의 공통 부분의 다운로드는 동일한 가상머신 이미지를 공유하고 있는 단일 스웜(swam)에 상응하는 트래커일 수 있으나, 이에 한정됨이 없이 다른 가상머신 이미지를 갖는 다른 스웜(swam)에 상응하는 트래커일 수 있다.
이처럼 다른 스웜에 속하는 노드 간이 가상머신 이미지 공유 과정에 대해서는 이하에서 상세하게 설명될 것이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 해시포레스트 정보의 구성 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 가상머신 운영체제 이미지 파일은 고정 또는 가변적인 크기를 갖는 복수의 데이터 블록으로 구성된다.
이후, Merkle hash tree 구성 방법에 따라 인접한 자해시값들을 연접 계산하여 복수의 부모 해시값이 얻어진다.
부모 해시 값을 구성하는 계산식은 다음과 같다.
여기서,H(lchildnode)는 좌측 노드 자해시값, H(rchildnode)는 우측 노드 자해시값이다.
부모 해시값 역시 인접한 노드끼리 연접 계산되어 하나 이상의 상위 부모 해시값이 얻어진다. 이러한 방식으로 해시포레스트를 구성하게 되며, 이를 P2P 방식의 가상머신 이미지 다운로드 과정에서 이용하게 된다.
본 실시예에서와 같이 해시포레스트를 이용하면, P2P 방식의 가상머신 이미지 다운로드 과정에서, 피어간에 공통 해시 값을 가지는 노드가 상기 다른 위치에서 나타나더라도, 해당 노드 아래의 자노드들과 데이터블록이 동일하다는 사실을 이용할 수 있기 때문에, 해시리스트를 이용해 공유하는 방법에 비해 오버헤드가 더 적은 장점이 있다.
도 3은 본 발명의 바람직한 일 실시예에 따른 P2P 방식의 가상머신 운영체제 이미지 분배 과정을 설명하기 위한 도면이다.
도 3은 제1 노드(Peer 1)가 이미지 서버(100) 및 트래커(102)로부터 메타데이터를 획득하여 가상머신 운영체제 이미지(Cent 0S 6.1, 이하, '제1 가상머신 이미지'라 함)를 다운로드 하는 과정을 도시한 것이며, 제2 노드(Peer 2)가 보유한 유사한 이미지인 Cent OS 6.2(이하, '제2 가상머신 이미지'라 함)의 공통 부분을 P2P 방식으로 다운로드 하는 과정을 도시한 것이다.
도 3을 참조하면, 제1 노드(104-1)는 이미지 서버(100)로부터 다운로드하고자 하는 가상머신 이미지(제1 가상머신 이미지)의 메타데이터를 획득한다(단계 300).
상기한 메타데이터는 다운로드하고자 하는 제1 가상머신 이미지의 해시포레스트 정보를 포함한다.
또한, 제1 노드(104-1)는 이미지 서버(100)로부터 복수의 트래커 URL을 획득한다(단계 302).
복수의 트래커 URL은 가상머신 운영체제 이미지를 다운로드하고자 하는 노드가 자신이 속한 스웜 또는 다른 스웜에 속하는 노드들과 연결되도록 하기 위한 정보이다. 이미지 서버(100)는 제1 가상머신 이미지와 유사도가 높은 가상머신 이미지를 보유하는 노드들의 스웜에 상응하는 하나 이상의 트래커들의 URL을 전송한다.
상기한 바와 같이, 제1 노드(104-1)는 복수의 트래커 URL을 통해 자신이 속한 스웜 또는 다른 스웜에 속하는 제2 노드(104-2)와 연결되어, 해시포레스트 정보를 통해 제2 노드(104-2)로부터 필요한 데이터 블록을 다운로드한다(단계 304).
도 4는 본 발명의 일 실시예에 따른 제1 노드와 제2 노드 사이의 데이터 블록 다운로드 과정을 도시한 도면이다.
도 3과 같은 과정을 통해 제1 노드(104-1, 수신 노드)는 이미지 서버(100)로부터 수신한 제1 해시포레스트 정보를 저장한다(단계 400).
이후, 제1 노드(104-1)는 제2 노드(104-2, 송신 노드)로 제2 노드가 보유한 가상머신 이미지의 해시포레스트 정보(제2 해시포레스트 정보)를 요청한다(단계 402).
제2 노드(104-2)는 제2 해시포레스트 정보를 압축하여 제1 노드(104-1)로 전송한다(단계 404).
여기서, 제2 해시포레스트 정보의 압축은 블룸 필터(Bloom filter)를 통해 이루어질 수 있으며, 제2 노드(104-2)가 제1 노드(104-1)로 전송하는 것은 블룸필터 비트 벡터(Bloom filter bit vector)일 수 있다.
제1 노드(104-1)는 이미지 서버(100)로부터 수신한 메타데이터에 포함된 제1 가상머신 이미지의 해시포레스트 정보(제1 해시포레스트 정보)와 제2 해시포레스트 정보를 비교하여 공통 부분을 탐색한다(단계 406).
도 2에서 설명한 바와 같이, 해시포레스트 정보는 하나 이상의 상위 부모 해시값, 부모 해시값 및 그 하위에 속하는 복수의 자해시값을 포함하고 있다.
단계 406에서, 제1 노드(104-1)는 제1 및 제2 해시포레스트 정보 각각의 하나 이상의 상위 부모 해시값, 복수의 부모 해시값, 및 복수의 자해시값의 순차적인 비교를 통해 공통 부분을 탐색한다.
공통 부분이 탐색된 경우, 제1 노드(104-1)는 공통 부분에 해당하는 데이터 블록을 제2 노드(104-2)로 요청한다(단계 408).
도 5는 본 실시예에 따른 P2P 방식의 가상머신 이미지 다운로드 과정을 설명하기 위한 도면이다.
도 5와 같이 제1 노드(104-1)는 트리구성을 완료하지 못한 블록인 C 및 D를 제2 노드(104-2)로 요청한다.
제1 노드(104-1)는 데이터 블록의 다운로드가 완료되는 경우 데이터 블록을 제1 가상머신 이미지에 업데이트하고, 데이터 블록을 포함하는 해시를 제1 해시포레스트 정보에 업데이트한다(단계 410).
도 6은 본 발명의 일 실시예에 따른 서로 다른 스웜 간 가상머신 이미지 공유 과정을 도시한 도면이다.
도 6에 도시된 바와 같이, 제1 노드(104-1)는 자신이 속한 스웜(스웜1)에 상응하는 트래커(102-1)뿐만 아니라, 스웜2에 속하는 트래커(102-2)와의 핸드쉐이킹 과정을 통해 다른 스웜에 속하는 제2 노드(104-2)로부터 가상머신 이미지의 공통 부분을 다운로드 할 수 있다.
이와 같이 본 실시예에 따른 가상머신 이미지의 다운로드 과정은 다른 스웜에 속하는 노드 간에서도 이루어질 수 있다는 점에서 교차 P2P 협업 과정으로 정의될 수 있다.
도 7은 본 발명의 바람직한 일 실시예에 따른 이미지 서버의 상세 구성을 도시한 도면이다.
도 7에 도시된 바와 같이, 본 실시예에 따른 이미지 서버(100)는 통신부(700), 이미지 등록부(702), 메타데이터 생성부(704), 유사도 계산부(706) 및 제어부(708)를 포함할 수 있다.
통신부(700)는 노드와 데이터를 송수신한다. 특히 통신부(700)는 노드의 요청에 따라 가상머신 이미지 다운로드를 위한 메타데이터 및 복수의 트래커 URL를 전송한다.
이미지 등록부(702)는 신규 가상머신 운영체제 이미지를 등록하여 저장부에 저장한다.
메타데이터 생성부(704)는 신규 가상머신 운영체제 이미지에 대한 식별정보, 블록크기, 블록의 해시값 등에 대한 정보를 생성한다.
특히 메타데이터 생성부(704)는 새로 등록되는 가상머신 운영체제 이미지를 구성하는 개별 데이터 블록에 대한 해시값을 계산하여 해시트리로 구성되는 해시포레스트 정보를 생성한다.
전술한 바와 같이, 해시포레스트 정보는 데이터 블록에 대한 해시값, 연접하는 데이터 블록에 대한 부모 해시값을 포함할 수 있다.
유사도 계산부(706)는 신규 가상머신 이미지와 기저장된 가상머신 이미지간의 유사도를 계산한다. 유사도 계산은 다양한 방식으로 이루어질 수 있으며, Bloom filter의 필터 결과값에서 비트값이 '1'인 키의 개수를 이용하여 이루어질 수 있다.
제어부(708)는 가상머신 운영체제 이미지를 다운로드하고자 하는 노드의 요청이 있는 경우, 다운로드하고자 하는 가상머신 이미지와 유사도가 높은 가상머신 이미지에 대한 메타데이터가 통신부(600)를 통해 요청한 노드로 전송되도록 제어한다.
도 8은 본 발명의 일 실시예에 따른 노드의 상세 구성을 도시한 도면이다.
도 8을 참조하면, 본 실시예에 따른 노드는 통신부(800), 해시포레스트 비교부(802), 업데이트부(804) 및 제어부(806)를 포함할 수 있다.
통신부(800)는 이미지 서버(100) 또는 다른 노드와 데이터를 송수신하는 기능을 수행한다. 통신부(800)는 이미지 서버(100)로부터 다운로드하고자 하는 가상머신 이미지의 메타데이터 및 복수의 트래커 URL을 수신한다.
해시포레스트 비교부(802)는 다운로드하고자 하는 가상머신 이미지에 대한 제1 해시포레스트 정보와 다른 노드로부터 수신한 제2 해시포레스트 정보를 비교한다.
상기한 비교 과정을 통해 노드는 다운로드하고자 하는 가상머신 이미지와 다른 노드가 보유한 가상머신 이미지 사이에 공통 부분을 탐색할 수 있다.
제어부(806)의 제어에 따라 통신부(800)는 공통 부분에 해당하는 데이터 블록을 다른 노드에 요청하며, 다른 노드가 전송하는 데이터 블록을 수신한다.
업데이트 검사부(804)는 다른 노드로부터의 수신된 데이터 블록의 해시값을 해시포레스트 정보에 업데이트한다.
제어부(806)는 노드 내부에 포함된 통신부(800), 해시포레스트 비교부(802) 및 업데이트부(804)를 제어한다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
Claims (13)
- 이미지 서버와 네트워크를 통해 연결된 피어 노드(제1 노드)가 P2P 방식으로 가상머신 운영체제 이미지를 다운로드 하는 방법으로서,
(a) 상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터 및 하나 이상의 트래커 URL을 수신하는 단계-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-;
(b) 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하는 단계;
(c) 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 단계; 및
(d) 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하는 단계
를 포함하되,
상기 제1 해시포레스트 정보는 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값, 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 상위 하나 이상의 상위 부모 해시값을 포함하고,
상기 (c) 단계는 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법. - 제1항에 있어서,
상기 하나 이상의 트래커 URL은 상기 제1 노드가 자신과 동일한 스웜 또는 다른 스웜에 속하는 제2 노드와 연결되도록 하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법. - 제2항에 있어서,
상기 하나 이상의 트래커 URL는 상기 제1 가상머신 운영체제 이미지와 미리 설정된 값 이상의 유사도를 갖는 이미지를 갖는 노드를 포함하는 스웜에 상응하는 트래커 URL인 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법. - 삭제
- 삭제
- 제1항에 있어서,
(e) 상기 공통 부분에 해당하는 데이터 블록을 상기 제2 노드로부터 수신하는 경우, 상기 수신된 데이터 블록의 해시값을 상기 제1 해시포레스트 정보에 업데이트하는 단계를 더 포함하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법. - 제1항에 있어서,
상기 제2 해시포레스트 정보는 상기 제2 노드에서 블룸 필터(Bloom filter)를 통해 압축된 블룸 필터 비트 벡터인 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법. - 네트워크를 통해 복수의 노드와 연결되는 이미지 서버에서 P2P 방식의 가상머신 운영체제 이미지의 다운로드를 제어하는 방법으로서,
(a) 제1 가상머신 운영체제 이미지를 다운로드하고자 하는 제1 노드의 요청을 수신하는 단계; 및
(b) 상기 제1 노드로 상기 제1 가상머신 운영체제 이미지에 상응하는 메타데이터 및 하나 이상의 트래커 URL을 전송하는 단계를 포함하되,
상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값 및 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 하나 이상의 상위 부모 해시값을 포함하는 제1 해시포레스트 정보를 포함하며,
상기 제1 노드는 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하여 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하되, 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하여 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드로 요청하는 P2P 방식의 가상머신 운영체제 이미지의 다운로드 제어 방법. - 제8항에 있어서,
상기 (a) 단계에 선행하여,
미리 등록된 복수의 가상머신 운영체제 이미지에 대한 해시포레스트 정보를 생성하는 단계; 및
상기 복수의 가상머신 운영체제 이미지에 대한 유사도를 계산하는 단계를 포함하되,
상기 (b) 단계는 상기 제1 가상머신 운영체제 이미지와 미리 설정된 값 이상의 유사도를 갖는 이미지를 갖는 노드를 포함하는 스웜에 상응하는 상기 하나 이상의 트래커 URL를 상기 제1 노드로 전송하는 P2P 방식의 가상머신 운영체제 이미지의 다운로드 제어 방법. - 삭제
- 제1항 내지 제3항, 제6항 내지 제9항 중 어느 하나의 항에 따른 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
- 이미지 서버와 네트워크를 통해 연결되며 P2P 방식의 가상머신 운영체제 이미지를 다운로드 하는 피어 노드 장치로서,
상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터를 수신하고-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-, 상기 이미지 서버로부터 수신된 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2해시포레스트 정보를 수신하는 통신부;
상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 해시포레스트 비교부; 및
상기 통신부가 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하도록 하는 제어부를 포함하되,
상기 제1 해시포레스트 정보는 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값, 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 상위 하나 이상의 상위 부모 해시값을 포함하고,
상기 해시 포레스트 비교부는 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하는 피어 노드 장치. - 네트워크를 통해 복수의 노드와 연결되며 P2P 방식의 가상머신 운영체제 이미지의 다운로드를 제어하는 이미지 서버 장치로서,
제1 가상머신 운영체제 이미지를 다운로드하고자 하는 제1 노드의 요청을 수신하는 통신부; 및
상기 통신부를 통해 상기 제1 노드로 상기 제1 가상머신 운영체제 이미지에 상응하는 메타데이터 및 하나 이상의 트래커 URL이 전송되도록 제어하는 제어부를 포함하되,
상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값 및 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 하나 이상의 상위 부모 해시값을 포함하는 제1 해시포레스트 정보를 포함하며,
상기 제1 노드는 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하여 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하되, 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하여 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드로 요청하는 이미지 서버 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140173391A KR101600717B1 (ko) | 2014-12-04 | 2014-12-04 | P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140173391A KR101600717B1 (ko) | 2014-12-04 | 2014-12-04 | P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101600717B1 true KR101600717B1 (ko) | 2016-03-07 |
Family
ID=55540431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140173391A KR101600717B1 (ko) | 2014-12-04 | 2014-12-04 | P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101600717B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110023944A (zh) * | 2017-01-03 | 2019-07-16 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
GB2588817A (en) * | 2019-11-08 | 2021-05-12 | Advanced Risc Mach Ltd | Validating distributed source content |
WO2021089983A1 (en) * | 2019-11-08 | 2021-05-14 | Arm Limited | Validating distributed source content |
CN112948052A (zh) * | 2021-02-23 | 2021-06-11 | 中国联合网络通信集团有限公司 | 跨数据中心的虚拟机迁移方法、数据中心及计算机介质 |
-
2014
- 2014-12-04 KR KR1020140173391A patent/KR101600717B1/ko active IP Right Grant
Non-Patent Citations (4)
Title |
---|
Jo?o Pedro Amaral Nunes, "Data Deduplication in BitTorrent"(2013.11.)* |
Joao Pedro Amaral Nunes, "Data Deduplication in BitTorrent"(2013.11.)* * |
Matthias Schmidt et al. "Efficient Distribution of Virtual Machines for Cloud Computing", 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing(2010.) * |
Matthias Schmidt et al. "Efficient Distribution of Virtual Machines for Cloud Computing", 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing(2010.)* |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110023944A (zh) * | 2017-01-03 | 2019-07-16 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
GB2588817A (en) * | 2019-11-08 | 2021-05-12 | Advanced Risc Mach Ltd | Validating distributed source content |
WO2021089983A1 (en) * | 2019-11-08 | 2021-05-14 | Arm Limited | Validating distributed source content |
GB2588817B (en) * | 2019-11-08 | 2022-02-16 | Advanced Risc Mach Ltd | Validating distributed source content |
CN112948052A (zh) * | 2021-02-23 | 2021-06-11 | 中国联合网络通信集团有限公司 | 跨数据中心的虚拟机迁移方法、数据中心及计算机介质 |
CN112948052B (zh) * | 2021-02-23 | 2023-10-13 | 中国联合网络通信集团有限公司 | 跨数据中心的虚拟机迁移方法、数据中心及计算机介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
JP4938074B2 (ja) | リソースの位置情報の要求方法、当該方法のためのユーザノードおよびサーバ | |
KR101600717B1 (ko) | P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 | |
JP2020102189A (ja) | データ処理用の方法、装置及びシステム | |
JPWO2013069329A1 (ja) | データ送受信システム | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
US11290433B2 (en) | Message-based database replication | |
US9479578B1 (en) | Randomized peer-to-peer synchronization of shared content items | |
US20120179778A1 (en) | Applying networking protocols to image file management | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
EP2817947A1 (en) | Method, apparatus, and system for resource sharing | |
US8984100B2 (en) | Data downloading method, terminal, server, and system | |
US10257272B2 (en) | Randomized peer-to-peer synchronization of shared content items | |
CN110795432B (zh) | 一种特征数据的检索方法、装置及存储介质 | |
US10225339B2 (en) | Peer-to-peer (P2P) network management system and method of operating the P2P network management system | |
CN118283059A (zh) | 镜像数据处理方法、dpu和系统 | |
Alikhan et al. | Dingo optimization based network bandwidth selection to reduce processing time during data upload and access from cloud by user | |
CN107613016B (zh) | 文件批量下载方法、客户端、分发服务器及系统 | |
JP6008964B2 (ja) | 情報処理システム、方法およびプログラム | |
JP2007272540A (ja) | データ配信方法及びデータ配信システム | |
CN111404936B (zh) | 文件转发系统及方法 | |
KR101436406B1 (ko) | P2p기반 업데이트 클라이언트, 서버 장치, 시스템 및 방법 | |
US10348828B2 (en) | Method and apparatus for optimizing data transfers utilizing machine learning | |
KR102503958B1 (ko) | 분산 네트워크 환경에서의 쿼리 배치 장치 및 그 방법 | |
CN103281395A (zh) | 一种基于客户端数量的数据片均分选择系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 5 |