Presentation is loading. Please wait.

Presentation is loading. Please wait.

“An Introduction to Virtualization” by Amit Singh

Similar presentations


Presentation on theme: "“An Introduction to Virtualization” by Amit Singh"— Presentation transcript:

1 “An Introduction to Virtualization” by Amit Singh http://www
大山 恵弘 2004年10月5日

2 A Loose Definition virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others

3 Why Virtualization? 低負荷サーバを少ないマシンに集める レガシーアプリケーションを動かす サンドボックス
資源消費制御・保証、スケジューラ、QoS 存在しないハードウェアの提供 SCSI devices, multiple processors, networks of computers

4 Why Virtualization? 複数のOSを同時に動かす デバッグ、性能モニタ
fault and error containment (platform for fault injection experiment) マイグレーション packagingによりアプリケーションsuiteをapplianceとして扱える

5 Why Virtualization? 実験のためのツール 既存のOSをSMP上で動かすことを可能にする 任意のテストシナリオを作る
isolation, save the state 既存のOSをSMP上で動かすことを可能にする 任意のテストシナリオを作る 既存のOSにnew featureを入れる Migration, backup, recoveryを簡単にする

6 Why Virtualization? バイナリ互換性を提供 ホスティング secure, cost-effective 楽しい

7 Privileged and Non-privileged Instructions
おなじみの内容 “Analysis of the Intel Pentium’s Ability to Support a Secure Virtual Machine Monitor” Pentiumでは少なくとも17個の命令が non-virtualizable STR命令はどんな特権レベルでも実行可能で、 RPLを返す

8 TLB IA-32のTLBはハードウェア制御 Alpha, MIPS, PA-RISC, SPARCのTLBはソフトウェア制御
ソフトウェア制御のほうが仮想化しやすい IA-32のTLBエントリはタグつけできない

9 システムコールの仮想化 ptraceなどでフック システムコールをnullify getpidや無効システムコールに変える
ホストがシステムコールのための処理を実行

10 アイドルループ 普通のOSはやることがないときループする でもこれはVM上だと困る
Denaliはそのための仮想命令を持つ idle-with-timeout

11 エミュレータ ARMn multiprocessor cycle-accurate simulator
ARM processor coreのクラスタをsimulateできる

12 ABI/API Emulation WABI (Windows Application Binary Interface)
Sunのマシンの上でWindowを動かす Windows callを「等価な」UNIX callに変換 x86上では命令を直接実行 SPARC上ではemulation and/or binary translation

13 Lxrun x86のLinux a.outをSCO OpenServer, SCO UnixWareなどの上で動かす
UNIX system callをon-the-flyでremap Linux shared libraryが必要 Linux dynamic loaderが必要 つまりLxrunはシステムコールエミュレータである

14 その他 Real-time LynxOSの新しいバージョンはLinux ABI互換性を持つ
FreeBSDはLinuxとバイナリ互換。linprocfsはLinuxのprocfsのsubsetをemulate WineはWindowsアプリケーションをLinux, FreeBSD, Solarisで動かす x86専用

15 各論 bochs Chorus chroot() Denali x86, I/O device, custom BIOSをエミュレート
Chorusのカーネルは、その上に分散OSを実装できる ような低レベルフレームワークを提供 chroot() Denali IA-32 VMM 信頼できないサービスを隔離環境で動かせる ゲストOSを書き換える

16 各論 Disco Goal: (大きな実装の手間なく)大規模共有メモリ計算機で効率的に走るよう現代のOSを拡張 複数VMを載せられるVMM
マルチスレッド共有メモリプログラムとして 実装されている ホストOSのすべての資源を仮想化して提供

17 各論 Ensim FreeBSD jail Virtual Private Server OSを安全にpartitionできる
QoS, complete isolation, manageability Solaris, Linux, Windows FreeBSD jail chroot + α FreeBSDのカーネル内の各所で実装

18 各論 Hive HP-UX Virtual Partitions (VPAR’s) 複数の独立したカーネル(cell)からなる分散システム
cell内にfaultをとじこめて信頼性を向上させる HP-UX Virtual Partitions (VPAR’s) VPARは自分のHP-UXコピーを走らせる VPARは動的生成可能 vPar MonitorというVMM ハードのすぐ上で稼動 ハードウェア資源の所有権をVMインスタンスに割り当てる vParはメモリとI/Oハードウェアを直接アクセスする vParは割り当てられていないハードウェアを意識しない

19 各論 Linux/RK IBM’s Logical Partitioning (LPAR) QoSをポータブルな形で入れる
複数の独立したAIX, LinuxのOSイメージを一つのサーバ上で走らせる 動的にactive partitionに資源を加えたり取り除いたりできる iSeriesなどのサーバもlogical partitioningをサポート

20 各論 POWER4 Mac-on-Linux MAE (Macintosh Application Environment)
仮想化を助ける仕組みがある Mac-on-Linux PowerPC上でMac OSとLinuxを動かすことができる カーネルモジュールとして実装 MAE (Macintosh Application Environment) SunOSやHP-UX上で仮想的なMac環境を実現 Motorola 68LC040をエミュレート

21 各論 Microsoft Virtual Server Nemesis (by U. of Cambridge)
QoSのサポートのために設計された Nemesis kernelは小さくて軽量 ほとんどのOSコードはアプリケーションプロセス内で実行される 一つの大域的なページテーブル (単一アドレス空間) プロセスごとのメモリ保護はある いわゆるマイクロカーネル?

22 各論 Plex86 プログラミング言語VM QLinux x86仮想機械 UCSD P-System, p-code JVM
.NET CLI QLinux LinuxをQoSで拡張

23 各論 Shade SILK (Scout In the Linux Kernel)
コードがホスト上で動くように動的にクロスコンパイルするVM SILK (Scout In the Linux Kernel) Scoutはsmall network applianceのためのモジュラーなOS Scoutはカーネルモジュールとして存在。自分のCPUスケジューラとスレッドパッケージを含む

24 各論 Simics 完全システムシミュレーションのためのプラットフォーム
Simicsハードウェアの上で、VxWorks (PowerPC), OSE (PowerPC), Solaris (SPARC), Windows (x86, AMD64)が動く sparc-solaris, x86-linux, x86-windows版あり

25 各論 SimOS 完全マシンシミュレータ Embraというプロセッサエミュレータをoptionallyに使う
CPU, cache, multiprocessor memory buses, network devices, disk drives, other I/O devicesなどをモデル 可能 Simicsに非常に似ている Embraというプロセッサエミュレータをoptionallyに使う 動的バイナリ変換

26 各論 QuickTransit by Transitive Corporation
MIPS, PowerPC, mainframe processorなどのコードをx86やItaniumやOpteronで実行可能 MIPS, x86 , mainframe processorなどのコードをPowerPC上で実行可能 様々なUNIX OS間でのsystem call mapping dynamic binary translation

27 各論 Solaris Solaris containers Solaris Resource Manager (SRM) Zones
trusted container BSD “jail” concept アプリケーションにとっては実際の機械に見える、 安全で隔離された実行環境

28 各論 Solaris Virtual Private Server カーネルは一つのものを共有 複数の隔離実行環境に分けられる
各環境ごとに独立に管理、設定、リブート、シャットダウンができる 薄いソフトウェア層で実現 カーネルモジュールの集合で大半は実装 アプリケーションは修正なしで走る

29 各論 Sphera SWSoft ホスティングの自動化と管理をするソフトウェアの会社
VDS (Virtual Dedicated Server) 一つの物理マシンをソフトウェアで複数の実行環境に分ける SWSoft Virtuozzo Virtual Private Serverを作れる Virtuozzo instanceは動的にpartitionされることができ、QoS保証もある

30 各論 TCP/IPスタックの仮想化 User-Mode Linux UMLinux Virtual PC VMware z/VM
faultが存在するときのLinuxマシンの動作を 評価するためのフレームワーク Virtual PC VMware z/VM


Download ppt "“An Introduction to Virtualization” by Amit Singh"

Similar presentations


Ads by Google