適用於:✔️ Linux 虛擬機 ✔️ 彈性規模設定
Azure 虛擬機器 (VM) 會使用磁碟來儲存作系統、應用程式和數據。 當您建立 VM 時,請務必選擇適合預期工作負載的磁碟大小和組態。 本教學課程說明如何部署和管理 VM 磁碟。 您瞭解:
- OS 磁碟和暫存磁碟
- 數據磁碟
- 標準和進階磁碟
- 磁碟效能
- 連結及準備資料磁碟
- 磁碟快照
預設 Azure 磁碟
建立 Azure 虛擬機時,會自動將兩個磁碟連結至虛擬機。
作業系統磁碟 - 作業系統磁碟的大小最多可達 2 TB,並存放 VM 的作業系統。 OS 磁碟預設會標示為 /dev/sda。 OS 磁碟的磁碟快取組態已針對 OS 效能進行最佳化。 由於此設定,OS 磁碟 不應該 用於應用程式或數據。 針對應用程式和數據,請使用本教學課程稍後詳述的數據磁碟。
暫存磁碟 - 暫存磁碟使用與 VM 位於相同 Azure 主機上的固態硬碟。 暫存磁碟效能很高,可用於臨時數據處理等作業。 不過,如果 VM 移至新的主機,則會移除儲存在暫存磁碟上的任何數據。 暫存磁碟的大小取決於 VM 大小。 暫存磁碟會標示為 /dev/sdb,其掛接點為 /mnt。
Azure 資料磁碟
若要安裝應用程式和儲存數據,可以新增其他數據磁碟。 資料磁碟應使用於任何需要持久且有回應之資料儲存體的情況。 虛擬機的大小會決定可以連結至 VM 的數據磁碟數目。
VM 磁碟類型
Azure 提供兩種類型的磁碟。
標準磁碟 - 由 HDD 支援,並提供符合成本效益的記憶體,同時仍能執行效能。 標準磁碟非常適合符合成本效益的開發與測試工作負載。
進階磁碟 - 以 SSD 為基礎、高效能、低延遲的磁碟所支援。 最適合用於執行生產工作負載的 VM。 VM 大小名稱中含有 S 的類型,通常支援高效能儲存體。 例如,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/秒 | 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/秒 | 600 MB/秒 | 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/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 170 MB/秒 | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* | 1,000 MB/秒* |
| 最大突發持續時間 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 30 分鐘 | 無限制* | 無限制* | 無限制* | 無限制* | 無限制* | 無限制* |
| 符合保留資格 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是,最多一年 | 是,最多一年 | 是,最多一年 | 是,最多一年 | 是,最多一年 | 是,最多一年 |
*僅適用於已啟用隨選高載的磁碟。
** 僅適用於已啟用效能加強的磁碟。
當您布建進階記憶體磁碟時,不同於標準記憶體,您保證該磁碟的容量、IOPS 和輸送量。 例如,如果您建立 P50 磁碟,Azure 會為該磁碟佈建 4,095 GB 儲存體容量、7,500 IOPS 和 250 MB/秒的輸送量。 您的應用程式可以使用全部或部分的容量和效能。 進階 SSD 磁碟的設計是為了在 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參數來指定應建立並附加到虛擬機的額外磁碟。 若要建立並連結多個磁碟,請使用以空格分隔的磁碟大小值清單。 在下列範例中,VM 會以兩個數據磁碟建立,兩個數據磁碟都是 128 GB。 由於磁碟大小為 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
在此案例中, /dev/sdc1 輸出會顯示磁碟驅動器的 UUID。
/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 有多個磁碟時,每個磁碟會各自產生快照集。 若要取得應用程式一致的備份,請考慮在建立磁碟快照之前停止虛擬機器。 或者,使用 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 設定自動化。