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?


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

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)

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

-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:


5
Ele está tentando tornar a imagem menor , não maior.
— Michael Hampton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.