x86仮想化
x86仮想化の最新ニュースをまとめて検索!
x86仮想化とは、x86ベースのゲストオペレーティングシステム (OS) を別のx86ベースのホストOS上で、ほとんど(あるいは全く)ゲストOSを修正することなく動作させる手法である。本来のx86アーキテクチャはPopekとGoldbergの仮想化要件を満たしていない。2005年と2006年、インテルとAMDがそれぞれx86アーキテクチャを拡張することでこれに対応し、他の仮想化での問題にも対処した。
目次 |
[編集] ソフトウェア技法
1999年2月8日、VMware は初のx86仮想化製品 "VMware Virtual Platform" をリリースした。これは、同社の創業者がスタンフォード大学で行っていた研究成果に基づいたものである。VMware はその技法を1998年10月に特許申請し、2002年5月28日にアメリカ合衆国特許第6397242号として特許が成立した。VMware や類似するx86向け仮想化ソフトウェアは、特定の命令の実行を捉えて仮想化する命令変換技法を必ず使用している。この技法は、本質的に仮想化可能なアーキテクチャ(例えば IBM System/370 や MC68020)での仮想機械に比較すると性能に対する何らかのオーバーヘッドを抱えている。
Kevin Lawton は、x86仮想化のためのフリーソフトウェアを作成する Plex86 プロジェクト(以前は "freemware" と称していた)を開始した。このプロジェクトは Linux のみをゲストOSとするプロジェクトに変質したが、それ以前に Lawton は "Running multiple operating systems concurrently on an IA32 PC using virtualization techniques"(IA32 PC上で仮想化技法を使って複数OSを同時並行動作させる)[1]という論文を発表しており、その中でx86アーキテクチャの仮想化困難な部分の分析を行い、その対処方法を論じている。
マイクロソフトは Windows ベースのx86仮想化製品を3種類提供している。Connectix から得た技術に基づいた Virtual PC と Virtual Server、そして Hyper-V である。
オープンソースとしては、QEMU と VirtualBox がある。
実験的システム Denali、L4、Xen は、元のハードウェアと仮想機械の実装を変えることでx86仮想化の高性能化を模索したものである。OSをその仮想機械向けに移植することで、x86命令セットの仮想化しにくい部分を実装するのを避けている。この技法を準仮想化と呼ぶ。Xen 3.0 では、後述するハードウェアサポートを利用した完全仮想化もサポートしており、OSに全く変更を加えなくてもよい。
[編集] ハードウェアサポート
インテルとAMDはそれぞれ独自にx86アーキテクチャの仮想化拡張を開発した。両者の実装は完全な互換性はないが、機能はほぼ同じである。どちらの場合も仮想機械ハイパーバイザ上でゲストOSを修正することなく動作させることが可能であり、性能も従来より大幅に向上する。
[編集] AMD virtualization (AMD-V)
AMDの仮想化拡張は64ビットx86アーキテクチャ向けであり、AMD Virtualization (AMD-V) と呼ばれる。また、AMD社内のコード名 "Pacifica" の名で呼ばれることもある。
AMD-V は Athlon 64 と Athlon 64 X2 のファミリ "F" または "G"(ソケットはSocket AM2)、Turion 64 X2、Opteron 第二世代[2]と第三世代[2]、AMD Phenom、およびこれら以降のプロセッサに搭載されている[要出典]。
AMDは、AMD-V 向けのIOMMUの仕様を発表した。これにより、個々の仮想機械に割り込みを配送する設定が可能となり、DMA使用部分で仮想機械間の分離ができなくなる問題に対処した。仮想化抜きでもIOMMUは最近のOSでは重要な役割を果たしており、AMD Torrenza アーキテクチャでも重要な部分を占めている。
[編集] インテル バーチャライゼーション・テクノロジー (Intel VT)
詳細は「インテル バーチャライゼーション・テクノロジー」を参照
[編集] VT-c
インテルの Virtualization Technology for Connectivity (VT-c) は、I/O仮想化を支援する各種技術を集めたものである。Virtual Machine Device Queues (VMDq)、Intel I/O Acceleration Technology (I/OAT)、Single Root I/O Virtualization で構成される[3]。Intel QuickData Technology は I/OAT の一コンポーネントである[要出典]。
[編集] AMD-V や Intel-VT を使っているソフトウェア
以下のソフトウェアは、条件によってはこれらの仮想化技術を使っている。
- Hyper-V - Windows Server Virtualization
- Kernel-based Virtual Machine (KVM) - Linuxカーネルモジュール型のハイパーバイザ
- Microsoft Virtual PC 2007 - AMD-V と VT-x をサポート。
- Microsoft Virtual Server — Virtual Server 2005 R2 SP1 はハードウェア支援仮想化をサポート[4][5]
- Microsoft Windows Server 2008 - Server 2008 には複数の仮想サーバを実行する機能があり、ハードウェアによる仮想化サポートが必須である。[6]
- Parallels Workstation と Parallels Desktop for Mac — 軽量ハイパーバイザ。Intel VT-x と AMD-V サポート。
- VirtualBox - AMD-V と VT-x をサポート。[7]
- VMware
- VMware Workstation — Intel VT-x と AMD-V をサポート。[8]
- VMware Fusion
- VMware ESX Server - ESX Server 3.5 では Intel VT-x は 64bit ゲストを動作させるためだけに使用。
- VMware Server - Intel VT-x と AMD-V をサポート。
- Xen — Xen 3.0.2 で Intel VT-x と AMD-V をサポート。Xen 3.2.1 で Intel VT-d をサポート。Xen 3.3 では Intel VT-c をサポート予定。
[編集] 性能
Standard Performance Evaluation Corporation (SPEC) は、仮想化技術の性能比較の業界標準手法を確立するためのワーキンググループを創設した。現在のメンバーは、AMD、デル、富士通シーメンス、ヒューレット・パッカード、インテル、IBM、サン・マイクロシステムズ、SWsoft、VMware である。SPECは現在最善のベンチマークを開発すべく情報収集中である。
[編集] 関連項目
[編集] 脚注
- ^ Running multiple operating systems concurrently on an IA32 PC using virtualization techniques
- ^ a b http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_8806~111165,00.html#111166 What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors?
- ^ Intel (application/pdf). [Virtualization Technology for Connectivity]. Press release 2008-07-05 閲覧。.
- ^ "Virtual Server 2005 R2 SP1 Beta 1 download link and availability details". technet.com (2006年4月28日). 2008-08-23 閲覧。
- ^ "Virtual Server 2005 R2 SP1 - beta 2 feature listing". Microsoft. 2008-08-23 閲覧。
- ^ Windows Server 2008 Hyper-V FAQ - Setup and Requirements Microsoft
- ^ "VirtualBox architecture". InnoTek. 2008-08-23 閲覧。
- ^ "VMware Products and Hardware-Assisted Virtualization (VT-x/AMD-V)". VMware, Inc.. 2009-03-16 閲覧。
最終更新 2009年7月30日 (木) 16:20 (日時は個人設定で未設定ならばUTC)。
【x86仮想化】変更履歴

