Microsoft はクラウド時代に合わせて Windows サーバーを再構築することに注力しており、Hyper-V ハイパーバイザーもそれに応じて変化しています。
Hyper-V の最初のリリースは、Windows Server 2008 で行われました。当初から堅牢で信頼性の高い製品でしたが、競合製品、特に VMware と比較すると機能が限られていました。
ただし、このテクノロジは Microsoft にとって戦略的なものであり、Windows Server の新しいエディションごとに、次のような大幅な改善がもたらされています。
- ライブマイグレーション
- 仮想SCSIストレージのホットアドとホットリムーブ
- ダイナミックメモリ
- 簡単に構成できる耐障害性のための Hyper-V レプリカ
- コマンドラインおよびスクリプトによる管理のための PowerShell モジュール
- クラスター化された仮想マシン (VM) を有効にする共有仮想ハードドライブ
Server 2012 R2 では、第 2 世代 VM が導入され、BIOS、PCI バス、IDE コントローラーなどの従来のハードウェア エミュレーションが削除され、パフォーマンスが向上し、UEFI (Unified Extensible Firmware Interface) セキュア ブートなどの機能が有効になりました。
Hyper-V VM のスケーラビリティも向上し、Server 2012 R2 以降では最大 64 個の仮想プロセッサ、1 TB の RAM、64 TB の仮想ハード ドライブ、最大 256 個の仮想 SCSI ディスクを構成できるようになりました。
Windows Server 2016では、Microsoftはさらに多くの機能を追加しており、その変更は顕著です。これらの変更の多くは、開発およびテスト用にWindows 10で既に利用可能です。Windows ServerのアーキテクトであるJeffrey Snover氏の目標は、Windowsを「クラウドOS」にすることです。これには、オンデマンドのコンピューティングリソース、つまり必要に応じて起動または停止するVMの概念が含まれます。
Hyper-V の改善は、Microsoft の Azure クラウド プラットフォームとそのユーザー、およびオンプレミス展開用の Azure 機能のサブセットを提供する Azure Stack を展開するユーザーに直接的なメリットをもたらします。
Server 2016には、2つの補完的な機能も注目に値します。1つ目はNano Serverです。これは、Hyper-Vのホスティング、仮想マシンでの実行、または単一のアプリケーションの実行に最適化された、Windows Serverの簡素化されたエディションです。PowerShellによる自動化を目的として設計されているため、デスクトップやローカルログオンは存在しません。
メリットとしては、再起動の高速化、攻撃対象領域の縮小、同一の物理ハードウェア上でより多くの仮想マシンを実行できることなどが挙げられます。機能が少ないということは、パッチ適用回数や強制再起動の回数も少なくなることを意味します。MicrosoftはServer 2016において、Hyper-VのデフォルトホストとしてNano Serverを推奨しています。
2つ目の機能はコンテナです。コンテナを使用すると、アプリケーションとそのリソースおよび依存関係の両方がパッケージ化され、デプロイメントが自動化されます。コンテナは、アプリケーションを小さな単位に分解し、それぞれが個別に実行されるという概念であるマイクロサービスと密接に関連しています。
Microsoftの新しいオペレーティングシステムは、共有OSファイルとメモリを使用するWindows Serverコンテナと、独自のOSカーネルファイルとメモリを持つHyper-Vコンテナの両方をサポートしています。Hyper-Vコンテナは、効率性を犠牲にして、より高い分離性とセキュリティを実現するという考え方です。
ネストされた仮想化
Hyper-V 2016 のネストされた VM
新機能リストのトップは、VM内でVMを実行できる「ネストされた仮想化」です。これは、既にこの機能を備えた競合ハイパーバイザーへの追い上げですが、Azureクラウドなど他の場所でサーバーインフラストラクチャが仮想化されている場合でもHyper-Vを使用できるようになるため、必須の機能です。
Hyper-VはCPU拡張機能(Intel VT-xまたはAMD-V)に依存しており、ネストされた仮想化ではこれらの拡張機能がゲストOSに提供される仮想CPUに組み込まれるため、ゲストOSは独自のハードウェアベースのハイパーバイザーを実行できます。この機能は、これらの拡張機能を使用するデバイスエミュレータが動作する可能性もあるため、VMで作業する開発者にも役立つ可能性があります。
ネストされた仮想化は、Windows Server 2016 の最新プレビュー(現在は Technical Preview 4)および Windows 10 の最新ビルドで動作します。この機能を有効にするには、ホストと仮想マシンの両方で PowerShell スクリプトを実行する必要があります。現在、いくつかの制限事項があります。この機能が有効になっている仮想マシンでは、動的メモリ、ライブマイグレーション、チェックポイントは動作しませんが、最も内側のゲスト仮想マシンでは動作します。
シールドされたVM
クラウドコンピューティングのデメリットの一つは、インフラストラクチャへの物理的なアクセスが第三者に委ねられることであり、これはセキュリティ上の大きな問題となります。Shielded VM は、ホスト管理者がアクセスできない VM を用意することで、この問題を軽減することを目的としています。
シールドされたVMは、MicrosoftのBitlocker暗号化、セキュアブート、仮想TPM(トラステッド・プラットフォーム・モジュール)を使用し、ホスト・ガーディアン・サービスと呼ばれる新機能を必要とします。設定が完了すると、シールドされたVMは指定されたホスト上でのみ実行されます。VMは暗号化され、ライブマイグレーションなどの機能のためのネットワークトラフィックも暗号化されます。
シールドされたVMの実行には、いくつかの問題点があります。Hyper-VマネージャーからVMにアクセスできず、VMの外部から仮想ディスクドライブをマウントすることもできません。また、Microsoftによると、暗号化によってパフォーマンスが最大10%低下すると言われています。