PowerFlex: OpenStack: image_volume_cache_enabled가 True인 경우 볼륨 크기가 일치하지 않음
Summary: OpenStack/RHOSP(Red Hat OpenStack Platform) 환경에서 "image_volume_cache_enabled" 옵션을 사용할 때 다음 두 가지 증상이 관찰됩니다. 증상 1: Glance 이미지에서 부팅 가능한 볼륨을 처음으로 생성했을 때, 생성된 볼륨 크기는 항상 OpenStack 측에서 8GB가 되었습니다. 증상 2: 이미지 볼륨 캐시에서 두 번째로 부팅 가능한 볼륨을 생성할 때 OpenStack 측에서 생성된 볼륨의 크기가 8GB로 반올림되지 않았습니다. ...
Symptoms
OpenStack/RHOSP(Red Hat OpenStack Platform) 환경에서 "image_volume_cache_enabled" 옵션을 사용할 때 다음 두 가지 증상이 관찰됩니다.
증상 1:
한눈에 보기 이미지에서 부팅 가능한 볼륨이 처음 생성되면 생성된 볼륨 크기는 OpenStack 측에서 항상 8GB가 됩니다.
증상 2:
이미지 볼륨 캐시에서 부팅 가능한 볼륨을 두 번째로 생성할 때 OpenStack 측에서 생성된 볼륨의 크기가 8GB로 반올림되지 않았습니다.
OpenStack/RHOSP에서 PowerFlex Cinder 백엔드 스토리지 사용
"image_volume_cache_enabled = True" 옵션이 cinder.conf에 지정되고 부팅 가능한 볼륨이 생성됩니다.
증상 1:
예를 들어, 처음에 33GB의 부팅 가능한 볼륨 생성을 요청했을 때 OpenStack과 PowerFlex 모두 볼륨이 40GB로 동일할 것으로 예상되었습니다. 그러나 OpenStack 측에서 생성된 볼륨은 8GB였습니다.
$ 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:
예를 들어, 볼륨 이미지 캐시가 활성화된 상태에서 50GB의 부팅 가능한 볼륨 생성이 요청되면 OpenStack과 PowerFlex 모두 볼륨이 56GB로 동일할 것으로 예상되었습니다. 하지만 OpenStack 측에서 생성된 볼륨은 50GB였습니다.
$ 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 드라이버 또는 백엔드 스토리지에 의한 반올림 가능성을 인식하고 해당 테스트 도구 모음을 수정해야 합니다.
이 문제를 해결하기 위해 OpenStack Cinder 커뮤니티를 위해 문제 추적 #1915015가 개설되었습니다. 참조: 버그 #1915015 "f를 생성한 후 PowerFlex 볼륨의 크기가 잘못되었습니다...": 버그: 콘크리트
증상 2:
이것은 create_volume_from_snapshot 기능의 Cinder 드라이버 문제입니다. create_cloned_volume/extend_volume에도 동일한 문제가 있습니다.
Cinder 드라이버에서 실제 볼륨 크기를 반환하여 수정하는 옵션이 있지만 Tempest 측의 다른 문제로 인해 Tempest 테스트 주기를 통과할 수 없습니다.
현재로서는 Cinder 드라이버에서 수정 사항을 구현하기 위해 Tempest 문제를 먼저 수정해야 합니다.
이 문제를 해결하기 위해 OpenStack Tempest 커뮤니티를 위해 이슈 추적 #1917299가 개설되었습니다. 참조: 버그 #1917299 "볼륨 생성을 위한 청크 크기 구성 필요": 버그 : 폭풍우
메모: 이것은 증상 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: 유일한 해결 방법은 항상 볼륨 크기를 8GB의 배수로 지정하는 것입니다.