Trabalhando com qemu-img no Linux
Trabalhando com qemu-img no Linux: Esta é uma breve folha de dicas do qemu-img para trabalhar com o comando qemu-img em sistemas Linux e Unix que suportam qemu. Eu fiz este cheatsheet do qemu-img para minha própria referência e vi a necessidade de compartilhar com vocês. Antes de trabalhar com o comando qemu-img para realizar qualquer operação de disco, é bom primeiro entender o que é qemu e como ele é usado no Linux e no mundo da virtualização.
O que é Qemu?
De acordo com a página sobre do Qemu, o QEMU é definido como um emulador e virtualizador de máquina genérico e de código aberto. Isso significa que o Qemu pode ser usado como emulador de máquina para executar sistemas operacionais e programas de uma máquina em uma máquina diferente. Um exemplo é executar o programa ARM em um PC x86. Neste caso, o QEMU pode usar outros hipervisores como Xen ou KVM para extensões de CPU, para alcançar o que é comumente referido como Virtualização Assistida por Hardware
Quando o QEMU é usado como virtualizador, ele executa o código convidado diretamente na CPU da máquina host para obter desempenho quase narrativo. Os formatos de imagem QEMU são suportados pela maioria dos fornecedores de nuvem VPS, como Amazon, Digital Ocean, Linode, OVH e muitos outros.
O que é qemu-img?
qemu-img é o utilitário de linha de comando usado para converter vários sistemas de arquivos usados por hipervisores como Xen, KVM, VMware, VirtualBox. qemu-img é usado para formatar imagens de convidados, adicionar dispositivos de armazenamento adicionais e armazenamento de rede, etc. O formato da imagem de saída pode ser importado para provedores de nuvem VPS como Openstack e outros provedores como Cloudstack. Este trabalho com o cheatsheet qemu-img mostrará alguns exemplos.
Como instalar o qemu-img no Linux?
O comando qemu-img é instalado por padrão com a pilha libvirt:
Como instalar o KVM no RHEL/CentOS 8, Fedora, Arch Linux, CentOS, Ubuntu/Debian, SLES
Opções de comando qemu-img comumente usadas
O qemu-img
usa a seguinte sintaxe geral:
qemu-img subcommand [options]
A lista a seguir mostra subcomandos comuns para trabalhar com qemu-img:
Opções comuns
Formatos de disco suportados
Os seguintes formatos de imagem são suportados:
Trabalhando com qemu-img: exemplos
Abaixo estão alguns exemplos de como trabalhar com qemu-img.
Crie uma nova imagem de disco com qemu-img create
Sintaxe:
qemu-img create -f fmt fname size
Crie uma imagem de disco bruta de tamanho 10
GB:
$ qemu-img create -f raw ubuntu.img 10G
Formatting 'ubuntu.img', fmt=raw size=10737418240
$ qemu-img info ubuntu.img
image: ubuntu.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 0
Substitua raw
por qcow2
, vdk
, vmdk
para criar tais formatos. Dê uma olhada abaixo para vmdk
:
$ qemu-img create -f vmdk ubuntu.vmdk 10G
Formatting 'ubuntu.vmdk', fmt=vmdk size=10737418240 compat6=off hwversion=undefined
$ qemu-img info ubuntu.vmdk
image: ubuntu.vmdk
file format: vmdk
virtual size: 10G (10737418240 bytes)
disk size: 12K
cluster_size: 65536
Format specific information:
cid: 1484281290
parent cid: 4294967295
create type: monolithicSparse
extents:
[0]:
virtual size: 10737418240
filename: ubuntu.vmdk
cluster size: 65536
format:
Converta a imagem do disco com qemu-img convert
Sintaxe:
qemu-img convert -O out_fmt fname out_fname
Exemplo: converter imagem vmdk
em qcow2
$ qemu-img create -f vmdk ~/ubuntu.vmdk 10G
Formatting '/home/josepy/ubuntu.vmdk', fmt=vmdk size=10737418240 compat6=off hwversion=undefined
$ qemu-img convert -O qcow2 ~/ubuntu.vmdk ~/ubuntu.qcow2
$ qemu-img info ~/ubuntu.qcow2
image: /home/josepy/ubuntu.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
Verifique o disco com qemu-img check
Sintaxe:
qemu-img check -f fmt fname
Exemplo:
$ qemu-img check ubuntu.vmdk
No errors were found on the image.
Redimensione a imagem do disco com qemu-img resize
AVISO: Antes de usar este comando para reduzir uma imagem de disco, você DEVE usar o sistema de arquivos e as ferramentas de particionamento dentro da VM para reduzir os sistemas de arquivos alocados e os tamanhos de partição de acordo. Não fazer isso resultará em perda de dados!
Sintaxe:
Exemplo: aumentar a imagem do disco em 3GB
$ qemu-img create -f qcow2 ubuntu.qcow2 10G
Formatting 'ubuntu.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
$ qemu-img info ubuntu.qcow2
image: ubuntu.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
$ qemu-img info ubuntu.qcow2
image: ubuntu.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
$ qemu-img resize ubuntu.qcow2 +3G
Image resized.
$ qemu-img info ubuntu.qcow2
image: ubuntu.qcow2
file format: qcow2
virtual size: 13G (13958643712 bytes)
disk size: 200K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
Você deve notar que o tamanho foi aumentado de 10GB
para 13GB
NOTA: Depois de ampliar a imagem do disco, você deve usar o sistema de arquivos e as ferramentas de particionamento dentro da máquina virtual para realmente começar a usar o novo espaço.