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
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
- 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.
- Se o host local executar um sistema operacional Linux, execute o comando scp.
- 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.
- Converta o formato da imagem.
- Vá para o diretório onde qemu-img-hw está armazenado, por exemplo, /usr/qemu-img-hw.
cd /usr/qemu-img-hw
- Execute o seguinte comando para alterar as permissões de arquivo:
- 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
- Vá para o diretório onde qemu-img-hw está armazenado, por exemplo, /usr/qemu-img-hw.
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.