<font size=2 face="sans-serif">Hi Vish,</font>
<br>
<br><font size=2 face="sans-serif">I would like you to review this patch
</font><a href=https://review.openstack.org/#/c/35460/><font size=2 color=blue face="sans-serif">https://review.openstack.org/#/c/35460/</font></a><font size=2 face="sans-serif">.</font>
<br>
<br><font size=2 face="sans-serif">I think this approach takes the least
effort to fix this issue.</font>
<br><font size=2 face="sans-serif">When we boot an instance from a volume,
nova can get the volume information by _get_volume. kerel_id and ramdisk_id
are already in the volume information. We just need to make nova retrieve
them. In the code of creating instance, kernel_id and ramdisk_id are accessed
by checking "properties"(many parts), but the volume information
saved them in "volume_image_metadata". I just convert the data
structure a bit and save two of this params in "properties",
and it can work.</font>
<br>
<br><font size=2 face="sans-serif">Well, if you do not see it favorable,
we can work it out in another way.</font>
<br>
<br><font size=2 face="sans-serif">Thank you.</font>
<br>
<br><font size=2 face="sans-serif">Best wishes,<br>
Vincent Hou (侯胜博)<br>
<br>
Staff Software Engineer, Open Standards and Open Source Team, Emerging
Technology Institute, IBM China Software Development Lab<br>
<br>
Tel: 86-10-82450778 Fax: 86-10-82453660<br>
Notes ID: Sheng Bo Hou/China/IBM@IBMCN    E-mail: sbhou@cn.ibm.com
<br>
Address:3F Ring, Building 28 Zhongguancun Software Park, 8 Dongbeiwang
West Road, Haidian District, Beijing, P.R.C.100193<br>
地址:北京市海淀区东北旺西路8号中关村软件园28号楼环宇大厦3层
邮编:100193</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Vishvananda Ishaya <vishvananda@gmail.com></b>
</font>
<p><font size=1 face="sans-serif">2013/07/02 01:14</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
OpenStack Development Mailing List <openstack-dev@lists.openstack.org></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">OpenStack Development Mailing List <openstack-dev@lists.openstack.org>,
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">jsbryant@us.ibm.com, "Duncan Thomas
<duncan.thomas@gmail.com> John Griffith" <duncan.thomas@gmail.comduncan.thomas></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [openstack-dev] [cinder] Propose
to add copying the reference        images
when creating a volume</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br>
<br><font size=3 face="sans-serif">On Jul 1, 2013, at 3:35 AM, Sheng Bo
Hou <</font><a href=mailto:sbhou@cn.ibm.com><font size=3 color=blue face="sans-serif"><u>sbhou@cn.ibm.com</u></font></a><font size=3 face="sans-serif">>
wrote:</font>
<br>
<br><font size=2 face="sans-serif">Hi Mate,</font><font size=3 face="sans-serif">
<br>
</font><font size=2 face="sans-serif"><br>
First, thanks for answering.</font><font size=3 face="sans-serif"> </font><font size=2 face="sans-serif"><br>
I was trying to find the way to prepare the bootable volume.</font><font size=3 face="sans-serif">
</font><font size=2 face="sans-serif"><br>
Take the default image downloaded by devstack, there are three images:
cirros-0.3.0-x86_64-uec, cirros-0.3.0-x86_64-uec-kernel and cirros-0.3.0-x86_64-uec-ramdisk.</font><font size=3 face="sans-serif">
</font><font size=2 face="sans-serif"><br>
cirros-0.3.0-x86_64-uec-kernel is referred as the kernel image and cirros-0.3.0-x86_64-uec-ramdisk
is referred as the ramdisk image.</font><font size=3 face="sans-serif">
<br>
</font><font size=2 face="sans-serif"><b><br>
Issue:</b> If only the image(cirros-0.3.0-x86_64-uec) is copied to the
volume when creating a volume) from an image, this volume is unable to
boot an instance without the references to the kernel and the ramdisk images.
The current cinder only copies the image cirros-0.3.0-x86_64-uec to one
targeted volume(<b>Vol-1</b>), which is marked as bootable but unable to
do a successful boot with the current nova code, even if image-id is removed
in the parameter.</font><font size=3 face="sans-serif"> <br>
</font><font size=2 face="sans-serif"><b><br>
Possible solutions:</b> There are two ways in my mind to resolve it. One
is we just need the code change in Nova to let it find the reference images
for the bootable volume(<b>Vol-1</b>) and there is no need to change anything
in cinder, since the kernel and ramdisk id are saved in the volume_glance_metadata,
where the references point to the images(kernel and ramdisk) for the volume(<b>Vol-1</b>).
</font><font size=3 face="sans-serif"><br>
</font>
<br>
<br><font size=3 face="sans-serif">You should be able to create an image
in glance that references the volume in block device mapping but also has
a kernel_id and ramdisk_id parameter so it can boot properly. I know this
is kind of an odd way to do things, but this seems like an edge case and
I think it is a valid workaround.</font>
<br>
<br><font size=3 face="sans-serif">Vish</font>
<br>
<br><font size=2 face="sans-serif">The other is that if we need multiple
images to boot an instance, we need a new way to create the bootable volume.
For example, we can create three separate volumes for three of the images
and set the new references in volume_glance_metadata with the kernel_volume_id
and ramdisk_volume_id. The benefit of this approach is that the volume
can live independent of the existence of the original images. Even the
images get lost accidentally, the volumes are still sufficient to boot
an instance, because all the information have been copied to Cinder part.</font><font size=3 face="sans-serif">
<br>
</font><font size=2 face="sans-serif"><br>
I am trying to looking for the "</font><tt><font size=2>another way
to prepare your bootable volume" as you mentioned and asking for the
suggestions. <br>
And I think the second approach could be one way. Do you think it is a
good approach?</font></tt><font size=3 face="sans-serif"> <br>
</font><font size=2 face="sans-serif"><br>
Best wishes,<br>
Vincent Hou (侯胜博)<br>
<br>
Staff Software Engineer, Open Standards and Open Source Team, Emerging
Technology Institute, IBM China Software Development Lab<br>
<br>
Tel: 86-10-82450778 Fax: 86-10-82453660<br>
Notes ID: Sheng Bo Hou/China/IBM@IBMCN    E-mail: </font><a href=mailto:sbhou@cn.ibm.com><font size=2 color=blue face="sans-serif"><u>sbhou@cn.ibm.com</u></font></a><font size=2 face="sans-serif">
<br>
Address:3F Ring, Building 28 Zhongguancun Software Park, 8 Dongbeiwang
West Road, Haidian District, Beijing, P.R.C.100193<br>
地址:北京市海淀区东北旺西路8号中关村软件园28号楼环宇大厦3层
邮编:100193</font><font size=3 face="sans-serif"> <br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=36%><font size=1 face="sans-serif"><b>Mate Lakat <</b></font><a href=mailto:mate.lakat@citrix.com><font size=1 color=blue face="sans-serif"><b><u>mate.lakat@citrix.com</u></b></font></a><font size=1 face="sans-serif"><b>></b>
</font>
<p><font size=1 face="sans-serif">2013/07/01 04:18</font><font size=3 face="sans-serif">
</font>
<br>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
OpenStack Development Mailing List <</font><a href="mailto:openstack-dev@lists.openstack.org"><font size=1 color=blue face="sans-serif"><u>openstack-dev@lists.openstack.org</u></font></a><font size=1 face="sans-serif">></font></div></table>
<p>
<td width=63%>
<br>
<table width=100%>
<tr valign=top>
<td width=6%>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td width=93%><font size=1 face="sans-serif">OpenStack Development Mailing
List <</font><a href="mailto:openstack-dev@lists.openstack.org"><font size=1 color=blue face="sans-serif"><u>openstack-dev@lists.openstack.org</u></font></a><font size=1 face="sans-serif">>,
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><a href=mailto:jsbryant@us.ibm.com><font size=1 color=blue face="sans-serif"><u>jsbryant@us.ibm.com</u></font></a><font size=1 face="sans-serif">,
"Duncan Thomas <</font><a href=mailto:duncan.thomas@gmail.com><font size=1 color=blue face="sans-serif"><u>duncan.thomas@gmail.com</u></font></a><font size=1 face="sans-serif">>
John Griffith" <</font><a href=mailto:duncan.thomas@gmail.comduncan.thomas><font size=1 color=blue face="sans-serif"><u>duncan.thomas@gmail.comduncan.thomas</u></font></a><font size=1 face="sans-serif">></font><font size=3 face="sans-serif">
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [openstack-dev] [cinder] Propose
to add copying the reference images when creating a volume</font></table>
<br>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br><font size=3 face="sans-serif"><br>
<br>
</font><tt><font size=2><br>
Hi,<br>
<br>
I just proposed a patch for the boot_from_volume_exercise.sh to get rid<br>
of --image. To be honest, I did not look at the various execution paths.<br>
My initial thought is that boot from volume means you boot from volume.<br>
If you only have a kernel + ramdisk image, I simply assumed that you<br>
can't do it. <br>
<br>
I would not do any magic. Boot from volume should boot from volume. If<br>
you only have 3 part images, you need to find another way to prepare<br>
your bootable volume.<br>
<br>
btw, here is my change:<br>
</font></tt><font size=3 color=blue face="sans-serif"><u><br>
</u></font><a href=https://review.openstack.org/34761><tt><font size=2 color=blue><u>https://review.openstack.org/34761</u></font></tt></a><tt><font size=2><br>
<br>
Cheers,<br>
Mate<br>
<br>
On Mon, Jul 01, 2013 at 01:25:23AM -0400, Sheng Bo Hou wrote:<br>
> Hi Cinder folks,<br>
> <br>
> I am currently fixing the bugs related to booting the instance from
the <br>
> volume. I found there are bugs both in Nova and <br>
> Cinder.<br>
> <br>
> Cinder: </font></tt><a href="https://bugs.launchpad.net/cinder/+bug/1159824"><tt><font size=2 color=blue><u>https://bugs.launchpad.net/cinder/+bug/1159824</u></font></tt></a><tt><font size=2><br>
> Nova: </font></tt><a href="https://bugs.launchpad.net/nova/+bug/1191069"><tt><font size=2 color=blue><u>https://bugs.launchpad.net/nova/+bug/1191069</u></font></tt></a><tt><font size=2><br>
> <br>
> For the volumes created from the image, I propose to copy the reference
<br>
> image during the creation of<br>
> the main image. For example, an image may refer to a kernel image
and a <br>
> ramdisk image. When we create a volume<br>
> from this image, we only copied this one to the volume. The kernel
and <br>
> ramdisk images are still in glance, and<br>
> the volume still refers to the kernel and ramdisk images.<br>
> <br>
> I think if an image has other reference images, the reference images
also <br>
> need to be copied to the volumes(kernel volume and ramdisk volume),<br>
> and then set the volume referring to the kernel volume and the ramdisk
<br>
> volume. This feature will make booting from<br>
> a volume completely independent of the existence of the glance image.<br>
> <br>
> Do you think we can firstly add this feature to cinder? Do folks have
any <br>
> comments on it?<br>
> <br>
> Thanks.<br>
> <br>
> Best wishes,<br>
> Vincent Hou (侯胜博)<br>
> <br>
> Staff Software Engineer, Open Standards and Open Source Team, Emerging
<br>
> Technology Institute, IBM China Software Development Lab<br>
> <br>
> Tel: 86-10-82450778 Fax: 86-10-82453660<br>
> Notes ID: Sheng Bo Hou/China/IBM@IBMCN    E-mail: </font></tt><a href=mailto:sbhou@cn.ibm.com><tt><font size=2 color=blue><u>sbhou@cn.ibm.com</u></font></tt></a><tt><font size=2>
<br>
> Address:3F Ring, Building 28 Zhongguancun Software Park, 8 Dongbeiwang
<br>
> West Road, Haidian District, Beijing, P.R.C.100193<br>
> 地址:北京市海淀区东北旺西路8号中关村软件园28号楼环宇大厦3层
邮编:100193<br>
<br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> </font></tt><a href="mailto:OpenStack-dev@lists.openstack.org"><tt><font size=2 color=blue><u>OpenStack-dev@lists.openstack.org</u></font></tt></a><tt><font size=2><br>
> </font></tt><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><tt><font size=2 color=blue><u>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</u></font></tt></a><tt><font size=2><br>
<br>
<br>
-- <br>
Mate Lakat<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list</font></tt><tt><font size=2 color=blue><u><br>
</u></font></tt><a href="mailto:OpenStack-dev@lists.openstack.org"><tt><font size=2 color=blue><u>OpenStack-dev@lists.openstack.org</u></font></tt></a><font size=3 color=blue face="sans-serif"><u><br>
</u></font><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><tt><font size=2 color=blue><u>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</u></font></tt></a><font size=3 face="sans-serif"><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list</font><font size=3 color=blue face="sans-serif"><u><br>
</u></font><a href="mailto:OpenStack-dev@lists.openstack.org"><font size=3 color=blue face="sans-serif"><u>OpenStack-dev@lists.openstack.org</u></font></a><font size=3 face="sans-serif"><br>
</font><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><font size=3 face="sans-serif">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</font></a>
<br><tt><font size=2>_______________________________________________<br>
OpenStack-dev mailing list<br>
OpenStack-dev@lists.openstack.org<br>
</font></tt><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><tt><font size=2>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</font></tt></a><tt><font size=2><br>
</font></tt>
<br>