La expansión de las particiones de disco para usar todo el espacio disponible es un problema habitual cuando se trabaja con máquinas virtuales. Tanto en local como en entornos basados en la nube como Amazon AWS o Microsoft Azure. El problema suele aparecer cuando se implementa una máquina virtual Linux desde una plantilla y el tamaño del disco asignado es mayor del usado originalmente. También se puede dar después de un tiempo cuando el disco inicial se queda sin espacio y es necesario ampliarlo. En esta entrada, se explicará redimensionar una partición de disco LVM en sistema operativos Linux como Centos, Ubuntu o Debian usando las herramientas: lsblk
, parted
, partx
, pvresize
y lvextend
.
Nota importante: Redimensionar el disco en un sistema operativo es una tarea que puede tener consecuencias graves si no se realiza correctamente, pudiendo llegar a perder todos los datos del disco. Antes de seguir las instrucciones de esta entrada es necesario disponer de una copia de seguridad de todos los datos incluidos en el disco. Además, es necesario tener en cuenta que el proceso de redimensionamiento de discos puede ser diferente en función de la configuración específica de la máquina. Esta guía tiene fines puramente informativos y no puede garantizar el éxito ni la seguridad en todas las situaciones. Por lo que el autor no se puede hacer responsable de cualquier daño o pérdida causada por intentos de redimensionar discos sin el conocimiento o experiencia adecuados.
Obtener información del disco
Lo primero que se tiene que hacer es recuperar la información del disco, incluyendo los nombres de la partición que se desea cambiar de tamaño. Para lo que se puede ejecutar el comando lsblk
en la terminal. En nuestro ejemplo se obtiene la siguiente información:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom xvda 202:0 0 100G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 49G 0 part ├─cl-root 253:0 0 47G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP]
En este ejemplo se puede ver que se dispone de un disco xvda
con 100GB de los cuales solamente se están usando 1Gb en la partición de inicio xvda1
y otros 49Gb en xvda2
. Esta segunda partición contiene un volumen lógico con un único grupo, cl
, y dos volúmenes lógicos: root
con 49GB y swap
con 2GB.
En este ejemplo se puede ver que quedan aproximadamente 50GB de espacio en el disco que no se encuentra asignado, el espacio de xvda
que no está ocupado por las particiones xvda1
ni xvda2
. Ahora se genera asignar estos 50Gb al volumen cl-root
.
Redimensionar una partición de disco
Una vez obtenida la configuración de las particiones de disco y el espacio que falta por asignar se puede extender la partición. Lo que hay se puede hacer ejecutando los siguientes pasos en una terminal:
parted ---pretend-input-tty /dev/xvda resizepart 2 100% partx -u /dev/xvda pvresize /dev/xvda2 lvextend -r cl/root /dev/xvda2
La primera línea extiende la segunda partición del disco xvda2
para que use el 100% de los datos no asignados, esto es para que use los 50GB. Tras esto la segunda línea actualiza la tabla de particiones del disco mediante el comando partx
.
Una vez actualizada la tabla de particiones se usa el comando pvresize
para cambiar el tamaño del volumen físico de la partición xvda2
. Por lo que esta pasa a usar el espacio de disco asignado. Finalmente, el comando lvextend
modifica el tamaño del volumen lógico y el sistema de archivos utilizando el nuevo espacio disponible.
Ahora, si se vuelve a ejecutar el comando lsblk
en la terminal se puede ver cómo ha cambiado el espacio asignado a las diferentes particiones.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom xvda 202:0 0 100G 0 disk ├─xvda1 202:1 0 1G 0 part /boot └─xvda2 202:2 0 99G 0 part ├─cl-root 253:0 0 97G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP]
Observando que ahora xvda2
tiene un tamaño de 99Gb.
Conclusiones
En esta entrada se han visto los pasos para actualizar y redimensionar una partición de disco LVM con espacio no asignado en sistemas Linux. Unos pasos sencillos con los que se puede ampliar el espacio usado en los discos de máquinas virtuales.
Imagen de manseok Kim en Pixabay
Deja una respuesta