Azure マネージド ディスクのディスクの種類を変更する

適用対象: ✔️ Linux VM ✔️ Windows

Azure マネージド ディスクには、Azure Ultra Disks、Premium SSD v2、Premium SSD、Standard SSD、Standard HDD の 5 つのディスクの種類があります。 パフォーマンスのニーズに合わせて、Premium SSD、Standard SSD、および Standard HDD を簡単に切り替えることができます。 Premium SSD と Standard SSD は、 ゾーン冗長ストレージ でも使用できます。 Ultra Disk または Premium SSD v2 に、またはそれらから切り替えることはまだできません。既存のディスクのスナップショットを含む新しいディスクをデプロイする必要があります。 詳しくは、「Premium SSD v2 または Ultra Disk に移行する」をご覧ください。

この機能は、アンマネージド ディスクではサポートされていません。 ただし、ディスクの種類を切り替えられるようにするために、CLI あるいは PowerShell を使用して、アンマネージド ディスクをマネージド ディスクに簡単に変換できます。

始める前に

変換には仮想マシン (VM) の再起動を伴うので、既に設定されているメンテナンス期間中にディスクの移行をスケジュールしてください。

制限

  • ディスクの種類を変更できるのは 1 日 2 回のみです。
  • 変更できるのは、マネージド ディスクのディスクの種類のみです。 お使いのディスクがアンマネージド ディスクの場合は、CLI または PowerShell を使用してマネージド ディスクに変換してディスクの種類を切り替えます。

VM のすべてのマネージド ディスクをあるアカウントから別のものに切り替える

この例では、VM のすべてのディスクを Premium Storage に変換する方法を示します。 ただし、この例で $storageType 変数を変更することで、VM のディスクの種類を Standard SSD または Standard HDD に変換できます。 Premium マネージド ディスクを使用するには、Premium Storage に対応している VM のサイズを使用している必要があります。 この例は、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

個々のマネージド ディスクの種類を変更する

開発/テスト ワークロードでは、コストを削減するために Standard ディスクと Premium ディスクを混在させたい場合があります。 パフォーマンスを上げる必要があるディスクだけをアップグレードするように選択できます。 この例では、1 つの VM ディスクを Standard から Premium ストレージに変換する方法について説明します。 ただし、この例で $storageType 変数を変更することで、VM のディスクの種類を Standard SSD または Standard HDD に変換できます。 Premium マネージド ディスクを使用するには、Premium Storage に対応している VM のサイズを使用している必要があります。 これらの例を使用して、ディスクをローカル冗長ストレージ (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

Premium SSD v2 または Ultra Disk に移行する

現在、既存のディスクを Ultra Disk または Premium SSD v2 のどちらかに移行できるのは、Standard Storage で保存されているスナップショットを介してのみです (増分 Standard HDD スナップショット)。 Premium Storage に保存されているスナップショットを使用した移行とその他のオプションはサポートされていません。

Premium SSD v2 ディスクと Ultra Disks の両方に独自の一連の制限があります。 たとえば、どちらも OS ディスクとして使用することはできません。また、すべてのリージョンで使用できるわけではありません。 詳細については、それぞれの記事の「Premium SSD v2 の制限事項」セクションと「Ultra Disk GA のスコープと制限事項」セクションを参照してください。

重要

Standard HDD、Standard SSD、または Premium SSD を Ultra Disk または Premium SSD v2 に移行するときは、論理セクター サイズが 512 である必要があります。

次のスクリプトでは、Standard HDD、Standard SSD、または Premium SSD のスナップショットを Ultra Disk または Premium 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 の読み取り専用コピーを取得します。