もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

CloudCore VPSにはインストールできないOSが結構ある?

CloudCore VPSでは、HDDに準仮想化デバイスであるところのvirtio-blkが用いられています。
このせいでCloudCore VPSではどうしたって動かせないOSがある模様です。


ここで、virtioってなんぞ?と言うのをドヤ顔で説明させて頂きます(どやっ)。


一般的な仮想化S/Wでは仮想マシン内の各種デバイスを表現するために、実際のデバイスのエミュレーションを行っています。
例えば昔のVMWareではNICとしてAMDのPCNET32と言うカードをS/Wで実装していました。
(今でもしてるけど。)


この方式のいい所はゲストOSがPCNET32用のドライバを持っていれば、ゲストOSに手を加えることなく通信が行えることです(デバイスの完全仮想化)。
逆にPCNET32の動きを真似るための「無駄な処理」が発生するので、効率が悪いと言うデメリットもありました。


そこで無駄な処理をしなくていいように仮想マシンに特化したデバイスを定義して、ゲストOSにはそのドライバを提供することにしました(デバイスの準仮想化)。


さっきのVMWareでは仮想マシン特化NICとしてvmxnetと言うデバイスがあります。
vmxnetのドライバはVMWare Toolでインストールします。
(最近のLinuxにはvmxnetドライバが標準で付いてたりもします。)


さて、最近になってkvmVirtualBoxなど、仮想化S/Wが爆発的に増えてました。
そしてそれぞれが専用デバイス&ドライバを作ってたら非常に面倒くさいと言う事態となりました。


そこでvirtioと言う準仮想化デバイスの標準が生まれました。
これによりゲストOSにvirtioドライバを入れておけば、virtio対応S/Wならどれでも良好なパフォーマンスが得られるようになりました。


問題はvirtioの歴史が浅く、各ゲストOSでのドライバのサポートがマチマチなことです。


ここでCloudCore VPSに話を戻します。


CloudCore VPSではHDDに準仮想化デバイスであるところのvirtio-blkが用いられています。
んで、現状virtio-blkをstableにサポートしてるOSはLinuxのみっぽいです。


FreeBSDは2年後リリース予定の10(現在はCURRENT)にて対応予定。
WindowsはFedoraがドライバを出してるっぽいけど、CloudCore VPSでWindowsを無理やりインストールしてドライバを適用するのはそこそこ大変。
OpenIndiana(OpenSolaris)もググる限りでは怪しそう。
その他マイナーOSはもちろんダメ。


と言うわけで、現状はLinuxのディストリを入れ替えて遊ぶのがよさ気です。
CloudCore VPSがどうやってFreeBSDとかNetBSDをサポートするのか気になります。
BSDの時だけ完全仮想化にするのかしらん。それなら動くOSがいっぱい増えるのですが。)


追記:
9 RELEASEでもvirtioドライバを加えれば行けるみたいです。すごい。
masaki's memo - (FreeBSD)CloudCore VPSにインストールしてみる