PowerFlex:OpenStack:image_volume_cache_enabledがTrueの場合のボリューム サイズの不一致
Summary: OpenStack/RHOSP (Red Hat OpenStack Platform)環境でオプション「image_volume_cache_enabled」を使用すると、次の2つの現象が発生します。 現象1:Glanceイメージからブータブル ボリュームを作成するのは初めてですが、作成されたボリューム サイズは常にOpenStack側で8 GBになりました。 現象2:2回目以降のイメージボリューム キャッシュからのブータブル ボリュームの作成時に、作成されたボリュームのサイズがOpenStack側で8 GBに丸められませんでした。 ...
Symptoms
OpenStack/RHOSP (Red Hat OpenStack Platform)環境でオプション「image_volume_cache_enabled」を使用すると、次の2つの現象が発生します。
現象1:
概要イメージからブータブル ボリュームを初めて作成すると、作成されたボリューム サイズは常にOpenStack側で8 GBになります。
現象2:
イメージボリューム キャッシュからのブータブル ボリュームの作成の2回目以降、作成されたボリュームのサイズがOpenStack側で8 GBに丸められませんでした。
OpenStack/RHOSPとPowerFlex Cinderバックエンド ストレージ
cinder.confでオプション「image_volume_cache_enabled = True」が指定され、ブータブル ボリュームが作成されます。
現象1:
たとえば、最初に33 GBのブータブル ボリュームの作成が要求された場合、OpenStackとPowerFlexの両方で同じ40 GBサイズのボリュームが作成される予定でした。しかし、OpenStack側では8 GBのボリュームが作成されました。
$ 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サイズのボリュームが作成されることが予想されます。しかし、OpenStack側では50 GBのボリュームが作成されました。
$ 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を修正します。cinderドライバーまたはバックエンド ストレージによる丸めの可能性を認識し、対応するテスト スイートを修正する必要があります
問題追跡 #1915015 は、OpenStack Cinder コミュニティーが問題に対処するために開設されました。cf. バグ#1915015「PowerFlexボリュームは、作成後に無効なサイズを持っています...」: バグ:燃え殻
現象2:
これは、create_volume_from_snapshot関数に関連した、Cinderドライバーの問題です。create_cloned_volume/extend_volumeにも同じ問題があります
実際のボリューム サイズを返すことによってCinderドライバーで修正するオプションがありますが、その方法では、Tempest側の別の問題により、Tempestテスト サイクルに合格できませんでした
現時点では、Cinderドライバーで修正を実装するために、まずTempestの問題を修正する必要があります。
問題追跡 #1917299 は、OpenStack Tempest コミュニティーが問題に対処するために開設されました。cf. バグ #1917299 「ボリューム作成にはチャンクサイズの設定が必要です」: バグ : tempest
手記:これは現象1とは関係ありません。理論的には、image_volume_cache_enabledオプションがなくても、上記の関数が呼び出されると、この問題が発生します。
Resolution
これはPowerFlexの問題ではありません。OpenStackベンダーに問い合わせ、このDellの記事を共有し、この問題のトラッキング番号を伝えてください。
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の倍数のボリューム サイズを指定することです。