A follow up on this. I was able to find a solution, though I don't think it is really the 'right' solution.
In the cinder/volume/driver.py file I made a change as follows: def _run_iscsiadm(self, iscsi_properties, iscsi_command, **kwargs): check_exit_code = kwargs.pop('check_exit_code', 0) (out, err) = self._execute('iscsiadm', '-m', 'node', '-T', iscsi_properties['target_iqn'], '-p', iscsi_properties['target_portal'], *iscsi_command, run_as_root=True, check_exit_code=check_exit_code) LOG.debug("iscsiadm %s: stdout=%s stderr=%s" % (iscsi_command, out, err)) return (out, err) Changed to: def _run_iscsiadm(self, iscsi_properties, iscsi_command, **kwargs): check_exit_code = kwargs.pop('check_exit_code', 0) (out, err) = utils.execute('iscsiadm', '-m', 'node', '-T', iscsi_properties['target_iqn'], '-p', iscsi_properties['target_portal'], *iscsi_command, run_as_root=True, check_exit_code=check_exit_code) LOG.debug("iscsiadm %s: stdout=%s stderr=%s" % (iscsi_command, out, err)) return (out, err) This allows the Cinder service to properly use SSH to the EQL box when needed (most of the time for 'administrative' work) and to run commands for iscsi connections on itself or compute nodes etc. when needed. I'm pretty sure this is not a great idea since that code is subject to a lot more fiddling and change with future releases but the eqlx driver file seems to have a lot more in it that would require change. Hopefully that is helpful. Thanks On 8/1/2013 3:46 PM, Jon Bayless wrote: > Hello. Hoping to find some help with an issue in my attempt to use an > Equallogic array for a storage back end for Cinder with OpenStack Grizzly. > > Since the Crowbar Grizzly release is not complete yet, we are trying to > use the Rackspace Private Cloud installer tool and so far it has worked > very well. Using it with a Ceph storage back end worked great but we > want to see how things work with Equallogic. > > We have a fresh Equallogic running 6.0.2 release firmware and have > installed the eqlx.py into the appropriate driver location for the > Cinder setup. The config is all in place and we can start the Cinder > volume service just fine. Creating and deleting volumes works as well. > > The problem comes when we try to actually use the Equallogic to actually > have the controller node or compute node login to an iSCSI volume to put > data on it (such as making a volume from an image). The log result is as > follows: > > 2013-08-01 13:46:20 ERROR [cinder.volume.manager] Error: ['Traceback > (most recent call last): > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", > line 250, in create_volume > image_location) > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", > line 189, in _create_volume > image_id) > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", > line 602, in _copy_image_to_volume > image_id) > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/driver.py", > line 362, in copy_image_to_volume > iscsi_properties, volume_path = self._attach_volume( > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/driver.py", > line 398, in _attach_volume > try: > ', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/driver.py", > line 304, in _run_iscsiadm > *iscsi_command, run_as_root=True, > ', ' File > "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/eqlx.py", line > 221, in _execute > return self._run_ssh(command, timeout=FLAGS.eqlx_cli_timeout) > ', ' File > "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/eqlx.py", line > 73, in __inner > res = gt.wait() > ', ' File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", > line 168, in wait > return self._exit_event.wait() > ', ' File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line > 116, in wait > return hubs.get_hub().switch() > ', ' File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line > 187, in switch > return self.greenlet.switch() > ', ' File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", > line 194, in main > result = function(*args, **kwargs) > ', ' File > "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/eqlx.py", line > 253, in _run_ssh > raise exception.Error(msg, out) > ', "Error: (u'Error executing EQL command: stty columns 255', ['iscsiadm > -m node -T > iqn.2001-05.com.equallogic:0-8a0906-b0976c809-2160000005851fab-volume-25fea6db-dd20-4f8a-9099-f1d96c122b3d > -p 10.64.0.5:3260', ' ^', 'Error: Bad command', > 'OpenStack-InternalGroup> ']) > "] > > I'm no programmer but from what I can tell, it seems the eqlx driver is > somehow causing Cinder-volume to try to run the iscsiadm command at the > end of that log entry via SSH on the Equallogic shell. Obviously that > won't work but I can't figure out why it is happening. > > Any insights? > > Thanks > > _______________________________________________ > Crowbar mailing list > Crowbar@dell.com > https://lists.us.dell.com/mailman/listinfo/crowbar > For more information: http://crowbar.github.com/ > _______________________________________________ Crowbar mailing list Crowbar@dell.com https://lists.us.dell.com/mailman/listinfo/crowbar For more information: http://crowbar.github.com/