[번역] Images converted from Qcow2 and other formats do not boot successfully on VMware Integrated OpenStack running on VSAN storage (2144687)

출처 : https://kb.vmware.com/s/article/2144687

제목 : VSAN 스토리지(에서 실행되는 VMware Integrated OpenStack에서 Qcow2 및 기타 형식에서 변환된 이미지가 성공적으로 부팅되지 않는다 (2144687)

증상

raw 또는 qcow2와 같은 비 네이티브 형식에서 변환된 이미지를 VSAN 스토리지에서 실행하는 경우 다음 증상 중 하나 이상을 경험한다.

  • 인스턴스가 시작되지 않는다
  • 부팅 시 인스턴스가 시스템 파티션을 감지하지 못하고 가상 시스템 콘솔에서 다음 오류가 표시됨:
    No operating system found

목적

이 문제는 다음과 같은 경우에 발생한다.

  • VMware Integrated OpenStack에 포함된 Qemu-utils 버전은 VSAN 스토리지에 필요한 streamOptimized 출력 형식을 지원하지 않는다.
  • 이미지 변환이 완료되었지만 이미지가 VSAN과 호환되지 않는다.

해결

이는 VMware VIO(Integrated OpenStack) 2.0.x에 영향을 미치는 알려진 문제다.

이 문제를 해결하려면:

1. 이미지를 임시로 저장하기에 충분한 스토리지가 있는 Ubuntu 14.04 가상 시스템을 생성한다.

2. qemu-utils 버전 2.5를 설치한다.

debian 패키지를 다운로드하여 설치 : https://packages.debian.org/sid/qemu-utils

또는 원본에서 빌드하려면 https://github.com/qemu/qemu/releases/tag/v2.5.0으로 이동한다. 이미지 작성 방법은 https://github.com/qemu/qemu을 참조한다.

3. 다음 qemu-img convert 명령을 실행하여 업데이트된 qemu 이진 파일을 사용하여 qcow2 이미지를 vmdk 이미지로 변환한다.

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized source_qcow_image_path destination_path_to_vmdk

예:

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized CentOS-7-x86_64-GenericCloud-1503.qcow2 CentOS-7-x86_64-GenericCloud-1503.vmdk

4. 다음 스크립트를 사용하여 변환된 이미지에 포함된 vmdk 버전 설정을 업데이트한다.

printf '\x03' | dd conv=notrunc of=<vmdk file name> bs=1 seek=$((0x4))

예:

printf '\x03' | dd conv=notrunc of=CentOS-7-x86_64-GenericCloud-1503.vmdk bs=1 seek=$((0x4))