一般的に仮想化といえばコンピュータのハードウェアをBIOSからほぼ完全にエミュレーションすることでゲストOSを稼動させるものというイメージを持たれる事が多いかと思います。VMWareやVirtualPCで有名になったこの方式を「完全仮想化」(Fullvirtualization)といいます。

それに対し、Walbrixで使われている仮想化技術は「準仮想化」(Paravirtualization)と呼ばれるものです。準仮想化ではハードウェアのエミュレーションを行いません。そのため、実ハードウェアに直接アクセスせず仮想ハードウェアにのみアクセスするようにカスタマイズされた"準仮想化対応OS"のみゲストOSとして稼動させる事ができます。

ハードウェアを完全にエミュレーションする処理は非常に重いため、その分の処理が不要な準仮想化技術は性能をそれほど低下させることなく仮想OSを走らせることができるという点で完全仮想化に対するアドバンテージがあります。Walbrixが仮想化OSを標榜しながらも低スペックなコンピュータで稼動させることが出来るのは準仮想化技術を採用しているからなのです。

準仮想化技術の欠点とそれに対するソリューション

準仮想化の欠点は、先にも述べたように準仮想化用にカスタマイズされたOSしか走らせることができないということです。Linux、FreeBSD、NetBSD、Solarisなど様々なOSが準仮想化に対応しているものの、実際にはOSのカーネル(中枢部分)が準仮想化に対応したというだけのことで、「準仮想化対応版インストーラ」が存在するわけではありません。そのため従来は、「インストーラなしでOSをインストール出来る」ようなごく一部のエキスパートしか準仮想化技術を利用することができませんでした。

いろいろな考え方があると思いますが、準仮想化技術が Amazon EC2やデータセンターのVPSサービスで利用されるにとどまり一般に全く認知されていないのは上記のような理由からだと私は思っています(Amazon EC2は準仮想化技術を使用しています)。

そこでWalbrixは準仮想化技術におけるその欠点(エキスパートにしか扱えない)を補うべく開発されました。ありふれたPCを使って、まっさらの状態からホストOS・ゲストOSまで合わせてたったの10分足らずで知識無しのまま稼動へ持っていくことの出来る仮想化OSは世界中を探しても他にないはずです。世界のどこかにもしあったとしても、少なくとも完全に日本語の画面だけで操作できるものはWalbrixだけです。

準仮想化技術で狙う領域とは

そのうちに、完全仮想化を支援するための機能がCPUに搭載されるようになりました。これにより、完全仮想化の実行性能を向上させることが可能になっています。AMDの64bit CPUはほとんどが仮想化支援命令を搭載しており、IntelのCPUも2010年からはほとんどのモデルで対応が行われています(2009年までは一部の高位モデルのみ仮想化支援命令を搭載していました)。

しかしCPUが仮想化支援命令を持っていたとしても、やはり準仮想化で動作するようにカスタマイズされたゲストOSのほうが完全仮想化よりも軽量で起動も速く取り回しがしやすいのは変わりません。仮想化技術の主流が完全仮想化に向かうとしても、準仮想化は主に動作効率の面からいつまでもそれなりに利用価値のある技術でありつづけると言えるでしょう。

それに、仮想化技術が完全仮想化に一本化されてしまっては、仮想化支援命令を搭載していない旧型のコンピュータをどうすればいいのでしょうか。先述したように、2009年までに販売されたIntelのCPUはほとんどが仮想化支援命令を搭載していません。これらのコンピュータは当然現役で稼働しており、少なくとも今後数年にわたってリプレースにより順次余剰化していくことでしょう。

リプレースで余ってしまったPCを有効活用するひとつの手段としてサーバ化がありますが、仮想化技術が利用できないとしたら多目的で柔軟な運用ができないばかりかクラスタ化やバックアップも難しくなるため、結局は手間に見合う見返りを得ることができず「捨てた方がマシ」ということになってしまいます。でも本当は一世代前のコンピュータであっても中小企業や部署内利用のサーバとしてなら性能は十分ですし、2台を束ねてクラスタにすれば堅牢性だって確保出来ます。つまり、仮想化さえ出来ればリプレースで余ったコンピュータを捨てなくて済むかも知れないのです。

2台3台と言わずもっとたくさんの台数を集めてひとつの巨大な計算機資源プール(プライベートクラウド)を作ることができれば、旧世代化したPC資源の再利用としては最高に理想の形です。そのためには仮想化技術が当然必須となりますが、大手ベンダの仮想化製品は仮想化支援命令対応のCPUを搭載した最新のハードウェアでしか動作しません。当然ですね、彼らは最新型のハードウェアを一緒に販売することで利益を得るのですから。

逆に言えば、そこ(旧世代の計算機資源を仮想化して束ねる)は絶対に大手の参入してこない分野だと言えます。零細企業であるSTBBS.NET, LLCは、そこがブルーオーシャンかもしれない(もし"ブルー水溜り"くらいの規模だったとしても零細企業が存続するのに十分であればまあ良いです)と見て、Walbrixによる準仮想化技術の浸透を試みています。そこには水がそもそもありませんでしたということになったらきっと切ない想いもするでしょうが、すくなくともWalbrixは社内用のOSとしては役に立っていますし、既存顧客の方々にも使っていただいているし、なんといっても名前の付いた自社製品を持つことで「何をしてるかわからない会社」として見られずに済む(それが実は一番重要だったり)ので無駄ではないと思っています。

想定問答集

そもそも、インストーラなしで Linuxをインストールするなんてことが出来るのですか?

はい、例えば Gentoo Linuxにはインストーラがありません。そのためかわかりませんが、Xenの準仮想化技術を愛用する人にはGentooユーザーが多いようです。かくいうWalbrixもGentoo Linuxをベースにしています。

UbuntuやFedoraといったLinuxディストリビューションを準仮想化に対応させるためのカスタマイズは誰がしているのですか?

Walbrixの開発元であるSTBBS.NET, LLCが行っています。仮想アプライアンスの作り方に従えばユーザー側でも任意のインストール済みLinuxを準仮想化用にカスタマイズすることができます。

各種Linuxを準仮想化環境に合わせてカスタマイズしたり、アプリケーションをプリインストールした仮想アプライアンスを作成したりする作業は Twitterで募集したら手を挙げてくれた優秀な若い方が内職として手伝ってくれており大変助かっています。Twitterは本当に便利ですね。内職はまだ募集しています。

Walbrixは完全仮想化には対応していないのですか?

Walbrixが使用しているハイパーバイザ(Xen)は、CPUが仮想化支援命令を持っていれば完全仮想化でゲストOSを動作させることが出来ますので、Xenを直接取り扱うための知識があれば完全仮想化を利用できます。

仮想化支援命令の有無はWalbrixのステータス画面で確認することができますが、ただし準仮想化のゲストOSに対して仮想化支援命令は使用されませんので動作の性能に影響はありません。これはXenの仕様です。