ネストしたVMを用いた 仮想化システムの高速なソフトウェア若化

Slides:



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

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
クラウドにおけるライブラリOSを用いた インスタンス構成の動的最適化
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
メモリ暗号化による Android端末の盗難対策
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
クラウドにおけるアプリケーション単位での VM構成の動的最適化
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
型付きアセンブリ言語を用いた安全なカーネル拡張
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
分散IDSの実行環境の分離 による安全性の向上
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
非対称リンクにおける ジャンボフレームの性能評価
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
クラウドにおけるVM内コンテナを用いた 低コストで迅速な自動障害復旧
Intel SGXを利用する 巨大なアプリケーションの マイグレーション機構
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
VM内コンテナを用いた サービス単位の オートスケール機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想環境を用いた 侵入検知システムの安全な構成法
仮想マシンの監視を継続可能なマイグレーション機構
仮想化システムのソフトウェア若化のための軽量なVMマイグレーション
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
仮想化システムの 軽量なソフトウェア若化のための ゼロコピー・マイグレーション
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

ネストしたVMを用いた 仮想化システムの高速なソフトウェア若化 九州工業大学 大庭裕貴 光来健一

仮想化システム 仮想マシン(VM)を用いて計算機を一台に集約 計算機の高性能化により余剰リソースが発生 メモリやCPUが余るようになってきた 集約することで利用効率が向上し、コストも削減 物理マシンが減り、コストの削減につながる VM上でユーザにサービスを提供 VM ハイパーバイザ ホスト VMとして 一台に集約 近年、計算機の高性能化に伴い一台の計算機に一つのサービスではメモリやCPUなどのリソースが余るようになってきた そこで、ハイパーバイザなどの仮想化ソフトウェアを利用して、計算機の仮想化を行い、仮想マシン(VM)を用いて計算機を一台に集約することで、リソースの利用効率が向上し、また、物理マシンの台数が減ることにより初期コスト・ハードウェア保守のコストや管理コストの削減につなげることが可能となる そして、VM上でユーザにサービスを提供するということが行われています

ソフトウェア・エージング 動作中のソフトウェアの状態が劣化していく現象 VMに対して操作を繰り返す内に空きメモリやディスク空き容量が減少 メモリの解放し忘れ、オープンしたファイルの閉じ忘れ 仮想化システムの性能が低下 最悪の場合、想定外のシステムダウンをまねく しかし、仮想化システムは仮想化を行っていない従来のシステムと比べるとより長時間で運用されることが多いため、ソフトウェア・エージングと呼ばれる現象が発生しやすくなってしまいます ソフトウェア・エージングとは、VMに対して様々な操作を繰り返す内にソフトウェアの状態が次第に劣化していく現象のことです ソフトウェア・エージングの現象として実際の報告例を紹介いたします 左の図は、システムを60時間以上連続で動作させVMに対して様々な操作を行ったところ、空きメモリが20%まで減少していることを示しています 右の図は、システムを60時間以上連続で操作させVMに対して様々な操作を行ったところ、ディスク空き容量が約30%まで減少していることを示しています これらの減少により、仮想化システムの性能が低下してしまい、最悪の場合、想定外のシステムダウンなどの重大な問題を引き起こす原因となってしまいます Source: Machida et al., Combined Server Rejuvenation in a Virtualized Data Center, Proc. ATC 2012.

ソフトウェア若化 ソフトウェアの状態を正常な状態へ戻す手法 ソフトウェア・エージングへの対処法 システムの再起動が最も単純な手法 仮想化システムの場合ハイパーバイザの再起動が必要 ハイパーバイザ上で動作するすべてのVMも再起動 サービスを提供できないダウンタイムが発生 すべて再起動 ホスト このようなソフトウェア・エージングの問題に対処するため、ソフトウェア若化と呼ばれる手法が提案されています ソフトウェア若化とはソフトウェア・エージングが蓄積したソフトウェアを正常な状態に戻す手法です 最も単純な方法として、システムの再起動があります システムを再起動することでメモリの状態が初期化され、空きメモリの減少を解消することが可能です また、システム起動時の一時ファイル削除によりディスク空き容量の減少を解消することでソフトウェア若化を行うことが可能です 仮想化システムの場合、ハイパーバイザを再起動することでソフトウェア若化を行うことができますが、その際には、ハイパーバイザ上で動作している全てのVMのOSを停止する必要があります そして、ハイパーバイザを再起動してから、VMのOSを起動し直す必要があります OSの起動には時間がかかる上、通常多くのVMが集約されて動作するため非常に時間がかかります また、VMが停止している間はサービスを提供することができないため、長いダウンタイムが発生してしまいます VM 再起動 ハイパーバイザ

マイグレーションによるダウンタイム削減 ソフトウェア若化前にすべてのVMを移動 VMのマイグレーション機能を利用 その際のダウンタイムは短い 移動元のハイパーバイザの再起動時にVMの再起動は不要 すべて移動 ホスト1 ハイパーバイザ ホスト2 ハイパーバイザ そこで、VMを動作させたまま別のホストに移動させることができるマイグレーションが活用されています ハイパーバイザのソフトウェア若化を行う前に、そのハイパーバイザ上で動作しているすべてのVMをマイグレーションにより別のホストに移動させてから、ハイパーバイザの再起動を行います そうすることでハイパーバイザを再起動することによるVMへの影響を無くすことができ、また、マイグレーション中にはVMにダウンタイムはほとんど発生しないためソフトウェア若化に伴うダウンタイムを削減することが可能となります マイグレーション VM 再起動

マイグレーション中の性能低下 マイグレーションはシステムに大きな負荷をかける ネットワーク帯域を制限する方法もあるが… ネットワークを介してVMの大きなメモリイメージを転送 CPUやメモリ帯域を占有 ネットワーク帯域を制限する方法もあるが… システム全体の性能低下を抑えることはできる ソフトウェア若化にかかる時間の増大 ホスト1 ホスト2 VMをマイグレーションするには移動元のホストから移動先のホストにVMのメモリイメージをネットワークを介して転送する必要があります このメモリの転送は、すべてのVMを移動させる場合には合計で数GB~数十GBものデータ量になることもあるため、ネットワーク帯域を占有してしまいます また、このマイグレーション処理のためにホストのCPUやメモリ帯域が占有されシステムの性能低下を引き起こしてしまいます マイグレーションで用いるネットワーク帯域を制限することで、ネットワークへの負荷を軽減し、その結果システムへの負荷も軽減することができますが、マイグレーションに時間がかかるようになってしまいます そのため、ハイパーバイザの再起動が可能になるまでの時間が長くなり、仮想化システムのソフトウェア若化時間が増大してしまいます メモリイメージ VM VM ハイパーバイザ ハイパーバイザ

提案:VMBeam 高速なソフトウェア若化のために低負荷で高速な マイグレーションを可能にするシステム 高速なソフトウェア若化のために低負荷で高速な マイグレーションを可能にするシステム 同一ホスト上に二つの仮想化システムを構築 その仮想化システム間でVMをマイグレーション 同一ホスト上にあることを利用して高速化 仮想化システム1 仮想化システム2 VM マイグレーション ×~という ×提案しています ○提案します ×「また」の乱用 ハイパーバイザ エージング ハイパーバイザ

ネストしたVMの活用 同一ホスト上に二つの仮想化システムを構築 VMの中で仮想化システムを動作させる ゲスト・ハイパーバイザがソフトウェア若化の対象 VMに対して様々な操作を行うため、エージングがより起こりやすい ゲスト・ハイパーバイザ ゲスト VM ホスト・ハイパーバイザ ホストVM1 ホストVM2

ネストしたVMにおけるマイグレーション 仮想ネットワークを介してメモリイメージを転送 これだけでも高速化されそうだが… ネットワーク仮想化によるオーバヘッドが大きい 移動元と移動先の処理を同一ホスト上で行う必要がある ネットワーク仮想化による負荷が2倍 ホストVM1 ホストVM2 ゲストVM メモリ ゲストVM メモリ 仮想化システムでは、VM同士が通信を行うために、ネットワークカードをエミュレーションした仮想NICを介した仮想ネットワークを用います ホストVM間でゲストVMのマイグレーションを行う際には、移動元のゲスト・ハイパーバイザから移動先のゲスト・ハイパーバイザにマイグレーション要求が出されます 移動先のゲスト・ハイパーバイザはマイグレーションされてきたVMを復元するために、メモリやCPUなどを初期化した空のVMを作成します 移動元のゲスト・ハイパーバイザは仮想ネットワークを介して移動先のゲスト・ハイパーバイザにメモリ内容を転送します しかし、ネットワークの仮想化にはオーバヘッドがかかる上に、移動元と移動先のネットワークの仮想化が同一ホスト上で行われるため2倍の負荷がシステムにかかってしまいます メモリ ゲスト・ハイパーバイザ ゲスト・ハイパーバイザ 仮想NIC 仮想NIC ホスト・ハイパーバイザ 仮想ネットワーク

VMBeamの高速なマイグレーション VMのメモリイメージの転送を高速化した二つのマイグ レーション機構を提供 コピー・マイグレーション スワップ・マイグレーション VMのメモリイメージの転送を高速化 ネットワーク仮想化のオーバヘッドを削減 VMBeamでは、マイグレーションにおけるメモリ転送の高速化のために2つの手法を提案します 1つ目はコピー・マイグレーションです 2つ目はスワップ・マイグレーションです

コピー・マイグレーション VM間メモリコピーを用いたマイグレーション 移動元のゲストVMから移動先に直接メモリをコピー 仮想ネットワークによるデータ転送を高速化 データ転送の際に仮想NICを経由しない ライブマイグレーションも可能 ホストVM1 ホストVM2 ゲストVM メモリ ゲストVM メモリ コピー・マイグレーションでは、仮想ネットワークを介することなく、移動元のゲストVMのメモリ内容を移動先のゲストVMのメモリ内容に直接コピーを行います メモリ ゲスト・ハイパーバイザ ゲスト・ハイパーバイザ ホスト・ハイパーバイザ

スワップ・マイグレーション(1/2) VM間メモリスワップを用いたマイグレーション 移動元と移動先のゲストVMのメモリを入れ替え 仮想ネットワークによるメモリイメージ転送と同等の効果 ホストVM1 ホストVM2 ゲストVM ゲストVM スワップ・マイグレーションでは移動元と移動先のゲストVMのメモリを入れ替えることでゲストVMのメモリ内容の転送を行います これは移動先のゲストVMが空であるため、仮想ネットワークを介したメモリ転送と同等の効果を得ることができます メモリ メモリ ゲスト・ハイパーバイザ ゲスト・ハイパーバイザ ホスト・ハイパーバイザ

スワップ・マイグレーション(2/2) 利点 欠点 ゲストVMのメモリのコピーが必要ない ライブマイグレーションは難しい 一部でもメモリをスワップするとVMを動かすことができなくなる

VM間メモリスワップの実装 ホスト物理メモリとマシンメモリの対応を変更 ゲスト物理メモリとホスト物理メモリの対応はそのまま ホスト・ハイパーバイザが持つP2Mテーブルを書き換える ゲスト物理メモリとホスト物理メモリの対応はそのまま ホストVM1 ホストVM2 ゲスト VM ゲスト VM ゲスト物理メモリ ゲスト・ハイパーバイザ ゲスト・ハイパーバイザ VM間メモリスワップについて説明します まず、ネストしたVMでは ホスト物理メモリ P2M テーブル1 P2M テーブル2 ホスト・ハイパーバイザ マシンメモリ

XenにおけるVMBeamの実装 ホスト管理VM上のメモリサーバがメモリを操作 ゲスト管理VMはゲストVMのメモリ情報だけをメモリサーバに送信 メモリサーバはハイパーコールを発行してメモリをコピーまたはスワップ ホストVM1 ホストVM2 ホスト 管理VM ゲスト 管理 VM ゲスト VM ゲスト 管理 VM ゲスト VM メモリ サーバ メモリ情報1 メモリ情報2 メモリ メモリ メモリ メモリ ゲスト・ハイパーバイザ ゲスト・ハイパーバイザ ホスト・ハイパーバイザ ハイパーコール

実験 ネストしたVMの性能を測定 マイグレーションの性能を測定 比較対象 UnixBench、仮想ネットワーク性能 実験環境 Intel Xeon E5-2665 (2.4Ghz) GbEth ホスト/ゲスト・ハイパーバイザ:Xen 4.2 ホスト管理VMカーネル:Linux-3.2.0 ゲスト管理VMカーネル:Linux-3.5.0 実験 ネストしたVMの性能を測定 UnixBench、仮想ネットワーク性能 マイグレーションの性能を測定 マイグレーション時間、CPU負荷、ダウンタイム 比較対象 VMBeam (Xen 4.2) コピー・マイグレーション、スワップ・マイグレーション、 仮想ネットワークを用いた標準マイグレーション Xen-Blanket [Williams et al.'12] ネストしたVMを用いない従来システム (Xen 4.2)

UnixBench ゲストVM上でUnixBenchを実行 従来システムのVM上での性能を1とした VMBeam (Xen 4.2)では平均で81%の性能低下 仮想EPTなどを用いると性能低下は20%程度という報告あり 1を削除 項目を説明 Dhrystone 2 using register variables テスト名:dhry2reg Dhrystoneは整数演算処理の伝統的なベンチマークツールです。一般的なCPUの処理性能を見る場合に使えます。結果は一連の処理が秒間何回処理できたかです。 Double-Precision Whetstone テスト名:whetstone-double Whetstoneは浮動小数点数演算処理の伝統的なベンチマークツールです。HPCのような数値演算の処理性能を見る場合に使えます。結果はWhetstone独自のMWIPS(Million Whetstones Instructions Per Second)で出る、つまり秒間の処理命令数です。 Execl Throughput テスト名:execl execl()というプロセスイメージを置き換えるシステムコールを繰り返すテストです。OSとCPUの処理性能を見る場合に使えます。結果はこのシステムコール処理を何回繰り返せたかです。 File Copy 1024 bufsize 2000 maxblocks テスト名:fstime ファイルのコピー(ライト→リード)を繰り返すテストで、2MByteのファイルを1024Byteごとに処理します。昨今のコンピューターはこのサイズであれば、メモリやCPU上にキャッシュされるのでディスクの処理性能を測るには不適切で、ほぼCPUの処理性能に依存します(多少メモリの性能も影響します)。結果はKByte/秒です。 File Copy 256 bufsize 500 maxblocks テスト名:fsbuffer fstimeと同じテストで、500KByteのファイルを256Byteごとに処理します。 File Copy 4096 bufsize 8000 maxblocks テスト名:fsdisk fstimeと同じテストで、7.9MByteのファイルを4096Byteごとに処理します。 Pipe Throughput テスト名:pipe 512Byteのデータをパイプ処理しこれを繰り返し実行することでスループットをテストします。昨今のコンピューターであれば512ByteはメモリまでいかずCPU内部で完結するので、OSとCPUの処理性能を見る場合に使えます。結果はこのパイプ処理を何回繰り返せたかです。 Pipe-based Context Switching テスト名:pipe 2つのプロセス間を更新される値をパイプで受け渡すことで、プロセスのコンテキストスイッチ(切り替わり)を実行する。OSとCPUの処理性能を見る場合に使えます。結果はこのパイプ処理を何回繰り返せたかです。 Process Creation テスト名:spawn プロセスのフォークを繰り返すテストです。OSとCPUの処理性能を見る場合に使えます。結果はこのフォーク処理を何回繰り返せたかです。 System Call Overhead テスト名:syscall getpid()というプロセスIDを返す単純なシステムコールを繰り返し実行します。システムコールのオーバーヘッドが少ないほどたくさん実行されるのでOSとCPUの処理性能を見る場合に使えます。結果はこのシステムコールの実行を秒間何回繰り返せたかです。 Shell Scripts (1 concurrent) テスト名:shell1 sort、od、grep、tee、wcコマンドやパイプやリダイレクトを使ったテキスト処理を繰り返します。主にCPUの処理性能に依存しますが、シェルにも依存する可能性があり、/bin/shを使います。 Shell Scripts (8 concurrent) テスト名:shell8 shell1と同じ処理を8個並行に実行します。

仮想ネットワーク性能 ゲスト管理VM間でiperfを用いてスループットを測定 従来システムでは管理VM間で測定 VMBeamは従来システムの23%の性能 Xen-Blanketは従来システムの10倍の性能 ブランケット ハイパーコール ゲスト 管理VM フロントエンド・ドライバ ホストVM ホスト 管理VM デバイス ドライバ スループット[Mbps] 従来システム 934 VMBeam 218 Xen-Blanket 1.0x104 ホスト・ハイパーバイザ

マイグレーション時間 様々なメモリサイズのVMをマイグレーション VMBeamではメモリサイズにあまり比例しない コピーとスワップで 差はほとんどない 標準マイグレーション より最大80%高速 従来システムより 最大40%高速 Xen-Blanketより -90%~40%高速 グラフを細かくみる

CPU負荷 マイグレーション中のCPU負荷を測定 標準マイグレーションより50%低負荷 従来システムと同程度の負荷 従来システムは移動元ホストで測定 Xen-Blanketより60%低負荷

ダウンタイム マイグレーション中のVMのダウンタイムを測定 VMBeamでは最大で9秒程度のダウンタイムが発生 メモリのコピーやスワップ以外の仮想ネットワークを使う処理に時間がかかっている ダウンタイム:実装上の問題

関連研究 Warm-VM Reboot [Kourai et al. ‘07] ReHype [Le et al. ‘11] ハイパーバイザの再起動時間はダウンタイムになる ReHype [Le et al. ‘11] ハイパーバイザのみを再起動 管理VMのソフトウェア若化時にはシステム全体を再起動 Xen-Blanket [Williams et al. ‘12] 高速な仮想ネットワークを実現 PVゲストのみのサポートであり、コピー・マイグレーションやスワップ・マイグレーションを実装するのが困難

まとめ 低負荷で高速なVMマイグレーションを実現する VMBeamを提案 今後の課題 ゲストVMのダウンタイムの削減 コピー・マイグレーションとスワップ・マイグレーションを提供 今後の課題 ゲストVMのダウンタイムの削減 ホスト・ハイパーバイザと直接通信することにより仮想ネットワークの利用を回避 コピー・マイグレーションにおけるライブマイグレーションへの対応