1.8. 이미지 서비스 API를 사용하여 스파스 이미지 업로드 활성화
Image 서비스(glance) API를 사용하면 스파스 이미지 업로드를 사용하여 네트워크 트래픽을 줄이고 스토리지 공간을 절약할 수 있습니다. 이 기능은 DCN(Distributed Compute Node) 환경에서 특히 유용합니다. 스파스 이미지 파일을 사용하면 이미지 서비스에서 null 바이트 시퀀스를 쓰지 않습니다. 이미지 서비스는 지정된 오프셋을 사용하여 데이터를 작성합니다. 스토리지 백엔드는 이러한 오프셋을 실제로 스토리지 공간을 사용하지 않는 null 바이트로 해석합니다.
이미지 관리에 이미지 서비스 명령줄 클라이언트를 사용합니다.
제한
- 스파스 이미지 업로드는 Ceph RADOS Block Device(RBD)에서만 지원됩니다.
- 파일 시스템에서 스파스 이미지 업로드가 지원되지 않습니다.
- Sparseness는 클라이언트와 이미지 서비스 API 간의 전송 중에 유지 관리되지 않습니다. 이미지는 이미지 서비스 API 수준에서 스파스됩니다.
사전 요구 사항
- RHOSP(Red Hat OpenStack Platform) 배포에서는 이미지 서비스 백엔드에 RBD를 사용합니다.
절차
-
stack
사용자로 언더클라우드 노드에 로그인합니다. stackrc
인증 정보 파일을 소싱합니다.$ source stackrc
다음 콘텐츠를 사용하여 환경 파일을 생성합니다.
parameter_defaults: GlanceSparseUploadEnabled: true
다른 환경 파일과 함께 스택에 새 환경 파일을 추가하고 오버클라우드를 배포합니다.
$ openstack overcloud deploy \ --templates \ … -e <existing_overcloud_environment_files> \ -e <new_environment_file>.yaml \ ...
이미지 업로드에 대한 자세한 내용은 이미지 업로드를 참조하십시오.
검증
이미지를 가져오고 해당 크기를 확인하여 스파스 이미지 업로드를 확인할 수 있습니다.
다음 절차에서는 예제 명령을 사용합니다. 적절한 경우 해당 환경의 값으로 바꿉니다.
이미지 파일을 로컬로 다운로드합니다.
$ wget <file_location>/<file_name>
-
&
lt;file_location
>을 파일 위치로 바꿉니다. &
lt;file_name
>을 파일 이름으로 바꿉니다.예를 들면 다음과 같습니다.
$ wget https://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud-1508.qcow2
-
&
디스크 크기 및 업로드할 이미지의 가상 크기를 확인합니다.
$ qemu-img info <file_name>
예를 들면 다음과 같습니다.
$ qemu-img info CentOS-6-x86_64-GenericCloud-1508.qcow2 image: CentOS-6-x86_64-GenericCloud-1508.qcow2 file format: qcow2 virtual size: 8 GiB (8589934592 bytes) disk size: 1.09 GiB cluster_size: 65536 Format specific information: compat: 0.10 refcount bits: 1
이미지를 가져옵니다.
$ glance image-create-via-import --disk-format qcow2 --container-format bare --name centos_1 --file <file_name>
- 이미지 ID를 기록합니다. 후속 단계에서 필요합니다.
이미지를 가져오고 활성 상태인지 확인합니다.
$ glance image show <image_id>
Ceph Storage 노드에서 이미지 크기가 1단계의 출력에서 가상 크기보다 작은지 확인합니다.
$ sudo rbd -p images diff <image_id> | awk '{ SUM += $2 } END { print SUM/1024/1024/1024 " GB" }' 1.03906 GB
선택 사항:
rbd_thin_provisioning
이 컨트롤러 노드의 이미지 서비스 구성 파일에 구성되어 있는지 확인할 수 있습니다.SSH를 사용하여 컨트롤러 노드에 액세스합니다.
$ ssh -A -t tripleo-admin@<controller_node_IP_address>
해당 컨트롤러 노드에서
rbd_thin_provisioning
이True
와 같은지 확인합니다.$ sudo podman exec -it glance_api sh -c 'grep ^rbd_thin_provisioning /etc/glance/glance-api.conf'