240 likes | 352 Views
帯域外リモート管理の継続が可能な マイグレーション手法. 川原 翔 光来 健一 九州 工業大学. IaaS 型クラウドにおける管理. 利用. VM. VM. VM. VM. VM. VM. VM. VM. VM. VM. VNC. 仮想マシン( VM )をネットワーク経由でユーザに提供 負荷に応じて VM 数や性能を変更できる ユーザ VM 内の VNC サーバ等に接続して管理 VM 内のネットワーク障害時に管理が不可能になる ネットワークの設定ミスや OS のクラッシュ時など. 帯域外リモート管理. 管理 VM. ユーザ VM.
E N D
帯域外リモート管理の継続が可能なマイグレーション手法帯域外リモート管理の継続が可能なマイグレーション手法 川原 翔 光来 健一 九州工業大学
IaaS型クラウドにおける管理 利用 VM VM VM VM VM VM VM VM VM VM VNC • 仮想マシン(VM)をネットワーク経由でユーザに提供 • 負荷に応じてVM数や性能を変更できる • ユーザVM内のVNCサーバ等に接続して管理 • VM内のネットワーク障害時に管理が不可能になる • ネットワークの設定ミスやOSのクラッシュ時など
帯域外リモート管理 管理VM ユーザVM VNCサーバ ネットワーク障害 仮想デバイス VNCクライアント • 管理VM経由でユーザVMをリモート管理 • 管理VMでリモート管理サーバを動作させる • ユーザVMの仮想デバイスを直接参照する • ユーザVMのネットワーク障害の影響を受けない • ネットワークの設定ミス時でも操作が可能
マイグレーション時の管理中断 管理VM 管理VM 1 2 ユーザVM マイグレーション ? VNCサーバ VNCサーバ VNCクライアント • VMのマイグレーション時にVNC接続が切断される • ユーザVMの移動によって移動元のVNCサーバが終了 • 移動先のVNCサーバにつなぎ直さなければならない • キーボード等の入力情報が失われる可能性がある • ネットワーク上の送信中のデータ • VNCサーバからユーザVMに渡されていないデータ
不定な接続先 100 101 VNCサーバ 102 VNCサーバ 103 VNCサーバ allow ip xxx.xxx.0.0/16 port 5900-5999 5900 104 VNCサーバ 5901 5902 VNCサーバ 5903 VNCサーバ VNCサーバ VNCサーバ VNCクライアント • VMのマイグレーション時にVNCサーバのIPアドレスとポート番号が変わる • 移動先の管理VMのIPアドレス • 管理VM上のVNCサーバの数に依存したポート番号 • クライアント側のファイアウォールで外向きの通信を広範囲に許可する必要 • クライアントが踏み台攻撃に使われた時の危険性が増す
提案: D-MORE 管理VM ユーザVM 1 2 マイグレーション ネットワークレベルで維持される ドメインR VNCサーバ 仮想デバイス 本手法により接続が保たれる VNCクライアント • 帯域外リモート管理を継続可能なマイグレーションを実現するシステム • VNCサーバと仮想入出力デバイスをリモート管理用VM(ドメインR)で稼働させる • ユーザVMとともにドメインRもマイグレーション • ドメインRとユーザVM間の接続を維持
データロスの防止 ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD ユーザVM 処理中 ドメインR VNCサーバ 送信中 仮想デバイス 処理中 VNCクライアント • マイグレーション時にユーザVMに届いていない入力情報が失われない • VNCサーバや仮想デバイスで処理中の入力データ • ドメインRとともにマイグレーションされる • VNCクライアントから送信中のネットワーク上のデータ • 失われてしまった場合にはTCPにより再送
接続先の固定 ユーザVM xxx.xxx.xxx.100 ドメインR 192.168.0.131 VNCサーバ xxx.xxx.xxx.100 :15900 192.168.0.131 :5900 VNCクライアント • マイグレーション時にVNCサーバのIPアドレスとポート番号が変わらない • VNCサーバはドメインRとともにマイグレーションされるため • クライアント側のファイアウォールでピンポイントに許可できる • ドメインRにグローバルIPアドレスを割り当てないことも可能 • ドメインRにプライベートIPアドレスを割り当てる • ユーザVMのIPアドレスとの間でNAPTを行う
ドメインRとユーザVM間の接続維持 ユーザVM ドメインR D-MORE 仮想デバイス 共有 メモリ 仮想割り込みチャネル • マイグレーション後にユーザVMが仮想入出力デバイスを使い続けられるようにする • 共有メモリ • 入出力情報を格納するためのバッファが置かれる • メモリの共有状態を自動的に復元することによって維持 • 仮想割り込みチャネル • ユーザVMに入力情報があることを通知 • チャネルを自動的に再確立することで維持
同時マイグレーション ドメインR 停止 再開 ユーザVM • ユーザVMとドメインRの同期を取りながらマイグレーションを行う • タイミングによっては入力情報が失われる可能性がある • ユーザVMが停止状態になった後で,ドメインRが共有メモリにデータを書き込んだ場合 • ドメインRの稼働中はユーザVMを常に稼働させておく • ただし,ユーザVMの稼働中はできるだけドメインRを止めない
実装 ユーザVM 管理VM ドメインR D-MORE VNCサーバ 画面更新 要求 QEMU 既存の VNCサーバ VNCクライアント D-MORE 仮想デバイス 要求 • Xen4.1.3に実装 • 準仮想化Linuxを動かすユーザVMを対象 • ドメインRで動作するVNCサーバを開発 • キーボードとマウスの入力要求に対応 • RFBProxyを拡張して実装
仮想入力デバイス ユーザVM ドメインR D-MOREVNCサーバ I/O リング D-MORE 仮想デバイス イベントチャネル • ドメインRで動作する仮想入力デバイスを開発 • 仮想キーボード,仮想マウス • 処理の流れ • VNCサーバから入力情報を受け取る • 入力情報をユーザVMのI/Oリングに書き込む • メモリマップにより共有 • イベントチャネルを用いてユーザVMに入力を通知
ドメインR (1/2) ユーザVM ドメインR メモリページ ページテーブル • 管理対象のユーザVMのメモリにアクセスする特権を持つVMを開発 • ドメインM[宇都宮ら‘11]を拡張して実装 • ユーザVMのメモリページをマップして読み書きできる • 本来は管理VMのみが有する特権である • OSと仮想マシンモニタ(VMM)のアクセス制限を変更 • 指定したユーザVMへのアクセスのみ許可 • ドメインRとユーザVMの対応づけは管理VMで行う
ドメインR (2/2) ユーザVM ドメインR 監視ビット • マイグレーション時にユーザVMのメモリマップ状態を維持 • マイグレーション元 • ユーザVMのメモリがマップされていれば,ページテーブルエントリに監視ビットをセット • ページテーブルと一緒にマイグレーション先に転送 • マイグレーション先 • 監視ビットがセットされたメモリページを再マップして復元
イベントチャネルのサポート ユーザVM ドメインR D-MORE 仮想デバイス イベントチャネル • ユーザVMとの間でイベントチャネルを確立 • ユーザVMのデバイスドライバは管理VMを指定してバインド • VMMを修正し,ドメインRからでも確立できるようにした • マイグレーション時のイベントチャネルの維持 • ユーザVMは新たにイベントチャネルを確立しようとする • ドメインRにはマイグレーションを意識させたくない • VMM内で自動的に再確立する必要 • この機能は現在未実装
同時マイグレーションの実現 ドメインR マイグレーション元 ホスト 待機 待機 ユーザVM マイグレーション 開始 終了 停止 ドメインR マイグレーション先 ホスト 待機 ユーザVM • ドメインRとユーザVMの両方がライブマイグレーションの最終段階に到達するまで待つ • ドメインR,ユーザVMの順に停止 • ドメインRとユーザVMの両方が再開できるようになるまで待つ • ユーザVM,ドメインRの順に再開 作成 再開
実験 ユーザVM 管理VM ドメインR App D-MORE VNCサーバ QEMU 画面処理 既存の VNCサーバ VNCクライアント D-MORE 仮想デバイス デバイスドライバ キーボード入力 画面の更新情報 • キーボード入力1回あたりの応答時間を測定 • 入力を行ってから画面に文字が表示されるまでの時間 • 従来の帯域外リモート管理と比較
実験結果 • 従来より約1.6msの応答遅延が発生 • 画面更新要求を管理VMのVNCサーバに転送して処理しているためと考えられる • ドメインRを用いることによるオーバーヘッドはほとんど発生しないと考えられる
関連研究: VNCプロキシ ホスト ホスト ユーザVM 管理VM VNCプロキシ VNCサーバ ホスト 管理VM ユーザVM VNCクライアント VNCサーバ • VNCプロキシを経由して管理VMのVNCサーバに接続 • マイグレーション時に帯域外リモート管理を継続できる • VNCプロキシが自動的に接続先VNCサーバを切り替える • VNCクライアントの接続先IPアドレス・ポート番号も変わらない • ユーザVMに届いていない入力情報は全て失われる
関連研究: SPICE [Red Hat, Inc.‘09] ホスト 管理VM ユーザVM ホスト ユーザVM 管理VM SPICEサーバ SPICEクライアント SPICEサーバ • KVM用に開発されているリモート管理ソフトウェア • マイグレーション時に帯域外リモート管理を維持できる • SPICEクライアントがサーバから通知されたマイグレーション先に自動的に再接続する • SPICEクライアント経由でサーバの状態を転送する • マイグレーション時に接続先SPICEサーバのIPアドレス・ポート番号が変更される • 普及率がVNCなどに対して大きく劣る
関連研究 • VMware vSphere Hypervisor [VMware, Inc.] • VNCサーバをVMM内で動かす • ユーザVMのマイグレーション時にリモート接続は切断される • Stub Domain [Nakajima et al.‘06]Xoar[Colp et al. ’11] • VNCサーバを専用VMに分離 • マイグレーションはできない • FBCrypt [Egawa et al.‘12] • クラウドにおける帯域外リモート管理のセキュリティ向上 • D-MOREとの併用を計画
まとめ • 帯域外リモート管理の継続が可能なマイグレーションを実現するシステムD-MOREを提案 • ドメインRでVNCサーバと仮想デバイスを動作させる • ドメインRとユーザVMを同時にマイグレーション • ドメインRとユーザVM間の接続を維持 • マイグレーション中に入力情報が失われない • VNCクライアントの接続先が変わらない • D-MOREのオーバーヘッドが現状では十分小さいことを確認
今後の課題 • 画面更新処理への対応 • 現在は,キーボード・マウスの入力処理のみ対応 • マイグレーション時のイベントチャネルの維持の実装 • 同時マイグレーションの実装 • 完全仮想化への対応 • 現在は準仮想化のみ対応