Como diminuir o tamanho de uma imagem de disco da máquina virtual KVM?

11

Como você diminui ou reduz o tamanho de um disco da máquina virtual KVM?

Eu aloquei um disco virtual de 500 GB (armazenado em /var/lib/libvirt/images/vm1.img) e estou encontrando esse exagero; agora, eu gostaria de liberar parte desse espaço para uso com outros servidores virtuais. máquinas Parece haver muitas respostas sobre como aumentar o armazenamento de imagens, mas não diminuí-lo. Encontrei a ferramenta virt-redimensionar , mas parece funcionar apenas com partições de disco bruto, não com imagens de disco.

Editar: estou usando um LVM com uma partição ext4 formatada.

Editar: captura de tela GParted mostrando meu layout de partição LVM. Eu preciso fazer muito mais do que apenas redimensionar o sistema de arquivos. Não conheço nenhuma maneira segura de redimensionar um LVM. E por favor não me diga para usar pvresize. Apesar do nome, ele não suporta o redimensionamento de LVMs.

Captura de tela do GParted

Eu tentei sudo pvresize /dev/vda5, mas apenas diz, physical volume "/dev/vda5" changedmas na verdade não reduz o tamanho.

Tentei começar parteda definir manualmente o tamanho da partição (muito perigoso), mas isso print allme dá o erro "/ dev / sr0 etiqueta de disco não reconhecida".

Editar: Seguindo estas instruções , consegui reduzir com êxito os meus volumes lógicos e físicos (embora eu tivesse que lembrar de ativar e desativar o lvm antes e depois de certos comandos, omitidos nas instruções.

Agora o GParted está mostrando 250G de espaço livre não alocado. Como faço para remover isso da imagem de disco KVM e devolvê-lo ao hipervisor subjacente?

Cerin
fonte
Você realmente precisa reduzir o tamanho do disco virtual ou compactá-lo seria suficiente? Você poderia fazer o último com algo parecido qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers
@AnsgarWiechers, Sim, ainda preciso usar o disco e aloquei muito mais espaço do que jamais precisarei.
Cerin

Respostas:

10

Agradeço a quem postou, mas suas respostas foram vagas demais para ajudar.

Após horas pesquisando no Google, finalmente encontrei um guia ( link redigido ) fornecendo instruções passo a passo sobre como reduzir meu sistema de arquivos, volumes lógicos e volumes físicos. O truque que muitos guias ignoram é a necessidade de realmente excluir as partições físicas e recriá-las com o tamanho correto, porque o parted é incapaz de redimensionar as partições lvm.

Encontrei esta documentação no qemu-img, que explica como reduzir uma imagem de disco virtual em formato bruto executando:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Cerin
fonte
O qemu-img é uma ótima ferramenta quando se trata de trabalhar com imagens de disco para o kvm. 3 anos depois, seu link parece estar quebrado, aqui a página de manual em die.net linux.die.net/man/1/qemu-img
Louis
E se alguém quiser essa conveniência e estiver com (não deseja) uma VM .qcow2, converta-a primeiro qemu-img convert -f qcow2 -O raw image.qcow2 image.imge, em seguida, execute o comando acima.
oemb1905
4

O que você precisa fazer,

  • Faça um backup
  • Reduza o (s) sistema (s) de arquivo * não faça isso em um sistema ativo, eu recomendo usar um CD ativo.
  • Crie uma nova imagem de disco do tamanho desejado.
  • Execute um sistema operacional ao vivo, com as imagens novas e antigas anexadas como discos rígidos (virtuais) (não montados)
  • Crie as novas partições do mesmo tamanho que as partições redimensionadas no disco antigo
  • Use dd para espelhar os dados para a nova partição.
  • Você possivelmente precisará limpar / regenerar o grub (2) para inicializar com sucesso.

Isso pode ser realizado através da GUI e da CLI

Recursos

Ferramentas

  • gparted (link omitido devido a spam, representante insuficiente)
daxroc
fonte
A parte difícil é "Diminuir o sistema de arquivos". Estou usando um LVM, que não foi encontrado em nenhuma ferramenta que suporte redimensionar. Nem mesmo um Live CD GParted.
Cerin
Eu acho que isso cobre, eu não o usei, por favor relate bom ou ruim tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html #
daxroc
Existem 2 pontos principais a serem observados: 1) Faça as coisas em ordem ( primeiro reduza o sistema de arquivos, depois reduza a partição e depois reduza o disco). 2) O procedimento / ferramentas para redimensionar um sistema de arquivos depende muito do sistema de arquivos real (que o OP optou por não revelar). O artigo @daxroc publicado não funcionará para sistemas de arquivos que não sejam o ext [234].
Ansgar Wiechers
@daxroc, preciso reduzir os volumes lógico e físico. Seu link cobre apenas a redução do volume lógico.
Cerin
acordado. backup, novo disco, restaurar é mais fácil e segura
dyasny
0

Isso funcionou muito bem para mim. Comprime e reduz os 0 blocos na imagem do disco. A imagem será expandida ao longo do tempo conforme é gravada novamente.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
Greg
fonte
-4

Eu recomendo que, antes de fazer qualquer coisa, você faça uma cópia completa da imagem do disco como está e, quando tudo estiver quebrado, você poderá simplesmente copiá-la novamente para começar de novo.

Há três coisas que você precisa fazer:

1) Aumente a imagem do disco. No seu host:

qemu-img redimensionar foo.qcow2 + 32G

Agora seu convidado pode ver um disco maior, mas ainda possui partições e sistemas de arquivos antigos.

2) Faça a partição dentro da imagem do disco maior. Você precisa inicializar um LiveCD no seu convidado para isso, pois não poderá mexer com uma partição montada. Isso é bastante envolvido e provavelmente a parte mais perigosa. É muito para copiar aqui, então eu vou apenas ligar por enquanto. Você quer fazer algo assim:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

OU 2b) criar uma nova partição seria mais simples (e mais seguro) se você quiser apenas mais espaço de armazenamento. Use fdisk ou cfdisk, ou o que você se sentir confortável - você deve ver um monte de espaço não alocado em seu disco convidado agora.

3) Finalmente, se você redimensionou sua partição existente, aumente o sistema de arquivos dentro da nova partição maior (na verdade, isso está no guia acima). Dentro do seu convidado:

Ankur Dholakiya
fonte
5
Ele está tentando tornar a imagem menor , não maior.
Michael Hampton