Linuxカーネルベース VMM、lguest 11
ストーリー by yoosee
勉強用にもよさそうな感じ 部門より
勉強用にもよさそうな感じ 部門より
yosshy 曰く、
Xen、QEMU、KVM とオープンソースの仮想マシン環境が盛り上がっていますが、paravirt_ops API のメンテナ Rusty Russell が同 API を利用した新しい VMM「lguest」(旧称 lhype)を開発してます(README、他の仮想環境との違いなどのFAQ)。 これは QEMU のような完全なハードウェアエミュレーションではなく Xen の準仮想化環境に似た環境。 基本的な構成では、ホストカーネルとゲストカーネルに同一の Linux カーネルバイナリが使われます。 Xen に比べて単純ではありますが、その分シンプルで開発速度が速く、既に Andrew Morton の -mm パッチに含まれる段階まで進んでいます。
どんどん増える仮想マシン実装、何が生き残っていくのでしょうか。
やっぱり使ってみないとねっ (スコア:5, 参考になる)
debootstrapを使って仮想イメージを作り、手順書にしたがって起動させてみました。けっこうすんなり動きました。tuntap前提になってますが、ブリッジ(未確認)でも使えるみたいなので、外向けのサービスを分離して提供できますね。jailに近いかもしれませんが、(元と共有部分はありそうだけど)別カーネルで動くので、より分離度が高いように思えます。ホスト側のmasqueradeを併用して、ちゃんと外にも出られるので、ちょっとした研究用の空間を作るには十分かと思います。
suspend2の入ったカーネルなので、試しにhibernateスクリプトを使ってみたところ、カーネルパニック(笑)
落ちた時のログにあるEIPを見ると、どうもハードウェアまわりで秘孔を突くみたいです。今回のはpcspkrモジュール内でした。どうせ仮想化された空間なので不要だよね、と起動時にpcspkrを読み込まないように調整すると問題なくなりましたが、それでもhibernateはやっぱりパニック。
Xen等でサポートされている、仮想マシンの中断機構は今のところ難しいようです。
それでも、VServer同様、比較的手軽に仮想マシンを生成できるというのは面白いと思います。なにより仮想マシン用に専用カーネルを用意しなくていいというのはとっても楽です。
あと、今のところ私の探しかたが悪かったにせよ、仮想マシンのコンソールに接続する方法がなさげです。inittab内でのgetty起動は全部止め、openssh-serverを入れてリモートログイン形式にしないとログインがままならないという状況です。
-- やさいはけんこうにいちば〜ん!
Re:やっぱり使ってみないとねっ (スコア:3, 参考になる)
Re:やっぱり使ってみないとねっ (スコア:1)
/etc/inittabをいじってgettyの起動を抑止するようにして、sshによる接続のみに修正すれば普通はいいでしょう。
-- やさいはけんこうにいちば〜ん!
それぞれ淘汰されるようなものではないのかと。 (スコア:3, 参考になる)
と言われてますが、XenもQEMUもKVMも今回のlguestもそれぞれ用途というか実装方法が異なるので、どれがどれを食いつぶす、というような排他的なものではなく、それぞれ共存していくものかと。
今回のlguestは、むしろUML(User Mode Linux)に近い方向性なのかな・・・と思ったら、FAQではUMLとも違う、というようなことが言われてますね。
複数のLinuxカーネルを協調させて同時に動作させる、というようなイメージなんでしょうか。
kernelが一緒で他が別? (スコア:1)
なるのかな。それ以外は専用の空間で動作する?
FreeBSDのjailを強化したみたいな感じ?
そんな感じだったら、アプリケーションの開発環境としては便利かも。
Re:kernelが一緒で他が別? (スコア:2, 参考になる)
lguest とは多分また違うと思うけど、jail の強化版というと例えば kernel は完全に 1つだけど
ユーザ(ゲストOS)環境が独立している、いわゆるマルチインスタンス方といわれる仮想化もあります。
例えば OpenVZ/Virtuozzo がそういう実装ですね。
Solaris Zone (スコア:1, 参考になる)
Re:タレこまれて採用されたからですよ (スコア:0)
タウ・ゼロ [amazon.co.jp]?
# T/O は「タイトル・オンリー」の略です。
Re:タレこまれて採用されたからですよ (スコア:0)