slide - KSL

大きな仮想マシンの
複数ホストへのマイグレーション
九州工業大学
情報工学部 機械情報工学科
光来研究室
11237025 木津巴都希
仮想マシンの普及
 仮想マシン(VM)が様々な用途に用いられるよう
になっている
 VMを用いたサーバ集約
 1台の計算機上で多くのVMを動作させる
 ハードウェアの余剰リソースを有効活用
 クラウドコンピューティング
 ユーザにネットワーク経由でVMを提供
 必要な時に必要なだけ利用できる
VMマイグレーション
 VMを停止させずに別のホストに移動させる技術
 ホストのメンテナンス時などに行われる
 マイグレーションの手順
 移送先のホストに空のVMを作成
 VMのメモリを移送先に転送
 受け取ったメモリを基にVMを復元
ホスト1
ホスト2
VM
VM
メモリ
VMマイグレーション
 VMを停止させずに別のホストに移動させる技術
 ホストのメンテナンス時などに行われる
 マイグレーションの手順
 移送先のホストに空のVMを作成
 VMのメモリを移送先に転送
 受け取ったメモリを基にVMを復元
ホスト1
ホスト2
VM
VM
メモリ
メモリ
VMマイグレーション
 VMを停止させずに別のホストに移動させる技術
 ホストのメンテナンス時などに行われる
 マイグレーションの手順
 移送先のホストに空のVMを作成
 VMのメモリを移送先に転送
 受け取ったメモリを基にVMを復元
ホスト1
ホスト2
VM
VM
メモリ
巨大なメモリを持つVM
 巨大なVMも使われるようになってきた
 例:Amazon EC2は244GBのメモリを持つVMを提供
 ビッグデータを解析する際などに用いられる
 マイグレーション時に移送先を見つけるのが困難
 大きな空きメモリ容量を持ったホストを確保し続けてお
くのはコスト面で難しい
ホスト1
ホスト2
VM
(244GB)
64GB
仮想メモリの利用
 仮想メモリを使うことでメモリ容量の小さなホストで
も大きなVMを動かせる
 メモリに入りきらないデータはディスクに格納
 データが必要になったらメモリとディスク間でスワップ
 スワップを繰り返すと性能が著しく低下
 ディスクはメモリと比べて非常に遅い
VM
メモリ
ディスク
スワップ
データ
ディスク
提案:S-memV
 巨大なメモリを持つVMを複数のホストにマイグ
レーション
 1つのメインホストと複数のサブホストで構成されるホス
ト群を移送先にできる
 メインホスト上のVMはサブホストの
メモリも使って動作
S-memVによるマイグレーション
 VMのメモリを分割して複数のホストに転送
 VMが頻繁にアクセスするメモリはメインホストへ
 メインホストに入りきらないメモリはサブホストへ
 マイグレーション後はメインホストでVMを実行
 メインホストに存在しないメモリにアクセスしたらサブホス
トのメモリとスワップ
サブホスト1
メモリ転送
マイグレーション
メモリ
メインホスト
ホスト
VM
メモリ転送
スワップ
サブホスト2
メモリ
様々なマイグレーション
 複数のホストを使って動作しているVMをマイグ
レーションする
 1つのホストへ
 メンテナンス終了時、空きホストが見つかった時
 別の複数のホストへ
 VMが使っているホストのメンテナンス時
ホスト
メインホスト
VM
(16GB)
VM
(8GB)
サブホスト
サブホスト
メモリ
(4GB)
メインホスト
メモリ
(4GB)
サブホスト
VM
(8GB)
サブホスト
メモリ
(4GB)
メモリ
(4GB)
S-memVの実装
 KVMに実装を行った
 Linuxに標準で搭載されている仮想化ソフトウェアの1つ
 マイグレーション機能を拡張
 サブホスト上で動作するmemserverを開発
マイグレーション機構の拡張
 KVMがVMの各メモリページをメインホストとサブ
ホストのいずれかに転送
 各サブホストのmemserverとネットワーク接続
 メモリページのアドレスと4KBのデータを送信
 どのホストに送ったかを記録
 現在の実装
 サブホストは1台を想定
 メモリアドレスによって転送先を決定
VM
ページ1
ページ2
ページ3
ページ4
メモリ
memserver
 サブホストでVMのメモリの一部を管理するサーバ
 基数木を用いて管理
 メモリアドレスをキーとしてメモリページを管理
 メモリ効率のよいデータ構造
000000
 登録要求
01
02
 受信したメモリアドレスと
メモリページの組を登録
 探索要求
 受信したメモリアドレスに対応
するメモリページを返す
2B
...
...
3F
1000
2000
...
メモリページ
実験
 大きなVMのマイグレーション性能を比較
 移送先のメモリが不足している場合(2GB)
 S-memV
 スワップを用いた従来システム
 移送先のメモリが十分な場合(4GB)
 従来システム
 実験環境
 VM:メモリ 2GB
 ギガビットイーサで接続
移送元
CPU:Intel Xeon E3-1270v2 3.5GHz
メモリ:16GB
メインホスト
CPU:Intel Xeon E5640 2.67GHz
メモリ:2GBまたは4GB
サブホスト
CPU:Intel Xeon E5640 2.67GHz
メモリ:2GB
マイグレーション時間
 VM内でアプリケーションを動かさない状態でマイ
グレーションに要する時間を計測
 S-memVはメモリが十分な場合とほぼ同等の時間
 性能低下は4%
 スワップを行った従来シス
テムはS-memVの1.5倍
40
35
時間(s)
30
25
従来システム
(十分なメモリ)
20
15
S-memV
10
5
0
従来システム
(スワップ)
メモリ負荷下の性能
 VM内でメモリに負荷をかけた状態でマイグレー
ションに要する時間を計測
 memcachedサーバを動作させ、外部からアクセス
450
 S-memVはメモリが十分な
350
時間(s)
場合より若干遅い
 性能低下は10%
 スワップを行った従来シス
テムはS-memVの7倍
400
300
200
従来システム
(十分なメモリ)
150
S-memV
250
100
50
0
従来システム
(スワップ)
関連研究
 ポストコピー・マイグレーション [Hine et al.'09]
 メモリを転送する前に移送先のVMに切り替える
 必要になったメモリを移送元からオンデマンドで転送
 MemX [Deshpande et al.'10]
 VMが複数のホストのメモリを利用できる
 マイグレーションには未対応
 ネットワーク・スワップ [Markatos et al.'96]
 他のホストのメモリとの間で高速にスワップを行う
 マイグレーション時のネットワーク転送量が多い
まとめ
 巨大なメモリを持つVMを複数のホストへマイグ
レーションできるS-memVを提案
 メインホストに入りきらないメモリはサブホストに転送
 KVMに実装し、従来システムよりマイグレーション性能
が高いことを示した
 今後の課題
 メインホストとサブホスト間でメモリをスワップできるよう
にする
 複数のホストを使って動作するVMをマイグレーションで
きるようにする