SimOSとdenali
Download
Report
Transcript SimOSとdenali
Disco: Running Commodity
Operating Systems on Scalable
Multiprocessors
発表の概要
導入
実装の概要
実装の効率化
実験
拡張 (Cellular Disco)
まとめ
導入
目標
大規模マルチプロセッサマシン上で
効率良くCommodity OSを動作させたい
少ない開発コストで
アプローチ
新しいOSを開発する
ハードウェアを分割する
多大な開発コストを必要とする
OSがスケールする程度に
柔軟に資源を管理することができない
VMで分割する
少ない開発コストで済む
柔軟に資源管理することができる
Disco
Virtual Machine Monitor
マルチプロセッサマシン上に
仮想マルチプロセッサマシンを構築
OS
OS
SMP-OS
Thin-OS
DISCO
PE
PE
PE
PE
PE
CC-NUMA Multiprocessor
PE
Disco
FLASHマルチプロセッサマシンを対象
MIPS R10000プロセッサ
CC-NUMA
Discoの利点
スケーラビリティの向上
故障の封じ込め
一つのマシンを複数のVMに分割する
OSを改変する必要がない
VMが一つ落ちてもシステム全体は落ちない
複数のOSの同時実行
例)一部のVMに科学技術専用OSを走らせる
実装の概要
実装の概要
以下の資源を仮想化
CPU
メモリ
I/Oデバイス
※普通のVMの実装とほぼ同様
CPUの仮想化
基本的には物理CPU上でdirectに実行
特権命令のみVMMがエミュレーション
(1)特権レジスタへの
アクセスを捕捉
OS
(3)OSの実行を再開
VMM
(2) エミュレーション実行
CPUの仮想化
以下のモードで動作
[VMM] カーネルモード
ハードウェアにフルアクセス可能
[VM上のOS] スーパーバイザモード
特権命令や物理メモリにはアクセスできない
[VM上のアプリ] ユーザモード
仮想CPUのスケジューリング
時分割で各仮想CPUを物理CPUに割り当て
データの局所性を考慮したAffinityスケジューリ
ング
物理メモリの仮想化
各VMに個別の物理アドレス空間を提供
VM1の物理アドレス空間
VM2の物理アドレス空間
0
0
216
0
実機の物理アドレス空間
(マシンアドレス空間と呼ぶ)
216
240
物理メモリの仮想化
ゲストOSのTLBへのアクセスを捕捉
エントリ<v,p>の挿入<v,m>の挿入に変更
※MIPSはソフトウェアでTLBを操作可能
v
0
216
VMの仮想アドレス空間
p
0
216
VMの物理アドレス空間
0
マシンアドレス空間
m
216
メモリの仮想化の限界と、
それへの対処方法
MIPSでは、特殊なセグメント領域が存在
TLBをbypassして直に物理メモリにアクセスできる
カーネルコード・データなどが置かれる
効率良くエミュレーションできない
セグメント領域を使わないように、
カーネルのソースコードを変更
I/Oデバイスの仮想化
特殊なデバイスドライバを用意
DMAリクエストを捕捉して、物理アドレスを
マシンアドレスに変換
実装の効率化
実装の効率化
HAL (Hardware Abstraction Level)の改変
物理メモリの仮想化の高速化
TLBミスのエミュレーションの高速化
NUMA性の考慮
VM間の効率的な資源共有
科学技術計算専用OSの提供
HALの改変(その1)
一部の特権命令をトラップ無しで実行可能
にする
例)特権レジスタへの読み書き
特権レジスタの値を保持しているメモリへの
ロード・ストア
HALの改変(その2)
資源管理に関するヒントを、 OSがVMMに
与えられるようにする
Zeroed pageの要求
VMMがどうせクリアするので、OSの手間が省ける
OSの空ページリストに挿入された、再利用さ
れないページの通知
今現在idleであることの通知
TLBミスのエミュレーションの
高速化
ソフトウェアで2次TLBを用意
2次TLBに存在しない場合のみ、OSに例外を
送る
NUMAの考慮
ローカルメモリとリモートメモリとでアクセス
速度が異なる
なるべくローカルメモリだけを参照したい
頻繁にリモートからアクセスされるページを、
動的に移動・複製する
ページの複製・移動
一つのノードからのみアクセスされるページ
移動
複数のノードからreadアクセスされるページ
複製
それ以外
何もしない
ページの移動
1. TLBを無効化する
2. 物理アドレスとマシンアドレスのmapping
を変更する
仮想ページ
物理ページ
マシンページ
Node 0
Node 1
仮想ページ
ページの複製
1. ページを書き込み禁止にする
2. ページをローカルノードにコピーする
3. 物理アドレスとマシンアドレスのmapping
を変更する
仮想ページ
物理ページ
マシンページ
Node 0
Node 1
仮想ページ
VM間の効率的な資源共有
Copy-on-writeディスク
仮想ネットワークインターフェース
Copy-on-writeディスク
Non-persistent
ルートディスクなどを対象としている
readの効率が良い
Copy-on-writeディスク
readの効率が良い
同じディスクブロックへの2回目以降のDMAリ
クエストは、ページをマップするだけ
DMA
リクエスト
物理メモリ
マシンメモリ
VM 0
VM 1
DMA
リクエスト
Copy-on-writeディスク
書き込み時にページを複製する
あるVMが行った書き込みを、他のVMからは
見えないようにするため
仮想ネットワークインターフェース
メモリのコピーをすることなくマッピングを
変更するだけで通信できる
Copy-on-writeディスクと同様の仕組み
NFSなどで利用
科学技術計算専用OSの提供
SPLASHOS
SPLASH-2を走らせるのに必要なサービス
のみ提供する
○スレッド、libcルーチン、…
×仮想メモリ
実験
実験環境
ほとんどの実験はSimOS上で行われた
実機が未完成だったので
実験に使用したWorkload
ソフトウェア開発 (Pmake)
ハードウェア開発 (Engineering)
Large memory footprint
Little use of OS services
科学計算 (Raytrace, Radix)
OS & I/O intensive
Little use of OS services
商用データベース
Memory intensive
実験1:仮想化のオーバヘッド
結果
表1、図6
考察
オーはベッドの主な原因は、TLBミスのエミュ
レーション
カーネルの実行時間が減っているのは、VMM
がカーネル処理を肩代わりしているため
ページの初期化
2次TLB
実験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
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
Global Resource Management
なるべくセル内で閉じたスケジューリングを
する
故障を封じ込めるため
異なるセル間で資源のやり取りをした場合
は、それを記憶しておいて、故障時に依存
関係を検出する
まとめ
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間の効率的な資源の共有
NFS
Disk, memory
NUMA-nessの考慮
Page placement
Dynamic page migration
Non-NUMA-aware Memory Management policiesの
OSにも、NUMA上で動作させることを可能にする
Challenges
仮想化によるオーバヘッド
Resource management
Guest OSの知識なしにスケジューリング
VM間の共有
Disco
仮想的なプロセッサ
仮想的なメモリ
多少MIPSハードウェアに少し変更を加えている
普通と一緒
I/Oデバイス
全仮想マシンからmountできるvirtual diskが存在す
る
Special netowork device
フラグメンテーションがおきない
たった一つのノードによって頻繁にアクセ
スされるページは、そのノードに移動する
Read-sharedは複製
移動回数を制限
手順
ハードウェアのcache missカウンタを参照
Hot page を発見したら、migration or
replication
Migrationの場合、
Chage the physical-to-real machine mamiing
Invalidate ALL TLB entreise
Cop
Replicationの場合
Downgrade TLB entries
Read-onlyにする