0

I have a question related to parameters which becomes deprecated(stores and default_store). They're going to be removed from Stein, due to this info: https://docs.openstack.org/glance/stein/configuration/glance_api.html We faced an issue with broken cooperation between cinder and glance. In our logs(glance-api) we observed such warning message:

2021-02-22 15:30:02.894 756 WARNING oslo_config.cfg [-] Deprecated: Option "stores" from group "glance_store" is deprecated for removal (
This option is deprecated against new config option
``enabled_backends`` which helps to configure multiple backend stores
of different schemes.

This option is scheduled for removal in the Stein development
cycle.
).  Its value may be silently ignored in the future.
2021-02-22 15:30:02.896 756 WARNING oslo_config.cfg [-] Deprecated: Option "default_store" from group "glance_store" is deprecated for removal (
This option is deprecated against new config option
``default_backend`` which acts similar to ``default_store`` config
option.

This option is scheduled for removal in the Stein development
cycle.
).  Its value may be silently ignored in the future.

And we simply wanted to solve this problem, by changing option glance_store to enabled_backends and default_store to default_backend:

@@ -2079,7 +2079,7 @@ pool_timeout = 60
# cycle.
#stores = file,http

-stores = glance.store.rbd.Store
+enabled_backends = glance.store.rbd.Store

# DEPRECATED:
# The default scheme to use for storing images.
@@ -2134,7 +2134,7 @@ stores = glance.store.rbd.Store
# cycle.
#default_store = file

-default_store = rbd
+default_backend = rbd

But then we realized that we’re not able to create volumes from new images, because we hit an issue:

2021-02-22 22:45:08.805 5910 ERROR cinder.scheduler.filter_scheduler [req-fe8e8aa2-dd8a-470b-9d70-dbdc757b48d9 54df39e1b74149bcb8cf9ad3eb957d48 afdfb965515f4724a21b6823764ec36d - default default] Error scheduling 9de37fe8-4f9e-4c29-8cfa-c1a71e8c68b7 from last vol-service: cinder-05@huawei_backend#StoragePool001 : [u'Traceback (most recent call last):\n', u'  File "/usr/lib/python2.7/dist-packages/taskflow/engines/action_engine/executor.py", line 53, in _execute_task\n    result = task.execute(**arguments)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/volume/flows/manager/create_volume.py", line 1059, in execute\n    **volume_spec)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/utils.py", line 818, in _wrapper\n    return r.call(f, *args, **kwargs)\n', u'  File "/usr/lib/python2.7/dist-packages/retrying.py", line 206, in call\n    return attempt.get(self._wrap_exception)\n', u'  File "/usr/lib/python2.7/dist-packages/retrying.py", line 247, in get\n    six.reraise(self.value[0], self.value[1], self.value[2])\n', u'  File "/usr/lib/python2.7/dist-packages/retrying.py", line 200, in call\n    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/volume/flows/manager/create_volume.py", line 959, in _create_from_image\n    image_service)\n', u'  File "<decorator-gen-238>", line 2, in _prepare_image_cache_entry\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/coordination.py", line 151, in _synchronized\n    return f(*a, **k)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/volume/flows/manager/create_volume.py", line 757, in _prepare_image_cache_entry\n    update_cache=True)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/volume/flows/manager/create_volume.py", line 831, in _create_from_image_cache_or_download\n    backend_name) as tmp_image:\n', u'  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__\n    return self.gen.next()\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/image_utils.py", line 832, in fetch\n    fetch_verify_image(context, image_service, image_id, tmp)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/image_utils.py", line 451, in fetch_verify_image\n    None, None)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/image_utils.py", line 377, in fetch\n    tpool.Proxy(image_file))\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/glance.py", line 358, in download\n    _reraise_translated_image_exception(image_id)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/glance.py", line 602, in _reraise_translated_image_exception\n    six.reraise(type(new_exc), new_exc, exc_trace)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/glance.py", line 356, in download\n    image_chunks = self._client.call(context, \'data\', image_id)\n', u'  File "/usr/lib/python2.7/dist-packages/cinder/image/glance.py", line 225, in call\n    return getattr(controller, method)(*args, **kwargs)\n', u'  File "/usr/lib/python2.7/dist-packages/glanceclient/common/utils.py", line 545, in inner\n    return RequestIdProxy(wrapped(*args, **kwargs))\n', u'  File "/usr/lib/python2.7/dist-packages/glanceclient/v2/images.py", line 208, in data\n    resp, body = self.http_client.get(url)\n', u'  File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 328, in get\n    return self.request(url, \'GET\', **kwargs)\n', u'  File "/usr/lib/python2.7/dist-packages/glanceclient/common/http.py", line 349, in request\n    return self._handle_response(resp)\n', u'  File "/usr/lib/python2.7/dist-packages/glanceclient/common/http.py", line 98, in _handle_response\n    raise exc.from_response(resp, resp.content)\n', u'HTTPInternalServerError: HTTPInternalServerError (HTTP 500)\n']

Which is visible in cinder-scheduler log file. When we reverted a change, everything started to operate normally. I’m just wondering how we can skip this warning message and makes cinder and glance to cooperate correctly, especially that we’re planning to make an upgrade from Rocky to Stein soon and this option is planned to be removed in the Stein release. Thanks in advance for your help here.

1 Answers1

0

The syntax for defining enabled backends is a bit different - it must be a set of key:value pairs, where value can be: file, http, rbd, swift, cinder or vmware. For each key you also need to declare a new options group.

Source.

The source provides an example using rbd, which I guess would be more appropriate for you. I set up glance according to the example and everything appears to be working.

[DEFAULT]
enabled_backends = file_back:file, http_back:http

# ...

[glance_store]
default_backend = file_back

# ...

[file_back]
filesystem_store_datadir = /var/lib/glance/images/
store_description = "File storage backend"

[http_back]
store_description = "HTTP storage backend"