Изменение типа диска управляемого диска Azure

Область применения: ✔️ Виртуальные машины Linux ✔️ Windows

Существует пять типов дисков управляемых дисков Azure: диски Azure Ценовой категории "Ультра", SSD уровня "Премиум" версии 2, SSD уровня "Премиум", SSD уровня "Стандартный" и "Стандартный" HDD. Вы можете легко переключаться между SSD уровня "Премиум", "Стандартный" и "Стандартный HDD" на основе ваших потребностей в производительности. SSD уровня "Премиум" и SSD уровня "Стандартный" также доступны в хранилище, избыточном между зонами. Вы еще не можете переключиться с диска категории "Ультра" или ssd уровня "Премиум" версии 2, необходимо развернуть новый с моментальным снимком существующего диска. Дополнительные сведения см. в статье "Миграция на SSD уровня "Премиум" версии 2 или "Ультра ".

Эта функция не поддерживается для неуправляемых дисков. Но вы можете легко преобразовать неуправляемый диск в управляемый диск с помощью ИНТЕРФЕЙСА командной строки или PowerShell , чтобы иметь возможность переключаться между типами дисков.

Подготовка к работе

Так как преобразование требует перезагрузки виртуальной машины, запланируйте перенос диска на предварительно заданный период обслуживания.

Ограничения

  • Тип диска можно изменять только дважды в день.
  • Изменить тип можно только для управляемых дисков. Если диск неуправляем, преобразуйте его в управляемый диск с помощью интерфейса командной строки или PowerShell для переключения между типами дисков.

Переключение всех управляемых дисков виртуальной машины из одной учетной записи в другую

В этом примере показано, как преобразовать все диски виртуальной машины в хранилище класса Premium. Изменив переменную $storageType в этом примере, можно также преобразовать диски в SSD цен. категории "Стандартный" или HDD цен. категории "Стандартный". Чтобы использовать управляемые диски класса Premium, необходимо использовать размер виртуальной машины, поддерживающий хранилище класса Premium. В этом примере также выполняется переключение на размер, поддерживающий хранилище уровня "Премиум".

# 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

Изменение типа отдельного управляемого диска

Для рабочей нагрузки разработки и тестирования может потребоваться сочетание дисков категорий "Стандартный" и "Премиум", чтобы сократить затраты. Можно выбрать преобразование только тех дисков, для которых требуется обеспечить более высокую производительность. В этом примере показано, как преобразовать один диск виртуальной машины из категории "Стандартный" в "Премиум". Изменив переменную $storageType в этом примере, можно также преобразовать диски в SSD цен. категории "Стандартный" или HDD цен. категории "Стандартный". Чтобы использовать управляемые диски класса Premium, необходимо использовать размер виртуальной машины, поддерживающий хранилище класса Premium. Эти примеры также можно использовать для изменения диска с диска локально избыточного хранилища (LRS) на диск, избыточный по зонам (ZRS), или наоборот. В этом примере также показано переключение на размер, поддерживающий хранилище класса Premium.


$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 уровня "Премиум" версии 2 или "Ультра"

В настоящее время можно перенести существующий диск только на диск ценовой категории "Ультра" или ssd уровня "Премиум" версии 2 с помощью моментальных снимков уровня "Стандартный" служба хранилища (добавочный снимок HDD уровня "Стандартный"). Миграция с моментальными снимками, хранящимися в хранилище класса Premium, и другие параметры не поддерживаются.

Диски SSD ценовой категории "Премиум" версии 2 и "Ультра" имеют собственный набор ограничений. Например, ни в качестве диска ОС нельзя использовать, а также не доступны во всех регионах. Дополнительные сведения см. в разделах об ограничениях SSD уровня "Премиум" версии 2 и область диска "Ультра".

Важно!

При переносе SSD уровня "Стандартный", "Стандартный" или "Премиум" SSD на диск "Ультра" или "Премиум SSD версии 2" размер логического сектора должен составлять 512.

Следующий скрипт переносит моментальный снимок диска HDD уровня "Стандартный", "Стандартный" или SSD уровня "Премиум" на диск категории "Ультра" или SSD уровня "Премиум" версии 2.

$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

Следующие шаги

Создайте копию виртуальной машины, доступную только для чтения, с помощью моментальных снимков.