LinuxCon Japan 2012を3倍楽しむための基礎知識
第3回 進化し続けるKVM
はじめに
ここ数年,ハイパーバイザ方式の仮想化技術が普及し,商用システムに適用することが当たり前という時代になってきました。さらに最近では,クラウドサービスやデータセンタでオープンソースの仮想化技術を採用する動きも出ています。
図1 仮想化マシンの基本用語
仮想的なマシンを「VM(Virtual Machine:仮想マシン)と呼び,仮想化を実現しているソフトを「VMM」(Virtual Machine Monitor)あるいは「ハイパーバイザー」と呼びます。
オープンソースのハイパーバイザには何種類かの実装方式がありますが,中でもKVMが最も有望であると考えます。その理由は,開発-利用-要望-開発の好循環が実現されており,その好循環がKVMの進化に大きく貢献しているからです。開発者だけでなく,利用者も必要なコードを開発したりドキュメントを整備し,その貢献によりプロジェクトの一員と認められ,次の仕様検討に要望を出すということがすでに行われているのです。
図2 KVMの仮想化環境
基本となる制御は,次のとおりとなります。
- ①QEMUが仮想ハードウェアを初期化,実行を開始します。
- ②QEMUがカーネルに処理を移します。
- ③ゲストOSを直接実行します。
- ④VMMの制御が必要になった場合,カーネルに処理が戻ります。 CPUの仮想化支援機能の制御レジスタを見ることによって何が起きたかを知ります。
- 原因によって,カーネルまたは⑤QEMUで処理を実行し,再び③ゲストOSを実行します。これを繰り返します。
- ⑥性能向上を図るため,ゲストに物理ハードウェアを割り当てて直接アクセスさせることができます。
仮想マシンのさまざまなデバイスをエミュレートするために, QEMUはLinuxが提供する充実した機能を駆使します。たとえば,
- ⑦仮想ネットワークを構築するためにゲストの仮想NICをLinuxのソフトウェアブリッジにつなげ,
- ⑧仮想イメージのストレージバックエンドとしてLVMを使う
ことが多いです。
実は,この好循環を支援する目的もあって,Linux Foundationが2010年から主催している国際カンファレンスLinuxCon Japanの中で,「仮想化ミニサミット」を開催し,KVMとその関連プロジェクトに関わる技術者および利用者が意見交換を行う,技術交流の場を提供しています。
仮想化ミニサミットでは,ハイパーバイザに限らず,ストレージ,ネットワーク,クラウド環境の運用・管理ツールまで議論をしています。各分野の主要開発者はそれぞれが関わるKVMの現状と最新の開発動向を,ユーザは利用状況を紹介しています。「こんな新しい技術があるんだけど,はたしてOSSの実装ができるのかわからない,本当に役に立つのか分からない」「こういうことができなくて困っている」と紹介された様々な機能が,翌年には実現され,各分野で正式採用されている実績もあります。このような進化の状況をいくつか紹介しましょう。
< 前 | 次 > |
---|