Dv3 / Ev3 VM と Nested Virtualization

//build でもアナウンスされていましたNested Virtualization可能なVM(Dv3/Ev3)が利用可能になりました。

これまでと違うのはHyper Theadingに対応したIntel Broadwell E5-2673 v4 2.3GHz processorと Intel Haswell 2.4 GHz E5-2673 v3によるvCPUがサポートされている点ですね。おかげでDv2より価格が少し抑えられている様子。(~28%減ぐらい)

またたくさんのメモリが割り当てられるDv2シリーズのD11~D14はEv3シリーズとなります。

細かなVMのスペックについては Introducing the new Dv3 and Ev3 VM sizes などを参照ください。
また利用可能リージョンは今のところUS East 2、US West 2、Europe West、Asia SouthEastとなります。そのうち使えるリージョンも増えるでしょう。

さてDv3とEv3の目玉の1つにVM上でもHyper-Vが利用できるNested Virtualizationがサポートされた点があります。

Azure上の物理ハード(Lv.0)の上にWindows Server 2016なAzureルートOS(Hyper-Vホスト)が動いており(Lv.1)、その上に普段利用しているAzureの仮想マシン(Lv .2 = Lv.1 のVM)が動きます。ここまでは通常のHyper-Vな仕組み(Virtualization)ですよね。これまではそのAzureのVMでHyper-Vを有効にできませんでしたが、Dv3/Ev3を使うとAzureの(Windows Server 2016かWindows 10 Anniversary Updateな)VMにHyper-V Hypervisorをさらに追加できます。(Nested Virtualization)
ということで、普段使ってるAzure VMの中でHyper-Vを普通に使えちゃうということですね。

image

展開に関する注意事項などはこちらを参照ください。

Githubにあるスクリプト流してもいいですし、普通にサーバーマネージャー等からHyper-V機能を追加してもいいです。基本的に物理マシンでHyper-Vな環境を作るのと大差なく使用できると思います。
注意点としてはネットワーク周りで、Azure VMが接続しているAzureのVNETに直接接続などはできません。
Hyper-V側でInternalな仮想スイッチを作成し、NATネットワークを設定する必要があります。
仮想マシン内で静的IPアドレスとNATネットワーク作成時に設定したゲートウェイなどをちゃんと指定してあげると(DNSも)、インターネットに接続することができます。必要であればAzure VM側(Hyper-Vホスト)にDHCPやDNSの役割を追加して割り当てられるようにしましょう。(やりかたは上記のGithub参照)

という感じで今後、ベース(Azure ルートOS)が新しくなりハードも新しくなるに従い利用できる地域も増えますし、想定シナリオも増えてNested Virtualizationの恩恵は受けれそうですね。(たとえばHyper-Vコンテナーが動いたりとか、AndroidやHoloLensのエミュレーターを動かしたりとか)

コメントを残す