仮想マシン間プロセススケジューリングの 実環境への適用にむけて

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
XenによるゲストOSの解析に 基づくパケットフィルタリング
ファイルシステムキャッシュを 考慮したIDSオフロード
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ネストした仮想化を用いた VMの安全な帯域外リモート管理
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
型付きアセンブリ言語を用いた安全なカーネル拡張
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
仮想マシンモニタによる きめ細かい パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
アスペクト指向言語のための 独立性の高いパッケージシステム
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
セキュリティ機構のオフロード時の 性能分離
VMMのソフトウェア若化を考慮した クラスタ性能の比較
オペレーティングシステムJ/K 2004年11月15日2時限目
信頼できないクラウドにおける仮想化システムの監視機構
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
アクセス集中時の Webサーバの性能に対する OSの影響
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
強制パススルー機構を用いた VMの安全な帯域外リモート管理
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

仮想マシン間プロセススケジューリングの 実環境への適用にむけて 田所秀和 (東工大) 光来健一 (九工大/CREST) 千葉 滋 (東工大)

仮想マシン環境でのスケジューリング 仮想マシン(VM)をつかったサーバ統合 システム全体で優先度をつけにくくなる リソースの利用効率向上 Backup が他のサービスを阻害しないようにしたい OSのスケジューリングのみ WEB と backup 間に優先度は つけられない VMスケジューリングを併用 DBが止まった場合backupの 優先度が高くなってしまう VM1 VM2 優先度 DB backup WEB VMM Hardware

Monarch Scheduler [田所ら ‘08] (1/2) 仮想マシンモニタがゲストOSのランキューを操作 ゲストOSのスケジューリングポリシーを変更 プロセスを止める:プロセスをランキューから外す プロセスを再開:ランキューに戻す ゲストOSの変更が不要 ゲストOS内で特別あつかいする スレッドが不要 VM1 VM2 DB backup WEB VMM ランキューを直接操作

Monarch Scheduler [田所ら ‘08] (2/2) システム全体でプロセスに優先度をつける ポリシー例 Backupの優先度最低 他のサービスを阻害しないよう WEB or DBが動いているときはbackupを停止 VMMが定期的にゲストOSを調査 VM1 VM2 優先度 DB backup WEB VMM Hardware 優先度最低

本発表:MonarchSchedulerの拡張 I/Oバウンドプロセスの制御 ランキューに載りにくい 定期的にチェックする方法では難しかった 約74%はI/O待ち iozoneで調査 WindowsゲストOSに対応 Linuxとは違う ソースコードが無い 公開情報が少ない シンボルのアドレスがロード時まで不定

I/Oバウンドプロセス制御の問題(1/2) プロセスをウェイトキューから除く ウェイトキューの発見が難しい さまざまな場所に存在 nfsはモジュールのロード時にヒープに生成 ランキューは起動時に生成され、CPU毎に存在 単純に戻すだけでは再開させられない可能性 永遠にI/O待ちの可能性 定期的に調べるだけでは、I/Oが完了したか不明

I/Oバウンドプロセス制御の問題(2/2) ゲストOSのI/Oスケジューラでの操作 ドメイン0での操作 リクエストが存在する時間が短い ドメイン0での操作 フロント、バック間のリクエストの対応付けが難しい リクエストとプロセスの対応が難しい ハードウェア Xen VMM フロントエンド ドライバ バックエンド ドライバ 実ドライバ ドメイン0 ドメインU Xen I/O アーキテクチャ I/O Scheduler

プロセスの状態変更で制御 I/O待ちプロセスの状態を書き換え 再開させるときは、ランキューに挿入 {,UN}INTERRUPTIBLE を STOPPED に I/O完了時に自発的に止まる 通常ならI/O完了時にRUNNINGになりランキューへ 再開させるときは、ランキューに挿入 状態をRUNNINGにしてから interruptible VMM interruptible VMM stopped stopped VMM stoppedに変更 I/O完了後

data_offset + PER_CPU_RUNQUEUES Windowsでのランキューの位置特定 VMMから直接発見する方法は不明 LinuxではGSレジスタからたどれる デバッガを使っても直接は不明 レジスタからたどれるか不明 Linuxの場合 struct x8664_pda { task_t * current; ulong data_offset; …}; Linuxのメモリ GSレジスタ x8664_pda data_offset + PER_CPU_RUNQUEUES ランキュー

Windowsのランキュー位置推定 PsActiveProcessHeadの発見が目標 current IRQL 実行待ち リスト配列 ProcHead 固定長 離れている ランキュー Windows Kernel 実行中プロセス 実行待ちプロセス アイドルプロセス VMM summary

プロセスリストの発見 プロセス候補をメモリ全体から探す プロセスかをチェック Xenのスナップショット機能を利用 プロセス型を表すビット列を探索 オブジェクトは型を表すヘッダを保持 GREPEXEC [bugcheck ’06] を利用 プロセスかをチェック 実行ファイル名がアスキー文字 プロセスIDが4の倍数 プロセス全体が一つの環状リストになっている

PsActiveProcessHeadの発見 プロセスとはアドレスが異なる プロセスの上位32ビットは 0xfffffa80 ProcHeadの上位32ビットは0xfffff800 % ./search_mem ~root/debutante.save 0 Idle priority: 0 next: 0xffffffffffffff18, prev: 0xffffffffffffff18 4 System priority: 8 next: 0xfffffa8002c97c10, prev: 0xfffff800017ad338 2212 WmiPrvSE.exe priority: 8 next: 0xfffffa8001659c10, prev: 0xfffffa8002f1ab50 2424 explorer.exe priority: 8 next: 0xfffffa8002f1ab50, prev: 0xfffffa80036c5040 2200 taskeng.exe priority: 8 next: 0xfffffa8003696a40, prev: 0xfffffa80035c3040 2248 rdpclip.exe priority: 8 next: 0xfffffa80036c5040, prev: 0xfffffa8003680040 2316 dwm.exe priority: 8 next: 0xfffffa80036d66c0, prev: 0xfffffa8003696a40 4 priority: 0 next: 0xa800000009ff18, prev: 0x1fff1c ….. 1112 svchost.exe priority: 8 next: 0xfffffa800307dc10, prev: 0xfffffa8002f58c10 680 logon.scr priority: 4 next: 0xfffff800017ad338, prev: 0xfffffa8000c9fc10

Windowsでのランキューの一貫性 ランキューが操作されていないときのみ、ランキューを操作 Linuxの場合は、スピンロックをチェック VMMが割り込み要求レベル(IRQL)をチェック SYNCH_LEVEL以上なら、スケジューリング中の可能性 SYNCH_LEVEL未満なら、スケジューリング中でない Linuxのスケジューラ schedule() { spin_lock(runqueue); ランキューの操作 spin_unlock(runqueue); };

実験 目的 Linuxで、I/Oバウンドプロセスを制御できるか Windowsで、ランキューの位置特定にかかる時間 実験環境 Core2Duo 2.4GHz、メモリ6Gbyte Xen 3.3.0 (x86_64) ドメイン0 :Linux 2.6.18.8、メモリ2Gbyte ドメインU:Linux 2.6.16.33, Windows Vista SP1、メモリ1Gbyte

実験:I/Oバウンドプロセスの制御 iozoneを制御 CPU時間の増加量から、実行を判断 ディスクベンチマークツール 停止中 iozone Xen VMM ドメイン0 ドメインU Monarch Scheduler

実験:ランキューの位置特定時間 ドメインUのメモリサイズを変化 メモリイメージを書き出す場所を変化 メモリサイズに比例 実ディスク tmpfs メモリサイズに比例 ディスクI/Oが ボトルネック

実験:スケジューリングの挙動 4つのプロセスをスケジューリング PI1 の優先度を最低 ドメインU1で3つ、ドメインU2で1つ プロセスは円周率の計算 PI1 の優先度を最低 Xen VMM ドメインU1 ドメインU2 PI3 PI4 PI1 PI2 優先度最低

関連研究 ゲストOSの情報を使いVMをスケジューリング Windowsの内部情報に依存した手法 Task-aware VM Scheduling [VEE’09 Kim et al.] Gray-box知識を利用 Guest-aware VM Scheduling [europar’08 kim et al.] ゲストOSからプロセスの優先度情報を取得 Windowsの内部情報に依存した手法 VMwatcher [CCS’07 Jiang et al.] GREPEXECを使いプロセスを推定 Lares [PS’08 Payne et al.] ゲストOSにカーネルモジュールを追加

まとめと今後の課題 まとめ 今後の課題 Monarch Schedulerの拡張 WindowsでのI/Oバウンドプロセスの制御 VMMからI/Oバウンドなプロセスを制御 WindowsゲストOSにも対応 今後の課題 WindowsでのI/Oバウンドプロセスの制御 現在実行中のプロセス制御 現実的なアプリケーションを対象とした実験