Upgrade to Pro — share decks privately, control downloads, hide ads and more …

帯域外リモート管理の継続を可能にするVMマイグレーション

Sho Kawahara
February 26, 2015
11

 帯域外リモート管理の継続を可能にするVMマイグレーション

IaaS 型クラウドにおいて,ユーザは提供された仮想マシン(ユーザ VM)をリモート管理する.ユーザ VM を管理する権限を持つ VM(管理 VM)を経由する帯域外リモート管理を行うことで,ユーザ VMの障害発生時でも管理が可能となる.しかし,ユーザ VM を別のホストにマイグレーションすると,管理VM がユーザ VM にアクセスできなくなり,リモート接続が切断されてしまう.さらに,処理中の入力情報も失われる可能性がある.

この問題を解決するために,本稿では帯域外リモート管理の継続が可能なVM マイグレーションを実現するシステム D-MORE を提案する.D-MORE は,マイグレーションが可能でユーザ VM にアクセスする特権を持つリモート管理専用の VM であるドメイン R を提供し,同期を取りながらドメイン R とユーザ VM を同時にマイグレーションする.D-MORE を Xen に実装し,ユーザVM をマイグレーションしても帯域外リモート管理が継続できることを確認した.また,マイグレーション時に入力情報が失われず,D-MORE のオーバヘッドが許容範囲内であることを確認した.

Sho Kawahara

February 26, 2015
Tweet

Transcript

  1. © Sho KAWAHARA, KSL, Kyushu Institute of Technology  仮想マシン(VM)をネットワーク経由でユーザに提供

    ◦ ユーザがVM内のシステムを自由に管理できる  ユーザVM内のリモート管理システム(RMS)サーバ に接続して管理 ◦ VM内のネットワーク障害時に管理が不可能になる  ネットワークの設定ミス SSH IaaS型クラウドにおけるリモート管理 VM VM VM VM 管理 VNC RMS クライアント RMS サーバ RMS
  2. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 帯域外リモート管理 

    管理VM経由でユーザVMをリモート管理 ◦ 管理VMでRMSサーバを動作させる ◦ ユーザVMの仮想デバイスを直接参照する ◦ ユーザVMのネットワーク障害の影響を受けない  ネットワークの設定ミス時でも操作が可能 RMS クライアント 管理VM RMSサーバ 仮想デバイス ユーザVM ネットワーク障害 帯域内リモート管理 帯域外 リモート管理
  3. © Sho KAWAHARA, KSL, Kyushu Institute of Technology マイグレーション時の管理中断 

    VMのマイグレーション時にリモート接続が切断される ◦ ユーザVMの移送によって移送元のRMSサーバが終了  削除された仮想デバイスにアクセスできなくなるため  移送先のRMSサーバにつなぎ直さなければならない ◦ 切断された原因を調べ,移送先を調べる必要がある 管理 VM RMS クライアント RMS サーバ ユーザ VM マイグレーション 管理 VM ? 仮想 デバイス RMS サーバ 仮想 デバイス
  4. © Sho KAWAHARA, KSL, Kyushu Institute of Technology マイグレーション時の入出力情報の損失 

    リモート管理の入出力情報が失われる可能性がある ◦ ネットワーク上の送信中のデータ  リモート接続が切断されるため ◦ RMSサーバや仮想デバイスで処理中のデータ  RMSサーバが終了するため  仮想デバイスが削除されるため 管理 VM RMS クライアント ユーザ VM マイグレーション 管理 VM RMS サーバ RMS サーバ 仮想 デバイス 仮想 デバイス C B A D E F G H I J K L M N O 処理中 処理中 送信中
  5. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 提案: D-MORE

     帯域外リモート管理を継続可能なマイグレーションを 実現するシステム ◦ マイグレーション可能なリモート管理用VM(ドメインR)を提供  RMSサーバと仮想デバイスを動かす ◦ 同期を取りながらドメインRとユーザVMを同時マイグレーション ◦ RMSクライアント,ドメインR,ユーザVM間の接続を維持 VNC Server マイグレーション ドメインR RMS サーバ 仮想 デバイス ユーザ VM 管理 VM RMS クライアント D-MOREにより接続を保つ ネットワークレベルで 維持される
  6. © Sho KAWAHARA, KSL, Kyushu Institute of Technology RMS クライアント

    データロスの防止  D-MOREではマイグレーション時に入出力情報が失 われない ◦ RMSサーバや仮想デバイスで処理中の入出力データ  ドメインRとともにマイグレーションされる ◦ RMSクライアントが送受信中のネットワーク上のデータ  失われてしまった場合にはTCPにより再送 ドメインR RMS サーバ 仮想 デバイス ユーザ VM C B A D E F G H I 処理中 処理中 送信中
  7. © Sho KAWAHARA, KSL, Kyushu Institute of Technology ドメインR 

    仮想デバイスを動作させるのに必要な権限を持つ ◦ ユーザVMとの間に共有メモリを確立できる  入出力情報を受け渡すために使用 ◦ 仮想割り込みチャネルを確立できる  入出力情報を送信したことを通知  指定したユーザVMへの アクセスのみ許可 ◦ 管理VMで関連づけ 仮想デバイス RMS サーバ ドメインR ユーザ VM 仮想割り込み チャネル 共有 メモリ 割り込み C B A
  8. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 単一VMのマイグレーション 

    VMを動作させたままメモリを移送先に転送 ◦ 変更されたメモリページを再送  変更されたページが十分に少なくなるまで繰り返す  VMを停止させ,残りの状態を転送 ◦ 変更されたページとCPUの状態 ◦ この時間はダウンタイムになる  移送先でVMを再開 停止 移送元 移送先 作成 再開 終了 移送元 VM 移送先 VM メモリ転送
  9. © Sho KAWAHARA, KSL, Kyushu Institute of Technology  ドメインRとユーザVMの同期を取りながら同時にマイグ

    レーション ◦ ダウンタイムを削減するため2つのVMを同時に停止 ◦ 移送先でユーザVMのメモリが再構築された後で共有メモリを 復元 ◦ VMが停止している間に仮想割り込みチャネルの保存および復 元を行う 同時マイグレーション 停止 ドメインR ユーザVM 移送元 移送先 作成 終了 ドメインR ユーザVM 共有メモリ の復元 再開 仮想割り込みチャネル の保存 仮想割り込み チャネル の復元
  10. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 共有メモリの復元 

    移送元:ユーザVMのメモリ共有状態を保存 ◦ ドメインRのページテーブルを検査 ◦ ユーザVMのメモリページを共有中なら監視ビットをセット  移送先:ユーザVMのメモリを再共有 ◦ ドメインRが受け取ったページテーブルを検査 ◦ 監視ビットがセットされていれば対応するメモリページを共有 ドメインR ユーザ VM 共有 再共有 ページテーブル 移送元 移送先
  11. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 仮想割り込みチャネルの復元 

    移送元:仮想割り込みチャネルの状態を保存 ◦ 仮想割り込みチャネルの一覧を取得 ◦ 使われているポートの組を送信  移送先:仮想割り込みチャネルを再確立 ◦ 移送元と同じポートの組を用いることを保証 ◦ OSによるレジューム時の初期化処理を無効化 ドメインR ユーザVM 仮想割り込みチャネル 仮想割り込みチャネル port:2 port:10 port:2 port:10 移送元 移送先
  12. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 共有メモリ上のデータ転送 

    ドメインRによって共有メモリに書き込まれた入力情報は 再送されない可能性がある ◦ 通常、転送中に書き込みが行われたページは再送される  VMをlog dirtyモードにして書き込みを検出  対象VMが所有するページへの書き込みのみ検出可能  ドメインRによる共有メモリへの書き込みは検出されない  共有メモリはユーザVMのメモリ ドメインR ユーザVM 共有 ? 検出
  13. © Sho KAWAHARA, KSL, Kyushu Institute of Technology log dirtyモードの拡張

     D-MOREでは共有メモリを常にダーティとみなす ◦ ドメインRに共有されているユーザVMのページを記録 ◦ マイグレーション中はそのページもダーティと判断 ◦ ドメインRによる書き込みも必ず転送される  共有メモリの転送は最終段階での1回のみ ◦ 頻繁に更新されているページは転送されないため ドメインR ユーザVM 共有 ダーティ
  14. © Sho KAWAHARA, KSL, Kyushu Institute of Technology  VNCによるリモート管理

    ◦ VNCサーバ ◦ 仮想キーボード・マウス・フレームバッファ(準仮想化)  SSHによるリモート管理 ◦ SSHサーバ ◦ 仮想コンソール(準仮想化) 対応しているRMS VMM Dom0 DomR DomU XenStore map I/O ring QEMU read/write event channel QEMU backend driver RMS server frontend driver
  15. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験 

    リモート管理の性能およびマイグレーション性能を調 べた ◦ データロス防止の確認 ◦ ドメインRのオーバヘッド ◦ 同時マイグレーション時間 ◦ VMのダウンタイム ◦ ユーザが感じるダウンタイム ◦ 同時マイグレーション中の 性能低下 サーバ側 実験環境 CPU Intel Xeon E3-1270 3.40GHz メモリ ドメインR 128MB ユーザVM 2GB VMM Xen 4.3.2 OS Linux 3.7.10 クライアント側 実験環境 CPU Intel Xeon E5-1620 3.60GHz メモリ 8GB クライアント TigerVNC 2.0.95 OpenSSH 6.0
  16. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験1: データロス防止の確認

     マイグレーション時にデータロスが発生するか調べた ◦ VNCクライアントで 50 ms ごとに 1キーを送信 ◦ 失われるキーの数を計測  従来システム ◦ 平均 1.4 キーが失われた  D-MORE ◦ キーは全く失われなかった ◦ TCP による再送は 平均 8.5 回行われていた 1.4 0 0 0.5 1 1.5 number of lost keys original D-MORE
  17. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験2: ドメインRのオーバヘッド

     キーボード入力の応答時間を測定 ◦ VNCまたはSSHでリモート接続 ◦ キー入力を送信して出力が送られてくるまでの時間を測定  実験結果 ◦ いずれの場合もオーバヘッド はほとんど発生しなかった  VNC 221μsec 増加  SSH 5μsec 増加 0 5 10 15 20 25 30 35 40 keyboard response time (msec) original D-MORE VNC SSH 0.0 0.2 0.4 0.6 0.8 1.0 1.2 response time (msec) original D-MORE
  18. © Sho KAWAHARA, KSL, Kyushu Institute of Technology  同期の影響を調べるために同時マイグレーションに要す

    る時間を測定 ◦ VNCまたはSSHでリモート接続 ◦ D-MORE:入力あり,なしの場合 ◦ 比較対象:同期をせずに2つのVMをマイグレーション  実験結果 ◦ 同期の影響は小さい  VNC 最大 1.6 sec  SSH 最大 0.4 sec ◦ 入力を行っていると増加  書き換えられるメモリ量が 多くなるため 0 5 10 15 20 25 30 0 512 1024 1536 2048 co-migration time (sec) memory size of user VM (MB) D-MORE 入力あり D-MORE 入力なし 同期なし 実験3: 同時マイグレーション時間 VNC
  19. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験4: VMのダウンタイム

     同時マイグレーション時のVMのダウンタイムを測定 ◦ VNCでリモート接続 ◦ D-MORE: 入力あり,なしの場合 ◦ 比較対象: 同期をせずに2つのVMをマイグレーション  実験結果 ◦ ドメインRへの 影響は大きい  同期待ちの影響 ◦ ユーザVMは短くなった  先に処理されるため ◦ 入力の影響は小さい 0 50 100 150 200 250 0 512 1024 1536 2048 downtime (msec) memory size of user VM (MB) ドメインR 入力あり ドメインU 入力あり ドメインR 入力なし ドメインU 入力なし 同期なし
  20. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験5: ユーザが感じるダウンタイム

     同時マイグレーション時にユーザが感じるダウンタイム を測定 ◦ VNCまたはSSHでリモート接続 ◦ 50 ms ごとに 1キーを送信 ◦ マイグレーションの最終段階での最長の応答時間  実験結果 ◦ VNC 最大 827 ms ◦ SSH 最大 667 ms  小さくはないが 許容範囲内 0 200 400 600 800 1000 0 512 1024 1536 2048 downtime (msec) memory size of user VM (MB) VNC SSH
  21. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 実験6: 同時マイグレーション中の性能低下

     同時マイグレーション中の応答時間の変化を測定 ◦ VNCでリモート接続 ◦ 50 ms ごとに 1キーを送信  実験結果 ◦ 平均 5.4 ms の増加  最終段階での応答時間は 744 ms フレームレートは平均 0.4 fps の低下 最終段階でのフレームレートは 6.7 fps 0 10 20 30 40 50 60 0 20 40 60 80 100 response time (msec) elapsed time (sec)
  22. © Sho KAWAHARA, KSL, Kyushu Institute of Technology 関連研究 

    VNC プロキシ ◦ プロキシが透過的にマイグレーション先に再接続 ◦ マイグレーション時に管理VM上の入出力情報が失われる  SPICE [Red Hat, Inc. ‘09] ◦ クライアントが自動的にマイグレーション先に再接続 ◦ VMの管理が特定のRMSに依存する  VMCoupler [Kourai et al. ‘13] ◦ ユーザVMの監視専用VM(ドメインM)を提供 ◦ ドメインMとユーザVMを同時にマイグレーション  同期のタイミングはD-MOREと大きく異なる
  23. © Sho KAWAHARA, KSL, Kyushu Institute of Technology まとめ 

    D-MORE:帯域外リモート管理の継続が可能なマイグ レーションを実現するシステム ◦ ドメインRでRMSサーバと仮想デバイスを動作させる ◦ ドメインRとユーザVMを同時にマイグレーション  ドメインRとユーザVM間の接続を維持 ◦ D-MORE の有効性を確かめた  入力情報が失われないことを確認  オーバーヘッドが許容範囲であることを確認  今後の課題 ◦ 完全仮想化に対応 ◦ ドメインRのリソース消費量の削減