Ejercicio: Cambio de tamaño de un disco de máquina virtual

Imaginemos que ha subestimado el gran tamaño de algunos de los archivos cargados y el disco de cargas se está quedando sin espacio. Puede optar por doblar el tamaño de 64 GB a 128 GB.

Aquí podrá poner en práctica el proceso que ha aprendido en las unidades anteriores.

Cambio de tamaño del disco de datos

Para cambiar el tamaño de un disco, necesitará el identificador o nombre de ese disco. En este caso, ya conoce el nombre, uploadDataDisk1. Sin embargo, si no lo recuerda o lo ha creado otra persona, puede ejecutar az disk list para buscar el nombre.

  1. Ejecute az disk list para imprimir la lista de los discos administrados en el grupo de recursos. Esta lista puede incluir otros discos si tiene varias máquinas virtuales en el mismo grupo de recursos.

    az disk list \
      --query '[*].{Name:name,Gb:diskSizeGb,Tier:sku.tier}' \
      --output table
    

    Consulte el disco denominado uploadDataDisk1.

    Name                                                        Gb
    ----------------------------------------------------------  ----
    support-web-vm01_OsDisk_1_141859cb21d64b85b9db3f70f0f5e851  30
    uploadDataDisk1                                             64
    
  2. Ejecute el siguiente comando az vm deallocate para detener y desasignar la máquina virtual. Esto no elimina la máquina virtual, pero la coloca en un estado en el que puede modificar los discos virtuales.

    az vm deallocate --name support-web-vm01
    
  3. Ejecute az disk update para cambiar el tamaño del disco a 128 GB.

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. Ejecute az vm start para reiniciar la máquina virtual.

    az vm start --name support-web-vm01
    

    Pero aún no hemos terminado. El sistema operativo de la máquina virtual no puede usar el espacio adicional todavía. Esto lo solucionamos en la siguiente sección.

Expansión de la partición de disco

El último paso es indicarle al sistema operativo el espacio disponible. Igual que con los pasos de creación de particiones y formato que siguió anteriormente, este proceso es idéntico al de expandir un disco local físico.

  1. Aunque puede reservar una dirección IP fija para la máquina virtual, esta de forma predeterminada recibe una nueva dirección IP pública al desasignarse y reiniciarse. Ejecute el siguiente comando az vm show para actualizar la variable de Bash con la nueva dirección IP pública de la máquina virtual.

    ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] -o tsv)
    
  2. Como hizo anteriormente, ejecute lsblk en la máquina virtual con SSH para conocer su estado actual.

    ssh azureuser@$ipaddress lsblk
    

    Puede ver que el disco sdc/sdc1 aún tiene un tamaño de 64 GB.

    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb      8:16   0   14G  0 disk 
    └─sdb1   8:17   0   14G  0 part /mnt
    sdc      8:32   0  128G  0 disk 
    └─sdc1   8:33   0   64G  0 part /uploads
    sda      8:0    0   30G  0 disk 
    └─sda1   8:1    0   30G  0 part /
    
  3. De forma similar a lo que hizo anteriormente para inicializar el disco, ejecute este comando az vm extension set para informar al sistema operativo de la máquina virtual sobre el espacio que acaba de quedar disponible mediante la ejecución de un script de Bash prefabricado para ayudarle a avanzar.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/resize-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./resize-data-disk.sh"}'
    

    Mientras se ejecuta el comando, puede examinar el script Bash en una pestaña independiente del explorador.

    En resumen, el script hace lo siguiente:

    • Desmonta el disco /dev/sdc1.
    • Cambia el tamaño de partición de 1 a 128 GB.
    • Comprueba la coherencia de la partición.
    • Cambia el tamaño del sistema de archivos.
    • Vuelve a montar la unidad /dev/sdc1 en el punto de montaje /uploads.
  4. Para comprobar la configuración, ejecute lsblk en la máquina virtual a través de SSH una segunda vez.

    ssh azureuser@$ipaddress lsblk
    

    Esta vez, verá que el disco sdc/sdc1 se expande para poder incluir el mayor tamaño del disco.

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb      8:16   0    14G  0 disk 
    └─sdb1   8:17   0    14G  0 part /mnt
    sdc      8:32   0   128G  0 disk 
    └─sdc1   8:33   0 119.2G  0 part /uploads
    sda      8:0    0    30G  0 disk 
    └─sda1   8:1    0    30G  0 part /
    
  5. Como paso de verificación final, ejecute la utilidad del sistema operativo df en la máquina virtual a través de SSH para demostrar que el sistema operativo puede verlo correctamente.

    ssh azureuser@$ipaddress df -h
    

    Verá que el tamaño de la unidad es de 128 GB.

    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.4G     0  3.4G   0% /dev
    tmpfs           697M  8.6M  689M   2% /run
    /dev/sda1        30G  1.4G   28G   5% /
    tmpfs           3.5G     0  3.5G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           3.5G     0  3.5G   0% /sys/fs/cgroup
    /dev/sdb1        14G   35M   13G   1% /mnt
    /dev/sdc1       118G   60M  112G   1% /uploads
    tmpfs           697M     0  697M   0% /run/user/1000