Hyper-V(ハイパーV、はいぱーぶい)は、マイクロソフトが提供するハイパーバイザベースのx64向け仮想化システムで、1台のコンピュータ(サーバ)で複数の仮想機械を実現する。

開発当初は Windows Server Virtualization、又はコードネームである Viridian の名称が用いられた。

## 概要

Virtual Server を置き換える形で、当初の Hyper-V は Windows Server 2008 の x64 エディションの1機能としてベータ版が出荷され、Windows Update 等を通して正式版が2008年6月26日に公開された。その後も Hyper-V は Windows Server 等の一機能として提供され続け、Windows Server 2008 R2 には Hyper-V 2.0 が、Windows Server 2012 には Hyper-V 3.0 が搭載されている。

当初、Hyper-V 機能はクライアントOSに搭載されなかったが、Windows 8 Pro、およびWindows 8 Enterprise 以降では Windows Virtual PC に代わって Hyper-V 機能が搭載された(基本的にx64版専用だがx86版はリモート管理ツールのHyper-V マネージャーのみ対応となる)。これらは従前のサーバー向けと区別して「クライアント Hyper-V」と呼称される。

Hyper-V の管理や設定変更には、Hyper-V 機能を有効にした Windows Server に直接ログオンして行う方法と、リモートで行う方法がある。リモート管理するには Windows Server、もしくはHyper-Vリモート管理ツールがインストールされたクライアントOS(Windows Vista、およびWindows 7)、またはx64版・x86版を問わずHyper-V マネージャーを有効にしたPro以上のエディションのWindows 8/8.1、およびWindows 10、Windows 11が必要になる。また、Core サーバの MMC ポインティングのリダイレクトによるリモートデスクトップもしくはリモートサーバを用いることができる。

### Hyper-V Server

Hyper-V の無償版として Hyper-V Server が存在する。これは、Hyper-V 機能のみを利用できるように大半の機能が制限された、Server Core をベースとした Windows Server である。

無償で提供されている Hyper-V Server はコマンドラインインタフェース (CLI) に限定されている。Hyper-V 機能を実行・管理するオペレーティングシステム の設定は、ログオン後に起動するシェルのコマンドを用いる。Hyper-V Server 2008 からはテキストベースのメニューが用意されているため、初期設定が行いやすくなっている。

最初の Hyper-V Server は、Windows Server 2008 のラインナップの1つとして、「Windows Server 2008 Hyper-V」の名称で2008年8月1日にリリースされた。その後、マイクロソフトは Windows Server 2008 R2のリリースに合わせて「Microsoft Hyper-V Server 2008 R2」を、Windows Server 2012 のリリースに合わせて「Microsoft Hyper-V Server 2012」をリリースしている。

## アーキテクチャ

Hyper-Vはパーティションによる隔離をサポートする。パーティションは隔離を実現するための論理ユニットで、OSのハイパーバイザーによりサポートされる。ハイパーバイザーのインスタンスは少なくとも1個のWindows Server 2008が動作する親パーティションを持つ。仮想化スタックは親パーティションの中で動作し、ハードウェアへ直にアクセスする。親パーティションはゲストOSを動作させる子パーティションを生成する。親パーティションは子パーティションをhypercall APIを用いて作成する。hypercall APIはHyper-Vを操作するAPIである。

仮想化パーティションは物理プロセッサへのアクセスを持たず、割り込みをハンドルすることもない。そのかわり、プロセッサの仮想的なビューを持ち、ゲストの仮想アドレスで動作するということである。(ハイパーバイザーの設定に依存するが)丸ごとの仮想アドレス空間を必要としない。ハイパーバイザーはそれぞれのパーティションへ、プロセッサのサブセットを選択的に公開することができる。ハイパーバイザーはプロセッサの割り込みをハンドルし、論理同期割り込みコントローラ (SynIC) を使ってそれぞれのパーティションにリダイレクトする。Hyper-Vはゲスト側の仮想アドレス空間からのアドレス変換をIOMMU (I/O Memory Management Unit) を用いてハードウェアアクセラレーションできる。IOMMUはCPUにより使われるメモリ管理ハードウェアから独立して操作する。

子パーティションはハードウェアリソースを直アクセスしない。そのかわり、仮想デバイスという概念でリソースの仮想的なビューを持つ。仮想デバイスに要求すると、VMBusを経由して親パーティションのデバイスにリダイレクトされる。リクエストはそこで管理される。VMBusはパーティション間の通信を可能にする論理的なチャンネルである。レスポンスも同様にVMBusを経由してリダイレクトされる。もし親パーティションのデバイスが仮想デバイスでもあるなら、親パーティションやより遠くに、物理デバイスへのアクセスできるところまでリダイレクトされる。親パーティションは仮想化サービスプロバイダ (Virtualization Service Provider) を実行する。それはVMBusを接続し、子パーティションからのデバイスのアクセス要求をハンドルする。子パーティションの仮想デバイスは内部で仮想サービスクライアント (Virtualization Service Client) を実行する。それはVMBusを経由して親パーティションのVSPへリクエストをリダイレクトする。この全体のプロセスはゲストOSに透過的である。

仮想デバイスはEnlightened I/Oと名づけられたWindows Server Virtualizationの特徴をうまく利用することができる。Enlightened I/Oはストレージ、ネットワーク、グラフィックの各サブシステムやそれ以外をサポートする。Enlightened I/OはVMBusをダイレクトに利用できるSCSIに似た高レベル通信プロトコルを用いた仮想化向けの実装に特化しており、デバイスのエミュレーション層をバイパスすることができる。それにより、Hyper-V下のゲストOSは他のエミュレーションされたハードウェアを用いたOSに比べより高速に動作する。これにより通信はより効率的になるが、ゲストOSもEnlightened I/Oをサポートする必要がある。当初はWindows Server 2008、Windows Vista、SUSE Linux Enterprise Serverのみが標準でEnlightened I/Oをサポートしていたが、後からLinux用のドライバがGPLで公開されるようになった。

## 搭載製品

| サーバーOS | デスクトップOS | VM構成バージョン | 備考・変更点 |
| --- | --- | --- | --- |
| - Windows Server 2008 - Hyper-V Server 2008 | N/A | 1.0 | Hyper-V 1.0と通称される。OSリリース時点(2008年2月27日)ではベータ版、同年6月26日に正式版リリース。 |
| - Windows Server 2008 SP1 - Hyper-V Server 2008 SP1 | N/A | 2.0 |  |
| - Windows Server 2008 R2 - Hyper-V Server 2008 R2 | N/A | 3.0 | Hyper-V 2.0と通称される。 |
| - Windows Server 2012 - Hyper-V Server 2012 | Windows 8 | 4.0 | Hyper-V 3.0と呼称されることがある。 クライアントHyper-V  デスクトップOS製品にHyper-Vが搭載される。クライアントHyper-Vはサーバー版に搭載される機能のうちサポートしないものがある。  VHDX  新しい仮想ディスクフォーマット。最大サイズの拡大など機能向上が行われている。 |
| - Windows Server 2012 R2 - Hyper-V Server 2012 R2 | Windows 8.1 | 5.0 | - エミュレートデバイスを全廃した第二世代仮想マシンの導入。 - コピー&ペースト、オーディオ再生/録音、USBデバイスの各サポート - ホスト - ゲスト間の連携機能「拡張セッションモード」に対応。 |
| Windows Server 2016 Technical Preview 3 | - Windows 10 - Windows 10 Enterprise 2015 LTSB | 6.2 | - 従来のHyper-Vで管理する仮想マシンの構成ファイルはXML形式などで記述されていたが、Windows 10/Windows Server 2016/Hyper-V Server 2016に搭載されるHyper-Vでは新しくバイナリ形式になり、アクセス速度や耐障害性などが向上している。 - 動的なNICやメモリサイズの変更、および統合ソフトウエアのWindows Updateによる自動更新、Linuxでのセキュアブートなどのサポートに対応。 |
| Windows Server 2016 Technical Preview 4 | Windows 10 Version 1511 | 7.0 | - 入れ子になった仮想化 (Nested Hyper-V)。 |
| - Windows Server 2016 - Hyper-V Server 2016 | - Windows 10 Version 1607 - Windows 10 Enterprise 2016 LTSB | 8.0 |  |
| N/A | Windows 10 Version 1703 | 8.1 |  |
| Windows Server Version 1709 | Windows 10 Version 1709 | 8.2 |  |
| Windows Server Version 1803 | Windows 10 Version 1803 | 8.3 | Windows Hypervisor Platform (WHPX)  従来、Hyper-Vや「仮想化ベースのセキュリティ」によってWindows ハイパーバイザーが機能している環境では、サードパーティ仮想化製品で仮想化支援を利用できず、動作しなかったり、パフォーマンスが低下するなどしていた。サードパーティ仮想化製品はWHPXを通してWindows ハイパーバイザーを利用できるようになる。  QEMUがバージョン2.12 (2018年4月) から、QEMUを利用するAndroid Emulatorがバージョン 27.3.8 (2018年7月) から、VirtualBoxがバージョン 6.1.4 (2020年2月) から、VMware Workstation(現・VMware Workstation Pro)がバージョン 15.5.5 (2020年5月) からサポートしている。 |
| - Windows Server 2019 - Windows Server Version 1809 | - Windows 10 Version 1809 - Windows 10 Enterprise LTSC 2019 | 9.0 |  |
| Windows Server Version 1903 | Windows 10 Version 1903 | 9.1 |  |
| Windows Server Version 1909 | Windows 10 Version 1909 | 9.2 |  |
| Windows Server Version 2004 | Windows 10 Version 2004 | 10.0 |  |
| N/A | Windows 11 Version 21H2 | 10.0.1 |  |
| N/A | Windows 11 Version 22H2 | 10.0.2 |  |

## システム要件

1. 64ビットのCPU
2. ハードウェア支援付きの仮想化。仮想化オプションを含んだCPUで利用できる。とりわけIntel VTやAMD-V(SLAT機能必須)
3. 最低2GBのメインメモリ(各々の仮想OSは自身のメモリを必要とする。そして現実的にはそれ以上必要になる)
4. Windows 2008 Standard (64Bit) Hyper-V Coreはおよそ3 GB以上のディスク空き容量(インストール容量)
5. Windows 2008 Standard (64Bit) Hyper-V full GUI productはおよそ8 GB以上のディスク空き容量(インストール容量)

スタンドアロン版のHyper-VサーバーはWindows Server 2008のインストールの必要は無く、最小メモリは1 GBでディスク必要容量は2 GBである。

Hyper-V Server のシステム要件

|  | 2008 | 2008R2 | 2012 | 2016 | 2019 |
| --- | --- | --- | --- | --- | --- |
| プロセッサ | - x64アーキテクチャ互換 - Intel-VTまたはAMD-V有効 - ハードウェア Data Execution Prevention (DEP) 有効 - Second Level Address Translation(SLAT) | | | | |
| 最低1.0 GHz(推奨2.0 GHz以上) 最大4基24論理プロセッサ | 最低1.4 GHz(推奨2.0 GHz以上) 最大8基64論理プロセッサ | 最低1.4 GHz 最大320論理プロセッサ | 最低1.4 GHz | 最低1.4 GHz |
| ホストOS用メモリ | 最低1.0 GB(推奨2.0 GB以上) | 最低1.0 GB(推奨2.0 GB以上) | 最低512 MB | 最低512 MB | 最低512 MB |
| 全体メモリ | 最大32 GB | 最大1 TB | 最大4 TB |  |  |
| ホストOS用ストレージ | 最低3.25 GB+ページファイル分 | 最低8 GB(推奨20 GB以上) |  |  | 最小32 GB(ATA、PATA、IDE、EIDEは利用不可) |
| 光学ドライブ |  | DVD-ROMドライブ |  |  |  |
| ネットワークアダプタ |  | 最低1つ(推奨2つ以上) | |  | - ギガビット以上の処理能力があるイーサネット アダプター - PCI Express アーキテクチャの仕様への準拠 |
| ディスプレイ |  | SVGA以上の解像度 |  |  |  |
| 他 |  | キーボード及びポインティングデバイス |  |  |  |

## システム仕様

1. 128個のゲストOSをサポートする。
2. 32ビット (x86) および64ビット (x64) のゲストOSをサポートする。

## エミュレーション環境

全てのクライアントHyper-V、およびHyper-V Serverは同一環境である。

- Intel 82443BX チップセット

## サポートされるゲストOS

公式にサポートされているゲストOS

| ゲストOS | (参考) Virtual Server 2005 SP1 | 1.0 | 2.0 / 3.0 | 4.0 | 5.0 | 6.0以降 |
| --- | --- | --- | --- | --- | --- | --- |
| Windows Server 2019 |  |  |  |  |  |  |
| Windows Server 2016 |  |  |  |  | ○ | ○ |
| Windows Server 2012 R2 |  |  |  | ○ | ○ | ○ |
| Windows Server 2012 |  |  |  | ○ | ○ | ○ |
| Windows Home Server 2011 |  | ○ | ○ | ○ | ○ | ○ |
| Windows Multipoint Server 2011 |  | ○ | ○ | ○ | ○ | ○ |
| Windows Server 2008 R2 |  | ○SP1 | ○SP1 | ○SP1 | ○SP1 | ○SP1 |
| Windows Server 2008 |  | ○SP2 | ○SP2 | ○SP2 | ○SP2 | ○SP2 |
| Windows Server 2003 R2 | ○ | ○ | ○SP2 | ○SP2 | ○SP2 |  |
| Windows Server 2003 | ○ | ○SP2 | ○SP2 | ○SP2 | ○SP2 |  |
| Windows 2000 Server | ○ | ○SP4 | ○SP4 |  |  |  |
| Windows NT Server 4 | ○SP6a |  |  |  |  |  |
| Homeを除く全エディションのWindows 11(ただし、実行するにはTPM2.0、およびセキュアブート、Windows 11を公式でサポートする特定のCPUが必要) |  |  |  |  |  | ○ |
| Home、およびSを除く全エディションのWindows 10(x86,x64) |  |  |  |  | ○ | ○ |
| Windows 8.1 Enterprise, Pro(x86,x64) |  |  |  | ○ | ○ | ○ |
| Windows 8 Enterprise, Pro(x86,x64) |  |  |  | ○ | ○ | ○ |
| Windows 7 Enterprise, Ultimate, Professional(x86,x64) |  | ○ | ○ | ○ | ○ | ○ |
| Windows Vista Enterprise, Ultimate, business(x86,x64) |  | ○SP1 | ○SP2 | ○SP2 | ○SP2 | ○SP2 |
| Windows XP Professional(x86) | ○SP2 | ○SP2 | ○SP2 | ○SP2 | ○SP3 |  |
| CentOS 8 |  |  |  |  |  |  |
| CentOS 7 |  |  | ○7.0 – 7.2 | ○7.0 – 7.2 | ○7.0 – .2 | ○7.0 – 7.2 |
| CentOS 6 |  |  | ○6.0 – 6.7 | ○6.0 – 6.7 | ○6.0 – 6.7 | ○6.0 – -6.7 |
| CentOS 5 |  |  | ○5.5 – 5.11 | ○5.5 – 5.11 | ○5.5 – 5.11 | ○5.5 – 5.11 |
| Red Hat Enterprise Linux 8 |  |  |  |  |  |  |
| Red Hat Enterprise Linux 7 |  |  | ○7.0 – 7.2 | ○7.0 – 7.2 | ○7.0 – 7.2 | ○7.0 – 7.2 |
| Red Hat Enterprise Linux 6 |  |  | ○6.0 – 6.7 | ○6.0 – 6.7 | ○6.0 – 6.7 | ○6.0 – 6.7 |
| Red Hat Enterprise Linux 5 | ○5.0 |  | ○5.5 – 5.11 | ○5.5 – 5.11 | ○5.5 – 5.11 | ○5.5 – 5.11 |
| Red Hat Enterprise Linux 4 | ○4.0 |  |  |  |  |  |
| Red Hat Enterprise Linux 3 | ○3.0 |  |  |  |  |  |
| Red Hat Enterprise Linux 2 | ○2.1 |  |  |  |  |  |
| Red Hat Linux 9 | ○9.0 |  |  |  |  |  |
| Debian 10 |  |  |  |  |  |  |
| Debian 9 |  |  |  |  |  |  |
| Debian 8 |  |  | ○8.0 – 8.2 | ○8.0 – 8.2 | ○8.0 – 8.2 | ○8.0 – 8.2 |
| Debian 7 |  |  | ○7.0 – 7.9 | ○7.0 – 7.9 | ○7.0 – 7.9 | ○7.0 – 7.9 |
| SUSE Linux Enterprise Server 12 |  |  | ○ | ○ | ○ | ○ |
| SUSE Linux Enterprise Server 11 |  |  | ○SP2 – SP4 | ○SP2 – SP4 | ○SP2 – SP4 | ○ |
| SUSE Linux Enterprise Server 10 |  | ○SP1 | ○SP4 | ○SP4 | ○ | ○ |
| SUSE Linux Enterprise Server 9 | ○ |  |  |  |  |  |
| SUSE Linux 10 | ○10.0-10.2 |  |  |  |  |  |
| SUSE Linux 9 | ○9.3 |  |  |  |  |  |
| Ubuntu 18.04 LTS |  |  |  |  |  |  |
| Ubuntu 16.04 LTS |  |  | ○16.04 | ○16.04 | ○16.04 | ○16.04 |
| Ubuntu 14.04 LTS |  |  | ○14.04 | ○14.04 | ○14.04 | ○14.04 |
| FreeBSD 12 |  |  |  |  |  |  |
| FreeBSD 11 |  |  |  |  |  |  |
| FreeBSD 10 |  |  | ○10 | ○10 – 10.2 | ○10 – 10.2 | ○10 – 10.2 |
| FreeBSD 9 |  |  | ○9.1 | ○9.1 | ○9.1 | ○9.1 |
| FreeBSD 8 |  |  | ○8.4 | ○8.4 | ○8.4 | ○8.4 |

Windows Server 2008ゲストおよびWindows HPC Server 2008、Windows 7は1-、2-、4-wayの SMPに設定することが可能で, Windows Server 2003およびWindows Vistaでは1-、2-wayのSMP、SUSE Linux を除くその他のゲストOSは1-wayのみである
。他のゲストOS、例えばUbuntu Linux 6.06/6.10/7.10 あるいは Fedora 8/9 などはサポートされないが、これらが動作したという報告が上げられている
。

サードパーティー製のデスクトップ仮想化 (VDI) 製品が使用可能である。Citrix XenDesktopおよび Ericom PowerTerm WebConnectはデータセンターに設置されたデスクトップ仮想マシンをホストし集中管理する能力を提供する。デスクトップ仮想マシンはユーザーにフルスペックのPCデスクトップ環境を提供する。

Enlightened I/O付きのゲストOSおよびハイパーバイザーに対応したカーネル、例えばWindows Server 2008、Windows Vista SP1、およびCitrix XenServerや SISE から計画されているものなどは、ホストのリソースをよりよく利用できるだろう。ホストのリソースはVSCドライバーによってこれらのゲストOSからVSPにVMバスを通して直接通信される
。Non-enlightenedなOSはエミュレートされたI/Oで動作する
。
しかしながら、integration components(VSCドライバーを含む)はWindows Server 2003 SP2、Windows XP SP3、Windows Vista SP1、Linuxから利用でき、より高いパフォーマンスを獲得できる。

Xenを有効にしたLinuxゲストはHyper-Vによって準仮想化が可能である。現在、SUSE Linux Enterprise Server 10,11,12 x86およびx64 Editionがこの方法においてマイクロソフトから公式にサポートされているが、Xenを有効にしたLinuxはSUSE Linuxに限らず動作すると考えられる。2008年2月、レッドハットとマイクロソフトは、それぞれのOSにおけるハイパーバイザー相互運用性についての仮想化の契約にサインした。これによってRed Hat Enterprise Linux 5は公式にHyper-Vでサポートされる
。

## VHD ファイルの Virtual Server 2005 と Virtual PC 2004/2007 との互換性

Hyper-Vを始めとしてVirtual Server 2005、Virtual PC 2004/2007等の製品はゲストOSを1つのVHDファイルに保存することができる。このファイルはゲストOS全体を格納しているものの、他のファイルによって「アンドゥ情報」などを構成することもできる。

Virtual Server 2005、Virtual PC 2004/2007による古い VHDファイルは Windows 2008 Hyper-V Serverでコピーし、使用することができる。しかし、古い『Virtual PC 統合コンポーネント』は移転の際に取り除く必要がある。移転したゲストOSはHyper-Vを使って構成し、開始された後、仮想ハードウェアの変更が検出されるだろう。『 Hyper-V 統合サービス( 又は Integration Services ) 』(Virtual PC 統合コンポーネントに類似した機能)をインストールすることで5つのサービスの形でパフォーマンスを向上させる。ゲストOSのビデオ表示およびネットワークカードの新しいドライバも共にインストールされる。結果として最近のバージョンのWindowsでは再アクティベーション、およびプロダクトキーの再発行が必要となる。