PowerFlex. OpenStack: Размер тома не совпадает, если image_volume_cache_enabled имеет значение «True»
Summary: При использовании параметра «image_volume_cache_enabled» в среде OpenStack/RHOSP (Red Hat OpenStack Platform) наблюдаются следующие два признака. Симптом 1: При первом создании загрузочного тома из общего изображения размер созданного тома всегда составлял 8 Гбайт на стороне OpenStack. Признак 2. Во второй раз, а также при последующих создании загрузочных томов из кэша тома образа, размер созданных томов не округлялся до 8 ГБ на стороне OpenStack. ...
Symptoms
При использовании параметра «image_volume_cache_enabled» в среде OpenStack/RHOSP (Red Hat OpenStack Platform) наблюдаются следующие два признака.
Симптом 1:
При первом создании загрузочного тома из образа Glance размер созданного тома всегда равен 8 Гбайт на стороне OpenStack.
Признак 2.
Во второй раз, когда загрузочные тома создавались из кэша тома образа, размер созданных томов не округлялся до 8 ГБ на стороне OpenStack.
В OpenStack/RHOSP с внутренним хранилищем PowerFlex Cinder
В файле cinder.conf указывается параметр "image_volume_cache_enabled = True, и создаются загрузочные тома.
Симптом 1:
Например, при первоначальном запросе на создание загрузочного тома емкостью 33 Гбайт OpenStack и PowerFlex ожидали иметь одинаковый объем тома 40 Гбайт. Однако том объемом 8 Гбайт был создан на стороне OpenStack.
$ openstack volume list --long
$
$ openstack volume create --image cirros --type sio --size 33 33gb-1
$ openstack volume list --long
+--------------------------------------+--------------------------------------------+-------
| ID | Name | Status | Size | Type | Bootable | Attached to | Properties |
+--------------------------------------+--------------------------------------------+-------
| fed72292-fd84-4b33-bf63-063f1bfb9f75 | 33gb-1 | available | 8 | sio | true | | | <<< 40 was expected but is 8.
| 364b78a7-0714-4b70-be16-8ec139564cb0 | image-b7d6350e-f835-4310-a5f4-6b6535ce86c4 | available | 8 | sio | false | | readonly='True' | <<< This is the volume-image cache (snapshot).
+--------------------------------------+--------------------------------------------+-------
# scli --query_all_volumes
Volume ID: b582f85000000000 Name: mUnBlKjqSfur1KQillkMEw== Size: 40.0 GB (40960 MB) Not mapped Thin-provisioned <<< This is the corespoinding volume to "33gb-1".
Volume ID: b582f85100000001 Name: aWB3fINbQ7GV4BMlUXsOPQ== Size: 8.0 GB (8192 MB) Not mapped Snapshot of mUnBlKjqSfur1KQillkMEw==
Признак 2.
Например, если запрашивается создание загрузочного тома емкостью 50 Гбайт и активирована кэш-память образа тома, OpenStack и PowerFlex ожидают иметь одинаковый объем тома 56 Гбайт. Однако том объемом 50 Гбайт был создан на стороне OpenStack.
$ openstack volume create --image cirros --type sio --size 50 50gb-1
$ openstack volume list --long
+--------------------------------------+--------------------------------------------+-------
| ID | Name | Status | Size | Type | Bootable | Attached to | Properties |
+--------------------------------------+--------------------------------------------+-------
| 1f0a279f-9c3d-42a2-ba9c-f31fa160c92c | 50gb-1 | available | 50 | sio | true | | | <<< 56 was expected but is 50.
| fed72292-fd84-4b33-bf63-063f1bfb9f75 | 33gb-1 | available | 8 | sio | true | | |
| 364b78a7-0714-4b70-be16-8ec139564cb0 | image-b7d6350e-f835-4310-a5f4-6b6535ce86c4 | available | 8 | sio | false | | readonly='True' |
+--------------------------------------+--------------------------------------------+-------
# scli --query_all_volumes
Volume ID: b582f85000000000 Name: mUnBlKjqSfur1KQillkMEw== Size: 40.0 GB (40960 MB) Not mapped Thin-provisioned
Volume ID: b582f85100000001 Name: aWB3fINbQ7GV4BMlUXsOPQ== Size: 8.0 GB (8192 MB) Not mapped Snapshot of mUnBlKjqSfur1KQillkMEw==
Volume ID: b582f85200000002 Name: cYLfBQJFRHKUjNjEtQpyAw== Size: 56.0 GB (57344 MB) Not mapped Snapshot of aWB3fINbQ7GV4BMlUXsOPQ== <<< This is the corresponding volume to "50gb-1".
Воздействие
Не удается правильно управлять емкостью внутреннего хранилища и размером тома на стороне OpenStack.
Cause
Симптом 1:
Эта проблема связана не с драйвером Cinder, а с внутренним механизмом OpenStack Cinder. Проблема заключается в том, что Cinder не ожидает, что хранилище будет возвращать диски другого размера, чем указано пользователем.
Чтобы решить эту проблему, исправьте файл Cinder cinder/volume/flows/manager/create_volume.py . Он должен знать о возможном округлении по шлакообразному драйверу или внутреннему хранилищу и исправлять соответствующие наборы тестов.
Отслеживание проблем #1915015 было открыто для сообщества OpenStack Cinder для решения этой проблемы. Ошибка #1915015 "Том PowerFlex имеет недопустимый размер после создания ...": Ошибки: Шлак
Признак 2.
Это проблема драйвера Cinder, связанная с функцией create_volume_from_snapshot. Та же проблема возникает и с create_cloned_volume/extend_volume .
В драйвере Cinder есть возможность исправить это, вернув реальный размер тома, но этот способ не смог пройти циклы тестирования Tempest из-за другой проблемы на стороне Tempest.
На данный момент проблема Tempest должна быть устранена в первую очередь, чтобы внедрить исправление в драйвер Cinder.
Отслеживание проблем #1917299 было открыто для сообщества OpenStack Tempest для решения этой проблемы. см. Ошибка #1917299 "Требуется конфигурация размера блока для создания тома": Ошибки : tempest
Заметка: Это не связано с симптомом 1. Теоретически пользователи могут столкнуться с этой проблемой даже без опции image_volume_cache_enabled , но при вызове вышеуказанных функций.
Resolution
Это не проблема PowerFlex. Обратитесь к поставщику OpenStack и поделитесь этой статьей Dell, а также укажите номера отслеживания проблем.
Additional Information
Затронутые версии:
Все
исправлено в версии:
Предполагаемое время решения проблем не подлежит определению.
Ссылки:
Кэш-память тома Cinder Image:
Это необязательный параметр, реализованный в компоненте Cinder для значительного повышения производительности создания тома из кэша изображений с помощью функции создания моментальных снимков внутреннего хранилища. См. документ OpenStack: https://docs.openstack.org/cinder/latest/admin/blockstorage-image-volume-cache.html
Tempest:
OpenStack Integration Test Suite используется не только для регрессионного тестирования, но и для квалификации. См. документ по OpenStack: https://docs.openstack.org/tempest/latest/overview.html
Когда была написана эта статья:
- Симптом 1: Временное решение проблемы image_volume_cache_enabled параметра «» отсутствует
- Признак 2. Единственное возможное временное решение — всегда указывать размер тома, кратный 8 Гбайт.