¿Cómo disminuir el tamaño de una imagen de disco de máquina virtual KVM?

11

¿Cómo disminuye o reduce el tamaño de un disco de máquina virtual KVM?

Asigné un disco virtual de 500 GB (almacenado en /var/lib/libvirt/images/vm1.img), y estoy encontrando esa exageración, así que ahora me gustaría liberar algo de ese espacio para usarlo con otros dispositivos virtuales. máquinas. Parece que hay muchas respuestas sobre cómo aumentar el almacenamiento de imágenes, pero no disminuirlo. Encontré la herramienta virt-resize , pero solo parece funcionar con particiones de disco sin formato, no con imágenes de disco.

Editar: estoy usando un LVM con una partición formateada Ext4.

Editar: captura de pantalla GParted que muestra mi diseño de partición LVM. Necesito hacer mucho más que simplemente cambiar el tamaño del sistema de archivos. No conozco una forma segura de cambiar el tamaño de un LVM. Y por favor no me digas que lo use pvresize. A pesar de su nombre, no admite cambiar el tamaño de LVM.

Captura de pantalla de GParted

Lo intenté sudo pvresize /dev/vda5, pero solo dice physical volume "/dev/vda5" changedpero en realidad no reduce el tamaño.

Intenté comenzar parteda configurar manualmente el tamaño de la partición (muy peligroso), pero hacerlo print allme da el error "/ dev / sr0 etiqueta de disco no reconocida".

Editar: Siguiendo estas instrucciones , pude reducir con éxito mis volúmenes lógicos y físicos (aunque tuve que recordar activar y desactivar lvm antes y después de ciertos comandos, que las instrucciones omiten).

Ahora GParted muestra 250G de espacio libre sin asignar. ¿Cómo elimino esto de la imagen del disco KVM y se lo devuelvo al hipervisor subyacente?

Cerin
fuente
¿Realmente necesita reducir el tamaño del disco virtual, o sería suficiente compactarlo? Podrías hacer esto último con algo así qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers
@AnsgarWiechers, Sí, todavía necesito usar el disco, y he asignado mucho más espacio del que necesitaré.
Cerin

Respuestas:

10

Gracias a quienes publicaron, pero sus respuestas fueron demasiado vagas para ser de alguna ayuda.

Después de horas de buscar en Google, finalmente encontré una guía ( enlace redactado ) que proporciona instrucciones paso a paso sobre cómo reducir mi sistema de archivos, volúmenes lógicos y volúmenes físicos. El truco que la mayoría de las guías pierden es la necesidad de eliminar las particiones físicas y recrearlas con el tamaño correcto, porque parted no puede cambiar el tamaño de las particiones lvm.

Luego encontré esta documentación en qemu-img, que explica cómo reducir una imagen de disco virtual sin formato ejecutando:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Cerin
fuente
qemu-img es una gran herramienta cuando se trata de trabajar con imágenes de disco para kvm. 3 años después, su enlace parece roto, aquí la página del manual de die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier
Y si alguien quiere esta conveniencia, y está atrapado (no quiere) una VM .qcow2, conviértala primero qemu-img convert -f qcow2 -O raw image.qcow2 image.imgy luego puede ejecutar el comando anterior.
oemb1905
4

Qué necesitas hacer,

  • Tomar una copia de seguridad
  • Reduzca los sistemas de archivos * no haga esto en un sistema en vivo, le recomiendo usar un CD en vivo.
  • Cree una nueva imagen de disco del tamaño deseado.
  • Ejecute un sistema operativo en vivo, con las imágenes nuevas y antiguas adjuntas como discos duros (virtuales) (no montados)
  • Cree las nuevas particiones del mismo tamaño que las particiones redimensionadas en el disco anterior
  • Use dd para reflejar los datos en la nueva partición.
  • Posiblemente necesite purgar / regenerar grub (2) para arrancar con éxito.

Esto se puede lograr a través de la GUI y la CLI

Recursos

Herramientas

  • gparted (enlace omitido debido a Spam, no suficiente representante)
daxroc
fuente
La parte difícil es "Reducir el sistema de archivos". Estoy usando un LVM, que ninguna herramienta me pareció compatible con el cambio de tamaño. Ni siquiera un CD en vivo GParted.
Cerin
Creo que esto lo cubre, no lo he usado, así que informe bien o mal tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc
Hay 2 puntos principales a observar: 1) Haga las cosas en orden ( primero reduzca el sistema de archivos, luego reduzca la partición, luego reduzca el disco). 2) El procedimiento / las herramientas para cambiar el tamaño de un sistema de archivos dependen en gran medida del sistema de archivos real (que el OP decidió no revelar). El artículo publicado por @daxroc no funcionará para sistemas de archivos que no sean ext [234].
Ansgar Wiechers
@daxroc, necesito reducir tanto el volumen lógico como el físico. Su enlace solo cubre la reducción del volumen lógico.
Cerin
convenido. copia de seguridad, disco nuevo, restaurar es más seguro y fácil
dyasny
0

Esto funcionó muy bien para mí. Comprime y reduce los bloques 0 en la imagen del disco. La imagen se expandirá con el tiempo a medida que se vuelva a escribir.

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

Recomiendo antes de hacer todo esto, tome una copia completa de la imagen del disco tal como está, luego, cuando todo se rompa, simplemente puede copiarla de nuevo para comenzar de nuevo.

Hay 3 cosas que debes hacer:

1) Amplíe la imagen del disco. En tu host:

qemu-img cambiar el tamaño de foo.qcow2 + 32G

Ahora su invitado puede ver un disco más grande, pero aún tiene particiones y sistemas de archivos antiguos.

2) Amplíe la partición dentro de la imagen del disco. Para ello, debe iniciar un LiveCD en su invitado, ya que no podrá meterse con una partición montada. Esto es bastante complicado y probablemente la parte más peligrosa. Copiar aquí es bastante, así que solo enlazaré por ahora. Quieres hacer algo como esto:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

O 2b) crear una nueva partición sería más simple (y más seguro) si solo desea más espacio de almacenamiento. Use fdisk o cfdisk, o lo que sea que le resulte más cómodo; ahora debería ver un montón de espacio no asignado en su disco de invitado.

3) Finalmente, si redimensionó su partición existente, haga que el sistema de archivos dentro de la nueva partición más grande sea más grande (de todos modos, esto está en la guía vinculada anteriormente). Dentro de tu invitado:

Ankur Dholakiya
fuente
55
Él está tratando de hacer la imagen más pequeña , no más grande.
Michael Hampton