榮樂 英樹 <hdk_2@users.sourceforge.net> LilyVM と仮想化技術 榮樂 英樹 <hdk_2@users.sourceforge.net>

Slides:



Advertisements
Similar presentations
YLUG 勉強会 1 All Rights Reserved,Copyright (C) 2000, Takasugi Linux 勉強会資料 鋼鉄のペンギン 高杉 昌督
Advertisements

Linuxを組み込んだマイコンによる 遠隔監視システムの開発
Virtual Editionのご紹介 2012年12月12日.
WPF で作る!! 仮想化支援技術確認ツール CLR/H ひよひよ Crystal Dew World
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
並列処理実用? 並列処理により、 現在時間がかかって実用しづらい処理を、 早くして実用にする 1時間 =1/10⇒ 6分
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Docker.
Virtual Editionのご紹介 (株)ネットジャパン 法人営業部 2012年7月18日 1.
システムプログラミング実験 (OS演習) 第9回
仮想化システムを用いて 複数のOSを動かす
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
App. A アセンブラ、リンカ、 SPIMシミュレータ
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
研究背景 クラウドコンピューティングサービスの普及 ユーザ数の増加に伴う問題 マルチテナント方式の採用 データセンタの需要が増加
Ibaraki Univ. Dept of Electrical & Electronic Eng.
全体ミーティング 2009/6/24 D3 西川 賀樹.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
VMマイグレーションを可能にするIDSオフロード機構
Virtualizing I/O Devices on VMware Workstation’s VMM
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
Virtual Editionのご紹介 2012年7月26日.
型付きアセンブリ言語を用いた安全なカーネル拡張
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
“An Introduction to Virtualization” by Amit Singh
AMD64の仮想化技術を利用した 仮想マシンモニタの実装
全体ミーティング 金田憲二.
“Survey of System Virtualization Techniques” by Robert Rose のまとめ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
仮想マシン間プロセススケジューリングの 実環境への適用にむけて
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
オペレーティングシステム イントロダクション
仮想機械 温故知新 前田俊行 東京大学米澤研究室.
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
単一システムイメージを 提供するための仮想マシンモニタ
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
オペレーティングシステム i386アーキテクチャ(1)
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想マシンの監視を継続可能なマイグレーション機構
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
Cell/B.E. のSPE上で動作する 安全なOS監視システム
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

榮樂 英樹 <hdk_2@users.sourceforge.net> LilyVM と仮想化技術 榮樂 英樹 <hdk_2@users.sourceforge.net>

内容 背景 LilyVM その他の VM およびユーザレベル OS CPU による VM のサポート

1 台の計算機で複数の OS を動かしたい OS の移行 (Mac OS 9 と Mac OS X) 異なるシステムの組み合わせ (Windows と NetBSD) 動作テスト 開発 など

1 台の計算機で複数の OS を動かす方法 仮想計算機 (VM) (Type-I, Type-II) ユーザレベル OS VM + ユーザレベル OS

Virtual Machine Monitor 仮想計算機 (VM) (Type-I) ホスト OS が存在しないタイプの仮想計算機 例: VMware ESX Server, Xen sh Guest OS kernel Virtual Machine Monitor ハードウェア

仮想計算機 (VM) (Type-II) 実機用のOSをそのまま実行できる、下位層のシステム(ホストOS)から完全に独立した実行環境を提供する 例: Bochs, VMware Workstation, QEMU sh Guest OS kernel sh VM Host OS kernel ハードウェア

ユーザレベル OS OS をユーザプロセスとして実行する 実機用の OS を移植して作られている 例: User-mode Linux (UML) sh sh ユーザレベル OS kernel Host OS kernel ハードウェア

VM + ユーザレベル OS sh sh VM ユーザレベル OS kernel Host OS kernel ハードウェア LilyVM [http://lilyvm.sf.net] 特権命令などをコンパイル時にエミュレートするコードに書き換える ユーザレベル OS カーネル: 自動変換 + わずかな修正 ホスト OS: NetBSD, FreeBSD, Linux ゲスト OS: NetBSD, FreeBSD, Linux 2.4 sh sh VM ユーザレベル OS kernel Host OS kernel ハードウェア

NetBSD で LilyVM ホスト OS の ptrace() に以下の機能を追加する必要がある 本体への追加を希望します! PTRACE_SYSEMU (または PTRACE_SYSCALL) 制御レジスタ %cr2、エラーコード、およびトラップ番号を取得するための機能 本体への追加を希望します!

LilyVM の開発予定 高速化 浮動小数点関連 MMU まわり ネットワーク AMD64, Power PC 等のサポート

その他の VM およびユーザレベル OS VMware Bochs QEMU Plex86 Xen User-mode Linux coLinux

比較 VM ユーザレベル OS VM と機械語命令の変換 その他 VMware QEMU, Bochs User-mode Linux LilyVM Plex86 Xen coLinux VM が提供するアブストラクション 実機 なし ゲスト OS の修正 不要 移植 (大) 自動 移植 (小) ホスト OS との隔離 大 小 仮想化のオーバヘッド ? 特大 中 ホスト x86 x86, PPC 等 ライセンス 商用 LGPL GPL

VMware x86 の VM ソフトウェアの老舗 詳細不明 ring 3 は元の機械語命令をそのまま実行しているという噂だが、ring 0 やリアル・モードも速いし...

Bochs CPU および周辺装置をエミュレートする 移植性が高い オーバヘッドが非常に大きい sh Guest OS kernel sh Host OS kernel ハードウェア

QEMU CPU および周辺装置をエミュレートする 機械語命令を動的に変換することによって高速化している カーネルモジュールによりさらなる高速化が進められている sh Guest OS kernel sh QEMU Host OS kernel ハードウェア

Plex86 CPU の一部と周辺装置をエミュレートする ゲスト OS の機械語命令を静的に変換している カーネルモジュールによりメモリ空間の切り替えなどを行う sh Modified Linux sh Plex86 Host OS kernel + module ハードウェア

Xen ゲスト OS を Xen アーキテクチャに移植している 周辺装置の制御のために Linux をひとつ使う sh Guest OS kernel Xen ハードウェア

Windows or Linux kernel coLinux ホスト OS のデバイスドライバとして Linux を動作させる MMU や割り込みに関する部分が多く修正されている 性能は非常に良い sh sh coLinux kernel Windows or Linux kernel ハードウェア

User-mode Linux kernel Linux 上でプロセスとして動作するように Linux が移植されている ptrace() など OS に依存する機能を使っていて移植性が低い sh sh User-mode Linux kernel Linux kernel ハードウェア

比較 VM ユーザレベル OS VM と機械語命令の変換 その他 VMware QEMU, Bochs User-mode Linux LilyVM Plex86 Xen coLinux VM が提供するアブストラクション 実機 なし ゲスト OS の修正 不要 移植 (大) 自動 移植 (小) ホスト OS との隔離 大 小 仮想化のオーバヘッド ? 特大 中 ホスト x86 x86, PPC 等 ライセンス 商用 LGPL GPL

CPU による VM のサポート 背景 VMM の実現を容易にするための IA-32 の拡張 VM の必要性が高まってきている Intel Virtualization Technology AMD64 Pacifica

Intel Virtualization Technology Virtual Machine Control data Structure (VMCS) : 制御レジスタや状態などを含む MMU 関連: physical-address extension ? Guest 0 Guest 1 VM Entry VM Exit VM Exit VMM VMXON VMXOFF Intel Virtualization Technology Specification for the IA-32 Intel Architecture (C97063-002) Figure 1-1 より引用

AMD64 Pacifica Intel のものとにたような機能 のはず Intel のものとの互換性がないらしい

CPU による VM のサポートの ポイント 命令エミュレーションは基本的に不要 I/O 命令およびハードウェア割り込みのエミュレーションは必要

CPU による VM のサポートで 何が変わるか: LilyVM 新機能がユーザレベルから使えれば... 大幅高速化? I/O 命令は今の書き換える方法のほうが高速な可能性がある ホスト OS が新機能をうまくユーザレベルに提供できるかどうか ゲスト OS からのホスト OS の呼び出し等

CPU による VM のサポートで 何が変わるか: その他の VM VMware: 性能向上 Bochs: 今まで通り QEMU: x86 on x86 における性能向上? Plex86: ? Xen: 性能向上?、Windows 対応 User-mode Linux: 今まで通り coLinux: 今まで通り

まとめ LilyVM [http://lilyvm.sf.net] その他の VM およびユーザレベル OS 機械語命令の書き換え NetBSD への機能追加 その他の VM およびユーザレベル OS CPU による VM のサポート