OpenStack Discussions

cinder create fail with netapp qos extra-spec.

youngs
4,582 Views

we are doing openstack POC ( UBUNTU 12.04 KVM HAVANA with ONTAP cDOT 8.2P3)

At first, we created  QOS policy " qos_pol_100m  " with system manager .

An then,

we tested netapp qos extra-spec.

==================

# cinder type-create qos

# cinder type-key  27de5229-5f2b-442f-bde0-078aff6a4e36 set netapp:qos_policy_group=qos_pol_50m  

# cinder extra-specs-list

+--------------------------------------+------+-----------------------------------------------+

|                  ID                  | Name |                  extra_specs                  |

+--------------------------------------+------+-----------------------------------------------+

| 27de5229-5f2b-442f-bde0-078aff6a4e36 | qos | {u'netapp:qos_policy_group': u'qos_pol_50m'} |

+--------------------------------------+------+-----------------------------------------------+

# cinder create --display-name test --volume-type qos 2

Error LOG is

---------------------------------------------------

cinder-scheduler.log Error

2014-02-18 18:47:14.013 32724 ERROR cinder.scheduler.filter_scheduler [req-f4593eed-b942-4d4f-9209-ce7a9a83e33b 3712ec7a451f452ebf0903bbff517c85 ca966fc251414a5caf81f3c62a994527] Error scheduling None from last vol-service: LCNSAVPC81DVPUB1 : [u'Traceback (most recent call last):\n', u'  File "/opt/openstack/cinder/cinder/taskflow/patterns/linear_flow.py", line 172, in run_it\n    result = runner(context, *args, **kwargs)\n', u'  File "/opt/openstack/cinder/cinder/taskflow/utils.py", line 260, in __call__\n    self.result = self.task(*args, **kwargs)\n', u'  File "/opt/openstack/cinder/cinder/volume/flows/create_volume/__init__.py", line 1499, in __call__\n    **volume_spec)\n', u'  File "/opt/openstack/cinder/cinder/volume/flows/create_volume/__init__.py", line 1470, in _create_raw_volume\n    return self.driver.create_volume(volume_ref)\n', u'  File "/opt/openstack/cinder/cinder/volume/drivers/netapp/iscsi.py", line 177, in create_volume\n    self._create_lun_on_eligible_vol(name, size, metadata, extra_specs)\n', u'  File "/opt/openstack/cinder/cinder/volume/drivers/netapp/iscsi.py", line 794, in _create_lun_on_eligible_vol\n    raise exception.VolumeBackendAPIException(data=msg % name)\n', u'VolumeBackendAPIException: Bad or unexpected response from the storage volume backend API: Failed to get vol with required size and extra specs for volume: volume-2efa9040-68e0-43e8-86bf-7114e44136f1\n']
2014-02-18 18:47:14.032 32724 ERROR cinder.volume.flows.create_volume [req-f4593eed-b942-4d4f-9209-ce7a9a83e33b 3712ec7a451f452ebf0903bbff517c85 ca966fc251414a5caf81f3c62a994527] Failed to schedule_create_volume: No valid host was found. Exceeded max scheduling attempts 3 for volume None

Is it any miss step or sentence ???

normal cinder create is OK

$ cinder create --display-name test 2

$ cinder list

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

| 752b6388-4c66-4931-87fa-9abddc59dca3 | available |     test     |  2   |     None    |  false   |             |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

1 ACCEPTED SOLUTION

akerr
4,582 Views

I have double checked with our developer and there is a hard-coded value of 30 minutes between SSC updates.  So you can either wait for up to 30 minutes after creating a volume with the new QOS policy, or you can restart the cinder service to force the update right away.

View solution in original post

4 REPLIES 4

akerr
4,582 Views

Hi Youngs,

I believe this is a timing issue.  The driver only updates the backend storage service catalog every so often.  I do not remember the exact timing but it is somewhat slow.  You can force an update of the catalog by restarting the cinder driver.  When I tested this issue myself, I saw the same behavior you did and a cinder restart fixed it.  Otherwise I think you have to wait a while for the driver to recognize that there is a new QOS Policy Group created on the filer.

akerr
4,582 Views

Also double check your names.  In the example you provided you said you created " qos_pol_100m  " with system manager, but you added netapp:qos_policy_group=qos_pol_50m as your volume type extra-spec.  I'm assuming this was simply a type-o, but if not then it would also explain why this is failing.

youngs
4,583 Views

my mistake .I  created " qos_pol_100m &  qos_pol_50m " with system manager

I test all case and were failed..

akerr
4,583 Views

I have double checked with our developer and there is a hard-coded value of 30 minutes between SSC updates.  So you can either wait for up to 30 minutes after creating a volume with the new QOS policy, or you can restart the cinder service to force the update right away.

Public