簡易的なLinux用仮想化プラットフォームとしてのLguest

 これまでのところLinuxカーネルのメインラインツリーには3種類のハイパーバイザ(hypervisor)が取り込まれており、まず最初がカーネル2.6.20段階でのKVMで、その次に2.6.23リリースにおけるXenおよびlguestという順番になる。ここで言うハイパーバイザとは、ホストシステム上で複数のオペレーティングシステムを実行させる技術のことである。これら3つの選択肢の中で、操作と実装という観点から見た場合に最も簡単なのがlguestであり、これから仮想化テクノロジの動作する原理を学習したいというユーザに適したオプションだと言えるだろう。

 lguestは比較的新しいソフトウェアであるが、成熟の進んだ他のLinux用仮想化プラットフォームに見られる一部の高度な機能は装備されていない。例えばlguestの基本構成は、カーネルモジュールおよびクライアントランチャという2つに分けられるが、lguestランチャを用いてLinuxホスト上で仮想的に実行できるゲストOSは、ホストのカーネルバージョンと一致するLinuxゲストが1つだけという制約が付いている。またlguestは、ゲストOS側からのX出力をサポートしておらず、ネットワーク上の他のマシンで使われているハイパーバイザの別インスタンスにゲストOSを移動させるVMの移植機能も装備されていない。これらの欠如は重要な不備と見なさざるを得ないが、それでもシステムを再起動させることなく設定の異なるカーネルを試用したい場合など、lguestは有用なツールとして機能してくれるはずである。

 lguestプロジェクトの管理するコードベースは現状で6,000行程度でしかない。しかしながら新規のカーネルハッカーや仮想化マシンのモニタ開発者がシンプルなハイパーバイザの動作原理を学習するにあたっての有用かつ貴重な素材を提供しているのは、こうした小規模な構成のコード群なのである。先に触れたようにlguestには他のハイパーバイザにおける実装済みの各種機能が未だ装備されていないが、それ故にコード開発者達が各自の成果をメインラインのカーネルに取り込む際において、比較的扱いやすいテストベッドとなっているとも言えるだろう。