start

HDD「ンッーカッチャコンカッチャコンカッチャコン ンッーカッチャコンカッチャコンカッチャコン」

ファイルサーバから表題のような、いやーな音が聞こえてきた。

恐る恐るzpool statusをしてみると…

$ zpool status
  pool: zdata3
 state: DEGRADED
status: One or more devices has been removed by the administrator.
	Sufficient replicas exist for the pool to continue functioning in a
	degraded state.
action: Online the device using 'zpool online' or replace the device with
	'zpool replace'.
 scan: scrub repaired 0 in 8h58m with 0 errors on Sun Jun 30 21:56:04 2013
config:

	NAME                     STATE     READ WRITE CKSUM
	zdata3                   DEGRADED     0     0     0
	  raidz1-0               DEGRADED     0     0     0
	    ada2p1               ONLINE       0     0     0
	    ada1p1               ONLINE       0     0     0
	    7910286219826960147  REMOVED      0     0     0  was /dev/ada0p1
	  raidz1-1               ONLINE       0     0     0
	    ada3                 ONLINE       0     0     0
	    ada5                 ONLINE       0     0     0
	    ada12                ONLINE       0     0     0
	logs
	  da1                    ONLINE       0     0     0
	cache
	  da2                    ONLINE       0     0     0
	spares
	  ada14p1                AVAIL   

errors: No known data errors

いやあああああああああああああああ!!

更にsyslogを見てみると…

Aug 19 08:11:04 Freyja kernel: ahcich0: Timeout on slot 9 port 0
Aug 19 08:11:04 Freyja kernel: ahcich0: is 00000000 cs 00000200 ss 00000000 rs 00000200 tfd c0 serr 00000000 cmd 0000c917
Aug 19 09:41:10 Freyja kernel: ahcich0: Timeout on slot 12 port 0
Aug 19 09:41:10 Freyja kernel: ahcich0: is 00000000 cs 00000000 ss 0000f000 rs 0000f000 tfd 40 serr 00000000 cmd 0000cf17
Aug 19 09:41:41 Freyja kernel: ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080)
Aug 19 09:42:11 Freyja kernel: ahcich0: Timeout on slot 15 port 0
Aug 19 09:42:11 Freyja kernel: ahcich0: is 00000000 cs 00008000 ss 00000000 rs 00008000 tfd 80 serr 00000000 cmd 0000cf17
Aug 19 09:42:42 Freyja kernel: ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080)
Aug 19 09:43:12 Freyja kernel: ahcich0: Timeout on slot 15 port 0
Aug 19 09:43:12 Freyja kernel: ahcich0: is 00000000 cs 00008000 ss 00000000 rs 00008000 tfd 80 serr 00000000 cmd 0000cf17
Aug 19 09:43:12 Freyja kernel: (ada0:ahcich0:0:0:0): lost device
Aug 19 09:43:43 Freyja kernel: ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080)
Aug 19 09:44:13 Freyja kernel: ahcich0: Timeout on slot 15 port 0
Aug 19 09:44:13 Freyja kernel: ahcich0: is 00000000 cs 00078000 ss 00078000 rs 00078000 tfd 80 serr 00000000 cmd 0000cf17
Aug 19 09:44:14 Freyja kernel: (ada0:ahcich0:0:0:0): removing device entry
Aug 19 09:44:17 Freyja kernel: ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
Aug 19 09:44:17 Freyja kernel: ada0: <ST3000DM001-9YN166 CC4B> ATA-8 SATA 3.x device
Aug 19 09:44:17 Freyja kernel: ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
Aug 19 09:44:17 Freyja kernel: ada0: Command Queueing enabled
Aug 19 09:44:17 Freyja kernel: ada0: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
Aug 19 09:44:17 Freyja kernel: ada0: Previously was known as ad4
Aug 19 09:44:30 Freyja kernel: ahcich0: Timeout on slot 18 port 0
Aug 19 09:44:30 Freyja kernel: ahcich0: is 00000000 cs 00040000 ss 00000000 rs 00040000 tfd c0 serr 00000000 cmd 0000d217
Aug 19 09:44:30 Freyja kernel: ahcich0: Error while READ LOG EXT

凄く・・・ご臨終です・・・・。

8/19ってことは、実家帰省のさなか延々カッコンカッコンしてたのか…。RAID-Z1なのでガクブルもの。てか、ホットスペアを自動で使ってくれないのね。何でだろう?

取りあえず、手動でお亡くなりになったHDDとスペアを置き換える。

まず、死んだHDDをプールから切り離す。

$ sudo zpool offline zdata3 ada0p1
$ zpool status zdata3
  pool: zdata3
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
	Sufficient replicas exist for the pool to continue functioning in a
	degraded state.
action: Online the device using 'zpool online' or replace the device with
	'zpool replace'.
 scan: scrub repaired 0 in 8h58m with 0 errors on Sun Jun 30 21:56:04 2013
config:

	NAME                     STATE     READ WRITE CKSUM
	zdata3                   DEGRADED     0     0     0
	  raidz1-0               DEGRADED     0     0     0
	    ada2p1               ONLINE       0     0     0
	    ada1p1               ONLINE       0     0     0
	    7910286219826960147  OFFLINE      0     0     0  was /dev/ada0p1
	  raidz1-1               ONLINE       0     0     0
	    ada3                 ONLINE       0     0     0
	    ada5                 ONLINE       0     0     0
	    ada12                ONLINE       0     0     0
	logs
	  da1                    ONLINE       0     0     0
	cache
	  da2                    ONLINE       0     0     0
	spares
	  ada14p1                AVAIL   

errors: No known data errors

それから、スペアと入れ替える。

$ sudo zpool replace zdata3 ada0p1 ada14p1
$ zpool status zdata3
  pool: zdata3
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Sat Aug 24 10:42:18 2013
    53.5M scanned out of 10.1T at 4.86M/s, 602h18m to go
    8.17M resilvered, 0.00% done
config:

	NAME                       STATE     READ WRITE CKSUM
	zdata3                     DEGRADED     0     0     0
	  raidz1-0                 DEGRADED     0     0     0
	    ada2p1                 ONLINE       0     0     0
	    ada1p1                 ONLINE       0     0     0
	    spare-2                OFFLINE      0     0     0
	      7910286219826960147  OFFLINE      0     0     0  was /dev/ada0p1
	      ada14p1              ONLINE       0     0     0  (resilvering)
	  raidz1-1                 ONLINE       0     0     0
	    ada3                   ONLINE       0     0     0
	    ada5                   ONLINE       0     0     0
	    ada12                  ONLINE       0     0     0
	logs
	  da1                      ONLINE       0     0     0
	cache
	  da2                      ONLINE       0     0     0
	spares
	  8748654380753058766      INUSE     was /dev/ada14p1

errors: No known data errors

replaceコマンドの応答がなかなか(十数秒)返ってこず、少し焦ったw 3TBのHDD買ってこないとだな…。

それにしても、自分はSeagateとの相性がすこぶるよろしくない。HDDは去年の6/20に買ったものなので、1年ちょいでお亡くなりという事に。昔使ってた鯖でも、Seagate製が1年足らずで死んだんだよなぁ。RMAで動作品に交換出来ると思うが、さっさと売って新HDD費用の足しにしよう……。

(2014/8/25 1:18追記)

10TBのプールを10時間ほどでリビルド完了。

死んだHDDを切り離す。

$ sudo zpool detach zdata3 ada0p1
$ zpool status zdata3
  pool: zdata3
 state: ONLINE
 scan: resilvered 2.37T in 10h6m with 0 errors on Sat Aug 24 20:49:04 2013
config:

	NAME         STATE     READ WRITE CKSUM
	zdata3       ONLINE       0     0     0
	  raidz1-0   ONLINE       0     0     0
	    ada2p1   ONLINE       0     0     0
	    ada1p1   ONLINE       0     0     0
	    ada14p1  ONLINE       0     0     0
	  raidz1-1   ONLINE       0     0     0
	    ada3     ONLINE       0     0     0
	    ada5     ONLINE       0     0     0
	    ada12    ONLINE       0     0     0
	logs
	  da1        ONLINE       0     0     0
	cache
	  da2        ONLINE       0     0     0

errors: No known data errors

ada0がケース内のどのHDDなのか特定するには、HDDの型番とシリアル番号が分かればいいので、通常はcamcontrol identify ada0すればOK。 ただし今回はada0の情報が全く表示されなかったため、生きている同型のHDDを1つずつidentifyし、死んだ玉を消去法で探し当てた。

Apache 2.4でアクセス制御の書式が変わっていた件

Apache 2.4でバーチャルホスト環境を構築し、サイトにアクセスしてみたらForbiddenになった。

公開ディレクトリまでのパーミッションは何度確認しても755だし、意味わかんねー!!とファビョってても仕方ないので、エラーログを見ると「AH01630: client denied by server configuration: /path/to/public_html」とな。

ググってみると、アクセス制御を適切に設定せよと。

設定してるはずなんだけどなぁ、と思い更にググってみるとApache 2.4でアクセス制御の書き方が変わったと。

<Directory /path/to/public_html>
    Order allow,deny
    Allow from all
</Directory>

こーんな見慣れた書式から

<Directory /path/to/public_html>
    Require all granted
</Directory>

こーんな風になったと。

とりあえず、新書式にしたら無事アクセス出来た。

教訓:ログはしっかり見よう!

FreeBSDでNetatalkのログをローテーションさせる

Netatalkのログを見ようと思い立ちcat /var/log/netatalk.logしてみたら、ダダダーっとログが表示され一向に終わる気配がなかった。じーっと眺めてみると、3ヶ月前の日付が見える。ついでに、ログの粒度が物凄く細かい。

そういえばHATさんにログを提供するためにlog level = default:maxdebugにしてたなーと思いつつ、ログファイルのサイズを確認したら20GBまで膨らんでたwww Netatalkのボリュームに同時アクセスすると、パフォーマンスが一気に落ちたり不安定だったのはこいつのせい?

maxdebugを止めるのは当然として、ログローテーションも行う事にした。

/etc/newsyslog.confに以下の一文を付け加え、# newsyslogすればよさそう。syslogのデフォルト設定に倣い、100KBでローテーションさせ、履歴は5つbz2圧縮で保持するようにした。

/var/log/netatalk.log			644  5	   100	*     JC

O-GPS1が初期不良だった…

先日、PENTAXのGPSモジュール「O-GPS1」を買ったんだけど、物の見事に初期不良品だった。

症状としては

  • GPSの受信状態を表すLEDが何の反応も示さない。
    • 本来はカメラに取り付けていようがいまいが、ON/OFFボタン長押しで何かしら光る。
    • LEDが反応しないだけで、動作自体はしてるっぽい(カメラ側にGPSマークが表示され測位情報も出る)。
  • カメラへの取り付け具合がよろしくない。固定レバーの最後の方が妙に固く、目一杯押し込まないと終端までいかない。かといって、終端まで押し込むとカメラから認識されず、気持ち緩めにしないとダメ。

というもの。

今まで色んな物を買ってきたが、初期不良品に当たったのは初めての経験。しかも、こいつは通販で買った物なので「対応面倒くさそうだなー」と思いつつも交換してもらわにゃしょうがないってもんで、素直に販売店のサポセンに電話。

すぐにオペレータに繋がり、かくかくしかじか初期不良っぽい旨を説明。店側で状況を確認し折り返し電話するとのこと。

それから10分程度で連絡が来て「在庫もあるので本日発送の翌日には交換可能」とのこと。平日は仕事でこっちが対応出来ないので、日時指定で土曜日にして貰って手配完了。思いの外すんなり交換対応になった。ありがとうエディオン。どうでもいいけど、関西のコールセンターに電話すると、おねーさんが関西弁で萌える。

予定通り本日交換品が到着し、引き換えに不良品を配達員に渡してお仕舞。今度の個体は、カメラへの取り付けも滑らかで、GPSランプも動作そのものも問題なかった。

鯖のマザボをZ77A-GD65に変更

M1015のために買い漁ったマザボの1つに、省電力で有名なMSI Z77A-GD65があったので鯖のM/BをASRock H77 Pro4/MVPから交換してみた。

マザボ以外の構成は一緒で、各種電圧設定をH77 Pro4/MVPと同等にした所、アイドル時消費電力が70W→65Wと5W減った。高が5W、然れど5W。24時間稼働の家鯖では1Wでも消費電力は減らしたいのだ。

随所で言われているが、後はVCoreオフセットが弄られれば最強なんだけどなー。上で述べたH77 Pro4/MVPの70WってのはVCore -100mVでの値なんで、如何にZ77A-GD65が優秀かが分かる。Vcoreオフセットが使えれば、あと5Wは削れんじゃないかなぁ……マジで惜しい。どっかに改造BIOSが落ちてたりしないかしらん。

ついでに、この鯖のFreeBSDで動いているHDD7台をスピンダウンするようにしたら、65W→40Wと大幅低下。流石に3.5インチ7台だと、アイドルでもそこそこ電気食ってるなぁと。HDDは短時間にスピンアップ・ダウンを繰り返すと寿命が縮まると言われたりもするが、確かな調査結果がある訳じゃないので、将来の不確かな利益より目の前の利益って訳で10分アクセスがなければ、スピンダウンするように設定。

コマンドは以下の通り。

camcontrol idle ada0 -t 600

ada0の部分は対象のHDD、-tの後はスピンダウンするまでの秒数なので適宜読み変えてくだしあ。

尚、idleをstandbyにするとコマンド発行と同時にスピンダウンする(-tの効果とかは一緒)。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo