CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回は 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 とは文字通りの機能で、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) を確認してください。
Windows Server 2016 TP4 では Nested virtualization はデフォルトで無効になっています。ですので、仮想マシン上で Hyper-V の役割を有効にしようとしても「必要な仮想化機能がプロセッサにありません」とエラーが出てしまいます。
確かに CPU-Z などのツールで CPU で利用可能な機能を表示すると VT-x が表示されないことが確認できます。これは仮想マシンに接続されている仮想 CPU が VT-x が無効になっているためです。
それでは 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 "<仮想マシンの名前>"
もし対象の仮想マシンが起動している場合は シャットダウンしてもよいか確認をされます。
また、この機能はプレビューの機能である旨のアラートが表示され、Hyper-V で Mac Address Spoofing という機能を有効にしてもよいかの確認が行われます。
これらの確認に対してY(Yes)と入力することで Nested Virtualization は有効になります。
それでは Nested Virtualization を有効にしたあとの動きを確認してみましょう。CPU-Z を起動してCPUの機能を確認してみると VT-x が有効になっていることが確認できます。
VT-x が利用可能になっているので Hyper-V も有効化できます。サーバーマネージャーからウィザードを起動して Hyper-V の役割がエラーにならず有効化できることが確認できます。
Hyper-V が有効化できたら、こちらのスクリーンショットのように仮想マシンの中で仮想マシンを作ることができるようになります。
Nested Virtualization が利用可能になることで Hyper-V の検証など便利になるシーンは少なからずありますが、 Windows Server 2016 で Nested Virtualization が搭載される理由は、これも Windows Server 2016 の新機能である Hyper-V コンテナの存在が大きいでしょう。この Hyper-V コンテナにより、サーバー上のアプリケーションの実行方法に新しいオプションが増えます。この新機能については次回説明していきます。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes