“Survey of System Virtualization Techniques” by Robert Rose のまとめ 大山 恵弘 2004年10月5日 はじめの言葉 講義レポートのようなサーベイだが、役に 立つ内容もありそうなので、一応チェック 複数の計算機システムを持つ 利点 隔離 バグのあるアプリケーションの影響が他の アプリケーションにおよばないようにする 性能 アプリケーションをそのためのシステムに置く ことにより、資源に独占的にアクセスできる 本論文で扱う二つのトレンド Full system virtualization 全ハードウェアアーキテクチャを模擬 Paravirtuailzation OSを書き換える Formal Requirements for a Virtualizable Computer Architecture Popek and Goldberg 1974, “For any computer a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions” 簡単に言えば「特権命令はトラップする」 ゲストVMが特権命令を実行しようとしたら、プロ セッサはVMMに制御を戻す IA-32はこれを満たさない VMMの3つの本質的特徴 VMM上で動く任意のプログラムは、実機上で走っ た場合と同じ効果を示す タイミングをのぞく 仮想プロセッサ命令の統計的に支配的な部分集 合は実プロセッサで直接実行される つまりエミュレータとはちがうということ VMMはシステム資源を完全に制御する VMはVMMを経由せずに直接資源をアクセスできない これらの特徴は、満たすのが難しいor望ましくないと わかりつつある Full System Virtualization 最初のfull system virtualization system: CP-67 on IBM 360/67 mainframe 各ユーザに完全な仮想的なSystem/360を見せ た 遅いので、IBMは仮想化支援のための特 殊なアーキテクチャを持つ計算機を作ると 決めた → VM/370で初めて実現 IA-32の仮想化 なぜ難しいか? 特権モードでなくても実行できるのに、システ ムの安定性に被害を与える命令群がある Open platform 非常に多数のデバイスとデバイスドライバがある Robin and Irvine’s Analysis on IA-32 Non-sensitive, non-privileged instructions may be run directly on the processor Sensitive, privileged instructions trap Sensitive, non-privileged instructions detected 17 “problem instructions” sensitiveなのにtrapしない Virtualizing IA-64 Some groups are beginning to assess the IA-64 platform’s ability to host virtual machines HPはすでにHP/UXとLinuxを仮想化するIA-64 フレームワークを開発した Windows Server版の作業は開始しようとしている 仮想化の最大の問題はデバイスの多さ IA-64にあってIA-32にない重要な 特徴 Ring compression ゲストVMはVMMより高いリングで走る IA-64では、高いリングのトラップを低いリング が捕捉できる Full System Virtualizationの欠点 プロセッサが仮想化を意識していないので、仮想 化のためにはspecial tricksが必要 仮想記憶管理(VM/370では“shadow mapping”と言 われている)を効率的に仮想化することはすごく 難しい 特にIA-32では Denaliでは仮想記憶を廃止した 仮想記憶管理の問題 intercept all virtual memory calls to the CPU translate “virtual machine” space into the system’s real space using yet another page table retrieve the memory return the memory to the virtual machine Paravirtualization Denaliのおもしろいところ Idle loops Interrupt queueing VM内でbusy waitすることの回避策 “Idle” instructionを呼ぶと他のVMに制御が移る 割り込みがきたときに、すぐにそれをVMに渡さない 割り込みをキューイング 割り込みを渡すべきVMが次にスケジュールされたら渡す Interrupt semantics 割り込みセマンティクスの変更 タイマなどに影響 Denali No virtual memory 各VMをsingle address spaceに制限 「各VM上では少数のアプリケーションだけを動 かすのでいいのだ」と正当化 No BIOS システム情報を読み出し専用仮想レジスタで 提供 Denali 汎用I/Oデバイス 汎用デバイスの小さな集合だけを上に見せる ゲストOSの性能が大きく向上する Xen’s Approach to Paravirtualizing the IA-32 architecture ページテーブル 各VMはハードウェアページテーブルを読み出し専用 でしかアクセスできない ページテーブルの更新はキューイングされてVMMに よって処理される ゲストVMはVMMよりも一つ低いリングで走る ゲストOSがトラップハンドラをVMMに登録 ゲストOSがシステムコールハンドラをプロセッサ に直接登録 Xen No hardware interrupts Hardware interruptは軽量なイベントシステムで 置き換えられる Generic Devices Denaliと同じく、XenはゲストVMに高速な汎用 デバイスの小さい集合のみを提供
© Copyright 2024 ExpyDoc