またや・・・・(-ω-)
Dec 12 03:06:53 piano kernel: ad6: TIMEOUT - WRITE_DMA retrying (1 retry left) LBA=137581056 Dec 12 03:25:14 piano kernel: ad6: TIMEOUT - WRITE_DMA retrying (1 retry left) LBA=137581087 Dec 12 03:25:14 piano kernel: ad6: TIMEOUT - WRITE_DMA retrying (0 retries left) LBA=137581056 Dec 12 03:25:14 piano kernel: ad6: TIMEOUT - WRITE_DMA retrying (0 retries left) LBA=137581087 Dec 12 03:25:14 piano kernel: ad6: FAILURE - WRITE_DMA timed out LBA=137581056 Dec 12 03:25:14 piano kernel: ar0: WARNING - mirror protection lost. RAID0+1 array in DEGRADED mode Dec 12 03:25:14 piano kernel: ar0: writing of nVidia MediaShield metadata is NOT supported yet
Thu May 14 04:03:23 JST 2009 ad4: TIMEOUT - READ_DMA retrying (1 retry left) LBA=7515071 ad4: TIMEOUT - READ_DMA retrying (0 retries left) LBA=7515071 ad4: FAILURE - READ_DMA timed out LBA=7515071 ar0: WARNING - mirror protection lost. RAID0+1 array in DEGRADED mode ar0: writing of nVidia MediaShield metadata is NOT supported yet
ガーン!!!!!
で、ディスク丸ごと
piano:root {130} % ./backup_to_blackcube_all.sh
#!/bin/sh /usr/local/bin/rsync -av --delete --exclude '/usr/Backups/*' / www.smb.net:/usr/Backups/Piano/7_1/all/
しておく。
このとき、HDDのアクセスランプを見ると、ディスク3が点灯しない。
ので、きっと、ad4 は、ディスク3なのだ。
http://www.seichan.org/wiki/index.php?FreeBSD-ATACONTROL
RAID には,RAID0 と RAID1 を組み合わせた RAID0+1 (RAID10) というレベルがあります.実現方法は様々あるようですが,FreeBSD の atacontrol での RAID0+1 は,RAID0 ディスクを2つ作成し,その RAID0 ディスク 2つを RAID1 でミラーリングする方式を採用しているようです. 利点は RAID1(mirror) の冗長性と,RAID0(stripe) の速度を両立出来る事です.RAID0 ではディスク不良があった場合,データは全て失われますが,RAID1 のミラーリングも行っている為,1つのディスクが不調でもオペレーションの続行が可能になります. 欠点として,使えるディスク容量が,搭載量の 1/2 になってしまう点です.この点から,後述する RAID5 が好まれる結果となっていますが,ディスクへの読み書き速度は RAID5 とは段違いに速い点もあり,高速性と安定性が要求される箇所で利用されています.
実際に atacontrol で RAID0+1 を作成する場合,以下のように実行します.
geom# atacontrol create RAID0+1 512 ad0 ad1 ad2 ad3 ar0 created
上記コマンドを実行する事で,RAID0+1 が作成出来ます.512 はインタリーブサイズで,RAID0 の時と同様です.また,どのディスクが組みになるかは dmesg 又はコンソール画面に次のように表示される事で把握出来るでしょう.
ar0: 8191MB <Intel MatrixRAID RAID0+1 (stripe 128 KB)> status: READY ar0: disk0 READY (master) using ad0 at ata0-master ar0: disk1 READY (master) using ad1 at ata0-slave ar0: disk2 READY (mirror) using ad2 at ata1-master ar0: disk3 READY (mirror) using ad3 at ata1-slave
上記の場合,ad0,ad1 が1ペアで,ad2,ad3 が1ペアになります.atacontrol detach を行う予定がある場合,組み合わせに注意する必要があります. ディスク不良等で,RAID0+1 が壊れた場合,RAID1 と同様に RAID の再構築が可能です.
geom# atacontrol status ar0 ar0: ATA RAID0+1 stripesize=256 subdisks: ad0 ad1 ad2 DOWN status: DEGRADED
上記のように,ad3 デバイスが不調で DEGRADED 状態の場合,RAID1 の再構築と同様にスペアドライブを追加します.その後,atacontrol rebuild で再構築を行います.
geom# atacontrol addspare ar0 ad3 geom# atacontrol status ar0 ar0: ATA RAID0+1 stripesize=256 subdisks: ad0 ad1 ad2 ad3 status: DEGRADED geom# atacontrol rebuild ar0 geom# atacontrol status ar0 ar0: ATA RAID0+1 stripesize=256 subdisks: ad0 ad1 ad2 ad3 status: REBUILDING 2% completed
と,再構築の方法は RAID1 の場合とまったく同様に行える事がわかると思います.
FreeBSD はアレイ内の障害ディスクを動作中に交換できます。ただし、再起動前にそれを検知していることが必要です。
/var/log/messages または dmesg(8) の出力に次のような行があるでしょう。
ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11) status=59 error=40 ar0: WARNING - mirror lost
atacontrol(8) を使用して詳細を調べてください。
# atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED
# atacontrol detach 3
# atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present
# atacontrol rebuild ar0
しかし、もう一つ別のターミナルを (Alt+Fn を押して) 開き、次のコマンドを実行すると進行状態を確認することができます。
# dmesg | tail -10 [output removed] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed