[an error occurred while processing this directive]
[an error occurred while processing this directive]定期チェックの報告メールを見たら、 input/output errorがゴソゴソと。 どうやら、 ストライプを組んでいるハードディスクがひとつ壊れたらしい。 promiseのボードにぶら下げているやつだ。 再起動で見られるようになるとうれしいが、 どっちみち交換しないとダメだろうなあ。
帰宅後にチェックしてみた。 再起動時にpromiseのボードでarrayを再構築すると一応見える。 短時間なら大丈夫なのだが、 そのうちread errorが起きてkernelがpanicして止まる。 まあもともとバックアップのあるデータばかりなので、 壊れたハードディスクを除外してストライプを組み直した。 あとはfdisk、newfs、mountである。 newfsではブロックサイズの上限が65536だった。 音楽や動画といったでかいデータしか置かないから、 ブロックサイズは1MBくらいでもいいんだけど。 しかし合計320GBって、今じゃ1台、1万円だよなあ。
atacontrolで、ストライプサイズ1024バイトのRAID0に組み直してみた。
# atacontrol delete 0
# atacontrol create RAID0 1024 ad4 ad5 ad6 ad7
newfsではブロックサイズを65536に指定。
# newfs -b 65536 /dev/ar0s1d
全部で433GB、動画データを書き戻して30%ほど使った段階では、 まだエラーは出ていない。
調子に乗って、vinumでRAID-5を組んでみる。 まずはストライプの解除。
root@sun$ atacontrol status 0
ar0: ATA RAID0 stripesize=1024 subdisks: ad4 ad5 ad6 ad7 status: READY
root@sun$ atacontrol delete 0
root@sun$ atacontrol status 0
atacontrol: ioctl(ATARAIDSTATUS): Device not configured
root@sun$ atacontrol list
ATA channel 0:
Master: ad0 <WDC WD400EB-00CPF0/06.04G06> ATA/ATAPI revision 5
Slave: ad1 <Maxtor 94098U8/FA500S60> ATA/ATAPI revision 5
ATA channel 1:
Master: ad2 <ST320413A/3.54> ATA/ATAPI revision 4
Slave: acd0 <HITACHI DVD-ROM GD-7000/0017> ATA/ATAPI revision 0
ATA channel 2:
Master: ad4 <IC35L120AVVA07-0/VA6OA52A> ATA/ATAPI revision 5
Slave: ad5 <ST3120022A/8.54> ATA/ATAPI revision 6
ATA channel 3:
Master: ad6 <Maxtor 4R120L0/RAMB1TU0> ATA/ATAPI revision 7
Slave: ad7 <IC35L120AVV207-0/V24OA63A> ATA/ATAPI revision 6
fdiskとdisklabelの設定。
root@sun$ fdisk -BI ad4
root@sun$ disklabel -w -B ad4s1 auto
root@sun$ disklabel -e ad4s1
# size offset fstype [fsize bsize bps/cpg]
a: 241254641 16 vinum
c: 241254657 0 unused 0 0 # "raw" part, don't edit
vinumモジュールをロードして、vinum -> create。
root@sun$ kldload vinum
drive d0 device /dev/ad4s1a
drive d1 device /dev/ad5s1a
drive d2 device /dev/ad6s1a
drive d3 device /dev/ad7s1a
volume raid5
plex org raid5 200k
sd drive d0 length 114473m
sd drive d1 length 114473m
sd drive d2 length 114473m
sd drive d3 length 114473m
plexができたら、まずゼロで初期化。 vinum -> init raid5.p0 これに4時間くらいかかる。 ただ今回は同じインターフェイスに接続されているうえに、 それぞれのハードディスクも似たような性能なのか、 ほぼ同じ早さでイニシャライズが進んでいく。
が、リブートしたら設定がきれいさっぱり消えてしまった。 がっくりきて、元のストライプに戻す。 その後は特にエラーは起きていない。 後ろのほうのブロックがエラーを起こすのかもしれない。
その後暇を見つけて、ddで全部のセクタを読み出してみた。 3時間半くらいかかったみたいだが、エラーは出なかった。 うーん、なんで前はリードエラーが出たんだろう?