Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "VM専用仮想メモリとの連携による VMマイグレーションの高速化"— Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Similar presentations


Ads by Google