140 likes | 2.49k Views
仮想実行環境を管理するための ライブラリ. 大山 恵弘 米澤 明憲 (東京大学/JST). Virtual Execution Environments (VEE). Systems CPU emulators: QEMU, bochs, Quasar VMM: VMware, Xen, Denali, LilyVM, UML, SBUML, Virtual Multiprocessors Virtual resource view: Chroot, jail, Zap, SoftwarePot, World OS. A Big Picture.
E N D
仮想実行環境を管理するためのライブラリ 大山 恵弘 米澤 明憲 (東京大学/JST) 情報処理学会第99回OS研究会
Virtual Execution Environments (VEE) • Systems • CPU emulators: QEMU, bochs, Quasar • VMM: VMware, Xen, Denali, LilyVM, UML, SBUML, Virtual Multiprocessors • Virtual resource view: Chroot, jail, Zap, SoftwarePot, World OS 情報処理学会第99回OS研究会
A Big Picture • Study on next-genration software that aggressively uses VEEs • Sustainable Computing • Virtual Internet, virtual Grid • Computation migration • Intrusion/failure/bug analysis via playback • Sandbox, IDS, honeypot 情報処理学会第99回OS研究会
Quasar Quasar Denali Virtual Internet on Heterogeneous Machines Win MacOS Linux Linux Linux SBUML SBUML Linux NetBSD FreeBSD Linux (SMP) LilyVM LilyVM LilyVM VirtualMP VirtualMP NetBSD Win MacOS NetBSD Linux 情報処理学会第99回OS研究会
Difficulty in Developing Virtual Internet • Deployment • A great amount of effort:login, copy virtual disks, start VMs, checking fault, recover, … • boring • error-prone 情報処理学会第99回OS研究会
Our Approach • Toolkit for VEE-based software • VEEML: VEE Management Library • fork/exec/wait/kill-flavored APIs • veemd: VEE Management Daemon • VOP: VEE-oriented programming paradigm 情報処理学会第99回OS研究会
What VEEML Makes Easier • Creating/controlling/synchronizing hundreds of VEEs • Deploying VEEs on remote machines • Combining various VEE systems 情報処理学会第99回OS研究会
Our Scenario (1) veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd veemd 情報処理学会第99回OS研究会
Our Scenario (2) • Programming using VEEML develop libraries and daemons develop VEE-using apps in Ruby … VEEML- Ruby VEEML- Python VEEML- Java VEEML-C veemd end user 情報処理学会第99回OS研究会 our team
VEEML API • vee_exec(vee_type, snapshot_file, …) • vee_snapshot(vid, snapshot_file, …) • vee_suspend(vid), vee_resume(vid) • vee_wait(vid, status) • vee_kill(vid, sig) • vee_makediff(difffile, snap1, snap2) • vee_mergediff(vid, difffile) • vee_getprio(vid), vee_setprio(vid, prio) 情報処理学会第99回OS研究会
VID: VEE ID • Globally unique ID for specifying VEE • Independent of VEE’s physical location • Given when VEE is created • Used for controlling VEEs 情報処理学会第99回OS研究会
Controlling Remote VEEs VID3627 VID2589 VID1010 pot pot MacOS SuspendVID 1234! SoftwarePot QEMU suspended! applica tion VID1234 VID800 VID777 Linux Win Linux UML UML VEEML 情報処理学会第99回OS研究会
VID4865 pot Creating VEE on Remote Machine VID3627 VID2589 VID1010 Create pot-VEE on VID 1234! pot pot MacOS SoftwarePot QEMU applica tion SoftwarePot VID777 Linux VID1234 Win VID800 Linux UML UML VEEML 情報処理学会第99回OS研究会
Related Work • SBUML (Potter et al.) • Great work • μDenali (Washington) • Also great work • XenoServer (Cambridge/MS/Intel) • MicroGrid (UCSD) • VMPlant (U-Florida) • GXP, Phoenix (U-Tokyo) 情報処理学会第99回OS研究会