PowerFlex:OpenStack:当 image_volume_cache_enabled 为 True 时,卷大小不匹配
Summary: 在 OpenStack/RHOSP(Red Hat OpenStack 平台)环境中使用选项“image_volume_cache_enabled”时,观察到以下两个症状。 症状 1:首次从概览映像创建可引导卷时,创建的卷大小始终在 OpenStack 端变为 8 GB。 症状 2:在第二次及以后从映像卷高速缓存创建可启动卷时,所创建卷的大小在 OpenStack 端未舍入为 8 GB。 ...
Symptoms
在 OpenStack/RHOSP(Red Hat OpenStack 平台)环境中使用选项“image_volume_cache_enabled”时,观察到以下两个症状。
症状 1:
首次从概览映像创建可引导卷时,创建的卷大小始终在 OpenStack 端变为 8 GB。
症状 2:
第二次从映像卷高速缓存创建可引导卷时,所创建卷的大小在 OpenStack 端未舍入为 8 GB。
在具有 PowerFlex Cinder 后端存储的 OpenStack/RHOSP 中
在 cinder.conf 中指定选项 “image_volume_cache_enabled = True”,并创建可引导卷。
症状 1:
例如,最初请求创建 33 GB 可引导卷时,OpenStack 和 PowerFlex 预计具有相同的 40 GB 大小卷。但是,8 GB 卷是在 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 GB 可引导卷,OpenStack 和 PowerFlex 预计具有相同的 56 GB 大小卷。但是,50 GB 卷是在 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 不会期望存储返回与用户指定的大小不同的磁盘。
要解决此问题,请修复 Cindercinder/volume/flows/manager/create_volume.py 文件。它必须知道 cinder 驱动程序或后端存储可能进行舍入,并更正相应的测试套件。
OpenStack Cinder 社区开放了问题跟踪 #1915015 以解决此问题。参见 错误 #1915015“PowerFlex 卷在创建 f...后大小无效”:错误:煤渣
症状 2:
这是 create_volume_from_snapshot 功能的 Cinder 驱动程序问题。create_cloned_volume/extend_volume具有相同的问题。
有一个选项可以通过返回实际卷大小在 Cinder 驱动程序中修复它,但由于 Tempest 端的另一个问题,这种方式无法通过 Tempest 测试周期。
目前,必须先修复 Tempest 问题,才能在 Cinder 驱动程序中实施修复。
问题跟踪 #1917299 已开放给 OpenStack Tempest 社区以解决此问题。参见错误 #1917299“需要块大小配置才能创建卷”:错误 : 暴风雨
注意:这与症状 1 无关。从理论上讲,即使用户没有 image_volume_cache_enabled 选项,但在调用上述功能时,也会遇到此问题。
Resolution
这不是 PowerFlex 问题。请联系 OpenStack 供应商并分享此戴尔文章并提及问题跟踪编号。
Additional Information
受影响的版本:
所有
已修复问题的版本:
待确定,没有估计的解决时间。
引用:
Cinder 映像卷高速缓存:
这是 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 GB 的卷大小倍数。