適用於:✔️ Windows VM ✔️ 彈性擴展集
本文說明如何使用 PowerShell 將新的及現有的磁碟連結至 Windows 虛擬機器。
首先,請檢閱下列提示:
- 虛擬機器的大小會控制您可以連接的資料磁碟數目。 如需相關資訊,請參閱虛擬機器的大小。
- 要使用高級 SSD,你需要有 支援高級儲存的虛擬機類型,例如 DS 系列或 GS 系列虛擬機。
本文會使用 Azure Cloud Shell 內的 PowerShell,這會不斷更新至最新版本。 若要開啟 Cloud Shell,請選取任何程式碼區塊頂端的 [試試看]。
降低資料磁碟連接延遲
在特定區域,磁碟連接延遲會降低,因此可改善多達 15%。 如果您在 VM 之間進行計劃性或非計劃性容錯移轉、正在調整工作負載,或正在執行大規模可設定狀態工作負載,例如 Azure Kubernetes Service,則此改進非常有用。 然而,這項改進僅限於明確的磁碟附加指令 Add-AzVMDataDisk。 如果你執行了可能會隱含進行附加作業的指令,例如 Update-AzVM,就不會看到效能提升。 您無須採取呼叫明確連結命令以外的動作,即可看到這項改進。
較低延遲目前在每個公用區域都可以使用,但下列區域除外:
- 加拿大中部
- 美國中部
- 美國東部
- 美國東部 2
- 美國中南部
- 美國西部 2
- 德國北部
- 印度西部
- 北歐
- 西歐
將空的資料磁碟新增至虛擬機器
這個範例示範如何將空的資料磁碟新增至現有的虛擬機器。
建立並附加管理磁碟
設定資源群組、虛擬機、位置、儲存類型及資料磁碟名稱的值。
New-AzDiskConfig 指令組會為一個空的 128 GiB 管理磁碟建立設定,而 New-AzDisk 則建立該磁碟。 接著, Get-AzVM 取得虛擬機設定, Add-AzVMDataDisk 將磁碟加入其中,並將 Update-AzVM 更新後的設定套用到虛擬機上。
$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
Update-AzVM -VM $vm -ResourceGroupName $rgName
在可用性區域建立並附加管理磁碟
設定資源群組、虛擬機、位置、儲存類型及資料磁碟名稱的值。 要在可用區域建立受管理磁碟,請使用 New-AzDiskConfig 參數 -Zone 。 以下範例在第 1 區建立一顆空的 128 GiB 管理磁碟,將其加入虛擬機設定,並將更新後的設定套用到虛擬機上。
$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US 2'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128 -Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
Update-AzVM -VM $vm -ResourceGroupName $rgName
初始化磁碟
新增空硬碟後,你需要初始化它。 要初始化磁碟,請登入虛擬機並使用磁碟管理。 如果你在建立虛擬機時啟用 WinRM 和憑證,可以用遠端 PowerShell 初始化磁碟。
你也可以使用 Set-AzVMCustomScriptExtension 這個 cmdlet 為虛擬機新增自訂腳本擴充功能。 以下範例使用附件程序中的資源群組與虛擬機名稱,以及虛擬機位置、副檔名、初始化腳本檔、儲存帳號名稱、儲存帳號金鑰及容器名稱的值。 在執行指令前,先將腳本儲存在指定的 Azure 儲存體 容器中:
$location = "location-name"
$scriptName = "script-name"
$fileName = "script-file-name"
Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $location -VMName $vmName -Name $scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -FileName $fileName -ContainerName "scripts"
指令檔可以包含用以將磁碟初始化的程式碼,例如︰
注意
範例指令碼使用 MBR 分割樣式。 若磁碟大小為 2 TiB 或以上,您必須使用 GTP 分割。 若其低於 2 TiB,您可以使用 MBR 或 GPT。
$disks = Get-Disk | Where partitionstyle -eq 'raw' | sort number
$letters = 70..89 | ForEach-Object { [char]$_ }
$count = 0
$labels = "data1","data2"
foreach ($disk in $disks) {
$driveLetter = $letters[$count].ToString()
$disk |
Initialize-Disk -PartitionStyle MBR -PassThru |
New-Partition -UseMaximumSize -DriveLetter $driveLetter |
Format-Volume -FileSystem NTFS -NewFileSystemLabel $labels[$count] -Confirm:$false -Force
$count++
}
將現有的資料磁碟附加至 VM
設定資源群組、虛擬機及現有受管理磁碟名稱的值。 使用 Get-AzDisk 來取得管理磁碟和 Get-AzVM 虛擬機設定。 接著,使用 將 Add-AzVMDataDisk 現有磁碟加入虛擬機設定,並將 Update-AzVM 更新後的設定套用到虛擬機上。
$rgName = "myResourceGroup"
$vmName = "myVM"
$dataDiskName = "myDisk"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
$vm = Add-AzVMDataDisk -CreateOption Attach -Lun 0 -VM $vm -ManagedDiskId $disk.Id
Update-AzVM -VM $vm -ResourceGroupName $rgName
下一步
您也可以使用範本來部署受控磁碟。 欲了解更多資訊,請參閱「 在 Azure 資源管理軟體範本中使用管理磁碟 」或「部署多個資料磁碟的 快速入門範本 」。