Esta breve guía explica qué es Virt-size herramienta de línea de comandos y cómo podemos expandir o extender el tamaño del disco de la máquina virtual KVM usando la herramienta Virt-resize en Linux.
El otro día noté que una de mis máquinas virtuales KVM se está quedando sin espacio en disco. No pude instalar ninguna aplicación nueva o no pude guardar archivos debido a la falta de espacio en disco. Para solucionar este problema, simplemente aumenté el tamaño del disco de una máquina virtual KVM usando virt-size
dominio. Probé personalmente los pasos que se indican a continuación para aumentar el tamaño del disco de una máquina virtual CentOS 8 KVM y funcionó como se esperaba.
Herramienta de cambio de tamaño de Virt
Virtud-cambiar tamaño es una herramienta de línea de comandos para cambiar el tamaño de un disco de máquina virtual. Usando virt-resize, podemos aumentar o disminuir el tamaño del disco de una máquina virtual. También podemos eliminar las particiones dentro del disco virtual con el comando virt-resize. Tenga en cuenta que virt-cambia el tamaño de las máquinas en vivo. Los sistemas invitados deben apagarse antes de cambiar el tamaño de sus imágenes de disco.
Para expandir el tamaño del disco de una máquina virtual, primero creamos una imagen de disco más grande que la imagen de origen. Y luego copiamos la imagen de origen a la imagen de destino y finalmente la redimensionamos.
Virt-resize es parte de las libguestfs-tools
paquete. Para instalar el paquete libguestfs-tools en Debian, Ubuntu y sus derivados, ejecute:
$ sudo apt install libguestfs-tools
Para instalar el paquete libguestfs-tools en Fedora, RHEL y sus clones, ejecute:
$ sudo dnf install libguestfs-tools
En Fedora 34, guestfs-tools
El paquete proporciona la herramienta virt-resize. Entonces, si está en Fedora 34, instale guestfs-tools
paquete como a continuación:
$ sudo dnf install guestfs-tools
Ahora veamos cómo expandir el tamaño del disco de la máquina virtual usando virt-resize
dominio.
Ampliar o ampliar el tamaño del disco de la máquina virtual KVM en Linux
Para el propósito de esta guía, usaré la imagen de disco de la máquina virtual CentOS 8 llamada centos8.qcow2
. He almacenado este mago en mi directorio de trabajo actual. Puedes usar virsh dumpxml
comando para ubicar la imagen de disco que desea cambiar de tamaño.
Ejemplo:
$ virsh dumpxml centos8
Reemplace centos8 con el nombre de su VM en el comando anterior.
Después de ubicar la imagen de disco que desea cambiar de tamaño, inspeccione los detalles de la partición dentro de esta imagen de disco. Para imprimir los detalles de la partición y su tamaño de una imagen de disco, ejecute:
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Salida de muestra:
Name Type MBR Size Parent /dev/sda1 partition 83 1.0G /dev/sda /dev/sda2 partition 8e 19G /dev/sda /dev/sda device - 20G -
Como puede ver en el resultado anterior, mi imagen de disco tiene solo dos particiones, a saber, /dev/sda1
con tamaño 1 GB y /dev/sda2
con 19 GB. El tamaño total de la imagen de disco es de 20 GB.
Ahora lo haremos,
- aumentar el tamaño total de la imagen del disco de 20 GB a 30 GB ,
- aumentar el tamaño de la primera partición
/dev/sda1
de 1,0 GB a 1,5 GB , - Expandir la segunda partición
/dev/sda2
para llenar el espacio restante.
Virt-resize no puede cambiar el tamaño de las imágenes de disco en el lugar. Además, Virt-resize no debe usarse en máquinas virtuales activas. Antes de cambiar el tamaño de la imagen del disco, apague la máquina virtual y realice una copia de seguridad de la imagen del disco original.
$ mv centos8.qcow2 centos8.qcow2.backup
El comando anterior cambiará el nombre de la imagen de disco actual llamada centos8.qcow2
a centos8.qcow2.backup
.
Cree una nueva imagen de disco con el mismo nombre y con un tamaño de 30 GB usando el comando:
$ qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G
Salida de muestra:
Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
Asegúrese de que el tamaño del disco recién creado sea de 30 GB:
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Salida de muestra:
Name Type MBR Size Parent /dev/sda device - 30G -
Ahora expanda/extienda el tamaño de la imagen del disco de la máquina virtual KVM usando el comando:
$ virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2
Aquí,
--resize /dev/sda1=+500M
- aumenta el tamaño del/dev/sda1
partición a 500 MB.- --expand /dev/sda2 - cambia el tamaño de
/dev/sda2
partición para llenar todo el espacio restante. En mi caso, se redimensionará de 19.0G a 28.5G. centos8.qcow2.backup
- es la imagen de disco de entrada original.centos8.qcow2
- es la imagen de disco de salida recién creada.
La salida de muestra del comando anterior es:
[ 0.0] Examining centos8.qcow2.backup Summary of changes: /dev/sda1: This partition will be resized from 1.0G to 1.5G. The filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’ method. /dev/sda2: This partition will be resized from 19.0G to 28.5G. The LVM PV on /dev/sda2 will be expanded using the ‘pvresize’ method. [ 4.2] Setting up initial partition table on centos8.qcow2 [ 5.6] Copying /dev/sda1 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 9.7] Copying /dev/sda2 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 45.1] Expanding /dev/sda1 using the ‘resize2fs’ method [ 45.3] Expanding /dev/sda2 using the ‘pvresize’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly.
Verifique las particiones y sus tamaños con virt-filesystems
comando:
$ virt-filesystems --long -h --all -a centos8.qcow2
Salida de muestra:
Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ext4 - - 1.4G - /dev/cl/root filesystem xfs - - 17G - /dev/cl/swap filesystem swap - - 2.0G - /dev/cl/root lv - - - 17G /dev/cl /dev/cl/swap lv - - - 2.0G /dev/cl /dev/cl vg - - - 29G /dev/sda2 /dev/sda2 pv - - - 29G - /dev/sda1 partition - - 83 1.5G /dev/sda /dev/sda2 partition - - 8e 29G /dev/sda /dev/sda device - - - 30G -
Como puede ver en el resultado anterior, el tamaño de la imagen de mi disco CentOS8 KVM se ha redimensionado de 20 GB a 30 GB.
Ahora inicie la máquina virtual con una nueva imagen de disco. También puede crear una nueva máquina virtual usando la imagen Qcow2 como se describe en el siguiente enlace.
- Cree una máquina virtual KVM usando la imagen Qcow2 en Linux
Si funciona sin ningún problema, inspeccione minuciosamente si existen todos sus datos. Si todo está bien, elimine el disco de copia de seguridad antiguo.
Si hay algún problema con el nuevo disco, apague la máquina virtual y cambie el nombre del disco de respaldo a su nombre original. Repita los pasos anteriores cuidadosamente de nuevo. No olvide hacer una copia de seguridad de los datos y la imagen del disco.