[Swift-devel] swift-on-ec2

Ben Clifford benc at hawaga.org.uk
Tue May 15 11:20:03 CDT 2007


Ian asked about this elsewhere, but its perhaps interesting for 
swift-devel people to look at the questions too.

On Tue, 15 May 2007, Ian Foster wrote:

> Dear All:
                                                                                
> I asked Kate if she and Tim could look into creating VM images that 
> would allow us to run Swift applications on Amazon EC2. I think Kate is 
> meeting with Ioan about this on Thursday (?).
                                                                                
> One issue that I thought would be good to discuss is what we'd want in 
> that VM image. Perhaps this is obvious to the rest of you, but it isn't 
> to me. A few thoughts:

> * I'm assuming that we want to run "workers" on EC2 nodes, and have the "task
> dispatch" logic run on some external frontend system outside EC2.

> * I would think that we want to use Falkon to do the task dispatch. If so, we
> need a Falkon executor on each VM, configured to check in with the Falkon
> dispatcher. (Alternatively, we could use, say, SGE: in that case, we would
> want an SGE agent.)

> *  We need a way of getting data to and from the worker nodes. Do we want to
> run a file system across the EC2 nodes and the external frontend node? That
> seems rather inefficient. Other options?

> * Should we preload the application code on each EC2 node?

Here's a couple of approaches:

 1) swift regards all the EC2 nodes that we are paying for as a single 
    site.

Something like falkon handles all the task dispatch and worker node 
management. I don't know what that looks like at the moment in Falkon, but 
the interface for Swift to send jobs into Falkon sounds pretty 
straightforward and shouldn't need changing.

All the nodes in a site are required by our site model to have a shared 
filesystem - we've talked about removing it, but I think that is still the 
case and if so, isn't going to change soon. timf probably knows more than 
the people on this list about making shared filesystems.

In this case, falkon would be doing the site selection.

 2) swift regards each EC2 node as a separate site.

So Swift would be doing site selection between each site (i.e. between 
each EC2 node), and then submitting to that site.

I don't know if the interface between Swift and eg. Falkon allows swift to 
tell Falkon which remote node to run on.

However, Swift would then be able to use something like gridftp to stage 
to each EC2 node (assuming that EC2 nodes can act as ftp servers - I don't 
know what their network connectivity is like) - a shared filesystem 
between all nodes in a site is pretty simple when there is only a single 
node in the site.


Amazon also has a storage cloud, alongside its compute cloud. I know very 
little about that and have never thought about how it would fit into the 
above (if at all). Maybe someone else knows more.

-- 



More information about the Swift-devel mailing list