VM専用仮想メモリとの連携による VMマイグレーションの高速化

Slides:



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

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
ファイルキャッシュを考慮したディスク監視のオフロード
Ibaraki Univ. Dept of Electrical & Electronic Eng.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
クラウドにおけるライブラリOSを用いた インスタンス構成の動的最適化
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
メモリ暗号化による Android端末の盗難対策
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
型付きアセンブリ言語を用いた安全なカーネル拡張
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
ネストしたVMを用いた 仮想化システムの高速なソフトウェア若化
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
クラウドにおけるVM内コンテナを用いた 低コストで迅速な自動障害復旧
Intel SGXを利用する 巨大なアプリケーションの マイグレーション機構
Intel SGXを利用するコンテナの マイグレーション機構
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
VM内コンテナを用いた サービス単位の オートスケール機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
仮想化システムのソフトウェア若化のための軽量なVMマイグレーション
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
仮想化システムの 軽量なソフトウェア若化のための ゼロコピー・マイグレーション
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
Ibaraki Univ. Dept of Electrical & Electronic Eng.
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

VM専用仮想メモリとの連携による VMマイグレーションの高速化 九州工業大学 村岡裕二 柏木崇広 光来健一

大容量メモリを持つVM クラウドでは大容量メモリを持つVMも提供 VMはホスト間でマイグレーションされる Amazon EC2では4TBのVM(16TBのVMも計画) ビッグデータの解析などに利用 VMはホスト間でマイグレーションされる ホストのメンテナンス、負荷分散などに利用 移送元ホスト 移送先ホスト VM本体 メモリ マイグレーション 1 2 3 3 4 5 更新メモリ

移送先ホストの要件 VMのマイグレーション時には移送先ホストに 十分な空きメモリが必要 移送元ホスト 移送先ホスト VM本体 メモリ マイグレーション 1 1 2 2 3 3 4 4 5 5 空き メモリ 更新メモリ

仮想メモリを用いた マイグレーション 仮想メモリを用いて必要なメモリ容量を確保 必要に応じてページングを行う 物理メモリに入り切らないデータはディスクに格納 物理メモリ容量以上のVMをマイグレーション可能 必要に応じてページングを行う ページイン:ディスクのデータを物理メモリへ ページアウト:物理メモリのデータをディスクへ 移送元ホスト VM本体 移送先ホスト 物理 メモリ ページイン マイグレーション ディスク メモリ 1 2 3 4 5 ページアウト

マイグレーションの性能低下 仮想メモリはマイグレーションと相性が悪い VMのメモリ転送中に大量のページアウトが発生 物理メモリに格納されたデータが後で追い出される VMのメモリ再送時にページインが発生 更新は物理メモリ上でしか行えない VM再開時にページインが発生(KVMの場合) 仮想化ソフトウェア(QEMU-KVM)もページアウト 移送元ホスト VM本体 移送先ホスト マイグレーション 物理メモリ メモリ ディスク 3 4 4 5 1 1 2 2 3 4 4 5 更新メモリ 仮想化ソフトウェアのメモリ 更新されるメモリ

分割マイグレーション [Suetake et al.’16] VMを分割して複数ホストにマイグレーション VM本体と使われそうなメモリをメインホストに メインホストに入りきらないメモリをサブホストに マイグレーション中にページングを発生させない マイグレーション後はリモートページング 必要なメモリをサブホストからページイン 使われていないメモリをサブホストにページアウト 移送元ホスト VM メモリ 移送先メインホスト 移送先サブホスト VM マイグレーション ページング メモリ メモリ 主要なメモリ それ以外

分割マイグレーションの問題点 リモートページングの影響が大きい ネットワーク転送のオーバヘッドが大きい ネットワーク帯域を消費してサービス性能に影響 性能向上には高価な高速ネットワークが必要 ハードウェア障害の影響を受けやすい ネットワーク障害、サブホストの障害 移送先サブホスト1 移送先メインホスト メモリ VM メモリ 移送先サブホスト2 メモリ ページング

提案:VMemDirect VM専用の仮想メモリと連携させることにより VMマイグレーションを高速化 VMごとに独立した仮想メモリを利用 移送元ホストのメモリアクセス履歴を移送先ホスト でも活用 移送元ホスト VM本体 メモリ 移送先ホスト マイグレーション 物理メモリ ディスク

VM専用の仮想メモリ VMごとにNVMe上にスワップ領域を作成 仮想化ソフトウェアのページングを防止 仮想化ソフトウェアがページングを制御 KVMの場合はQEMU-KVM 仮想化ソフトウェアのページングを防止 VMのメモリだけがページングの対象 VM本体 ディスク ページング 1 2 3 4 5 6 仮想化ソフトウェアのメモリ VMのメモリ スワップ領域

VMのメモリの直接転送 VMのメモリを移送先ホストの物理メモリまた はスワップ領域に直接格納 ページングのオーバヘッドを削減 移送元ホストでメモリの格納先を決定 再送時には格納済みのデータを直接上書き ページングのオーバヘッドを削減 物理メモリとNVMe間でデータの移動を行わない 移送元ホスト VM本体 移送先ホスト マイグレーション 物理メモリ NVMe メモリ 1 2 3 4 5

履歴に基づく格納先の決定 メモリアクセス履歴に基づいて格納先を決定 メモリより低速なNVMeへのアクセスを削減 使われそうなメモリデータから順に物理メモリへ 残りのデータはスワップ領域へ メモリより低速なNVMeへのアクセスを削減 再送時に上書きされるデータは物理メモリにある可 能性が高い 移送元ホスト 移送先ホスト アクセス 履歴 VM本体 マイグレーション 物理メモリ NVMe 1 2 3 4 4 5 アクセスされそうな メモリデータ 残りのメモリデータ 11

実装 VMemDirectをQEMU-KVM 2.4.1とLinuxカーネル 4.11に実装 マイグレーション時にメモリの格納先とアクセス履 歴を付加的に転送 VM専用スワップ領域を用いてページング 移送元ホスト VM QEMU-KVM Linuxカーネル 移送先ホスト NVMe QEMU-KVM Linuxカーネル

VM専用スワップ領域 VMのメモリと同じサイズのスパースファイル として作成 オフセットとVMの物理アドレスを対応づけ 実データを持たないブロック(ホール)からなる データを書き込んだブロックだけ実データを持つ データを削除したブロックは再びホールにする VMのメモリ スパースファイル 物理メモリ メモリデータ ホール

スワップ領域のアクセス ダイレクトI/Oを用いて読み書き チャンク単位で読み書き ページキャッシュなしでNVMeに直接アクセス 従来の仮想メモリによるVMのメモリやQEMU-KVM のページアウトを防止 チャンク単位で読み書き 4KBのページ単位ではNVMeの性能を活かせない 連続する256ページ単位でアクセス チャンク NVMe

チャンク単位でのメモリ転送 マイグレーション時にチャンク単位でVMのメ モリを分割 メモリアクセス履歴に基づいてメモリを転送 スワップ領域のアクセスをチャンク単位で行うため メモリアクセス履歴に基づいてメモリを転送 使われそうなチャンクは物理メモリに転送 それ以外のチャンクはスワップ領域に転送 チャンク 物理メモリ VMのメモリ NVMe

スワップ領域への書き込み QEMU-KVMはVMのメモリをページ単位で転送 再送が発生し始めるまではチャンク単位でス ワップ領域に書き込み 送信をチャンク単位にするには大幅な変更が必要 再送が発生し始めるまではチャンク単位でス ワップ領域に書き込み 受信したメモリがアドレス順かどうかで判断 チャンクサイズ分のデータ受信後に一括書き込み 移送元ホスト VM本体 移送先ホスト 物理メモリ NVMe メモリ 1 2 3 4

QEMU-KVMによるページング VMのメモリをuserfaultfd機構に登録 VM内の使われそうにないチャンクを選択 存在しないページへのアクセスを検出 スワップ領域からチャンク単位で読み込み、削除 VMに物理メモリを割り当て、データを書き込み VM内の使われそうにないチャンクを選択 スワップ領域にそのチャンクを書き込み VMのメモリから物理メモリを解放 VM本体 ページイン ディスク 1 2 4 3 5 VMのメモリ スワップファイル ページアウト

メモリアクセス履歴の管理 VMの拡張ページテーブルから各ページのアク セスビットの値を取得 エージングアルゴリズム ページがアクセスされるとアクセスビットは1に 取得後、アクセスビットを0にクリア エージングアルゴリズム 各ページに8ビットを割り 当てて履歴を管理 最上位ビットにアクセスビッ トの値を記録 定期的に右に1ビットシフト 1

実験 VMのマイグレーション性能とマイグレーショ ン後の性能を測定 従来の仮想メモリを用いた場合と比較 VMのサイズは12GBと2GBを使用 移送元・移送先ホスト CPU: Intel Xeon E3-1226 v3 メモリ:16GB ディスク: Samsung NVMe SSD 960 EVO ネットワーク:10ギガビットイーサネット OS: Linux 4.11 仮想化ソフトウェア:QEMU-KVM 2.4.1

マイグレーション時間 VMのマイグレーションにかかる時間を測定 十分なメモリがある場合と比べて従来の仮想メモリ は2.1倍増加 VMemDirectは同程度 チャンク単位で直接転送した効果 ページ単位では従来の仮想メモリより増加 VMのメモリ 12GB

ダウンタイム マイグレーションの最終段階でVMが停止する 時間を測定 十分なメモリがある場合と比べて従来の仮想メモリ は6.8倍の増加 VMemDirectは同程度 仮想化ソフトウェアのページアウトを防いだ効果 VMのメモリ 12GB

スワップ領域の性能の影響 スワップ領域として様々なディスクを用いた場 合のマイグレーション性能を測定 SATA 3 HDD, Crucial MX300 SSDと比較 マイグレーション時間は20〜79%短縮 ダウンタイムは86〜95%短縮 VMのメモリ 2GB 52 16 95% 79% 87% 86% 20% 56%

マイグレーション後のVMの 性能 マイグレーション後のmemcachedの性能を測定 マイグレーション前後で同じベンチマークを実行 従来の仮想メモリと比べて32倍の性能向上 従来の仮想メモリを用いた場合には大量のページイ ンが発生 メモリアクセス履歴の有効性を確認 VMのメモリ 12GB

チャンクサイズの影響 ページングの単位であるチャンクのサイズを変 えてソート時間を測定 VMのメモリ 2GB ページングの単位であるチャンクのサイズを変 えてソート時間を測定 チャンクサイズを大きくすることで実行時間が92% 短縮 チャンクサイズの増加とともにページング回数が減 少

関連研究 Agileライブマイグレーション [Deshpande et al.'16] FlashVM [Saxena et al.'10] ページングのオーバヘッドが大きい FlashVM [Saxena et al.'10] SSDの特性を考慮した仮想メモリ マイグレーション中のページングは減らせない Infiniswap [Gu et al.’17] RDMAを利用したリモートページングの高速化 高価なInfinibandが必要

まとめ 大容量メモリを持つVMのマイグレーションを 高速化するVMemDirectを提案 今後の課題 VM専用の仮想メモリと連携 マイグレーション性能の向上を確認 今後の課題 分割マイグレーションとの比較 様々なアプリケーションでの性能評価 VM専用の仮想メモリのオーバヘッド削減