Rapid Provisioning of Cloud Infrastructure Leveraging Peer-to-Peer Networks

2013. 10. 23. 21:24Cloud/Provisioning

Rapid Provisioning of Cloud Infrastructure Leveraging Peer-to-Peer Networks

- P2P방식의 가상머신 이미지 프로비저닝 시스템

 

본 논문에서는 P2P 방식을 사용하는 대표적인 프로토콜인 BitTorrent를 이용하여 Image를 배포하는 구조에 있어서 서버-클라이언트 구조가 아니라 클라이언트-클라이언트간의 P2P 이미지 파일 공유 방식 시스템을 논의 한다.

System Overview

 

1) Seed 생성 및 초기 이미지 파일 배포 단계 : 먼저 클라우드 프로비저닝 서버(Cloud Provisioning Server)는 이미지 파일을 배포 하기 위하여 이미지 파일의 메타정보를 포함하는 토렌트(Seed) 파일을 만든다. 이 파일에는 트래커의 URL주소가 포함되어 있는데, 이는 이미지 파일을 공유하는 피어(가상머신)들의 정보를 관리하는 서버를 지칭한다. 클라우드 프로비저닝 서버는 첫째로 이미지 파일 모두를 Physical Machine 1개를 선택하여 모두 전송한다. ( 위 그림에서는 Physical Machine B가 선택됨 ) Provisioning Server가 첫 번째 Physical Machine을 선택하는 기준은 다른 Physical Machine과의 연결성, 안전성, Server와의 빠른 접속속도를 기준으로 하여 정한다. 가장 먼저 선택된 'Physical Machine B'는 트래커와 초기 Seeder가 된다.

 

2) 이미지 배포 단계 : Provisioning Server가 초기 Physical Machine 을 선택한 이후에 Server는 모든 피어(Physical Machine)에게 토렌트 파일을 배포한다. 이후 deployment Server는 원격 조정을 통해 모든 피어들의 다운로드를 시작 시킨다. 모든 Physical Machine들은 토렌트 파일에 포함된 이미지의 고유 Hash값을 트래커(토렌트파일에 포함되어 있는 URL)로 전송한다. 이 메시지를 Traker Request라고 한다. 각 피어들로부터 Traker Request를 받은 트래커는 이미지의 Hash값에 해당하는 스웜(Swarm)을 생성하고 이미지의 Hash값을 보낸 피어들의 IP주소를 이 스웜을 통해 관리 한다.

 

Traker Request를 받은 트래커는 해당 메시지에 포함된 이미지의 Hash값을 참조하여 해당하는 스웜이 존재하는지를 확인한다. 만약 존재하지 않는다면 새로운 스웜을 생성하고 다른 피어로부터 Traker Request를 받을 때까지 기다린다. 기존에 만들어진 스웜이 있을 경우 스웜이 포함되어 있는 피어들을 리스트로 만들어 Traker Request 메시지에 포함하여 응답한다. Traker Response에 들어 있는 피어 리스트는 피어들의 IP주소들로 이루어 진다.

 

피어 리스트를 받은 BT clinet는 모든 피어 IP주소로 이미지의 Hash값을 보낸다. 이 메시지를 받은 피어들 중에 이미지 파일 공유가 가능한 피어는 동일한 이미지의 Hash값으로 응답하게 된다. 이러한 Hash 교환을 통해 피어와 피어는 세션을 생성하게 되고 생성된 세션을 통해 이미지 파일의 조각을 교환한다. Bittorrent 프로토콜은 트래커로부터 다수의 피어 IP주소를 받아 세션을 생성하므로 하나의 클라이언트는 동시에 여러 개의 세션을 생성하게 된다.

 

 

 

 

 

 

 

Framework of Cloud Provisioning Server

 

 

Physical Machine Manager

데이터베이스로부터 호스트 Physical Machine의 정보를 CRUD(Create, Retrieve, Update, Delete) 한다.

Solution Image Manager

이미지 정보를 CRUD한다.

Seed Maker

시드(토렌트 파일)를 생성한다.

Tracker Selector

인트라넷에서 적절한 트래커를 선택한다.

Image Copier

Host physical Machine 에게 이미지를 전송한다.

BT Tracker Installer

Host Physical Machine 위에 BT Tracker와 Clinet를 설치한다.

BT Client Installer

 

 

 

 

 

 

 

 

 

 

 

Framework of Host Physical Machine

Physical Machine에 VMM/Hypervisor와 Locall File System 뿐만 아니라 FUSE(Filesystem in Userspace)와 BT Clinet가 추가된다. FUSE는 유닉스 계열 OS에 적재할 수 있는 커널 모듈로서 FUSE를 이용하면 컴퓨터에 OS와 같은 권한이 아닌 사용자가 커널 코드를 편집하지 않고도 자신의 파일 시스템을 만들 수 있다. FUSE모듈은 유저 스페이스에서 파일 시스템 코드를 실행할 수 있도록 실제 커널 인터페이스와 유저 스페이스를 연결하는 '다리'를 제공한다. BT client를 통해 받아온 이미지를 FUSE를 통해 저장하고 이를 Virtual Machine으로 구동 시킬 수 있다.