BootFromVolume
- Launchpad Entry: NovaSpec:boot-from-volume
- Created: 2011-Apr-19
- Contributors: Isaku Yamahata, Yoshiaki Tamura
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
- volume snapshot related stuff.
- EC2 API:
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.