Azure VMのサイズはv3、v5、v7のようにバージョンがあります。このバージョンが新しいほど性能がよくなっていくのですが、時折大きな仕様変更が入ります。これらの仕様変更を把握しておかないとバージョンを跨いだサイズ・SKU変更ができない!という罠にはまります。
本記事では主に使われることが多いDシリーズを基準に記載します。他シリーズにおける考え方はバージョンを適宜読み替えてください。
v3とv4の壁
v3までは基本的に全てのVMサイズに「一時ディスク」がついています。ページングファイルの置き場として使われるため、メモリサイズの2倍の大きさの一時ディスクがセットされています。
v4以降では「一時ディスクあり」・「一時ディスクなし」でVMサイズが分かれるようになりました。用途もページングファイル向けではなく、データベースなどの一時領域向けになっているので一時ディスクのサイズが大きくなりました。一時ディスクありのサイズは料金もその分高くなるため、高速な一時領域が必要でない限り一時ディスクありのサイズは選ばなくなったと思います。
ここで問題になってくるのが「Windows VMで一時ディスク”あり”から”無し”の VM サイズに変更できない」という点です。一時ディスクなしのサイズに変更したい場合はページングファイルのパスを変更したうえでディスクのスナップショットから仮想マシンを再作成する必要があります。
参考:ローカル一時ディスクを使用するサイズから、ローカル一時ディスクのない VM サイズに Windows VM を移行するにはどうすればよいですか?
Linuxの場合は一時ディスクなしタイプへ直接変更できるようですが、swapの設定は確認したほうがよいでしょう。
v5とv6の壁
v6以降ではかなり大きな仕様変更がおこなわれています。ディスクコントローラがSCSIからNVMeに変更されているため、簡単には移行できません。v5以前とv6以降は別物と思ったほうが良いです。v6以降へ移行しなければならない要件がない限り、旧サイズからの移行はv5にとどめておくのが無難です。
v6以降を利用するうえでいくつか前提事項があります。
第2世代VM(UEFIブート)である
第1世代VMを第2世代へ変換するにはトラステッド起動への変換もセットになります。最悪VMが正常に動作しなくなるリスクもあるので、バックアップは必須です。
参考:第 1 世代 VM を第 2 世代に変換できますか?
ゲストOSがNVMeをサポートしている
対応ゲストOSの一覧はこちらです。Windows Serverだと2019以降です。
リモート NVMe でサポートされている OS イメージ
新規VM作成時はNVMeのマークのあるイメージを使用する必要がある
Marketplaceの公式イメージを利用する場合は問題ないですが、カスタムイメージを使う場合は所定の手順でAzure Compute Galleryでイメージを共有する必要あります。
参考:NVMe 必須サイズ対応のカスタムイメージを用意する方法
v6以降へ移行する
v6以降に移行するには前提条件を満たしたうえでNVMe対応するための変換処理を実施する必要があります。変換処理自体は用意されたスクリプトを実行するだけですが、正常に動作せずに起動失敗するリスクはありますので必ず事前にバックアップを取っておきましょう。v6以降からv5以前へ変更する際にもこの処理が必要になります。(NVMeからSCSIに変更する処理をする)
具体的な手順は NVMe 必須サイズへ変更および SCSI 必須サイズに戻す手順の解説 をご参照ください。
NVMe対応VMサイズを調べる
Microsoftのドキュメントでは正直わかりづらいです。Azure Portalで以下の手順で確認するのがよいです。
VMの作成ウィザードやVMの設定画面で「VMサイズの選択」を開き、「ディスクコントローラー」のフィルターを追加します。

NVMeコントローラに対応している仮想マシンサイズのみが表示されます。

参考資料
