incubator-deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "" <>
Subject Re: Create images from running or stopped EBS instances (EC2)
Date Thu, 03 Feb 2011 12:57:33 GMT
Hey Michal,

here's a copy/paste from the notes I made about snapshots back in July - 
might be useful to have this in one place/save some time looking at the 
APIs (AWS, Rackspace, Rimu, Gogrid, Terremark):

<PAST> :

Q. Which of our currently supported clouds allows 'register custom Image 
from cloud storage', or, 'save/snapshot an Instance as a new Image'
--i--> Amazon AWS allows you to register an object in S3 as an Image in 
EC2 [4] (Rackspace 'coming soon' [5])

     ** The process of 'save this Instance as an Image in S3' is termed 
     ** PROBLEM: different procedure for Windose vs Linux images [6].
	-- For Windows you use the AWS REST API 'BundleInstance' call where you 
specify the S3 bucket to upload to (amongst other things).
	-- For Linux you must install the 'AMI Tools' command-line utilities 
[7] on the Instance you wish to bundle and then 'ec2-bundle-image'. 
Confusingly the actual upload is done with 'ec2-upload-bundle' which 
takes the S3 bucket name as a parameter.
     ** In both cases and after bundling is complete you register the 
newly created S3 object as an Image for EC2 using the REST API 
'RegisterImage' call.

--ii-> Rackspace allows you to snapshot a running Instance [5]

     ** This is done through a REST API call (POST /images) where you 
specify the serverid (Instance) that is to be saved.
     ** Here there is no seperation between 'make snapshot' and 'upload 
to cloud storage' - i.e. cannot export a server image [8].
     ** Snapshots stay 'attached to the server' [9] (i.e. saved locally?).
     ** Once process complete the image is available for booting a 
server [5].
     ** 'Custom Image Upload' is in the Cloud Server API Roadmap [5].

-iii-> Gogrid allows you to save a 'MyGSI - Gogrid Server Image' from 
your own, preconfigured 'sandbox server'

     ** You create a MyGSI from a configured, running 'image sandbox 
server' and the new image is added to Gogrid's cloud storage [11]
     ** Weirdly this cloud storage is not exposed at all via the API
     ** The API call is [12] - you create a new 'image 
sandbox server' using 'grid.server.add', configure it and run the 'prep 
scripts' and then call the save. Once complete the new MyGSI is 
available in your list of images.

--iv-> Rimuhosting allows you to clone an existing server and deploy a 
new server from that [10]

     ** However, the clone must be deployed straight away - you cannot 
save as an image for later instantiation.
     ** A chat with support confirmed this - you *can* save an image for 
later use but only by submitting a support ticket (i.e. nothing in the 
api or the web 'management console' to support this).

--v--> Terremark VCloud Express allows you to 'clone' an existing server 
(a 'vapp') [13] but you cannot save this as an Image (a 'vapp template').

     ** Similar to the rimuhosting situation - can clone an existing 
server as another server, but not as an Image
     ** POST https://{Terremark URI}/vdc/{vDC ID}/action/clonevapp - you 
specify the vApp id to be cloned within the request body.


On 03/02/11 13:45, wrote:
> Hi,
> This patch will add support for creating images from running or stopped
> instances in Amazon EC2. EC2 support 'CreateImage' call for all EBS
> instances.
> Deltacloud API implements that in this way:
> POST /api/images
> Parameters: { :instance_id =>  'i-123123', :name =>  'image name' }
> I checked GoGrid and they have something similar[1] for 'sandbox'
> instances. Which means that we will need to add some feature to
> instances collection to create 'sandbox' instance in GoGrid.
> I didn't check Rackspace but Ovi said that they have something very
> similar.
> Please let me know what do you think about this approach.
> PS: I attached a working example for EC2, *but* you need to have patched
> gem installed (you can grab one from my github account[2]). To install it:
> git clone git://
> git checkout myupstream
> gem build aws.gemspec
> gem uninstall aws
> gem install --local aws.gem
> Or wait until Appoxy's integrate my patch to upstream gem.
> [1]
> [2]

View raw message