[目次]  [質疑応答]
2007年度システム技術分科会第2回会合   「サーバの仮想化とその利用法」

仮想化技術の現状と方向性


概要       PDF版 PDF file
プレゼンテーション資料 PDF file
    



産業技術総合研究所
須崎 有康

■ アブストラクト
 現在、盛んに開発が進められている仮想化技術についてXen, KVM (Kernel-based Virtual Machine)などの個々の仮想化ソフトウェアの実装技術やCPUに付加された仮想化対応機能などの現状を紹介する。また、仮想化技術が新たに開拓するセキュリティ、組み込み、OSマイグレーションについても取り上げ、今後の仮想化の方向性を紹介する。
■ キーワード
仮想化、Xen、KVM、OSマイグレーション
■ 概要

1. 歴史

 仮想マシンの開発はIBM CP/67やIBM 370/VMをはじめとするメインフレームより始まった。この時代は仮想化支援のためのハードウェアがあり、ハード・ソフト一体の開発であった。この状況で1974年にPopek, Goldbergが「仮想化の命令要件」[1]を発表するに当たり、仮想化のために必要となる命令セットが明確にあった。
 現在のPCに標準装備されているCPU IA32 (32bit Intel Architecture)は非力であり、かつ個人利用のみのため仮想化を想定していなかったが、その能力向上と共に複数のOS起動のために仮想化技術が開発されるようになった。IA32では仮想化を想定していないため、命令セットに非特権のセンシティブ命令(CPUの真の姿が見えてしまう命令、あるいは以後の実行に影響を与える命令)を含み、仮想化を困難にしていた。
 この問題を克服して最初にPC上での仮想化の有効性を示したのは90年代後半のVMWare Workstation(主要開発者はStanford大学のMendel Rosenblum)である。VMwareではセンシティブ命令などを動的に置き換える技術である“Dynamic Translation”[2]を開発し、OSの変更なしに効率的に複数起動を可能にした。
 Dynamic Translationとは異なるアプローチとして、Cambridge大学のIan Prattを中心に2000年初頭から“Para-Virtualization”が開発された[3]。Para-Virtualizationでは、仮想化されるOS自体に修正を加え、仮想化に問題がある処理はHyperVisorに依頼する。HyperVisor はOSとCPUの間の低レベルに位置し、OS毎に仮想的なPC環境を提供する。
 これらの仮想化ソフトウェアの開発と平行して、IA32での仮想化の問題点が明らかになってきた。Robin,Irvineは仮想化のためのIA32命令要件[4]を発表した。また、Intel とAMDでは、HyperVisor作成を支援するため、特権レベルとは別に新たなモード(Intelではroot/non-root、AMDではhost/guest)を付加し、仮想化の障害になる命令を実行した場合にモード切替を起こす仮想化支援を加えた。

2. 今後の方向性

 仮想化技術の開発は、セキュリティ強化を中心にOSの一括管理や組込み分野も適用されるようになった。セキュリティではVMによる隔離(isolataion)を用いて同一CPU内で複数のOSのセキュリティが他に影響しないため、サーバ集約を加速させた。組込み分野としてはARM用(ARM社開発のAcorn RISC Machine)のXenをSamsungやMontaVistaで開発されており、セキュリティの強化を目指している。
 また、仮想マシンは仮想ディスクファイルを起動イメージとして利用するため、ソフトウェアをインストールした仮想ディスクファイルを配信することで各PC毎のインストールの手間を削減する。但し、仮想ディスクファイルは大規模になるため、更新が起こった場合にその差分だけ管理する方式が必要になる。この管理手法としては、Stanford大学のCollective[5]、Moka5のLivePC、産総研のOS Circular[6]などの研究開発が進んでいる。

References

[1] G.J.Popek and R.P.Goldberg, “Formal Requirements for Virtualizable Third Generation Architectures”, CACM 17 (7): 412-421. (1974).
[2] US Patent:6,397,242, Virtualization system including a virtual machine monitor for a computer with a segmented architecture
[3] P.Barham, et.al., “Xen and the Art of Virtualization”, SOSP (2003).
[4] J.S.Robin and C.E. Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor". USENIX Security Symposium. (2000)
[5] R.Chandra, et.al., "The Collective: A Cache Based System Management Architecture," (NSDI'05), Boston, (2005).
[6] K.Suzaki,et.al., OS Circular: Internet Client for Reference , USENIX LISA 07.


[目次]  [質疑応答]

All Rights Reserved, Copyright©サイエンティフィック・システム研究会 2008