Hyper-V のアーキテクチャHyper-V Architecture

Hyper-V は、特定の x64 版 Windows 用のハイパーバイザー ベースの仮想化テクノロジです。Hyper-V is a hypervisor-based virtualization technology for certain x64 versions of Windows. ハイパーバイザーは仮想化のコアです。The hypervisor is core to virtualization. これは、プロセッサ固有の仮想化プラットフォームで、複数の独立したオペレーティング システムで、1 つのハードウェア プラットフォームを共有できるようにします。It is the processor-specific virtualization platform that allows multiple isolated operating systems to share a single hardware platform.

Hyper-V では、パーティションの観点からの分離がサポートされています。Hyper-V supports isolation in terms of a partition. パーティションは、ハイパーバイザーでサポートされている、オペレーティング システムが実行される論理的な分離の単位です。A partition is a logical unit of isolation, supported by the hypervisor, in which operating systems execute. Microsoft ハイパーバイザーには、Windows を実行する 1 つ以上の親 (つまりルート) パーティションが必要です。The Microsoft hypervisor must have at least one parent, or root, partition, running Windows. 仮想化管理スタックは、親パーティションで実行され、ハードウェア デバイスに直接アクセスできます。The virtualization management stack runs in the parent partition and has direct access to hardware devices. ルート パーティションによって、ゲスト オペレーティング システムをホストする子パーティションが作成されます。The root partition then creates the child partitions which host the guest operating systems. ルート パーティションは、ハイパーコール アプリケーション プログラミング インターフェイス (API) を使用して、子パーティションを作成します。A root partition creates child partitions using the hypercall application programming interface (API).

パーティションは、物理プロセッサにはアクセスできず、プロセッサの割り込みも処理しません。Partitions do not have access to the physical processor, nor do they handle the processor interrupts. 代わりに、プロセッサの仮想表示により、パーティションは各ゲスト パーティションのプライベートな仮想メモリ アドレス領域で実行されます。Instead, they have a virtual view of the processor and run in a virtual memory address region that is private to each guest partition. ハイパーバイザーは、プロセッサへの割り込みを処理し、それぞれのパーティションにリダイレクトします。The hypervisor handles the interrupts to the processor, and redirects them to the respective partition. Hyper-V は、CPU で使用されるメモリ管理ハードウェアに依存せずに動作する、入出力メモリ管理ユニット (IOMMU) を使用することにより、さまざまなゲストの仮想アドレス空間の間でのアドレス変換を高速化することもできます。Hyper-V can also hardware accelerate the address translation between various guest virtual address spaces by using an Input Output Memory Management Unit (IOMMU) which operates independent of the memory management hardware used by the CPU. IOMMU は、物理メモリのアドレスを子パーティションで使用されるアドレスに再マップするために使用されます。An IOMMU is used to remap physical memory addresses to the addresses that are used by the child partitions.

また、子パーティションは他のハードウェア リソースに直接アクセスすることはできず、リソースの仮想表示が仮想デバイス (VDev) として表されます。Child partitions also do not have direct access to other hardware resources and are presented a virtual view of the resources, as virtual devices (VDevs). 仮想デバイスへの要求は、VMBus またはハイパーバイザーによって、要求を処理する親パーティション内のデバイスにリダイレクトされます。Requests to the virtual devices are redirected either via the VMBus or the hypervisor to the devices in the parent partition, which handles the requests. VMBus は、論理的なパーティションの間の通信チャネルです。The VMBus is a logical inter-partition communication channel. 親パーティションは、子パーティションからのデバイスへのアクセス要求を処理するために、VMBus 経由で通信する仮想化サービス プロバイダー (VSP) をホストします。The parent partition hosts Virtualization Service Providers (VSPs) which communicate over the VMBus to handle device access requests from child partitions. 子パーティションは、VMBus 経由で親パーティションの VSP にデバイス要求をリダイレクトする、仮想化サービス コンシューマー (VSC) をホストします。Child partitions host Virtualization Service Consumers (VSCs) which redirect device requests to VSPs in the parent partition via the VMBus. このプロセス全体が、ゲスト オペレーティング システムに対して透過的です。This entire process is transparent to the guest operating system.

仮想デバイスでは、ストレージ、ネットワーク、グラフィックス、および入力サブシステム用に、Enlightened I/O と呼ばれる、Windows Server の仮想化機能を利用できます。Virtual Devices can also take advantage of a Windows Server Virtualization feature, named Enlightened I/O, for storage, networking, graphics, and input subsystems. Enlightened I/O は、デバイスのエミュレーション レイヤーをバイパスして、直接 VMBus を利用する、高レベルな通信プロトコル (SCSI など) の特殊な仮想化対応実装です。Enlightened I/O is a specialized virtualization-aware implementation of high level communication protocols (such as SCSI) that utilize the VMBus directly, bypassing any device emulation layer. これより、通信はより効率的になりますが、ハイパーバイザーと VMBus に対応した対応ゲストが必要です。This makes the communication more efficient but requires an enlightened guest that is hypervisor and VMBus aware. Hyper-V の Enlightened I/O およびハイパーバイザー対応カーネルは、Hyper-V 統合サービスのインストールによって提供されます。Hyper-V enlightened I/O and a hypervisor aware kernel is provided via installation of Hyper-V integration services. 仮想サーバー (VSC) クライアント ドライバーなどの統合コンポーネントは、他のクライアント オペレーティング システムで使用することもできます。Integration components, which include virtual server client (VSC) drivers, are also available for other client operating systems. Hyper-V では、Intel VT や AMD Virtualization (AMD-V) テクノロジなどによって提供される、ハードウェア支援による仮想化機能を含むプロセッサが必要です。Hyper-V requires a processor that includes hardware assisted virtualization, such as is provided with Intel VT or AMD Virtualization (AMD-V) technology.

次の図は、Hyper-V 環境のアーキテクチャの概要を示しています。The following diagram provides a high-level overview of the architecture of a Hyper-V environment.

用語集Glossary

  • APIC: 高度なプログラム可能割り込みコントローラー。割り込み出力に優先順位を割り当てることができるデバイス。APIC – Advanced Programmable Interrupt Controller – A device which allows priority levels to be assigned to its interrupt outputs.
  • 子パーティション: ゲスト オペレーティング システムをホストするパーティション。子パーティションによる物理メモリやデバイスへのすべてのアクセスは、仮想マシン バス (VMBus) またはハイパーバイザー経由で提供されます。Child Partition – Partition that hosts a guest operating system - All access to physical memory and devices by a child partition is provided via the Virtual Machine Bus (VMBus) or the hypervisor.
  • ハイパーコール: ハイパーバイザーと通信するためのインターフェイス。ハイパーコール インターフェイスによって、ハイパーバイザーにより提供される最適化へのアクセスが容易になります。Hypercall – Interface for communication with the hypervisor - The hypercall interface accommodates access to the optimizations provided by the hypervisor.
  • ハイパーバイザー: ハードウェアと 1 つまたは複数のオペレーティング システムの間にあるソフトウェアのレイヤー。Hypervisor – A layer of software that sits between the hardware and one or more operating systems. ハイパーバイザーの主な目的は、パーティションと呼ばれる分離された実行環境を提供することです。Its primary job is to provide isolated execution environments called partitions. ハイパーバイザーは、基盤となるハードウェアへのアクセスを制御し調整します。The hypervisor controls and arbitrates access to the underlying hardware.
  • IC: 統合コンポーネント。子コンポーネントが他のパーティションやハイパーバイザーと通信できるようにするコンポーネント。IC – Integration component – Component that allows child partitions to communication with other partitions and the hypervisor.
  • I/O スタック: 入出力スタックI/O stack – Input/output stack
  • MSR: メモリ サービス ルーチン。MSR – Memory Service Routine
  • ルート パーティション: 親パーティションと呼ばれることもあります。Root Partition – Sometimes called parent partition. デバイス ドライバー、電源管理、デバイスのホット アド/リムーブなどのマシン レベルの機能を管理します。Manages machine-level functions such as device drivers, power management, and device hot addition/removal. ルート (または親) パーティションは、物理メモリとデバイスに直接アクセスするパーティションです。The root (or parent) partition is the only partition that has direct access to physical memory and devices.
  • VID: 仮想化インフラストラクチャ ドライバー。パーティション管理サービス、仮想プロセッサ管理サービス、メモリ管理サービスをパーティションに提供します。VID – Virtualization Infrastructure Driver – Provides partition management services, virtual processor management services, and memory management services for partitions.
  • VMBus: パーティション間の通信や、アクティブな複数の仮想化パーティションを持つシステムでのデバイスの列挙に使用される、チャネル ベースの通信メカニズム。VMBus – Channel-based communication mechanism used for inter-partition communication and device enumeration on systems with multiple active virtualized partitions. VMBus は、Hyper-V 統合サービスと共にインストールされます。The VMBus is installed with Hyper-V Integration Services.
  • VMMS: 仮想マシン管理サービス。子パーティション内のすべての仮想マシンの状態を管理します。VMMS – Virtual Machine Management Service – Responsible for managing the state of all virtual machines in child partitions.
  • VMWP: 仮想マシン ワーカー プロセス。仮想化スタックのユーザー モード コンポーネント。VMWP – Virtual Machine Worker Process – A user mode component of the virtualization stack. このワーカー プロセスは、親パーティション内の Windows Server 2008 インスタンスから、子パーティション内のゲスト オペレーティング システムに、仮想マシン管理サービスを提供します。The worker process provides virtual machine management services from the Windows Server 2008 instance in the parent partition to the guest operating systems in the child partitions. 仮想マシン管理サービスは、実行中の仮想マシンごとに個別のワーカー プロセスを生成します。The Virtual Machine Management Service spawns a separate worker process for each running virtual machine.
  • VSC: 仮想化サービス クライアント。子パーティション内に存在する合成デバイス インスタンス。VSC – Virtualization Service Client – A synthetic device instance that resides in a child partition. VSC では、親パーティション内の仮想化サービス プロバイダー (VSP) によって提供されるハードウェア リソースを利用します。VSCs utilize hardware resources that are provided by Virtualization Service Providers (VSPs) in the parent partition. VSC は、VMBus 経由で親パーティション内の対応する VSP と通信し、子パーティションのデバイス I/O 要求を処理します。They communicate with the corresponding VSPs in the parent partition over the VMBus to satisfy a child partitions device I/O requests.
  • VSP: 仮想化サービス プロバイダー。ルート パーティションに存在し、仮想マシン バス (VMBus) 経由で子パーティションに合成デバイスのサポートを提供します。VSP – Virtualization Service Provider – Resides in the root partition and provide synthetic device support to child partitions over the Virtual Machine Bus (VMBus).
  • WinHv: Windows ハイパーバイザー インターフェイス ライブラリ。WinHv は、基本的に、パーティション化されたオペレーティング システムのドライバーとハイパーバイザーの間のブリッジです。これにより、ドライバーは、標準的な Windows の呼び出し規則を使用してハイパーバイザーを呼び出すことができます。WinHv – Windows Hypervisor Interface Library - WinHv is essentially a bridge between a partitioned operating system’s drivers and the hypervisor which allows drivers to call the hypervisor using standard Windows calling conventions
  • WMI: 仮想マシン管理サービスは、仮想マシンを管理および制御するための、Windows Management Instrumentation (WMI) ベースの一連の API を公開します。WMI – The Virtual Machine Management Service exposes a set of Windows Management Instrumentation (WMI)-based APIs for managing and controlling virtual machines.