Cómo aumentar el tamaño del disco de una máquina virtual KVM

Shutterstock.com/zentilia

KVM es una tecnología de virtualización que está integrada en el kernel de Linux. Puede crear máquinas virtuales e interactuar con KVM utilizando herramientas como virsh, virt-manager y GNOME Boxes.

Quedarse sin espacio en disco es uno de los problemas más comunes de los invitados de VM. Es posible que haya comenzado con un disco intencionalmente pequeño mientras probaba una nueva máquina virtual. Con el tiempo acumulas archivos hasta que el disco virtual está casi lleno. Aquí se explica cómo cambiar el tamaño de su disco en el lugar, sin tener que copiar archivos en una unidad más grande separada.

Índice de contenidos
  1. Apague su máquina virtual
  2. Encuentra la ubicación del disco
  3. Eliminar instantáneas de máquinas virtuales
  4. Cambiar el tamaño del disco
  5. Ampliación de las particiones del disco
  6. Reducción a disco
  7. Resumen

Apague su máquina virtual

Comience por apagar su máquina virtual. Puede apagar dentro del sistema operativo invitado, usando los controles en su interfaz de usuario de administración o emitiendo el virsh shutdown dominio:

$ sudo virsh list
 Id   Name          State
------------------------------
 -    ubuntu22.04   running

$ sudo virsh shutdown ubuntu22.04
Domain ubuntu22.04 is being shutdown

Espere hasta que la máquina virtual se apague. Desaparecerá de la virsh list salida después de que se apague. Puede ver los detalles de las máquinas virtuales inactivas agregando el --all bandera:

$ sudo virsh list --all
 Id   Name          State
------------------------------
 -    ubuntu22.04   shut off

Encuentra la ubicación del disco

A continuación, debe identificar la ruta donde se guarda el disco de su VM. Cada máquina virtual obtiene un archivo de imagen de disco que almacena el contenido completo de su sistema de archivos. Se pueden usar varios formatos, incluidos QCOW2, VDI, VMDK y VHDX.

La mayoría de las máquinas virtuales creadas en un entorno KVM moderno tendrán una imagen de disco QCOW2 almacenada dentro del /var/lib/libvirt/images directorio. El nombre del archivo coincidirá con el nombre de la máquina virtual que se muestra en la virsh list salida del comando.

Puede verificar la ruta al disco de una VM ejecutando virsh domblklist:

$ sudo virsh domblklist ubuntu22.04
 Target   Source
-----------------------------------------------------
 sdb      /var/lib/libvirt/images/ubuntu22.04.qcow2

Esto confirma que el archivo para cambiar el tamaño de esta VM es /var/lib/libvirt/images/ubuntu22.04.qcow2.

Eliminar instantáneas de máquinas virtuales

No puede cambiar el tamaño de las imágenes de disco que tienen instantáneas almacenadas en ellas. Deberá eliminar las instantáneas antes de realizar el cambio de tamaño. Si necesita conservar instantáneas, primero clone la máquina virtual y use la copia para acceder a los estados de las instantáneas. A continuación, puede eliminar las instantáneas de la máquina virtual original y continuar con la operación de cambio de tamaño.

los virsh snapshot-list El comando revelará si su VM tiene instantáneas:

$ virsh snapshot-list ubuntu22.04
 Name         Creation Time               State
---------------------------------------------------
 13-09-2022   2022-09-13 22:36:41 +0100   shutoff

Eliminarlos con el snapshot-delete dominio. La instantánea que se va a eliminar se identifica mediante <vm-name> <snapshot-name> sintaxis.

$ virsh snapshot-delete ubuntu22.04 13-09-2022

Cambiar el tamaño del disco

los qemu-img El comando ahora se puede usar para cambiar el tamaño del disco. Sus argumentos son la ruta al archivo de imagen del disco y la cantidad de capacidad adicional para agregar al disco.

$ sudo qemu-img resize /var/lib/libvirt/images/ubuntu22.04.qcow2 +16G

los +16G significa que el disco será 16 GB más grande que su tamaño actual. También puede usar otros sufijos estándar, como M para megabytes y T para terabytes. Omitiendo el + La notación indica a QEMU que haga que el disco tenga un tamaño específico, como 1T para proporcionar 1 TB de capacidad.

El proceso de cambio de tamaño solo debería tomar unos segundos. No necesariamente tendrá un efecto inmediato en el uso total del disco de su host según el formato de imagen utilizado.

Ampliación de las particiones del disco

A continuación, inicie su máquina virtual y use la utilidad de administración de discos del sistema operativo invitado para extender la tabla de particiones del disco al espacio libre recién asignado. Sin este paso, su nueva capacidad no será accesible para el sistema operativo.

linux resize2fs El comando hará crecer automáticamente una partición designada en la medida máxima permitida por cualquier espacio libre disponible:

$ sudo resize2fs /dev/sda

Encuentre el dispositivo adecuado para apuntar (/dev/sda en el comando anterior) ejecutando df -h y buscando el sistema de archivos que está montado /:

$ df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda          32G   17G  15G   53%  /

Para cambiar el tamaño de la partición gráficamente, puede usar GParted o GNOME Disks en un invitado de Linux o Disk Management para una máquina con Windows.

Aquí está la máquina virtual Ubuntu 22.04 cuyo disco cambió de tamaño en 16 GB en el ejemplo anterior. Después de iniciar el invitado y abrir GParted, los 16 GB de espacio libre se ven como un área no asignada al final del disco.

imagen de particiones en gParted

El espacio se pone en uso haciendo clic con el botón derecho en la partición del sistema existente, seleccionando "Cambiar tamaño / Mover" en el menú de GParted y haciendo crecer la partición en el espacio libre al final. Después de aplicar la operación, la partición tiene una capacidad útil de 48 GB como se esperaba.

imagen de particiones en gParted

Reducción a disco

Las imágenes de disco se pueden reducir si a su máquina virtual se le ha asignado más almacenamiento del que necesita. Esta es una operación potencialmente riesgosa. Haga una copia de seguridad de su disco antes de comenzar a cambiar el tamaño para que pueda recuperar la situación si se eliminan los datos:

$ sudo cp /var/lib/libvirt/images/ubuntu22.04.qcow2 ubuntu22.04.qcow2.bak

A continuación tú deber ajuste la tabla de particiones desde dentro de la VM para que haya espacio libre sin asignar disponible en el disco. Cuando cambia el tamaño de un disco de 32 GB a 20 GB, debe asegurarse de que haya al menos 12 GB de espacio libre al final de la tabla de particiones, por ejemplo. Si olvida este paso, el cambio de tamaño eliminará indiscriminadamente los datos del final del disco, corrompiendo la tabla de particiones y haciendo que su VM no se pueda iniciar.

Esta máquina con Windows 10 tiene un disco de 40 GB, de los cuales solo 32 GB están asignados a particiones. El espacio no asignado de 8 GB al final de la unidad significa que puede reducir el tamaño del disco de forma segura hasta 8 GB.

imagen de la utilidad de administración de discos de Windows 10

Una vez que haya preparado sus particiones, puede usar qemu-img resize para realizar la reducción. El soporte para esta operación debe habilitarse manualmente cada vez al incluir el --shrink bandera con tu mando. Esto le permite especificar un tamaño de destino más pequeño que la capacidad actual del disco. Tú también puedes -8G sintaxis para reducir el tamaño en una cantidad predeterminada.

$ qemu-img resize --shrink /var/lib/libvirt/images/win10.qcow2 -8G

Después de reiniciar el invitado, Windows confirma que se han eliminado los 8 GB de espacio libre del final del disco.

imagen de la utilidad de administración de discos de Windows 10

Resumen

Las imágenes de disco utilizadas por las máquinas virtuales KVM se pueden cambiar de tamaño con el virsh y qemu-img comandos Cambiar el tamaño de un disco es confiable y debería completarse en cuestión de segundos, pero no funciona cuando las máquinas virtuales tienen instantáneas almacenadas. Siempre es una buena idea hacer una copia de seguridad de la imagen del disco antes de empezar a trabajar.

Algunas GUI de KVM, como GNOME Boxes, incluyen soporte para cambios de tamaño, lo que le permite ampliar un disco sin usar la terminal. Independientemente de cómo aplique el cambio de tamaño, debe iniciar la VM invitada después y ajustar la tabla de particiones para usar el espacio. Esto permite que el sistema operativo utilice la mayor capacidad del disco.

Descubre más contenido

Subir Change privacy settings