2012年10月6日作成
VMware ESXiにPlan 9を移行したときのトラブルまとめ
cpuサーバからfsをマウントできない
% 9fs il!fs.ip.ad.dr!9fs
こうすると、マウントできず切断されます。 たぶんカーネルにILを組み込んだけどndb/csに手を入れるのを忘れていたせいだと思う。
この場合、fsコンソールのflagコマンドでilビットをを立てて、 出力される接続元と接続先をみるとポートが9になっているのでよくわかる。
この場合、マウントするには以下のようにポートを数値にすればいいです。
% 9fs il!fs.ip.ad.dr!17008
mkextでバックアップを展開すると、not foundが出力される
単純に、マウントするとき-cを付けていないだけでした。 もちろん展開もできていないのでやりなおし。
ブート時に、version...time...で長時間固まる
正確には、version...でしばらく止まって、 time...でも止まっていました。トータル20分くらい。 結局これ、IPv6対応したil.cのバグで、正しくilrejectできていなくて、 タイムアウトまで待ち続けていただけっぽいです。
ipconfigでgbeを使うと、replica時に落ちる
gbeというのは、ドライバのことではなくて、ipconfigの引数で
% ip/ipconfig -g xxx gbe /net/ether0 ...
とした場合のことです。このとき、replica/pullすると hungup io connectionとエラーを吐いてシステムごと落ちます。 調べる気もないので原因不明。gbeではなくetherなら動きました。
fs64に含まれるIntel E1000ドライバが遅い
もともと含まれていたigbe.cはVMwareのVendorID等を持っていなかったので Plan 9カーネルをまねて足したのですが、全然パフォーマンスが出ませんでした。 具体的には、同じホストにある仮想マシン間でpingを投げる(cpu to fs)と、 平均30000us程度かかっていました。ふつうは遅くても200us程度なのに。
不思議なのは、Plan 9カーネルにもigbe.cがあって、 同じESXiホストに乗っているのに、こっちは200us程度なんですよね。 様子をみる限りでは、fs側のパケット受信反応が悪い気がする。 VendorID足したときにミスったかなあ。。。
結局、AMD VlanceドライバをPlan 9カーネルからfsへ移植しました。 こっちは普通に200us程度の速度出ているみたい。