Windows 仮想マシンをアンマネージド ディスクからマネージド ディスクに移行する

適用対象: ✔️ Windows VM

アンマネージド ディスクを使用する既存の Windows 仮想マシン (VM) を所有している場合、Azure Managed Disks サービスを使用して、マネージド ディスクを使用するように VM を移行できます。 このプロセスでは、オペレーティング システム (OS) ディスクと、アタッチされたすべてのデータ ディスクの両方を変換します。

開始する前に

  • 移行作業によって VM が再起動するので、既に設定されているメンテナンス期間中に VM の移行をスケジュールしてください。

  • この移行は元に戻すことができません。

  • 仮想マシン共同作成者ロールを持つユーザーは、VM のサイズを変更できません (移行前は可能)。 マネージド ディスクを持つ VM が OS ディスク上での Microsoft.Compute/disks/write 権限をユーザーに要求するのは、これが理由です。

  • 移行のテストは必ず行ってください。 まずテスト用の仮想マシンで試してから運用環境で移行を実行します。

  • 移行中に、VM の割り当てを解除します。 VM は、移行後に起動されたときに、新しい IP アドレスを受け取ります。 VM には必要に応じて静的 IP アドレスを割り当てることができます。

  • 移行プロセスをサポートするために必要な Azure VM エージェントの最小バージョンを確認します。 エージェントのバージョンを確認して更新する方法については、Azure VM エージェントの最小バージョンのサポートに関するページを参照してください。

単一インスタンスの VM を移行する

このセクションでは、単一インスタンスの Azure VM をアンマネージド ディスクからマネージド ディスクに移行する方法について説明します。 (VM が可用性セットに含まれている場合は次のセクションを参照してください。)

  1. Stop-AzVM コマンドレットを使用して VM の割り当てを解除します。 次の例では、myResourceGroup という名前のリソース グループに含まれる myVM という名前の VM の割り当てを解除します。

    $rgName = "myResourceGroup"
    $vmName = "myVM"
    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  2. ConvertTo-AzVMManagedDisk コマンドレットを使用して、VM をマネージド ディスクに移行します。 次のプロセスでは、OS ディスクとすべてのデータ ディスクを含む前の VM を変換し、仮想マシンを起動します。

    ConvertTo-AzVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
    

可用性セットの VM を移行する

マネージド ディスクに移行する VM が可用性セット内にある場合は、その可用性セットをマネージド可用性セットにまず移行する必要があります。

  1. Update-AzAvailabilitySet コマンドレットを使用して可用性セットを移行します。 次の例では、myResourceGroup という名前のリソース グループの myAvailabilitySet という名前の可用性セットを更新します。

    $rgName = 'myResourceGroup'
    $avSetName = 'myAvailabilitySet'
    
    $avSet = Get-AzAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
    Update-AzAvailabilitySet -AvailabilitySet $avSet -Sku Aligned 
    

    可用性セットがあるリージョンに管理障害ドメインが 2 つだけあるが、非管理対象障害ドメインの数が 3 つの場合、このコマンドは、"The specified fault domain count 3 must fall in the range 1 to 2" (障害ドメイン数 3 が指定されましたが、1 から 2 の範囲にする必要があります) のようなエラーを示します。エラーを解決するには、次のように、障害ドメインを 2 に更新し、SkuAligned に更新します。

    $avSet.PlatformFaultDomainCount = 2
    Update-AzAvailabilitySet -AvailabilitySet $avSet -Sku Aligned
    
  2. 可用性セット内の VM の割り当てを解除し、移行します。 次のスクリプトは、Stop-AzVM コマンドレットを使用して各 VM の割り当てを解除し、これを ConvertTo-AzVMManagedDisk を使用して変換して、移行プロセスの一環として自動的に再起動します。

    $avSet = Get-AzAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
    
    foreach($vmInfo in $avSet.VirtualMachinesReferences)
    {
      $vm = Get-AzVM -ResourceGroupName $rgName | Where-Object {$_.Id -eq $vmInfo.id}
      Stop-AzVM -ResourceGroupName $rgName -Name $vm.Name -Force
      ConvertTo-AzVMManagedDisk -ResourceGroupName $rgName -VMName $vm.Name
    }
    

トラブルシューティング

  • 変換前に、すべての VM の拡張機能が "プロビジョニング成功" 状態にあることを確認してください。そのようになっていないと、エラー コード 409 で移行に失敗します。
  • 移行中にエラーが発生する場合、または以前の移行の問題のために VM がエラー状態になっている場合は、ConvertTo-AzVMManagedDisk コマンドレットをもう一度実行します。 通常再試行するだけで状況が好転します。
  • Linux VM をマネージド ディスクに変換する場合は、最新バージョンの Azure Linux エージェントを使用します。 Azure Linux エージェントのバージョン "2.2.0" 以前を使用している操作は、失敗する可能性があります。 一般化された VM または従来の可用性セットに属している VM での移行の実行も、サポートされていません。
  • "SnapshotCountExceeded" エラーで移行が失敗する場合は、一部のスナップショットを削除してから、操作を再試行してください。

Azure portal を使用して移行する

Azure portal を使用して、アンマネージド ディスクをマネージド ディスクに移行することもできます。

  1. Azure portal にサインインします。
  2. ポータルで VM の一覧から VM を選択します。
  3. VM のブレードで、メニューから [ディスク] を選択します。
  4. [ディスク] ブレードの上部で、 [編集] を選択します。
  5. VM が可用性セット内にある場合は、可用性セットを先に移行する必要があることを示す警告が [マネージド ディスクへの移行] ブレードに表示されます。 警告には、可用性セットを移行するためにクリックできるリンクが含まれています。 可用性セットが変換された後、または VM が可用性セットに含まれていない場合は、 [移行] をクリックして、ディスクをマネージド ディスクに移行するプロセスを開始します。

VM が停止し、移行の完了後に再起動します。

次のステップ

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

スナップショットを使用して、VM の読み取り専用コピーを取得します。