Linuxシンポジウムレポート

進化するLinux関連の仮想化技術

2007/11/01

 Linuxの仮想化サポートが多様化、高度化している。リナックスファウンデーション・ジャパン主催で11月1日に東京で開かれた「第6回 The Linux Foundation Japan Symposium」には、Linuxの仮想化技術の開発でリーダシップを取るキーパーソンたちが一堂に会し、仮想化技術の技術動向について講演した。

大幅に進化したLinuxの仮想化関連技術

linux01.jpg レッドハットで仮想化技術の開発に携わるクリス・ライト(Chris Wright)氏は

 過去1年ほどで、Linuxカーネルやライブラリ、関連ソフトウェアは仮想化技術に関して大きく進化した。レッドハットで仮想化技術の開発に携わるクリス・ライト(Chris Wright)氏は、「準仮想化」(パラバーチャライゼーション)と「完全仮想化」(フルバーチャライゼーション)に分けて、最近の成果を紹介したほか、新たにハイパーバイザの上に追加するソフトウェアライブラリのレイヤ「Libvirt」などについて説明した。

 準仮想化の領域で最大のトピックは、7月にリリースされたカーネル2.6.23-rc1でXenが統合されたこと。統合に先立つ半年間にも、Xenは進化している。2006年12月のXen 3.0.3から2007年5月の3.1.0までに、VM設定ファイルのXML化、VMのライフサイクル管理、XML-RPCによる仮想化システムの遠隔管理を可能にするXenAPIの導入、IA64環境でのパフォーマンス強化、電力管理機能の強化、64ビット環境での32ビットゲストOSのサポートなどの機能強化があったという。また、特筆すべきはこうした「時期によってばらつきはあるが、Xenに対する機能強化のうち15〜20%は日本人開発者からのコントリビューション」(ライト氏)という。XenAPIは日本語にも翻訳されており、「今後、日本からの開発者が増えると期待している」(同)。

 このほか準仮想化では、ヴイエムウェア、XenSource、IBM、レッドハットなどが協力してparavirt_ops関連のシステムコールをカーネルに追加した。

異なる仮想化ソフトの違いを吸収するレイヤが登場

 Xen、KVM、lguest、QEMUなど仮想化ソフトウェアの種類が増えるに従って問題となったのは、ブロックデバイスやディスプレイデバイス、NICなどのドライバを、それぞれの仮想化技術に合わせて最適化する必要が出てきたことだ。

 こうした問題に対する解として、2007年10月のカーネル2.6.24-rc1でI/O仮想化技術「virtio」もカーネルに取り込まれたという。virtioのアイデアは、各ハイパーバイザが直接I/Oにアクセスするのではなく、仮想的なドライバを共有することで、仮想化環境の違いを吸収しようというものもだという。

 仮想化ソフトウェアが増えたことで、運用管理面での煩雑さも増しつつある。このためXenAPIの発想をXen以外にも拡張したライブラリ「libvirt」も利用可能になっている。現在、XenのほかKVMとQEMUに対応し、Python、C、OCamlなど「ほとんどどんな開発言語でも利用できる」(ライト氏)。ハイパーバイザの違いを吸収するもので、VMの生成、消去、スタート、停止などを統一したAPIで行えるという。

CPUの仮想化サポート進化で「ネイティブ並み」の速度に

 ハードウェアによる仮想化環境の支援機能も着実に進化し、Linux側の対応が進んでいる。

 VM側とホストOS側の処理を切り替えるCPU命令「VMEnter/VMExit」のスイッチコストは引き続き減少し「システムコールのレベルに近づいている」(ライト氏)という。プロセスの実行優先順位を変更するWindows 2000以前のWindows系OSが頻繁に発行するCPU命令「TPR」(task priority register)についても、CPU側にこの命令をトラップする仕組み「vTPR」が追加されているという。また、仮想環境の物理メモリと、ホスト環境の物理メモリのアドレスをマッピングする「シャドー・ページ・テーブル」についても、次世代のCPUでは「ETP」(インテル)、「NTP」(AMD)の名前で仮想MMUサポートとして取り入れられるなど、ゲストOSの実行速度はネイティブ並みの速度に近づいていくだろうという。

適用可能領域を広げるKVM

linux02.jpg 米QUMRANETのアヴィ・キヴィティ(Avi Kivity)氏

 2006年初頭にプロジェクトがスタートし、2006年12月にカーネル2.6.20-rc1で取り込まれた「KVM」は、完全仮想化の大きなトピックだ。KVM開発でリーダーシップを取る米QUMRANETのアヴィ・キヴィティ(Avi Kivity)氏は、「x86プラットフォームだけを対象とし、完全仮想化だけにフォーカス。ホスト側に一切変更を加えないという方針だったが、それは誤りだった」として、現在、IBMのs/390やIA-64など大規模サーバ向けのプラットフォームや組み込み向けとしてPowerPCプラットフォームのサポートを進めていると話す。準仮想化サポートや、パフォーマンス改善のためのカーネル側のチューニングなども行う。これまでKVMの特徴はホスト側に変更を加えることなく、ホストOS上の通常のプロセスとしてゲストOSを実行できることにあった、徐々にそのスタンスを変えつつあるようだ。KVMはこうした変更により、Linuxカーネル同様に、大規模システム、サーバ、デスクトップ、組み込みと適用領域を広げつつある。また、XenとKVMとの違いとして、キヴィティ氏は既存のLinuxのコードやツールを流用できること、またXenで必須となる管理用の仮想環境「dom0」が不要でオーバーヘッドが小さいことを挙げた。

(@IT 西村賢)

情報をお寄せください:

アイティメディアの提供サービス

キャリアアップ


- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...