[nova][dev] image to local block device mapping not supported
Hello, Nova does not support image to local block device mapping since issue in this bug is fixed: https://bugs.launchpad.net/nova/+bug/1377958 In particular I am interested in scenario best described with this command: openstack server create --flavor m1.small --network mgmt --image XXX \ --block-device uuid=YYY,source_type=image,\ destination_type=local,disk_bus=ide,device_type=cdrom,boot_index=1 testvm300 For above command nova gives error: Block Device Mapping is Invalid: Mapping image to local is not supported. Libvirt does not have issues with having two block devices which have file source. My question is what am I missing here? Why Nova does not support image to local block device mapping? Thank you for your help. Nemanja
Hello,
Nova does not support image to local block device mapping since issue in this bug is fixed: https://bugs.launchpad.net/nova/+bug/1377958
In particular I am interested in scenario best described with this command: openstack server create --flavor m1.small --network mgmt --image XXX \ --block-device uuid=YYY,source_type=image,\ destination_type=local,disk_bus=ide,device_type=cdrom,boot_index=1 testvm300
For above command nova gives error: Block Device Mapping is Invalid: Mapping image to local is not supported.
Libvirt does not have issues with having two block devices which have file source.
My question is what am I missing here? Why Nova does not support image to local block device mapping?
On Mon, 2023-04-03 at 10:44 +0200, Nemanja Miletic wrote: the simple answer is that if we allow this then you could eiasly fill the hosts root file system in yoru exmaple you are using two diffent images but the size of the second image YYY would not be accounted for in the placment resouce allocation of local vm usage. if you created a 100TB glance image as a qcow and then specifed it on a host that was configure ot use raw storage that file will get converted and fill the host storage. if the YYY image is a driver disk or install iso then generally we would suggest takign a differnt approch if its a driver disk then you would boot a vm form the XXX image as normal and attach the iso as a cinder volume. if it was a install iso then the normal workflow is described here https://docs.openstack.org/nova/rocky/user/launch-instance-using-ISO-image.h...
Thank you for your help. Nemanja
On Mon, Apr 3, 2023, at 2:33 PM, Sean Mooney wrote:
Hello,
Nova does not support image to local block device mapping since issue in this bug is fixed: https://bugs.launchpad.net/nova/+bug/1377958
In particular I am interested in scenario best described with this command: openstack server create --flavor m1.small --network mgmt --image XXX \ --block-device uuid=YYY,source_type=image,\ destination_type=local,disk_bus=ide,device_type=cdrom,boot_index=1 testvm300
For above command nova gives error: Block Device Mapping is Invalid: Mapping image to local is not supported.
Libvirt does not have issues with having two block devices which have file source.
My question is what am I missing here? Why Nova does not support image to local block device mapping?
On Mon, 2023-04-03 at 10:44 +0200, Nemanja Miletic wrote: the simple answer is that if we allow this then you could eiasly fill the hosts root file system
in yoru exmaple you are using two diffent images but the size of the second image YYY would not be accounted for in the placment resouce allocation of local vm usage.
if you created a 100TB glance image as a qcow and then specifed it on a host that was configure ot use raw storage that file will get converted and fill the host storage. if the YYY image is a driver disk or install iso then generally we would suggest takign a differnt approch if its a driver disk then you would boot a vm form the XXX image as normal and attach the iso as a cinder volume. if it was a install iso then the normal workflow is described here https://docs.openstack.org/nova/rocky/user/launch-instance-using-ISO-image.h...
In my use case both boot image and CD-ROM need to be present on first boot. (cd-rom contains bootstrap data for the image, can not use user-data as it is limited to 64k). I have a cluster without Cinder (block storage). The only workaround I see is to deploy Cinder with LVM backend on one node and use volume as a destination_type for cd-rom. That is a waste as cd-rom data can be thrown away after first boot but it seems like an only option. Please correct me if I am wrong. I am also planing to use Heat to deploy the image in an automated way so first booting and then attaching cdrom is not an option.
participants (2)
-
Nemanja Miletic
-
Sean Mooney