Red Hat Training

A Red Hat training course is available for RHEL 8

2.7. Convertendo a imagem para um formato VHD fixo

Todas as imagens do Microsoft Azure VM devem estar em um formato fixo VHD. A imagem deve ser alinhada em um limite de 1 MB antes de ser convertida para VHD. Esta seção descreve como converter a imagem de qcow2 para um formato VHD fixo e alinhar a imagem, se necessário. Uma vez convertida a imagem, você pode carregá-la para o Azure.

Procedimento

  1. Converta a imagem de qcow2 para o formato raw.

    qemu-img converter -f qcow2 -O bruto <image-name>.qcow2 <image-name>.raw
  2. Crie um roteiro de shell usando o conteúdo abaixo.

    #!/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. Execute o roteiro. Este exemplo usa o nome align.sh.

    $ sh align.sh <image-xxx>.raw
    • Se a mensagem "Your image is already aligned. You do not need to resize." for exibida, siga para o seguinte passo.
    • Se um valor for exibido, sua imagem não está alinhada.
  4. Use o seguinte comando para converter o arquivo para um formato VHD fixo.

    The sample uses qemu-img version 2.12.0.

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

    Uma vez convertido, o arquivo VHD está pronto para ser carregado no Azure.

Aligning the image

Complete os seguintes passos somente se o arquivo raw não estiver alinhado.

  1. Redimensione o arquivo raw usando o valor arredondado exibido quando você executou o roteiro de verificação.

    $ qemu-img redimensionamento -f raw <image-xxx>.raw <rounded-value>
  2. Converta o arquivo de imagem raw para um formato VHD.

    The sample uses qemu-img version 2.12.0.

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

    Uma vez convertido, o arquivo VHD está pronto para ser carregado no Azure.