scp-wave
Description

scp-wave is a small tool to speed up scp transfers of a file to a set of hosts. It was written with the intention to help design an image repository that would push an image to a large set of nodes. A simple sequential transfer can be rather slow (e.g 10GB image to be transfered to 500 hosts). scp-wave achieves logarithmic speed-up by initiating third-party transfers once hosts with the image become available. Starting from a single seed (the image repository), scp-wave gradually adds seeds as soon as a target host receives the complete file. It has been tested and can transfer a 10GB file to 450 hosts in less than one hour. scp-wave is implemented in Python.

Benefits

When building a virtualized infrastructure you may want to pre-stage images on the hypervisors. scp-wave allows you to do this staging in a very efficient manner compared to a sequential transfer. It might be of particular interest to opennebula users who make use of the LVM transfer scripts.

It is a standalone utility, implemented in a single Python script.

Howto

A simple howto can be found at: http://code.google.com/p/scp-wave/wiki/HowTo