Disco: Running Commodity Operating Systems on Scalable Multiprocessors

Slides:



Advertisements
Similar presentations
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
Advertisements

情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
Chapter11-4(前半) 加藤健.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
メモリ管理(1).
計算機工学III オペレーティングシステム #9 主記憶管理:ページング 2006/06/09 津邑 公暁
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
KVMにおけるIDSオフロードのための仮想マシン監視機構
Virtualizing a Multiprocessor Machine on a Network of Computers
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
メモリ暗号化による Android端末の盗難対策
App. A アセンブラ、リンカ、 SPIMシミュレータ
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
LogStructuredFileSystem Servey
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
全体ミーティング 2009/6/24 D3 西川 賀樹.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
VMマイグレーションを可能にするIDSオフロード機構
単一システムイメージを 提供するための仮想マシンモニタ
メモリ管理 4.3, 4.4 章 さだ.
サスペンドした仮想マシンの オフラインアップデート
型付きアセンブリ言語を用いた安全なカーネル拡張
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
Lazy Release Consistency
AMD64の仮想化技術を利用した 仮想マシンモニタの実装
全体ミーティング 金田憲二.
“Survey of System Virtualization Techniques” by Robert Rose のまとめ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
オペレーティングシステム イントロダクション
仮想機械 温故知新 前田俊行 東京大学米澤研究室.
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
単一システムイメージを 提供するための仮想マシンモニタ
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
通信機構合わせた最適化をおこなう並列化ンパイラ
オペレーティングシステム 第2回 割り込みとOSの構成
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
複数ホストにまたがって動作する仮想マシンの障害対策
オペレーティングシステムJ/K 2004年11月15日2時限目
信頼できないクラウドにおける仮想化システムの監視機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
Virtualizing a Multiprocessor Machine on a Network of Computers
仮想マシンの監視を継続可能なマイグレーション機構
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
全体ミーティング (5/23) 村田雅之.
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
Mondriaan Memory Protection の調査
SpectreとMeltdown ITソリューション塾・第27期 2018年3月20日 株式会社アプライド・マーケティング 大越 章司
強制パススルー機構を用いた VMの安全な帯域外リモート管理
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
アーキテクチャパラメータを利用した並列GCの性能予測
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

Disco: Running Commodity Operating Systems on Scalable Multiprocessors

発表の概要 導入 実装の概要 実装の効率化 実験 拡張 (Cellular Disco) まとめ

導入

目標 大規模マルチプロセッサマシン上で     効率良くCommodity OSを動作させたい 少ない開発コストで

アプローチ 新しいOSを開発する ハードウェアを分割する VMで分割する 多大な開発コストを必要とする OSがスケールする程度に 柔軟に資源を管理することができない VMで分割する 少ない開発コストで済む 柔軟に資源管理することができる

Disco Virtual Machine Monitor マルチプロセッサマシン上に 仮想マルチプロセッサマシンを構築 OS OS マルチプロセッサマシン上に               仮想マルチプロセッサマシンを構築 OS OS SMP-OS Thin-OS DISCO PE PE PE PE PE PE CC-NUMA Multiprocessor

Disco FLASHマルチプロセッサマシンを対象 MIPS R10000プロセッサ CC-NUMA

Discoの利点 スケーラビリティの向上 故障の封じ込め 複数のOSの同時実行 一つのマシンを複数のVMに分割する OSを改変する必要がない たとえひとつのcommodity OSのscalabityでたりないアプリケーションでも、 OSに変更を加え、VM間のメモリ共有などを可能にすることによって解決 NFSなどによりVM間で資源を共有 Resource-intensive applicationには、specialized OSを利用

実装の概要

実装の概要 以下の資源を仮想化 CPU メモリ I/Oデバイス ※普通のVMの実装とほぼ同様

CPUの仮想化 基本的には物理CPU上でdirectに実行 特権命令のみVMMがエミュレーション (1)特権レジスタへのアクセスを捕捉 OS (2) エミュレーション実行

CPUの仮想化 以下のモードで動作 [VMM] カーネルモード [VM上のOS] スーパーバイザモード [VM上のアプリ] ユーザモード ハードウェアにフルアクセス可能 [VM上のOS] スーパーバイザモード 特権命令や物理メモリにはアクセスできない [VM上のアプリ] ユーザモード スーパーバイザモードだと スーパーバイザアドレスという特殊なアドレス空間にアクセス可能

仮想CPUのスケジューリング 時分割で各仮想CPUを物理CPUに割り当て データの局所性を考慮したAffinityスケジューリング

物理メモリの仮想化 各VMに個別の物理アドレス空間を提供 VM1の物理アドレス空間 VM2の物理アドレス空間 実機の物理アドレス空間 216 216 240 実機の物理アドレス空間 (マシンアドレス空間と呼ぶ)

物理メモリの仮想化 ゲストOSのTLBへのアクセスを捕捉 エントリ<v,p>の挿入<v,m>の挿入に変更 ※MIPSはソフトウェアでTLBを操作可能 v 216 VMの仮想アドレス空間 p 216 VMの物理アドレス空間 m 216 マシンアドレス空間

メモリの仮想化の限界と、 それへの対処方法 メモリの仮想化の限界と、        それへの対処方法 MIPSでは、特殊なセグメント領域が存在 TLBをbypassして直に物理メモリにアクセスできる カーネルコード・データなどが置かれる 効率良くエミュレーションできない セグメント領域を使わないように、             カーネルのソースコードを変更 Supervisor modeからはaceessできない これでは効率的にエミュレーションできないので、する

I/Oデバイスの仮想化 特殊なデバイスドライバを用意 DMAリクエストを捕捉して、物理アドレスを マシンアドレスに変換 ※DMAリクエスト=I/O操作のソース(またはデスティネーション)を指定する、物理アドレスと長さのペア 排他制御と物理アドレスの変換のみ行う 以上の仕組みにより system-wide cache of disk blocks in memory

実装の効率化

実装の効率化 HAL (Hardware Abstraction Level)の改変 物理メモリの仮想化の高速化 VM間の効率的な資源共有 TLBミスのエミュレーションの高速化 NUMA性の考慮 VM間の効率的な資源共有 科学技術計算専用OSの提供

HALの改変(その1) 一部の特権命令をトラップ無しで実行可能にする 例)特権レジスタへの読み書き  特権レジスタの値を保持しているメモリへのロード・ストア

HALの改変(その2) 資源管理に関するヒントを、 OSがVMMに与えられるようにする Zeroed pageの要求 VMMがどうせクリアするので、OSの手間が省ける OSの空ページリストに挿入された、再利用されないページの通知 今現在idleであることの通知

TLBミスのエミュレーションの   高速化 ソフトウェアで2次TLBを用意 2次TLBに存在しない場合のみ、OSに例外を送る

NUMAの考慮 ローカルメモリとリモートメモリとでアクセス 速度が異なる なるべくローカルメモリだけを参照したい ローカルメモリとリモートメモリとでアクセス  速度が異なる なるべくローカルメモリだけを参照したい 頻繁にリモートからアクセスされるページを、動的に移動・複製する

ページの複製・移動 一つのノードからのみアクセスされるページ 複数のノードからreadアクセスされるページ それ以外 移動 複製 何もしない キャッシュミス回数を測定する

ページの移動 TLBを無効化する 物理アドレスとマシンアドレスのmappingを変更する Node 0 Node 1 仮想ページ 仮想ページ 物理ページ マシンページ

ページの複製 ページを書き込み禁止にする ページをローカルノードにコピーする 物理アドレスとマシンアドレスのmappingを変更する Node 0 Node 1 仮想ページ 仮想ページ 物理ページ マシンページ

VM間の効率的な資源共有 Copy-on-writeディスク 仮想ネットワークインターフェース

Copy-on-writeディスク Non-persistent ルートディスクなどを対象としている readの効率が良い

Copy-on-writeディスク readの効率が良い 同じディスクブロックへの2回目以降のDMAリクエストは、ページをマップするだけ VM 0 VM 1 物理メモリ マシンメモリ

Copy-on-writeディスク 書き込み時にページを複製する あるVMが行った書き込みを、他のVMからは見えないようにするため Non-persistentディスクのみを対象 ルートディスク 書き込みログを保存

仮想ネットワークインターフェース メモリのコピーをすることなくマッピングを変更するだけで通信できる Copy-on-writeディスクと同様の仕組み NFSなどで利用 特殊なVM間で共有できるメモリ領域を提供 Copy-on-write disksの仕組みを利用 NFSなどでbuffer cache 実際にcopyしなくてmappingを変更することにより実現 Page replicationによる効率向上

科学技術計算専用OSの提供 SPLASHOS SPLASH-2を走らせるのに必要なサービス のみ提供する ○スレッド、libcルーチン、… ×仮想メモリ

実験

実験環境 ほとんどの実験はSimOS上で行われた 実機が未完成だったので

実験に使用したWorkload ソフトウェア開発 (Pmake) ハードウェア開発 (Engineering) OS & I/O intensive ハードウェア開発 (Engineering) Large memory footprint Little use of OS services 科学計算 (Raytrace, Radix) 商用データベース Memory intensive

実験1:仮想化のオーバヘッド 結果 考察 表1、図6 オーはベッドの主な原因は、TLBミスのエミュレーション カーネルの実行時間が減っているのは、VMMがカーネル処理を肩代わりしているため ページの初期化 2次TLB TLBmissは増える VMMも使用する 仮想CPU切り替え時にflushされるので

実験2:メモリオーバヘッド 結果 図7参照 考察 カーネルコードなどの共有がうまく機能した

実験3:スケーラビリティ 結果 図8参照 考察 pmakeの実行時間が60%に短縮された

実験4:ページ移動と複製 結果 図9参照 考察 NUMAの考慮により性能が向上した

拡張 (Cellular Disco)

Cellular Disco Discoに以下の機能を追加 実機上で性能評価 Fault containment Global resource management 実機上で性能評価

Fault Containment ハードウェアを複数のセルに分割 各セルごとにVMMの状態を保持 一つのセルの故障しても、他のセルは動作し続ける OS OS SMP-OS Thin-OS ハードウェアの支援はある程度必要 どのノードがcrashしたかの検出 DISCO PE PE PE PE PE PE

Global Resource Management ~ CPU管理 ~ ギャングスケジューリング idleな物理CPUは、仮想CPUをsteal 定期的に大域的なロードを調整

Global Resource Management ~ メモリ管理 ~ 空きメモリ量の少なくなったVMは、他のVMからメモリを借りる Redundant pagingの回避などもしている C.f.) VMWare GSX 3つの最適化 アクティブに使用されているページの特定 異なるVMによって共有されるページの扱い OSのページングによるディスクアクセスとそれ以外を区別して扱う

Global Resource Management なるべくセル内で閉じたスケジューリングをする 故障を封じ込めるため 異なるセル間で資源のやり取りをした場合は、それを記憶しておいて、故障時に依存関係を検出する

まとめ Disco Cellar Disco VMMのオーバヘッドは小さい セルごとに故障を封じ込め Pmakeにおいて、IRIXより1.7倍の性能向上 Cellar Disco セルごとに故障を封じ込め

参考文献 Disco: Running Commodity Operating Systems on Scalable Multiprocessors Eduoard Bugnion, Scott Devine, Kinshuk Govil, and Mendel Rosenblum SOSP (1997) and TOCS (1997) Cellular Disco: resource management using virtual clusters on shared-memory multiprocessors Kinshuk Govil, Dan Teodosiu, Yongqiang Huang, and Mendel Rosenblum SOSP (1999)

仮想化する上での課題点 VM間の効率的な資源の共有 NUMA-nessの考慮 NFS Disk, memory Page placement Dynamic page migration Non-NUMA-aware Memory Management policiesのOSにも、NUMA上で動作させることを可能にする

Challenges 仮想化によるオーバヘッド Resource management VM間の共有 Guest OSの知識なしにスケジューリング VM間の共有

Disco 仮想的なプロセッサ 仮想的なメモリ I/Oデバイス 多少MIPSハードウェアに少し変更を加えている 普通と一緒 全仮想マシンからmountできるvirtual diskが存在する Special netowork device フラグメンテーションがおきない

たった一つのノードによって頻繁にアクセスされるページは、そのノードに移動する Read-sharedは複製 移動回数を制限

手順 ハードウェアのcache missカウンタを参照 Hot page を発見したら、migration or replication Chage the physical-to-real machine mamiing Invalidate ALL TLB entreise Cop Replicationの場合 Downgrade TLB entries Read-onlyにする