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

Completado

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í pondrá 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. Pero en caso de que no lo haya creado o alguien más haya creado el disco, puede ejecutar az disk list para encontrar el nombre.

  1. Ejecute el comando 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                                                        Tier
    ----------------------------------------------------------  -------
    support-web-vm01_OsDisk_1_a7c59897dfda42dfab2edf4933e713a6  Premium
    uploadDataDisk1                                             Premium
    
  2. Ejecute el siguiente comando az vm deallocate para detener y desasignar la máquina virtual. Este comando no elimina la máquina virtual, pero lo coloca en un estado en el que puede modificar los discos virtuales.

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

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. Ejecute el comando 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. Tratamos esta situación en la sección siguiente.

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 ha realizado antes, 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, de forma predeterminada la máquina virtual 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    7G  0 disk 
    └─sdb1    8:17   0    7G  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 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    
  3. De forma similar a lo que hizo anteriormente para inicializar el disco, ejecute el comando az vm extension set siguiente 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     7G  0 disk 
    └─sdb1    8:17   0     7G  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 
    ├─sda14   8:14   0     4M  0 part 
    ├─sda15   8:15   0   106M  0 part /boot/efi
    └─sda1    8:1    0  29.9G  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            1.7G     0  1.7G   0% /dev
    tmpfs           345M  9.3M  335M   3% /run
    /dev/sda1        29G  1.9G   28G   7% /
    tmpfs           1.7G     0  1.7G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup
    /dev/sda15      105M  3.2M  102M   3% /boot/efi
    /dev/sdb1       6.8G   16M  6.4G   1% /mnt
    /dev/sdc1       118G   60M  112G   1% /uploads
    tmpfs           345M     0  345M   0% /run/user/1000