Exercício – Redimensionar um disco de VM

Digamos que você tenha subestimado o tamanho de alguns dos arquivos carregados e que seu disco de upload esteja ficando sem espaço. Você decide duplicar o espaço de 64 GB para 128 GB.

Aqui, você praticará o processo que aprendeu na unidade anterior.

Redimensionar o disco de dados

Para redimensionar um disco, você precisa da ID ou do nome do disco. Nesse caso, você já sabe o nome, uploadDataDisk1. No entanto, caso não se lembrasse do nome, ou caso ele tivesse sido criado por outra pessoa, você poderia executar az disk list para localizar o nome.

  1. Execute az disk list para imprimir a lista de discos gerenciados no grupo de recursos. Essa lista poderá incluir outros discos se você tiver várias VMs no mesmo grupo de recursos.

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

    Você verá o disco denominado uploadDataDisk1.

    Name                                                        Gb
    ----------------------------------------------------------  ----
    support-web-vm01_OsDisk_1_141859cb21d64b85b9db3f70f0f5e851  30
    uploadDataDisk1                                             64
    
  2. Execute o seguinte comando az vm deallocate para parar e desalocar a VM. Isso não exclui a VM, mas a coloca em um estado em que você pode modificar os discos virtuais.

    az vm deallocate --name support-web-vm01
    
  3. Execute az disk update para redimensionar o disco para 128 GB.

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. Execute az vm start para reiniciar a VM.

    az vm start --name support-web-vm01
    

    Mas ainda não terminamos. O sistema operacional na VM não pode usar o espaço extra ainda. Isso é feito na próxima seção.

Expandir a partição de disco

A etapa final é informar ao SO sobre o espaço disponível. Assim como as etapas de particionamento e de formatação executadas anteriormente, este processo é idêntico ao que você seguiria para expandir um disco físico local.

  1. Embora você possa reservar um endereço IP público fixo para sua VM, por padrão a VM recebe um novo endereço IP público quando é desalocada e reiniciada. Execute o seguinte comando az vm show para atualizar sua variável Bash com o novo endereço IP público da VM.

    ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] --o tsv)
    
  2. Como fez anteriormente, execute lsblk na VM via SSH para compreender seu estado atual.

    ssh azureuser@$ipaddress lsblk
    

    Você pode ver que o disco sdc/sdc1 ainda tem um tamanho 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. Semelhante ao que você fez anteriormente para inicializar o disco, execute este comando az vm extension set para informar o sistema operacional na VM sobre o espaço que acaba de ficar disponível executando um script de Bash predefinido que criamos para ajudá-lo.

    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"}'
    

    Enquanto o comando é executado, se desejar, você poderá examinar o script do Bash em uma guia separada no navegador.

    Para resumir, o script:

    • Desmonta o disco /dev/sdc1.
    • Redimensiona a partição 1 para 128 GB.
    • Verifica a consistência da partição.
    • Redimensiona o sistema de arquivos.
    • Remonta a unidade /dev/sdc1 de volta para o ponto de montagem /uploads.
  4. Para verificar a configuração, execute lsblk em sua VM via SSH uma segunda vez.

    ssh azureuser@$ipaddress lsblk
    

    Dessa vez, você verá que o disco sdc/sdc1 é expandido para acomodar o aumento do tamanho do 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 uma etapa de verificação final, execute o utilitário df do sistema de operacional na sua VM via SSH para provar que o sistema operacional pode vê-lo corretamente.

    ssh azureuser@$ipaddress df -h
    

    Você verá que o tamanho da unidade é 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