4.7. 이미지를 고정 VHD 형식으로 변환

모든 Microsoft Azure VM 이미지는 고정 VHD 형식이어야 합니다. 이미지는 VHD로 변환되기 전에 1MB 경계에 정렬해야 합니다. 이미지를 qcow2 에서 고정 VHD 형식으로 변환하고 이미지를 정렬하려면 다음 절차를 참조하십시오. 이미지를 변환한 후에는 Azure에 업로드할 수 있습니다.

절차

  1. 이미지를 qcow2에서 raw 형식으로 변환합니다.

    $ qemu-img convert -f qcow2 -O raw <image-name>.qcow2 <image-name>.raw
  2. 아래 내용을 사용하여 쉘 스크립트를 생성합니다.

    #!/bin/bash
    MB=$((1024 * 1024))
    size=$(qemu-img info -f raw --output json "$1" | gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1) * $MB))
    if [ $(($size % $MB)) -eq  0 ]
    then
     echo "Your image is already aligned. You do not need to resize."
     exit 1
    fi
    echo "rounded size = $rounded_size"
    export rounded_size
  3. 스크립트를 실행합니다. 이 예에서는 align.sh라는 이름을 사용합니다.

    $ sh align.sh <image-xxx>.raw
    • "이미지가 이미 정렬되어 있습니다. 크기를 조정할 필요가 없습니다."라는 메시지가 표시되면 다음 단계로 진행합니다.
    • 값이 표시되면 이미지가 정렬되지 않은 것입니다.
  4. 다음 명령을 사용하여 파일을 고정 VHD 형식으로 변환합니다.

    샘플은 qemu-img 버전 2.12.0을 사용합니다.

    $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image-xxx>.raw <image.xxx>.vhd

    변환되면 VHD 파일을 Azure에 업로드할 준비가 된 것입니다.

  5. raw 이미지가 정렬되지 않은 경우 다음 단계를 완료하여 정렬합니다.

    1. 확인 스크립트를 실행할 때 표시되는 반올림 값을 사용하여 raw 파일의 크기를 조정합니다.

      $ qemu-img resize -f raw <image-xxx>.raw <rounded-value>
    2. raw 이미지 파일을 VHD 형식으로 변환합니다.

      샘플은 qemu-img 버전 2.12.0을 사용합니다.

      $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image-xxx>.raw <image.xxx>.vhd

      변환되면 VHD 파일을 Azure에 업로드할 준비가 된 것입니다.