教學課程: 使用 Azure PowerShell 建立及搭配使用磁碟與虛擬機器擴展集
虛擬機器擴展集會使用磁碟來儲存 VM 執行個體的作業系統、應用程式和資料。 當您建立及管理擴展集時,請務必選擇預期的工作負載所適用的磁碟大小和組態。 本教學課程將說明如何建立及管理 VM 磁碟。 在本教學課程中,您會了解:
- OS 磁碟和暫存磁碟
- 資料磁碟
- 標準和進階磁碟
- 磁碟效能
- 連結及準備資料磁碟
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
預設 Azure 磁碟
建立或調整擴展集後,有兩個磁碟會自動連結到各個 VM 執行個體。
作業系統磁碟 - 作業系統磁碟可裝載 VM 執行個體的作業系統,其大小可以高達 2 TB。 OS 磁碟預設會標示為 /dev/sda。 OS 磁碟的磁碟快取組態已針對 OS 效能進行最佳化。 因為此組態,OS 磁碟不得裝載應用程式或資料。 請對應用程式和資料使用資料磁碟,本文稍後會詳細說明。
暫存磁碟 - 暫存磁碟會使用與 VM 執行個體位於相同 Azure 主機的固態磁碟機。 這些是高效能磁碟,可用於臨時資料處理等作業。 不過,如果 VM 執行個體移至新的主機,則會移除儲存在暫存磁碟上的任何資料。 暫存磁碟的大小取決於 VM 執行個體大小。 暫存磁碟會標示為 /dev/sdb,其掛接點為 /mnt。
Azure 資料磁碟
如果您需要安裝應用程式和儲存資料,您可以新增額外的資料磁碟。 資料磁碟應使用於任何需要持久且有回應之資料儲存體的情況。 每個資料磁碟皆具有 4 TB 的最大容量。 VM 執行個體的大小會決定可連結的資料磁碟數目。 每個 VM vCPU 可以連結兩個資料磁碟。
VM 磁碟類型
下表提供五種磁碟類型的比較,以協助您決定要使用的磁碟類型。
Ultra 磁碟 | 進階 SSD v2 | 進階 SSD | 標準 SSD | ||
---|---|---|---|---|---|
磁碟類型 | SSD | SSD | SSD | SSD | HDD |
案例 | IO 密集的工作負載 (例如 SAP Hana)、最上層資料庫 (例如 SQL、Oracle),以及其他高交易量的工作負載。 | 持續需要低延遲和高 IOPS 與輸送量的生產環境與效能敏感的工作負載 | 生產環境和重視效能的工作負載 | 網頁伺服器、輕量使用的企業應用程式和開發/測試 | 備份、不重要、存取不頻繁 |
最大磁碟大小 | 65,536 GiB | 65,536 GiB | 32,767 GiB | 32,767 GiB | 32,767 GiB |
最大輸送量 | 4,000 MB/s | 1200 MB/s | 900 MB/秒 | 750 MB/秒 | 500 MB/s |
最大 IOPS | 160,000 | 80,000 | 20,000 | 6,000 | 2,000, 3,000* |
可作為 OS 磁碟? | 否 | 無 | .是 | .是 | Yes |
*僅適用於已啟用升等效能 (預覽) 的磁碟。
如需涵蓋不同磁碟類型之高階差異的影片,以及判斷影響您工作負載需求之因素的方式,請參閱 使用 Azure 磁碟儲存體和彈性 SAN 來封鎖儲存體選項。
建立和連結磁碟
您可以在建立擴展集時建立並連結磁碟,或使用現有的擴展集。
自 API 版本 2019-07-01
起,即可使用 storageProfile.osDisk.diskSizeGb 屬性來設定虛擬機器擴展集中的 OS 磁碟大小。 佈建之後,您可能必須擴充或重新分割磁碟,以利用整個空間。 深入瞭解如何在 Windows 或 Linux 的作業系統中擴充磁碟區。
在建立擴展集時連結磁碟
使用 New-AzVmss 建立虛擬機器擴展集。 出現提示時,請提供 VM 執行個體的使用者名稱和密碼。 為了將流量散發到個別的虛擬機器執行個體,也會建立負載平衡器。 負載平衡器包含在 TCP 連接埠 80 上分配流量的規則,同時允許 TCP 連接埠 3389 上的遠端桌面流量以及 TCP 連接埠 5985 上的 PowerShell 遠端處理。
系統會使用 -DataDiskSizeGb
參數建立兩個磁碟。 第一個磁碟的大小為 64 GB,第二個磁碟則為 128 GB。 出現提示時,請為擴展集中的 VM 執行個體提供適當的系統管理認證:
New-AzResourceGroup -Name "myResourceGroup" -Location "East US"
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-OrchestrationMode "Flexible" `
-VMScaleSetName "myScaleSet" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-DataDiskSizeInGb 64,128
建立及設定所有擴展集資源和 VM 執行個體需要幾分鐘的時間。
將磁碟連結至現有的擴展集
您也可以將磁碟連結至現有的擴展集。 請使用在先前的步驟中建立的擴展集,透過 Add-AzVmssDataDisk 新增另一個磁碟。 下列範例會將另一個 128 GB 的磁碟連結至現有的擴展集:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Attach a 128 GB data disk to LUN 2
Add-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-CreateOption Empty `
-Lun 2 `
-DiskSizeGB 128
# Update the scale set to apply the change
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
或者,如果您想要將資料磁碟新增至擴展集中的個別執行個體,請使用 Add-AzVmssVMDataDisk。
$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId 1
Add-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -LUN 2 -DiskSizeInGB 1 -CreateOption Empty -StorageAccountType Standard_LRS
Update-AzVmssVM -VirtualMachineScaleSetVM $VirtualMachine
列出已連結的磁碟
若要檢視已連結至擴展集之磁碟的相關資訊,請使用 Get-AzVmss,如下所示:
Get-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet"
在 VirtualMachineProfile.StorageProfile 屬性下,會顯示 DataDisks 的清單。 此時會顯示磁碟大小、儲存層和 LUN (邏輯單元編號) 的相關資訊。 下列範例輸出會詳盡顯示三個連結至擴展集的資料磁碟:
DataDisks[0] :
Lun : 0
Caching : None
CreateOption : Empty
DiskSizeGB : 64
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[1] :
Lun : 1
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
DataDisks[2] :
Lun : 2
Caching : None
CreateOption : Empty
DiskSizeGB : 128
ManagedDisk :
StorageAccountType : PremiumLRS
中斷連結磁碟
當您不再需要給定的磁碟時,您可以從擴展集將其中斷連結。 磁碟會從擴展集中的所有 VM 執行個體移除。 若要從擴展集將磁碟中斷連結,請使用 Remove-AzVmssDataDisk 並指定磁碟的 LUN。 LUN 會顯示在上一節 Get-AzVmss 的輸出中。 下列範例會從擴展集將 LUN 3 中斷連結:
# Get scale set object
$vmss = Get-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet"
# Detach a disk from the scale set
Remove-AzVmssDataDisk `
-VirtualMachineScaleSet $vmss `
-Lun 2
# Update the scale set and detach the disk from the VM instances
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-VirtualMachineScaleSet $vmss
或者,如果您想要將資料磁碟移除至擴展集中的個別執行個體,請使用 Remove-AzVmssVMDataDisk。
$VirtualMachine = Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "c91dfbd9"
Remove-AzVmssVMDataDisk -VirtualMachineScaleSetVM $VirtualMachine -Lun 2
Update-AzVmssVM -VirtualMachineScaleSetVM -VM $VirtualMachine
清除資源
若要移除您的擴展集與磁碟,請使用 Remove-AzResourceGroup 刪除資源群組及其所有資源。 -Force
參數會確認您想要刪除資源,而不另外對您提示將要進行此作業。 -AsJob
參數不會等待作業完成,就會將控制項傳回給提示字元。
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
下一步
在本教學課程中,您已了解如何使用 Azure PowerShell 來建立及使用擴展集所適用的磁碟:
- OS 磁碟和暫存磁碟
- 資料磁碟
- 標準和進階磁碟
- 磁碟效能
- 連結及準備資料磁碟
前往下一個教學課程,了解如何將自訂映像用於擴展集 VM 執行個體。