OpenStack Discussions

cinder create fail with netapp qos extra-spec.

youngs

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

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

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

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

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

I test all case and were failed..

akerr

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

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public