Reducir tamaño de disco en maquina virtual de Azure

Una de las mayores razones para reducir tamaño de disco en maquina virtual de Azure es el dinero, por eso mi buen y gran compañero Oscar Ibero me ha pasado las instrucciones necesarias para crear este post.

Antes de nada, realizar un backup o snapshot porque este proceso se fulmina el disco original.

Por defecto cuando creamos una maquina virtual en Azure el tamaño del disco nos lo deja en 127 GB, esto para depende que función, rol o servicios es demasiado, por lo que si queremos ahorrarnos unos eurillos podemos reducir el disco de 127 GB a 64 GB, donde estaría la anterior linea de precios.

También nos pasa esto si desplegamos desde una plantilla que tenemos. NOTA: este script es para el disco del sistema operativo, si lo intentas hacer con otro te modificara el osdisk y no te arrancara la VM, cuidado!!

Este proceso al ser discos SSD standard no se vería afectado el rendimiento por la reducción de discos.

En la calculadora de Azure podemos ver la variación de precios según el tamaño de disco , tener un E6 o un E10 hace que nos cueste el doble el tipo de disco administrado.

Para poder reducir el tamaño de disco, primero lo tendremos que reducir desde el sistema operativo, para eso iremos al administrador de discos y seleccionando el disco-partición, haremos clic sobre Shrink Volume.

Lo reducimos hasta dejar el tamaño en 60 GB, mas que suficiente para el servicio que le vamos a dar.

Reducido el tamaño desde el sistema operativo, pararemos la VM desde el portal de Azure haciendo clic sobre «Stop», apagar desde aquí y no del sistema operativo, ya que la VM tiene que estar en estado Stopped (deallocated)

Como esto se va hacer por medio de un script, tendremos que anotar unos datos que nos harán falta, como por ejemplo el Resource ID del disco.

Para eso iremos a la VM, seleccionamos Disk –> Properties –> Resource ID.

Una vez tengamos los datos, abrimos la Windows PowerShell ISE y copiamos el contenido de este script al que le agradezco su trabajo https://github.com/jrudlin/Azure/blob/master/General/Shrink-AzDisk.ps1 

Aquí lo adaptaremos un poco a nuestro caso y cambiaremos los siguientes campos

  • $DiskID = Resource ID del disco
  • $VMName = el nombre de la VM
  • $DiskSizeGB = el nuevo tamaño que daremos la disco
  • $AzSubscription = y la suscripción donde se encuentra la VM.

Guardaremos y cerraremos.

Una vez guardado, lo podemos ejecutar de muchas maneras, yo usaré Azure Cloud Shell y subiré el script.

Reducir tamaño de disco en maquina virtual de Azure subir fichero

Comprobamos que se ha subido correctamente.

Reducir tamaño de disco en maquina virtual de Azure script subido

Y ejecutamos el script ./ReducirDiscoAzure.ps1.

El script comenzará a hacer su magia.

Y veremos como copia el disco a un blob temporal que ha creado.

Si nos fijamos en nuestro grupo de recursos, veremos como ha creado una cuenta de almacenamiento para este menester.

Reducir tamaño de disco en maquina virtual de Azure cuenta creada

También veremos como crea un disco temporal donde copiara el disco original.

Reducir tamaño de disco en maquina virtual de Azure disco temporal

Una vez finalizado el proceso, veremos como el disco final ha pasado a llamarse igual que el original pero con un _new y nos encenderá la VM.

Reducir tamaño de disco en maquina virtual de Azure disco new

Si hacemos clic en el disco, veremos su nuevo tamaño.

Reducir tamaño de disco en maquina virtual de Azure disco reducido

Y lo mismo desde el sistema operativo.

Reducir tamaño de disco en maquina virtual de Azure sistema operativo

Saludos y espero que os sirva.