LinuxCon Japan 2012を3倍楽しむための基礎知識

第3回 進化し続けるKVM

この記事を読むのに必要な時間:およそ 3 分

はじめに

ここ数年,ハイパーバイザ方式の仮想化技術が普及し,商用システムに適用することが当たり前という時代になってきました。さらに最近では,クラウドサービスやデータセンタでオープンソースの仮想化技術を採用する動きも出ています。

図1 仮想化マシンの基本用語

図1 仮想化マシンの基本用語

仮想的なマシンを「VM(Virtual Machine:仮想マシン)と呼び,仮想化を実現しているソフトを「VMM」⁠Virtual Machine Monitor)あるいは「ハイパーバイザー」と呼びます。

オープンソースのハイパーバイザには何種類かの実装方式がありますが,中でもKVMが最も有望であると考えます。その理由は,開発-利用-要望-開発の好循環が実現されており,その好循環がKVMの進化に大きく貢献しているからです。開発者だけでなく,利用者も必要なコードを開発したりドキュメントを整備し,その貢献によりプロジェクトの一員と認められ,次の仕様検討に要望を出すということがすでに行われているのです。

図2 KVMの仮想化環境

図2 KVMの仮想化環境

基本となる制御は,次のとおりとなります。

①QEMUが仮想ハードウェアを初期化,実行を開始します。
②QEMUがカーネルに処理を移します。
③ゲストOSを直接実行します。
④VMMの制御が必要になった場合,カーネルに処理が戻ります。 CPUの仮想化支援機能の制御レジスタを見ることによって何が起きたかを知ります。
原因によって,カーネルまたは⑤QEMUで処理を実行し,再び③ゲストOSを実行します。これを繰り返します。
⑥性能向上を図るため,ゲストに物理ハードウェアを割り当てて直接アクセスさせることができます。

仮想マシンのさまざまなデバイスをエミュレートするために, QEMUはLinuxが提供する充実した機能を駆使します。たとえば,

⑦仮想ネットワークを構築するためにゲストの仮想NICをLinuxのソフトウェアブリッジにつなげ,
⑧仮想イメージのストレージバックエンドとしてLVMを使う

ことが多いです。

実は,この好循環を支援する目的もあって,Linux Foundationが2010年から主催している国際カンファレンスLinuxCon Japanの中で,⁠仮想化ミニサミット」を開催し,KVMとその関連プロジェクトに関わる技術者および利用者が意見交換を行う,技術交流の場を提供しています。

仮想化ミニサミットでは,ハイパーバイザに限らず,ストレージ,ネットワーク,クラウド環境の運用・管理ツールまで議論をしています。各分野の主要開発者はそれぞれが関わるKVMの現状と最新の開発動向を,ユーザは利用状況を紹介しています。⁠こんな新しい技術があるんだけど,はたしてOSSの実装ができるのかわからない,本当に役に立つのか分からない」⁠こういうことができなくて困っている」と紹介された様々な機能が,翌年には実現され,各分野で正式採用されている実績もあります。このような進化の状況をいくつか紹介しましょう。

ネットワーク

第1回目(2010年)の仮想化ミニサミットで,Vyatta社のStephen Hemminger氏は仮想化に伴うネットワークの複雑化について解説しました。

まず,ブリッジ機能を持ったSR-IOV(Single Root I/O Virtualization)対応のNICが登場したものの,カーネルのブリッジ機能と統合されていないので,現実的に使えないという現状を説明しました。しかしその後,Hemminger氏が直接開発に関わったiproute2のツール群で,従来のカーネルのソフトウェアとSR-IOVデバイスのブリッジ機能を統一管理する取り組みが行われ,利用できる状況へと改善されつつあります。

さらに,最近では,ミニサミットで要望があがっていた,iptablesのルールをフィルタリング機能搭載のNICと共有する機能も開発され始めています。これができると,フィルタリングの処理を物理NICに任せられるので,CPU使用率が下がります。

また,同氏は,仮想化の普及とクラウドの登場によってネットワークの管理が非常に困難になったことにも触れ,これらの問題を解決,すなわち,ハイパーバイザの中にある仮想ブリッジと従来の物理ブリッジの統一管理を可能にするのは,IEEEで規格化が進んでいる「Edge Virtual Bridging」⁠802.1Qbg)「Bridge Port Extension」⁠802.1Qbh)であると語っていました。

そして,翌年のLinuxCon Japan 2011では,IEEEにおいて802.1Qbgの規格化を主導しているIBM社のVivek Kashyap氏が,Stephen Hemminger氏が紹介した機能がlibvirtで制御可能なレベルに到達したと発表しました。Linuxのコミュニティが先行開発した新しい技術が利用できる形になった,まさに進化を実感できる良い例だと思います。

また,第1回目のミニサミットでは,⁠OpenFlow」など最新のネットワークに関する研究結果を活かした「Open vSwitch」も話題になりました。2011年のミニサミットでは,LinuxカーネルへのOpen vSwitch移植を主導したSimon Horman氏がOpen vSwitchのセッションを持ち,新しい帯域幅の制御機能などについて紹介しました。

そして2012年3月には,Simon HormanをはじめOpen vSwitchの努力が実り,カーネル3.3にOpen vSwitchが取り込まれたのです! これも着実な進化です。現在は,libvirtのOpen vSwitchへの対応も進んでおり,近い将来には,主要ディストリビューションにも入るのではないでしょうか。

OpenFlowはSDN(Software Defined Networking)を代表する技術です。Linuxシステムにとっても重要な技術ですので,今年のLinuxCon Japanで紹介する予定です。

著者プロフィール

Fernando Luis Vázquez Cao(フェルナンド・ルイス・バスケス・カオ)

東京を拠点に活動しているLinux開発者です。現在の関心領域は,バーチャリゼーション,SDN,そしてストレージ技術全般。オープンソース・コミュニティの活動にあたる一方,NTT OSSセンタのプリンシパル・ソフトウェア・エンジニア,NTTデータ先端技術株式会社のシニア・コンサルタントとしてコンサルティング業務やサポート業務に従事しています。

コメント

コメントの記入