Hyper-V

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」をリリースしている。

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

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

子パーティションはハードウェアリソースを直アクセスしない。そのかわり、仮想デバイスという概念でリソースの仮想的なビューを持つ。仮想デバイスに要求すると、VMBusを経由して親パーティションのデバイスにリダイレクトされる。リクエストはそこで管理される。VMBusはパーティション間の通信を可能にする論理的なチャンネルである。レスポンスも同様にVMBusを経由してリダイレクトされる。もし親パーティションのデバイスが仮想デバイスでもあるなら、親パーティションやより遠くに、物理デバイスへのアクセスできるところまでリダイレクトされる。親パーティションは仮想化サービスプロバイダ () を実行する。それはVMBusを接続し、子パーティションからのデバイスのアクセス要求をハンドルする。子パーティションの仮想デバイスは内部で仮想サービスクライアント () を実行する。それは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構成バージョン  備考・変更点   1.0 Hyper-V 1.0と通称される。OSリリース時点（2008年2月27日）ではベータ版、同年6月26日に正式版リリース。   2.0    3.0 Hyper-V 2.0と通称される。  Windows 8 4.0 Hyper-V 3.0と呼称されることがある。
クライアントHyper-V
 デスクトップOS製品にHyper-Vが搭載される。クライアントHyper-Vはサーバ版に搭載される機能のうちサポートしないものがある。
 VHDX
 新しい仮想ディスクフォーマット。最大サイズの拡大など機能向上が行われている。  Windows 8.1 5.0エミュレートデバイスを全廃した第二世代仮想マシンの導入。
コピー&ペースト、オーディオ再生/録音、USBデバイスの各サポート山市良の「企業ユーザーはここに注目しよう！Windows 8.1の新機能」 ― 第1回 コピー＆ペースト、オーディオ再生／録音、USBデバイスなどホスト－ゲスト間の連携 Windows 8.1で「クライアントHyper-V」はこう改善された - ASCII.jp（KADOKAWA） 2013年9月6日。
ホスト - ゲスト間の連携機能「拡張セッションモード」に対応。 Windows Server 2016 Technical Preview 3  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)。   8.0  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従来、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月) からサポートしている。   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   Windows 11 Version 21H2 10.0.1   Windows 11 Version 22H2 10.0.2 

 システム要件 
 64ビットのCPU
 ハードウェア支援付きの仮想化。仮想化オプションを含んだCPUで利用できる。とりわけIntel VTやAMD-V（SLAT機能必須）
 最低2GBのメインメモリ（各々の仮想OSは自身のメモリを必要とする。そして現実的にはそれ以上必要になる）
 Windows 2008 Standard (64Bit) Hyper-V Coreはおよそ3 GB以上のディスク空き容量（インストール容量）
 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 201220162019 プロセッサ 
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以上の解像度 他 キーボード及びポインティングデバイス

 システム仕様 
 128個のゲストOSをサポートする。
 32ビット (x86) および64ビット (x64) のゲストOSをサポートする。

 エミュレーション環境 
全てのクライアントHyper-V、およびHyper-V Serverは同一環境である。
 Intel 82443BX チップセット

 サポートされるゲストOS 
+公式にサポートされているゲストOSゲストOS (参考) Virtual Server 2005 SP1  1.0Windows Server 2008 の Hyper-V インストール手順書 (MS-WORD) - Microsoft  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.07.2  ○7.07.2  ○7.0.2  ○7.07.2 CentOS 6    ○6.06.7  ○6.06.7  ○6.06.7  ○6.0-6.7 CentOS 5    ○5.55.11  ○5.55.11  ○5.55.11  ○5.55.11Red Hat Enterprise Linux 8 Red Hat Enterprise Linux 7    ○7.07.2  ○7.07.2  ○7.07.2  ○7.07.2 Red Hat Enterprise Linux 6    ○6.06.7  ○6.06.7  ○6.06.7  ○6.06.7 Red Hat Enterprise Linux 5  ○5.0   ○5.55.11  ○5.55.11  ○5.55.11  ○5.55.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 10Debian 9 Debian 8    ○8.08.2  ○8.08.2  ○8.08.2  ○8.08.2 Debian 7    ○7.07.9  ○7.07.9  ○7.07.9  ○7.07.9 SUSE Linux Enterprise Server 12     ○  ○  ○  ○ SUSE Linux Enterprise Server 11     ○SP2SP4  ○SP2SP4  ○SP2SP4  ○ 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.04FreeBSD 12FreeBSD 11 FreeBSD 10    ○10  ○1010.2  ○1010.2  ○1010.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では再アクティベーション、およびプロダクトキーの再発行が必要となる。

 脚注 

 注釈 

 出典 

 関連項目 
仮想化
Microsoft Virtual Server
Microsoft Virtual PC

 書籍 

 外部リンク 
Hyper-V 仮想化 マイクロソフト公式技術情報
Microsoft Hyper-V Server 2008
Hyper-V Functional Specification 
WinHEC 2006 Presentation Slides 
Core Scenarios and Key features of Hyper-V 
Windows Virtualization team blog 
Microsoft Virtualization Microsoft
Windows Server 2008 Hyper-V FAQ
Dutch Windows Virtualization and Hyper-V team blog 
Virtualization and Security: What does it mean for me? - Microsoft TechNet Video 

Category:Windowsのコンポーネント
Category:仮想化
Category:Windows Server