学位論文要旨



No 129630
著者(漢字) 髙橋,一志
著者(英字)
著者(カナ) タカハシ,カズシ
標題(和) 利用可能性の高い仮想計算機転送技術
標題(洋) A technique of virtual machine migration with high applicability
報告番号 129630
報告番号 甲29630
学位授与日 2013.03.25
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第452号
研究科 情報理工学系研究科
専攻 創造情報学専攻
論文審査委員 主査: 東京大学 教授 江崎,浩
 国立情報学研究所 教授 本位田,真一
 東京大学 准教授 稲葉,真理
 東京大学 准教授 品川,高廣
 東京大学 講師 中山,英樹
 東京大学 教授 千葉,滋
内容要旨 要旨を表示する

既存の「遠隔仮想計算機転送システム」は「使う人と場所を選ぶ」システムであり,利用可能性が低いという問題がある.これは,仮想計算機転送システムの技術的な問題に起因する.本研究では,既存の3つの遠隔計算機転送システムに対して,それぞれ,3つの着想(a)ほとんどすべてのデバイスに組み込み済みのWebブラウザのJavaScript+HTML上で動作するインタラクティブ性能の高いシンクライアントプロトコルの提案(b)Linux / KVMドライバを,Linuxエミュレーションレイヤを用いて「簡単」かつ「性能劣化無し」でWindows上に移植することにより,WindowsとLinux間でのVMライブマイグレーション(c)VMの物理計算機間の往来という新たな振る舞いに着目した高速な差分転送,を元にして,既存の遠隔計算機転送システムの利用可能性を向上する.

「クラウド・コンピューティング」や「VDI : Virtual Desktop infrastructure」といった技術の普及に伴って「遠隔仮想計算機転送システム」がより重要な存在となりつつある.これらのシステムは,仮想マシンモニタ(VMM : Virtual Machine Monitor)によって生成される仮想マシン(VM : Virtual Machine)を,ネットワークを経由で,ユーザの持つ手元の端末でも利用可能にする技術である.クラウド・コンピューティングやVDI :Virtual Desktop infrastructureの場合,すべてのユーザは,中央集権的に集約された仮想マシンを,この,遠隔仮想計算機転送システムを通して,ネットワーク経由で操作することになる.そのため,このシステムは欠かすことが出来ない.そのため,遠隔仮想計算機転送システムに対して利用可能性の向上という貢献を行うのは重要な意義がある.

今日使用される遠隔仮想計算機転送システムは,画面転送によるシンクライアントシステム,VMそのものを他の物理マシンに転送するVMライブマイグレーション,および,VMのストレージも含めてVMを他の物理マシンに転送するVMストレージマイグレーションの3つでありそれぞれに利用可能性を低下させている技術的な問題点が存在する.

まず,シンクライアントシステムの問題点は「導入が面倒」という点である.既存のシンクライアントシステムは,すべて,専用のアプライアンスや専用ソフトウェアのインストールと言う作業が必要になる.計算機に対して詳しくない人にとって,この作業は困難である.シンクライアントの研究は古くから行われているが,すべて専用のソフトウェアやアプライアンスを用いたものである.

また,既存のVMマイグレーション技術にも2つの問題点がある.1つ目の原因は「コンシューマ向けOSとサーバOSを結びつけるVMMが無い」という点である.既存のVMMでは,複数の異なるHostOS上のVMM間で,VMライブマイグレーションを達成することができず,利用環境が同一OS上のVMMと限定されている.特定のOS上でしかVMライブマイグレーションが達成できないというのは利用可能性を低めている.また,2つ目の原因としては,VMのストレージ転送に時間が掛かるという問題である.従来のVMライブマイグレーションでは,この問題を解決するため,VMのディスクイメージを共有するために分散ファイルシステムや共有ファイルシステムを利用する必要があった.今までのVMライブマイグレーションではこの制約が問題になることはなかったが,データセンタ間をまたいだ広域WAN環境におけるライブマイグレーションや,個人用のVMにVMライブマイグレーションを利用するという研究も進んでおり,状況によっては,分散/共有ファイルシステムを利用するのが困難な状況下でのVMライブマイグレーションも珍しくなくなってきている.これを解決するために,VMストレージマイグレーション技術という,VMのストレージを含めて,すべてのVMステータスを転送するという技術も開発されているが,VMのストレージは巨大であるため,転送には多くの時間がかかり,また,転送に使用する帯域幅も大きなものになる.当然,低速なネットワーク環境であれば,さらに多くの時間がかかり,これでは利用可能性が高いとは言えない.

このように,現存する遠隔仮想計算機転送システムでは利用可能性が低い.そこで,本研究では (1) JavaScriptとHTMLを用いたシンクライアントVoXYの実現 (2) Linux ドライバのWindows 移植によるWinKVM の実装(3) 差分転送によるVMストレージマイグレーションの高速化という3つの研究で,既存のシンクライアントシステム,VMストレージマイグレーション,VMライブマイグレーションのという3つの研究で,利用可能性を低下させている技術的な制約を取り除き,より多くの人が使える遠隔仮想計算機転送システムを目指す.

(1)の研究により,Webブラウザという,ほとんどすべてのデバイスの初期段階で導入されているソフトウェア上で,新たなソフトウェアを導入することなく,使用出来る利用可能性の高いシンクライアントシステムを達成した.さらに,(2)の研究により,WindowsとLinux間といった異種OS間で動作するVMM間でVMライブマイグレーションを達成した.今までのVMMでは,同一のHostOS間で動作する同一のVMM間でしかVMライブマイグレーションを行うことができなかった.そのため,コンシューマOSとして広く普及するWindowsや,サーバ用のOSとして広く普及するLinux間でVMライブマイグレーションを達成することはできず,これは,利用可能性を低下させる技術的な要因であった.これを解決するため,本研究では,KVMと呼ばれるLinuxドライバとして実装されているHybrid VMMを,Windowsに移植することでこれを実現した.WindowsとLinux間でのライブマイグレーションを達成した.移植にはWindows上にLinuxカーネルをエミュレーションするエミュレーションレイヤを構築することでKVMドライバを「簡単」かつ「性能劣化」なくWindows上で動作させることに成功した.最後の,(3)の研究では,一般に巨大な容量を持つVMストレージの転送時間と転送帯域を節約するために,VMの往来と呼ばれる今後VMライブマイグレーションに現れるであろう特質を利用した,新たな差分転送のメカニズムを提案した.これにより,従来のVMのストレージを含めた全転送時間を最大で98%まで削減することに成功した.

この3つの貢献により,現在のクラウドコンピューティングやVDIといった仮想計算機の提供システムを,技術に明るくない人であっても使用させることが可能になる.普段は,VoXYを使用してWebブラウザ上でVMを操ることができる.VMはクラウド上にあり,ユーザは電源管理や,ハードウェアの故障によるデータロストといった心配に悩まされることなくコンピュータを使うことができる.また,より詳しい人であれば,シンクライアントソフトウェアで利用するには少々困難であるソフトウェア(3Dゲーム,CAD,CAM)を利用したい場合,WinKVMとVMストレージマイグレーションの高速化を利用して,一時的にクラウド上からVMを,手元の物理計算機に,実行コンテキストを維持したまま高速に移動させることができる.使用が終わった後は,ふたたび,安全なクラウド上にVMを移動させる.このように,VoXYとWinKVMとVMストレージマイグレーションの高速という研究を組み合わせることで,より便利なコンピューティング環境をユーザに対して提供することができる

以下,3つの研究についてより詳しく述べる.

(1)JavaScriptとHTMLを用いたシンクライアントVoXYでは,Webブラウザ上で動作するユーザに取って導入が容易なシンクライアントシステムを達成した.多数のOSインストールパッケージには,Webブラウザが初期導入されているため,ほとんどすべてのWebブラウザ搭載端末で動作することが可能である.新たなアプライアンスやアプリケーションを別途インストールする必要はない.

VoXYの開発を始めた2007年当初,Webブラウザ上ですべてのコンピューティングを行おうという潮流が存在し,クラウドコンピューティングというキーワードも誕生した.Webブラウザ上で動作する,いわゆるWebアプリケーションには,ユーザは新たにソフトウェアをインストールする必要がないという利点が存在し,利用可能性の向上に大きく寄与した.この状況に倣い,Webブラウザ上でシンクライアントシステムを実現すれば,シンクライアントシステムの利用可能性も同じく向上できると考えた.

しかし,JavaScriptとHTMLのみでインタラクティブ性能の高いシステムを実現するにあたっては,既存のシンクライアントシステムが採用しているプロトコルをそのまま流用することが不可能であった.なぜなら,貧弱な画像描画システムしか持たないJavaScriptとHTMLでは,従来の,変更点のみを転送するシンクライアントシステムのプロトコルでは高いインタラクティブ性を実現することが不可能であった.もちろん,Webブラウザに拡張性を持たせる専用のプラグインを導入することで,Webブラウザに高機能な画像描画システムをもたせることは可能であるし,事実そのような研究も存在している.しかし,専用のプラグインは規格化されているわけではないので,限定的な環境でしか動作せず,ユーザにとって導入が容易であるとは言えない.そこで,われわれは,純粋に規格化されたJavaScriptとHTMLを利用して,いかなる環境でもインタラクティブ性の高いシンクライアントシステムを実現する手法を提案する.具体的には,VoXYでは,計算機のフレームバッファをある程度の大きさを持つタイルに区切り,タイルを単位とした転送を行うことで,この問題を解決する.従来のシンクライアントプロトコルに比べると,使用帯域は大きくなるが,HTMLとJavaScript環境が動作するWebブラウザであれば,いかなる環境でも動作するシンクライアントシステムであるため,ユーザにとって導入が容易であり,使いやすいものである.そのため,「使う人を選ばず」「使う環境が限定されていない」遠隔仮想計算機システムをVoXYで実現することに成功する.

また (2) LinuxドライバのWindows移植によるWinKVM の実装では,Linuxカーネルに付属するVMM (KVM: Kernel-based Virtual Machine) のWindows移植手法について論じる.利用可能性の高い仮想計算機転送技術を実現するためには,様々なオペレーティングシステム上で動作するHybrid VMMの実現が重要である.コンシューマ向けのオペレーティングシステムであるWindowsと,サーバ/サービス構築用として利用されるLinuxとの間でVMライブマイグレーションを実現することで,ユーザは,自由に自分の作業環境であるVM(仮想マシン)を実行コンテキストを維持したまま移動させることができる.これにより.ユーザは,シンクライアントシステムVoXY経由で扱うことが難しいCAD,CAMや3Dゲームといったソフトウェアを使いたいときは,自分の環境を直ちに手元の計算機に転送することができる.これは,仮想マシンの利用可能性に寄与する.

しかし,VMライブマイグレーションのプロトコルは,統一規格が存在せず,VMM毎に独自プロトコルを用いている.そのため,現状,多くのVMMするが,それらすべてのVMライブマイグレーションのVMライブマイグレーションプロトコルを統一するのは現実的ではない.そのため,本研究ではLinuxカーネルに標準搭載されているVMMであるKVMをWindows上に移植することで,WindowsとLinux間でVMライブマイグレーションを実現する.

KVMをWindowsに移植するためにはLinuxのデバイスドライバをWindowsに移植する必要がある.KVMは特権命令であるCPUの仮想化支援命令を使用しているため,KVMのコアの部分はLinuxのデバイスドライバとして実装する必要があるのである.したがって,WinKVMを実現するためには,LinuxデバイスドライバをWindowsドライバとして移植する必要がある.

デバイスドライバというプログラムはOSに強く依存するため,ユーザ空間で動作するプログラムに比べると移植が難しい.そのため,プログラマがドライバのソースコードを解読し,他のOSに移植するように書き換えるのは人的コストが高い.とくに問題となる (x) 発行可能なPrivilege な命令の種類,(y)ユーザプログラムとのインタフェイス (z)カーネルとのインタフェイスという3つのOS間の差異の3つである.

そこで,この研究では,WinKVMを実現するために,Windowsカーネル上にLinuxデバイスドライバを動作させるためのエミュレーションレイヤを手法を提案する.エミュレーションレイヤは上述した3つの差異を吸収し``簡単''かつ``性能劣化無し''でWindows上でLinuxドライバであるKVMドライバを動作させることができた.しかし,この手法には制限もあり,Linuxドライバとして実装されたKVMには10行程度の修正を加える必要がある.しかし,Linux / KVMドライバを10行程度の修正でかつ性能劣化なく移植可能な本手法は,「使う人を選ばず」「使う環境が限定されていない」という限定的な遠隔仮想計算機転送技術であるVMライブマイグレーションに貢献する技術である.

最後に (3) 差分転送によるVMストレージマイグレーションの高速化では,VMが特定の物理マシンの間を行ったり来たりするVMの往来と呼ばれる挙動に着目し,VMを含めたVMストレージの転送を高速化の手法を提案した.従来,VMライブマイグレーションでは,分散ファイルシステムや共有ファイルシステムといったシステムを併用し,転送先と転送元で,予めVMストレージを共有しておくのが一般的であった.しかし,複数のデータセンタ間でVMを転送する,広域ライブマイグレーションや,個人用のVMライブマイグレーションでは,分散ファイルシステムや共有ファイルシステムを利用することが困難となる.そこで,この問題を解決すべく,VMのストレージを含めて他の物理マシンにVMを転送する,VMストレージマイグレーションと呼ばれる技術が提案されているが,VMのストレージは数十GBになることも珍しくない.これほど巨大なデータを転送するには,VMが完全に転送し終わるまでに,多くの時間と帯域を要求する.そこで,本研究では,データセンタ間での広域ライブマイグレーションや,個人用のVMライブマイグレーションでは,VMが特定の物理マシンの間を往来する可能性が高いという点に着目し,この性質を利用した,VMの差分転送メカニズムを開発する.

具体的には,VMM内にDBT(Dirty Block Tracking)と,世代番号と呼ばれる概念を追加し,いつどの物理マシンで,ディスクの土の汚れたかを追跡しておき,VMライブマイグレーション時には,差分のみを正確に取り出し,差分転送を行うメカニズムを開発する.差分転送というアイデアは,古今東西様々な場面で使用されてきた古典的な手法ではあるが,今回は,特定の物理マシン間をVMが往来するという現象に着目した差分転送を提案したことが貢献となる.ベンチマークの結果,90%以上の転送時間を削減することができ,既存のVMストレージマイグレーションと比べて高速なVM転送を達成した.

以上,(1) VoXYではJavaScript+HTMLで利用できる新たなシンクライアントプロトコルを開発することで,「誰でも容易に使える」Webブラウザ上で動作するシンクライアントシステムを実現し,利用可能性を向上する.さらに,(2) WinKVMでは,Linux/KVMドライバを簡単かつ性能劣化なくWindows上で動作する事ができるエミュレーションレイヤを開発し,使う環境を選ばないVMライブマイグレーションを達成し,利用可能性を更に向上する,最後に(3) 差分転送によるVMストレージマイグレーションの高速化では,分散/共有ファイルシステムを使用できない環境下におけるVMライブマイグレーションでは、VMが特定の物理計算機上を往来するという挙動を利用した高速な差分転送メカニズムを提案する.

この3つの研究によって,本博士論文で解決すべき問題である現在の限定的であるVMとユーザと結びつける遠隔計算機転送システムを,より多くの利用シーンでも利用できるような,遠隔仮想計算機転送システムを提案するを達成した.「使う人を選ぶ」かつ「使う環境を選ぶ」遠隔仮想計算機の利用可能性を向上させたことが本博士論文の貢献である.

審査要旨 要旨を表示する

本論文は「利用可能性の高い仮想計算機転送技術」(A technique of virtual machine migration with high applicability)と題し,現状の遠隔仮想計算機転送システムの技術的制約による不便さを排除し,利用可能性を向上するシステムの構成法を明らかにしている.

本論文は和文6章からなる.

題1章「序論」では,仮想マシンモニタと,それを用いた遠隔仮想計算機システムの重要性,そして利用可能性の低さという問題点について分析し,本論文が扱う問題を規定している.

第2章の「関連研究」では本論文の関連研究,とくに仮想計算機を実現する仮想マシンモニタや遠隔計算機転送システムの要素技術や歴史,遠隔仮想計算機環境であるクラウドコンピューティングやVirtual Desktop Infrastructure (VDI)についての既存技術をまとめている.

第3章「JavaScript とHTML を用いたシンクライアントVoXY」では,シンクライアントシステムの導入の困難さを解決する,Webブラウザのみで動作するシンクライアントシステムの構成法について論じている.従来のシンクライアントシステムは専用ソフトウェアを導入する必要があり,利用可能性が低いという問題があった.そこで,ほぼすべての個人用計算機環境で利用可能であるWebブラウザのみで動作するシンクライアントシステムの実現を目指している.ネットワークの消費帯域幅を削減することを重視した従来のシンクライアントプロトコルでは最小限の更新部分のみを転送するが,この手法はWebブラウザの描画性能の限界から,応答性能が低いという問題がある.そこで,Webブラウザが得意とするブロック描画を活用する画面転送プロトコルを新たに提案し,この問題を解決している.提案したプロトコルを用いて,JavaScriptとHTMLのみで動作することができるシンクライアントシステムVoXYを開発している.VoXYを用いて提案手法の評価を行い,従来のシンクライアントと比べて要求帯域が大きくなるが,いくつかの実用的な事例で問題無い応答性能が得られていることを確認している.

第4章「Linux ドライバのWindows 移植によるWinKVM の実装」では,LinuxドライバをWindowsへ移植することによる,異種OS間のライブマイグレーションが可能な仮想マシンモニタの開発手法を述べている.仮想マシンモニタは特定OS向けに開発されてきたため,異種OS間のライブマイグレーションはそれまで実現されてこなかった.このため例えばサーバ向けOSであるLinuxから,利用者の多い個人用計算機向けOSであるWindowsへ転送ができず,利用可能性に問題があった.本章では,Linux向け仮想マシンモニタであるKVMをWindowsへ移植することで,低い開発コストで異種OS間のライブマイグレーションが可能な仮想マシンモニタを実現することを目指している.KVMの主要箇所はLinuxドライバとして実装されているため,性能劣化を起こさないLinuxドライバのWindowsへの移植手法を述べている.一般的にドライバの移植は困難であるが,とくに問題となる (1) 発行可能なPrivilege な命令の種類,(2) ユーザプログラムとのインタフェイス,(3) カーネルとのインタフェイスという3つのOS間の差異について,Windows上にエミュレーションレイヤを構築することで,およそ10行程度のLinuxドライバへの修正だけで,それ以外はLinuxドライバに手を入れずに移植可能であることを示している.さらに本手法を用いてKVMをWindowsに移植したWinKVMを開発し,Linux上のKVMからWindows上のWinKVMへ,ゲストOSのライブマイグレーションが実現できたことを実験により実証している.また,WinKVM上でのゲストOSの実行時間を評価し,本移植手法により性能低下がほとんど無いことを論じている.

第5章「差分転送を用いた高速なVM マイグレーション」では,仮想マシンが特定の計算機間で往来するという性質に着目し,差分転送によってストレージマイグレーションを高速化する手法について論じている.仮想マシンを移送するとき,仮想マシンのディスクを同時に移送するストレージマイグレーションが必要となるが,巨大なストレージをそのまま転送すると転送時間と帯域幅がかかるという問題があり,利用可能性を損ねていた.近年のデータセンタや個人用の仮想マシンでの仮想マシンの移動では,特定のマシン間を往来するという点と,普段の計算機利用では大きなディスクの書き換えが起こらない点に着目し,差分のみを転送することによってストレージマイグレーションを高速化する手法について論じている.差分の検出は仮想マシンの書き込みを監視することで行い,差分の判定は世代番号を用いることで行う.評価を行い,一般的な計算機の利用ではストレージマイグレーションが高速化したことを確認している.

第6章「結論」では,本論文のまとめと研究分野の今後の展望について論じている.

以上のように,本論文は仮想計算機転送システムの利用可能性に関する現状の問題点を分析し,ブラウザのみで利用できる画面転送システム,異OS間のライブマイグレーションを可能にするVMMの開発手法,そして差分転送による効率の良いストレージマイグレーションを実現する手法を明らかにしている.また実際にシステムを開発して利用可能性が向上することを示しており,この分野に少なくない貢献を果たしている.すなわち本研究は情報理工学に関する研究的意義と共に,情報理工学における創造的実践に関し価値が認められる.よって本論文は博士(情報理工学)の学位請求論文として合格と認められる.

UTokyo Repositoryリンク