panic: ufs_direnter: compact2

この前から続けてunionfsをいじってたらpanicにやられた。 panicの中身からは分かりづらかったけど、VOP_CREATEに先んじてVOP_LOOKUPを呼んでいなかったことが問題らしい。 1ヶ月以上はまっていたので記録を残しておくことにした。 きっと誰の役にも立たないけど。

unionfsのバグを直そう

FreeBSDのunionfsがバグっててひどいという話。 元々、jailをunionfsを使って管理したいと思ってはじめたもの。Dockerがaufsを使っているのと同じイメージ。 同じようにハマる人はたくさんいるようで。

zfs sync=disabledはどのくらい危ないのか

VMware ESXi用ストレージをZFS+NFSで運用していると必ず出てくる “sync=disabled” の件。 できればZIL(ZFS intent log)にSSDを使うなどして、安全にレイテンシを削るのが望ましいが、そうは言っていられないこともある。 仕方なく”zfs set sync=disabled”するとどれくらい危険かを少しだけ計ってみた。本当に少しだけ。

Shuttle DS57Uがディスプレイなしで起動できない

タイトルどおり。 ShuttleのスリムでシンプルなDS57Uを愛用していたけど、FreeBSD 10以降でディスプレイなしだと起動できない。 今のところ解決法は無さそう。起動時だけディスプレイをつなぐか、HDMIのダミーアダプタをつなぐかしないといけない。

QNAP TS-451にFreeBSDをインストールする

iSCSIが応答しなくなったりして困った挙句、FreeBSDをインストールしちゃった。 TS-451の中身はただのIntel CPUなPCなので、特に問題なくインストールできる。 怖いので内蔵Flashにはインストールせず、HDDにインストールした。

QNAP NAS+iscsi+zfsが固まる(2)

前回の続き。 結局FreeBSD 9.3-RELEASEにしたら直った。 FreeBSD 10.0以降のiSCSI Initiatorがおかしいか、相性が悪いかのどちらか。 パケットキャプチャの結果があるから後者もあるとは思うが、余計なバグを踏まされたので前者も疑わしい。

QNAP NAS+iscsi+zfsが固まる

iscsi initiator+gjournalが固まるからの続き。 カーネルデバッグは敷居が高すぎて早々に諦めつつ、iSCSI+ZFSは使いたいので調査継続。 どうやらiSCSI TargetであるQNAP NAS、中身はLinux LIOが怪しい気がする。 8/8追記: iSCSIのCmdSNとInitiator Task Tagに関して誤りがあったので訂正。

カーネルデバッグに手を染めてみる(2)

前回からの続き。 VMを使えばシリアルポートなんて簡単に接続できることに、いまさら気づいた。(始めてから2週間くらい) 機材そろえちゃったよ……。 気を取り直して、ハマっているbio(I/O)を探してみる。(そしてこれもうまくいかなかった。)

カーネルデバッグに手を染めてみる(1)

もたもたしてたらFreeBSD 11.0-BETA2が出てしまった。 この前から続けて、最後に試したFreeBSD 11.0-BETA1なシステムでiSCSI+zfsがハマる原因を調べる。 (一応書いておくと、9.3-RELEASE, 10.1-RELEASE, 10.3-RELEASEのいずれでも発生している。)

iscsi initiator+gjournalが固まる(2)

iscsi initiator+gjournalが固まるというのを前に書いた。 しかしどうやら、負荷のかけ方によっては、 複数のiscsi targetに接続したとき geom_gateを使ったzfsを作って書き込んだとき にも同じように固まることが分かった。 この状態ではまると、gstatで問題のデバイスがキュー長が非零のままで止まり、いつまでたっても解消しない。 そして 、こっちのほうが困るのだが、再起動ができなくなる。panicですら自動再起動できずに止まる。カーネルのコアも吐けない。 マシン固有の問題か、それともほかのなにかか。同じ型番のマシン複数で起きてるから、個体のバグではなさそう。 とりあえずは環境を別のマシンに移して起きるか確認して、あとはシリアル経由でカーネルデバッグかな……。