Hi Thomas, I try to reproduce your situation, and found the same result you provide. Then I try to replace all FLAGS. with self.configuration. in cinder/volume/drivers/nexenta/volume.py and there are new error messages. 2013-05-21 19:14:41 INFO [cinder.volume.manager] volume volume-c3f86e6a-db2b-441c-8507-0f531c1fcafe: creating 2013-05-21 19:14:41 ERROR [cinder.volume.manager] Error: ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", line 251, in create_volume\n image_location)\n', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", line 168, in _create_volume\n model_update = self.driver.create_volume(volume_ref)\n', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/nexenta/volume.py", line 123, in create_volume\n self._get_zvol_name(volume[\'name\']),\n', ' File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/nexenta/volume.py", line 105, in _get_zvol_name\n return \'%s/%s\' % (self.configuration.nexenta_volume, volume_name)\n', "NameError: global name 'self' is not defined\n"] 2013-05-21 19:14:41 ERROR [cinder.volume.manager] volume volume-c3f86e6a-db2b-441c-8507-0f531c1fcafe: create failed 2013-05-21 19:14:41 ERROR [cinder.openstack.common.rpc.amqp] Exception during message handling Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/cinder/openstack/common/rpc/amqp.py", line 430, in _process_data rval = self.proxy.dispatch(ctxt, version, method, **args) File "/usr/lib/python2.7/dist-packages/cinder/openstack/common/rpc/dispatcher.py", line 133, in dispatch return getattr(proxyobj, method)(ctxt, **kwargs) File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", line 282, in create_volume LOG.error(_("volume %s: create failed"), volume_ref['name']) File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__ self.gen.next() File "/usr/lib/python2.7/dist-packages/cinder/volume/manager.py", line 274, in create_volume model_update = self.driver.create_export(context, volume_ref) File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/nexenta/volume.py", line 250, in create_export loc = self._do_export(_ctx, volume, ensure=False) File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/nexenta/volume.py", line 193, in _do_export zvol_name = self._get_zvol_name(volume['name']) File "/usr/lib/python2.7/dist-packages/cinder/volume/drivers/nexenta/volume.py", line 105, in _get_zvol_name return '%s/%s' % (self.configuration.nexenta_volume, volume_name) NameError: global name 'self' is not defined So it seems the function with @staticmethod annotation must use FLAGS to access the configurations. Since FLAGS.register_opts(nexenta_opts) only gets the default value, I suggest you two temporary solutions: 1. Use the default Nexenta Volume name (i.e cinder) 2. Change the default Nexenta Volume name used in cinder/volume/drivers/nexenta/volume.py cfg.StrOpt('nexenta_volume', default='ZPOOL_TEST', help='pool on SA that will hold all volumes'), Because I am not the author of Cinder nor Nexenta Driver, I can not sure what's the problem on FLAGS. This is my best solutions I can give you.