使用 Azure CLI 擴充 Linux VM 上的虛擬硬碟

本文將說明如何使用 Azure CLI 來擴充 Linux 虛擬機器 (VM) 的受控磁碟。 您可以新增資料磁碟來提供更多儲存空間,而您也可以擴充既有的資料磁碟。 在 Azure 中,Linux VM 上作業系統 (OS) 的預設虛擬硬碟大小通常是 30 GB。

警告

請務必確定您的檔案系統處於狀況良好的狀態,您的磁碟分割表類型將會支援新的大小,並確保您的資料會在執行磁片調整大小作業之前備份。 如需詳細資訊,請參閱 Azure 備份快速入門

擴充 Azure 受控磁碟

確定您已安裝最新的 Azure CLI,並且已使用 az login 登入 Azure 帳戶。

本文需要 Azure 中存有一個虛擬機器,且該虛擬機器至少掛載一個已備妥使用的資料磁碟。 如果您還沒有可使用的虛擬機器,請參閱建立並準備掛載有資料磁碟的虛擬機器

在下列範例中,以您自己的值取代範例參數名稱,例如 myResourceGroupmyVM

  1. 當 VM 正在執行時,無法對虛擬硬碟執行作業。 使用 az vm deallocate 解除配置您的 VM。 下列範例會將名為 myResourceGroup 的資源群組中名為 myVM 的 VM 解除配置:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    注意

    必須解除配置 VM,才能擴充虛擬硬碟。 使用 az vm stop 停止 VM,不會釋放計算資源。 若要釋放計算資源,請使用 az vm deallocate

  2. 使用 az disk list 來檢視資源群組中的受控磁碟清單。 下列範例會顯示名為 myResourceGroup 之資源群組中的受控磁碟清單:

    az disk list \
        --resource-group myResourceGroup \
        --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
        --output table
    

    使用 az disk update 擴充所需的磁碟。 下列範例會將名為 myDataDisk 的受控磁碟擴充為 200 GB:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    注意

    當您擴充受控磁碟時,會將更新的大小向上調整為最接近的受控磁碟大小。 如需可用受控磁碟大小和階層的表格,請參閱 Azure 受控磁碟概觀 - 價格和計費

  3. 使用 az vm create 啟動 VM。 下列範例會啟動名為 myResourceGroup 資源群組中名為 myVM 的 VM:

    az vm start --resource-group myResourceGroup --name myVM
    

擴充磁碟分割與檔案系統

若要使用擴充的硬碟,請擴充底層磁碟分割與檔案系統。

  1. 使用適當的認證以 SSH 登入 VM。 您可以使用 az vm show 來查看 VM 的公用 IP 位址:

    az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --output tsv
    
  2. 擴充底層磁碟分割與檔案系統。

    a. 如果已經裝載磁碟,即會加以卸載:

    sudo umount /dev/sdc1
    

    b. 使用 parted 來檢視磁碟資訊與調整分割區大小:

    sudo parted /dev/sdc
    

    使用 print 來檢視既有磁碟分割配置的資訊。 輸出類似下列範例,其顯示底層磁碟為 215 GB:

    GNU Parted 3.2
    Using /dev/sdc1
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print
    Model: Unknown Msft Virtual Disk (scsi)
    Disk /dev/sdc1: 215GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: loop
    Disk Flags:
    
    Number  Start  End    Size   File system  Flags
        1      0.00B  107GB  107GB  ext4
    

    c. 使用 resizepart 來展開分割區。 輸入分割區編號 1 以及新分割區的大小:

    (parted) resizepart
    Partition number? 1
    End?  [107GB]? 215GB
    

    d. 若要結束,請輸入 quit

  3. 分割區調整大小後,使用 e2fsck 來確認分割區的一致性:

    sudo e2fsck -f /dev/sdc1
    
  4. 使用 resize2fs 來調整檔案系統大小:

    sudo resize2fs /dev/sdc1
    
  5. 將分割區掛載至所需位置,像是 /datadrive

    sudo mount /dev/sdc1 /datadrive
    
  6. 若要確認資料磁片已調整大小,請使用 df -h 。 下列範例輸出顯示資料磁碟機 /dev/sdc1 現在是 200 GB:

    Filesystem      Size   Used  Avail Use% Mounted on
    /dev/sdc1        197G   60M   187G   1% /datadrive
    

下一步