Jump to: navigation, search

BootFromVolume

Revision as of 02:13, 19 April 2011 by IsakuYamahata (talk) (newly created a page of specification for boot-from-volume)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
  • Launchpad Entry: NovaSpec:boot-from-volume
  • Created: 2011-Apr-19
  • Contributors: Isaku Yamahata

Summary

Suport EC2 EBS boot with both nova api and ec2 api

Release Note

When this is implemented, VM will be able to boot with volume attached as user specifies.

Rationale

EC2 supports EBS-based boot and openstack doesn't have its counter part. Amazon advocates EBS-based boot benefits than S3-based boot. For openstack, especially we would gain

  • shorter boot time
  • persistent root partition

User stories

  • User registers volume ids or snapshot ids to machine image or specify the ids at boot time.
  • User will see instances booted with volumes attached.

Assumptions

For volume snapshot support, the following blueprints are assumed.

Design

pass down the informations that is necessary for boot-from-volume will be passed down to compute node and virt driver. During those pass, necessary action will be taken and db will be updated accordingly.

Implementation

  • machine image support
  enhance machine image to allow volume id/snapshot id.
  • volume db
  add new column to allows delete-on-terminate
  • User API
    • ec2 api is already designed by Amazon.
    • nova api with json is to add volume like "volume": {"id":"7", "mountpoint":"/dev/vda"}
  • api node
  parser enhance and pass down those infos compute-api updates volume db to tell compute node which
  volumes to be used by changing its status into in-use.
  For supporting ephemeral device or snapshot, more infos needs to be passed to compute node via db or somehow.
  Currently volume db is used to avoid changing db schema.
  • compute node
  Check if which volumes are attached. If snapshot ids are specify, create the volumes based on them.
  Lastly tell virt driver so.
  • When VM is terminated, delete the volume if delete-on-terminate is specified.

UI Changes

  • AMI setting
  • creating instances

Code Changes

TBD Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

TBD Include:

  • data migration, if any
  • redirects from old URLs to new ones, if any
  • how users will be pointed to the new way of doing things, if necessary.

Test/Demo Plan

This need not be added or completed until the specification is nearing beta.

Unresolved issues

At the moment EC2 API allows snapshot id to specify boot volume. However right now volume id is used.
As a result the patches for euca2ools is necessary which includes bug fix.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.