第2世代 Azure Virtual Machineの指定

 

すでに半年以上たってはいるのですが、第 2 世代仮想マシン (VM) が Azure でサポートされるようになっています。

https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/generation-2

まだ、Hyper-Vの第2世代とは、セキュアブートやVHDX形式はサポートされない等の差はあるようです。

ですが、ディスク コントローラーがSCSIになるなど、いろいろ進化しているようです。

今回は、第2世代の仮想マシンを明示的に指定する方法について、Azure PortalとARMテンプレートの場合について確認してみました。

1 .Azure Portal上で第2世代の仮想マシンを指定する方法について

マイクロソフト様のサイトにもありますが、Azure Portalを利用して第2世代の仮想マシンを作成するのは詳細タブで実施します。。

下記のように詳細タブの一番下に、VMの生成という項目があります。こちらでGen2を選択すると第2世代の仮想マシンが作成できます。

.Azure Resource Manager(ARM)テンプレート等で第2世代の仮想マシンを指定する方法について

ARMテンプレート等で第2世代の仮想マシンを指定するには、SKUで指定する形になるようです。

仮想マシンの場合は、OSを指定する場合、以下の項目で指定されます。

    • PublisherName 発行者
    • Offer OSのタイプ(WindowsかCentOSか)
    • Skus OSのバージョン
    • version 詳細バージョン(大体latestかと思います。)

実際に見るのが一番わかりやすいので、Windows Serverの場合とCentOSの場合について確認してみました。(結果は省略してます。)

まずはWindows Serverの場合です。gsというのもあるのですが、2019-datacenter-gensecondを選ぶようです。

PS> Get-AzVMImageSku -Location ‘Japan East’ -PublisherName MicrosoftWindowsServer -Offer WindowsServer |ft Skus,Offer,PublisherName,Version

Skus Offer PublisherName Version
—- —– ————- ——-
2019-Datacenter WindowsServer MicrosoftWindowsServer
2019-datacenter-gensecond WindowsServer MicrosoftWindowsServer
2019-datacenter-gs WindowsServer MicrosoftWindowsServer
2019-Datacenter-smalldisk WindowsServer MicrosoftWindowsServer
2019-datacenter-smalldisk-g2 WindowsServer MicrosoftWindowsServer
2019-Datacenter-with-Containers WindowsServer MicrosoftWindowsServer
2019-datacenter-with-containers-g2 WindowsServer MicrosoftWindowsServer
2019-datacenter-with-containers-gs WindowsServer MicrosoftWindowsServer

次にCent OSの場合ですCentOSの場合は、-gen2がついているのが第2世代の仮想マシンに対応するようです。 (結果は省略してます。)

PS> Get-AzVMImageSku -Location ‘Japan East’ -PublisherName OpenLogic -Offer CentOS |ft Skus,Offer,PublisherName,Version

Skus Offer PublisherName Version
—- —– ————- ——-
7.4 CentOS OpenLogic
7.5 CentOS OpenLogic
7.6 CentOS OpenLogic
7.7 CentOS OpenLogic
7_4 CentOS OpenLogic
7_4-gen2 CentOS OpenLogic
7_5-gen2 CentOS OpenLogic
7_6-gen2 CentOS OpenLogic
7_7-gen2 CentOS OpenLogic
7_8 CentOS OpenLogic
7_8-gen2 CentOS OpenLogic
8.0 CentOS OpenLogic
8_0-gen2 CentOS OpenLogic
8_1 CentOS OpenLogic
8_1-gen2 CentOS OpenLogic

この結果を踏まえて、ARMテンプレートで第2世代の仮想マシンを指定する場合はこんな感じになりました。

#Windows Serverの場合

“imageReference”: {
“publisher”: “MicrosoftWindowsServer”,
“offer”: “WindowsServer”,
“sku”: “2019-datacenter-gensecond”,
“version”: “latest”

#Cent OSの場合

“imageReference”: {
“publisher”: “OpenLogic”,
“offer”: “CentOS”,
“sku”: “8_1-gen2”,
“version”: “latest”

注意点ですが、第2世代の仮想マシンと第1世代の仮想マシンは相互に変換する事が2020年6月時点ではできません。基本的には第2世代で作った方が良いように思えるのですが、注意はしておいた方が良いと思われます。

ARMテンプレートを使ったAzure VMのデプロイについてはこちらの記事に記載しております。

テンプレート機能を使ってAzure VMをデプロイする