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にする