Xen3 on NetBSD/amd64 のまとめ

NetBSD/i386を使っていて、仮想化に興味を持ったりすると

  1. xenに手を出す
  2. あまりにサクサク動いて気分いいのでいっぱいゲスト(DomU)を作る
  3. 安いことに気付いてもっとメモリが欲しくなる
  4. 32bitの4GB(実質3GB)の壁に気付きあぜんとする
  5. じゃあ、NetBSD/amd64にGO!

という流れになりやすい(と勝手に決め付ける)。で、 NetBSD/amd64に移行してふと、「Xenって32/64ビットどっちも行けるの?」と迷う。 実際には、いざこれまで使っていたXen/i386用の NetBSD DomU のイメージを 使って動かそうとして 「え、なんで動かんの」とそこで初めて気付いたりする(そうだった)。

実際には、xenにはcapabilityというのがあってそれみれば何が 動かせるか分かる。NetBSD/amd64でpkgsrcからXen3を入れた場合、

xm info|grep xen.caps
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64 

ということで、準仮想化は xen-3.0-x86_64 と xen-3.0-x86_32p しか 動かない。pってのはPAE(Physical Address Extension)つきの32ビットOSで、 そうそうNetBSD/i386はPAE未対応。 おおなんてことだ、これまで飼い慣らした NetBSD/i386 XEN3_DOMU カーネルは動かないのだあ、さようなら〜。 さらに以前勢いで入れたFedoraとかSUSEのDomUもだめなのかしくしくー、と 思うところだが、実際にはLinux方面は32ビットxen用カーネルは現在ではたいてい PAEつきなので、おお、ぶらぼー、カーネルとカーネルモジュールを正しく 仕込めればこれまで育てた32ビットLinuxなDomUも使えまっせ。でも実際 わしのようなLinux素人にはカーネルにrootパーティションを認識させるのが 結構たいへんだったけど…。

NetBSD/i386はNetBSD/amd64でDOMUで飼えないかなーと思ったら、 NetBSD-currentは、DOMUだけPAEオプションの使えるXEN3PAE_DOMUというのが あってこれを使えば無事NetBSD/amd64の中でNetBSD/i386が飼える。 実運用機のテスト環境としてDomUで動かしたいのに、 currentしか使えないってのがちょっと残念だけどしゃーない。 そういやxen2を使い始めた時期はNetBSD-currentだけの対応だったのが、 netbsd4-stableに下りて来たのでそれから全部stableに移行したもんだっけ。

ちなみにhvmはいちおう32/64ビット両方動くとあるが、動かしてみて わかった。こりゃ笑っちゃうほど遅くて話にならん。寝る前に仕掛けた Fedora9のインストールが朝になっても終わりまへん、てな具合。でも Windowsはそこまで遅くない。なんか最適化してあるのかな? やはり xenは準仮想化に限る。ただ、LinuxはDomUカーネルでのインストールという NetBSD的な芸当ができず、初期インストールが難しいので、

という流れが一番楽かな。時間はかかるけど。