Estou tentando reduzir o tamanho virtual de um qcow2
contêiner para que ele caiba em um tipo openstack com disco de 10 GB.
root@node-10:~# qemu-img info zztop.qcow
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
Eu sigo o guia aqui e preencho o final do disco com zeros e depois executo qemu-img convert -O qcow2
. O qcow2 resultante, no entanto, retém o mesmo tamanho de disco e tamanho virtual.
Como faço para diminuir o tamanho virtual de um qcow2 para que ele caiba em um openstack menor que 80 GB?
Se você quiser diminuir o tamanho virtual, você precisa usar
virt-resize
qemu-img convert -O raw guest.img guest.raw
qemu-img resize guest.raw 3G
qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
Resposta aprimorada de @ user370956
Consegui reduzir com sucesso o tamanho real da minha imagem de 5,9 G para 3,5 G e o tamanho v.
cp guest.img quest.backup
qemu-img convert -O raw guest.img guest.raw
-cdrom
e seuguest.raw
montado como-drive
qemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-amd64-lxde.iso -m 2G
fsck -a
qemu-img resize guest.raw 3G
qemu-img convert -O qcow2 guest.raw guest.img
qemu-img resize guest.img +1G
A manipulação apenas do lado do host pode deixar o sistema de arquivos do convidado corrompido.
Portanto, para concluir esta resposta , antes de qualquer alteração do host, você precisa alterar os tamanhos das partições de armazenamento da VM com ferramentas de particionamento, como
gparted
de dentro da VM. Para que o tamanho total do disco virtual fique menor que o tamanho desejado do armazenamento virtual. Depois disso, você pode fazer os primeiros 3 passos.1 - Desative o arquivo de troca no fstab se houver
2 - Monte o gparted no cd-rom da VM
3 - inicie a VM, inicialize o gparted e redimensione a partição para um tamanho menor
4 - Exclua a partição swap e recrie, ou certifique-se de que todas as partições estejam alinhadas uma ao lado da outra no início do disco. Tive problemas com a troca no final do disco depois de reduzir a partição, então essa foi a correção.
5 - desligue a VM
6 - Localize o arquivo qcow2 e no mesmo diretório, execute 'qemu-img create -f qcow2 -o preallocation=metadata new-disk.qcow2 80G' (onde 80G é o novo tamanho do disco)
7 - use virt-resize - 'virt-resize old-disk.qcow2 new-disk.qcow2'
8 - copie o novo disco para corrigir o nome do arquivo para a VM, inicie a VM e reative a troca, ou seja: 'swapon /dev/sda5'
9 - edite fstab para adicionar swap ie: '/dev/sda5 swap swap defaults 0 0'
FEITO.