Alterar o tipo de disco de um disco gerenciado do Azure

Aplica-se a: ✔️ VMs do Linux ✔️ Windows

Há cinco tipos de discos gerenciados do Azure: Discos Ultra do Azure, SSD Premium v2, SSD Premium, SSD Standard e HDD Standard. Você pode alternar facilmente entre o SSD Premium, o SSD Standard e HDD Standard com base em suas necessidades de desempenho. O SSD Premium e o SSD Standard também estão disponíveis com Armazenamento com redundância de zona. Ainda não é possível alternar de ou para um Disco Ultra ou um SSD Premium v2. Você deve implantar um novo com um instantâneo de um disco existente. Consulte Migrar para o SSD Premium v2 ou o Disco Ultra para obter detalhes.

Não há suporte para essa funcionalidade em discos não gerenciados. Mas você pode converter facilmente um disco não gerenciado em um disco gerenciado com a CLI ou o PowerShell para poder alternar entre os tipos de disco.

Antes de começar

Como a conversão requer uma reinicialização da VM (máquina virtual), programe a migração do disco durante uma janela de manutenção preexistente.

Restrições

  • Você só pode alterar o tipo de disco duas vezes por dia.
  • Você só pode alterar o tipo de disco de discos gerenciados. Se o seu disco não for gerenciado, converta-o em um disco gerenciado com a CLI ou o PowerShell para alternar entre os tipos de disco.

Alternar todos os discos gerenciados de uma VM de uma conta para outra

Este exemplo mostra como converter todos os discos de uma VM para o armazenamento Premium. No entanto, com a alteração da variável $storageType neste exemplo, você pode converter o tipo de disco da VM para SSD padrão ou HDD padrão. Para usar o Managed Disks Premium, sua VM deve usar um tamanho VM que dá suporte a armazenamento Premium. Este exemplo também muda para um tamanho que suporte armazenamento 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

Alterar o tipo de um disco gerenciado individual

Para sua carga de trabalho de desenvolvimento/teste, convém ter uma combinação de discos Standard e Premium para reduzir os custos. Você pode optar por atualizar somente os discos que precisam de melhor desempenho. Este exemplo mostra como converter um único disco de VM do armazenamento Standard para Premium. No entanto, com a alteração da variável $storageType neste exemplo, você pode converter o tipo de disco da VM para SSD padrão ou HDD padrão. Para usar o Managed Disks Premium, sua VM deve usar um tamanho VM que dá suporte a armazenamento Premium. Você também pode usar esses exemplos para alterar um disco de LRS (armazenamento com redundância local) para um ZRS (armazenamento com redundância de zona) ou vice-versa. Este exemplo também mostra como alternar para um tamanho que dá suporte ao armazenamento 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

Migrar para o SSD Premium v2 ou Disco Ultra

Atualmente, você só pode migrar um disco existente para um Disco Ultra ou um SSD Premium v2 usando os instantâneos armazenados no Armazenamento Standard (Instantâneo HDD Standard Incremental). Não há suporte para a migração com instantâneos armazenados no armazenamento Premium e outras opções.

Tanto os discos SSD Premium v2 quanto os Discos Ultra têm seu próprio conjunto de restrições. Por exemplo, nenhum deles pode ser usado como um disco de sistema operacional e também não estão disponíveis em todas as regiões. Confira as seções Limitações do SSD Premium v2 e Escopo e limitações de GA do Disco Ultra de seus artigos para obter mais informações.

Importante

Ao migrar um HDD Standard, SSD Standard ou SSD Premium para um Disco Ultra ou SSD Premium v2, o tamanho do setor lógico deve ser 512.

O script a seguir migra um instantâneo de um HDD Standard, SSD Standard ou SSD Premium para um Disco Ultra ou um SSD Premium 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

Próximas etapas

Faça uma cópia somente leitura de uma VM usando um snapshot.