Archive for 8月, 2009

NAS起動せず?

先日、ふと気づいたらNASからの応答がなくなっていた。コンソールから見ても完全に死んでいるようなので仕方なく強制的に電源OFFして電源を入れ直したのだがいくら待ってもあがってこない。見てみると起動途中でpanicして再起動、というループにはまっている様子。何が起きたかわからないがとりあえず面倒だなぁと思いつつトラブルシュートした。

現象: 起動中にpanic。どうもc6t0d0(これこの間交換した玉だな、、)のアクセスランプがつきっぱなしになってpanicしている様子。とりあえず該当の玉を引っこ抜いてからmessagesを見てみると、

Aug 10 02:29:07 melongena genunix: [ID 103648 kern.notice] recursive mutex_enter, lp=ffffff014b1cd768 owner=ffffff0003eb9c60 thread=ffffff0003eb9c60

でpanic、エラーログを吐いてリブートしている。

エラーログから色々調べてみると、どうもこれ(Bug ID: 6786704)くさい。Acceptされてはいるが、まだ修正されていない既知のバグ。それによれば、

Crash occurs generally when a bad block is found on a disk; driver appears to be unable to deal with the resulting bus reset.

とある。

ならば調査と、Windowsマシンに繋いでCrystalDiskInfoでS.M.A.R.T.の値を見てみると、代替処理済みのセクタ数が0x9、代替処理保留中のセクタ数が0x21、回復不可能セクタ数が0xfとなっていて「注意」状態。というか回復不可能セクタが出ている時点でもう駄目ぽ。理由はわからないが元々駄目なやつを引いたのだろう。

近く新しい玉を買ってきて入れ替えるつもりではいるが、si3124を使っている場合、突然落ちて再起動すら正常にいかないケースがある、ということを覚えておく必要がありそうだ。

XBeeのファクトリーリセット方法

snapshot-1250887593.253979

ついうっかり、古いXBeeのボーレート設定を間違えてしまって(*1)、XBeeに一切アクセス出来なくなってしまった。その対処法をさんざんマニュアルにあたったのだが全然情報がない。困り果ててgoogleをたたき続けた結果、やっと見つけた。それがこれ。シリアル経由でXBeeにつながっていることだけは最低限必要なので、sparkfunのXBee Explorerあたりを買っておく必要はある。

やることは強制的なファームウェア書き換えなのだが、方法をそのまま機械的に訳しておく。公式に認められた方法ではないので自己責任にて。

  1. モジュールをインタフェイスボードから外しておく
  2. インタフェイスボードをPCに接続する
  3. X-CTU(*2)を起動する
  4. Modem Configurationのタブを開く
  5. Always update firmwareのチェックボックスをチェックする
  6. 修正したいXBeeの型番をドロップダウンから選ぶ
  7. 入れ直したいファームウェアバージョンをドロップダウンから選ぶ
  8. writeボタンをクリックする。しばらくするとXBeeに繋がらないメッセージが表示されるので、そのタイミングでXBeeを気をつけて挿入する。

手順はこれだけだが、私の場合一度ではうまくいかず、2度トライしてうまくいった。正確に場所をあわせて一気に挿すようにするとうまくいく(気がする)。

今回、使っているモジュールが古くて(XBP24-AWI-001)、この型番は今のファームウェアリストにはないため、正しく接続されていても型番を自動的に認識することができなかった。ここはXBP24を選んで書き直して完了。

本当のところ、どうやるのが正しかったのかを知りたいところではあるので、タイミングをみて代理店に問い合わせてみようかと思う。もしご存じの方がいれば教えていただければ幸い。

*1)後から調べたら、ビットレートを間違ったのではなくてファームウェアが古かったのが原因だったようだ。。

*2)これはDigi純正の設定ツール。Digiのウェブサイトからダウンロードできる。

イノベーションとか星座とか

constellation

イノベーションは突然何の脈絡もなく閃くものではなく、それまで積み重ねたいろいろなものがあるとき突然形となって現れる、というような話を読んだのは「イノベーションの神話」だったか。なるほどと思った記憶がある。

それを言い訳にするわけではないが、最近の自分の傾向を分析するに、インプット過多な時期に来ているようだ。政治や経済という状況だけではなく自分の問題として、これまで重ねてきたナレッジでこれまでやってきた業種ではそろそろ食えなくなってくるという予感がある。その予感を信じて業態の舵を切ろうとしつつあるのだが、やはり住み慣れた世界から知らないことの多い世界へ踏み込むということはそう安易ではない。安易ではないだけに資料を集めて脳内で再構成してやる必要があって、多量のインプットを必要としている感覚がある。

イノベーションが現れるというのは、星を見ていて何かの形をふと見いだすのに似ているかもしれない。今日、ペルセウス座流星群の終わりかけが撮れないか空の写真を撮っていてふとそう思ったのだった。当然のことながら、極大日の翌日でも見えたらしい今回の流星群、さすがに翌々日では全く痕跡のかけらもみえやしなかったのであったが。

銀座で買い物

昨日、銀座の呉服屋から電話があった。一月ほど前に仕立てをお願いしていた浴衣が仕上がったとのこと。自宅まで届けましょうか、という申し出を丁重に断って銀座まで出ることにした。

仕立てたのは下の浴衣。表面と裏面が違う柄になっているもので竺仙のもの。竺仙ではこの両面染めはもうやらなくなってしまったということらしく、店の最後の在庫を仕立ててもらった。

IMG_1470.jpg

この呉服屋は何の気無しに通りすがっただけだったはずが、今もっている浴衣が臈纈染めであるという話から盛り上がり、ついこの浴衣を買ってしまったところから懇意にしてもらっている。一度本当のサービスをうけたら、そうそうほかの店へは変えられる気がしない。本当のサービスっていうのはそういうものなんだと毎回感じさせられる。

—

銀座に折角出たので、8/15に閉店してしまうリシャール銀座店にも足を運ぶ。一番大きなパッケージは売り切れていたが、まだいろいろ種類は残っている。閉店セールで50% offになっているものもあるようで、以前購入したときと比べると格段に安い印象だった。もちろんクオリティは以前と変わらず、大変おいしい。これが都内で入手できなくなると思うと、さほど購入していなかったくせに残念に思ってしまう。

IMG_1463.jpg

なんだか最後のものを拾いに行った銀座行きになってしまった。時代は流れつつ、品物はなくなる。最後に残るのはサービスなのかもしれない。

iPhoneアプリ作ろうかと

これまで書いていなかったが、実は私はiPhone3Gユーザである。しかも、3Gの時は発売されて1ヶ月ほどで購入、今はiPhone 3GSに機種変更してしまったほど気に入っている。そしてiPhone developers programにはiPhone3Gを買ってすぐにアカウントを作っている、、のではあるが、そこで放置してしまっていた。今思えば、面倒なのもあるのだが、アプリのネタもいまいち思いつかなかったというのが放置していた理由なんだろうと思う。

そうこうしているうちに、アカウントを作って1年近くもたってしまったが、ようやっと時間が取れそうな感じになってきたので、登録情報をFAXしたり、お金をはらったりということを実行に移し、やっとiPhone実機をつかっての開発ができるようになった。

ということでCocoaである。とりあえずまずは本でもということで、はじめてのiPhoneプログラミングと、iPhone デベロッパーズ クックブックを買ってみてぼちぼちと読んでいるが、なにせなかなか手が進まない。というのも、Objective-Cなんぞ使ったのはOSXが出て間もない頃(クラムシェルのiBookを借りた覚えがある(*))に某大手通信メーカの販促用アプリを書いたっきりですっかり忘れているし、iPhoneのアプリケーションがOSの上にどう乗っているのかもいまいち理解しきれていない。Interface Builderを使って簡単にデザインできるのはすばらしいが、それの中身がどうやって処理されてるのかも未だに理解出来ていない。昔から上っ面だけ理解するのが苦手なので、この辺がわからないと全然理解が進まないのがいかんともしがたい。

理解できんできんと言っていても仕方がないので、とにかく手を動かすところから始めないといけないのは割と歯がゆい。忍耐力が必要そうだ。手を動かして何か見えたら続きネタを書きたい。

(*)今調べたら、なに10年近く経ってるの!? 大昔過ぎる。。

NASの玉交換

再構築中……

一時期さんざん記事を書いたNASだが、ついに1発トラブルが起きた。アクセスランプがつきっぱなしになっていたので見てみると、

  pool: tank
 state: DEGRADED
status: One or more devices are faulted in response to persistent errors.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the device
        repaired.
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          raidz2    DEGRADED     0     0     0
            c5t0d0  ONLINE       0     0     0
            c6t0d0  FAULTED      8   205     0  too many errors
            c5t1d0  ONLINE       0     0     0
            c6t1d0  ONLINE       0     0     0
            c5t2d0  ONLINE       0     0     0
            c6t2d0  ONLINE       0     0     0
            c5t3d0  ONLINE       0     0     0
            c6t3d0  ONLINE       0     0     0
        spares
          c3d1      AVAIL

とのこと。何が原因かわからないが、とりあえず書き込みエラーが頻発している玉(HDD/c6t6d0)があるようだ。とりあえずこちらを参考にしつつ、下記のように作業。ホットスワップ非対応であればいったんシャットダウンしてからHDDを取り替え、4の手順からやれば良いはず。

1)玉を外す準備

cfgadmコマンド(引数なし)でデバイス一覧が出るので、その中から問題の起きている玉を見つけて、unconfigureする。unconfigureしたらcfgadmで一覧を確認して、unconfigure状態になっていることを確認。

root@melongena:~# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
sata4/0::dsk/c5t0d0            disk         connected    configured   ok
sata4/1::dsk/c5t1d0            disk         connected    configured   ok
sata4/2::dsk/c5t2d0            disk         connected    configured   ok
sata4/3::dsk/c5t3d0            disk         connected    configured   ok
sata5/0::dsk/c6t0d0            disk         connected    configured   ok
sata5/1::dsk/c6t1d0            disk         connected    configured   ok
sata5/2::dsk/c6t2d0            disk         connected    configured   ok
sata5/3::dsk/c6t3d0            disk         connected    configured   ok
~略~
root@melongena:~# cfgadm -c unconfigure sata5/0::dsk/c6t0d0
Unconfigure the device at: /devices/pci@0,0/pci8086,244e@1e/pci1095,3124@1:0
This operation will suspend activity on the SATA device
Continue (yes/no)? yes
root@melongena:~# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
sata4/0::dsk/c5t0d0            disk         connected    configured   ok
sata4/1::dsk/c5t1d0            disk         connected    configured   ok
sata4/2::dsk/c5t2d0            disk         connected    configured   ok
sata4/3::dsk/c5t3d0            disk         connected    configured   ok
sata5/0                        disk         connected    unconfigured ok
sata5/1::dsk/c6t1d0            disk         connected    configured   ok
sata5/2::dsk/c6t2d0            disk         connected    configured   ok
sata5/3::dsk/c6t3d0            disk         connected    configured   ok
~略~

2)玉を外す

おもむろに玉を外して予備の玉に付け替えて元の位置に挿入。cfgadmではemptyになる。

root@melongena:~# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
sata4/0::dsk/c5t0d0            disk         connected    configured   ok
sata4/1::dsk/c5t1d0            disk         connected    configured   ok
sata4/2::dsk/c5t2d0            disk         connected    configured   ok
sata4/3::dsk/c5t3d0            disk         connected    configured   ok
sata5/0                        sata-port    empty        unconfigured ok
sata5/1::dsk/c6t1d0            disk         connected    configured   ok
sata5/2::dsk/c6t2d0            disk         connected    configured   ok
sata5/3::dsk/c6t3d0            disk         connected    configured   ok
~略~

3)再度玉を認識させる

cfgadmで該当のポートにHDDが認識され、unconfigure状態になっていることを確認したら、1の手順と同じく、今度はconfigureする。

root@melongena:~# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
sata4/0::dsk/c5t0d0            disk         connected    configured   ok
sata4/1::dsk/c5t1d0            disk         connected    configured   ok
sata4/2::dsk/c5t2d0            disk         connected    configured   ok
sata4/3::dsk/c5t3d0            disk         connected    configured   ok
sata5/0                        disk         connected    unconfigured unknown
sata5/1::dsk/c6t1d0            disk         connected    configured   ok
sata5/2::dsk/c6t2d0            disk         connected    configured   ok
sata5/3::dsk/c6t3d0            disk         connected    configured   ok
~略~
root@melongena:~# cfgadm -c configure sata5/0::dsk/c6t0d0
root@melongena:~# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
sata4/0::dsk/c5t0d0            disk         connected    configured   ok
sata4/1::dsk/c5t1d0            disk         connected    configured   ok
sata4/2::dsk/c5t2d0            disk         connected    configured   ok
sata4/3::dsk/c5t3d0            disk         connected    configured   ok
sata5/0::dsk/c6t0d0            disk         connected    configured   ok
sata5/1::dsk/c6t1d0            disk         connected    configured   ok
sata5/2::dsk/c6t2d0            disk         connected    configured   ok
sata5/3::dsk/c6t3d0            disk         connected    configured   ok
~略~

4)zfsに玉が交換されたことを通知する

これで、後は勝手にresilver(再構築)が行われる。うちの場合は1.5%ほど進んだ状態で残り5h28mと出た。うちはPCIバスに4ポートSATAカードを2枚挿して、PCIバスが律速になってしまっているので特にひどく遅いが、そうでなくてもそこそこ時間がかかる。暇にあかして時々statusを見ていたら、ぱらぱらとチェックサムエラーがほかのドライブで出たりしていることに気がついた。ケーブルの品質がやたら悪い(1本100円のケーブルが混じっている)のが原因なのだろうと思うが、本当に駄目なケーブルは以前さんざんひどい目にあって抜いてあるのでキニシナイことにする(真似してはいけませんw)。パリティが二重にあることも、この辺を深く気にしなくてすむ理由。

root@melongena:~# zpool replace tank c6t0d0
root@melongena:~# zpool status
~略~
  pool: tank
 state: DEGRADED
 scrub: scrub in progress for 0h0m, 0.00% done, 378h41m to go
config:

        NAME              STATE     READ WRITE CKSUM
        tank              DEGRADED     0     0     0
          raidz2          DEGRADED     0     0     0
            c5t0d0        ONLINE       0     0     0
            replacing     DEGRADED     0     0 5.40K
              c6t0d0s0/o  FAULTED      8   205     0  too many errors
              c6t0d0      ONLINE       0     0     0
            c5t1d0        ONLINE       0     0     0
            c6t1d0        ONLINE       0     0     0
            c5t2d0        ONLINE       0     0     0
            c6t2d0        ONLINE       0     0     0
            c5t3d0        ONLINE       0     0     0
            c6t3d0        ONLINE       0     0     0
        spares
          c3d1            AVAIL

errors: No known data errors

外した玉は別の機械で一日ほどエラーチェックし続けて、問題があるようだったら購入した店へ持ち込もうと思う。

追記: 翌日見てみたら作業が終わっていた。どーもチェックサムエラーがぽちぽち出ている。次のメンテナンス時にはケーブルを変えた方がいいかもしれない。。

root@melongena:~# zpool status
~略~
  pool: tank
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
 scrub: resilver completed after 5h20m with 0 errors on Sun Aug  2 19:52:20 2009
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2    ONLINE       0     0     0
            c5t0d0  ONLINE       0     0     5  108K resilvered
            c6t0d0  ONLINE       0     0     0  178G resilvered
            c5t1d0  ONLINE       0     0     0
            c6t1d0  ONLINE       0     0     0
            c5t2d0  ONLINE       0     0     0
            c6t2d0  ONLINE       0     0     0
            c5t3d0  ONLINE       0     0     5  108K resilvered
            c6t3d0  ONLINE       0     0     3  64.5K resilvered
        spares
          c3d1      AVAIL

errors: No known data errors