パスワードを忘れた? アカウント作成
15585 story

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 パッチに含まれる段階まで進んでいます。
どんどん増える仮想マシン実装、何が生き残っていくのでしょうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by densuke (113) on 2007年06月05日 14時19分 (#1168316) 日記
    人柱してみました。2.6.21.1にlguestパッチを適用したものです。
    debootstrapを使って仮想イメージを作り、手順書にしたがって起動させてみました。けっこうすんなり動きました。tuntap前提になってますが、ブリッジ(未確認)でも使えるみたいなので、外向けのサービスを分離して提供できますね。jailに近いかもしれませんが、(元と共有部分はありそうだけど)別カーネルで動くので、より分離度が高いように思えます。ホスト側のmasqueradeを併用して、ちゃんと外にも出られるので、ちょっとした研究用の空間を作るには十分かと思います。

    suspend2の入ったカーネルなので、試しにhibernateスクリプトを使ってみたところ、カーネルパニック(笑)
    落ちた時のログにあるEIPを見ると、どうもハードウェアまわりで秘孔を突くみたいです。今回のはpcspkrモジュール内でした。どうせ仮想化された空間なので不要だよね、と起動時にpcspkrを読み込まないように調整すると問題なくなりましたが、それでもhibernateはやっぱりパニック。
    Xen等でサポートされている、仮想マシンの中断機構は今のところ難しいようです。

    それでも、VServer同様、比較的手軽に仮想マシンを生成できるというのは面白いと思います。なにより仮想マシン用に専用カーネルを用意しなくていいというのはとっても楽です。

    あと、今のところ私の探しかたが悪かったにせよ、仮想マシンのコンソールに接続する方法がなさげです。inittab内でのgetty起動は全部止め、openssh-serverを入れてリモートログイン形式にしないとログインがままならないという状況です。
    --
    -- やさいはけんこうにいちば〜ん!
    • by yosshy (3545) on 2007年06月05日 23時16分 (#1168639) 日記
      あと、今のところ私の探しかたが悪かったにせよ、仮想マシンのコンソールに接続する方法がなさげです。inittab内でのgetty起動は全部止め、openssh-serverを入れてリモートログイン形式にしないとログインがままならないという状況です。
      手前の環境にてシングルユーザモードで動かすと、Lguest を実行したターミナルでコンソール操作ができました。tty コマンドを実行すると /dev/console と出ます。 もしかしてマルチユーザモード(/dev/tty1〜)で getty を動かしていませんか?
      親コメント
      • そうですね、シングルユーザで起動すると、コンソールに接続できるのですが、通常サーバとして用いるのであれば、RunLevel 2や3になると思います。この時でも起動した端末にてVMのコンソールが使えたらなとか思った次第です。Xenではそういうのがあったし(ネットワークを介さずにコンソールログインを呼び出せる)期待したのでした。

        /etc/inittabをいじってgettyの起動を抑止するようにして、sshによる接続のみに修正すれば普通はいいでしょう。
        --
        -- やさいはけんこうにいちば〜ん!
        親コメント
  • >どんどん増える仮想マシン実装、何が生き残っていくのでしょうか。
    と言われてますが、XenもQEMUもKVMも今回のlguestもそれぞれ用途というか実装方法が異なるので、どれがどれを食いつぶす、というような排他的なものではなく、それぞれ共存していくものかと。

    今回のlguestは、むしろUML(User Mode Linux)に近い方向性なのかな・・・と思ったら、FAQではUMLとも違う、というようなことが言われてますね。
    複数のLinuxカーネルを協調させて同時に動作させる、というようなイメージなんでしょうか。

  • by ribbon (11750) on 2007年06月04日 23時42分 (#1167955) 日記
    kernelがダイナミックリンクされるライブラリみたいに、VM間で共有されることに
    なるのかな。それ以外は専用の空間で動作する?

    FreeBSDのjailを強化したみたいな感じ?

    そんな感じだったら、アプリケーションの開発環境としては便利かも。
    • by Anonymous Coward on 2007年06月04日 23時56分 (#1167967)
      > FreeBSDのjailを強化したみたいな感じ?

      lguest とは多分また違うと思うけど、jail の強化版というと例えば kernel は完全に 1つだけど
      ユーザ(ゲストOS)環境が独立している、いわゆるマルチインスタンス方といわれる仮想化もあります。
      例えば OpenVZ/Virtuozzo がそういう実装ですね。
      親コメント
  • Solaris Zone (スコア:1, 参考になる)

    by Anonymous Coward on 2007年06月05日 2時54分 (#1168054)
    に近いのかな [sun.com]
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...