Presentation is loading. Please wait.

Presentation is loading. Please wait.

大きな仮想マシンの 複数ホストへのマイグレーション

Similar presentations


Presentation on theme: "大きな仮想マシンの 複数ホストへのマイグレーション"— Presentation transcript:

1 大きな仮想マシンの 複数ホストへのマイグレーション
九州工業大学 情報工学部 機械情報工学科 光来研究室 木津巴都希 大きな仮想マシンの複数ホストへのマイグレーション、と題しまして光来研B4の木津が発表いたします。

2 仮想マシンの普及 仮想マシン(VM)が様々な用途に用いられるよう になっている VMを用いたサーバ集約 クラウドコンピューティング
ハードウェアの余剰リソースを有効活用 クラウドコンピューティング ユーザにネットワーク経由でVMを提供 必要な時に必要なだけ利用できる 近年仮想マシンが様々な用途に用いられるようになっています。 例えば、VMを用いたサーバ集約により一台の計算機上で多くのVMを動作させたり、ハードウェアの余剰リソースを有効活用したり出来ます。 また、仮想マシンを用いたサービスとしてクラウドコンピューティングが挙げられます。 これはユーザにネットワーク経由でVMを提供し、ユーザが必要な時に必要なだけVMを利用する事が出来ます。このようなサービスはコスト削減のため広まりを見せています。 ----- 会議メモ (2015/02/18 18:31) ----- 集約のところふやす KVMについて説明

3 VMマイグレーション VMを停止させずに別のホストに移動させる技術 マイグレーションの手順 ホストのメンテナンス時などに行われる
ここで仮想マシンを利用するにあたって不可欠となるマイグレーションについて説明をします。 マイグレーションとは他のホスト上に仮想マシンを停止させることなく移動させる手法で、ホストのメンテナンス時等に用いられます。 マイグレーションが行われる手順としては、まず移送先のホストにCPUやデバイスの情報等のVMの核となる部分を送信し、空のVMを作成します。 ホスト1 ホスト2 VM VM メモリ

4 VMマイグレーション VMを停止させずに別のホストに移動させる技術 マイグレーションの手順 ホストのメンテナンス時などに行われる
ホスト1 ホスト2 VM VM メモリ メモリ

5 VMマイグレーション VMを停止させずに別のホストに移動させる技術 マイグレーションの手順 ホストのメンテナンス時などに行われる
メモリの転送が終了したらマイグレーションされたメモリをもとにしてVMを復元し、移送元のVMは停止され、移送先のVMが起動します。 以上の流れでマイグレーションは行われます。 ホスト1 ホスト2 VM VM メモリ

6 巨大なメモリを持つVM 巨大なVMも使われるようになってきた マイグレーション時に移送先を見つけるのが困難
例:Amazon EC2は244GBのメモリを持つVMを提供 ビッグデータを解析する際などに用いられる マイグレーション時に移送先を見つけるのが困難 大きな空きメモリ容量を持ったホストを確保し続けてお くのはコスト面で難しい 近年、ハードウェアの飛躍的な性能の向上が進んでいます。 例えばAmazonEC2という仮想化サーバでは32個のCPUと244GiBのメモリを持つVMが提供出来るようになりました。。 このような巨大なメモリを持つVMは例えば、ビッグデータの解析等のように巨大なデータを扱う場合に利用されます。 このような巨大なメモリを持つVMは、一方でマイグレーションが困難になるという問題があります。 マイグレーションを行う際、移行先の物理マシンには十分な空きメモリ容量が必要となります。 しかしコストの面からマイグレーション先の確保のために巨大なメモリ容量を備えたVMを多数確保し続ける事は難しいです。 空きメモリの十分なホストが準備出来なかった場合、マイグレーションは行えず、メンテナンスを行うにはVMを停止させなければならなくなります。 ホスト1 ホスト2 VM (244GB) 64GB

7 仮想メモリの利用 仮想メモリを使うことでメモリ容量の小さなホストで も大きなVMを動かせる スワップを繰り返すと性能が著しく低下
メモリに入りきらないデータはディスクに格納 データが必要になったらメモリとディスク間でスワップ スワップを繰り返すと性能が著しく低下 ディスクはメモリと比べて非常に遅い メモリが不足していた際には仮想メモリを用いることでメモリ不足を解決することが出来ます。 これは、ハードディスク上にスワップ領域とよばれる領域を作成し、メモリに入りきらないデータをこのディスク上のスワップ領域に格納します。 ディスク上のデータが必要になった際は、メモリ内で使われていないデータとディスク上のデータを交換するスワップを行います。 しかしながら、ハードディスクへのアクセスはメモリと比べて非常に遅いため、スワップを繰り返すと性能が著しく低下してしまうという問題があります。 VM ディスク メモリ スワップ データ ディスク

8 提案:S-memV 巨大なメモリを持つVMを複数のホストにマイグ レーション
1つのメインホストと複数のサブホストで構成されるホス ト群を移送先にできる メインホスト上のVMはサブホストの メモリも使って動作 そこで、本研究では巨大なメモリを持つVMを複数のホストにマイグレーションすることを可能とするS-memVを提案します。 S-memVはこちらの図のようにマイグレーション先をひとつのホストに限らず、ひとつのメインホストと複数のサブホストで構成されたホスト群をマイグレーション先にすることが出来ます。 マイグレーション後、メインホスト上のVMはサブホストのメモリを用いて動作します。

9 S-memVによるマイグレーション VMのメモリを分割して複数のホストに転送 マイグレーション後はメインホストでVMを実行
メインホストに入りきらないメモリはサブホストへ マイグレーション後はメインホストでVMを実行 メインホストに存在しないメモリにアクセスしたらサブホス トのメモリとスワップ S-memVではひとつのホストで稼働しているVMをメインホストとサブホストからなるホスト群へとVMのメモリを分割してマイグレーションします。 このとき、CPU状態やデバイスの情報等のVMの核となる部分と、VMが頻繁にアクセスするメモリはメインホストへと転送し、メインホストに入りきらなかったメモリをサブホストへと転送します。 マイグレーション後はメインホストでVMを実行し、VMがメインホストに存在しないメモリにアクセスをした場合はサブホストのメモリとスワップさせます。 サブホスト1 メモリ転送 メモリ ホスト メインホスト マイグレーション VM スワップ サブホスト2 メモリ メモリ転送

10 様々なマイグレーション 複数のホストを使って動作しているVMをマイグ レーションする 1つのホストへ 別の複数のホストへ
メンテナンス終了時、空きホストが見つかった時 別の複数のホストへ VMが使っているホストのメンテナンス時 また、S-memVでは複数のホストを使って動作しているVMをマイグレーションする事も提案します。 例えば、S-memVを用いて複数のホストにマイグレーションした後にメンテナンスが終了し、1つのホストにVMを戻したい場合や、複数のホストで稼働しているVMを更に別の複数のVMへマイグレーションさせたい場合に利用出来ます。

11 S-memVの実装 KVMに実装を行った Linuxに標準で搭載されている仮想化ソフトウェアの1つ マイグレーション機能を拡張
サブホスト上で動作するmemserverを開発 本研究ではS-memVをKVMにて実装を行いました。 KVMとはLinuxが備える仮想化機能で、1台のパソコンで複数のOSを動かすために必要な制御を行います。また、KVMではマイグレーションを行う機能も備えています。

12 マイグレーション機構の拡張 KVMがVMの各メモリページをメインホストとサブ ホストのいずれかに転送 現在の実装
各サブホストのmemserverとネットワーク接続 メモリページのアドレスと4KBのデータを送信 どのホストに送ったかを記録 現在の実装 サブホストは1台を想定 メモリアドレスによって転送先を決定 VM KVMが複数のホストを利用してマイグレーションを行えるようにするため、KVMのマイグレーション機能の拡張を行いました。 マイグレーション時、KVMがVMの各メモリページをメインホストとサブホストのいずれかに転送出来るようにしました。 各サブホストのmemserverとネットワークで接続し、メモリページのアドレスとページデータを送信します。 このとき、どのホストにどのメモリページを送ったかを記録します。 現在の実装ではサブホストを1台と想定しており、また送信するメモリのアドレスによって転送先を決定しています。 ページ1 ページ2 ページ3 ページ4 メモリ

13 memserver サブホストでVMのメモリの一部を管理するサーバ 基数木を用いて管理 登録要求 探索要求
メモリアドレスをキーとしてメモリページを管理 メモリ効率のよいデータ構造 登録要求 受信したメモリアドレスと メモリページの組を登録 探索要求 受信したメモリアドレスに対応 するメモリページを返す 000000 01 02 2B 次にmemserverについて説明します。 memserverとはVMのメモリの一部を管理するサーバであり、サブホスト上で動作します。 基数木を用いて移送元ホストから受け取ったVMのアドレスをキーとし、ページデータを保存・管理します。この基数木による管理はメモリの利用効率のよいデータ構造であり、Linuxカーネルでも用いられているものです。 マイグレーション時は受信したメモリアドレスとメモリページの組を登録する事で管理を行います。 また、マイグレーション後はVMのアドレスからなる探索要求を受信した時に基数木を探索し、VMのメモリページが見つかった場合にはそのデータを要求元のVMへと送信します。 ... ... 3F 1000 2000 ... メモリページ

14 実験 大きなVMのマイグレーション性能を比較 実験環境 移送先のメモリが不足している場合(2GB) 移送先のメモリが十分な場合(4GB)
S-memV スワップを用いた従来システム 移送先のメモリが十分な場合(4GB) 従来システム 実験環境 VM:メモリ 2GB ギガビットイーサで接続 移送元 CPU:Intel Xeon E3-1270v2 3.5GHz メモリ:16GB メインホスト CPU:Intel Xeon E GHz メモリ:2GBまたは4GB サブホスト メモリ:2GB 既存のシステムとS-memVを用いたマイグレーションを行うことで、KVM及びS-memVによるマイグレーションの性能評価を行いました。 本実験ではマイグレーション前後での移送先ホストおよびVMのメモリとディスクスワップ領域の変化とマイグレーションに要した時間を測定しました。 実験環境はご覧の通りです。

15 マイグレーション時間 VM内でアプリケーションを動かさない状態でマイ グレーションに要する時間を計測
S-memVはメモリが十分な場合とほぼ同等の時間 性能低下は4% スワップを行った従来シス テムはS-memVの1.5倍 本実験ではマイグレーションに要した時間について計測を行いました。 VMはいずれも2GB分のメモリを使用している状態です。 S-memVはメモリが十分な場合の従来システムと比べて性能低下は4%程度となっており、ほぼ同等の時間となっています。 また、グラフ内で一番右が移送先ホストのメモリが不足している場合になっていますが、こちらはスワップ領域を用いてマイグレーションをしているため時間がかかってしまっています。

16 メモリ負荷下の性能 VM内でメモリに負荷をかけた状態でマイグレー ションに要する時間を計測
memcachedサーバを動作させ、外部からアクセス S-memVはメモリが十分な 場合より若干遅い 性能低下は10% スワップを行った従来シス テムはS-memVの7倍 次にmemcachedというメモリを用いた このmemcachedのベンチマークによりメモリアクセスを頻発させた状態でマイグレーションを行い、かかった時間を測定しました。 S-memVは空きメモリが十分な従来システムよりも13%程度の性能低下が見られました。 しかし、空きメモリ不足によってスワップ領域を用いている従来システムではメモリが十分であった場合よりも8倍以上もの時間がかかっており、S-memVによる分散マイグレーションの有用性が分かりました。

17 関連研究 ポストコピー・マイグレーション [Hine et al.'09] MemX [Deshpande et al.'10]
メモリを転送する前に移送先のVMに切り替える 必要になったメモリを移送元からオンデマンドで転送 MemX [Deshpande et al.'10] VMが複数のホストのメモリを利用できる マイグレーションには未対応 ネットワーク・スワップ [Markatos et al.'96] 他のホストのメモリとの間で高速にスワップを行う マイグレーション時のネットワーク転送量が多い 関連研究です。 ポストコピーマイグレーションです。 通常のマイグレーションはメモリを全て転送しきってから移動先の仮想マシンに切り替えるのですが、ポストコピーマイグレーションではメモリを転送する前に移動先の仮想マシンに切り替え、必要になったメモリをオンデマンドで転送するというものです。 次がMemXです。これはVMが複数のホストのメモリを利用出来るというものですが、こちらはマイグレーションには未対応となっています。 ネットワーク・スワップでは他のホストのメモリとで高速にスワップを行うというものですが、このネットワークスワップを用いてマイグレーションを行うとマイグレーション時のネットワーク転送量が増大してしまうという問題があります。

18 まとめ 巨大なメモリを持つVMを複数のホストへマイグ レーションできるS-memVを提案 今後の課題
メインホストに入りきらないメモリはサブホストに転送 KVMに実装し、従来システムよりマイグレーション性能 が高いことを示した 今後の課題 メインホストとサブホスト間でメモリをスワップできるよう にする 複数のホストを使って動作するVMをマイグレーションで きるようにする 最後にまとめです。 本研究では巨大なメモリを持つVMを複数のホストへマイグレーション出来るS-memVを提案しました。これはメインホストに入りきらないメモリをサブホストへ転送するというものです。 これをKVMに実装し、従来システムよりマイグレーション性能が高いことを示すことが出来ました。 今後の課題としてはメインホストとサブホスト間でメモリをスワップ出来るようにすること、複数のホストを使って動作しているVMをマイグレーションで切るようにすることです。 以上で発表を終わります。ご清聴ありがとうございました。


Download ppt "大きな仮想マシンの 複数ホストへのマイグレーション"

Similar presentations


Ads by Google