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

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

ReadyNASのRAID-5障害復旧

遠隔地に配置していたNETGEARのReadyNASで障害が発生、RAID-5構成の4台中2台で障害が起きてお亡くなりに。 でも良く見ると片方はなんとか認識できそうだったのでがんばってみた。

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ですら自動再起動できずに止まる。カーネルのコアも吐けない。 マシン固有の問題か、それともほかのなにかか。同じ型番のマシン複数で起きてるから、個体のバグではなさそう。 とりあえずは環境を別のマシンに移して起きるか確認して、あとはシリアル経由でカーネルデバッグかな……。

GlusterFSの構成ディスクを交換する

図らずも一台のデータを壊してしまったので嬉々として復旧実験。 ノード自体は生きているが、brickの中身を壊しちゃったという場合の話。 参考にするのはGlusterFSの公式資料。 http://www.gluster.org/community/documentation/index.php/Gluster_3.4:_Brick_Restoration_-_Replace_Crashed_Server とりあえずglusterfsを止める。 現状、FreeBSD版のservice stopだと子プロセスが残るのでkillallしてくださいな。 (そのうち直します。あとglusterfsdじゃなくてglusterdが正しいという話もね……。) # service glusterfsd stop # killall glusterfsd ディスクを入れ替えたりいろいろする。 newfsとかmountまで済ませる。 brickのディレクトリを手動で作る。 setextattrbinを持ってきてビルドしておく。(→おまけ) brickのディレクトリにvolume-idを設定する。ちょっと長いone-linerだけどこんな感じ。 # cat /var/db/glusterd/vols//info | perl -ne ‘m/volume-id=/ and s/^.*=// and s/-//g and print’ | setextattrbin user trusted.glusterfs.volume-id -stdin glusterfsを起動して、healを開始させる。 replicatedなら、 # service glusterfsd start # gluster vol heal full disperseならNFSでマウントしてから、 # find -exec stat {}\; […]

QNAPのファームウェアを焼きなおす

うっかりやらかしてQNAP NASのファームウェアが入ったFlashを焼き払っちゃった。 結論 ほぼ公式ガイドどおりでいける。 Damn Small LinuxじゃなくてCore OSを使おう。 cpじゃなくてcat+redirectで書く。