教學課程: 使用 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 中。 Screenshot that shows an example of Try It for Azure Cloud Shell.
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 Button to launch Azure Cloud Shell.
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 Screenshot that shows the Cloud Shell button in the Azure portal

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 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 標準 HDD
磁碟類型 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 磁碟大小。 佈建之後,您可能必須展開或重新分割磁碟,以利用整個空間。 深入瞭解如何在 WindowsLinux 的作業系統中擴充磁碟區。

在建立擴展集時連結磁碟

使用 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 執行個體。