IDFで明らかになったクライアントハイパーバイザー
先週、米国のサンフランシスコで開催された米Intelの開発者セミナー「IDF(Intel Developer Forum) 2009」では、米Citrixのクライアント仮想化ソフト「XenClient」に関するセッションが開催された。今回は、XenClientを元にクライアントハイパーバイザーを解説する。
■クライアントハイパーバイザーはPCの利用形態を自由にする新たなインフラ
XenClientは、サーバー用のハイパーバイザー「Xen」をベースにして開発されたPC向けのハイパーバイザー(クライアントハイパーバイザー)だ。PCでハイパーバイザー?と思われる読者もいるだろう。しかし、最近ではPCの仮想化が非常に重要になってきている。
Windows 7 Professional Edition以上で搭載されたWindows XP Modeは、Windows 7上にVirtual PCを搭載することでWindows XPを動かしている(ホスト型の仮想化)。これにより、Windows XPのアプリケーションを動かすことができる。しかし、Windows XP Modeでアプリケーションを動かしても、快適に動作しているとは言い難い。ホスト型の仮想化の場合、Windows XP ModeでWindows XPのアプリケーションを快適に動かすには、相当パワフルなCPUや大容量のメモリが必要になるからだ。
しかし、クライアントハイパーバイザーであれば、Windows XPをある程度のパフォーマンスで動かすことができる。また、同時にWindows 7も動かすことができるため、Windows XPでしか動かない業務アプリケーションだけをWindows XPで動かし、そのほかの業務作業はWindows 7を使うといった使い方ができるのだ。
クライアントハイパーバイザーのもう一つのメリットは、クライアントPCの使い分けができることだ。ウイルスなどに犯されたPCにより重要なデータが流出するなど、企業において、クライアントPCの管理は大きな課題だ。このため、会社で使用するPCは、きちんとウイルス対策ソフトを導入し、ユーザーが勝手にアプリケーションをインストールできなくして、がちがちに管理している企業も多い。しかし、これでは高性能なPCを生かしきることができない。
また、ITの利用法も大幅に変化してきており、会社のデスク上にあるPCだけでなく、ノートPC、携帯電話などさまざまなデジタルデバイスを利用するようになっている。このため、1台のPCをがちがちに管理するのではなく、ビジネスに使用するPC環境だけをきちんと管理しようという方向性に変わり始めている。
クライアントハイパーバイザーを利用すれば、仕事用のOS環境と個人用のOS環境を分けることができる。例えば、1台のPC上に2つの環境をお互いに干渉することなく同居させることができれば、PCそのものを企業が購入する必要もなくなる。つまり、従業員は企業から補助を受けて自分の好みのPCを購入し、仕事用のOS環境をクライアントハイパーバイザー上に構築すればいいというわけだ。
仕事用のOS環境は、IT管理者がきちんと管理しており、ユーザーが勝手に設定を変更したり、アプリケーションをインストールすることはできなくなっている。しかし、同じPC上にユーザーが好きにアプリケーションをインストールできる個人用のOS環境があれば、自分の使いやすいように環境を整えることもできる。
将来的に、仕事用のOS環境がクラウド上に保存されるようになれば、仮想化されたOS環境をネットワークで引き出すことで、異なるPCでも同じ環境を動かすことができるようになるかもしれない。
クライアントハイパーバイザーは、こういったことができるようになるためのインフラといえる。
クライアント環境を仮想化することで、OSのパッチやアプリケーションの更新などの管理もシングルイメージで管理できる | 将来的には、仮想マシンをデータセンターに置き、クライアントPCでアップデートされた情報をデータセンターに送信することで、クライアント環境のバックアップが簡単に取れる。もちろん、スナップショットが取れるため、昔の環境に簡単に戻すことも可能だ |
■XenClientでみるクライアントハイパーバイザー
XenClientでは、セキュアなビジネス環境と自由なパーソナル環境を同一マシン上で実現する |
VT-d機能によりグラフィックカード(GPU)を直接仮想マシンに割り当てることで、GPUの機能を仮想マシンから利用することができる |
VT-dの機能説明。仮想マシンから直接、I/Oにアクセスすることができる。ハイパーバイザーは介在しない。ここでは、ネットワークとなっているが、グラフィックカードにも応用できる |
XenClientのハイパーバイザーは、Xenをベースにして開発されている。このため、CPUの仮想化支援機能(VT-x)などを使って、パフォーマンスをアップしている。特に、第二世代の仮想化機能といわれるEPT(Extend Page Table)などの機能を利用すれば、仮想化のオーバーヘッドが非常に小さくなり、物理マシンと比べると数パーセントのオーバーヘッドで仮想マシンを動かすことができる。
XenClientでは、ドメイン0といわれる仮想化を管理するためのOS(Linux)が搭載されている。このドメイン0がデバイスドライバを持ち、各仮想マシンからのアクセスをコントロールしている。各仮想マシンのOS上では、仮想化専用のドライバをインストールすれば、仮想環境にマッチさせることができる。
このとき、もっとも問題になるのがグラフィック(GPU)だ。最近のグラフィックカードは、どんどんインテリジェント化して、単にグラフィックを表示するだけのものから演算ユニットになってきている。しかし、ハードウェアとして、GPUを仮想化するまでには発展していない。これは、グラフィックチップベンダーやOSベンダーが、そこまでの仮想化を考えて作ってはいないからだ(将来的な計画はあるが、実現には時間がかかる)。
現状のままクライアントPCの仮想化を行うと、サーバーの仮想化と同じように、ソフトウェアでエミュレーションした標準VGAグラフィックでしか動作しない。このため、Windows 7のAero UIやDirectXベースのゲームなどは、仮想化したクライアントPCでは動作しないことになる。これでは、クライアントPCの仮想化としては大きな問題となる。
そこで、考え出されたのが、IntelのVT-dといったI/O仮想化の技術を使って、仮想マシンの直接グラフィックカードを割り当てようというものだ。
いわゆるパススルーでグラフィックカードを仮想マシンに割り当てることで、仮想マシン上では、ダイレクトのグラフィックカードを扱うことができる。つまり、仮想マシンでありながら、DirectXベースのゲームを動かすことができるようになる。
仮想マシンにダイレクトに接続するといっても、一つの仮想マシンがずっと占有するわけではない。ドメインOのコントロール機能により、別の仮想マシンにスイッチしたときには、その仮想マシンにグラフィックカードが占有されることになる。つまり、同じ画面に2つの仮想マシンの表示はできないということだ。
画面での操作が多くなるクライアントOSは、仮想マシンがグラフィックカードを占有しても、利用上は大きな問題にはならない。画面表示がされていない仮想マシンも、動作がストップするのではなく、画面が表示されていないだけで、バックグラウンドで動作はしている。
XenClient上で動作しているWindows Vistaの仮想環境。Windowsエクスペリエンスも3.7と仮想化でも高い数値を示している | VT-dにより、仮想マシン上で動いているWindows VistaでもIntelの4Xシリーズがデバイスマネージャーに表示されている | Windows VistaのAero UIも仮想化上で動作している |
もう一つ重要なのが、USBデバイスの共有だろう。ESXなど一部のハイパーバイザーでは、仮想マシン上のUSBメモリの共有などが行われている。しかし、さまざまなUSBデバイスを共有するまでにはいたっていない。
ネットワークなどは、Xenの準仮想化ドライバが入っている |
そこで、XenClientでは、ドメイン0に各種のUSBデバイスを動かすためのドライバをインストールし、仮想マシン上には準仮想化USBドライバをインストールする。
Intelでは、企業向けのvProとクライアントハイパーバイザーを密接に構築することで、vProのセキュリティ性の高いOS環境(トラステッドOS)が実現できる。
例えば、Intel CPUが持つTXT(Trusted Execution Technology)を利用して、クライアントハイパーバイザーやドメイン0のメジャーメント(いわゆるチェック)を行い、ハイパーバイザーやOSがウイルスや悪意のあるコードに犯されていないかをチェックすることができる。もちろん、仮想マシンもメジャーメントできるので、仮想マシン環境の信頼性を確保することもできる。
さらに、XenClientでは、TXTなどの機能を利用して、セキュアなアプリケーション動作が可能になっている。例えば、キー入力を横取りして、IDやパスワードを盗むキーロガーがOSに侵入していても、セキュアなWebブラウザを利用すれば、キーロガーなどが動作していても、キー入力を盗み取ることができなくなっている。
また、XenClientでは、Service VMという考え方もある。これは、Xenにある仮想アプライアンスと同じようなコンセプトだ。例えば、PC用のVoIPソフトをWindows上でアプリケーションとして動かすのではなく、仮想アプライアンスとして、区分けされた独自の環境で動かすことで、Windowsのほかのアプリケーションとぶつかって動作が不安定になるということもなくなる。ユーザーインターフェイス部分だけは、Windows OS上に構築して、VoIPの中核機能は、仮想アプライアンスとして導入すればいい。
こういった仮想アプライアンスを考えれば、指紋認証やカード認証などの認証システムやファイアウォールなどさまざまなモノが考えられる。もちろん、TXT機能を利用すれば、これらの仮想アプライアンスがウイルスに冒されていないかをチェックすることも可能だ。
セキュアな仮想環境を作るために、vProの機能が重要になってくる | TXTによりさまざまなデバイスやOSのメジャーメントが行われ、トラステッドな環境が構築される | TXTを使えば、セキュアなOSブート、データをUSBメモリにコピーしたり、印刷できなくすることもできる |
クライアントハイパーバイザーは、いろいろとメリットが大きいし、面白そうなテクノロジーだ。しかし、XenClientの場合、ドメイン0がLinuxベースとなるため、Windowsのようにさまざまなデバイスが利用できるかが問題になる。例えば、地デジのチューナーカードなどは、クライアントハイパーバイザーの環境では動作しないかもしれない。このように、サポートされるデバイスもある程度制限されるかもしれない。
ただ、ビジネスで使用するPCは、それほど多種多様なデバイスは利用されていない。このため、ある程度デバイスが制限されていても問題ないだろう。
IntelのvPro用にチューニングされたCitrixのXenClientは、2009年の年末までにリリースされる予定だ。クライアントハイパーバイザー自体は、無償でOEMメーカーに提供される。Citrixは、クライアントハイパーバイザーでもうけるのではなく、クライアント管理ツールを販売する計画だ。
2009/9/28/ 00:00