Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Image Management Service/ Melhores práticas/ Conversão do formato da imagem/ Conversão do formato da imagem usando o qemu-img-hw
Atualizado em 2024-09-09 GMT+08:00

Conversão do formato da imagem usando o qemu-img-hw

Cenários

Você pode importar um arquivo de imagem no formato VHD, VMDK, QCOW2, RAW, VHDX, QCOW, VDI, QED, ZVHD ou ZVHD2 para HUAWEI CLOUD. Arquivos de imagem em outros formatos precisam ser convertidos em qualquer um desses formatos usando a ferramenta de código aberto qemu-img antes de serem importados. No entanto, a ferramenta qemu-img não consegue converter arquivos de imagem para o formato ZVHD ou ZVHD2. Para converter arquivos de imagem para qualquer um dos dois formatos, use a ferramenta autodesenvolvida qemu-img-hw. Esta seção descreve como usar qemu-img-hw para converter um arquivo de imagem para ZVHD2.

Ferramenta e custos

Tabela 1 Ferramenta e custos

Ferramenta

Descrição

Custos

qemu-img-hw

qemu-img-hw é desenvolvido pela Huawei e é usado para converter formatos de imagem.

Você pode obtê-lo a partir de:

https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/imageImportTools/qemu-img-hw.zip

Gratuito

Restrições

qemu-img-hw pode ser usado apenas no Linux. Você pode executá-lo em um servidor do Linux local ou em um ECS do Linux na plataforma de nuvem. O procedimento a seguir usa um ECS de EulerOS como exemplo.

Procedimento

  1. Faça upload do arquivo de imagem a ser convertido para o ECS.
    • Se o host local executar um sistema operacional Linux, execute o comando scp.

      Por exemplo, para carregar image01.qcow2 no diretório /usr/ do ECS, execute o seguinte comando:

      scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/

      xxx.xxx.xx.xxx indica o EIP vinculado ao ECS.

    • Se o host local executar um SO Windows, use uma ferramenta de transferência de arquivos, como o WinSCP, para carregar o arquivo de imagem no ECS.
  2. Obtenha o pacote de software qemu-img-hw, carregue-o no ECS e, em seguida, descompacte o pacote.
    Tabela 2 Pacote de qemu-img-hw

    Pacotes de ferramentas

    Como obter

    qemu-img-hw.zip

    https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/imageImportTools/qemu-img-hw.zip

    Esta ferramenta pode ser usada apenas em servidores x86.

  3. Converta o formato da imagem.
    1. Vá para o diretório onde qemu-img-hw está armazenado, por exemplo, /usr/qemu-img-hw.

      cd /usr/qemu-img-hw

    2. Execute o seguinte comando para alterar as permissões de arquivo:

      chmod +x qemu-img-hw

    3. Execute o comando qemu-img-hw para converter o arquivo de imagem para o formato ZVHD2.

      O formato de comando do qemu-img-hw é o seguinte:

      ./qemu-img-hw convert -p -O Target_image_format Source_image_file Target_image_file

      Por exemplo, execute o seguinte comando para converter um arquivo image01.qcow2 para um arquivo image01.zvhd2:

      ./qemu-img-hw convert -p -O zvhd2 image01.qcow2 image01.zvhd2

Apêndice 1: comandos comuns do qemu-img-hw

  • Conversão de formatos de arquivo de imagem: qemu-img-hw convert -p -O Target_image_format Source_image__file Target_image_file

    Os parâmetros são descritos a seguir:

    -p: indica o progresso da conversão.

    A parte que segue -O (que deve estar em maiúsculas) consiste no formato de imagem de destino, arquivo de imagem de origem e arquivo de imagem de destino.

    Por exemplo, execute o seguinte comando para converter um arquivo de imagem QCOW2 em um arquivo ZVHD2:

    qemu-img-hw convert -p -O zvhd2 test.qcow2 test.zvhd2

  • Consulta de informações do arquivo de imagem: qemu-img-hw info Image file

    Um exemplo de comando é qemu-img-hw info test.zvhd2.

  • Visualização de informações de ajuda: qemu-img-hw –help

Apêndice 2: erros comuns durante a execução do qemu-img-hw

  • Sintoma:
    As seguintes informações são exibidas quando você executa o comando qemu-img-hw:
    ./qemu-img-hw: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qemu-img-hw)

    Solução:

    Execute o comando strings /lib64/libc.so.6 | grep glibc para verificar a versão de glibc. Se a versão for muito antiga, instale a versão mais recente. Execute os seguintes comandos em sequência:

    wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz

    wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz

    tar -xvf glibc-2.15.tar.gz

    tar -xvf glibc-ports-2.15.tar.gz

    mv glibc-ports-2.15 glibc-2.15/ports

    mkdir glibc-build-2.15

    cd glibc-build-2.15

    ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

    Se configure: error: no acceptable C compiler found in $PATH for exibido, execute o comando yum -y install gcc.

    make

    make install

  • Sintoma:

    As seguintes informações são exibidas quando você executa o comando qemu-img-hw:

    ./qemu-img-hw: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    Solução: execute o comando yum install libaio.

Procedimento de acompanhamento

Depois que o formato do arquivo de imagem for convertido, você poderá usar obsutil para carregar o arquivo de imagem em um bucket do OBS para criar uma imagem privada. Para obter detalhes sobre como usar o obsutil para carregar um arquivo de imagem, consulte Carregamento de um objeto.