共用方式為


轉換 Azure 受控磁碟的磁碟類型

適用於:✔️ Linux VMs ✔️ Windows

Azure 受控磁碟有五種磁碟類型:Azure Ultra 磁碟、進階 SSD v2、進階 SSD、標準 SSD 和標準 HDD。 您可以根據自己的效能需求,在進階 SSD、標準 SSD 和標準 HDD 之間輕鬆切換。 進階 SSD 和標準 SSD 也可搭配區域備援儲存體使用。 針對多數案例,您尚無法切換 Ultra 磁碟或進階 SSD v2,您必須部署具有現有磁碟快照集的新磁碟。 不過,在預覽版中,您可以從現有的磁碟切換到進階 SSD v2。 如需詳細資訊,請參閱轉換進階 SSD v2 磁碟 (預覽)

非受控磁碟不支援此功能。 但是,您可以使用 CLIPowerShell,輕鬆地將非受控磁碟轉換成受控磁碟,而得以在磁碟類型之間切換。

開始之前

轉換需要重新啟動虛擬機器 (VM),因此請在預先存在的維護期間排定磁碟移轉。

Restrictions

  • 您每天只能變更磁碟類型兩次。
  • 您只能變更受控磁碟的磁碟類型。 如果您的磁碟為非受控,請使用 CLIPowerShell 將其轉換成受控磁碟,以在磁碟類型之間切換。

轉換進階 SSD v2 磁碟 (預覽)

作為公開預覽版,您可以將現有的磁碟切換至進階 SSD v2 磁碟,就像對其他磁碟類型所做的一樣。 進階 SSD v2 磁碟有一些限制,請參閱其文章中的進階 SSD v2 限制一節以深入了解。

允許直接切換至進階 SSD v2 磁碟的預覽版有一些額外的限制和區域限制:

  • 此預覽版適用於所有區域,但美國西部 2、EastUS 和西歐除外。
  • 您無法將 OS 磁碟切換至進階 SSD v2 磁碟。
  • 現有的磁碟只能直接切換到 512 磁區大小的進階 SSD v2 磁碟。
  • 每個區域的每個訂用帳戶只能同時執行 50 次轉換。
  • 如果您現有的磁碟是共用磁碟,請先中斷連結所有 VM,才能變更為進階 SSD v2。
  • 如果您的現有磁碟使用主機快取,請先將其設定為 [無],再變更為進階 SSD v2。
  • 如果您的現有磁碟使用高載,請先將其停用,才能變更為進階 SSD v2。
  • 如果您的現有磁碟使用雙重加密,則先切換至其中一個單一加密選項,才能變更為進階 SSD v2。
  • 您無法直接從進階 SSD v2 切換到另一個磁碟類型。 如果您想要將進階 SSD v2 變更為另一個磁碟類型,請使用快照集進行移轉。
  • 您無法直接從 Ultra 磁碟切換到進階 SSD v2 磁碟,請使用快照集進行移轉。
  • 如果您的磁碟已設定 Azure Site Recovery,請先將其停用,再變更為進階 SSD v2。
  • 預覽結束後,請刪除您在預覽期間轉換的任何磁碟。
  • 如果您使用其餘 API,則針對計算資源提供者和磁碟資源提供者使用 API 2020-12-01 版或更新版本。
  • 在將先前磁碟類型轉換為進階 SSD v2 的轉換流程完成之前,磁碟的效能會降低,而且如果磁碟正在使用中,就無法變更或輪替客戶自控金鑰。
    • 您可以使用下列命令來檢查轉換流程,使用您的值來取代 $diskName$resourceGroupName: az disk show -n $diskName -g $resourceGroupName --query [completionPercent] -o tsv

注意

如果您使用 Azure 備份,並將磁碟轉換成進階 SSD v2,則會擷取新磁碟的完整快照集。 這是可計費的事件,您將需支付該快照集的費用。

停用主機快取

如果您的磁碟使用主機快取,您必須先將其停用,才能轉換為進階 SSD v2。 您需要要停用主機快取的磁碟 LUN。 下列文本會輸出連結至 VM 及其 LUN 的磁碟名稱。 您可以使用這個來識別磁碟的 LUN。 將 yourResourceGroupnameOfYourVM 取代為您自己的值,然後執行指令碼。

myRG="yourResourceGroup"
myVM="nameOfYourVM"

az vm show -g $myRG -n $myVM --query "[storageProfile.dataDisks[].name, storageProfile.dataDisks[].lun]"

取得磁碟的 LUN 之後,請以 LUN 取代 LunHere,然後執行下列命令來停用主機快取:

lun=LunHere

az vm update --resource-group $myRG --name $myVM --disk-caching $lun=None

停用高載

如果您的磁碟使用高載,您必須先將其停用,才能轉換為進階 SSD v2。 如果您在 12 小時內啟用高載,則必須等到第 13 個小時或之後才能停用。

您可以使用下列命令來停用磁碟高載:az disk update --name "yourDiskNameHere" --resource-group "yourRGNameHere" --enable-bursting false

停用雙重加密

如果您的磁碟使用雙重加密,您必須先將其停用,才能轉換為進階 SSD v2。 您可以使用下列命令,使用客戶管理的金鑰,將磁碟從雙重加密變更為待用加密:

az disk-encryption-set update --name "nameOfYourDiskEncryptionSetHere" --resource-group "yourRGNameHere" --key-url yourKeyURL --source-vault "yourKeyVaultName" --encryption-type EncryptionAtRestWithCustomerKey

在不同帳戶之間切換 VM 的所有受控磁碟

此範例說明如何將 VM 的所有磁碟轉換成進階儲存體。 不過,藉由變更此範例中的 $storageType 變數,您可以將 VM 的磁碟類型轉換為標準 SSD 或標準 HDD。 若要使用進階受控磁碟,VM 必須使用可支援進階儲存體的 VM 大小。 此範例也會切換成可支援進階儲存體的大小:

# Name of the resource group that contains the VM
$rgName = 'yourResourceGroup'

# Name of the your virtual machine
$vmName = 'yourVM'

# Choose between Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_ZRS, and Premium_LRS based on your scenario
$storageType = 'Premium_LRS'

# Premium capable size
# Required only if converting storage from Standard to Premium
$size = 'Standard_DS2_v2'

# Stop and deallocate the VM before changing the size
Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force

$vm = Get-AzVM -Name $vmName -resourceGroupName $rgName

# Change the VM size to a size that supports Premium storage
# Skip this step if converting storage from Premium to Standard
$vm.HardwareProfile.VmSize = $size
Update-AzVM -VM $vm -ResourceGroupName $rgName

# Get all disks in the resource group of the VM
$vmDisks = Get-AzDisk -ResourceGroupName $rgName 

# For disks that belong to the selected VM, convert to Premium storage
foreach ($disk in $vmDisks)
{
	if ($disk.ManagedBy -eq $vm.Id)
	{
		$disk.Sku = [Microsoft.Azure.Management.Compute.Models.DiskSku]::new($storageType)
		$disk | Update-AzDisk
	}
}

Start-AzVM -ResourceGroupName $rgName -Name $vmName

變更個別受控磁碟的類型

對於您的開發/測試工作負載,您可能會想要混用標準和進階磁碟,以降低成本。 您可以選擇僅升級需要較高效能的磁碟。 此範例說明如何將單一 VM 磁碟從標準儲存體轉換成進階儲存體。 不過,藉由變更此範例中的 $storageType 變數,您可以將 VM 的磁碟類型轉換為標準 SSD 或標準 HDD。 若要使用進階受控磁碟,VM 必須使用可支援進階儲存體的 VM 大小。 您也可以使用這些範例,將磁碟從本地備援儲存體 (LRS) 磁碟變更為區域備援儲存體 (ZRS) 磁碟,反之亦然。 此範例也會說明如何切換至支援進階儲存體的大小:

注意

作為公開預覽版,您可以將現有磁碟的類型變更為進階 SSD v2 磁碟,就像針對其他磁碟類型一樣。 若要了解預覽版,請參閱進階 SSD v2 移轉 (預覽版)


$diskName = 'yourDiskName'
# resource group that contains the managed disk
$rgName = 'yourResourceGroupName'
# Choose between Standard_LRS, StandardSSD_LRS, StandardSSD_ZRS, Premium_ZRS, and Premium_LRS based on your scenario
$storageType = 'Premium_LRS'
# Premium capable size 
$size = 'Standard_DS2_v2'

$disk = Get-AzDisk -DiskName $diskName -ResourceGroupName $rgName

# Get parent VM resource
$vmResource = Get-AzResource -ResourceId $disk.ManagedBy

# Stop and deallocate the VM before changing the storage type
Stop-AzVM -ResourceGroupName $vmResource.ResourceGroupName -Name $vmResource.Name -Force

$vm = Get-AzVM -ResourceGroupName $vmResource.ResourceGroupName -Name $vmResource.Name 

# Change the VM size to a size that supports Premium storage
# Skip this step if converting storage from Premium to Standard
$vm.HardwareProfile.VmSize = $size
Update-AzVM -VM $vm -ResourceGroupName $rgName

# Update the storage type
$disk.Sku = [Microsoft.Azure.Management.Compute.Models.DiskSku]::new($storageType)
$disk | Update-AzDisk

Start-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name

使用快照集移轉至進階 SSD v2 或 Ultra 磁碟

注意

作為公開預覽版,您可以將現有磁碟的類型變更為進階 SSD v2 磁碟,就像針對其他磁碟類型一樣。 若要了解預覽版,請參閱進階 SSD v2 移轉 (預覽版)

您目前只能透過在標準儲存體上儲存的快照集 (累加式標準 HDD 快照集),將現有的磁碟移轉至進階 SSD v2 或 Ultra 磁碟。 您無法移轉在進階儲存體和其他選項中儲存的快照集。 不支援透過進階 SSD v2 或 Ultra 磁碟的的快照集移轉至進階 SSD v1、標準 SSD 和標準 HDD。

進階 SSD v2 磁碟和 Ultra 磁碟各自都有一組限制。 例如,這兩者都無法作為 OS 磁碟,也無法在所有區域中使用。 如需詳細資訊,請參閱其文章中的進階 SSD v2 限制Ultra 磁碟 GA 範圍和限制章節。

重要

將標準 HDD、標準 SSD 或進階 SSD 移轉至 Ultra 磁碟或進階 SSD v2 時,邏輯磁區大小必須是 512。

下列指令碼會將標準 HDD、標準 SSD 或進階 SSD 的快照集移轉至 Ultra 磁碟或進階 SSD v2。

$diskName = "yourDiskNameHere"
$resourceGroupName = "yourResourceGroupNameHere"
$snapshotName = "yourDesiredSnapshotNameHere"

# Valid values are 1, 2, or 3
$zone = "yourZoneNumber"

#Provide the size of the disks in GB. It should be greater than the VHD file size.
$diskSize = '128'

#Provide the storage type. Use PremiumV2_LRS or UltraSSD_LRS.
$storageType = 'PremiumV2_LRS'

#Provide the Azure region (e.g. westus) where Managed Disks will be located.
#This location should be same as the snapshot location
#Get all the Azure location using command below:
#Get-AzLocation

#Select the same location as the current disk
#Note that Premium SSD v2 and Ultra Disks are only supported in a select number of regions
$location = 'eastus'

#When migrating a Standard HDD, Standard SSD, or Premium SSD to either an Ultra Disk or Premium SSD v2, the logical sector size must be 512
$logicalSectorSize=512

# Get the disk that you need to backup by creating an incremental snapshot
$yourDisk = Get-AzDisk -DiskName $diskName -ResourceGroupName $resourceGroupName

# Create an incremental snapshot by setting the SourceUri property with the value of the Id property of the disk
$snapshotConfig=New-AzSnapshotConfig -SourceUri $yourDisk.Id -Location $yourDisk.Location -CreateOption Copy -Incremental 
$snapshot = New-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -Snapshot $snapshotConfig

$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -DiskSizeGB $diskSize -LogicalSectorSize $logicalSectorSize -Zone $zone
 
New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName

下一步

使用快照集來製作 VM 的唯讀複本。