Intro

En la entrada Expandir discos en máquinas virtuales kvm veíamos como aumentar los discos duros de las máquinas virtuales empleando las herramientas libguestfs-tools. Sin embargo, si queremos hacerlo sin estas herramientas, hemos de emplear otro sistema.

En nuestro caso queremos aumentar el disco donde reside el sistema operativo de una máquina virtual KVM con CentOS 7. El proceso es muy similar al descrito para aumentar el disco duro de un proxmox corriendo como KVM que podemos ver en la siguiente entrada.

Los pasos a dar son los siguientes:

  • Parar la máquina virtual
  • Aumentar el tamaño de la imagen de disco
  • Expandir la partición dentro del disco duro
  • Expandir el volumen virtual
  • Hacer que el sistema de archivos ocupe todo el espacio disponible

 

Parar la máquina virtual

Si esta máquina forma parte de un cluster de alta disponibilidad y está configurada como un recurso, hemos de ponerla en modo ‘unmanaged’ antes de pararla. De otro modo, el cluster se dará cuenta de que está parada y la arrancará de nuevo.

 

Aumentar el tamaño de la imagen de disco

Antes de hacer nada con la imagen del disco, lo mejor es copiarla para asegurarnos de poder regresar al punto de partida si algo sale mal.

Una vez copiada, emplearemos el comando qemu-img resize para aumentar la imagen:

#qemu-img resize vm1.img +6G

Un ls en el directorio en el que reside la imagen de disco nos muestra que el tamaño ha aumentado en 100GB

 

Expandir la partición dentro del disco duro

Empleamos una máquina virtual con la última versión de gparted a la que hemos asignado el disco duro a redimensionar.

Usamos la interfaz gráfica del programa. Aunque en la entrada correspondiente a la ampliación del disco de proxmox decíamos que había que desactivar el volumen lvm, parece que con las nuevas versiones de gparted no es necesario y se puede redimensionar directamente sin desactivar el volumen lvm.

Una vez aumentada la partición paramos la máquina gparted.

 

Expandir el volumen virtual

Para ver el nombre del volumen virtual hacemos:

# lvs

Ahora sabemos que el volumen a expandir es /dev/centos/root

Lo expandimos con el comando:

# lvextend -l +100%FREE /dev/centos/root

Si hacemos de nuevo un lvs:

Sin embargo, un df -h nos muestra que el sistema de ficheros no se ha expandido:

 

Hacer que el sistema de archivos ocupe todo el espacio disponible

Empleamos el comando:

# xfs_growfs /dev/centos/root

Nos produce la siguiente salida:

Si ahora hacemos un df -h comprobamos que el sistema de archivos ya ocupa todo el espacio disponible:

Y ya hemos acabado.