Activity log for bug #1648972

Date Who What changed Old value New value Message
2016-12-10 13:11:56 Turbo Fredriksson bug added bug
2016-12-10 13:30:43 Turbo Fredriksson description I've forked a Cinder/ZFSonLinux driver and got it working on Mitaka a few months ago. After a lot of troubles because an accidental upgrade to Newton, I decided to scratch everything and start over, this time using Debian GNU/Linux Stretch (instead of Sid), which come by default with Newton. But trying to create an instance, using a ZoL root volume, it fails to boot because the volume is not a bootable volume. Creating a "stand alone" volume works fine, but it's the copying of the image (from Glance) onto the volume that fails. Looking through the logs, adding some debugging here and there, it is because the copy_image_to_volume() is called _before_ create_export() and initialize_connection(), leaving create_volume() without a destination. This is the excerpts from the logs: Updating volume stats _update_volume_stats /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:231 create_volume(volume-826bed7f-8d5f-488a-9ea7-2cb96e25a267) => 826bed7f-8d5f-488a-9ea7-2cb96e25a267 create_volume /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:207 _find_iscsi_block_device(826bed7f-8d5f-488a-9ea7-2cb96e25a267) _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:556 copy_image_to_volume: volume_id='826bed7f-8d5f-488a-9ea7-2cb96e25a267', dest='False' copy_image_to_volume /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:702 create_export(826bed7f-8d5f-488a-9ea7-2cb96e25a267) create_export /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:646 create_export(): Trying to share "share/VirtualMachines/Blade_Center/volume-826bed7f-8d5f-488a-9ea7-2cb96e25a267" create_export /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:649 initialize_connection(826bed7f-8d5f-488a-9ea7-2cb96e25a267) initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:583 _find_target: return iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:482 initialize_connection: target=iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:591 _login_target(10.0.3.253:3260, iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267) _login_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:489 _find_iscsi_block_device(826bed7f-8d5f-488a-9ea7-2cb96e25a267) _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:556 _find_target: return iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:482 _find_iscsi_block_device: target=iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:562 initialize_connection: block_dev=/dev/sdc initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:601 Updating volume stats _update_volume_stats /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:231 Because this is a remote storage SAN, create_volume() does an ssh to the storage/SAN and creates the volume. The create_export() also uses ssh to create a iSCSI target on the remote storage/SAN.. But because this is done _after_ attempting to copy the image to the volume, the whole thing fails.. I'm not sure what changed between Mitaka and Newton or if it's something I have failed to 'port' or configure (my cinder.conf is identical), but I've looked at the lvm.py driver as well as http://docs.openstack.org/developer/cinder/devref/drivers.html and as far as I can tell, I'm doing "The Right Thing (tm)". The driver can be found at https://github.com/FransUrbo/Openstack-ZFS/blob/master/zol.py. I've forked a Cinder/ZFSonLinux driver and got it working on Mitaka a few months ago. After a lot of troubles because an accidental upgrade to Newton, I decided to scratch everything and start over, this time using Debian GNU/Linux Stretch (instead of Sid), which come by default with Newton. But trying to create an instance, using a ZoL root volume, it fails to boot because the volume is not a bootable volume. Creating a "stand alone" volume works fine, but it's the copying of the image (from Glance) onto the volume that fails. Looking through the logs, adding some debugging here and there, it is because the copy_image_to_volume() is called _before_ create_export() and initialize_connection(), leaving create_volume() without a destination. This is the excerpts from the logs: Updating volume stats _update_volume_stats /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:231 create_volume(volume-826bed7f-8d5f-488a-9ea7-2cb96e25a267) => 826bed7f-8d5f-488a-9ea7-2cb96e25a267 create_volume /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:207 _find_iscsi_block_device(826bed7f-8d5f-488a-9ea7-2cb96e25a267) _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:556 copy_image_to_volume: volume_id='826bed7f-8d5f-488a-9ea7-2cb96e25a267', dest='False' copy_image_to_volume /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:702 create_export(826bed7f-8d5f-488a-9ea7-2cb96e25a267) create_export /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:646 create_export(): Trying to share "share/VirtualMachines/Blade_Center/volume-826bed7f-8d5f-488a-9ea7-2cb96e25a267" create_export /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:649 initialize_connection(826bed7f-8d5f-488a-9ea7-2cb96e25a267) initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:583 _find_target: return iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:482 initialize_connection: target=iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:591 _login_target(10.0.3.253:3260, iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267) _login_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:489 _find_iscsi_block_device(826bed7f-8d5f-488a-9ea7-2cb96e25a267) _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:556 _find_target: return iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_target /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:482 _find_iscsi_block_device: target=iqn.2012-11.com.bayour:share.virtualmachines.blade.center.volume.826bed7f.8d5f.488a.9ea7.2cb96e25a267 _find_iscsi_block_device /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:562 initialize_connection: block_dev=/dev/sdc initialize_connection /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:601 Updating volume stats _update_volume_stats /usr/lib/python2.7/dist-packages/cinder/volume/drivers/zol.py:231 Because this is a remote storage SAN, create_volume() does an ssh to the storage/SAN and creates the volume, the create_export() also uses ssh to create a iSCSI target on the remote storage/SAN and then initialize_connection() uses iscsiadm to login to the target on the Cinder host (which creates the device/target for copy image).. But because all this is done _after_ attempting to copy the image to the volume, the whole thing fails.. I'm not sure what changed between Mitaka and Newton or if it's something I have failed to 'port' or configure (my cinder.conf is identical), but I've looked at the lvm.py driver as well as http://docs.openstack.org/developer/cinder/devref/drivers.html and as far as I can tell, I'm doing "The Right Thing (tm)". The driver can be found at https://github.com/FransUrbo/Openstack-ZFS/blob/master/zol.py.
2019-02-05 21:42:36 Eric Harney cinder: status New Invalid