KR101600717B1 - P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 - Google Patents

P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 Download PDF

Info

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
Application number
KR1020140173391A
Other languages
English (en)
Inventor
이춘화
이형석
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020140173391A priority Critical patent/KR101600717B1/ko
Application granted granted Critical
Publication of KR101600717B1 publication Critical patent/KR101600717B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture 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 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치{METHOD AND APPARATUS FOR DOWNLOAD VIRTUAL MACHINE OPERATING SYSTEM IMAGE}
본 발명은 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은 본 발명의 일 실시예에 따른 노드의 상세 구성을 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 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를 참조하면, 가상머신 운영체제 이미지 파일은 고정 또는 가변적인 크기를 갖는 복수의 데이터 블록으로 구성된다.
각 데이터 블록은 SHA-1, MD5와 같은 해시함수를 통해 고유의 해시값을 가지게 되며, 도 2를 참조하면, 이미지 파일을 구성하는 데이터 블록
Figure 112014118341209-pat00001
Figure 112014118341209-pat00002
의 해시값을 가진다.
또한, 데이터 블록 해시값
Figure 112014118341209-pat00003
은 해시트리의 가장 아래에 위치한 자해시값(child hash)이 된다.
이후, Merkle hash tree 구성 방법에 따라 인접한 자해시값들을 연접 계산하여 복수의 부모 해시값이 얻어진다.
부모 해시 값을 구성하는 계산식은 다음과 같다.
Figure 112014118341209-pat00004
여기서,H(lchildnode)는 좌측 노드 자해시값, H(rchildnode)는 우측 노드 자해시값이다.
도 2에서 데이터 블록의 해시
Figure 112014118341209-pat00005
의 부모 해시값은
Figure 112014118341209-pat00006
, 데이터 블록 해시
Figure 112014118341209-pat00007
의 부모 해시값은
Figure 112014118341209-pat00008
이다.
부모 해시값 역시 인접한 노드끼리 연접 계산되어 하나 이상의 상위 부모 해시값이 얻어진다. 이러한 방식으로 해시포레스트를 구성하게 되며, 이를 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. 이미지 서버와 네트워크를 통해 연결된 피어 노드(제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 방식의 가상머신 운영체제 이미지를 다운로드하는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 트래커 URL은 상기 제1 노드가 자신과 동일한 스웜 또는 다른 스웜에 속하는 제2 노드와 연결되도록 하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 트래커 URL는 상기 제1 가상머신 운영체제 이미지와 미리 설정된 값 이상의 유사도를 갖는 이미지를 갖는 노드를 포함하는 스웜에 상응하는 트래커 URL인 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    (e) 상기 공통 부분에 해당하는 데이터 블록을 상기 제2 노드로부터 수신하는 경우, 상기 수신된 데이터 블록의 해시값을 상기 제1 해시포레스트 정보에 업데이트하는 단계를 더 포함하는 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법.
  7. 제1항에 있어서,
    상기 제2 해시포레스트 정보는 상기 제2 노드에서 블룸 필터(Bloom filter)를 통해 압축된 블룸 필터 비트 벡터인 P2P 방식의 가상머신 운영체제 이미지를 다운로드하는 방법.
  8. 네트워크를 통해 복수의 노드와 연결되는 이미지 서버에서 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 방식의 가상머신 운영체제 이미지의 다운로드 제어 방법.
  9. 제8항에 있어서,
    상기 (a) 단계에 선행하여,
    미리 등록된 복수의 가상머신 운영체제 이미지에 대한 해시포레스트 정보를 생성하는 단계; 및
    상기 복수의 가상머신 운영체제 이미지에 대한 유사도를 계산하는 단계를 포함하되,
    상기 (b) 단계는 상기 제1 가상머신 운영체제 이미지와 미리 설정된 값 이상의 유사도를 갖는 이미지를 갖는 노드를 포함하는 스웜에 상응하는 상기 하나 이상의 트래커 URL를 상기 제1 노드로 전송하는 P2P 방식의 가상머신 운영체제 이미지의 다운로드 제어 방법.
  10. 삭제
  11. 제1항 내지 제3항, 제6항 내지 제9항 중 어느 하나의 항에 따른 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  12. 이미지 서버와 네트워크를 통해 연결되며 P2P 방식의 가상머신 운영체제 이미지를 다운로드 하는 피어 노드 장치로서,
    상기 이미지 서버로부터 다운로드하고자 하는 제1 가상머신 운영체제 이미지에 대한 메타데이터를 수신하고-상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 데이터 블록에 대한 해시값으로 구성되는 제1 해시포레스트 정보를 포함함-, 상기 이미지 서버로부터 수신된 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2해시포레스트 정보를 수신하는 통신부;
    상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하는 해시포레스트 비교부; 및
    상기 통신부가 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드에 요청하도록 하는 제어부를 포함하되,
    상기 제1 해시포레스트 정보는 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값, 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 상위 하나 이상의 상위 부모 해시값을 포함하고,
    상기 해시 포레스트 비교부는 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하는 피어 노드 장치.
  13. 네트워크를 통해 복수의 노드와 연결되며 P2P 방식의 가상머신 운영체제 이미지의 다운로드를 제어하는 이미지 서버 장치로서,
    제1 가상머신 운영체제 이미지를 다운로드하고자 하는 제1 노드의 요청을 수신하는 통신부; 및
    상기 통신부를 통해 상기 제1 노드로 상기 제1 가상머신 운영체제 이미지에 상응하는 메타데이터 및 하나 이상의 트래커 URL이 전송되도록 제어하는 제어부를 포함하되,
    상기 메타데이터는 상기 제1 가상머신 운영체제 이미지의 각 데이터 블록들에 대한 복수의 자해시값(child hash), 상기 복수의 자해시값 중 서로 연접하는 자해시값을 통해 계산된 복수의 부모 해시값 및 상기 복수의 부모 해시값 중 서로 연접하는 부모 해시값을 통해 계산된 하나 이상의 상위 부모 해시값을 포함하는 제1 해시포레스트 정보를 포함하며,
    상기 제1 노드는 상기 하나 이상의 트래커 URL을 통해 연결된 다른 제2 노드로부터 상기 제2 노드가 보유한 제2 가상머신 운영체제 이미지에 대한 제2 해시포레스트 정보를 수신하여 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보를 비교하되, 상기 하나 이상의 상위 부모 해시값, 상기 복수의 부모 해시값 및 상기 복수의 자해시값에 대한 순차적인 탐색을 통해, 상기 제1 해시포레스트 정보와 상기 제2 해시포레스트 정보의 공통 부분을 탐색하여 상기 비교에 따라 상기 제1 가상머신 운영체제 이미지를 구성하는데 필요한 데이터 블록을 상기 제2 노드로 요청하는 이미지 서버 장치.
KR1020140173391A 2014-12-04 2014-12-04 P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 KR101600717B1 (ko)

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)

* Cited by examiner, † Cited by third party
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 中国联合网络通信集团有限公司 跨数据中心的虚拟机迁移方法、数据中心及计算机介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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