¿Cómo recuperar una máquina con el Disco lleno?

Este artículo va dirigido para dar solución cuando una Vm (Linux) se ve afectada por el almacenamiento en el disco. Y no permite realizar ninguna acción en la misma.

Para dar solución a la falla que se presenta en el disco es necesario detener la instancia y crear una instantánea del disco que está afectado,  lo que se quiere realizar es aumentar el tamaño del disco.

1. Se debe crear una instantánea del disco de la VM.

Esta se crean el apartado de compute engine > Almacenamiento  > Instantáneas > Crear Instantanea.

La instantánea creada quedará en el listado de instantáneas que se han tomado.

 

2. Al tener ya nuestra instantánea creada, creamos una instancia  con la instantanea anteriormente tomada, se debe verificar que se tenga acceso por medio de SSH a la misma.

Confirmado el acceso de SSH,  procedemos a editar la instancia, y buscamos la opcion de discos adicionales, damos clic en agregar disco nuevo.

Seleccionamos en la opción Tipo de  disco de origen (Instantanea), en Instantáneas de origen buscamos la instantánea anteriormente tomada, en Tamaño seleccionamos un mayor tamaño del peso de nuestra instantánea para posteriormente agregarlo. (Este será el tamaño que quedara en el disco que queremos recuperar).

3. Una vez agregado el disco,  ingresamos por medio de SSH a la VM y verificamos el disco y las particiones (toma nota del nombre del disco), con el siguiente comando 

lsblk

Creamos un punto de activación en /mnt/newdisk: 

sudo mkdir /mnt/newdisk

Activa la partición de disco adicional en el punto de activación /mnt/newdisk: (se debe reemplazar DISK_NAME por el nombre de nuestro disco)

sudo mount -o discard,defaults DISK_NAME /mnt/newdisk

Verificamos que el disco este agregado a la instancia con el comando df -h

Verificamos  el tipo de partición, (reemplazar DEVICE_NAME por el nombre del disco)

sudo parted -l /dev/DEVICE_NAME

 

4. Cambiamos el tamaño de la partición raíz mediante parted, en este caso se expande la partición 1 de  /dev/sda al tamaño máximo posible

sudo parted /dev/sda

Cuando aparezca el mensaje (parted), ingresa lo siguiente:

resizepart

Cuando aparezca el mensaje Partition number? (se selecciona el número de la partición en este caso 1)

1


Cuando aparezca el mensaje Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?, ingresa lo siguiente:

YES

Cuando aparezca el mensaje End?, ingresamos que queremos el 100% de lo posible para agregar.

100%

 

5.  Ahora vamos a extender el sistema de archivos

  1. Si usas ext4, usa el comando resize2fs:
    sudo resize2fs /dev/sda1
  2. Si usas xfs, usa el comando xfs_growfs:
    sudo xfs_growfs -d /
  3. Si usas btrfs, usa el comando btrfs:
    sudo btrfs filesystem resize max /

Hacemos la verificación de que el disco esté extendido con el comando df -h

 

6. Ya teniendo el disco ampliado desmontamos el disco de la VM (recuerde que el nombre del disco se le dio en el punto 3 (newdisk))

sudo umount /mnt/newdisk

y validamos que este ya no aparezca con el comando  df -h

ahora lo que sigue es desmontar el disco de esta instancia para poder usarlo en otra vm, en la opción editar buscamos discos adicionales y seleccionamos Quitar el disco

En Compute engine la opción Discos debería aparecer el disco que acabamos de modificar, de esta manera ya se tiene el disco ampliado y se puede usar para crear una nueva instancia con el espacio libre para su uso.

 

 

Referencias

https://cloud.google.com/compute/docs/disks/recover-vm?hl=es-419

https://cloud.google.com/compute/docs/disks/resize-persistent-disk?hl=es-419#gcloud