IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Hyper-V の部屋

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第22回 Windows Server 2016 のリリース前に知っておきたい Nested Virtualization (小塚大介) 2016年5月

今回は Windows Server 2016 TP4 から利用可能になった Nested virtualization をご紹介していきます。今年リリース予定の Windows Server 2016 ですが、現在 Technical Preview 4 (TP4) というプレビューバージョンが利用可能でこちら (https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview) からダウンロードして利用することができます。あくまでプレビューバージョンですので、新しい機能を試すなどテスト目的で利用してください。また、このコラムで扱う情報も TP4 をベースに作成していますので正式リリース時までに変更があるかもしれません。

Nested virtualization とは?

Nested Virtualization とは文字通りの機能で、Hyper-V の仮想マシンのなかで Hyper-V を動かすことが可能になります。これまで、デモ環境や検証環境の用途でこの機能の需要があったものの利用できませんでした。しかし Windows Server 2016 からは利用可能になる予定です。このコラムでは Windows Server 2016 の新機能としてご紹介しますが、 Windows 10 のHyper-Vでも利用可能です。詳細な環境要件はこちら (https://technet.microsoft.com/en-us/library/dn765471.aspx#BKMK_nested) を確認してください。

最初に Nested virtualization が無効の場合の挙動を確認する

Windows Server 2016 TP4 では Nested virtualization はデフォルトで無効になっています。ですので、仮想マシン上で Hyper-V の役割を有効にしようとしても「必要な仮想化機能がプロセッサにありません」とエラーが出てしまいます。

fig01

確かに CPU-Z などのツールで CPU で利用可能な機能を表示すると VT-x が表示されないことが確認できます。これは仮想マシンに接続されている仮想 CPU が VT-x が無効になっているためです。

fig02

Nested virtualization を有効にする

それでは Nested virtualization を有効にしましょう。この機能は Hyper-V のホストOS上から PowerShell を使って仮想マシンごとに設定を変更します。手順の詳細はこちら (https://msdn.microsoft.com/virtualization/hyperv_on_windows/user_guide/nesting) のページにも記載されていますが、手順自体は簡単で以下の2行の PowerShell コマンドを実行するだけです。

Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1
~/Enable-NestedVm.ps1 -VmName "<仮想マシンの名前>"

もし対象の仮想マシンが起動している場合は シャットダウンしてもよいか確認をされます。

fig03

また、この機能はプレビューの機能である旨のアラートが表示され、Hyper-V で Mac Address Spoofing という機能を有効にしてもよいかの確認が行われます。

fig04

これらの確認に対してY(Yes)と入力することで Nested Virtualization は有効になります。

Nested virtualization 有効後の挙動を確認する

それでは Nested Virtualization を有効にしたあとの動きを確認してみましょう。CPU-Z を起動してCPUの機能を確認してみると VT-x が有効になっていることが確認できます。

fig05

VT-x が利用可能になっているので Hyper-V も有効化できます。サーバーマネージャーからウィザードを起動して Hyper-V の役割がエラーにならず有効化できることが確認できます。

fig06

Hyper-V が有効化できたら、こちらのスクリーンショットのように仮想マシンの中で仮想マシンを作ることができるようになります。

fig07

Nested Virtualization の用途

Nested Virtualization が利用可能になることで Hyper-V の検証など便利になるシーンは少なからずありますが、 Windows Server 2016 で Nested Virtualization が搭載される理由は、これも Windows Server 2016 の新機能である Hyper-V コンテナの存在が大きいでしょう。この Hyper-V コンテナにより、サーバー上のアプリケーションの実行方法に新しいオプションが増えます。この新機能については次回説明していきます。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes