On 03/02/11 14:57 +0200, [email protected] wrote:
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):

Thanks Marios! This seems to be very usefull and save me a lot of time
googling and reading all those docs.
After brief look, I have few suggestions for API:



<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).

We need to add a <os>Linux|Windows</os> field to instance XML
and then decide which method we will choose when creating image.
The bucket thing for Windows could be solved by feature param.

-- 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.

For EBS you just need instance_id and name and there is CreateImage call.

** 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'

As I said, we will need to add new feature for GoGrid (something like
'sandbox') when launching an Instance and some HTTP proper response from POST /api/images when Instance is not in sandbox.

** 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.

So I guess that we will not support creating images in this 'snapshot' way
for Terremark and RimuHosting at this time.

  -- Michal

--
--------------------------------------------------------
Michal Fojtik, [email protected]
Deltacloud API: http://deltacloud.org
--------------------------------------------------------

Reply via email to