2017-02-08 2 views
1

BitTorrent 프로토콜을 사용하여 여러 스테이션간에 VM 이미지를 배포하기위한 시스템을 만들 계획입니다. 다음과 같이 현재 시스템은 같습니다P2P 배포 - 동료를 관리하기위한 추상 알고리즘

          |-[room with 20PCs]- 
[srv_with_images]-->--[1Gbps-bottlneck]-->--| 
              |-[2nd room with 20PCs]- 

모든 PC는 한 번에 매일 밤 1Gbps의 병목 현상을 통해 이미지를 다운로드하고 시간이 많이 걸립니다. BitTorrent를 사용하여 모든 PC 간의 피어 - 투 - 피어 교환을 사용하여 이미지 배포 속도를 높일 계획입니다. 그러나 문제가 있습니다 - 원본 서버에 이미지가 나타나면 모든 동료가 동시에 파일을 다운로드하는 단일 시드로 작동하기 시작합니다. 그래서 우리는 다시 병목의 함정에 빠지게됩니다. 새로운 이미지 방송국의 작은 부분이 다운로드됩니다 도착했을 때

  • 는 beggining에 보장 : 우리는 (적어도 우리는 우리가 필요가 있다고 생각)를 구현하는 데 필요한 유통 추상적 인 높은 수준의 알고리즘의 속도를 높이기 위해
  • 작은 부분이 시작될 때 나머지 부분이나 PC의 다른 부분이 피어링을 시작하거나 클래스가 아닌 원산지가 아닌 PC에서만 피어링됩니다.
  • 일부 컴퓨터는 하루 동안 오프라인 상태 일 수 있으므로 초기 피어의 "정적"목록에 표시됩니다. 우리는 어떤 컴퓨터도 항상 &을 실행한다고 가정하지 않습니다. 피어는 언제든지 끌 수 있습니다.

우리가 이것을 돕는 데 도움이되는 특정 알고리즘이 있습니까? 가장 순진한 방법은 활성 서버를 어딘가에 나열하고 각 토렌트의 초기 피어를 선택할 수있는 데몬을 만드는 것입니다. 그러나 어쩌면 그런 종류의 일을하는 좀 더 우아한 방법이 있을까요 ??

또 다른 옵션은 일부 피어 CA 만 원래의 버전에서 다운로드하고 다른 피어는 서로 다운로드 할 수 있도록하는 것입니다 (원래의 버전은 아니지만). BitTorrent 프로토콜에서 가능합니까?

+0

아마도 BitTornado에 기초한 [Murder] (https://github.com/lg/murder)를 사용하여 트위터가 개발하여 유사한 작업을 수행 할 수 있습니다. [비디오.] (http://vimeo.com/11280885) [블로그.] (https://blog.twitter.com/2010/murder-fast-datacenter-code-deploys-using-bittorrent) [포크 .] (https://github.com/russss/Herd) [TF Article.] (https://torrentfreak.com/twitter-uses-bittorrent-for-server-deployment-100210/) – Encombe

답변

1

비트 토 런트를 사용하는 경우 특별한 조정이 필요하지 않습니다.

병목 현상이있는 피어는 서로 직접 대화하고 대역폭을 공유 할 수 있습니다. rarest-first 조각 따기 알고리즘을 사용하면 대부분 서버에서 다른 조각을 다운로드 한 다음 서로 공유 할 수 있습니다.

LSD은 LAN 지역 검색의 속도를 높이는 데 도움이되지만 NAT 속임수가없는 경우 일반 추적기에서도 작동해야합니다.