incubator-deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "marios@redhat.com" <mandr...@redhat.com>
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 
'bundling'
     ** 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 grid.image.save [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.

AWS:
[1] http://aws.amazon.com/documentation/s3/
[2] http://www.supersimplestorageservice.com/
[4] http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/
[6] 
http://developer.amazonwebservices.com/connect/thread.jspa?messageID=107847&#107847
[7] 
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88
RACKSPACE:
[3] http://www.rackspacecloud.com/cloud_hosting_products/files/api
[5] http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf
[8] http://www.rackspacecloud.com/cloud_hosting_products/servers/faq
[9] http://www.rackspacecloud.com/cloud_hosting_products/servers/pricing
RIMUHOSTING:
[10] 
http://apidocs.rimuhosting.com/jaxbdocs/com/rimuhosting/jaxrsorders/JAXRSOrders.NewVPSRequest.html
GOGRID:
[11] http://wiki.gogrid.com/wiki/index.php/Cloud_Storage:Cloud_Storage
[12] http://wiki.gogrid.com/wiki/index.php/API:grid.image.save
TERREMARK:
[13] 
https://community.vcloudexpress.terremark.com/en-us/product_docs/w/wiki/6-vcloud-express-api-documention.aspx

On 03/02/11 13:45, mfojtik@redhat.com 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://github.com/mifo/aws.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] http://wiki.gogrid.com/wiki/index.php/API:grid.image.save
> [2] https://github.com/mifo/aws/tree/myupstream
>


Mime
View raw message