P2P Network booting with BitTorrent
Branch: dev
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
GSoC-2018
boottorrent
debian
docs
envtest
phase1bootstrap
.editorconfig
.gitignore
.travis.yml
AUTHORS.rst
CONTRIBUTING.rst
HISTORY.rst
LICENSE
MANIFEST.in
Makefile
README.rst
readthedocs.yml
requirements.txt
requirements_dev.txt
setup.cfg
setup.py

README.rst

BootTorrent

Documentation Status

BootTorrent allows distributed P2P BitTorrent based network booting of various Operating systems.

The advantage of BootTorrent over standard network booting is that the bottleneck caused by a central server serving the image is reduced and BootTorrent reduces the linear scaling factor in total time to bring a cluster online fully functional by utilizing Peer-to-Peer protocols. The nodes share the image data among themselves, hence, improved boot times.

+--------------------------------------------------------------------+
|                                     +----------------------------+ |
|  Fig 1: A network of computers      |     +----+  FE  +----+     | |
|    sharing data together after      |     |Node|<---->|Node|     | |
|    receiving it from server.        |     +----+      +----+     | |
|                                     |       ^           ^        | |
|                                     |    FE |           | FE     | |
|  +------+ 1 GBps  +------+ 100 MBps |       v           v        | |
|  |Server|-------->|Switch|--------->|     +----+  FE  +----+     | |
|  +------+  Link   +------+ Link(FE) |     |Node|<---->|Node|     | |
|                                     |     +----+      +----+     | |
|                                     +----------------------------+ |
+--------------------------------------------------------------------+

Cases where BootTorrent may be useful would be:

  • If the clients in your network are not getting enough bandwidth individually and have significant bandwidth being left unused, which causes increased boot times. With BootTorrent you can repurpose the remaining bandwidth to help clients mutually share it among themselves.
  • If your server (such as a laptop) can only connect to your cluster of computers via a comparatively slow link (such as WiFi or Fast-ethernet) then BootTorrent can help you mitigate the low bandwidth issues of network link.
  • If you have large number of computers at your disposal and you're simply looking to deploy any given system image(s) (that may have been hand-crafted according to your needs) as painlessly as possible. BootTorrent can help you deploy it in three easy steps to the whole network.
  • If your current network boot server is unable to meet your requirements and deliver much needed performance, consider giving BootTorrent a try. Its distributed architecture will reduce the dependence on server, which means improved boot performance.

For more details on use cases please refer to Use cases list and visit the documentation.

We have data to back our claims. Check out the performance improvements here:

img1 img2 img3

[Images & Data courtesy of SL-Lab: http://sl-lab.it/dokuwiki/lib/exe/fetch.php/tesi:tesi_bruschi.pdf]

The above images were created from tests done at the University of Milan (ITALY) during the development of the original "boottorrent" project.

WARNING: STATUS - ALPHA: DO NOT USE IN PRODUCTION!

Features

  • Boot Linux Kernel with Kexec.
  • Includes Qemu to run any type of Operating system on client machine.
  • Ability to run a binary executable.
  • Client side user input to choose an OS.
  • Leverage BitTorrent to transfer files over the network.