Xenでetchからlennyに

既に書いたように、サーバをlennyにしてしまった。まだあまりお勧めは出来ないのだけど。

Xenはちょっとハマりどころがあるので、TIPS。

lennyのXenはVer 3.2.1が入っている。Xenの情報をネットで探すと、3.0以前のやら3.0のやらはいっぱいあるのだけど、3.2はあまりない。しかも、lennyはついこないだ出たばかりだから、そういったことでも情報は少ない。

なけなしの3.2の情報を探すと、いくつかのディレクティブが変更になっていて、

  • ‘ramdisk’が’initrd’に
  • ‘file:’が’aio:tap:’に
  • ‘xenbr’が’eth’に

変更になったらしいことがわかる。そこで元々ある設定ファイルをこのように変更すると、

動かない

のだ。特に’file:’のは「rootになるものがないんで待ってる」という意味のメッセージが出て、5分くらい待った挙句に起動出来なくて失敗する。このパラメータあたりに問題があることは容易にわかるのだけど、「新しいXenではaio:tap:って書くんだよ」という情報ばかりが流れていて、わからずじまい。これはlennyでのbuildがおかしいとばかり思い込んでいた。なので、正式版のlennyが出たら直るものだと思って放置していた。

ところが、正式版のlennyでも動かない。

あれこれ試してからふと、「世間でlennyでやったという話があるのだから、一度インスタンスそのものを作って、そこで作られた設定ファイルを見ればいいじゃないか」と思い立った。こうすれば、何が悪いかわかる。

そうやって調べたところ、

  • ‘ramdisk’はそのままでいい
  • ‘file:’はそのままでいい
  • ‘xenbr’が’eth’に

ということがわかった。どういった事情があるか知らないけど、3.0の設定とだいたい同じで良いようだ。

この他にtty絡みでちょっとハマる部分がある。

まず、インスタンスを起動する時に、

# xm create -c /etc/xen/instance.conf

のようにして、コンソール付きで起動すると、rcの処理がほぼ終わったところで、いきなりハングアップしているように見える。これはどうやらコンソールのデバイスの関係らしい。

これを回避するには、設定ファイルに

extra = 'xencons=tty'

と入れておいてやる。

これが正常に動いてsshでloginしようとすると、loginが蹴られる。どうやらptyがないらしい。これを回避するには、udevをインストールしてやる必要がある。

これで一応動くようになるのだけど、特殊なfs(nfsとか)を使おうとすると動いてくれない。よく見ると、initrdの中にないモジュールが全くない。カーネルが新しくなったので、あらためてlinux-module-xxxxをインストールしてやらなければならない。これで正常に動くようになる。

整理すると、

  • 設定ファイルは3.0とほぼ互換
  • 設定ファイルにextra=’xencons=tty’を加える
  • udevとlinux-module-xxxをインスタンスに入れる

というあたりに気をつけると、うまく動くようになる。仮想ボリューム名も’hd’という名前から’xvd’に変更しておいた方がいい。絶対ではないようだけど。

参考として、うちでの現用の設定ファイルを書いておく。

kernel = "/boot/vmlinuz-xen"
ramdisk = "/boot/initrd.img-xen"
memory = 6144
name = "gaien-U1"
disk= [
    'file:/instance/U1/root.img,xvda1,w',
    'file:/homes/gaien-U1.img,xvda2,w',
    'file:/instance/U1/var.img,xvda3,w',
    'phy:sda1,xvda4,w',
    'phy:space/home,xvdb1,w',
    'file:/homes/gaien-U12.img,xvdb2,w'
]
root = "/dev/xvda1 ro"
vif = [ 'bridge=eth0','bridge=eth1' ]
extra = 'xencons=tty'
Yahoo Facebook Twitter Digg FriendFeed Delicious Google Translate
This entry was posted on2月 25th, 2009 at 14:45:21. You can follow any responses to this entry through the RSS 2.0. Both comments and pings are currently closed.

Comments are closed.

  • 私について

    ただのプログラマです、ハッカーではありません。

    秋葉で暮し秋葉で仕事してますが、秋葉系は嫌いです。物事を冷静に分析することは好きですが、ニヒリストは嫌いです。

    秋葉でちっこい会社をやってます。 こーゆーことがお仕事です。

    詳しいことは、自己紹介のページでも見て下さい。また、mixiの方でもいろいろわかるかも知れません。twitterは@ogochanですが、たいしたこと言ってません。近頃はShorplug内の別館で日記書いたりもしてます。だいたいここのコピーだったりしますが、ログインするとコメントがつけられます。

    日経ITProに連載(生越昌己のオープンソースGTD)を書いています。「ちゃんと書いた文章」が読みたい人は、そっちを読む方がいいと思います。

  • このページについて

    ここは私の雑文の置き場です。WordPressを使っていますが、いわゆるblogのつもりで書いているわけではありません。「覗き見のできるチラ裏」くらいの意味しかありません。

    もしかしたら有用なことがあるかも知れません。あるいはむかつくことも書いてあるかもしれません。それらはみな「そんなものだ」と思っておくに留めましょう。

    コメントを書くのは構いませんが、「反論」の類はよそでやって下さい。同意する気のない人達と議論する気は全くありませんので、議論したければよそで勝手にやって下さい。

    と言っても、「読むな」「広めるな」というわけでもありません。リンク、ブクマの類は御自由に。

  • カテゴリ

  • 過去の記事

  • メタ情報