大きな仮想マシンの 複数ホストへのマイグレーション 九州工業大学 情報工学部 機械情報工学科 光来研究室 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をマイグレーションで きるようにする
© Copyright 2025 ExpyDoc