Azure CLI を使用して Azure VM によって使用される OS ディスクを変更する

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

既存の VM があり、そのディスクをバックアップ ディスクまたは別の OS ディスクに交換する場合、Azure CLI を使用して OS ディスクを交換できます。 VM を削除して再作成する必要はありません。 別のリソース グループ内のマネージド ディスクでも、まだ使用されていない場合に限り使用することができます。

OS ディスクスワップの要件

OS ディスクをスワップする前に VM を停止する必要はありません。

OS ディスクをスワップする前に、現在のディスクと交換するディスクが次の要件を満たしていることを確認します。

  • VM サイズは、交換ディスクのストレージの種類をサポートします。 たとえば、Premium Storageの交換ディスクには、DS シリーズ のサイズなど、Premium Storageをサポートする VM サイズが必要です。
  • 現在の OS ディスクと置換 OS ディスクのサイズは同じです。
  • VM と交換 OS ディスクには、互換性のある暗号化構成があります。 暗号化された OS ディスクを暗号化されていない VM にスワップすることはサポートされていません。
  • VM がAzure Disk Encryptionを使用していない場合は、代替 OS ディスクでAzure Disk Encryptionを使用しないでください。
  • ディスクでディスク暗号化セットが使用されている場合、両方のディスクは同じディスク暗号化セットに属します。

この記事では、Azure CLI バージョン 2.0.25 以降が必要です。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

Azure CLIを使用して OS ディスクをスワップする

VM リソース グループ、置換 OS ディスク リソース グループ、VM 名、および完全な置換 OS ディスク リソース ID 変数を設定します。 例の値を独自の値に置き換えます。

vmResourceGroup="myVMResourceGroup"
diskResourceGroup="myDiskResourceGroup"
vmName="myVM"
replacementDiskId="/subscriptions/<subscription ID>/resourceGroups/$diskResourceGroup/providers/Microsoft.Compute/disks/myDisk"

az disk list を使用してリソース グループ内のディスクの一覧を取得します。

az disk list \
   -g $diskResourceGroup \
   --query '[*].{diskId:id}' \
   --output table

(省略可能)ディスクをスワップする前に、 az vm stop を使用して VM を停止します。

az vm stop \
   -n $vmName \
   -g $vmResourceGroup

--os-disk パラメーターには、新しいディスクの完全なリソース ID で az vm update を使用します。

az vm update \
   -g $vmResourceGroup \
   -n $vmName \
   --os-disk $replacementDiskId

VM が交換 OS ディスクを使用していることを確認します。 コマンドの出力は、 $replacementDiskIdの値と一致する必要があります。

az vm show \
   -g $vmResourceGroup \
   -n $vmName \
   --query storageProfile.osDisk.managedDisk.id \
   --output tsv

ディスクをスワップする前に VM を停止した場合は、 az vm start を使用して再起動します。

az vm start \
   -n $vmName \
   -g $vmResourceGroup

次のステップ

ディスクのコピーを作成する方法については、「スナップショットの作成」を参照してください。