練習 - 調整 VM 磁碟的大小

已完成

假設您低估了部分上傳檔案的大小,以及您的上傳磁碟空間即將不足。 您決定將磁碟空間從 64 GB 加倍為 128 GB。

在這裡,您會練習您在先前單元中學到的流程。

調整資料磁碟的大小

若要調整磁碟大小,您需要磁碟的識別碼或名稱。 在此情況下,您已經知道名稱—*uploadDataDisk1—但如果您不知道,或其他人已建立磁碟,您可以執行 az disk list 來尋找名稱。

  1. 執行 az disk list 命令以列印資源群組中的受控磁碟清單。 如果您在相同資源群組中有多個 VM,此清單可能會包含其他磁碟。

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

    您會看到名為 uploadDataDisk1 的磁碟。

    Name                                                        Tier
    ----------------------------------------------------------  -------
    support-web-vm01_OsDisk_1_a7c59897dfda42dfab2edf4933e713a6  Premium
    uploadDataDisk1                                             Premium
    
  2. 執行下列命令 az vm deallocate,以停止並解除配置 VM。 這個命令不會刪除您的 VM,但會將它置於您可以修改虛擬磁碟的狀態。

    az vm deallocate --name support-web-vm01
    
  3. 執行 az disk update 命令以將磁碟大小調整為 128 GB。

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. 執行 az vm start 命令以重新啟動 VM。

    az vm start --name support-web-vm01
    

    我們還沒有完成。 VM 上的作業系統還無法使用額外的空間。 我們將在下一節中處理這個狀況。

擴充磁碟分割

最後一個步驟是告訴 OS 關於可用空間的資訊。 如同您稍早執行過的磁碟分割與格式化步驟,此流程與您在擴充實體內部部署磁碟時遵循的步驟完全相同。

  1. 雖然您可以為 VM 保留固定的公用 IP 位址,但根據預設,在您將 VM 解除配置並重新啟動時,VM 會收到新的公用 IP 位址。 執行下列 az vm show 命令,將您的 Bash 變數更新為 VM 的新公用 IP 位址。

    ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] -o tsv)
    
  2. 如您稍早所執行的,透過 SSH 在 VM 上執行 lsblk 以了解其目前狀態。

    ssh azureuser@$ipaddress lsblk
    

    您可以看到磁碟 sdc/sdc1 的大小仍為 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. 類似您先前將磁碟初始化所做的,請執行下列 az vm extension set 命令,透過執行我們建立來協助您的預製 Bash 指令碼,告訴 VM 上的 OS 有新的可用空間。

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

    在命令執行的時候,您也可以視需要從另一個瀏覽器索引標籤檢查 Bash 指令碼

    總結來說,指令碼:

    • 將磁碟 /dev/sdc1 取消掛接。
    • 將磁碟分割 1 調整為 128 GB。
    • 驗證磁碟分割的一致性。
    • 調整檔案系統大小。
    • 重新將磁碟機 /dev/sdc1 掛接回掛接點 /uploads
  4. 若要驗證設定,請再次透過 SSH 在 VM 上執行 lsblk

    ssh azureuser@$ipaddress lsblk
    

    這一次,您會看到磁碟 sdc/sdc1 已擴充以容納增加的磁碟大小。

    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. 最後一個驗證步驟是透過 SSH 在 VM 上執行作業系統的 df 公用程式,以證明 OS 可以正確地看到它。

    ssh azureuser@$ipaddress df -h
    

    您會看到磁碟機大小為 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