教學課程 - 使用 Azure CLI 管理 Azure 磁碟

適用於:✔️ Linux VM ✔️ 彈性擴展集

Azure 虛擬機器 (VM) 使用磁碟來儲存作業系統、應用程式和資料。 建立 VM 時,請務必選擇適合所預期工作負載的磁碟大小和組態。 本教學課程說明如何部署及管理 VM 磁碟。 您了解:

  • OS 磁碟和暫存磁碟
  • 資料磁碟
  • 標準和進階磁碟
  • 磁碟效能
  • 連結及準備資料磁碟
  • 磁碟快照集

預設 Azure 磁碟

建立 Azure 虛擬機器後,有兩個磁碟會自動連結到虛擬機器。

作業系統磁碟 - 作業系統磁碟可裝載 VM 作業系統,其大小可以高達 2 TB。 OS 磁碟預設會標示為 /dev/sda。 OS 磁碟的磁碟快取組態已針對 OS 效能進行最佳化。 因為此組態,OS 磁碟不得用於應用程式或資料。 請對應用程式和資料使用資料磁碟,本教學課程稍後會詳細說明。

暫存磁碟 - 暫存磁碟會使用與 VM 位於相同 Azure 主機的固態磁碟機。 暫存磁碟的效能非常好,可用於暫存資料處理等作業。 不過,如果 VM 移至新的主機,則會移除儲存在暫存磁碟上的任何資料。 暫存磁碟的大小取決於 VM 大小。 暫存磁碟會標示為 /dev/sdb,其掛接點為 /mnt

Azure 資料磁碟

若要安裝應用程式和儲存資料,可以新增額外的資料磁碟。 資料磁碟應使用於任何需要持久且有回應之資料儲存體的情況。 虛擬機器的大小會決定可連結到 VM 的資料磁碟數目。

VM 磁碟類型

Azure 提供兩種類型的磁碟。

標準磁碟 - 由 HDD 所支援,可提供符合成本效益的儲存體,同時保有效能。 標準磁碟適合用於具成本效益的開發和測試工作負載。

進階磁碟 - 採用以 SSD 為基礎的高效能、低延遲磁碟。 最適合用於執行生產工作負載的 VM。 在大小名稱中具有 S 的 VM 大小通常會支援進階儲存體。 例如,DS 系列、DSv2 系列、GS 系列和 FS 系列的 VM 便支援進階儲存體。 當您選取磁碟大小時,其值會上調為下一個類型。 例如,如果磁碟大小超過 64 GB,但少於 128 GB,則磁碟類型為 P10。


進階 SSD 的大小 P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
磁碟大小 (以 GiB 為單位) 4 8 16 32 64 128 256 512 1,024 2,048 4,096 8,192 16,384 32,767
每個磁碟的基礎佈建的 IOPS 120 120 120 120 240 500 1,100 2,300 5,000 7,500 7,500 16,000 18,000 20,000
**每個磁碟已展開的佈建的 IOPS N/A N/A N/A N/A N/A N/A N/A N/A 8,000 16,000 20,000 20,000 20,000 20,000
每個磁碟的基礎佈建的輸送量 25 MB/秒 25 MB/秒 25 MB/秒 25 MB/秒 50 MB/秒 100 MB/秒 125 MB/s 150 MB/秒 200 MB/秒 250 MB/秒 250 MB/秒 500 MB/s 750 MB/秒 900 MB/秒
**每個磁碟已展開的佈建的輸送量 N/A N/A N/A N/A N/A N/A N/A N/A 300 MB/s 600 MB/s 900 MB/秒 900 MB/秒 900 MB/秒 900 MB/秒
每一磁碟的 IOPS 高載上限 3,500 3,500 3,500 3,500 3,500 3,500 3,500 3,500 30,000* 30,000* 30,000* 30,000* 30,000* 30,000*
每一磁碟的輸送量高載上限 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1,000 MB/s* 1,000 MB/s* 1,000 MB/s* 1,000 MB/s* 1,000 MB/s* 1,000 MB/s*
持續時間高載上限 30 分鐘 30 分鐘 30 分鐘 30 分鐘 30 分鐘 30 分鐘 30 分鐘 30 分鐘 無限制* 無限制* 無限制* 無限制* 無限制* 無限制*
符合保留資格 No No 是,最多一年 是,最多一年 是,最多一年 是,最多一年 是,最多一年 是,最多一年

*僅適用於已啟用隨選高載的磁碟。
**僅適用於已啟用升等效能 (預覽) 的磁碟。

當您佈建進階儲存體磁碟時,不同於標準儲存體的是,您可獲得該磁碟的容量、IOPS 和輸送量保證。 例如,如果您建立 P50 磁碟,Azure 會為該磁碟佈建 4,095 GB 儲存體容量、7,500 IOPS 和 250 MB/秒的輸送量。 您的應用程式可以使用全部或部分的容量和效能。 進階固態硬碟的設計是為了在 99.9% 的時間內,提供低個位數毫秒延遲以及上表所述的目標 IOPS 和輸送量。

雖然上表指出每個磁碟的最大 IOPS,但可藉由分割多個資料磁碟來達到較高等級的效能。 例如,可以將 64 個資料磁碟連結到 Standard_GS5 VM。 如果上述每個磁碟的大小調整為 P30,就可以達到 80,000 IOPS 的最大值。 如需每部 VM 之最大 IOPS 的詳細資訊,請參閱 VM 類型和大小

啟動 Azure Cloud Shell

Azure Cloud Shell 是免費的互動式 Shell,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。

若要開啟 Cloud Shell,請選取程式碼區塊右上角的 [試試看]。 您也可以移至 https://shell.azure.com/powershell ,從另一個瀏覽器索引標籤啟動 Cloud Shell。 選取 [複製] 即可複製程式碼區塊,將它貼到 Cloud Shell 中,然後按 enter 鍵加以執行。

建立和連結磁碟

您可以建立資料磁碟並在建立 VM 時連結,或連結至現有的 VM。

在建立 VM 時連結磁碟

使用 az group create 命令來建立資源群組。

az group create --name myResourceGroupDisk --location eastus

使用 az vm create 命令來建立 VM。 下列範例會建立名為 myVM 的 VM,新增名為 azureuser 的使用者帳戶,並產生 SSH 金鑰 (如果沒有這些金鑰的話)。 --datadisk-sizes-gb 引數用來指定應該建立一個額外的磁碟並連結至虛擬機器。 若要建立並連結多個磁碟,請使用以空格分隔的磁碟大小值清單。 在下列範例中,會建立具有兩個資料磁碟 (均為 128 GB) 的 VM。 因為磁碟大小是 128 GB,所以這些磁碟都會設為 P10,其可提供每個磁碟最高 500 IOPS。

az vm create \
  --resource-group myResourceGroupDisk \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_DS2_v2 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 128 128

將磁碟連結至現有的 VM

若要建立新的磁碟並將它連結至現有的虛擬機器,請使用 az vm disk attach 命令。 下列範例會建立進階磁碟 (大小為 128 GB),並將它連結至最後一個步驟中建立的 VM。

az vm disk attach \
    --resource-group myResourceGroupDisk \
    --vm-name myVM \
    --name myDataDisk \
    --size-gb 128 \
    --sku Premium_LRS \
    --new

準備資料磁碟

將磁碟連結到虛擬機器後,必須將作業系統設定為使用該磁碟。 下列範例示範如何手動設定磁碟。 使用 cloud-init (涵蓋於稍後的教學課程中) 也可以將此程序自動化。

建立虛擬機器的 SSH 連線。 以虛擬機器的公用 IP 位址取代範例 IP 位址。

ssh azureuser@10.101.10.10

使用 parted 分割磁碟。

sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

使用 mkfs 命令將檔案系統寫入至磁碟分割。 使用 partprobe 讓 OS 知道這項變更。

sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1

掛接新磁碟,使其可在作業系統中存取。

sudo mkdir /datadrive && sudo mount /dev/sdc1 /datadrive

現在可以透過 /datadrive 掛接點存取磁碟,而執行 df -h 命令即可驗證此掛接點。

df -h | grep -i "sd"

輸出會顯示掛接在 /datadrive 上的新磁碟機。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.0G   27G   7% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1        14G   41M   13G   1% /mnt
/dev/sdc1        50G   52M   47G   1% /datadrive

為了確保磁碟機會在重新開機之後重新掛接,必須將磁碟機新增至 /etc/fstab 檔案。 若要這麼做,請使用 blkid 公用程式取得磁碟的 UUID。

sudo -i blkid

輸出會顯示磁碟機的 UUID,在此情況下為 /dev/sdc1

/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs"

注意

不當編輯 /etc/fstab 檔案會導致系統無法開機。 如果不確定,請參閱散發套件的文件,以取得如何適當編輯此檔案的相關資訊。 在編輯之前,也建議先備份 /etc/fstab 檔案。

在文字編輯器中開啟 /etc/fstab 檔案,如下所示:

sudo nano /etc/fstab

將類似下面的一行新增至 /etc/fstab 檔案,並以您自己的值取代 UUID 值。

UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e   /datadrive  xfs    defaults,nofail   1  2

當您完成檔案的編輯時,請使用 Ctrl+O 來寫入檔案,並使用 Ctrl+X 來結束編輯器。

磁碟已設定完成,請關閉 SSH 工作階段。

exit

擷取磁碟快照集

當您建立磁碟快照集時,Azure 會建立磁碟的唯讀、時間點複本。 進行組態變更之前,Azure VM 快照集可用於快速儲存 VM 的狀態。 發生問題或錯誤時,便可使用快照集來還原 VM。 當 VM 有多個磁碟時,每個磁碟會各自產生快照集。 若要進行應用程式一致備份,請考慮在建立磁碟快照集之前停止 VM。 或者,使用 Azure 備份服務,其可讓您在 VM 執行時執行自動化備份。

建立快照集

建立快照集之前,您需要磁碟的識別碼或名稱。 使用 az vm show 來拍攝磁碟識別碼。 在此範例中,磁碟識別碼會儲存在變數中,以便用於稍後的步驟。

osdiskid=$(az vm show \
   -g myResourceGroupDisk \
   -n myVM \
   --query "storageProfile.osDisk.managedDisk.id" \
   -o tsv)

現在您已有識別碼,請使用 az snapshot create 建立磁碟的快照集。

az snapshot create \
    --resource-group myResourceGroupDisk \
    --source "$osdiskid" \
    --name osDisk-backup

從快照集建立磁碟

此快照集可以接著使用 az disk create 轉換成磁碟,進而用於重新建立虛擬機器。

az disk create \
   --resource-group myResourceGroupDisk \
   --name mySnapshotDisk \
   --source osDisk-backup

從快照集還原虛擬機器

若要示範虛擬機器復原,請使用 az vm delete 刪除現有的虛擬機器。

az vm delete \
--resource-group myResourceGroupDisk \
--name myVM

從快照磁碟建立新的虛擬機器。

az vm create \
    --resource-group myResourceGroupDisk \
    --name myVM \
    --attach-os-disk mySnapshotDisk \
    --os-type linux

重新連結資料磁碟

所有資料磁碟都必須重新連結至虛擬機器。

使用 az disk list 命令尋找資料磁碟名稱。 此範例會將磁碟名稱放入名為 datadisk 的變數,該變數使用於下一個步驟。

datadisk=$(az disk list \
   -g myResourceGroupDisk \
   --query "[?contains(name,'myVM')].[id]" \
   -o tsv)

使用 az vm disk attach 命令來連結磁碟。

az vm disk attach \
   –g myResourceGroupDisk \
   --vm-name myVM \
   --name $datadisk

下一步

在本教學課程中,您已了解 VM 磁碟的相關主題,像是:

  • OS 磁碟和暫存磁碟
  • 資料磁碟
  • 標準和進階磁碟
  • 磁碟效能
  • 連結及準備資料磁碟
  • 磁碟快照集

請前進到下一個教學課程,以了解如何自動設定 VM。