Merge lp://qastaging/~yamahata/nova/boot-from-volume into lp://qastaging/~hudson-openstack/nova/trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp://qastaging/~yamahata/nova/boot-from-volume |
Merge into: | lp://qastaging/~hudson-openstack/nova/trunk |
Diff against target: |
605 lines (+246/-75) 8 files modified
nova/api/ec2/apirequest.py (+11/-5) nova/api/ec2/cloud.py (+5/-1) nova/api/openstack/servers.py (+50/-14) nova/compute/api.py (+46/-20) nova/compute/manager.py (+33/-3) nova/virt/driver.py (+1/-1) nova/virt/libvirt.xml.template (+33/-6) nova/virt/libvirt_conn.py (+67/-25) |
To merge this branch: | bzr merge lp://qastaging/~yamahata/nova/boot-from-volume |
Related bugs: | |
Related blueprints: |
Boot From Volume
(High)
Snapshot, Clone and Boot from volumes
(Undefined)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Dan Prince (community) | Needs Fixing | ||
Vish Ishaya (community) | Needs Fixing | ||
Review via email:
|
Description of the change
This branch implements the first step for boot from volume.
With --block-
for example
euca-run-instances ami-XXXX -k mykey -t m1.tiny -b/dev/
In fact since creating ec2 snapshot/volume from volume/snapshot isn't supported yet,
I used volume_id instead of snapshot_id.
This is first step to start discussion.
Code details.
- enhanced argument parser to interpret multi-dot separated argument
like BlockDeviceMapp
- pass down block device mapping id form nova-api to compute-api.
compute-api changes volume status to in-use to tell the compute-manager which volume to attach
- compute-manager pass those infos to virt dirver and libvirt_conn driver interprets it.
TODO:
- error recovery
- ephemeral device/no device
- ami support which needs to change db schema
- suport on ec2 snapshot/clone
- native api in addition to ec2 api?
Unmerged revisions
- 1015. By Yoshiaki Tamura
-
Add an parameter to specify volume upon creating instances.
- 1014. By Yoshiaki Tamura
-
Extend create() to accept volume, and update DB to reserve the volume
before passing it to the manager. - 1013. By Yoshiaki Tamura
-
If volumes exist in instance, get pathes to the volumes and convert
them to the xml format to let libvirt to see them upon booting. - 1012. By Isaku Yamahata
-
ebs boot: compute node(kvm and libvirt) support for ebs boot
this patch teaches kvm and libvirt compute node ebs boot.
- 1011. By Isaku Yamahata
-
ebs boot: add parse for ebs boot argument
This patch adds the parser of ebs boot argument and stores those
infos into Volume table for compute node. - 1010. By Isaku Yamahata
-
api/ec2/api: teach multi dot-separated argument
nova.api.
ec2.apirequest. APIRequest knows only single dot-separated
arguments.
EBS boot uses multi dot-separeted arguments like
BlockDeviceMapping.1.DeviceNam e=snap- id
This patch teaches the parser those argument as the preparetion for ebs boot
support.
Hi Isaku,
Great contribution!
Actually we were also discussing developing this feature internally.
BTW, this is a POC code of a not-approved-yet feature, isn't it?
New feature will not be merged into trunk till the blueprint is approved and discussed at Design Summit in the OpenStack world.
I guess that Adam Johnson of Midokura will have a session on the blueprint of this feature
at the upcoming Diablo Design Summit. So, what about holding the branch somewhere outside
the trunk for a while?
Thanks,
Masanori