ウインドリバーの仮想化ソフトウェア「Wind River Hypervisor」。すでに通信、車載、OA機器分野などで適用事例が生まれている。
ウインドリバーは2009年6月、組み込み向け仮想化ソフトウェア「Wind River Hypervisor 1.0」をリリースした。その名前のとおり、ホストOSが不要で物理ハードウェア上で直接稼働する「ハイバーバイザ型」であり、マルチコアプロセッサの各コアに対応した1つの、もしくは1つのコアに対応した複数の「Virtual Board(仮想ボード)」を構築し、それぞれの仮想ボードで別個のゲストOS、アプリケーションを動作させられる。
Wind River Hypervisorは、組み込みの特性に適応した仮想化環境を実現している。準仮想化方式を採用するとともに、「Intel VT-x」などプロセッサの仮想化支援機能を活用するため、フットプリントが小さく、オーバーヘッドを最小に抑えられる。また、厳密なタスク切り替えを確保するため、優先度に基づくスケジューラ機能を備え、ゲストOS間の通信は、共有メモリを介して「MIPC(Multicore/Multi-OS Interprocess Communication)」という独自方式で行われる。
ご存じのとおり、仮想化そのものは古くからある技術だが、組み込み分野においては依然、挑戦的な技術といえる。この種の新技術は普及に時間がかかる。だが、Wind River Hypervisorはリリース後、快調に推移しているという。同社 Senior Director,Product Management,Multicore and VirtualizationのCory Bialowas氏は「すでに多くの実証段階、開発段階の案件を獲得しており、その適用分野は、通信設備、MFP、自動車、コンシューマにわたる」と語る。
Bialowas氏によれば、採用に最も積極的なのは、「絶え間ない高速化が求められている通信設備分野だ」という。あるメーカーは、機器の性能を4倍、ボード数を3分の1に集約、つまりボード当たりの性能を12倍にするため、Wind River HypervisorによるマルチコアプロセッサのAMP構成を採用した(同製品は現状、SMP構成に非対応)。ゲストOSはすべて「Wind River VxWorks」(以下、VxWorks)。マルチコア化で性能が向上するのは当然として、単なるAMP構成とは違い、仮想化により各ゲストOSでメモリ空間が完全に分離されるため、1つのゲストOSの変更・障害がほかのゲストOSに影響しない。また、クラッシュしたゲストOSは自動的にリブートされるため、可用性が高まるという。Bialowas氏は「マルチコアによる性能向上のメリットを享受しながら信頼性も高められる。これが仮想化の大きなメリット」と指摘する。
車載分野では、次のような採用例がある。あるメーカーのテレマティクス機器において、ブート開始から50msでCAN(Controller Area Network)バスに接続する必要があったが、重いLinuxアプリケーションのブートでは実現不可能。通常ならCANスタックを切り離し、別プロセッサを割り当てることになるが、Wind River Hypervisorを採用して1つのプロセッサ上でアプリケーションとCANスタックを分離。アプリケーションは「Wind River Linux」上、CANスタックはベアメタル上で稼働させる構成にした。これでCANスタックのみ50ms以内、アプリケーションは後追いで立ち上げられるわけだ。そのほか、車載分野では、バックカメラ機能をインフォテイメント機器に組み込む際、ソフトウェアを分離するために使っている例もあるという。
同社 Chief Technology Officer,VP&GM,Tools&Common Technologies DivisionのTomas Evensen氏は次のように話す。「組み込みソフトウェアの肥大化が大きな問題となっている。1つのOSに合わせたコード体系で全機能を実現すると、検証に時間がかかり、問題があった場合に影響が広い範囲に及ぶ。それを防ぐには、機能ごとに最適なOSを割り当てられるハイパーバイザ型の仮想化が有効だ。一部のユーザーはそれに気付いている」。
ウインドリバーは、Evensen氏の指摘するソフトウェア分割に従来取り組んできた。「メモリ空間やCPU時間、コンフィグレーションをアプリケーションごとに分離する機能を持つ『VxWorks 653』をリリースしたのが2001年。そのVxWorks 653は、主にクリティカルな航空宇宙・防衛分野で使われている」(Evensen氏)。つまり、ハイパーバイザ的な機能を2001年当時から実現していたわけだ。また、RTOSのVxWorksと汎用OSのWind River Linuxのハイブリッドソリューションも実績豊富。そのOS間通信で使われる通信プロトコル「TIPC」が、Wind River Hypervisorに実装されるMIPCのベースとなっている。同製品がリリース後すぐに通信設備や車載などのクリティカルな分野で適用されはじめたのは、こうしたバッググラウンドがあるからだろう。
ウインドリバーは、組み込み分野での仮想化へのニーズは高いと見て、Wind River Hypervisorの拡張に力を入れる。2010年2月には最新版の「1.1」をリリースした。主な改良点は、(1)シェアード型の周辺デバイス対応、(2)最新のJTAGソリューション「Wind River On-Chip Debugging(以下、OCD)」との統合、(3)インテルの新マイクロアーキテクチャ「Nehalem」への対応だ。
(1)シェアード型の周辺デバイス対応とは、MIPCによる仮想ボード間通信を介して複数のゲストOSが1つの周辺デバイスを共有すること。実際は“オーナー”となる1つのゲストOSが備えるドライバを介し、別のゲストOSは周辺デバイスに接続する。旧版は基本、各ゲストOSが個別にドライバを持ち、直接接続するダイレクト型にのみ対応していた。シェアード型とダイレクト型を組み合わせれば、周辺デバイスへ最適な接続形態が取りやすくなる。
(2)Wind River HypervisorとOCDとの統合はデバッグ作業を容易にするだろう。もともとOCDは、マルチコアプロセッサ環境に対応したデバッグツールだが、Bialowas氏は「1つのJTAGポートを介して、複数の仮想ボードを一括してオンチップ・デバッキングできる。例えば、1つのコアで設定したブレークポイントは、ほかのコアにも自動的に反映される」と自信を見せる。
仮想化技術におけるウインドリバーの強みは、ハイパーバイザのみならず、その環境での動作が検証されたOS・ミドルウェア、マルチ環境で複雑化する開発をサポートする統合開発環境「Wind River Workbench」を一体で提供できるところにある。そこに、デバッグツールのOCDも加わり、ソリューションの厚みがさらに増した。さらに、Evensen氏は「(インテルの買収により)同じグループ企業となったバーチャテックのシステムレベル・シミュレータ『Simics』を使えば、遅延やタイミングの詳細な検証が可能になる」と語る。
Wind River Hypervisorの拡張で最も注目されるのは、(3)対応プロセッサの拡充である。周知のとおり、ウインドリバーは2009年6月にインテルの子会社となった。その点からいえば、インテルプロセッサの主役となったNehalemアーキテクチャのサポートは既定路線だろう。具体的には、ハイエンド・メインストリームPCで使われる「Core i5」「Core i7」、サーバ向けハイエンドプロセッサ「Xeon 5500シリーズ」である。Bialowas氏は「より高性能なマルチコアプロセッサで仮想化環境を実現したいというユーザーは多い」と説明する。
ただし、Wind River Hypervisorのプロセッサ対応において、とりわけインテル製品を優先しているわけでもないようだ。Evensen氏は「今回のバージョンでは間に合わなかったが、『ARM』や『MIPS』、『QorIQ』への対応も進めている。組み込み機器では、それぞれの分野で強みを持ったプロセッサがある。ウインドリバーは中立の立場で対応していく」と説明する。実際、前述したテレマティクス機器の適用事例では「ARM11」が使われている。OS対応についても、自社のVxWorks、Wind River Linuxの最新版のみならず、「Windows XP」への対応も実現している(2010年3月にドイツで開催された「Embedded World 2010」において、VxWorksとXPのマルチOS機器をデモ展示)。
今後は、組み込み分野でもマルチコアプロセッサによるAMP構成が普通になってくるだろう。そのとき、プロセッサ資源をうまく差配する仮想化技術はいっそう重要になる。ウインドリバーはこの分野で先陣を切った感がある。
Copyright © ITmedia, Inc. All Rights Reserved.